UNPKG

merchi_checkout

Version:
170 lines (167 loc) 54.1 kB
'use client'; function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } var _excluded = ["ref", "value"]; function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = "function" == typeof Symbol ? Symbol : {}, a = i.iterator || "@@iterator", c = i.asyncIterator || "@@asyncIterator", u = i.toStringTag || "@@toStringTag"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, ""); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, "_invoke", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: "normal", arg: t.call(e, r) }; } catch (t) { return { type: "throw", arg: t }; } } e.wrap = wrap; var h = "suspendedStart", l = "suspendedYield", f = "executing", s = "completed", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { ["next", "throw", "return"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if ("throw" !== c.type) { var u = c.arg, h = u.value; return h && "object" == _typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) { invoke("next", t, i, a); }, function (t) { invoke("throw", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke("throw", t, i, a); }); } a(c.arg); } var r; o(this, "_invoke", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw new Error("Generator is already running"); if (o === s) { if ("throw" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else "return" === n.method && n.abrupt("return", n.arg); o = f; var p = tryCatch(e, r, n); if ("normal" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, "throw" === n && e.iterator["return"] && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y; var i = tryCatch(o, e.iterator, r.arg); if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = "normal", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: "root" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || "" === e) { var r = e[a]; if (r) return r.call(e); if ("function" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + " is not iterable"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) { var e = "function" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () { return this; }), define(g, "toString", function () { return "[object Generator]"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if ("throw" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if ("root" === i.tryLoc) return handle("end"); if (i.tryLoc <= this.prev) { var c = n.call(i, "catchLoc"), u = n.call(i, "finallyLoc"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw new Error("try statement without catch or finally"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) { var i = o; break; } } i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if ("throw" === t.type) throw t.arg; return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, "catch": function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if ("throw" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw new Error("illegal catch attempt"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, "next" === this.method && (this.arg = t), y; } }, e; } function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); } function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); } function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; } function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } } function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; } function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; } import { useState } from 'react'; import { debounce } from 'lodash'; import { useController } from 'react-hook-form'; import { PiCloudBold, PiCloudCheckBold, PiCloudXBold } from 'react-icons/pi'; import { checkStoreName } from '../../actions/domain'; import { useMerchiCheckboutContext } from '../MerchiCheckoutProvider'; import { jsx as _jsx } from "react/jsx-runtime"; import { jsxs as _jsxs } from "react/jsx-runtime"; import { Fragment as _Fragment } from "react/jsx-runtime"; function replaceSpecialChars(str) { return str.normalize('NFD').replace(/[\u0300-\u036f]/g, '').replace(/([^\w]+|\s+)/g, '-').replace(/\-\-+/g, '-').replace(/(^-+|-+$)/, '').toLowerCase(); } function InputCheckStoreName(_ref) { var control = _ref.control, errors = _ref.errors; var _useController = useController({ name: 'subDomain', control: control, defaultValue: "" }), _useController$field = _useController.field, ref = _useController$field.ref, value = _useController$field.value, inputProps = _objectWithoutProperties(_useController$field, _excluded), invalid = _useController.fieldState.invalid; var _useMerchiCheckboutCo = useMerchiCheckboutContext(), classNameMerchiCheckoutFormGroup = _useMerchiCheckboutCo.classNameMerchiCheckoutFormGroup, classNameMerchiCheckoutFormInput = _useMerchiCheckboutCo.classNameMerchiCheckoutFormInput, urlFrontend = _useMerchiCheckboutCo.urlFrontend, urlApi = _useMerchiCheckboutCo.urlApi; var _useState = useState(false), _useState2 = _slicedToArray(_useState, 2), checkingName = _useState2[0], setCheckingName = _useState2[1]; var _useState3 = useState(false), _useState4 = _slicedToArray(_useState3, 2), available = _useState4[0], setAvailable = _useState4[1]; var _useState5 = useState(true), _useState6 = _slicedToArray(_useState5, 2), neutral = _useState6[0], setNeutral = _useState6[1]; function checkName() { return _checkName.apply(this, arguments); } function _checkName() { _checkName = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() { var response; return _regeneratorRuntime().wrap(function _callee$(_context) { while (1) switch (_context.prev = _context.next) { case 0: _context.prev = 0; _context.next = 3; return checkStoreName(urlApi, value || ''); case 3: response = _context.sent; if (response.ok) { setAvailable(true); } else { setAvailable(false); } setCheckingName(false); setNeutral(false); _context.next = 14; break; case 9: _context.prev = 9; _context.t0 = _context["catch"](0); setCheckingName(false); setNeutral(false); setAvailable(false); case 14: case "end": return _context.stop(); } }, _callee, null, [[0, 9]]); })); return _checkName.apply(this, arguments); } var style = { fontSize: '0.75rem', fontWeight: 600 }; // UI for domain indication. Needs proper logic. var colorIndication = function colorIndication() { if (checkingName) return 'text-muted'; if (available) return 'text-success'; if (neutral) return 'text-muted'; return 'text-danger'; }; // UI for domain indication. Needs proper logic. var iconIndication = function iconIndication() { if (checkingName) return /*#__PURE__*/_jsx(PiCloudBold, { className: "text-muted animation-blink" }); if (available) return /*#__PURE__*/_jsx(PiCloudCheckBold, { className: "text-success" }); if (neutral) return /*#__PURE__*/_jsx(PiCloudBold, { className: "text-muted" }); return /*#__PURE__*/_jsx(PiCloudXBold, { className: "text-danger" }); }; function NotificationDomainValid() { return /*#__PURE__*/_jsxs("div", { className: "d-flex align-items-center", style: { margin: '-1.25rem 0 0.5rem 0' }, children: [/*#__PURE__*/_jsx("span", { style: style, className: "ml-2 font-italic", children: "Store url:" }), /*#__PURE__*/_jsxs("span", { style: style, className: "ml-2 font-italic mr-1 ".concat(colorIndication()), children: [value !== '' ? value : 'your-store', ".", urlFrontend, ' '] }), iconIndication()] }); } var debouncedCheckName = debounce(checkName, 1000); return /*#__PURE__*/_jsxs(_Fragment, { children: [/*#__PURE__*/_jsxs("div", { className: classNameMerchiCheckoutFormGroup, children: [/*#__PURE__*/_jsx("input", _objectSpread(_objectSpread({ className: "".concat(classNameMerchiCheckoutFormInput, " ").concat(invalid && ' is-invalid'), type: "text", placeholder: "Store name" }, inputProps), {}, { onChange: function onChange(e) { setCheckingName(true); inputProps.onChange(replaceSpecialChars(e.target.value)); debouncedCheckName(); } })), errors.subDomain && /*#__PURE__*/_jsx("div", { className: "text-danger", style: { display: 'block' }, children: errors.subDomain.message })] }), /*#__PURE__*/_jsx(NotificationDomainValid, {})] }); } export default InputCheckStoreName; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfdHlwZW9mIiwibyIsIlN5bWJvbCIsIml0ZXJhdG9yIiwiY29uc3RydWN0b3IiLCJwcm90b3R5cGUiLCJfZXhjbHVkZWQiLCJfcmVnZW5lcmF0b3JSdW50aW1lIiwiZSIsInQiLCJyIiwiT2JqZWN0IiwibiIsImhhc093blByb3BlcnR5IiwiZGVmaW5lUHJvcGVydHkiLCJ2YWx1ZSIsImkiLCJhIiwiYyIsImFzeW5jSXRlcmF0b3IiLCJ1IiwidG9TdHJpbmdUYWciLCJkZWZpbmUiLCJlbnVtZXJhYmxlIiwiY29uZmlndXJhYmxlIiwid3JpdGFibGUiLCJ3cmFwIiwiR2VuZXJhdG9yIiwiY3JlYXRlIiwiQ29udGV4dCIsIm1ha2VJbnZva2VNZXRob2QiLCJ0cnlDYXRjaCIsInR5cGUiLCJhcmciLCJjYWxsIiwiaCIsImwiLCJmIiwicyIsInkiLCJHZW5lcmF0b3JGdW5jdGlvbiIsIkdlbmVyYXRvckZ1bmN0aW9uUHJvdG90eXBlIiwicCIsImQiLCJnZXRQcm90b3R5cGVPZiIsInYiLCJ2YWx1ZXMiLCJnIiwiZGVmaW5lSXRlcmF0b3JNZXRob2RzIiwiZm9yRWFjaCIsIl9pbnZva2UiLCJBc3luY0l0ZXJhdG9yIiwiaW52b2tlIiwicmVzb2x2ZSIsIl9fYXdhaXQiLCJ0aGVuIiwiY2FsbEludm9rZVdpdGhNZXRob2RBbmRBcmciLCJFcnJvciIsImRvbmUiLCJtZXRob2QiLCJkZWxlZ2F0ZSIsIm1heWJlSW52b2tlRGVsZWdhdGUiLCJzZW50IiwiX3NlbnQiLCJkaXNwYXRjaEV4Y2VwdGlvbiIsImFicnVwdCIsIlR5cGVFcnJvciIsInJlc3VsdE5hbWUiLCJuZXh0IiwibmV4dExvYyIsInB1c2hUcnlFbnRyeSIsInRyeUxvYyIsImNhdGNoTG9jIiwiZmluYWxseUxvYyIsImFmdGVyTG9jIiwidHJ5RW50cmllcyIsInB1c2giLCJyZXNldFRyeUVudHJ5IiwiY29tcGxldGlvbiIsInJlc2V0IiwiaXNOYU4iLCJsZW5ndGgiLCJkaXNwbGF5TmFtZSIsImlzR2VuZXJhdG9yRnVuY3Rpb24iLCJuYW1lIiwibWFyayIsInNldFByb3RvdHlwZU9mIiwiX19wcm90b19fIiwiYXdyYXAiLCJhc3luYyIsIlByb21pc2UiLCJrZXlzIiwicmV2ZXJzZSIsInBvcCIsInByZXYiLCJjaGFyQXQiLCJzbGljZSIsInN0b3AiLCJydmFsIiwiaGFuZGxlIiwiY29tcGxldGUiLCJmaW5pc2giLCJfY2F0Y2giLCJkZWxlZ2F0ZVlpZWxkIiwib3duS2V5cyIsImdldE93blByb3BlcnR5U3ltYm9scyIsImZpbHRlciIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImFwcGx5IiwiX29iamVjdFNwcmVhZCIsImFyZ3VtZW50cyIsIl9kZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwib2JqIiwia2V5IiwiX3RvUHJvcGVydHlLZXkiLCJfdG9QcmltaXRpdmUiLCJTdHJpbmciLCJ0b1ByaW1pdGl2ZSIsIk51bWJlciIsImFzeW5jR2VuZXJhdG9yU3RlcCIsImdlbiIsInJlamVjdCIsIl9uZXh0IiwiX3Rocm93IiwiaW5mbyIsImVycm9yIiwiX2FzeW5jVG9HZW5lcmF0b3IiLCJmbiIsInNlbGYiLCJhcmdzIiwiZXJyIiwidW5kZWZpbmVkIiwiX3NsaWNlZFRvQXJyYXkiLCJhcnIiLCJfYXJyYXlXaXRoSG9sZXMiLCJfaXRlcmFibGVUb0FycmF5TGltaXQiLCJfdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkiLCJfbm9uSXRlcmFibGVSZXN0IiwibWluTGVuIiwiX2FycmF5TGlrZVRvQXJyYXkiLCJ0b1N0cmluZyIsIkFycmF5IiwiZnJvbSIsInRlc3QiLCJsZW4iLCJhcnIyIiwiaXNBcnJheSIsIl9vYmplY3RXaXRob3V0UHJvcGVydGllcyIsInNvdXJjZSIsImV4Y2x1ZGVkIiwidGFyZ2V0IiwiX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzTG9vc2UiLCJzb3VyY2VTeW1ib2xLZXlzIiwiaW5kZXhPZiIsInByb3BlcnR5SXNFbnVtZXJhYmxlIiwic291cmNlS2V5cyIsInVzZVN0YXRlIiwiZGVib3VuY2UiLCJ1c2VDb250cm9sbGVyIiwiUGlDbG91ZEJvbGQiLCJQaUNsb3VkQ2hlY2tCb2xkIiwiUGlDbG91ZFhCb2xkIiwiY2hlY2tTdG9yZU5hbWUiLCJ1c2VNZXJjaGlDaGVja2JvdXRDb250ZXh0IiwianN4IiwiX2pzeCIsImpzeHMiLCJfanN4cyIsIkZyYWdtZW50IiwiX0ZyYWdtZW50IiwicmVwbGFjZVNwZWNpYWxDaGFycyIsInN0ciIsIm5vcm1hbGl6ZSIsInJlcGxhY2UiLCJ0b0xvd2VyQ2FzZSIsIklucHV0Q2hlY2tTdG9yZU5hbWUiLCJfcmVmIiwiY29udHJvbCIsImVycm9ycyIsIl91c2VDb250cm9sbGVyIiwiZGVmYXVsdFZhbHVlIiwiX3VzZUNvbnRyb2xsZXIkZmllbGQiLCJmaWVsZCIsInJlZiIsImlucHV0UHJvcHMiLCJpbnZhbGlkIiwiZmllbGRTdGF0ZSIsIl91c2VNZXJjaGlDaGVja2JvdXRDbyIsImNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0Rm9ybUdyb3VwIiwiY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRGb3JtSW5wdXQiLCJ1cmxGcm9udGVuZCIsInVybEFwaSIsIl91c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJjaGVja2luZ05hbWUiLCJzZXRDaGVja2luZ05hbWUiLCJfdXNlU3RhdGUzIiwiX3VzZVN0YXRlNCIsImF2YWlsYWJsZSIsInNldEF2YWlsYWJsZSIsIl91c2VTdGF0ZTUiLCJfdXNlU3RhdGU2IiwibmV1dHJhbCIsInNldE5ldXRyYWwiLCJjaGVja05hbWUiLCJfY2hlY2tOYW1lIiwiX2NhbGxlZSIsInJlc3BvbnNlIiwiX2NhbGxlZSQiLCJfY29udGV4dCIsIm9rIiwidDAiLCJzdHlsZSIsImZvbnRTaXplIiwiZm9udFdlaWdodCIsImNvbG9ySW5kaWNhdGlvbiIsImljb25JbmRpY2F0aW9uIiwiY2xhc3NOYW1lIiwiTm90aWZpY2F0aW9uRG9tYWluVmFsaWQiLCJtYXJnaW4iLCJjaGlsZHJlbiIsImNvbmNhdCIsImRlYm91bmNlZENoZWNrTmFtZSIsInBsYWNlaG9sZGVyIiwib25DaGFuZ2UiLCJzdWJEb21haW4iLCJkaXNwbGF5IiwibWVzc2FnZSJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2Zvcm1zL0lucHV0Q2hlY2tTdG9yZU5hbWUudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIid1c2UgY2xpZW50JztcbmltcG9ydCB7IHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgZGVib3VuY2UgfSBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgdXNlQ29udHJvbGxlciB9IGZyb20gJ3JlYWN0LWhvb2stZm9ybSc7XG5pbXBvcnQgeyBQaUNsb3VkQm9sZCwgUGlDbG91ZENoZWNrQm9sZCwgUGlDbG91ZFhCb2xkIH0gZnJvbSAncmVhY3QtaWNvbnMvcGknO1xuaW1wb3J0IHsgY2hlY2tTdG9yZU5hbWUgfSBmcm9tICcuLi8uLi9hY3Rpb25zL2RvbWFpbic7XG5pbXBvcnQgeyB1c2VNZXJjaGlDaGVja2JvdXRDb250ZXh0IH0gZnJvbSAnLi4vTWVyY2hpQ2hlY2tvdXRQcm92aWRlcic7XG5cbmZ1bmN0aW9uIHJlcGxhY2VTcGVjaWFsQ2hhcnMoc3RyOiBzdHJpbmcpIHtcbiAgcmV0dXJuIHN0ci5ub3JtYWxpemUoJ05GRCcpLnJlcGxhY2UoL1tcXHUwMzAwLVxcdTAzNmZdL2csICcnKVxuICAgIC5yZXBsYWNlKC8oW15cXHddK3xcXHMrKS9nLCAnLScpXG4gICAgLnJlcGxhY2UoL1xcLVxcLSsvZywgJy0nKVxuICAgIC5yZXBsYWNlKC8oXi0rfC0rJCkvLCAnJykudG9Mb3dlckNhc2UoKTtcbn1cblxuaW50ZXJmYWNlIFByb3BzIHtcbiAgY29udHJvbDogYW55O1xuICBlcnJvcnM6IGFueTtcbn1cblxuZnVuY3Rpb24gSW5wdXRDaGVja1N0b3JlTmFtZSh7IGNvbnRyb2wsIGVycm9ycyB9OiBQcm9wcykge1xuICBjb25zdCB7XG4gICAgZmllbGQ6IHsgcmVmLCB2YWx1ZSwgLi4uaW5wdXRQcm9wcyB9LFxuICAgIGZpZWxkU3RhdGU6IHsgaW52YWxpZCB9XG4gIH0gPSB1c2VDb250cm9sbGVyKHtcbiAgICBuYW1lOiAnc3ViRG9tYWluJyxcbiAgICBjb250cm9sLFxuICAgIGRlZmF1bHRWYWx1ZTogXCJcIlxuICB9KTtcbiAgY29uc3Qge1xuICAgIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0Rm9ybUdyb3VwLFxuICAgIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0Rm9ybUlucHV0LFxuICAgIHVybEZyb250ZW5kLFxuICAgIHVybEFwaSxcbiAgfSA9IHVzZU1lcmNoaUNoZWNrYm91dENvbnRleHQoKTtcbiAgY29uc3QgW2NoZWNraW5nTmFtZSwgc2V0Q2hlY2tpbmdOYW1lXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgY29uc3QgW2F2YWlsYWJsZSwgc2V0QXZhaWxhYmxlXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgY29uc3QgW25ldXRyYWwsIHNldE5ldXRyYWxdID0gdXNlU3RhdGUodHJ1ZSk7XG4gIGFzeW5jIGZ1bmN0aW9uIGNoZWNrTmFtZSgpIHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgcmVzcG9uc2U6IGFueSA9IGF3YWl0IGNoZWNrU3RvcmVOYW1lKCh1cmxBcGkgYXMgc3RyaW5nKSwgdmFsdWUgfHwgJycpO1xuICAgICAgaWYgKHJlc3BvbnNlLm9rKSB7XG4gICAgICAgIHNldEF2YWlsYWJsZSh0cnVlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHNldEF2YWlsYWJsZShmYWxzZSk7XG4gICAgICB9XG4gICAgICBzZXRDaGVja2luZ05hbWUoZmFsc2UpO1xuICAgICAgc2V0TmV1dHJhbChmYWxzZSk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgc2V0Q2hlY2tpbmdOYW1lKGZhbHNlKTtcbiAgICAgIHNldE5ldXRyYWwoZmFsc2UpO1xuICAgICAgc2V0QXZhaWxhYmxlKGZhbHNlKTtcbiAgICB9XG4gIH1cbiAgY29uc3Qgc3R5bGUgPSB7XG4gICAgZm9udFNpemU6ICcwLjc1cmVtJyxcbiAgICBmb250V2VpZ2h0OiA2MDAsXG4gIH07XG5cbiAgLy8gVUkgZm9yIGRvbWFpbiBpbmRpY2F0aW9uLiBOZWVkcyBwcm9wZXIgbG9naWMuXG4gIGNvbnN0IGNvbG9ySW5kaWNhdGlvbiA9ICgpID0+IHtcbiAgICBpZiAoY2hlY2tpbmdOYW1lKSByZXR1cm4gJ3RleHQtbXV0ZWQnO1xuICAgIGlmIChhdmFpbGFibGUpIHJldHVybiAndGV4dC1zdWNjZXNzJztcbiAgICBpZiAobmV1dHJhbCkgcmV0dXJuICd0ZXh0LW11dGVkJztcbiAgICByZXR1cm4gJ3RleHQtZGFuZ2VyJztcbiAgfTtcblxuICAvLyBVSSBmb3IgZG9tYWluIGluZGljYXRpb24uIE5lZWRzIHByb3BlciBsb2dpYy5cbiAgY29uc3QgaWNvbkluZGljYXRpb24gPSAoKSA9PiB7XG4gICAgaWYgKGNoZWNraW5nTmFtZSkgcmV0dXJuIDxQaUNsb3VkQm9sZCBjbGFzc05hbWU9J3RleHQtbXV0ZWQgYW5pbWF0aW9uLWJsaW5rJyAvPjtcbiAgICBpZiAoYXZhaWxhYmxlKSByZXR1cm4gPFBpQ2xvdWRDaGVja0JvbGQgY2xhc3NOYW1lPSd0ZXh0LXN1Y2Nlc3MnIC8+O1xuICAgIGlmIChuZXV0cmFsKSByZXR1cm4gPFBpQ2xvdWRCb2xkIGNsYXNzTmFtZT0ndGV4dC1tdXRlZCcgLz47XG4gICAgcmV0dXJuIDxQaUNsb3VkWEJvbGQgY2xhc3NOYW1lPSd0ZXh0LWRhbmdlcicgLz47XG4gIH07XG5cbiAgZnVuY3Rpb24gTm90aWZpY2F0aW9uRG9tYWluVmFsaWQoKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3NOYW1lPSdkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyJ1xuICAgICAgICBzdHlsZT17eyBtYXJnaW46ICctMS4yNXJlbSAwIDAuNXJlbSAwJyB9fVxuICAgICAgPlxuICAgICAgICA8c3BhbiBzdHlsZT17c3R5bGV9IGNsYXNzTmFtZT0nbWwtMiBmb250LWl0YWxpYyc+XG4gICAgICAgICAgU3RvcmUgdXJsOlxuICAgICAgICA8L3NwYW4+XG4gICAgICAgIDxzcGFuXG4gICAgICAgICAgc3R5bGU9e3N0eWxlfVxuICAgICAgICAgIGNsYXNzTmFtZT17YG1sLTIgZm9udC1pdGFsaWMgbXItMSAke2NvbG9ySW5kaWNhdGlvbigpfWB9XG4gICAgICAgID5cbiAgICAgICAgICB7dmFsdWUgIT09ICcnID8gdmFsdWUgOiAneW91ci1zdG9yZSd9Lnt1cmxGcm9udGVuZH17JyAnfVxuICAgICAgICA8L3NwYW4+XG4gICAgICAgIHtpY29uSW5kaWNhdGlvbigpfVxuICAgICAgPC9kaXY+XG4gICAgKTtcbiAgfVxuICBjb25zdCBkZWJvdW5jZWRDaGVja05hbWUgPSBkZWJvdW5jZShjaGVja05hbWUsIDEwMDApO1xuICByZXR1cm4gKFxuICAgIDw+XG4gICAgICA8ZGl2IGNsYXNzTmFtZT17Y2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRGb3JtR3JvdXB9PlxuICAgICAgICA8aW5wdXRcbiAgICAgICAgICBjbGFzc05hbWU9e2Ake2NsYXNzTmFtZU1lcmNoaUNoZWNrb3V0Rm9ybUlucHV0fSAke2ludmFsaWQgJiYgJyBpcy1pbnZhbGlkJ31gfVxuICAgICAgICAgIHR5cGU9J3RleHQnXG4gICAgICAgICAgcGxhY2Vob2xkZXI9J1N0b3JlIG5hbWUnXG4gICAgICAgICAgey4uLmlucHV0UHJvcHN9XG4gICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PiB7XG4gICAgICAgICAgICBzZXRDaGVja2luZ05hbWUodHJ1ZSk7XG4gICAgICAgICAgICBpbnB1dFByb3BzLm9uQ2hhbmdlKHJlcGxhY2VTcGVjaWFsQ2hhcnMoZS50YXJnZXQudmFsdWUpKTtcbiAgICAgICAgICAgIGRlYm91bmNlZENoZWNrTmFtZSgpO1xuICAgICAgICAgIH19XG4gICAgICAgIC8+XG4gICAgICAgIHsoZXJyb3JzIGFzIGFueSkuc3ViRG9tYWluICYmIChcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT0ndGV4dC1kYW5nZXInIHN0eWxlPXt7IGRpc3BsYXk6ICdibG9jaycgfX0+XG4gICAgICAgICAgICB7ZXJyb3JzLnN1YkRvbWFpbi5tZXNzYWdlfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICApfVxuICAgICAgPC9kaXY+XG4gICAgICA8Tm90aWZpY2F0aW9uRG9tYWluVmFsaWQgLz5cbiAgICA8Lz5cbiAgKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgSW5wdXRDaGVja1N0b3JlTmFtZTtcbiJdLCJtYXBwaW5ncyI6IkFBQUEsWUFBWTs7QUFBQyxTQUFBQSxRQUFBQyxDQUFBLHNDQUFBRCxPQUFBLHdCQUFBRSxNQUFBLHVCQUFBQSxNQUFBLENBQUFDLFFBQUEsYUFBQUYsQ0FBQSxrQkFBQUEsQ0FBQSxnQkFBQUEsQ0FBQSxXQUFBQSxDQUFBLHlCQUFBQyxNQUFBLElBQUFELENBQUEsQ0FBQUcsV0FBQSxLQUFBRixNQUFBLElBQUFELENBQUEsS0FBQUMsTUFBQSxDQUFBRyxTQUFBLHFCQUFBSixDQUFBLEtBQUFELE9BQUEsQ0FBQUMsQ0FBQTtBQUFBLElBQUFLLFNBQUE7QUFBQSxTQUFBQyxvQkFBQSxrQkFDYixxSkFBQUEsbUJBQUEsWUFBQUEsb0JBQUEsV0FBQUMsQ0FBQSxTQUFBQyxDQUFBLEVBQUFELENBQUEsT0FBQUUsQ0FBQSxHQUFBQyxNQUFBLENBQUFOLFNBQUEsRUFBQU8sQ0FBQSxHQUFBRixDQUFBLENBQUFHLGNBQUEsRUFBQVosQ0FBQSxHQUFBVSxNQUFBLENBQUFHLGNBQUEsY0FBQUwsQ0FBQSxFQUFBRCxDQUFBLEVBQUFFLENBQUEsSUFBQUQsQ0FBQSxDQUFBRCxDQUFBLElBQUFFLENBQUEsQ0FBQUssS0FBQSxLQUFBQyxDQUFBLHdCQUFBZCxNQUFBLEdBQUFBLE1BQUEsT0FBQWUsQ0FBQSxHQUFBRCxDQUFBLENBQUFiLFFBQUEsa0JBQUFlLENBQUEsR0FBQUYsQ0FBQSxDQUFBRyxhQUFBLHVCQUFBQyxDQUFBLEdBQUFKLENBQUEsQ0FBQUssV0FBQSw4QkFBQUMsT0FBQWIsQ0FBQSxFQUFBRCxDQUFBLEVBQUFFLENBQUEsV0FBQUMsTUFBQSxDQUFBRyxjQUFBLENBQUFMLENBQUEsRUFBQUQsQ0FBQSxJQUFBTyxLQUFBLEVBQUFMLENBQUEsRUFBQWEsVUFBQSxNQUFBQyxZQUFBLE1BQUFDLFFBQUEsU0FBQWhCLENBQUEsQ0FBQUQsQ0FBQSxXQUFBYyxNQUFBLG1CQUFBYixDQUFBLElBQUFhLE1BQUEsWUFBQUEsT0FBQWIsQ0FBQSxFQUFBRCxDQUFBLEVBQUFFLENBQUEsV0FBQUQsQ0FBQSxDQUFBRCxDQUFBLElBQUFFLENBQUEsZ0JBQUFnQixLQUFBakIsQ0FBQSxFQUFBRCxDQUFBLEVBQUFFLENBQUEsRUFBQUUsQ0FBQSxRQUFBSSxDQUFBLEdBQUFSLENBQUEsSUFBQUEsQ0FBQSxDQUFBSCxTQUFBLFlBQUFzQixTQUFBLEdBQUFuQixDQUFBLEdBQUFtQixTQUFBLEVBQUFWLENBQUEsR0FBQU4sTUFBQSxDQUFBaUIsTUFBQSxDQUFBWixDQUFBLENBQUFYLFNBQUEsR0FBQWEsQ0FBQSxPQUFBVyxPQUFBLENBQUFqQixDQUFBLGdCQUFBWCxDQUFBLENBQUFnQixDQUFBLGVBQUFGLEtBQUEsRUFBQWUsZ0JBQUEsQ0FBQXJCLENBQUEsRUFBQUMsQ0FBQSxFQUFBUSxDQUFBLE1BQUFELENBQUEsYUFBQWMsU0FBQXRCLENBQUEsRUFBQUQsQ0FBQSxFQUFBRSxDQUFBLG1CQUFBc0IsSUFBQSxZQUFBQyxHQUFBLEVBQUF4QixDQUFBLENBQUF5QixJQUFBLENBQUExQixDQUFBLEVBQUFFLENBQUEsY0FBQUQsQ0FBQSxhQUFBdUIsSUFBQSxXQUFBQyxHQUFBLEVBQUF4QixDQUFBLFFBQUFELENBQUEsQ0FBQWtCLElBQUEsR0FBQUEsSUFBQSxNQUFBUyxDQUFBLHFCQUFBQyxDQUFBLHFCQUFBQyxDQUFBLGdCQUFBQyxDQUFBLGdCQUFBQyxDQUFBLGdCQUFBWixVQUFBLGNBQUFhLGtCQUFBLGNBQUFDLDJCQUFBLFNBQUFDLENBQUEsT0FBQXBCLE1BQUEsQ0FBQW9CLENBQUEsRUFBQXpCLENBQUEscUNBQUEwQixDQUFBLEdBQUFoQyxNQUFBLENBQUFpQyxjQUFBLEVBQUFDLENBQUEsR0FBQUYsQ0FBQSxJQUFBQSxDQUFBLENBQUFBLENBQUEsQ0FBQUcsTUFBQSxRQUFBRCxDQUFBLElBQUFBLENBQUEsS0FBQW5DLENBQUEsSUFBQUUsQ0FBQSxDQUFBc0IsSUFBQSxDQUFBVyxDQUFBLEVBQUE1QixDQUFBLE1BQUF5QixDQUFBLEdBQUFHLENBQUEsT0FBQUUsQ0FBQSxHQUFBTiwwQkFBQSxDQUFBcEMsU0FBQSxHQUFBc0IsU0FBQSxDQUFBdEIsU0FBQSxHQUFBTSxNQUFBLENBQUFpQixNQUFBLENBQUFjLENBQUEsWUFBQU0sc0JBQUF2QyxDQUFBLGdDQUFBd0MsT0FBQSxXQUFBekMsQ0FBQSxJQUFBYyxNQUFBLENBQUFiLENBQUEsRUFBQUQsQ0FBQSxZQUFBQyxDQUFBLGdCQUFBeUMsT0FBQSxDQUFBMUMsQ0FBQSxFQUFBQyxDQUFBLHNCQUFBMEMsY0FBQTFDLENBQUEsRUFBQUQsQ0FBQSxhQUFBNEMsT0FBQTFDLENBQUEsRUFBQVQsQ0FBQSxFQUFBZSxDQUFBLEVBQUFDLENBQUEsUUFBQUMsQ0FBQSxHQUFBYSxRQUFBLENBQUF0QixDQUFBLENBQUFDLENBQUEsR0FBQUQsQ0FBQSxFQUFBUixDQUFBLG1CQUFBaUIsQ0FBQSxDQUFBYyxJQUFBLFFBQUFaLENBQUEsR0FBQUYsQ0FBQSxDQUFBZSxHQUFBLEVBQUFFLENBQUEsR0FBQWYsQ0FBQSxDQUFBTCxLQUFBLFNBQUFvQixDQUFBLGdCQUFBbkMsT0FBQSxDQUFBbUMsQ0FBQSxLQUFBdkIsQ0FBQSxDQUFBc0IsSUFBQSxDQUFBQyxDQUFBLGVBQUEzQixDQUFBLENBQUE2QyxPQUFBLENBQUFsQixDQUFBLENBQUFtQixPQUFBLEVBQUFDLElBQUEsV0FBQTlDLENBQUEsSUFBQTJDLE1BQUEsU0FBQTNDLENBQUEsRUFBQU8sQ0FBQSxFQUFBQyxDQUFBLGdCQUFBUixDQUFBLElBQUEyQyxNQUFBLFVBQUEzQyxDQUFBLEVBQUFPLENBQUEsRUFBQUMsQ0FBQSxRQUFBVCxDQUFBLENBQUE2QyxPQUFBLENBQUFsQixDQUFBLEVBQUFvQixJQUFBLFdBQUE5QyxDQUFBLElBQUFXLENBQUEsQ0FBQUwsS0FBQSxHQUFBTixDQUFBLEVBQUFPLENBQUEsQ0FBQUksQ0FBQSxnQkFBQVgsQ0FBQSxXQUFBMkMsTUFBQSxVQUFBM0MsQ0FBQSxFQUFBTyxDQUFBLEVBQUFDLENBQUEsU0FBQUEsQ0FBQSxDQUFBQyxDQUFBLENBQUFlLEdBQUEsU0FBQXZCLENBQUEsRUFBQVQsQ0FBQSxvQkFBQWMsS0FBQSxXQUFBQSxNQUFBTixDQUFBLEVBQUFHLENBQUEsYUFBQTRDLDJCQUFBLGVBQUFoRCxDQUFBLFdBQUFBLENBQUEsRUFBQUUsQ0FBQSxJQUFBMEMsTUFBQSxDQUFBM0MsQ0FBQSxFQUFBRyxDQUFBLEVBQUFKLENBQUEsRUFBQUUsQ0FBQSxnQkFBQUEsQ0FBQSxHQUFBQSxDQUFBLEdBQUFBLENBQUEsQ0FBQTZDLElBQUEsQ0FBQUMsMEJBQUEsRUFBQUEsMEJBQUEsSUFBQUEsMEJBQUEscUJBQUExQixpQkFBQXRCLENBQUEsRUFBQUUsQ0FBQSxFQUFBRSxDQUFBLFFBQUFYLENBQUEsR0FBQWtDLENBQUEsbUJBQUFuQixDQUFBLEVBQUFDLENBQUEsUUFBQWhCLENBQUEsS0FBQW9DLENBQUEsWUFBQW9CLEtBQUEsc0NBQUF4RCxDQUFBLEtBQUFxQyxDQUFBLG9CQUFBdEIsQ0FBQSxRQUFBQyxDQUFBLFdBQUFGLEtBQUEsRUFBQU4sQ0FBQSxFQUFBaUQsSUFBQSxlQUFBOUMsQ0FBQSxDQUFBK0MsTUFBQSxHQUFBM0MsQ0FBQSxFQUFBSixDQUFBLENBQUFxQixHQUFBLEdBQUFoQixDQUFBLFVBQUFDLENBQUEsR0FBQU4sQ0FBQSxDQUFBZ0QsUUFBQSxNQUFBMUMsQ0FBQSxRQUFBRSxDQUFBLEdBQUF5QyxtQkFBQSxDQUFBM0MsQ0FBQSxFQUFBTixDQUFBLE9BQUFRLENBQUEsUUFBQUEsQ0FBQSxLQUFBbUIsQ0FBQSxtQkFBQW5CLENBQUEscUJBQUFSLENBQUEsQ0FBQStDLE1BQUEsRUFBQS9DLENBQUEsQ0FBQWtELElBQUEsR0FBQWxELENBQUEsQ0FBQW1ELEtBQUEsR0FBQW5ELENBQUEsQ0FBQXFCLEdBQUEsc0JBQUFyQixDQUFBLENBQUErQyxNQUFBLFFBQUExRCxDQUFBLEtBQUFrQyxDQUFBLFFBQUFsQyxDQUFBLEdBQUFxQyxDQUFBLEVBQUExQixDQUFBLENBQUFxQixHQUFBLEVBQUFyQixDQUFBLENBQUFvRCxpQkFBQSxDQUFBcEQsQ0FBQSxDQUFBcUIsR0FBQSx1QkFBQXJCLENBQUEsQ0FBQStDLE1BQUEsSUFBQS9DLENBQUEsQ0FBQXFELE1BQUEsV0FBQXJELENBQUEsQ0FBQXFCLEdBQUEsR0FBQWhDLENBQUEsR0FBQW9DLENBQUEsTUFBQUssQ0FBQSxHQUFBWCxRQUFBLENBQUF2QixDQUFBLEVBQUFFLENBQUEsRUFBQUUsQ0FBQSxvQkFBQThCLENBQUEsQ0FBQVYsSUFBQSxRQUFBL0IsQ0FBQSxHQUFBVyxDQUFBLENBQUE4QyxJQUFBLEdBQUFwQixDQUFBLEdBQUFGLENBQUEsRUFBQU0sQ0FBQSxDQUFBVCxHQUFBLEtBQUFNLENBQUEscUJBQUF4QixLQUFBLEVBQUEyQixDQUFBLENBQUFULEdBQUEsRUFBQXlCLElBQUEsRUFBQTlDLENBQUEsQ0FBQThDLElBQUEsa0JBQUFoQixDQUFBLENBQUFWLElBQUEsS0FBQS9CLENBQUEsR0FBQXFDLENBQUEsRUFBQTFCLENBQUEsQ0FBQStDLE1BQUEsWUFBQS9DLENBQUEsQ0FBQXFCLEdBQUEsR0FBQVMsQ0FBQSxDQUFBVCxHQUFBLG1CQUFBNEIsb0JBQUFyRCxDQUFBLEVBQUFFLENBQUEsUUFBQUUsQ0FBQSxHQUFBRixDQUFBLENBQUFpRCxNQUFBLEVBQUExRCxDQUFBLEdBQUFPLENBQUEsQ0FBQUwsUUFBQSxDQUFBUyxDQUFBLE9BQUFYLENBQUEsS0FBQVEsQ0FBQSxTQUFBQyxDQUFBLENBQUFrRCxRQUFBLHFCQUFBaEQsQ0FBQSxJQUFBSixDQUFBLENBQUFMLFFBQUEsZUFBQU8sQ0FBQSxDQUFBaUQsTUFBQSxhQUFBakQsQ0FBQSxDQUFBdUIsR0FBQSxHQUFBeEIsQ0FBQSxFQUFBb0QsbUJBQUEsQ0FBQXJELENBQUEsRUFBQUUsQ0FBQSxlQUFBQSxDQUFBLENBQUFpRCxNQUFBLGtCQUFBL0MsQ0FBQSxLQUFBRixDQUFBLENBQUFpRCxNQUFBLFlBQUFqRCxDQUFBLENBQUF1QixHQUFBLE9BQUFpQyxTQUFBLHVDQUFBdEQsQ0FBQSxpQkFBQTJCLENBQUEsTUFBQXZCLENBQUEsR0FBQWUsUUFBQSxDQUFBOUIsQ0FBQSxFQUFBTyxDQUFBLENBQUFMLFFBQUEsRUFBQU8sQ0FBQSxDQUFBdUIsR0FBQSxtQkFBQWpCLENBQUEsQ0FBQWdCLElBQUEsU0FBQXRCLENBQUEsQ0FBQWlELE1BQUEsWUFBQWpELENBQUEsQ0FBQXVCLEdBQUEsR0FBQWpCLENBQUEsQ0FBQWlCLEdBQUEsRUFBQXZCLENBQUEsQ0FBQWtELFFBQUEsU0FBQXJCLENBQUEsTUFBQXRCLENBQUEsR0FBQUQsQ0FBQSxDQUFBaUIsR0FBQSxTQUFBaEIsQ0FBQSxHQUFBQSxDQUFBLENBQUF5QyxJQUFBLElBQUFoRCxDQUFBLENBQUFGLENBQUEsQ0FBQTJELFVBQUEsSUFBQWxELENBQUEsQ0FBQUYsS0FBQSxFQUFBTCxDQUFBLENBQUEwRCxJQUFBLEdBQUE1RCxDQUFBLENBQUE2RCxPQUFBLGVBQUEzRCxDQUFBLENBQUFpRCxNQUFBLEtBQUFqRCxDQUFBLENBQUFpRCxNQUFBLFdBQUFqRCxDQUFBLENBQUF1QixHQUFBLEdBQUF4QixDQUFBLEdBQUFDLENBQUEsQ0FBQWtELFFBQUEsU0FBQXJCLENBQUEsSUFBQXRCLENBQUEsSUFBQVAsQ0FBQSxDQUFBaUQsTUFBQSxZQUFBakQsQ0FBQSxDQUFBdUIsR0FBQSxPQUFBaUMsU0FBQSxzQ0FBQXhELENBQUEsQ0FBQWtELFFBQUEsU0FBQXJCLENBQUEsY0FBQStCLGFBQUE3RCxDQUFBLFFBQUFELENBQUEsS0FBQStELE1BQUEsRUFBQTlELENBQUEsWUFBQUEsQ0FBQSxLQUFBRCxDQUFBLENBQUFnRSxRQUFBLEdBQUEvRCxDQUFBLFdBQUFBLENBQUEsS0FBQUQsQ0FBQSxDQUFBaUUsVUFBQSxHQUFBaEUsQ0FBQSxLQUFBRCxDQUFBLENBQUFrRSxRQUFBLEdBQUFqRSxDQUFBLFdBQUFrRSxVQUFBLENBQUFDLElBQUEsQ0FBQXBFLENBQUEsY0FBQXFFLGNBQUFwRSxDQUFBLFFBQUFELENBQUEsR0FBQUMsQ0FBQSxDQUFBcUUsVUFBQSxRQUFBdEUsQ0FBQSxDQUFBd0IsSUFBQSxvQkFBQXhCLENBQUEsQ0FBQXlCLEdBQUEsRUFBQXhCLENBQUEsQ0FBQXFFLFVBQUEsR0FBQXRFLENBQUEsYUFBQXFCLFFBQUFwQixDQUFBLFNBQUFrRSxVQUFBLE1BQUFKLE1BQUEsYUFBQTlELENBQUEsQ0FBQXdDLE9BQUEsQ0FBQXFCLFlBQUEsY0FBQVMsS0FBQSxpQkFBQWpDLE9BQUF0QyxDQUFBLFFBQUFBLENBQUEsV0FBQUEsQ0FBQSxRQUFBRSxDQUFBLEdBQUFGLENBQUEsQ0FBQVMsQ0FBQSxPQUFBUCxDQUFBLFNBQUFBLENBQUEsQ0FBQXdCLElBQUEsQ0FBQTFCLENBQUEsNEJBQUFBLENBQUEsQ0FBQTRELElBQUEsU0FBQTVELENBQUEsT0FBQXdFLEtBQUEsQ0FBQXhFLENBQUEsQ0FBQXlFLE1BQUEsU0FBQWhGLENBQUEsT0FBQWUsQ0FBQSxZQUFBb0QsS0FBQSxhQUFBbkUsQ0FBQSxHQUFBTyxDQUFBLENBQUF5RSxNQUFBLE9BQUFyRSxDQUFBLENBQUFzQixJQUFBLENBQUExQixDQUFBLEVBQUFQLENBQUEsVUFBQW1FLElBQUEsQ0FBQXJELEtBQUEsR0FBQVAsQ0FBQSxDQUFBUCxDQUFBLEdBQUFtRSxJQUFBLENBQUFWLElBQUEsT0FBQVUsSUFBQSxTQUFBQSxJQUFBLENBQUFyRCxLQUFBLEdBQUFOLENBQUEsRUFBQTJELElBQUEsQ0FBQVYsSUFBQSxPQUFBVSxJQUFBLFlBQUFwRCxDQUFBLENBQUFvRCxJQUFBLEdBQUFwRCxDQUFBLGdCQUFBa0QsU0FBQSxDQUFBbEUsT0FBQSxDQUFBUSxDQUFBLGtDQUFBZ0MsaUJBQUEsQ0FBQW5DLFNBQUEsR0FBQW9DLDBCQUFBLEVBQUF4QyxDQUFBLENBQUE4QyxDQUFBLG1CQUFBaEMsS0FBQSxFQUFBMEIsMEJBQUEsRUFBQWpCLFlBQUEsU0FBQXZCLENBQUEsQ0FBQXdDLDBCQUFBLG1CQUFBMUIsS0FBQSxFQUFBeUIsaUJBQUEsRUFBQWhCLFlBQUEsU0FBQWdCLGlCQUFBLENBQUEwQyxXQUFBLEdBQUE1RCxNQUFBLENBQUFtQiwwQkFBQSxFQUFBckIsQ0FBQSx3QkFBQVosQ0FBQSxDQUFBMkUsbUJBQUEsYUFBQTFFLENBQUEsUUFBQUQsQ0FBQSx3QkFBQUMsQ0FBQSxJQUFBQSxDQUFBLENBQUFMLFdBQUEsV0FBQUksQ0FBQSxLQUFBQSxDQUFBLEtBQUFnQyxpQkFBQSw2QkFBQWhDLENBQUEsQ0FBQTBFLFdBQUEsSUFBQTFFLENBQUEsQ0FBQTRFLElBQUEsT0FBQTVFLENBQUEsQ0FBQTZFLElBQUEsYUFBQTVFLENBQUEsV0FBQUUsTUFBQSxDQUFBMkUsY0FBQSxHQUFBM0UsTUFBQSxDQUFBMkUsY0FBQSxDQUFBN0UsQ0FBQSxFQUFBZ0MsMEJBQUEsS0FBQWhDLENBQUEsQ0FBQThFLFNBQUEsR0FBQTlDLDBCQUFBLEVBQUFuQixNQUFBLENBQUFiLENBQUEsRUFBQVcsQ0FBQSx5QkFBQVgsQ0FBQSxDQUFBSixTQUFBLEdBQUFNLE1BQUEsQ0FBQWlCLE1BQUEsQ0FBQW1CLENBQUEsR0FBQXRDLENBQUEsS0FBQUQsQ0FBQSxDQUFBZ0YsS0FBQSxhQUFBL0UsQ0FBQSxhQUFBNkMsT0FBQSxFQUFBN0MsQ0FBQSxPQUFBdUMscUJBQUEsQ0FBQUcsYUFBQSxDQUFBOUMsU0FBQSxHQUFBaUIsTUFBQSxDQUFBNkIsYUFBQSxDQUFBOUMsU0FBQSxFQUFBYSxDQUFBLGlDQUFBVixDQUFBLENBQUEyQyxhQUFBLEdBQUFBLGFBQUEsRUFBQTNDLENBQUEsQ0FBQWlGLEtBQUEsYUFBQWhGLENBQUEsRUFBQUMsQ0FBQSxFQUFBRSxDQUFBLEVBQUFYLENBQUEsRUFBQWUsQ0FBQSxlQUFBQSxDQUFBLEtBQUFBLENBQUEsR0FBQTBFLE9BQUEsT0FBQXpFLENBQUEsT0FBQWtDLGFBQUEsQ0FBQXpCLElBQUEsQ0FBQWpCLENBQUEsRUFBQUMsQ0FBQSxFQUFBRSxDQUFBLEVBQUFYLENBQUEsR0FBQWUsQ0FBQSxVQUFBUixDQUFBLENBQUEyRSxtQkFBQSxDQUFBekUsQ0FBQSxJQUFBTyxDQUFBLEdBQUFBLENBQUEsQ0FBQW1ELElBQUEsR0FBQWIsSUFBQSxXQUFBOUMsQ0FBQSxXQUFBQSxDQUFBLENBQUFpRCxJQUFBLEdBQUFqRCxDQUFBLENBQUFNLEtBQUEsR0FBQUUsQ0FBQSxDQUFBbUQsSUFBQSxXQUFBcEIscUJBQUEsQ0FBQUQsQ0FBQSxHQUFBekIsTUFBQSxDQUFBeUIsQ0FBQSxFQUFBM0IsQ0FBQSxnQkFBQUUsTUFBQSxDQUFBeUIsQ0FBQSxFQUFBOUIsQ0FBQSxpQ0FBQUssTUFBQSxDQUFBeUIsQ0FBQSw2REFBQXZDLENBQUEsQ0FBQW1GLElBQUEsYUFBQWxGLENBQUEsUUFBQUQsQ0FBQSxHQUFBRyxNQUFBLENBQUFGLENBQUEsR0FBQUMsQ0FBQSxnQkFBQUUsQ0FBQSxJQUFBSixDQUFBLEVBQUFFLENBQUEsQ0FBQWtFLElBQUEsQ0FBQWhFLENBQUEsVUFBQUYsQ0FBQSxDQUFBa0YsT0FBQSxhQUFBeEIsS0FBQSxXQUFBMUQsQ0FBQSxDQUFBdUUsTUFBQSxTQUFBeEUsQ0FBQSxHQUFBQyxDQUFBLENBQUFtRixHQUFBLFFBQUFwRixDQUFBLElBQUFELENBQUEsU0FBQTRELElBQUEsQ0FBQXJELEtBQUEsR0FBQU4sQ0FBQSxFQUFBMkQsSUFBQSxDQUFBVixJQUFBLE9BQUFVLElBQUEsV0FBQUEsSUFBQSxDQUFBVixJQUFBLE9BQUFVLElBQUEsUUFBQTVELENBQUEsQ0FBQXNDLE1BQUEsR0FBQUEsTUFBQSxFQUFBakIsT0FBQSxDQUFBeEIsU0FBQSxLQUFBRCxXQUFBLEVBQUF5QixPQUFBLEVBQUFrRCxLQUFBLFdBQUFBLE1BQUF2RSxDQUFBLGFBQUFzRixJQUFBLFdBQUExQixJQUFBLFdBQUFOLElBQUEsUUFBQUMsS0FBQSxHQUFBdEQsQ0FBQSxPQUFBaUQsSUFBQSxZQUFBRSxRQUFBLGNBQUFELE1BQUEsZ0JBQUExQixHQUFBLEdBQUF4QixDQUFBLE9BQUFrRSxVQUFBLENBQUExQixPQUFBLENBQUE0QixhQUFBLElBQUFyRSxDQUFBLFdBQUFFLENBQUEsa0JBQUFBLENBQUEsQ0FBQXFGLE1BQUEsT0FBQW5GLENBQUEsQ0FBQXNCLElBQUEsT0FBQXhCLENBQUEsTUFBQXNFLEtBQUEsRUFBQXRFLENBQUEsQ0FBQXNGLEtBQUEsY0FBQXRGLENBQUEsSUFBQUQsQ0FBQSxNQUFBd0YsSUFBQSxXQUFBQSxLQUFBLFNBQUF2QyxJQUFBLFdBQUFqRCxDQUFBLFFBQUFrRSxVQUFBLElBQUFHLFVBQUEsa0JBQUFyRSxDQUFBLENBQUF1QixJQUFBLFFBQUF2QixDQUFBLENBQUF3QixHQUFBLGNBQUFpRSxJQUFBLEtBQUFsQyxpQkFBQSxXQUFBQSxrQkFBQXhELENBQUEsYUFBQWtELElBQUEsUUFBQWxELENBQUEsTUFBQUUsQ0FBQSxrQkFBQXlGLE9BQUF2RixDQUFBLEVBQUFYLENBQUEsV0FBQWdCLENBQUEsQ0FBQWUsSUFBQSxZQUFBZixDQUFBLENBQUFnQixHQUFBLEdBQUF6QixDQUFBLEVBQUFFLENBQUEsQ0FBQTBELElBQUEsR0FBQXhELENBQUEsRUFBQVgsQ0FBQSxLQUFBUyxDQUFBLENBQUFpRCxNQUFBLFdBQUFqRCxDQUFBLENBQUF1QixHQUFBLEdBQUF4QixDQUFBLEtBQUFSLENBQUEsYUFBQUEsQ0FBQSxRQUFBMEUsVUFBQSxDQUFBTSxNQUFBLE1BQUFoRixDQUFBLFNBQUFBLENBQUEsUUFBQWUsQ0FBQSxRQUFBMkQsVUFBQSxDQUFBMUUsQ0FBQSxHQUFBZ0IsQ0FBQSxHQUFBRCxDQUFBLENBQUE4RCxVQUFBLGlCQUFBOUQsQ0FBQSxDQUFBdUQsTUFBQSxTQUFBNEIsTUFBQSxhQUFBbkYsQ0FBQSxDQUFBdUQsTUFBQSxTQUFBdUIsSUFBQSxRQUFBNUUsQ0FBQSxHQUFBTixDQUFBLENBQUFzQixJQUFBLENBQUFsQixDQUFBLGVBQUFJLENBQUEsR0FBQVIsQ0FBQSxDQUFBc0IsSUFBQSxDQUFBbEIsQ0FBQSxxQkFBQUUsQ0FBQSxJQUFBRSxDQUFBLGFBQUEwRSxJQUFBLEdBQUE5RSxDQUFBLENBQUF3RCxRQUFBLFNBQUEyQixNQUFBLENBQUFuRixDQUFBLENBQUF3RCxRQUFBLGdCQUFBc0IsSUFBQSxHQUFBOUUsQ0FBQSxDQUFBeUQsVUFBQSxTQUFBMEIsTUFBQSxDQUFBbkYsQ0FBQSxDQUFBeUQsVUFBQSxjQUFBdkQsQ0FBQSxhQUFBNEUsSUFBQSxHQUFBOUUsQ0FBQSxDQUFBd0QsUUFBQSxTQUFBMkIsTUFBQSxDQUFBbkYsQ0FBQSxDQUFBd0QsUUFBQSxxQkFBQXBELENBQUEsWUFBQXFDLEtBQUEscURBQUFxQyxJQUFBLEdBQUE5RSxDQUFBLENBQUF5RCxVQUFBLFNBQUEwQixNQUFBLENBQUFuRixDQUFBLENBQUF5RCxVQUFBLFlBQUFSLE1BQUEsV0FBQUEsT0FBQXhELENBQUEsRUFBQUQsQ0FBQSxhQUFBRSxDQUFBLFFBQUFpRSxVQUFBLENBQUFNLE1BQUEsTUFBQXZFLENBQUEsU0FBQUEsQ0FBQSxRQUFBVCxDQUFBLFFBQUEwRSxVQUFBLENBQUFqRSxDQUFBLE9BQUFULENBQUEsQ0FBQXNFLE1BQUEsU0FBQXVCLElBQUEsSUFBQWxGLENBQUEsQ0FBQXNCLElBQUEsQ0FBQWpDLENBQUEsd0JBQUE2RixJQUFBLEdBQUE3RixDQUFBLENBQUF3RSxVQUFBLFFBQUF6RCxDQUFBLEdBQUFmLENBQUEsYUFBQWUsQ0FBQSxpQkFBQVAsQ0FBQSxtQkFBQUEsQ0FBQSxLQUFBTyxDQUFBLENBQUF1RCxNQUFBLElBQUEvRCxDQUFBLElBQUFBLENBQUEsSUFBQVEsQ0FBQSxDQUFBeUQsVUFBQSxLQUFBekQsQ0FBQSxjQUFBQyxDQUFBLEdBQUFELENBQUEsR0FBQUEsQ0FBQSxDQUFBOEQsVUFBQSxjQUFBN0QsQ0FBQSxDQUFBZSxJQUFBLEdBQUF2QixDQUFBLEVBQUFRLENBQUEsQ0FBQWdCLEdBQUEsR0FBQXpCLENBQUEsRUFBQVEsQ0FBQSxTQUFBMkMsTUFBQSxnQkFBQVMsSUFBQSxHQUFBcEQsQ0FBQSxDQUFBeUQsVUFBQSxFQUFBbEMsQ0FBQSxTQUFBNkQsUUFBQSxDQUFBbkYsQ0FBQSxNQUFBbUYsUUFBQSxXQUFBQSxTQUFBM0YsQ0FBQSxFQUFBRCxDQUFBLG9CQUFBQyxDQUFBLENBQUF1QixJQUFBLFFBQUF2QixDQUFBLENBQUF3QixHQUFBLHFCQUFBeEIsQ0FBQSxDQUFBdUIsSUFBQSxtQkFBQXZCLENBQUEsQ0FBQXVCLElBQUEsUUFBQW9DLElBQUEsR0FBQTNELENBQUEsQ0FBQXdCLEdBQUEsZ0JBQUF4QixDQUFBLENBQUF1QixJQUFBLFNBQUFrRSxJQUFBLFFBQUFqRSxHQUFBLEdBQUF4QixDQUFBLENBQUF3QixHQUFBLE9BQUEwQixNQUFBLGtCQUFBUyxJQUFBLHlCQUFBM0QsQ0FBQSxDQUFBdUIsSUFBQSxJQUFBeEIsQ0FBQSxVQUFBNEQsSUFBQSxHQUFBNUQsQ0FBQSxHQUFBK0IsQ0FBQSxLQUFBOEQsTUFBQSxXQUFBQSxPQUFBNUYsQ0FBQSxhQUFBRCxDQUFBLFFBQUFtRSxVQUFBLENBQUFNLE1BQUEsTUFBQXpFLENBQUEsU0FBQUEsQ0FBQSxRQUFBRSxDQUFBLFFBQUFpRSxVQUFBLENBQUFuRSxDQUFBLE9BQUFFLENBQUEsQ0FBQStELFVBQUEsS0FBQWhFLENBQUEsY0FBQTJGLFFBQUEsQ0FBQTFGLENBQUEsQ0FBQW9FLFVBQUEsRUFBQXBFLENBQUEsQ0FBQWdFLFFBQUEsR0FBQUcsYUFBQSxDQUFBbkUsQ0FBQSxHQUFBNkIsQ0FBQSx5QkFBQStELE9BQUE3RixDQUFBLGFBQUFELENBQUEsUUFBQW1FLFVBQUEsQ0FBQU0sTUFBQSxNQUFBekUsQ0FBQSxTQUFBQSxDQUFBLFFBQUFFLENBQUEsUUFBQWlFLFVBQUEsQ0FBQW5FLENBQUEsT0FBQUUsQ0FBQSxDQUFBNkQsTUFBQSxLQUFBOUQsQ0FBQSxRQUFBRyxDQUFBLEdBQUFGLENBQUEsQ0FBQW9FLFVBQUEsa0JBQUFsRSxDQUFBLENBQUFvQixJQUFBLFFBQUEvQixDQUFBLEdBQUFXLENBQUEsQ0FBQXFCLEdBQUEsRUFBQTRDLGFBQUEsQ0FBQW5FLENBQUEsWUFBQVQsQ0FBQSxnQkFBQXdELEtBQUEsOEJBQUE4QyxhQUFBLFdBQUFBLGNBQUEvRixDQUFBLEVBQUFFLENBQUEsRUFBQUUsQ0FBQSxnQkFBQWdELFFBQUEsS0FBQXpELFFBQUEsRUFBQTJDLE1BQUEsQ0FBQXRDLENBQUEsR0FBQTJELFVBQUEsRUFBQXpELENBQUEsRUFBQTJELE9BQUEsRUFBQXpELENBQUEsb0JBQUErQyxNQUFBLFVBQUExQixHQUFBLEdBQUF4QixDQUFBLEdBQUE4QixDQUFBLE9BQUEvQixDQUFBO0FBQUEsU0FBQWdHLFFBQUFoRyxDQUFBLEVBQUFFLENBQUEsUUFBQUQsQ0FBQSxHQUFBRSxNQUFBLENBQUFnRixJQUFBLENBQUFuRixDQUFBLE9BQUFHLE1BQUEsQ0FBQThGLHFCQUFBLFFBQUF4RyxDQUFBLEdBQUFVLE1BQUEsQ0FBQThGLHFCQUFBLENBQUFqRyxDQUFBLEdBQUFFLENBQUEsS0FBQVQsQ0FBQSxHQUFBQSxDQUFBLENBQUF5RyxNQUFBLFdBQUFoRyxDQUFBLFdBQUFDLE1BQUEsQ0FBQWdHLHdCQUFBLENBQUFuRyxDQUFBLEVBQUFFLENBQUEsRUFBQWEsVUFBQSxPQUFBZCxDQUFBLENBQUFtRSxJQUFBLENBQUFnQyxLQUFBLENBQUFuRyxDQUFBLEVBQUFSLENBQUEsWUFBQVEsQ0FBQTtBQUFBLFNBQUFvRyxjQUFBckcsQ0FBQSxhQUFBRSxDQUFBLE1BQUFBLENBQUEsR0FBQW9HLFNBQUEsQ0FBQTdCLE1BQUEsRUFBQXZFLENBQUEsVUFBQUQsQ0FBQSxXQUFBcUcsU0FBQSxDQUFBcEcsQ0FBQSxJQUFBb0csU0FBQSxDQUFBcEcsQ0FBQSxRQUFBQSxDQUFBLE9BQUE4RixPQUFBLENBQUE3RixNQUFBLENBQUFGLENBQUEsT0FBQXdDLE9BQUEsV0FBQXZDLENBQUEsSUFBQXFHLGVBQUEsQ0FBQXZHLENBQUEsRUFBQUUsQ0FBQSxFQUFBRCxDQUFBLENBQUFDLENBQUEsU0FBQUMsTUFBQSxDQUFBcUcseUJBQUEsR0FBQXJHLE1BQUEsQ0FBQXNHLGdCQUFBLENBQUF6RyxDQUFBLEVBQUFHLE1BQUEsQ0FBQXFHLHlCQUFBLENBQUF2RyxDQUFBLEtBQUErRixPQUFBLENBQUE3RixNQUFBLENBQUFGLENBQUEsR0FBQXdDLE9BQUEsV0FBQXZDLENBQUEsSUFBQUMsTUFBQSxDQUFBRyxjQUFBLENBQUFOLENBQUEsRUFBQUUsQ0FBQSxFQUFBQyxNQUFBLENBQUFnRyx3QkFBQSxDQUFBbEcsQ0FBQSxFQUFBQyxDQUFBLGlCQUFBRixDQUFBO0FBQUEsU0FBQXVHLGdCQUFBRyxHQUFBLEVBQUFDLEdBQUEsRUFBQXBHLEtBQUEsSUFBQW9HLEdBQUEsR0FBQUMsY0FBQSxDQUFBRCxHQUFBLE9BQUFBLEdBQUEsSUFBQUQsR0FBQSxJQUFBdkcsTUFBQSxDQUFBRyxjQUFBLENBQUFvRyxHQUFBLEVBQUFDLEdBQUEsSUFBQXBHLEtBQUEsRUFBQUEsS0FBQSxFQUFBUSxVQUFBLFFBQUFDLFlBQUEsUUFBQUMsUUFBQSxvQkFBQXlGLEdBQUEsQ0FBQUMsR0FBQSxJQUFBcEcsS0FBQSxXQUFBbUcsR0FBQTtBQUFBLFNBQUFFLGVBQUEzRyxDQUFBLFFBQUFPLENBQUEsR0FBQXFHLFlBQUEsQ0FBQTVHLENBQUEsZ0NBQUFULE9BQUEsQ0FBQWdCLENBQUEsSUFBQUEsQ0FBQSxHQUFBc0csTUFBQSxDQUFBdEcsQ0FBQTtBQUFBLFNBQUFxRyxhQUFBNUcsQ0FBQSxFQUFBQyxDQUFBLG9CQUFBVixPQUFBLENBQUFTLENBQUEsTUFBQUEsQ0FBQSxTQUFBQSxDQUFBLE1BQUFELENBQUEsR0FBQUMsQ0FBQSxDQUFBUCxNQUFBLENBQUFxSCxXQUFBLGtCQUFBL0csQ0FBQSxRQUFBUSxDQUFBLEdBQUFSLENBQUEsQ0FBQTBCLElBQUEsQ0FBQXpCLENBQUEsRUFBQUMsQ0FBQSxnQ0FBQVYsT0FBQSxDQUFBZ0IsQ0FBQSxVQUFBQSxDQUFBLFlBQUFrRCxTQUFBLHlFQUFBeEQsQ0FBQSxHQUFBNEcsTUFBQSxHQUFBRSxNQUFBLEVBQUEvRyxDQUFBO0FBQUEsU0FBQWdILG1CQUFBQyxHQUFBLEVBQUFyRSxPQUFBLEVBQUFzRSxNQUFBLEVBQUFDLEtBQUEsRUFBQUMsTUFBQSxFQUFBVixHQUFBLEVBQUFsRixHQUFBLGNBQUE2RixJQUFBLEdBQUFKLEdBQUEsQ0FBQVAsR0FBQSxFQUFBbEYsR0FBQSxPQUFBbEIsS0FBQSxHQUFBK0csSUFBQSxDQUFBL0csS0FBQSxXQUFBZ0gsS0FBQSxJQUFBSixNQUFBLENBQUFJLEtBQUEsaUJBQUFELElBQUEsQ0FBQXBFLElBQUEsSUFBQUwsT0FBQSxDQUFBdEMsS0FBQSxZQUFBMkUsT0FBQSxDQUFBckMsT0FBQSxDQUFBdEMsS0FBQSxFQUFBd0MsSUFBQSxDQUFBcUUsS0FBQSxFQUFBQyxNQUFBO0FBQUEsU0FBQUcsa0JBQUFDLEVBQUEsNkJBQUFDLElBQUEsU0FBQUMsSUFBQSxHQUFBckIsU0FBQSxhQUFBcEIsT0FBQSxXQUFBckMsT0FBQSxFQUFBc0UsTUFBQSxRQUFBRCxHQUFBLEdBQUFPLEVBQUEsQ0FBQXJCLEtBQUEsQ0FBQXNCLElBQUEsRUFBQUMsSUFBQSxZQUFBUCxNQUFBN0csS0FBQSxJQUFBMEcsa0JBQUEsQ0FBQUMsR0FBQSxFQUFBckUsT0FBQSxFQUFBc0UsTUFBQSxFQUFBQyxLQUFBLEVBQUFDLE1BQUEsVUFBQTlHLEtBQUEsY0FBQThHLE9BQUFPLEdBQUEsSUFBQVgsa0JBQUEsQ0FBQUMsR0FBQSxFQUFBckUsT0FBQSxFQUFBc0UsTUFBQSxFQUFBQyxLQUFBLEVBQUFDLE1BQUEsV0FBQU8sR0FBQSxLQUFBUixLQUFBLENBQUFTLFNBQUE7QUFBQSxTQUFBQyxlQUFBQyxHQUFBLEVBQUF2SCxDQUFBLFdBQUF3SCxlQUFBLENBQUFELEdBQUEsS0FBQUUscUJBQUEsQ0FBQUYsR0FBQSxFQUFBdkgsQ0FBQSxLQUFBMEgsMkJBQUEsQ0FBQUgsR0FBQSxFQUFBdkgsQ0FBQSxLQUFBMkgsZ0JBQUE7QUFBQSxTQUFBQSxpQkFBQSxjQUFBekUsU0FBQTtBQUFBLFNBQUF3RSw0QkFBQXpJLENBQUEsRUFBQTJJLE1BQUEsU0FBQTNJLENBQUEscUJBQUFBLENBQUEsc0JBQUE0SSxpQkFBQSxDQUFBNUksQ0FBQSxFQUFBMkksTUFBQSxPQUFBaEksQ0FBQSxHQUFBRCxNQUFBLENBQUFOLFNBQUEsQ0FBQXlJLFFBQUEsQ0FBQTVHLElBQUEsQ0FBQWpDLENBQUEsRUFBQStGLEtBQUEsYUFBQXBGLENBQUEsaUJBQUFYLENBQUEsQ0FBQUcsV0FBQSxFQUFBUSxDQUFBLEdBQUFYLENBQUEsQ0FBQUcsV0FBQSxDQUFBZ0YsSUFBQSxNQUFBeEUsQ0FBQSxjQUFBQSxDQUFBLG1CQUFBbUksS0FBQSxDQUFBQyxJQUFBLENBQUEvSSxDQUFBLE9BQUFXLENBQUEsK0RBQUFxSSxJQUFBLENBQUFySSxDQUFBLFVBQUFpSSxpQkFBQSxDQUFBNUksQ0FBQSxFQUFBMkksTUFBQTtBQUFBLFNBQUFDLGtCQUFBTixHQUFBLEVBQUFXLEdBQUEsUUFBQUEsR0FBQSxZQUFBQSxHQUFBLEdBQUFYLEdBQUEsQ0FBQXRELE1BQUEsRUFBQWlFLEdBQUEsR0FBQVgsR0FBQSxDQUFBdEQsTUFBQSxXQUFBakUsQ0FBQSxNQUFBbUksSUFBQSxPQUFBSixLQUFBLENBQUFHLEdBQUEsR0FBQWxJLENBQUEsR0FBQWtJLEdBQUEsRUFBQWxJLENBQUEsSUFBQW1JLElBQUEsQ0FBQW5JLENBQUEsSUFBQXVILEdBQUEsQ0FBQXZILENBQUEsVUFBQW1JLElBQUE7QUFBQSxTQUFBVixzQkFBQS9ILENBQUEsRUFBQTBCLENBQUEsUUFBQTNCLENBQUEsV0FBQUMsQ0FBQSxnQ0FBQVIsTUFBQSxJQUFBUSxDQUFBLENBQUFSLE1BQUEsQ0FBQUMsUUFBQSxLQUFBTyxDQUFBLDRCQUFBRCxDQUFBLFFBQUFELENBQUEsRUFBQUksQ0FBQSxFQUFBSSxDQUFBLEVBQUFJLENBQUEsRUFBQUgsQ0FBQSxPQUFBb0IsQ0FBQSxPQUFBcEMsQ0FBQSxpQkFBQWUsQ0FBQSxJQUFBUCxDQUFBLEdBQUFBLENBQUEsQ0FBQXlCLElBQUEsQ0FBQXhCLENBQUEsR0FBQTBELElBQUEsUUFBQWhDLENBQUEsUUFBQXpCLE1BQUEsQ0FBQUYsQ0FBQSxNQUFBQSxDQUFBLFVBQUE0QixDQUFBLHVCQUFBQSxDQUFBLElBQUE3QixDQUFBLEdBQUFRLENBQUEsQ0FBQWtCLElBQUEsQ0FBQXpCLENBQUEsR0FBQWlELElBQUEsTUFBQXpDLENBQUEsQ0FBQTJELElBQUEsQ0FBQXBFLENBQUEsQ0FBQU8sS0FBQSxHQUFBRSxDQUFBLENBQUFnRSxNQUFBLEtBQUE3QyxDQUFBLEdBQUFDLENBQUEsaUJBQUEzQixDQUFBLElBQUFULENBQUEsT0FBQVcsQ0FBQSxHQUFBRixDQUFBLHlCQUFBMkIsQ0FBQSxZQUFBNUIsQ0FBQSxlQUFBVyxDQUFBLEdBQUFYLENBQUEsY0FBQUUsTUFBQSxDQUFBUyxDQUFBLE1BQUFBLENBQUEsMkJBQUFuQixDQUFBLFFBQUFXLENBQUEsYUFBQUssQ0FBQTtBQUFBLFNBQUF1SCxnQkFBQUQsR0FBQSxRQUFBUSxLQUFBLENBQUFLLE9BQUEsQ0FBQWIsR0FBQSxVQUFBQSxHQUFBO0FBQUEsU0FBQWMseUJBQUFDLE1BQUEsRUFBQUMsUUFBQSxRQUFBRCxNQUFBLHlCQUFBRSxNQUFBLEdBQUFDLDZCQUFBLENBQUFILE1BQUEsRUFBQUMsUUFBQSxPQUFBcEMsR0FBQSxFQUFBbkcsQ0FBQSxNQUFBTCxNQUFBLENBQUE4RixxQkFBQSxRQUFBaUQsZ0JBQUEsR0FBQS9JLE1BQUEsQ0FBQThGLHFCQUFBLENBQUE2QyxNQUFBLFFBQUF0SSxDQUFBLE1BQUFBLENBQUEsR0FBQTBJLGdCQUFBLENBQUF6RSxNQUFBLEVBQUFqRSxDQUFBLE1BQUFtRyxHQUFBLEdBQUF1QyxnQkFBQSxDQUFBMUksQ0FBQSxPQUFBdUksUUFBQSxDQUFBSSxPQUFBLENBQUF4QyxHQUFBLHVCQUFBeEcsTUFBQSxDQUFBTixTQUFBLENBQUF1SixvQkFBQSxDQUFBMUgsSUFBQSxDQUFBb0gsTUFBQSxFQUFBbkMsR0FBQSxhQUFBcUMsTUFBQSxDQUFBckMsR0FBQSxJQUFBbUMsTUFBQSxDQUFBbkMsR0FBQSxjQUFBcUMsTUFBQTtBQUFBLFNBQUFDLDhCQUFBSCxNQUFBLEVBQUFDLFFBQUEsUUFBQUQsTUFBQSx5QkFBQUUsTUFBQSxXQUFBSyxVQUFBLEdBQUFsSixNQUFBLENBQUFnRixJQUFBLENBQUEyRCxNQUFBLE9BQUFuQyxHQUFBLEVBQUFuRyxDQUFBLE9BQUFBLENBQUEsTUFBQUEsQ0FBQSxHQUFBNkksVUFBQSxDQUFBNUUsTUFBQSxFQUFBakUsQ0FBQSxNQUFBbUcsR0FBQSxHQUFBMEMsVUFBQSxDQUFBN0ksQ0FBQSxPQUFBdUksUUFBQSxDQUFBSSxPQUFBLENBQUF4QyxHQUFBLGtCQUFBcUMsTUFBQSxDQUFBckMsR0FBQSxJQUFBbUMsTUFBQSxDQUFBbkMsR0FBQSxZQUFBcUMsTUFBQTtBQUFBLFNBQVNNLFFBQVEsUUFBUSxPQUFPO0FBQ2hDLFNBQVNDLFFBQVEsUUFBUSxRQUFRO0FBQ2pDLFNBQVNDLGFBQWEsUUFBUSxpQkFBaUI7QUFDL0MsU0FBU0MsV0FBVyxFQUFFQyxnQkFBZ0IsRUFBRUMsWUFBWSxRQUFRLGdCQUFnQjtBQUM1RSxTQUFTQyxjQUFjLFFBQVEsc0JBQXNCO0FBQ3JELFNBQVNDLHlCQUF5QixRQUFRLDJCQUEyQjtBQUFDLFNBQUFDLEdBQUEsSUFBQUMsSUFBQTtBQUFBLFNBQUFDLElBQUEsSUFBQUMsS0FBQTtBQUFBLFNBQUFDLFFBQUEsSUFBQUMsU0FBQTtBQUV0RSxTQUFTQyxtQkFBbUJBLENBQUNDLEdBQVcsRUFBRTtFQUN4QyxPQUFPQSxHQUFHLENBQUNDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQ0MsT0FBTyxDQUFDLGtCQUFrQixFQUFFLEVBQUUsQ0FBQyxDQUN4REEsT0FBTyxDQUFDLGVBQWUsRUFBRSxHQUFHLENBQUMsQ0FDN0JBLE9BQU8sQ0FBQyxRQUFRLEVBQUUsR0FBRyxDQUFDLENBQ3RCQSxPQUFPLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQyxDQUFDQyxXQUFXLENBQUMsQ0FBQztBQUMzQztBQU9BLFNBQVNDLG1CQUFtQkEsQ0FBQUMsSUFBQSxFQUE2QjtFQUFBLElBQTFCQyxPQUFPLEdBQUFELElBQUEsQ0FBUEMsT0FBTztJQUFFQyxNQUFNLEdBQUFGLElBQUEsQ0FBTkUsTUFBTTtFQUM1QyxJQUFBQyxjQUFBLEdBR0lyQixhQUFhLENBQUM7TUFDaEI1RSxJQUFJLEVBQUUsV0FBVztNQUNqQitGLE9BQU8sRUFBUEEsT0FBTztNQUNQRyxZQUFZLEVBQUU7SUFDaEIsQ0FBQyxDQUFDO0lBQUFDLG9CQUFBLEdBQUFGLGNBQUEsQ0FOQUcsS0FBSztJQUFJQyxHQUFHLEdBQUFGLG9CQUFBLENBQUhFLEdBQUc7SUFBRTFLLEtBQUssR0FBQXdLLG9CQUFBLENBQUx4SyxLQUFLO0lBQUsySyxVQUFVLEdBQUFyQyx3QkFBQSxDQUFBa0Msb0JBQUEsRUFBQWpMLFNBQUE7SUFDcEJxTCxPQUFPLEdBQUFOLGNBQUEsQ0FBckJPLFVBQVUsQ0FBSUQsT0FBTztFQU12QixJQUFBRSxxQkFBQSxHQUtJeEIseUJBQXlCLENBQUMsQ0FBQztJQUo3QnlCLGdDQUFnQyxHQUFBRCxxQkFBQSxDQUFoQ0MsZ0NBQWdDO0lBQ2hDQyxnQ0FBZ0MsR0FBQUYscUJBQUEsQ0FBaENFLGdDQUFnQztJQUNoQ0MsV0FBVyxHQUFBSCxxQkFBQSxDQUFYRyxXQUFXO0lBQ1hDLE1BQU0