From c9f2c05d45ad38b00f976334c2d29b558733f4a8 Mon Sep 17 00:00:00 2001
From: Xingan Zhao <2081098605@qq.com>
Date: Wed, 2 Oct 2024 10:27:33 +0800
Subject: [PATCH] delete

---
 ....timestamp-1727829366072-1840f5b38e2f8.mjs | 135 ------------------
 1 file changed, 135 deletions(-)
 delete mode 100644 vite.config.ts.timestamp-1727829366072-1840f5b38e2f8.mjs

diff --git a/vite.config.ts.timestamp-1727829366072-1840f5b38e2f8.mjs b/vite.config.ts.timestamp-1727829366072-1840f5b38e2f8.mjs
deleted file mode 100644
index 469f095..0000000
--- a/vite.config.ts.timestamp-1727829366072-1840f5b38e2f8.mjs
+++ /dev/null
@@ -1,135 +0,0 @@
-// vite.config.ts
-import { defineConfig, loadEnv } from "file:///F:/smu-gdmu-china/node_modules/vite/dist/node/index.js";
-import react from "file:///F:/smu-gdmu-china/node_modules/@vitejs/plugin-react/dist/index.mjs";
-
-// src/contents/home.tsx
-import { useEffect, useState } from "file:///F:/smu-gdmu-china/node_modules/react/index.js";
-import { Element } from "file:///F:/smu-gdmu-china/node_modules/react-scroll/modules/index.js";
-import { jsx, jsxs } from "file:///F:/smu-gdmu-china/node_modules/react/jsx-runtime.js";
-
-// src/contents/team.tsx
-import { useState as useState2 } from "file:///F:/smu-gdmu-china/node_modules/react/index.js";
-import { Fragment, jsx as jsx2, jsxs as jsxs2 } from "file:///F:/smu-gdmu-china/node_modules/react/jsx-runtime.js";
-
-// src/contents/attributions.tsx
-import { useEffect as useEffect2 } from "file:///F:/smu-gdmu-china/node_modules/react/index.js";
-import { Fragment as Fragment2, jsx as jsx3, jsxs as jsxs3 } from "file:///F:/smu-gdmu-china/node_modules/react/jsx-runtime.js";
-
-// src/contents/contribution.tsx
-import { Nav } from "file:///F:/smu-gdmu-china/node_modules/react-bootstrap/cjs/index.js";
-import { Link, Element as Element2 } from "file:///F:/smu-gdmu-china/node_modules/react-scroll/modules/index.js";
-import { useEffect as useEffect3, useState as useState3 } from "file:///F:/smu-gdmu-china/node_modules/react/index.js";
-import { Fragment as Fragment3, jsx as jsx4, jsxs as jsxs4 } from "file:///F:/smu-gdmu-china/node_modules/react/jsx-runtime.js";
-
-// src/contents/description.tsx
-import { Nav as Nav2 } from "file:///F:/smu-gdmu-china/node_modules/react-bootstrap/cjs/index.js";
-import { Link as Link2, Element as Element3 } from "file:///F:/smu-gdmu-china/node_modules/react-scroll/modules/index.js";
-import { useEffect as useEffect4, useState as useState4 } from "file:///F:/smu-gdmu-china/node_modules/react/index.js";
-import { Fragment as Fragment4, jsx as jsx5, jsxs as jsxs5 } from "file:///F:/smu-gdmu-china/node_modules/react/jsx-runtime.js";
-{
-}
-
-// src/contents/engineering.tsx
-import { Nav as Nav3 } from "file:///F:/smu-gdmu-china/node_modules/react-bootstrap/cjs/index.js";
-import { Link as Link3, Element as Element4 } from "file:///F:/smu-gdmu-china/node_modules/react-scroll/modules/index.js";
-import { useEffect as useEffect5, useState as useState5 } from "file:///F:/smu-gdmu-china/node_modules/react/index.js";
-import { Fragment as Fragment5, jsx as jsx6, jsxs as jsxs6 } from "file:///F:/smu-gdmu-china/node_modules/react/jsx-runtime.js";
-
-// src/contents/experiments.tsx
-import { Nav as Nav4 } from "file:///F:/smu-gdmu-china/node_modules/react-bootstrap/cjs/index.js";
-import { Link as Link4, Element as Element5 } from "file:///F:/smu-gdmu-china/node_modules/react-scroll/modules/index.js";
-import { useEffect as useEffect6, useState as useState6 } from "file:///F:/smu-gdmu-china/node_modules/react/index.js";
-import { Fragment as Fragment6, jsx as jsx7, jsxs as jsxs7 } from "file:///F:/smu-gdmu-china/node_modules/react/jsx-runtime.js";
-
-// src/contents/notebook.tsx
-import { Nav as Nav5 } from "file:///F:/smu-gdmu-china/node_modules/react-bootstrap/cjs/index.js";
-import { Link as Link5, Element as Element6 } from "file:///F:/smu-gdmu-china/node_modules/react-scroll/modules/index.js";
-import { useEffect as useEffect7, useState as useState7 } from "file:///F:/smu-gdmu-china/node_modules/react/index.js";
-import { Fragment as Fragment7, jsx as jsx8, jsxs as jsxs8 } from "file:///F:/smu-gdmu-china/node_modules/react/jsx-runtime.js";
-
-// src/contents/results.tsx
-import { Nav as Nav6 } from "file:///F:/smu-gdmu-china/node_modules/react-bootstrap/cjs/index.js";
-import { Link as Link6, Element as Element7 } from "file:///F:/smu-gdmu-china/node_modules/react-scroll/modules/index.js";
-import { useEffect as useEffect8, useState as useState8 } from "file:///F:/smu-gdmu-china/node_modules/react/index.js";
-import { Fragment as Fragment8, jsx as jsx9, jsxs as jsxs9 } from "file:///F:/smu-gdmu-china/node_modules/react/jsx-runtime.js";
-
-// src/contents/safety.tsx
-import { Nav as Nav7 } from "file:///F:/smu-gdmu-china/node_modules/react-bootstrap/cjs/index.js";
-import { Link as Link7, Element as Element8 } from "file:///F:/smu-gdmu-china/node_modules/react-scroll/modules/index.js";
-import { useEffect as useEffect9, useState as useState9 } from "file:///F:/smu-gdmu-china/node_modules/react/index.js";
-import { Fragment as Fragment9, jsx as jsx10, jsxs as jsxs10 } from "file:///F:/smu-gdmu-china/node_modules/react/jsx-runtime.js";
-
-// src/contents/human-practices.tsx
-import { Nav as Nav8 } from "file:///F:/smu-gdmu-china/node_modules/react-bootstrap/cjs/index.js";
-import { Link as Link8, Element as Element9 } from "file:///F:/smu-gdmu-china/node_modules/react-scroll/modules/index.js";
-import { useEffect as useEffect10, useState as useState10 } from "file:///F:/smu-gdmu-china/node_modules/react/index.js";
-import { Fragment as Fragment10, jsx as jsx11, jsxs as jsxs11 } from "file:///F:/smu-gdmu-china/node_modules/react/jsx-runtime.js";
-
-// src/contents/education.tsx
-import { Nav as Nav9 } from "file:///F:/smu-gdmu-china/node_modules/react-bootstrap/cjs/index.js";
-import { Link as Link9, Element as Element10 } from "file:///F:/smu-gdmu-china/node_modules/react-scroll/modules/index.js";
-import { useEffect as useEffect11, useState as useState11 } from "file:///F:/smu-gdmu-china/node_modules/react/index.js";
-import { Fragment as Fragment11, jsx as jsx12, jsxs as jsxs12 } from "file:///F:/smu-gdmu-china/node_modules/react/jsx-runtime.js";
-
-// src/contents/entrepreneurship.tsx
-import { Nav as Nav10 } from "file:///F:/smu-gdmu-china/node_modules/react-bootstrap/cjs/index.js";
-import { Link as Link10, Element as Element11 } from "file:///F:/smu-gdmu-china/node_modules/react-scroll/modules/index.js";
-import { useEffect as useEffect12, useState as useState12 } from "file:///F:/smu-gdmu-china/node_modules/react/index.js";
-import { Fragment as Fragment12, jsx as jsx13, jsxs as jsxs13 } from "file:///F:/smu-gdmu-china/node_modules/react/jsx-runtime.js";
-
-// src/contents/inclusivity.tsx
-import { Nav as Nav11 } from "file:///F:/smu-gdmu-china/node_modules/react-bootstrap/cjs/index.js";
-import { Link as Link11, Element as Element12 } from "file:///F:/smu-gdmu-china/node_modules/react-scroll/modules/index.js";
-import { useEffect as useEffect13, useState as useState13 } from "file:///F:/smu-gdmu-china/node_modules/react/index.js";
-import { Fragment as Fragment13, jsx as jsx14, jsxs as jsxs14 } from "file:///F:/smu-gdmu-china/node_modules/react/jsx-runtime.js";
-
-// src/contents/model.tsx
-import { Nav as Nav12 } from "file:///F:/smu-gdmu-china/node_modules/react-bootstrap/cjs/index.js";
-import { Link as Link12, Element as Element13 } from "file:///F:/smu-gdmu-china/node_modules/react-scroll/modules/index.js";
-import { useEffect as useEffect14, useState as useState14 } from "file:///F:/smu-gdmu-china/node_modules/react/index.js";
-import MathJax from "file:///F:/smu-gdmu-china/node_modules/react-mathjax/lib/index.js";
-import { Fragment as Fragment14, jsx as jsx15, jsxs as jsxs15 } from "file:///F:/smu-gdmu-china/node_modules/react/jsx-runtime.js";
-
-// src/contents/collaboration.tsx
-import { Nav as Nav13 } from "file:///F:/smu-gdmu-china/node_modules/react-bootstrap/cjs/index.js";
-import { Link as Link13, Element as Element14 } from "file:///F:/smu-gdmu-china/node_modules/react-scroll/modules/index.js";
-import { useEffect as useEffect15, useState as useState15 } from "file:///F:/smu-gdmu-china/node_modules/react/index.js";
-import { Fragment as Fragment15, jsx as jsx16, jsxs as jsxs16 } from "file:///F:/smu-gdmu-china/node_modules/react/jsx-runtime.js";
-
-// src/contents/parts.tsx
-import { Nav as Nav14 } from "file:///F:/smu-gdmu-china/node_modules/react-bootstrap/cjs/index.js";
-import { Link as Link14, Element as Element15 } from "file:///F:/smu-gdmu-china/node_modules/react-scroll/modules/index.js";
-import { useEffect as useEffect16, useState as useState16 } from "file:///F:/smu-gdmu-china/node_modules/react/index.js";
-import { Fragment as Fragment16, jsx as jsx17, jsxs as jsxs17 } from "file:///F:/smu-gdmu-china/node_modules/react/jsx-runtime.js";
-
-// src/contents/design.tsx
-import { Nav as Nav15 } from "file:///F:/smu-gdmu-china/node_modules/react-bootstrap/cjs/index.js";
-import { Link as Link15, Element as Element16 } from "file:///F:/smu-gdmu-china/node_modules/react-scroll/modules/index.js";
-import { useEffect as useEffect17, useState as useState17 } from "file:///F:/smu-gdmu-china/node_modules/react/index.js";
-import { Fragment as Fragment17, jsx as jsx18, jsxs as jsxs18 } from "file:///F:/smu-gdmu-china/node_modules/react/jsx-runtime.js";
-
-// src/pages.ts
-import { FaHome, FaUsers, FaProjectDiagram, FaShieldAlt, FaHandsHelping, FaAward, FaFlask, FaLightbulb, FaBusinessTime, FaUniversalAccess, FaCogs, FaHandshake } from "file:///F:/smu-gdmu-china/node_modules/react-icons/fa/index.mjs";
-
-// src/utils/stringToSlug.ts
-function stringToSlug(string) {
-  let slug = String(string).toLowerCase();
-  slug = slug.replace(/[^a-z0-9-]/g, "-");
-  slug = slug.replace(/-+/g, "-");
-  const start = slug.search(/[^-]/);
-  const end = slug.search(/-+$/);
-  return slug.substring(start, end === -1 ? void 0 : end);
-}
-
-// vite.config.ts
-var vite_config_default = () => {
-  const env = loadEnv("dev", process.cwd());
-  return defineConfig({
-    base: `/${stringToSlug(env.VITE_TEAM_NAME)}/`,
-    plugins: [react()]
-  });
-};
-export {
-  vite_config_default as default
-};
-//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsidml0ZS5jb25maWcudHMiLCAic3JjL2NvbnRlbnRzL2hvbWUudHN4IiwgInNyYy9jb250ZW50cy90ZWFtLnRzeCIsICJzcmMvY29udGVudHMvYXR0cmlidXRpb25zLnRzeCIsICJzcmMvY29udGVudHMvY29udHJpYnV0aW9uLnRzeCIsICJzcmMvY29udGVudHMvZGVzY3JpcHRpb24udHN4IiwgInNyYy9jb250ZW50cy9lbmdpbmVlcmluZy50c3giLCAic3JjL2NvbnRlbnRzL2V4cGVyaW1lbnRzLnRzeCIsICJzcmMvY29udGVudHMvbm90ZWJvb2sudHN4IiwgInNyYy9jb250ZW50cy9yZXN1bHRzLnRzeCIsICJzcmMvY29udGVudHMvc2FmZXR5LnRzeCIsICJzcmMvY29udGVudHMvaHVtYW4tcHJhY3RpY2VzLnRzeCIsICJzcmMvY29udGVudHMvZWR1Y2F0aW9uLnRzeCIsICJzcmMvY29udGVudHMvZW50cmVwcmVuZXVyc2hpcC50c3giLCAic3JjL2NvbnRlbnRzL2luY2x1c2l2aXR5LnRzeCIsICJzcmMvY29udGVudHMvbW9kZWwudHN4IiwgInNyYy9jb250ZW50cy9jb2xsYWJvcmF0aW9uLnRzeCIsICJzcmMvY29udGVudHMvcGFydHMudHN4IiwgInNyYy9jb250ZW50cy9kZXNpZ24udHN4IiwgInNyYy9wYWdlcy50cyIsICJzcmMvdXRpbHMvc3RyaW5nVG9TbHVnLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyJjb25zdCBfX3ZpdGVfaW5qZWN0ZWRfb3JpZ2luYWxfZGlybmFtZSA9IFwiRjpcXFxcc211LWdkbXUtY2hpbmFcIjtjb25zdCBfX3ZpdGVfaW5qZWN0ZWRfb3JpZ2luYWxfZmlsZW5hbWUgPSBcIkY6XFxcXHNtdS1nZG11LWNoaW5hXFxcXHZpdGUuY29uZmlnLnRzXCI7Y29uc3QgX192aXRlX2luamVjdGVkX29yaWdpbmFsX2ltcG9ydF9tZXRhX3VybCA9IFwiZmlsZTovLy9GOi9zbXUtZ2RtdS1jaGluYS92aXRlLmNvbmZpZy50c1wiO2ltcG9ydCB7IGRlZmluZUNvbmZpZywgbG9hZEVudiB9IGZyb20gXCJ2aXRlXCI7XHJcbmltcG9ydCByZWFjdCBmcm9tIFwiQHZpdGVqcy9wbHVnaW4tcmVhY3RcIjtcclxuaW1wb3J0IHsgc3RyaW5nVG9TbHVnIH0gZnJvbSBcIi4vc3JjL3V0aWxzXCI7XHJcblxyXG4vLyBodHRwczovL3ZpdGVqcy5kZXYvY29uZmlnL1xyXG5leHBvcnQgZGVmYXVsdCAoKSA9PiB7XHJcbiAgY29uc3QgZW52ID0gbG9hZEVudihcImRldlwiLCBwcm9jZXNzLmN3ZCgpKTtcclxuICByZXR1cm4gZGVmaW5lQ29uZmlnKHtcclxuICAgIGJhc2U6IGAvJHtzdHJpbmdUb1NsdWcoZW52LlZJVEVfVEVBTV9OQU1FKX0vYCxcclxuICAgIHBsdWdpbnM6IFtyZWFjdCgpXSxcclxuICB9KTtcclxufTtcclxuIiwgImltcG9ydCAgeyAgdXNlRWZmZWN0LCB1c2VTdGF0ZSB9IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgeyBFbGVtZW50IH0gZnJvbSAncmVhY3Qtc2Nyb2xsJztcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBIb21lKCkge1xyXG4gIGNvbnN0IFthY3RpdmVMaW5rLCBzZXRBY3RpdmVMaW5rXSA9IHVzZVN0YXRlPHN0cmluZz4oJycpO1xyXG4gIHVzZUVmZmVjdCgoKSA9PiB7XHJcbiAgICBjb25zdCBoYW5kbGVTY3JvbGwgPSAoKSA9PiB7XHJcbiAgICAgIGNvbnN0IHNlY3Rpb25zID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnLmVsZW1lbnQnKTtcclxuICAgICAgbGV0IGN1cnJlbnRTZWN0aW9uID0gJyc7XHJcbiAgICAgIHNlY3Rpb25zLmZvckVhY2goc2VjdGlvbiA9PiB7XHJcbiAgICAgICAgY29uc3Qgc2VjdGlvblRvcCA9IHNlY3Rpb24uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkudG9wO1xyXG4gICAgICAgIGlmIChzZWN0aW9uVG9wIDw9IHdpbmRvdy5pbm5lckhlaWdodCAvIDIgJiYgc2VjdGlvblRvcCA+IC1zZWN0aW9uLmNsaWVudEhlaWdodCkge1xyXG4gICAgICAgICAgY3VycmVudFNlY3Rpb24gPSBzZWN0aW9uLmlkO1xyXG4gICAgICAgICAgY29uc29sZS5sb2coY3VycmVudFNlY3Rpb24pXHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgICAgc2V0QWN0aXZlTGluayhjdXJyZW50U2VjdGlvbik7XHJcbiAgICB9O1xyXG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIGhhbmRsZVNjcm9sbCk7XHJcbiAgICByZXR1cm4gKCkgPT4gd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIGhhbmRsZVNjcm9sbCk7XHJcbiAgfSwgW10pO1xyXG5cclxuICByZXR1cm4gKFxyXG4gICAgPGRpdiBjbGFzc05hbWU9XCJiZy1yaWNlX3llbGxvd1wiPlxyXG4gICAgICB7LyogMSAqL31cclxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJwYWdlLWNvbnRhaW5lci0xXCI+XHJcbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwicGFnZS1lbGVtZW50LXRpdGxlXCI+XHJcbiAgICAgICAgPGltZ1xyXG4gICAgICAgICAgICBzcmM9XCJodHRwczovL3N0YXRpYy5pZ2VtLndpa2kvdGVhbXMvNTM3OC9ob21lL2d1YXJkLndlYnBcIlxyXG4gICAgICAgICAgICBhbHQ9XCJleGFtcGxlXCJcclxuICAgICAgICAgICAgY2xhc3NOYW1lPVwiaG9tZS1pbWctd2lkZSBlbGVtZW50LXRpdGxlLWFuaW1hdGlvblwiXHJcbiAgICAgICAgICAvPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicGFnZS1lbGVtZW50LTBcIj5cclxuICAgICAgICAgIDxpbWdcclxuICAgICAgICAgICAgc3JjPVwiaHR0cHM6Ly9zdGF0aWMuaWdlbS53aWtpL3RlYW1zLzUzNzgvaG9tZS8yMy53ZWJwXCJcclxuICAgICAgICAgICAgYWx0PVwiZXhhbXBsZVwiXHJcbiAgICAgICAgICAgIGNsYXNzTmFtZT1cImhvbWUtaW1nLXdpZGUgZWxlbWVudC0wLWFuaW1hdGlvblwiXHJcbiAgICAgICAgICAvPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicGFnZS1lbGVtZW50LTFcIj5cclxuICAgICAgICAgIDxpbWdcclxuICAgICAgICAgICAgc3JjPVwiaHR0cHM6Ly9zdGF0aWMuaWdlbS53aWtpL3RlYW1zLzUzNzgvaG9tZS8yNS53ZWJwXCJcclxuICAgICAgICAgICAgYWx0PVwiZXhhbXBsZVwiXHJcbiAgICAgICAgICAgIGNsYXNzTmFtZT1cImhvbWUtaW1nLXdpZGUgZWxlbWVudC0xLWFuaW1hdGlvblwiXHJcbiAgICAgICAgICAvPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicGFnZS1lbGVtZW50LTJcIj5cclxuICAgICAgICAgIDxpbWdcclxuICAgICAgICAgICAgc3JjPVwiaHR0cHM6Ly9zdGF0aWMuaWdlbS53aWtpL3RlYW1zLzUzNzgvaG9tZS8yNC53ZWJwXCJcclxuICAgICAgICAgICAgYWx0PVwiZXhhbXBsZVwiXHJcbiAgICAgICAgICAgIGNsYXNzTmFtZT1cImhvbWUtaW1nLXdpZGUgZWxlbWVudC0yLWFuaW1hdGlvblwiXHJcbiAgICAgICAgICAvPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicGFnZS1lbGVtZW50LTNcIj5cclxuICAgICAgICAgIDxpbWdcclxuICAgICAgICAgICAgc3JjPVwiaHR0cHM6Ly9zdGF0aWMuaWdlbS53aWtpL3RlYW1zLzUzNzgvaG9tZS8yNi53ZWJwXCJcclxuICAgICAgICAgICAgYWx0PVwiZXhhbXBsZVwiXHJcbiAgICAgICAgICAgIGNsYXNzTmFtZT1cImhvbWUtaW1nLXdpZGUgZWxlbWVudC0zLWFuaW1hdGlvblwiXHJcbiAgICAgICAgICAvPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuXHJcbiAgICAgIHsvKiAyICovfVxyXG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cInBhZ2UtY29udGFpbmVyLTJcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInBhZ2UtZWxlbWVudC00cFwiPlxyXG4gICAgICAgICAgPGltZ1xyXG4gICAgICAgICAgICBzcmM9XCJodHRwczovL3N0YXRpYy5pZ2VtLndpa2kvdGVhbXMvNTM3OC9ob21lL21vcnRhbGl0eS53ZWJwXCJcclxuICAgICAgICAgICAgYWx0PVwiZXhhbXBsZVwiXHJcbiAgICAgICAgICAgIGNsYXNzTmFtZT1cImhvbWUtaW1nLXdpZGVcIlxyXG4gICAgICAgICAgLz5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInBhZ2UtZWxlbWVudC00cDJcIj5cclxuICAgICAgICAgIDxpbWdcclxuICAgICAgICAgICAgc3JjPVwiaHR0cHM6Ly9zdGF0aWMuaWdlbS53aWtpL3RlYW1zLzUzNzgvaG9tZS9lYXJ0aC53ZWJwXCJcclxuICAgICAgICAgICAgYWx0PVwiZXhhbXBsZVwiXHJcbiAgICAgICAgICAgIGNsYXNzTmFtZT1cImhvbWUtaW1nLXdpZGUgaW1nLTRwMlwiXHJcbiAgICAgICAgICAvPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicGFnZS1lbGVtZW50LTRwM1wiPlxyXG4gICAgICAgICAgPGltZ1xyXG4gICAgICAgICAgICBzcmM9XCJodHRwczovL3N0YXRpYy5pZ2VtLndpa2kvdGVhbXMvNTM3OC9ob21lL2Q0LndlYnBcIlxyXG4gICAgICAgICAgICBhbHQ9XCJleGFtcGxlXCJcclxuICAgICAgICAgICAgY2xhc3NOYW1lPVwiaG9tZS1pbWctd2lkZSBpbWctNHAzXCJcclxuICAgICAgICAgIC8+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJwYWdlLWVsZW1lbnQtNHA0XCI+XHJcbiAgICAgICAgICA8aW1nXHJcbiAgICAgICAgICAgIHNyYz1cImh0dHBzOi8vc3RhdGljLmlnZW0ud2lraS90ZWFtcy81Mzc4L2hvbWUvb3JiaXQyLndlYnBcIlxyXG4gICAgICAgICAgICBhbHQ9XCJleGFtcGxlXCJcclxuICAgICAgICAgICAgY2xhc3NOYW1lPVwiaG9tZS1pbWctd2lkZVwiXHJcbiAgICAgICAgICAvPlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgPC9kaXY+XHJcblxyXG5cclxuICAgICAgey8qIDMgKi99XHJcbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwicGFnZS1jb250YWluZXItM1wiPlxyXG5cclxuICAgICAgICA8RWxlbWVudCBuYW1lPVwiZWxlbWVudC01XCIgaWQ9XCJlbGVtZW50LTVcIiBjbGFzc05hbWU9J2VsZW1lbnQgcGFnZS1lbGVtZW50LTUnID5cclxuICAgICAgICAgIDxpbWdcclxuICAgICAgICAgICAgc3JjPVwiaHR0cHM6Ly9zdGF0aWMuaWdlbS53aWtpL3RlYW1zLzUzNzgvaG9tZS9naXJscm9hci53ZWJwXCJcclxuICAgICAgICAgICAgYWx0PVwiZXhhbXBsZVwiXHJcbiAgICAgICAgICAgIGNsYXNzTmFtZT17YGhvbWUtaW1nLXdpZGUgJHthY3RpdmVMaW5rID09PSAnZWxlbWVudC01JyA/ICdpbWctNS1hY3RpdmUnIDogJ2ltZy01J31gfVxyXG4gICAgICAgICAgLz5cclxuICAgICAgICA8L0VsZW1lbnQ+XHJcbiAgICAgICAgXHJcbiAgICAgICAgXHJcbiAgICAgICAgPEVsZW1lbnQgbmFtZT1cImVsZW1lbnQtNlwiIGlkPVwiZWxlbWVudC02XCIgY2xhc3NOYW1lPVwiZWxlbWVudCBwYWdlLWVsZW1lbnQtNlwiPlxyXG4gICAgICAgICAgPGltZ1xyXG4gICAgICAgICAgICBzcmM9XCJodHRwczovL3N0YXRpYy5pZ2VtLndpa2kvdGVhbXMvNTM3OC9ob21lLzIwLndlYnBcIlxyXG4gICAgICAgICAgICBhbHQ9XCJleGFtcGxlXCJcclxuICAgICAgICAgICAgY2xhc3NOYW1lPXtgaG9tZS1pbWctd2lkZSAke2FjdGl2ZUxpbmsgPT09ICdlbGVtZW50LTYnID8gJ2ltZy02LWFjdGl2ZScgOiAnaW1nLTYnfWB9XHJcbiAgICAgICAgICAvPlxyXG4gICAgICAgIDwvRWxlbWVudD5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgIHsvKiA0ICovfVxyXG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cInBhZ2UtY29udGFpbmVyLTRcIj5cclxuICAgICAgICA8RWxlbWVudCBuYW1lPVwiZWxlbWVudC03XCIgaWQ9XCJlbGVtZW50LTdcIiBjbGFzc05hbWU9XCJlbGVtZW50IHBhZ2UtZWxlbWVudC03XCI+XHJcbiAgICAgICAgICA8aW1nXHJcbiAgICAgICAgICAgIHNyYz1cImh0dHBzOi8vc3RhdGljLmlnZW0ud2lraS90ZWFtcy81Mzc4L2hvbWUvMjEud2VicFwiXHJcbiAgICAgICAgICAgIGFsdD1cImV4YW1wbGVcIlxyXG4gICAgICAgICAgICBjbGFzc05hbWU9e2Bob21lLWltZy13aWRlICR7YWN0aXZlTGluayA9PT0gJ2VsZW1lbnQtNycgPyAnaW1nLTctYWN0aXZlJyA6ICdpbWctNyd9YH1cclxuICAgICAgICAgIC8+XHJcbiAgICAgICAgPC9FbGVtZW50PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgey8qIDUgKi99XHJcbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwicGFnZS1jb250YWluZXItNVwiPlxyXG4gICAgICAgIDxFbGVtZW50IG5hbWU9XCJlbGVtZW50LThcIiBpZD1cImVsZW1lbnQtOFwiIGNsYXNzTmFtZT1cImVsZW1lbnQgcGFnZS1lbGVtZW50LThcIj5cclxuICAgICAgICAgIDxpbWdcclxuICAgICAgICAgICAgc3JjPVwiaHR0cHM6Ly9zdGF0aWMuaWdlbS53aWtpL3RlYW1zLzUzNzgvaG9tZS9uaDMud2VicFwiXHJcbiAgICAgICAgICAgIGFsdD1cImV4YW1wbGVcIlxyXG4gICAgICAgICAgICBjbGFzc05hbWU9e2Bob21lLWltZy13aWRlICR7YWN0aXZlTGluayA9PT0gJ2VsZW1lbnQtOCcgPyAnaW1nLTgtYWN0aXZlJyA6ICdpbWctOCd9YH1cclxuICAgICAgICAgIC8+XHJcbiAgICAgICAgPC9FbGVtZW50PlxyXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicGFnZS1lbGVtZW50LTlcIj5cclxuICAgICAgICAgIDxpbWdcclxuICAgICAgICAgICAgc3JjPVwiaHR0cHM6Ly9zdGF0aWMuaWdlbS53aWtpL3RlYW1zLzUzNzgvaG9tZS9wYXRoLndlYnBcIlxyXG4gICAgICAgICAgICBhbHQ9XCJleGFtcGxlXCJcclxuICAgICAgICAgICAgY2xhc3NOYW1lPVwiaG9tZS1pbWctd2lkZVwiXHJcbiAgICAgICAgICAvPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxFbGVtZW50IG5hbWU9XCJlbGVtZW50LTEwXCIgaWQ9XCJlbGVtZW50LTEwXCIgY2xhc3NOYW1lPVwiZWxlbWVudCBwYWdlLWVsZW1lbnQtMTBcIj5cclxuICAgICAgICAgIDxpbWdcclxuICAgICAgICAgICAgc3JjPVwiaHR0cHM6Ly9zdGF0aWMuaWdlbS53aWtpL3RlYW1zLzUzNzgvaG9tZS9oZXBhY3J5LndlYnBcIlxyXG4gICAgICAgICAgICBhbHQ9XCJleGFtcGxlXCJcclxuICAgICAgICAgICAgY2xhc3NOYW1lPXtgaG9tZS1pbWctd2lkZSAke2FjdGl2ZUxpbmsgPT09ICdlbGVtZW50LTEwJyA/ICdpbWctMTAtYWN0aXZlJyA6ICdpbWctMTAnfWB9XHJcbiAgICAgICAgICAvPlxyXG4gICAgICAgIDwvRWxlbWVudD5cclxuICAgICAgICA8RWxlbWVudCBuYW1lPVwiZWxlbWVudC0xMVwiIGlkPVwiZWxlbWVudC0xMVwiIGNsYXNzTmFtZT1cImVsZW1lbnQgcGFnZS1lbGVtZW50LTExXCI+XHJcbiAgICAgICAgICA8aW1nXHJcbiAgICAgICAgICAgIHNyYz1cImh0dHBzOi8vc3RhdGljLmlnZW0ud2lraS90ZWFtcy81Mzc4L2hvbWUvZ3V0LndlYnBcIlxyXG4gICAgICAgICAgICBhbHQ9XCJleGFtcGxlXCJcclxuICAgICAgICAgICAgY2xhc3NOYW1lPXtgaG9tZS1pbWctd2lkZSAke2FjdGl2ZUxpbmsgPT09ICdlbGVtZW50LTExJyA/ICdpbWctMTEtYWN0aXZlJyA6ICdpbWctMTEnfWB9XHJcbiAgICAgICAgICAvPlxyXG4gICAgICAgIDwvRWxlbWVudD5cclxuICAgICAgPC9kaXY+XHJcblxyXG4gICAgICB7LyogNiAqL31cclxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJwYWdlLWNvbnRhaW5lci02XCI+XHJcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJwYWdlLWVsZW1lbnQtMTJcIj5cclxuICAgICAgICAgIDxpbWdcclxuICAgICAgICAgICAgc3JjPVwiaHR0cHM6Ly9zdGF0aWMuaWdlbS53aWtpL3RlYW1zLzUzNzgvaG9tZS9ib3ljb21hLndlYnBcIlxyXG4gICAgICAgICAgICBhbHQ9XCJleGFtcGxlXCJcclxuICAgICAgICAgICAgY2xhc3NOYW1lPVwiaG9tZS1pbWctd2lkZVwiXHJcbiAgICAgICAgICAvPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicGFnZS1lbGVtZW50LTEzXCI+XHJcbiAgICAgICAgICA8aW1nXHJcbiAgICAgICAgICAgIHNyYz1cImh0dHBzOi8vc3RhdGljLmlnZW0ud2lraS90ZWFtcy81Mzc4L2hvbWUvYm95aW50LndlYnBcIlxyXG4gICAgICAgICAgICBhbHQ9XCJleGFtcGxlXCJcclxuICAgICAgICAgICAgY2xhc3NOYW1lPVwiaG9tZS1pbWctd2lkZVwiXHJcbiAgICAgICAgICAvPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicGFnZS1lbGVtZW50LTE0XCI+XHJcbiAgICAgICAgICA8aW1nXHJcbiAgICAgICAgICAgIHNyYz1cImh0dHBzOi8vc3RhdGljLmlnZW0ud2lraS90ZWFtcy81Mzc4L2hvbWUvYm95aW5zYW5pdHkud2VicFwiXHJcbiAgICAgICAgICAgIGFsdD1cImV4YW1wbGVcIlxyXG4gICAgICAgICAgICBjbGFzc05hbWU9XCJob21lLWltZy13aWRlXCJcclxuICAgICAgICAgIC8+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPEVsZW1lbnQgbmFtZT1cImVsZW1lbnQtMTVcIiBpZD1cImVsZW1lbnQtMTVcIiBjbGFzc05hbWU9XCJlbGVtZW50IHBhZ2UtZWxlbWVudC0xNVwiPlxyXG4gICAgICAgICAgPGltZ1xyXG4gICAgICAgICAgICBzcmM9XCJodHRwczovL3N0YXRpYy5pZ2VtLndpa2kvdGVhbXMvNTM3OC9ob21lL2JveWhlYWQud2VicFwiXHJcbiAgICAgICAgICAgIGFsdD1cImV4YW1wbGVcIlxyXG4gICAgICAgICAgICBjbGFzc05hbWU9e2Bob21lLWltZy13aWRlICR7YWN0aXZlTGluayA9PT0gJ2VsZW1lbnQtMTUnID8gJ2ltZy0xNScgOiAnaW1nLTE1J31gfVxyXG4gICAgICAgICAgLz5cclxuICAgICAgICA8L0VsZW1lbnQ+XHJcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJwYWdlLWVsZW1lbnQtMTVwXCI+XHJcbiAgICAgICAgICA8aW1nXHJcbiAgICAgICAgICAgIHNyYz1cImh0dHBzOi8vc3RhdGljLmlnZW0ud2lraS90ZWFtcy81Mzc4L2hvbWUvZDMud2VicFwiXHJcbiAgICAgICAgICAgIGFsdD1cImV4YW1wbGVcIlxyXG4gICAgICAgICAgICBjbGFzc05hbWU9XCJob21lLWltZy13aWRlXCJcclxuICAgICAgICAgIC8+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgey8qIDcgKi99XHJcbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwicGFnZS1jb250YWluZXItN1wiPlxyXG4gICAgICAgIDxFbGVtZW50IG5hbWU9XCJlbGVtZW50LTE2XCIgaWQ9XCJlbGVtZW50LTE2XCIgY2xhc3NOYW1lPVwiZWxlbWVudCBwYWdlLWVsZW1lbnQtMTZcIj5cclxuICAgICAgICAgIDxpbWdcclxuICAgICAgICAgICAgc3JjPVwiaHR0cHM6Ly9zdGF0aWMuaWdlbS53aWtpL3RlYW1zLzUzNzgvaG9tZS9ib3liaWdtb3V0aC53ZWJwXCJcclxuICAgICAgICAgICAgYWx0PVwiZXhhbXBsZVwiXHJcbiAgICAgICAgICAgIGNsYXNzTmFtZT17YGhvbWUtaW1nLXdpZGUgJHthY3RpdmVMaW5rID09PSAnZWxlbWVudC0xNicgPyAnaW1nLTE2LWFjdGl2ZScgOiAnaW1nLTE2J31gfVxyXG4gICAgICAgICAgLz5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicGFnZS1lbGVtZW50LTE2cFwiPlxyXG4gICAgICAgICAgPGltZ1xyXG4gICAgICAgICAgICBzcmM9XCJodHRwczovL3N0YXRpYy5pZ2VtLndpa2kvdGVhbXMvNTM3OC9ob21lL3dvcmRzMS53ZWJwXCJcclxuICAgICAgICAgICAgYWx0PVwiZXhhbXBsZVwiXHJcbiAgICAgICAgICAgIGNsYXNzTmFtZT17YGhvbWUtaW1nLXdpZGUgJHthY3RpdmVMaW5rID09PSAnZWxlbWVudC0xNicgPyAnaW1nLTE2cC1hY3RpdmUnIDogJ2ltZy0xNnAnfWB9XHJcbiAgICAgICAgICAvPlxyXG4gICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDwvRWxlbWVudD5cclxuXHJcbiAgICAgICAgPEVsZW1lbnQgbmFtZT1cImVsZW1lbnQtMTdcIiBpZD1cImVsZW1lbnQtMTdcIiBjbGFzc05hbWU9XCJlbGVtZW50IHBhZ2UtZWxlbWVudC0xN1wiPlxyXG4gICAgICAgICAgPGltZ1xyXG4gICAgICAgICAgICBzcmM9XCJodHRwczovL3N0YXRpYy5pZ2VtLndpa2kvdGVhbXMvNTM3OC9ob21lL2dpcmxmb3J0LndlYnBcIlxyXG4gICAgICAgICAgICBhbHQ9XCJleGFtcGxlXCJcclxuICAgICAgICAgICAgY2xhc3NOYW1lPXtgaG9tZS1pbWctd2lkZSAke2FjdGl2ZUxpbmsgPT09ICdlbGVtZW50LTE3JyA/ICdpbWctMTctYWN0aXZlJyA6ICdpbWctMTcnfWB9XHJcbiAgICAgICAgICAvPlxyXG4gICAgICAgIDwvRWxlbWVudD5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIHsvKiA4ICovfVxyXG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cInBhZ2UtY29udGFpbmVyLThcIj5cclxuICAgICAgICB7LyogPGRpdiBjbGFzc05hbWU9XCJwYWdlLWVsZW1lbnQtMThcIj5cclxuICAgICAgICAgIDxpbWdcclxuICAgICAgICAgICAgc3JjPVwiaHR0cHM6Ly9zdGF0aWMuaWdlbS53aWtpL3RlYW1zLzUzNzgvaG9tZS8yOC53ZWJwXCJcclxuICAgICAgICAgICAgYWx0PVwiZXhhbXBsZVwiXHJcbiAgICAgICAgICAgIGNsYXNzTmFtZT1cImhvbWUtaW1nLXdpZGVcIlxyXG4gICAgICAgICAgLz5cclxuICAgICAgICA8L2Rpdj4gKi99XHJcbiAgICAgICAgXHJcbiAgICAgICAgXHJcbiAgICAgICAgPEVsZW1lbnQgbmFtZT1cImVsZW1lbnQtMThwM1wiIGlkPVwiZWxlbWVudC0xOHAzXCIgY2xhc3NOYW1lPVwiZWxlbWVudCBlbGVtZW50LTE4cDMtY29udGFpbmVyXCI+XHJcbiAgICAgICAgICA8aW1nXHJcbiAgICAgICAgICAgIHNyYz1cImh0dHBzOi8vc3RhdGljLmlnZW0ud2lraS90ZWFtcy81Mzc4L2hvbWUvMi53ZWJwXCJcclxuICAgICAgICAgICAgYWx0PVwiZXhhbXBsZVwiXHJcbiAgICAgICAgICAgIGNsYXNzTmFtZT17YGhvbWUtaW1nLXdpZGUgcGFnZS1lbGVtZW50LTIxcCAke2FjdGl2ZUxpbmsgPT09ICdlbGVtZW50LTE4cDMnID8gJ2ltZy0xOHAzLWFjdGl2ZScgOiAnaW1nLTE4cDMnfWB9XHJcbiAgICAgICAgICAvPlxyXG4gICAgICAgIDxpbWdcclxuICAgICAgICAgICAgc3JjPVwiaHR0cHM6Ly9zdGF0aWMuaWdlbS53aWtpL3RlYW1zLzUzNzgvaG9tZS8yNy53ZWJwXCJcclxuICAgICAgICAgICAgYWx0PVwiZXhhbXBsZVwiXHJcbiAgICAgICAgICAgIGNsYXNzTmFtZT17YGhvbWUtaW1nLXdpZGUgcGFnZS1lbGVtZW50LTE5ICR7YWN0aXZlTGluayA9PT0gJ2VsZW1lbnQtMThwMycgPyAnaW1nLWxlZnQtaW4tYWN0aXZlJyA6ICdpbWctbGVmdC1pbid9YH1cclxuICAgICAgICAgIC8+XHJcbiAgICAgICAgICA8aW1nXHJcbiAgICAgICAgICAgIHNyYz1cImh0dHBzOi8vc3RhdGljLmlnZW0ud2lraS90ZWFtcy81Mzc4L2hvbWUvZGlhbG9nMy53ZWJwXCJcclxuICAgICAgICAgICAgYWx0PVwiZXhhbXBsZVwiXHJcbiAgICAgICAgICAgIGNsYXNzTmFtZT17YGhvbWUtaW1nLXdpZGUgcGFnZS1lbGVtZW50LTE4cDMgJHthY3RpdmVMaW5rID09PSAnZWxlbWVudC0xOHAzJyA/ICdpbWctcmlnaHQtaW4tYWN0aXZlJyA6ICdpbWctcmlnaHQtaW4nfWB9XHJcbiAgICAgICAgICAvPlxyXG4gICAgICAgICAgPGltZ1xyXG4gICAgICAgICAgICBzcmM9XCJodHRwczovL3N0YXRpYy5pZ2VtLndpa2kvdGVhbXMvNTM3OC9ob21lL3NtYWxsZ3V0LndlYnBcIlxyXG4gICAgICAgICAgICBhbHQ9XCJleGFtcGxlXCJcclxuICAgICAgICAgICAgY2xhc3NOYW1lPXtgaG9tZS1pbWctd2lkZSBwYWdlLWVsZW1lbnQtMThwICR7YWN0aXZlTGluayA9PT0gJ2VsZW1lbnQtMThwMycgPyAnaW1nLXJpZ2h0LWluLWFjdGl2ZScgOiAnaW1nLXJpZ2h0LWluJ31gfVxyXG4gICAgICAgICAgLz5cclxuICAgICAgICAgIDxpbWdcclxuICAgICAgICAgICAgc3JjPVwiaHR0cHM6Ly9zdGF0aWMuaWdlbS53aWtpL3RlYW1zLzUzNzgvaG9tZS8zcmQvaW5waWxsLndlYnBcIlxyXG4gICAgICAgICAgICBhbHQ9XCJleGFtcGxlXCJcclxuICAgICAgICAgICAgY2xhc3NOYW1lPXtgaG9tZS1pbWctd2lkZSBwYWdlLWVsZW1lbnQtMThwOSAke2FjdGl2ZUxpbmsgPT09ICdlbGVtZW50LTE4cDMnID8gJ2ltZy0xOHA5LWFjdGl2ZScgOiAnaW1nLTE4cDknfWB9XHJcbiAgICAgICAgICAvPlxyXG4gICAgICAgICAgPGltZ1xyXG4gICAgICAgICAgICBzcmM9XCJodHRwczovL3N0YXRpYy5pZ2VtLndpa2kvdGVhbXMvNTM3OC9ob21lLzcud2VicFwiXHJcbiAgICAgICAgICAgIGFsdD1cImV4YW1wbGVcIlxyXG4gICAgICAgICAgICBjbGFzc05hbWU9e2Bob21lLWltZy13aWRlIHBhZ2UtZWxlbWVudC0xOHA5ICR7YWN0aXZlTGluayA9PT0gJ2VsZW1lbnQtMThwMycgPyAnaW1nLTE4cDEwLWFjdGl2ZScgOiAnaW1nLTE4cDEwJ31gfVxyXG4gICAgICAgICAgLz5cclxuICAgICAgICAgIFxyXG4gICAgICAgIDwvRWxlbWVudD5cclxuICAgICAgICB7Lyogc2Vuc29yICovfVxyXG4gICAgICAgIDxFbGVtZW50IG5hbWU9XCJlbGVtZW50LTE4cDRcIiBpZD1cImVsZW1lbnQtMThwNFwiIGNsYXNzTmFtZT1cImVsZW1lbnQgcGFnZS1lbGVtZW50LTE4cDQtY29udGFpbmVyXCI+XHJcbiAgICAgICAgPGltZ1xyXG4gICAgICAgICAgICBzcmM9XCJodHRwczovL3N0YXRpYy5pZ2VtLndpa2kvdGVhbXMvNTM3OC9ob21lL2RpYWxvZzIud2VicFwiXHJcbiAgICAgICAgICAgIGFsdD1cImV4YW1wbGVcIlxyXG4gICAgICAgICAgICBjbGFzc05hbWU9e2Bob21lLWltZy13aWRlIHBhZ2UtZWxlbWVudC0xOHA0ICR7YWN0aXZlTGluayA9PT0gJ2VsZW1lbnQtMThwNCcgPyAnaW1nLWxlZnQtaW4tYWN0aXZlJyA6ICdpbWctbGVmdC1pbid9YH1cclxuICAgICAgICAgIC8+XHJcbiAgICAgICAgPGltZ1xyXG4gICAgICAgICAgc3JjPVwiaHR0cHM6Ly9zdGF0aWMuaWdlbS53aWtpL3RlYW1zLzUzNzgvaG9tZS9wYXRod2F5LndlYnBcIlxyXG4gICAgICAgICAgYWx0PVwiZXhhbXBsZVwiXHJcbiAgICAgICAgICBjbGFzc05hbWU9e2Bob21lLWltZy13aWRlIHBhZ2UtZWxlbWVudC0xOHAyICR7YWN0aXZlTGluayA9PT0gJ2VsZW1lbnQtMThwNCcgPyAnaW1nLXJpZ2h0LWluLWFjdGl2ZScgOiAnaW1nLXJpZ2h0LWluJ31gfVxyXG4gICAgICAgIC8+XHJcbiAgICAgICAgey8qIGh0dHBzOi8vc3RhdGljLmlnZW0ud2lraS90ZWFtcy81Mzc4L2hvbWUvM3JkL3BhZy53ZWJwXHJcbiAgICAgICAgaHR0cHM6Ly9zdGF0aWMuaWdlbS53aWtpL3RlYW1zLzUzNzgvaG9tZS8zcmQvcGNvbi53ZWJwXHJcbiAgICAgICAgaHR0cHM6Ly9zdGF0aWMuaWdlbS53aWtpL3RlYW1zLzUzNzgvaG9tZS8zcmQvbWV0YWJvbGljLndlYnBcclxuICAgICAgICBodHRwczovL3N0YXRpYy5pZ2VtLndpa2kvdGVhbXMvNTM3OC9ob21lLzNyZC9wZWEud2VicFxyXG4gICAgICAgIGh0dHBzOi8vc3RhdGljLmlnZW0ud2lraS90ZWFtcy81Mzc4L2hvbWUvM3JkL3B0eW5hLndlYnBcclxuICAgICAgICBodHRwczovL3N0YXRpYy5pZ2VtLndpa2kvdGVhbXMvNTM3OC9ob21lLzNyZC90eW5hLndlYnBcclxuICAgICAgICBodHRwczovL3N0YXRpYy5pZ2VtLndpa2kvdGVhbXMvNTM3OC9ob21lLzNyZC9mZWFycGFnLndlYnAgKi99XHJcbiAgICAgICAgPC9FbGVtZW50PlxyXG5cclxuey8qIG1ldGEgKi99XHJcbjxFbGVtZW50IG5hbWU9XCJlbGVtZW50LTE4cDZcIiBpZD1cImVsZW1lbnQtMThwNlwiIGNsYXNzTmFtZT1cImVsZW1lbnQgcGFnZS1lbGVtZW50LTE4cDYtY29udGFpbmVyXCI+XHJcbiAgICAgICAgICA8aW1nXHJcbiAgICAgICAgICAgIHNyYz1cImh0dHBzOi8vc3RhdGljLmlnZW0ud2lraS90ZWFtcy81Mzc4L2hvbWUvZGlhbG9nMS53ZWJwXCJcclxuICAgICAgICAgICAgYWx0PVwiZXhhbXBsZVwiXHJcbiAgICAgICAgICAgIGNsYXNzTmFtZT17YGhvbWUtaW1nLXdpZGUgcGFnZS1lbGVtZW50LTE4cDUgJHthY3RpdmVMaW5rID09PSAnZWxlbWVudC0xOHA2JyA/ICdpbWctZmFkZS1pbi1hY3RpdmUnIDogJ2ltZy1mYWRlLWluJ31gfVxyXG4gICAgICAgICAgLz5cclxuICAgICAgICAgIDxpbWdcclxuICAgICAgICAgICAgc3JjPVwiaHR0cHM6Ly9zdGF0aWMuaWdlbS53aWtpL3RlYW1zLzUzNzgvaG9tZS8zcmQvYm9hcmQud2VicFwiXHJcbiAgICAgICAgICAgIGFsdD1cImV4YW1wbGVcIlxyXG4gICAgICAgICAgICBjbGFzc05hbWU9e2Bob21lLWltZy13aWRlIHBhZ2UtZWxlbWVudC0xOHA2ICR7YWN0aXZlTGluayA9PT0gJ2VsZW1lbnQtMThwNicgPyAnaW1nLWZhZGUtaW4tYWN0aXZlJyA6ICdpbWctZmFkZS1pbid9YH1cclxuICAgICAgICAgIC8+XHJcbiAgICAgICAgICA8aW1nXHJcbiAgICAgICAgICAgIHNyYz1cImh0dHBzOi8vc3RhdGljLmlnZW0ud2lraS90ZWFtcy81Mzc4L2hvbWUvM3JkL2RlbW9ubmgzLndlYnBcIlxyXG4gICAgICAgICAgICBhbHQ9XCJleGFtcGxlXCJcclxuICAgICAgICAgICAgY2xhc3NOYW1lPXtgaG9tZS1pbWctd2lkZSBwYWdlLWVsZW1lbnQtMThwNnAgJHthY3RpdmVMaW5rID09PSAnZWxlbWVudC0xOHA2JyA/ICdpbWctMThwNnAtYWN0aXZlJyA6ICdpbWctMThwNnAnfWB9XHJcbiAgICAgICAgICAvPlxyXG4gICAgICAgICAgPGltZ1xyXG4gICAgICAgICAgICBzcmM9XCJodHRwczovL3N0YXRpYy5pZ2VtLndpa2kvdGVhbXMvNTM3OC9ob21lLzNyZC9hbmdlbC53ZWJwXCJcclxuICAgICAgICAgICAgYWx0PVwiZXhhbXBsZVwiXHJcbiAgICAgICAgICAgIGNsYXNzTmFtZT17YGhvbWUtaW1nLXdpZGUgcGFnZS1lbGVtZW50LTE4cDZwMiAke2FjdGl2ZUxpbmsgPT09ICdlbGVtZW50LTE4cDYnID8gJ2ltZy0xOHA2cDItYWN0aXZlJyA6ICdpbWctMThwNnAyJ31gfVxyXG4gICAgICAgICAgLz5cclxuICAgICAgICAgIDxpbWdcclxuICAgICAgICAgICAgc3JjPVwiaHR0cHM6Ly9zdGF0aWMuaWdlbS53aWtpL3RlYW1zLzUzNzgvaG9tZS8zcmQvZ3Mud2VicFwiXHJcbiAgICAgICAgICAgIGFsdD1cImV4YW1wbGVcIlxyXG4gICAgICAgICAgICBjbGFzc05hbWU9e2Bob21lLWltZy13aWRlIHBhZ2UtZWxlbWVudC0xOHA2cDMgJHthY3RpdmVMaW5rID09PSAnZWxlbWVudC0xOHA2JyA/ICdpbWctMThwNnAzLWFjdGl2ZScgOiAnaW1nLTE4cDZwMyd9YH1cclxuICAgICAgICAgIC8+XHJcbiAgICAgICAgICA8aW1nXHJcbiAgICAgICAgICAgIHNyYz1cImh0dHBzOi8vc3RhdGljLmlnZW0ud2lraS90ZWFtcy81Mzc4L2hvbWUvM3JkL3BsYXNtaWQud2VicFwiXHJcbiAgICAgICAgICAgIGFsdD1cImV4YW1wbGVcIlxyXG4gICAgICAgICAgICBjbGFzc05hbWU9e2Bob21lLWltZy13aWRlIHBhZ2UtZWxlbWVudC0xOHA2cDQgJHthY3RpdmVMaW5rID09PSAnZWxlbWVudC0xOHA2JyA/ICdpbWctMThwNnA0LWFjdGl2ZScgOiAnaW1nLTE4cDZwNCd9YH1cclxuICAgICAgICAgIC8+XHJcblxyXG48L0VsZW1lbnQ+XHJcbiAgICAgICAgXHJcbiAgICAgICAgXHJcbiAgICAgICAgey8qIGh0dHBzOi8vc3RhdGljLmlnZW0ud2lraS90ZWFtcy81Mzc4L2hvbWUvM3JkL2JvYXJkLndlYnBcclxuICAgICAgICBodHRwczovL3N0YXRpYy5pZ2VtLndpa2kvdGVhbXMvNTM3OC9ob21lLzNyZC9kZW1vbm5oMy53ZWJwXHJcbiAgICAgICAgaHR0cHM6Ly9zdGF0aWMuaWdlbS53aWtpL3RlYW1zLzUzNzgvaG9tZS8zcmQvYW5nZWwud2VicFxyXG4gICAgICAgIGh0dHBzOi8vc3RhdGljLmlnZW0ud2lraS90ZWFtcy81Mzc4L2hvbWUvM3JkL2dzLndlYnAgKi99XHJcbiAgICAgICAgXHJcbiAgICAgICAgey8qIHNhZmV0eSAqL31cclxuICAgICAgICA8RWxlbWVudCBuYW1lPVwiZWxlbWVudC0xOHA4XCIgaWQ9XCJlbGVtZW50LTE4cDhcIiBjbGFzc05hbWU9XCJlbGVtZW50IHBhZ2UtZWxlbWVudC0xOHA4LWNvbnRhaW5lclwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicGFnZS1lbGVtZW50LTE4cDdcIj5cclxuICAgICAgICAgIDxpbWdcclxuICAgICAgICAgICAgc3JjPVwiaHR0cHM6Ly9zdGF0aWMuaWdlbS53aWtpL3RlYW1zLzUzNzgvaG9tZS9kMS53ZWJwXCJcclxuICAgICAgICAgICAgYWx0PVwiZXhhbXBsZVwiXHJcbiAgICAgICAgICAgIGNsYXNzTmFtZT17YGhvbWUtaW1nLXdpZGUgJHthY3RpdmVMaW5rID09PSAnZWxlbWVudC0xOHA4JyA/ICdpbWctbGVmdC1pbi1hY3RpdmUnIDogJ2ltZy1sZWZ0LWluJ31gfVxyXG4gICAgICAgICAgLz5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIFxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJwYWdlLWVsZW1lbnQtMThwOFwiPlxyXG4gICAgICAgICAgPGltZ1xyXG4gICAgICAgICAgICBzcmM9XCJodHRwczovL3N0YXRpYy5pZ2VtLndpa2kvdGVhbXMvNTM3OC9ob21lL2QyLndlYnBcIlxyXG4gICAgICAgICAgICBhbHQ9XCJleGFtcGxlXCJcclxuICAgICAgICAgICAgY2xhc3NOYW1lPXtgaG9tZS1pbWctd2lkZSAke2FjdGl2ZUxpbmsgPT09ICdlbGVtZW50LTE4cDgnID8gJ2ltZy1yaWdodC1pbi1hY3RpdmUnIDogJ2ltZy1yaWdodC1pbid9YH1cclxuICAgICAgICAgIC8+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L0VsZW1lbnQ+XHJcblxyXG5cclxuICAgICAgICB7LyogPGRpdiBjbGFzc05hbWU9XCJwYWdlLWVsZW1lbnQtMjFcIj5cclxuICAgICAgICAgIDxpbWdcclxuICAgICAgICAgICAgc3JjPVwiaHR0cHM6Ly9zdGF0aWMuaWdlbS53aWtpL3RlYW1zLzUzNzgvaG9tZS80LndlYnBcIlxyXG4gICAgICAgICAgICBhbHQ9XCJleGFtcGxlXCJcclxuICAgICAgICAgICAgY2xhc3NOYW1lPVwiaG9tZS1pbWctd2lkZVwiXHJcbiAgICAgICAgICAvPlxyXG4gICAgICAgIDwvZGl2PiAqL31cclxuICAgICAgICBcclxuICAgICAgPC9kaXY+XHJcblxyXG4gICAgICB7LyogOSAqL31cclxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJwYWdlLWNvbnRhaW5lci05XCI+XHJcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJwYWdlLWVsZW1lbnQtMjJcIj5cclxuICAgICAgICAgIDxpbWdcclxuICAgICAgICAgICAgc3JjPVwiaHR0cHM6Ly9zdGF0aWMuaWdlbS53aWtpL3RlYW1zLzUzNzgvaG9tZS9mdXR1cmUyLndlYnBcIlxyXG4gICAgICAgICAgICBhbHQ9XCJleGFtcGxlXCJcclxuICAgICAgICAgICAgY2xhc3NOYW1lPVwiaG9tZS1pbWctd2lkZVwiXHJcbiAgICAgICAgICAvPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicGFnZS1lbGVtZW50LTIzXCI+XHJcbiAgICAgICAgICA8aW1nXHJcbiAgICAgICAgICAgIHNyYz1cImh0dHBzOi8vc3RhdGljLmlnZW0ud2lraS90ZWFtcy81Mzc4L2hvbWUvZ2lybGJveS53ZWJwXCJcclxuICAgICAgICAgICAgYWx0PVwiZXhhbXBsZVwiXHJcbiAgICAgICAgICAgIGNsYXNzTmFtZT1cImhvbWUtaW1nLXdpZGVcIlxyXG4gICAgICAgICAgLz5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICApO1xyXG59XHJcbiIsICJpbXBvcnQgUmVhY3QsIHsgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XHJcblxyXG5pbnRlcmZhY2UgQ2FyZFByb3BzIHtcclxuICBpbWFnZTE6IHN0cmluZztcclxuICBpbWFnZTI6IHN0cmluZztcclxuICB0aXRsZTE6IHN0cmluZztcclxuICBkZXNjcmlwdGlvbjE6IHN0cmluZztcclxuICBpZDogc3RyaW5nO1xyXG4gIG9uSG92ZXI6IChpZDogc3RyaW5nLCBpc0hvdmVyZWQ6IGJvb2xlYW4pID0+IHZvaWQ7IC8vIFx1NkRGQlx1NTJBMFx1NTZERVx1OEMwM1x1NTFGRFx1NjU3MFx1RkYwQ1x1NzUyOFx1NEU4RVx1NzIzNlx1N0VDNFx1NEVGNlx1OTAxQVx1NzdFNVx1NjBBQ1x1NkQ2RVx1NzJCNlx1NjAwMVxyXG59XHJcblxyXG5jb25zdCBDYXJkOiBSZWFjdC5GQzxDYXJkUHJvcHM+ID0gKHsgaW1hZ2UxLCBpbWFnZTIsIHRpdGxlMSwgIGRlc2NyaXB0aW9uMSwgIGlkLCBvbkhvdmVyIH0pID0+IHtcclxuICBjb25zdCBbaXNIb3ZlcmVkLCBzZXRJc0hvdmVyZWRdID0gdXNlU3RhdGUoZmFsc2UpO1xyXG4gIHJldHVybiAoXHJcbiAgICA8ZGl2XHJcbiAgICAgIGNsYXNzTmFtZT1cImNhcmQtY29udGFpbmVyXCJcclxuICAgICAgb25Nb3VzZUVudGVyPXsoKSA9PiB7XHJcbiAgICAgICAgc2V0SXNIb3ZlcmVkKHRydWUpXHJcbiAgICAgICAgb25Ib3ZlcihpZCwgdHJ1ZSlcclxuICAgICAgfX0gLy8gXHU5RjIwXHU2ODA3XHU2MEFDXHU2RDZFXHU2NUY2XHU4OUU2XHU1M0QxXHJcbiAgICAgIG9uTW91c2VMZWF2ZT17KCkgPT4ge1xyXG4gICAgICAgIHNldElzSG92ZXJlZChmYWxzZSlcclxuICAgICAgICBvbkhvdmVyKGlkLCBmYWxzZSlcclxuICAgICAgfX0gLy8gXHU5RjIwXHU2ODA3XHU3OUJCXHU1RjAwXHU2NUY2XHU4OUU2XHU1M0QxXHJcbiAgICA+XHJcbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY2FyZFwiPlxyXG4gICAgICAgIDxpbWdcclxuICAgICAgICAgIHNyYz17aXNIb3ZlcmVkID8gaW1hZ2UyIDogaW1hZ2UxfVxyXG4gICAgICAgICAgYWx0PXt0aXRsZTF9XHJcbiAgICAgICAgICBjbGFzc05hbWU9XCJjYXJkLWltZy10b3BcIlxyXG4gICAgICAgIC8+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICB7aXNIb3ZlcmVkID8gKCAgLy8gXHU2ODM5XHU2MzZFIGlzSG92ZXJlZCBcdTcyQjZcdTYwMDFcdTYzQTdcdTUyMzZcdTUxODVcdTVCQjlcdTZFMzJcdTY3RDNcclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY2FyZC1ib2R5IG10LTVcIj5cclxuICAgICAgICAgICAgPGg1IGNsYXNzTmFtZT1cImNhcmQtdGl0bGVcIj57ZGVzY3JpcHRpb24xfTwvaDU+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICApIDogKFxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjYXJkLWJvZHkgbXQtNVwiPlxyXG4gICAgICAgICAgICA8aDUgY2xhc3NOYW1lPVwiY2FyZC10aXRsZVwiPnt0aXRsZTF9PC9oNT5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICl9XHJcbiAgICA8L2Rpdj5cclxuICApO1xyXG59O1xyXG5cclxuY29uc3QgU3RpY2t5SW1hZ2VDb250YWluZXI6IFJlYWN0LkZDPHsgaW1hZ2U6IHN0cmluZyAsd29yZHM6IHN0cmluZyAsbmFtZXM6IHN0cmluZ30+ID0gKHsgaW1hZ2Usd29yZHMsbmFtZXMgfSkgPT4ge1xyXG4gIHJldHVybiAoXHJcbiAgICA8ZGl2IGNsYXNzTmFtZT1cInN0aWNreS1jb250YWluZXJcIiA+XHJcbiAgICAgIDxoMyBjbGFzc05hbWU9J3N0aWNreS10aXRsZSBjZW50ZXItdGV4dCc+XHUyQjUwe25hbWVzfVx1MkI1MDwvaDM+XHJcbiAgICAgIDxpbWcgc3JjPXtpbWFnZX0gYWx0PVwiU3RpY2t5XCIgY2xhc3NOYW1lPSdzdGlja3ktaW1nJyAvPlxyXG4gICAgICA8cCBjbGFzc05hbWU9J3N0aWNreS1mb250IHN0aWNreS1kZXNjcmlwdGlvbiBpbmRlbnQnPnt3b3Jkc308L3A+XHJcbiAgICA8L2Rpdj5cclxuICApO1xyXG59O1xyXG5cclxuXHJcbi8vIFx1NEUwQlx1NjVCOVx1NUI5QVx1NEU0OVx1OTFDRFx1ODk4MVx1RkYwMVx1RkYwMVx1RkYwMVx1RkYwMVx1RkYwMVx1RkYwMVx1RkYwMVx1RkYwMVx1RkYwMVx1RkYwMVx1RkYwMVx1RkYwMVx1RkYwMVx1RkYwMVx1RkYwMVx1RkYwMVx1RkYwMVx1RkYwMVx1RkYwMVx1RkYwMVx1RkYwMVx1RkYwMVx1RkYwMVx1RkYwMVx1RkYwMVx1RkYwMVx1RkYwMVx1RkYwMVx1RkYwMVx1RkYwMVx1RkYwMVx1RkYwMVx1RkYwMVx1RkYwMVx1RkYwMVx1RkYwMVx1RkYwMVx1RkYwMVx1RkYwMVx1RkYwMVx1RkYwMVx1RkYwMVx1RkYwMVx1RkYwMVx1RkYwMVx1RkYwMVx1RkYwMVx1RkYwMVx1RkYwMVx1RkYwMVx1RkYwMVx1RkYwMVx1RkYwMVx1RkYwMVx1RkYwMVx1RkYwMVx1RkYwMVx1RkYwMVx1RkYwMVx1RkYwMVx1RkYwMVx1RkYwMVx1RkYwMVx1RkYwMVx1RkYwMVx1RkYwMVx1RkYwMVx1RkYwMVx1RkYwMVx1RkYwMVx1RkYwMVx1RkYwMVx1RkYwMVx1RkYwMVx1RkYwMVx1RkYwMVx1RkYwMVx1RkYwMVx1RkYwMVx1RkYwMVx1RkYwMVx1RkYwMVx1RkYwMVx1RkYwMVx1RkYwMVx1RkYwMVxyXG5leHBvcnQgZnVuY3Rpb24gVGVhbSgpIHtcclxuICBjb25zdCBbaG92ZXJlZENhcmRJZCwgc2V0SG92ZXJlZENhcmRJZF0gPSB1c2VTdGF0ZTxcImNhcmQxXCIgfCBcImNhcmQyXCIgfCBcImNhcmQzXCIgfCBcImNhcmQ0XCIgfCBcImNhcmQ1XCIgfCBcImNhcmQ2XCIgfCBcImNhcmQ3XCIgfCBcImNhcmQ4XCIgfCBcImNhcmQ5XCIgfCBcImNhcmQxMFwiIHwgXCJjYXJkMTFcIiB8IFwiY2FyZDEyXCIgfCBcImNhcmQxM1wiIHwgXCJjYXJkMTRcIiB8IFwiY2FyZDE1XCIgfCBcImNhcmQxNlwiIHwgXCJjYXJkMTdcIiB8IFwiY2FyZDE4XCIgfCBcImNhcmQxOVwiIHwgXCJjYXJkMjBcIiB8IFwiY2FyZDIxXCIgfCBcImNhcmQyMlwiIHwgXCJjYXJkMjNcIiB8IFwiY2FyZDI0XCIgfCBcImNhcmQyNVwiIHwgXCJjYXJkMjZcIiB8IFwiY2FyZDI3XCIgfCBcImNhcmQyOFwiIHwgXCJjYXJkMjlcIiB8IFwiY2FyZDMwXCIgfCBcImNhcmQzMVwiIHwgXCJjYXJkMzJcIiB8IFwiY2FyZDMzXCIgfCBcImNhcmQzNFwiIHwgXCJjYXJkMzVcIiB8IG51bGw+KG51bGwpO1xyXG5cclxuXHJcbiAgLy8gXHU1QjlBXHU0RTQ5XHU2QkNGXHU0RTJBXHU1MzYxXHU3MjQ3XHU3Njg0XHU1NkZFXHU1MENGXHVGRjBDXHU1RjUzXHU2MEFDXHU2RDZFXHU2NUY2XHU1REU2XHU0RkE3XHU2NjNFXHU3OTNBXHU3NkY4XHU1RTk0XHU3Njg0XHU1NkZFXHU1MENGXHJcbiAgLy8gXHU0RTBCXHU2NUI5XHU3Njg0XHU1QjlBXHU0RTQ5XHU5MUNEXHU4OTgxXHVGRjAxXHVGRjAxXHVGRjAxXHVGRjAxXHVGRjAxXHVGRjAxXHVGRjAxXHVGRjAxXHVGRjAxXHVGRjAxXHVGRjAxXHVGRjAxXHVGRjAxXHVGRjAxXHVGRjAxXHVGRjAxXHVGRjAxXHVGRjAxXHVGRjAxXHVGRjAxXHVGRjAxXHVGRjAxXHVGRjAxXHVGRjAxXHVGRjAxXHVGRjAxXHVGRjAxXHVGRjAxXHVGRjAxXHVGRjAxXHVGRjAxXHVGRjAxXHVGRjAxXHVGRjAxXHVGRjAxXHVGRjAxXHVGRjAxXHVGRjAxXHVGRjAxXHVGRjAxXHVGRjAxXHVGRjAxXHVGRjAxXHVGRjAxXHVGRjAxXHVGRjAxXHVGRjAxXHVGRjAxXHVGRjAxXHVGRjAxXHVGRjAxXHVGRjAxXHVGRjAxXHVGRjAxXHVGRjAxXHVGRjAxXHVGRjAxXHVGRjAxXHVGRjAxXHVGRjAxXHVGRjAxXHVGRjAxXHVGRjAxXHVGRjAxXHVGRjAxXHVGRjAxXHVGRjAxXHVGRjAxXHVGRjAxXHVGRjAxXHVGRjAxXHVGRjAxXHVGRjAxXHVGRjAxXHVGRjAxXHVGRjAxXHVGRjAxXHVGRjAxXHVGRjAxXHVGRjAxXHVGRjAxXHVGRjAxXHVGRjAxXHVGRjAxXHJcbiAgY29uc3QgaW1hZ2VzID0ge1xyXG4gICAgY2FyZDE6ICdodHRwczovL3N0YXRpYy5pZ2VtLndpa2kvdGVhbXMvNTM3OC90ZWFtLW1lbWJlci8wMTAxLTEud2VicCcsXHJcbiAgICBjYXJkMjogJ2h0dHBzOi8vc3RhdGljLmlnZW0ud2lraS90ZWFtcy81Mzc4L3RlYW0tbWVtYmVyLzAyMDEtMS53ZWJwJyxcclxuICAgIGNhcmQzOiAnaHR0cHM6Ly9zdGF0aWMuaWdlbS53aWtpL3RlYW1zLzUzNzgvdGVhbS1tZW1iZXIvMDMwMS0xLndlYnAnLFxyXG4gICAgY2FyZDQ6ICdodHRwczovL3N0YXRpYy5pZ2VtLndpa2kvdGVhbXMvNTM3OC90ZWFtLW1lbWJlci8wNDAxLTEud2VicCcsXHJcbiAgICBjYXJkNTogJ2h0dHBzOi8vc3RhdGljLmlnZW0ud2lraS90ZWFtcy81Mzc4L3RlYW0tbWVtYmVyLzA1MDEtMS53ZWJwJyxcclxuICAgIGNhcmQ2OiAnaHR0cHM6Ly9zdGF0aWMuaWdlbS53aWtpL3RlYW1zLzUzNzgvdGVhbS1tZW1iZXIvMDYwMS0xLndlYnAnLFxyXG4gICAgY2FyZDc6ICdodHRwczovL3N0YXRpYy5pZ2VtLndpa2kvdGVhbXMvNTM3OC90ZWFtLW1lbWJlci8wNzAxLTEud2VicCcsXHJcbiAgICBjYXJkODogJ2h0dHBzOi8vc3RhdGljLmlnZW0ud2lraS90ZWFtcy81Mzc4L3RlYW0tbWVtYmVyLzA4MDEtMS53ZWJwJyxcclxuICAgIGNhcmQ5OiAnaHR0cHM6Ly9zdGF0aWMuaWdlbS53aWtpL3RlYW1zLzUzNzgvdGVhbS1tZW1iZXIvMDkwMS0xLndlYnAnLFxyXG4gICAgY2FyZDEwOiAnaHR0cHM6Ly9zdGF0aWMuaWdlbS53aWtpL3RlYW1zLzUzNzgvdGVhbS1tZW1iZXIvMTAwMS0xLndlYnAnLFxyXG4gICAgY2FyZDExOiAnaHR0cHM6Ly9zdGF0aWMuaWdlbS53aWtpL3RlYW1zLzUzNzgvdGVhbS1tZW1iZXIvMTEwMS0xLndlYnAnLFxyXG4gICAgY2FyZDEyOiAnaHR0cHM6Ly9zdGF0aWMuaWdlbS53aWtpL3RlYW1zLzUzNzgvdGVhbS1tZW1iZXIvMTIwMS0xLndlYnAnLFxyXG4gICAgY2FyZDEzOiAnaHR0cHM6Ly9zdGF0aWMuaWdlbS53aWtpL3RlYW1zLzUzNzgvdGVhbS1tZW1iZXIvMTMwMS0xLndlYnAnLFxyXG4gICAgY2FyZDE0OiAnaHR0cHM6Ly9zdGF0aWMuaWdlbS53aWtpL3RlYW1zLzUzNzgvdGVhbS1tZW1iZXIvMTQwMS0xLndlYnAnLFxyXG4gICAgY2FyZDE1OiAnaHR0cHM6Ly9zdGF0aWMuaWdlbS53aWtpL3RlYW1zLzUzNzgvdGVhbS1tZW1iZXIvMTUwMS0xLndlYnAnLFxyXG4gICAgY2FyZDE2OiAnaHR0cHM6Ly9zdGF0aWMuaWdlbS53aWtpL3RlYW1zLzUzNzgvdGVhbS1tZW1iZXIvMTYwMS0xLndlYnAnLFxyXG4gICAgY2FyZDE3OiAnaHR0cHM6Ly9zdGF0aWMuaWdlbS53aWtpL3RlYW1zLzUzNzgvdGVhbS1tZW1iZXIvMTcwMS0xLndlYnAnLFxyXG4gICAgY2FyZDE4OiAnaHR0cHM6Ly9zdGF0aWMuaWdlbS53aWtpL3RlYW1zLzUzNzgvdGVhbS1tZW1iZXIvMTgwMS0xLndlYnAnLFxyXG4gICAgY2FyZDE5OiAnaHR0cHM6Ly9zdGF0aWMuaWdlbS53aWtpL3RlYW1zLzUzNzgvdGVhbS1tZW1iZXIvMTkwMS0xLndlYnAnLFxyXG4gICAgY2FyZDIwOiAnaHR0cHM6Ly9zdGF0aWMuaWdlbS53aWtpL3RlYW1zLzUzNzgvdGVhbS1tZW1iZXIvMjAwMS0xLndlYnAnLFxyXG4gICAgY2FyZDIxOiAnaHR0cHM6Ly9zdGF0aWMuaWdlbS53aWtpL3RlYW1zLzUzNzgvdGVhbS1tZW1iZXIvMjEwMS0xLndlYnAnLFxyXG4gICAgY2FyZDIyOiAnaHR0cHM6Ly9zdGF0aWMuaWdlbS53aWtpL3RlYW1zLzUzNzgvdGVhbS1tZW1iZXIvMjIwMS0xLndlYnAnLFxyXG4gICAgY2FyZDIzOiAnaHR0cHM6Ly9zdGF0aWMuaWdlbS53aWtpL3RlYW1zLzUzNzgvdGVhbS1tZW1iZXIvMjMwMS0xLndlYnAnLFxyXG4gICAgY2FyZDI0OiAnaHR0cHM6Ly9zdGF0aWMuaWdlbS53aWtpL3RlYW1zLzUzNzgvdGVhbS1tZW1iZXIvMjQwMS0xLndlYnAnLFxyXG4gICAgY2FyZDI1OiAnaHR0cHM6Ly9zdGF0aWMuaWdlbS53aWtpL3RlYW1zLzUzNzgvdGVhbS1tZW1iZXIvMjUwMS0xLndlYnAnLFxyXG4gICAgY2FyZDI2OiAnaHR0cHM6Ly9zdGF0aWMuaWdlbS53aWtpL3RlYW1zLzUzNzgvdGVhbS1tZW1iZXIvMjYwMS0xLndlYnAnLFxyXG4gICAgY2FyZDI3OiAnaHR0cHM6Ly9zdGF0aWMuaWdlbS53aWtpL3RlYW1zLzUzNzgvdGVhbS1tZW1iZXIvMjcwMS0xLndlYnAnLFxyXG4gICAgY2FyZDI4OiAnaHR0cHM6Ly9zdGF0aWMuaWdlbS53aWtpL3RlYW1zLzUzNzgvdGVhbS1tZW1iZXIvMjgwMS0xLndlYnAnLFxyXG4gICAgY2FyZDI5OiAnaHR0cHM6Ly9zdGF0aWMuaWdlbS53aWtpL3RlYW1zLzUzNzgvdGVhbS1tZW1iZXIvMjkwMS0xLndlYnAnLFxyXG4gICAgY2FyZDMwOiAnaHR0cHM6Ly9zdGF0aWMuaWdlbS53aWtpL3RlYW1zLzUzNzgvdGVhbS1tZW1iZXIvMzAwMS0xLndlYnAnLFxyXG4gICAgY2FyZDMxOiAnaHR0cHM6Ly9zdGF0aWMuaWdlbS53aWtpL3RlYW1zLzUzNzgvdGVhbS1tZW1iZXIvMzEwMS0xLndlYnAnLFxyXG4gICAgY2FyZDMyOiAnaHR0cHM6Ly9zdGF0aWMuaWdlbS53aWtpL3RlYW1zLzUzNzgvdGVhbS1tZW1iZXIvMzIwMS53ZWJwJyxcclxuICAgIGNhcmQzMzogJ2h0dHBzOi8vc3RhdGljLmlnZW0ud2lraS90ZWFtcy81Mzc4L3RlYW0tbWVtYmVyLzMzMDEtMS53ZWJwJyxcclxuICAgIGNhcmQzNDogJ2h0dHBzOi8vc3RhdGljLmlnZW0ud2lraS90ZWFtcy81Mzc4L3RlYW0tbWVtYmVyLzM0MDEud2VicCcsXHJcbiAgICBjYXJkMzU6ICdodHRwczovL3N0YXRpYy5pZ2VtLndpa2kvdGVhbXMvNTM3OC90ZWFtLW1lbWJlci9xaW5nZmVuZzIud2VicCcsXHJcbiAgICBjYXJkMzY6ICdodHRwczovL3N0YXRpYy5pZ2VtLndpa2kvdGVhbXMvNTM3OC90ZWFtLW1lbWJlci9zaGVuc2hlbi53ZWJwJyxcclxuXHJcblxyXG4gIH07XHJcblxyXG4gIGNvbnN0IHdvcmRzID0ge1xyXG4gXHJcbiAgICBjYXJkMTogJ1JlbWFpbiBwYXNzaW9uYXRlIGFuZCBlbWJhcmsgb24gYSBqb3VybmV5IGFjcm9zcyBtb3VudGFpbnMgYW5kIHNlYXMuJyxcclxuICAgIGNhcmQyOiAnV2hlcmUgdGhlcmVcXCdzIGEgd2lsbCwgdGhlcmVcXCdzIGEgd2F5LicsXHJcbiAgICBjYXJkMzogJ0lucGVyZmVjdGlvbiBpcyBiZWF1dHkuJyxcclxuICAgIGNhcmQ0OiAnXCJJbiBldmVyeSBqb2IgdGhhdCBtdXN0IGJlIGRvbmUsIHRoZXJlIGlzIGFuIGVsZW1lbnQgb2YgZnVuLiBZb3UgZmluZCB0aGUgZnVuLCBhbmQgc25hcCEgVGhlIGpvYiBpcyBhIGdhbWUuXCIgTWFycnkgUG9wcGlucycsXHJcbiAgICBjYXJkNTogJ015IG5hbWUgaXMgWXVoYW8gTGluLiBJIG1ham9yZWQgcGF0aG9iaW9sb2d5IGF0IFNvdXRoZXJuIE1lZGljYWwgVW5pdmVyc2l0eSBpbiBDaGluYS4gTXkgaG9iYmllcyBhcmUgZml0bmVzcywgcGxheWluZyB2aWRlbyBnYW1lcywgbWFraW5nIG1vZGVscyBhbmQgc28gb24uIE15IGNyZWRvIGlzIFx1MjAxQ3RoZSByb2FkIHN0cmV0Y2hlcyBvbiBhcyBsb25nIGFzIHlvdSBrZWVwIG1vdmluZy5cdTIwMUQnLFxyXG4gICAgY2FyZDY6ICdYaWFvbG9uZyBIZSwgcHJpbmNpcGFsIGludmVzdGlnYXRvciBhdCB0aGUgTWljcm9iaW9tZSBNZWRpY2luZSBDZW50ZXIsIFpodWppYW5nIEhvc3BpdGFsLCBTb3V0aGVybiBNZWRpY2FsIFVuaXZlcnNpdHkuV2hlcmUgdGhlcmVcXCdzIGEgd2lsbCwgdGhlcmVcXCdzIGEgd2F5LicsXHJcbiAgICBjYXJkNzogJ0tlZXAgYSBzaW5nbGUgc3BhcmsgdG8gc3RhcnQgYSBwcmFpcmllIGZpcmUuJyxcclxuICAgIGNhcmQ4OiAnVGhlIHdvcmxkIGlzIG15IG95c3Rlciwgd2hpY2ggSSB3aXRoIHN3b3JkIHdpbGwgb3Blbi4nLFxyXG4gICAgY2FyZDk6ICdSZWdhcmRsZXNzIG9mIHRoZSB0d2lzdHMgYW5kIHR1cm4sIGJ1dCBhdCB0aGUgZW5kLicsXHJcbiAgICBjYXJkMTA6ICdNeSBuYW1lIGlzIFdlbiwgYSBzdHVkZW50IG1ham9yaW5nIGluIHBzeWNoaWF0cnkuIFRvIHNlZSB0aGUgd29ybGQsIHRvIHVudmVpbCB0aGUgbXlzdGVyeSBvZiBicmFpbiwgdG8gZmVlbCwgdG8gZmluZCBlYWNoIG90aGVyIGFuZCBkcmF3IGNsb3Nlci4gV2UgYXJlIGFsbCBleHBsb3JlcnMuJyxcclxuICAgIGNhcmQxMTogJ1ZhbGFyIERvaGFlcmlzJyxcclxuICAgIGNhcmQxMjogJ0RvblxcJ3Qgd29ycnksZ29vZCB0aGluZ3MgdGFrZSB0aW1lLicsXHJcbiAgICBjYXJkMTM6ICdUaGUgbWVhbmluZyBvZiBsaWZlIGlzIG5vdCBpbiB0aGUgb3V0d2FyZCBzZWFyY2gsIGJ1dCBpbiB0aGUgaW53YXJkIGNvbnN0cnVjdGlvbi4nLFxyXG4gICAgY2FyZDE0OiAnQ29uc2lkZXIgdGhpbmdzIGZyb20gZXZlcnkgYW5nbGUuJyxcclxuICAgIGNhcmQxNTogJ2NhbiBpdCBiZSBhIF8/eWVzLicsXHJcbiAgICBjYXJkMTY6J0h1YSBaaGFuZywgRGVhbiBvZiBTY2hvb2wgb2YgTWVkaWNhbCBUZWNobm9sb2d5LCBHdWFuZ2RvbmcgTWVkaWNhbCBVbml2ZXJzaXR5LCBDaGluYS4gU2VjdGlvbiBlZGl0b3Igb2YgQmlvbWFya2VyIFJlc2VhcmNoLCBSZXNlYXJjaCBmaWVsZDogdHVtb3IgcGF0aG9nZW5lc2lzLicsXHJcbiAgICBjYXJkMTc6ICdCZXR0ZXIgbGF0ZSB0aGFuIG5ldmVyIC4nLFxyXG4gICAgY2FyZDE4OiAnTm90aGluZyBzZWVrICwgbm90aGluZyBmaW5kLicsXHJcbiAgICBjYXJkMTk6ICdNeSBuYW1lIGlzIFdlaWh1YW4gTGksIG15IHBlcnNvbmFsaXR5IGlzIHF1aXRlIGV4dHJvdmVydGVkLiBJIGxvdmUgc29jaWFsaXppbmcgcGVvcGxlLicsXHJcbiAgICBjYXJkMjA6J2NvZGVyXHUzMDAxZW5qb3kgbWFraW5nICBBSSBwcm9kdWN0cycsXHJcbiAgICBjYXJkMjE6ICdNeSBuYW1lIGlzIFRpYW5GZWllci5JXFwnbSBmcm9tIEd1YW5nZG9uZyBNZWRpY2FsIFVuaXZlcnNpdHksIG1ham9yaW5nIGluIGFwcGxpZWQgcHN5Y2hvbG9neS4gTXkgZmF2b3JpdGUgcXVvdGUgaXMgXHUyMDFDVG8gbGl2ZSBpcyB0byB0aGluay5cdTIwMUQnLFxyXG4gICAgY2FyZDIyOidTZWNvbmQgeWVhciBpbiBpR0VNLiBBbHdheXMgY2hhc2luZyBhZnRlciB0aHJpbGxpbmcga25vd2xlZGdlIGFib3V0IGxpZmUuIEhvcGUgZXZlcnlvbmUgY2FuIGVuam95IHRoaXMgbWVhbmluZ2Z1bCBldmVudCBhbmQgaGF2ZSBmdW4gd2l0aCBzeW50aGV0aWMgYmlvbG9neS4nLFxyXG4gICAgY2FyZDIzOidEci4gS3VuIExpdSwgQXNzb2NpYXRlZCBSZXNlYXJjaGVyLCBTb3V0aGVybiBNZWRpY2FsIFVuaXZlcnNpdHkuIE15IHJlc2VhcmNoIGludGVyZXN0aW5nIGZvY3VzZXMgb24gc29sdmluZyB0aGUga2V5IGNsaW5pY2FsIGlzc3VlcyBieSBlbXBsb3lpbmcgaW50ZXJkaXNjaXBsaW5hcnkgdGVjaG5pcXVlcy4gXHUyMDFDSSB0aGluayB0aGVyZWZvcmUgSSBhbS5cdTIwMUQnLFxyXG4gICAgY2FyZDI0OidJbnNwaXJlIG9yaWdpbmFsaXR5LCBpZ25pdGUgaW5ub3ZhdGlvbi4nLFxyXG4gICAgY2FyZDI1OiAnSSBhbSBKaWFqaW4gTGksIGFuIE1QSCBzdHVkZW50IGF0IHRoZSBVbml2ZXJzaXR5IG9mIEhvbmdrb25nLCBmb2N1c2luZyBvbiBlcGlkZW1pb2xvZ3kgYW5kIGJpb3N0YXRpc3RpY3MuJyxcclxuICAgIGNhcmQyNjogJ0ZvcnR1bmUgZmF2b3JzIHRoZSBib2xkLicsXHJcbiAgICBjYXJkMjc6ICdNYWtlIG1hZ2ljIGhhcHBlbi4nLFxyXG4gICAgY2FyZDI4OiAnTm8gbmVlZCB0byBodXJyeS4gTm8gbmVlZCB0byBzcGFya2xlLiBObyBuZWVkIHRvIGJlIGFueWJvZHkgYnV0IG9uZXNlbGYuJyxcclxuICAgIGNhcmQyOTonQSBjcmVhdGl2ZSBzdHVkZW50cyBhbmQgYWRvbGVzY2VudCxvbmNlIGlHRU1lcixhbHdheXMgaUdFTWVyIScsXHJcbiAgICBjYXJkMzA6ICdBbGlzIHZvbGF0IHByb3ByaWlzLicsXHJcbiAgICBjYXJkMzE6ICdIaSwgSVxcJ20gWWluZywgeW91ciBnby10byBzcGFya2xlIGZvciBhbGwgdGhpbmdzIGJyaWdodCBhbmQgaW5mb3JtYXRpdmUhJyxcclxuICAgIGNhcmQzMjogJ0ZpcnN0IHllYXIgaW4gaUdlbSAsIG9uY2UgaUdFTWVyICwgYWx3YXlzIGlHRU1lciAhJyxcclxuICAgIGNhcmQzMzogJ0hlbGxvIHRoaXMgaXMgVGluYSBmcm9tIFRoZSBVbml2ZXJzaXR5IG9mIFNpbmdhcG9yZS4gVGhlIGJlc3Qgd2F5IHRvIHByZWRpY3QgdGhlIGZ1dHVyZSBpcyB0byBjcmVhdGUgaXQhJyxcclxuICAgIGNhcmQzNDogJ0ppYW4gU3VuLCByZXByZXNlbnRhdGl2ZSBvZiB0aGUgMTR0aCBOYXRpb25hbCBQZW9wbGVcXCdzIENvbmdyZXNzIG9mIENoaW5hLCBzZXJ2aW5nIGFzIHRoZSBwcmVzaWRlbnQsIHNlY29uZC1sZXZlbCBwcm9mZXNzb3IgYW5kIGNoaWVmIHBoeXNpY2lhbiBvZiBOYW5mYW5nIEhvc3BpdGFsLCBTb3V0aGVybiBNZWRpY2FsIFVuaXZlcnNpdHksIEd1YW5nemhvdS4gSGlzIHJlc2VhcmNoIGludGVyZXN0cyBmb2N1cyBvbiB0aGUgcGF0aG9nZW5lc2lzLCBkaWFnbm9zaXMgYW5kIHRyZWF0bWVudCBvZiBjaHJvbmljIGhlcGF0aXRpcyBCIGFuZCBvdGhlciBtZXRhYm9saWMgYXNzb2NpdGFlZCBsaXZlciBkaXNlYXNlcy4nLFxyXG4gICAgY2FyZDM1OiAnVGhlcmUgaXMgbm8gcm95YWwgcm9hZCB0byBzY2llbmNlLCBhbmQgb25seSB0aG9zZSB3aG8gZG8gbm90IGRyZWFkIHRoZSBmYXRpZ3VpbmcgY2xpbWIgb2YgaXRzIHN0ZWVwIHBhdGhzIGhhdmUgYSBjaGFuY2Ugb2YgZ2FpbmluZyBpdHMgbHVtaW5vdXMgc3VtbWl0cy4nLFxyXG4gICAgY2FyZDM2OiAnVGhlIEJlYXV0eSBvZiBTY2llbmNlIGlzIHRvIE1ha2UgVGhpbmdzIFNpbXBsZScsXHJcblxyXG4gIH07XHJcblxyXG4gIGNvbnN0IG5hbWVzID0ge1xyXG4gICAgY2FyZDE6J0tleWkgWmhhbicsXHJcbiAgICBjYXJkMjonTWluZyBaaHUnLFxyXG4gICAgY2FyZDM6J1lpaGFuIFd1JyxcclxuICAgIGNhcmQ0OidTaGVuZ2xpbiBDaGVuJyxcclxuICAgIGNhcmQ1OidZdWhhbyBsaW4nLFxyXG4gICAgY2FyZDY6J1hpYW9sb25nIEhlJyxcclxuICAgIGNhcmQ3OidKaW5neHVhbiBEdWFueWknLFxyXG4gICAgY2FyZDg6J0x1bWluZyBIdWFuZycsXHJcbiAgICBjYXJkOTonV2FuIExpJyxcclxuICAgIGNhcmQxMDonV2Vucm9uZyBXZW4nLFxyXG4gICAgY2FyZDExOidaaXl1YW4gTGl1JyxcclxuICAgIGNhcmQxMjonUGFuIFpoYW8nLFxyXG4gICAgY2FyZDEzOidXZW55aSBHdWFuJyxcclxuICAgIGNhcmQxNDonSmlhbmh1YSBaaGFuZycsXHJcbiAgICBjYXJkMTU6J1J1bnplIFdlbicsXHJcbiAgICBjYXJkMTY6J0h1YSBaaGFuZycsXHJcbiAgICBjYXJkMTc6J0d1b3podW8gQ2FpJyxcclxuICAgIGNhcmQxODonWWluZ3lpbmcgWWFuZycsXHJcbiAgICBjYXJkMTk6J1dlaWh1YW4gTGknLFxyXG4gICAgY2FyZDIwOidZaWZlbmcgV2FuZycsXHJcbiAgICBjYXJkMjE6J0ZlaWVyIFRpYW4nLFxyXG4gICAgY2FyZDIyOidaaGl4aW4gRmFuZycsXHJcbiAgICBjYXJkMjM6J0t1biBMaXUnLFxyXG4gICAgY2FyZDI0OidMaW5nIExpJyxcclxuICAgIGNhcmQyNTonSmlhamluIExpJyxcclxuICAgIGNhcmQyNjonS2FuZyBXYW5nJyxcclxuICAgIGNhcmQyNzonTWVpdG9uZyBIYW4nLFxyXG4gICAgY2FyZDI4OidZYW5xaXUgQ2FpJyxcclxuICAgIGNhcmQyOTonSnVuaGFvIExpJyxcclxuICAgIGNhcmQzMDonS2UgTGl1JyxcclxuICAgIGNhcmQzMTonWWluZ3lpbmcgQ2hlbicsXHJcbiAgICBjYXJkMzI6J1hpbmdhbiBaaGFvJyxcclxuICAgIGNhcmQzMzonWmhpbGluZyBXdScsXHJcbiAgICBjYXJkMzQ6J0ppYW4gU3VuJyxcclxuICAgIGNhcmQzNTonUWluZ2ZlbmcgWmh1JyxcclxuICAgIGNhcmQzNjogJ1NoZW5nIFNoZW4nLFxyXG4gIH1cclxuXHJcbiAgLy8gXHU0RTBCXHU2NUI5XHU1QjlBXHU0RTQ5XHU5MUNEXHU4OTgxXHVGRjAxXHVGRjAxXHVGRjAxXHVGRjAxXHVGRjAxXHVGRjAxXHVGRjAxXHVGRjAxXHVGRjAxXHVGRjAxXHVGRjAxXHVGRjAxXHVGRjAxXHVGRjAxXHVGRjAxXHVGRjAxXHVGRjAxXHVGRjAxXHVGRjAxXHVGRjAxXHVGRjAxXHVGRjAxXHVGRjAxXHVGRjAxXHVGRjAxXHVGRjAxXHVGRjAxXHVGRjAxXHVGRjAxXHVGRjAxXHVGRjAxXHVGRjAxXHVGRjAxXHVGRjAxXHVGRjAxXHVGRjAxXHVGRjAxXHVGRjAxXHVGRjAxXHVGRjAxXHVGRjAxXHVGRjAxXHVGRjAxXHVGRjAxXHVGRjAxXHVGRjAxXHVGRjAxXHVGRjAxXHVGRjAxXHVGRjAxXHVGRjAxXHVGRjAxXHVGRjAxXHVGRjAxXHVGRjAxXHVGRjAxXHVGRjAxXHVGRjAxXHVGRjAxXHVGRjAxXHVGRjAxXHVGRjAxXHVGRjAxXHVGRjAxXHVGRjAxXHVGRjAxXHVGRjAxXHVGRjAxXHVGRjAxXHVGRjAxXHVGRjAxXHVGRjAxXHVGRjAxXHVGRjAxXHVGRjAxXHVGRjAxXHVGRjAxXHVGRjAxXHVGRjAxXHVGRjAxXHVGRjAxXHVGRjAxXHVGRjAxXHVGRjAxXHVGRjAxXHJcbiAgY29uc3QgaGFuZGxlQ2FyZEhvdmVyID0gKGlkOiBzdHJpbmcsIGlzSG92ZXJlZDogYm9vbGVhbikgPT4ge1xyXG4gICAgaWYgKGlzSG92ZXJlZCkge1xyXG4gICAgICBzZXRIb3ZlcmVkQ2FyZElkKGlkIGFzIFwiY2FyZDFcIiB8IFwiY2FyZDJcIiB8IFwiY2FyZDNcIiB8IFwiY2FyZDRcIiB8IFwiY2FyZDVcIiB8IFwiY2FyZDZcIiB8IFwiY2FyZDdcIiB8IFwiY2FyZDhcIiB8IFwiY2FyZDlcIiB8IFwiY2FyZDEwXCIgfCBcImNhcmQxMVwiIHwgXCJjYXJkMTJcIiB8IFwiY2FyZDEzXCIgfCBcImNhcmQxNFwiIHwgXCJjYXJkMTVcIiB8IFwiY2FyZDE2XCIgfCBcImNhcmQxN1wiIHwgXCJjYXJkMThcIiB8IFwiY2FyZDE5XCIgfCBcImNhcmQyMFwiIHwgXCJjYXJkMjFcIiB8IFwiY2FyZDIyXCIgfCBcImNhcmQyM1wiIHwgXCJjYXJkMjRcIiB8IFwiY2FyZDI1XCIgfCBcImNhcmQyNlwiIHwgXCJjYXJkMjdcIiB8IFwiY2FyZDI4XCIgfCBcImNhcmQyOVwiIHwgXCJjYXJkMzBcIiB8IFwiY2FyZDMxXCIgfCBcImNhcmQzMlwiIHwgXCJjYXJkMzNcIiB8IFwiY2FyZDM0XCIgfCBcImNhcmQzNVwiKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHNldEhvdmVyZWRDYXJkSWQobnVsbCk7XHJcbiAgICB9XHJcbiAgfTtcclxuXHJcbiAgcmV0dXJuIChcclxuICAgIDw+XHJcbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY3VzdG9tLWhlYWRlci10ZWFtXCI+XHJcbiAgICAgICAgPGgxIGNsYXNzTmFtZT1cImNlbnRlcmVkLXRpdGxlXCI+XHJcbiAgICAgICAgICA8aW1nIFxyXG4gICAgICAgICAgICBzcmM9XCJodHRwczovL3N0YXRpYy5pZ2VtLndpa2kvdGVhbXMvNTM3OC9oZWFkZXIvdGVhbS5wbmdcIlxyXG4gICAgICAgICAgICBhbHQ9XCJ0ZWFtIGhlYWRlclwiXHJcbiAgICAgICAgICAgIGNsYXNzTmFtZT1cImhlYWRlci1pbWdcIlxyXG4gICAgICAgICAgLz5cclxuICAgICAgICAgIDxpbWcgXHJcbiAgICAgICAgICAgICAgICBzcmM9XCJodHRwczovL3N0YXRpYy5pZ2VtLndpa2kvdGVhbXMvNTM3OC9oZWFkZXIvaGVhZGVyLWJhci53ZWJwXCJcclxuICAgICAgICAgICAgICAgIGFsdD1cInNhZmV0eSBoZWFkZXJcIlxyXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiaGVhZGVyLWJhclwiXHJcbiAgICAgICAgICAgICAgLz5cclxuICAgICAgICA8L2gxPlxyXG4gICAgICA8L2Rpdj5cclxuXHJcbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwicm93IGJnLXJpY2VfeWVsbG93XCI+XHJcbiAgICAgICAgey8qIFx1NURFNlx1NEZBN3N0aWNreVx1NUJCOVx1NTY2OCAqL31cclxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC0zXCI+XHJcbiAgICAgICAgICB7LyogXHU0RTBCXHU2NUI5XHU4QkJFXHU3RjZFXHU5RUQ4XHU4QkE0XHU2NjNFXHU3OTNBXHU1NkZFXHU1MENGICovfVxyXG4gICAgICAgICAgPFN0aWNreUltYWdlQ29udGFpbmVyIFxyXG4gICAgICAgICAgaW1hZ2U9e2hvdmVyZWRDYXJkSWQgPyBpbWFnZXNbaG92ZXJlZENhcmRJZF0gOiAnaHR0cHM6Ly9wbGFjZWhvbGQuY28vNjAweDgwMCd9IFxyXG4gICAgICAgICAgd29yZHM9e2hvdmVyZWRDYXJkSWQgPyB3b3Jkc1tob3ZlcmVkQ2FyZElkXSA6IFwiR2xhZCB0byBpbnRyb2R1Y2Ugb3VyIHRlYW0gdG8geW91IVwifSBcclxuICAgICAgICAgIG5hbWVzPXtob3ZlcmVkQ2FyZElkID8gbmFtZXNbaG92ZXJlZENhcmRJZF0gOiBcIk91ciBjcmV3XCJ9XHJcbiAgICAgICAgICAvPlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICB7LyogXHU1MzYxXHU3MjQ3XHU1MzNBXHU1N0RGICovfVxyXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLThcIj5cclxuXHJcbiAgICAgICAgICBcclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPSd2aDIwJz48L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPSdyb3cganVzdGlmeS1jb250ZW50LWNlbnRlciBoMSc+U3R1ZGVudCBMZWFkZXI8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY2FyZC1ib2R5XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLTNcIj5cclxuICAgICAgICAgICAgPENhcmRcclxuICAgICAgICAgICAgICAgIGlkPVwiY2FyZDIyXCJcclxuICAgICAgICAgICAgICAgIGltYWdlMT1cImh0dHBzOi8vc3RhdGljLmlnZW0ud2lraS90ZWFtcy81Mzc4L3RlYW0tbWVtYmVyLzIyMDEtMS53ZWJwXCJcclxuICAgICAgICAgICAgICAgIGltYWdlMj1cImh0dHBzOi8vc3RhdGljLmlnZW0ud2lraS90ZWFtcy81Mzc4L3RlYW0tbWVtYmVyLzIyMDItMS53ZWJwXCJcclxuICAgICAgICAgICAgICAgIHRpdGxlMT1cIlpoaXhpbiBGYW5nXCJcclxuICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uMT1cIlNUVURFTlQgTEVBREVSXCJcclxuICAgICAgICAgICAgICAgIG9uSG92ZXI9e2hhbmRsZUNhcmRIb3Zlcn1cclxuICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT0ncm93IGp1c3RpZnktY29udGVudC1jZW50ZXIgaDEnPlBSSU1BUlkgJiBTZWNvbmRhcnkgUElzPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT0ncm93Jz5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9J2NhcmQtYm9keSc+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLTNcIj5cclxuICAgICAgICAgICAgICA8Q2FyZFxyXG4gICAgICAgICAgICAgICAgaWQ9XCJjYXJkMzRcIlxyXG4gICAgICAgICAgICAgICAgaW1hZ2UxPVwiaHR0cHM6Ly9zdGF0aWMuaWdlbS53aWtpL3RlYW1zLzUzNzgvdGVhbS1tZW1iZXIvMzQwMS53ZWJwXCJcclxuICAgICAgICAgICAgICAgIGltYWdlMj1cImh0dHBzOi8vc3RhdGljLmlnZW0ud2lraS90ZWFtcy81Mzc4L3RlYW0tbWVtYmVyLzM0MDIud2VicFwiXHJcbiAgICAgICAgICAgICAgICB0aXRsZTE9XCJKaWFuIFN1blwiXHJcbiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjE9XCJQUklNQVJZIFBJc1wiXHJcbiAgICAgICAgICAgICAgICBvbkhvdmVyPXtoYW5kbGVDYXJkSG92ZXJ9XHJcbiAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLTNcIj5cclxuICAgICAgICAgICAgPENhcmRcclxuICAgICAgICAgICAgICAgIGlkPVwiY2FyZDI0XCJcclxuICAgICAgICAgICAgICAgIGltYWdlMT1cImh0dHBzOi8vc3RhdGljLmlnZW0ud2lraS90ZWFtcy81Mzc4L3RlYW0tbWVtYmVyLzI0MDEtMS53ZWJwXCJcclxuICAgICAgICAgICAgICAgIGltYWdlMj1cImh0dHBzOi8vc3RhdGljLmlnZW0ud2lraS90ZWFtcy81Mzc4L3RlYW0tbWVtYmVyLzI0MDItMS53ZWJwXCJcclxuICAgICAgICAgICAgICAgIHRpdGxlMT1cIkxpbmcgTGlcIlxyXG4gICAgICAgICAgICAgICAgZGVzY3JpcHRpb24xPVwiUFJJTUFSWSBQSXNcIlxyXG4gICAgICAgICAgICAgICAgb25Ib3Zlcj17aGFuZGxlQ2FyZEhvdmVyfVxyXG4gICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC0zXCI+XHJcbiAgICAgICAgICAgIDxDYXJkXHJcbiAgICAgICAgICAgICAgICBpZD1cImNhcmQxNlwiXHJcbiAgICAgICAgICAgICAgICBpbWFnZTE9XCJodHRwczovL3N0YXRpYy5pZ2VtLndpa2kvdGVhbXMvNTM3OC90ZWFtLW1lbWJlci8xNjAxLTEud2VicFwiXHJcbiAgICAgICAgICAgICAgICBpbWFnZTI9XCJodHRwczovL3N0YXRpYy5pZ2VtLndpa2kvdGVhbXMvNTM3OC90ZWFtLW1lbWJlci8xNjAyLTEud2VicFwiXHJcbiAgICAgICAgICAgICAgICB0aXRsZTE9XCJIdWEgWmhhbmdcIlxyXG4gICAgICAgICAgICAgICAgZGVzY3JpcHRpb24xPVwiU2Vjb25kYXJ5IFBJc1wiXHJcbiAgICAgICAgICAgICAgICBvbkhvdmVyPXtoYW5kbGVDYXJkSG92ZXJ9XHJcbiAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC0zXCI+XHJcbiAgICAgICAgICAgIDxDYXJkXHJcbiAgICAgICAgICAgICAgICBpZD1cImNhcmQ2XCJcclxuICAgICAgICAgICAgICAgIGltYWdlMT1cImh0dHBzOi8vc3RhdGljLmlnZW0ud2lraS90ZWFtcy81Mzc4L3RlYW0tbWVtYmVyLzA2MDEtMS53ZWJwXCJcclxuICAgICAgICAgICAgICAgIGltYWdlMj1cImh0dHBzOi8vc3RhdGljLmlnZW0ud2lraS90ZWFtcy81Mzc4L3RlYW0tbWVtYmVyLzA2MDItMS53ZWJwXCJcclxuICAgICAgICAgICAgICAgIHRpdGxlMT1cIlhpYW9sb25nIEhlXCJcclxuICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uMT1cIlNlY29uZGFyeSBQSXNcIlxyXG4gICAgICAgICAgICAgICAgb25Ib3Zlcj17aGFuZGxlQ2FyZEhvdmVyfVxyXG4gICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICBcclxuXHJcbiAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT0ncm93IGp1c3RpZnktY29udGVudC1jZW50ZXIgaDEnPkluc3RydWN0b3JzPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJvd1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT0nY2FyZC1ib2R5Jz5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtMyBtYXJnaW4tMjBcIj5cclxuICAgICAgICAgICAgPENhcmRcclxuICAgICAgICAgICAgICAgIGlkPVwiY2FyZDM1XCJcclxuICAgICAgICAgICAgICAgIGltYWdlMT1cImh0dHBzOi8vc3RhdGljLmlnZW0ud2lraS90ZWFtcy81Mzc4L3RlYW0tbWVtYmVyL3FpbmdmZW5nMi53ZWJwXCJcclxuICAgICAgICAgICAgICAgIGltYWdlMj1cImh0dHBzOi8vc3RhdGljLmlnZW0ud2lraS90ZWFtcy81Mzc4L3RlYW0tbWVtYmVyL3FpbmdmZW5nLndlYnBcIlxyXG4gICAgICAgICAgICAgICAgdGl0bGUxPVwiUWluZ2ZlbmcgWmh1XCJcclxuICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uMT1cIkluc3RydWN0b3JzXCJcclxuICAgICAgICAgICAgICAgIG9uSG92ZXI9e2hhbmRsZUNhcmRIb3Zlcn1cclxuICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLTMgbWFyZ2luLTIwXCI+XHJcbiAgICAgICAgICAgIDxDYXJkXHJcbiAgICAgICAgICAgICAgICBpZD1cImNhcmQzNlwiXHJcbiAgICAgICAgICAgICAgICBpbWFnZTE9XCJodHRwczovL3N0YXRpYy5pZ2VtLndpa2kvdGVhbXMvNTM3OC90ZWFtLW1lbWJlci9zaGVuc2hlbi53ZWJwXCJcclxuICAgICAgICAgICAgICAgIGltYWdlMj1cImh0dHBzOi8vc3RhdGljLmlnZW0ud2lraS90ZWFtcy81Mzc4L3RlYW0tbWVtYmVyL3NoZW5zaGVuMi53ZWJwXCJcclxuICAgICAgICAgICAgICAgIHRpdGxlMT1cIlNoZW5nIFNoZW5cIlxyXG4gICAgICAgICAgICAgICAgZGVzY3JpcHRpb24xPVwiSW5zdHJ1Y3RvcnNcIlxyXG4gICAgICAgICAgICAgICAgb25Ib3Zlcj17aGFuZGxlQ2FyZEhvdmVyfVxyXG4gICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtMyBtYXJnaW4tMjBcIj5cclxuICAgICAgICAgICAgPENhcmRcclxuICAgICAgICAgICAgICAgIGlkPVwiY2FyZDIzXCJcclxuICAgICAgICAgICAgICAgIGltYWdlMT1cImh0dHBzOi8vc3RhdGljLmlnZW0ud2lraS90ZWFtcy81Mzc4L3RlYW0tbWVtYmVyLzIzMDEtMS53ZWJwXCJcclxuICAgICAgICAgICAgICAgIGltYWdlMj1cImh0dHBzOi8vc3RhdGljLmlnZW0ud2lraS90ZWFtcy81Mzc4L3RlYW0tbWVtYmVyLzIzMDItMS53ZWJwXCJcclxuICAgICAgICAgICAgICAgIHRpdGxlMT1cIkt1biBMaXVcIlxyXG4gICAgICAgICAgICAgICAgZGVzY3JpcHRpb24xPVwiSW5zdHJ1Y3RvcnNcIlxyXG4gICAgICAgICAgICAgICAgb25Ib3Zlcj17aGFuZGxlQ2FyZEhvdmVyfVxyXG4gICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPSdyb3cganVzdGlmeS1jb250ZW50LWNlbnRlciBoMSc+QWR2aXNvcjwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyb3dcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9J2NhcmQtYm9keSc+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLTMgbWFyZ2luLTIwXCI+XHJcbiAgICAgICAgICAgIDxDYXJkXHJcbiAgICAgICAgICAgICAgICBpZD1cImNhcmQxMFwiXHJcbiAgICAgICAgICAgICAgICBpbWFnZTE9XCJodHRwczovL3N0YXRpYy5pZ2VtLndpa2kvdGVhbXMvNTM3OC90ZWFtLW1lbWJlci8xMDAxLTEud2VicFwiXHJcbiAgICAgICAgICAgICAgICBpbWFnZTI9XCJodHRwczovL3N0YXRpYy5pZ2VtLndpa2kvdGVhbXMvNTM3OC90ZWFtLW1lbWJlci8xMDAyLTEud2VicFwiXHJcbiAgICAgICAgICAgICAgICB0aXRsZTE9XCJXZW5yb25nIFdlblwiXHJcbiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjE9XCJBZHZpc29yc1wiXHJcbiAgICAgICAgICAgICAgICBvbkhvdmVyPXtoYW5kbGVDYXJkSG92ZXJ9XHJcbiAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLTMgbWFyZ2luLTIwXCI+ICAgICAgIFxyXG4gICAgICAgICAgICA8Q2FyZFxyXG4gICAgICAgICAgICAgICAgaWQ9XCJjYXJkNVwiXHJcbiAgICAgICAgICAgICAgICBpbWFnZTE9XCJodHRwczovL3N0YXRpYy5pZ2VtLndpa2kvdGVhbXMvNTM3OC90ZWFtLW1lbWJlci8wNTAxLTEud2VicFwiXHJcbiAgICAgICAgICAgICAgICBpbWFnZTI9XCJodHRwczovL3N0YXRpYy5pZ2VtLndpa2kvdGVhbXMvNTM3OC90ZWFtLW1lbWJlci8wNTAyLTEud2VicFwiXHJcbiAgICAgICAgICAgICAgICB0aXRsZTE9XCJZdWhhbyBMaW5cIlxyXG4gICAgICAgICAgICAgICAgZGVzY3JpcHRpb24xPVwiQWR2aXNvcnNcIlxyXG4gICAgICAgICAgICAgICAgb25Ib3Zlcj17aGFuZGxlQ2FyZEhvdmVyfVxyXG4gICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC0zIG1hcmdpbi0yMFwiPlxyXG4gICAgICAgICAgICA8Q2FyZFxyXG4gICAgICAgICAgICAgICAgaWQ9XCJjYXJkMzFcIlxyXG4gICAgICAgICAgICAgICAgaW1hZ2UxPVwiaHR0cHM6Ly9zdGF0aWMuaWdlbS53aWtpL3RlYW1zLzUzNzgvdGVhbS1tZW1iZXIvMzEwMS0xLndlYnBcIlxyXG4gICAgICAgICAgICAgICAgaW1hZ2UyPVwiaHR0cHM6Ly9zdGF0aWMuaWdlbS53aWtpL3RlYW1zLzUzNzgvdGVhbS1tZW1iZXIvMzEwMi0xLndlYnBcIlxyXG4gICAgICAgICAgICAgICAgdGl0bGUxPVwiWWluZ3lpbmcgQ2hlblwiXHJcbiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjE9XCJBZHZpc29yc1wiXHJcbiAgICAgICAgICAgICAgICBvbkhvdmVyPXtoYW5kbGVDYXJkSG92ZXJ9XHJcbiAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyb3dcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9J2NhcmQtYm9keSc+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLTMgbWFyZ2luLTIwXCI+XHJcbiAgICAgICAgICAgICAgPENhcmRcclxuICAgICAgICAgICAgICAgIGlkPVwiY2FyZDI1XCJcclxuICAgICAgICAgICAgICAgIGltYWdlMT1cImh0dHBzOi8vc3RhdGljLmlnZW0ud2lraS90ZWFtcy81Mzc4L3RlYW0tbWVtYmVyLzI1MDEtMS53ZWJwXCJcclxuICAgICAgICAgICAgICAgIGltYWdlMj1cImh0dHBzOi8vc3RhdGljLmlnZW0ud2lraS90ZWFtcy81Mzc4L3RlYW0tbWVtYmVyLzI1MDItMS53ZWJwXCJcclxuICAgICAgICAgICAgICAgIHRpdGxlMT1cIkppYWppbiBMaVwiXHJcbiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjE9XCJBZHZpc29yc1wiXHJcbiAgICAgICAgICAgICAgICBvbkhvdmVyPXtoYW5kbGVDYXJkSG92ZXJ9XHJcbiAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC0zIG1hcmdpbi0yMFwiPlxyXG4gICAgICAgICAgICA8Q2FyZFxyXG4gICAgICAgICAgICAgICAgaWQ9XCJjYXJkMzNcIlxyXG4gICAgICAgICAgICAgICAgaW1hZ2UxPVwiaHR0cHM6Ly9zdGF0aWMuaWdlbS53aWtpL3RlYW1zLzUzNzgvdGVhbS1tZW1iZXIvMzMwMS0xLndlYnBcIlxyXG4gICAgICAgICAgICAgICAgaW1hZ2UyPVwiaHR0cHM6Ly9zdGF0aWMuaWdlbS53aWtpL3RlYW1zLzUzNzgvdGVhbS1tZW1iZXIvMzMwMi0xLndlYnBcIlxyXG4gICAgICAgICAgICAgICAgdGl0bGUxPVwiWmhpTGluZyBXdVwiXHJcbiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjE9XCJBZHZpc29yc1wiXHJcbiAgICAgICAgICAgICAgICBvbkhvdmVyPXtoYW5kbGVDYXJkSG92ZXJ9XHJcbiAgICAgICAgICAgICAgLz5cclxuXHJcblxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT0ncm93IGp1c3RpZnktY29udGVudC1jZW50ZXIgaDEnPlN0dWRlbnQgTWVtYmVyPC9kaXY+XHJcblxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyb3dcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtM1wiPlxyXG4gICAgICAgICAgICA8Q2FyZFxyXG4gICAgICAgICAgICAgICAgaWQ9XCJjYXJkMjlcIlxyXG4gICAgICAgICAgICAgICAgaW1hZ2UxPVwiaHR0cHM6Ly9zdGF0aWMuaWdlbS53aWtpL3RlYW1zLzUzNzgvdGVhbS1tZW1iZXIvMjkwMS0xLndlYnBcIlxyXG4gICAgICAgICAgICAgICAgaW1hZ2UyPVwiaHR0cHM6Ly9zdGF0aWMuaWdlbS53aWtpL3RlYW1zLzUzNzgvdGVhbS1tZW1iZXIvMjkwMi0xLndlYnBcIlxyXG4gICAgICAgICAgICAgICAgdGl0bGUxPVwiSnVuaGFvIExpXCJcclxuICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uMT1cIlN0dWRlbnRzXCJcclxuICAgICAgICAgICAgICAgIG9uSG92ZXI9e2hhbmRsZUNhcmRIb3Zlcn1cclxuICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLTNcIj5cclxuICAgICAgICAgICAgPENhcmRcclxuICAgICAgICAgICAgICAgIGlkPVwiY2FyZDFcIlxyXG4gICAgICAgICAgICAgICAgaW1hZ2UxPVwiaHR0cHM6Ly9zdGF0aWMuaWdlbS53aWtpL3RlYW1zLzUzNzgvdGVhbS1tZW1iZXIvMDEwMS0xLndlYnBcIlxyXG4gICAgICAgICAgICAgICAgaW1hZ2UyPVwiaHR0cHM6Ly9zdGF0aWMuaWdlbS53aWtpL3RlYW1zLzUzNzgvdGVhbS1tZW1iZXIvMDEwMi0xLndlYnBcIlxyXG4gICAgICAgICAgICAgICAgdGl0bGUxPVwiS2V5aSBaaGFuXCJcclxuICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uMT1cIlN0dWRlbnRzXCJcclxuICAgICAgICAgICAgICAgIG9uSG92ZXI9e2hhbmRsZUNhcmRIb3Zlcn1cclxuICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtM1wiPlxyXG4gICAgICAgICAgICAgIDxDYXJkXHJcbiAgICAgICAgICAgICAgICBpZD1cImNhcmQ3XCJcclxuICAgICAgICAgICAgICAgIGltYWdlMT1cImh0dHBzOi8vc3RhdGljLmlnZW0ud2lraS90ZWFtcy81Mzc4L3RlYW0tbWVtYmVyLzA3MDEtMS53ZWJwXCJcclxuICAgICAgICAgICAgICAgIGltYWdlMj1cImh0dHBzOi8vc3RhdGljLmlnZW0ud2lraS90ZWFtcy81Mzc4L3RlYW0tbWVtYmVyLzA3MDItMS53ZWJwXCJcclxuICAgICAgICAgICAgICAgIHRpdGxlMT1cIllpamluZ3h1YW4gRHVhblwiXHJcbiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjE9XCJTdHVkZW50c1wiXHJcbiAgICAgICAgICAgICAgICBvbkhvdmVyPXtoYW5kbGVDYXJkSG92ZXJ9XHJcbiAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLTNcIj5cclxuICAgICAgICAgICAgICA8Q2FyZFxyXG4gICAgICAgICAgICAgICAgaWQ9XCJjYXJkOFwiXHJcbiAgICAgICAgICAgICAgICBpbWFnZTE9XCJodHRwczovL3N0YXRpYy5pZ2VtLndpa2kvdGVhbXMvNTM3OC90ZWFtLW1lbWJlci8wODAxLTEud2VicFwiXHJcbiAgICAgICAgICAgICAgICBpbWFnZTI9XCJodHRwczovL3N0YXRpYy5pZ2VtLndpa2kvdGVhbXMvNTM3OC90ZWFtLW1lbWJlci8wODAyLTEud2VicFwiXHJcbiAgICAgICAgICAgICAgICB0aXRsZTE9XCJMdW1pbmcgSHVhbmdcIlxyXG4gICAgICAgICAgICAgICAgZGVzY3JpcHRpb24xPVwiU3R1ZGVudHNcIlxyXG4gICAgICAgICAgICAgICAgb25Ib3Zlcj17aGFuZGxlQ2FyZEhvdmVyfVxyXG4gICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJvd1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC0zXCI+XHJcbiAgICAgICAgICAgICAgPENhcmRcclxuICAgICAgICAgICAgICAgIGlkPVwiY2FyZDEzXCJcclxuICAgICAgICAgICAgICAgIGltYWdlMT1cImh0dHBzOi8vc3RhdGljLmlnZW0ud2lraS90ZWFtcy81Mzc4L3RlYW0tbWVtYmVyLzEzMDEtMS53ZWJwXCJcclxuICAgICAgICAgICAgICAgIGltYWdlMj1cImh0dHBzOi8vc3RhdGljLmlnZW0ud2lraS90ZWFtcy81Mzc4L3RlYW0tbWVtYmVyLzEzMDItMS53ZWJwXCJcclxuICAgICAgICAgICAgICAgIHRpdGxlMT1cIldlbnlpIEd1YW5cIlxyXG4gICAgICAgICAgICAgICAgZGVzY3JpcHRpb24xPVwiU3R1ZGVudHNcIlxyXG4gICAgICAgICAgICAgICAgb25Ib3Zlcj17aGFuZGxlQ2FyZEhvdmVyfVxyXG4gICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC0zXCI+XHJcbiAgICAgICAgICAgICAgPENhcmRcclxuICAgICAgICAgICAgICAgIGlkPVwiY2FyZDE0XCJcclxuICAgICAgICAgICAgICAgIGltYWdlMT1cImh0dHBzOi8vc3RhdGljLmlnZW0ud2lraS90ZWFtcy81Mzc4L3RlYW0tbWVtYmVyLzE0MDEtMS53ZWJwXCJcclxuICAgICAgICAgICAgICAgIGltYWdlMj1cImh0dHBzOi8vc3RhdGljLmlnZW0ud2lraS90ZWFtcy81Mzc4L3RlYW0tbWVtYmVyLzE0MDItMS53ZWJwXCJcclxuICAgICAgICAgICAgICAgIHRpdGxlMT1cIkppYW5odWEgWmhhbmdcIlxyXG4gICAgICAgICAgICAgICAgZGVzY3JpcHRpb24xPVwiU3R1ZGVudHNcIlxyXG4gICAgICAgICAgICAgICAgb25Ib3Zlcj17aGFuZGxlQ2FyZEhvdmVyfVxyXG4gICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC0zXCI+XHJcbiAgICAgICAgICAgICAgPENhcmRcclxuICAgICAgICAgICAgICAgIGlkPVwiY2FyZDE1XCJcclxuICAgICAgICAgICAgICAgIGltYWdlMT1cImh0dHBzOi8vc3RhdGljLmlnZW0ud2lraS90ZWFtcy81Mzc4L3RlYW0tbWVtYmVyLzE1MDEtMS53ZWJwXCJcclxuICAgICAgICAgICAgICAgIGltYWdlMj1cImh0dHBzOi8vc3RhdGljLmlnZW0ud2lraS90ZWFtcy81Mzc4L3RlYW0tbWVtYmVyLzE1MDItMS53ZWJwXCJcclxuICAgICAgICAgICAgICAgIHRpdGxlMT1cIlJ1bnplIFdlblwiXHJcbiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjE9XCJTdHVkZW50c1wiXHJcbiAgICAgICAgICAgICAgICBvbkhvdmVyPXtoYW5kbGVDYXJkSG92ZXJ9XHJcbiAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLTNcIj5cclxuICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgPENhcmRcclxuICAgICAgICAgICAgICAgIGlkPVwiY2FyZDJcIlxyXG4gICAgICAgICAgICAgICAgaW1hZ2UxPVwiaHR0cHM6Ly9zdGF0aWMuaWdlbS53aWtpL3RlYW1zLzUzNzgvdGVhbS1tZW1iZXIvMDIwMS0xLndlYnBcIlxyXG4gICAgICAgICAgICAgICAgaW1hZ2UyPVwiaHR0cHM6Ly9zdGF0aWMuaWdlbS53aWtpL3RlYW1zLzUzNzgvdGVhbS1tZW1iZXIvMDIwMi0xLndlYnBcIlxyXG4gICAgICAgICAgICAgICAgdGl0bGUxPVwiTWluZyBaaHVcIlxyXG4gICAgICAgICAgICAgICAgZGVzY3JpcHRpb24xPVwiU3R1ZGVudHNcIlxyXG4gICAgICAgICAgICAgICAgb25Ib3Zlcj17aGFuZGxlQ2FyZEhvdmVyfVxyXG4gICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyb3dcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtM1wiPlxyXG4gICAgICAgICAgICAgIDxDYXJkXHJcbiAgICAgICAgICAgICAgICBpZD1cImNhcmQxN1wiXHJcbiAgICAgICAgICAgICAgICBpbWFnZTE9XCJodHRwczovL3N0YXRpYy5pZ2VtLndpa2kvdGVhbXMvNTM3OC90ZWFtLW1lbWJlci8xNzAxLTEud2VicFwiXHJcbiAgICAgICAgICAgICAgICBpbWFnZTI9XCJodHRwczovL3N0YXRpYy5pZ2VtLndpa2kvdGVhbXMvNTM3OC90ZWFtLW1lbWJlci8xNzAyLTEud2VicFwiXHJcbiAgICAgICAgICAgICAgICB0aXRsZTE9XCJHdW96aHVvIENhaVwiXHJcbiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjE9XCJTdHVkZW50c1wiXHJcbiAgICAgICAgICAgICAgICBvbkhvdmVyPXtoYW5kbGVDYXJkSG92ZXJ9XHJcbiAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLTNcIj5cclxuICAgICAgICAgICAgICA8Q2FyZFxyXG4gICAgICAgICAgICAgICAgaWQ9XCJjYXJkMThcIlxyXG4gICAgICAgICAgICAgICAgaW1hZ2UxPVwiaHR0cHM6Ly9zdGF0aWMuaWdlbS53aWtpL3RlYW1zLzUzNzgvdGVhbS1tZW1iZXIvMTgwMS0xLndlYnBcIlxyXG4gICAgICAgICAgICAgICAgaW1hZ2UyPVwiaHR0cHM6Ly9zdGF0aWMuaWdlbS53aWtpL3RlYW1zLzUzNzgvdGVhbS1tZW1iZXIvMTgwMi0xLndlYnBcIlxyXG4gICAgICAgICAgICAgICAgdGl0bGUxPVwiWWluZ3lpbmcgWWFuZ1wiXHJcbiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjE9XCJTdHVkZW50c1wiXHJcbiAgICAgICAgICAgICAgICBvbkhvdmVyPXtoYW5kbGVDYXJkSG92ZXJ9XHJcbiAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLTNcIj5cclxuICAgICAgICAgICAgICA8Q2FyZFxyXG4gICAgICAgICAgICAgICAgaWQ9XCJjYXJkMTlcIlxyXG4gICAgICAgICAgICAgICAgaW1hZ2UxPVwiaHR0cHM6Ly9zdGF0aWMuaWdlbS53aWtpL3RlYW1zLzUzNzgvdGVhbS1tZW1iZXIvMTkwMS0xLndlYnBcIlxyXG4gICAgICAgICAgICAgICAgaW1hZ2UyPVwiaHR0cHM6Ly9zdGF0aWMuaWdlbS53aWtpL3RlYW1zLzUzNzgvdGVhbS1tZW1iZXIvMTkwMi0xLndlYnBcIlxyXG4gICAgICAgICAgICAgICAgdGl0bGUxPVwiV2VpaHVhbiBMaVwiXHJcbiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjE9XCJTdHVkZW50c1wiXHJcbiAgICAgICAgICAgICAgICBvbkhvdmVyPXtoYW5kbGVDYXJkSG92ZXJ9XHJcbiAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLTNcIj5cclxuICAgICAgICAgICAgICA8Q2FyZFxyXG4gICAgICAgICAgICAgICAgaWQ9XCJjYXJkMjBcIlxyXG4gICAgICAgICAgICAgICAgaW1hZ2UxPVwiaHR0cHM6Ly9zdGF0aWMuaWdlbS53aWtpL3RlYW1zLzUzNzgvdGVhbS1tZW1iZXIvMjAwMS0xLndlYnBcIlxyXG4gICAgICAgICAgICAgICAgaW1hZ2UyPVwiaHR0cHM6Ly9zdGF0aWMuaWdlbS53aWtpL3RlYW1zLzUzNzgvdGVhbS1tZW1iZXIvMjAwMi0xLndlYnBcIlxyXG4gICAgICAgICAgICAgICAgdGl0bGUxPVwiWWlmZW5nIFdhbmdcIlxyXG4gICAgICAgICAgICAgICAgZGVzY3JpcHRpb24xPVwiU3R1ZGVudHNcIlxyXG4gICAgICAgICAgICAgICAgb25Ib3Zlcj17aGFuZGxlQ2FyZEhvdmVyfVxyXG4gICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJvd1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC0zXCI+XHJcbiAgICAgICAgICAgICAgPENhcmRcclxuICAgICAgICAgICAgICAgIGlkPVwiY2FyZDIxXCJcclxuICAgICAgICAgICAgICAgIGltYWdlMT1cImh0dHBzOi8vc3RhdGljLmlnZW0ud2lraS90ZWFtcy81Mzc4L3RlYW0tbWVtYmVyLzIxMDEtMS53ZWJwXCJcclxuICAgICAgICAgICAgICAgIGltYWdlMj1cImh0dHBzOi8vc3RhdGljLmlnZW0ud2lraS90ZWFtcy81Mzc4L3RlYW0tbWVtYmVyLzIxMDItMS53ZWJwXCJcclxuICAgICAgICAgICAgICAgIHRpdGxlMT1cIkZlaWVyIFRpYW5cIlxyXG4gICAgICAgICAgICAgICAgZGVzY3JpcHRpb24xPVwiU3R1ZGVudHNcIlxyXG4gICAgICAgICAgICAgICAgb25Ib3Zlcj17aGFuZGxlQ2FyZEhvdmVyfVxyXG4gICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC0zXCI+XHJcbiAgICAgICAgICAgIDxDYXJkXHJcbiAgICAgICAgICAgICAgICBpZD1cImNhcmQ5XCJcclxuICAgICAgICAgICAgICAgIGltYWdlMT1cImh0dHBzOi8vc3RhdGljLmlnZW0ud2lraS90ZWFtcy81Mzc4L3RlYW0tbWVtYmVyLzA5MDEtMS53ZWJwXCJcclxuICAgICAgICAgICAgICAgIGltYWdlMj1cImh0dHBzOi8vc3RhdGljLmlnZW0ud2lraS90ZWFtcy81Mzc4L3RlYW0tbWVtYmVyLzA5MDItMS53ZWJwXCJcclxuICAgICAgICAgICAgICAgIHRpdGxlMT1cIldhbiBMaVwiXHJcbiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjE9XCJTdHVkZW50c1wiXHJcbiAgICAgICAgICAgICAgICBvbkhvdmVyPXtoYW5kbGVDYXJkSG92ZXJ9XHJcbiAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLTNcIj5cclxuICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgPENhcmRcclxuICAgICAgICAgICAgICAgIGlkPVwiY2FyZDNcIlxyXG4gICAgICAgICAgICAgICAgaW1hZ2UxPVwiaHR0cHM6Ly9zdGF0aWMuaWdlbS53aWtpL3RlYW1zLzUzNzgvdGVhbS1tZW1iZXIvMDMwMS0xLndlYnBcIlxyXG4gICAgICAgICAgICAgICAgaW1hZ2UyPVwiaHR0cHM6Ly9zdGF0aWMuaWdlbS53aWtpL3RlYW1zLzUzNzgvdGVhbS1tZW1iZXIvMDMwMi0xLndlYnBcIlxyXG4gICAgICAgICAgICAgICAgdGl0bGUxPVwiWWloYW4gV3VcIlxyXG4gICAgICAgICAgICAgICAgZGVzY3JpcHRpb24xPVwiU3R1ZGVudHNcIlxyXG4gICAgICAgICAgICAgICAgb25Ib3Zlcj17aGFuZGxlQ2FyZEhvdmVyfVxyXG4gICAgICAgICAgICAgIC8+XHJcblxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtM1wiPlxyXG4gICAgICAgICAgICA8Q2FyZFxyXG4gICAgICAgICAgICAgICAgaWQ9XCJjYXJkNFwiXHJcbiAgICAgICAgICAgICAgICBpbWFnZTE9XCJodHRwczovL3N0YXRpYy5pZ2VtLndpa2kvdGVhbXMvNTM3OC90ZWFtLW1lbWJlci8wNDAxLTEud2VicFwiXHJcbiAgICAgICAgICAgICAgICBpbWFnZTI9XCJodHRwczovL3N0YXRpYy5pZ2VtLndpa2kvdGVhbXMvNTM3OC90ZWFtLW1lbWJlci8wNDAyLTEud2VicFwiXHJcbiAgICAgICAgICAgICAgICB0aXRsZTE9XCJTaGVuZ2xpbiBDaGVuXCJcclxuICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uMT1cIlN0dWRlbnRzXCJcclxuICAgICAgICAgICAgICAgIG9uSG92ZXI9e2hhbmRsZUNhcmRIb3Zlcn1cclxuICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicm93XCI+XHJcbiAgICAgICAgICAgIFxyXG5cclxuXHJcblxyXG5cclxuICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLTNcIj5cclxuICAgICAgICAgICAgICA8Q2FyZFxyXG4gICAgICAgICAgICAgICAgaWQ9XCJjYXJkMjZcIlxyXG4gICAgICAgICAgICAgICAgaW1hZ2UxPVwiaHR0cHM6Ly9zdGF0aWMuaWdlbS53aWtpL3RlYW1zLzUzNzgvdGVhbS1tZW1iZXIvMjYwMS0xLndlYnBcIlxyXG4gICAgICAgICAgICAgICAgaW1hZ2UyPVwiaHR0cHM6Ly9zdGF0aWMuaWdlbS53aWtpL3RlYW1zLzUzNzgvdGVhbS1tZW1iZXIvMjYwMi0xLndlYnBcIlxyXG4gICAgICAgICAgICAgICAgdGl0bGUxPVwiS2FuZyBXYW5nXCJcclxuICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uMT1cIlN0dWRlbnRzXCJcclxuICAgICAgICAgICAgICAgIG9uSG92ZXI9e2hhbmRsZUNhcmRIb3Zlcn1cclxuICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtM1wiPlxyXG4gICAgICAgICAgICAgIDxDYXJkXHJcbiAgICAgICAgICAgICAgICBpZD1cImNhcmQyN1wiXHJcbiAgICAgICAgICAgICAgICBpbWFnZTE9XCJodHRwczovL3N0YXRpYy5pZ2VtLndpa2kvdGVhbXMvNTM3OC90ZWFtLW1lbWJlci8yNzAxLTEud2VicFwiXHJcbiAgICAgICAgICAgICAgICBpbWFnZTI9XCJodHRwczovL3N0YXRpYy5pZ2VtLndpa2kvdGVhbXMvNTM3OC90ZWFtLW1lbWJlci8yNzAyLTEud2VicFwiXHJcbiAgICAgICAgICAgICAgICB0aXRsZTE9XCJNZWl0b25nIEhhblwiXHJcbiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjE9XCJTdHVkZW50c1wiXHJcbiAgICAgICAgICAgICAgICBvbkhvdmVyPXtoYW5kbGVDYXJkSG92ZXJ9XHJcbiAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLTNcIj5cclxuICAgICAgICAgICAgICA8Q2FyZFxyXG4gICAgICAgICAgICAgICAgaWQ9XCJjYXJkMjhcIlxyXG4gICAgICAgICAgICAgICAgaW1hZ2UxPVwiaHR0cHM6Ly9zdGF0aWMuaWdlbS53aWtpL3RlYW1zLzUzNzgvdGVhbS1tZW1iZXIvMjgwMS0xLndlYnBcIlxyXG4gICAgICAgICAgICAgICAgaW1hZ2UyPVwiaHR0cHM6Ly9zdGF0aWMuaWdlbS53aWtpL3RlYW1zLzUzNzgvdGVhbS1tZW1iZXIvMjgwMi0xLndlYnBcIlxyXG4gICAgICAgICAgICAgICAgdGl0bGUxPVwiWWFucWl1IENhaVwiXHJcbiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjE9XCJTdHVkZW50c1wiXHJcbiAgICAgICAgICAgICAgICBvbkhvdmVyPXtoYW5kbGVDYXJkSG92ZXJ9XHJcbiAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLTNcIj5cclxuICAgICAgICAgICAgICA8Q2FyZFxyXG4gICAgICAgICAgICAgICAgaWQ9XCJjYXJkMzJcIlxyXG4gICAgICAgICAgICAgICAgaW1hZ2UxPVwiaHR0cHM6Ly9zdGF0aWMuaWdlbS53aWtpL3RlYW1zLzUzNzgvdGVhbS1tZW1iZXIvMzIwMS53ZWJwXCJcclxuICAgICAgICAgICAgICAgIGltYWdlMj1cImh0dHBzOi8vc3RhdGljLmlnZW0ud2lraS90ZWFtcy81Mzc4L3RlYW0tbWVtYmVyLzMyMDIud2VicFwiXHJcbiAgICAgICAgICAgICAgICB0aXRsZTE9XCJYaW5nYW4gWmhhb1wiXHJcbiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjE9XCJTdHVkZW50c1wiXHJcbiAgICAgICAgICAgICAgICBvbkhvdmVyPXtoYW5kbGVDYXJkSG92ZXJ9XHJcbiAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJvd1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC0zXCI+XHJcbiAgICAgICAgICAgIDxDYXJkXHJcbiAgICAgICAgICAgICAgICBpZD1cImNhcmQxMlwiXHJcbiAgICAgICAgICAgICAgICBpbWFnZTE9XCJodHRwczovL3N0YXRpYy5pZ2VtLndpa2kvdGVhbXMvNTM3OC90ZWFtLW1lbWJlci8xMjAxLTEud2VicFwiXHJcbiAgICAgICAgICAgICAgICBpbWFnZTI9XCJodHRwczovL3N0YXRpYy5pZ2VtLndpa2kvdGVhbXMvNTM3OC90ZWFtLW1lbWJlci8xMjAyLTEud2VicFwiXHJcbiAgICAgICAgICAgICAgICB0aXRsZTE9XCJQYW4gWmhhb1wiXHJcbiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjE9XCJTdHVkZW50c1wiXHJcbiAgICAgICAgICAgICAgICBvbkhvdmVyPXtoYW5kbGVDYXJkSG92ZXJ9XHJcbiAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgXHJcblxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtM1wiPlxyXG4gICAgICAgICAgICAgIDxDYXJkXHJcbiAgICAgICAgICAgICAgICBpZD1cImNhcmQzMFwiXHJcbiAgICAgICAgICAgICAgICBpbWFnZTE9XCJodHRwczovL3N0YXRpYy5pZ2VtLndpa2kvdGVhbXMvNTM3OC90ZWFtLW1lbWJlci8zMDAxLTEud2VicFwiXHJcbiAgICAgICAgICAgICAgICBpbWFnZTI9XCJodHRwczovL3N0YXRpYy5pZ2VtLndpa2kvdGVhbXMvNTM3OC90ZWFtLW1lbWJlci8zMDAyLTEud2VicFwiXHJcbiAgICAgICAgICAgICAgICB0aXRsZTE9XCJLZSBMaXVcIlxyXG4gICAgICAgICAgICAgICAgZGVzY3JpcHRpb24xPVwiU3R1ZGVudHNcIlxyXG4gICAgICAgICAgICAgICAgb25Ib3Zlcj17aGFuZGxlQ2FyZEhvdmVyfVxyXG4gICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC0zXCI+XHJcbiAgICAgICAgICAgIDxDYXJkXHJcbiAgICAgICAgICAgICAgICBpZD1cImNhcmQxMVwiXHJcbiAgICAgICAgICAgICAgICBpbWFnZTE9XCJodHRwczovL3N0YXRpYy5pZ2VtLndpa2kvdGVhbXMvNTM3OC90ZWFtLW1lbWJlci8xMTAxLTEud2VicFwiXHJcbiAgICAgICAgICAgICAgICBpbWFnZTI9XCJodHRwczovL3N0YXRpYy5pZ2VtLndpa2kvdGVhbXMvNTM3OC90ZWFtLW1lbWJlci8xMTAyLTEud2VicFwiXHJcbiAgICAgICAgICAgICAgICB0aXRsZTE9XCJaaXl1YW4gTGl1XCJcclxuICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uMT1cIlN0dWRlbnRzXCJcclxuICAgICAgICAgICAgICAgIG9uSG92ZXI9e2hhbmRsZUNhcmRIb3Zlcn1cclxuICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgXHJcbiAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJvd1wiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtM1wiPlxyXG4gICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtM1wiPlxyXG4gICAgICAgICAgICAgIDxDYXJkXHJcbiAgICAgICAgICAgICAgICBpZD1cImNhcmQzNlwiXHJcbiAgICAgICAgICAgICAgICBpbWFnZTE9XCJodHRwczovL3BsYWNlaG9sZC5jby82MDB4ODAwXCJcclxuICAgICAgICAgICAgICAgIGltYWdlMj1cImh0dHBzOi8vcGxhY2Vob2xkLmNvLzYwMHg4MDBcIlxyXG4gICAgICAgICAgICAgICAgdGl0bGUxPVwiRXhhbXBsZVwiXHJcbiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjE9XCJEZXNjcmlwdGlvbi5cIlxyXG4gICAgICAgICAgICAgICAgb25Ib3Zlcj17aGFuZGxlQ2FyZEhvdmVyfVxyXG4gICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9J3JvdyBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGgxJz5FeHRlcm5hbCBNZW1iZXI8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicm93XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLTNcIj5cclxuICAgICAgICAgICAgICA8Q2FyZFxyXG4gICAgICAgICAgICAgICAgaWQ9XCJjYXJkMzdcIlxyXG4gICAgICAgICAgICAgICAgaW1hZ2UxPVwiaHR0cHM6Ly9wbGFjZWhvbGQuY28vNjAweDgwMFwiXHJcbiAgICAgICAgICAgICAgICBpbWFnZTI9XCJodHRwczovL3BsYWNlaG9sZC5jby82MDB4ODAwXCJcclxuICAgICAgICAgICAgICAgIHRpdGxlMT1cIkV4YW1wbGVcIlxyXG4gICAgICAgICAgICAgICAgZGVzY3JpcHRpb24xPVwiRGVzY3JpcHRpb24uXCJcclxuICAgICAgICAgICAgICAgIG9uSG92ZXI9e2hhbmRsZUNhcmRIb3Zlcn1cclxuICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtM1wiPlxyXG4gICAgICAgICAgICAgIDxDYXJkXHJcbiAgICAgICAgICAgICAgICBpZD1cImNhcmQzOFwiXHJcbiAgICAgICAgICAgICAgICBpbWFnZTE9XCJodHRwczovL3BsYWNlaG9sZC5jby82MDB4ODAwXCJcclxuICAgICAgICAgICAgICAgIGltYWdlMj1cImh0dHBzOi8vcGxhY2Vob2xkLmNvLzYwMHg4MDBcIlxyXG4gICAgICAgICAgICAgICAgdGl0bGUxPVwiRXhhbXBsZVwiXHJcbiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjE9XCJEZXNjcmlwdGlvbi5cIlxyXG4gICAgICAgICAgICAgICAgb25Ib3Zlcj17aGFuZGxlQ2FyZEhvdmVyfVxyXG4gICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC0zXCI+XHJcbiAgICAgICAgICAgICAgPENhcmRcclxuICAgICAgICAgICAgICAgIGlkPVwiY2FyZDM5XCJcclxuICAgICAgICAgICAgICAgIGltYWdlMT1cImh0dHBzOi8vcGxhY2Vob2xkLmNvLzYwMHg4MDBcIlxyXG4gICAgICAgICAgICAgICAgaW1hZ2UyPVwiaHR0cHM6Ly9wbGFjZWhvbGQuY28vNjAweDgwMFwiXHJcbiAgICAgICAgICAgICAgICB0aXRsZTE9XCJFeGFtcGxlXCJcclxuICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uMT1cIkRlc2NyaXB0aW9uLlwiXHJcbiAgICAgICAgICAgICAgICBvbkhvdmVyPXtoYW5kbGVDYXJkSG92ZXJ9XHJcbiAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLTNcIj5cclxuICAgICAgICAgICAgICA8Q2FyZFxyXG4gICAgICAgICAgICAgICAgaWQ9XCJjYXJkNDBcIlxyXG4gICAgICAgICAgICAgICAgaW1hZ2UxPVwiaHR0cHM6Ly9wbGFjZWhvbGQuY28vNjAweDgwMFwiXHJcbiAgICAgICAgICAgICAgICBpbWFnZTI9XCJodHRwczovL3BsYWNlaG9sZC5jby82MDB4ODAwXCJcclxuICAgICAgICAgICAgICAgIHRpdGxlMT1cIkV4YW1wbGVcIlxyXG4gICAgICAgICAgICAgICAgZGVzY3JpcHRpb24xPVwiRGVzY3JpcHRpb24uXCJcclxuICAgICAgICAgICAgICAgIG9uSG92ZXI9e2hhbmRsZUNhcmRIb3Zlcn1cclxuICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcblxyXG4gICAgICAgICAgXHJcblxyXG5cclxuXHJcbiAgICAgICAgICBcclxuICAgICAgICBcclxuXHJcbiAgICAgICAgXHJcbiAgICAgICAgICBcclxuICAgICAgICBcclxuXHJcbiAgICAgICAgXHJcbiAgICAgICAgICBcclxuICAgICAgICBcclxuXHJcbiAgICAgICAgey8qIDxkaXYgY2xhc3NOYW1lPVwiY29sLTJcIj48L2Rpdj4gKi99XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC8+XHJcbiAgKTtcclxufVxyXG4iLCAiaW1wb3J0IHsgdXNlRWZmZWN0IH0gZnJvbSBcInJlYWN0XCI7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gQXR0cmlidXRpb25zKCkge1xyXG4gIGNvbnN0IHRlYW1JRCA9IGltcG9ydC5tZXRhLmVudi5WSVRFX1RFQU1fSUQ7XHJcblxyXG4gIHVzZUVmZmVjdCgoKSA9PiB7XHJcbiAgICBmdW5jdGlvbiBsaXN0ZW5Ub0lmcmFtZUhlaWdodChlOiBNZXNzYWdlRXZlbnQpIHtcclxuICAgICAgaWYgKGUub3JpZ2luID09PSBcImh0dHBzOi8vdGVhbXMuaWdlbS5vcmdcIikge1xyXG4gICAgICAgIGNvbnN0IHsgdHlwZSwgZGF0YSB9ID0gSlNPTi5wYXJzZShlLmRhdGEpO1xyXG4gICAgICAgIGlmICh0eXBlID09PSBcImlnZW0tYXR0cmlidXRpb24tZm9ybVwiKSB7XHJcbiAgICAgICAgICBjb25zdCBlbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoXCJpZ2VtLWF0dHJpYnV0aW9uLWZvcm1cIik7XHJcbiAgICAgICAgICBpZiAoZWxlbWVudCkge1xyXG4gICAgICAgICAgICBlbGVtZW50LnN0eWxlLmhlaWdodCA9IGAke2RhdGEgKyAxMDB9cHhgO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJtZXNzYWdlXCIsIGxpc3RlblRvSWZyYW1lSGVpZ2h0KTtcclxuICAgIHJldHVybiAoKSA9PiB7XHJcbiAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKFwibWVzc2FnZVwiLCBsaXN0ZW5Ub0lmcmFtZUhlaWdodCk7XHJcbiAgICB9O1xyXG4gIH0sIFtdKTtcclxuXHJcbiAgcmV0dXJuIChcclxuICAgIDw+XHJcbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY3VzdG9tLWhlYWRlci1hdHRyaWJ1dGlvbnNcIj5cclxuICAgICAgICA8aDEgY2xhc3NOYW1lPVwiY2VudGVyZWQtdGl0bGVcIj5cclxuICAgICAgICA8aW1nIFxyXG4gICAgICAgICAgICAgICAgc3JjPVwiaHR0cHM6Ly9zdGF0aWMuaWdlbS53aWtpL3RlYW1zLzUzNzgvaGVhZGVyL2F0dHJpYnV0aW9uLnBuZ1wiXHJcbiAgICAgICAgICAgICAgICBhbHQ9XCJzYWZldHkgaGVhZGVyXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImhlYWRlci1pbWdcIlxyXG4gICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgPGltZyBcclxuICAgICAgICAgICAgICAgIHNyYz1cImh0dHBzOi8vc3RhdGljLmlnZW0ud2lraS90ZWFtcy81Mzc4L2hlYWRlci9oZWFkZXItYmFyLndlYnBcIlxyXG4gICAgICAgICAgICAgICAgYWx0PVwic2FmZXR5IGhlYWRlclwiXHJcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJoZWFkZXItYmFyXCJcclxuICAgICAgICAgICAgICAvPlxyXG4gICAgICAgIDwvaDE+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cInJvdyBtdC00XCI+XHJcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2xcIj5cclxuICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgIDxwPlRlYW1zIG11c3QgdXNlIHRoZSBzdGFuZGFyZCBBdHRyaWJ1dGlvbnMgZm9ybS4gVG8gbWVldCB0aGUgYXR0cmlidXRpb25zIHJlcXVpcmVtZW50LCB5b3UgbXVzdCBkaXNwbGF5IHRoZSBzdGFuZGFyZCBmb3JtIG9uIHlvdXIgV2lraSBieSBmb2xsb3dpbmcgdGhlIGluc3RydWN0aW9ucyA8YSBocmVmPVwiaHR0cHM6Ly9jb21wZXRpdGlvbi5pZ2VtLm9yZy9kZWxpdmVyYWJsZXMvcHJvamVjdC1hdHRyaWJ1dGlvblwiIHRhcmdldD1cIl9ibGFua1wiPmhlcmU8L2E+PC9wPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImJkLWNhbGxvdXQgYmQtY2FsbG91dC1pbmZvXCI+XHJcbiAgICAgICAgICAgIDxwPlxyXG4gICAgICAgICAgICAgIEluIHRoZSBpR0VNIENvbXBldGl0aW9uLCB3ZSBjZWxlYnJhdGUgc3R1ZGVudCBlZmZvcnQgYW5kXHJcbiAgICAgICAgICAgICAgYWNoaWV2ZW1lbnQuIFRoZSBBdHRyaWJ1dGlvbnMgZm9ybSBoZWxwcyB0aGUganVkZ2VzIGRpZmZlcmVudGlhdGVcclxuICAgICAgICAgICAgICBiZXR3ZWVuIHdoYXQgc3R1ZGVudHMgYWNjb21wbGlzaGVkIGZyb20gaG93IHRoZWlyIGV4dGVybmFsXHJcbiAgICAgICAgICAgICAgY29sbGFib3JhdG9ycyBzdXBwb3J0ZWQgdGhlbS4gVGhlcmVmb3JlLCB0ZWFtcyBtdXN0IGNsZWFybHlcclxuICAgICAgICAgICAgICBleHBsYWluIG9uIHRoZSBzdGFuZGFyZCBQcm9qZWN0IEF0dHJpYnV0aW9ucyBmb3JtIHdoYXQgd29yayB0aGV5XHJcbiAgICAgICAgICAgICAgaGF2ZSBjb25kdWN0ZWQgYnkgdGhlbXNlbHZlcyBhbmQgd2hhdCBoYXMgYmVlbiBkb25lIGJ5IG90aGVycy5cclxuICAgICAgICAgICAgPC9wPlxyXG4gICAgICAgICAgICA8cD5cclxuICAgICAgICAgICAgICBUZWFtcyBtdXN0IHVzZSB0aGUgc3RhbmRhcmQgQXR0cmlidXRpb25zIGZvcm0uIFRvIG1lZXQgdGhlXHJcbiAgICAgICAgICAgICAgYXR0cmlidXRpb25zIHJlcXVpcmVtZW50LCB5b3UgbXVzdCBkaXNwbGF5IHRoZSBzdGFuZGFyZCBmb3JtIG9uXHJcbiAgICAgICAgICAgICAgeW91ciBXaWtpIGJ5IGZvbGxvd2luZyB0aGUgaW5zdHJ1Y3Rpb25zIGhlcmU6XHJcbiAgICAgICAgICAgICAgPGEgaHJlZj1cImh0dHBzOi8vY29tcGV0aXRpb24uaWdlbS5vcmcvZGVsaXZlcmFibGVzL3Byb2plY3QtYXR0cmlidXRpb25cIj5cclxuICAgICAgICAgICAgICAgIFByb2plY3QgQXR0cmlidXRpb24gcGFnZVxyXG4gICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAuXHJcbiAgICAgICAgICAgIDwvcD5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJiZC1jYWxsb3V0IGJkLWNhbGxvdXQtaW5mb1wiPlxyXG4gICAgICAgICAgICA8aDQ+QnJvbnplIE1lZGFsIENyaXRlcmlvbiAjMjwvaDQ+XHJcbiAgICAgICAgICAgIDxwPlxyXG4gICAgICAgICAgICAgIERlc2NyaWJlIHdoYXQgd29yayB5b3VyIHRlYW0gbWVtYmVycyBkaWQgYW5kIHdoYXQgb3RoZXIgcGVvcGxlIGRpZFxyXG4gICAgICAgICAgICAgIGZvciB5b3VyIHByb2plY3QuXHJcbiAgICAgICAgICAgIDwvcD5cclxuICAgICAgICAgICAgPHA+XHJcbiAgICAgICAgICAgICAgVGhlIGZvcm0gdGhhdCBoYXMgYmVlbiBlbWJlZGRlZCBpbiBhbiBpZnJhbWUgaW4gdGhpcyBwYWdlIHNob3dzXHJcbiAgICAgICAgICAgICAgeW91ciB0ZWFtJ3MgUHJvamVjdCBBdHRyaWJ1dGlvbiBmb3JtLiBUaGlzIHBhZ2UgbXVzdCBrZWVwIHRoZSBmb3JtXHJcbiAgICAgICAgICAgICAgYXMgaXQgaXMuXHJcbiAgICAgICAgICAgIDwvcD5cclxuICAgICAgICAgICAgPHA+XHJcbiAgICAgICAgICAgICAgSWYgeW91IHVzZSBhIGRpZmZlcmVudCB3ZWJzaXRlIGZyYW1ld29yaywgbWFrZSBzdXJlIHRvIGVtYmVkIHRoZVxyXG4gICAgICAgICAgICAgIHJpZ2h0IFVSTCBmb3IgeW91ciB0ZWFtJ3MgZm9ybS5cclxuICAgICAgICAgICAgPC9wPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8aWZyYW1lXHJcbiAgICAgICAgc3R5bGU9e3sgd2lkdGg6IFwiMTAwJVwiIH19XHJcbiAgICAgICAgaWQ9XCJpZ2VtLWF0dHJpYnV0aW9uLWZvcm1cIlxyXG4gICAgICAgIHNyYz17YGh0dHBzOi8vdGVhbXMuaWdlbS5vcmcvd2lraS8ke3RlYW1JRH0vYXR0cmlidXRpb25zYH1cclxuICAgICAgLz5cclxuICAgIDwvPlxyXG4gICk7XHJcbn1cclxuXHJcblxyXG4iLCAiaW1wb3J0IHsgTmF2IH0gZnJvbSAncmVhY3QtYm9vdHN0cmFwJztcclxuaW1wb3J0IHsgTGluayxFbGVtZW50IH0gZnJvbSAncmVhY3Qtc2Nyb2xsJztcclxuaW1wb3J0IFJlYWN0LHt1c2VFZmZlY3QsdXNlU3RhdGV9IGZyb20gJ3JlYWN0JztcclxuXHJcblxyXG4vLyBzaWRlbmF2YmFyIGJlZ2luXHJcbmludGVyZmFjZSBTaWRlTmF2YmFyUHJvcHMge1xyXG4gIGFjdGl2ZUxpbms6IHN0cmluZztcclxufVxyXG5jb25zdCBTaWRlTmF2YmFyOiBSZWFjdC5GQzxTaWRlTmF2YmFyUHJvcHM+ID0gKHsgYWN0aXZlTGluayB9KSA9PiB7XHJcbiAgcmV0dXJuIChcclxuICAgIDxkaXYgY2xhc3NOYW1lPVwic2lkZS1uYXZiYXJcIj5cclxuICAgICAgPE5hdiBjbGFzc05hbWU9XCJmbGV4LWNvbHVtblwiPlxyXG4gICAgICAgIDxOYXYuTGluayBhcz17TGlua30gdG89XCJzZWN0aW9uMVwiIHNtb290aD17dHJ1ZX0gZHVyYXRpb249ezUwMH0gY2xhc3NOYW1lPXthY3RpdmVMaW5rID09PSAnc2VjdGlvbjEnID8gJ2FjdGl2ZScgOiAnbm90QWN0aXZlJ30+U2VjdGlvbiAxPC9OYXYuTGluaz5cclxuICAgICAgICA8TmF2LkxpbmsgYXM9e0xpbmt9IHRvPVwic2VjdGlvbjJcIiBzbW9vdGg9e3RydWV9IGR1cmF0aW9uPXs1MDB9IGNsYXNzTmFtZT17YWN0aXZlTGluayA9PT0gJ3NlY3Rpb24yJyA/ICdhY3RpdmUnIDogJ25vdEFjdGl2ZSd9PlNlY3Rpb24gMjwvTmF2Lkxpbms+XHJcbiAgICAgICAgPE5hdi5MaW5rIGFzPXtMaW5rfSB0bz1cInNlY3Rpb24zXCIgc21vb3RoPXt0cnVlfSBkdXJhdGlvbj17NTAwfSBjbGFzc05hbWU9e2FjdGl2ZUxpbmsgPT09ICdzZWN0aW9uMycgPyAnYWN0aXZlJyA6ICdub3RBY3RpdmUnfT5TZWN0aW9uIDM8L05hdi5MaW5rPlxyXG4gICAgICAgIDxOYXYuTGluayBhcz17TGlua30gdG89XCJzZWN0aW9uNFwiIHNtb290aD17dHJ1ZX0gZHVyYXRpb249ezUwMH0gY2xhc3NOYW1lPXthY3RpdmVMaW5rID09PSAnc2VjdGlvbjQnID8gJ2FjdGl2ZScgOiAnbm90QWN0aXZlJ30+U2VjdGlvbiA0PC9OYXYuTGluaz5cclxuICAgICAgICA8TmF2LkxpbmsgYXM9e0xpbmt9IHRvPVwic2VjdGlvbjVcIiBzbW9vdGg9e3RydWV9IGR1cmF0aW9uPXs1MDB9IGNsYXNzTmFtZT17YWN0aXZlTGluayA9PT0gJ3NlY3Rpb241JyA/ICdhY3RpdmUnIDogJ25vdEFjdGl2ZSd9PlNlY3Rpb24gNTwvTmF2Lkxpbms+XHJcbiAgICAgICAgPE5hdi5MaW5rIGFzPXtMaW5rfSB0bz1cInNlY3Rpb242XCIgc21vb3RoPXt0cnVlfSBkdXJhdGlvbj17NTAwfSBjbGFzc05hbWU9e2FjdGl2ZUxpbmsgPT09ICdzZWN0aW9uNicgPyAnYWN0aXZlJyA6ICdub3RBY3RpdmUnfT5TZWN0aW9uIDY8L05hdi5MaW5rPlxyXG4gICAgICAgIDxOYXYuTGluayBhcz17TGlua30gdG89XCJzZWN0aW9uN1wiIHNtb290aD17dHJ1ZX0gZHVyYXRpb249ezUwMH0gY2xhc3NOYW1lPXthY3RpdmVMaW5rID09PSAnc2VjdGlvbjcnID8gJ2FjdGl2ZScgOiAnbm90QWN0aXZlJ30+U2VjdGlvbiA3PC9OYXYuTGluaz5cclxuICAgICAgICA8TmF2LkxpbmsgYXM9e0xpbmt9IHRvPVwic2VjdGlvbjhcIiBzbW9vdGg9e3RydWV9IGR1cmF0aW9uPXs1MDB9IGNsYXNzTmFtZT17YWN0aXZlTGluayA9PT0gJ3NlY3Rpb244JyA/ICdhY3RpdmUnIDogJ25vdEFjdGl2ZSd9PlNlY3Rpb24gODwvTmF2Lkxpbms+XHJcbiAgICAgICAgPE5hdi5MaW5rIGFzPXtMaW5rfSB0bz1cInNlY3Rpb245XCIgc21vb3RoPXt0cnVlfSBkdXJhdGlvbj17NTAwfSBjbGFzc05hbWU9e2FjdGl2ZUxpbmsgPT09ICdzZWN0aW9uOScgPyAnYWN0aXZlJyA6ICdub3RBY3RpdmUnfT5TZWN0aW9uIDk8L05hdi5MaW5rPlxyXG4gICAgICAgIDxOYXYuTGluayBhcz17TGlua30gdG89XCJzZWN0aW9uMTBcIiBzbW9vdGg9e3RydWV9IGR1cmF0aW9uPXs1MDB9IGNsYXNzTmFtZT17YWN0aXZlTGluayA9PT0gJ3NlY3Rpb24xMCcgPyAnYWN0aXZlJyA6ICdub3RBY3RpdmUnfT5TZWN0aW9uIDEwPC9OYXYuTGluaz5cclxuICAgICAgICA8TmF2LkxpbmsgYXM9e0xpbmt9IHRvPVwic2VjdGlvbjExXCIgc21vb3RoPXt0cnVlfSBkdXJhdGlvbj17NTAwfSBjbGFzc05hbWU9e2FjdGl2ZUxpbmsgPT09ICdzZWN0aW9uMTEnID8gJ2FjdGl2ZScgOiAnbm90QWN0aXZlJ30+U2VjdGlvbiAxMTwvTmF2Lkxpbms+XHJcbiAgICAgICAgey8qIFx1NkRGQlx1NTJBMFx1NjZGNFx1NTkxQVx1NUJGQ1x1ODIyQVx1OTRGRVx1NjNBNSAqL31cclxuICAgICAgPC9OYXY+XHJcbiAgICA8L2Rpdj5cclxuICApO1xyXG59O1xyXG4vLyBzaWRlbmF2YmFyIGVuZCBcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBDb250cmlidXRpb24oKSB7XHJcblxyXG5cclxuXHJcbiAgLy8gc2lkZW5hdmJhciBiZWdpblxyXG4gICAgY29uc3QgW2FjdGl2ZUxpbmssIHNldEFjdGl2ZUxpbmtdID0gdXNlU3RhdGU8c3RyaW5nPignJyk7XHJcbiAgICAgIHVzZUVmZmVjdCgoKSA9PiB7XHJcbiAgICAgICAgY29uc3QgaGFuZGxlU2Nyb2xsID0gKCkgPT4ge1xyXG4gICAgICAgICAgY29uc3Qgc2VjdGlvbnMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcuZWxlbWVudCcpO1xyXG4gICAgICAgICAgbGV0IGN1cnJlbnRTZWN0aW9uID0gJyc7XHJcbiAgICAgICAgICAgIHNlY3Rpb25zLmZvckVhY2goc2VjdGlvbiA9PiB7XHJcbiAgICAgICAgICAgICAgY29uc3Qgc2VjdGlvblRvcCA9IHNlY3Rpb24uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkudG9wO1xyXG4gICAgICAgICAgICAgIGlmIChzZWN0aW9uVG9wIDw9IHdpbmRvdy5pbm5lckhlaWdodCAvIDIgJiYgc2VjdGlvblRvcCA+IC1zZWN0aW9uLmNsaWVudEhlaWdodCkge1xyXG4gICAgICAgICAgICAgICAgY3VycmVudFNlY3Rpb24gPSBzZWN0aW9uLmlkO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICBzZXRBY3RpdmVMaW5rKGN1cnJlbnRTZWN0aW9uKTtcclxuICAgICAgICB9O1xyXG4gICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdzY3JvbGwnLCBoYW5kbGVTY3JvbGwpO1xyXG4gICAgICAgIHJldHVybiAoKSA9PiB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgaGFuZGxlU2Nyb2xsKTtcclxuICAgICAgfSwgW10pO1xyXG4gICAgICAvLyBzaWRlbmF2YmFyIGVuZFxyXG4gIFxyXG4gIFxyXG4gIFxyXG4gICAgcmV0dXJuIChcclxuICAgICAgPD5cclxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJjdXN0b20taGVhZGVyLWNvbnRyaWJ1dGlvblwiPlxyXG4gICAgICA8aDEgY2xhc3NOYW1lPVwiY2VudGVyZWQtdGl0bGVcIj5cclxuICAgICAgPGltZyBcclxuICAgICAgICAgICAgICAgIHNyYz1cImh0dHBzOi8vc3RhdGljLmlnZW0ud2lraS90ZWFtcy81Mzc4L2hlYWRlci9jb250cmlidXRpb24ucG5nXCJcclxuICAgICAgICAgICAgICAgIGFsdD1cInNhZmV0eSBoZWFkZXJcIlxyXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiaGVhZGVyLWltZ1wiXHJcbiAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgXHJcbiAgICAgICAgICAgICAgICBzcmM9XCJodHRwczovL3N0YXRpYy5pZ2VtLndpa2kvdGVhbXMvNTM3OC9oZWFkZXIvaGVhZGVyLWJhci53ZWJwXCJcclxuICAgICAgICAgICAgICAgIGFsdD1cInNhZmV0eSBoZWFkZXJcIlxyXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiaGVhZGVyLWJhclwiXHJcbiAgICAgICAgICAgICAgLz5cclxuICAgICAgPC9oMT5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyb3cgIGJnLXJpY2VfeWVsbG93XCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC0yXCI+XHJcbiAgICAgICAgICAgIDxTaWRlTmF2YmFyIGFjdGl2ZUxpbms9e2FjdGl2ZUxpbmt9ICAgICAgICAgIC8+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIFxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtMTBcIj5cclxuICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgIDxFbGVtZW50IG5hbWU9XCJzZWN0aW9uMVwiIGNsYXNzTmFtZT1cImVsZW1lbnQgcm91bmRlZC1ib3JkZXJcIiBpZD0nc2VjdGlvbjEnPlxyXG4gICAgICAgICAgICAgICAgICAgPGgyPlNlY3Rpb24gMTwvaDI+XHJcbiAgICAgICAgICAgICAgICAgICA8cD5Db250ZW50IGZvciBzZWN0aW9uIDEuPC9wPlxyXG4gICAgICAgICAgICAgICAgICAgPGltZyBcclxuICAgICAgICAgICAgICAgICAgc3JjPVwiaHR0cHM6Ly9zdGF0aWMuaWdlbS53aWtpL3RlYW1zLzUzNzgvc2Nob29sLWJhZGdlL3lhbnlpbnRlY2gud2VicFwiXHJcbiAgICAgICAgICAgICAgICAgIGFsdD1cImV4YW1wbGVcIlxyXG4gICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJyZXNwb25zaXZlLWltZ1wiXHJcbiAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgIDwvRWxlbWVudD5cclxuICAgICAgICAgICAgXHJcbiAgXHJcbiAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJiZC1jYWxsb3V0IGJkLWNhbGxvdXQtaW5mbyBiZy1ncmF5XCI+XHJcbiAgICAgICAgICAgICAgICAgIDxoMT5XaGF0IGRvIHdlIGRvIHRvIC4uLj8gU2VlLi4uPC9oMT5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICA8RWxlbWVudCBuYW1lPVwic2VjdGlvbjJcIiBjbGFzc05hbWU9XCJlbGVtZW50IHJvdW5kZWQtYm9yZGVyXCIgaWQ9J3NlY3Rpb24yJz5cclxuICAgICAgICAgICAgICAgICAgPGgyPlNlY3Rpb24gMjwvaDI+XHJcbiAgICAgICAgICAgICAgICAgIDxwPkNvbnRlbnQgZm9yIHNlY3Rpb24gMi48L3A+XHJcbiAgICAgICAgICAgICAgICAgIDxpbWcgXHJcbiAgICAgICAgICAgICAgICAgIHNyYz1cImh0dHBzOi8vc3RhdGljLmlnZW0ud2lraS90ZWFtcy81Mzc4L3NjaG9vbC1iYWRnZS95YW55aW50ZWNoLndlYnBcIlxyXG4gICAgICAgICAgICAgICAgICBhbHQ9XCJleGFtcGxlXCJcclxuICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwicmVzcG9uc2l2ZS1pbWdcIlxyXG4gICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgIDwvRWxlbWVudD5cclxuICAgICAgICAgICAgXHJcbiAgXHJcbiAgICAgICAgICAgICAgICA8RWxlbWVudCBuYW1lPVwic2VjdGlvbjNcIiBjbGFzc05hbWU9XCJlbGVtZW50IHJvdW5kZWQtYm9yZGVyXCIgaWQ9J3NlY3Rpb24zJz5cclxuICAgICAgICAgICAgICAgIDxoMj5Qcm9kdWN0PC9oMj5cclxuICAgICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cImluZGVudFwiPlJlZ2FyZGluZyB0aGUgZmluYWwgbWV0aG9kIG9mIHVzZSwgd2UgY2hvc2UgdG8gcHJlcGFyZSBtaWNyb2JpYWwgY2Fwc3VsZXMgZm9yIHBhdGllbnRzIHRvIHRha2UuPC9wPlxyXG4gICAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwiaW5kZW50XCI+TWljcm9iaWFsIG1pY3JvY2Fwc3VsZXMgbm90IG9ubHkgcHJvdGVjdCBvdXIgbW9kaWZpZWQgRS4gY29saSBmcm9tIGhhcm1mdWwgZW52aXJvbm1lbnQsIGJ1dCBhbHNvIGNvbnRyb2wgcmVsZWFzZS48L3A+XHJcbiAgICAgICAgICAgICAgICA8cD5UaGUgaWRlYWwgcHJvY2VzcyBpcyBhcyBmb2xsb3dzOjwvcD5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicm91bmRlZC1ib3JkZXJcIj5cclxuICAgICAgICAgICAgICAgIDxoNCBjbGFzc05hbWU9XCJjZW50ZXItdGV4dFwiPlNlY3Rpb24gMzwvaDQ+XHJcbiAgICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJpbmRlbnRcIj5BaXItZHJpZWQgbWljcm9lbmNhcHN1bGF0ZWQgc3Vic3RhbmNlcyBjYW4gYmUgdXNlZCB0byBlbmNhcHN1bGF0ZSBnZW5ldGljYWxseSBlbmdpbmVlcmVkIGJhY3RlcmlhIG1vZGlmaWVkIHRvIGV4cHJlc3MgYW1tb25pYSwgZW5oYW5jaW5nIHRoZSBzdGFiaWxpdHkgYW5kIGFwcGxpY2F0aW9uIHBlcmZvcm1hbmNlIG9mIGRydWdzLCBleHRlbmRpbmcgdGhlIHN0b3JhZ2UgdGltZSB0byBvdmVyIDcgeWVhcnMuPC9wPlxyXG4gICAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwiaW5kZW50XCI+SGVyZSBpcyBhIGRldGFpbGVkIGV4cGxhbmF0aW9uIG9mIG91ciBmdXR1cmUgcmVzZWFyY2ggYW5kIGRldmVsb3BtZW50IHByb2R1Y3QsIGFpci1kcmllZCBtaWNyb2VuY2Fwc3VsYXRlZCBzdWJzdGFuY2VzOjwvcD5cclxuICAgICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cImluZGVudFwiPlByZXBhcmF0aW9uIHRlY2hub2xvZ3k6IEFpci1kcmllZCBtaWNyb2VuY2Fwc3VsYXRlZCBzdWJzdGFuY2VzIGFyZSB0eXBpY2FsbHkgcHJlcGFyZWQgdXNpbmcgdGhlIHNwcmF5IGRyeWluZyBtZXRob2QgaW4gcGh5c2ljYWwgbWVjaGFuaWNhbCBwcm9jZXNzZXMuIFRoaXMgbWV0aG9kIGludm9sdmVzIGRpc3BlcnNpbmcgdGhlIGNvcmUgbWF0ZXJpYWwgaW4gYSBtb2x0ZW4gY29hdGluZyBtYXRlcmlhbCwgdGhlbiBzcHJheWluZyBpdCBpbnRvIGEgaG90IGFpcmZsb3cgZm9yIGRyeWluZyBhbmQgc29saWRpZmljYXRpb24sIGZvcm1pbmcgbWljcm9jYXBzdWxlcy48L3A+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvRWxlbWVudD5cclxuXHJcbiAgICAgICAgICAgICAgICA8RWxlbWVudCBuYW1lPVwic2VjdGlvbjRcIiBjbGFzc05hbWU9XCJlbGVtZW50IHJvdW5kZWQtYm9yZGVyXCIgaWQ9J3NlY3Rpb240Jz5cclxuICAgICAgICAgICAgICA8aDI+U2VjdGlvbiA0PC9oMj5cclxuICAgICAgICAgICAgICA8cD5Db250ZW50IGZvciBzZWN0aW9uIDQuPC9wPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicm91bmRlZC1ib3JkZXJcIj5cclxuICAgICAgICAgICAgICA8aDQgY2xhc3NOYW1lPVwiY2VudGVyLXRleHRcIj5cdTYyMTFcdTY2MkZcdTU5MjdcdTVFMDVCPC9oND5cclxuICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJpbmRlbnRcIj5sYXMgaWpmZnMgYWlza2ZkIGZza2ogaWl3bHMgYXNkLmFhc3MgZmZhcyBhd3NzZCBhd3VzIGlpc2FsIGZhc2suYWlzaXNhZCBrc2pkZmthZiBpd2phc2lmamFrZHNoZiB3aWpkZmFsa3NqZiB3aWtzamtmamtzYWxoZiwgZ3NhaGZqaGdlamtmaCAgdWhhZWprZmggc2pkaWhnZnVxaXcgamggc2ppYWZoanNhaiBmaCBhc2QuPC9wPlxyXG4gICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cImluZGVudFwiPmxhcyBpamZmcyBhaXNrZmQgZnNraiBpaXdscyBhc2QuYWFzcyBmZmFzIGF3c3NkIGF3dXMgaWlzYWwgZmFzay5haXNpc2FkIGtzamRma2FmIGl3amFzaWZqYWtkc2hmIHdpamRmYWxrc2pmIHdpa3Nqa2Zqa3NhbGhmLCBnc2FoZmpoZ2Vqa2ZoICB1aGFlamtmaCBzamRpaGdmdXFpdyBqaCBzamlhZmhqc2FqIGZoIGFzZC48L3A+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9FbGVtZW50PlxyXG5cclxuICAgICAgICAgICAgICA8RWxlbWVudCBuYW1lPVwic2VjdGlvbjVcIiBjbGFzc05hbWU9XCJlbGVtZW50IHJvdW5kZWQtYm9yZGVyXCIgaWQ9J3NlY3Rpb241Jz5cclxuICAgICAgICAgICAgICA8aDI+U2VjdGlvbiA1PC9oMj5cclxuICAgICAgICAgICAgICA8cD5Db250ZW50IGZvciBzZWN0aW9uIDUuPC9wPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicm91bmRlZC1ib3JkZXJcIj5cclxuICAgICAgICAgICAgICA8aDQgY2xhc3NOYW1lPVwiY2VudGVyLXRleHRcIj5cdTYyMTFcdTY2MkZcdTU5MjdcdTVFMDVCPC9oND5cclxuICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJpbmRlbnRcIj5sYXMgaWpmZnMgYWlza2ZkIGZza2ogaWl3bHMgYXNkLmFhc3MgZmZhcyBhd3NzZCBhd3VzIGlpc2FsIGZhc2suYWlzaXNhZCBrc2pkZmthZiBpd2phc2lmamFrZHNoZiB3aWpkZmFsa3NqZiB3aWtzamtmamtzYWxoZiwgZ3NhaGZqaGdlamtmaCAgdWhhZWprZmggc2pkaWhnZnVxaXcgamggc2ppYWZoanNhaiBmaCBhc2QuPC9wPlxyXG4gICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cImluZGVudFwiPmxhcyBpamZmcyBhaXNrZmQgZnNraiBpaXdscyBhc2QuYWFzcyBmZmFzIGF3c3NkIGF3dXMgaWlzYWwgZmFzay5haXNpc2FkIGtzamRma2FmIGl3amFzaWZqYWtkc2hmIHdpamRmYWxrc2pmIHdpa3Nqa2Zqa3NhbGhmLCBnc2FoZmpoZ2Vqa2ZoICB1aGFlamtmaCBzamRpaGdmdXFpdyBqaCBzamlhZmhqc2FqIGZoIGFzZC48L3A+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9FbGVtZW50PlxyXG5cclxuICAgICAgICAgICAgICA8RWxlbWVudCBuYW1lPVwic2VjdGlvbjZcIiBjbGFzc05hbWU9XCJlbGVtZW50IHJvdW5kZWQtYm9yZGVyXCIgaWQ9J3NlY3Rpb242Jz5cclxuICAgICAgICAgICAgICA8aDI+U2VjdGlvbiA2PC9oMj5cclxuICAgICAgICAgICAgICA8cD5Db250ZW50IGZvciBzZWN0aW9uIDYuPC9wPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicm91bmRlZC1ib3JkZXJcIj5cclxuICAgICAgICAgICAgICA8aDQgY2xhc3NOYW1lPVwiY2VudGVyLXRleHRcIj5cdTYyMTFcdTY2MkZcdTU5MjdcdTVFMDVCPC9oND5cclxuICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJpbmRlbnRcIj5sYXMgaWpmZnMgYWlza2ZkIGZza2ogaWl3bHMgYXNkLmFhc3MgZmZhcyBhd3NzZCBhd3VzIGlpc2FsIGZhc2suYWlzaXNhZCBrc2pkZmthZiBpd2phc2lmamFrZHNoZiB3aWpkZmFsa3NqZiB3aWtzamtmamtzYWxoZiwgZ3NhaGZqaGdlamtmaCAgdWhhZWprZmggc2pkaWhnZnVxaXcgamggc2ppYWZoanNhaiBmaCBhc2QuPC9wPlxyXG4gICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cImluZGVudFwiPmxhcyBpamZmcyBhaXNrZmQgZnNraiBpaXdscyBhc2QuYWFzcyBmZmFzIGF3c3NkIGF3dXMgaWlzYWwgZmFzay5haXNpc2FkIGtzamRma2FmIGl3amFzaWZqYWtkc2hmIHdpamRmYWxrc2pmIHdpa3Nqa2Zqa3NhbGhmLCBnc2FoZmpoZ2Vqa2ZoICB1aGFlamtmaCBzamRpaGdmdXFpdyBqaCBzamlhZmhqc2FqIGZoIGFzZC48L3A+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9FbGVtZW50PlxyXG5cclxuICAgICAgICAgICAgICA8RWxlbWVudCBuYW1lPVwic2VjdGlvbjdcIiBjbGFzc05hbWU9XCJlbGVtZW50IHJvdW5kZWQtYm9yZGVyXCIgaWQ9J3NlY3Rpb243Jz5cclxuICAgICAgICAgICAgICA8aDI+U2VjdGlvbiA3PC9oMj5cclxuICAgICAgICAgICAgICA8cD5Db250ZW50IGZvciBzZWN0aW9uIDcuPC9wPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicm91bmRlZC1ib3JkZXJcIj5cclxuICAgICAgICAgICAgICA8aDQgY2xhc3NOYW1lPVwiY2VudGVyLXRleHRcIj5cdTYyMTFcdTY2MkZcdTU5MjdcdTVFMDVCPC9oND5cclxuICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJpbmRlbnRcIj5sYXMgaWpmZnMgYWlza2ZkIGZza2ogaWl3bHMgYXNkLmFhc3MgZmZhcyBhd3NzZCBhd3VzIGlpc2FsIGZhc2suYWlzaXNhZCBrc2pkZmthZiBpd2phc2lmamFrZHNoZiB3aWpkZmFsa3NqZiB3aWtzamtmamtzYWxoZiwgZ3NhaGZqaGdlamtmaCAgdWhhZWprZmggc2pkaWhnZnVxaXcgamggc2ppYWZoanNhaiBmaCBhc2QuPC9wPlxyXG4gICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cImluZGVudFwiPmxhcyBpamZmcyBhaXNrZmQgZnNraiBpaXdscyBhc2QuYWFzcyBmZmFzIGF3c3NkIGF3dXMgaWlzYWwgZmFzay5haXNpc2FkIGtzamRma2FmIGl3amFzaWZqYWtkc2hmIHdpamRmYWxrc2pmIHdpa3Nqa2Zqa3NhbGhmLCBnc2FoZmpoZ2Vqa2ZoICB1aGFlamtmaCBzamRpaGdmdXFpdyBqaCBzamlhZmhqc2FqIGZoIGFzZC48L3A+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9FbGVtZW50PlxyXG5cclxuICAgICAgICAgICAgICA8RWxlbWVudCBuYW1lPVwic2VjdGlvbjhcIiBjbGFzc05hbWU9XCJlbGVtZW50IHJvdW5kZWQtYm9yZGVyXCIgaWQ9J3NlY3Rpb244Jz5cclxuICAgICAgICAgICAgICA8aDI+U2VjdGlvbiA4PC9oMj5cclxuICAgICAgICAgICAgICA8cD5Db250ZW50IGZvciBzZWN0aW9uIDguPC9wPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicm91bmRlZC1ib3JkZXJcIj5cclxuICAgICAgICAgICAgICA8aDQgY2xhc3NOYW1lPVwiY2VudGVyLXRleHRcIj5cdTYyMTFcdTY2MkZcdTU5MjdcdTVFMDVCPC9oND5cclxuICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJpbmRlbnRcIj5sYXMgaWpmZnMgYWlza2ZkIGZza2ogaWl3bHMgYXNkLmFhc3MgZmZhcyBhd3NzZCBhd3VzIGlpc2FsIGZhc2suYWlzaXNhZCBrc2pkZmthZiBpd2phc2lmamFrZHNoZiB3aWpkZmFsa3NqZiB3aWtzamtmamtzYWxoZiwgZ3NhaGZqaGdlamtmaCAgdWhhZWprZmggc2pkaWhnZnVxaXcgamggc2ppYWZoanNhaiBmaCBhc2QuPC9wPlxyXG4gICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cImluZGVudFwiPmxhcyBpamZmcyBhaXNrZmQgZnNraiBpaXdscyBhc2QuYWFzcyBmZmFzIGF3c3NkIGF3dXMgaWlzYWwgZmFzay5haXNpc2FkIGtzamRma2FmIGl3amFzaWZqYWtkc2hmIHdpamRmYWxrc2pmIHdpa3Nqa2Zqa3NhbGhmLCBnc2FoZmpoZ2Vqa2ZoICB1aGFlamtmaCBzamRpaGdmdXFpdyBqaCBzamlhZmhqc2FqIGZoIGFzZC48L3A+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9FbGVtZW50PlxyXG5cclxuICAgICAgICAgICAgICA8RWxlbWVudCBuYW1lPVwic2VjdGlvbjlcIiBjbGFzc05hbWU9XCJlbGVtZW50IHJvdW5kZWQtYm9yZGVyXCIgaWQ9J3NlY3Rpb245Jz5cclxuICAgICAgICAgICAgICA8aDI+U2VjdGlvbiA5PC9oMj5cclxuICAgICAgICAgICAgICA8cD5Db250ZW50IGZvciBzZWN0aW9uIDkuPC9wPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicm91bmRlZC1ib3JkZXJcIj5cclxuICAgICAgICAgICAgICA8aDQgY2xhc3NOYW1lPVwiY2VudGVyLXRleHRcIj5cdTYyMTFcdTY2MkZcdTU5MjdcdTVFMDVCPC9oND5cclxuICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJpbmRlbnRcIj5sYXMgaWpmZnMgYWlza2ZkIGZza2ogaWl3bHMgYXNkLmFhc3MgZmZhcyBhd3NzZCBhd3VzIGlpc2FsIGZhc2suYWlzaXNhZCBrc2pkZmthZiBpd2phc2lmamFrZHNoZiB3aWpkZmFsa3NqZiB3aWtzamtmamtzYWxoZiwgZ3NhaGZqaGdlamtmaCAgdWhhZWprZmggc2pkaWhnZnVxaXcgamggc2ppYWZoanNhaiBmaCBhc2QuPC9wPlxyXG4gICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cImluZGVudFwiPmxhcyBpamZmcyBhaXNrZmQgZnNraiBpaXdscyBhc2QuYWFzcyBmZmFzIGF3c3NkIGF3dXMgaWlzYWwgZmFzay5haXNpc2FkIGtzamRma2FmIGl3amFzaWZqYWtkc2hmIHdpamRmYWxrc2pmIHdpa3Nqa2Zqa3NhbGhmLCBnc2FoZmpoZ2Vqa2ZoICB1aGFlamtmaCBzamRpaGdmdXFpdyBqaCBzamlhZmhqc2FqIGZoIGFzZC48L3A+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9FbGVtZW50PlxyXG5cclxuICAgICAgICAgICAgICA8RWxlbWVudCBuYW1lPVwic2VjdGlvbjEwXCIgY2xhc3NOYW1lPVwiZWxlbWVudCByb3VuZGVkLWJvcmRlclwiIGlkPSdzZWN0aW9uMTAnPlxyXG4gICAgICAgICAgICAgIDxoMj5TZWN0aW9uIDEwPC9oMj5cclxuICAgICAgICAgICAgICA8cD5Db250ZW50IGZvciBzZWN0aW9uIDEwLjwvcD5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJvdW5kZWQtYm9yZGVyXCI+XHJcbiAgICAgICAgICAgICAgPGg0IGNsYXNzTmFtZT1cImNlbnRlci10ZXh0XCI+XHU2MjExXHU2NjJGXHU1OTI3XHU1RTA1QjwvaDQ+XHJcbiAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwiaW5kZW50XCI+bGFzIGlqZmZzIGFpc2tmZCBmc2tqIGlpd2xzIGFzZC5hYXNzIGZmYXMgYXdzc2QgYXd1cyBpaXNhbCBmYXNrLmFpc2lzYWQga3NqZGZrYWYgaXdqYXNpZmpha2RzaGYgd2lqZGZhbGtzamYgd2lrc2prZmprc2FsaGYsIGdzYWhmamhnZWprZmggIHVoYWVqa2ZoIHNqZGloZ2Z1cWl3IGpoIHNqaWFmaGpzYWogZmggYXNkLjwvcD5cclxuICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJpbmRlbnRcIj5sYXMgaWpmZnMgYWlza2ZkIGZza2ogaWl3bHMgYXNkLmFhc3MgZmZhcyBhd3NzZCBhd3VzIGlpc2FsIGZhc2suYWlzaXNhZCBrc2pkZmthZiBpd2phc2lmamFrZHNoZiB3aWpkZmFsa3NqZiB3aWtzamtmamtzYWxoZiwgZ3NhaGZqaGdlamtmaCAgdWhhZWprZmggc2pkaWhnZnVxaXcgamggc2ppYWZoanNhaiBmaCBhc2QuPC9wPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvRWxlbWVudD5cclxuXHJcbiAgICAgICAgICAgICAgPEVsZW1lbnQgbmFtZT1cInNlY3Rpb24xMVwiIGNsYXNzTmFtZT1cImVsZW1lbnQgcm91bmRlZC1ib3JkZXJcIiBpZD0nc2VjdGlvbjExJz5cclxuICAgICAgICAgICAgICA8aDI+U2VjdGlvbiAxMTwvaDI+XHJcbiAgICAgICAgICAgICAgPHA+Q29udGVudCBmb3Igc2VjdGlvbiAxMS48L3A+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyb3VuZGVkLWJvcmRlclwiPlxyXG4gICAgICAgICAgICAgIDxoNCBjbGFzc05hbWU9XCJjZW50ZXItdGV4dFwiPlx1NjIxMVx1NjYyRlx1NTkyN1x1NUUwNUI8L2g0PlxyXG4gICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cImluZGVudFwiPmxhcyBpamZmcyBhaXNrZmQgZnNraiBpaXdscyBhc2QuYWFzcyBmZmFzIGF3c3NkIGF3dXMgaWlzYWwgZmFzay5haXNpc2FkIGtzamRma2FmIGl3amFzaWZqYWtkc2hmIHdpamRmYWxrc2pmIHdpa3Nqa2Zqa3NhbGhmLCBnc2FoZmpoZ2Vqa2ZoICB1aGFlamtmaCBzamRpaGdmdXFpdyBqaCBzamlhZmhqc2FqIGZoIGFzZC48L3A+XHJcbiAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwiaW5kZW50XCI+bGFzIGlqZmZzIGFpc2tmZCBmc2tqIGlpd2xzIGFzZC5hYXNzIGZmYXMgYXdzc2QgYXd1cyBpaXNhbCBmYXNrLmFpc2lzYWQga3NqZGZrYWYgaXdqYXNpZmpha2RzaGYgd2lqZGZhbGtzamYgd2lrc2prZmprc2FsaGYsIGdzYWhmamhnZWprZmggIHVoYWVqa2ZoIHNqZGloZ2Z1cWl3IGpoIHNqaWFmaGpzYWogZmggYXNkLjwvcD5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L0VsZW1lbnQ+XHJcbiAgICAgICAgICAgIFxyXG4gIFxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC0xXCI+PC9kaXY+XHJcbiAgXHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgICAgXHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvPlxyXG4gICAgKTtcclxuICB9XHJcbiIsICJpbXBvcnQgeyBOYXYgfSBmcm9tICdyZWFjdC1ib290c3RyYXAnO1xyXG5pbXBvcnQgeyBMaW5rLEVsZW1lbnQgfSBmcm9tICdyZWFjdC1zY3JvbGwnO1xyXG5pbXBvcnQgUmVhY3Qse3VzZUVmZmVjdCx1c2VTdGF0ZX0gZnJvbSAncmVhY3QnO1xyXG5cclxuXHJcbi8vIHNpZGVuYXZiYXIgYmVnaW5cclxuaW50ZXJmYWNlIFNpZGVOYXZiYXJQcm9wcyB7XHJcbiAgYWN0aXZlTGluazogc3RyaW5nO1xyXG59XHJcbmNvbnN0IFNpZGVOYXZiYXI6IFJlYWN0LkZDPFNpZGVOYXZiYXJQcm9wcz4gPSAoeyBhY3RpdmVMaW5rIH0pID0+IHtcclxuICByZXR1cm4gKFxyXG4gICAgXHJcbiAgICA8ZGl2IGNsYXNzTmFtZT1cInNpZGUtbmF2YmFyXCI+XHJcbiAgICAgIDxOYXYgY2xhc3NOYW1lPVwiZmxleC1jb2x1bW5cIj5cclxuICAgICAgICA8TmF2LkxpbmsgYXM9e0xpbmt9IHRvPVwic2VjdGlvbjFcIiBzbW9vdGg9e3RydWV9IGR1cmF0aW9uPXs1MDB9IGNsYXNzTmFtZT17YWN0aXZlTGluayA9PT0gJ3NlY3Rpb24xJyA/ICdhY3RpdmUnIDogJ25vdEFjdGl2ZSd9PlByb2plY3QgSW50cm9kdWN0aW9uPC9OYXYuTGluaz5cclxuICAgICAgICA8TmF2LkxpbmsgYXM9e0xpbmt9IHRvPVwic2VjdGlvbjJcIiBzbW9vdGg9e3RydWV9IGR1cmF0aW9uPXs1MDB9IGNsYXNzTmFtZT17YWN0aXZlTGluayA9PT0gJ3NlY3Rpb24yJyA/ICdhY3RpdmUnIDogJ25vdEFjdGl2ZSd9Pk91ciBTb2x1dGlvbnM8L05hdi5MaW5rPlxyXG4gICAgICAgIDxOYXYuTGluayBhcz17TGlua30gdG89XCJzZWN0aW9uM1wiIHNtb290aD17dHJ1ZX0gZHVyYXRpb249ezUwMH0gY2xhc3NOYW1lPXthY3RpdmVMaW5rID09PSAnc2VjdGlvbjMnID8gJ2FjdGl2ZScgOiAnbm90QWN0aXZlJ30+T3V0c2lkZSB0aGUgbGFib3JhdG9yeTwvTmF2Lkxpbms+XHJcbiAgICAgICAgPE5hdi5MaW5rIGFzPXtMaW5rfSB0bz1cInNlY3Rpb240XCIgc21vb3RoPXt0cnVlfSBkdXJhdGlvbj17NTAwfSBjbGFzc05hbWU9e2FjdGl2ZUxpbmsgPT09ICdzZWN0aW9uNCcgPyAnYWN0aXZlJyA6ICdub3RBY3RpdmUnfT5GdXR1cmUgcGxhbnM8L05hdi5MaW5rPlxyXG4gICAgICAgIDxOYXYuTGluayBhcz17TGlua30gdG89XCJzZWN0aW9uNVwiIHNtb290aD17dHJ1ZX0gZHVyYXRpb249ezUwMH0gY2xhc3NOYW1lPXthY3RpdmVMaW5rID09PSAnc2VjdGlvbjUnID8gJ2FjdGl2ZScgOiAnbm90QWN0aXZlJ30+UmVmZXJlbmNlPC9OYXYuTGluaz5cclxuICAgICAgICA8TmF2LkxpbmsgYXM9e0xpbmt9IHRvPVwic2VjdGlvbjZcIiBzbW9vdGg9e3RydWV9IGR1cmF0aW9uPXs1MDB9IGNsYXNzTmFtZT17YWN0aXZlTGluayA9PT0gJ3NlY3Rpb242JyA/ICdhY3RpdmUnIDogJ25vdEFjdGl2ZSd9PlNlY3Rpb24gNjwvTmF2Lkxpbms+XHJcbiAgICAgICAgPE5hdi5MaW5rIGFzPXtMaW5rfSB0bz1cInNlY3Rpb243XCIgc21vb3RoPXt0cnVlfSBkdXJhdGlvbj17NTAwfSBjbGFzc05hbWU9e2FjdGl2ZUxpbmsgPT09ICdzZWN0aW9uNycgPyAnYWN0aXZlJyA6ICdub3RBY3RpdmUnfT5TZWN0aW9uIDc8L05hdi5MaW5rPlxyXG4gICAgICAgIDxOYXYuTGluayBhcz17TGlua30gdG89XCJzZWN0aW9uOFwiIHNtb290aD17dHJ1ZX0gZHVyYXRpb249ezUwMH0gY2xhc3NOYW1lPXthY3RpdmVMaW5rID09PSAnc2VjdGlvbjgnID8gJ2FjdGl2ZScgOiAnbm90QWN0aXZlJ30+U2VjdGlvbiA4PC9OYXYuTGluaz5cclxuICAgICAgICA8TmF2LkxpbmsgYXM9e0xpbmt9IHRvPVwic2VjdGlvbjlcIiBzbW9vdGg9e3RydWV9IGR1cmF0aW9uPXs1MDB9IGNsYXNzTmFtZT17YWN0aXZlTGluayA9PT0gJ3NlY3Rpb245JyA/ICdhY3RpdmUnIDogJ25vdEFjdGl2ZSd9PlNlY3Rpb24gOTwvTmF2Lkxpbms+XHJcbiAgICAgICAgPE5hdi5MaW5rIGFzPXtMaW5rfSB0bz1cInNlY3Rpb24xMFwiIHNtb290aD17dHJ1ZX0gZHVyYXRpb249ezUwMH0gY2xhc3NOYW1lPXthY3RpdmVMaW5rID09PSAnc2VjdGlvbjEwJyA/ICdhY3RpdmUnIDogJ25vdEFjdGl2ZSd9PlNlY3Rpb24gMTA8L05hdi5MaW5rPlxyXG4gICAgICAgIDxOYXYuTGluayBhcz17TGlua30gdG89XCJzZWN0aW9uMTFcIiBzbW9vdGg9e3RydWV9IGR1cmF0aW9uPXs1MDB9IGNsYXNzTmFtZT17YWN0aXZlTGluayA9PT0gJ3NlY3Rpb24xMScgPyAnYWN0aXZlJyA6ICdub3RBY3RpdmUnfT5TZWN0aW9uIDExPC9OYXYuTGluaz5cclxuICAgICAgICB7LyogXHU2REZCXHU1MkEwXHU2NkY0XHU1OTFBXHU1QkZDXHU4MjJBXHU5NEZFXHU2M0E1ICovfVxyXG4gICAgICA8L05hdj5cclxuICAgIDwvZGl2PlxyXG4gICk7XHJcbn07XHJcbi8vIHNpZGVuYXZiYXIgZW5kIFxyXG5cclxuXHJcblxyXG5leHBvcnQgZnVuY3Rpb24gRGVzY3JpcHRpb24oKSB7XHJcblxyXG5cclxuXHJcbi8vIHNpZGVuYXZiYXIgYmVnaW5cclxuICBjb25zdCBbYWN0aXZlTGluaywgc2V0QWN0aXZlTGlua10gPSB1c2VTdGF0ZTxzdHJpbmc+KCcnKTtcclxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XHJcbiAgICAgIGNvbnN0IGhhbmRsZVNjcm9sbCA9ICgpID0+IHtcclxuICAgICAgICBjb25zdCBzZWN0aW9ucyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5lbGVtZW50Jyk7XHJcbiAgICAgICAgbGV0IGN1cnJlbnRTZWN0aW9uID0gJyc7XHJcbiAgICAgICAgICBzZWN0aW9ucy5mb3JFYWNoKHNlY3Rpb24gPT4ge1xyXG4gICAgICAgICAgICBjb25zdCBzZWN0aW9uVG9wID0gc2VjdGlvbi5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS50b3A7XHJcbiAgICAgICAgICAgIGlmIChzZWN0aW9uVG9wIDw9IHdpbmRvdy5pbm5lckhlaWdodCAvIDIgJiYgc2VjdGlvblRvcCA+IC1zZWN0aW9uLmNsaWVudEhlaWdodCkge1xyXG4gICAgICAgICAgICAgIGN1cnJlbnRTZWN0aW9uID0gc2VjdGlvbi5pZDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgc2V0QWN0aXZlTGluayhjdXJyZW50U2VjdGlvbik7XHJcbiAgICAgIH07XHJcbiAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdzY3JvbGwnLCBoYW5kbGVTY3JvbGwpO1xyXG4gICAgICByZXR1cm4gKCkgPT4gd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIGhhbmRsZVNjcm9sbCk7XHJcbiAgICB9LCBbXSk7XHJcbiAgICAvLyBzaWRlbmF2YmFyIGVuZFxyXG5cclxuXHJcblxyXG4gIHJldHVybiAoXHJcbiAgICA8PlxyXG4gICAgPGRpdiBjbGFzc05hbWU9XCJjdXN0b20taGVhZGVyLWRlc2NyaXB0aW9uXCI+XHJcbjxoMSBjbGFzc05hbWU9XCJjZW50ZXJlZC10aXRsZVwiPlxyXG48aW1nIFxyXG4gICAgICAgICAgICAgICAgc3JjPVwiaHR0cHM6Ly9zdGF0aWMuaWdlbS53aWtpL3RlYW1zLzUzNzgvaGVhZGVyL2Rlc2NyaXB0aW9uLnBuZ1wiXHJcbiAgICAgICAgICAgICAgICBhbHQ9XCJzYWZldHkgaGVhZGVyXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImhlYWRlci1pbWdcIlxyXG4gICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIFxyXG4gICAgICAgICAgICAgICAgc3JjPVwiaHR0cHM6Ly9zdGF0aWMuaWdlbS53aWtpL3RlYW1zLzUzNzgvaGVhZGVyL2hlYWRlci1iYXIud2VicFwiXHJcbiAgICAgICAgICAgICAgICBhbHQ9XCJzYWZldHkgaGVhZGVyXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImhlYWRlci1iYXJcIlxyXG4gICAgICAgICAgICAgIC8+XHJcbjwvaDE+XHJcbjwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cInJvdyAgYmctcmljZV95ZWxsb3dcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC0yXCI+XHJcbiAgICAgICAgICA8U2lkZU5hdmJhciBhY3RpdmVMaW5rPXthY3RpdmVMaW5rfSAgICAgICAgICAvPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIFxyXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLTEwXCI+XHJcbiAgICAgICAgICBcclxuICAgICAgICAgICAgICBcclxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImJkLWNhbGxvdXQgYmQtY2FsbG91dC1pbmZvIGJnLWdyYXlcIj5cclxuICAgICAgICAgICAgICAgICAgPGgxPldoYXQgZG8gd2UgZG8gdG8gLi4uPyBTZWUuLi48L2gxPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgIDxFbGVtZW50IG5hbWU9XCJzZWN0aW9uMVwiIGNsYXNzTmFtZT1cImVsZW1lbnQgcm91bmRlZC1ib3JkZXJcIiBpZD0nc2VjdGlvbjEnPlxyXG4gICAgICAgICAgICAgICAgIDxoMj5Qcm9qZWN0IEludHJvZHVjdGlvbjwvaDI+XHJcbiAgICAgICAgICAgICAgICAgPGgzPkdsb2JhbCBpbXBhY3Qgb2YgdGhlIGRpc2Vhc2U8L2gzPlxyXG4gICAgICAgICAgICAgICAgIDxwPkhlcGF0aWMgZW5jZXBoYWxvcGF0aHkgKEhFKSwgYWxzbyBrbm93biBhcyBoZXBhdGljIGNvbWEsIGlzIGJyb2FkbHkgZGVmaW5lZCBhcyBjZXJlYnJhbCBkeXNmdW5jdGlvbiBjYXVzZWQgYnkgaGVwYXRpYyBpbnN1ZmZpY2llbmN5IGFuZC9vciBwb3J0YWwgc2h1bnRpbmcsIHdpdGggYSBzcGVjdHJ1bSBvZiBpbXBhaXJlZCBjb25zY2lvdXNuZXNzIG9yIG5ldXJvbG9naWNhbCBkZXJhbmdlbWVudHMgcmFuZ2luZyBmcm9tIGEgZGlzdGluY3Qgc3ViY2xpbmljYWwgc3RhdGUgdG8gY29tYS4gWzFdIFRoZSBJbnRlcm5hdGlvbmFsIFNvY2lldHkgZm9yIEhlcGF0aWMgRW5jZXBoYWxvcGF0aHkgYW5kIE5pdHJvZ2VuIE1ldGFib2xpc20gKElTSEVOKSBhZ3JlZXMgdGhhdCBkaXNvcmllbnRhdGlvbiBvciBhc3Rlcml4aXMgaXMgdGhlIGJlZ2lubmluZyBvZiBvdmVydCBoZXBhdGljIGVuY2VwaGFsb3BhdGh5IChncmFkZXMgSUkgdG8gSVYpLCB3aGljaCBpbmNsdWRlcyBuZXVyb2xvZ2ljYWwgYW5kIHBzeWNoaWF0cmljIGFibm9ybWFsaXRpZXMgdGhhdCBjYW4gYmUgZGV0ZWN0ZWQgb24gYmVkc2lkZSBjbGluaWNhbCBleGFtaW5hdGlvbiwgd2hlcmVhcyBvY2N1bHQgaGVwYXRpYyBlbmNlcGhhbG9wYXRoeSAodmVyeSBtaWxkIGFuZCBncmFkZSAxKSBjYW4gb25seSBiZSBkaWZmZXJlbnRpYXRlZCBieSBzcGVjaWZpYyBwc3ljaG9tZXRyaWMgdGVzdHMgYXMgdGhlc2UgcGF0aWVudHMgaGF2ZSBhIG5vcm1hbCBtZW50YWwgYW5kIG5ldXJvbG9naWNhbCBzdGF0dXMgb24gY2xpbmljYWwgZXhhbWluYXRpb24uIFsyXTwvcD5cclxuICAgICAgICAgICAgICAgICA8cD5UaGUgY2xpbmljYWwgbWFuaWZlc3RhdGlvbnMgb2YgSEUgYXJlIHZlcnkgc3BlY2lmaWMgYW5kIGFyZSBjaGFyYWN0ZXJpc2VkIGJ5IGNoYW5nZXMgaW4gdGhlIHBhdGllbnQncyBwZXJzb25hbGl0eSwgYmVoYXZpb3VyYWwgYWJub3JtYWxpdGllcywgY2hhbmdlcyBpbiBoYWJpdHMsIHByZXNlbmNlIG9mIGhlcGF0aWMgb2RvdXIsIGZsdXR0ZXJpbmcgdHJlbW9yLCBibHVycmVkIGNvbnNjaW91c25lc3MsIHZpc3VhbCBkaXN0dXJiYW5jZXMgYW5kIGNvbWEuPC9wPlxyXG4gICAgICAgICAgICAgICAgIDxwPkRlcGVuZGluZyBvbiB0aGUgcHJlc2VuY2Ugb2YgcmlzayBmYWN0b3JzIHN1Y2ggYXMgbUhFLCBncmFkZSBJIGhlcGF0aWMgZW5jZXBoYWxvcGF0aHksIGRpYWJldGVzIG1lbGxpdHVzLCBoeXBvbmF0cmFlbWlhLCBhbmQgaGVwYXRpdGlzIEMsIHRoZSByaXNrIG9mIHRoZSBmaXJzdCBzaWduaWZpY2FudCBoZXBhdGljIGVuY2VwaGFsb3BhdGh5IHdpdGhpbiA1IHllYXJzIG9mIHRoZSBkaWFnbm9zaXMgb2YgY2lycmhvc2lzIGlzIGFwcHJveGltYXRlbHkgMjUlLiBbM10gRGVzcGl0ZSBzdGFuZGFyZCB0cmVhdG1lbnQsIHBhdGllbnRzIHdpdGggcHJldmlvdXMgZXBpc29kZXMgb2Ygb3ZlcnQgaGVwYXRpYyBlbmNlcGhhbG9wYXRoeSBoYXZlIGEgNDIlIHJpc2sgb2YgcmVjdXJyZW5jZSB3aXRoaW4gMSB5ZWFyLCBhbmQgcGF0aWVudHMgd2l0aCByZWN1cnJlbnQgb3ZlcnQgaGVwYXRpYyBlbmNlcGhhbG9wYXRoeSBoYXZlIGEgNDYlIHJpc2sgb2YgYW5vdGhlciBlcGlzb2RlIHdpdGhpbiA2IG1vbnRocy4gWzRdIENvbXBhcmVkIHdpdGggY2lycmhvdGljIHBhdGllbnRzIHdpdGhvdXQgaGVwYXRpYyBlbmNlcGhhbG9wYXRoeSwgcG9wdWxhdGlvbi1iYXNlZCBjaXJyaG90aWMgcGF0aWVudHMgd2l0aCBvdmVydCBoZXBhdGljIGVuY2VwaGFsb3BhdGh5IGhhdmUgYSBtZWFuIHN1cnZpdmFsIG9mIG9ubHkgYSBmZXcgbW9udGhzIGFuZCBhIHR3b2ZvbGQgaW5jcmVhc2VkIHJpc2sgb2YgZGVhdGggd2l0aGluIDEgeWVhci4gWzVdPC9wPlxyXG4gICAgICAgICAgICAgICAgIDxwPkluIGZvcm1lciB0aW1lcywgSEUgd2FzIGRlZmluZWQgc2ltcGx5IGFzIGEgZGlzZWFzZSBjYXVzZWQgYnkgYSBtZXRhYm9saWMgZGlzb3JkZXIgdGhhdCBjb3VsZCBiZSBjdXJlZCBieSBsaXZlciB0cmFuc3BsYW50YXRpb24uIEhvd2V2ZXIsIG51bWVyb3VzIHN0dWRpZXMgaGF2ZSBzaG93biB0aGF0IGRvbWluYW50IEhFIGlzIGNoYXJhY3RlcmlzZWQgYnkgYSBwYXRob2xvZ3kgb2YgbmV1cm9pbmZsYW1tYXRpb24gYXMgd2VsbCBhcyBleHRlbnNpdmUgbmV1cm9uYWwgY2VsbCBkZWF0aCwgYW5kIHRoYXQgdGhlIGNlbGwgZGVhdGggaXMgaXJyZXZlcnNpYmxlLCBzbyB0aGF0IGRvbWluYW50IEhFIG1heSBiZSBwZXJtYW5lbnQgZm9yIHRoZSBwYXRpZW50LCBhbmQgdGhhdCB0aGUgcGF0aWVudCdzIHN1ZmZlcmluZyB3aWxsIG5vdCBnbyBhd2F5LCBidXQgd2lsbCBjb250aW51ZSB0byBmbGFyZSB1cCBhZnRlciBsaXZlciB0cmFuc3BsYW50YXRpb24uIFs2XSBUaGlzIGxlYWRzIHRvIHByb2xvbmdlZCBob3NwaXRhbGlzYXRpb24gYW5kIHJlcGVhdGVkIGFkbWlzc2lvbnMsIGNhdXNpbmcgZ3JlYXQgcGh5c2ljYWwgYW5kIG1lbnRhbCBzdWZmZXJpbmcgdG8gdGhlIHBhdGllbnQgYW5kIGluY3JlYXNpbmcgdGhlIGhlYWx0aGNhcmUgYnVyZGVuIGFuZCBjb3N0cyBhc3NvY2lhdGVkIHdpdGggSEUgbWFuYWdlbWVudCB0byBzb2NpZXR5LjwvcD5cclxuICAgICAgICAgICAgICAgICA8cD5CdXQgbW9yZSBpbXBvcnRhbnRseSwgaXQgaGFzIGJlZW4gZGVtb25zdHJhdGVkIHRoYXQgaGVwYXRpYyBlbmNlcGhhbG9wYXRoeSBpcyBhc3NvY2lhdGVkIHdpdGggYSBoaWdoIG1vcnRhbGl0eSByYXRlLCByZWdhcmRsZXNzIG9mIHRoZSBzZXZlcml0eSBvZiB0aGUgZGlzZWFzZS4gWzVdIEhvdyB0byByZWR1Y2UgdGhlIG1vcnRhbGl0eSByYXRlIG9mIEhFIHBhdGllbnRzIGhhcyBiZWVuIGEgdmVyeSBjcml0aWNhbCBpc3N1ZS48L3A+XHJcbiAgICAgICAgICAgICAgICAgPGgzPlNwYXJrPC9oMz5cclxuICAgICAgICAgICAgICAgICA8cD5UaGlzIHllYXIsIG91ciB0ZWFtIGZlbHQgYSBzdHJvbmcgY2FsbCB0byBhZGRyZXNzIGdsb2JhbCBoZWFsdGggaXNzdWVzIHRoYXQgaGF2ZSBmYXItcmVhY2hpbmcgY29uc2VxdWVuY2VzIGZvciBpbmRpdmlkdWFscyBhbmQgc29jaWV0eS4gV2UgYXJlIGdyYXRlZnVsIHRvIHN5bnRoZXRpYyBiaW9sb2d5IGZvciBwcm92aWRpbmcgYSBwcmFjdGljYWwgZW5naW5lZXJpbmcgYXBwcm9hY2ggdGhhdCBjYW4gY29tYmluZSBtb2R1bGVzIHdpdGggaW5kZXBlbmRlbnQgZnVuY3Rpb25zIGxpa2UgYSBqaWdzYXcgcHV6emxlIHRvIGZ1bGZpbCB0aGVpciBqb2ludCBmdW5jdGlvbnMuIEF0IHRoZSBzYW1lIHRpbWUsIHdlIHNlZSBncmVhdCBwb3RlbnRpYWwgZm9yIHN5bnRoZXRpYyBiaW9sb2d5IHRvIGFkZHJlc3MgdGhpcyBpc3N1ZSwgYW5kIHdlIGhvcGUgdG8gYmUgYWJsZSB0byBwcm92aWRlIGEgbmV3IGxpbmUgb2YgdGhlcmFwZXV0aWMgb3B0aW9ucyBmb3IgdGhlIHRyZWF0bWVudCBvZiBoZXBhdGljIGVuY2VwaGFsb3BhdGh5IHRocm91Z2ggdGhpcyB3b3JrLjwvcD5cclxuICAgICAgICAgICAgICAgICA8cD5UaGUgcGF0aG9nZW5lc2lzIG9mIGhlcGF0aWMgZW5jZXBoYWxvcGF0aHkgaXMgbm90IGZ1bGx5IHVuZGVyc3Rvb2QgYW5kIHBvc3NpYmxlIGh5cG90aGVzZXMgYXJlIGFzIGZvbGxvd3M6PC9wPlxyXG4gICAgICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cImJvbGQtZm9udFwiPjEuQW1tb25pYSBUb3hpY2l0eSBUaGVvcnkuPC9wPlxyXG4gICAgICAgICAgICAgICAgIDxwPlNldmVyYWwgc3R1ZGllcyBoYXZlIGVsdWNpZGF0ZWQgdGhhdCB0b3hpYyBsZXZlbHMgb2YgYW1tb25pYSBpbiB0aGUgYnJhaW4gYXJlIG9uZSBvZiB0aGUgbW9yZSBwcm9taW5lbnQgZmVhdHVyZXMsIGFsdGhvdWdoIHRoZSBwYXRob3BoeXNpb2xvZ3kgb2YgaGUgaXMgc3RpbGwgbm90IGZ1bGx5IHVuZGVyc3Rvb2QuIFs3XSBBIGhlYWx0aHkgbGl2ZXIgaXMgYWJsZSB0byBtYWludGFpbiBibG9vZCBhbW1vbmlhIGxldmVscyBhdCBsb3cgbGV2ZWxzIG9mIDM1LTUwIHVNIHRocm91Z2ggdGhlIHVyZWEgY3ljbGUuIEhvd2V2ZXIsIGluIGNpcnJob3NpcywgZmFjdG9ycyBhbmQgb3RoZXIgbW9sZWN1bGVzIChlLmcuLCBhbW1vbmlhKSB0aGF0IGFyZSBub3JtYWxseSBwcmV2ZW50ZWQgYnkgdGhlIGJvZHkgZnJvbSBjcm9zc2luZyB0aGUgYmxvb2QtYnJhaW4gYmFycmllciBhcmUgYWJsZSB0byBuYXR1cmFsbHkgY3Jvc3MgdGhlIGJsb29kLWJyYWluIGJhcnJpZXIsIGZpbGwgdGhlIGJyYWluLCBhbmQgc3RpbXVsYXRlIHBhdGhvcGh5c2lvbG9naWNhbCBwYXRod2F5cyB0aGF0IGNhbiBoYXZlIGRlbGV0ZXJpb3VzIGVmZmVjdHMuIE5ldXJvbG9naWNhbCBkYW1hZ2UgYW5kIGNvZ25pdGl2ZSBkZWNsaW5lIGR1ZSB0byBsaXZlciBkeXNmdW5jdGlvbiBhcmUgdGhlIHJlc3VsdCBvZiBibG9vZC1ib3JuZSBmYWN0b3JzIHRoYXQgYWZmZWN0IGJsb29kLWJyYWluIGJhcnJpZXIgcGVybWVhYmlsaXR5IGFuZC9vciBhbHRlciBibG9vZC1icmFpbiBiYXJyaWVyIGludGVncml0eS5bOF08L3A+XHJcbiAgICAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwiYm9sZC1mb250XCI+Mi5Qc2V1ZG8tbmV1cm90cmFuc21pdHRlciB0aGVvcnk8L3A+XHJcbiAgICAgICAgICAgICAgICAgPHA+VGhlIGNvbmR1Y3Rpb24gb2YgbmVydmUgaW1wdWxzZXMgaXMgYWNjb21wbGlzaGVkIGJ5IG1lYW5zIG9mIHRyYW5zbWl0dGVycy4gVGhlcmUgYXJlIHR3byB0eXBlcyBvZiBuZXVyb3RyYW5zbWl0dGVycywgZXhjaXRhdG9yeSBhbmQgaW5oaWJpdG9yeSwgd2hpY2ggbWFpbnRhaW4gYSBwaHlzaW9sb2dpY2FsIGJhbGFuY2Ugd2hlbiBub3JtYWwuIEFtb25nIHRoZW0sIGluaGliaXRvcnkgbmV1cm90cmFuc21pdHRlcnMgYXJlIGZvcm1lZCBvbmx5IGluIHRoZSBicmFpbi4gQXJvbWF0aWMgYW1pbm8gYWNpZHMgaW4gZm9vZCwgc3VjaCBhcyB0eXJvc2luZSBhbmQgcGhlbnlscHJvcGFub2lkIGFtaW5vIGFjaWRzLCBhcmUgY29udmVydGVkIHRvIHR5cmFtaW5lIGFuZCBwaGVueWxldGh5bGFtaW5lIFBFQSwgcmVzcGVjdGl2ZWx5LCBieSB0aGUgYWN0aW9uIG9mIHRoZSBkZWNhcmJveHlsYXNlIGVuenltZSBvZiBlbnRlcm9iYWN0ZXJpYS48L3A+XHJcbiAgICAgICAgICAgICAgICAgPHA+Tm9ybWFsbHksIHRoZXNlIHR3byBhbWluZXMgYXJlIGNsZWFyZWQgYnkgbW9ub2FtaW5lIG94aWRhc2UgaW4gdGhlIGxpdmVyLCBidXQgd2hlbiBsaXZlciBmYWlsdXJlIG9jY3VycywgY2xlYXJhbmNlIGlzIGltcGFpcmVkLCBhbmQgdGhlc2UgdHdvIGFtaW5lcyBjYW4gZW50ZXIgdGhlIGJyYWluIHRpc3N1ZSwgd2hlcmUgdGhleSBhcmUgZm9ybWVkIGludG8gYW1pbmVzIChcdTAzQjItaHlkcm94eXR5cmFtaW5lKSBhbmQgcGhlbnlsZXRoYW5vbGFtaW5lLCByZXNwZWN0aXZlbHksIGJ5IFx1MDNCMi1oeWRyb3h5bGFzZS4gVGhlIGxhdHRlciB0d28gYXJlIHNpbWlsYXIgaW4gY2hlbWljYWwgc3RydWN0dXJlIHRvIHRoZSBub3JtYWwgbmV1cm90cmFuc21pdHRlciBub3JlcGluZXBocmluZSwgYnV0IGFyZSB1bmFibGUgdG8gdHJhbnNtaXQgbmVydmUgaW1wdWxzZXMgb3IgaGF2ZSB2ZXJ5IHdlYWsgZWZmZWN0cywgYW5kIGFyZSB0aGVyZWZvcmUgY2FsbGVkIHBzZXVkb25ldXJvdHJhbnNtaXR0ZXJzLiBXaGVuIHBzZXVkb25ldXJvdHJhbnNtaXR0ZXJzIGFyZSB0YWtlbiB1cCBieSBicmFpbiBjZWxscyBhbmQgcmVwbGFjZSBub3JtYWwgdHJhbnNtaXR0ZXJzIGluIHRoZSBzeW5hcHNlcywgbmVydmUgY29uZHVjdGlvbiBpcyBpbXBhaXJlZCwgYW5kIGV4Y2l0YXRvcnkgaW1wdWxzZXMgYXJlIG5vdCB0cmFuc21pdHRlZCBub3JtYWxseSB0byB0aGUgY2VyZWJyYWwgY29ydGV4LCByZXN1bHRpbmcgaW4gYWJub3JtYWwgaW5oaWJpdGlvbjsgaW1wYWlyZWQgY29uc2Npb3VzbmVzcyBhbmQgY29tYSBvY2N1ci4gPC9wPlxyXG4gICAgICAgICAgICAgICAgIDxwPkluIGFuIGVmZm9ydCB0byBmaW5kIG91dCBtb3JlIHByZWNpc2VseSB3aGF0IHJpc2sgZmFjdG9ycyBhcmUgYXNzb2NpYXRlZCB3aXRoIHRoZSBkZXZlbG9wbWVudCBvZiBIRSwgb3VyIHRlYW0gYWN0aXZlbHkgY29tbXVuaWNhdGVkIHdpdGggdGhlIFBJIGFuZCBsZWFybmVkIG9mIGEgcmVsYXRlZCwgdW5wdWJsaXNoZWQgc3R1ZHkgdGhhdCBjb25jbHVkZWQgdGhhdCBwYXRpZW50cyB3aXRoIGhpZ2hlciBiYXNlbGluZSBQRUEgbGV2ZWxzICh1cHBlciBxdWFydGlsZSkgaGFkIGEgNi45NS1mb2xkIGhpZ2hlciByaXNrIG9mIGRldmVsb3BpbmcgSEUgYXQgMyBtb250aHMgdGhhbiBwYXRpZW50cyBpbiB0aGUgbG93ZXIgcXVhcnRpbGUgKHAgPSAwLjAwMTcpIC48L3A+XHJcbiAgICAgICAgICAgICAgICAgPGgzPkN1cnJlbnQgdHJlYXRtZW50czwvaDM+XHJcbiAgICAgICAgICAgICAgICAgPHA+R2l2ZW4gdGhlIHNwZWNpZmljaXR5IG9mIGFtbW9uaWEgaW4gdGhlIGRpYWdub3NpcyBhbmQgdHJlYXRtZW50IG9mIEhFLCB0aGUgZ2VuZXJhbCBwaGFybWFjb2xvZ2ljYWwgYXBwcm9hY2ggdG8gSEUgaXMgYnJvYWRseSBkaXJlY3RlZCB0b3dhcmRzIGFtbW9uaWEuPC9wPlxyXG4gICAgICAgICAgICAgICAgIDxpbWcgXHJcbiAgICAgICAgICAgICAgICBzcmM9XCJodHRwczovL3N0YXRpYy5pZ2VtLndpa2kvdGVhbXMvNTM3OC9kZXNjcmliZS9tZXRob2RzLndlYnBcIlxyXG4gICAgICAgICAgICAgICAgYWx0PVwibWV0aG9kc1wiXHJcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJyZXNwb25zaXZlLWltZ1wiXHJcbiAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICA8ZmlnY2FwdGlvbiBjbGFzc05hbWU9J2NhcHRpb24nPkZpZy4xOiBDdXJyZW50IHRyZWF0bWVudHMgZm9yIGhlcGF0aWMgZW5jZXBoYWxvcGF0aHlbOF08L2ZpZ2NhcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwiYm9sZC1mb250XCI+MS5Pc21vdGljIGxheGF0aXZlczo8L3A+XHJcbiAgICAgICAgICAgICAgICAgPHA+Tm9uLWFic29yYmFibGUgZGlzYWNjaGFyaWRlcywgbGFjdHVsb3NlIGFuZCBzdWdhciBhbGNvaG9scywgYXJlIHJlY29tbWVuZGVkIGFzIGZpcnN0LWxpbmUgdHJlYXRtZW50IGZvciBIRS4gTGFjdHVsb3NlIGlzIGEgbGF4YXRpdmUgdGhhdCBoYXMgYSBuZWdsaWdpYmxlIGVmZmVjdCBvbiB0aGUgY29tcG9zaXRpb24gb3IgZnVuY3Rpb24gb2YgdGhlIGd1dCBtaWNyb2Jpb3RhIGFuZCBtYXkgcmVkdWNlIGFtbW9uaWEgcHJvZHVjdGlvbiBhbmQgYWJzb3JwdGlvbiBpbiB0aGUgZ3V0IGFuZCBpbmNyZWFzZSBpbnRlc3RpbmFsIGV4Y3JldGlvbiBieSBpbmNyZWFzaW5nIGludGVzdGluYWwgdHJhbnNwb3J0IGFzIHdlbGwgYXMgYWNpZGlmaWNhdGlvbiBvZiB0aGUgaW50ZXN0aW5hbCBlbnZpcm9ubWVudC4gWzldSG93ZXZlciwgc29tZSBzdHVkaWVzIGhhdmUgcmVwb3J0ZWQgcG90ZW50aWFsIHNpZGUgZWZmZWN0cyBvZiBsYXhhdGl2ZXMgc3VjaCBhcyBsYWN0dWxvc2UsIGluY2x1ZGluZyBkaWFycmhvZWEsIG5hdXNlYSBhbmQgYmxvYXRpbmcuIERpYXJyaG9lYSBhbmQgdm9taXRpbmcgY2FuIGxlYWQgdG8gZWxlY3Ryb2x5dGUgZGlzdHVyYmFuY2VzIGFuZCBldmVuIGV4YWNlcmJhdGUgSEUuWzhdPC9wPlxyXG4gICAgICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cImJvbGQtZm9udFwiPjIuQW50aS1taWNyb2JpYWwgYWdlbnRzOjwvcD5cclxuICAgICAgICAgICAgICAgICA8cD5SaWZheGltaW4gaXMgYSBzZW1pLXN5bnRoZXRpYyBub24tYW1pbm9nbHljb3NpZGUgZHJ1ZyB0aGF0IGZpZ2h0cyBHcmFtLXBvc2l0aXZlLCBHcmFtLW5lZ2F0aXZlLCBhZXJvYmljIGFuZCBhbmFlcm9iaWMgZW50ZXJpYyBiYWN0ZXJpYS4gVGhlIHN0cm9uZ2VzdCBldmlkZW5jZSBmb3IgdGhlIHV0aWxpdHkgb2YgcmlmYXhpbWluIGlzIHRoZSB1c2Ugb2YgdGhlIGRydWcgYXMgYW4gYWRkLW9uIHRvIGxhY3R1bG9zZSBmb3IgdGhlIHByZXZlbnRpb24gb2YgaGVwYXRpYyBlbmNlcGhhbG9wYXRoeSByZWN1cnJlbmNlLiBbMTBdSG93ZXZlciwgY2xpbmljYWwgdHJpYWxzIG9mIHJpZmF4aW1pbiBpbiBjb21iaW5hdGlvbiB3aXRoIGxhY3R1bG9zZSBoYXZlIHJhcmVseSBiZWVuIHJlcG9ydGVkIGFuZCBsYWNrIHdpZGUgcHVibGljIGFjY2VwdGFuY2UuPC9wPlxyXG4gICAgICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cImJvbGQtZm9udFwiPjMuUHJvYmlvdGljczo8L3A+XHJcbiAgICAgICAgICAgICAgICAgPHA+UHJvYmlvdGljcyBhcmUgbGl2ZSBiYWN0ZXJpYSB0aGF0IGFyZSB0aG91Z2h0IHRvIGltcHJvdmUgaW50ZXN0aW5hbCBlY29sb2dpY2FsIGR5c2Jpb3NpcywgaGVscCBlbmhhbmNlIGFtbW9uaWEgbWV0YWJvbGlzbSwgYW5kIHJlZHVjZSB0aGUgYnVyZGVuIG9mIGFtbW9uaWEgb24gdGhlIGd1dC4gSG93ZXZlciwgdG8gZGF0ZSwgdGhlIHF1YWxpdHkgb2YgbW9zdCBjbGluaWNhbCB0cmlhbHMgaGFzIGJlZW4gbG93LCBzbyB0aGUgZXZpZGVuY2UgcmVtYWlucyB1bmNvbnZpbmNpbmcuIFsxMV08L3A+XHJcbiAgICAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwiYm9sZC1mb250XCI+NC5BbGJ1bWluIGFuZCBleHRyYWNvcnBvcmVhbCBhbGJ1bWluIGRpYWx5c2lzIChFQ0FEKTo8L3A+XHJcbiAgICAgICAgICAgICAgICAgPHA+VGhlIHF1YW50aXR5IGFuZCBxdWFsaXR5IG9mIGFsYnVtaW4sIGEgbXVsdGlmdW5jdGlvbmFsIHByb3RlaW4gc3ludGhlc2lzZWQgaW4gdGhlIGxpdmVyLCBpcyBzaWduaWZpY2FudGx5IHJlZHVjZWQgaW4gcGF0aWVudHMgd2l0aCBjaXJyaG9zaXMuIEFuIGVhcmx5IHVuY29udHJvbGxlZCwgbm9uLXJhbmRvbWlzZWQgc3R1ZHkgc3VnZ2VzdGVkIGl0cyBwb3RlbnRpYWwgcm9sZSBpbiB0aGUgdHJlYXRtZW50IG9mIGhlcGF0aWMgZW5jZXBoYWxvcGF0aHkuIFsxMl0gSG93ZXZlciwgaXQgd2FzIG5vdCBjb25maXJtZWQgaW4gcmFuZG9taXNlZCBjb250cm9sbGVkIGNsaW5pY2FsIHRyaWFscy48L3A+XHJcbiAgICAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwiYm9sZC1mb250XCI+NS5MLU1lbnRob2xhdGVkIE9ybml0aGluZSAoTE9MQSk6PC9wPlxyXG4gICAgICAgICAgICAgICAgIDxwPkEgcHJlbGltaW5hcnkgbWV0YS1hbmFseXNpcyBvZiBlaWdodCByYW5kb21pc2VkIGNvbnRyb2xsZWQgdHJpYWxzIGNvbXBhcmluZyBMT0xBIHdpdGggcGxhY2Viby9ubyBpbnRlcnZlbnRpb24gY29udHJvbCBzaG93ZWQgdGhhdCBpbnRyYXZlbm91cyBMT0xBIGltcHJvdmVkIHNpZ25pZmljYW50IGhlcGF0aWMgYXRoZXJvc2NsZXJvc2lzLiBbMTNdIEhvd2V2ZXIsIHRoZSBlZmZlY3RpdmVuZXNzIG9mIG9yYWwgTE9MQSBoYXMgYmVlbiB0aGUgc3ViamVjdCBvZiBkZWJhdGUsIGFzIHRoZSBBQVNMRC1FQVNMIGNsaW5pY2FsIGd1aWRlbGluZXMgc3VnZ2VzdCB0aGF0IG9yYWwgc3VwcGxlbWVudGF0aW9uIHdpdGggTE9MQSBpcyBpbmVmZmVjdGl2ZS4gWzFdIFRoZXJlZm9yZSwgdGhlIHBvdGVudGlhbCBiZW5lZml0cyBvZiBMT0xBIHJlbWFpbiB1bmNlcnRhaW4uPC9wPlxyXG4gICAgICAgICAgICAgICAgIDxwPkluIGNvbmNsdXNpb24sIHRoZXJlIGlzIGdyZWF0IHVuY2VydGFpbnR5IGFuZCBpbnN0YWJpbGl0eSBpbiB0aGUgdHJlYXRtZW50IG9mIEhFLCBhbmQgaXQgaXMgdXJnZW50IHRvIGZpbmQgbW9yZSBlZmZlY3RpdmUgYW5kIHNhZmUgdHJlYXRtZW50IG9wdGlvbnMgaW4gb3JkZXIgdG8gcmVkdWNlIHRoZSBzdWZmZXJpbmcgb2YgcGF0aWVudHMgYW5kIHRoZSBidXJkZW4gb24gdGhlIHNvY2lhbCBoZWFsdGhjYXJlIHN5c3RlbS48L3A+XHJcbiAgICAgICAgICAgICAgICAgPGgzPk5ldyB0cmVhdG1lbnRzPC9oMz5cclxuICAgICAgICAgICAgICAgICA8cD5XZSByZWNvZ25pc2UgdGhlIHBvdGVudGlhbCBhZHZhbnRhZ2Ugb2Ygc3ludGhldGljIGJpb2xvZ3kgaW4gc29sdmluZyBnbG9iYWwgaGVhbHRoIHByb2JsZW1zIGJ5IGVuYWJsaW5nIHRoZSB0aWdodCBpbnRlZ3JhdGlvbiBvZiBkaXNwZXJzZWQgZnVuY3Rpb25hbCBtb2R1bGVzLiBBcyBhIHJlc3VsdCwgd2UgcGxhbiB0byB0YWtlIGEgbmV3IGFuZ2xlIC0gc2Vuc2luZyBwaGVueWxldGh5bGFtaW5lIC0gdG8gc3RpbXVsYXRlIHRoZSBleHByZXNzaW9uIG9mIGRvd25zdHJlYW0gbWV0YWJvbGljIG1vZHVsZXMgdG8gZGVncmFkZSBleGNlc3MgYW1tb25pYSBpbiB0aGUgcGF0aWVudCdzIGJvZHksIHRoZXJlYnkgdW5kb2luZyB0aGUgdG94aWMgZWZmZWN0cyBvZiBhbW1vbmlhIG92ZXJsb2FkIG9uIHRoZSBicmFpbi4gQXQgdGhlIHNhbWUgdGltZSwgb3VyIHNhZmV0eSBtb2R1bGUgb3BlcmF0ZXMgYXQgYWxsIHRpbWVzIHRvIHJlZHVjZSB0aGUgbGV2ZWwgb2YgaW50ZXN0aW5hbCBpbmZsYW1tYXRvcnkgZmFjdG9ycyBhbmQgbWFpbnRhaW4gdGhlIHN0YWJpbGl0eSBvZiB0aGUgaW50ZXN0aW5hbCBiYXJyaWVyLCBlbnN1cmluZyB0aGUgbm9ybWFsIHN0YXRlIG9mIHRoZSBtZXRhYm9saWMgYW5kIHNlbnNpbmcgbW9kdWxlcy48L3A+XHJcbiAgICAgICAgICAgICAgICAgPGgzPkZvcmVzaWdodDwvaDM+XHJcbiAgICAgICAgICAgICAgICAgPHA+T3VyIGdvYWw6IHRvIGRlc2lnbiBwcm9iaW90aWNzIChFY04pIGJhc2VkIG9uIFBFQSBsZXZlbHMgdGhhdCwgdW5kZXIgdGhlIHN1cGVydmlzaW9uIG9mIGEgc2FmZXR5IG1vZHVsZSwgYXJlIGFibGUgdG8gc3BlY2lmaWNhbGx5IHNlbnNlIFBFQSBpbiB0aGUgaW50ZXN0aW5lcyBvZiBIRSBwYXRpZW50cywgcmFwaWRseSBkZWdyYWRlIGFtbW9uaWEsIGFuZCByZWR1Y2UgdGhlIHJpc2sgb2YgSEUgZGV2ZWxvcG1lbnQuPC9wPlxyXG4gICAgICAgICAgICAgICAgIDxpbWcgPjwvaW1nPlxyXG4gICAgICAgICAgICAgICA8L0VsZW1lbnQ+XHJcbiAgICAgICAgXHJcblxyXG4gICAgICAgICAgXHJcbiAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgPEVsZW1lbnQgbmFtZT1cInNlY3Rpb24yXCIgY2xhc3NOYW1lPVwiZWxlbWVudCByb3VuZGVkLWJvcmRlclwiIGlkPSdzZWN0aW9uMic+XHJcbiAgICAgICAgICAgICAgICA8aDI+T3VyIFNvbHV0aW9uczwvaDI+XHJcbiAgICAgICAgICAgICAgICA8aDM+U2Vuc29yIG1vZHVsZTwvaDM+XHJcbiAgICAgICAgICAgICAgICA8cD5JbiBhIHJvdW5kIG9mIHJlc2VhcmNoIHdvcmsgZGVkaWNhdGVkIHRvIHBoZW55bGV0aHlsYW1pbmUsIHdlIHNlYXJjaGVkIGZvciBhIHN5c3RlbSB0aGF0IGNhbiBzZW5zaXRpdmVseSBzZW5zZSBhcm9tYXRpYyBhbWluZXMgdXNpbmcgdGhlIFR5bkEtRmVhUiBzeXN0ZW0uIFsxNF0gVGhlIGF1dGhvcnMgb2YgdGhpcyBwYXBlciBzY3JlZW5lZCBmb3IgYSBtdXRhbnQgc3BlY2lmaWMgZm9yIHBoZW55bGV0aHlsYW1pbmUsIFR5bkEgRzQ5NFMtRmVhUiBNODNZLCBieSBqdWRpY2lvdXNseSBzZWxlY3RpbmcgYW5kIGluZGl2aWR1YWxseSBtdXRhdGluZyBhbWlubyBhY2lkcyBpbiB0aGUgbW9ub2FtaW5lIG94aWRhc2UgVHluQSBhbmQgdGhlIHRyYW5zY3JpcHRpb25hbCByZWd1bGF0b3IgcHJvdGVpbiBGZWFSIHRvIGFkanVzdCB0aGVpciBzZW5zaXRpdml0aWVzLiBJbiB0aGlzIGNhc2UsIHRoZSBUeW5BIGVuenltZSBjb252ZXJ0cyBleHRyYXBsYXN0aWRpYWwgYW1pbmVzIHRvIGFsZGVoeWRlcywgd2hpY2ggYXJlIGltcG9ydGVkIGludG8gdGhlIGN5dG9wbGFzbS4gSW4gdGhlIHByZXNlbmNlIG9mIGFsZGVoeWRlcywgRmVhUiBpbmR1Y2VzIGV4cHJlc3Npb24gb2YgdGhlIFB0eW5BIHByb21vdGVyLCB3aGljaCBhY3RpdmF0ZXMgZG93bnN0cmVhbSBnZW5lIGV4cHJlc3Npb24gaW4gYW4gaW50ZXJsb2NraW5nIGFuZCBzb3BoaXN0aWNhdGVkIHN3aXRjaC48L3A+XHJcbiAgICAgICAgICAgICAgICA8aDM+TWV0YWJvbGljIG1vZGVsPC9oMz5cclxuICAgICAgICAgICAgICAgIDxwPlRoZSBtYWluIHRhc2sgb2YgdGhlIG1ldGFib2xpYyBtb2RlbCBpcyB0byBtZXRhYm9saXNlLCBpbiB0aGUgZ3V0LCB0aGUgYW1tb25pYSBhY2N1bXVsYXRlZCBpbiBwYXRpZW50cyB3aXRoIGNpcnJob3NpcywgaW4gb3JkZXIgdG8gYXNzaXN0IHRoZSBsaXZlciBpbiBtaXRpZ2F0aW5nIHRoZSBuZXVyb3RveGljIGVmZmVjdHMgb2YgZXhjZXNzIGFtbW9uaWEgb24gdGhlIGJyYWluLjwvcD5cclxuICAgICAgICAgICAgICAgIDxwPkFtbW9uaWEgbWV0YWJvbGlzbSBpbiB0aGUgbGl2ZXIgaXMgZXNzZW50aWFsIHRvIHByZXZlbnQgc2V2ZXJlIGNsaW5pY2FsIGNvbmRpdGlvbnMgc3VjaCBhcyBoZXBhdGljIGVuY2VwaGFsb3BhdGh5LiBJbiBjaXJyaG9zaXMsIGluIGFkZGl0aW9uIHRvIHRoZSB1cmVhIGN5Y2xlLCB0d28gb3RoZXIgZW56eW1lcyBhcmUgY3JpdGljYWwgZm9yIG1haW50YWluaW5nIGFtbW9uaWEgaG9tZW9zdGFzaXM6Z2x1dGFtaW5lIHN5bnRoZXRhc2UgKGV4cHJlc3NlZCBwcmltYXJpbHkgaW4gdGhlIGxpdmVyLCBtdXNjbGUsIGFuZCBraWRuZXlzKSBhbmQgZ2x1dGFtaW5hc2UgKGV4cHJlc3NlZCBwcmltYXJpbHkgaW4gdGhlIGludGVzdGluZXMsIGxpdmVyLCBhbmQga2lkbmV5cykuIFRoZXJlZm9yZSwgY29udHJvbGxpbmcgR1MgYW5kIGdsdXRhbWluYXNlLCByZWR1Y2luZyBhbW1vbmlhIHByb2R1Y3Rpb24gYW5kIHByZXZlbnRpbmcgaW50ZXN0aW5hbCBhYnNvcnB0aW9uIG9mIGFtbW9uaWEgYXJlIGFsbCBwb3RlbnRpYWwgdGFyZ2V0cyBmb3IgcmVkdWNpbmcgY2lyY3VsYXRpbmcgYW1tb25pYSBsZXZlbHMuIFs4XSBXZSB1bHRpbWF0ZWx5IGRlY2lkZWQgdG8gbWltaWMgdGhlIEdTLUdPR0FUIGN5Y2xlIHdpdGhpbiB0aGUgRWNOIHRvIG1ldGFib2xpc2UgYW1tb25pYSBpbiBIRSBwYXRpZW50cy4gWzE1XTwvcD5cclxuICAgICAgICAgICAgICAgIDxoMz5TYWZldHkgbW9kZWw8L2gzPlxyXG4gICAgICAgICAgICAgICAgPHA+QWx0aG91Z2ggRWNOIGhhcyBiZWVuIHNob3duIHRvIGJlIGEgaGFybWxlc3Mgc3RyYWluLCBmcm9tIHRoZSBwb2ludCBvZiB2aWV3IG9mIGh1bWFuIGhlYWx0aCBhbmQgZW52aXJvbm1lbnRhbCBwcm90ZWN0aW9uLCB3ZSBzdGlsbCBuZWVkIGFuIGFic29sdXRlIGd1YXJhbnRlZSB0aGF0IHRoZSBtb2RpZmllZCBFY04gd2lsbCBiZSBhYmxlIHRvIGZ1bmN0aW9uIHByb3Blcmx5IGluIHRoZSBvcmdhbmlzbSBvbiBkZW1hbmQsIGhhdmUgYSBmYXZvdXJhYmxlIGltcGFjdCwgYW5kIGV2ZW4gY2lyY3VtdmVudCB0aGUgaW50ZXN0aW5hbCBpbmZsYW1tYXRpb24gdGhhdCBtYXkgb2NjdXIgYXMgYSByZXN1bHQgb2YgdHJlYXRtZW50IHdpdGggZHJ1Z3MuIEluIHRoaXMgcmVnYXJkLCB3ZSBhaW0gdG8gZGV2ZWxvcCBhbiBlbmdpbmVlcmVkIGJhY3Rlcml1bSBjYXBhYmxlIG9mIGZpZ2h0aW5nIGluZmxhbW1hdGlvbiBhbmQgcmVwYWlyaW5nIHRoZSBpbnRlc3RpbmFsIGJhcnJpZXIuPC9wPlxyXG4gICAgICAgICAgICAgICAgPHA+VEZGIChUcmVmb2lsIEZhY3RvciBGYW1pbHkgcHJvdGVpbnMpIGFyZSBzbWFsbCA3LTEyIGtEYSBwcm90ZWlucyBzZWNyZXRlZCBieSBtdWN1cy1zZWNyZXRpbmcgY2VsbHMgb24gdGhlIHN1cmZhY2Ugb2YgdGhlIGdhc3Ryb2ludGVzdGluYWwgdHJhY3QgYW5kIG90aGVyIG11Y291cyBtZW1icmFuZXMgdGhhdCBwcmltYXJpbHkgcHJvbW90ZSBlcGl0aGVsaWFsIHJlY292ZXJ5LiBJbiBvcmRlciB0byBtYWtlIHRoZXJhcGV1dGljIGNyaW1wZWQgZmlicmVzLCB3ZSBwbGFubmVkIHRvIGF0dGFjaCBURkYzIChUcmVmb2lsIEZhY3RvciAzKSB0byB0aGUgbmF0dXJhbGx5IHNlY3JldGVkIGNyaW1wZWQgZmlicmVzIG9mIEUuIGNvbGkgdG8gcmVkdWNlIHRoZSBhZGhlc2lvbiBvZiBURkYzIHRvIHRoZSBpbnRlc3RpbmFsIG11Y3VzIGxheWVyLiBUaGUgZ2VuZSBmcmFnbWVudCByZXNwb25zaWJsZSBmb3IgdGhlIGV4cHJlc3Npb24gb2YgY3VybHkgZmlicmVzIHdhcyBmaXJzdCBhdHRhY2hlZCB0byB0aGUgUEJiQjhrIHBsYXNtaWQsIHRoZW4gYSA2eEhpcy10YWdnZWQgbGlua2VyIHdhcyBpbnRyb2R1Y2VkIHRvIGNvbm5lY3QgdGhlIGN1cmx5IGZpYnJlcyB0byBURkYzLCBhbmQgZmluYWxseSB0aGUgVEZGMyBnZW5lIGZyYWdtZW50IHdhcyBhZGRlZC4gVGhpcyBzdHJ1Y3R1cmUgYWxsb3dzIEVjTiB0byBzZWNyZXRlIGFuZCBzZWxmLWFzc2VtYmxlIHRoZSBjb2lsZWQgZmlicmVzLCBsaW5rZXIgYW5kIFRGRjMgdXBvbiBhcnJpdmFsIGluIHRoZSBndXQsIGZvcm1pbmcgYW4gYWN0aXZlIGRvbWFpbiBsYXllciBvbiB0aGUgZ3V0IHN1cmZhY2UuIFRoaXMgd2lsbCBtYXhpbWlzZSB0aGUgYWJpbGl0eSBvZiBURkYzIHRvIHJlcGFpciB0aGUgaW50ZXN0aW5hbCBiYXJyaWVyIGFuZCByZWR1Y2UgaW5mbGFtbWF0aW9uLCBlZmZlY3RpdmVseSBwcmV2ZW50aW5nIGFuZCB0cmVhdGluZyBhYmRvbWluYWwgaW5mZWN0aW9ucyBpbiBwYXRpZW50cyB3aXRoIGxpdmVyIGRpc2Vhc2UsIGFkZHJlc3NpbmcgZHlzYmlvc2lzLCBlc3BlY2lhbGx5IHJlcGFpcmluZyBjb21tb24gaW50ZXN0aW5hbCBwcm9ibGVtcywgYW5kIGltcHJvdmluZyB0aGUgc2FmZXR5IGFuZCBlZmZpY2FjeSBvZiB0aGUgZW5naW5lZXJlZCBiYWN0ZXJpdW0gd2hpbGUgYWxsZXZpYXRpbmcgdGhlIGNvbXBsaWNhdGlvbnMgb2YgaGVwYXRpYyBlbmNlcGhhbG9wYXRoeS48L3A+XHJcbiAgICAgICAgICAgICAgICA8aW1nIFxyXG4gICAgICAgICAgICAgICAgc3JjPVwiaHR0cHM6Ly9zdGF0aWMuaWdlbS53aWtpL3RlYW1zLzUzNzgvZGVzY3JpYmUvLndlYnBcIlxyXG4gICAgICAgICAgICAgICAgYWx0PVwiZGVzaWduXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInJlc3BvbnNpdmUtaW1nXCJcclxuICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgIDxmaWdjYXB0aW9uIGNsYXNzTmFtZT0nY2FwdGlvbic+RmlnLjI6IE91ciBleHBlcmltZW50YWwgZGVzaWduIGlkZWFzPC9maWdjYXB0aW9uPlxyXG4gICAgICAgICAgICAgICA8L0VsZW1lbnQ+XHJcbiAgICAgICAgICBcclxuXHJcbiAgICAgICAgICAgICAgPEVsZW1lbnQgbmFtZT1cInNlY3Rpb24zXCIgY2xhc3NOYW1lPVwiZWxlbWVudCByb3VuZGVkLWJvcmRlclwiIGlkPSdzZWN0aW9uMyc+XHJcbiAgICAgICAgICAgICAgICA8aDI+T3V0c2lkZSB0aGUgbGFib3JhdG9yeTwvaDI+XHJcbiAgICAgICAgICAgICAgICA8aDM+ZHJ5IGxhYjwvaDM+XHJcbiAgICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJpbmRlbnRcIj5tb2RlbDogV2UgZGV2ZWxvcGVkIGFuIE9ERSBtb2RlbCBmb3Igb3VyIGlHRU0gcHJvamVjdCB0aGF0IHNpbXVsYXRlcyB0aGUgYmlvY2hlbWljYWwgcmVhY3Rpb25zIHdpdGhpbiBFc2NoZXJpY2hpYSBjb2xpLiBUaGlzIGluY2x1ZGVzIHRoZSBkaWZmdXNpb24gb2YgcGhlbnlsZXRoeWxhbWluZSwgaXRzIGVuenltYXRpYyBveGlkYXRpb24sIGFuZCB0aGUgc3Vic2VxdWVudCBtZXRhYm9saWMgcGF0aHdheXMgaW52b2x2aW5nIGdlbmUgcmVndWxhdGlvbiBhbmQgc3Vic3RyYXRlIGludGVyYWN0aW9ucyBhY3Jvc3MgY2VsbHVsYXIgY29tcGFydG1lbnRzLCBhbGwgbW9kZWxlZCB1c2luZyBNaWNoYWVsaXMtTWVudGVuIGtpbmV0aWNzLjwvcD5cclxuICAgICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cImluZGVudFwiPndpa2k6IFRoZSB3aWtpIHRlYW0gYnVpbHQgYSB3aWtpIHBhZ2UgYmFzZWQgb24gcmVhY3QgYW5kIHR5cGVzY3JpcHQsIGFuZCB3cm90ZSBhIHdpa2kgdXBsb2FkIHR1dG9yaWFsIHRvIGhlbHAgdGhlIHRlYW0gbWVtYmVycyBwcmVzZW50IHRoZWlyIHdvcmsuIFdoZW4gdGhlIHRlYW0gbWVtYmVycyBlbmNvdW50ZXJlZCBkaWZmaWN1bHRpZXMgaW4gdXBsb2FkaW5nLCB0aGUgc3R1ZGVudHMgaW4gdGhlIHdpa2kgdGVhbSBnYXZlIHRoZW0gdGltZWx5IGhlbHAgYW5kIGdyYWR1YWxseSBpbXByb3ZlZCB0aGUgZWZmZWN0IG9mIHRoZSB3ZWJwYWdlLiBXaGVuIHRoZSB0ZWFtIG1lbWJlcnMgdXBsb2FkZWQgY29udGVudCB0byBwYXJ0LmlnZW0ub3JnLCB0aGUgd2lraSB0ZWFtIGFsc28gcHJvdmlkZWQgdGhlIGNvZGUgZnJhbWV3b3JrIGFuZCB0ZWFjaGluZyBzdXBwb3J0LiBJbiBhZGRpdGlvbiwgdGhlIHdpa2kgdGVhbSB0b29rIG9uIGEgY2VydGFpbiBhbW91bnQgb2YgYXJ0IGRlc2lnbiwgcHJvdmlkaW5nIGluc3BpcmF0aW9uIGZvciB0aGUgZXhwZXJpbWVudGFsIHRlYW0ncyB0ZXh0IHNjcmlwdCBkZXNpZ24gYW5kIGFzc2lzdGluZyB0aGUgYXJ0IHRlYW0gaW4gdHVybmluZyB0aGVpciBpZGVhcyBpbnRvIHJlYWxpdHkuPC9wPlxyXG4gICAgICAgICAgICAgICAgPGgzPmFydCB0ZWFtPC9oMz5cclxuICAgICAgICAgICAgICAgIDxwPkluIHRoZSBwYXN0IGZldyBtb250aHMsIHRoZSBhcnQgdGVhbSBoYXMgYWN0aXZlbHkgY2FycmllZCBvdXQgYSBzZXJpZXMgb2YgYXJ0IGRlc2lnbiB3b3JrIGFyb3VuZCB0aGUgbmVlZHMgb2YgdGhlIHByb2plY3QuIE91ciBtYWluIHRhc2tzIGluY2x1ZGUgYnV0IGFyZSBub3QgbGltaXRlZCB0byB0aGUgZGVzaWduIG9mIHByb2plY3QgdGVhbSBlbWJsZW0sIHRlYW0gZmxhZyBhbmQgdW5pZm9ybSwgZGVzaWduIG9mIHByb2plY3QgYWNhZGVtaWMgcG9zdGVycywgcHJvZHVjdGlvbiBvZiBwcm9qZWN0IHBlcmlwaGVyeSBhbmQgY3JlYXRpb24gb2Ygd2lraSByZWxhdGVkIHZpc3VhbCBtYXRlcmlhbC48L3A+XHJcbiAgICAgICAgICAgICAgICA8cD5UaHJvdWdoIHRoZSBlZmZvcnRzIG9mIHRoZSBhcnQgdGVhbSwgdGhlIHB1YmxpY2l0eSBhbmQgZGlzcGxheSBvZiB0aGUgcHJvamVjdCB0ZWFtIGhhdmUgYmVlbiBzaWduaWZpY2FudGx5IGltcHJvdmVkIGFuZCBpbXByb3ZlZCwgYW5kIHRoZSBjb29wZXJhdGlvbiB3aXRoIG90aGVyIGdyb3VwcyBpcyBtb3JlIGNsb3NlLCBqb2ludGx5IGltcHJvdmluZyB0aGUgb3ZlcmFsbCBpbWFnZSBhbmQgZWZmaWNpZW5jeSBvZiB0aGUgdGVhbS48L3A+XHJcbiAgICAgICAgICAgICAgICA8aW1nIFxyXG4gICAgICAgICAgICAgICAgc3JjPVwiaHR0cHM6Ly9zdGF0aWMuaWdlbS53aWtpL3RlYW1zLzUzNzgvZGVzY3JpYmUvYXJ0LXdvcmsud2VicFwiXHJcbiAgICAgICAgICAgICAgICBhbHQ9XCJhcnQgd29ya1wiXHJcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJyZXNwb25zaXZlLWltZ1wiXHJcbiAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICA8ZmlnY2FwdGlvbiBjbGFzc05hbWU9J2NhcHRpb24nPkZpZy4zOiBXb3JrIG9mIHRoZSBhcnQgdGVhbTwvZmlnY2FwdGlvbj5cclxuICAgICAgICAgICAgICA8aDM+aHAgdGVhbTwvaDM+XHJcbiAgICAgICAgICAgICAgPHA+Q29vcGVyYXRpb24gYW5kIHByb21vdGlvbiBhcmUgdGhlIG1haW4gdG9uZSBvZiBocCdzIHdvcmssIGFuZCBpbnRlcm5hbCBhbmQgZXh0ZXJuYWwgY29tbXVuaWNhdGlvbiBpcyB0aGUgZm91bmRhdGlvbiBvZiBocCdzIHdvcmsuIEl0IGNhcnJpZXMgb3V0IGh1bWFuIHByYWN0aWNlLCBleGNoYW5nZSBhbmQgY29vcGVyYXRpb24sIGVkdWNhdGlvbiBhbmQgcHVibGljaXR5IGZvciB0aGUgcHVibGljLCBhbmQgaXMgYWxzbyByZXNwb25zaWJsZSBmb3Igb3V0cmVhY2gsIHJlcG9ydGluZyBhbmQgb3RoZXIgd29yayB3aXRoaW4gdGhlIHRlYW0uPC9wPlxyXG4gICAgICAgICAgICAgIDwvRWxlbWVudD5cclxuXHJcbiAgICAgICAgICAgICAgPEVsZW1lbnQgbmFtZT1cInNlY3Rpb240XCIgY2xhc3NOYW1lPVwiZWxlbWVudCByb3VuZGVkLWJvcmRlclwiIGlkPSdzZWN0aW9uNCc+XHJcbiAgICAgICAgICAgICAgPGgyPmZ1dHVyZSBwbGFuczwvaDI+XHJcbiAgICAgICAgICAgICAgPHA+SW4gb3VyIHBsYW4sIHdlIGV4cGVjdCB0byBjb21wbGV0ZSB0aGUgZnVsbCBidWlsZCBvZiB0aGUgdGhyZWUgZnVuY3Rpb25hbCBtb2R1bGVzLiBXZSBtYXkgbm90IGJlIGFibGUgdG8gY29udGludWUgdGhlIHN1YnNlcXVlbnQgYW5pbWFsIHZhbGlkYXRpb24gZXhwZXJpbWVudHMgZHVlIHRvIGxhYm9yYXRvcnksIGZ1bmRpbmcsIGFuZCBwZXJzb25uZWwgY2hhbmdlcywgYnV0IHdlIGhvcGUgdG8gbWFrZSBmdXJ0aGVyIGVmZm9ydHMgaW4gdGhlIGZvbGxvd2luZyBhcmVhcyB0byBtYWtlIHRoZSBwcm9qZWN0IG1vcmUgY29tcGxldGU6PC9wPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicm91bmRlZC1ib3JkZXJcIj5cclxuICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJib2xkLWZvbnRcIj4xLlNhZmV0eTo8L3A+XHJcbiAgICAgICAgICAgICAgPHA+RWNOIGlzIGFuIGludGVybmF0aW9uYWxseSByZWNvZ25pc2VkIGhhcm1sZXNzIHByb2Jpb3RpYywgYnV0IHdlIGhhdmUgc3RpbGwgYWRkZWQgYSBjb250cm9sbGVkIHNhZmV0eSBtb2R1bGUgdG8gaXQgdG8gZW5zdXJlIHRoYXQgdGhlIG1vZGlmaWVkIEVjTiB3aWxsIG5vdCBjYXVzZSBvdGhlciB1bmZvcmVzZWVuIGhhcm0gd2hlbiBpdCBlbnRlcnMgdGhlIGh1bWFuIGd1dC48L3A+XHJcbiAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwiYm9sZC1mb250XCI+Mi5Db250cm9sbGFibGU6PC9wPlxyXG4gICAgICAgICAgICAgIDxwPlRoZSB0aHJlZSBtb2R1bGVzIHdlIGNvbnN0cnVjdGVkIGFyZSBwcmVjaXNlbHkgYW5kIG1pbnV0ZWx5IHJlZ3VsYXRlZCwgYW5kIGFyZSBvbmx5IGFsbG93ZWQgdG8gYmUgZXhwcmVzc2VkIHdoZW4gc3RpbXVsYXRlZCBieSB0aGUgZXh0ZXJuYWwgZW52aXJvbm1lbnQsIGFuZCB0byBhIGNvbnRyb2xsZWQgZXh0ZW50LjwvcD5cclxuICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJib2xkLWZvbnRcIj4zLlBlcnNpc3RlbnQ6PC9wPlxyXG4gICAgICAgICAgICAgIDxwPkVjTiBpcyBhYmxlIHRvIHJlbWFpbiBpbiB0aGUgbm9ybWFsIGd1dCBhbmQgdGhlIGJlbmVmaWNpYWwgZWZmZWN0cyBhcmUgbG9uZyBsYXN0aW5nLjwvcD5cclxuICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJib2xkLWZvbnRcIj40LkNvbnZlbmllbnQ6PC9wPlxyXG4gICAgICAgICAgICAgIDxwPk91ciBtb2RpZmllZCBFY04gd2FzIGVuY2Fwc3VsYXRlZCBpbiBhIG1hdGVyaWFsIHRoYXQgaXMgcmVzaXN0YW50IHRvIHN0b21hY2ggYWNpZCBidXQgbm90IGludGVzdGluYWwgZmx1aWRzIHRvIGNyZWF0ZSBhbiBlZGlibGUgY2Fwc3VsZSB0aGF0IGNhbiBiZSB1c2VkIGFzIGEgY29udmVuaWVudCBkcnVnIHRvIGltcHJvdmUgaGVwYXRpYyBlbmNlcGhhbG9wYXRoeS48L3A+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9FbGVtZW50PlxyXG5cclxuICAgICAgICAgICAgICA8RWxlbWVudCBuYW1lPVwic2VjdGlvbjVcIiBjbGFzc05hbWU9XCJlbGVtZW50IHJvdW5kZWQtYm9yZGVyXCIgaWQ9J3NlY3Rpb241Jz5cclxuICAgICAgICAgICAgICA8aDI+cmVmZXJlbmNlPC9oMj5cclxuICAgICAgICAgICAgICA8cD5bMV0gVmlsc3RydXAgSCwgQW1vZGlvIFAsIEJhamFqIEosIENvcmRvYmEgSiwgRmVyZW5jaSBQLCBNdWxsZW4gS0QsIGV0IGFsLiBIZXBhdGljIGVuY2VwaGFsb3BhdGh5IGluIGNocm9uaWMgbGl2ZXIgZGlzZWFzZTogMjAxNCBwcmFjdGljZSBndWlkZWxpbmUgYnkgdGhlIEFtZXJpY2FuIEFzc29jaWF0aW9uIGZvciB0aGUgU3R1ZHkgb2YgTGl2ZXIgRGlzZWFzZXMgYW5kIHRoZSBFdXJvcGVhbiBBc3NvY2lhdGlvbiBmb3IgdGhlIFN0dWR5IG9mIHRoZSBMaXZlci4gSGVwYXRvbG9neSAyMDE0OzYwOjcxNVx1MjAxMzczNS48L3A+XHJcbiAgICAgICAgICAgICAgPHA+WzJdUmFuZG9scGggQywgSGlsc2FiZWNrIFIsIEthdG8gQSwgZXQgYWwuIE5ldXJvcHN5Y2hvbG9naWNhbCBhc3Nlc3NtZW50IG9mIGhlcGF0aWMgZW5jZXBoYWxvcGF0aHk6IElTSEVOIHByYWN0aWNlIGd1aWRlbGluZXMuIExpdmVyIEludC4gMjAwOTsyOTo2MjktMzUuPC9wPlxyXG4gICAgICAgICAgICAgIDxwPlszXSBHdWV2YXJhIE0sIEJhY2Nhcm8gTUUsIFRvcnJlIEEsIEdcdTAwRjNtZXotQW5zXHUwMEYzbiBCLCBSXHUwMEVEb3MgSiwgVG9ycmVzIEYsIGV0IGFsLiBIeXBvbmF0cmVtaWEgaXMgYSByaXNrIGZhY3RvciBvZiBoZXBhdGljIGVuY2VwaGFsb3BhdGh5IGluIHBhdGllbnRzIHdpdGggY2lycmhvc2lzOiBhIHByb3NwZWN0aXZlIHN0dWR5IHdpdGggdGltZS1kZXBlbmRlbnQgYW5hbHlzaXMuIEFtIEogR2FzdHJvZW50ZXJvbCAyMDA5OzEwNDoxMzgyXHUyMDEzMTM4OS48L3A+XHJcbiAgICAgICAgICAgICAgPHA+WzRdIFNoYXJtYSBCQywgU2hhcm1hIFAsIEFncmF3YWwgQSwgU2FyaW4gU0suIFNlY29uZGFyeSBwcm9waHlsYXhpcyBvZiBoZXBhdGljIGVuY2VwaGFsb3BhdGh5OiBhbiBvcGVuLWxhYmVsIHJhbmRvbWl6ZWQgY29udHJvbGxlZCB0cmlhbCBvZiBsYWN0dWxvc2UgdmVyc3VzIHBsYWNlYm8uIEdhc3Ryb2VudGVyb2xvZ3kgMjAwOTsxMzc6ODg1XHUyMDEzODkxLiA4OTEuZTEuPC9wPlxyXG4gICAgICAgICAgICAgIDxwPls1XSBDb3Jkb2JhIEosIFZlbnR1cmEtQ290cyBNLCBTaW1cdTAwRjNuLVRhbGVybyBNLCBBbW9yXHUwMEYzcyBcdTAwQzAsIFBhdmVzaSBNLCBWaWxzdHJ1cCBILCBldCBhbC4gQ2hhcmFjdGVyaXN0aWNzLCByaXNrIGZhY3RvcnMsIGFuZCBtb3J0YWxpdHkgb2YgY2lycmhvdGljIHBhdGllbnRzIGhvc3BpdGFsaXplZCBmb3IgaGVwYXRpYyBlbmNlcGhhbG9wYXRoeSB3aXRoIGFuZCB3aXRob3V0IGFjdXRlLW9uLWNocm9uaWMgbGl2ZXIgZmFpbHVyZSAoQUNMRikuIEogSGVwYXRvbCAyMDE0OzYwOjI3NVx1MjAxMzI4MS48L3A+XHJcbiAgICAgICAgICAgICAgPHA+WzZdIFNvdGlsIEVVLCBHb3R0c3RlaW4gSiwgQXlhbGEgRSwgUmFuZG9scGggQywgQmxlaSBBVC4gSW1wYWN0IG9mIHByZW9wZXJhdGl2ZSBvdmVydCBoZXBhdGljIGVuY2VwaGFsb3BhdGh5IG9uIG5ldXJvY29nbml0aXZlIGZ1bmN0aW9uIGFmdGVyIGxpdmVyIHRyYW5zcGxhbnRhdGlvbi4gTGl2ZXIgVHJhbnNwbCAyMDA5OzE1OjE4NFx1MjAxMzE5Mi48L3A+XHJcbiAgICAgICAgICAgICAgPHA+WzddIEtlaWRpbmcgUywgU1x1MDBGOHJlbnNlbiBNLCBCZW5kZXIgRCwgTXVuayBPTCwgT3R0IFAsIFZpbHN0cnVwIEguIEJyYWluIG1ldGFib2xpc20gb2YgMTNOLWFtbW9uaWEgZHVyaW5nIGFjdXRlIGhlcGF0aWMgZW5jZXBoYWxvcGF0aHkgaW4gY2lycmhvc2lzIG1lYXN1cmVkIGJ5IHBvc2l0cm9uIGVtaXNzaW9uIHRvbW9ncmFwaHkuIEhlcGF0b2xvZ3kgMjAwNjs0Mzo0Mlx1MjAxMzUwLjwvcD5cclxuICAgICAgICAgICAgICA8cD5bOF0gUm9zZSBDRiwgQW1vZGlvIFAsIEJhamFqIEpTLCBEaGltYW4gUkssIE1vbnRhZ25lc2UgUywgVGF5bG9yLVJvYmluc29uIFNELCBWaWxzdHJ1cCBILCBKYWxhbiBSLiBIZXBhdGljIGVuY2VwaGFsb3BhdGh5OiBOb3ZlbCBpbnNpZ2h0cyBpbnRvIGNsYXNzaWZpY2F0aW9uLCBwYXRob3BoeXNpb2xvZ3kgYW5kIHRoZXJhcHkuIEogSGVwYXRvbC4gMjAyMCBEZWM7NzMoNik6MTUyNi0xNTQ3LiA8L3A+XHJcbiAgICAgICAgICAgICAgPHA+WzldIHlzdGVtcyBiaW9sb2d5IGFuYWx5c2lzIG9mIGxhY3R1bG9zZSB3aXRoZHJhd2FsIGluIGhlcGF0aWMgZW5jZXBoYWxvcGF0aHkuIE1ldGFiIEJyYWluIERpcyAyMDEyOzI3OjIwNVx1MjAxMzIxNS48L3A+XHJcbiAgICAgICAgICAgICAgPHA+WzEwXSBCYXNzIE5NLCBNdWxsZW4gS0QsIFNhbnlhbCBBLCBQb29yZGFkIEYsIE5lZmYgRywgTGVldnkgQ0IsIGV0IGFsLiBSaWZheGltaW4gdHJlYXRtZW50IGluIGhlcGF0aWMgZW5jZXBoYWxvcGF0aHkuIE4gRW5nbCBKIE1lZCAyMDEwOzM2MjoxMDcxXHUyMDEzMTA4MS48L3A+XHJcbiAgICAgICAgICAgICAgPHA+WzExXSBEYWxhbCBSLCBNY0dlZSBSRywgUmlvcmRhbiBTTSwgV2Vic3RlciBBQy4gUHJvYmlvdGljcyBmb3IgcGVvcGxlIHdpdGggaGVwYXRpYyBlbmNlcGhhbG9wYXRoeS4gQ29jaHJhbmUgRGF0YWJhc2UgU3lzdCBSZXYgMjAxNzsyOkNEMDA4NzE2LjwvcD5cclxuICAgICAgICAgICAgICA8cD5bMTJdIFNpbVx1MDBGM24tVGFsZXJvIE0sIEdhcmNcdTAwRURhLU1hcnRcdTAwRURuZXogUiwgVG9ycmVucyBNLCBBdWd1c3RpbiBTLCBHXHUwMEYzbWV6IFMsIFBlcmVpcmEgRywgZXQgYWwuIEVmZmVjdHMgb2YgaW50cmF2ZW5vdXMgYWxidW1pbiBpbiBwYXRpZW50cyB3aXRoIGNpcnJob3NpcyBhbmQgZXBpc29kaWMgaGVwYXRpYyBlbmNlcGhhbG9wYXRoeTogYSByYW5kb21pemVkIGRvdWJsZS1ibGluZCBzdHVkeS4gSiBIZXBhdG9sIDIwMTM7NTk6MTE4NFx1MjAxMzExOTIuPC9wPlxyXG4gICAgICAgICAgICAgIDxwPlsxM10gQmFpIE0sIFlhbmcgWiwgUWkgWCwgRmFuIEQsIEhhbiBHLiBMLW9ybml0aGluZS1MLWFzcGFydGF0ZSBmb3IgaGVwYXRpYyBlbmNlcGhhbG9wYXRoeSBpbiBwYXRpZW50cyB3aXRoIGNpcnJob3NpczogYSBtZXRhLWFuYWx5c2lzIG9mIHJhbmRvbWl6ZWQgY29udHJvbGxlZCB0cmlhbHMuIEogR2FzdHJvZW50ZXJvbCBIZXBhdG9sIDIwMTM7Mjg6NzgzXHUyMDEzNzkyLjwvcD5cclxuICAgICAgICAgICAgICA8cD5bMTRdIFJvdHRpbmdoYXVzIEEgRywgWGkgQywgQW1yb2ZlbGwgTSBCLCBldCBhbC4gRW5naW5lZXJpbmcgbGlnYW5kLXNwZWNpZmljIGJpb3NlbnNvcnMgZm9yIGFyb21hdGljIGFtaW5vIGFjaWRzIGFuZCBuZXVyb2NoZW1pY2Fsc1tKXS4gQ2VsbCBzeXN0ZW1zLCAyMDIyLCAxMygzKTogMjA0LTIxNC4gZTQuPC9wPlxyXG4gICAgICAgICAgICAgIDxwPlsxNV0gSGFvIERMLCBaaG91IEpZLCBZYW5nIFNZLCBRaSBXLCBZYW5nIEtKLCBTdSBZSC4gRnVuY3Rpb24gYW5kIFJlZ3VsYXRpb24gb2YgQW1tb25pdW0gVHJhbnNwb3J0ZXJzIGluIFBsYW50cy4gSW50IEogTW9sIFNjaS4gMjAyMCBNYXkgMTg7MjEoMTApOjM1NTcuIDwvcD5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJvdW5kZWQtYm9yZGVyXCI+XHJcbiAgICAgICAgICAgICAgPGg0IGNsYXNzTmFtZT1cImNlbnRlci10ZXh0XCI+XHU2MjExXHU2NjJGXHU1OTI3XHU1RTA1QjwvaDQ+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWFnZVwiPlxyXG4gICAgICAgICAgICAgICAgPGltZyBzcmM9XCJodHRwczovL3N0YXRpYy5pZ2VtLndpa2kvdGVhbXMvNTM3OC9wcm9qZWN0LWRlc2NyaXB0aW9uLXNlY3Rpb24zLzEyODB4MTI4MC53ZWJwXCIgYWx0PVwiXHU3OTNBXHU0RjhCXHU1NkZFXHU3MjQ3XCIgLz5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWFnZVwiPlxyXG4gICAgICAgICAgICAgICAgPGltZyBzcmM9XCJodHRwczovL3N0YXRpYy5pZ2VtLndpa2kvdGVhbXMvNTM3OC9wcm9qZWN0LWRlc2NyaXB0aW9uLXNlY3Rpb24zL3Byb2plY3QtZGVzY3JpcHRpb24tc2VjdGlvbjQvMTI4MHgxMjgwLTEud2VicFwiIGFsdD1cIlx1NzkzQVx1NEY4Qlx1NTZGRVx1NzI0N1wiIC8+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG5cclxuICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJpbmRlbnRcIj5sYXMgaWpmZnMgYWlza2ZkIGZza2ogaWl3bHMgYXNkLmFhc3MgZmZhcyBhd3NzZCBhd3VzIGlpc2FsIGZhc2suYWlzaXNhZCBrc2pkZmthZiBpd2phc2lmamFrZHNoZiB3aWpkZmFsa3NqZiB3aWtzamtmamtzYWxoZiwgZ3NhaGZqaGdlamtmaCAgdWhhZWprZmggc2pkaWhnZnVxaXcgamggc2ppYWZoanNhaiBmaCBhc2QuPC9wPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvRWxlbWVudD5cclxuXHJcbiAgICAgICAgICAgICAgPEVsZW1lbnQgbmFtZT1cInNlY3Rpb242XCIgY2xhc3NOYW1lPVwiZWxlbWVudCByb3VuZGVkLWJvcmRlclwiIGlkPSdzZWN0aW9uNic+XHJcbiAgICAgICAgICAgICAgPGgyPlNlY3Rpb24gNjwvaDI+XHJcbiAgICAgICAgICAgICAgPHA+Q29udGVudCBmb3Igc2VjdGlvbiA2LjwvcD5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJvdW5kZWQtYm9yZGVyXCI+XHJcbiAgICAgICAgICAgICAgPGg0IGNsYXNzTmFtZT1cImNlbnRlci10ZXh0XCI+XHU2MjExXHU2NjJGXHU1OTI3XHU1RTA1QjwvaDQ+XHJcbiAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwiaW5kZW50XCI+bGFzIGlqZmZzIGFpc2tmZCBmc2tqIGlpd2xzIGFzZC5hYXNzIGZmYXMgYXdzc2QgYXd1cyBpaXNhbCBmYXNrLmFpc2lzYWQga3NqZGZrYWYgaXdqYXNpZmpha2RzaGYgd2lqZGZhbGtzamYgd2lrc2prZmprc2FsaGYsIGdzYWhmamhnZWprZmggIHVoYWVqa2ZoIHNqZGloZ2Z1cWl3IGpoIHNqaWFmaGpzYWogZmggYXNkLjwvcD5cclxuICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJpbmRlbnRcIj5sYXMgaWpmZnMgYWlza2ZkIGZza2ogaWl3bHMgYXNkLmFhc3MgZmZhcyBhd3NzZCBhd3VzIGlpc2FsIGZhc2suYWlzaXNhZCBrc2pkZmthZiBpd2phc2lmamFrZHNoZiB3aWpkZmFsa3NqZiB3aWtzamtmamtzYWxoZiwgZ3NhaGZqaGdlamtmaCAgdWhhZWprZmggc2pkaWhnZnVxaXcgamggc2ppYWZoanNhaiBmaCBhc2QuPC9wPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvRWxlbWVudD5cclxuXHJcbiAgICAgICAgICAgICAgPEVsZW1lbnQgbmFtZT1cInNlY3Rpb243XCIgY2xhc3NOYW1lPVwiZWxlbWVudCByb3VuZGVkLWJvcmRlclwiIGlkPSdzZWN0aW9uNyc+XHJcbiAgICAgICAgICAgICAgPGgyPlNlY3Rpb24gNzwvaDI+XHJcbiAgICAgICAgICAgICAgPHA+Q29udGVudCBmb3Igc2VjdGlvbiA3LjwvcD5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJvdW5kZWQtYm9yZGVyXCI+XHJcbiAgICAgICAgICAgICAgPGg0IGNsYXNzTmFtZT1cImNlbnRlci10ZXh0XCI+XHU2MjExXHU2NjJGXHU1OTI3XHU1RTA1QjwvaDQ+XHJcbiAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwiaW5kZW50XCI+bGFzIGlqZmZzIGFpc2tmZCBmc2tqIGlpd2xzIGFzZC5hYXNzIGZmYXMgYXdzc2QgYXd1cyBpaXNhbCBmYXNrLmFpc2lzYWQga3NqZGZrYWYgaXdqYXNpZmpha2RzaGYgd2lqZGZhbGtzamYgd2lrc2prZmprc2FsaGYsIGdzYWhmamhnZWprZmggIHVoYWVqa2ZoIHNqZGloZ2Z1cWl3IGpoIHNqaWFmaGpzYWogZmggYXNkLjwvcD5cclxuICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJpbmRlbnRcIj5sYXMgaWpmZnMgYWlza2ZkIGZza2ogaWl3bHMgYXNkLmFhc3MgZmZhcyBhd3NzZCBhd3VzIGlpc2FsIGZhc2suYWlzaXNhZCBrc2pkZmthZiBpd2phc2lmamFrZHNoZiB3aWpkZmFsa3NqZiB3aWtzamtmamtzYWxoZiwgZ3NhaGZqaGdlamtmaCAgdWhhZWprZmggc2pkaWhnZnVxaXcgamggc2ppYWZoanNhaiBmaCBhc2QuPC9wPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvRWxlbWVudD5cclxuXHJcbiAgICAgICAgICAgICAgPEVsZW1lbnQgbmFtZT1cInNlY3Rpb244XCIgY2xhc3NOYW1lPVwiZWxlbWVudCByb3VuZGVkLWJvcmRlclwiIGlkPSdzZWN0aW9uOCc+XHJcbiAgICAgICAgICAgICAgPGgyPlNlY3Rpb24gODwvaDI+XHJcbiAgICAgICAgICAgICAgPHA+Q29udGVudCBmb3Igc2VjdGlvbiA4LjwvcD5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJvdW5kZWQtYm9yZGVyXCI+XHJcbiAgICAgICAgICAgICAgPGg0IGNsYXNzTmFtZT1cImNlbnRlci10ZXh0XCI+XHU2MjExXHU2NjJGXHU1OTI3XHU1RTA1QjwvaDQ+XHJcbiAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwiaW5kZW50XCI+bGFzIGlqZmZzIGFpc2tmZCBmc2tqIGlpd2xzIGFzZC5hYXNzIGZmYXMgYXdzc2QgYXd1cyBpaXNhbCBmYXNrLmFpc2lzYWQga3NqZGZrYWYgaXdqYXNpZmpha2RzaGYgd2lqZGZhbGtzamYgd2lrc2prZmprc2FsaGYsIGdzYWhmamhnZWprZmggIHVoYWVqa2ZoIHNqZGloZ2Z1cWl3IGpoIHNqaWFmaGpzYWogZmggYXNkLjwvcD5cclxuICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJpbmRlbnRcIj5sYXMgaWpmZnMgYWlza2ZkIGZza2ogaWl3bHMgYXNkLmFhc3MgZmZhcyBhd3NzZCBhd3VzIGlpc2FsIGZhc2suYWlzaXNhZCBrc2pkZmthZiBpd2phc2lmamFrZHNoZiB3aWpkZmFsa3NqZiB3aWtzamtmamtzYWxoZiwgZ3NhaGZqaGdlamtmaCAgdWhhZWprZmggc2pkaWhnZnVxaXcgamggc2ppYWZoanNhaiBmaCBhc2QuPC9wPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvRWxlbWVudD5cclxuXHJcbiAgICAgICAgICAgICAgPEVsZW1lbnQgbmFtZT1cInNlY3Rpb245XCIgY2xhc3NOYW1lPVwiZWxlbWVudCByb3VuZGVkLWJvcmRlclwiIGlkPSdzZWN0aW9uOSc+XHJcbiAgICAgICAgICAgICAgPGgyPlNlY3Rpb24gOTwvaDI+XHJcbiAgICAgICAgICAgICAgPHA+Q29udGVudCBmb3Igc2VjdGlvbiA5LjwvcD5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJvdW5kZWQtYm9yZGVyXCI+XHJcbiAgICAgICAgICAgICAgPGg0IGNsYXNzTmFtZT1cImNlbnRlci10ZXh0XCI+XHU2MjExXHU2NjJGXHU1OTI3XHU1RTA1QjwvaDQ+XHJcbiAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwiaW5kZW50XCI+bGFzIGlqZmZzIGFpc2tmZCBmc2tqIGlpd2xzIGFzZC5hYXNzIGZmYXMgYXdzc2QgYXd1cyBpaXNhbCBmYXNrLmFpc2lzYWQga3NqZGZrYWYgaXdqYXNpZmpha2RzaGYgd2lqZGZhbGtzamYgd2lrc2prZmprc2FsaGYsIGdzYWhmamhnZWprZmggIHVoYWVqa2ZoIHNqZGloZ2Z1cWl3IGpoIHNqaWFmaGpzYWogZmggYXNkLjwvcD5cclxuICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJpbmRlbnRcIj5sYXMgaWpmZnMgYWlza2ZkIGZza2ogaWl3bHMgYXNkLmFhc3MgZmZhcyBhd3NzZCBhd3VzIGlpc2FsIGZhc2suYWlzaXNhZCBrc2pkZmthZiBpd2phc2lmamFrZHNoZiB3aWpkZmFsa3NqZiB3aWtzamtmamtzYWxoZiwgZ3NhaGZqaGdlamtmaCAgdWhhZWprZmggc2pkaWhnZnVxaXcgamggc2ppYWZoanNhaiBmaCBhc2QuPC9wPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvRWxlbWVudD5cclxuXHJcbiAgICAgICAgICAgICAgPEVsZW1lbnQgbmFtZT1cInNlY3Rpb24xMFwiIGNsYXNzTmFtZT1cImVsZW1lbnQgcm91bmRlZC1ib3JkZXJcIiBpZD0nc2VjdGlvbjEwJz5cclxuICAgICAgICAgICAgICA8aDI+U2VjdGlvbiAxMDwvaDI+XHJcbiAgICAgICAgICAgICAgPHA+Q29udGVudCBmb3Igc2VjdGlvbiAxMC48L3A+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyb3VuZGVkLWJvcmRlclwiPlxyXG4gICAgICAgICAgICAgIDxoNCBjbGFzc05hbWU9XCJjZW50ZXItdGV4dFwiPlx1NjIxMVx1NjYyRlx1NTkyN1x1NUUwNUI8L2g0PlxyXG4gICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cImluZGVudFwiPmxhcyBpamZmcyBhaXNrZmQgZnNraiBpaXdscyBhc2QuYWFzcyBmZmFzIGF3c3NkIGF3dXMgaWlzYWwgZmFzay5haXNpc2FkIGtzamRma2FmIGl3amFzaWZqYWtkc2hmIHdpamRmYWxrc2pmIHdpa3Nqa2Zqa3NhbGhmLCBnc2FoZmpoZ2Vqa2ZoICB1aGFlamtmaCBzamRpaGdmdXFpdyBqaCBzamlhZmhqc2FqIGZoIGFzZC48L3A+XHJcbiAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwiaW5kZW50XCI+bGFzIGlqZmZzIGFpc2tmZCBmc2tqIGlpd2xzIGFzZC5hYXNzIGZmYXMgYXdzc2QgYXd1cyBpaXNhbCBmYXNrLmFpc2lzYWQga3NqZGZrYWYgaXdqYXNpZmpha2RzaGYgd2lqZGZhbGtzamYgd2lrc2prZmprc2FsaGYsIGdzYWhmamhnZWprZmggIHVoYWVqa2ZoIHNqZGloZ2Z1cWl3IGpoIHNqaWFmaGpzYWogZmggYXNkLjwvcD5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L0VsZW1lbnQ+XHJcblxyXG4gICAgICAgICAgICAgIDxFbGVtZW50IG5hbWU9XCJzZWN0aW9uMTFcIiBjbGFzc05hbWU9XCJlbGVtZW50IHJvdW5kZWQtYm9yZGVyXCIgaWQ9J3NlY3Rpb24xMSc+XHJcbiAgICAgICAgICAgICAgPGgyPlNlY3Rpb24gMTE8L2gyPlxyXG4gICAgICAgICAgICAgIDxwPkNvbnRlbnQgZm9yIHNlY3Rpb24gMTEuPC9wPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicm91bmRlZC1ib3JkZXJcIj5cclxuICAgICAgICAgICAgICA8aDQgY2xhc3NOYW1lPVwiY2VudGVyLXRleHRcIj5cdTYyMTFcdTY2MkZcdTU5MjdcdTVFMDVCPC9oND5cclxuICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJpbmRlbnRcIj5sYXMgaWpmZnMgYWlza2ZkIGZza2ogaWl3bHMgYXNkLmFhc3MgZmZhcyBhd3NzZCBhd3VzIGlpc2FsIGZhc2suYWlzaXNhZCBrc2pkZmthZiBpd2phc2lmamFrZHNoZiB3aWpkZmFsa3NqZiB3aWtzamtmamtzYWxoZiwgZ3NhaGZqaGdlamtmaCAgdWhhZWprZmggc2pkaWhnZnVxaXcgamggc2ppYWZoanNhaiBmaCBhc2QuPC9wPlxyXG4gICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cImluZGVudFwiPmxhcyBpamZmcyBhaXNrZmQgZnNraiBpaXdscyBhc2QuYWFzcyBmZmFzIGF3c3NkIGF3dXMgaWlzYWwgZmFzay5haXNpc2FkIGtzamRma2FmIGl3amFzaWZqYWtkc2hmIHdpamRmYWxrc2pmIHdpa3Nqa2Zqa3NhbGhmLCBnc2FoZmpoZ2Vqa2ZoICB1aGFlamtmaCBzamRpaGdmdXFpdyBqaCBzamlhZmhqc2FqIGZoIGFzZC48L3A+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9FbGVtZW50PlxyXG4gICAgICAgICAgXHJcblxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLTFcIj48L2Rpdj5cclxuXHJcbiAgICAgICAgICBcclxuICAgICAgICBcclxuICAgICAgPC9kaXY+XHJcbiAgICA8Lz5cclxuICApO1xyXG59XHJcblxyXG57LyogPGRpdiBjbGFzc05hbWU9XCJiZC1jYWxsb3V0IGJkLWNhbGxvdXQtaW5mb1wiPlxyXG4gICAgICAgICAgSGVwYXRpYyBlbmNlcGhhbG9wYXRoeSAoSEUpIGlzIGEgY29tcGxpY2F0aW9uIG9mIGNpcnJob3NpcyBjaGFyYWN0ZXJpemVkIGJ5IG5ldXJvcHN5Y2hpYXRyaWMgYW5kIG1vdG9yIGR5c2Z1bmN0aW9uLiBJbiAyMDIzIGl0IHdhcyBlc3RpbWF0ZWQgdGhhdCB0aGVyZSB3ZXJlIDExMiBtaWxsaW9uIGluZGl2aWR1YWxzIHdpdGggbGl2ZXIgY2lycmhvc2lzIHdvcmxkd2lkZSwgNDAtNjAlIG9mIHdob20gZGV2ZWxvcCBIRS4gTWFuaWZlc3RhdGlvbnMgb2YgSEUgY2FuIHJhbmdlIGZyb20gc3VidGxlIChNSEUpIHRvIHNldmVyZSAoT0hFKSBhbmQgZXZlbiBjb21hLCB3aGljaCBjb25zaWRlcmFibHkgYWZmZWN0IHRoZSBxdWFsaXR5IG9mIGxpZmUgYW5kIGV2ZW4gdGhlIHN1cnZpdmFsIG9mIHBhdGllbnRzLiBFbWVyZ2luZyBkYXRhIGRlbW9uc3RyYXRlIHRoZSBpbmNyZWFzZWQgbGV2ZWwgb2YgYW1tb25pYSBjYXVzZWQgYnkgbGl2ZXIgZHlzZnVuY3Rpb24gYW5kIG92ZXJhY3RpdmF0ZWQgbWljcm9iaW90YSBpbiB0aGUgY29udGV4dCBvZiBjaXJyaG9zaXMgcGxheXMgYW4gZXNzZW50aWFsIHJvbGUgaW4gdGhlIHBhdGhvZ2VuZXNpcyBvZiBIRS4gTWljcm9iaW9tZS10YXJnZXRlZCB0aGVyYXBpZXMgZm9yIEhFIHN1Y2ggYXMgbGFjdHVsb3NlLCByaWZheGltaW4sIHByb2Jpb3RpY3MsIGFuZCBGTVQgYXJlIHNob3dpbmcgcHJvbWlzZS4gSG93ZXZlciwgdGhlIHJlc2lsaWVuY2Ugb2YgdGhlIG1pY3JvYmlvbWUgdG8gc3VzdGFpbmFibGUgY2hhbmdlIGFuZCB1bnByZWRpY3RhYmxlIGNsaW5pY2FsIG91dGNvbWVzIGZyb20gbWljcm9iaW90YSBhbHRlcmF0aW9ucyByZW1haW4gY2hhbGxlbmdpbmcgaW4gdGhlIGVmZmVjdGl2ZSBhcHBsaWNhdGlvbiBvZiBtaWNyb2Jpb21lIHRoZXJhcGV1dGljcyBpbiBIRS4gSW4gb3VyIHByb2plY3QsIHdlIHBsYW4gdG8gZGVzaWduIHNhZmUgYW5kIGNvbnRyb2xsYWJsZSBlbmdpbmVlcmVkIGJhY3RlcmlhIHRoYXQgY2FuIG1ldGFib2xpemUgdGhlIGV4Y2Vzc2l2ZSBhY2N1bXVsYXRpb24gb2YgYW1tb25pYSBpbiB0aGUgaW50ZXN0aW5lIG9mIHBhdGllbnRzLiBXZSBhaW0gdG8gaW1wcm92ZSB0aGUgcXVhbGl0eSBvZiBsaWZlIG9mIHBhdGllbnRzIHdpdGggTUhFLCBkZWxheWluZyB0aGVpciBwcm9ncmVzc2lvbiB0byBPSEUsIGFuZCBwcm92aWRlIGEgbm92ZWwgaWRlYSBmb3IgdGhlIG1pY3JvYmlhbCB0aGVyYXB5IG9mIEhFLlxyXG4gICAgICAgICAgPC9kaXY+ICovfSIsICJpbXBvcnQgeyBOYXYgfSBmcm9tICdyZWFjdC1ib290c3RyYXAnO1xyXG5pbXBvcnQgeyBMaW5rLEVsZW1lbnQgfSBmcm9tICdyZWFjdC1zY3JvbGwnO1xyXG5pbXBvcnQgUmVhY3Qse3VzZUVmZmVjdCx1c2VTdGF0ZX0gZnJvbSAncmVhY3QnO1xyXG5cclxuLy8gc2lkZW5hdmJhciBiZWdpblxyXG5pbnRlcmZhY2UgU2lkZU5hdmJhclByb3BzIHtcclxuICBhY3RpdmVMaW5rOiBzdHJpbmc7XHJcbn1cclxuY29uc3QgU2lkZU5hdmJhcjogUmVhY3QuRkM8U2lkZU5hdmJhclByb3BzPiA9ICh7IGFjdGl2ZUxpbmsgfSkgPT4ge1xyXG4gIHJldHVybiAoXHJcbiAgICA8ZGl2IGNsYXNzTmFtZT1cInNpZGUtbmF2YmFyXCI+XHJcbiAgICAgIDxOYXYgY2xhc3NOYW1lPVwiZmxleC1jb2x1bW5cIj5cclxuICAgICAgICA8TmF2LkxpbmsgYXM9e0xpbmt9IHRvPVwic2VjdGlvbjFcIiBzbW9vdGg9e3RydWV9IGR1cmF0aW9uPXs1MDB9IGNsYXNzTmFtZT17YWN0aXZlTGluayA9PT0gJ3NlY3Rpb24xJyA/ICdhY3RpdmUnIDogJ25vdEFjdGl2ZSd9PlNlY3Rpb24gMTwvTmF2Lkxpbms+XHJcbiAgICAgICAgPE5hdi5MaW5rIGFzPXtMaW5rfSB0bz1cInNlY3Rpb24yXCIgc21vb3RoPXt0cnVlfSBkdXJhdGlvbj17NTAwfSBjbGFzc05hbWU9e2FjdGl2ZUxpbmsgPT09ICdzZWN0aW9uMicgPyAnYWN0aXZlJyA6ICdub3RBY3RpdmUnfT5TZWN0aW9uIDI8L05hdi5MaW5rPlxyXG4gICAgICAgIDxOYXYuTGluayBhcz17TGlua30gdG89XCJzZWN0aW9uM1wiIHNtb290aD17dHJ1ZX0gZHVyYXRpb249ezUwMH0gY2xhc3NOYW1lPXthY3RpdmVMaW5rID09PSAnc2VjdGlvbjMnID8gJ2FjdGl2ZScgOiAnbm90QWN0aXZlJ30+U2VjdGlvbiAzPC9OYXYuTGluaz5cclxuICAgICAgICA8TmF2LkxpbmsgYXM9e0xpbmt9IHRvPVwic2VjdGlvbjRcIiBzbW9vdGg9e3RydWV9IGR1cmF0aW9uPXs1MDB9IGNsYXNzTmFtZT17YWN0aXZlTGluayA9PT0gJ3NlY3Rpb240JyA/ICdhY3RpdmUnIDogJ25vdEFjdGl2ZSd9PlNlY3Rpb24gNDwvTmF2Lkxpbms+XHJcbiAgICAgICAgPE5hdi5MaW5rIGFzPXtMaW5rfSB0bz1cInNlY3Rpb241XCIgc21vb3RoPXt0cnVlfSBkdXJhdGlvbj17NTAwfSBjbGFzc05hbWU9e2FjdGl2ZUxpbmsgPT09ICdzZWN0aW9uNScgPyAnYWN0aXZlJyA6ICdub3RBY3RpdmUnfT5TZWN0aW9uIDU8L05hdi5MaW5rPlxyXG4gICAgICAgIDxOYXYuTGluayBhcz17TGlua30gdG89XCJzZWN0aW9uNlwiIHNtb290aD17dHJ1ZX0gZHVyYXRpb249ezUwMH0gY2xhc3NOYW1lPXthY3RpdmVMaW5rID09PSAnc2VjdGlvbjYnID8gJ2FjdGl2ZScgOiAnbm90QWN0aXZlJ30+U2VjdGlvbiA2PC9OYXYuTGluaz5cclxuICAgICAgICA8TmF2LkxpbmsgYXM9e0xpbmt9IHRvPVwic2VjdGlvbjdcIiBzbW9vdGg9e3RydWV9IGR1cmF0aW9uPXs1MDB9IGNsYXNzTmFtZT17YWN0aXZlTGluayA9PT0gJ3NlY3Rpb243JyA/ICdhY3RpdmUnIDogJ25vdEFjdGl2ZSd9PlNlY3Rpb24gNzwvTmF2Lkxpbms+XHJcbiAgICAgICAgPE5hdi5MaW5rIGFzPXtMaW5rfSB0bz1cInNlY3Rpb244XCIgc21vb3RoPXt0cnVlfSBkdXJhdGlvbj17NTAwfSBjbGFzc05hbWU9e2FjdGl2ZUxpbmsgPT09ICdzZWN0aW9uOCcgPyAnYWN0aXZlJyA6ICdub3RBY3RpdmUnfT5TZWN0aW9uIDg8L05hdi5MaW5rPlxyXG4gICAgICAgIDxOYXYuTGluayBhcz17TGlua30gdG89XCJzZWN0aW9uOVwiIHNtb290aD17dHJ1ZX0gZHVyYXRpb249ezUwMH0gY2xhc3NOYW1lPXthY3RpdmVMaW5rID09PSAnc2VjdGlvbjknID8gJ2FjdGl2ZScgOiAnbm90QWN0aXZlJ30+U2VjdGlvbiA5PC9OYXYuTGluaz5cclxuICAgICAgICA8TmF2LkxpbmsgYXM9e0xpbmt9IHRvPVwic2VjdGlvbjEwXCIgc21vb3RoPXt0cnVlfSBkdXJhdGlvbj17NTAwfSBjbGFzc05hbWU9e2FjdGl2ZUxpbmsgPT09ICdzZWN0aW9uMTAnID8gJ2FjdGl2ZScgOiAnbm90QWN0aXZlJ30+U2VjdGlvbiAxMDwvTmF2Lkxpbms+XHJcbiAgICAgICAgPE5hdi5MaW5rIGFzPXtMaW5rfSB0bz1cInNlY3Rpb24xMVwiIHNtb290aD17dHJ1ZX0gZHVyYXRpb249ezUwMH0gY2xhc3NOYW1lPXthY3RpdmVMaW5rID09PSAnc2VjdGlvbjExJyA/ICdhY3RpdmUnIDogJ25vdEFjdGl2ZSd9PlNlY3Rpb24gMTE8L05hdi5MaW5rPlxyXG4gICAgICAgIHsvKiBcdTZERkJcdTUyQTBcdTY2RjRcdTU5MUFcdTVCRkNcdTgyMkFcdTk0RkVcdTYzQTUgKi99XHJcbiAgICAgIDwvTmF2PlxyXG4gICAgPC9kaXY+XHJcbiAgKTtcclxufTtcclxuLy8gc2lkZW5hdmJhciBlbmQgXHJcblxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIEVuZ2luZWVyaW5nKCkgeyBcclxuICAvLyBzaWRlbmF2YmFyIGJlZ2luXHJcbiAgY29uc3QgW2FjdGl2ZUxpbmssIHNldEFjdGl2ZUxpbmtdID0gdXNlU3RhdGU8c3RyaW5nPignJyk7XHJcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xyXG4gICAgICBjb25zdCBoYW5kbGVTY3JvbGwgPSAoKSA9PiB7XHJcbiAgICAgICAgY29uc3Qgc2VjdGlvbnMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcuZWxlbWVudCcpO1xyXG4gICAgICAgIGxldCBjdXJyZW50U2VjdGlvbiA9ICcnO1xyXG4gICAgICAgICAgc2VjdGlvbnMuZm9yRWFjaChzZWN0aW9uID0+IHtcclxuICAgICAgICAgICAgY29uc3Qgc2VjdGlvblRvcCA9IHNlY3Rpb24uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkudG9wO1xyXG4gICAgICAgICAgICBpZiAoc2VjdGlvblRvcCA8PSB3aW5kb3cuaW5uZXJIZWlnaHQgLyAyICYmIHNlY3Rpb25Ub3AgPiAtc2VjdGlvbi5jbGllbnRIZWlnaHQpIHtcclxuICAgICAgICAgICAgICBjdXJyZW50U2VjdGlvbiA9IHNlY3Rpb24uaWQ7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIHNldEFjdGl2ZUxpbmsoY3VycmVudFNlY3Rpb24pO1xyXG4gICAgICB9O1xyXG4gICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgaGFuZGxlU2Nyb2xsKTtcclxuICAgICAgcmV0dXJuICgpID0+IHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdzY3JvbGwnLCBoYW5kbGVTY3JvbGwpO1xyXG4gICAgfSwgW10pO1xyXG4gICAgLy8gc2lkZW5hdmJhciBlbmRcclxuXHJcblxyXG5cclxuICByZXR1cm4gKFxyXG4gICAgPD5cclxuICAgIDxkaXYgY2xhc3NOYW1lPVwiY3VzdG9tLWhlYWRlci1lbmdpbmVlcmluZ1wiPlxyXG4gICAgICAgIDxoMSBjbGFzc05hbWU9J2NlbnRlcmVkLXRpdGxlJz5cclxuICAgICAgICA8aW1nIFxyXG4gICAgICAgICAgICAgICAgc3JjPVwiaHR0cHM6Ly9zdGF0aWMuaWdlbS53aWtpL3RlYW1zLzUzNzgvaGVhZGVyL2VuZ2luZWVyaW5nLnBuZ1wiXHJcbiAgICAgICAgICAgICAgICBhbHQ9XCJzYWZldHkgaGVhZGVyXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImhlYWRlci1pbWdcIlxyXG4gICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIFxyXG4gICAgICAgICAgICAgICAgc3JjPVwiaHR0cHM6Ly9zdGF0aWMuaWdlbS53aWtpL3RlYW1zLzUzNzgvaGVhZGVyL2hlYWRlci1iYXIud2VicFwiXHJcbiAgICAgICAgICAgICAgICBhbHQ9XCJzYWZldHkgaGVhZGVyXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImhlYWRlci1iYXJcIlxyXG4gICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgPC9oMT5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwicm93ICBiZy1yaWNlX3llbGxvd1wiPlxyXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLTJcIj5cclxuICAgICAgICAgIDxTaWRlTmF2YmFyIGFjdGl2ZUxpbms9e2FjdGl2ZUxpbmt9ICAgICAgICAgIC8+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgXHJcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtMTBcIj5cclxuICAgICAgICAgIFxyXG4gICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgIDxFbGVtZW50IG5hbWU9XCJzZWN0aW9uMVwiIGNsYXNzTmFtZT1cImVsZW1lbnQgcm91bmRlZC1ib3JkZXJcIiBpZD0nc2VjdGlvbjEnPlxyXG4gICAgICAgICAgICAgICAgIDxoMj5TZWN0aW9uIDE8L2gyPlxyXG4gICAgICAgICAgICAgICAgIDxwPkNvbnRlbnQgZm9yIHNlY3Rpb24gMS48L3A+XHJcbiAgICAgICAgICAgICAgICAgPGltZyBcclxuICAgICAgICAgICAgICAgIHNyYz1cImh0dHBzOi8vc3RhdGljLmlnZW0ud2lraS90ZWFtcy81Mzc4L3NjaG9vbC1iYWRnZS95YW55aW50ZWNoLndlYnBcIlxyXG4gICAgICAgICAgICAgICAgYWx0PVwiZXhhbXBsZVwiXHJcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJyZXNwb25zaXZlLWltZ1wiXHJcbiAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgPC9FbGVtZW50PlxyXG4gICAgICAgICAgXHJcbiAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYmQtY2FsbG91dCBiZC1jYWxsb3V0LWluZm8gYmctZ3JheVwiPlxyXG4gICAgICAgICAgICAgICAgICA8aDE+V2hhdCBkbyB3ZSBkbyB0byAuLi4/IFNlZS4uLjwvaDE+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIFxyXG4gICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgIDxFbGVtZW50IG5hbWU9XCJzZWN0aW9uMlwiIGNsYXNzTmFtZT1cImVsZW1lbnQgcm91bmRlZC1ib3JkZXJcIiBpZD0nc2VjdGlvbjInPlxyXG4gICAgICAgICAgICAgICAgPGgyPlNlY3Rpb24gMjwvaDI+XHJcbiAgICAgICAgICAgICAgICA8cD5Db250ZW50IGZvciBzZWN0aW9uIDIuPC9wPlxyXG4gICAgICAgICAgICAgICAgPGltZyBcclxuICAgICAgICAgICAgICAgIHNyYz1cImh0dHBzOi8vc3RhdGljLmlnZW0ud2lraS90ZWFtcy81Mzc4L3NjaG9vbC1iYWRnZS95YW55aW50ZWNoLndlYnBcIlxyXG4gICAgICAgICAgICAgICAgYWx0PVwiZXhhbXBsZVwiXHJcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJyZXNwb25zaXZlLWltZ1wiXHJcbiAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICA8L0VsZW1lbnQ+XHJcbiAgICAgICAgICBcclxuXHJcbiAgICAgICAgICAgICAgPEVsZW1lbnQgbmFtZT1cInNlY3Rpb24zXCIgY2xhc3NOYW1lPVwiZWxlbWVudCByb3VuZGVkLWJvcmRlclwiIGlkPSdzZWN0aW9uMyc+XHJcbiAgICAgICAgICAgICAgPGgyPlNlY3Rpb24gMzwvaDI+XHJcbiAgICAgICAgICAgICAgPHA+Q29udGVudCBmb3Igc2VjdGlvbiAzLjwvcD5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJvdW5kZWQtYm9yZGVyXCI+XHJcbiAgICAgICAgICAgICAgPGg0IGNsYXNzTmFtZT1cImNlbnRlci10ZXh0XCI+XHU2MjExXHU2NjJGXHU1OTI3XHU1RTA1QjwvaDQ+XHJcbiAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwiaW5kZW50XCI+bGFzIGlqZmZzIGFpc2tmZCBmc2tqIGlpd2xzIGFzZC5hYXNzIGZmYXMgYXdzc2QgYXd1cyBpaXNhbCBmYXNrLmFpc2lzYWQga3NqZGZrYWYgaXdqYXNpZmpha2RzaGYgd2lqZGZhbGtzamYgd2lrc2prZmprc2FsaGYsIGdzYWhmamhnZWprZmggIHVoYWVqa2ZoIHNqZGloZ2Z1cWl3IGpoIHNqaWFmaGpzYWogZmggYXNkLjwvcD5cclxuICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJpbmRlbnRcIj5sYXMgaWpmZnMgYWlza2ZkIGZza2ogaWl3bHMgYXNkLmFhc3MgZmZhcyBhd3NzZCBhd3VzIGlpc2FsIGZhc2suYWlzaXNhZCBrc2pkZmthZiBpd2phc2lmamFrZHNoZiB3aWpkZmFsa3NqZiB3aWtzamtmamtzYWxoZiwgZ3NhaGZqaGdlamtmaCAgdWhhZWprZmggc2pkaWhnZnVxaXcgamggc2ppYWZoanNhaiBmaCBhc2QuPC9wPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvRWxlbWVudD5cclxuXHJcbiAgICAgICAgICAgICAgPEVsZW1lbnQgbmFtZT1cInNlY3Rpb240XCIgY2xhc3NOYW1lPVwiZWxlbWVudCByb3VuZGVkLWJvcmRlclwiIGlkPSdzZWN0aW9uNCc+XHJcbiAgICAgICAgICAgICAgPGgyPlNlY3Rpb24gNDwvaDI+XHJcbiAgICAgICAgICAgICAgPHA+Q29udGVudCBmb3Igc2VjdGlvbiA0LjwvcD5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJvdW5kZWQtYm9yZGVyXCI+XHJcbiAgICAgICAgICAgICAgPGg0IGNsYXNzTmFtZT1cImNlbnRlci10ZXh0XCI+XHU2MjExXHU2NjJGXHU1OTI3XHU1RTA1QjwvaDQ+XHJcbiAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwiaW5kZW50XCI+bGFzIGlqZmZzIGFpc2tmZCBmc2tqIGlpd2xzIGFzZC5hYXNzIGZmYXMgYXdzc2QgYXd1cyBpaXNhbCBmYXNrLmFpc2lzYWQga3NqZGZrYWYgaXdqYXNpZmpha2RzaGYgd2lqZGZhbGtzamYgd2lrc2prZmprc2FsaGYsIGdzYWhmamhnZWprZmggIHVoYWVqa2ZoIHNqZGloZ2Z1cWl3IGpoIHNqaWFmaGpzYWogZmggYXNkLjwvcD5cclxuICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJpbmRlbnRcIj5sYXMgaWpmZnMgYWlza2ZkIGZza2ogaWl3bHMgYXNkLmFhc3MgZmZhcyBhd3NzZCBhd3VzIGlpc2FsIGZhc2suYWlzaXNhZCBrc2pkZmthZiBpd2phc2lmamFrZHNoZiB3aWpkZmFsa3NqZiB3aWtzamtmamtzYWxoZiwgZ3NhaGZqaGdlamtmaCAgdWhhZWprZmggc2pkaWhnZnVxaXcgamggc2ppYWZoanNhaiBmaCBhc2QuPC9wPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvRWxlbWVudD5cclxuXHJcbiAgICAgICAgICAgICAgPEVsZW1lbnQgbmFtZT1cInNlY3Rpb241XCIgY2xhc3NOYW1lPVwiZWxlbWVudCByb3VuZGVkLWJvcmRlclwiIGlkPSdzZWN0aW9uNSc+XHJcbiAgICAgICAgICAgICAgPGgyPlNlY3Rpb24gNTwvaDI+XHJcbiAgICAgICAgICAgICAgPHA+Q29udGVudCBmb3Igc2VjdGlvbiA1LjwvcD5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJvdW5kZWQtYm9yZGVyXCI+XHJcbiAgICAgICAgICAgICAgPGg0IGNsYXNzTmFtZT1cImNlbnRlci10ZXh0XCI+XHU2MjExXHU2NjJGXHU1OTI3XHU1RTA1QjwvaDQ+XHJcbiAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwiaW5kZW50XCI+bGFzIGlqZmZzIGFpc2tmZCBmc2tqIGlpd2xzIGFzZC5hYXNzIGZmYXMgYXdzc2QgYXd1cyBpaXNhbCBmYXNrLmFpc2lzYWQga3NqZGZrYWYgaXdqYXNpZmpha2RzaGYgd2lqZGZhbGtzamYgd2lrc2prZmprc2FsaGYsIGdzYWhmamhnZWprZmggIHVoYWVqa2ZoIHNqZGloZ2Z1cWl3IGpoIHNqaWFmaGpzYWogZmggYXNkLjwvcD5cclxuICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJpbmRlbnRcIj5sYXMgaWpmZnMgYWlza2ZkIGZza2ogaWl3bHMgYXNkLmFhc3MgZmZhcyBhd3NzZCBhd3VzIGlpc2FsIGZhc2suYWlzaXNhZCBrc2pkZmthZiBpd2phc2lmamFrZHNoZiB3aWpkZmFsa3NqZiB3aWtzamtmamtzYWxoZiwgZ3NhaGZqaGdlamtmaCAgdWhhZWprZmggc2pkaWhnZnVxaXcgamggc2ppYWZoanNhaiBmaCBhc2QuPC9wPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvRWxlbWVudD5cclxuXHJcbiAgICAgICAgICAgICAgPEVsZW1lbnQgbmFtZT1cInNlY3Rpb242XCIgY2xhc3NOYW1lPVwiZWxlbWVudCByb3VuZGVkLWJvcmRlclwiIGlkPSdzZWN0aW9uNic+XHJcbiAgICAgICAgICAgICAgPGgyPlNlY3Rpb24gNjwvaDI+XHJcbiAgICAgICAgICAgICAgPHA+Q29udGVudCBmb3Igc2VjdGlvbiA2LjwvcD5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJvdW5kZWQtYm9yZGVyXCI+XHJcbiAgICAgICAgICAgICAgPGg0IGNsYXNzTmFtZT1cImNlbnRlci10ZXh0XCI+XHU2MjExXHU2NjJGXHU1OTI3XHU1RTA1QjwvaDQ+XHJcbiAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwiaW5kZW50XCI+bGFzIGlqZmZzIGFpc2tmZCBmc2tqIGlpd2xzIGFzZC5hYXNzIGZmYXMgYXdzc2QgYXd1cyBpaXNhbCBmYXNrLmFpc2lzYWQga3NqZGZrYWYgaXdqYXNpZmpha2RzaGYgd2lqZGZhbGtzamYgd2lrc2prZmprc2FsaGYsIGdzYWhmamhnZWprZmggIHVoYWVqa2ZoIHNqZGloZ2Z1cWl3IGpoIHNqaWFmaGpzYWogZmggYXNkLjwvcD5cclxuICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJpbmRlbnRcIj5sYXMgaWpmZnMgYWlza2ZkIGZza2ogaWl3bHMgYXNkLmFhc3MgZmZhcyBhd3NzZCBhd3VzIGlpc2FsIGZhc2suYWlzaXNhZCBrc2pkZmthZiBpd2phc2lmamFrZHNoZiB3aWpkZmFsa3NqZiB3aWtzamtmamtzYWxoZiwgZ3NhaGZqaGdlamtmaCAgdWhhZWprZmggc2pkaWhnZnVxaXcgamggc2ppYWZoanNhaiBmaCBhc2QuPC9wPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvRWxlbWVudD5cclxuXHJcbiAgICAgICAgICAgICAgPEVsZW1lbnQgbmFtZT1cInNlY3Rpb243XCIgY2xhc3NOYW1lPVwiZWxlbWVudCByb3VuZGVkLWJvcmRlclwiIGlkPSdzZWN0aW9uNyc+XHJcbiAgICAgICAgICAgICAgPGgyPlNlY3Rpb24gNzwvaDI+XHJcbiAgICAgICAgICAgICAgPHA+Q29udGVudCBmb3Igc2VjdGlvbiA3LjwvcD5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJvdW5kZWQtYm9yZGVyXCI+XHJcbiAgICAgICAgICAgICAgPGg0IGNsYXNzTmFtZT1cImNlbnRlci10ZXh0XCI+XHU2MjExXHU2NjJGXHU1OTI3XHU1RTA1QjwvaDQ+XHJcbiAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwiaW5kZW50XCI+bGFzIGlqZmZzIGFpc2tmZCBmc2tqIGlpd2xzIGFzZC5hYXNzIGZmYXMgYXdzc2QgYXd1cyBpaXNhbCBmYXNrLmFpc2lzYWQga3NqZGZrYWYgaXdqYXNpZmpha2RzaGYgd2lqZGZhbGtzamYgd2lrc2prZmprc2FsaGYsIGdzYWhmamhnZWprZmggIHVoYWVqa2ZoIHNqZGloZ2Z1cWl3IGpoIHNqaWFmaGpzYWogZmggYXNkLjwvcD5cclxuICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJpbmRlbnRcIj5sYXMgaWpmZnMgYWlza2ZkIGZza2ogaWl3bHMgYXNkLmFhc3MgZmZhcyBhd3NzZCBhd3VzIGlpc2FsIGZhc2suYWlzaXNhZCBrc2pkZmthZiBpd2phc2lmamFrZHNoZiB3aWpkZmFsa3NqZiB3aWtzamtmamtzYWxoZiwgZ3NhaGZqaGdlamtmaCAgdWhhZWprZmggc2pkaWhnZnVxaXcgamggc2ppYWZoanNhaiBmaCBhc2QuPC9wPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvRWxlbWVudD5cclxuXHJcbiAgICAgICAgICAgICAgPEVsZW1lbnQgbmFtZT1cInNlY3Rpb244XCIgY2xhc3NOYW1lPVwiZWxlbWVudCByb3VuZGVkLWJvcmRlclwiIGlkPSdzZWN0aW9uOCc+XHJcbiAgICAgICAgICAgICAgPGgyPlNlY3Rpb24gODwvaDI+XHJcbiAgICAgICAgICAgICAgPHA+Q29udGVudCBmb3Igc2VjdGlvbiA4LjwvcD5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJvdW5kZWQtYm9yZGVyXCI+XHJcbiAgICAgICAgICAgICAgPGg0IGNsYXNzTmFtZT1cImNlbnRlci10ZXh0XCI+XHU2MjExXHU2NjJGXHU1OTI3XHU1RTA1QjwvaDQ+XHJcbiAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwiaW5kZW50XCI+bGFzIGlqZmZzIGFpc2tmZCBmc2tqIGlpd2xzIGFzZC5hYXNzIGZmYXMgYXdzc2QgYXd1cyBpaXNhbCBmYXNrLmFpc2lzYWQga3NqZGZrYWYgaXdqYXNpZmpha2RzaGYgd2lqZGZhbGtzamYgd2lrc2prZmprc2FsaGYsIGdzYWhmamhnZWprZmggIHVoYWVqa2ZoIHNqZGloZ2Z1cWl3IGpoIHNqaWFmaGpzYWogZmggYXNkLjwvcD5cclxuICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJpbmRlbnRcIj5sYXMgaWpmZnMgYWlza2ZkIGZza2ogaWl3bHMgYXNkLmFhc3MgZmZhcyBhd3NzZCBhd3VzIGlpc2FsIGZhc2suYWlzaXNhZCBrc2pkZmthZiBpd2phc2lmamFrZHNoZiB3aWpkZmFsa3NqZiB3aWtzamtmamtzYWxoZiwgZ3NhaGZqaGdlamtmaCAgdWhhZWprZmggc2pkaWhnZnVxaXcgamggc2ppYWZoanNhaiBmaCBhc2QuPC9wPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvRWxlbWVudD5cclxuXHJcbiAgICAgICAgICAgICAgPEVsZW1lbnQgbmFtZT1cInNlY3Rpb245XCIgY2xhc3NOYW1lPVwiZWxlbWVudCByb3VuZGVkLWJvcmRlclwiIGlkPSdzZWN0aW9uOSc+XHJcbiAgICAgICAgICAgICAgPGgyPlNlY3Rpb24gOTwvaDI+XHJcbiAgICAgICAgICAgICAgPHA+Q29udGVudCBmb3Igc2VjdGlvbiA5LjwvcD5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJvdW5kZWQtYm9yZGVyXCI+XHJcbiAgICAgICAgICAgICAgPGg0IGNsYXNzTmFtZT1cImNlbnRlci10ZXh0XCI+XHU2MjExXHU2NjJGXHU1OTI3XHU1RTA1QjwvaDQ+XHJcbiAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwiaW5kZW50XCI+bGFzIGlqZmZzIGFpc2tmZCBmc2tqIGlpd2xzIGFzZC5hYXNzIGZmYXMgYXdzc2QgYXd1cyBpaXNhbCBmYXNrLmFpc2lzYWQga3NqZGZrYWYgaXdqYXNpZmpha2RzaGYgd2lqZGZhbGtzamYgd2lrc2prZmprc2FsaGYsIGdzYWhmamhnZWprZmggIHVoYWVqa2ZoIHNqZGloZ2Z1cWl3IGpoIHNqaWFmaGpzYWogZmggYXNkLjwvcD5cclxuICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJpbmRlbnRcIj5sYXMgaWpmZnMgYWlza2ZkIGZza2ogaWl3bHMgYXNkLmFhc3MgZmZhcyBhd3NzZCBhd3VzIGlpc2FsIGZhc2suYWlzaXNhZCBrc2pkZmthZiBpd2phc2lmamFrZHNoZiB3aWpkZmFsa3NqZiB3aWtzamtmamtzYWxoZiwgZ3NhaGZqaGdlamtmaCAgdWhhZWprZmggc2pkaWhnZnVxaXcgamggc2ppYWZoanNhaiBmaCBhc2QuPC9wPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvRWxlbWVudD5cclxuXHJcbiAgICAgICAgICAgICAgPEVsZW1lbnQgbmFtZT1cInNlY3Rpb24xMFwiIGNsYXNzTmFtZT1cImVsZW1lbnQgcm91bmRlZC1ib3JkZXJcIiBpZD0nc2VjdGlvbjEwJz5cclxuICAgICAgICAgICAgICA8aDI+U2VjdGlvbiAxMDwvaDI+XHJcbiAgICAgICAgICAgICAgPHA+Q29udGVudCBmb3Igc2VjdGlvbiAxMC48L3A+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyb3VuZGVkLWJvcmRlclwiPlxyXG4gICAgICAgICAgICAgIDxoNCBjbGFzc05hbWU9XCJjZW50ZXItdGV4dFwiPlx1NjIxMVx1NjYyRlx1NTkyN1x1NUUwNUI8L2g0PlxyXG4gICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cImluZGVudFwiPmxhcyBpamZmcyBhaXNrZmQgZnNraiBpaXdscyBhc2QuYWFzcyBmZmFzIGF3c3NkIGF3dXMgaWlzYWwgZmFzay5haXNpc2FkIGtzamRma2FmIGl3amFzaWZqYWtkc2hmIHdpamRmYWxrc2pmIHdpa3Nqa2Zqa3NhbGhmLCBnc2FoZmpoZ2Vqa2ZoICB1aGFlamtmaCBzamRpaGdmdXFpdyBqaCBzamlhZmhqc2FqIGZoIGFzZC48L3A+XHJcbiAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwiaW5kZW50XCI+bGFzIGlqZmZzIGFpc2tmZCBmc2tqIGlpd2xzIGFzZC5hYXNzIGZmYXMgYXdzc2QgYXd1cyBpaXNhbCBmYXNrLmFpc2lzYWQga3NqZGZrYWYgaXdqYXNpZmpha2RzaGYgd2lqZGZhbGtzamYgd2lrc2prZmprc2FsaGYsIGdzYWhmamhnZWprZmggIHVoYWVqa2ZoIHNqZGloZ2Z1cWl3IGpoIHNqaWFmaGpzYWogZmggYXNkLjwvcD5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L0VsZW1lbnQ+XHJcblxyXG4gICAgICAgICAgICAgIDxFbGVtZW50IG5hbWU9XCJzZWN0aW9uMTFcIiBjbGFzc05hbWU9XCJlbGVtZW50IHJvdW5kZWQtYm9yZGVyXCIgaWQ9J3NlY3Rpb24xMSc+XHJcbiAgICAgICAgICAgICAgPGgyPlNlY3Rpb24gMTE8L2gyPlxyXG4gICAgICAgICAgICAgIDxwPkNvbnRlbnQgZm9yIHNlY3Rpb24gMTEuPC9wPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicm91bmRlZC1ib3JkZXJcIj5cclxuICAgICAgICAgICAgICA8aDQgY2xhc3NOYW1lPVwiY2VudGVyLXRleHRcIj5cdTYyMTFcdTY2MkZcdTU5MjdcdTVFMDVCPC9oND5cclxuICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJpbmRlbnRcIj5sYXMgaWpmZnMgYWlza2ZkIGZza2ogaWl3bHMgYXNkLmFhc3MgZmZhcyBhd3NzZCBhd3VzIGlpc2FsIGZhc2suYWlzaXNhZCBrc2pkZmthZiBpd2phc2lmamFrZHNoZiB3aWpkZmFsa3NqZiB3aWtzamtmamtzYWxoZiwgZ3NhaGZqaGdlamtmaCAgdWhhZWprZmggc2pkaWhnZnVxaXcgamggc2ppYWZoanNhaiBmaCBhc2QuPC9wPlxyXG4gICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cImluZGVudFwiPmxhcyBpamZmcyBhaXNrZmQgZnNraiBpaXdscyBhc2QuYWFzcyBmZmFzIGF3c3NkIGF3dXMgaWlzYWwgZmFzay5haXNpc2FkIGtzamRma2FmIGl3amFzaWZqYWtkc2hmIHdpamRmYWxrc2pmIHdpa3Nqa2Zqa3NhbGhmLCBnc2FoZmpoZ2Vqa2ZoICB1aGFlamtmaCBzamRpaGdmdXFpdyBqaCBzamlhZmhqc2FqIGZoIGFzZC48L3A+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9FbGVtZW50PlxyXG5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC0xXCI+PC9kaXY+XHJcblxyXG4gICAgICAgICAgXHJcbiAgICAgICAgXHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC8+XHJcbiAgKTtcclxufVxyXG4iLCAiaW1wb3J0IHsgTmF2IH0gZnJvbSAncmVhY3QtYm9vdHN0cmFwJztcclxuaW1wb3J0IHsgTGluaywgRWxlbWVudCB9IGZyb20gJ3JlYWN0LXNjcm9sbCc7XHJcbmltcG9ydCBSZWFjdCwgeyB1c2VFZmZlY3QsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xyXG5cclxuLy8gc2lkZW5hdmJhciBiZWdpblxyXG5pbnRlcmZhY2UgU2lkZU5hdmJhclByb3BzIHtcclxuICBhY3RpdmVMaW5rOiBzdHJpbmc7XHJcbiAgb25MaW5rQ2xpY2s6IChzZWN0aW9uOiBzdHJpbmcpID0+IHZvaWQ7XHJcbn1cclxuY29uc3QgU2lkZU5hdmJhcjogUmVhY3QuRkM8U2lkZU5hdmJhclByb3BzPiA9ICh7IGFjdGl2ZUxpbmssIG9uTGlua0NsaWNrIH0pID0+IHtcclxuICByZXR1cm4gKFxyXG4gICAgPGRpdiBjbGFzc05hbWU9XCJzaWRlLW5hdmJhclwiPlxyXG4gICAgICA8TmF2IGNsYXNzTmFtZT1cImZsZXgtY29sdW1uXCI+XHJcbiAgICAgICAgPE5hdi5MaW5rIFxyXG4gICAgICAgICAgYXM9e0xpbmt9IFxyXG4gICAgICAgICAgdG89XCJzZWN0aW9uMVwiIFxyXG4gICAgICAgICAgc21vb3RoPXt0cnVlfSBcclxuICAgICAgICAgIGR1cmF0aW9uPXs1MDB9IFxyXG4gICAgICAgICAgY2xhc3NOYW1lPXthY3RpdmVMaW5rID09PSAnc2VjdGlvbjEnID8gJ2FjdGl2ZScgOiAnbm90QWN0aXZlJ31cclxuICAgICAgICAgIG9uQ2xpY2s9eygpID0+IG9uTGlua0NsaWNrKCdzZWN0aW9uMScpfVxyXG4gICAgICAgID5cclxuICAgICAgICAgIFNlY3Rpb24gMVxyXG4gICAgICAgIDwvTmF2Lkxpbms+XHJcbiAgICAgICAgPE5hdi5MaW5rIFxyXG4gICAgICAgICAgYXM9e0xpbmt9IFxyXG4gICAgICAgICAgdG89XCJzZWN0aW9uMlwiIFxyXG4gICAgICAgICAgc21vb3RoPXt0cnVlfSBcclxuICAgICAgICAgIGR1cmF0aW9uPXs1MDB9IFxyXG4gICAgICAgICAgY2xhc3NOYW1lPXthY3RpdmVMaW5rID09PSAnc2VjdGlvbjInID8gJ2FjdGl2ZScgOiAnbm90QWN0aXZlJ31cclxuICAgICAgICAgIG9uQ2xpY2s9eygpID0+IG9uTGlua0NsaWNrKCdzZWN0aW9uMicpfVxyXG4gICAgICAgID5cclxuICAgICAgICAgIFNlY3Rpb24gMlxyXG4gICAgICAgIDwvTmF2Lkxpbms+XHJcbiAgICAgICAgey8qIFx1NkRGQlx1NTJBMFx1NjZGNFx1NTkxQVx1NUJGQ1x1ODIyQVx1OTRGRVx1NjNBNSAqL31cclxuICAgICAgPC9OYXY+XHJcbiAgICA8L2Rpdj5cclxuICApO1xyXG59O1xyXG4vLyBzaWRlbmF2YmFyIGVuZCBcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBFeHBlcmltZW50cygpIHtcclxuICAvLyBzaWRlbmF2YmFyIGJlZ2luXHJcbiAgY29uc3QgW2FjdGl2ZUxpbmssIHNldEFjdGl2ZUxpbmtdID0gdXNlU3RhdGU8c3RyaW5nPignc2VjdGlvbjEnKTtcclxuICBjb25zdCBbdmlzaWJsZVNlY3Rpb24sIHNldFZpc2libGVTZWN0aW9uXSA9IHVzZVN0YXRlPHN0cmluZz4oJ3NlY3Rpb24xJyk7XHJcblxyXG4gIHVzZUVmZmVjdCgoKSA9PiB7XHJcbiAgICBjb25zdCBoYW5kbGVTY3JvbGwgPSAoKSA9PiB7XHJcbiAgICAgIGNvbnN0IHNlY3Rpb25zID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnLmVsZW1lbnQnKTtcclxuICAgICAgbGV0IGN1cnJlbnRTZWN0aW9uID0gJyc7XHJcbiAgICAgIHNlY3Rpb25zLmZvckVhY2goc2VjdGlvbiA9PiB7XHJcbiAgICAgICAgY29uc3Qgc2VjdGlvblRvcCA9IHNlY3Rpb24uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkudG9wO1xyXG4gICAgICAgIGlmIChzZWN0aW9uVG9wIDw9IHdpbmRvdy5pbm5lckhlaWdodCAvIDIgJiYgc2VjdGlvblRvcCA+IC1zZWN0aW9uLmNsaWVudEhlaWdodCkge1xyXG4gICAgICAgICAgY3VycmVudFNlY3Rpb24gPSBzZWN0aW9uLmlkO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICAgIHNldEFjdGl2ZUxpbmsoY3VycmVudFNlY3Rpb24pO1xyXG4gICAgfTtcclxuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdzY3JvbGwnLCBoYW5kbGVTY3JvbGwpO1xyXG4gICAgcmV0dXJuICgpID0+IHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdzY3JvbGwnLCBoYW5kbGVTY3JvbGwpO1xyXG4gIH0sIFtdKTtcclxuICAvLyBzaWRlbmF2YmFyIGVuZFxyXG5cclxuICBjb25zdCBoYW5kbGVNb3VzZUVudGVyID0gKHNlY3Rpb246IHN0cmluZykgPT4ge1xyXG4gICAgc2V0VmlzaWJsZVNlY3Rpb24oc2VjdGlvbik7XHJcbiAgfTtcclxuXHJcbiAgY29uc3QgaGFuZGxlTGlua0NsaWNrID0gKHNlY3Rpb246IHN0cmluZykgPT4ge1xyXG4gICAgc2V0VmlzaWJsZVNlY3Rpb24oc2VjdGlvbik7XHJcbiAgfTtcclxuXHJcbiAgcmV0dXJuIChcclxuICAgIDw+XHJcbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY3VzdG9tLWhlYWRlci1leHBlcmltZW50c1wiPlxyXG4gICAgICAgIDxoMSBjbGFzc05hbWU9XCJjZW50ZXJlZC10aXRsZVwiPlxyXG4gICAgICAgICAgPGltZyBcclxuICAgICAgICAgICAgc3JjPVwiaHR0cHM6Ly9zdGF0aWMuaWdlbS53aWtpL3RlYW1zLzUzNzgvaGVhZGVyL2V4cGVyaW1lbnQucG5nXCJcclxuICAgICAgICAgICAgYWx0PVwic2FmZXR5IGhlYWRlclwiXHJcbiAgICAgICAgICAgIGNsYXNzTmFtZT1cImhlYWRlci1pbWdcIlxyXG4gICAgICAgICAgLz5cclxuICAgICAgICAgIDxpbWcgXHJcbiAgICAgICAgICAgIHNyYz1cImh0dHBzOi8vc3RhdGljLmlnZW0ud2lraS90ZWFtcy81Mzc4L2hlYWRlci9oZWFkZXItYmFyLndlYnBcIlxyXG4gICAgICAgICAgICBhbHQ9XCJzYWZldHkgaGVhZGVyXCJcclxuICAgICAgICAgICAgY2xhc3NOYW1lPVwiaGVhZGVyLWJhclwiXHJcbiAgICAgICAgICAvPlxyXG4gICAgICAgIDwvaDE+XHJcbiAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJyb3cgYmctcmljZV95ZWxsb3dcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC0yXCI+XHJcbiAgICAgICAgICA8U2lkZU5hdmJhciBhY3RpdmVMaW5rPXthY3RpdmVMaW5rfSBvbkxpbmtDbGljaz17aGFuZGxlTGlua0NsaWNrfSAvPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIFxyXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLTEwXCI+XHJcbiAgICAgICAgICA8RWxlbWVudCBcclxuICAgICAgICAgICAgbmFtZT1cInNlY3Rpb24xXCIgXHJcbiAgICAgICAgICAgIGNsYXNzTmFtZT1cImVsZW1lbnQgcm91bmRlZC1ib3JkZXJcIiBcclxuICAgICAgICAgICAgaWQ9J3NlY3Rpb24xJyBcclxuICAgICAgICAgICAgb25Nb3VzZUVudGVyPXsoKSA9PiBoYW5kbGVNb3VzZUVudGVyKCdzZWN0aW9uMScpfVxyXG4gICAgICAgICAgICBzdHlsZT17eyBkaXNwbGF5OiB2aXNpYmxlU2VjdGlvbiA9PT0gJ3NlY3Rpb24xJyA/ICdibG9jaycgOiAnbm9uZScgfX1cclxuICAgICAgICAgID5cclxuICAgICAgICAgICAgPGgyPlNlY3Rpb24gMTwvaDI+XHJcbiAgICAgICAgICAgIDxwPkNvbnRlbnQgZm9yIHNlY3Rpb24gMS48L3A+XHJcbiAgICAgICAgICA8L0VsZW1lbnQ+XHJcbiAgICAgICAgICBcclxuICAgICAgICAgIDxFbGVtZW50IFxyXG4gICAgICAgICAgICBuYW1lPVwic2VjdGlvbjJcIiBcclxuICAgICAgICAgICAgY2xhc3NOYW1lPVwiZWxlbWVudCByb3VuZGVkLWJvcmRlclwiIFxyXG4gICAgICAgICAgICBpZD0nc2VjdGlvbjInIFxyXG4gICAgICAgICAgICBvbk1vdXNlRW50ZXI9eygpID0+IGhhbmRsZU1vdXNlRW50ZXIoJ3NlY3Rpb24yJyl9XHJcbiAgICAgICAgICAgIHN0eWxlPXt7IGRpc3BsYXk6IHZpc2libGVTZWN0aW9uID09PSAnc2VjdGlvbjInID8gJ2Jsb2NrJyA6ICdub25lJyB9fVxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICA8aDI+U2VjdGlvbiAyPC9oMj5cclxuICAgICAgICAgICAgPHA+Q29udGVudCBmb3Igc2VjdGlvbiAyLjwvcD5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyb3VuZGVkLWJvcmRlclwiPlxyXG4gICAgICAgICAgICAgIDxoNCBjbGFzc05hbWU9XCJjZW50ZXItdGV4dFwiPlNlY3Rpb24gMjwvaDQ+XHJcbiAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwiaW5kZW50XCI+bGFzIGlqZmZzIGFpc2tmZCBmc2tqIGlpd2xzIGFzZC5hYXNzIGZmYXMgYXdzc2QgYXd1cyBpaXNhbCBmYXNrLmFpc2lzYWQga3NqZGZrYWYgaXdqYXNpZmpha2RzaGYgd2lqZGZhbGtzamYgd2lrc2prZmprc2FsaGYsIGdzYWhmamhnZWprZmggIHVoYWVqa2ZoIHNqZGloZ2Z1cWl3IGpoIHNqaWFmaGpzYWogZmggYXNkLjwvcD5cclxuICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJpbmRlbnRcIj5sYXMgaWpmZnMgYWlza2ZkIGZza2ogaWl3bHMgYXNkLmFhc3MgZmZhcyBhd3NzZCBhd3VzIGlpc2FsIGZhc2suYWlzaXNhZCBrc2pkZmthZiBpd2phc2lmamFrZHNoZiB3aWpkZmFsa3NqZiB3aWtzamtmamtzYWxoZiwgZ3NhaGZqaGdlamtmaCAgdWhhZWprZmggc2pkaWhnZnVxaXcgamggc2ppYWZoanNhaiBmaCBhc2QuPC9wPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvRWxlbWVudD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC0xXCI+PC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC8+XHJcbiAgKTtcclxufSIsICJpbXBvcnQgeyBOYXYgfSBmcm9tICdyZWFjdC1ib290c3RyYXAnO1xyXG5pbXBvcnQgeyBMaW5rLEVsZW1lbnQgfSBmcm9tICdyZWFjdC1zY3JvbGwnO1xyXG5pbXBvcnQgUmVhY3Qse3VzZUVmZmVjdCx1c2VTdGF0ZX0gZnJvbSAncmVhY3QnO1xyXG5cclxuLy8gc2lkZW5hdmJhciBiZWdpblxyXG5pbnRlcmZhY2UgU2lkZU5hdmJhclByb3BzIHtcclxuICBhY3RpdmVMaW5rOiBzdHJpbmc7XHJcbn1cclxuY29uc3QgU2lkZU5hdmJhcjogUmVhY3QuRkM8U2lkZU5hdmJhclByb3BzPiA9ICh7IGFjdGl2ZUxpbmsgfSkgPT4ge1xyXG4gIHJldHVybiAoXHJcbiAgICA8ZGl2IGNsYXNzTmFtZT1cInNpZGUtbmF2YmFyXCI+XHJcbiAgICAgIDxOYXYgY2xhc3NOYW1lPVwiZmxleC1jb2x1bW5cIj5cclxuICAgICAgICA8TmF2LkxpbmsgYXM9e0xpbmt9IHRvPVwic2VjdGlvbjFcIiBzbW9vdGg9e3RydWV9IGR1cmF0aW9uPXs1MDB9IGNsYXNzTmFtZT17YWN0aXZlTGluayA9PT0gJ3NlY3Rpb24xJyA/ICdhY3RpdmUnIDogJ25vdEFjdGl2ZSd9PlNlY3Rpb24gMTwvTmF2Lkxpbms+XHJcbiAgICAgICAgPE5hdi5MaW5rIGFzPXtMaW5rfSB0bz1cInNlY3Rpb24yXCIgc21vb3RoPXt0cnVlfSBkdXJhdGlvbj17NTAwfSBjbGFzc05hbWU9e2FjdGl2ZUxpbmsgPT09ICdzZWN0aW9uMicgPyAnYWN0aXZlJyA6ICdub3RBY3RpdmUnfT5TZWN0aW9uIDI8L05hdi5MaW5rPlxyXG4gICAgICAgIDxOYXYuTGluayBhcz17TGlua30gdG89XCJzZWN0aW9uM1wiIHNtb290aD17dHJ1ZX0gZHVyYXRpb249ezUwMH0gY2xhc3NOYW1lPXthY3RpdmVMaW5rID09PSAnc2VjdGlvbjMnID8gJ2FjdGl2ZScgOiAnbm90QWN0aXZlJ30+U2VjdGlvbiAzPC9OYXYuTGluaz5cclxuICAgICAgICA8TmF2LkxpbmsgYXM9e0xpbmt9IHRvPVwic2VjdGlvbjRcIiBzbW9vdGg9e3RydWV9IGR1cmF0aW9uPXs1MDB9IGNsYXNzTmFtZT17YWN0aXZlTGluayA9PT0gJ3NlY3Rpb240JyA/ICdhY3RpdmUnIDogJ25vdEFjdGl2ZSd9PlNlY3Rpb24gNDwvTmF2Lkxpbms+XHJcbiAgICAgICAgPE5hdi5MaW5rIGFzPXtMaW5rfSB0bz1cInNlY3Rpb241XCIgc21vb3RoPXt0cnVlfSBkdXJhdGlvbj17NTAwfSBjbGFzc05hbWU9e2FjdGl2ZUxpbmsgPT09ICdzZWN0aW9uNScgPyAnYWN0aXZlJyA6ICdub3RBY3RpdmUnfT5TZWN0aW9uIDU8L05hdi5MaW5rPlxyXG4gICAgICAgIDxOYXYuTGluayBhcz17TGlua30gdG89XCJzZWN0aW9uNlwiIHNtb290aD17dHJ1ZX0gZHVyYXRpb249ezUwMH0gY2xhc3NOYW1lPXthY3RpdmVMaW5rID09PSAnc2VjdGlvbjYnID8gJ2FjdGl2ZScgOiAnbm90QWN0aXZlJ30+U2VjdGlvbiA2PC9OYXYuTGluaz5cclxuICAgICAgICA8TmF2LkxpbmsgYXM9e0xpbmt9IHRvPVwic2VjdGlvbjdcIiBzbW9vdGg9e3RydWV9IGR1cmF0aW9uPXs1MDB9IGNsYXNzTmFtZT17YWN0aXZlTGluayA9PT0gJ3NlY3Rpb243JyA/ICdhY3RpdmUnIDogJ25vdEFjdGl2ZSd9PlNlY3Rpb24gNzwvTmF2Lkxpbms+XHJcbiAgICAgICAgPE5hdi5MaW5rIGFzPXtMaW5rfSB0bz1cInNlY3Rpb244XCIgc21vb3RoPXt0cnVlfSBkdXJhdGlvbj17NTAwfSBjbGFzc05hbWU9e2FjdGl2ZUxpbmsgPT09ICdzZWN0aW9uOCcgPyAnYWN0aXZlJyA6ICdub3RBY3RpdmUnfT5TZWN0aW9uIDg8L05hdi5MaW5rPlxyXG4gICAgICAgIDxOYXYuTGluayBhcz17TGlua30gdG89XCJzZWN0aW9uOVwiIHNtb290aD17dHJ1ZX0gZHVyYXRpb249ezUwMH0gY2xhc3NOYW1lPXthY3RpdmVMaW5rID09PSAnc2VjdGlvbjknID8gJ2FjdGl2ZScgOiAnbm90QWN0aXZlJ30+U2VjdGlvbiA5PC9OYXYuTGluaz5cclxuICAgICAgICA8TmF2LkxpbmsgYXM9e0xpbmt9IHRvPVwic2VjdGlvbjEwXCIgc21vb3RoPXt0cnVlfSBkdXJhdGlvbj17NTAwfSBjbGFzc05hbWU9e2FjdGl2ZUxpbmsgPT09ICdzZWN0aW9uMTAnID8gJ2FjdGl2ZScgOiAnbm90QWN0aXZlJ30+U2VjdGlvbiAxMDwvTmF2Lkxpbms+XHJcbiAgICAgICAgPE5hdi5MaW5rIGFzPXtMaW5rfSB0bz1cInNlY3Rpb24xMVwiIHNtb290aD17dHJ1ZX0gZHVyYXRpb249ezUwMH0gY2xhc3NOYW1lPXthY3RpdmVMaW5rID09PSAnc2VjdGlvbjExJyA/ICdhY3RpdmUnIDogJ25vdEFjdGl2ZSd9PlNlY3Rpb24gMTE8L05hdi5MaW5rPlxyXG4gICAgICAgIHsvKiBcdTZERkJcdTUyQTBcdTY2RjRcdTU5MUFcdTVCRkNcdTgyMkFcdTk0RkVcdTYzQTUgKi99XHJcbiAgICAgIDwvTmF2PlxyXG4gICAgPC9kaXY+XHJcbiAgKTtcclxufTtcclxuLy8gc2lkZW5hdmJhciBlbmQgXHJcblxyXG5leHBvcnQgZnVuY3Rpb24gTm90ZWJvb2soKSB7XHJcbiAgLy8gc2lkZW5hdmJhciBiZWdpblxyXG4gIGNvbnN0IFthY3RpdmVMaW5rLCBzZXRBY3RpdmVMaW5rXSA9IHVzZVN0YXRlPHN0cmluZz4oJycpO1xyXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcclxuICAgICAgY29uc3QgaGFuZGxlU2Nyb2xsID0gKCkgPT4ge1xyXG4gICAgICAgIGNvbnN0IHNlY3Rpb25zID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnLmVsZW1lbnQnKTtcclxuICAgICAgICBsZXQgY3VycmVudFNlY3Rpb24gPSAnJztcclxuICAgICAgICAgIHNlY3Rpb25zLmZvckVhY2goc2VjdGlvbiA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IHNlY3Rpb25Ub3AgPSBzZWN0aW9uLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnRvcDtcclxuICAgICAgICAgICAgaWYgKHNlY3Rpb25Ub3AgPD0gd2luZG93LmlubmVySGVpZ2h0IC8gMiAmJiBzZWN0aW9uVG9wID4gLXNlY3Rpb24uY2xpZW50SGVpZ2h0KSB7XHJcbiAgICAgICAgICAgICAgY3VycmVudFNlY3Rpb24gPSBzZWN0aW9uLmlkO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICBzZXRBY3RpdmVMaW5rKGN1cnJlbnRTZWN0aW9uKTtcclxuICAgICAgfTtcclxuICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIGhhbmRsZVNjcm9sbCk7XHJcbiAgICAgIHJldHVybiAoKSA9PiB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgaGFuZGxlU2Nyb2xsKTtcclxuICAgIH0sIFtdKTtcclxuICAgIC8vIHNpZGVuYXZiYXIgZW5kXHJcblxyXG5cclxuXHJcbiAgcmV0dXJuIChcclxuICAgIDw+XHJcbiAgICA8ZGl2IGNsYXNzTmFtZT1cImN1c3RvbS1oZWFkZXItbm90ZWJvb2tcIj5cclxuPGgxIGNsYXNzTmFtZT1cImNlbnRlcmVkLXRpdGxlXCI+XHJcblxyXG4gICAgICAgICAgICAgIDxpbWcgXHJcbiAgICAgICAgICAgICAgICBzcmM9XCJodHRwczovL3N0YXRpYy5pZ2VtLndpa2kvdGVhbXMvNTM3OC9oZWFkZXIvbm90ZWJvb2sucG5nXCJcclxuICAgICAgICAgICAgICAgIGFsdD1cInNhZmV0eSBoZWFkZXJcIlxyXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiaGVhZGVyLWltZ1wiXHJcbiAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICA8aW1nIFxyXG4gICAgICAgICAgICAgICAgc3JjPVwiaHR0cHM6Ly9zdGF0aWMuaWdlbS53aWtpL3RlYW1zLzUzNzgvaGVhZGVyL2hlYWRlci1iYXIud2VicFwiXHJcbiAgICAgICAgICAgICAgICBhbHQ9XCJzYWZldHkgaGVhZGVyXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImhlYWRlci1iYXJcIlxyXG4gICAgICAgICAgICAgIC8+XHJcbjwvaDE+XHJcbjwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cInJvdyAgYmctcmljZV95ZWxsb3dcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC0yXCI+XHJcbiAgICAgICAgICA8U2lkZU5hdmJhciBhY3RpdmVMaW5rPXthY3RpdmVMaW5rfSAgICAgICAgICAvPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIFxyXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLTEwXCI+XHJcbiAgICAgICAgICBcclxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImJkLWNhbGxvdXQgYmQtY2FsbG91dC1pbmZvIGJnLWdyYXlcIj5cclxuICAgICAgICAgICAgICAgICAgPGgxPldoYXQgZG8gd2UgZG8gdG8gLi4uPyBTZWUuLi48L2gxPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICA8RWxlbWVudCBuYW1lPVwic2VjdGlvbjFcIiBjbGFzc05hbWU9XCJlbGVtZW50XCIgaWQ9J3NlY3Rpb24xJz5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPSdyb3cgY2VudGVyLWRpdic+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPSdjb2wtNCAnPjxpbWcgc3JjPSdodHRwczovL3BsYWNlaG9sZC5jby82MDB4NTAwJyBjbGFzc05hbWU9J3Jlc3BvbnNpdmUtaW1nJyAvPlxyXG4gICAgICAgICAgICAgICAgICA8ZmlnY2FwdGlvbiBjbGFzc05hbWU9J2NhcHRpb24nPlx1OEZEOVx1NjYyRlx1NTZGRVx1NkNFOFx1NzY4NFx1NEVFM1x1NzgwMSxcdTU3MjhcdTU2RkVcdTcyNDdcdTRFMEJcdTk3NjJcdTRGN0ZcdTc1Mjg8L2ZpZ2NhcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPSdjb2wtNiAnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9J3JvdW5kZWQtYm9yZGVyIG1hcmdpbi0wJz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzTmFtZT1cImNlbnRlci10ZXh0XCI+V2FzIGlsdXNtYTwvaDM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cImluZGVudFwiPmxhcyBpamZmcyBhaXNrZmQgZnNraiBpaXdscyBhc2QuYWFzcyBmZmFzIGF3c3NkIGF3dXMgaWlzYWwgZmFzay5haXNpc2FkIGtzamRma2FmIGl3amFzaWZqYWtkc2hmIHdpamRmYWxrc2pmIHdpa3Nqa2Zqa3NhbGhmLCBnc2FoZmpoZ2Vqa2ZoICB1aGFlamtmaCBzamRpaGdmdXFpdyBqaCBzamlhZmhqc2FqIGZoIGFzZC48L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cImluZGVudFwiPmxhcyBpamZmcyBhaXNrZmQgZnNraiBpaXdscyBhc2QuYWFzcyBmZmFzIGF3c3NkIGF3dXMgaWlzYWwgZmFzay5haXNpc2FkIGtzamRma2FmIGl3amFzaWZqYWtkc2hmIHdpamRmYWxrc2pmIHdpa3Nqa2Zqa3NhbGhmLCBnc2FoZmpoZ2Vqa2ZoICB1aGFlamtmaCBzamRpaGdmdXFpdyBqaCBzamlhZmhqc2FqIGZoIGFzZC48L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9FbGVtZW50PlxyXG5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYmQtY2FsbG91dCBiZC1jYWxsb3V0LWluZm8gYmctZ3JheVwiPlxyXG4gICAgICAgICAgICAgICAgICA8aDE+V2hhdCBkbyB3ZSBkbyB0byAuLi4/IFNlZS4uLjwvaDE+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICB7LyogPGgyPlNlY3Rpb24gMTwvaDI+XHJcbiAgICAgICAgICAgICAgICAgPHA+Q29udGVudCBmb3Igc2VjdGlvbiAxLjwvcD5cclxuICAgICAgICAgICAgICAgICA8aW1nIFxyXG4gICAgICAgICAgICAgICAgc3JjPVwiaHR0cHM6Ly9zdGF0aWMuaWdlbS53aWtpL3RlYW1zLzUzNzgvc2Nob29sLWJhZGdlL3lhbnlpbnRlY2gud2VicFwiXHJcbiAgICAgICAgICAgICAgICBhbHQ9XCJleGFtcGxlXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInJlc3BvbnNpdmUtaW1nXCJcclxuICAgICAgICAgICAgICAvPiAqL31cclxuXHJcbiAgICAgICAgICBcclxuXHJcbiAgICAgICAgICBcclxuICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICA8RWxlbWVudCBuYW1lPVwic2VjdGlvbjJcIiBjbGFzc05hbWU9XCJlbGVtZW50XCIgaWQ9J3NlY3Rpb24yJz5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9J3JvdyBjZW50ZXItZGl2Jz5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPSdjb2wtNiAnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT0ncm91bmRlZC1ib3JkZXIgbWFyZ2luLTAnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxoMyBjbGFzc05hbWU9XCJjZW50ZXItdGV4dFwiPkphY2tldDwvaDM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwiaW5kZW50XCI+bGFzIGlqZmZzIGFpc2tmZCBmc2tqIGlpd2xzIGFzZC5hYXNzIGZmYXMgYXdzc2QgYXd1cyBpaXNhbCBmYXNrLmFpc2lzYWQga3NqZGZrYWYgaXdqYXNpZmpha2RzaGYgd2lqZGZhbGtzamYgd2lrc2prZmprc2FsaGYsIGdzYWhmamhnZWprZmggIHVoYWVqa2ZoIHNqZGloZ2Z1cWl3IGpoIHNqaWFmaGpzYWogZmggYXNkLjwvcD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJpbmRlbnRcIj5sYXMgaWpmZnMgYWlza2ZkIGZza2ogaWl3bHMgYXNkLmFhc3MgZmZhcyBhd3NzZCBhd3VzIGlpc2FsIGZhc2suYWlzaXNhZCBrc2pkZmthZiBpd2phc2lmamFrZHNoZiB3aWpkZmFsa3NqZiB3aWtzamtmamtzYWxoZiwgZ3NhaGZqaGdlamtmaCAgdWhhZWprZmggc2pkaWhnZnVxaXcgamggc2ppYWZoanNhaiBmaCBhc2QuPC9wPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9J2NvbC00Jz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9J2h0dHBzOi8vcGxhY2Vob2xkLmNvLzYwMHg1MDAnIGNsYXNzTmFtZT0ncmVzcG9uc2l2ZS1pbWcnIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxmaWdjYXB0aW9uIGNsYXNzTmFtZT0nY2FwdGlvbic+XHU4RkQ5XHU2NjJGXHU1NkZFXHU2Q0U4XHU3Njg0XHU0RUUzXHU3ODAxLFx1NTcyOFx1NTZGRVx1NzI0N1x1NEUwQlx1OTc2Mlx1NEY3Rlx1NzUyODwvZmlnY2FwdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvRWxlbWVudD5cclxuICAgICAgICAgIFxyXG5cclxuICAgICAgICAgICAgICA8RWxlbWVudCBuYW1lPVwic2VjdGlvbjNcIiBjbGFzc05hbWU9XCJlbGVtZW50IHJvdW5kZWQtYm9yZGVyXCIgaWQ9J3NlY3Rpb24zJz5cclxuICAgICAgICAgICAgICA8aDI+U2VjdGlvbiAzPC9oMj5cclxuICAgICAgICAgICAgICA8cD5Db250ZW50IGZvciBzZWN0aW9uIDMuPC9wPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicm91bmRlZC1ib3JkZXJcIj5cclxuICAgICAgICAgICAgICA8aDQgY2xhc3NOYW1lPVwiY2VudGVyLXRleHRcIj5TZWN0aW9uIDM8L2g0PlxyXG4gICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cImluZGVudFwiPmxhcyBpamZmcyBhaXNrZmQgZnNraiBpaXdscyBhc2QuYWFzcyBmZmFzIGF3c3NkIGF3dXMgaWlzYWwgZmFzay5haXNpc2FkIGtzamRma2FmIGl3amFzaWZqYWtkc2hmIHdpamRmYWxrc2pmIHdpa3Nqa2Zqa3NhbGhmLCBnc2FoZmpoZ2Vqa2ZoICB1aGFlamtmaCBzamRpaGdmdXFpdyBqaCBzamlhZmhqc2FqIGZoIGFzZC48L3A+XHJcbiAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwiaW5kZW50XCI+bGFzIGlqZmZzIGFpc2tmZCBmc2tqIGlpd2xzIGFzZC5hYXNzIGZmYXMgYXdzc2QgYXd1cyBpaXNhbCBmYXNrLmFpc2lzYWQga3NqZGZrYWYgaXdqYXNpZmpha2RzaGYgd2lqZGZhbGtzamYgd2lrc2prZmprc2FsaGYsIGdzYWhmamhnZWprZmggIHVoYWVqa2ZoIHNqZGloZ2Z1cWl3IGpoIHNqaWFmaGpzYWogZmggYXNkLjwvcD5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L0VsZW1lbnQ+XHJcblxyXG4gICAgICAgICAgICAgIDxFbGVtZW50IG5hbWU9XCJzZWN0aW9uNFwiIGNsYXNzTmFtZT1cImVsZW1lbnQgcm91bmRlZC1ib3JkZXJcIiBpZD0nc2VjdGlvbjQnPlxyXG4gICAgICAgICAgICAgIDxoMj5TZWN0aW9uIDQ8L2gyPlxyXG4gICAgICAgICAgICAgIDxwPkNvbnRlbnQgZm9yIHNlY3Rpb24gNC48L3A+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyb3VuZGVkLWJvcmRlclwiPlxyXG4gICAgICAgICAgICAgIDxoNCBjbGFzc05hbWU9XCJjZW50ZXItdGV4dFwiPlx1NjIxMVx1NjYyRlx1NTkyN1x1NUUwNUI8L2g0PlxyXG4gICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cImluZGVudFwiPmxhcyBpamZmcyBhaXNrZmQgZnNraiBpaXdscyBhc2QuYWFzcyBmZmFzIGF3c3NkIGF3dXMgaWlzYWwgZmFzay5haXNpc2FkIGtzamRma2FmIGl3amFzaWZqYWtkc2hmIHdpamRmYWxrc2pmIHdpa3Nqa2Zqa3NhbGhmLCBnc2FoZmpoZ2Vqa2ZoICB1aGFlamtmaCBzamRpaGdmdXFpdyBqaCBzamlhZmhqc2FqIGZoIGFzZC48L3A+XHJcbiAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwiaW5kZW50XCI+bGFzIGlqZmZzIGFpc2tmZCBmc2tqIGlpd2xzIGFzZC5hYXNzIGZmYXMgYXdzc2QgYXd1cyBpaXNhbCBmYXNrLmFpc2lzYWQga3NqZGZrYWYgaXdqYXNpZmpha2RzaGYgd2lqZGZhbGtzamYgd2lrc2prZmprc2FsaGYsIGdzYWhmamhnZWprZmggIHVoYWVqa2ZoIHNqZGloZ2Z1cWl3IGpoIHNqaWFmaGpzYWogZmggYXNkLjwvcD5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L0VsZW1lbnQ+XHJcblxyXG4gICAgICAgICAgICAgIDxFbGVtZW50IG5hbWU9XCJzZWN0aW9uNVwiIGNsYXNzTmFtZT1cImVsZW1lbnQgcm91bmRlZC1ib3JkZXJcIiBpZD0nc2VjdGlvbjUnPlxyXG4gICAgICAgICAgICAgIDxoMj5TZWN0aW9uIDU8L2gyPlxyXG4gICAgICAgICAgICAgIDxwPkNvbnRlbnQgZm9yIHNlY3Rpb24gNS48L3A+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyb3VuZGVkLWJvcmRlclwiPlxyXG4gICAgICAgICAgICAgIDxoNCBjbGFzc05hbWU9XCJjZW50ZXItdGV4dFwiPlx1NjIxMVx1NjYyRlx1NTkyN1x1NUUwNUI8L2g0PlxyXG4gICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cImluZGVudFwiPmxhcyBpamZmcyBhaXNrZmQgZnNraiBpaXdscyBhc2QuYWFzcyBmZmFzIGF3c3NkIGF3dXMgaWlzYWwgZmFzay5haXNpc2FkIGtzamRma2FmIGl3amFzaWZqYWtkc2hmIHdpamRmYWxrc2pmIHdpa3Nqa2Zqa3NhbGhmLCBnc2FoZmpoZ2Vqa2ZoICB1aGFlamtmaCBzamRpaGdmdXFpdyBqaCBzamlhZmhqc2FqIGZoIGFzZC48L3A+XHJcbiAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwiaW5kZW50XCI+bGFzIGlqZmZzIGFpc2tmZCBmc2tqIGlpd2xzIGFzZC5hYXNzIGZmYXMgYXdzc2QgYXd1cyBpaXNhbCBmYXNrLmFpc2lzYWQga3NqZGZrYWYgaXdqYXNpZmpha2RzaGYgd2lqZGZhbGtzamYgd2lrc2prZmprc2FsaGYsIGdzYWhmamhnZWprZmggIHVoYWVqa2ZoIHNqZGloZ2Z1cWl3IGpoIHNqaWFmaGpzYWogZmggYXNkLjwvcD5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L0VsZW1lbnQ+XHJcblxyXG4gICAgICAgICAgICAgIDxFbGVtZW50IG5hbWU9XCJzZWN0aW9uNlwiIGNsYXNzTmFtZT1cImVsZW1lbnQgcm91bmRlZC1ib3JkZXJcIiBpZD0nc2VjdGlvbjYnPlxyXG4gICAgICAgICAgICAgIDxoMj5TZWN0aW9uIDY8L2gyPlxyXG4gICAgICAgICAgICAgIDxwPkNvbnRlbnQgZm9yIHNlY3Rpb24gNi48L3A+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyb3VuZGVkLWJvcmRlclwiPlxyXG4gICAgICAgICAgICAgIDxoNCBjbGFzc05hbWU9XCJjZW50ZXItdGV4dFwiPlx1NjIxMVx1NjYyRlx1NTkyN1x1NUUwNUI8L2g0PlxyXG4gICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cImluZGVudFwiPmxhcyBpamZmcyBhaXNrZmQgZnNraiBpaXdscyBhc2QuYWFzcyBmZmFzIGF3c3NkIGF3dXMgaWlzYWwgZmFzay5haXNpc2FkIGtzamRma2FmIGl3amFzaWZqYWtkc2hmIHdpamRmYWxrc2pmIHdpa3Nqa2Zqa3NhbGhmLCBnc2FoZmpoZ2Vqa2ZoICB1aGFlamtmaCBzamRpaGdmdXFpdyBqaCBzamlhZmhqc2FqIGZoIGFzZC48L3A+XHJcbiAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwiaW5kZW50XCI+bGFzIGlqZmZzIGFpc2tmZCBmc2tqIGlpd2xzIGFzZC5hYXNzIGZmYXMgYXdzc2QgYXd1cyBpaXNhbCBmYXNrLmFpc2lzYWQga3NqZGZrYWYgaXdqYXNpZmpha2RzaGYgd2lqZGZhbGtzamYgd2lrc2prZmprc2FsaGYsIGdzYWhmamhnZWprZmggIHVoYWVqa2ZoIHNqZGloZ2Z1cWl3IGpoIHNqaWFmaGpzYWogZmggYXNkLjwvcD5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L0VsZW1lbnQ+XHJcblxyXG4gICAgICAgICAgICAgIDxFbGVtZW50IG5hbWU9XCJzZWN0aW9uN1wiIGNsYXNzTmFtZT1cImVsZW1lbnQgcm91bmRlZC1ib3JkZXJcIiBpZD0nc2VjdGlvbjcnPlxyXG4gICAgICAgICAgICAgIDxoMj5TZWN0aW9uIDc8L2gyPlxyXG4gICAgICAgICAgICAgIDxwPkNvbnRlbnQgZm9yIHNlY3Rpb24gNy48L3A+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyb3VuZGVkLWJvcmRlclwiPlxyXG4gICAgICAgICAgICAgIDxoNCBjbGFzc05hbWU9XCJjZW50ZXItdGV4dFwiPlx1NjIxMVx1NjYyRlx1NTkyN1x1NUUwNUI8L2g0PlxyXG4gICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cImluZGVudFwiPmxhcyBpamZmcyBhaXNrZmQgZnNraiBpaXdscyBhc2QuYWFzcyBmZmFzIGF3c3NkIGF3dXMgaWlzYWwgZmFzay5haXNpc2FkIGtzamRma2FmIGl3amFzaWZqYWtkc2hmIHdpamRmYWxrc2pmIHdpa3Nqa2Zqa3NhbGhmLCBnc2FoZmpoZ2Vqa2ZoICB1aGFlamtmaCBzamRpaGdmdXFpdyBqaCBzamlhZmhqc2FqIGZoIGFzZC48L3A+XHJcbiAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwiaW5kZW50XCI+bGFzIGlqZmZzIGFpc2tmZCBmc2tqIGlpd2xzIGFzZC5hYXNzIGZmYXMgYXdzc2QgYXd1cyBpaXNhbCBmYXNrLmFpc2lzYWQga3NqZGZrYWYgaXdqYXNpZmpha2RzaGYgd2lqZGZhbGtzamYgd2lrc2prZmprc2FsaGYsIGdzYWhmamhnZWprZmggIHVoYWVqa2ZoIHNqZGloZ2Z1cWl3IGpoIHNqaWFmaGpzYWogZmggYXNkLjwvcD5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L0VsZW1lbnQ+XHJcblxyXG4gICAgICAgICAgICAgIDxFbGVtZW50IG5hbWU9XCJzZWN0aW9uOFwiIGNsYXNzTmFtZT1cImVsZW1lbnQgcm91bmRlZC1ib3JkZXJcIiBpZD0nc2VjdGlvbjgnPlxyXG4gICAgICAgICAgICAgIDxoMj5TZWN0aW9uIDg8L2gyPlxyXG4gICAgICAgICAgICAgIDxwPkNvbnRlbnQgZm9yIHNlY3Rpb24gOC48L3A+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyb3VuZGVkLWJvcmRlclwiPlxyXG4gICAgICAgICAgICAgIDxoNCBjbGFzc05hbWU9XCJjZW50ZXItdGV4dFwiPlx1NjIxMVx1NjYyRlx1NTkyN1x1NUUwNUI8L2g0PlxyXG4gICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cImluZGVudFwiPmxhcyBpamZmcyBhaXNrZmQgZnNraiBpaXdscyBhc2QuYWFzcyBmZmFzIGF3c3NkIGF3dXMgaWlzYWwgZmFzay5haXNpc2FkIGtzamRma2FmIGl3amFzaWZqYWtkc2hmIHdpamRmYWxrc2pmIHdpa3Nqa2Zqa3NhbGhmLCBnc2FoZmpoZ2Vqa2ZoICB1aGFlamtmaCBzamRpaGdmdXFpdyBqaCBzamlhZmhqc2FqIGZoIGFzZC48L3A+XHJcbiAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwiaW5kZW50XCI+bGFzIGlqZmZzIGFpc2tmZCBmc2tqIGlpd2xzIGFzZC5hYXNzIGZmYXMgYXdzc2QgYXd1cyBpaXNhbCBmYXNrLmFpc2lzYWQga3NqZGZrYWYgaXdqYXNpZmpha2RzaGYgd2lqZGZhbGtzamYgd2lrc2prZmprc2FsaGYsIGdzYWhmamhnZWprZmggIHVoYWVqa2ZoIHNqZGloZ2Z1cWl3IGpoIHNqaWFmaGpzYWogZmggYXNkLjwvcD5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L0VsZW1lbnQ+XHJcblxyXG4gICAgICAgICAgICAgIDxFbGVtZW50IG5hbWU9XCJzZWN0aW9uOVwiIGNsYXNzTmFtZT1cImVsZW1lbnQgcm91bmRlZC1ib3JkZXJcIiBpZD0nc2VjdGlvbjknPlxyXG4gICAgICAgICAgICAgIDxoMj5TZWN0aW9uIDk8L2gyPlxyXG4gICAgICAgICAgICAgIDxwPkNvbnRlbnQgZm9yIHNlY3Rpb24gOS48L3A+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyb3VuZGVkLWJvcmRlclwiPlxyXG4gICAgICAgICAgICAgIDxoNCBjbGFzc05hbWU9XCJjZW50ZXItdGV4dFwiPlx1NjIxMVx1NjYyRlx1NTkyN1x1NUUwNUI8L2g0PlxyXG4gICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cImluZGVudFwiPmxhcyBpamZmcyBhaXNrZmQgZnNraiBpaXdscyBhc2QuYWFzcyBmZmFzIGF3c3NkIGF3dXMgaWlzYWwgZmFzay5haXNpc2FkIGtzamRma2FmIGl3amFzaWZqYWtkc2hmIHdpamRmYWxrc2pmIHdpa3Nqa2Zqa3NhbGhmLCBnc2FoZmpoZ2Vqa2ZoICB1aGFlamtmaCBzamRpaGdmdXFpdyBqaCBzamlhZmhqc2FqIGZoIGFzZC48L3A+XHJcbiAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwiaW5kZW50XCI+bGFzIGlqZmZzIGFpc2tmZCBmc2tqIGlpd2xzIGFzZC5hYXNzIGZmYXMgYXdzc2QgYXd1cyBpaXNhbCBmYXNrLmFpc2lzYWQga3NqZGZrYWYgaXdqYXNpZmpha2RzaGYgd2lqZGZhbGtzamYgd2lrc2prZmprc2FsaGYsIGdzYWhmamhnZWprZmggIHVoYWVqa2ZoIHNqZGloZ2Z1cWl3IGpoIHNqaWFmaGpzYWogZmggYXNkLjwvcD5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L0VsZW1lbnQ+XHJcblxyXG4gICAgICAgICAgICAgIDxFbGVtZW50IG5hbWU9XCJzZWN0aW9uMTBcIiBjbGFzc05hbWU9XCJlbGVtZW50IHJvdW5kZWQtYm9yZGVyXCIgaWQ9J3NlY3Rpb24xMCc+XHJcbiAgICAgICAgICAgICAgPGgyPlNlY3Rpb24gMTA8L2gyPlxyXG4gICAgICAgICAgICAgIDxwPkNvbnRlbnQgZm9yIHNlY3Rpb24gMTAuPC9wPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicm91bmRlZC1ib3JkZXJcIj5cclxuICAgICAgICAgICAgICA8aDQgY2xhc3NOYW1lPVwiY2VudGVyLXRleHRcIj5cdTYyMTFcdTY2MkZcdTU5MjdcdTVFMDVCPC9oND5cclxuICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJpbmRlbnRcIj5sYXMgaWpmZnMgYWlza2ZkIGZza2ogaWl3bHMgYXNkLmFhc3MgZmZhcyBhd3NzZCBhd3VzIGlpc2FsIGZhc2suYWlzaXNhZCBrc2pkZmthZiBpd2phc2lmamFrZHNoZiB3aWpkZmFsa3NqZiB3aWtzamtmamtzYWxoZiwgZ3NhaGZqaGdlamtmaCAgdWhhZWprZmggc2pkaWhnZnVxaXcgamggc2ppYWZoanNhaiBmaCBhc2QuPC9wPlxyXG4gICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cImluZGVudFwiPmxhcyBpamZmcyBhaXNrZmQgZnNraiBpaXdscyBhc2QuYWFzcyBmZmFzIGF3c3NkIGF3dXMgaWlzYWwgZmFzay5haXNpc2FkIGtzamRma2FmIGl3amFzaWZqYWtkc2hmIHdpamRmYWxrc2pmIHdpa3Nqa2Zqa3NhbGhmLCBnc2FoZmpoZ2Vqa2ZoICB1aGFlamtmaCBzamRpaGdmdXFpdyBqaCBzamlhZmhqc2FqIGZoIGFzZC48L3A+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9FbGVtZW50PlxyXG5cclxuICAgICAgICAgICAgICA8RWxlbWVudCBuYW1lPVwic2VjdGlvbjExXCIgY2xhc3NOYW1lPVwiZWxlbWVudCByb3VuZGVkLWJvcmRlclwiIGlkPSdzZWN0aW9uMTEnPlxyXG4gICAgICAgICAgICAgIDxoMj5TZWN0aW9uIDExPC9oMj5cclxuICAgICAgICAgICAgICA8cD5Db250ZW50IGZvciBzZWN0aW9uIDExLjwvcD5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJvdW5kZWQtYm9yZGVyXCI+XHJcbiAgICAgICAgICAgICAgPGg0IGNsYXNzTmFtZT1cImNlbnRlci10ZXh0XCI+XHU2MjExXHU2NjJGXHU1OTI3XHU1RTA1QjwvaDQ+XHJcbiAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwiaW5kZW50XCI+bGFzIGlqZmZzIGFpc2tmZCBmc2tqIGlpd2xzIGFzZC5hYXNzIGZmYXMgYXdzc2QgYXd1cyBpaXNhbCBmYXNrLmFpc2lzYWQga3NqZGZrYWYgaXdqYXNpZmpha2RzaGYgd2lqZGZhbGtzamYgd2lrc2prZmprc2FsaGYsIGdzYWhmamhnZWprZmggIHVoYWVqa2ZoIHNqZGloZ2Z1cWl3IGpoIHNqaWFmaGpzYWogZmggYXNkLjwvcD5cclxuICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJpbmRlbnRcIj5sYXMgaWpmZnMgYWlza2ZkIGZza2ogaWl3bHMgYXNkLmFhc3MgZmZhcyBhd3NzZCBhd3VzIGlpc2FsIGZhc2suYWlzaXNhZCBrc2pkZmthZiBpd2phc2lmamFrZHNoZiB3aWpkZmFsa3NqZiB3aWtzamtmamtzYWxoZiwgZ3NhaGZqaGdlamtmaCAgdWhhZWprZmggc2pkaWhnZnVxaXcgamggc2ppYWZoanNhaiBmaCBhc2QuPC9wPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvRWxlbWVudD5cclxuICAgICAgICAgIFxyXG5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC0xXCI+PC9kaXY+XHJcblxyXG4gICAgICAgICAgXHJcbiAgICAgICAgXHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC8+XHJcbiAgKTtcclxufVxyXG4iLCAiaW1wb3J0IHsgTmF2IH0gZnJvbSAncmVhY3QtYm9vdHN0cmFwJztcclxuaW1wb3J0IHsgTGluayxFbGVtZW50IH0gZnJvbSAncmVhY3Qtc2Nyb2xsJztcclxuaW1wb3J0IFJlYWN0LHt1c2VFZmZlY3QsdXNlU3RhdGV9IGZyb20gJ3JlYWN0JztcclxuXHJcbi8vIHNpZGVuYXZiYXIgYmVnaW5cclxuaW50ZXJmYWNlIFNpZGVOYXZiYXJQcm9wcyB7XHJcbiAgYWN0aXZlTGluazogc3RyaW5nO1xyXG59XHJcbmNvbnN0IFNpZGVOYXZiYXI6IFJlYWN0LkZDPFNpZGVOYXZiYXJQcm9wcz4gPSAoeyBhY3RpdmVMaW5rIH0pID0+IHtcclxuICByZXR1cm4gKFxyXG4gICAgPGRpdiBjbGFzc05hbWU9XCJzaWRlLW5hdmJhclwiPlxyXG4gICAgICA8TmF2IGNsYXNzTmFtZT1cImZsZXgtY29sdW1uXCI+XHJcbiAgICAgICAgPE5hdi5MaW5rIGFzPXtMaW5rfSB0bz1cInNlY3Rpb24xXCIgc21vb3RoPXt0cnVlfSBkdXJhdGlvbj17NTAwfSBjbGFzc05hbWU9e2FjdGl2ZUxpbmsgPT09ICdzZWN0aW9uMScgPyAnYWN0aXZlJyA6ICdub3RBY3RpdmUnfT5TZW5zaW5nIE1vZHVsZSBWYWxpZGF0aW9uPC9OYXYuTGluaz5cclxuICAgICAgICA8TmF2LkxpbmsgYXM9e0xpbmt9IHRvPVwic2VjdGlvbjJcIiBzbW9vdGg9e3RydWV9IGR1cmF0aW9uPXs1MDB9IGNsYXNzTmFtZT17YWN0aXZlTGluayA9PT0gJ3NlY3Rpb24yJyA/ICdhY3RpdmUnIDogJ25vdEFjdGl2ZSd9Pk1ldGFib2xpYyBNb2R1bGUgVmFsaWRhdGlvbjwvTmF2Lkxpbms+XHJcbiAgICAgICAgPE5hdi5MaW5rIGFzPXtMaW5rfSB0bz1cInNlY3Rpb24zXCIgc21vb3RoPXt0cnVlfSBkdXJhdGlvbj17NTAwfSBjbGFzc05hbWU9e2FjdGl2ZUxpbmsgPT09ICdzZWN0aW9uMycgPyAnYWN0aXZlJyA6ICdub3RBY3RpdmUnfT5BbHRvZ2V0aGVyOiBTZW5zaW5nLU1ldGFib2xpYyBTeXN0ZW0gVmFsaWRhdGlvbjwvTmF2Lkxpbms+XHJcbiAgICAgICAgPE5hdi5MaW5rIGFzPXtMaW5rfSB0bz1cInNlY3Rpb240XCIgc21vb3RoPXt0cnVlfSBkdXJhdGlvbj17NTAwfSBjbGFzc05hbWU9e2FjdGl2ZUxpbmsgPT09ICdzZWN0aW9uNCcgPyAnYWN0aXZlJyA6ICdub3RBY3RpdmUnfT5TYWZldHkgTW9kdWxlIFZhbGlkYXRpb248L05hdi5MaW5rPlxyXG4gICAgICAgIDxOYXYuTGluayBhcz17TGlua30gdG89XCJzZWN0aW9uNVwiIHNtb290aD17dHJ1ZX0gZHVyYXRpb249ezUwMH0gY2xhc3NOYW1lPXthY3RpdmVMaW5rID09PSAnc2VjdGlvbjUnID8gJ2FjdGl2ZScgOiAnbm90QWN0aXZlJ30+TW9kZWwgUmVzdWx0czwvTmF2Lkxpbms+XHJcbiAgICAgICAgPE5hdi5MaW5rIGFzPXtMaW5rfSB0bz1cInNlY3Rpb242XCIgc21vb3RoPXt0cnVlfSBkdXJhdGlvbj17NTAwfSBjbGFzc05hbWU9e2FjdGl2ZUxpbmsgPT09ICdzZWN0aW9uNicgPyAnYWN0aXZlJyA6ICdub3RBY3RpdmUnfT5TZWN0aW9uIDY8L05hdi5MaW5rPlxyXG4gICAgICAgIDxOYXYuTGluayBhcz17TGlua30gdG89XCJzZWN0aW9uN1wiIHNtb290aD17dHJ1ZX0gZHVyYXRpb249ezUwMH0gY2xhc3NOYW1lPXthY3RpdmVMaW5rID09PSAnc2VjdGlvbjcnID8gJ2FjdGl2ZScgOiAnbm90QWN0aXZlJ30+U2VjdGlvbiA3PC9OYXYuTGluaz5cclxuICAgICAgICA8TmF2LkxpbmsgYXM9e0xpbmt9IHRvPVwic2VjdGlvbjhcIiBzbW9vdGg9e3RydWV9IGR1cmF0aW9uPXs1MDB9IGNsYXNzTmFtZT17YWN0aXZlTGluayA9PT0gJ3NlY3Rpb244JyA/ICdhY3RpdmUnIDogJ25vdEFjdGl2ZSd9PlNlY3Rpb24gODwvTmF2Lkxpbms+XHJcbiAgICAgICAgPE5hdi5MaW5rIGFzPXtMaW5rfSB0bz1cInNlY3Rpb245XCIgc21vb3RoPXt0cnVlfSBkdXJhdGlvbj17NTAwfSBjbGFzc05hbWU9e2FjdGl2ZUxpbmsgPT09ICdzZWN0aW9uOScgPyAnYWN0aXZlJyA6ICdub3RBY3RpdmUnfT5TZWN0aW9uIDk8L05hdi5MaW5rPlxyXG4gICAgICAgIDxOYXYuTGluayBhcz17TGlua30gdG89XCJzZWN0aW9uMTBcIiBzbW9vdGg9e3RydWV9IGR1cmF0aW9uPXs1MDB9IGNsYXNzTmFtZT17YWN0aXZlTGluayA9PT0gJ3NlY3Rpb24xMCcgPyAnYWN0aXZlJyA6ICdub3RBY3RpdmUnfT5TZWN0aW9uIDEwPC9OYXYuTGluaz5cclxuICAgICAgICA8TmF2LkxpbmsgYXM9e0xpbmt9IHRvPVwic2VjdGlvbjExXCIgc21vb3RoPXt0cnVlfSBkdXJhdGlvbj17NTAwfSBjbGFzc05hbWU9e2FjdGl2ZUxpbmsgPT09ICdzZWN0aW9uMTEnID8gJ2FjdGl2ZScgOiAnbm90QWN0aXZlJ30+U2VjdGlvbiAxMTwvTmF2Lkxpbms+XHJcbiAgICAgICAgey8qIFx1NkRGQlx1NTJBMFx1NjZGNFx1NTkxQVx1NUJGQ1x1ODIyQVx1OTRGRVx1NjNBNSAqL31cclxuICAgICAgPC9OYXY+XHJcbiAgICA8L2Rpdj5cclxuICApO1xyXG59O1xyXG4vLyBzaWRlbmF2YmFyIGVuZCBcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBSZXN1bHRzKCkge1xyXG4gIC8vIHNpZGVuYXZiYXIgYmVnaW5cclxuICBjb25zdCBbYWN0aXZlTGluaywgc2V0QWN0aXZlTGlua10gPSB1c2VTdGF0ZTxzdHJpbmc+KCcnKTtcclxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XHJcbiAgICAgIGNvbnN0IGhhbmRsZVNjcm9sbCA9ICgpID0+IHtcclxuICAgICAgICBjb25zdCBzZWN0aW9ucyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5lbGVtZW50Jyk7XHJcbiAgICAgICAgbGV0IGN1cnJlbnRTZWN0aW9uID0gJyc7XHJcbiAgICAgICAgICBzZWN0aW9ucy5mb3JFYWNoKHNlY3Rpb24gPT4ge1xyXG4gICAgICAgICAgICBjb25zdCBzZWN0aW9uVG9wID0gc2VjdGlvbi5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS50b3A7XHJcbiAgICAgICAgICAgIGlmIChzZWN0aW9uVG9wIDw9IHdpbmRvdy5pbm5lckhlaWdodCAvIDIgJiYgc2VjdGlvblRvcCA+IC1zZWN0aW9uLmNsaWVudEhlaWdodCkge1xyXG4gICAgICAgICAgICAgIGN1cnJlbnRTZWN0aW9uID0gc2VjdGlvbi5pZDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgc2V0QWN0aXZlTGluayhjdXJyZW50U2VjdGlvbik7XHJcbiAgICAgIH07XHJcbiAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdzY3JvbGwnLCBoYW5kbGVTY3JvbGwpO1xyXG4gICAgICByZXR1cm4gKCkgPT4gd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIGhhbmRsZVNjcm9sbCk7XHJcbiAgICB9LCBbXSk7XHJcbiAgICAvLyBzaWRlbmF2YmFyIGVuZFxyXG5cclxuXHJcblxyXG4gIHJldHVybiAoXHJcbiAgICA8PlxyXG4gICAgPGRpdiBjbGFzc05hbWU9XCJjdXN0b20taGVhZGVyLXJlc3VsdHNcIj5cclxuPGgxIGNsYXNzTmFtZT1cImNlbnRlcmVkLXRpdGxlXCI+XHJcbiAgICAgICAgICAgICAgPGltZyBcclxuICAgICAgICAgICAgICAgIHNyYz1cImh0dHBzOi8vc3RhdGljLmlnZW0ud2lraS90ZWFtcy81Mzc4L2hlYWRlci9yZXN1bHRzLnBuZ1wiXHJcbiAgICAgICAgICAgICAgICBhbHQ9XCJzYWZldHkgaGVhZGVyXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImhlYWRlci1pbWdcIlxyXG4gICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIFxyXG4gICAgICAgICAgICAgICAgc3JjPVwiaHR0cHM6Ly9zdGF0aWMuaWdlbS53aWtpL3RlYW1zLzUzNzgvaGVhZGVyL2hlYWRlci1iYXIud2VicFwiXHJcbiAgICAgICAgICAgICAgICBhbHQ9XCJzYWZldHkgaGVhZGVyXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImhlYWRlci1iYXJcIlxyXG4gICAgICAgICAgICAgIC8+XHJcbjwvaDE+XHJcbjwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cInJvdyAgYmctcmljZV95ZWxsb3dcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC0yXCI+XHJcbiAgICAgICAgICA8U2lkZU5hdmJhciBhY3RpdmVMaW5rPXthY3RpdmVMaW5rfSAgICAgICAgICAvPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIFxyXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLTEwXCI+XHJcbiAgICAgICAgICBcclxuICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICA8RWxlbWVudCBuYW1lPVwic2VjdGlvbjFcIiBjbGFzc05hbWU9XCJlbGVtZW50IHJvdW5kZWQtYm9yZGVyXCIgaWQ9J3NlY3Rpb24xJz5cclxuICAgICAgICAgICAgICAgICA8aDI+U2Vuc2luZyBNb2R1bGUgVmFsaWRhdGlvbjwvaDI+XHJcbiAgICAgICAgICAgICAgICAgPHA+VG8gZGVtb25zdHJhdGUgdGhhdCBQRUEsIGEgcmVsaWFibGUgcmlzayBmYWN0b3Igb2YgSEUgaWRlbnRpZmllZCBieSB0aGUgY3VycmVudCB3b3JrIG9mIG91ciBzZWNvbmRhcnkgUEkgKHNlZSBkZXRhaWxzIGluIG91ciBEZXNpZ24gcGFnZSkgLCBjb3VsZCBpbml0aWF0ZSB0aGUgZG93bnN0cmVhbSBnZW5lIGNpcmN1aXQsIHdlIGZpcnN0IGVuZ2luZWVyZWQgRXNjaGVyaWNoaWEgY29saSBOaXNzbGUgMTkxNyhFY04pIHRvIHByb2R1Y2UgRmVhUiBhbmQgVHluQSBjb25zdGFudGx5IGJ5IHRyYW5zZm9ybWluZyBFY04gd2l0aCBwbGFzbWlkIFBjb24tdHluQS1QY29uLWZlYVIuIFRoZXJlYnksIFBFQSBjb3VsZCBiZSBkZWdyYWRlZCBieSB0aGUgZW56eW1lIFR5bkEgaW50byBQQUcgYW5kIFBBRyBjb3VsZCBiaW5kIHdpdGggRmVhUiBhcyBhIHRyYW5zY3JpcHRpb25hbCBmYWN0b3IsIHdoaWNoIGNvdWxkIGFjdGl2YXRlIHRoZSBpbmR1Y2libGUgcHJvbW90ZXIgUFR5bkEuIFRoZW4gd2UgdHJhbnNmb3JtZWQgdGhlIGVuZ2luZWVyZWQgRWNOIHdpdGggcGxhc21pZCBQVHluQS1HRlAgdG8gZGVtb25zdHJhdGUgdGhlIGZlYXNpYmlsaXR5IGFuZCBlZmZpY2llbmN5IG9mIHNlbnNpbmcgbW9kdWxlIHZpYSBmbHVvcmVuc2VuY2UgKEZpZ3VyZSAxYSkuPC9wPlxyXG4gICAgICAgICAgICAgICAgIDxwPkFmdGVyIGNvY3VsdHVyaW5nIHdpdGggMCwgNSwgMjUsIDUwIGFuZCAxMDBuZy9tbCBQRUEgZm9yIDEyIGhvdXJzLCByZXN1bHRzIHNob3dlZCBhIHNpZ25pZmljYW50IGluY3JlYXNlIGluIGZsdW9yZW5zZW5jZSAgdW5kZXIgbWljcm9zY29weSwgYWxvbmcgd2l0aCB0aGUgdGhlIGluY3JlYXNlZCBsZXZlbCBpbiBQRUEgY29uY2VudHJhdGlvbiAoRmlndXJlIDFiKSwgc3VnZ2VzdGluZyBhIHN1Y2Nlc3NmdWwgZXhwcmVzc2lvbiBhbmQgaGlnaCBmZWFzaWJpbGl0eSBvZiB0aGUgc2Vuc2luZyBtb2R1bGUuIE1vcmVvdmVyLCB0aGUgZmx1b3Jlc2NlbnQgaW50ZW5zaXR5IHVuZGVyIGRpZmZlcmVudCBjb25jZW50cmF0aW9ucyBvZiBQRUEgdGhyb3VnaG91dCAyNCBob3VycyBhbHNvIHZlcmlmaWVkIHRoYXQgb3VyIGVuZ2luZWVyZWQgRWNOIGNvdWxkIGluZGVlZCBiZSBtb3JlIHNlbnNpdGl2ZSB0byB0aGUgaW5jcmVhc2UgaW4gUEVBIGNvbmNlbnRyYXRpb24gIChGaWd1cmUgMWMpLjwvcD5cclxuICAgICAgICAgICAgICAgICA8aW1nIFxyXG4gICAgICAgICAgICAgICAgc3JjPVwiaHR0cHM6Ly9zdGF0aWMuaWdlbS53aWtpL3RlYW1zLzUzNzgvc2Nob29sLWJhZGdlL3lhbnlpbnRlY2gud2VicFwiXHJcbiAgICAgICAgICAgICAgICBhbHQ9XCJleGFtcGxlXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInJlc3BvbnNpdmUtaW1nXCJcclxuICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgIDxmaWdjYXB0aW9uIGNsYXNzTmFtZT0nY2FwdGlvbic+RmlndXJlIDEuIFZhbGlkYXRpb24gb2YgdGhlIGZlYXNpYmlsaXR5IG9mIHRoZSBzZW5zaW5nIG1vZHVsZS4gKGEpU2NoZW1hdGljIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBjb25zdHJ1Y3Rpb24gYW5kIG1lY2hhbmlzbSBvZiBlbmdpbmVlcmVkIEVjTiB3aXRoIHNlbnNpbmcgbW9kdWxlLiBFY04gd2FzIGNvLXRyYW5zZm9ybWVkIHdpdGggcGxhc21pZCBQY29uLUZlYVItUGNvbi1UeW5BIGFuZCBwbGFzbWlkIFBUeW5BLUdGUCB2aWEgZWxlY3Ryb3BvcmF0aW9uLiBBZnRlciBjby1jdWx0dXJpbmcgd2l0aCBkaWZmZXJlbnQgY29uY2VudHJhdGlvbiBvZiBQRUEgZm9yIGRpZmZlcmVudCB0aW1lLCBmbHVvcmVzY2VuY2UgaW50ZW5zaXR5IHdhcyBtZWFzdXJlIGJ5IG1pY3JvcGxhdGUgcmVhZGVyIGFuZCBmbHVvcmVzY2VuY2UgbWljcm9zY29weS4gKGIpRmx1b3Jlc2NlbmNlIEludGVuc2l0eSB3aXRoIDEwMG5nL21sLCA1MG5nL21sLCAyNW5nL21sLCA1bmcvbWxhbmQgMG5nL21sIFBFQSBjb2N1bHR1cmVkIGluIGVuZ2luZWVyZWQgRWNOLiBUaGUgZmx1b3Jlc2NlbmNlIHdhcyBtZWFzdXJlZCBvbiBtaWNyb3BsYXRlIHJlYWRlciBieSBleGNpdGF0aW9uIGF0IDQxMCBubSBhbmQgZGV0ZWN0aW9uIG9mIGVtaXNzaW9uIGF0IDUwMCBubS4gT0Q2MDAgKGFic29yYmFuY2Ugb2YgNjAwbm0pIHdhcyBhbHNvIG1lYXN1cmVkIG9uICBtaWNyb3BsYXRlIHJlYWRlciBmb3Igbm9ybWFsaXphdGlvbi4gRGF0YSBzaG93cyBtZWFuXHUwMEIxU0QsIG49MyBpbmRlcGVuZGVudCBleHBlcmltZW50cy4oYylGbHVvcmVzY2VuY2Ugb2JzZXJ2YXRpb24gb2YgdGhlIFBjb24tRmVhUi1QY29uLVR5bkEgYW5kIFBUeW5BLUdGUCBlbmdpbmVlcmVkIGJhY3RlcmlhIGZsdWlkIGNvY3VsdHVyZWQgd2l0aCBkaWZmZXJlbnQgY29uY2VudHJhdGlvbnMgb2YgUEVBLiBGbHVvcmVzY2VuY2Ugd2FzIG9ic2VydmVkIGFmdGVyIDEyLWhvdXIgY28tY3VsdHVyaW5nIHRocm91Z2ggZmx1b3Jlc2NlbmNlIG1pY3Jvc2NvcHkuIDwvZmlnY2FwdGlvbj5cclxuICAgICAgICAgICAgICAgPC9FbGVtZW50PlxyXG4gICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImJkLWNhbGxvdXQgYmQtY2FsbG91dC1pbmZvIGJnLWdyYXlcIj5cclxuICAgICAgICAgICAgICAgICAgPGgxPldoYXQgZG8gd2UgZG8gdG8gLi4uPyBTZWUuLi48L2gxPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgXHJcbiAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgPEVsZW1lbnQgbmFtZT1cInNlY3Rpb24yXCIgY2xhc3NOYW1lPVwiZWxlbWVudCByb3VuZGVkLWJvcmRlclwiIGlkPSdzZWN0aW9uMic+XHJcbiAgICAgICAgICAgICAgICA8aDI+TWV0YWJvbGljIE1vZHVsZSBWYWxpZGF0aW9uPC9oMj5cclxuICAgICAgICAgICAgICAgIDxoMz5BbW1vbmlhIGRlZ3JhZGluZyBhYmlsaXR5IG9mIEdTIGVuenltZTwvaDM+XHJcbiAgICAgICAgICAgICAgICA8cD5Db250ZW50IGZvciBzZWN0aW9uIDIuPC9wPlxyXG4gICAgICAgICAgICAgICAgPGltZyBcclxuICAgICAgICAgICAgICAgIHNyYz1cImh0dHBzOi8vc3RhdGljLmlnZW0ud2lraS90ZWFtcy81Mzc4L3Jlc3VsdC1maWcyLndlYnBcIlxyXG4gICAgICAgICAgICAgICAgYWx0PVwiZXhhbXBsZVwiXHJcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJyZXNwb25zaXZlLWltZ1wiXHJcbiAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgPGZpZ2NhcHRpb24gY2xhc3NOYW1lPSdjYXB0aW9uJz5GaWd1cmUgMi4gVmFsaWRhdGlvbiBvZiB0aGUgZmVhc2liaWxpdHkgb2YgdGhlIG1ldGFib2xpYyBtb2R1bGUuIChhKVNjaGVtYXRpYyByZXByZXNlbnRhdGlvbiBvZiB0aGUgY29uc3RydWN0aW9uIGFuZCBtZWNoYW5pc20gb2YgZW5naW5lZXJlZCBFY04gd2l0aCBtZXRhYm9saWMgbW9kdWxlLiBFY04gd2FzIHRyYW5zZm9ybWVkIHdpdGggcGxhc21pZCBQdGFjLUdTIHZpYSBlbGVjdHJvcG9yYXRpb24uIEFmdGVyIGNvLWN1bHR1cmluZyB3aXRoIGRpZmZlcmVudCBjb25jZW50cmF0aW9uIG9mIE5INENsIGZvciBkaWZmZXJlbnQgdGltZSwgTkgzIGNvbmNlbnRyYXRpb24gd2FzIG1lYXN1cmVkIGFuZCBjYWxjdWxhdGVkIGJ5IE5IMyBkZXRlY3Rpb24ga2l0IGJhc2VkIG9uIGluZGlnb2wgYmx1ZSByZWFjdGlvbiB2aWEgbWljcm9wbGF0ZSByZWFkZXIgKE9EIDYzMG5tKS4gVGhlIHN0cnVjdHVyZSBvZiBHUyB3YXMgcHJlZGljdGVkIGJhc2VkIG9uIEFscGhhRm9sZDMuIChiKU5IMyBjb25jZW50cmF0aW9uIGFmdGVyIGNvY3VsdHVyaW5nIDBcdTAzQkNNLCAwLjVcdTAzQkNNLCA1XHUwM0JDTSBhbmQgNTBcdTAzQkNNIE5INENsIHdpdGggZW5naW5lZXJlZCBFY05zIGZvciAxMiBob3Vycy4gRWNOX3ZlY3RvciB3YXMgdHJhbnNmb3JtZWQgd2l0aCB0aGUgdmVjdG9yIHBsYXNtaWQsIHBFVC0zMmEuIERhdGEgc2hvd3MgbWVhblx1MDBCMVNELCBuPTMgaW5kZXBlbmRlbnQgZXhwZXJpbWVudHMuIChjKU5IMyBjb25jZW50cmF0aW9uIGluIDBoLCA0aCwgOGgsIDEyaCBhbmQgMjRoIGFmdGVyIGNvY3VsdHVyaW5nIDUwXHUwM0JDTSBOSDNDbCB3aXRoIGVuZ2luZWVyZWQgRWNOcy4gRGF0YSBzaG93cyBtZWFuXHUwMEIxU0QsIG49MyBpbmRlcGVuZGVudCBleHBlcmltZW50cy48L2ZpZ2NhcHRpb24+XHJcbiAgICAgICAgICAgICAgICA8aDM+VGFja2xpbmcgSW50cmluc2ljIEFtbW9uaWEgb2YgRW5naW5lZXJlZCBFY048L2gzPlxyXG4gICAgICAgICAgICAgICAgPHA+SW50ZXJlc3RpbmdseSwgdGhlIGxldmVsIG9mIE5IMyBpbmNyZWFzZWQgcmF0aGVyIHRoYW4gZGVjcmVhc2VkIGFzIHdlIGV4cGVjdGVkIHRocm91Z2hvdXQgMjQgaG91cnMgYWZ0ZXIgY29jdWx0dXJpbmcgd2l0aCBhZGRpdGlvbmFsIE5INENsLiBUaGlzIGNhbiBiZSBleHBsYWluZWQgYnkgdGhlIGNvbXBsaWNhdGVkIG1ldGFib2xpYyBjdXJjdWl0cyBvZiBuaXRyb2dlbiwgZXNwZWNpYWxseSB0aGUgdXJlYSBtZXRhYm9saXNtWzFdLiBUaGVyZWZvcmUsIHdlIHRyaWVkIHRvIHNlZWsgcGF0aHMgdG8ga25vY2sgb3V0IHJlbGF0aXZlIGdlbmVzIHRvIGxvd2VyIHRoZSBpbnRyaW5zaWMgYW1tb25pYSBwcm9kdWN0aW9uIChTZWUgZGV0YWlscyBpbiBvdXIgTW9kZWwgUGFnZSkgYnV0IGR1ZSB0byB0aW1lIGxpbWl0LCB3ZSBkaWRuJ3QgY29uZHVjdCB3ZXQgbGFiIGV4cGVyaW1lbnRzLCB3aGljaCBpcyB3ZWxsLXBsYW5uZWQgaW4gb3VyIGZ1dHVyZSBvcHRpbWl6YXRpb24uPC9wPlxyXG4gICAgICAgICAgICAgICAgPGgzPlNhZmV0eSBjb25jZXJucyBvZiBHUyBlbnp5bWUgdG8gZGVncmFkZSBub3JtYWwgbGV2ZWwgb2YgYW1tb25pYTwvaDM+XHJcbiAgICAgICAgICAgICAgICA8cD5BY2NvcmRpbmcgdG8gYSByZXZpZXcgaW4gSm91cm5hbCBvZiBIZXBhdG9sb2d5WzJdICwgdGhlIHBoeXNpb2xvZ2ljYWwgbGV2ZWwgb2YgYmxvb2QgYW1tb25pYSBpcyBhcm91bmQgMzV+NTBcdTAzQkNNLCBhIGxldmVsIG9mIDEyMFx1MDNCQ00gaXMgYXNzb2NpYXRlZCB3aXRoIGhpZ2ggcmlzayBvZiBkZWF0aCBpbiBIRSBwYXRpZW50cy48L3A+XHJcbiAgICAgICAgICAgICAgICA8cD5BcyBzaG93biBpbiBGaWd1cmUgMmIsIHRoZSBkaWZmZXJlbmNlIGJldHdlZW4gRWNOX3ZlY3RvciBhbmQgRWNOX0dTIHdpdGggbG93ZXIgTkg0Q2wgY29uY2VudHJhdGlvbiBzdWNoIGFzIDVcdTAzQkNNIGRlY3JlYXNlZCBhbmQgd2FzIGV2ZW4gbm90IHNpZ25pZmljYW50IHdpdGggMC41XHUwM0JDTS4gVGhpcyBpbmRpY2F0ZXMgdGhhdCB0aGUgR1MgZW56eW1lIHJlcXVpcmVzIGEgcmF0aGVyIGhpZ2ggbGV2ZWwgTkg0Q2wgdG8gcmVhY2ggdGhlIG1vc3QgZWZmaWNpZW50IHN0YXR1cy4gVGhlcmVmb3JlLCB3aGVuIHRoZSBsZXZlbCBvZiBhbW1vbmlhIGlzIGluIGEgbm9ybWFsIHJhbmdlLCB0aGUgbWV0YWJvbGljIG1vZHVsZSBpcyBub3QgbGlrZWx5IHRvIGNhdXNlIGEgc2lnbmlmaWNhbnQgZGVjcmVhc2UgaW4gYW1tb25pYSwgd2hpY2ggbWlnaHQgYmUgdXNlZnVsIGluIG90aGVyIG1ldGFib2xpYyBjeWNsZXMuIDwvcD5cclxuICAgICAgICAgICAgICAgIDxwPlRoZXNlIHJlc3VsdHMgY291bGQgYWxsYXkgc29tZSBzYWZldHkgY29uY2VybnMgb2YgZXhwcmVzc2luZyBHUyBlbnp5bWVzIHRvIHNvbWUgZXh0ZW50LCBidXQgbW9yZSBhbmltYWwgZXhwZXJpbWVudHMgYXJlIGVzc2VudGlhbCBmb3IgZnVydGhlciBldmFsdWF0aW9uLjwvcD5cclxuICAgICAgICAgICAgICAgIDxpbWcgXHJcbiAgICAgICAgICAgICAgICBzcmM9XCJcIlxyXG4gICAgICAgICAgICAgICAgYWx0PVwicmVzdWx0XCJcclxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInJlc3BvbnNpdmUtaW1nXCJcclxuICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICA8ZmlnY2FwdGlvbiBjbGFzc05hbWU9J2NhcHRpb24nPjwvZmlnY2FwdGlvbj5cclxuICAgICAgICAgICAgICA8L0VsZW1lbnQ+XHJcbiAgICAgICAgICBcclxuXHJcbiAgICAgICAgICAgICAgPEVsZW1lbnQgbmFtZT1cInNlY3Rpb24zXCIgY2xhc3NOYW1lPVwiZWxlbWVudCByb3VuZGVkLWJvcmRlclwiIGlkPSdzZWN0aW9uMyc+XHJcbiAgICAgICAgICAgICAgPGgyPkFsdG9nZXRoZXI6IFNlbnNpbmctTWV0YWJvbGljIFN5c3RlbSBWYWxpZGF0aW9uPC9oMj5cclxuICAgICAgICAgICAgICA8cD5UbyBkZW1vbnN0cmF0ZSB0aGUgZnVuY3Rpb24gb2Ygb3VyIHN5c3RlbSBhZnRlciBhc3NlbWJseSwgd2UgY28tdHJhbnNmb3JtZWQgRWNOcyB3aXRoIHBsYXNtaWQgUGNvbi10eW5BLVBjb24tZmVhUiBhbmQgcGxhc21pZCBQVHluQS1HUyBhbmQgY29jdWx0dXJlIHRoZSBlbmdpbmVlcmVkIGJhY3RlcmlhIHdpdGggZGlmZmVyZW50IGNvbmNlbnRyYXRpb25zIG9mIFBFQSBhbmQgTkg0Q2wgKEZpZ3VyZSAzYSkuIFJlc3VsdHMgc2hvd2VkIHRoYXQgd2l0aCB0aGUgY29uY2VudHJhdGlvbiBvZiA1MFx1MDNCQ00gTkg0Q2wsIDEwMG5nL21sIFBFQSBpbmR1Y2VkIHRoZSBtb3N0IHNpZ25pZmljYW50IGRlY3JlYXNlIGluIGFtbW9uaWEgKEZpZ3VyZSAzYiksIHdoaWNoIHdhcyBjb25zaXN0ZW50IHdpdGggdGhlIHRyZW5kIGluIGJvdGggc2Vuc2luZyBhbmQgbWV0YWJvbGljIG1vZHVsZXMuIDwvcD5cclxuICAgICAgICAgICAgICA8cD5XZSBhbHNvIHRyYW5zZm9ybWVkIHBsYXNtaWQgUGNvbi10eW5BLVBjb24tZmVhUiBpbnRvIEVjTiBhcyB0aGUgY29udHJvbCBncm91cCwgYW5kIGNvY3VsdHVyZWQgdGhlbSB3aXRoIDEwMG5nL21sIFBFQSBhbmQgNTBcdTAzQkNNIE5INENsIGZvciA0LDgsMTIgYW5kIDI0IGhvdXJzLiBSZXN1bHRzIGRlbW9uc3RyYXRlZCBhIHNpZ25pZmljYW50IGFtbW9uaWEgZGVjcmVhc2UgaW4gZXhwZXJpbWVudCBncm91cCBjb21wYXJlZCB3aXRoIHRoZSBjb250cm9sIGdyb3VwIChGaWd1cmUgM2MpLCBpbmRpY2F0ZWluZyB0aGF0IGEgcmFodGVyIGhpZ2ggbGV2ZWwgb2YgUEVBIGNvdWxkIGluaWl0YXRlIGRvd25zdHJlYW0gbWV0YWJvbGljIG1vZHVsZSB0byBleHByZXNzIEdTIGFuZCByZXN1bHRlZCBpbiB0aGUgZGVjcmVhc2Ugb2Ygb3Zlci1hY2N1bXVsYXRlZCBhbW1vbmlhLjwvcD5cclxuICAgICAgICAgICAgICA8aW1nIFxyXG4gICAgICAgICAgICAgICAgc3JjPVwiaHR0cHM6Ly9zdGF0aWMuaWdlbS53aWtpL3RlYW1zLzUzNzgvc2Nob29sLWJhZGdlL3lhbnlpbnRlY2gud2VicFwiXHJcbiAgICAgICAgICAgICAgICBhbHQ9XCJleGFtcGxlXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInJlc3BvbnNpdmUtaW1nXCJcclxuICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICA8ZmlnY2FwdGlvbiBjbGFzc05hbWU9J2NhcHRpb24nPkZpZ3VyZSAzLiBGdW5jdGlvbmFsaXR5IHZlcmlmaWNhdGlvbiBvZiB0aGUgUEVBLXNlbnNpbmcgTkgzLW1ldGFib2xpemluZyBzeXN0ZW0uIChhKVNjaGVtYXRpYyByZXByZXNlbnRhdGlvbiBvZiB0aGUgcHJvY2VzcyBvZiBzZW5zaW5nIGFuZCBtZXRhYm9saWMgbW9kdWxlLiBFY04gd2FzIGNvLXRyYW5zZm9ybWVkIHdpdGggcGxhc21pZCBQY29uLUZlYVItUGNvbi1UeW5BIGFuZCBwbGFzbWlkIFBUeW5BLUdTIHZpYSBlbGVjdHJvcG9yYXRpb24uIChiKU5IMyBjb25jZW50cmF0aW9uIGFmdGVyIGNvY3VsdHVyaW5nIGRpZmZlcmVudCBjb25jZW50cmF0aW9uIG9mIFBFQSBhbmQgTkg0Q2wgd2l0aCBlbmdpbmVlcmVkIEVjTiBmb3IgMTIgaG91cnMuIERhdGEgc2hvd3MgbWVhblx1MDBCMVNELCBuPTMgaW5kZXBlbmRlbnQgZXhwZXJpbWVudHMuIChjKU5IMyBjb25jZW50cmF0aW9uIGFmdGVyIGNvY3VsdHVyaW5nIDEwMG5nL21sIFBFQSBhbmQgNTBcdTAzQkNNIE5INENsIGVuZ2luZWVyZWQgRWNOIGZvciAwLCA0LCA4LDEyIGFuZCAyNCBob3Vycy4gRWNOLUZlYVItVHluQSB3YXMgdHJhbnNmb3JtZWQgd2l0aCBvbmx5IHBsYXNtaWQgUGNvbi1GZWFSLVBjb24tVHluQSBhcyB0aGUgY29udHJvbCBncm91cC4gRGF0YSBzaG93cyBtZWFuXHUwMEIxU0QsIG49MyBpbmRlcGVuZGVudCBleHBlcmltZW50cy48L2ZpZ2NhcHRpb24+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyb3VuZGVkLWJvcmRlclwiPlxyXG4gICAgICAgICAgICAgIDxoNCBjbGFzc05hbWU9XCJjZW50ZXItdGV4dFwiPlNlY3Rpb24gMzwvaDQ+XHJcbiAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwiaW5kZW50XCI+bGFzIGlqZmZzIGFpc2tmZCBmc2tqIGlpd2xzIGFzZC5hYXNzIGZmYXMgYXdzc2QgYXd1cyBpaXNhbCBmYXNrLmFpc2lzYWQga3NqZGZrYWYgaXdqYXNpZmpha2RzaGYgd2lqZGZhbGtzamYgd2lrc2prZmprc2FsaGYsIGdzYWhmamhnZWprZmggIHVoYWVqa2ZoIHNqZGloZ2Z1cWl3IGpoIHNqaWFmaGpzYWogZmggYXNkLjwvcD5cclxuICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJpbmRlbnRcIj5sYXMgaWpmZnMgYWlza2ZkIGZza2ogaWl3bHMgYXNkLmFhc3MgZmZhcyBhd3NzZCBhd3VzIGlpc2FsIGZhc2suYWlzaXNhZCBrc2pkZmthZiBpd2phc2lmamFrZHNoZiB3aWpkZmFsa3NqZiB3aWtzamtmamtzYWxoZiwgZ3NhaGZqaGdlamtmaCAgdWhhZWprZmggc2pkaWhnZnVxaXcgamggc2ppYWZoanNhaiBmaCBhc2QuPC9wPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvRWxlbWVudD5cclxuXHJcbiAgICAgICAgICAgICAgPEVsZW1lbnQgbmFtZT1cInNlY3Rpb240XCIgY2xhc3NOYW1lPVwiZWxlbWVudCByb3VuZGVkLWJvcmRlclwiIGlkPSdzZWN0aW9uNCc+XHJcbiAgICAgICAgICAgICAgPGgyPlNhZmV0eSBNb2R1bGUgVmFsaWRhdGlvbjwvaDI+XHJcbiAgICAgICAgICAgICAgPHA+SW4gb3JkZXIgdG8gY29uZmlybSB0aGF0IGN1cmxpIGZpYmVycyBkZWNvcmF0ZWQgd2l0aCBURkZzIGNvdWxkIGJlIHByb2R1Y2VkIGJ5IEVjTiwgYXMgdGhleSBjYW4gaW4gbGFib3JhdG9yeSBzdHJhaW5zIG9mIEUuIGNvbGksIHdlIHRyYW5zZm9ybWVkIEVjTiB3aXRoIHRoZSBwYW5lbCBvZiBzeW50aGV0aWMgY3VybGkgcGxhc21pZCBjb25zdHJ1Y3RzIChGaWcuMy1hKSwgaW4gYWRkaXRpb24gdG8gYSB2ZWN0b3IgaW4gcGxhY2Ugb2YgdGhlIGN1cmxpIGdlbmVzIGFzIGEgbmVnYXRpdmUgY29udHJvbC4gVGhlIHRyYW5zZm9ybWVkIGNlbGxzIHdlcmUgY3VsdHVyZWQgYXQgMzcgXHUwMEIwQyBhbmQgaW5kdWNlZCB3aXRoIEwtKCspLWFyYWJpbm9zZS48L3A+XHJcbiAgICAgICAgICAgICAgPHA+VGhlIHNlY3JldGlvbiBvZiBURkYzIGNhbiBiZSBkZXRlY3RlZCBieSBNb3VzZSB0cmVmb2lsIGZhY3RvciAzKFRGRjMpIGVuenltZS1saW5rZWQgaW1tdW5vc29yYmVudCBBc3NheSBraXQuIFJlc3VsdHMgc2hvdyB0aGF0IHRoZSBlbmdpbmVlcmVkIEVjTiB3YXMgc3Ryb25nbHkgaW5kdWNlZCBieSBMLSgrKS1hcmFiaW5vc2Ugd2l0aCB0d2ljZSBhcyBtdWNoIFRGRjMgaXMgcHJvZHVjZWQgY29tcGFyaW5nIHRvIG5vIGluZHVjdGlvbiAoRmlnMy1iKS48L3A+XHJcbiAgICAgICAgICAgICAgPHA+VGhlIHNlY3JldGlvbiBvZiBURkYzLWZ1c2VkIGN1cmxpIHdhcyBwcm92ZWQgc3VjY2Vzc2Z1bCAoRmlnLjMtYyksIGhvd2V2ZXIsIEluIHNvbWUgY2FzZXMsIGJhc2FsIGV4cHJlc3Npb24gb2YgdGhlIGNzZ0EgZ2VuZXMgd2FzIG9ic2VydmVkIHdpdGhvdXQgaW5kdWN0aW9uLjwvcD5cclxuICAgICAgICAgICAgICA8cD5BIHF1YW50aXRhdGl2ZSBDb25nbyBSZWQtYmluZGluZyAoQ1IpIGFzc2F5LCBub3JtYWxseSB1c2VkIGZvciBjdXJsaSBmaWJlciBkZXRlY3Rpb24sIGluZGljYXRlZCB0aGF0IENzZ0EtVEZGMyBmdXNpb25zIGNvdWxkIGJlIGV4cHJlc3NlZCBhbmQgYXNzZW1ibGVkIGludG8gY3VybGkgZmliZXJzIHVuZGVyIHRoZXNlIGNvbmRpdGlvbnMsIHdoaWxlIEVjTiBjb250cm9sIHZlY3RvciBzaG93ZWQgbm8gQ1IgYmluZGluZyhGaWczLWQpLjwvcD5cclxuICAgICAgICAgICAgICA8aW1nIFxyXG4gICAgICAgICAgICAgICAgc3JjPVwiaHR0cHM6Ly9zdGF0aWMuaWdlbS53aWtpL3RlYW1zLzUzNzgvc2Nob29sLWJhZGdlL3lhbnlpbnRlY2gud2VicFwiXHJcbiAgICAgICAgICAgICAgICBhbHQ9XCJleGFtcGxlXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInJlc3BvbnNpdmUtaW1nXCJcclxuICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICA8ZmlnY2FwdGlvbiBjbGFzc05hbWU9J2NhcHRpb24nPkZpZ3VyZSA0LiBFeHByZXNzaW9uIG9mIHRoZSBzYWZldHkgbW9kdWxlLiAoYSlTY2hlbWF0aWMgZGlhZ3JhbSBvZiBzYWZldHkgbW9kdWxlIHBsYXNtaWQgYW5kIGV4cGVjdGVkIHByb2R1Y3QuIFBCYkI4ayBwbGFzbWlkIHdhcyB0cmFuc2Zvcm1lZCBpbnRvIEVjTnZpYSBlbGVjdHJvcG9yYXRpb24gdG8gYWNoaWV2ZSB0aGUgc2VjcmV0aW9uIGFuZCBzZWxmLWFzc2VtYmx5IG9mIEVjTi1kZXJpdmVkIFRGRi1mdXNlZCBjdXJsaS4gVGhlIHN0cnVjdHVyZSBvZiBDc2dBLVRGRjMgd2FzIHByZWRpY3RlZCBiYXNlZCBvbiBBbHBoYUZvbGQzLiAoYilWYWxpZGF0aW9uIG9mIFRGRjMgZXhwcmVzc2lvbiBieSBFbGlzYS4gVGhlIGZsdW9yZXNjZW5jZSB3YXMgbWVhc3VyZWQgb24gbWljcm9wbGF0ZSByZWFkZXIgYnkgT0Q0NTAgYW5kIE9ENjUwIChhYnNvcmJhbmNlIG9mIDQ1MG5tIGFuZCA2NTBubSkuRGF0YSBzaG93cyBtZWFuXHUwMEIxU0Qsbj0zIGluZGVwZW5kZW50IGV4cGVyaW1lbnRzLiAoYylWYWxpZGF0aW9uIG9mIFRGRjMgZXhwcmVzc2lvbiBieSBTRFMtUEFHRS4gMTogYmFjdGVyaWEgYWZ0ZXIgaW5kdWNpYmxlIGV4cHJlc3Npb24gYnkgYXJhYmlub3NlLiAyOiBzdXBlcm5hdGFudCBhZnRlciBpbmR1Y2libGUgZXhwcmVzc2lvbi4gMzogYmFjdGVyaWEgYmVmb3JlIGluZHVjaWJsZSBleHByZXNzaW9uIGJ5IGFyYWJpbm9zZS4gNDogc3VwZXJuYXRhbnQgYmVmb3JlIGluZHVjaWJsZSBleHByZXNzaW9uLiAoZClTY2hlbWF0aWMgb2YgcXVhbnRpdGF0aXZlIENvbmdvIFJlZCAoQ1IpLWJpbmRpbmcgYXNzYXkuIFdoaXRlIG92YWxzID0gRS4gY29saTsgT3JhbmdlIGFuZCBncmVlbiBsaW5lcyA9IGVuZ2luZWVyZWQgY3VybGkgZmliZXJzOyBSZWQgY2lyY2xlcyA9IENvbmdvIFJlZCAobGVmdCkuIE5vcm1hbGl6ZWQgYW15bG9pZCBwcm9kdWN0aW9uIG9mIGVhY2ggRWNOIHZhcmlhbnQsIGFzIG1lYXN1cmVkIGJ5IENSIGJpbmRpbmcgYXNzYXkgKHJpZ2h0KSwgYWZ0ZXIgaW5kdWN0aW9uIHdpdGggYXJhYmlub3NlIChBcmEpIGF0IDM3IFx1MDBCMEMgaW4gTEIgbWVkaWEuPC9maWdjYXB0aW9uPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicm91bmRlZC1ib3JkZXJcIj5cclxuICAgICAgICAgICAgICA8aDQgY2xhc3NOYW1lPVwiY2VudGVyLXRleHRcIj5cdTYyMTFcdTY2MkZcdTU5MjdcdTVFMDVCPC9oND5cclxuICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJpbmRlbnRcIj5sYXMgaWpmZnMgYWlza2ZkIGZza2ogaWl3bHMgYXNkLmFhc3MgZmZhcyBhd3NzZCBhd3VzIGlpc2FsIGZhc2suYWlzaXNhZCBrc2pkZmthZiBpd2phc2lmamFrZHNoZiB3aWpkZmFsa3NqZiB3aWtzamtmamtzYWxoZiwgZ3NhaGZqaGdlamtmaCAgdWhhZWprZmggc2pkaWhnZnVxaXcgamggc2ppYWZoanNhaiBmaCBhc2QuPC9wPlxyXG4gICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cImluZGVudFwiPmxhcyBpamZmcyBhaXNrZmQgZnNraiBpaXdscyBhc2QuYWFzcyBmZmFzIGF3c3NkIGF3dXMgaWlzYWwgZmFzay5haXNpc2FkIGtzamRma2FmIGl3amFzaWZqYWtkc2hmIHdpamRmYWxrc2pmIHdpa3Nqa2Zqa3NhbGhmLCBnc2FoZmpoZ2Vqa2ZoICB1aGFlamtmaCBzamRpaGdmdXFpdyBqaCBzamlhZmhqc2FqIGZoIGFzZC48L3A+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9FbGVtZW50PlxyXG5cclxuICAgICAgICAgICAgICA8RWxlbWVudCBuYW1lPVwic2VjdGlvbjVcIiBjbGFzc05hbWU9XCJlbGVtZW50IHJvdW5kZWQtYm9yZGVyXCIgaWQ9J3NlY3Rpb241Jz5cclxuICAgICAgICAgICAgICA8aDI+TW9kZWwgUmVzdWx0czwvaDI+XHJcbiAgICAgICAgICAgICAgPHA+Q29udGVudCBmb3Igc2VjdGlvbiA1LjwvcD5cclxuICAgICAgICAgICAgICA8aW1nIFxyXG4gICAgICAgICAgICAgICAgc3JjPVwiaHR0cHM6Ly9zdGF0aWMuaWdlbS53aWtpL3RlYW1zLzUzNzgvc2Nob29sLWJhZGdlL3lhbnlpbnRlY2gud2VicFwiXHJcbiAgICAgICAgICAgICAgICBhbHQ9XCJleGFtcGxlXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInJlc3BvbnNpdmUtaW1nXCJcclxuICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicm91bmRlZC1ib3JkZXJcIj5cclxuICAgICAgICAgICAgICA8aDQgY2xhc3NOYW1lPVwiY2VudGVyLXRleHRcIj5cdTYyMTFcdTY2MkZcdTU5MjdcdTVFMDVCPC9oND5cclxuICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJpbmRlbnRcIj5sYXMgaWpmZnMgYWlza2ZkIGZza2ogaWl3bHMgYXNkLmFhc3MgZmZhcyBhd3NzZCBhd3VzIGlpc2FsIGZhc2suYWlzaXNhZCBrc2pkZmthZiBpd2phc2lmamFrZHNoZiB3aWpkZmFsa3NqZiB3aWtzamtmamtzYWxoZiwgZ3NhaGZqaGdlamtmaCAgdWhhZWprZmggc2pkaWhnZnVxaXcgamggc2ppYWZoanNhaiBmaCBhc2QuPC9wPlxyXG4gICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cImluZGVudFwiPmxhcyBpamZmcyBhaXNrZmQgZnNraiBpaXdscyBhc2QuYWFzcyBmZmFzIGF3c3NkIGF3dXMgaWlzYWwgZmFzay5haXNpc2FkIGtzamRma2FmIGl3amFzaWZqYWtkc2hmIHdpamRmYWxrc2pmIHdpa3Nqa2Zqa3NhbGhmLCBnc2FoZmpoZ2Vqa2ZoICB1aGFlamtmaCBzamRpaGdmdXFpdyBqaCBzamlhZmhqc2FqIGZoIGFzZC48L3A+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9FbGVtZW50PlxyXG5cclxuICAgICAgICAgICAgICA8RWxlbWVudCBuYW1lPVwic2VjdGlvbjZcIiBjbGFzc05hbWU9XCJlbGVtZW50IHJvdW5kZWQtYm9yZGVyXCIgaWQ9J3NlY3Rpb242Jz5cclxuICAgICAgICAgICAgICA8aDI+U2VjdGlvbiA2PC9oMj5cclxuICAgICAgICAgICAgICA8cD5Db250ZW50IGZvciBzZWN0aW9uIDYuPC9wPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicm91bmRlZC1ib3JkZXJcIj5cclxuICAgICAgICAgICAgICA8aDQgY2xhc3NOYW1lPVwiY2VudGVyLXRleHRcIj5cdTYyMTFcdTY2MkZcdTU5MjdcdTVFMDVCPC9oND5cclxuICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJpbmRlbnRcIj5sYXMgaWpmZnMgYWlza2ZkIGZza2ogaWl3bHMgYXNkLmFhc3MgZmZhcyBhd3NzZCBhd3VzIGlpc2FsIGZhc2suYWlzaXNhZCBrc2pkZmthZiBpd2phc2lmamFrZHNoZiB3aWpkZmFsa3NqZiB3aWtzamtmamtzYWxoZiwgZ3NhaGZqaGdlamtmaCAgdWhhZWprZmggc2pkaWhnZnVxaXcgamggc2ppYWZoanNhaiBmaCBhc2QuPC9wPlxyXG4gICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cImluZGVudFwiPmxhcyBpamZmcyBhaXNrZmQgZnNraiBpaXdscyBhc2QuYWFzcyBmZmFzIGF3c3NkIGF3dXMgaWlzYWwgZmFzay5haXNpc2FkIGtzamRma2FmIGl3amFzaWZqYWtkc2hmIHdpamRmYWxrc2pmIHdpa3Nqa2Zqa3NhbGhmLCBnc2FoZmpoZ2Vqa2ZoICB1aGFlamtmaCBzamRpaGdmdXFpdyBqaCBzamlhZmhqc2FqIGZoIGFzZC48L3A+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9FbGVtZW50PlxyXG5cclxuICAgICAgICAgICAgICA8RWxlbWVudCBuYW1lPVwic2VjdGlvbjdcIiBjbGFzc05hbWU9XCJlbGVtZW50IHJvdW5kZWQtYm9yZGVyXCIgaWQ9J3NlY3Rpb243Jz5cclxuICAgICAgICAgICAgICA8aDI+U2VjdGlvbiA3PC9oMj5cclxuICAgICAgICAgICAgICA8cD5Db250ZW50IGZvciBzZWN0aW9uIDcuPC9wPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicm91bmRlZC1ib3JkZXJcIj5cclxuICAgICAgICAgICAgICA8aDQgY2xhc3NOYW1lPVwiY2VudGVyLXRleHRcIj5cdTYyMTFcdTY2MkZcdTU5MjdcdTVFMDVCPC9oND5cclxuICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJpbmRlbnRcIj5sYXMgaWpmZnMgYWlza2ZkIGZza2ogaWl3bHMgYXNkLmFhc3MgZmZhcyBhd3NzZCBhd3VzIGlpc2FsIGZhc2suYWlzaXNhZCBrc2pkZmthZiBpd2phc2lmamFrZHNoZiB3aWpkZmFsa3NqZiB3aWtzamtmamtzYWxoZiwgZ3NhaGZqaGdlamtmaCAgdWhhZWprZmggc2pkaWhnZnVxaXcgamggc2ppYWZoanNhaiBmaCBhc2QuPC9wPlxyXG4gICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cImluZGVudFwiPmxhcyBpamZmcyBhaXNrZmQgZnNraiBpaXdscyBhc2QuYWFzcyBmZmFzIGF3c3NkIGF3dXMgaWlzYWwgZmFzay5haXNpc2FkIGtzamRma2FmIGl3amFzaWZqYWtkc2hmIHdpamRmYWxrc2pmIHdpa3Nqa2Zqa3NhbGhmLCBnc2FoZmpoZ2Vqa2ZoICB1aGFlamtmaCBzamRpaGdmdXFpdyBqaCBzamlhZmhqc2FqIGZoIGFzZC48L3A+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9FbGVtZW50PlxyXG5cclxuICAgICAgICAgICAgICA8RWxlbWVudCBuYW1lPVwic2VjdGlvbjhcIiBjbGFzc05hbWU9XCJlbGVtZW50IHJvdW5kZWQtYm9yZGVyXCIgaWQ9J3NlY3Rpb244Jz5cclxuICAgICAgICAgICAgICA8aDI+U2VjdGlvbiA4PC9oMj5cclxuICAgICAgICAgICAgICA8cD5Db250ZW50IGZvciBzZWN0aW9uIDguPC9wPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicm91bmRlZC1ib3JkZXJcIj5cclxuICAgICAgICAgICAgICA8aDQgY2xhc3NOYW1lPVwiY2VudGVyLXRleHRcIj5cdTYyMTFcdTY2MkZcdTU5MjdcdTVFMDVCPC9oND5cclxuICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJpbmRlbnRcIj5sYXMgaWpmZnMgYWlza2ZkIGZza2ogaWl3bHMgYXNkLmFhc3MgZmZhcyBhd3NzZCBhd3VzIGlpc2FsIGZhc2suYWlzaXNhZCBrc2pkZmthZiBpd2phc2lmamFrZHNoZiB3aWpkZmFsa3NqZiB3aWtzamtmamtzYWxoZiwgZ3NhaGZqaGdlamtmaCAgdWhhZWprZmggc2pkaWhnZnVxaXcgamggc2ppYWZoanNhaiBmaCBhc2QuPC9wPlxyXG4gICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cImluZGVudFwiPmxhcyBpamZmcyBhaXNrZmQgZnNraiBpaXdscyBhc2QuYWFzcyBmZmFzIGF3c3NkIGF3dXMgaWlzYWwgZmFzay5haXNpc2FkIGtzamRma2FmIGl3amFzaWZqYWtkc2hmIHdpamRmYWxrc2pmIHdpa3Nqa2Zqa3NhbGhmLCBnc2FoZmpoZ2Vqa2ZoICB1aGFlamtmaCBzamRpaGdmdXFpdyBqaCBzamlhZmhqc2FqIGZoIGFzZC48L3A+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9FbGVtZW50PlxyXG5cclxuICAgICAgICAgICAgICA8RWxlbWVudCBuYW1lPVwic2VjdGlvbjlcIiBjbGFzc05hbWU9XCJlbGVtZW50IHJvdW5kZWQtYm9yZGVyXCIgaWQ9J3NlY3Rpb245Jz5cclxuICAgICAgICAgICAgICA8aDI+U2VjdGlvbiA5PC9oMj5cclxuICAgICAgICAgICAgICA8cD5Db250ZW50IGZvciBzZWN0aW9uIDkuPC9wPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicm91bmRlZC1ib3JkZXJcIj5cclxuICAgICAgICAgICAgICA8aDQgY2xhc3NOYW1lPVwiY2VudGVyLXRleHRcIj5cdTYyMTFcdTY2MkZcdTU5MjdcdTVFMDVCPC9oND5cclxuICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJpbmRlbnRcIj5sYXMgaWpmZnMgYWlza2ZkIGZza2ogaWl3bHMgYXNkLmFhc3MgZmZhcyBhd3NzZCBhd3VzIGlpc2FsIGZhc2suYWlzaXNhZCBrc2pkZmthZiBpd2phc2lmamFrZHNoZiB3aWpkZmFsa3NqZiB3aWtzamtmamtzYWxoZiwgZ3NhaGZqaGdlamtmaCAgdWhhZWprZmggc2pkaWhnZnVxaXcgamggc2ppYWZoanNhaiBmaCBhc2QuPC9wPlxyXG4gICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cImluZGVudFwiPmxhcyBpamZmcyBhaXNrZmQgZnNraiBpaXdscyBhc2QuYWFzcyBmZmFzIGF3c3NkIGF3dXMgaWlzYWwgZmFzay5haXNpc2FkIGtzamRma2FmIGl3amFzaWZqYWtkc2hmIHdpamRmYWxrc2pmIHdpa3Nqa2Zqa3NhbGhmLCBnc2FoZmpoZ2Vqa2ZoICB1aGFlamtmaCBzamRpaGdmdXFpdyBqaCBzamlhZmhqc2FqIGZoIGFzZC48L3A+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9FbGVtZW50PlxyXG5cclxuICAgICAgICAgICAgICA8RWxlbWVudCBuYW1lPVwic2VjdGlvbjEwXCIgY2xhc3NOYW1lPVwiZWxlbWVudCByb3VuZGVkLWJvcmRlclwiIGlkPSdzZWN0aW9uMTAnPlxyXG4gICAgICAgICAgICAgIDxoMj5TZWN0aW9uIDEwPC9oMj5cclxuICAgICAgICAgICAgICA8cD5Db250ZW50IGZvciBzZWN0aW9uIDEwLjwvcD5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJvdW5kZWQtYm9yZGVyXCI+XHJcbiAgICAgICAgICAgICAgPGg0IGNsYXNzTmFtZT1cImNlbnRlci10ZXh0XCI+XHU2MjExXHU2NjJGXHU1OTI3XHU1RTA1QjwvaDQ+XHJcbiAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwiaW5kZW50XCI+bGFzIGlqZmZzIGFpc2tmZCBmc2tqIGlpd2xzIGFzZC5hYXNzIGZmYXMgYXdzc2QgYXd1cyBpaXNhbCBmYXNrLmFpc2lzYWQga3NqZGZrYWYgaXdqYXNpZmpha2RzaGYgd2lqZGZhbGtzamYgd2lrc2prZmprc2FsaGYsIGdzYWhmamhnZWprZmggIHVoYWVqa2ZoIHNqZGloZ2Z1cWl3IGpoIHNqaWFmaGpzYWogZmggYXNkLjwvcD5cclxuICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJpbmRlbnRcIj5sYXMgaWpmZnMgYWlza2ZkIGZza2ogaWl3bHMgYXNkLmFhc3MgZmZhcyBhd3NzZCBhd3VzIGlpc2FsIGZhc2suYWlzaXNhZCBrc2pkZmthZiBpd2phc2lmamFrZHNoZiB3aWpkZmFsa3NqZiB3aWtzamtmamtzYWxoZiwgZ3NhaGZqaGdlamtmaCAgdWhhZWprZmggc2pkaWhnZnVxaXcgamggc2ppYWZoanNhaiBmaCBhc2QuPC9wPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvRWxlbWVudD5cclxuXHJcbiAgICAgICAgICAgICAgPEVsZW1lbnQgbmFtZT1cInNlY3Rpb24xMVwiIGNsYXNzTmFtZT1cImVsZW1lbnQgcm91bmRlZC1ib3JkZXJcIiBpZD0nc2VjdGlvbjExJz5cclxuICAgICAgICAgICAgICA8aDI+U2VjdGlvbiAxMTwvaDI+XHJcbiAgICAgICAgICAgICAgPHA+Q29udGVudCBmb3Igc2VjdGlvbiAxMS48L3A+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyb3VuZGVkLWJvcmRlclwiPlxyXG4gICAgICAgICAgICAgIDxoNCBjbGFzc05hbWU9XCJjZW50ZXItdGV4dFwiPlx1NjIxMVx1NjYyRlx1NTkyN1x1NUUwNUI8L2g0PlxyXG4gICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cImluZGVudFwiPmxhcyBpamZmcyBhaXNrZmQgZnNraiBpaXdscyBhc2QuYWFzcyBmZmFzIGF3c3NkIGF3dXMgaWlzYWwgZmFzay5haXNpc2FkIGtzamRma2FmIGl3amFzaWZqYWtkc2hmIHdpamRmYWxrc2pmIHdpa3Nqa2Zqa3NhbGhmLCBnc2FoZmpoZ2Vqa2ZoICB1aGFlamtmaCBzamRpaGdmdXFpdyBqaCBzamlhZmhqc2FqIGZoIGFzZC48L3A+XHJcbiAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwiaW5kZW50XCI+bGFzIGlqZmZzIGFpc2tmZCBmc2tqIGlpd2xzIGFzZC5hYXNzIGZmYXMgYXdzc2QgYXd1cyBpaXNhbCBmYXNrLmFpc2lzYWQga3NqZGZrYWYgaXdqYXNpZmpha2RzaGYgd2lqZGZhbGtzamYgd2lrc2prZmprc2FsaGYsIGdzYWhmamhnZWprZmggIHVoYWVqa2ZoIHNqZGloZ2Z1cWl3IGpoIHNqaWFmaGpzYWogZmggYXNkLjwvcD5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L0VsZW1lbnQ+XHJcbiAgICAgICAgICBcclxuXHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtMVwiPjwvZGl2PlxyXG5cclxuICAgICAgICAgIFxyXG4gICAgICAgIFxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvPlxyXG4gICk7XHJcbn1cclxuIiwgImltcG9ydCB7IE5hdiB9IGZyb20gJ3JlYWN0LWJvb3RzdHJhcCc7XHJcbmltcG9ydCB7IExpbmssRWxlbWVudCB9IGZyb20gJ3JlYWN0LXNjcm9sbCc7XHJcbmltcG9ydCBSZWFjdCx7dXNlRWZmZWN0LHVzZVN0YXRlfSBmcm9tICdyZWFjdCc7XHJcblxyXG4vLyBzaWRlbmF2YmFyIGJlZ2luXHJcbmludGVyZmFjZSBTaWRlTmF2YmFyUHJvcHMge1xyXG4gIGFjdGl2ZUxpbms6IHN0cmluZztcclxufVxyXG5jb25zdCBTaWRlTmF2YmFyOiBSZWFjdC5GQzxTaWRlTmF2YmFyUHJvcHM+ID0gKHsgYWN0aXZlTGluayB9KSA9PiB7XHJcbiAgcmV0dXJuIChcclxuICAgIDxkaXYgY2xhc3NOYW1lPVwic2lkZS1uYXZiYXJcIj5cclxuICAgICAgPE5hdiBjbGFzc05hbWU9XCJmbGV4LWNvbHVtblwiPlxyXG4gICAgICAgIDxOYXYuTGluayBhcz17TGlua30gdG89XCJzZWN0aW9uMVwiIHNtb290aD17dHJ1ZX0gZHVyYXRpb249ezUwMH0gY2xhc3NOYW1lPXthY3RpdmVMaW5rID09PSAnc2VjdGlvbjEnID8gJ2FjdGl2ZScgOiAnbm90QWN0aXZlJ30+T3ZlcnZpZXc8L05hdi5MaW5rPlxyXG4gICAgICAgIDxOYXYuTGluayBhcz17TGlua30gdG89XCJzZWN0aW9uMlwiIHNtb290aD17dHJ1ZX0gZHVyYXRpb249ezUwMH0gY2xhc3NOYW1lPXthY3RpdmVMaW5rID09PSAnc2VjdGlvbjInID8gJ2FjdGl2ZScgOiAnbm90QWN0aXZlJ30+U2FmZSBQcm9qZWN0IERlc2lnbjwvTmF2Lkxpbms+XHJcbiAgICAgICAgPE5hdi5MaW5rIGFzPXtMaW5rfSB0bz1cInNlY3Rpb24zXCIgc21vb3RoPXt0cnVlfSBkdXJhdGlvbj17NTAwfSBjbGFzc05hbWU9e2FjdGl2ZUxpbmsgPT09ICdzZWN0aW9uMycgPyAnYWN0aXZlJyA6ICdub3RBY3RpdmUnfT5TYWZlIExhYiBXb3JrPC9OYXYuTGluaz5cclxuICAgICAgICB7LyogXHU2REZCXHU1MkEwXHU2NkY0XHU1OTFBXHU1QkZDXHU4MjJBXHU5NEZFXHU2M0E1ICovfVxyXG4gICAgICA8L05hdj5cclxuICAgIDwvZGl2PlxyXG4gICk7XHJcbn07XHJcbi8vIHNpZGVuYXZiYXIgZW5kIFxyXG5cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBTYWZldHkoKSB7XHJcbiAgLy8gc2lkZW5hdmJhciBiZWdpblxyXG4gIGNvbnN0IFthY3RpdmVMaW5rLCBzZXRBY3RpdmVMaW5rXSA9IHVzZVN0YXRlPHN0cmluZz4oJycpO1xyXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcclxuICAgICAgY29uc3QgaGFuZGxlU2Nyb2xsID0gKCkgPT4ge1xyXG4gICAgICAgIGNvbnN0IHNlY3Rpb25zID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnLmVsZW1lbnQnKTtcclxuICAgICAgICBsZXQgY3VycmVudFNlY3Rpb24gPSAnJztcclxuICAgICAgICAgIHNlY3Rpb25zLmZvckVhY2goc2VjdGlvbiA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IHNlY3Rpb25Ub3AgPSBzZWN0aW9uLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnRvcDtcclxuICAgICAgICAgICAgaWYgKHNlY3Rpb25Ub3AgPD0gd2luZG93LmlubmVySGVpZ2h0IC8gMiAmJiBzZWN0aW9uVG9wID4gLXNlY3Rpb24uY2xpZW50SGVpZ2h0KSB7XHJcbiAgICAgICAgICAgICAgY3VycmVudFNlY3Rpb24gPSBzZWN0aW9uLmlkO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICBzZXRBY3RpdmVMaW5rKGN1cnJlbnRTZWN0aW9uKTtcclxuICAgICAgfTtcclxuICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIGhhbmRsZVNjcm9sbCk7XHJcbiAgICAgIHJldHVybiAoKSA9PiB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgaGFuZGxlU2Nyb2xsKTtcclxuICAgIH0sIFtdKTtcclxuICAgIC8vIHNpZGVuYXZiYXIgZW5kXHJcblxyXG5cclxuXHJcbiAgcmV0dXJuIChcclxuICAgIDw+XHJcbiAgICA8ZGl2IGNsYXNzTmFtZT1cImN1c3RvbS1oZWFkZXItc2FmZXR5XCI+XHJcblxyXG4gICAgICAgICAgICAgIDxpbWcgXHJcbiAgICAgICAgICAgICAgICBzcmM9XCJodHRwczovL3N0YXRpYy5pZ2VtLndpa2kvdGVhbXMvNTM3OC9oZWFkZXIvaGVhZGVyLWJhci53ZWJwXCJcclxuICAgICAgICAgICAgICAgIGFsdD1cInNhZmV0eSBoZWFkZXJcIlxyXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiaGVhZGVyLWJhclwiXHJcbiAgICAgICAgICAgICAgLz5cclxuXHJcbjxoMSBjbGFzc05hbWU9XCJjZW50ZXJlZC10aXRsZVwiPlxyXG4gIFxyXG4gIDxpbWcgXHJcbiAgICBzcmM9XCJodHRwczovL3N0YXRpYy5pZ2VtLndpa2kvdGVhbXMvNTM3OC9oZWFkZXIvc2FmZXR5LnBuZ1wiXHJcbiAgICBhbHQ9XCJzYWZldHkgaGVhZGVyXCJcclxuICAgIGNsYXNzTmFtZT1cImhlYWRlci1pbWdcIlxyXG4gIC8+XHJcbjwvaDE+XHJcblxyXG48L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJyb3cgIGJnLXJpY2VfeWVsbG93XCI+XHJcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtMlwiPlxyXG4gICAgICAgICAgPFNpZGVOYXZiYXIgYWN0aXZlTGluaz17YWN0aXZlTGlua30gICAgICAgICAgLz5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICBcclxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC0xMFwiPlxyXG4gICAgICAgICAgXHJcbiAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgPEVsZW1lbnQgbmFtZT1cInNlY3Rpb24xXCIgY2xhc3NOYW1lPVwiZWxlbWVudCByb3VuZGVkLWJvcmRlclwiIGlkPSdzZWN0aW9uMSc+XHJcbiAgICAgICAgICAgICAgPGgyIGNsYXNzTmFtZT1cImNlbnRlci10ZXh0XCI+T3ZlcnZpZXc8L2gyPlxyXG4gICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cImluZGVudFwiPk1lbWJlcnMgb2YgU01VLUdETVUgYXR0YWNoIGdyZWF0IGltcG9ydGFuY2UgdG8gYWxsIHNhZmV0eSBpc3N1ZXMgaW52b2x2ZWQgaW4gdGhlIHByb2plY3QgcHJvZ3Jlc3MgcHJvY2VzcyBhbmQgaW1wbGVtZW50IGVmZmVjdGl2ZSBhbmQgZmVhc2libGUgc29sdXRpb25zIHRvIHRoZSBzYWZldHkgaXNzdWVzIGZhY2VkLCBpbmNsdWRpbmcgcHJvamVjdCBkZXNpZ24gc2FmZXR5LCBleHBlcmltZW50YWwgc2FmZXR5LCBhbmQgYmlvc2FmZXR5LlxyXG5UaGUgbmV4dCBwYWdlIGRldGFpbHMgdGhlIHNlY3VyaXR5IG1lYXN1cmVzIGFuZCBjb25zaWRlcmF0aW9ucyBvdXIgdGVhbSBoYXMgdGFrZW4gaW50byBhY2NvdW50IGZvciB0aGlzIGlHRU0gcHJvamVjdC48L3A+XHJcbiAgICAgICAgICAgICAgIDwvRWxlbWVudD5cclxuICAgICAgICAgIFxyXG4gICAgICAgICAgICAgIDxFbGVtZW50IG5hbWU9XCJzZWN0aW9uMlwiIGNsYXNzTmFtZT1cImVsZW1lbnQgcm91bmRlZC1ib3JkZXJcIiBpZD0nc2VjdGlvbjInPlxyXG4gICAgICAgICAgICAgIDxoMiBjbGFzc05hbWU9XCJjZW50ZXItdGV4dFwiPlNhZmUgUHJvamVjdCBEZXNpZ248L2gyPlxyXG4gICAgICAgICAgICAgICAgPGgzPjIuMUNoYXNzaXMgU2FmZXR5PC9oMz5cclxuICAgICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cImluZGVudFwiPk91ciBwcm9qZWN0IGRlc2lnbiB0b29rIHNhZmV0eSBpbnRvIGFjY291bnQgYW5kIHVsdGltYXRlbHkgY2hvc2UgRS4gY29saSBOaXNzbGUgMTkxNyBhcyBvdXIgY2hhc3Npcywgd2hpY2ggd2FzIGluY2x1ZGVkIGluIHRoZSB3aGl0ZSBsaXN0IGFuZCBjbGFzc2lmaWVkIGFzIEJpb3NhZmV0eSBMZXZlbCAxIChCU0wtMSkuPC9wPlxyXG4gICAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwiaW5kZW50XCI+RXNjaGVyaWNoaWEgY29saSBOaXNzbGUgMTkxNyBpcyBhbiBvcmFsIHByb2Jpb3RpYyBjb21tb25seSB1c2VkIHRvIHRyZWF0IHZhcmlvdXMgZ2FzdHJvaW50ZXN0aW5hbCBkaXNlYXNlcywgaW5jbHVkaW5nIGRpYXJyaGVhLCB1bGNlcmF0aXZlIGNvbGl0aXMsIGV0Yy48L3A+XHJcbiAgICAgICAgICAgICAgICA8aDM+Mi4yUGFydHMgU2FmZXR5PC9oMz5cclxuICAgICAgICAgICAgICAgIDxoMz4yLjNTYWZldHkgTW9kdWxlPC9oMz5cclxuICAgICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cImluZGVudFwiPkZyb20gYm90aCBlbnZpcm9ubWVudGFsIGFuZCBodW1hbiBoZWFsdGggcHJvdGVjdGlvbiBwZXJzcGVjdGl2ZXMsIHRoZSBkZXNpZ24gb2YgdGhlIHNhZmV0eSBtb2R1bGUgYWltcyB0byBkZXRlY3QgZW52aXJvbm1lbnRhbCB2YXJpYXRpb25zIGluc2lkZSBhbmQgb3V0c2lkZSB0aGUgaHVtYW4gYm9keSwgc3VjaCBhcyB0ZW1wZXJhdHVyZSBhbmQgb3h5Z2VuIGNvbmNlbnRyYXRpb24sIHRvIGluZHVjZSBiYWN0ZXJpYWwgZGVhdGguIFRoaXMgZW5zdXJlcyB0aGF0IHRoZSBiYWN0ZXJpYSBkbyBub3QgY2F1c2UgZW52aXJvbm1lbnRhbCBwb2xsdXRpb24gYWZ0ZXIgYmVpbmcgZXhwZWxsZWQuPC9wPlxyXG4gICAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwiaW5kZW50XCI+Q29udmVyc2VseSwgdGhlcmUgaXMgYSByaXNrIG9mIGV4Y2Vzc2l2ZSBwcm9saWZlcmF0aW9uIG9mIHRoZSBlbmdpbmVlcmVkIEUuIGNvbGkgd2l0aGluIHRoZSBodW1hbiBib2R5LCBuZWNlc3NpdGF0aW5nIHRoZSBkZXZlbG9wbWVudCBvZiBjb250cm9sbGFibGUgc3dpdGNoZXMgdG8gcmVndWxhdGUgYmFjdGVyaWFsIGdyb3d0aCBhbmQgZGVhdGggZWZmZWN0aXZlbHkuIDwvcD5cclxuICAgICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cImluZGVudFwiPkFkZGl0aW9uYWxseSwgd2UgcmVjb2duaXplIHRoYXQgYWJkb21pbmFsIGluZmVjdGlvbnMgYXJlIGEgc2lnbmlmaWNhbnQgY2F1c2Ugb2YgcmVjdXJyZW50IGhlcGF0aWMgZW5jZXBoYWxvcGF0aHkgYW5kIGNhbiBsZWFkIHRvIGRlYXRoLiBJbiByZXNwb25zZSwgd2UgYWltIHRvIGRldmVsb3AgYW4gZW5naW5lZXJlZCBiYWN0ZXJpdW0gY2FwYWJsZSBvZiByZXNpc3RpbmcgaW5mbGFtbWF0aW9uIGFuZCByZXBhaXJpbmcgdGhlIGludGVzdGluYWwgYmFycmllci4gPC9wPlxyXG4gICAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwiaW5kZW50XCI+SW5zaWdodHMgZnJvbSBkaXNjdXNzaW9ucyB3aXRoIHRoZSBQZWtpbmcgVW5pdmVyc2l0eSBNZWRpY2FsIFNjaG9vbCB0ZWFtIGhhdmUgaW5zcGlyZWQgb3VyIGFwcHJvYWNoIHRvIHV0aWxpemluZyBjdXJsaSBmaWJlcnMuQW5kIHdlIHJlZmVycmVkIHRvIGEgc3R1ZHkgcHVibGlzaGVkIGluIE5hdHVyZSBDb21tdW5pY2F0aW9ucyBBbmQgdGhlIFBBVENIIHN5c3RlbSB3YXMgdXNlZCBmb3IgcGxhc21pZCBkZXNpZ24uIDwvcD5cclxuICAgICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cImluZGVudFwiPkluIHRoZSBlbmQsIHRoZSBzYWZldHkgbW9kdWxlIHdlIGRlc2lnbmVkIGNhbiBlZmZlY3RpdmVseSBwcmV2ZW50IGFuZCB0cmVhdCBhYmRvbWluYWwgaW5mZWN0aW9uIGluIHBhdGllbnRzIHdpdGggbGl2ZXIgZGlzZWFzZSwgc29sdmUgaW50ZXN0aW5hbCBmbG9yYSBkaXNvcmRlcnMsIHN1cHBvcnQgaW50ZXN0aW5hbCBiYXJyaWVyIGZ1bmN0aW9uIHJlcGFpciBhbmQgYWxsZXZpYXRlIGNvbXBsaWNhdGlvbnMgb2YgaGVwYXRpYyBlbmNlcGhhbG9wYXRoeS48L3A+XHJcbiAgICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJpbmRlbnRcIj5Gb3IgZGV0YWlscywgeW91IGNhbiBzZWUgb3VyIHNhZmV0eSBtb2R1bGUgZGVzaWduIHNlY3Rpb24uPC9wPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9J2ltYWdlLWNvbnRhaW5lcic+XHJcbiAgICAgICAgICAgICAgICA8aW1nIFxyXG4gICAgICAgICAgICAgICAgc3JjPVwiaHR0cHM6Ly9zdGF0aWMuaWdlbS53aWtpL3RlYW1zLzUzNzgvc2FmZXR5LzIud2VicFwiXHJcbiAgICAgICAgICAgICAgICBhbHQ9XCJleGFtcGxlXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImltYWdlLXdpZGVcIlxyXG4gICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgPGZpZ2NhcHRpb24gY2xhc3NOYW1lPSdjYXB0aW9uJz5TYWZldHkgbW9kdWxlIGRlc2lnbiBpZGVhczwvZmlnY2FwdGlvbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgPC9FbGVtZW50PlxyXG4gICAgICAgICAgXHJcblxyXG4gICAgICAgICAgICAgIDxFbGVtZW50IG5hbWU9XCJzZWN0aW9uM1wiIGNsYXNzTmFtZT1cImVsZW1lbnQgcm91bmRlZC1ib3JkZXJcIiBpZD0nc2VjdGlvbjMnPlxyXG4gICAgICAgICAgICAgIDxoMiBjbGFzc05hbWU9XCJjZW50ZXItdGV4dFwiPlNhZmUgTGFiIFdvcms8L2gyPlxyXG4gICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicm91bmRlZC1ib3JkZXJcIj5cclxuICAgICAgICAgICAgICA8aDM+My4xICBMYWJvcmF0b3J5PC9oMz5cclxuICAgICAgICAgICAgICB7LyogPGg0IGNsYXNzTmFtZT1cImNlbnRlci10ZXh0XCI+My4xTGFib3JhdG9yeTwvaDQ+ICovfVxyXG4gICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cImluZGVudFwiPk91ciBleHBlcmltZW50IHdhcyBjb25kdWN0ZWQgYnkgdGhlIGlHRU0gbGFib3JhdG9yeSBvZiBTb3V0aGVybiBNZWRpY2FsIFVuaXZlcnNpdHkuIEl0IGlzIGEgbGFib3JhdG9yeSB3aXRoIGEgYmlvc2FmZXR5IHByb3RlY3Rpb24gbGV2ZWwgb2YgTGV2ZWwgMiAoQlNMLUlJKSwgd2hpY2ggY29tcGxpZXMgd2l0aCB0aGUgcHJvdmlzaW9ucyBvZiB0aGUgQmlvc2FmZXR5IExhdyBvZiB0aGUgUGVvcGxlJ3MgUmVwdWJsaWMgb2YgQ2hpbmEgYW5kIHRoZSBHZW5lcmFsIEJpb3NhZmV0eSBHdWlkZWxpbmVzIGZvciBQYXRob2dlbmljIE1pY3JvYmlhbCBMYWJvcmF0b3JpZXMuPC9wPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPSdpbWFnZS1jb250YWluZXInPlxyXG4gICAgICAgICAgICAgIDxpbWcgXHJcbiAgICAgICAgICAgICAgICBzcmM9XCJodHRwczovL3N0YXRpYy5pZ2VtLndpa2kvdGVhbXMvNTM3OC9zYWZldHkvMDMtMS53ZWJwXCJcclxuICAgICAgICAgICAgICAgIGFsdD1cImV4YW1wbGVcIlxyXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiaW1hZ2Utd2lkZVwiXHJcbiAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT0ncm93Jz5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT0nY29sLTYnPlxyXG4gICAgICAgICAgICAgIDxpbWcgXHJcbiAgICAgICAgICAgICAgICBzcmM9XCJodHRwczovL3N0YXRpYy5pZ2VtLndpa2kvdGVhbXMvNTM3OC9zYWZldHkvMDMtMTEud2VicFwiXHJcbiAgICAgICAgICAgICAgICBhbHQ9XCJleGFtcGxlXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInJlc3BvbnNpdmUtaW1nXCJcclxuICAgICAgICAgICAgICAvPlxyXG5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT0nY29sLTYnPlxyXG4gICAgICAgICAgICAgIDxpbWcgXHJcbiAgICAgICAgICAgICAgICBzcmM9XCJodHRwczovL3N0YXRpYy5pZ2VtLndpa2kvdGVhbXMvNTM3OC9zYWZldHkvMDMtMTExLndlYnBcIlxyXG4gICAgICAgICAgICAgICAgYWx0PVwiZXhhbXBsZVwiXHJcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJyZXNwb25zaXZlLWltZ1wiXHJcbiAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxmaWdjYXB0aW9uIGNsYXNzTmFtZT0nY2FwdGlvbic+TGFib3JhdG9yeSBTYWZldHk8L2ZpZ2NhcHRpb24+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgPGg0PkV4cGVyaW1lbnRhbCBlcXVpcG1lbnQ8L2g0PlxyXG4gICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cImluZGVudFwiPlRoZSBiaW9zYWZldHkgY2FiaW5ldCBpcyB0aGUgbW9zdCBpbXBvcnRhbnQgc2FmZXR5IGVxdWlwbWVudCBhbmQgdGhlIG1haW4gcHJvdGVjdGl2ZSBiYXJyaWVyLiBUaGUgbGFib3JhdG9yeSBzaG91bGQgYmUgZXF1aXBwZWQgd2l0aCBhIHNlY29uZGFyeSBiaW9zYWZldHkgY2FiaW5ldCBhcyByZXF1aXJlZC4gQWxsIHJlbGF0ZWQgb3BlcmF0aW9ucyBtdXN0IGJlIGNhcnJpZWQgb3V0IGluc2lkZSB0aGUgYmlvc2FmZXR5IGNhYmluZXQuRmlsbCBpbiB0aGUgcmVnaXN0cmF0aW9uIGZvcm0gY29uc2Npb3VzbHkgZXZlcnkgdGltZSB5b3UgdXNlIGl0LjwvcD5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT0naW1hZ2UtY29udGFpbmVyJz5cclxuICAgICAgICAgICAgICA8aW1nIFxyXG4gICAgICAgICAgICAgICAgc3JjPVwiaHR0cHM6Ly9zdGF0aWMuaWdlbS53aWtpL3RlYW1zLzUzNzgvc2FmZXR5LzAzLTEyLndlYnBcIlxyXG4gICAgICAgICAgICAgICAgYWx0PVwiZXhhbXBsZVwiXHJcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJpbWFnZS13aWRlXCJcclxuICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgIDxmaWdjYXB0aW9uIGNsYXNzTmFtZT0nY2FwdGlvbic+Ymlvc2FmZXR5IGNhYmluZXQ8L2ZpZ2NhcHRpb24+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwiaW5kZW50XCI+VGhlIGxhYm9yYXRvcnkgaXMgZXF1aXBwZWQgd2l0aCBhIHZlbnRpbGF0aW9uIHN5c3RlbSB3aXRoIGV4aGF1c3QgcHVyaWZpY2F0aW9uIGRldmljZXMgYW5kIG90aGVyIGVxdWlwbWVudCB0aGF0IGRvZXMgbm90IGFsbG93IG1pY3Jvb3JnYW5pc21zIHRvIGVzY2FwZSB0byBlbnN1cmUgc2FmZXR5LjwvcD5cclxuICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJpbmRlbnRcIj5UaGUgbGFib3JhdG9yeSBpcyBlcXVpcHBlZCB3aXRoIGhpZ2gtcHJlc3N1cmUgc3RlcmlsaXphdGlvbiBlcXVpcG1lbnQuPC9wPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPSdpbWFnZS1jb250YWluZXInPlxyXG4gICAgICAgICAgICAgIDxpbWcgXHJcbiAgICAgICAgICAgICAgICBzcmM9XCJodHRwczovL3N0YXRpYy5pZ2VtLndpa2kvdGVhbXMvNTM3OC9zYWZldHkvMDMtMTIyLndlYnBcIlxyXG4gICAgICAgICAgICAgICAgYWx0PVwiZXhhbXBsZVwiXHJcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJpbWFnZS1oZWlnaHRcIlxyXG4gICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgPGZpZ2NhcHRpb24gY2xhc3NOYW1lPSdjYXB0aW9uJz5oaWdoLXByZXNzdXJlIHN0ZXJpbGl6YXRpb24gZXF1aXBtZW50PC9maWdjYXB0aW9uPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIFxyXG5cclxuICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJpbmRlbnRcIj5WYXJpb3VzIGVxdWlwbWVudCBpbiB0aGUgbGFib3JhdG9yeSB3aWxsIHVuZGVyZ28gcmVndWxhciBtYWludGVuYW5jZSBhbmQgYmUgcHJvbXB0bHkgc2h1dCBkb3duIGFmdGVyIHVzZS48L3A+XHJcbjxoMz4zLjIgIHNhZmV0eSBwcmluY2lwbGVzPC9oMz5cclxuPHAgY2xhc3NOYW1lPVwiaW5kZW50XCI+VGhyb3VnaG91dCB0aGUgZXhwZXJpbWVudCwgb3VyIHRlYW0gbWVtYmVycyB3aG8gY29uZHVjdGVkIHRoZSBleHBlcmltZW50IGFsd2F5cyBmb2xsb3dlZCB0aGUgYmFzaWMgcHJpbmNpcGxlcyBvZiBsYWJvcmF0b3J5IGJpb3Byb3RlY3Rpb24uPC9wPlxyXG48aDQ+My4yLjEgIEdlbmVyYWwgcHJvdmlzaW9uczwvaDQ+XHJcbjxwIGNsYXNzTmFtZT1cImluZGVudFwiPlRoZSBjb250ZW50IG9mIGxhYm9yYXRvcnkgYmlvc2FmZXR5IHByb3RlY3Rpb24gaW5jbHVkZXMgc2FmZXR5IGVxdWlwbWVudCwgcGVyc29uYWwgcHJvdGVjdGl2ZSBkZXZpY2VzIGFuZCBtZWFzdXJlcyAoZmlyc3QtbGV2ZWwgcHJvdGVjdGlvbiksIHNwZWNpYWwgZGVzaWduIGFuZCBjb25zdHJ1Y3Rpb24gcmVxdWlyZW1lbnRzIG9mIHRoZSBsYWJvcmF0b3J5IChzZWNvbmQtbGV2ZWwgcHJvdGVjdGlvbiksIHN0cmljdCBtYW5hZ2VtZW50IHN5c3RlbXMgYW5kIHN0YW5kYXJkaXplZCBvcGVyYXRpbmcgcHJvY2VkdXJlcyBhbmQgcmVndWxhdGlvbnMuPC9wPlxyXG48cCBjbGFzc05hbWU9XCJpbmRlbnRcIj5PdXIgbGFib3JhdG9yeSBoYXMgYSBkZWRpY2F0ZWQgYmlvc2FmZXR5IG9mZmljZXIuPC9wPlxyXG48aDQ+My4yLjIgIFBlcnNvbmFsIHByb3RlY3RpdmU8L2g0PlxyXG48cCBjbGFzc05hbWU9XCJpbmRlbnRcIj5QZXJzb25hbCBwcm90ZWN0aXZlIGVxdWlwbWVudCBjYW5ub3QgcmVkdWNlIHRoZSBjb25jZW50cmF0aW9uIG9mIGhhcm1mdWwgc3Vic3RhbmNlcyBpbiB0aGUgd29ya3BsYWNlLCBub3IgY2FuIGl0IGVsaW1pbmF0ZSB0aGUgaGFybWZ1bCBzdWJzdGFuY2VzIHByZXNlbnQgaW4gdGhlIHdvcmtwbGFjZS4gSG93ZXZlciwgaXQgaXMgdGhlIGxhc3QgYmFycmllciB0byBwcm90ZWN0IHBlb3BsZSBmcm9tIGhhcm0uIEFzIGFuIGF1eGlsaWFyeSBwcmV2ZW50aXZlIG1lYXN1cmUsIGNvcnJlY3QgdXNlIG9mIHBlcnNvbmFsIHByb3RlY3RpdmUgZXF1aXBtZW50IGNhbiBwcmV2ZW50IG9yIHJlZHVjZSB0aGUgb2NjdXJyZW5jZSBvZiBzYWZldHkgYWNjaWRlbnRzLCBldGMuPC9wPlxyXG48cCBjbGFzc05hbWU9XCJpbmRlbnRcIj5UaGVyZWZvcmUsIGluIHRoZSBkYWlseSB3b3JrIG9mIHRoZSBsYWJvcmF0b3J5LCB0aGUgaW1wb3J0YW5jZSBvZiBwZXJzb25hbCBwcm90ZWN0aXZlIGVxdWlwbWVudCBpcyBzZWxmLWV2aWRlbnQuIEFtb25nIHRoZW0sIGhhbmQgcHJvdGVjdGlvbiBpcyBvZiB1dG1vc3QgaW1wb3J0YW5jZSwgYmVjYXVzZSBvdXIgaGFuZHMgYXJlIHRoZSBtb3N0IGZyZXF1ZW50bHkgdXNlZCBwYXJ0cyBpbiBleHBlcmltZW50YWwgb3BlcmF0aW9ucy4gR2xvdmVzIGNhbiBwcm90ZWN0IG91ciBoYW5kcyBmcm9tIGJ1cm5zLCBwdW5jdHVyZXMsIGFuZCB2aWJyYXRpb24gaW5qdXJpZXMsIGFuZCBjYW4gYWxzbyBhdm9pZCBkaXJlY3QgY29udGFjdCB3aXRoIGNoZW1pY2FscyBvbiB0aGUgc2tpbiBvZiBvdXIgaGFuZHMuPC9wPlxyXG48cCBjbGFzc05hbWU9XCJpbmRlbnRcIj5MYWJvcmF0b3J5IG1lbWJlcnMgYWxzbyBuZWVkIHRvIGJlIGVxdWlwcGVkIHdpdGggb3RoZXIgbmVjZXNzYXJ5IHBlcnNvbmFsIHByb3RlY3RpdmUgZXF1aXBtZW50LCBzdWNoIGFzIHdlYXJpbmcgd2hpdGUgY29hdHMgYW5kIG1hc2tzLjwvcD5cclxuPGltZyBcclxuICAgICAgICAgICAgICAgIHNyYz1cImh0dHBzOi8vc3RhdGljLmlnZW0ud2lraS90ZWFtcy81Mzc4L3NhZmV0eS8wMy0yLTIud2VicFwiXHJcbiAgICAgICAgICAgICAgICBhbHQ9XCJleGFtcGxlXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInJlc3BvbnNpdmUtaW1nXCJcclxuICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgIDxmaWdjYXB0aW9uIGNsYXNzTmFtZT0nY2FwdGlvbic+VGhlIHRlYW0gbWVtYmVycyBhcmUgY29uZHVjdGluZyBleHBlcmltZW50czwvZmlnY2FwdGlvbj5cclxuPGg0PjMuMi4zICBMYWJvcmF0b3J5IHNhZmV0eTwvaDQ+XHJcbjxwIGNsYXNzTmFtZT1cImluZGVudFwiPlRoZSBidWlsZGluZyB3aGVyZSB0aGUgbGFib3JhdG9yeSBpcyBsb2NhdGVkIGhhcyBlbWVyZ2VuY3kgcGFzc2FnZXMsIGZpcmUgZXhpdHMsIGZpcmUgZXF1aXBtZW50LCBhbmQgZW1lcmdlbmN5IGxpZ2h0aW5nIGRldmljZXM7IGFuZCBvdXIgY29sbGVhZ3VlcyBpbiB0aGUgRXhwZXJpbWVudGFsIEdyb3VwIGFsc28gcmVtZW1iZXIgaG93IHRvIHF1aWNrbHkgZXNjYXBlIGZyb20gdGhlIHNjZW5lIHdoZW4gYW55IHNhZmV0eSBhY2NpZGVudCBvY2N1cnMgdG8gZW5zdXJlIHRoZWlyIG93biBzYWZldHk7VGhlcmUgaXMgYWxzbyBhIGZpcnN0IGFpZCBtZWRpY2luZSBzdG9yYWdlIGFyZWEgaW4gdGhlIGNvcnJpZG9yIGZvciBlYXN5IHVzZSB3aGVuIG5lY2Vzc2FyeS48L3A+ICAgXHJcbjxpbWcgXHJcbiAgICAgICAgICAgICAgICBzcmM9XCJodHRwczovL3N0YXRpYy5pZ2VtLndpa2kvdGVhbXMvNTM3OC9zYWZldHkvMDMtMi0zLndlYnBcIlxyXG4gICAgICAgICAgICAgICAgYWx0PVwiZXhhbXBsZVwiXHJcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJyZXNwb25zaXZlLWltZ1wiXHJcbiAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICA8ZmlnY2FwdGlvbiBjbGFzc05hbWU9J2NhcHRpb24nPkZpcmUgc2FmZXR5IG1hbmFnZW1lbnQ8L2ZpZ2NhcHRpb24+XHJcbjxoND4zLjIuNExhYm9yYXRvcnkgd2FzdGUgdHJlYXRtZW50PC9oND5cclxuPHAgY2xhc3NOYW1lPVwiaW5kZW50XCI+QWNjb3JkaW5nIHRvIHRoZSBcIlJlZ3VsYXRpb25zIG9uIHRoZSBNYW5hZ2VtZW50IG9mIE1lZGljYWwgV2FzdGVcIiBvZiB0aGUgU3RhdGUgQ291bmNpbCBhbmQgdGhlIFwiTWVhc3VyZXMgZm9yIHRoZSBNYW5hZ2VtZW50IG9mIE1lZGljYWwgV2FzdGUgaW4gTWVkaWNhbCBhbmQgSGVhbHRoIEluc3RpdHV0aW9uc1wiIG9mIHRoZSBmb3JtZXIgTWluaXN0cnkgb2YgSGVhbHRoLCB3ZSBtYW5hZ2UgbGFib3JhdG9yeSB3YXN0ZSBmcm9tIHRoZSBmb2xsb3dpbmcgYXNwZWN0czogXHUyNDYwIERlc2lnbmF0ZSBhIGRlZGljYXRlZCBwZXJzb24gaW4gdGhlIGxhYm9yYXRvcnkgdG8gYmUgcmVzcG9uc2libGUgZm9yIGFuZCBjb29yZGluYXRlIHRoZSBtYW5hZ2VtZW50IG9mIHZhcmlvdXMgdHlwZXMgb2Ygd2FzdGU7IFx1MjQ2MSBFc3RhYmxpc2ggd2FzdGUgY2xhc3NpZmljYXRpb24sIGlzb2xhdGlvbiwgcGFja2FnaW5nLCB0cmFuc3BvcnRhdGlvbiwgc3RvcmFnZSwgYW5kIGRpc3Bvc2FsIHByb2NlZHVyZXMgaW4gdGhlIGxhYm9yYXRvcnk7IFx1MjQ2MiBNZW1iZXJzIG9mIHRoZSBFeHBlcmltZW50YWwgR3JvdXAgc2hvdWxkIGNvcnJlY3RseSBkaXNwb3NlIG9mIHdhc3RlIHRvIHRoZWlyIHJlc3BlY3RpdmUgZ2FyYmFnZSBiaW5zLCBhbmQgYWxsIHNvbHV0aW9ucyBhbmQgcGxhdGVzIHNob3VsZCBiZSBtYXJrZWQ7IFx1MjQ2MyBTdHJpY3RseSBmb2xsb3cgdGhlIHdhc3RlIGRpc3Bvc2FsIHN5c3RlbSBhbmQgcHJvY2VkdXJlcywgYW5kIGhhdmUgcHJvY2Vzc2luZyByZWNvcmRzLjwvcD5cclxuPHAgY2xhc3NOYW1lPVwiaW5kZW50XCI+V2UgYWxzbyBoYXZlIGEgc3BlY2lhbCB3YXN0ZSB0cmVhdG1lbnQgcHJvY2VzcyBmb3IgYmFjdGVyaWEgYW5kIG90aGVyIG1pY3Jvb3JnYW5pc21zLCBhcyBzaG93biBpbiB0aGUgZmlndXJlOjwvcD4gICAgICAgICAgICAgXHJcbjxpbWcgXHJcbiAgICAgICAgICAgICAgICBzcmM9XCJodHRwczovL3N0YXRpYy5pZ2VtLndpa2kvdGVhbXMvNTM3OC9zYWZldHkvMDMtMi00LndlYnBcIlxyXG4gICAgICAgICAgICAgICAgYWx0PVwiZXhhbXBsZVwiXHJcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJyZXNwb25zaXZlLWltZ1wiXHJcbiAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICA8ZmlnY2FwdGlvbiBjbGFzc05hbWU9J2NhcHRpb24nPndhc3RlIHRyZWF0bWVudCBwcm9jZXNzPC9maWdjYXB0aW9uPlxyXG48aDQ+My4yLjVNYW5hZ2VtZW50IGFuZCBzZWN1cml0eSBzeXN0ZW08L2g0PlxyXG48aDU+TGFib3JhdG9yeSBsYXlvdXQgYW5kIGFjY2VzczwvaDU+ICAgICAgICAgICAgICBcclxuPHAgY2xhc3NOYW1lPVwiaW5kZW50XCI+Q2xlYW4gYXJlYXMsIHNlbWktY29udGFtaW5hdGVkIGFyZWFzLCBhbmQgY29udGFtaW5hdGVkIGFyZWFzIHNob3VsZCBiZSByZWFzb25hYmx5IHNldCB1cCBpbiB0aGUgbWFpbiBsYWJvcmF0b3J5LjwvcD4gICAgXHJcbjxwIGNsYXNzTmFtZT1cImluZGVudFwiPk5vbi1leHBlcmltZW50YWwgcGVyc29ubmVsIGFuZCBpdGVtcyBhcmUgbm90IGFsbG93ZWQgdG8gZW50ZXIgdGhlIGxhYm9yYXRvcnkuPC9wPlxyXG48cCBjbGFzc05hbWU9XCJpbmRlbnRcIj5EbyBub3QgZWF0IG9yIGRyaW5rIGluIHRoZSBsYWJvcmF0b3J5LCBvciBlbmdhZ2UgaW4gb3RoZXIgYWN0aXZpdGllcyB1bnJlbGF0ZWQgdG8gdGhlIGV4cGVyaW1lbnQ8L3A+ICAgICAgICAgIFxyXG48aDU+VHJhaW5pbmcgb2YgZXhwZXJpbWVudGFsIG1lbWJlcnM8L2g1PiBcclxuPHAgY2xhc3NOYW1lPVwiaW5kZW50XCI+TWVtYmVycyBvZiBvdXIgRXhwZXJpbWVudGFsIEdyb3VwIGhhdmUgcmVjZWl2ZWQgcHJvZmVzc2lvbmFsIGV4cGVyaW1lbnRhbCBndWlkYW5jZSB1bmRlciB0aGUgZ3VpZGFuY2Ugb2Ygb3VyIGFkdmlzb3IuPC9wPiAgICAgICAgICAgICBcclxuPHAgY2xhc3NOYW1lPVwiaW5kZW50XCI+TWVtYmVycyBvZiB0aGUgRXhwZXJpbWVudGFsIEdyb3VwIGFsd2F5cyBjb21wbHkgd2l0aCBhbGwgcmVndWxhdGlvbnMsIHJ1bGVzLCBhbmQgb3BlcmF0aW5nIHByb2NlZHVyZXMgb2YgdGhlIGxhYm9yYXRvcnkuPC9wPiBcclxuPHAgY2xhc3NOYW1lPVwiaW5kZW50XCI+QWxsIG1lbWJlcnMgb2YgdGhlIEV4cGVyaW1lbnRhbCBHcm91cCBoYXZlIHBhc3NlZCB0aGUgYXNzZXNzbWVudCBvZiBleHBlcmltZW50YWwgc2tpbGxzIGFuZCBzYWZldHkuPC9wPiAgICAgICAgICAgICAgXHJcbjxoMz4zLjIuNlByaW5jaXBsZXMgZm9yIGhhbmRsaW5nIHNwZWNpYWwgc2l0dWF0aW9ucyBpbiB0aGUgbGFib3JhdG9yeTwvaDM+IFxyXG48cCBjbGFzc05hbWU9XCJpbmRlbnRcIj5JbiBvcmRlciB0byBhdm9pZCBhbmQgaGFuZGxlIGFjY2lkZW50cyBjYXVzZWQgYnkgdW5zYWZlIG9wZXJhdGlvbnMsIHRoZSBmb2xsb3dpbmcgcHJpbmNpcGxlcyBtdXN0IGJlIHN0cmljdGx5IGltcGxlbWVudGVkOjwvcD4gICAgICAgICAgICAgXHJcbjxwIGNsYXNzTmFtZT1cImluZGVudFwiPmEpRGVzaWduIHNhZmUgd29yayBwcm9jZWR1cmVzIGZvciBwb3NzaWJsZSByaXNrIGZhY3RvcnMuPC9wPiAgICAgICAgICAgICAgXHJcbjxwIGNsYXNzTmFtZT1cImluZGVudFwiPmIpQ29uZHVjdCBlZmZlY3RpdmUgdHJhaW5pbmcgYW5kIHNpbXVsYXRpb24gdHJhaW5pbmcgYmVmb3JlaGFuZC48L3A+ICAgICAgICAgICAgICBcclxuPHAgY2xhc3NOYW1lPVwiaW5kZW50XCI+YylGb3IgYWNjaWRlbnRzLCBtZWFzdXJlcyBpbmNsdWRpbmcgZW1lcmdlbmN5IGFzc2lzdGFuY2Ugb3IgcHJvZmVzc2lvbmFsIGhlYWx0aCB0cmVhdG1lbnQgc2hvdWxkIGJlIHByb3ZpZGVkIHRvIGNvcGUgd2l0aCBlbWVyZ2VuY2llcy48L3A+ICAgICAgICAgICAgIFxyXG48cCBjbGFzc05hbWU9XCJpbmRlbnRcIj5kKUxhYm9yYXRvcnkgQWNjaWRlbnQgSGFuZGxpbmc6IEFjY2lkZW50cyB0aGF0IG9jY3VyIGR1cmluZyB0aGUgb3BlcmF0aW9uIG9mIGV4cGVyaW1lbnRhbCBtZW1iZXJzLCBzdWNoIGFzIG5lZWRsZSBwdW5jdHVyZXMgYW5kIGN1dHMsIHNraW4gY29udGFtaW5hdGlvbiwgaW5mZWN0aW91cyBzcGVjaW1lbnMgYW5kIGJvZHkgc3VyZmFjZXMgYW5kIGluc2lkZSB0aGUgbW91dGgsIG5vc2UsIGFuZCBleWVzLCBjbG90aGluZyBjb250YW1pbmF0aW9uLCBjb250YW1pbmF0aW9uIG9mIHRoZSB0ZXN0IGJlbmNoLCBldGMuLCBhcmUgYWxsIGNvbnNpZGVyZWQgc2FmZXR5IGFjY2lkZW50cy4gRW1lcmdlbmN5IHRyZWF0bWVudCBzaG91bGQgYmUgY2FycmllZCBvdXQgaW1tZWRpYXRlbHkgZGVwZW5kaW5nIG9uIHRoZSB0eXBlIG9mIGFjY2lkZW50IGFuZCBvdGhlciBzaXR1YXRpb25zLiBBdCB0aGUgc2FtZSB0aW1lIG9mIGVtZXJnZW5jeSB0cmVhdG1lbnQsIGl0IGlzIG5lY2Vzc2FyeSB0byByZXBvcnQgdG8gdGhlIGluc3RydWN0b3IgYW5kIHJlY29yZCB0aGUgc3BlY2lmaWMgbG9jYXRpb24gYW5kIGRlZ3JlZSBvZiB0aGUgYWNjaWRlbnQgYW5kIGluanVyeSBpbiBkZXRhaWwuIE1lZGljYWwgcGVyc29ubmVsIHdpbGwgZXZhbHVhdGUgd2hldGhlciBwcmV2ZW50aXZlIHRyZWF0bWVudCBpcyBuZWVkZWQuPC9wPiAgICAgICAgICAgICBcclxuPGltZyBcclxuICAgICAgICAgICAgICAgIHNyYz1cImh0dHBzOi8vc3RhdGljLmlnZW0ud2lraS90ZWFtcy81Mzc4L3NhZmV0eS8yLTY2NjY2Ni53ZWJwXCJcclxuICAgICAgICAgICAgICAgIGFsdD1cImV4YW1wbGVcIlxyXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwicmVzcG9uc2l2ZS1pbWdcIlxyXG4gICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgPGZpZ2NhcHRpb24gY2xhc3NOYW1lPSdjYXB0aW9uJz5NZWRpY2FsIGZpcnN0IGFpZCBpdGVtczwvZmlnY2FwdGlvbj4gICAgICAgICAgICBcclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L0VsZW1lbnQ+XHJcblxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgIFxyXG4gICAgICAgIFxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvPlxyXG4gICk7XHJcbn1cclxuIiwgImltcG9ydCB7IE5hdiB9IGZyb20gJ3JlYWN0LWJvb3RzdHJhcCc7XHJcbmltcG9ydCB7IExpbmssIEVsZW1lbnQgfSBmcm9tICdyZWFjdC1zY3JvbGwnO1xyXG5pbXBvcnQgUmVhY3QsIHsgdXNlRWZmZWN0LCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0JztcclxuXHJcbi8vIHNpZGVuYXZiYXIgYmVnaW5cclxuaW50ZXJmYWNlIFNpZGVOYXZiYXJQcm9wcyB7XHJcbiAgYWN0aXZlTGluazogc3RyaW5nO1xyXG59XHJcbmNvbnN0IFNpZGVOYXZiYXI6IFJlYWN0LkZDPFNpZGVOYXZiYXJQcm9wcz4gPSAoeyBhY3RpdmVMaW5rIH0pID0+IHtcclxuICByZXR1cm4gKFxyXG4gICAgPGRpdiBjbGFzc05hbWU9XCJzaWRlLW5hdmJhclwiPlxyXG4gICAgICA8TmF2IGNsYXNzTmFtZT1cImZsZXgtY29sdW1uXCI+XHJcbiAgICAgICAgPE5hdi5MaW5rIGFzPXtMaW5rfSB0bz1cInNlY3Rpb24xXCIgc21vb3RoPXt0cnVlfSBkdXJhdGlvbj17NTAwfSBjbGFzc05hbWU9e2FjdGl2ZUxpbmsgPT09ICdzZWN0aW9uMScgPyAnYWN0aXZlJyA6ICdub3RBY3RpdmUnfT4xLk92ZXJ2aWV3PC9OYXYuTGluaz5cclxuICAgICAgICA8TmF2LkxpbmsgYXM9e0xpbmt9IHRvPVwic2VjdGlvbjJcIiBzbW9vdGg9e3RydWV9IGR1cmF0aW9uPXs1MDB9IGNsYXNzTmFtZT17YWN0aXZlTGluayA9PT0gJ3NlY3Rpb24yJyA/ICdhY3RpdmUnIDogJ25vdEFjdGl2ZSd9PjIuRXRoaWNhbCBDb25zaWRlcmF0aW9uczwvTmF2Lkxpbms+XHJcbiAgICAgICAgPE5hdi5MaW5rIGFzPXtMaW5rfSB0bz1cInNlY3Rpb24zXCIgc21vb3RoPXt0cnVlfSBkdXJhdGlvbj17NTAwfSBjbGFzc05hbWU9e2FjdGl2ZUxpbmsgPT09ICdzZWN0aW9uMycgPyAnYWN0aXZlJyA6ICdub3RBY3RpdmUnfT4zLkNvbGxhYm9yYXRpb248L05hdi5MaW5rPlxyXG4gICAgICAgIDxOYXYuTGluayBhcz17TGlua30gdG89XCJzZWN0aW9uNFwiIHNtb290aD17dHJ1ZX0gZHVyYXRpb249ezUwMH0gY2xhc3NOYW1lPXthY3RpdmVMaW5rID09PSAnc2VjdGlvbjQnID8gJ2FjdGl2ZScgOiAnbm90QWN0aXZlJ30+NC5RdWVzdGlvbm5haXJlPC9OYXYuTGluaz5cclxuICAgICAgICA8TmF2LkxpbmsgYXM9e0xpbmt9IHRvPVwic2VjdGlvbjVcIiBzbW9vdGg9e3RydWV9IGR1cmF0aW9uPXs1MDB9IGNsYXNzTmFtZT17YWN0aXZlTGluayA9PT0gJ3NlY3Rpb241JyA/ICdhY3RpdmUnIDogJ25vdEFjdGl2ZSd9PjUuU1RBS0VIT0xERVI8L05hdi5MaW5rPlxyXG4gICAgICAgIDxOYXYuTGluayBhcz17TGlua30gdG89XCJzZWN0aW9uNlwiIHNtb290aD17dHJ1ZX0gZHVyYXRpb249ezUwMH0gY2xhc3NOYW1lPXthY3RpdmVMaW5rID09PSAnc2VjdGlvbjYnID8gJ2FjdGl2ZScgOiAnbm90QWN0aXZlJ30+Ni5FeHBlcnQ8L05hdi5MaW5rPlxyXG5cclxuICAgICAgICB7LyogXHU2REZCXHU1MkEwXHU2NkY0XHU1OTFBXHU1QkZDXHU4MjJBXHU5NEZFXHU2M0E1ICovfVxyXG4gICAgICA8L05hdj5cclxuICAgIDwvZGl2PlxyXG4gICk7XHJcbn07XHJcbi8vIHNpZGVuYXZiYXIgZW5kIFxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIEh1bWFuUHJhY3RpY2VzKCkge1xyXG4gIC8vIHNpZGVuYXZiYXIgYmVnaW5cclxuICBjb25zdCBbYWN0aXZlTGluaywgc2V0QWN0aXZlTGlua10gPSB1c2VTdGF0ZTxzdHJpbmc+KCcnKTtcclxuICB1c2VFZmZlY3QoKCkgPT4ge1xyXG4gICAgY29uc3QgaGFuZGxlU2Nyb2xsID0gKCkgPT4ge1xyXG4gICAgICBjb25zdCBzZWN0aW9ucyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5lbGVtZW50Jyk7XHJcbiAgICAgIGxldCBjdXJyZW50U2VjdGlvbiA9ICcnO1xyXG4gICAgICBzZWN0aW9ucy5mb3JFYWNoKHNlY3Rpb24gPT4ge1xyXG4gICAgICAgIGNvbnN0IHNlY3Rpb25Ub3AgPSBzZWN0aW9uLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnRvcDtcclxuICAgICAgICBpZiAoc2VjdGlvblRvcCA8PSB3aW5kb3cuaW5uZXJIZWlnaHQgLyAyICYmIHNlY3Rpb25Ub3AgPiAtc2VjdGlvbi5jbGllbnRIZWlnaHQpIHtcclxuICAgICAgICAgIGN1cnJlbnRTZWN0aW9uID0gc2VjdGlvbi5pZDtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgICBzZXRBY3RpdmVMaW5rKGN1cnJlbnRTZWN0aW9uKTtcclxuICAgIH07XHJcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgaGFuZGxlU2Nyb2xsKTtcclxuICAgIHJldHVybiAoKSA9PiB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgaGFuZGxlU2Nyb2xsKTtcclxuICB9LCBbXSk7XHJcbiAgLy8gc2lkZW5hdmJhciBlbmRcclxuXHJcblxyXG5cclxuICByZXR1cm4gKFxyXG4gICAgPD5cclxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJjdXN0b20taGVhZGVyLWh1bWFuLXByYWN0aWNlc1wiPlxyXG4gICAgICAgIDxoMSBjbGFzc05hbWU9XCJjZW50ZXJlZC10aXRsZVwiPlxyXG4gICAgICAgICAgPGltZ1xyXG4gICAgICAgICAgICBzcmM9XCJodHRwczovL3N0YXRpYy5pZ2VtLndpa2kvdGVhbXMvNTM3OC9oZWFkZXIvaHVtYW4tcHJhY3RpY2VzLnBuZ1wiXHJcbiAgICAgICAgICAgIGFsdD1cInNhZmV0eSBoZWFkZXJcIlxyXG4gICAgICAgICAgICBjbGFzc05hbWU9XCJoZWFkZXItaW1nXCJcclxuICAgICAgICAgIC8+XHJcbiAgICAgICAgICA8aW1nXHJcbiAgICAgICAgICAgIHNyYz1cImh0dHBzOi8vc3RhdGljLmlnZW0ud2lraS90ZWFtcy81Mzc4L2hlYWRlci9oZWFkZXItYmFyLndlYnBcIlxyXG4gICAgICAgICAgICBhbHQ9XCJzYWZldHkgaGVhZGVyXCJcclxuICAgICAgICAgICAgY2xhc3NOYW1lPVwiaGVhZGVyLWJhclwiXHJcbiAgICAgICAgICAvPlxyXG4gICAgICAgIDwvaDE+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cInJvdyAgYmctcmljZV95ZWxsb3dcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC0yXCI+XHJcbiAgICAgICAgICA8U2lkZU5hdmJhciBhY3RpdmVMaW5rPXthY3RpdmVMaW5rfSAvPlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC0xMFwiPlxyXG5cclxuXHJcbiAgICAgICAgPEVsZW1lbnQgbmFtZT1cInNlY3Rpb24xXCIgY2xhc3NOYW1lPVwiZWxlbWVudCByb3VuZGVkLWJvcmRlclwiIGlkPSdzZWN0aW9uMSc+XHJcbiAgICAgICAgPGgyPjEuIE92ZXJ2aWV3PC9oMj5cclxuICAgICAgICAgICAgPHA+SGF2ZSBhIHBpY3R1cmUgb2Ygd2hhdCB3ZSBkaWQuPC9wPlxyXG4gIDxkaXYgY2xhc3NOYW1lPVwicm91bmRlZC1ib3JkZXJcIj5cclxuICAgIDxoMyBjbGFzc05hbWU9XCJjZW50ZXItdGV4dFwiPjEuMSBBIFBpbGxhciBvZiBPdXIgaUdFTSBQcm9qZWN0PC9oMz5cclxuICAgIDxwIGNsYXNzTmFtZT0naW5kZW50Jz5cclxuICAgICAgT25lIG9mIHRoZSBwaWxsYXJzIHN1cHBvcnRpbmcgYSBzdWNjZXNzZnVsIGFuZCByZXNwb25zaWJsZSBpR0VNIHByb2plY3QgaXMgPHNwYW4gY2xhc3NOYW1lPSdib2xkLWZvbnQnPmh1bWFuIHByYWN0aWNlczwvc3Bhbj4uIFdlIHBsYWNlIGdyZWF0IGVtcGhhc2lzIG9uIGh1bWFuIHByYWN0aWNlcyB0byBlbnN1cmUgb3VyIHByb2R1Y3RcdTIwMTlzIDxzcGFuIGNsYXNzTmFtZT0nYm9sZC1mb250Jz5yZWFsLXdvcmxkIGFwcGxpY2FiaWxpdHk8L3NwYW4+IGFuZCB0byBhc3Nlc3MgaXRzIGltcGFjdCBvbiA8c3BhbiBjbGFzc05hbWU9J2JvbGQtZm9udCc+Q2hpbmVzZSBzb2NpZXR5PC9zcGFuPiwgdGhlIDxzcGFuIGNsYXNzTmFtZT0nYm9sZC1mb250Jz5nbG9iYWwgY29tbXVuaXR5PC9zcGFuPiwgYW5kIHRoZSA8c3BhbiBjbGFzc05hbWU9J2JvbGQtZm9udCc+c2NpZW50aWZpYyBmaWVsZDwvc3Bhbj4uXHJcbiAgICA8L3A+XHJcbiAgICA8dWwgc3R5bGU9e3sgbGlzdFN0eWxlVHlwZTogJ2Rpc2MnLCBwYWRkaW5nTGVmdDogJzEwcHgnIH19PlxyXG4gICAgICA8bGk+PHNwYW4gY2xhc3NOYW1lPSdib2xkLWZvbnQnPkhvdyBkb2VzIG91ciBwcm9qZWN0IGltcGFjdCB0aGUgd29ybGQgYXJvdW5kIHVzPzwvc3Bhbj48L2xpPlxyXG4gICAgICA8bGk+PHNwYW4gY2xhc3NOYW1lPSdib2xkLWZvbnQnPkhvdyBkb2VzIHRoZSB3b3JsZCBpbmZsdWVuY2Ugb3VyIHByb2plY3Q/PC9zcGFuPjwvbGk+XHJcbiAgICA8L3VsPlxyXG4gICAgPHAgY2xhc3NOYW1lPSdpbmRlbnQnPlxyXG4gICAgICBPdXIgb2JqZWN0aXZlIGlzIHRvIGdhdGhlciA8c3BhbiBjbGFzc05hbWU9J2JvbGQtZm9udCc+ZGl2ZXJzZSBwZXJzcGVjdGl2ZXM8L3NwYW4+LCBmcm9tIHRoZSBnZW5lcmFsIHB1YmxpYyB0byBwYXRpZW50cywgZW5zdXJpbmcgd2UgY29uc2lkZXIgYWxsIHBvc3NpYmxlIHZpZXdwb2ludHMgdGhhdCBtYXkgc2hhcGUgdGhlIHRyYWplY3Rvcnkgb2Ygb3VyIHByb2plY3QuXHJcbiAgICA8L3A+XHJcbiAgICA8L2Rpdj5cclxuXHJcblxyXG4gICAgPGRpdiBjbGFzc05hbWU9XCJyb3VuZGVkLWJvcmRlclwiPlxyXG4gICAgPGgzIGNsYXNzTmFtZT1cImNlbnRlci10ZXh0XCI+MS4yIFVuZGVyc3RhbmRpbmcgSGVwYXRpYyBFbmNlcGhhbG9wYXRoeSAoSEUpPC9oMz5cclxuICAgIDxwIGNsYXNzTmFtZT0naW5kZW50Jz5cclxuICAgICAgSGVwYXRpYyBlbmNlcGhhbG9wYXRoeSwgb3IgPHNwYW4gY2xhc3NOYW1lPSdib2xkLWZvbnQnPkhFPC9zcGFuPiwgaXMgYSBzeW5kcm9tZSByZXN1bHRpbmcgZnJvbSA8c3BhbiBjbGFzc05hbWU9J2JvbGQtZm9udCc+Y2VudHJhbCBuZXJ2b3VzIHN5c3RlbSBkeXNmdW5jdGlvbjwvc3Bhbj4gZHVlIHRvIDxzcGFuIGNsYXNzTmFtZT0nYm9sZC1mb250Jz5zZXZlcmUgbGl2ZXIgZGlzZWFzZTwvc3Bhbj4uIEluIHRoaXMgY29udGV4dCwgXCJoZXBhdGljXCIgcmVmZXJzIHRvIHRoZSA8c3BhbiBjbGFzc05hbWU9J2JvbGQtZm9udCc+bGl2ZXI8L3NwYW4+LCBhbmQgXCJlbmNlcGhhbG9wYXRoeVwiIHJlZmVycyB0byB0aGUgPHNwYW4gY2xhc3NOYW1lPSdib2xkLWZvbnQnPmJyYWluPC9zcGFuPi5cclxuICAgIDwvcD5cclxuICAgIDx1bCBzdHlsZT17eyBsaXN0U3R5bGVUeXBlOiAnZGlzYycsIHBhZGRpbmdMZWZ0OiAnMjBweCcgfX0+XHJcbiAgICAgIDxsaT48c3BhbiBjbGFzc05hbWU9J2JvbGQtZm9udCc+TWlsZCBIRSBwYXRpZW50czwvc3Bhbj4gYXJlIHR5cGljYWxseSBjaGFyYWN0ZXJpemVkIGJ5IGEgPHNwYW4gY2xhc3NOYW1lPSdib2xkLWZvbnQnPmRlY2xpbmUgaW4gY29nbml0aXZlIGZ1bmN0aW9uPC9zcGFuPiwgaW5jbHVkaW5nIDxzcGFuIGNsYXNzTmFtZT0nYm9sZC1mb250Jz5jb29yZGluYXRpb248L3NwYW4+IGFuZCA8c3BhbiBjbGFzc05hbWU9J2JvbGQtZm9udCc+YmFsYW5jZSBhYmlsaXRpZXM8L3NwYW4+LjwvbGk+XHJcbiAgICAgIDxsaT48c3BhbiBjbGFzc05hbWU9J2JvbGQtZm9udCc+TW9kZXJhdGUgSEUgcGF0aWVudHM8L3NwYW4+IG1heSBleHBlcmllbmNlIDxzcGFuIGNsYXNzTmFtZT0nYm9sZC1mb250Jz5hbnhpZXR5PC9zcGFuPiwgPHNwYW4gY2xhc3NOYW1lPSdib2xkLWZvbnQnPmluc29tbmlhPC9zcGFuPiwgPHNwYW4gY2xhc3NOYW1lPSdib2xkLWZvbnQnPnN1ZGRlbiBwZXJzb25hbGl0eSBjaGFuZ2VzPC9zcGFuPiwgYW5kIDxzcGFuIGNsYXNzTmFtZT0nYm9sZC1mb250Jz5hYm5vcm1hbCBiZWhhdmlvcjwvc3Bhbj4uPC9saT5cclxuICAgICAgPGxpPjxzcGFuIGNsYXNzTmFtZT0nYm9sZC1mb250Jz5TZXZlcmUgSEUgY2FzZXM8L3NwYW4+IGNhbiBsZWFkIHRvIDxzcGFuIGNsYXNzTmFtZT0nYm9sZC1mb250Jz5kcm93c2luZXNzPC9zcGFuPiwgPHNwYW4gY2xhc3NOYW1lPSdib2xkLWZvbnQnPmNvbWE8L3NwYW4+LCBhbmQgbWF5IGV2ZW4gYmVjb21lIDxzcGFuIGNsYXNzTmFtZT0nYm9sZC1mb250Jz5saWZlLXRocmVhdGVuaW5nPC9zcGFuPi48L2xpPlxyXG4gICAgPC91bD5cclxuICAgIDxwIGNsYXNzTmFtZT0naW5kZW50Jz5cclxuICAgICAgSEUgaXMgZnJlcXVlbnRseSBzZWVuIGluIHBhdGllbnRzIHdpdGggPHNwYW4gY2xhc3NOYW1lPSdib2xkLWZvbnQnPmFkdmFuY2VkIGxpdmVyIGRpc2Vhc2VzPC9zcGFuPiBsaWtlIDxzcGFuIGNsYXNzTmFtZT0nYm9sZC1mb250Jz5jaXJyaG9zaXM8L3NwYW4+IGFuZCA8c3BhbiBjbGFzc05hbWU9J2JvbGQtZm9udCc+bGl2ZXIgZmFpbHVyZTwvc3Bhbj4uIFNldmVyZSBlcGlzb2RlcyBvZiBIRSBjYW4gYmU6XHJcbiAgICA8L3A+XHJcbiAgICA8dWwgc3R5bGU9e3sgbGlzdFN0eWxlVHlwZTogJ2Rpc2MnLCBwYWRkaW5nTGVmdDogJzIwcHgnIH19PlxyXG4gICAgICA8bGk+PHNwYW4gY2xhc3NOYW1lPSdib2xkLWZvbnQnPkRhbmdlcm91czwvc3Bhbj4gYW5kIGRpZmZpY3VsdCB0byBtYW5hZ2U8L2xpPlxyXG4gICAgICA8bGk+UHJvbmUgdG8gPHNwYW4gY2xhc3NOYW1lPSdib2xkLWZvbnQnPnJlY3VycmVuY2U8L3NwYW4+PC9saT5cclxuICAgICAgPGxpPkxpa2VseSB0byBjYXVzZSBzaWduaWZpY2FudCBoYXJtIHRvIGEgcGF0aWVudFx1MjAxOXMgPHNwYW4gY2xhc3NOYW1lPSdib2xkLWZvbnQnPnNvY2lhbCBmdW5jdGlvbmluZzwvc3Bhbj4sIGxlYWRpbmcgdG8gYSBzdWJzdGFudGlhbCBidXJkZW4gb24gYm90aCB0aGUgPHNwYW4gY2xhc3NOYW1lPSdib2xkLWZvbnQnPmluZGl2aWR1YWw8L3NwYW4+IGFuZCB0aGVpciA8c3BhbiBjbGFzc05hbWU9J2JvbGQtZm9udCc+ZmFtaWx5PC9zcGFuPi48L2xpPlxyXG4gICAgPC91bD5cclxuICA8L2Rpdj5cclxuPC9FbGVtZW50PlxyXG5cclxuXHJcblxyXG48RWxlbWVudCBuYW1lPVwic2VjdGlvbjJcIiBjbGFzc05hbWU9XCJlbGVtZW50IHJvdW5kZWQtYm9yZGVyXCIgaWQ9J3NlY3Rpb24yJz5cclxuICAgICAgICAgICAgPGgyPjIuIEV0aGljYWwgQ29uc2lkZXJhdGlvbnM8L2gyPlxyXG4gICAgICAgICAgICA8cD5JbmZvcm1lZCBjb25zZW50LCBwcml2YWN5LCBmYWlybmVzcywgbm9uLWhhcm0sIHJlc3BvbnNpYmlsaXR5LjwvcD5cclxuICA8ZGl2IGNsYXNzTmFtZT1cInJvdW5kZWQtYm9yZGVyXCI+XHJcbiAgPGgzIGNsYXNzTmFtZT1cImNlbnRlci10ZXh0XCI+Mi4xIEV0aGljYWwgYW5kIFNhZmUgQmlvdGVjaG5vbG9neSBSZXNlYXJjaDwvaDM+XHJcbiAgICA8cCBjbGFzc05hbWU9J2luZGVudCc+XHJcbiAgICAgIE91ciBwcm9qZWN0IG9wZXJhdGVzIHdpdGhpbiB0aGUgbGVnYWwgZnJhbWV3b3JrIGFuZCBhZGhlcmVzIHRvIHN0cmljdCA8c3BhbiBjbGFzc05hbWU9J2JvbGQtZm9udCc+bGFib3JhdG9yeSBzYWZldHkgcmVndWxhdGlvbnM8L3NwYW4+LiBGcm9tIGFuIDxzcGFuIGNsYXNzTmFtZT0nYm9sZC1mb250Jz5ldGhpY2FsIHN0YW5kcG9pbnQ8L3NwYW4+LCByZXNwb25zaWJsZSBzY2llbnRpZmljIHJlc2VhcmNoIG5vdCBvbmx5IHJlcXVpcmVzIHRoZSBpbnZvbHZlbWVudCBvZiA8c3BhbiBjbGFzc05hbWU9J2JvbGQtZm9udCc+ZXhwZXJ0czwvc3Bhbj4sIGJ1dCBhbHNvIG11c3QgYWxpZ24gd2l0aCB0aGUgdmFsdWVzIG9mIDxzcGFuIGNsYXNzTmFtZT0nYm9sZC1mb250Jz5jaXRpemVuczwvc3Bhbj4sIGVuc3VyaW5nIHRoYXQgb3VyIGlubm92YXRpb25zIGFkZHJlc3MgPHNwYW4gY2xhc3NOYW1lPSdib2xkLWZvbnQnPnJlYWwtd29ybGQgY2hhbGxlbmdlczwvc3Bhbj4uXHJcbiAgICA8L3A+XHJcbiAgICA8cCBjbGFzc05hbWU9J2luZGVudCc+XHJcbiAgICAgIFdlIGFjdGl2ZWx5IGVuZ2FnZSB3aXRoIDxzcGFuIGNsYXNzTmFtZT0nYm9sZC1mb250Jz5zY2hvb2xzPC9zcGFuPiwgPHNwYW4gY2xhc3NOYW1lPSdib2xkLWZvbnQnPmhvc3BpdGFsczwvc3Bhbj4sIGFuZCA8c3BhbiBjbGFzc05hbWU9J2JvbGQtZm9udCc+Y29tbXVuaXRpZXM8L3NwYW4+IHRocm91Z2ggPHNwYW4gY2xhc3NOYW1lPSdib2xkLWZvbnQnPnB1YmxpYyBvdXRyZWFjaCBhY3Rpdml0aWVzPC9zcGFuPiwgZW5jb3VyYWdpbmcgPHNwYW4gY2xhc3NOYW1lPSdib2xkLWZvbnQnPmNpdGl6ZW4gcGFydGljaXBhdGlvbjwvc3Bhbj4uIEJ5IGludml0aW5nIHBlb3BsZSB0byBzaGFyZSB0aGVpciBzdWdnZXN0aW9ucywgd2UgYXJlIG1vdGl2YXRlZCB0byBlbmhhbmNlIDxzcGFuIGNsYXNzTmFtZT0nYm9sZC1mb250Jz5zY2llbnRpZmljIGNvbW11bmljYXRpb248L3NwYW4+LiBUaHJvdWdoIHRoZSA8c3BhbiBjbGFzc05hbWU9J2JvbGQtZm9udCc+cG9wdWxhcml6YXRpb24gb2Ygc2NpZW5jZTwvc3Bhbj4sIHdlIGFpbSB0byBlbGltaW5hdGUgbWlzY29uY2VwdGlvbnMgYWJvdXQgaGVwYXRpYyBlbmNlcGhhbG9wYXRoeSwgdGhlcmVieSA8c3BhbiBjbGFzc05hbWU9J2JvbGQtZm9udCc+YnJpZGdpbmcgdGhlIGdhcDwvc3Bhbj4gYmV0d2VlbiBzY2llbnRpc3RzIGFuZCB0aGUgcHVibGljLlxyXG4gICAgPC9wPlxyXG4gICAgPGgzPjIuMiBJbmZvcm1lZCBDb25zZW50IGFuZCBQcml2YWN5IFByb3RlY3Rpb248L2gzPlxyXG4gICAgPHAgY2xhc3NOYW1lPSdpbmRlbnQnPlxyXG4gICAgICBJbiBvdXIgcmVzZWFyY2gsIGVuc3VyaW5nIDxzcGFuIGNsYXNzTmFtZT0nYm9sZC1mb250Jz5pbmZvcm1lZCBjb25zZW50PC9zcGFuPiBhbmQgcHJvdGVjdGluZyA8c3BhbiBjbGFzc05hbWU9J2JvbGQtZm9udCc+cGF0aWVudCBpbmZvcm1hdGlvbiByaWdodHM8L3NwYW4+IGFyZSBvdXIgdG9wIHByaW9yaXRpZXMuIFBhcnRpY2lwYW50cyB3aWxsIGZ1bGx5IHVuZGVyc3RhbmQgdGhlIGV4cGVyaW1lbnRhbCBwcm9jZWR1cmVzLCByaXNrcywgYW5kIHBvdGVudGlhbCBiZW5lZml0cyBiZWZvcmUgdm9sdW50YXJpbHkgc2lnbmluZyBhbiA8c3BhbiBjbGFzc05hbWU9J2JvbGQtZm9udCc+aW5mb3JtZWQgY29uc2VudCBmb3JtPC9zcGFuPi4gV2UgYWxzbyBjb21taXQgdG8ga2VlcGluZyBhbGwgcXVlc3Rpb25uYWlyZSBjb250ZW50IGFuZCA8c3BhbiBjbGFzc05hbWU9J2JvbGQtZm9udCc+cGFydGljaXBhbnQgcHJpdmFjeTwvc3Bhbj4gc3RyaWN0bHkgY29uZmlkZW50aWFsLlxyXG4gICAgPC9wPlxyXG4gICAgPGgzPjIuMyBSaWdvcm91cyBTYWZldHkgRXZhbHVhdGlvbjwvaDM+XHJcbiAgICA8cCBjbGFzc05hbWU9J2luZGVudCc+XHJcbiAgICAgIEluIHRlcm1zIG9mIGV4cGVyaW1lbnRhbCBkZXNpZ24gYW5kIGltcGxlbWVudGF0aW9uLCB3ZSByaWdvcm91c2x5IGV2YWx1YXRlIHRoZSBzYWZldHkgb2YgPHNwYW4gY2xhc3NOYW1lPSdib2xkLWZvbnQnPmVuZ2luZWVyZWQgYmFjdGVyaWE8L3NwYW4+IHRvIG1pbmltaXplIGFueSA8c3BhbiBjbGFzc05hbWU9J2JvbGQtZm9udCc+aGVhbHRoIHJpc2tzPC9zcGFuPiB0byBwYXRpZW50cy4gPHNwYW4gY2xhc3NOYW1lPSdib2xkLWZvbnQnPlByZS1leHBlcmltZW50czwvc3Bhbj4gYW5kIDxzcGFuIGNsYXNzTmFtZT0nYm9sZC1mb250Jz5hbmltYWwgc3R1ZGllczwvc3Bhbj4gYXJlIGNvbmR1Y3RlZCB0byB2ZXJpZnkgc2FmZXR5LCB3aGlsZSBhIHRob3JvdWdoIGFzc2Vzc21lbnQgb2YgcG90ZW50aWFsIDxzcGFuIGNsYXNzTmFtZT0nYm9sZC1mb250Jz5zaWRlIGVmZmVjdHM8L3NwYW4+IGFuZCA8c3BhbiBjbGFzc05hbWU9J2JvbGQtZm9udCc+YWR2ZXJzZSByZWFjdGlvbnM8L3NwYW4+IGlzIHBlcmZvcm1lZCwgd2l0aCBjb250aW5nZW5jeSBwbGFucyBkZXZlbG9wZWQgdG8gbWFuYWdlIGFueSByaXNrcy5cclxuICAgIDwvcD5cclxuICA8L2Rpdj5cclxuPC9FbGVtZW50PlxyXG5cclxuXHJcblxyXG48RWxlbWVudCBuYW1lPVwic2VjdGlvbjNcIiBjbGFzc05hbWU9XCJlbGVtZW50IHJvdW5kZWQtYm9yZGVyXCIgaWQ9J3NlY3Rpb24zJz5cclxuICAgICAgICAgICAgPGgyPjMgQ29sbGFib3JhdGlvbjwvaDI+XHJcbiAgICAgICAgICAgIDxwPldobyBhcmUgd2UgY29ubmVjdGluZyB3aXRoLjwvcD5cclxuICA8ZGl2IGNsYXNzTmFtZT1cInJvdW5kZWQtYm9yZGVyXCI+XHJcbiAgICA8aDMgY2xhc3NOYW1lPVwiY2VudGVyLXRleHRcIj4zLjEgR3VpZGFuY2UgYW5kIENvb3BlcmF0aW9uPC9oMz5cclxuICAgIDxwIGNsYXNzTmFtZT0naW5kZW50Jz5cclxuICAgICAgT3VyIHRlYW0gY29sbGFib3JhdGVzIHdpdGggdGhlIDxzcGFuIGNsYXNzTmFtZT0nYm9sZC1mb250Jz5MaXZlciBEaXNlYXNlIENlbnRlciBvZiBOYW5mYW5nIEhvc3BpdGFsPC9zcGFuPiBhbmQgdGhlIDxzcGFuIGNsYXNzTmFtZT0nYm9sZC1mb250Jz5NaWNyb2Vjb2xvZ2ljYWwgRGlhZ25vc2lzIGFuZCBUcmVhdG1lbnQgQ2VudGVyIG9mIFBlYXJsIFJpdmVyIEhvc3BpdGFsPC9zcGFuPi5cclxuICAgIDwvcD5cclxuICAgIDx1bCBzdHlsZT17eyBsaXN0U3R5bGVUeXBlOiAnZGlzYycsIHBhZGRpbmdMZWZ0OiAnMjBweCcgfX0+XHJcbiAgICAgIDxsaT5XZSBjb2xsZWN0ZWQgPHNwYW4gY2xhc3NOYW1lPSdib2xkLWZvbnQnPnByZW9wZXJhdGl2ZSBzZXJ1bSBzYW1wbGVzPC9zcGFuPiBmcm9tIGNpcnJob3NpcyBwYXRpZW50cyB1bmRlcmdvaW5nIDxzcGFuIGNsYXNzTmFtZT0nYm9sZC1mb250Jz5USVBTPC9zcGFuPiwgY29uZHVjdGVkIDxzcGFuIGNsYXNzTmFtZT0nYm9sZC1mb250Jz5tZXRhYm9sb21pY3MgdGVzdGluZzwvc3Bhbj4sIGFuZCBmb2xsb3dlZCB1cCB3aXRoIHRoZSBwYXRpZW50cyBmb3IgdGhyZWUgbW9udGhzIHRvIG1vbml0b3IgdGhlIG9jY3VycmVuY2Ugb2YgPHNwYW4gY2xhc3NOYW1lPSdib2xkLWZvbnQnPmhlcGF0aWMgZW5jZXBoYWxvcGF0aHkgKEhFKTwvc3Bhbj4uPC9saT5cclxuICAgIDwvdWw+XHJcblxyXG4gICAgPHAgY2xhc3NOYW1lPSdpbmRlbnQnPlxyXG4gICAgICBUaGUgdGVhbSBwYXJ0aWNpcGF0ZWQgaW4gdGhlIDxzcGFuIGNsYXNzTmFtZT0nYm9sZC1mb250Jz5Tb3V0aCBDaGluYSBFeGNoYW5nZSBDb25mZXJlbmNlPC9zcGFuPiwgc2hhcmluZyBwcm9qZWN0IHByb2dyZXNzIGFuZCBleHBlcmllbmNlcyB3aXRoIGluc3RpdHV0aW9ucyBsaWtlIDxzcGFuIGNsYXNzTmFtZT0nYm9sZC1mb250Jz5TaGVuemhlbiBVbml2ZXJzaXR5PC9zcGFuPiBhbmQgdGhlIDxzcGFuIGNsYXNzTmFtZT0nYm9sZC1mb250Jz5Tb3V0aGVybiBVbml2ZXJzaXR5IG9mIFNjaWVuY2UgYW5kIFRlY2hub2xvZ3k8L3NwYW4+LlxyXG4gICAgPC9wPlxyXG4gICAgPHAgY2xhc3NOYW1lPSdpbmRlbnQnPlxyXG4gICAgICBXZSB3ZXJlIGludml0ZWQgdG8gdGhlIDxzcGFuIGNsYXNzTmFtZT0nYm9sZC1mb250Jz5DaGluYSBSZWdpb25hbCBFeGNoYW5nZSBDb25mZXJlbmNlIChDQ0lDKTwvc3Bhbj4sIGVuZ2FnaW5nIGluIGluLWRlcHRoIGRpc2N1c3Npb25zIHdpdGggb3RoZXIgdGVhbXMgdG8gb3B0aW1pemUgYW5kIGltcHJvdmUgb3VyIHByb2plY3QsIGVuaGFuY2luZyA8c3BhbiBjbGFzc05hbWU9J2JvbGQtZm9udCc+Y29sbGFib3JhdGlvbiBhYmlsaXRpZXM8L3NwYW4+IGFuZCBwcm9tb3RpbmcgbXV0dWFsIHByb2plY3QgZGV2ZWxvcG1lbnQuXHJcbiAgICA8L3A+XHJcblxyXG4gICAgPHAgY2xhc3NOYW1lPSdpbmRlbnQnPlxyXG4gICAgICA8c3BhbiBjbGFzc05hbWU9J2JvbGQtZm9udCc+UHJvZmVzc29yIFFpdSBYaW55dWFuPC9zcGFuPiBmcm9tIHRoZSA8c3BhbiBjbGFzc05hbWU9J2JvbGQtZm9udCc+TmF0aW9uYWwgVW5pdmVyc2l0eSBvZiBEZWZlbnNlIFRlY2hub2xvZ3k8L3NwYW4+IHByb3ZpZGVkIHZhbHVhYmxlIHRlYW0gZ3VpZGFuY2UsIG9mZmVyaW5nIHByYWN0aWNhbCBzdWdnZXN0aW9ucyBhbmQgaW5zaWdodHMgdG8gc3VwcG9ydCBvdXIgdGVhbVx1MjAxOXMgZ3Jvd3RoLlxyXG4gICAgPC9wPlxyXG5cclxuICAgIDxwIGNsYXNzTmFtZT0naW5kZW50Jz5cclxuICAgICAgV2UgY29uc3VsdGVkIHdpdGggPHNwYW4gY2xhc3NOYW1lPSdib2xkLWZvbnQnPkRyLiBMaXU8L3NwYW4+LCBhIHN5bnRoZXRpYyBiaW9sb2d5IGV4cGVydCBmcm9tIHRoZSA8c3BhbiBjbGFzc05hbWU9J2JvbGQtZm9udCc+U291dGggQ2hpbmEgVW5pdmVyc2l0eSBvZiBUZWNobm9sb2d5PC9zcGFuPiwgdG8gZGlzY3VzcyB0aGUgZXhwZXJpbWVudGFsIGNvbnRlbnQgb2Ygb3VyIHByb2plY3QsIGV4Y2hhbmdpbmcga25vd2xlZGdlIGFuZCBleHBlcmllbmNlcyByZWxhdGVkIHRvIDxzcGFuIGNsYXNzTmFtZT0nYm9sZC1mb250Jz5oZXBhdGljIGVuY2VwaGFsb3BhdGh5PC9zcGFuPi5cclxuICAgIDwvcD5cclxuXHJcbiAgICA8cCBjbGFzc05hbWU9J2luZGVudCc+XHJcbiAgICAgIFRlYW0gbWVtYmVycyBwYXJ0aWNpcGF0ZWQgaW4gdGhlIDxzcGFuIGNsYXNzTmFtZT0nYm9sZC1mb250Jz5OYXRpb25hbCBTeW50aGV0aWMgQmlvbG9neSBJbm5vdmF0aW9uIENvbXBldGl0aW9uPC9zcGFuPiBhdCA8c3BhbiBjbGFzc05hbWU9J2JvbGQtZm9udCc+U2hlbnpoZW4gR3VhbmdtaW5nIFRpYW4nYW4gQ2xvdWQgVmFsbGV5PC9zcGFuPiwgd2hlcmUgdGhleSBlbmdhZ2VkIGluIGRlZXAgZGlzY3Vzc2lvbnMgYW5kIGNvbGxhYm9yYXRpb24gd2l0aCBpR0VNIHRlYW1zIGZyb20gYWNyb3NzIHRoZSBjb3VudHJ5LCBleGNoYW5naW5nIGlubm92YXRpdmUgaWRlYXMgb24gYSBzaGFyZWQgcGxhdGZvcm0uXHJcbiAgICA8L3A+XHJcbiAgPC9kaXY+XHJcbjwvRWxlbWVudD5cclxuXHJcblxyXG48RWxlbWVudCBuYW1lPVwic2VjdGlvbjRcIiBjbGFzc05hbWU9XCJlbGVtZW50IHJvdW5kZWQtYm9yZGVyXCIgaWQ9J3NlY3Rpb240Jz5cclxuICAgICAgICAgICAgPGgyPjQgUXVlc3Rpb25uYWlyZTwvaDI+XHJcbiAgICAgICAgICAgIDxwPldoYXQgZGlkIHdlIGludmVzdGlnYXRlLjwvcD5cclxuICA8ZGl2IGNsYXNzTmFtZT1cInJvdW5kZWQtYm9yZGVyXCI+XHJcbiAgICA8cCBjbGFzc05hbWU9J2luZGVudCc+XHJcbiAgICAgIER1cmluZyB0aGUgZGV2ZWxvcG1lbnQgb2Ygb3VyIGhlcGF0aWMgZW5jZXBoYWxvcGF0aHkgKDxzcGFuIGNsYXNzTmFtZT0nYm9sZC1mb250Jz5IRTwvc3Bhbj4pIHByb2plY3QsIHdlIGNvbmR1Y3RlZCBleHRlbnNpdmUgPHNwYW4gY2xhc3NOYW1lPSdib2xkLWZvbnQnPkh1bWFuIFByYWN0aWNlcyAoSFApPC9zcGFuPiBhY3Rpdml0aWVzIHRvIHVuZGVyc3RhbmQgdGhlIGNoYWxsZW5nZXMgYW5kIGdhdGhlciBmZWVkYmFjayBmcm9tIHByb2Zlc3Npb25hbHMgYW5kIHBhdGllbnRzLiBPdXIgSFAgd29yayBpcyBkaXZpZGVkIGludG8gdGhyZWUga2V5IGFyZWFzOlxyXG4gICAgPC9wPlxyXG4gICAgPHVsIHN0eWxlPXt7IGxpc3RTdHlsZVR5cGU6ICdkaXNjJywgcGFkZGluZ0xlZnQ6ICcyMHB4JyB9fT5cclxuICAgICAgPGxpPjxzcGFuIGNsYXNzTmFtZT0nYm9sZC1mb250Jz5RdWVzdGlvbm5haXJlLWJhc2VkIHJlc2VhcmNoPC9zcGFuPiB0byBpZGVudGlmeSBIRSBzeW1wdG9tcyBhbmQgdGhlaXIgaW1wYWN0IG9uIDxzcGFuIGNsYXNzTmFtZT0nYm9sZC1mb250Jz5xdWFsaXR5IG9mIGxpZmU8L3NwYW4+LjwvbGk+XHJcbiAgICAgIDxsaT48c3BhbiBjbGFzc05hbWU9J2JvbGQtZm9udCc+SW50ZXJ2aWV3cyB3aXRoIGRvY3RvcnM8L3NwYW4+IGFuZCBsaXZlciBkaXNlYXNlIGV4cGVydHMgdG8gZXhwbG9yZSB0aGUgPHNwYW4gY2xhc3NOYW1lPSdib2xkLWZvbnQnPmxpbWl0YXRpb25zPC9zcGFuPiBvZiBjdXJyZW50IHRyZWF0bWVudHMgYW5kIHBvdGVudGlhbCA8c3BhbiBjbGFzc05hbWU9J2JvbGQtZm9udCc+cHJvYmlvdGljIHRoZXJhcGllczwvc3Bhbj4uPC9saT5cclxuICAgICAgPGxpPjxzcGFuIGNsYXNzTmFtZT0nYm9sZC1mb250Jz5QYXRpZW50IGFuZCBmYW1pbHkgZmVlZGJhY2s8L3NwYW4+IHRvIHVuZGVyc3RhbmQgdGhlaXIgZXhwZWN0YXRpb25zIGFuZCBjb25jZXJucyBhYm91dCBuZXcgdGhlcmFwaWVzLjwvbGk+XHJcbiAgICA8L3VsPlxyXG5cclxuICAgIDxwIGNsYXNzTmFtZT0naW5kZW50Jz5cclxuICAgICAgV2UgZGVzaWduZWQgYSBjb21wcmVoZW5zaXZlIDxzcGFuIGNsYXNzTmFtZT0nYm9sZC1mb250Jz5xdWVzdGlvbm5haXJlPC9zcGFuPiBjb3ZlcmluZyBwYXRpZW50IDxzcGFuIGNsYXNzTmFtZT0nYm9sZC1mb250Jz5tZWRpY2FsIGhpc3Rvcnk8L3NwYW4+LCA8c3BhbiBjbGFzc05hbWU9J2JvbGQtZm9udCc+Y3VycmVudCBzeW1wdG9tczwvc3Bhbj4sIHRyZWF0bWVudCBleHBlcmllbmNlLCBhbmQgYXdhcmVuZXNzIG9mIDxzcGFuIGNsYXNzTmFtZT0nYm9sZC1mb250Jz5uZXcgdGhlcmFwaWVzPC9zcGFuPiBsaWtlIHByb2Jpb3RpY3MuIFRoaXMgYWxsb3dzIHVzIHRvIGNvbGxlY3QgPHNwYW4gY2xhc3NOYW1lPSdib2xkLWZvbnQnPnJlYWwtd29ybGQgZGF0YTwvc3Bhbj4gdG8gZnVydGhlciBvdXIgcmVzZWFyY2ggb24gSEUuXHJcbiAgICA8L3A+XHJcbiAgICA8cCBjbGFzc05hbWU9J2luZGVudCc+XHJcbiAgICAgIFRoZSBmaWd1cmUgYmVsb3cgc2hvd3MgaG93IG91ciBIUCBhY3Rpdml0aWVzIGludGVncmF0ZSB3aXRoIDxzcGFuIGNsYXNzTmFtZT0nYm9sZC1mb250Jz5sYWIgd29yazwvc3Bhbj4gYW5kIDxzcGFuIGNsYXNzTmFtZT0nYm9sZC1mb250Jz5zY2llbnRpZmljIGV4Y2hhbmdlPC9zcGFuPi4gVGhpcyBjb2xsYWJvcmF0aW9uIGhlbHBzIHVzIGJldHRlciB1bmRlcnN0YW5kIHRoZSBjb21wbGV4aXR5IG9mIEhFIGFuZCBwcm92aWRlcyBhIGZvdW5kYXRpb24gZm9yIGRldmVsb3BpbmcgPHNwYW4gY2xhc3NOYW1lPSdib2xkLWZvbnQnPnByb2Jpb3RpYy1iYXNlZCB0cmVhdG1lbnRzPC9zcGFuPi4gQnkgY29tYmluaW5nIHBhdGllbnQgZmVlZGJhY2sgd2l0aCBzY2llbnRpZmljIHJlc2VhcmNoLCBvdXIgZ29hbCBpcyB0byBpbXByb3ZlIEhFIHRyZWF0bWVudCBhbmQgZW5oYW5jZSA8c3BhbiBjbGFzc05hbWU9J2JvbGQtZm9udCc+cGF0aWVudCBxdWFsaXR5IG9mIGxpZmU8L3NwYW4+LlxyXG4gICAgPC9wPlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPGRpdiBjbGFzc05hbWU9XCJyb3VuZGVkLWJvcmRlclwiPlxyXG4gICAgPGg0IGNsYXNzTmFtZT1cImNlbnRlci10ZXh0XCI+NC4xIEJhc2ljIFByaW5jaXBsZXM8L2g0PlxyXG4gICAgPHAgY2xhc3NOYW1lPSdpbmRlbnQnPlxyXG4gICAgICA8c3BhbiBjbGFzc05hbWU9J2JvbGQtZm9udCc+SGVwYXRpYyBlbmNlcGhhbG9wYXRoeSAoSEUpPC9zcGFuPiBpcyBhIG5ldXJvbG9naWNhbCBkaXNvcmRlciBjYXVzZWQgYnkgbGl2ZXIgZHlzZnVuY3Rpb24sIHdpdGggc3ltcHRvbXMgbGlrZSA8c3BhbiBjbGFzc05hbWU9J2JvbGQtZm9udCc+Y29nbml0aXZlIGltcGFpcm1lbnQ8L3NwYW4+LCA8c3BhbiBjbGFzc05hbWU9J2JvbGQtZm9udCc+ZW1vdGlvbmFsIGluc3RhYmlsaXR5PC9zcGFuPiwgYW5kIGRlY3JlYXNlZCA8c3BhbiBjbGFzc05hbWU9J2JvbGQtZm9udCc+c29jaWFsIGZ1bmN0aW9uaW5nPC9zcGFuPiwgYWxsIG9mIHdoaWNoIGFmZmVjdCA8c3BhbiBjbGFzc05hbWU9J2JvbGQtZm9udCc+cXVhbGl0eSBvZiBsaWZlPC9zcGFuPi4gTWFueSBwYXRpZW50cyBoYXZlIDxzcGFuIGNsYXNzTmFtZT0nYm9sZC1mb250Jz5sb3cgc2VsZi1hd2FyZW5lc3M8L3NwYW4+IG9mIHRoZWlyIGNvbmRpdGlvbiwgZGVsYXlpbmcgdHJlYXRtZW50IGFuZCBpbmNyZWFzaW5nIHBzeWNob2xvZ2ljYWwgYnVyZGVuLiBPdXIgZ29hbCBpcyB0byBleHBsb3JlIHdoeSBIRSBwYXRpZW50cyBoYXZlIGxvdyBhd2FyZW5lc3Mgb2YgdGhlaXIgc3ltcHRvbXMgYW5kIHN0cmVzcy5cclxuICAgIDwvcD5cclxuXHJcbiAgICA8aDQgY2xhc3NOYW1lPVwiY2VudGVyLXRleHRcIj40LjIgTWV0aG9kPC9oND5cclxuICAgIDxwIGNsYXNzTmFtZT0naW5kZW50Jz5cclxuICAgICAgV2UgZGVzaWduZWQgYSBxdWVzdGlvbm5haXJlIGluIHRocmVlIHBhcnRzOlxyXG4gICAgPC9wPlxyXG4gICAgPHVsIHN0eWxlPXt7IGxpc3RTdHlsZVR5cGU6ICdkaXNjJywgcGFkZGluZ0xlZnQ6ICcyMHB4JyB9fT5cclxuICAgICAgPGxpPjxzcGFuIGNsYXNzTmFtZT0nYm9sZC1mb250Jz5TeW1wdG9tIGF3YXJlbmVzczwvc3Bhbj46IFBhcnRpY2lwYW50cyByYXRlZCB0aGVpciBzeW1wdG9tcyBhbmQgc3RyZXNzIG9uIGEgc2NhbGUgZnJvbSAwIChubyBzeW1wdG9tcykgdG8gMTAwIChzZXZlcmUgc3ltcHRvbXMpIHRvIG1lYXN1cmUgPHNwYW4gY2xhc3NOYW1lPSdib2xkLWZvbnQnPnNlbGYtYXdhcmVuZXNzPC9zcGFuPi48L2xpPlxyXG4gICAgICA8bGk+PHNwYW4gY2xhc3NOYW1lPSdib2xkLWZvbnQnPkNsaW5pY2FsIGFzc2Vzc21lbnQ8L3NwYW4+OiBQYXJ0aWNpcGFudHMgd2VyZSBndWlkZWQgdGhyb3VnaCA8c3BhbiBjbGFzc05hbWU9J2JvbGQtZm9udCc+V2VzdCBIYXZlbiBDcml0ZXJpYTwvc3Bhbj4gdG8gZXZhbHVhdGUgdGhlaXIgYWN0dWFsIGNvbmRpdGlvbi48L2xpPlxyXG4gICAgICA8bGk+PHNwYW4gY2xhc3NOYW1lPSdib2xkLWZvbnQnPkNvcGluZyBhbmQgdW5kZXJzdGFuZGluZzwvc3Bhbj46IEZvY3VzZWQgb24gaG93IHBhcnRpY2lwYW50cyBtYW5hZ2Ugc3RyZXNzIGFuZCB1bmRlcnN0YW5kIHRoZWlyIGNvbmRpdGlvbi48L2xpPlxyXG4gICAgPC91bD5cclxuICAgIDxwIGNsYXNzTmFtZT0naW5kZW50Jz5cclxuICAgICAgVGhlIHF1ZXN0aW9ubmFpcmUgd2FzIGRpc3RyaWJ1dGVkIG9ubGluZSB0byBIRSBwYXRpZW50cyBpbiBjb2xsYWJvcmF0aW9uIHdpdGggaG9zcGl0YWxzIHRvIGVuc3VyZSA8c3BhbiBjbGFzc05hbWU9J2JvbGQtZm9udCc+ZGl2ZXJzZSBzYW1wbGVzPC9zcGFuPi5cclxuICAgIDwvcD5cclxuXHJcbiAgICA8aDQgY2xhc3NOYW1lPVwiY2VudGVyLXRleHRcIj40LjMgUmVzdWx0czwvaDQ+XHJcbiAgICA8cCBjbGFzc05hbWU9J2luZGVudCc+XHJcbiAgICAgIFdlIHJlY2VpdmVkIDxzcGFuIGNsYXNzTmFtZT0nYm9sZC1mb250Jz43MjUgcmVzcG9uc2VzPC9zcGFuPiwgaW5jbHVkaW5nIDxzcGFuIGNsYXNzTmFtZT0nYm9sZC1mb250Jz4zNTAgSEUgcGF0aWVudHM8L3NwYW4+LiBPbmx5IDxzcGFuIGNsYXNzTmFtZT0nYm9sZC1mb250Jz4zLjUlPC9zcGFuPiBjb3VsZCBhY2N1cmF0ZWx5IHJlY29nbml6ZSB0aGUgc2V2ZXJpdHkgb2YgdGhlaXIgY29uZGl0aW9uLCB3aXRoIG1vc3QgcGF0aWVudHMgdW5kZXJlc3RpbWF0aW5nIHRoZWlyIHN5bXB0b21zLiBDb21wYXJpc29ucyB3aXRoIDxzcGFuIGNsYXNzTmFtZT0nYm9sZC1mb250Jz5jbGluaWNhbCBhc3Nlc3NtZW50czwvc3Bhbj4gc2hvd2VkIHRoYXQgcGF0aWVudHMnIHNlbGYtcmVwb3J0ZWQgc3ltcHRvbXMgd2VyZSBnZW5lcmFsbHkgbG93ZXIgdGhhbiBwcm9mZXNzaW9uYWwgZXZhbHVhdGlvbnMuIE92ZXIgPHNwYW4gY2xhc3NOYW1lPSdib2xkLWZvbnQnPjY1JTwvc3Bhbj4gb2YgcGFydGljaXBhbnRzIGhhZCBuZXZlciBhY3RpdmVseSBhc3Nlc3NlZCB0aGVpciBjb25kaXRpb24sIGRlc3BpdGUgc29tZSB1c2luZyBtb2JpbGUgYXBwcy4gVGhlc2UgZmluZGluZ3MgaGlnaGxpZ2h0IHRoZSBuZWVkIHRvIGltcHJvdmUgPHNwYW4gY2xhc3NOYW1lPSdib2xkLWZvbnQnPnNlbGYtYXdhcmVuZXNzPC9zcGFuPiBpbiBIRSBwYXRpZW50cywgd2hpY2ggaXMgY3J1Y2lhbCBmb3IgYmV0dGVyIHRyZWF0bWVudCBwbGFubmluZy5cclxuICAgIDwvcD5cclxuICA8L2Rpdj5cclxuPC9FbGVtZW50PlxyXG5cclxuXHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImJkLWNhbGxvdXQgYmQtY2FsbG91dC1pbmZvIGJnLWdyYXlcIj5cclxuICAgICAgICAgICAgPGgxPldoYXQgZG8gd2UgZG8gdG8gLi4uPyBTZWUuLi48L2gxPlxyXG4gICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgPEVsZW1lbnQgbmFtZT1cInNlY3Rpb241XCIgY2xhc3NOYW1lPVwiZWxlbWVudCByb3VuZGVkLWJvcmRlclwiIGlkPSdzZWN0aW9uNSc+XHJcbiAgICAgICAgICAgIDxoMj41LiBTdGFrZWhvbGRlcjwvaDI+XHJcbiAgICAgICAgICAgIDxwPk91ciBzdGFrZWhvbGRlcnMuPC9wPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJvdW5kZWQtYm9yZGVyXCI+XHJcbiAgICAgICAgICAgICAgPGgzIGNsYXNzTmFtZT1cImNlbnRlci10ZXh0XCI+NS4xIFN0YWtlaG9sZGVyIElkZW50aWZpY2F0aW9uPC9oMz5cclxuICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9J2luZGVudCc+XHJcbiAgICAgICAgICAgICAgICBPdXIgaUdFTSBwcm9qZWN0LCBmb2N1c2luZyBvbiBpbm5vdmF0aXZlIHRyZWF0bWVudCBmb3IgaGVwYXRpYyBlbmNlcGhhbG9wYXRoeSAoPHNwYW4gY2xhc3NOYW1lPSdib2xkLWZvbnQnPkhFPC9zcGFuPiksIGhhcyBpZGVudGlmaWVkIGtleSBzdGFrZWhvbGRlcnMgY3JpdGljYWwgdG8gdGhlIHN1Y2Nlc3MgYW5kIHJlYWwtd29ybGQgYXBwbGljYXRpb24gb2Ygb3VyIHJlc2VhcmNoLiBUaGVzZSBzdGFrZWhvbGRlcnMgaW5jbHVkZSBIRSBwYXRpZW50cywgbWVkaWNhbCBwcm9mZXNzaW9uYWxzIChkb2N0b3JzKSwgcGhhcm1hY2V1dGljYWwgY29tcGFueSByZXByZXNlbnRhdGl2ZXMsIHJlc2VhcmNoIGV4cGVydHMgaW52b2x2ZWQgaW4gSEUtcmVsYXRlZCBzdHVkaWVzLCBhbmQgdGhlIGdlbmVyYWwgcHVibGljLlxyXG4gICAgICAgICAgICAgICAgPHVsIHN0eWxlPXt7IGxpc3RTdHlsZVR5cGU6ICdkaXNjJywgcGFkZGluZ0xlZnQ6ICcyMHB4JyB9fT5cclxuICAgICAgICAgICAgICAgICAgPGxpPjxzcGFuIGNsYXNzTmFtZT0nYm9sZC1mb250Jz5QYXRpZW50czwvc3Bhbj46IFN1ZmZlcmluZyBmcm9tIEhFIHJlcHJlc2VudCBhIHByaW1hcnkgc3Rha2Vob2xkZXIsIGFzIHRoZWlyIHF1YWxpdHkgb2YgbGlmZSBkaXJlY3RseSBkZXBlbmRzIG9uIGVmZmVjdGl2ZSB0cmVhdG1lbnQgb3B0aW9ucy4gPC9saT5cclxuICAgICAgICAgICAgICAgICAgPGxpPjxzcGFuIGNsYXNzTmFtZT0nYm9sZC1mb250Jz5Eb2N0b3JzPC9zcGFuPjogRXNwZWNpYWxseSBoZXBhdG9sb2dpc3RzIGFuZCBuZXVyb2xvZ2lzdHMsIGFyZSBpbnRlZ3JhbCBpbiBkaWFnbm9zaW5nIGFuZCB0cmVhdGluZyBIRSwgcHJvdmlkaW5nIHVzIHdpdGggdmFsdWFibGUgaW5zaWdodHMgaW50byBjbGluaWNhbCBuZWVkcy4gUGhhcm1hY2V1dGljYWwgY29tcGFueSByZXByZXNlbnRhdGl2ZXM6IFRoZXkgYXJlIHZpdGFsIGZvciB0cmFuc2xhdGluZyByZXNlYXJjaCBpbnRvIG1hcmtldC1yZWFkeSB0aGVyYXBpZXMsIGVuc3VyaW5nIGFjY2Vzc2liaWxpdHkgYW5kIHNjYWxhYmlsaXR5IG9mIG91ciBzb2x1dGlvbnMuPC9saT5cclxuICAgICAgICAgICAgICAgICAgPGxpPjxzcGFuIGNsYXNzTmFtZT0nYm9sZC1mb250Jz5SZXNlYXJjaGVyczwvc3Bhbj46IEluY2x1ZGluZyBhY2FkZW1pY3MgYW5kIHNwZWNpYWxpc3RzIGluIGxpdmVyIGRpc2Vhc2UsIGFyZSBjcml0aWNhbCBmb3IgZ3VpZGluZyB0aGUgc2NpZW50aWZpYyBkaXJlY3Rpb24gb2YgdGhlIHByb2plY3QuIDwvbGk+XHJcbiAgICAgICAgICAgICAgICAgIDxsaT48c3BhbiBjbGFzc05hbWU9J2JvbGQtZm9udCc+R2VuZXJhbCBwdWJsaWM8L3NwYW4+OiBBcyByYWlzaW5nIGF3YXJlbmVzcyBhbmQgZWR1Y2F0aW5nIHBlb3BsZSBhYm91dCBIRSBjYW4gc2lnbmlmaWNhbnRseSBjb250cmlidXRlIHRvIGVhcmx5IGRpYWdub3NpcyBhbmQgdHJlYXRtZW50LCB1bHRpbWF0ZWx5IGJlbmVmaXRpbmcgdGhlIGhlYWx0aGNhcmUgZWNvc3lzdGVtIGFzIGEgd2hvbGUuPC9saT5cclxuICAgICAgICAgICAgICAgIDwvdWw+XHJcbiAgICAgICAgICAgICAgPC9wPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicm91bmRlZC1ib3JkZXJcIj5cclxuICAgICAgICAgICAgICA8aDMgY2xhc3NOYW1lPVwiY2VudGVyLXRleHRcIj41LjIuIFN0YWtlaG9sZGVyIEVuZ2FnZW1lbnQ8L2gzPlxyXG4gICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT0naW5kZW50Jz5cclxuICAgICAgICAgICAgICAgIFdlIHJlYWNoZWQgb3V0IHRvIHRoZSBzdGFrZWhvbGRlcnMgZm9yIGV4cGVydCBpbnNpZ2h0cyB0aHJvdWdoIHN0cnVjdHVyZWQgaW50ZXJ2aWV3cywgZm9sbG93aW5nIGEgY29tcHJlaGVuc2l2ZSBlbmdhZ2VtZW50IHByb2Nlc3M6IFByZXBhcmF0aW9uLCBDb250YWN0LCBDb250ZW50IERldmVsb3BtZW50LCBFeGVjdXRpb24sIFN1bW1hcnksIFJlZmxlY3Rpb24sIGFuZCBVcGRhdGVzLiBUaGlzIGFwcHJvYWNoIGFsbG93ZWQgdXMgdG8gYmV0dGVyIHVuZGVyc3RhbmQgdGhlIHNwZWNpZmljIG5lZWRzIGFuZCBjaGFsbGVuZ2VzIGZhY2VkIGJ5IGVhY2ggc3Rha2Vob2xkZXIgZ3JvdXAuIFRoZWlyIGZlZWRiYWNrIHByb3ZpZGVkIGNyaXRpY2FsIGluc2lnaHRzIHRoYXQgZ3VpZGVkIGltcHJvdmVtZW50cyB0byBvdXIgcHJvamVjdCBkZXNpZ24sIGVuc3VyaW5nIGl0IGFkZHJlc3NlcyByZWFsLXdvcmxkIGlzc3VlcyBlZmZlY3RpdmVseS5cclxuICAgICAgICAgICAgICA8L3A+XHJcbiAgICAgICAgICAgICAgPHVsIHN0eWxlPXt7IGxpc3RTdHlsZVR5cGU6ICdkaXNjJywgcGFkZGluZ0xlZnQ6ICcyMHB4JyB9fT5cclxuICAgICAgICAgICAgICAgIDxsaT48c3BhbiBjbGFzc05hbWU9J2JvbGQtZm9udCc+UHJlcGFyZTo8L3NwYW4+IFdlIHJlc2VhcmNoZWQgc3Rha2Vob2xkZXIgYmFja2dyb3VuZHMgdG8gdW5kZXJzdGFuZCB0aGVpciByZWxldmFuY2UgdG8gb3VyIHByb2plY3QuPC9saT5cclxuICAgICAgICAgICAgICAgIDxsaT48c3BhbiBjbGFzc05hbWU9J2JvbGQtZm9udCc+Q29udGFjdDo8L3NwYW4+IEluaXRpYWwgb3V0cmVhY2ggd2FzIG1hZGUgdmlhIGVtYWlsIGFuZCBwaG9uZSBjYWxscy48L2xpPlxyXG4gICAgICAgICAgICAgICAgPGxpPjxzcGFuIGNsYXNzTmFtZT0nYm9sZC1mb250Jz5JbnRlcnZpZXcgQ29udGVudCBDb25zdHJ1Y3Rpb246PC9zcGFuPiBXZSBkZXZlbG9wZWQgdGFyZ2V0ZWQgcXVlc3Rpb25zIGZvY3VzaW5nIG9uIGhlcGF0aWMgZW5jZXBoYWxvcGF0aHkuPC9saT5cclxuICAgICAgICAgICAgICAgIDxsaT48c3BhbiBjbGFzc05hbWU9J2JvbGQtZm9udCc+Q29uZHVjdCBJbnRlcnZpZXc6PC9zcGFuPiBJbnRlcnZpZXdzIHdlcmUgaGVsZCBvbmxpbmUgb3IgaW4gcGVyc29uLjwvbGk+XHJcbiAgICAgICAgICAgICAgICA8bGk+PHNwYW4gY2xhc3NOYW1lPSdib2xkLWZvbnQnPlN1bW1hcml6YXRpb246PC9zcGFuPiBLZXkgaW5zaWdodHMgd2VyZSBkb2N1bWVudGVkLjwvbGk+XHJcbiAgICAgICAgICAgICAgICA8bGk+PHNwYW4gY2xhc3NOYW1lPSdib2xkLWZvbnQnPlJlZmxlY3Rpb246PC9zcGFuPiBXZSBhbmFseXplZCB0aGUgZmVlZGJhY2sgdG8gcmVmaW5lIG91ciBhcHByb2FjaC48L2xpPlxyXG4gICAgICAgICAgICAgICAgPGxpPjxzcGFuIGNsYXNzTmFtZT0nYm9sZC1mb250Jz5VcGRhdGU6PC9zcGFuPiBTdGFrZWhvbGRlciBmZWVkYmFjayB3YXMgaW50ZWdyYXRlZCBpbnRvIHByb2plY3QgdXBkYXRlcy48L2xpPlxyXG4gICAgICAgICAgICAgIDwvdWw+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvRWxlbWVudD5cclxuXHJcblxyXG4gICAgICAgIDxFbGVtZW50IG5hbWU9XCJzZWN0aW9uNVwiIGNsYXNzTmFtZT1cImVsZW1lbnQgcm91bmRlZC1ib3JkZXJcIiBpZD0nc2VjdGlvbjUnPlxyXG4gICAgICAgIDxoMj42LiBFeHBlcnQgQ29uc3VsdGF0aW9uPC9oMj5cclxuICAgICAgICAgICAgPHA+RXhwbG9yZSB3aGF0IGRpZCB3ZSBsZWFybiBmcm9tIGV4cGVydHMuPC9wPlxyXG4gIDxkaXYgY2xhc3NOYW1lPVwicm91bmRlZC1ib3JkZXJcIj5cclxuICAgIFxyXG4gICAgPGg0PkZlYnJ1YXJ5IDIwMjQgLSBZYW5nIFhpYW9saW48L2g0PlxyXG4gICAgPHAgY2xhc3NOYW1lPSdpbmRlbnQnPlxyXG4gICAgICBUaGUgYXBwbGljYXRpb24gb2YgPHNwYW4gY2xhc3NOYW1lPSdib2xkLWZvbnQnPnByb2Jpb3RpY3M8L3NwYW4+IGluIHRyZWF0aW5nIDxzcGFuIGNsYXNzTmFtZT0nYm9sZC1mb250Jz5oZXBhdGljIGVuY2VwaGFsb3BhdGh5IChIRSk8L3NwYW4+IGhhcyBzcGFya2VkIHNpZ25pZmljYW50IDxzcGFuIGNsYXNzTmFtZT0nYm9sZC1mb250Jz5ldGhpY2FsIGRpc2N1c3Npb25zPC9zcGFuPi4gSEUsIGEgbmV1cm9sb2dpY2FsIGNvbXBsaWNhdGlvbiBjYXVzZWQgYnkgbGl2ZXIgZmFpbHVyZSwgc2V2ZXJlbHkgYWZmZWN0cyBwYXRpZW50cycgPHNwYW4gY2xhc3NOYW1lPSdib2xkLWZvbnQnPnF1YWxpdHkgb2YgbGlmZTwvc3Bhbj4uIEluIGFkZGl0aW9uIHRvIHRyYWRpdGlvbmFsIHRyZWF0bWVudHMsIHByb2Jpb3RpY3MgcmVndWxhdGUgdGhlIDxzcGFuIGNsYXNzTmFtZT0nYm9sZC1mb250Jz5pbnRlc3RpbmFsIG1pY3JvYmlvdGE8L3NwYW4+LCBpbXByb3ZlIDxzcGFuIGNsYXNzTmFtZT0nYm9sZC1mb250Jz5pbnRlc3RpbmFsIGJhcnJpZXIgZnVuY3Rpb248L3NwYW4+LCByZWR1Y2UgPHNwYW4gY2xhc3NOYW1lPSdib2xkLWZvbnQnPnRveGluIGFic29ycHRpb248L3NwYW4+LCBhbmQgYWxsZXZpYXRlIHN5bXB0b21zLiBIb3dldmVyLCBzZXZlcmFsIGV0aGljYWwgY29uc2lkZXJhdGlvbnMgYXJpc2Ugd2hlbiB1c2luZyBwcm9iaW90aWNzIGZvciBIRTpcclxuICAgIDwvcD5cclxuICAgIDx1bCBzdHlsZT17eyBsaXN0U3R5bGVUeXBlOiAnZGlzYycsIHBhZGRpbmdMZWZ0OiAnMjBweCcgfX0+XHJcbiAgICAgIDxsaT48c3BhbiBjbGFzc05hbWU9J2JvbGQtZm9udCc+U2FmZXR5IGFuZCBlZmZlY3RpdmVuZXNzPC9zcGFuPjogQ2xpbmljYWwgcmVzZWFyY2ggbXVzdCBzdHJpY3RseSBhZGhlcmUgdG8gPHNwYW4gY2xhc3NOYW1lPSdib2xkLWZvbnQnPmV0aGljYWwgc3RhbmRhcmRzPC9zcGFuPiwgZW5zdXJlIDxzcGFuIGNsYXNzTmFtZT0nYm9sZC1mb250Jz5pbmZvcm1lZCBjb25zZW50PC9zcGFuPiwgYW5kIHRob3JvdWdobHkgYXNzZXNzIHBvdGVudGlhbCByaXNrcy48L2xpPlxyXG4gICAgICA8bGk+PHNwYW4gY2xhc3NOYW1lPSdib2xkLWZvbnQnPlBhdGllbnQgYXV0b25vbXk8L3NwYW4+OiBQYXRpZW50cyBzaG91bGQgZnJlZWx5IGRlY2lkZSB3aGV0aGVyIHRvIHJlY2VpdmUgbmV3IHRyZWF0bWVudHMgYWZ0ZXIgdW5kZXJzdGFuZGluZyB0aGUgcmlza3MgYW5kIGJlbmVmaXRzLjwvbGk+XHJcbiAgICAgIDxsaT48c3BhbiBjbGFzc05hbWU9J2JvbGQtZm9udCc+VHJhbnNwYXJlbmN5PC9zcGFuPjogSXQgaXMgb3VyIHJlc3BvbnNpYmlsaXR5IHRvIHByb3ZpZGUgY2xlYXIgaW5mb3JtYXRpb24gb24gdGhlIHJvbGUgb2YgcHJvYmlvdGljcyBpbiB0aGUgb3ZlcmFsbCB0cmVhdG1lbnQgcGxhbi48L2xpPlxyXG4gICAgPC91bD5cclxuXHJcbiAgICA8aDQ+RmVicnVhcnkgMjAyNCAtIFFpdSBYaW55dWFuPC9oND5cclxuICAgIDxwIGNsYXNzTmFtZT0naW5kZW50Jz5cclxuICAgICAgUHJvZmVzc29yIFFpdSBwcm92aWRlZCBhbiBvdmVydmlldyBvZiB0aGUgPHNwYW4gY2xhc3NOYW1lPSdib2xkLWZvbnQnPmlHRU0gY29tcGV0aXRpb248L3NwYW4+IGFuZCBzaGFyZWQgZXhwZXJpZW5jZXMgZnJvbSB0aGUgTlVEVCBDSElOQSB0ZWFtLCBwYXJ0aWN1bGFybHkgZnJvbSB0aGVpciAyMDIyIHByb2plY3QuIFdlIGRpc2N1c3NlZCB1c2luZyA8c3BhbiBjbGFzc05hbWU9J2JvbGQtZm9udCc+Z2VuZXRpYyBlbmdpbmVlcmluZzwvc3Bhbj4gdG8gbW9kaWZ5IGV4aXN0aW5nIHByb2Jpb3RpYyBzdHJhaW5zLCBpbnRyb2R1Y2luZyBnZW5lcyB0YXJnZXRpbmcgPHNwYW4gY2xhc3NOYW1lPSdib2xkLWZvbnQnPmFtbW9uaWEgbWV0YWJvbGlzbTwvc3Bhbj4sIGFuZCBlbmhhbmNpbmcgdGhlaXIgZnVuY3Rpb25hbGl0eSB0byByZWR1Y2UgPHNwYW4gY2xhc3NOYW1lPSdib2xkLWZvbnQnPnRveGluIGFjY3VtdWxhdGlvbjwvc3Bhbj4gaW4gSEUgcGF0aWVudHMuIFRoZSBjb252ZXJzYXRpb24gYWxzbyBmb2N1c2VkIG9uIGVuc3VyaW5nIHRoZSA8c3BhbiBjbGFzc05hbWU9J2JvbGQtZm9udCc+c2FmZXR5IGFuZCBlZmZlY3RpdmVuZXNzPC9zcGFuPiBvZiB0aGVzZSBwcm9iaW90aWNzIGluIGNsaW5pY2FsIHByYWN0aWNlIHRocm91Z2ggPHNwYW4gY2xhc3NOYW1lPSdib2xkLWZvbnQnPnN5bnRoZXRpYyBiaW9sb2d5PC9zcGFuPiBtZXRob2RzLlxyXG4gICAgPC9wPlxyXG5cclxuICAgIDxoND5NYXJjaCAyMDI0IC0gWmh1IEJvPC9oND5cclxuICAgIDxwIGNsYXNzTmFtZT0naW5kZW50Jz5cclxuICAgICAgRmFjaW5nIGRpZmZpY3VsdGllcyBpbiBmaW5kaW5nIHN1aXRhYmxlIDxzcGFuIGNsYXNzTmFtZT0nYm9sZC1mb250Jz5pbmR1Y2luZyBwcm9tb3RlcnM8L3NwYW4+LCBQcm9mZXNzb3IgWmh1IGZyb20gU3VuIFlhdC1zZW4gVW5pdmVyc2l0eSBzdWdnZXN0ZWQgdXNpbmcgPHNwYW4gY2xhc3NOYW1lPSdib2xkLWZvbnQnPmJpbGUgYWNpZDwvc3Bhbj4gYXMgYSBiaW9tYXJrZXIuIEJpbGUgYWNpZHMgbm90IG9ubHkgaGF2ZSB2aXRhbCBwaHlzaW9sb2dpY2FsIHJvbGVzIGJ1dCBhbHNvIHJlZmxlY3QgPHNwYW4gY2xhc3NOYW1lPSdib2xkLWZvbnQnPm1ldGFib2xpYyBjaGFuZ2VzPC9zcGFuPi4gQnkgYnVpbGRpbmcgYSBiaWxlIGFjaWQtcmVzcG9uc2l2ZSBzeXN0ZW0sIGdlbmUgZXhwcmVzc2lvbiBjYW4gYmUgbW9yZSBhY2N1cmF0ZWx5IHJlZ3VsYXRlZCwgbGVhZGluZyB0byA8c3BhbiBjbGFzc05hbWU9J2JvbGQtZm9udCc+ZmxleGlibGUgZXhwZXJpbWVudGFsIGRlc2lnbnM8L3NwYW4+LiBUaGlzIHN0cmF0ZWd5IGVuaGFuY2VzIGJvdGggdGhlIDxzcGFuIGNsYXNzTmFtZT0nYm9sZC1mb250Jz5vcGVyYWJpbGl0eTwvc3Bhbj4gb2YgdGhlIGV4cGVyaW1lbnQgYW5kIGl0cyByZWxldmFuY2UgdG8gPHNwYW4gY2xhc3NOYW1lPSdib2xkLWZvbnQnPmNsaW5pY2FsIGFwcGxpY2F0aW9uczwvc3Bhbj4uXHJcbiAgICA8L3A+XHJcblxyXG4gICAgPGg0Pk1heSAyMDI0IC0gSGUgWGlhb2xvbmc8L2g0PlxyXG4gICAgPHAgY2xhc3NOYW1lPSdpbmRlbnQnPlxyXG4gICAgICBBZnRlciBjb25zdWx0aW5nIHdpdGggSEUgZXhwZXJ0IFByb2Zlc3NvciBIZSBYaWFvbG9uZywgd2Ugd2VyZSBhZHZpc2VkIHRvIHJlcGxhY2UgYmlsZSBhY2lkIG1hcmtlcnMgd2l0aCA8c3BhbiBjbGFzc05hbWU9J2JvbGQtZm9udCc+cGhlbnlsZXRoeWxhbWluZSAoUEVBKTwvc3Bhbj4uIEFzIGEgc2lnbmlmaWNhbnQgYmlvZ2VuaWMgYW1pbmUsIFBFQSBwbGF5cyBhIHJvbGUgaW4gPHNwYW4gY2xhc3NOYW1lPSdib2xkLWZvbnQnPm5lcnZlIHRyYW5zbWlzc2lvbjwvc3Bhbj4gYW5kIHBoeXNpb2xvZ2ljYWwgcmVndWxhdGlvbi4gVXNpbmcgUEVBIGFzIGEgcmVzcG9uc2UgbWFya2VyIGludHJvZHVjZXMgYSA8c3BhbiBjbGFzc05hbWU9J2JvbGQtZm9udCc+bW9yZSBmbGV4aWJsZSByZWd1bGF0b3J5IG1lY2hhbmlzbTwvc3Bhbj4gYW5kIG9mZmVycyBjbGVhcmVyIGluc2lnaHRzIGludG8gaXRzIHJvbGUgaW4gdmFyaW91cyBkaXNlYXNlcy4gVGhpcyBzaGlmdCBwcm92aWRlcyBhIDxzcGFuIGNsYXNzTmFtZT0nYm9sZC1mb250Jz5ub3ZlbCBhcHByb2FjaDwvc3Bhbj4gdG8gc2VsZWN0aW5nIGluZHVjaW5nIHByb21vdGVycyBhbmQgcHJvbW90ZXMgPHNwYW4gY2xhc3NOYW1lPSdib2xkLWZvbnQnPmRlZXBlciBleHBsb3JhdGlvbjwvc3Bhbj4gaW4gcmVsYXRlZCBmaWVsZHMuXHJcbiAgICA8L3A+XHJcblxyXG4gICAgPGg0Pk1heSAyMDI0IC0gWmhvdSBIb25nd2VpIGFuZCBDaGVuIEppbi1KdW48L2g0PlxyXG4gICAgPHAgY2xhc3NOYW1lPSdpbmRlbnQnPlxyXG4gICAgICBEci4gWmhvdSBIb25nd2VpIGZyb20gU2hlbnpoZW4gSG9zcGl0YWwgZW1waGFzaXplZCB0aGUgbmVlZCB0byBzb2x2ZSBjb21wbGljYXRpb25zIGR1cmluZyB0aGUgPHNwYW4gY2xhc3NOYW1lPSdib2xkLWZvbnQnPmRlc2lnbiBvZiB0aGUgc2FmZXR5IG1vZHVsZTwvc3Bhbj4uIENvbXBsaWNhdGlvbnMgY2FuIGdyZWF0bHkgaW1wYWN0IHBhdGllbnQgPHNwYW4gY2xhc3NOYW1lPSdib2xkLWZvbnQnPnJlY292ZXJ5PC9zcGFuPiBhbmQgPHNwYW4gY2xhc3NOYW1lPSdib2xkLWZvbnQnPnF1YWxpdHkgb2YgbGlmZTwvc3Bhbj4uIERlYW4gWmhvdSBzdWdnZXN0ZWQgPHNwYW4gY2xhc3NOYW1lPSdib2xkLWZvbnQnPnJlYWwtdGltZSBtb25pdG9yaW5nPC9zcGFuPiBvZiBwaHlzaW9sb2dpY2FsIGluZGljYXRvcnMgYW5kIGRydWcgcmVzcG9uc2VzIHRvIGFkanVzdCB0cmVhdG1lbnQgcGxhbnMuIFRoaXMgYXBwcm9hY2ggZW5oYW5jZXMgPHNwYW4gY2xhc3NOYW1lPSdib2xkLWZvbnQnPm1lZGljYWwgY2FyZSBxdWFsaXR5PC9zcGFuPiBhbmQgZW5zdXJlcyBwYXRpZW50IHNhZmV0eSwgcmVmbGVjdGluZyBhIDxzcGFuIGNsYXNzTmFtZT0nYm9sZC1mb250Jz5wZW9wbGUtY2VudGVyZWQgbWVkaWNhbCBwaGlsb3NvcGh5PC9zcGFuPi5cclxuICAgIDwvcD5cclxuXHJcbiAgICA8aDQ+SnVuZSAyMDI0IC0gRHUgQ2hhb2NoYW88L2g0PlxyXG4gICAgPHAgY2xhc3NOYW1lPSdpbmRlbnQnPlxyXG4gICAgICBJbiB0aGUgcHJlbGltaW5hcnkgZGVzaWduIG9mIHRoZSA8c3BhbiBjbGFzc05hbWU9J2JvbGQtZm9udCc+bWV0YWJvbGljIG1vZHVsZTwvc3Bhbj4sIHdlIGluaXRpYWxseSB0YXJnZXRlZCA8c3BhbiBjbGFzc05hbWU9J2JvbGQtZm9udCc+bW9ub2FtaW5lIG94aWRhc2UgQiAoTUFPQik8L3NwYW4+LiBIb3dldmVyLCB0aGlzIGNvbmZsaWN0ZWQgd2l0aCBvdXIgc2Vuc2luZyBtb2R1bGUuIEFmdGVyIGNvbnN1bHRpbmcgVGVhY2hlciBEdSBmcm9tIFBlYXJsIFJpdmVyIEhvc3BpdGFsLCB3ZSBkZWNpZGVkIHRvIGFkanVzdCB0aGUgZGlyZWN0aW9uIGFuZCBhZG9wdCBhIG5ldyA8c3BhbiBjbGFzc05hbWU9J2JvbGQtZm9udCc+bWV0YWJvbGljIHBhdGh3YXk8L3NwYW4+LiBUaGlzIGFkanVzdG1lbnQgb3B0aW1pemVkIDxzcGFuIGNsYXNzTmFtZT0nYm9sZC1mb250Jz5zeXN0ZW0gY29tcGF0aWJpbGl0eTwvc3Bhbj4gYW5kIGltcHJvdmVkIHRoZSBzdGFiaWxpdHkgb2YgaXRzIGZ1bmN0aW9ucywgbGF5aW5nIGEgc29saWQgZm91bmRhdGlvbiBmb3IgZnV0dXJlIGV4cGVyaW1lbnRzLlxyXG4gICAgPC9wPlxyXG5cclxuICAgIDxoND5KdW5lIDIwMjQgLSBDaGVuIFBlbmc8L2g0PlxyXG4gICAgPHAgY2xhc3NOYW1lPSdpbmRlbnQnPlxyXG4gICAgICBXaGlsZSBzdHVkeWluZyA8c3BhbiBjbGFzc05hbWU9J2JvbGQtZm9udCc+RXNjaGVyaWNoaWEgY29saSAoRWNOKTwvc3Bhbj4gaW4gY2hhc3NpcyBiaW9sb2d5LCB3ZSBlbmNvdW50ZXJlZCBpc3N1ZXMgd2l0aCBzdHJhaW4gaWRlbnRpZmljYXRpb24uIEFmdGVyIGNvbnN1bHRpbmcgUHJvZmVzc29yIENoZW4gUGVuZyBmcm9tIFNvdXRoZXJuIE1lZGljYWwgVW5pdmVyc2l0eSwgd2UgY29uZHVjdGVkIDxzcGFuIGNsYXNzTmFtZT0nYm9sZC1mb250Jz5tYXNzIHNwZWN0cm9tZXRyeTwvc3Bhbj4gYW5kIDxzcGFuIGNsYXNzTmFtZT0nYm9sZC1mb250Jz4xNlMgclJOQSBzZXF1ZW5jaW5nPC9zcGFuPiwgd2hpY2ggcmV2ZWFsZWQgZXJyb3JzIGluIG91ciBzdHJhaW4uIFByb2Zlc3NvciBDaGVuIGVtcGhhc2l6ZWQgdGhlIGltcG9ydGFuY2Ugb2YgYWNjdXJhdGVseSBpZGVudGlmeWluZyBjaGFzc2lzIG9yZ2FuaXNtcyBhbmQgYWR2aXNlZCByZXZpc2l0aW5nIHRoZSBleHBlcmltZW50YWwgZGVzaWduIHRvIGVuc3VyZSByZWxpYWJpbGl0eSBpbiBmdXR1cmUgcmVzZWFyY2guXHJcbiAgICA8L3A+XHJcblxyXG4gICAgPGg0PlNlcHRlbWJlciAyMDI0IC0gWmhlbmcgSnVzaGVuZzwvaDQ+XHJcbiAgICA8cCBjbGFzc05hbWU9J2luZGVudCc+XHJcbiAgICAgIE91ciB0ZWFtIGNvbnN1bHRlZCB3aXRoIFByb2Zlc3NvciBaaGVuZyBKdXNoZW5nIG9uIHRoZSA8c3BhbiBjbGFzc05hbWU9J2JvbGQtZm9udCc+Y2xpbmljYWwgdHJhbnNsYXRpb248L3NwYW4+IG9mIHByb2Jpb3RpY3MgZm9yIEhFIHRyZWF0bWVudC4gVGhlIGRpc2N1c3Npb24gZm9jdXNlZCBvbiA8c3BhbiBjbGFzc05hbWU9J2JvbGQtZm9udCc+b3JhbCBjYXBzdWxlczwvc3Bhbj4sIGEgZm9ybSBvZiBwcm9iaW90aWMgZGVsaXZlcnkgdGhhdCBvZmZlcnMgY29udmVuaWVuY2UsIDxzcGFuIGNsYXNzTmFtZT0nYm9sZC1mb250Jz5kb3NhZ2UgY29udHJvbDwvc3Bhbj4sIGFuZCBoaWdoIHBhdGllbnQgYWNjZXB0YW5jZS4gUHJvZmVzc29yIFpoZW5nIHN0cmVzc2VkIHRoZSBpbXBvcnRhbmNlIG9mIGNvbmR1Y3RpbmcgPHNwYW4gY2xhc3NOYW1lPSdib2xkLWZvbnQnPmxhcmdlLXNjYWxlIGNsaW5pY2FsIHRyaWFsczwvc3Bhbj4gdG8gYXNzZXNzIHNhZmV0eSBhbmQgZWZmaWNhY3kgaW4gcmVhbC13b3JsZCBjb25kaXRpb25zLiBBZGRpdGlvbmFsbHksIHRoZSA8c3BhbiBjbGFzc05hbWU9J2JvbGQtZm9udCc+bWFudWZhY3R1cmluZyBwcm9jZXNzPC9zcGFuPiBzaG91bGQgY29tcGx5IHdpdGggPHNwYW4gY2xhc3NOYW1lPSdib2xkLWZvbnQnPkdNUCBzdGFuZGFyZHM8L3NwYW4+IHRvIGVuc3VyZSBwcm9kdWN0IHF1YWxpdHkuIFdlIGFsc28gZXhwbG9yZWQgPHNwYW4gY2xhc3NOYW1lPSdib2xkLWZvbnQnPm1pY3JvZW5jYXBzdWxhdGlvbiB0ZWNobm9sb2d5PC9zcGFuPiB0byBwcm90ZWN0IHByb2Jpb3RpYyB2aWFiaWxpdHksIGVuc3VyaW5nIGVmZmVjdGl2ZSBkZWxpdmVyeSB0byB0aGUgaW50ZXN0aW5lcyBhbmQgZW5oYW5jaW5nIHRoZXJhcGV1dGljIGVmZmVjdHMuXHJcbiAgICA8L3A+XHJcbiAgPC9kaXY+XHJcbjwvRWxlbWVudD5cclxuXHJcbjwvZGl2PlxyXG48L2Rpdj5cclxuPC8+XHJcbiAgKTtcclxufVxyXG4iLCAiaW1wb3J0IHsgTmF2IH0gZnJvbSAncmVhY3QtYm9vdHN0cmFwJztcclxuaW1wb3J0IHsgTGluayxFbGVtZW50IH0gZnJvbSAncmVhY3Qtc2Nyb2xsJztcclxuaW1wb3J0IFJlYWN0LHt1c2VFZmZlY3QsdXNlU3RhdGV9IGZyb20gJ3JlYWN0JztcclxuXHJcbi8vIHNpZGVuYXZiYXIgYmVnaW5cclxuaW50ZXJmYWNlIFNpZGVOYXZiYXJQcm9wcyB7XHJcbiAgYWN0aXZlTGluazogc3RyaW5nO1xyXG59XHJcbmNvbnN0IFNpZGVOYXZiYXI6IFJlYWN0LkZDPFNpZGVOYXZiYXJQcm9wcz4gPSAoeyBhY3RpdmVMaW5rIH0pID0+IHtcclxuICByZXR1cm4gKFxyXG4gICAgPGRpdiBjbGFzc05hbWU9XCJzaWRlLW5hdmJhclwiPlxyXG4gICAgICA8TmF2IGNsYXNzTmFtZT1cImZsZXgtY29sdW1uXCI+XHJcbiAgICAgICAgPE5hdi5MaW5rIGFzPXtMaW5rfSB0bz1cInNlY3Rpb24xXCIgc21vb3RoPXt0cnVlfSBkdXJhdGlvbj17NTAwfSBjbGFzc05hbWU9e2FjdGl2ZUxpbmsgPT09ICdzZWN0aW9uMScgPyAnYWN0aXZlJyA6ICdub3RBY3RpdmUnfT5PdmVydmlldzwvTmF2Lkxpbms+XHJcbiAgICAgICAgPE5hdi5MaW5rIGFzPXtMaW5rfSB0bz1cInNlY3Rpb24yXCIgc21vb3RoPXt0cnVlfSBkdXJhdGlvbj17NTAwfSBjbGFzc05hbWU9e2FjdGl2ZUxpbmsgPT09ICdzZWN0aW9uMicgPyAnYWN0aXZlJyA6ICdub3RBY3RpdmUnfT5TY2llbmNlIEJyb2NodXJlIC0gRm91bmRhdGlvbiBQcm9qZWN0PC9OYXYuTGluaz5cclxuICAgICAgICA8TmF2LkxpbmsgYXM9e0xpbmt9IHRvPVwic2VjdGlvbjNcIiBzbW9vdGg9e3RydWV9IGR1cmF0aW9uPXs1MDB9IGNsYXNzTmFtZT17YWN0aXZlTGluayA9PT0gJ3NlY3Rpb24zJyA/ICdhY3RpdmUnIDogJ25vdEFjdGl2ZSd9PlBhdGllbnQgbGV2ZWwgLSBDYXJlIFByb2plY3Q8L05hdi5MaW5rPlxyXG4gICAgICAgIDxOYXYuTGluayBhcz17TGlua30gdG89XCJzZWN0aW9uNFwiIHNtb290aD17dHJ1ZX0gZHVyYXRpb249ezUwMH0gY2xhc3NOYW1lPXthY3RpdmVMaW5rID09PSAnc2VjdGlvbjQnID8gJ2FjdGl2ZScgOiAnbm90QWN0aXZlJ30+U2Nob29sIGxldmVsIC0gVW5pdmVyc2FsaXNhdGlvbiBQcm9qZWN0PC9OYXYuTGluaz5cclxuICAgICAgICA8TmF2LkxpbmsgYXM9e0xpbmt9IHRvPVwic2VjdGlvbjVcIiBzbW9vdGg9e3RydWV9IGR1cmF0aW9uPXs1MDB9IGNsYXNzTmFtZT17YWN0aXZlTGluayA9PT0gJ3NlY3Rpb241JyA/ICdhY3RpdmUnIDogJ25vdEFjdGl2ZSd9PlJlZ2lvbmFsIGxldmVsIC0gQ292ZXJhZ2UgUHJvamVjdDwvTmF2Lkxpbms+XHJcbiAgICAgICAgPE5hdi5MaW5rIGFzPXtMaW5rfSB0bz1cInNlY3Rpb242XCIgc21vb3RoPXt0cnVlfSBkdXJhdGlvbj17NTAwfSBjbGFzc05hbWU9e2FjdGl2ZUxpbmsgPT09ICdzZWN0aW9uNicgPyAnYWN0aXZlJyA6ICdub3RBY3RpdmUnfT5Xb3JsZCBMZXZlbCAtIEV4dGVuc2lvbiBQcm9qZWN0PC9OYXYuTGluaz5cclxuICAgICAgICA8TmF2LkxpbmsgYXM9e0xpbmt9IHRvPVwic2VjdGlvbjdcIiBzbW9vdGg9e3RydWV9IGR1cmF0aW9uPXs1MDB9IGNsYXNzTmFtZT17YWN0aXZlTGluayA9PT0gJ3NlY3Rpb243JyA/ICdhY3RpdmUnIDogJ25vdEFjdGl2ZSd9PkNvbmNsdXNpb25zIGFuZCBvdXRsb29rPC9OYXYuTGluaz5cclxuICAgICAgPC9OYXY+XHJcbiAgICA8L2Rpdj5cclxuICApO1xyXG59O1xyXG4vLyBzaWRlbmF2YmFyIGVuZCBcclxuXHJcblxyXG5leHBvcnQgZnVuY3Rpb24gRWR1Y2F0aW9uKCkgeyAvLyBzaWRlbmF2YmFyIGJlZ2luXHJcbiAgY29uc3QgW2FjdGl2ZUxpbmssIHNldEFjdGl2ZUxpbmtdID0gdXNlU3RhdGU8c3RyaW5nPignJyk7XHJcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xyXG4gICAgICBjb25zdCBoYW5kbGVTY3JvbGwgPSAoKSA9PiB7XHJcbiAgICAgICAgY29uc3Qgc2VjdGlvbnMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcuZWxlbWVudCcpO1xyXG4gICAgICAgIGxldCBjdXJyZW50U2VjdGlvbiA9ICcnO1xyXG4gICAgICAgICAgc2VjdGlvbnMuZm9yRWFjaChzZWN0aW9uID0+IHtcclxuICAgICAgICAgICAgY29uc3Qgc2VjdGlvblRvcCA9IHNlY3Rpb24uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkudG9wO1xyXG4gICAgICAgICAgICBpZiAoc2VjdGlvblRvcCA8PSB3aW5kb3cuaW5uZXJIZWlnaHQgLyAyICYmIHNlY3Rpb25Ub3AgPiAtc2VjdGlvbi5jbGllbnRIZWlnaHQpIHtcclxuICAgICAgICAgICAgICBjdXJyZW50U2VjdGlvbiA9IHNlY3Rpb24uaWQ7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIHNldEFjdGl2ZUxpbmsoY3VycmVudFNlY3Rpb24pO1xyXG4gICAgICB9O1xyXG4gICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgaGFuZGxlU2Nyb2xsKTtcclxuICAgICAgcmV0dXJuICgpID0+IHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdzY3JvbGwnLCBoYW5kbGVTY3JvbGwpO1xyXG4gICAgfSwgW10pO1xyXG4gICAgLy8gc2lkZW5hdmJhciBlbmRcclxuXHJcblxyXG5cclxuICByZXR1cm4gKFxyXG4gICAgPD5cclxuICAgIDxkaXYgY2xhc3NOYW1lPVwiY3VzdG9tLWhlYWRlci1lZHVjYXRpb25cIj5cclxuPGgxIGNsYXNzTmFtZT1cImNlbnRlcmVkLXRpdGxlXCI+XHJcbjxpbWcgXHJcbiAgICAgICAgICAgICAgICBzcmM9XCJodHRwczovL3N0YXRpYy5pZ2VtLndpa2kvdGVhbXMvNTM3OC9oZWFkZXIvZWR1Y2F0aW9uLnBuZ1wiXHJcbiAgICAgICAgICAgICAgICBhbHQ9XCJzYWZldHkgaGVhZGVyXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImhlYWRlci1pbWdcIlxyXG4gICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIFxyXG4gICAgICAgICAgICAgICAgc3JjPVwiaHR0cHM6Ly9zdGF0aWMuaWdlbS53aWtpL3RlYW1zLzUzNzgvaGVhZGVyL2hlYWRlci1iYXIud2VicFwiXHJcbiAgICAgICAgICAgICAgICBhbHQ9XCJzYWZldHkgaGVhZGVyXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImhlYWRlci1iYXJcIlxyXG4gICAgICAgICAgICAgIC8+XHJcbiAgPC9oMT5cclxuPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwicm93ICBiZy1yaWNlX3llbGxvd1wiPlxyXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLTJcIj5cclxuICAgICAgICAgIDxTaWRlTmF2YmFyIGFjdGl2ZUxpbms9e2FjdGl2ZUxpbmt9ICAgICAgICAgIC8+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgXHJcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtMTBcIj5cclxuICAgICAgICAgIFxyXG4gICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgIDxFbGVtZW50IG5hbWU9XCJzZWN0aW9uMVwiIGNsYXNzTmFtZT1cImVsZW1lbnQgcm91bmRlZC1ib3JkZXJcIiBpZD0nc2VjdGlvbjEnPlxyXG4gICAgICAgICAgICAgICAgIDxoMT4xLm92ZXJ2aWV3PC9oMT5cclxuICAgICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJpbmRlbnRcIj5UaGlzIHllYXIsIG91ciB0ZWFtIGhhcyBkZXZvdGVkIGEgZ3JlYXQgZGVhbCBvZiBlZmZvcnQgdG8gdGhlIGZpZWxkIG9mIGVkdWNhdGlvbiwgYXMgd2UgYXJlIGNvbnZpbmNlZCB0aGF0IHRoZSBkZXZlbG9wbWVudCBhbmQgcG9wdWxhcmlzYXRpb24gb2Ygc3ludGhldGljIGJpb2xvZ3kgY2Fubm90IGJlIGFjaGlldmVkIHdpdGhvdXQgdGhlIGJyb2FkIHBhcnRpY2lwYXRpb24gYW5kIHN1cHBvcnQgb2YgdGhlIHB1YmxpYywgd2hpY2ggaXMgYXQgdGhlIGhlYXJ0IG9mIHNjaWVuY2UgZWR1Y2F0aW9uLjwvcD5cclxuICAgICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJpbmRlbnRcIj5UbyB0aGlzIGVuZCwgd2UgaGF2ZSBlbGFib3JhdGVkIGEgc2VyaWVzIG9mIHByb21vdGlvbmFsIG1hdGVyaWFscywgdGFrZW4gdGhlIGluaXRpYXRpdmUgdG8gcmVhY2ggb3V0IHRvIHBhdGllbnQgZ3JvdXBzLCBjYXJyaWVkIG91dCBzY2llbmNlIHBvcHVsYXJpc2F0aW9uIGFjdGl2aXRpZXMgaW4gc2Nob29scywgYW5kIHdvcmtlZCB0byBleHBhbmQgb3VyIHJlZ2lvbmFsIGluZmx1ZW5jZSB3aGlsZSBhY3RpdmVseSBzcGVha2luZyBvdXQgb24gdGhlIGludGVybmF0aW9uYWwgc3RhZ2UuIEF0IHRoZSBsb2NhbCBsZXZlbCwgaW4gcGFydGljdWxhciwgd2UgYXJlIHdvcmtpbmcgaGFyZCB0byByZWFjaCBvdXQgdG8gYSB3aWRlciByYW5nZSBvZiBwZW9wbGUsIHdpdGggYSB2aWV3IHRvIGNyZWF0aW5nIGEgZmFyLXJlYWNoaW5nIHNvY2lhbCBpbXBhY3QuPC9wPlxyXG4gICAgICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cImluZGVudFwiPkF0IHRoZSBzYW1lIHRpbWUsIHdlIGhhdmUgZXN0YWJsaXNoZWQgYSBzeXN0ZW1hdGljIGVkdWNhdGlvbmFsIG1lY2hhbmlzbSB0aGF0IGFpbXMgdG8gdHJhbnNmb3JtIGhpZ2ggc2Nob29sIHN0dWRlbnRzIGZyb20gcGFzc2l2ZSByZWNpcGllbnRzIG9mIGtub3dsZWRnZSB0byBhY3RpdmUgcHJhY3RpdGlvbmVycyBhdCB0aGUgdW5pdmVyc2l0eSBsZXZlbCwgdGh1cyBmb3JtaW5nIGEgc3VzdGFpbmFibGUgZWR1Y2F0aW9uYWwgbG9vcC48L3A+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT0naW1hZ2UtY29udGFpbmVyJz5cclxuICAgICAgICAgICAgICAgIDxpbWcgXHJcbiAgICAgICAgICAgICAgICBzcmM9XCJodHRwczovL3N0YXRpYy5pZ2VtLndpa2kvdGVhbXMvNTM3OC9vdmVydmlldy53ZWJwXCJcclxuICAgICAgICAgICAgICAgIGFsdD1cImV4YW1wbGVcIlxyXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiaW1hZ2Utd2lkZVwiXHJcbiAgICAgICAgICAgICAgICAgIC8+ICBcclxuICAgICAgICAgICAgICAgICA8ZmlnY2FwdGlvbiBjbGFzc05hbWU9J2NhcHRpb24nPkZpZ3VyZSAxIE1hcCBvZiBvdXIgZWR1Y2F0aW9uIG1vZGVsPC9maWdjYXB0aW9uPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgIDwvRWxlbWVudD5cclxuICAgICAgICAgIFxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYmQtY2FsbG91dCBiZC1jYWxsb3V0LWluZm8gYmctZ3JheVwiPlxyXG4gICAgICAgICAgICAgICAgICA8aDE+V2hhdCBkbyB3ZSBkbyB0byAuLi4/IFNlZS4uLjwvaDE+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICBcclxuICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICA8RWxlbWVudCBuYW1lPVwic2VjdGlvbjJcIiBjbGFzc05hbWU9XCJlbGVtZW50IHJvdW5kZWQtYm9yZGVyXCIgaWQ9J3NlY3Rpb24yJz5cclxuICAgICAgICAgICAgICAgIDxoMT5TY2llbmNlIEJyb2NodXJlIC0gRm91bmRhdGlvbiBQcm9qZWN0PC9oMT5cclxuICAgICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cImluZGVudFwiPkluIG9yZGVyIHRvIGhlbHAgeW91IHVuZGVyc3RhbmQgaGVwYXRpYyBlbmNlcGhhbG9wYXRoeSBtb3JlIGVhc2lseSBhbmQgY29tcHJlaGVuc2l2ZWx5LCB3ZSBoYXZlIGNyZWF0ZWQgdGhlIGZvbGxvd2luZyBzY2llbmNlIGJyb2NodXJlLiBJdCBiZWdpbnMgd2l0aCBhIGJyaWVmIGludHJvZHVjdGlvbiB0byB0aGUgZnVuY3Rpb25zIG9mIHRoZSBsaXZlciwgZm9sbG93ZWQgYnkgYSBicmllZiBkaXNlYXNlIG92ZXJ2aWV3IG9mIGhlcGF0aWMgZW5jZXBoYWxvcGF0aHkuIEFmdGVyIGEgYnJpZWYgdW5kZXJzdGFuZGluZyBvZiBoZXBhdGljIGVuY2VwaGFsb3BhdGh5LCB0aGUgY2F1c2VzLCBkaWFnbm9zaXMgYW5kIHByZXZlbnRpb24gb2YgdGhlIGRpc2Vhc2UgYXJlIGludHJvZHVjZWQgdG8gdGhlIHB1YmxpYy4gRm9yIHBhdGllbnRzIHdpdGggaGVwYXRpYyBlbmNlcGhhbG9wYXRoeSwgd2UgYWxzbyBob3BlIHRoYXQgYnkgaW50cm9kdWNpbmcgdGhlIHBhdGhvZ2VuZXNpcyBhbmQgc3RhZ2luZyBvZiB0aGUgZGlzZWFzZSwgd2UgY2FuIGhlbHAgdGhlbSBiZXR0ZXIgdW5kZXJzdGFuZCB0aGVpciBvd24gc2l0dWF0aW9uIGFuZCB0YXJnZXQgdGhlaXIgdHJlYXRtZW50IGFuZCBjYXJlLCBzbyBhcyB0byBtaXRpZ2F0ZSB0aGUgZGV2ZWxvcG1lbnQgb2YgdGhlIGRpc2Vhc2UgYW5kIGV2ZW4gYWNoaWV2ZSB0aGUgZWZmZWN0IG9mIHRyZWF0bWVudCBhbmQgY3VyZS48L3A+XHJcbiAgICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJpbmRlbnRcIj5UaGlzIHBhbXBobGV0IHdpbGwgc3VwcG9ydCBhIHNlcmllcyBvZiBhY3Rpdml0aWVzIHRoYXQgd2Ugd2lsbCBmb2xsb3cgdXAuIE5vdCBvbmx5IGRvZXMgaXQgcHJvdmlkZSB0aGUgcHVibGljIHdpdGggZWFzeS10by11bmRlcnN0YW5kIG1lZGljYWwga25vd2xlZGdlLCBpdCB3aWxsIGFsc28gc2VydmUgYXMgYW4gZWR1Y2F0aW9uYWwgdG9vbCB0byBjb21wbGVtZW50IG91ciB0YWxrcyBpbiBzY2hvb2xzLCBjb21tdW5pdHkgY2VudHJlcyBhbmQgb3RoZXIgdmVudWVzLiBUaHJvdWdoIHRoZXNlIGFjdGl2aXRpZXMsIHdlIGNhbiBmdXJ0aGVyIGV4cGFuZCB0aGUgcmVhY2ggb2Ygb3VyIHNjaWVuY2Ugb3V0cmVhY2gsIGVuc3VyZSB0aGF0IG1vcmUgcGVvcGxlIGhhdmUgYWNjZXNzIHRvIHRoZSBuZWNlc3NhcnkgaGVhbHRoIGluZm9ybWF0aW9uLCBhbmQgcmFpc2UgdGhlIGxldmVsIG9mIGF3YXJlbmVzcyBvZiBoZXBhdGljIGVuY2VwaGFsb3BhdGh5IGluIHRoZSBjb21tdW5pdHkgYXMgYSB3aG9sZS4gPC9wPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9J2ltYWdlLWNvbnRhaW5lcic+XHJcbiAgICAgICAgICAgICAgICA8aW1nIFxyXG4gICAgICAgICAgICAgICAgc3JjPVwiaHR0cHM6Ly9zdGF0aWMuaWdlbS53aWtpL3RlYW1zLzUzNzgvcGRmL2Jyb2NodXJlczEud2VicFwiXHJcbiAgICAgICAgICAgICAgICBhbHQ9XCJleGFtcGxlXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImltYWdlLXdpZGVcIlxyXG4gICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICA8ZmlnY2FwdGlvbiBjbGFzc05hbWU9J2NhcHRpb24nPkZpZ3VyZSAyIEhvbWUgcGFnZSBvZiBvdXIgc2NpZW5jZSBlZHVjYXRpb24gYnJvY2h1cmU8L2ZpZ2NhcHRpb24+XHJcbiAgICAgICAgICAgICAgICA8aW1nIFxyXG4gICAgICAgICAgICAgICAgc3JjPVwiaHR0cHM6Ly9zdGF0aWMuaWdlbS53aWtpL3RlYW1zLzUzNzgvcGRmL2Jyb2NodXJlczIud2VicFwiXHJcbiAgICAgICAgICAgICAgICBhbHQ9XCJleGFtcGxlXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImltYWdlLXdpZGVcIlxyXG4gICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICA8ZmlnY2FwdGlvbiBjbGFzc05hbWU9J2NhcHRpb24nPkZpZ3VyZSAzIEVuZCBwYWdlIG9mIG91ciBzY2llbmNlIGVkdWNhdGlvbiBicm9jaHVyZTwvZmlnY2FwdGlvbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvRWxlbWVudD5cclxuICAgICAgICAgIFxyXG5cclxuICAgICAgICAgICAgICA8RWxlbWVudCBuYW1lPVwic2VjdGlvbjNcIiBjbGFzc05hbWU9XCJlbGVtZW50IHJvdW5kZWQtYm9yZGVyXCIgaWQ9J3NlY3Rpb24zJz5cclxuICAgICAgICAgICAgICAgIDxoMT5QYXRpZW50IGxldmVsIC0gQ2FyZSBQcm9qZWN0PC9oMT5cclxuICAgICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cImluZGVudFwiPkluIG9yZGVyIHRvIGdhaW4gYSBkZWVwZXIgdW5kZXJzdGFuZGluZyBvZiB0aGUgYWN0dWFsIG5lZWRzIG9mIG91ciBwYXRpZW50cywgd2UgcGxhbiB0byBjb25kdWN0IGFuIGV4aGF1c3RpdmUgaW50ZXJ2aWV3IHdpdGggdGhlbS4gT3VyIGludGVydmlldyB3aWxsIGNvdmVyIGEgd2lkZSByYW5nZSBvZiBhc3BlY3RzIHN1Y2ggYXMgZGlzZWFzZSBleHBlcmllbmNlLCBtZWRpY2FsIGhpc3RvcnksIGFiZG9taW5hbCBpbmZlY3Rpb25zIGFuZCBwZXJzb25hbCBmZWVsaW5ncywgYWltaW5nIHRvIGdhaW4gYSBjb21wcmVoZW5zaXZlIHVuZGVyc3RhbmRpbmcgb2YgdGhlIHBhdGllbnQncyBsaWZlIHNpdHVhdGlvbiBhbmQgdHJlYXRtZW50IGV4cGVyaWVuY2UuIFRocm91Z2ggdGhpcyBpbnRlcnZpZXcsIHdlIGhvcGUgdG8gbm90IG9ubHkgZWR1Y2F0ZSBwYXRpZW50cyBvbiBkaXNlYXNlIG1hbmFnZW1lbnQgYW5kIHNlbGYtY2FyZSwgYnV0IGFsc28gcGF5IHNwZWNpYWwgYXR0ZW50aW9uIHRvIGNvbGxlY3RpbmcgZmVlZGJhY2sgZnJvbSBwYXRpZW50cyBvbiBvdXIgZXhpc3Rpbmcgc2VydmljZXMgYW5kIHRvIHVuZGVyc3RhbmQgd2hlcmUgdGhleSB3b3VsZCBsaWtlIHVzIHRvIGltcHJvdmUgb3IgcHJvdmlkZSBhZGRpdGlvbmFsIHN1cHBvcnQuIDwvcD5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPSdpbWFnZS1jb250YWluZXInPlxyXG4gICAgICAgICAgICAgICAgPGltZyBcclxuICAgICAgICAgICAgICAgIHNyYz1cImh0dHBzOi8vc3RhdGljLmlnZW0ud2lraS90ZWFtcy81Mzc4L3BhdGllbnRzMS53ZWJwXCJcclxuICAgICAgICAgICAgICAgIGFsdD1cImV4YW1wbGVcIlxyXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiaW1hZ2Utd2lkZVwiXHJcbiAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgIDxmaWdjYXB0aW9uIGNsYXNzTmFtZT0nY2FwdGlvbic+RmlndXJlIDQgSW4gTWF5IDIwMjQsIHdlIGhhdmUgYW4gaW4tZGVwdGggY29udmVyc2F0aW9uIHdpdGggb3VyIHBhdGllbnRzPC9maWdjYXB0aW9uPlxyXG4gICAgICAgICAgICAgICAgPGltZyBcclxuICAgICAgICAgICAgICAgIHNyYz1cImh0dHBzOi8vc3RhdGljLmlnZW0ud2lraS90ZWFtcy81Mzc4L3BhdGllbnRzMi53ZWJwXCJcclxuICAgICAgICAgICAgICAgIGFsdD1cImV4YW1wbGVcIlxyXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiaW1hZ2Utd2lkZVwiXHJcbiAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgIDxmaWdjYXB0aW9uIGNsYXNzTmFtZT0nY2FwdGlvbic+RmlndXJlIDUgV2UgYXJlIGF0IHRoZSBTb3V0aGVybiBIb3NwaXRhbCBMaXZlciBDZW50cmU8L2ZpZ2NhcHRpb24+XHJcblxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cImluZGVudFwiPkluIHBhcnRpY3VsYXIsIHdlIHdpbGwgaW50cm9kdWNlIGEgbmV3IHRyZWF0bWVudCBvcHRpb24gLSB0aGUgb3JhbCBhZG1pbmlzdHJhdGlvbiBvZiB5b2dodXJ0IGNvbnRhaW5pbmcgc3BlY2lmaWMgcHJvYmlvdGljcyB0byBoZWxwIGFsbGV2aWF0ZSB0aGUgY29uZGl0aW9uIGFuZCByZWR1Y2UgaW5mbGFtbWF0aW9uIC0gYW5kIGFzayBwYXRpZW50cyBhYm91dCB0aGVpciBleHBlY3RhdGlvbnMgYW5kIHN1Z2dlc3Rpb25zIGZvciBzdWNoIG5ldyB0cmVhdG1lbnRzLiBXZSBleHBlY3QgdGhhdCB0aHJvdWdoIHRoaXMgZmVlZGJhY2ssIHdlIHdpbGwgYmUgYWJsZSB0byBtb3JlIGFjY3VyYXRlbHkgbWVldCB0aGUgbmVlZHMgb2Ygb3VyIHBhdGllbnRzLCBpbXByb3ZlIG91ciBwcm9ncmFtbWUgZGVzaWduLCBhbmQgZW5oYW5jZSBwYXRpZW50IG91dGNvbWVzIGFuZCBxdWFsaXR5IG9mIGxpZmUuPC9wPlxyXG4gICAgICAgICAgICAgIDwvRWxlbWVudD5cclxuXHJcblxyXG4gICAgICAgICAgICAgIDxFbGVtZW50IG5hbWU9XCJzZWN0aW9uNFwiIGNsYXNzTmFtZT1cImVsZW1lbnQgcm91bmRlZC1ib3JkZXJcIiBpZD0nc2VjdGlvbjQnPlxyXG4gICAgICAgICAgICAgICAgPGgxPlNjaG9vbCBsZXZlbCAtIFVuaXZlcnNhbGlzYXRpb24gUHJvamVjdDwvaDE+XHJcbiAgICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJib2xkLWZvbnRcIj4oMSkgTGVjdHVyZXMgZm9yIGhpZ2ggc2Nob29sIHN0dWRlbnRzIC0gcmVjaXBpZW50cyBvZiBrbm93bGVkZ2U8L3A+XHJcbiAgICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJpbmRlbnRcIj5JbiBvcmRlciB0byBwcm9tb3RlIHRoZSBrbm93bGVkZ2Ugb2Ygc3ludGhldGljIGJpb2xvZ3kgYW5kIHRvIGVuaGFuY2UgdGhlIGludGVyZXN0IG9mIHlvdW5nIHBlb3BsZSBpbiB0aGlzIGN1dHRpbmctZWRnZSBmaWVsZCBvZiBzY2llbmNlIGFuZCB0ZWNobm9sb2d5LCB3ZSBoYXZlIHN1Y2Nlc3NmdWxseSB0cmF2ZWxsZWQgdG8gWGlhbmd5aW4gTm8uIDEgSGlnaCBTY2hvb2wgaW4gSHVuYW4gUHJvdmluY2UsIENoaW5hIGFuZCBGb3NoYW4gSGlnaCBTY2hvb2wgaW4gR3Vhbmdkb25nIFByb3ZpbmNlIHRvIGRlbGl2ZXIgaW4tc2Nob29sIGxlY3R1cmVzLiBEdXJpbmcgdGhpcyBldmVudCwgaGlnaCBzY2hvb2wgc3R1ZGVudHMgc2hvd2VkIGdyZWF0IGVudGh1c2lhc20gYW5kIGN1cmlvc2l0eSBhcyBhY3RpdmUgYWJzb3JiZXJzIG9mIGtub3dsZWRnZS4gVGhlIGxlY3R1cmVzIGZvY3VzZWQgb24gdGhlIGJhc2ljIGNvbmNlcHRzIG9mIHN5bnRoZXRpYyBiaW9sb2d5IGFuZCBpdHMgYXBwbGljYXRpb25zLCB3aXRoIGEgc3BlY2lhbCBpbnRyb2R1Y3Rpb24gdG8gb3VyIHRlYW0ncyByZXNlYXJjaCBwcm9qZWN0IG9uIHRhY2tsaW5nIGhlcGF0aWMgZW5jZXBoYWxvcGF0aHkgYnkgbWVhbnMgb2Ygc3ludGhldGljIGJpb2xvZ3kuPC9wPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9J2ltYWdlLWNvbnRhaW5lcic+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT0ncm93Jz5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPSdjb2wtNic+XHJcbiAgICAgICAgICAgICAgICA8aW1nIFxyXG4gICAgICAgICAgICAgICAgICBzcmM9XCJodHRwczovL3N0YXRpYy5pZ2VtLndpa2kvdGVhbXMvNTM3OC9oaWdoLXNjaG9vbDEud2VicFwiXHJcbiAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICBhbHQ9XCJleGFtcGxlXCJcclxuICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwicmVzcG9uc2l2ZS1pbWdcIlxyXG4gICAgICAgICAgICAgICAgLz4gIFxyXG4gICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT0nY29sLTYnPlxyXG4gICAgICAgICAgICAgICAgPGltZyBcclxuICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgIHNyYz1cImh0dHBzOi8vc3RhdGljLmlnZW0ud2lraS90ZWFtcy81Mzc4LzAzN2U3ZmMwOGI4Zjg1MTgwOThlM2FmNzA2ZjllZWYud2VicFwiXHJcbiAgICAgICAgICAgICAgICAgIGFsdD1cImV4YW1wbGVcIlxyXG4gICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJyZXNwb25zaXZlLWltZ1wiXHJcbiAgICAgICAgICAgICAgICAvPiAgXHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGZpZ2NhcHRpb24gY2xhc3NOYW1lPSdjYXB0aW9uJz5GaWd1cmUgNiBJbiBKdW5lIDIwMjQsIHdlIHdlbnQgaW50byBoaWdoIHNjaG9vbHMgaW4gQ2hpbmEgdG8gc3BlYWsgdG8gc3R1ZGVudHMgYW5kIGdldCBmZWVkYmFjazwvZmlnY2FwdGlvbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJpbmRlbnRcIj5BZnRlciB0aGUgbGVjdHVyZSwgYSBxdWVzdGlvbm5haXJlIHdhcyBkaXN0cmlidXRlZCB0byB0aGUgc3R1ZGVudHMgdG8gYXNzZXNzIHdoZXRoZXIgdGhleSBoYWQgaW5jcmVhc2VkIHRoZWlyIHVuZGVyc3RhbmRpbmcgb2YgdGhlIGZpZWxkIGFuZCB0aGVpciBpbnRlcmVzdCBpbiBzeW50aGV0aWMgYmlvbG9neSB0aHJvdWdoIHRoZSBsZWN0dXJlLiBUaGUgcXVlc3Rpb25uYWlyZSB3YXMgZGVzaWduZWQgdG8gaW5jbHVkZSBxdWVzdGlvbnMgb2YgbXVsdGlwbGUgZGltZW5zaW9ucywgc3VjaCBhcyB0aGUgdW5kZXJzdGFuZGluZyBvZiB0aGUgYmFzaWMgY29uY2VwdHMgb2Ygc3ludGhldGljIGJpb2xvZ3ksIHRoZSBsZXZlbCBvZiBpbnRlcmVzdCBpbiB0aGUgY29udGVudCBvZiB0aGUgbGVjdHVyZSwgYW5kIHRoZSB3aWxsaW5nbmVzcyB0byBwYXJ0aWNpcGF0ZSBpbiByZWxhdGVkIGFjdGl2aXRpZXMgaW4gdGhlIGZ1dHVyZS48L3A+XHJcbiAgIFxyXG4gICAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwiaW5kZW50XCI+QnkgY29sbGVjdGluZyBhbmQgYW5hbHlzaW5nIHN0dWRlbnRzJyBmZWVkYmFjaywgd2UgY2FuIG1vcmUgYWNjdXJhdGVseSBncmFzcCB0aGUgY3VycmVudCBzaXR1YXRpb24gb2YgeW91bmcgcGVvcGxlJ3Mga25vd2xlZGdlIG9mIHN5bnRoZXRpYyBiaW9sb2d5LCBhbmQgdGhlbiBhZGp1c3QgYW5kIGltcHJvdmUgdGhlIGNvbnRlbnQgb2Ygb3VyIGxlY3R1cmVzIHRvIGVuc3VyZSB0aGUgZWZmZWN0aXZlbmVzcyBhbmQgYXR0cmFjdGl2ZW5lc3Mgb2Ygb3VyIGVkdWNhdGlvbmFsIGFjdGl2aXRpZXMuPC9wPlxyXG4gICAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwiaW5kZW50XCI+VGhpcyBwcm9jZXNzIGlzIG5vdCBvbmx5IGEgb25lLXdheSBpbmZvcm1hdGlvbiB0cmFuc2ZlciwgYnV0IGFsc28gYSB0d28td2F5IGNvbW11bmljYXRpb24gYW5kIGZlZWRiYWNrIG1lY2hhbmlzbS4gQmFzZWQgb24gdGhlIHZhbHVhYmxlIGZlZWRiYWNrIHByb3ZpZGVkIGJ5IHN0dWRlbnRzLCB3ZSBoYXZlIG9wdGltaXNlZCBhbmQgYWRqdXN0ZWQgc29tZSBvZiB0aGUgbGVjdHVyZXMsIHN1Y2ggYXMgYWRkaW5nIG1vcmUgaWxsdXN0cmF0aXZlIGV4YW1wbGVzIGFuZCBpbnRlcmFjdGl2ZSBzZXNzaW9ucyB0byBlbmhhbmNlIHN0dWRlbnRzJyBwYXJ0aWNpcGF0aW9uIGFuZCBkZXB0aCBvZiB1bmRlcnN0YW5kaW5nLjwvcD5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPSdpbWFnZS1jb250YWluZXInPlxyXG4gICAgICAgICAgICAgICAgPGltZyBcclxuICAgICAgICAgICAgICAgICAgc3JjPVwiaHR0cHM6Ly9zdGF0aWMuaWdlbS53aWtpL3RlYW1zLzUzNzgvMmFhMGVjNWE5ZmI0ZjMzNWVkYWVjNGYxNzE5ODcyMS53ZWJwXCJcclxuICAgICAgICAgICAgICAgICAgYWx0PVwiZXhhbXBsZVwiXHJcbiAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImltYWdlLXdpZGVcIlxyXG4gICAgICAgICAgICAgICAgLz4gIFxyXG4gICAgICAgICAgICAgICAgIDxmaWdjYXB0aW9uIGNsYXNzTmFtZT0nY2FwdGlvbic+RmlndXJlIDcgR3JhcGggYW5hbHlzaW5nIHRoZSBmZWVkYmFjayBvYnRhaW5lZCBmcm9tIHRoZSBxdWVzdGlvbm5haXJlcyBkaXN0cmlidXRlZCBhZnRlciB0aGUgbGVjdHVyZXM8L2ZpZ2NhcHRpb24+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICA8cD48L3A+XHJcbiAgICAgICAgICAgICAgICA8cD48L3A+XHJcbiAgICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJib2xkLWZvbnRcIj4oMikgVW5pdmVyc2l0eSBMZWN0dXJlcyAtIFByYWN0aXRpb25lcnMgb2YgS25vd2xlZGdlPC9wPlxyXG4gICAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwiaW5kZW50XCI+QWZ0ZXIgdGhlIGNvbXBsZXRpb24gb2Ygc2NpZW5jZSBlZHVjYXRpb24gYXQgdGhlIGhpZ2ggc2Nob29sIGxldmVsLCB3ZSBmdXJ0aGVyIHNldCBvdXIgc2lnaHRzIG9uIHVuaXZlcnNpdHkgY2FtcHVzZXMsIGFpbWluZyB0byB0cmFpbiB1bml2ZXJzaXR5IHN0dWRlbnRzIHRvIGJlY29tZSBwcmFjdGl0aW9uZXJzIG9mIGtub3dsZWRnZS4gV2UgZmlyc3QgZGlzdHJpYnV0ZWQgcGFtcGhsZXRzIGFib3V0IGhlcGF0aWMgZW5jZXBoYWxvcGF0aHkgb24gY2FtcHVzLCBhbmQgYXQgdGhlIHNhbWUgdGltZSwgd2UgZGlzdHJpYnV0ZWQgcXVlc3Rpb25uYWlyZXMgdG8gc3VydmV5IGNvbGxlZ2Ugc3R1ZGVudHMgYWJvdXQgdGhlaXIgaW50ZXJlc3QgaW4gc3ludGhldGljIGJpb2xvZ3kgYW5kIHRoZWlyIGN1cnJlbnQgbGV2ZWwgb2Yga25vd2xlZGdlLjwvcD5cclxuICAgICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cImluZGVudFwiPlRoZSBzdXJ2ZXkgZm91bmQgdGhhdCBtb3N0IHVuaXZlcnNpdHkgc3R1ZGVudHMgaGF2ZSBzb21lIGJhc2ljIGtub3dsZWRnZSBhYm91dCBoZXBhdGljIGVuY2VwaGFsb3BhdGh5IGFuZCBzeW50aGV0aWMgYmlvbG9neSwgYnV0IGl0IGlzIG5vdCBjb21wcmVoZW5zaXZlIGFuZCBpbi1kZXB0aCBlbm91Z2guIFRoZXJlZm9yZSwgd2UgaGF2ZSBzdHJlbmd0aGVuZWQgdGhlIHBvcHVsYXJpc2F0aW9uIG9mIHNjaWVuY2UgaW4gdGhlIHB1YmxpY2l0eSBwcm9jZXNzIHRvIGhlbHAgcGVvcGxlIGJldHRlciB1bmRlcnN0YW5kIHRoZXNlIGNvbnRlbnRzIHRocm91Z2ggaW4tZGVwdGggZXhwbGFuYXRpb25zLiBUaGlzIGluaXRpYXRpdmUgd2FzIHdpZGVseSB3ZWxjb21lZCwgd2l0aCBtYW55IHN0dWRlbnRzIHJlcG9ydGluZyBhIGNsZWFyZXIgdW5kZXJzdGFuZGluZyBvZiB0aGVzZSBhcmVhcy48L3A+XHJcbiAgICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJpbmRlbnRcIj5JbiB2aWV3IG9mIHRoZSBrZWVuIGludGVyZXN0IHNob3duIGJ5IHRoZSB1bml2ZXJzaXR5IHN0dWRlbnRzLCB3ZSBvcmdhbmlzZWQgYSBzY2llbmNlIHRhbGsgZGVkaWNhdGVkIHRvIGhlcGF0aWMgZW5jZXBoYWxvcGF0aHkgYW5kIHN5bnRoZXRpYyBiaW9sb2d5LCBjb3ZlcmluZyB0aGUgYmFzaWNzLCB0aGUgbGF0ZXN0IHJlc2VhcmNoIHJlc3VsdHMgYW5kIGRldmVsb3BtZW50IHRyZW5kcy4gVGhlIGxlY3R1cmUgd2FzIHdlbGwgcmVjZWl2ZWQgYnkgdGhlIHBhcnRpY2lwYW50cywgbWFueSBvZiB3aG9tIGV4cHJlc3NlZCB0aGF0IHRoZXkgaGFkIGJlbmVmaXRlZCBmcm9tIGl0IGFuZCBkZXZlbG9wZWQgYSBkZWVwZXIgaW50ZXJlc3QgaW4gdGhlIHJlbGF0ZWQgZmllbGRzLjwvcD5cclxuICAgICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cImluZGVudFwiPkFmdGVyIHRoZSBsZWN0dXJlLCB0aGUgcGFydGljaXBhdGluZyBtZW1iZXJzIGhhZCBhbiBpbi1kZXB0aCBhbmQgZnJpZW5kbHkgZGlzY3Vzc2lvbiBhbmQgZXhjaGFuZ2Ugd2l0aCBvdXIgdGVhbS4gVGhyb3VnaCB0aGlzIGV4Y2hhbmdlLCB3ZSBjbGFyaWZpZWQgdGhlIGludGVyZXN0IHBvaW50cyBvZiB1bml2ZXJzaXR5IHN0dWRlbnRzIGFuZCBjb2xsZWN0ZWQgdmFsdWFibGUgc3VnZ2VzdGlvbnMgYW5kIGZlZWRiYWNrLiBUaGVzZSBmZWVkYmFja3MgcG9pbnRlZCBvdXQgdGhlIGRpcmVjdGlvbiBmb3Igb3VyIHN1YnNlcXVlbnQgZWR1Y2F0aW9uYWwgd29yaywgYW5kIHdlIHdpbGwgY29udGludWUgdG8gb3B0aW1pc2UgdGhlIGNvbnRlbnQgb2Ygc2NpZW5jZSBwb3B1bGFyaXNhdGlvbiBhbmQgZW5oYW5jZSB0aGUgaW50ZXJhY3Rpdml0eSwgYWltaW5nIHRvIGJlbmVmaXQgbW9yZSBwZW9wbGUuPC9wPlxyXG4gICAgICAgICAgICAgICAgXHJcblxyXG4gICAgICAgICAgICAgICAgPHA+PC9wPlxyXG4gICAgICAgICAgICAgICAgPHA+PC9wPlxyXG4gICAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwiYm9sZC1mb250XCI+KDMpIEd1aWRlZCBMYWJvcmF0b3J5IFRvdXJzIC0gQSBUd28tV2F5IFRvdWNoIG9mIEtub3dsZWRnZTwvcD5cclxuICAgICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cImluZGVudFwiPldlIGhhZCB0aGUgaG9ub3VyIG9mIGludml0aW5nIHRoZSBpR0VNIHRlYW0gZnJvbSBTcGlyaXQgU3BpZGVyIExhYnMgdG8gdmlzaXQgb3VyIFBhdGhvZ2VuaWMgTWljcm9iaW9sb2d5IExhYm9yYXRvcnkgYW5kIGV4cGVyaWVuY2UgYSBudW1iZXIgb2YgZnVuIGxhYiBhY3Rpdml0aWVzIGZpcnN0IGhhbmQuPC9wPlxyXG4gICAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwiaW5kZW50XCI+VW5kZXIgb3VyIGd1aWRhbmNlLCB0aGV5IGhhZCBhbiBpbml0aWFsIHRyYWluaW5nIG9uIG1vc3F1aXRvIHJlYXJpbmcgdGVjaG5pcXVlcyBhbmQgb3BlcmF0aW9ucywgY292ZXJpbmcgdGhlIGJhc2ljcyBvZiBtb3NxdWl0byBiaW9sb2d5LCBlbnZpcm9ubWVudGFsIHNldHRpbmdzIGFuZCByZWFyaW5nIG1hbmFnZW1lbnQuIFRocm91Z2ggdGhpcyB0cmFpbmluZywgdGhleSBnYWluZWQgYSBwcmVsaW1pbmFyeSB1bmRlcnN0YW5kaW5nIG9mIHRoZSBmdWxsIGN5Y2xlIG9mIHJlYXJpbmcgdGVjaG5pcXVlcyBmcm9tIGVnZyBoYXRjaGluZyB0byBhZHVsdCwgYW5kIG1hc3RlcmVkIGhvdyB0byBhZGp1c3QgdGhlIGxhYm9yYXRvcnkgZW52aXJvbm1lbnQgdG8gc3VpdCB0aGUgbmVlZHMgb2YgZGlmZmVyZW50IG1vc3F1aXRvZXMuIFBhcnRpY3VsYXJseSB3b3J0aCBtZW50aW9uaW5nIGlzIHRoYXQgd2UgYnJpZWZseSBpbnRyb2R1Y2VkIHRoZSBiYXNpYyBjb25jZXB0cyBhbmQgdG9vbHMgb2Ygc3ludGhldGljIGJpb2xvZ3ksIHN1Y2ggYXMgQ1JJU1BSLUNhczkgZ2VuZSBlZGl0aW5nIHRlY2hub2xvZ3ksIHdoaWNoIGhlbHBlZCB0aGVtIHVuZGVyc3RhbmQgaG93IHRvIG9wdGltaXNlIHRoZSByZWFyaW5nIGNvbmRpdGlvbnMgb2YgbW9zcXVpdG9lcyBhbmQgaW1wcm92ZSB0aGVpciByZXNpc3RhbmNlIHRvIGRpc2Vhc2VzIHRocm91Z2ggZ2VuZSBlZGl0aW5nLjwvcD5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPSdpbWFnZS1jb250YWluZXInPlxyXG4gICAgICAgICAgICAgICAgPGltZyBcclxuICAgICAgICAgICAgICAgICAgc3JjPVwiaHR0cHM6Ly9zdGF0aWMuaWdlbS53aWtpL3RlYW1zLzUzNzgvbGluZ3podTEud2VicFwiXHJcbiAgICAgICAgICAgICAgICAgIGFsdD1cImV4YW1wbGVcIlxyXG4gICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJpbWFnZS13aWRlXCJcclxuICAgICAgICAgICAgICAgIC8+ICBcclxuICAgICAgICAgICAgICAgIDxmaWdjYXB0aW9uIGNsYXNzTmFtZT0nY2FwdGlvbic+RmlndXJlIDggU3Bpcml0IFNwaWRlciBMYWJzIHRlYW0gbGVhcm50IGFib3V0IG1vc3F1aXRvIHRlY2hub2xvZ3kgaW4gb3VyIHNjaG9vbDwvZmlnY2FwdGlvbj5cclxuXHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIFxyXG5cclxuXHJcbiAgICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJpbmRlbnRcIj5NZWFud2hpbGUsIHRoZSBpR0VNIHRlYW0gZnJvbSBTcGlyaXQgU3BpZGVyIExhYiBhbHNvIGJyb3VnaHQgdGhlaXIgbGF0ZXN0IHJlc2VhcmNoIHJlc3VsdHMgYW5kIGlubm92YXRpdmUgaWRlYXMgaW4gdGhlIGZpZWxkIG9mIHN5bnRoZXRpYyBiaW9sb2d5LiBUaGV5IHNoYXJlZCB0aGVpciBleHBlcmllbmNlIGluIGdlbmUgY2lyY3VpdCBkZXNpZ24gYW5kIGJpb3NlbnNvciBkZXZlbG9wbWVudCwgd2hpY2ggcHJvdmlkZWQgdXMgd2l0aCB2YWx1YWJsZSByZWZlcmVuY2UgYW5kIGluc3BpcmF0aW9uLiBUaGlzIHR3by13YXkgY29tbXVuaWNhdGlvbiBub3Qgb25seSBlbnJpY2hlcyBvdXIgcmVzZWFyY2ggdmlzaW9uLCBidXQgYWxzbyBwcm9tb3RlcyB0aGUgZGVlcCBpbnRlZ3JhdGlvbiBvZiB0ZWNobm9sb2d5LCBtZXRob2RvbG9neSBhbmQgY29uY2VwdHMgYmV0d2VlbiBib3RoIHNpZGVzLjwvcD5cclxuICAgICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cImluZGVudFwiPlRocm91Z2ggdGhpcyBhY3Rpdml0eSwgd2Ugbm90IG9ubHkgaW1wcm92ZWQgdGhlIHByb2Zlc3Npb25hbCBhbmQgdGVjaG5pY2FsIGxldmVsIG9mIG91ciB0ZWFtIG1lbWJlcnMsIGJ1dCBhbHNvIHN0cmVuZ3RoZW5lZCB0aGUgdHdvLXdheSBlZHVjYXRpb25hbCBvdXRyZWFjaCBiZXR3ZWVuIHVzIGFuZCB0aGUgaUdFTSB0ZWFtIG9mIFNwaXJpdCBTcGlkZXIgTGFicy4gV2UgYmVsaWV2ZSB0aGF0IHRoaXMgdHdvLXdheSBjb21tdW5pY2F0aW9uIGFuZCBlZHVjYXRpb25hbCBvdXRyZWFjaCB3aWxsIG1ha2UgYSBncmVhdGVyIGNvbnRyaWJ1dGlvbiB0byBwcm9tb3RpbmcgdGhlIGRldmVsb3BtZW50IG9mIHN5bnRoZXRpYyBiaW9sb2d5IGFuZCB0aGUgbGV2ZWwgb2YgaUdFTSBjb21wZXRpdGlvbi48L3A+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT0naW1hZ2UtY29udGFpbmVyJz5cclxuICAgICAgICAgICAgICAgIDxpbWcgXHJcbiAgICAgICAgICAgICAgICAgIHNyYz1cImh0dHBzOi8vc3RhdGljLmlnZW0ud2lraS90ZWFtcy81Mzc4L2xpbmd6aHUyLndlYnBcIlxyXG4gICAgICAgICAgICAgICAgICBhbHQ9XCJleGFtcGxlXCJcclxuICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiaW1hZ2Utd2lkZVwiXHJcbiAgICAgICAgICAgICAgICAvPiAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgIDxmaWdjYXB0aW9uIGNsYXNzTmFtZT0nY2FwdGlvbic+RmlndXJlIDkgV2UgbGVhcm50IGZyb20gZWFjaCBvdGhlcidzIHN0cmVuZ3RocyB3aXRoIHRoZSBTcGlyaXQgUGVhcmwgTGFib3JhdG9yeS48L2ZpZ2NhcHRpb24+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIFxyXG5cclxuICAgICAgICAgICAgICA8L0VsZW1lbnQ+XHJcblxyXG5cclxuICAgICAgICAgICAgICA8RWxlbWVudCBuYW1lPVwic2VjdGlvbjVcIiBjbGFzc05hbWU9XCJlbGVtZW50IHJvdW5kZWQtYm9yZGVyXCIgaWQ9J3NlY3Rpb241Jz5cclxuICAgICAgICAgICAgICAgIDxoMT5SZWdpb25hbCBsZXZlbCAtIENvdmVyYWdlIFByb2plY3Q8L2gxPlxyXG4gICAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwiYm9sZC1mb250XCI+KDEpIE1pZC1BdXR1bW4gRmVzdGl2YWwgQ29tbXVuaXR5IEJhemFhciBQcm9tb3Rpb248L3A+XHJcbiAgICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJpbmRlbnRcIj5EdXJpbmcgdGhpcyB5ZWFyJ3MgTWlkLUF1dHVtbiBGZXN0aXZhbCwgd2UgZm9sbG93ZWQgdGhlIGNvbW11bml0eSB2b2x1bnRlZXJzIHRvIHBhcnRpY2lwYXRlIGluIHRoZSBNaWQtQXV0dW1uIEN1bHR1cmFsIGFuZCBDcmVhdGl2ZSBTYWxlIGluIGZyb250IG9mIHRoZSBsb2NhbCBtYWxsIHdpdGggaGVhdnkgdHJhZmZpYy4gV2UgY2xldmVybHkgaW5jb3Jwb3JhdGVkIHRoZSBjb25jZXB0IG9mIHN5bnRoZXRpYyBiaW9sb2d5IGludG8gdGhlIGN1bHR1cmFsIGFuZCBjcmVhdGl2ZSBwcm9kdWN0cyB3ZSBzb2xkLCB3aGljaCBub3Qgb25seSBhdHRyYWN0ZWQgdGhlIGF0dGVudGlvbiBvZiBtYW55IGNpdGl6ZW5zLCBidXQgYWxzbyBhY3RpdmVseSBwcm9tb3RlZCB0aGUga25vd2xlZGdlIG9mIHN5bnRoZXRpYyBiaW9sb2d5IGFuZCBwb3B1bGFyaXNlZCB0aGUgY29udGVudCBvZiBoZXBhdGljIGVuY2VwaGFsb3BhdGh5IHRvIHRoZSBwdWJsaWMgZHVyaW5nIHRoZSBwdWJsaWNpdHkgcHJvY2Vzcy4gVGhyb3VnaCB0aGlzIGZvcm0gb2YgZWR1Y2F0aW9uIGFuZCBmdW4sIHdlIHN1Y2Nlc3NmdWxseSByYWlzZWQgcHVibGljIGF3YXJlbmVzcyBvZiBzeW50aGV0aWMgYmlvbG9neSBhbmQgaGVwYXRpYyBlbmNlcGhhbG9wYXRoeS48L3A+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT0naW1hZ2UtY29udGFpbmVyJz5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPSdyb3cnPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9J2NvbC02Jz5cclxuICAgICAgICAgICAgICAgIDxpbWcgXHJcbiAgICAgICAgICAgICAgICAgIHNyYz1cImh0dHBzOi8vc3RhdGljLmlnZW0ud2lraS90ZWFtcy81Mzc4L3N1bjEud2VicFwiXHJcbiAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICBhbHQ9XCJleGFtcGxlXCJcclxuICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwicmVzcG9uc2l2ZS1pbWdcIlxyXG4gICAgICAgICAgICAgICAgLz4gIFxyXG4gICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT0nY29sLTYnPlxyXG4gICAgICAgICAgICAgICAgPGltZyBcclxuICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgIHNyYz1cImh0dHBzOi8vc3RhdGljLmlnZW0ud2lraS90ZWFtcy81Mzc4L2JveS53ZWJwXCJcclxuICAgICAgICAgICAgICAgICAgYWx0PVwiZXhhbXBsZVwiXHJcbiAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInJlc3BvbnNpdmUtaW1nXCJcclxuICAgICAgICAgICAgICAgIC8+ICBcclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZmlnY2FwdGlvbiBjbGFzc05hbWU9J2NhcHRpb24nPkZpZ3VyZSAxMCBTZXB0ZW1iZXIgMjAyNCBXZSBhcmUgZWR1Y2F0aW5nIHRoZSBjb21tdW5pdHkgb24gb3V0cmVhY2g8L2ZpZ2NhcHRpb24+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT0naW1hZ2UtY29udGFpbmVyJz5cclxuICAgICAgICAgICAgICAgIDxpbWcgXHJcbiAgICAgICAgICAgICAgICAgIHNyYz1cImh0dHBzOi8vc3RhdGljLmlnZW0ud2lraS90ZWFtcy81Mzc4L3N1bjIud2VicFwiXHJcbiAgICAgICAgICAgICAgICAgIGFsdD1cImV4YW1wbGVcIlxyXG4gICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJpbWFnZS13aWRlXCJcclxuICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgPGZpZ2NhcHRpb24gY2xhc3NOYW1lPSdjYXB0aW9uJz5GaWd1cmUgMTEgUGhvdG8gd2l0aCB2b2x1bnRlZXJzPC9maWdjYXB0aW9uPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgIDxwPiAgPC9wPlxyXG5cclxuICAgICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cImJvbGQtZm9udFwiPigyKSBDb21tdW5pdHkgc2NpZW5jZSBvdXRyZWFjaCBhY3Rpdml0aWVzPC9wPlxyXG4gICAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwiaW5kZW50XCI+V2UgYWxzbyBjb250YWN0ZWQgYSBzb2NpYWwgd29yayBzZXJ2aWNlIHN0YXRpb24sIGFuZCB3aXRoIHRoZWlyIHN1cHBvcnQsIHdlIHdlbnQgaW50byB0aGUgc3Vycm91bmRpbmcgY29tbXVuaXR5IHRvZ2V0aGVyIHRvIHByb21vdGUgc2NpZW5jZS4gQnkgZGlzdHJpYnV0aW5nIHBhbXBobGV0cyBhbmQgZ2l2aW5nIG9uLXNpdGUgbGVjdHVyZXMsIHdlIHBvcHVsYXJpc2VkIHRoZSBrbm93bGVkZ2Ugb2Ygc3ludGhldGljIGJpb2xvZ3kgYW5kIGludHJvZHVjZWQgdGhlIHRvcGljIG9mIGhlcGF0aWMgZW5jZXBoYWxvcGF0aHkgaW4gZGV0YWlsIHRvIHRoZSBjb21tdW5pdHkgcmVzaWRlbnRzLiBUaGlzIGFjdGl2aXR5IHdhcyB3aWRlbHkgcmVjb2duaXNlZCBhbmQgc3VwcG9ydGVkIGJ5IHRoZSBjb21tdW5pdHkgcmVzaWRlbnRzLjwvcD5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPSdpbWFnZS1jb250YWluZXInPlxyXG4gICAgICAgICAgICAgICAgPGltZyBcclxuICAgICAgICAgICAgICAgICAgc3JjPVwiaHR0cHM6Ly9zdGF0aWMuaWdlbS53aWtpL3RlYW1zLzUzNzgvc29jaWFsLXdvcmstc3RhdGlvbi53ZWJwXCJcclxuICAgICAgICAgICAgICAgICAgYWx0PVwiZXhhbXBsZVwiXHJcbiAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImltYWdlLXdpZGVcIlxyXG4gICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICA8ZmlnY2FwdGlvbiBjbGFzc05hbWU9J2NhcHRpb24nPkZpZ3VyZSAxMiBFbnRlcmluZyB0aGUgY29tbXVuaXR5IGZvciBwZWVyLXRvLXBlZXIgdHdvLXdheSBjb21tdW5pY2F0aW9uPC9maWdjYXB0aW9uPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgIDxwPiAgPC9wPlxyXG5cclxuICAgICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cImJvbGQtZm9udFwiPigzKSBQb3B1bGFyIHNjaWVuY2UgbGVjdHVyZXMgZm9yIHRoZSBlbGRlcmx5PC9wPlxyXG4gICAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwiaW5kZW50XCI+RHVyaW5nIHRoZSBwb3B1bGFyaXNhdGlvbiBvZiB0aGUgc2NpZW5jZSwgd2UgZm91bmQgdGhhdCBhZHVsdHMgYXJlIG1vcmUgY29uY2VybmVkIGFib3V0IHRoZWlyIGhlYWx0aCBjb21wYXJlZCB0byB1bml2ZXJzaXR5IHN0dWRlbnRzLCBlc3BlY2lhbGx5IHRoZSBlbGRlcmx5IHdobywgYXMgYSB2dWxuZXJhYmxlIGdyb3VwIHRvIGhlcGF0aWMgZW5jZXBoYWxvcGF0aHksIHNob3cgYSBrZWVuIGludGVyZXN0IGluIHRoaXMgZGlzZWFzZS48L3A+XHJcbiAgICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJpbmRlbnRcIj5UaGVyZWZvcmUsIHdlIGhhdmUgc3BlY2lhbGx5IGFycmFuZ2VkIHBvcHVsYXJpc2F0aW9uIGxlY3R1cmVzIG9uIGhlcGF0aWMgZW5jZXBoYWxvcGF0aHkgZm9yIHRoZSBsb2NhbCBlbGRlcmx5IHVuaXZlcnNpdHkuIFRocm91Z2ggdGhlc2UgbGVjdHVyZXMsIHdlIG5vdCBvbmx5IGhlbHBlZCB0aGUgZWxkZXJseSB0byBiZXR0ZXIgdW5kZXJzdGFuZCB0aGUgY2F1c2VzLCBzeW1wdG9tcyBhbmQgcHJldmVudGlvbiBtZXRob2RzIG9mIGhlcGF0aWMgZW5jZXBoYWxvcGF0aHksIGJ1dCBhbHNvIGVuaGFuY2VkIHRoZWlyIHVuZGVyc3RhbmRpbmcgb2YgdGhlIGFwcGxpY2F0aW9uIG9mIHN5bnRoZXRpYyBiaW9sb2d5IGluIHRoZSBtZWRpY2FsIGZpZWxkLjwvcD5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPSdpbWFnZS1jb250YWluZXInPlxyXG4gICAgICAgICAgICAgICAgPGltZyBcclxuICAgICAgICAgICAgICAgICAgc3JjPVwiaHR0cHM6Ly9zdGF0aWMuaWdlbS53aWtpL3RlYW1zLzUzNzgvc29jaWV0eS53ZWJwXCJcclxuICAgICAgICAgICAgICAgICAgYWx0PVwiZXhhbXBsZVwiXHJcbiAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImltYWdlLXdpZGVcIlxyXG4gICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICA8ZmlnY2FwdGlvbiBjbGFzc05hbWU9J2NhcHRpb24nPkZpZ3VyZSAxMyBFZHVjYXRpb24gZm9yIHZ1bG5lcmFibGUgZ3JvdXBzPC9maWdjYXB0aW9uPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICBcclxuXHJcbiAgICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJpbmRlbnRcIj5CYXNlZCBvbiB0aGUgcHJldmlvdXMgcG9wdWxhcmlzYXRpb24gY2FtcGFpZ25zIGluIHNjaG9vbHMgYW5kIHRoZSBhZHZpY2UgcmVjZWl2ZWQsIHdlIGhhdmUgYWRqdXN0ZWQgdGhlIG5hcnJhdGl2ZS4gVGhlc2UgYWN0aXZpdGllcyBub3Qgb25seSByYWlzZWQgcHVibGljIGhlYWx0aCBhd2FyZW5lc3MsIGJ1dCBhbHNvIGFjY3VtdWxhdGVkIHZhbHVhYmxlIGV4cGVyaWVuY2UgZm9yIG91ciBwb3B1bGFyaXNhdGlvbiB3b3JrLiAgPC9wPlxyXG4gICAgICAgICAgICAgIDwvRWxlbWVudD5cclxuXHJcbiAgICAgICAgICAgICAgPEVsZW1lbnQgbmFtZT1cInNlY3Rpb242XCIgY2xhc3NOYW1lPVwiZWxlbWVudCByb3VuZGVkLWJvcmRlclwiIGlkPSdzZWN0aW9uNic+XHJcbiAgICAgICAgICAgICAgICA8aDE+V29ybGQgTGV2ZWwgLSBFeHRlbnNpb24gUHJvamVjdDwvaDE+XHJcbiAgICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJib2xkLWZvbnRcIj4oMSkgU29jaWFsIG1lZGlhIG91dHJlYWNoPC9wPlxyXG4gICAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwiaW5kZW50XCI+QWZ0ZXIgYSBzZXJpZXMgb2YgbWlzc2lvbnMsIHdlIHRob3VnaHQgd2UgaGFkIGJldHRlciByZXN1bHRzLCBidXQgcmVhbGlzZWQgdGhlIGxpbWl0YXRpb25zIG9mIHRoZSBwbGF0Zm9ybS5JbiBvcmRlciB0byBmdXJ0aGVyIGV4cGFuZCBvdXIgaW5mbHVlbmNlLCB3ZSBwdWJsaXNoZWQgb3VyIHJlc3VsdHMgYW5kIGlHRU0gbmV3cyBvbiBzb2NpYWwgbWVkaWEgcGxhdGZvcm1zIHN1Y2ggYXMgV2VDaGF0LCBWaWRlbyBhbmQgWGlhb2hvbmdzaHUuIEFzIGEgbmV3bHkgZXN0YWJsaXNoZWQgdGVhbSwgd2l0aCBzdHJvbmcgc3VwcG9ydCBmcm9tIHRoZSB1bml2ZXJzaXR5IGFuZCB0aHJvdWdoIHRoZSBqb2ludCBlZmZvcnRzIG9mIG91ciBpbnN0cnVjdG9ycyBhbmQgc3R1ZGVudHMsIHdlIGF0dHJhY3RlZCBhIGxhcmdlIGF1ZGllbmNlIG9uIHNvY2lhbCBtZWRpYSBjaGFubmVscy48L3A+XHJcbiAgICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJpbmRlbnRcIj5BcyBwYXJ0IG9mIG91ciBpbml0aWF0aXZlIHRvIG1ha2Ugc2NpZW5jZSBtb3JlIGFjY2Vzc2libGUsIHdlIHJ1biBhbiBhY2NvdW50IG9uIExpdHRsZSBSZWQgQm9vayB0aGF0IGZvY3VzZXMgb24gdGhlIGZpZWxkIG9mIGhlcGF0aWMgZW5jZXBoYWxvcGF0aHkuIFdlIHB1Ymxpc2ggZm9ydG5pZ2h0bHkgcG9zdHMsIHdoaWNoIGFyZSB3cml0dGVuLCBlZGl0ZWQgYW5kIGlsbHVzdHJhdGVkIGJ5IG91ciB0ZWFtIHRoZW1zZWx2ZXMsIGFuZCBhcmUgZGVzaWduZWQgdG8gaGVscCB0aGUgcHVibGljIGJldHRlciB1bmRlcnN0YW5kIHNjaWVudGlmaWMgaXNzdWVzLlRocm91Z2ggdGhlc2UgcG9zdHMsIHdlIGhvcGUgdG8gc3RpbXVsYXRlIHRoZSBjdXJpb3NpdHkgb2YgdXNlcnMgb24gc29jaWFsIG1lZGlhIHBsYXRmb3JtcyBhYm91dCBjdXJyZW50IHNjaWVudGlmaWMgaXNzdWVzIGFuZCBhdHRyYWN0IHRoZSBhdHRlbnRpb24gb2YgcHJvZmVzc2lvbmFscyBhbmQgc3R1ZGVudHMuIFdlIGJlbGlldmUgdGhhdCBpdCBpcyBpbXBvcnRhbnQgdG8ga2VlcCBhYnJlYXN0IG9mIGN1cnJlbnQgZXZlbnRzIGFuZCB0aGluayBjcml0aWNhbGx5IGFib3V0IHNjaWVudGlmaWMgaXNzdWVzIGluIHRvZGF5J3Mgd29ybGQuIFRoZXJlZm9yZSwgd2UgcHJvdmlkZSBpbnRlcmVzdGluZyByZWFkcyB0aGF0IGFyZSByZWxldmFudCB0byBsaWZlLCBjb21iaW5lIHNvY2lhbCBmYWN0cyB3aXRoIHNjaWVudGlmaWMgaXNzdWVzLCBhbmQgaW50cm9kdWNlIHNjaWVudGlmaWMgcmVzZWFyY2ggaW4gYW4gZWFzeS10by11bmRlcnN0YW5kIHdheS48L3A+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT0naW1hZ2UtY29udGFpbmVyJz5cclxuICAgICAgICAgICAgICAgIDxpbWcgXHJcbiAgICAgICAgICAgICAgICAgIHNyYz1cImh0dHBzOi8vc3RhdGljLmlnZW0ud2lraS90ZWFtcy81Mzc4L3JlZC1ib29rLndlYnBcIlxyXG4gICAgICAgICAgICAgICAgICBhbHQ9XCJleGFtcGxlXCJcclxuICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiaW1hZ2UtaGVpZ2h0XCJcclxuICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgPGZpZ2NhcHRpb24gY2xhc3NOYW1lPSdjYXB0aW9uJz5GaWd1cmUgMTQgVGVhbSBvdXRyZWFjaCBlZHVjYXRpb24gb24gc29jaWFsIG1lZGlhPC9maWdjYXB0aW9uPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICBcclxuXHJcbiAgICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJpbmRlbnRcIj5UaHJvdWdoIHRoZXNlIGVmZm9ydHMsIHdlIGhhdmUgbm90IG9ubHkgcmFpc2VkIHB1YmxpYyBhd2FyZW5lc3Mgb2Ygc3ludGhldGljIGJpb2xvZ3kgYW5kIGhlcGF0aWMgZW5jZXBoYWxvcGF0aHksIGJ1dCBhbHNvIGVzdGFibGlzaGVkIGEgcGxhdGZvcm0gZm9yIGludGVyYWN0aW9uIHdpdGggb3VyIGF1ZGllbmNlIGFuZCBjb2xsZWN0ZWQgdmFsdWFibGUgZmVlZGJhY2ssIHdoaWNoIHByb3ZpZGVzIGEgYmFzaXMgZm9yIGZ1cnRoZXIgb3B0aW1pc2F0aW9uIG9mIG91ciBzY2llbmNlIHBvcHVsYXJpc2F0aW9uIGNvbnRlbnQuIFdlIGJlbGlldmUgdGhhdCB0aHJvdWdoIGNvbnRpbnVvdXMgZWZmb3J0cywgb3VyIHBvcHVsYXJpc2F0aW9uIG9mIHNjaWVuY2Ugd2lsbCBiZSBhYmxlIHRvIGJldHRlciBzZXJ2ZSB0aGUgY29tbXVuaXR5IGFuZCBlbmhhbmNlIHRoZSBwdWJsaWMncyBzY2llbnRpZmljIGxpdGVyYWN5IGFuZCBoZWFsdGggYXdhcmVuZXNzLiA8L3A+XHJcblxyXG4gICAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwiYm9sZC1mb250XCI+KDIpIFJlbW90ZSBNb3VudGFpbiBNaXNzaW9uczwvcD5cclxuICAgICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cImluZGVudFwiPkFmdGVyIHJlY2VpdmluZyBzdWdnZXN0aW9ucyBmcm9tIHNvY2lhbCBtZWRpYSB1c2Vycywgd2UgdHJhdmVsbGVkIHRvIFNpY2h1YW4gUHJvdmluY2UgdG8gZWR1Y2F0ZSBsb2NhbCByZXNpZGVudHMgYWJvdXQgaGVwYXRpYyBlbmNlcGhhbG9wYXRoeSAoSEUpLCBhcyBkZXRhaWxlZCBpbiBpbmNsdXNpdml0eSwgYW5kIG9yZ2FuaXNlZCBhIG51bWJlciBvZiBzZW1pbmFycyB0byByYWlzZSBhd2FyZW5lc3Mgb2YgaGVwYXRpYyBlbmNlcGhhbG9wYXRoeSBhbmQgaXRzIHByZXZlbnRpb24gYW5kIHRyZWF0bWVudCwgZW1waGFzaXNpbmcgdGhlIGltcG9ydGFuY2Ugb2YgZWFybHkgZGlhZ25vc2lzIGFuZCBzdGFuZGFyZGlzZWQgdHJlYXRtZW50LiBUaGVzZSBsZWN0dXJlcyBub3Qgb25seSBkaXNzZW1pbmF0ZWQgc2NpZW50aWZpYyBoZWFsdGgga25vd2xlZGdlLCBidXQgYWxzbyBlbmhhbmNlZCB0aGUgdmlsbGFnZXJzJyBhYmlsaXR5IGluIHNlbGYtaGVhbHRoIG1hbmFnZW1lbnQuPC9wPlxyXG4gICAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwiaW5kZW50XCI+RnJlZSBoZWFsdGggY2hlY2tzIHdlcmUgcHJvdmlkZWQgZHVyaW5nIHRoZSBldmVudCBhbmQgYSBkZXRhaWxlZCBoZWFsdGggcHJvZmlsZSB3YXMgY3JlYXRlZCBmb3IgZWFjaCBwYXJ0aWNpcGFudC4gRm9yIHRob3NlIHdobyBuZWVkZWQgZnVydGhlciB0cmVhdG1lbnQsIHByb2Zlc3Npb25hbCBtZWRpY2FsIGFkdmljZSB3YXMgcHJvdmlkZWQgdG8gZW5zdXJlIHRoYXQgdGhleSBjb3VsZCByZWNlaXZlIHRoZSBuZWNlc3Nhcnkgc3VwcG9ydC48L3A+XHJcbiAgICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJpbmRlbnRcIj5UaHJvdWdoIHRoZXNlIGluaXRpYXRpdmVzLCB3ZSBoYXZlIGVmZmVjdGl2ZWx5IHJhaXNlZCBsb2NhbCByZXNpZGVudHMnIGF3YXJlbmVzcyBvZiBoZXBhdGljIGVuY2VwaGFsb3BhdGh5LCBwcm9tb3RlZCBoZWFsdGggbWFuYWdlbWVudCwgYW5kIGNvbnRyaWJ1dGVkIHBvc2l0aXZlbHkgdG8gdGhlIGltcHJvdmVtZW50IG9mIHB1YmxpYyBoZWFsdGggaW4gdGhlIGFyZWEuPC9wPlxyXG4gICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwiYm9sZC1mb250XCI+KDMpIFwiU2NpZW5jZStcIiBTeW50aGV0aWMgQmlvbG9neSBDb21wZXRpdGlvbiBmb3IgWW91bmcgVGFsZW50cyBpbiBCcmlnaHQgU2NpZW5jZSBDaXR5PC9wPlxyXG4gICAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwiaW5kZW50XCI+T3VyIHRlYW0gYWxzbyBwYXJ0aWNpcGF0ZWQgaW4gdGhlIDNyZCBTeW50aGV0aWMgQmlvbG9neSBJbm5vdmF0aW9uIENvbXBldGl0aW9uIChTeW5CaW8gQ2hhbGxlbmdlcykgb3JnYW5pc2VkIGJ5IHRoZSBTeW50aGV0aWMgQmlvbG9neSBCcmFuY2ggb2YgdGhlIENoaW5lc2UgU29jaWV0eSBvZiBCaW9lbmdpbmVlcmluZy4gT3VyIHByb2plY3QgZm9jdXNlcyBvbiB0aGUgdXNlIG9mIHN5bnRoZXRpYyBiaW9sb2d5IHRlY2hub2xvZ3kgdG8gdHJlYXQgaGVwYXRpYyBlbmNlcGhhbG9wYXRoeSwgd2hpY2ggaXMgYSB2ZXJ5IGNoYWxsZW5naW5nIG1lZGljYWwgcHJvYmxlbS4gQXQgdGhlIGNvbmZlcmVuY2UsIHdlIGRldGFpbGVkIGhvdyB0byBhbGxldmlhdGUgdGhlIHN5bXB0b21zIG9mIGhlcGF0aWMgZW5jZXBoYWxvcGF0aHkgYnkgbWVhbnMgb2YgZ2VuZSBlZGl0aW5nIGFuZCBtZXRhYm9saWMgZW5naW5lZXJpbmcuPC9wPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9J2ltYWdlLWNvbnRhaW5lcic+XHJcbiAgICAgICAgICAgICAgICA8aW1nIFxyXG4gICAgICAgICAgICAgICAgICBzcmM9XCJodHRwczovL3N0YXRpYy5pZ2VtLndpa2kvdGVhbXMvNTM3OC9zY2llbmNlLTEud2VicFwiXHJcbiAgICAgICAgICAgICAgICAgIGFsdD1cImV4YW1wbGVcIlxyXG4gICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJpbWFnZS13aWRlXCJcclxuICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgPGZpZ2NhcHRpb24gY2xhc3NOYW1lPSdjYXB0aW9uJz5GaWd1cmUgMTUgVGhlIHRlYW0gY2FtZSB0byB0aGUgU3ludGhldGljIEJpb2xvZ3kgQ29tcGV0aXRpb24gdG8gcG9wdWxhcmlzZSBvdXIgcHJvamVjdCBpbiBBdWd1c3QgMjAyNDwvZmlnY2FwdGlvbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgXHJcblxyXG4gICAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwiaW5kZW50XCI+VGhlIGNvbmZlcmVuY2UgYXR0cmFjdGVkIDE0NyB0ZWFtcyBmcm9tIG1vcmUgdGhhbiA2MCB1bml2ZXJzaXRpZXMgYXJvdW5kIHRoZSB3b3JsZCwgd2l0aCBtb3JlIHRoYW4gNDUwIHN0dWRlbnRzIGludGVyYWN0aW5nIG9uIHNpdGUuIE91ciBwcmVzZW50YXRpb25zIGF0dHJhY3RlZCBhIGxvdCBvZiBhdHRlbnRpb24sIHdpdGggb3ZlciAxMDAgYXVkaWVuY2UgbWVtYmVycyBsaXN0ZW5pbmcgYXR0ZW50aXZlbHkgdG8gb3VyIHByZXNlbnRhdGlvbnMgYW5kIGVuZ2FnaW5nIGluIGxpdmVseSBkaXNjdXNzaW9ucyB3aXRoIHVzIGFmdGVyIHRoZSBjb25mZXJlbmNlLjwvcD5cclxuICAgICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cImluZGVudFwiPlRoaXMgZWR1Y2F0aW9uYWwgb3V0cmVhY2ggbm90IG9ubHkgZGVtb25zdHJhdGVkIHRoZSBncmVhdCBwb3RlbnRpYWwgb2Ygc3ludGhldGljIGJpb2xvZ3kgaW4gc29sdmluZyBwcmFjdGljYWwgbWVkaWNhbCBwcm9ibGVtcywgYnV0IGFsc28gc3RpbXVsYXRlZCB0aGUgc3Ryb25nIGludGVyZXN0IGFuZCBlbnRodXNpYXNtIG9mIG90aGVyIHlvdW5nIHN0dWRlbnRzIGluIHRoaXMgZmllbGQuIFdlIGJlbGlldmUgdGhhdCB0aHJvdWdoIHRoaXMgdHdvLXdheSBlZHVjYXRpb25hbCBleGNoYW5nZSwgd2UgY2FuIG5vdCBvbmx5IHByb21vdGUgdGhlIGRldmVsb3BtZW50IG9mIHN5bnRoZXRpYyBiaW9sb2d5LCBidXQgYWxzbyBpbmplY3QgbmV3IHZpdGFsaXR5IGludG8gdGhlIGlHRU0gY29tcGV0aXRpb24gYW5kIHJlc2VhcmNoIGluIHJlbGF0ZWQgZmllbGRzLjwvcD5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPSdpbWFnZS1jb250YWluZXInPlxyXG4gICAgICAgICAgICAgICAgPGltZyBcclxuICAgICAgICAgICAgICAgICAgc3JjPVwiaHR0cHM6Ly9zdGF0aWMuaWdlbS53aWtpL3RlYW1zLzUzNzgvZWQ1NjAwZWEyMzM0OTVkYjllYTAzNjg4ZDM0ZjY0ZS53ZWJwXCJcclxuICAgICAgICAgICAgICAgICAgYWx0PVwiZXhhbXBsZVwiXHJcbiAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImltYWdlLXdpZGVcIlxyXG4gICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICA8ZmlnY2FwdGlvbiBjbGFzc05hbWU9J2NhcHRpb24nPkZpZ3VyZSAxNiBPdXIgRWR1Y2F0aW9uYWwgUGVyaW1ldGVyMTwvZmlnY2FwdGlvbj5cclxuICAgICAgICAgICAgICAgIDxpbWcgXHJcbiAgICAgICAgICAgICAgICAgIHNyYz1cImh0dHBzOi8vc3RhdGljLmlnZW0ud2lraS90ZWFtcy81Mzc4LzliZTgxOGNmZmE2YTk2MDkwMmVhM2JhY2Y5ZjZkN2Yud2VicFwiXHJcbiAgICAgICAgICAgICAgICAgIGFsdD1cImV4YW1wbGVcIlxyXG4gICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJpbWFnZS13aWRlXCJcclxuICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgPGZpZ2NhcHRpb24gY2xhc3NOYW1lPSdjYXB0aW9uJz5GaWd1cmUgMTcgT3VyIEVkdWNhdGlvbmFsIFBlcmltZXRlcjI8L2ZpZ2NhcHRpb24+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwiaW5kZW50XCI+PC9wPlxyXG5cclxuXHJcbiAgICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJib2xkLWZvbnRcIj4oNCkgUHJvZHVjdGlvbiBvZiBhIHN5bnRoZXRpYyBiaW9sb2d5IGhhbmRib29rPC9wPlxyXG4gICAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwiaW5kZW50XCI+IEluIG9yZGVyIHRvIGV4cGFuZCBvdXIgaW5mbHVlbmNlLCB3ZSBoYXZlIHBhcnRpY2lwYXRlZCBpbiB0aGUgam9pbnQgZWRpdGluZyBvZiB0aGUgRXRoaWNzIEhhbmRib29rIGZvciBTeW50aGV0aWMgQmlvbG9neSwgbGVkIGJ5IENKSFUtSkxVLUNoaW5hLCBhbmQgdGhlIGRldGFpbHMgb2YgdGhlIGhhbmRib29rIGNhbiBiZSBmb3VuZCBpbiB0aGUgY29sbGFib3JhdGlvbi4gVGhlIEhhbmRib29rLCB3aG9zZSBjb250ZW50cyBhcmUgZGVzY3JpYmVkIGluIGRldGFpbCBpbiB0aGUgQ29sbGFib3JhdGlvbiwgZW1waGFzaXNlcyB0aGUgaW1wb3J0YW5jZSBvZiBmdXR1cmUgZWR1Y2F0aW9uIGFuZCB0cmFpbmluZywgYW5kIGFkdm9jYXRlcyB0aGUgcHJvbW90aW9uIG9mIGV0aGljYWwgYXdhcmVuZXNzIGFtb25nIHJlc2VhcmNoZXJzIGFuZCB0aGUgZ2VuZXJhbCBwdWJsaWMgdGhyb3VnaCBhIHZhcmlldHkgb2YgbWVhbnMsIGluIG9yZGVyIHRvIHByb21vdGUgdGhlIGhlYWx0aHkgZGV2ZWxvcG1lbnQgb2YgdGhlIGZpZWxkIG9mIHN5bnRoZXRpYyBiaW9sb2d5LjwvcD5cclxuICAgICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cImluZGVudFwiPlNpbmNlIGl0cyByZWxlYXNlLCBpdCBoYXMgbm90IG9ubHkgc2VydmVkIGFzIGFuIGltcG9ydGFudCByZWZlcmVuY2UgZG9jdW1lbnQgZm9yIHJlc2VhcmNoZXJzIGFuZCBwb2xpY3kgbWFrZXJzLCBidXQgaGFzIGFsc28gYnJpZGdlZCB0aGUgY29tbXVuaWNhdGlvbiBnYXAgYmV0d2VlbiB0aGUgc2NpZW50aWZpYyBjb21tdW5pdHkgYW5kIHRoZSBwdWJsaWMsIHByb21vdGluZyBwdWJsaWMgdW5kZXJzdGFuZGluZyBhbmQgZGlzY3Vzc2lvbiBvZiBldGhpY2FsIGlzc3VlcyBpbiBzeW50aGV0aWMgYmlvbG9neS48L3A+XHJcbiAgICAgICAgICAgICAgPC9FbGVtZW50PlxyXG5cclxuICAgICAgICAgICAgICA8RWxlbWVudCBuYW1lPVwic2VjdGlvbjdcIiBjbGFzc05hbWU9XCJlbGVtZW50IHJvdW5kZWQtYm9yZGVyXCIgaWQ9J3NlY3Rpb243Jz5cclxuICAgICAgICAgICAgICAgIDxoMT5Db25jbHVzaW9ucyBhbmQgb3V0bG9vazwvaDE+XHJcbiAgICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJpbmRlbnRcIj5Mb29raW5nIGJhY2sgb24gb3VyIGVkdWNhdGlvbmFsIG91dHJlYWNoIHdvcmsgaW4gdGhlIHBhc3QgeWVhciwgb3VyIHRlYW0gaGFzIGFjaGlldmVkIGZydWl0ZnVsIHJlc3VsdHMgaW4gc2NpZW5jZSBwdWJsaWNpdHksIHBhdGllbnQgY2FyZSwgc2Nob29sIGVkdWNhdGlvbiwgcmVnaW9uYWwgY292ZXJhZ2UgYW5kIHdvcmxkIG91dHJlYWNoLiBXZSBoYXZlIG5vdCBvbmx5IHNwcmVhZCB0aGUga25vd2xlZGdlIG9mIHN5bnRoZXRpYyBiaW9sb2d5IGFuZCBoZXBhdGljIGVuY2VwaGFsb3BhdGh5IHRvIHRoZSBwdWJsaWMgdGhyb3VnaCB2YXJpb3VzIGNoYW5uZWxzLCBidXQgYWxzbyBlc3RhYmxpc2hlZCBhIHR3by13YXkgY29tbXVuaWNhdGlvbiBhbmQgZmVlZGJhY2sgbWVjaGFuaXNtIHRvIGNvbnRpbnVvdXNseSBvcHRpbWlzZSB0aGUgZWR1Y2F0aW9uYWwgY29udGVudCBhbmQgbWV0aG9kcyB0byBlbnN1cmUgdGhlaXIgZWZmZWN0aXZlbmVzcyBhbmQgYXR0cmFjdGl2ZW5lc3MuPC9wPlxyXG4gICAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwiaW5kZW50XCI+VGhpcyB0d28td2F5IGNvbW11bmljYXRpb24gYW5kIGZlZWRiYWNrIG1lY2hhbmlzbSBpcyB0aGUga2V5IHRvIHRoZSBkZXZlbG9wbWVudCBvZiBvdXIgZWR1Y2F0aW9uYWwgd29yaywgYW5kIGl0IGhhcyBhbHNvIGhlbHBlZCB1cyB0byBleHBhbmQgb3VyIGluZmx1ZW5jZS4gVGhyb3VnaCBxdWVzdGlvbm5haXJlcyBhbmQgaW50ZXJ2aWV3cywgd2UgaGF2ZSBjb2xsZWN0ZWQgdmFsdWFibGUgZmVlZGJhY2sgZnJvbSBkaWZmZXJlbnQgZ3JvdXBzIGFuZCBhZGp1c3RlZCB0aGUgY29udGVudCBvZiBzY2llbmNlIHBvcHVsYXJpc2F0aW9uIGFuZCB0aGUgZm9ybSBvZiBhY3Rpdml0aWVzIGJhc2VkIG9uIHN1Y2ggZmVlZGJhY2s7IHRocm91Z2ggc29jaWFsIG1lZGlhIHBsYXRmb3Jtcywgd2UgaGF2ZSBlc3RhYmxpc2hlZCBjbG9zZXIgdGllcyB3aXRoIHRoZSBwdWJsaWMgYW5kIGF0dHJhY3RlZCB0aGUgYXR0ZW50aW9uIGFuZCBwYXJ0aWNpcGF0aW9uIG9mIGEgd2lkZXIgYXVkaWVuY2UuIE1lYW53aGlsZSwgd2UgYWxzbyBhY3RpdmVseSBwYXJ0aWNpcGF0ZSBpbiBpbnRlcm5hdGlvbmFsIGV4Y2hhbmdlIGFjdGl2aXRpZXMsIHNoYXJpbmcgb3VyIHJlc2VhcmNoIHJlc3VsdHMgYW5kIGV4cGVyaWVuY2VzIHdpdGggeW91bmcgc2Nob2xhcnMgYXJvdW5kIHRoZSB3b3JsZCBhbmQgY29udHJpYnV0aW5nIHRvIHRoZSBkZXZlbG9wbWVudCBvZiBzeW50aGV0aWMgYmlvbG9neS48L3A+XHJcbiAgICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJpbmRlbnRcIj5Mb29raW5nIGFoZWFkLCB3ZSB3aWxsIGNvbnRpbnVlIHRvIGFkaGVyZSB0byB0aGUgZWR1Y2F0aW9uYWwgY29uY2VwdCBvZiB0d28td2F5IGZlZWRiYWNrIHRvIGNvbnRpbnVvdXNseSBpbXByb3ZlIHRoZSBxdWFsaXR5IGFuZCBpbXBhY3Qgb2Ygb3VyIHNjaWVuY2UgcG9wdWxhcmlzYXRpb24gd29yay4gV2Ugd2lsbCBmdXJ0aGVyIGltcHJvdmUgdGhlIGVkdWNhdGlvbmFsIGNvbnRlbnQgYW5kIGRldmVsb3AgbW9yZSBkaXZlcnNpZmllZCBhbmQgaW50ZXJhY3RpdmUgc2NpZW5jZSBwb3B1bGFyaXNhdGlvbiBhY3Rpdml0aWVzIHRvIG1lZXQgdGhlIG5lZWRzIG9mIGRpZmZlcmVudCBncm91cHMuIEF0IHRoZSBzYW1lIHRpbWUsIHdlIHdpbGwgYWxzbyBzdHJlbmd0aGVuIG91ciBpbnRlcmFjdGlvbiB3aXRoIHRoZSBwdWJsaWMgdG8gY29sbGVjdCBtb3JlIGZlZWRiYWNrIGFuZCBjb250aW51b3VzbHkgaW1wcm92ZSBvdXIgd29yayBiYXNlZCBvbiBzdWNoIGZlZWRiYWNrLjwvcD5cclxuICAgICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cImluZGVudFwiPldlIGJlbGlldmUgdGhhdCB0aHJvdWdoIGNvbnRpbnVvdXMgZWZmb3J0cywgb3VyIGVkdWNhdGlvbmFsIHdvcmsgd2lsbCBiZSBhYmxlIHRvIGJldHRlciBzZXJ2ZSB0aGUgY29tbXVuaXR5LCBlbmhhbmNlIHRoZSBwdWJsaWMncyBzY2llbnRpZmljIGxpdGVyYWN5IGFuZCBoZWFsdGggYXdhcmVuZXNzLCBhbmQgbWFrZSBncmVhdGVyIGNvbnRyaWJ1dGlvbnMgdG8gdGhlIGRldmVsb3BtZW50IGFuZCBwb3B1bGFyaXNhdGlvbiBvZiBzeW50aGV0aWMgYmlvbG9neSBhbmQgaGVwYXRpYyBlbmNlcGhhbG9wYXRoeS48L3A+XHJcbiAgICAgICAgICAgICAgPC9FbGVtZW50PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLTFcIj48L2Rpdj5cclxuXHJcbiAgICAgICAgICBcclxuICAgICAgICBcclxuICAgICAgPC9kaXY+XHJcbiAgICA8Lz5cclxuICApO1xyXG59XHJcbiIsICJpbXBvcnQgeyBOYXYgfSBmcm9tICdyZWFjdC1ib290c3RyYXAnO1xyXG5pbXBvcnQgeyBMaW5rLEVsZW1lbnQgfSBmcm9tICdyZWFjdC1zY3JvbGwnO1xyXG5pbXBvcnQgUmVhY3Qse3VzZUVmZmVjdCx1c2VTdGF0ZX0gZnJvbSAncmVhY3QnO1xyXG5cclxuLy8gc2lkZW5hdmJhciBiZWdpblxyXG5pbnRlcmZhY2UgU2lkZU5hdmJhclByb3BzIHtcclxuICBhY3RpdmVMaW5rOiBzdHJpbmc7XHJcbn1cclxuY29uc3QgU2lkZU5hdmJhcjogUmVhY3QuRkM8U2lkZU5hdmJhclByb3BzPiA9ICh7IGFjdGl2ZUxpbmsgfSkgPT4ge1xyXG4gIHJldHVybiAoXHJcbiAgICA8ZGl2IGNsYXNzTmFtZT1cInNpZGUtbmF2YmFyXCI+XHJcbiAgICAgIDxOYXYgY2xhc3NOYW1lPVwiZmxleC1jb2x1bW5cIj5cclxuICAgICAgICA8TmF2LkxpbmsgYXM9e0xpbmt9IHRvPVwic2VjdGlvbjFcIiBzbW9vdGg9e3RydWV9IGR1cmF0aW9uPXs1MDB9IGNsYXNzTmFtZT17YWN0aXZlTGluayA9PT0gJ3NlY3Rpb24xJyA/ICdhY3RpdmUnIDogJ25vdEFjdGl2ZSd9PlNlY3Rpb24gMTwvTmF2Lkxpbms+XHJcbiAgICAgICAgPE5hdi5MaW5rIGFzPXtMaW5rfSB0bz1cInNlY3Rpb24yXCIgc21vb3RoPXt0cnVlfSBkdXJhdGlvbj17NTAwfSBjbGFzc05hbWU9e2FjdGl2ZUxpbmsgPT09ICdzZWN0aW9uMicgPyAnYWN0aXZlJyA6ICdub3RBY3RpdmUnfT5TZWN0aW9uIDI8L05hdi5MaW5rPlxyXG4gICAgICAgIDxOYXYuTGluayBhcz17TGlua30gdG89XCJzZWN0aW9uM1wiIHNtb290aD17dHJ1ZX0gZHVyYXRpb249ezUwMH0gY2xhc3NOYW1lPXthY3RpdmVMaW5rID09PSAnc2VjdGlvbjMnID8gJ2FjdGl2ZScgOiAnbm90QWN0aXZlJ30+U2VjdGlvbiAzPC9OYXYuTGluaz5cclxuICAgICAgICA8TmF2LkxpbmsgYXM9e0xpbmt9IHRvPVwic2VjdGlvbjRcIiBzbW9vdGg9e3RydWV9IGR1cmF0aW9uPXs1MDB9IGNsYXNzTmFtZT17YWN0aXZlTGluayA9PT0gJ3NlY3Rpb240JyA/ICdhY3RpdmUnIDogJ25vdEFjdGl2ZSd9PlNlY3Rpb24gNDwvTmF2Lkxpbms+XHJcbiAgICAgICAgPE5hdi5MaW5rIGFzPXtMaW5rfSB0bz1cInNlY3Rpb241XCIgc21vb3RoPXt0cnVlfSBkdXJhdGlvbj17NTAwfSBjbGFzc05hbWU9e2FjdGl2ZUxpbmsgPT09ICdzZWN0aW9uNScgPyAnYWN0aXZlJyA6ICdub3RBY3RpdmUnfT5TZWN0aW9uIDU8L05hdi5MaW5rPlxyXG4gICAgICAgIDxOYXYuTGluayBhcz17TGlua30gdG89XCJzZWN0aW9uNlwiIHNtb290aD17dHJ1ZX0gZHVyYXRpb249ezUwMH0gY2xhc3NOYW1lPXthY3RpdmVMaW5rID09PSAnc2VjdGlvbjYnID8gJ2FjdGl2ZScgOiAnbm90QWN0aXZlJ30+U2VjdGlvbiA2PC9OYXYuTGluaz5cclxuICAgICAgICA8TmF2LkxpbmsgYXM9e0xpbmt9IHRvPVwic2VjdGlvbjdcIiBzbW9vdGg9e3RydWV9IGR1cmF0aW9uPXs1MDB9IGNsYXNzTmFtZT17YWN0aXZlTGluayA9PT0gJ3NlY3Rpb243JyA/ICdhY3RpdmUnIDogJ25vdEFjdGl2ZSd9PlNlY3Rpb24gNzwvTmF2Lkxpbms+XHJcbiAgICAgICAgPE5hdi5MaW5rIGFzPXtMaW5rfSB0bz1cInNlY3Rpb244XCIgc21vb3RoPXt0cnVlfSBkdXJhdGlvbj17NTAwfSBjbGFzc05hbWU9e2FjdGl2ZUxpbmsgPT09ICdzZWN0aW9uOCcgPyAnYWN0aXZlJyA6ICdub3RBY3RpdmUnfT5TZWN0aW9uIDg8L05hdi5MaW5rPlxyXG4gICAgICAgIDxOYXYuTGluayBhcz17TGlua30gdG89XCJzZWN0aW9uOVwiIHNtb290aD17dHJ1ZX0gZHVyYXRpb249ezUwMH0gY2xhc3NOYW1lPXthY3RpdmVMaW5rID09PSAnc2VjdGlvbjknID8gJ2FjdGl2ZScgOiAnbm90QWN0aXZlJ30+U2VjdGlvbiA5PC9OYXYuTGluaz5cclxuICAgICAgICA8TmF2LkxpbmsgYXM9e0xpbmt9IHRvPVwic2VjdGlvbjEwXCIgc21vb3RoPXt0cnVlfSBkdXJhdGlvbj17NTAwfSBjbGFzc05hbWU9e2FjdGl2ZUxpbmsgPT09ICdzZWN0aW9uMTAnID8gJ2FjdGl2ZScgOiAnbm90QWN0aXZlJ30+U2VjdGlvbiAxMDwvTmF2Lkxpbms+XHJcbiAgICAgICAgPE5hdi5MaW5rIGFzPXtMaW5rfSB0bz1cInNlY3Rpb24xMVwiIHNtb290aD17dHJ1ZX0gZHVyYXRpb249ezUwMH0gY2xhc3NOYW1lPXthY3RpdmVMaW5rID09PSAnc2VjdGlvbjExJyA/ICdhY3RpdmUnIDogJ25vdEFjdGl2ZSd9PlNlY3Rpb24gMTE8L05hdi5MaW5rPlxyXG4gICAgICAgIHsvKiBcdTZERkJcdTUyQTBcdTY2RjRcdTU5MUFcdTVCRkNcdTgyMkFcdTk0RkVcdTYzQTUgKi99XHJcbiAgICAgIDwvTmF2PlxyXG4gICAgPC9kaXY+XHJcbiAgKTtcclxufTtcclxuLy8gc2lkZW5hdmJhciBlbmQgXHJcblxyXG5leHBvcnQgZnVuY3Rpb24gRW50cmVwcmVuZXVyc2hpcCgpIHtcclxuICAvLyBzaWRlbmF2YmFyIGJlZ2luXHJcbiAgY29uc3QgW2FjdGl2ZUxpbmssIHNldEFjdGl2ZUxpbmtdID0gdXNlU3RhdGU8c3RyaW5nPignJyk7XHJcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xyXG4gICAgICBjb25zdCBoYW5kbGVTY3JvbGwgPSAoKSA9PiB7XHJcbiAgICAgICAgY29uc3Qgc2VjdGlvbnMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcuZWxlbWVudCcpO1xyXG4gICAgICAgIGxldCBjdXJyZW50U2VjdGlvbiA9ICcnO1xyXG4gICAgICAgICAgc2VjdGlvbnMuZm9yRWFjaChzZWN0aW9uID0+IHtcclxuICAgICAgICAgICAgY29uc3Qgc2VjdGlvblRvcCA9IHNlY3Rpb24uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkudG9wO1xyXG4gICAgICAgICAgICBpZiAoc2VjdGlvblRvcCA8PSB3aW5kb3cuaW5uZXJIZWlnaHQgLyAyICYmIHNlY3Rpb25Ub3AgPiAtc2VjdGlvbi5jbGllbnRIZWlnaHQpIHtcclxuICAgICAgICAgICAgICBjdXJyZW50U2VjdGlvbiA9IHNlY3Rpb24uaWQ7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIHNldEFjdGl2ZUxpbmsoY3VycmVudFNlY3Rpb24pO1xyXG4gICAgICB9O1xyXG4gICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgaGFuZGxlU2Nyb2xsKTtcclxuICAgICAgcmV0dXJuICgpID0+IHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdzY3JvbGwnLCBoYW5kbGVTY3JvbGwpO1xyXG4gICAgfSwgW10pO1xyXG4gICAgLy8gc2lkZW5hdmJhciBlbmRcclxuXHJcblxyXG5cclxuICByZXR1cm4gKFxyXG4gICAgPD5cclxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJjdXN0b20taGVhZGVyLWVudHJlcHJlbmV1cnNoaXBcIj5cclxuPGgxIGNsYXNzTmFtZT1cImNlbnRlcmVkLXRpdGxlXCI+XHJcbiAgICAgICAgICAgICAgPGltZyBcclxuICAgICAgICAgICAgICAgIHNyYz1cImh0dHBzOi8vc3RhdGljLmlnZW0ud2lraS90ZWFtcy81Mzc4L2hlYWRlci9lbnRyZXByZW5ldXJzaGlwLnBuZ1wiXHJcbiAgICAgICAgICAgICAgICBhbHQ9XCJzYWZldHkgaGVhZGVyXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImhlYWRlci1pbWdcIlxyXG4gICAgICAgICAgICAgIC8+XHJcbjwvaDE+XHJcbjwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cInJvdyAgYmctcmljZV95ZWxsb3dcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC0yXCI+XHJcbiAgICAgICAgICA8U2lkZU5hdmJhciBhY3RpdmVMaW5rPXthY3RpdmVMaW5rfSAgICAgICAgICAvPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIFxyXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLTEwXCI+XHJcbiAgICAgICAgICBcclxuICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICA8RWxlbWVudCBuYW1lPVwic2VjdGlvbjFcIiBjbGFzc05hbWU9XCJlbGVtZW50IHJvdW5kZWQtYm9yZGVyXCIgaWQ9J3NlY3Rpb24xJz5cclxuICAgICAgICAgICAgICAgICA8aDI+U2VjdGlvbiAxPC9oMj5cclxuICAgICAgICAgICAgICAgICA8cD5Db250ZW50IGZvciBzZWN0aW9uIDEuPC9wPlxyXG4gICAgICAgICAgICAgICAgIDxpbWcgXHJcbiAgICAgICAgICAgICAgICBzcmM9XCJodHRwczovL3N0YXRpYy5pZ2VtLndpa2kvdGVhbXMvNTM3OC9zY2hvb2wtYmFkZ2UveWFueWludGVjaC53ZWJwXCJcclxuICAgICAgICAgICAgICAgIGFsdD1cImV4YW1wbGVcIlxyXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwicmVzcG9uc2l2ZS1pbWdcIlxyXG4gICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgIDwvRWxlbWVudD5cclxuICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImJkLWNhbGxvdXQgYmQtY2FsbG91dC1pbmZvIGJnLWdyYXlcIj5cclxuICAgICAgICAgICAgICAgICAgPGgxPldoYXQgZG8gd2UgZG8gdG8gLi4uPyBTZWUuLi48L2gxPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICBcclxuICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICA8RWxlbWVudCBuYW1lPVwic2VjdGlvbjJcIiBjbGFzc05hbWU9XCJlbGVtZW50IHJvdW5kZWQtYm9yZGVyXCIgaWQ9J3NlY3Rpb24yJz5cclxuICAgICAgICAgICAgICAgIDxoMj5TZWN0aW9uIDI8L2gyPlxyXG4gICAgICAgICAgICAgICAgPHA+Q29udGVudCBmb3Igc2VjdGlvbiAyLjwvcD5cclxuICAgICAgICAgICAgICAgIDxpbWcgXHJcbiAgICAgICAgICAgICAgICBzcmM9XCJodHRwczovL3N0YXRpYy5pZ2VtLndpa2kvdGVhbXMvNTM3OC9zY2hvb2wtYmFkZ2UveWFueWludGVjaC53ZWJwXCJcclxuICAgICAgICAgICAgICAgIGFsdD1cImV4YW1wbGVcIlxyXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwicmVzcG9uc2l2ZS1pbWdcIlxyXG4gICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgPC9FbGVtZW50PlxyXG4gICAgICAgICAgXHJcblxyXG4gICAgICAgICAgICAgIDxFbGVtZW50IG5hbWU9XCJzZWN0aW9uM1wiIGNsYXNzTmFtZT1cImVsZW1lbnQgcm91bmRlZC1ib3JkZXJcIiBpZD0nc2VjdGlvbjMnPlxyXG4gICAgICAgICAgICAgIDxoMj5TZWN0aW9uIDM8L2gyPlxyXG4gICAgICAgICAgICAgIDxwPkNvbnRlbnQgZm9yIHNlY3Rpb24gMy48L3A+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyb3VuZGVkLWJvcmRlclwiPlxyXG4gICAgICAgICAgICAgIDxoNCBjbGFzc05hbWU9XCJjZW50ZXItdGV4dFwiPlNlY3Rpb24gMzwvaDQ+XHJcbiAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwiaW5kZW50XCI+bGFzIGlqZmZzIGFpc2tmZCBmc2tqIGlpd2xzIGFzZC5hYXNzIGZmYXMgYXdzc2QgYXd1cyBpaXNhbCBmYXNrLmFpc2lzYWQga3NqZGZrYWYgaXdqYXNpZmpha2RzaGYgd2lqZGZhbGtzamYgd2lrc2prZmprc2FsaGYsIGdzYWhmamhnZWprZmggIHVoYWVqa2ZoIHNqZGloZ2Z1cWl3IGpoIHNqaWFmaGpzYWogZmggYXNkLjwvcD5cclxuICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJpbmRlbnRcIj5sYXMgaWpmZnMgYWlza2ZkIGZza2ogaWl3bHMgYXNkLmFhc3MgZmZhcyBhd3NzZCBhd3VzIGlpc2FsIGZhc2suYWlzaXNhZCBrc2pkZmthZiBpd2phc2lmamFrZHNoZiB3aWpkZmFsa3NqZiB3aWtzamtmamtzYWxoZiwgZ3NhaGZqaGdlamtmaCAgdWhhZWprZmggc2pkaWhnZnVxaXcgamggc2ppYWZoanNhaiBmaCBhc2QuPC9wPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvRWxlbWVudD5cclxuXHJcbiAgICAgICAgICAgICAgPEVsZW1lbnQgbmFtZT1cInNlY3Rpb240XCIgY2xhc3NOYW1lPVwiZWxlbWVudCByb3VuZGVkLWJvcmRlclwiIGlkPSdzZWN0aW9uNCc+XHJcbiAgICAgICAgICAgICAgPGgyPlNlY3Rpb24gNDwvaDI+XHJcbiAgICAgICAgICAgICAgPHA+Q29udGVudCBmb3Igc2VjdGlvbiA0LjwvcD5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJvdW5kZWQtYm9yZGVyXCI+XHJcbiAgICAgICAgICAgICAgPGg0IGNsYXNzTmFtZT1cImNlbnRlci10ZXh0XCI+XHU2MjExXHU2NjJGXHU1OTI3XHU1RTA1QjwvaDQ+XHJcbiAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwiaW5kZW50XCI+bGFzIGlqZmZzIGFpc2tmZCBmc2tqIGlpd2xzIGFzZC5hYXNzIGZmYXMgYXdzc2QgYXd1cyBpaXNhbCBmYXNrLmFpc2lzYWQga3NqZGZrYWYgaXdqYXNpZmpha2RzaGYgd2lqZGZhbGtzamYgd2lrc2prZmprc2FsaGYsIGdzYWhmamhnZWprZmggIHVoYWVqa2ZoIHNqZGloZ2Z1cWl3IGpoIHNqaWFmaGpzYWogZmggYXNkLjwvcD5cclxuICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJpbmRlbnRcIj5sYXMgaWpmZnMgYWlza2ZkIGZza2ogaWl3bHMgYXNkLmFhc3MgZmZhcyBhd3NzZCBhd3VzIGlpc2FsIGZhc2suYWlzaXNhZCBrc2pkZmthZiBpd2phc2lmamFrZHNoZiB3aWpkZmFsa3NqZiB3aWtzamtmamtzYWxoZiwgZ3NhaGZqaGdlamtmaCAgdWhhZWprZmggc2pkaWhnZnVxaXcgamggc2ppYWZoanNhaiBmaCBhc2QuPC9wPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvRWxlbWVudD5cclxuXHJcbiAgICAgICAgICAgICAgPEVsZW1lbnQgbmFtZT1cInNlY3Rpb241XCIgY2xhc3NOYW1lPVwiZWxlbWVudCByb3VuZGVkLWJvcmRlclwiIGlkPSdzZWN0aW9uNSc+XHJcbiAgICAgICAgICAgICAgPGgyPlNlY3Rpb24gNTwvaDI+XHJcbiAgICAgICAgICAgICAgPHA+Q29udGVudCBmb3Igc2VjdGlvbiA1LjwvcD5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJvdW5kZWQtYm9yZGVyXCI+XHJcbiAgICAgICAgICAgICAgPGg0IGNsYXNzTmFtZT1cImNlbnRlci10ZXh0XCI+XHU2MjExXHU2NjJGXHU1OTI3XHU1RTA1QjwvaDQ+XHJcbiAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwiaW5kZW50XCI+bGFzIGlqZmZzIGFpc2tmZCBmc2tqIGlpd2xzIGFzZC5hYXNzIGZmYXMgYXdzc2QgYXd1cyBpaXNhbCBmYXNrLmFpc2lzYWQga3NqZGZrYWYgaXdqYXNpZmpha2RzaGYgd2lqZGZhbGtzamYgd2lrc2prZmprc2FsaGYsIGdzYWhmamhnZWprZmggIHVoYWVqa2ZoIHNqZGloZ2Z1cWl3IGpoIHNqaWFmaGpzYWogZmggYXNkLjwvcD5cclxuICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJpbmRlbnRcIj5sYXMgaWpmZnMgYWlza2ZkIGZza2ogaWl3bHMgYXNkLmFhc3MgZmZhcyBhd3NzZCBhd3VzIGlpc2FsIGZhc2suYWlzaXNhZCBrc2pkZmthZiBpd2phc2lmamFrZHNoZiB3aWpkZmFsa3NqZiB3aWtzamtmamtzYWxoZiwgZ3NhaGZqaGdlamtmaCAgdWhhZWprZmggc2pkaWhnZnVxaXcgamggc2ppYWZoanNhaiBmaCBhc2QuPC9wPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvRWxlbWVudD5cclxuXHJcbiAgICAgICAgICAgICAgPEVsZW1lbnQgbmFtZT1cInNlY3Rpb242XCIgY2xhc3NOYW1lPVwiZWxlbWVudCByb3VuZGVkLWJvcmRlclwiIGlkPSdzZWN0aW9uNic+XHJcbiAgICAgICAgICAgICAgPGgyPlNlY3Rpb24gNjwvaDI+XHJcbiAgICAgICAgICAgICAgPHA+Q29udGVudCBmb3Igc2VjdGlvbiA2LjwvcD5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJvdW5kZWQtYm9yZGVyXCI+XHJcbiAgICAgICAgICAgICAgPGg0IGNsYXNzTmFtZT1cImNlbnRlci10ZXh0XCI+XHU2MjExXHU2NjJGXHU1OTI3XHU1RTA1QjwvaDQ+XHJcbiAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwiaW5kZW50XCI+bGFzIGlqZmZzIGFpc2tmZCBmc2tqIGlpd2xzIGFzZC5hYXNzIGZmYXMgYXdzc2QgYXd1cyBpaXNhbCBmYXNrLmFpc2lzYWQga3NqZGZrYWYgaXdqYXNpZmpha2RzaGYgd2lqZGZhbGtzamYgd2lrc2prZmprc2FsaGYsIGdzYWhmamhnZWprZmggIHVoYWVqa2ZoIHNqZGloZ2Z1cWl3IGpoIHNqaWFmaGpzYWogZmggYXNkLjwvcD5cclxuICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJpbmRlbnRcIj5sYXMgaWpmZnMgYWlza2ZkIGZza2ogaWl3bHMgYXNkLmFhc3MgZmZhcyBhd3NzZCBhd3VzIGlpc2FsIGZhc2suYWlzaXNhZCBrc2pkZmthZiBpd2phc2lmamFrZHNoZiB3aWpkZmFsa3NqZiB3aWtzamtmamtzYWxoZiwgZ3NhaGZqaGdlamtmaCAgdWhhZWprZmggc2pkaWhnZnVxaXcgamggc2ppYWZoanNhaiBmaCBhc2QuPC9wPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvRWxlbWVudD5cclxuXHJcbiAgICAgICAgICAgICAgPEVsZW1lbnQgbmFtZT1cInNlY3Rpb243XCIgY2xhc3NOYW1lPVwiZWxlbWVudCByb3VuZGVkLWJvcmRlclwiIGlkPSdzZWN0aW9uNyc+XHJcbiAgICAgICAgICAgICAgPGgyPlNlY3Rpb24gNzwvaDI+XHJcbiAgICAgICAgICAgICAgPHA+Q29udGVudCBmb3Igc2VjdGlvbiA3LjwvcD5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJvdW5kZWQtYm9yZGVyXCI+XHJcbiAgICAgICAgICAgICAgPGg0IGNsYXNzTmFtZT1cImNlbnRlci10ZXh0XCI+XHU2MjExXHU2NjJGXHU1OTI3XHU1RTA1QjwvaDQ+XHJcbiAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwiaW5kZW50XCI+bGFzIGlqZmZzIGFpc2tmZCBmc2tqIGlpd2xzIGFzZC5hYXNzIGZmYXMgYXdzc2QgYXd1cyBpaXNhbCBmYXNrLmFpc2lzYWQga3NqZGZrYWYgaXdqYXNpZmpha2RzaGYgd2lqZGZhbGtzamYgd2lrc2prZmprc2FsaGYsIGdzYWhmamhnZWprZmggIHVoYWVqa2ZoIHNqZGloZ2Z1cWl3IGpoIHNqaWFmaGpzYWogZmggYXNkLjwvcD5cclxuICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJpbmRlbnRcIj5sYXMgaWpmZnMgYWlza2ZkIGZza2ogaWl3bHMgYXNkLmFhc3MgZmZhcyBhd3NzZCBhd3VzIGlpc2FsIGZhc2suYWlzaXNhZCBrc2pkZmthZiBpd2phc2lmamFrZHNoZiB3aWpkZmFsa3NqZiB3aWtzamtmamtzYWxoZiwgZ3NhaGZqaGdlamtmaCAgdWhhZWprZmggc2pkaWhnZnVxaXcgamggc2ppYWZoanNhaiBmaCBhc2QuPC9wPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvRWxlbWVudD5cclxuXHJcbiAgICAgICAgICAgICAgPEVsZW1lbnQgbmFtZT1cInNlY3Rpb244XCIgY2xhc3NOYW1lPVwiZWxlbWVudCByb3VuZGVkLWJvcmRlclwiIGlkPSdzZWN0aW9uOCc+XHJcbiAgICAgICAgICAgICAgPGgyPlNlY3Rpb24gODwvaDI+XHJcbiAgICAgICAgICAgICAgPHA+Q29udGVudCBmb3Igc2VjdGlvbiA4LjwvcD5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJvdW5kZWQtYm9yZGVyXCI+XHJcbiAgICAgICAgICAgICAgPGg0IGNsYXNzTmFtZT1cImNlbnRlci10ZXh0XCI+XHU2MjExXHU2NjJGXHU1OTI3XHU1RTA1QjwvaDQ+XHJcbiAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwiaW5kZW50XCI+bGFzIGlqZmZzIGFpc2tmZCBmc2tqIGlpd2xzIGFzZC5hYXNzIGZmYXMgYXdzc2QgYXd1cyBpaXNhbCBmYXNrLmFpc2lzYWQga3NqZGZrYWYgaXdqYXNpZmpha2RzaGYgd2lqZGZhbGtzamYgd2lrc2prZmprc2FsaGYsIGdzYWhmamhnZWprZmggIHVoYWVqa2ZoIHNqZGloZ2Z1cWl3IGpoIHNqaWFmaGpzYWogZmggYXNkLjwvcD5cclxuICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJpbmRlbnRcIj5sYXMgaWpmZnMgYWlza2ZkIGZza2ogaWl3bHMgYXNkLmFhc3MgZmZhcyBhd3NzZCBhd3VzIGlpc2FsIGZhc2suYWlzaXNhZCBrc2pkZmthZiBpd2phc2lmamFrZHNoZiB3aWpkZmFsa3NqZiB3aWtzamtmamtzYWxoZiwgZ3NhaGZqaGdlamtmaCAgdWhhZWprZmggc2pkaWhnZnVxaXcgamggc2ppYWZoanNhaiBmaCBhc2QuPC9wPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvRWxlbWVudD5cclxuXHJcbiAgICAgICAgICAgICAgPEVsZW1lbnQgbmFtZT1cInNlY3Rpb245XCIgY2xhc3NOYW1lPVwiZWxlbWVudCByb3VuZGVkLWJvcmRlclwiIGlkPSdzZWN0aW9uOSc+XHJcbiAgICAgICAgICAgICAgPGgyPlNlY3Rpb24gOTwvaDI+XHJcbiAgICAgICAgICAgICAgPHA+Q29udGVudCBmb3Igc2VjdGlvbiA5LjwvcD5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJvdW5kZWQtYm9yZGVyXCI+XHJcbiAgICAgICAgICAgICAgPGg0IGNsYXNzTmFtZT1cImNlbnRlci10ZXh0XCI+XHU2MjExXHU2NjJGXHU1OTI3XHU1RTA1QjwvaDQ+XHJcbiAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwiaW5kZW50XCI+bGFzIGlqZmZzIGFpc2tmZCBmc2tqIGlpd2xzIGFzZC5hYXNzIGZmYXMgYXdzc2QgYXd1cyBpaXNhbCBmYXNrLmFpc2lzYWQga3NqZGZrYWYgaXdqYXNpZmpha2RzaGYgd2lqZGZhbGtzamYgd2lrc2prZmprc2FsaGYsIGdzYWhmamhnZWprZmggIHVoYWVqa2ZoIHNqZGloZ2Z1cWl3IGpoIHNqaWFmaGpzYWogZmggYXNkLjwvcD5cclxuICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJpbmRlbnRcIj5sYXMgaWpmZnMgYWlza2ZkIGZza2ogaWl3bHMgYXNkLmFhc3MgZmZhcyBhd3NzZCBhd3VzIGlpc2FsIGZhc2suYWlzaXNhZCBrc2pkZmthZiBpd2phc2lmamFrZHNoZiB3aWpkZmFsa3NqZiB3aWtzamtmamtzYWxoZiwgZ3NhaGZqaGdlamtmaCAgdWhhZWprZmggc2pkaWhnZnVxaXcgamggc2ppYWZoanNhaiBmaCBhc2QuPC9wPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvRWxlbWVudD5cclxuXHJcbiAgICAgICAgICAgICAgPEVsZW1lbnQgbmFtZT1cInNlY3Rpb24xMFwiIGNsYXNzTmFtZT1cImVsZW1lbnQgcm91bmRlZC1ib3JkZXJcIiBpZD0nc2VjdGlvbjEwJz5cclxuICAgICAgICAgICAgICA8aDI+U2VjdGlvbiAxMDwvaDI+XHJcbiAgICAgICAgICAgICAgPHA+Q29udGVudCBmb3Igc2VjdGlvbiAxMC48L3A+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyb3VuZGVkLWJvcmRlclwiPlxyXG4gICAgICAgICAgICAgIDxoNCBjbGFzc05hbWU9XCJjZW50ZXItdGV4dFwiPlx1NjIxMVx1NjYyRlx1NTkyN1x1NUUwNUI8L2g0PlxyXG4gICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cImluZGVudFwiPmxhcyBpamZmcyBhaXNrZmQgZnNraiBpaXdscyBhc2QuYWFzcyBmZmFzIGF3c3NkIGF3dXMgaWlzYWwgZmFzay5haXNpc2FkIGtzamRma2FmIGl3amFzaWZqYWtkc2hmIHdpamRmYWxrc2pmIHdpa3Nqa2Zqa3NhbGhmLCBnc2FoZmpoZ2Vqa2ZoICB1aGFlamtmaCBzamRpaGdmdXFpdyBqaCBzamlhZmhqc2FqIGZoIGFzZC48L3A+XHJcbiAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwiaW5kZW50XCI+bGFzIGlqZmZzIGFpc2tmZCBmc2tqIGlpd2xzIGFzZC5hYXNzIGZmYXMgYXdzc2QgYXd1cyBpaXNhbCBmYXNrLmFpc2lzYWQga3NqZGZrYWYgaXdqYXNpZmpha2RzaGYgd2lqZGZhbGtzamYgd2lrc2prZmprc2FsaGYsIGdzYWhmamhnZWprZmggIHVoYWVqa2ZoIHNqZGloZ2Z1cWl3IGpoIHNqaWFmaGpzYWogZmggYXNkLjwvcD5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L0VsZW1lbnQ+XHJcblxyXG4gICAgICAgICAgICAgIDxFbGVtZW50IG5hbWU9XCJzZWN0aW9uMTFcIiBjbGFzc05hbWU9XCJlbGVtZW50IHJvdW5kZWQtYm9yZGVyXCIgaWQ9J3NlY3Rpb24xMSc+XHJcbiAgICAgICAgICAgICAgPGgyPlNlY3Rpb24gMTE8L2gyPlxyXG4gICAgICAgICAgICAgIDxwPkNvbnRlbnQgZm9yIHNlY3Rpb24gMTEuPC9wPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicm91bmRlZC1ib3JkZXJcIj5cclxuICAgICAgICAgICAgICA8aDQgY2xhc3NOYW1lPVwiY2VudGVyLXRleHRcIj5cdTYyMTFcdTY2MkZcdTU5MjdcdTVFMDVCPC9oND5cclxuICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJpbmRlbnRcIj5sYXMgaWpmZnMgYWlza2ZkIGZza2ogaWl3bHMgYXNkLmFhc3MgZmZhcyBhd3NzZCBhd3VzIGlpc2FsIGZhc2suYWlzaXNhZCBrc2pkZmthZiBpd2phc2lmamFrZHNoZiB3aWpkZmFsa3NqZiB3aWtzamtmamtzYWxoZiwgZ3NhaGZqaGdlamtmaCAgdWhhZWprZmggc2pkaWhnZnVxaXcgamggc2ppYWZoanNhaiBmaCBhc2QuPC9wPlxyXG4gICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cImluZGVudFwiPmxhcyBpamZmcyBhaXNrZmQgZnNraiBpaXdscyBhc2QuYWFzcyBmZmFzIGF3c3NkIGF3dXMgaWlzYWwgZmFzay5haXNpc2FkIGtzamRma2FmIGl3amFzaWZqYWtkc2hmIHdpamRmYWxrc2pmIHdpa3Nqa2Zqa3NhbGhmLCBnc2FoZmpoZ2Vqa2ZoICB1aGFlamtmaCBzamRpaGdmdXFpdyBqaCBzamlhZmhqc2FqIGZoIGFzZC48L3A+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9FbGVtZW50PlxyXG4gICAgICAgICAgXHJcblxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLTFcIj48L2Rpdj5cclxuXHJcbiAgICAgICAgICBcclxuICAgICAgICBcclxuICAgICAgPC9kaXY+XHJcbiAgICA8Lz5cclxuICApO1xyXG59XHJcbiIsICJpbXBvcnQgeyBOYXYgfSBmcm9tICdyZWFjdC1ib290c3RyYXAnO1xyXG5pbXBvcnQgeyBMaW5rLEVsZW1lbnQgfSBmcm9tICdyZWFjdC1zY3JvbGwnO1xyXG5pbXBvcnQgUmVhY3Qse3VzZUVmZmVjdCx1c2VTdGF0ZX0gZnJvbSAncmVhY3QnO1xyXG5cclxuLy8gc2lkZW5hdmJhciBiZWdpblxyXG5pbnRlcmZhY2UgU2lkZU5hdmJhclByb3BzIHtcclxuICBhY3RpdmVMaW5rOiBzdHJpbmc7XHJcbn1cclxuY29uc3QgU2lkZU5hdmJhcjogUmVhY3QuRkM8U2lkZU5hdmJhclByb3BzPiA9ICh7IGFjdGl2ZUxpbmsgfSkgPT4ge1xyXG4gIHJldHVybiAoXHJcbiAgICA8ZGl2IGNsYXNzTmFtZT1cInNpZGUtbmF2YmFyXCI+XHJcbiAgICAgIDxOYXYgY2xhc3NOYW1lPVwiZmxleC1jb2x1bW5cIj5cclxuICAgICAgICA8TmF2LkxpbmsgYXM9e0xpbmt9IHRvPVwic2VjdGlvbjNcIiBzbW9vdGg9e3RydWV9IGR1cmF0aW9uPXs1MDB9IGNsYXNzTmFtZT17YWN0aXZlTGluayA9PT0gJ3NlY3Rpb24zJyA/ICdhY3RpdmUnIDogJ25vdEFjdGl2ZSd9Pk92ZXJ2aWV3PC9OYXYuTGluaz5cclxuICAgICAgICA8TmF2LkxpbmsgYXM9e0xpbmt9IHRvPVwic2VjdGlvbjRcIiBzbW9vdGg9e3RydWV9IGR1cmF0aW9uPXs1MDB9IGNsYXNzTmFtZT17YWN0aXZlTGluayA9PT0gJ3NlY3Rpb240JyA/ICdhY3RpdmUnIDogJ25vdEFjdGl2ZSd9PlJ1cmFsIG91dHJlYWNoIHByb2dyYW08L05hdi5MaW5rPlxyXG4gICAgICAgIDxOYXYuTGluayBhcz17TGlua30gdG89XCJzZWN0aW9uNVwiIHNtb290aD17dHJ1ZX0gZHVyYXRpb249ezUwMH0gY2xhc3NOYW1lPXthY3RpdmVMaW5rID09PSAnc2VjdGlvbjUnID8gJ2FjdGl2ZScgOiAnbm90QWN0aXZlJ30+QXNzaXN0YW5jZSBFbmdpbmVlcmluZzwvTmF2Lkxpbms+XHJcbiAgICAgICAgPE5hdi5MaW5rIGFzPXtMaW5rfSB0bz1cInNlY3Rpb242XCIgc21vb3RoPXt0cnVlfSBkdXJhdGlvbj17NTAwfSBjbGFzc05hbWU9e2FjdGl2ZUxpbmsgPT09ICdzZWN0aW9uNicgPyAnYWN0aXZlJyA6ICdub3RBY3RpdmUnfT5Gcm9tIGV2aWRlbmNlIHRvIG5hcnJhdGl2ZTogaHVtYW5pc3RpYyBjYXJlIGFuZCBpbmNsdXNpdmUgcHJhY3RpY2UgaW4gbWVkaWNpbmU8L05hdi5MaW5rPlxyXG4gICAgICAgIDxOYXYuTGluayBhcz17TGlua30gdG89XCJzZWN0aW9uN1wiIHNtb290aD17dHJ1ZX0gZHVyYXRpb249ezUwMH0gY2xhc3NOYW1lPXthY3RpdmVMaW5rID09PSAnc2VjdGlvbjcnID8gJ2FjdGl2ZScgOiAnbm90QWN0aXZlJ30+SW5jbHVzaXZpdHkgd2l0aGluIG91ciB0ZWFtPC9OYXYuTGluaz5cclxuICAgICAgICA8TmF2LkxpbmsgYXM9e0xpbmt9IHRvPVwic2VjdGlvbjhcIiBzbW9vdGg9e3RydWV9IGR1cmF0aW9uPXs1MDB9IGNsYXNzTmFtZT17YWN0aXZlTGluayA9PT0gJ3NlY3Rpb244JyA/ICdhY3RpdmUnIDogJ25vdEFjdGl2ZSd9Pkxpbmsgd2l0aGluIHRoZSB3b3JsZDwvTmF2Lkxpbms+XHJcbiAgICAgICAgPE5hdi5MaW5rIGFzPXtMaW5rfSB0bz1cInNlY3Rpb245XCIgc21vb3RoPXt0cnVlfSBkdXJhdGlvbj17NTAwfSBjbGFzc05hbWU9e2FjdGl2ZUxpbmsgPT09ICdzZWN0aW9uOScgPyAnYWN0aXZlJyA6ICdub3RBY3RpdmUnfT5Db25jbHVzaW9uPC9OYXYuTGluaz5cclxuICAgICAgICB7LyogXHU2REZCXHU1MkEwXHU2NkY0XHU1OTFBXHU1QkZDXHU4MjJBXHU5NEZFXHU2M0E1ICovfVxyXG4gICAgICA8L05hdj5cclxuICAgIDwvZGl2PlxyXG4gICk7XHJcbn07XHJcbi8vIHNpZGVuYXZiYXIgZW5kIFxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIEluY2x1c2l2aXR5KCkge1xyXG4gIC8vIHNpZGVuYXZiYXIgYmVnaW5cclxuICBjb25zdCBbYWN0aXZlTGluaywgc2V0QWN0aXZlTGlua10gPSB1c2VTdGF0ZTxzdHJpbmc+KCcnKTtcclxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XHJcbiAgICAgIGNvbnN0IGhhbmRsZVNjcm9sbCA9ICgpID0+IHtcclxuICAgICAgICBjb25zdCBzZWN0aW9ucyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5lbGVtZW50Jyk7XHJcbiAgICAgICAgbGV0IGN1cnJlbnRTZWN0aW9uID0gJyc7XHJcbiAgICAgICAgICBzZWN0aW9ucy5mb3JFYWNoKHNlY3Rpb24gPT4ge1xyXG4gICAgICAgICAgICBjb25zdCBzZWN0aW9uVG9wID0gc2VjdGlvbi5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS50b3A7XHJcbiAgICAgICAgICAgIGlmIChzZWN0aW9uVG9wIDw9IHdpbmRvdy5pbm5lckhlaWdodCAvIDIgJiYgc2VjdGlvblRvcCA+IC1zZWN0aW9uLmNsaWVudEhlaWdodCkge1xyXG4gICAgICAgICAgICAgIGN1cnJlbnRTZWN0aW9uID0gc2VjdGlvbi5pZDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgc2V0QWN0aXZlTGluayhjdXJyZW50U2VjdGlvbik7XHJcbiAgICAgIH07XHJcbiAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdzY3JvbGwnLCBoYW5kbGVTY3JvbGwpO1xyXG4gICAgICByZXR1cm4gKCkgPT4gd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIGhhbmRsZVNjcm9sbCk7XHJcbiAgICB9LCBbXSk7XHJcbiAgICAvLyBzaWRlbmF2YmFyIGVuZFxyXG5cclxuXHJcblxyXG4gIHJldHVybiAoXHJcbiAgICA8PlxyXG4gICAgPGRpdiBjbGFzc05hbWU9XCJjdXN0b20taGVhZGVyLWluY2x1c2l2aXR5XCI+XHJcbjxoMSBjbGFzc05hbWU9XCJjZW50ZXJlZC10aXRsZVwiPlxyXG4gICAgICAgICAgICAgIDxpbWcgXHJcbiAgICAgICAgICAgICAgICBzcmM9XCJodHRwczovL3N0YXRpYy5pZ2VtLndpa2kvdGVhbXMvNTM3OC9oZWFkZXIvaW5jbHVzaXZpdHkucG5nXCJcclxuICAgICAgICAgICAgICAgIGFsdD1cInNhZmV0eSBoZWFkZXJcIlxyXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiaGVhZGVyLWltZ1wiXHJcbiAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgXHJcbiAgICAgICAgICAgICAgICBzcmM9XCJodHRwczovL3N0YXRpYy5pZ2VtLndpa2kvdGVhbXMvNTM3OC9oZWFkZXIvaGVhZGVyLWJhci53ZWJwXCJcclxuICAgICAgICAgICAgICAgIGFsdD1cInNhZmV0eSBoZWFkZXJcIlxyXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiaGVhZGVyLWJhclwiXHJcbiAgICAgICAgICAgICAgLz5cclxuPC9oMT5cclxuPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwicm93ICBiZy1yaWNlX3llbGxvd1wiPlxyXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLTJcIj5cclxuICAgICAgICAgIDxTaWRlTmF2YmFyIGFjdGl2ZUxpbms9e2FjdGl2ZUxpbmt9ICAgICAgICAgIC8+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgXHJcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtMTBcIj5cclxuICAgICAgICAgIFxyXG4gICAgICAgICAgICAgIDxFbGVtZW50IG5hbWU9XCJzZWN0aW9uM1wiIGNsYXNzTmFtZT1cImVsZW1lbnQgcm91bmRlZC1ib3JkZXJcIiBpZD0nc2VjdGlvbjMnPlxyXG4gICAgICAgICAgICAgIDxoMj5PdmVydmlldzwvaDI+XHJcbiAgICAgICAgICAgICAgPHA+XCJXZSBhcmUgYWxsIGNvbm5lY3RlZCBpbiB0aGUgZ3JlYXQgd2ViIG9mIGV4aXN0ZW5jZS5cIiBcdTIwMTQgQ2hpZWYgU2VhdHRsZTwvcD5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJvdW5kZWQtYm9yZGVyXCI+XHJcbiAgICAgICAgICAgICAgPGg0IGNsYXNzTmFtZT1cImNlbnRlci10ZXh0XCI+VG8gc2VlPC9oND5cclxuICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJpbmRlbnRcIj5UaHJvdWdoIGlHRU0sIHdlIHJlY29nbml6ZSB0aGUgaW1wb3J0YW5jZSBvZiBkaXZlcnNpdHkgYW5kIGluY2x1c2l2aXR5IGluIHRoZSBzY2llbnRpZmljIGNvbW11bml0eS5PdXIgdGVhbSBpcyBjb21taXR0ZWQgdG8gdGhlIGluY2x1c2lvbiBvZiBwZW9wbGUgZnJvbSBkaXZlcnNlIGJhY2tncm91bmRzIGluIHNjaWVudGlmaWMgcmVzZWFyY2gsIHBhcnRpY3VsYXJseSBpbiB0aGUgYXJlYXMgb2YgZWR1Y2F0aW9uYWwgZXF1aXR5IGFuZCBzb2NpYWwgaW5jbHVzaW9uIGluIHVyYmFuIGFuZCBydXJhbCBhcmVhcy4gVGhyb3VnaCBhIHNlcmllcyBvZiBjb25jcmV0ZSBhY3Rpdml0aWVzLCB3ZSBoZWxwIHBlb3BsZSBvZiBkaWZmZXJlbnQgaWRlbnRpdGllcyBhbmQgYmFja2dyb3VuZHMgdG8gbGVhcm4gYWJvdXQgc2NpZW5jZSwgaW4gcGFydGljdWxhciB0aGUgaW1wb3J0YW5jZSBhbmQgYXBwbGljYXRpb25zIG9mIGhlcGF0aWMgZW5jZXBoYWxvcGF0aHkgYW5kIHN5bnRoZXRpYyBiaW9sb2d5LiBPdXIgYWltIGlzIHRvIGVuYWJsZSBldmVyeW9uZSB0byBkbyB0aGVpciBwYXJ0IHRvIGltcHJvdmUgaGVhbHRoIGFuZCBwcm9tb3RlIHNjaWVudGlmaWMgcHJvZ3Jlc3MsIGFuZCB0byBzdGltdWxhdGUgaW50ZXJlc3QgaW4gc2NpZW50aWZpYyByZXNlYXJjaCwgd2hlcmV2ZXIgdGhleSBjb21lIGZyb20uPC9wPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPSdpbWFnZS1jb250YWluZXInPlxyXG4gICAgICAgICAgICAgIDxpbWcgXHJcbiAgICAgICAgICAgICAgICBzcmM9XCJodHRwczovL3N0YXRpYy5pZ2VtLndpa2kvdGVhbXMvNTM3OC9hd2FyZC1pbmNsdXNpdml0eS8ud2VicFwiXHJcbiAgICAgICAgICAgICAgICBhbHQ9XCJleGFtcGxlXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImltYWdlLXdpZGVcIlxyXG4gICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgIDxmaWdjYXB0aW9uIGNsYXNzTmFtZT0nY2FwdGlvbic+U01VLUdETVUgaUdFTSBUZWFtIE1lbWJlcnMgR3JvdXAgUGhvdG88L2ZpZ2NhcHRpb24+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9FbGVtZW50PlxyXG5cclxuICAgICAgICAgICAgICA8RWxlbWVudCBuYW1lPVwic2VjdGlvbjRcIiBjbGFzc05hbWU9XCJlbGVtZW50IHJvdW5kZWQtYm9yZGVyXCIgaWQ9J3NlY3Rpb240Jz5cclxuICAgICAgICAgICAgICA8aDI+UnVyYWwgb3V0cmVhY2ggcHJvZ3JhbTwvaDI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyb3VuZGVkLWJvcmRlclwiPlxyXG4gICAgICAgICAgICAgIDxoNCBjbGFzc05hbWU9XCJjZW50ZXItdGV4dFwiPlJlc2VhcmNoIGFuZCBBZHZvY2FjeTwvaDQ+XHJcbiAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwiaW5kZW50XCI+T24gSnVseSAxNCwgMjAyNCwgdGhlIFNNVS1HRE1VIGlHRU0gdGVhbSwgaW4gY29sbGFib3JhdGlvbiB3aXRoIGEgZG9jdG9yYWwgbWVkaWNhbCB0ZWFtIGZyb20gU291dGhlcm4gTWVkaWNhbCBVbml2ZXJzaXR5LCBlbWJhcmtlZCBvbiBhIGpvdXJuZXkgdG8gV2EgUmkgVG93biwgRGFvZnUgQ291bnR5LCBHYXJ6ZSBUaWJldGFuIEF1dG9ub21vdXMgUHJlZmVjdHVyZSwgU2ljaHVhbiBQcm92aW5jZSwgbG9jYXRlZCBhdCBhbiBhbHRpdHVkZSBvZiAzMDAwIG1ldGVycy4gQXMgd2VsbCwgdGhlIGlHRU0gdGVhbSdzIHZpc2l0IGJyb3VnaHQgbWVkaWNhbCBzdXBwbGllcyBhbmQgZXF1aXBtZW50IHRvIHRoZSB2aWxsYWdlcnMgb2YgV2EgUmkgVG93biBmb3IgdGhlaXIgZGFpbHkgaGVhbHRoY2FyZSBzZXJ2aWNlcy48L3A+XHJcbiAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwiaW5kZW50XCI+VGhlIGlHRU0gdGVhbSBjb2xsYWJvcmF0ZWQgd2l0aCBsb2NhbCBoZWFsdGggY2xpbmljcyB0byBjb25kdWN0IGluLWRlcHRoIGludGVydmlld3MgYW5kIGZvY3VzIGdyb3VwIGRpc2N1c3Npb25zLiBUaHJvdWdoIGFjY3VyYXRlIGRhdGEgY29sbGVjdGlvbiwgdGhlIHRlYW0gZ2FpbmVkIGEgY29tcHJlaGVuc2l2ZSB1bmRlcnN0YW5kaW5nIG9mIHRoZSByZWNlbnQgdHJlbmRzIGluIHRoZSBpbmNpZGVuY2Ugb2YgaGVwYXRpYyBlbmNlcGhhbG9wYXRoeSBhbmQgdGhlIGN1cnJlbnQgc3RhdGUgb2YgdHJlYXRtZW50IGluIHRoZSBhcmVhLiBTdWJzZXF1ZW50bHksIHdlIHByb3ZpZGVkIGVkdWNhdGlvbmFsIHNlc3Npb25zIG9uIHN5bnRoZXRpYyBiaW9sb2d5IGZvciB0aGUgbG9jYWwgdmlsbGFnZXJzIGFuZCBoZWxkIGEgcG9wdWxhciBzY2llbmNlIGxlY3R1cmUgb24gXCJoZXBhdGljIGVuY2VwaGFsb3BhdGh5XCIgZm9yIHRoZW0uIFRvIGdhdWdlIHRoZSB2aWxsYWdlcnMnIHVuZGVyc3RhbmRpbmcgYW5kIGZlZWRiYWNrIG9uIHRoZSBrbm93bGVkZ2Ugb2YgXCJoZXBhdGljIGVuY2VwaGFsb3BhdGh5XCIgd2Ugc2hhcmVkLCB3ZSB2aXNpdGVkIHZpbGxhZ2VycycgaG9tZXMgZm9yIGZvbGxvdy11cCwgaG9waW5nIHRvIGZ1cnRoZXIgcHJvbW90ZSB0aGVpciBhd2FyZW5lc3Mgb2YgdGhlIGNvbmRpdGlvbi48L3A+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9J2ltYWdlLWNvbnRhaW5lcic+XHJcbiAgICAgICAgICAgICAgPGltZyBcclxuICAgICAgICAgICAgICAgIHNyYz1cImh0dHBzOi8vc3RhdGljLmlnZW0ud2lraS90ZWFtcy81Mzc4L2F3YXJkLWluY2x1c2l2aXR5LzEtMS53ZWJwXCJcclxuICAgICAgICAgICAgICAgIGFsdD1cImV4YW1wbGVcIlxyXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiaW1hZ2Utd2lkZVwiXHJcbiAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgPGZpZ2NhcHRpb24gY2xhc3NOYW1lPSdjYXB0aW9uJz5UaGUgdGVhbSBtZW1iZXJzIGFyZSBkaXN0cmlidXRpbmcgbWVkaWNhbCBzdXBwbGllcy48L2ZpZ2NhcHRpb24+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicm91bmRlZC1ib3JkZXJcIj5cclxuICAgICAgICAgICAgICA8aDQgY2xhc3NOYW1lPVwiY2VudGVyLXRleHRcIj5MYW5ndWFnZSBFbmdpbmVlcmluZzwvaDQ+XHJcbiAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwiaW5kZW50XCI+KDEpIExhbmd1YWdlLURpdmVyc2UgRWR1Y2F0aW9uYWwgQnJvY2h1cmVzOjwvcD5cclxuICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJpbmRlbnRcIj5UbyBvdmVyY29tZSBsYW5ndWFnZSBiYXJyaWVycyBhbmQgcHJvbW90ZSBpbmNsdXNpdml0eSBpbiBvdXIgb3V0cmVhY2ggZWZmb3J0cywgd2UgaGF2ZSBjcmVhdGVkIGVkdWNhdGlvbmFsIGJyb2NodXJlcyBpbiBib3RoIFRpYmV0YW4gYW5kIENoaW5lc2UgbGFuZ3VhZ2VzIGZvciB0aGUgcmVzaWRlbnRzIG9mIFdhIFJpemhlbi4gVGhpcyBpbml0aWF0aXZlIGFpbXMgdG8gZW5zdXJlIHRoYXQgYWxsIGNvbW11bml0eSBtZW1iZXJzLCByZWdhcmRsZXNzIG9mIHRoZWlyIHByaW1hcnkgbGFuZ3VhZ2UsIGNhbiBhY2Nlc3MgYW5kIHVuZGVyc3RhbmQgdGhlIGluZm9ybWF0aW9uIHByb3ZpZGVkLiBCeSBvZmZlcmluZyBtYXRlcmlhbHMgaW4gbXVsdGlwbGUgbGFuZ3VhZ2VzLCB3ZSBhcmUgY29tbWl0dGVkIHRvIGVsaW1pbmF0aW5nIGxpbmd1aXN0aWMgb2JzdGFjbGVzIGFuZCBmb3N0ZXJpbmcgYSBtb3JlIGluY2x1c2l2ZSBlbnZpcm9ubWVudCB3aGVyZSBldmVyeW9uZSBjYW4gYmVuZWZpdCBmcm9tIHRoZSBzaGFyZWQga25vd2xlZGdlLjwvcD5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT0naW1hZ2UtY29udGFpbmVyJz5cclxuICAgICAgICAgICAgICA8aW1nIFxyXG4gICAgICAgICAgICAgICAgc3JjPVwiaHR0cHM6Ly9zdGF0aWMuaWdlbS53aWtpL3RlYW1zLzUzNzgvYXdhcmQtaW5jbHVzaXZpdHkvMi53ZWJwXCJcclxuICAgICAgICAgICAgICAgIGFsdD1cImV4YW1wbGVcIlxyXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiaW1hZ2Utd2lkZVwiXHJcbiAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgPGZpZ2NhcHRpb24gY2xhc3NOYW1lPSdjYXB0aW9uJz5UaWJldGFuIHZlcnNpb24gU2NpZW5jZSBQb3B1bGFyaXphdGlvbiBQYW1waGxldCAxPC9maWdjYXB0aW9uPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPSdpbWFnZS1jb250YWluZXInPlxyXG4gICAgICAgICAgICAgIDxpbWcgXHJcbiAgICAgICAgICAgICAgICBzcmM9XCJodHRwczovL3N0YXRpYy5pZ2VtLndpa2kvdGVhbXMvNTM3OC9hd2FyZC1pbmNsdXNpdml0eS8zLndlYnBcIlxyXG4gICAgICAgICAgICAgICAgYWx0PVwiZXhhbXBsZVwiXHJcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJpbWFnZS13aWRlXCJcclxuICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICA8ZmlnY2FwdGlvbiBjbGFzc05hbWU9J2NhcHRpb24nPlRpYmV0YW4gdmVyc2lvbiBTY2llbmNlIFBvcHVsYXJpemF0aW9uIFBhbXBobGV0IDI8L2ZpZ2NhcHRpb24+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwiaW5kZW50XCI+KDIpIFNpZ24gTGFuZ3VhZ2UgSW50ZXJwcmV0YXRpb246PC9wPlxyXG4gICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cImluZGVudFwiPlRvIGVuc3VyZSB0aGF0IG91ciBlZHVjYXRpb25hbCB2aWRlb3MgcmVhY2ggYSB3aWRlciBhdWRpZW5jZSwgdGhlIFNNVS1HRE1VIHRlYW0gaGFzIHNwZWNpZmljYWxseSBpbmNsdWRlZCBzaWduIGxhbmd1YWdlIGludGVycHJldGF0aW9uIGluIG91ciB2aWRlb3MuIFRoaXMgaW5pdGlhdGl2ZSBhaW1zIHRvIHJlbW92ZSBjb21tdW5pY2F0aW9uIGJhcnJpZXJzIGZvciBpbmRpdmlkdWFscyB3aG8gYXJlIGRlYWYgb3IgaGFyZCBvZiBoZWFyaW5nLCBlbmFibGluZyB0aGVtIHRvIGFjY2VzcyBhbmQgdW5kZXJzdGFuZCB0aGUgc2NpZW50aWZpYyBpbmZvcm1hdGlvbiBwcmVzZW50ZWQganVzdCBhcyBlYXNpbHkgYXMgdGhlIGdlbmVyYWwgYXVkaWVuY2UuIFdlIGNvbnN1bHRlZCBwcm9mZXNzaW9uYWwgc2lnbiBsYW5ndWFnZSBpbnRlcnByZXRlcnMgdG8gZGlzcGxheSBzaWduIGxhbmd1YWdlIHN5bmNocm9ub3VzbHkgd2l0aGluIHRoZSB2aWRlb3MsIGVuc3VyaW5nIHRoZSBhY2N1cmFjeSBhbmQgY2xhcml0eSBvZiB0aGUgaW5mb3JtYXRpb24gY29udmV5ZWQuIFdlIGJlbGlldmUgdGhhdCBzdWNoIGVmZm9ydHMgbm90IG9ubHkgaGVscCBpbXByb3ZlIHRoZSBhY2Nlc3NpYmlsaXR5IG9mIHRoZSBpbmZvcm1hdGlvbiBidXQgYWxzbyBzdHJpdmUgdG8gY3JlYXRlIGEgbW9yZSBpbmNsdXNpdmUgZW52aXJvbm1lbnQgd2hlcmUgZXZlcnlvbmUgY2FuIGJlbmVmaXQgZnJvbSB0aGUga25vd2xlZGdlIHdlIHNoYXJlLCBhbGxvd2luZyBwZW9wbGUgZnJvbSBkaWZmZXJlbnQgYmFja2dyb3VuZHMgdG8gaGF2ZSBlcXVhbCBhY2Nlc3MgdG8gc2NpZW50aWZpYyBlZHVjYXRpb25hbCByZXNvdXJjZXMuPC9wPiAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9J2ltYWdlLWNvbnRhaW5lcic+XHJcbiAgICAgICAgICAgICAgPGltZyBcclxuICAgICAgICAgICAgICAgIHNyYz1cImh0dHBzOi8vc3RhdGljLmlnZW0ud2lraS90ZWFtcy81Mzc4L2F3YXJkLWluY2x1c2l2aXR5LzQud2VicFwiXHJcbiAgICAgICAgICAgICAgICBhbHQ9XCJleGFtcGxlXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImltYWdlLXdpZGVcIlxyXG4gICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgIDxmaWdjYXB0aW9uIGNsYXNzTmFtZT0nY2FwdGlvbic+U2lnbiBMYW5ndWFnZSBWZXJzaW9uIFNjaWVuY2UgUG9wdWxhcml6YXRpb24gVmlkZW8gMTwvZmlnY2FwdGlvbj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT0naW1hZ2UtY29udGFpbmVyJz5cclxuICAgICAgICAgICAgICA8aW1nIFxyXG4gICAgICAgICAgICAgICAgc3JjPVwiaHR0cHM6Ly9zdGF0aWMuaWdlbS53aWtpL3RlYW1zLzUzNzgvYXdhcmQtaW5jbHVzaXZpdHkvNS53ZWJwXCJcclxuICAgICAgICAgICAgICAgIGFsdD1cImV4YW1wbGVcIlxyXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiaW1hZ2Utd2lkZVwiXHJcbiAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgPGZpZ2NhcHRpb24gY2xhc3NOYW1lPSdjYXB0aW9uJz5TaWduIExhbmd1YWdlIFZlcnNpb24gU2NpZW5jZSBQb3B1bGFyaXphdGlvbiBWaWRlbyAyPC9maWdjYXB0aW9uPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicm91bmRlZC1ib3JkZXJcIj5cclxuICAgICAgICAgICAgICA8aDQgY2xhc3NOYW1lPVwiY2VudGVyLXRleHRcIj5QdWJsaWMgSGVhbHRoIFJlZ2ltZW48L2g0PlxyXG4gICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cImluZGVudFwiPlRvIHByb21vdGUgaW5jbHVzaXZpdHkgYW5kIGVuaGFuY2UgY29tbXVuaXR5IGVuZ2FnZW1lbnQsIHRoZSBTTVUtR0RNVSB0ZWFtIGludHJvZHVjZWQgYSBzZXJpZXMgb2Ygc2VsZi1jb21waWxlZCBoZWFsdGggZXhlcmNpc2VzIHRvIHRoZSB2aWxsYWdlcnMuIFRoZXNlIGV4ZXJjaXNlcyBhcmUgZGVzaWduZWQgdG8gYmUgYm90aCBlbmpveWFibGUgYW5kIGJlbmVmaWNpYWwgdG8gcGh5c2ljYWwgaGVhbHRoLiBCeSB0ZWFjaGluZyB0aGVzZSByb3V0aW5lcywgd2UgYWltIHRvIGVuY291cmFnZSByZWd1bGFyIHBoeXNpY2FsIGFjdGl2aXR5IHRoYXQgaXMgYWNjZXNzaWJsZSB0byBldmVyeW9uZSwgcmVnYXJkbGVzcyBvZiBhZ2Ugb3IgZml0bmVzcyBsZXZlbC4gVGhlIGhlYWx0aCBleGVyY2lzZXMgaW5jbHVkZSBzaW1wbGUgbW92ZW1lbnRzIHRoYXQgYXJlIGVhc3kgdG8gZm9sbG93LCBlbnN1cmluZyB0aGF0IGFsbCBwYXJ0aWNpcGFudHMgY2FuIGVuZ2FnZSBhY3RpdmVseSBhbmQgZGVyaXZlIGhlYWx0aCBiZW5lZml0cy4gVGhyb3VnaCB0aGlzIGluaXRpYXRpdmUsIHdlIHN0cml2ZSB0byBjcmVhdGUgYSBmdW4gYW5kIHN1cHBvcnRpdmUgZW52aXJvbm1lbnQgd2hlcmUgZXZlcnkgaW5kaXZpZHVhbCBjYW4gcGFydGljaXBhdGUgYW5kIGVuam95IHRoZSBwb3NpdGl2ZSBlZmZlY3RzIG9uIHRoZWlyIHdlbGwtYmVpbmcsIHRoZXJlYnkgZm9zdGVyaW5nIGEgc2Vuc2Ugb2YgY29tbXVuaXR5IGFuZCBtdXR1YWwgc3VwcG9ydC48L3A+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9J2ltYWdlLWNvbnRhaW5lcic+XHJcbiAgICAgICAgICAgICAgPGltZyBcclxuICAgICAgICAgICAgICAgIHNyYz1cImh0dHBzOi8vc3RhdGljLmlnZW0ud2lraS90ZWFtcy81Mzc4L2F3YXJkLWluY2x1c2l2aXR5LzYud2VicFwiXHJcbiAgICAgICAgICAgICAgICBhbHQ9XCJleGFtcGxlXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImltYWdlLXdpZGVcIlxyXG4gICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgIDxmaWdjYXB0aW9uIGNsYXNzTmFtZT0nY2FwdGlvbic+SGVhbHRoIEV4ZXJjaXNlIEluc3RydWN0aW9uYWwgVmlkZW88L2ZpZ2NhcHRpb24+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicm91bmRlZC1ib3JkZXJcIj5cclxuICAgICAgICAgICAgICA8aDQgY2xhc3NOYW1lPVwiY2VudGVyLXRleHRcIj5GcmVlIE1lZGljYWwgU2VydmljZXM8L2g0PlxyXG4gICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cImluZGVudFwiPk5vdCBvbmx5IHRoYXQsIGJ1dCB0byBiZXR0ZXIgc2VydmUgdGhlIHZpbGxhZ2VycywgdGhlIGlHRU0gdGVhbSwgaW4gY29sbGFib3JhdGlvbiB3aXRoIHRvd24gZ292ZXJubWVudCBhbmQgaGVhbHRoIGNsaW5pYyBzdGFmZiwgYWxzbyBwcm92aWRlZCBjb21wcmVoZW5zaXZlIGZyZWUgbWVkaWNhbCBzZXJ2aWNlcyB0byB0aGUgbGVmdC1iZWhpbmQgdmlsbGFnZXJzIGJ5IGdvaW5nIGRlZXAgaW50byB0aGUgdmlsbGFnZXMuIEF0IHRoZSBzYW1lIHRpbWUsIHRoZSB0ZWFtIGFsc28gaGFkIGluLWRlcHRoIGV4Y2hhbmdlcyB3aXRoIHRoZSBsb2NhbCBoZWFsdGggY2xpbmljLCBjb2xsZWN0ZWQgZGV0YWlsZWQgaW5mb3JtYXRpb24gYWJvdXQgaGVwYXRpYyBlbmNlcGhhbG9wYXRoeSwgYW5kIGNvbXBpbGVkIGEgbGlzdCBvZiB2aWxsYWdlcnMuIFN0YXJ0aW5nIHdpdGggdGhlIHBhdGllbnRzIHdobyBuZWVkZWQgdGhlIG1vc3QgYXR0ZW50aW9uLCB0ZWFtIG1lbWJlcnMgY29uZHVjdGVkIG9uZS1vbi1vbmUgdmlzaXRzLCBjb21tdW5pY2F0aW9uLCBhbmQgaGVhbHRoIGd1aWRhbmNlIGluIGVhY2ggaG91c2Vob2xkLiBXZSBob3BlIHRoYXQgdGhyb3VnaCB0aGlzIGluaXRpYXRpdmUsIHdlIGNhbiBoZWxwIHRoZW0gdW5kZXJzdGFuZCBhbmQgcHJldmVudCBoZXBhdGljIGVuY2VwaGFsb3BhdGh5LCBhbmQgZWxpbWluYXRlIHRoZSBpbmZvcm1hdGlvbiBiYXJyaWVycyBhc3NvY2lhdGVkIHdpdGggbGl2aW5nIGluIHJ1cmFsIGFyZWFzLjwvcD5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT0naW1hZ2UtY29udGFpbmVyJz5cclxuICAgICAgICAgICAgICA8aW1nIFxyXG4gICAgICAgICAgICAgICAgc3JjPVwiaHR0cHM6Ly9zdGF0aWMuaWdlbS53aWtpL3RlYW1zLzUzNzgvYXdhcmQtaW5jbHVzaXZpdHkvNTU1NTU1LTEud2VicFwiXHJcbiAgICAgICAgICAgICAgICBhbHQ9XCJleGFtcGxlXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImltYWdlLXdpZGVcIlxyXG4gICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgIDxmaWdjYXB0aW9uIGNsYXNzTmFtZT0nY2FwdGlvbic+RnJlZSBDbGluaWMgU2VydmljZSBTaXRlPC9maWdjYXB0aW9uPlxyXG4gICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJvdW5kZWQtYm9yZGVyXCI+XHJcbiAgICAgICAgICAgICAgPGg0IGNsYXNzTmFtZT1cImNlbnRlci10ZXh0XCI+SGVhbHRoIFJlY29yZHM8L2g0PlxyXG4gICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cImluZGVudFwiPkZ1cnRoZXJtb3JlLCB0aGUgaUdFTSB0ZWFtIGFsc28gYXNzaXN0ZWQgdGhlIGRvY3RvcnMgYXQgdGhlIGxvY2FsIGhlYWx0aCBjbGluaWMgaW4gaW1wcm92aW5nIHRoZSBoZWFsdGggcmVjb3JkcyBvZiB0aGUgdmlsbGFnZXJzLCBwcm92aWRpbmcgbW9yZSBtZXRpY3Vsb3VzIGNhcmUgYW5kIHN1cHBvcnQgZm9yIHRoZSBoZWFsdGggb2YgdGhlIGxvY2FsIHJlc2lkZW50cy4gVGhpcyBzZXJpZXMgb2YgYWN0aXZpdGllcyBub3Qgb25seSBlbmhhbmNlZCB0aGUgdmlsbGFnZXJzJyB1bmRlcnN0YW5kaW5nIG9mIGhlcGF0aWMgZW5jZXBoYWxvcGF0aHkgYnV0IGFsc28gbWFkZSBhIHBvc2l0aXZlIGNvbnRyaWJ1dGlvbiB0byB0aGUgaW1wcm92ZW1lbnQgb2YgcHVibGljIGhlYWx0aCBzdGFuZGFyZHMgaW4gdGhlIGFyZWEuPC9wPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPSdpbWFnZS1jb250YWluZXInPlxyXG4gICAgICAgICAgICAgIDxpbWcgXHJcbiAgICAgICAgICAgICAgICBzcmM9XCJodHRwczovL3N0YXRpYy5pZ2VtLndpa2kvdGVhbXMvNTM3OC9hd2FyZC1pbmNsdXNpdml0eS82NjY2NjY2NjYtMS53ZWJwXCJcclxuICAgICAgICAgICAgICAgIGFsdD1cImV4YW1wbGVcIlxyXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiaW1hZ2UtaGVpZ2h0XCJcclxuICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICA8ZmlnY2FwdGlvbiBjbGFzc05hbWU9J2NhcHRpb24nPkhlYWx0aCBSZWNvcmQgRm9ybTwvZmlnY2FwdGlvbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgIDwvRWxlbWVudD5cclxuXHJcbiAgICAgICAgICAgICAgPEVsZW1lbnQgbmFtZT1cInNlY3Rpb241XCIgY2xhc3NOYW1lPVwiZWxlbWVudCByb3VuZGVkLWJvcmRlclwiIGlkPSdzZWN0aW9uNSc+XHJcbiAgICAgICAgICAgICAgPGgyPkFzc2lzdGFuY2UgRW5naW5lZXJpbmc8L2gyPlxyXG4gICAgICAgICAgICAgIDxwPlRvIEFkZHJlc3MgUmVnaW9uYWwgRGV2ZWxvcG1lbnQgSW1iYWxhbmNlcyBhbmQgVW5lcXVhbCBSZXNvdXJjZSBEaXN0cmlidXRpb24gKFN1Y2ggYXMgRWR1Y2F0aW9uYWwgT3Bwb3J0dW5pdGllcywgU2VydmljZSBBY2Nlc3MsIGFuZCBSZXNvdXJjZSBBY3F1aXNpdGlvbilcdUZGMENTb3V0aGVybiBNZWRpY2FsIFVuaXZlcnNpdHkgKFNNVSkgaGFzIGZvcm1lZCBhIHN1cHBvcnQgdGVhbSB0byBhc3Npc3QgR3Vhbmdkb25nIE1lZGljYWwgVW5pdmVyc2l0eSAoR01VKSBpbiB2YXJpb3VzIHdheXMuIFRocm91Z2ggdGhpcyBtdXR1YWxseSBiZW5lZmljaWFsIHBhcnRuZXJzaGlwLCBTTVUgYW5kIEdNVSBkZW1vbnN0cmF0ZSBob3cgc3VwcG9ydCBhbmQgY29sbGFib3JhdGlvbiBjYW4gbGVhZCB0byBzaWduaWZpY2FudCBwcm9ncmVzcyBmb3IgYm90aCBpbnN0aXR1dGlvbnMuIE5vdGFibHksIG91ciB0ZWFtIGNvbnNpc3RzIG9mIHN0dWRlbnRzIGZyb20gYm90aCB1bml2ZXJzaXRpZXMsIHdoaWNoIGlzIGEgdml2aWQgcmVwcmVzZW50YXRpb24gb2YgdGhpcyBjb29wZXJhdGl2ZSByZWxhdGlvbnNoaXAuIFRocm91Z2ggYW4gaW50ZXJ2aWV3IHdpdGggUHJvZmVzc29yIExpIExpbmcsIHRoZSBsZWFkZXIgb2YgdGhlIFNNVSBzdXBwb3J0IHRlYW0gYW5kIG1lbnRvciBvZiB0aGUgU01VJkdETVUgaUdFTSB0ZWFtLCB3ZSBsZWFybmVkIHRoYXQgdGhlIGdvYWxzIG9mIHRoaXMgc3VwcG9ydCBpbml0aWF0aXZlIGFyZTo8L3A+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9J2ltYWdlLWNvbnRhaW5lcic+XHJcbiAgICAgICAgICAgICAgPGltZyBcclxuICAgICAgICAgICAgICAgIHNyYz1cImh0dHBzOi8vc3RhdGljLmlnZW0ud2lraS90ZWFtcy81Mzc4L2F3YXJkLWluY2x1c2l2aXR5Lzcud2VicFwiXHJcbiAgICAgICAgICAgICAgICBhbHQ9XCJleGFtcGxlXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImltYWdlLXdpZGVcIlxyXG4gICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgIDxmaWdjYXB0aW9uIGNsYXNzTmFtZT0nY2FwdGlvbic+R3JvdXAgUGhvdG8gb2YgdGhlIEFzc2lzdGFuY2UgVGVhbSBNZW1iZXJzPC9maWdjYXB0aW9uPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyb3VuZGVkLWJvcmRlclwiPlxyXG4gICAgICAgICAgICAgIDxoNCBjbGFzc05hbWU9XCJjZW50ZXItdGV4dFwiPigxKSBBY2hpZXZpbmcgSW50ZXJkaXNjaXBsaW5hcnkgSW50ZWdyYXRpb246PC9oND5cclxuICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJpbmRlbnRcIj5CeSBmb3JtaW5nIHJlc2VhcmNoIHRlYW1zIGluIGZvdW5kYXRpb25hbCBtZWRpY2FsIHNjaWVuY2VzLCBjbGluaWNhbCBtZWRpY2luZSwgYW5kIG90aGVyIGZpZWxkcywgd2UgYWltIHRvIHByb21vdGUgaW50ZXJkaXNjaXBsaW5hcnkgaW50ZWdyYXRpb24sIHJlZmxlY3RpbmcgdGhlIGludGVyZGlzY2lwbGluYXJ5IHNwaXJpdCBvZiBpR0VNLiBGb3IgZXhhbXBsZSwgU01VIGFuZCBHTVUgY2FuIGpvaW50bHkgY29uZHVjdCBhIHJlc2VhcmNoIHByb2plY3Qgb24gZ2VuZXRpYyBkaXNlYXNlIGdlbmUgdGhlcmFweSwgY29tYmluaW5nIFNNVSdzIGV4cGVydGlzZSBpbiBnZW5ldGljcyB3aXRoIEdNVSdzIGV4cGVyaWVuY2UgaW4gY2xpbmljYWwgYXBwbGljYXRpb25zIHRvIGZvcm0gY29tcGxlbWVudGFyeSByZXNlYXJjaCBzdHJlbmd0aHMuPC9wPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyb3VuZGVkLWJvcmRlclwiPlxyXG4gICAgICAgICAgICAgIDxoNCBjbGFzc05hbWU9XCJjZW50ZXItdGV4dFwiPlx1RkYwODJcdUZGMDlCdWlsZGluZyBhICdDb2xsYWJvcmF0aXZlIFRhbGVudCBDdWx0aXZhdGlvbicgU3lzdGVtOjwvaDQ+XHJcbiAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwiaW5kZW50XCI+VGhyb3VnaCBqb2ludCB0YWxlbnQgY3VsdGl2YXRpb24gcHJvZ3JhbXMsIHN1Y2ggYXMgaW50ZWdyYXRlZCB1bmRlcmdyYWR1YXRlLW1hc3Rlclx1MjAxOXMgZGVncmVlIHByb2dyYW1zIGFuZCBleGNoYW5nZSBzdHVkZW50IGluaXRpYXRpdmVzLCB3ZSBwcm92aWRlIHN0dWRlbnRzIHdpdGggYnJvYWRlciBsZWFybmluZyBwbGF0Zm9ybXMsIGVtcGhhc2l6aW5nIGlHRU0ncyBjb21taXRtZW50IHRvIHRhbGVudCBkZXZlbG9wbWVudC4gQWRkaXRpb25hbGx5LCB3ZSBpbXBsZW1lbnQgc3VtbWVyIGludGVybnNoaXAgcHJvZ3JhbXMsIGFsbG93aW5nIHN0dWRlbnRzIHRvIGNvbmR1Y3QgcmVzZWFyY2ggaW50ZXJuc2hpcHMgaW4gdGhlIGxhYm9yYXRvcmllcyBvZiB0aGUgcGFydG5lciB1bml2ZXJzaXR5LCBlbmhhbmNpbmcgcHJhY3RpY2FsIGV4cGVyaWVuY2UgYW5kIHJlc2VhcmNoIGNhcGFiaWxpdGllcy48L3A+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyb3VuZGVkLWJvcmRlclwiPlxyXG4gICAgICAgICAgICAgIDxoNCBjbGFzc05hbWU9XCJjZW50ZXItdGV4dFwiPlx1RkYwODNcdUZGMDlSZXNlYXJjaCBDb2xsYWJvcmF0aW9uOjwvaDQ+XHJcbiAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwiaW5kZW50XCI+VGhlIHN1cHBvcnQgdGVhbSBmYWNpbGl0YXRlcyB0aGUgZXN0YWJsaXNobWVudCBvZiBzaGFyZWQgbGFib3JhdG9yaWVzIGFuZCByZXNlYXJjaCBjZW50ZXJzLCBwcm9tb3RpbmcgdGhlIHNoYXJpbmcgb2YgcmVzZWFyY2ggcmVzb3VyY2VzIGFuZCBlbmhhbmNpbmcgY29sbGFib3JhdGlvbiBiZXR3ZWVuIHJlc2VhcmNoZXJzIGluIHN5bnRoZXRpYyBiaW9sb2d5IGFuZCByZWxhdGVkIGZpZWxkcywgcmVmbGVjdGluZyBpR0VNJ3MgZXRob3Mgb2Ygc2hhcmVkIHJlc2VhcmNoLiBGdXJ0aGVybW9yZSwgdGhlIHN1cHBvcnQgdGVhbSByZWd1bGFybHkgb3JnYW5pemVzIGpvaW50IHJlc2VhcmNoIHByb2plY3RzLCBpbnZpdGluZyByZXNlYXJjaGVycyBmcm9tIGJvdGggc2lkZXMgdG8gYXBwbHkgZm9yIG5hdGlvbmFsIGFuZCBpbnRlcm5hdGlvbmFsIHJlc2VhcmNoIGdyYW50cywgZHJpdmluZyBoaWdoLWxldmVsIHJlc2VhcmNoIG91dGNvbWVzLjwvcD5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyb3VuZGVkLWJvcmRlclwiPlxyXG4gICAgICAgICAgICAgIDxoNCBjbGFzc05hbWU9XCJjZW50ZXItdGV4dFwiPlx1RkYwODRcdUZGMDlBY2hpZXZpbmcgRXF1YWwgQWNjZXNzIHRvIEVkdWNhdGlvbmFsIFJlc291cmNlczo8L2g0PlxyXG4gICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cImluZGVudFwiPlRoZSBzdXBwb3J0IHRlYW0gcHJvbW90ZXMgdGhlIG9wZW5pbmcgb2YgY291cnNlIHJlc291cmNlcyBhbmQgb25saW5lIGVkdWNhdGlvbiBwbGF0Zm9ybXMsIGJlbmVmaXRpbmcgbW9yZSBzdHVkZW50cyBmcm9tIGJvdGggdW5pdmVyc2l0aWVzLCByZWZsZWN0aW5nIGlHRU0ncyBwcmluY2lwbGUgb2YgZXF1aXRhYmxlIGFjY2VzcyB0byBlZHVjYXRpb25hbCByZXNvdXJjZXMuIEFkZGl0aW9uYWxseSwgc3R1ZGVudCBleGNoYW5nZSBwcm9ncmFtcyBhcmUgZXN0YWJsaXNoZWQsIGFuZCByZWd1bGFyIGFjYWRlbWljIHN5bXBvc2l1bXMgYXJlIGhlbGQgdG8gcHJvbW90ZSBpbnRlcmFjdGlvbiBhbmQgY29vcGVyYXRpb24gYW1vbmcgc3R1ZGVudHMsIGVsaW1pbmF0aW5nIGJhcnJpZXJzIGNhdXNlZCBieSB1bmVxdWFsIGRpc3RyaWJ1dGlvbiBvZiBlZHVjYXRpb25hbCByZXNvdXJjZXMuPC9wPlxyXG4gICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cImluZGVudFwiPlRocm91Z2ggdGhpcyBzdXBwb3J0IHByb2Nlc3MsIGJvdGggaW5zdGl0dXRpb25zIHVsdGltYXRlbHkgYmVuZWZpdCBhbmQgYWNoaWV2ZSBhIHdpbi13aW4gc2l0dWF0aW9uLiBTTVUgaXMgbm90IG9ubHkgc3VwcG9ydGluZyBHTVUgYnV0IGFsc28gYWNoaWV2aW5nIGl0cyBvd24gZ3Jvd3RoIGFuZCBwcm9ncmVzcy4gRm9yIGV4YW1wbGUsIGJ5IGpvaW50bHkgdW5kZXJ0YWtpbmcgbmF0aW9uYWwtbGV2ZWwgcmVzZWFyY2ggcHJvamVjdHMsIGJvdGggcmVzZWFyY2ggdGVhbXMgY2FuIHNob3djYXNlIHRoZWlyIGFjaGlldmVtZW50cyBvbiBoaWdoLWxldmVsIHBsYXRmb3JtcywgZW5oYW5jaW5nIHJlc2VhcmNoIGNhcGFiaWxpdGllcyBhbmQgaW5ub3ZhdGlvbi4gU2ltdWx0YW5lb3VzbHksIHNoYXJlZCByZXNvdXJjZXMgYW5kIGJlc3QgcHJhY3RpY2VzIGVsZXZhdGUgdGhlIG92ZXJhbGwgcXVhbGl0eSBvZiBlZHVjYXRpb24uIE1vcmVvdmVyLCB0aGlzIHN1cHBvcnQgaW5pdGlhdGl2ZSBoZWxwcyBib3RoIGluc3RpdHV0aW9ucyBidWlsZCBhIGJyb2FkZXIgYWNhZGVtaWMgYW5kIHByb2Zlc3Npb25hbCBuZXR3b3JrLCBpbmNyZWFzaW5nIG9wcG9ydHVuaXRpZXMgZm9yIGZ1dHVyZSBjb2xsYWJvcmF0aW9ucy48L3A+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgIDwvRWxlbWVudD5cclxuXHJcbiAgICAgICAgICAgICAgPEVsZW1lbnQgbmFtZT1cInNlY3Rpb242XCIgY2xhc3NOYW1lPVwiZWxlbWVudCByb3VuZGVkLWJvcmRlclwiIGlkPSdzZWN0aW9uNic+XHJcbiAgICAgICAgICAgICAgPGgyPlx1RjBGQ0Zyb20gZXZpZGVuY2UgdG8gbmFycmF0aXZlOiBodW1hbmlzdGljIGNhcmUgYW5kIGluY2x1c2l2ZSBwcmFjdGljZSBpbiBtZWRpY2luZTwvaDI+XHJcbiAgICAgICAgICAgICAgPHA+QWdhaW5zdCB0aGUgYmFja2Ryb3Agb2YgcmFwaWRseSBldm9sdmluZyBtZWRpY2FsIHRlY2hub2xvZ3ksIHdlIHJlY29nbmlzZSB0aGF0IHJlbHlpbmcgb24gZGF0YSBhbmQgc3RhbmRhcmRpc2VkIHRyZWF0bWVudHMgYWxvbmUgY2Fubm90IGZ1bGx5IG1lZXQgdGhlIG5lZWRzIG9mIHBhdGllbnRzLiBGb3IgdGhpcyByZWFzb24sIHdlIGhhdmUgdHVybmVkIHRvIG5hcnJhdGl2ZSBtZWRpY2luZS4gVGhyb3VnaCBhbiBpbi1kZXB0aCBjb252ZXJzYXRpb24gd2l0aCBQcm9mZXNzb3IgWGlhb2xpbiBZYW5nIGZyb20gdGhlIENlbnRyZSBmb3IgTmFycmF0aXZlIE1lZGljaW5lIGF0IFNvdXRoZXJuIE1lZGljYWwgVW5pdmVyc2l0eSwgd2UgaGF2ZSBsZWFybmVkIGhvdyB0byBpbmNvcnBvcmF0ZSBtb3JlIGh1bWFuaXN0aWMgY2FyZSBpbnRvIG1lZGljYWwgcHJhY3RpY2UgYW5kIGNvbW11bmljYXRlIHdpdGggZG9jdG9ycyB0byBhcHBseSBpdCBpbiB0aGVpciBjbGluaWNhbCBwcmFjdGljZS4gTmFycmF0aXZlIG1lZGljaW5lIGVtcGhhc2lzZXMgYW4gZXF1YWwgZGlhbG9ndWUgYmV0d2VlbiBkb2N0b3JzIGFuZCBwYXRpZW50cywgdW5kZXJzdGFuZGluZyBwYXRpZW50cycgdW5pcXVlIGV4cGVyaWVuY2VzIGJ5IGxpc3RlbmluZyB0byB0aGVpciBzdG9yaWVzIGFuZCBlbmdhZ2luZyB0aGVtIHRvIHByb3ZpZGUgYSBtb3JlIHBlcnNvbmFsaXNlZCB0cmVhdG1lbnQgcGxhbi48L3A+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyb3VuZGVkLWJvcmRlclwiPlxyXG4gICAgICAgICAgICAgIDxoNCBjbGFzc05hbWU9XCJsZWZ0LXRleHRcIj5cdUZGMDgxXHVGRjA5TmFycmF0aXZlIEludGVydmVudGlvbiBhbmQgUHJlc2NyaXB0aW9uOjwvaDQ+XHJcbiAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwiaW5kZW50XCI+RG9jdG9ycyBhY3RpdmVseSBsaXN0ZW4gdG8gdGhlIHBhdGllbnQncyBwZXJzb25hbCBzdG9yeSBhbmQgdXNlIGl0IGFzIHBhcnQgb2YgdGhlIHRyZWF0bWVudCBwbGFuLCB3aGlsZSBwcm92aWRpbmcgZW1vdGlvbmFsIHN1cHBvcnQgYW5kIHBzeWNob2xvZ2ljYWwgcmVsaWVmIHRvIGVuaGFuY2UgdHJlYXRtZW50IG91dGNvbWVzLjwvcD5cclxuICAgICAgICAgICAgICA8aDQgY2xhc3NOYW1lPVwibGVmdC10ZXh0XCI+XHVGRjA4Mlx1RkYwOUVzdGFibGlzaG1lbnQgb2YgYSBzdXBwb3J0IG5ldHdvcms6PC9oND5cclxuICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJpbmRlbnRcIj5DcmVhdGUgYSBjb21tdW5pdHkgb2YgcGF0aWVudHMsIGZhbWlseSBtZW1iZXJzIGFuZCBoZWFsdGhjYXJlIHByb2Zlc3Npb25hbHMgdG8gZmFjaWxpdGF0ZSBleHBlcmllbmNlIHNoYXJpbmcgYW5kIHJlc291cmNlIGV4Y2hhbmdlLCBhbmQgZW5oYW5jZSBtdXR1YWwgcHN5Y2hvbG9naWNhbCBzdXBwb3J0LjwvcD5cclxuICAgICAgICAgICAgICA8aDQgY2xhc3NOYW1lPVwibGVmdC10ZXh0XCI+XHVGRjA4M1x1RkYwOURpdmVyc2lmaWVkIHBhcnRpY2lwYXRpb246PC9oND5cclxuICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJpbmRlbnRcIj5Qcm92aWRlIHNjaG9sYXJzaGlwcyBhbmQgaW50ZXJuc2hpcCBvcHBvcnR1bml0aWVzIGZvciBzdHVkZW50cyBmcm9tIGRpZmZlcmVudCBiYWNrZ3JvdW5kcywgZXNwZWNpYWxseSBzdXBwb3J0aW5nIG1lbWJlcnMgb2YgdW5kZXJyZXByZXNlbnRlZCBncm91cHMgc3VjaCBhcyB3b21lbiBhbmQgZXRobmljIG1pbm9yaXRpZXMuPC9wPlxyXG4gICAgICAgICAgICAgIDxoNCBjbGFzc05hbWU9XCJsZWZ0LXRleHRcIj5cdUZGMDg0XHVGRjA5RWxpbWluYXRpb24gb2Ygc29jaWFsIHByZWp1ZGljZTo8L2g0PlxyXG4gICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cImluZGVudFwiPkluY3JlYXNlIHB1YmxpYyBhd2FyZW5lc3Mgb2YgaGVwYXRpYyBlbmNlcGhhbG9wYXRoeSB0aHJvdWdoIG1lZGlhIGFuZCBjb21tdW5pdHkgYWN0aXZpdGllcyB0byByZWR1Y2UgbWlzdW5kZXJzdGFuZGluZyBhbmQgZGlzY3JpbWluYXRpb24uPC9wPlxyXG4gICAgICAgICAgICAgIDxoNCBjbGFzc05hbWU9XCJsZWZ0LXRleHRcIj5cdUZGMDg1XHVGRjA5UGF0aWVudCBwYXJ0aWNpcGF0aW9uIG1lY2hhbmlzbXM6PC9oND5cclxuICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJpbmRlbnRcIj5FbmNvdXJhZ2UgcGF0aWVudHMgdG8gcGFydGljaXBhdGUgaW4gdGhlaXIgb3duIHRyZWF0bWVudCBkZWNpc2lvbnMsIGFuZCBwcm92aWRlIGNoYW5uZWxzIGZvciBmZWVkYmFjayBzbyB0aGF0IHBhdGllbnRzJyB2b2ljZXMgY2FuIGJlIGhlYXJkLjwvcD5cclxuICAgICAgICAgICAgICA8aDQgY2xhc3NOYW1lPVwibGVmdC10ZXh0XCI+XHVGRjA4Nlx1RkYwOUludGVyZGlzY2lwbGluYXJ5IGNvLW9wZXJhdGlvbjo8L2g0PlxyXG4gICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cImluZGVudFwiPkNvbGxhYm9yYXRlIHdpdGggZXhwZXJ0cyBmcm9tIG11bHRpcGxlIGZpZWxkcyB0byBmb3JtIGEgbXVsdGlkaXNjaXBsaW5hcnkgdGVhbSB0byBwcm92aWRlIGNvbXByZWhlbnNpdmUgc2VydmljZXMgYW5kIHN1cHBvcnQuIFRoaXMgcGhpbG9zb3BoeSBob2xkcyB0cnVlIGZvciBpR0VNLCBzeW50aGV0aWMgYmlvbG9neSwgYW5kIHRoZSBicm9hZGVyIHNjaWVuY2VzIGFzIHdlbGwuIFdlIGJlbGlldmUgdGhhdCBhbnlvbmUgc2hvdWxkIGhhdmUgdGhlIG9wcG9ydHVuaXR5IHRvIGhhdmUgYSB2b2ljZSBhbmQgY29udHJpYnV0ZSB0byB0aGVzZSBjb21tdW5pdGllcy48L3A+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9J2ltYWdlLWNvbnRhaW5lcic+XHJcbiAgICAgICAgICAgICAgPGltZyBcclxuICAgICAgICAgICAgICAgIHNyYz1cImh0dHBzOi8vc3RhdGljLmlnZW0ud2lraS90ZWFtcy81Mzc4L2F3YXJkLWluY2x1c2l2aXR5LzE1LTEud2VicFwiXHJcbiAgICAgICAgICAgICAgICBhbHQ9XCJleGFtcGxlXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImltYWdlLXdpZGVcIlxyXG4gICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgIDxmaWdjYXB0aW9uIGNsYXNzTmFtZT0nY2FwdGlvbic+MTEgU2VwdGVtYmVyIDIwMjQgYXQgdGhlIFNvdXRoZXJuIEhvc3BpdGFsIExpZmUgTmFycmF0aXZlIENlbnRyZTwvZmlnY2FwdGlvbj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L0VsZW1lbnQ+XHJcblxyXG4gICAgICAgICAgICAgIDxFbGVtZW50IG5hbWU9XCJzZWN0aW9uN1wiIGNsYXNzTmFtZT1cImVsZW1lbnQgcm91bmRlZC1ib3JkZXJcIiBpZD0nc2VjdGlvbjcnPlxyXG4gICAgICAgICAgICAgIDxoMj5cdUYwRkNJbmNsdXNpdml0eSB3aXRoaW4gb3VyIHRlYW08L2gyPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicm91bmRlZC1ib3JkZXJcIj5cclxuICAgICAgICAgICAgICA8aDQgY2xhc3NOYW1lPVwiY2VudGVyLXRleHRcIj4oMSkgSW50ZXJkaXNjaXBsaW5hcnkgVGVhbTo8L2g0PlxyXG4gICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cImluZGVudFwiPk1vZGVybiBzY2llbmNlIGlzIGJvdGggaGlnaGx5IGRpZmZlcmVudGlhdGVkIGFuZCBoaWdobHkgaW50ZWdyYXRlZCwgd2hpbGUgaW50ZXJzZWN0aW9uYWwgc2NpZW5jZSBjb21iaW5lcyBkaWZmZXJlbnRpYXRpb24gYW5kIHN5bnRoZXNpcyB0byByZWFsaXplIHRoZSBpbnRlZ3JhdGlvbiBvZiBzY2llbmNlLiBJbnRlcmRpc2NpcGxpbmFyeSAgc2NpZW5jZSBpcyBhIGNvbXByZWhlbnNpdmUgYW5kIGludGVyZGlzY2lwbGluYXJ5IHByb2R1Y3QsIHdoaWNoIGlzIGNvbmR1Y2l2ZSB0byBzb2x2aW5nIHRoZSBtYWpvciBjb21wbGV4IHNjaWVudGlmaWMgcHJvYmxlbXMsIHNvY2lhbCBwcm9ibGVtcyBhbmQgZ2xvYmFsIHByb2JsZW1zIGZhY2VkIGJ5IG1hbmtpbmQuPC9wPlxyXG4gICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cImluZGVudFwiPk91ciB0ZWFtIGlzIGNvbXBvc2VkIG9mIHN0dWRlbnRzIGZyb20gdmFyaW91cyBkaXNjaXBsaW5lcywgaW5jbHVkaW5nIENsaW5pY2FsIE1lZGljaW5lLCBTdGF0aXN0aWNzLCBCaW9pbmZvcm1hdGljcywgUHN5Y2hpYXRyeSwgUHJldmVudGl2ZSBNZWRpY2luZSwgTWVkaWNhbCBMYWJvcmF0b3J5IFRlY2hub2xvZ3ksIEJpb21lZGljYWwgTWF0ZXJpYWxzIFNjaWVuY2UsIEFwcGxpZWQgUHN5Y2hvbG9neSwgSW5mb3JtYXRpb24gTWFuYWdlbWVudCBhbmQgSW5mb3JtYXRpb24gU3lzdGVtcywgYW5kIEhlYWx0aCBJbnN1cmFuY2UgU3R1ZGllcywgZXRjLi4gVGhpcyBkaXZlcnNpdHkgY29udHJpYnV0ZXMgdG8gaW5zcGlyaW5nIHRoaW5raW5nIGNvbGxpc2lvbnMgYW5kIGNvbnRpbnVvdXMgaW5ub3ZhdGlvbi48L3A+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9J2ltYWdlLWNvbnRhaW5lcic+XHJcbiAgICAgICAgICAgICAgPGltZyBcclxuICAgICAgICAgICAgICAgIHNyYz1cImh0dHBzOi8vc3RhdGljLmlnZW0ud2lraS90ZWFtcy81Mzc4L2F3YXJkLWluY2x1c2l2aXR5Lzgud2VicFwiXHJcbiAgICAgICAgICAgICAgICBhbHQ9XCJleGFtcGxlXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImltYWdlLXdpZGVcIlxyXG4gICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgIDxmaWdjYXB0aW9uIGNsYXNzTmFtZT0nY2FwdGlvbic+U01VLUdETVUgaUdFTSBUZWFtPC9maWdjYXB0aW9uPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGg0IGNsYXNzTmFtZT1cImNlbnRlci10ZXh0XCI+KDIpIE11bHRpLUV0aG5pYyBUZWFtPC9oND5cclxuICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJpbmRlbnRcIj5PdXIgdGVhbSBpcyBhIG11bHRpY3VsdHVyYWwgZW5zZW1ibGUsIGNvbXBvc2VkIG9mIG1lbWJlcnMgZnJvbSB2YXJpb3VzIGV0aG5pYyBiYWNrZ3JvdW5kcywgaW5jbHVkaW5nIFRpYmV0YW4sIEhhbmksIFR1amlhLCBNaWFvLCBhbmQgSGFuIGV0aG5pY2l0aWVzLiBUaGlzIGRpdmVyc2l0eSBlbnJpY2hlcyBvdXIgcGVyc3BlY3RpdmVzIGFuZCBlbmhhbmNlcyBvdXIgYWJpbGl0eSB0byBhZGRyZXNzIGNoYWxsZW5nZXMgaW5jbHVzaXZlbHkuIEJ5IGJyaW5naW5nIHRvZ2V0aGVyIGluZGl2aWR1YWxzIGZyb20gZGlmZmVyZW50IGN1bHR1cmFsIGJhY2tncm91bmRzLCB3ZSBmb3N0ZXIgYSBjb2xsYWJvcmF0aXZlIGVudmlyb25tZW50IHRoYXQgdmFsdWVzIHVuaXF1ZSB2aWV3cG9pbnRzIGFuZCBleHBlcmllbmNlcy4gRWFjaCBtZW1iZXIgY29udHJpYnV0ZXMgdG8gb3VyIHRlYW0ncyBzdHJlbmd0aCwgYWxsb3dpbmcgdXMgdG8gYXBwcm9hY2ggcHJvYmxlbXMgd2l0aCBhIGJyb2FkZXIgYW5kIG1vcmUgaW5jbHVzaXZlIG1pbmRzZXQuPC9wPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPSdpbWFnZS1jb250YWluZXInPlxyXG4gICAgICAgICAgICAgIDxpbWcgXHJcbiAgICAgICAgICAgICAgICBzcmM9XCJodHRwczovL3N0YXRpYy5pZ2VtLndpa2kvdGVhbXMvNTM3OC9hd2FyZC1pbmNsdXNpdml0eS85LTMud2VicFwiXHJcbiAgICAgICAgICAgICAgICBhbHQ9XCJleGFtcGxlXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImltYWdlLWhlaWdodFwiXHJcbiAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgPGZpZ2NhcHRpb24gY2xhc3NOYW1lPSdjYXB0aW9uJz5UZWFtIE1lbWJlcnMgZnJvbSBEaWZmZXJlbnQgRXRobmljIEdyb3VwczwvZmlnY2FwdGlvbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxoNCBjbGFzc05hbWU9XCJjZW50ZXItdGV4dFwiPigzKSBUZWFtIEJ1aWxkaW5nPC9oND5cclxuICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJpbmRlbnRcIj5cIkFsb25lIHdlIGNhbiBkbyBzbyBsaXR0bGU7IHRvZ2V0aGVyIHdlIGNhbiBkbyBzbyBtdWNoLlwiVGVhbSBidWlsZGluZyBpcyBoaWdobHkgdmFsdWVkLCBhbmQgd2Ugb3dlIG91ciBzdWNjZXNzIGFuZCBoYXJtb25pb3VzIGF0bW9zcGhlcmUgdG8gaXQuIFdoZW4gd2UgYnVpbGQgY29ubmVjdGlvbnMgd2l0aCBlYWNoIG90aGVyLCB3aGVuIHdlIHJlYWxpemUgb3VyIHJlc3BvbnNpYmlsaXR5IGZvciB0aGUgcHJvamVjdCwgd2hlbiB3ZSBmZWVsIGEgc2Vuc2Ugb2YgYmVsb25naW5nIHRvIHRoZSB0ZWFtLCBpdCdzIG5hdHVyYWwgdG8gZGVkaWNhdGUgdG8gdGhlIHJlc2VhcmNoLiBXZSBob3BlIGFsbCBmdXR1cmUgaUdFTSB0ZWFtcyBhdHRhY2ggaW1wb3J0YW5jZSB0byB0ZWFtIGJ1aWxkaW5nLCB3aGljaCB1bmRvdWJ0ZWRseSBjb250cmlidXRlcyB0byB3b3JrIGVmZmljaWVuY3kgYW5kIG1vc3QgaW1wb3J0YW50bHksIHByZWNpb3VzIHJlbGF0aW9uc2hpcHMuPC9wPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgIDwvRWxlbWVudD5cclxuXHJcbiAgICAgICAgICAgICAgPEVsZW1lbnQgbmFtZT1cInNlY3Rpb244XCIgY2xhc3NOYW1lPVwiZWxlbWVudCByb3VuZGVkLWJvcmRlclwiIGlkPSdzZWN0aW9uOCc+XHJcbiAgICAgICAgICAgICAgPGgyPlx1RjBGQ0xpbmsgd2l0aGluIHRoZSB3b3JsZDwvaDI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyb3VuZGVkLWJvcmRlclwiPlxyXG4gICAgICAgICAgICAgIDxoNCBjbGFzc05hbWU9XCJjZW50ZXItdGV4dFwiPkZlbWFsZSBTdHJlbmd0aDwvaDQ+XHJcbiAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwiaW5kZW50XCI+KDEpRmVtYWxlIExlYWRlcnNoaXA6PC9wPlxyXG4gICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cImluZGVudFwiPkluIHByb21vdGluZyBkaXZlcnNpdHkgYW5kIGluY2x1c2l2aXR5IGFuZCBmb3N0ZXJpbmcgZmVtYWxlIGxlYWRlcnNoaXAsIHdlIGhhdmUgbWFkZSBtYW55IG5vdGljZWFibGUgZWZmb3J0cy4gT3VyIHRlYW0gbGVhZGVyLCBGYW5nIFpoaXhpbiwgYSByZW1hcmthYmxlIHdvbWFuIGZyb20gdGhlIGVpZ2h0LXllYXIgQ2xpbmljYWwgTWVkaWNpbmUgcHJvZ3JhbSwgaW5zcGlyZXMgdXMgYWxsIHdpdGggaGVyIGxvdmUgYW5kIHN0cmVuZ3RoLiBIZXIgbGVhZGVyc2hpcCBjcmVhdGVzIGEgc3VwcG9ydGl2ZSBhbmQgZW1wb3dlcmluZyBlbnZpcm9ubWVudCBmb3IgYWxsIHRlYW0gbWVtYmVycywgZW1ib2R5aW5nIHRoZSBpbXBvcnRhbmNlIG9mIGRpdmVyc2l0eSBhbmQgaW5jbHVzaXZpdHkuPC9wPlxyXG4gICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cImluZGVudFwiPigyKSBSZXNlYXJjaCBJbm5vdmF0aW9uOjwvcD5cclxuICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJpbmRlbnRcIj5UbyBjaGFsbGVuZ2UgdGhlIHN0ZXJlb3R5cGUgdGhhdCB3b21lbiBhcmUgbm90IGdvb2QgYXQgcmF0aW9uYWwgdGhpbmtpbmcgb3IgbGFjayBwcmFjdGljYWwgc2tpbGxzLCBpdCBpcyB3b3J0aCBub3RpbmcgdGhhdCBzZXZlcmFsIGtleSBleHBlcmltZW50IGRlc2lnbmVycyBpbiBvdXIgdGVhbSBhcmUgd29tZW4uIFRoZWlyIG91dHN0YW5kaW5nIGNvbnRyaWJ1dGlvbnMgcHJvdmUgdGhhdCB0aGVzZSBzdGVyZW90eXBlcyBhcmUgYmFzZWxlc3MuIEJ5IHNob3djYXNpbmcgdGhlIHRhbGVudHMgYW5kIGFiaWxpdGllcyBvZiBvdXIgZmVtYWxlIHRlYW0gbWVtYmVycywgd2UgYWltIHRvIHByb21vdGUgZ2VuZGVyIGVxdWFsaXR5IGFuZCBpbmNsdXNpdml0eSBpbiBzY2llbmNlLjwvcD5cclxuICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJpbmRlbnRcIj4oMykgSW50ZXJkaXNjaXBsaW5hcnkgQ29sbGFib3JhdGlvbjo8L3A+XHJcbiAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwiaW5kZW50XCI+T3VyIHRlYW0gY29uc2lzdHMgb2YgMTYgd29tZW4gYW5kIDEzIG1lbiwgd2l0aCBmZW1hbGUgbWVtYmVycyBicmluZ2luZyBkaXZlcnNlIGRpc2NpcGxpbmFyeSBiYWNrZ3JvdW5kcyBzdWNoIGFzIEJpb3N0YXRpc3RpY3MsIEluZm9ybWF0aW9uIE1hbmFnZW1lbnQgYW5kIEluZm9ybWF0aW9uIFN5c3RlbXMsIE1lZGljYWwgTGFib3JhdG9yeSBUZWNobm9sb2d5LCBDbGluaWNhbCBNZWRpY2luZSwgYW5kIFByZXZlbnRpdmUgTWVkaWNpbmUuIFRocm91Z2ggaW50ZXJkaXNjaXBsaW5hcnkgY29sbGFib3JhdGlvbiwgdGhleSBoYXZlIG1hZGUgY3JpdGljYWwgY29udHJpYnV0aW9ucyB0byB0aGUgdGVhbSwgY29sbGVjdGl2ZWx5IGRyaXZpbmcgdGhlIHN1Y2Nlc3Mgb2Ygb3VyIHByb2plY3QuPC9wPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPSdpbWFnZS1jb250YWluZXInPlxyXG4gICAgICAgICAgICAgIDxpbWcgXHJcbiAgICAgICAgICAgICAgICBzcmM9XCJodHRwczovL3N0YXRpYy5pZ2VtLndpa2kvdGVhbXMvNTM3OC9hd2FyZC1pbmNsdXNpdml0eS8xMC0xLndlYnBcIlxyXG4gICAgICAgICAgICAgICAgYWx0PVwiZXhhbXBsZVwiXHJcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJpbWFnZS13aWRlXCJcclxuICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICA8ZmlnY2FwdGlvbiBjbGFzc05hbWU9J2NhcHRpb24nPlRoZSBnaXJscyBmcm9tIG91ciB0ZWFtIGFyZSBpbnRyb2R1Y2luZyBvdXIgcHJvamVjdCB0byBvdGhlciB0ZWFtczwvZmlnY2FwdGlvbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9J2ltYWdlLWNvbnRhaW5lcic+XHJcbiAgICAgICAgICAgICAgPGltZyBcclxuICAgICAgICAgICAgICAgIHNyYz1cImh0dHBzOi8vc3RhdGljLmlnZW0ud2lraS90ZWFtcy81Mzc4L2F3YXJkLWluY2x1c2l2aXR5LzExLTEud2VicFwiXHJcbiAgICAgICAgICAgICAgICBhbHQ9XCJleGFtcGxlXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImltYWdlLXdpZGVcIlxyXG4gICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgIDxmaWdjYXB0aW9uIGNsYXNzTmFtZT0nY2FwdGlvbic+T3VyIHRlYW0gbGVhZGVyJ3MgaW50ZXJhY3Rpb24gd2l0aCBvdGhlciB0ZWFtcy48L2ZpZ2NhcHRpb24+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyb3VuZGVkLWJvcmRlclwiPlxyXG4gICAgICAgICAgICAgIDxoNCBjbGFzc05hbWU9XCJjZW50ZXItdGV4dFwiPkNvbGxhYm9yYXRpb248L2g0PlxyXG4gICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cImluZGVudFwiPk91ciB0ZWFtIGNvbGxhYm9yYXRlcyB3aXRoIHRoZSBIZXBhdG9sb2d5IENlbnRlciBhdCBOYW5mYW5nIEhvc3BpdGFsIGFuZCB0aGUgTWljcm9lY29sb2d5IFRyZWF0bWVudCBDZW50ZXIgYXQgWmh1amlhbmcgSG9zcGl0YWwuIFVuZGVyIHRoZWlyIGd1aWRhbmNlLCB3ZSBjb2xsZWN0ZWQgc2VydW0gc2FtcGxlcyBmcm9tIHBhdGllbnRzIHdpdGggY2lycmhvc2lzIGJlZm9yZSB1bmRlcmdvaW5nIFRJUFMgc3VyZ2VyeSBhbmQgcGVyZm9ybWVkIG1ldGFib2xvbWljcyB0ZXN0aW5nLiBXZSBhbHNvIGZvbGxvd2VkIHVwIHdpdGggdGhlIHBhdGllbnRzIGZvciB0aHJlZSBtb250aHMgdG8gcmVjb3JkIHRoZSBvY2N1cnJlbmNlIG9mIEhFLjwvcD5cclxuICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJpbmRlbnRcIj5PdXIgdGVhbSBwYXJ0aWNpcGF0ZWQgaW4gdGhlIFNvdXRoIENoaW5hIEV4Y2hhbmdlIENvbmZlcmVuY2UsIHdoZXJlIHdlIHNoYXJlZCBvdXIgcHJvamVjdCBwcm9ncmVzcyBhbmQgZXhwZXJpZW5jZXMgd2l0aCBTaGVuemhlbiBVbml2ZXJzaXR5LCBTb3V0aGVybiBVbml2ZXJzaXR5IG9mIFNjaWVuY2UgYW5kIFRlY2hub2xvZ3ksIGFuZCBvdGhlcnMuPC9wPlxyXG4gICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cImluZGVudFwiPk91ciB0ZWFtIHdhcyBpbnZpdGVkIHRvIHBhcnRpY2lwYXRlIGluIHRoZSBDaGluYSBSZWdpb25hbCBFeGNoYW5nZSBDb25mZXJlbmNlIChDQ0lDKSwgd2hlcmUgd2UgZW5nYWdlZCBpbiBpbi1kZXB0aCBkaXNjdXNzaW9ucyB3aXRoIG90aGVyIHRlYW1zIHJlZ2FyZGluZyBwcm9qZWN0IG9wdGltaXphdGlvbiBhbmQgaW1wcm92ZW1lbnRzLiBUaGlzIGVuaGFuY2VkIG91ciBjb2xsYWJvcmF0aXZlIGFiaWxpdGllcyBhbmQgcHJvbW90ZWQgdGhlIGRldmVsb3BtZW50IG9mIGVhY2ggdGVhbSdzIHByb2plY3RzLjwvcD5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT0naW1hZ2UtY29udGFpbmVyJz5cclxuICAgICAgICAgICAgICA8aW1nIFxyXG4gICAgICAgICAgICAgICAgc3JjPVwiaHR0cHM6Ly9zdGF0aWMuaWdlbS53aWtpL3RlYW1zLzUzNzgvYXdhcmQtaW5jbHVzaXZpdHkvMTIud2VicFwiXHJcbiAgICAgICAgICAgICAgICBhbHQ9XCJleGFtcGxlXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImltYWdlLXdpZGVcIlxyXG4gICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgIDxmaWdjYXB0aW9uIGNsYXNzTmFtZT0nY2FwdGlvbic+MTF0aCBDaGluYSBSZWdpb25hbCBpR0VNZXIgRXhjaGFuZ2UgQ29uZmVyZW5jZTwvZmlnY2FwdGlvbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9J2ltYWdlLWNvbnRhaW5lcic+XHJcbiAgICAgICAgICAgICAgPGltZyBcclxuICAgICAgICAgICAgICAgIHNyYz1cImh0dHBzOi8vc3RhdGljLmlnZW0ud2lraS90ZWFtcy81Mzc4L2F3YXJkLWluY2x1c2l2aXR5LzEzLTEud2VicFwiXHJcbiAgICAgICAgICAgICAgICBhbHQ9XCJleGFtcGxlXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImltYWdlLXdpZGVcIlxyXG4gICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgIDxmaWdjYXB0aW9uIGNsYXNzTmFtZT0nY2FwdGlvbic+OHRoIGlHRU0gU291dGggQ2hpbmEgRXhjaGFuZ2UgQ29uZmVyZW5jZTwvZmlnY2FwdGlvbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9J2ltYWdlLWNvbnRhaW5lcic+XHJcbiAgICAgICAgICAgICAgPGltZyBcclxuICAgICAgICAgICAgICAgIHNyYz1cImh0dHBzOi8vc3RhdGljLmlnZW0ud2lraS90ZWFtcy81Mzc4L2F3YXJkLWluY2x1c2l2aXR5LzE0LndlYnBcIlxyXG4gICAgICAgICAgICAgICAgYWx0PVwiZXhhbXBsZVwiXHJcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJpbWFnZS13aWRlXCJcclxuICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICA8ZmlnY2FwdGlvbiBjbGFzc05hbWU9J2NhcHRpb24nPlNNVS1HRE1VIGlHRU0gYW5kIEFJUy1DaGluYSBleGNoYW5nZSBhdCBTb3V0aGVybiBNZWRpY2FsIFVuaXZlcnNpdHk8L2ZpZ2NhcHRpb24+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyb3VuZGVkLWJvcmRlclwiPlxyXG4gICAgICAgICAgICAgIDxoNCBjbGFzc05hbWU9XCJjZW50ZXItdGV4dFwiPkNvbW11bmljYXRpb24gd2l0aCBwcm9mZXNzb3JzPC9oND5cclxuICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJpbmRlbnRcIj5UbyByZWZpbmUgb3VyIHByb2plY3QgZGVzaWduLCB3ZSBpbnRlcnZpZXdlZCBzZXZlcmFsIGRvY3RvcnMgYW5kIHByb2Zlc3NvcnMgZm9yIHRoZWlyIGFkdmljZS48L3A+XHJcbiAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwiaW5kZW50XCI+VG8gcGVyZmVjdCBhbmQgZGV0ZXJtaW5lIHRoZSBkaXJlY3Rpb24gb2YgdGhlIHNlbnNpbmcgbW9kdWxlLCB3ZSBpbnRlcnZpZXdlZCBQcm9mZXNzb3IgWmh1IGZyb20gdGhlIEZpcnN0IEFmZmlsaWF0ZWQgSG9zcGl0YWwgb2YgU3VuIFlhdC1zZW4gVW5pdmVyc2l0eSwgd2hvIHN1Z2dlc3RlZCB0aGF0IHdlIHN3aXRjaCB0byBhIGJpbGUgYWNpZC1yZXNwb25zaXZlIG1hcmtlciB0byBhZGRyZXNzIHRoZSBpc3N1ZSBvZiBub3QgZmluZGluZyBhIHN1aXRhYmxlIGFtbW9uaWEtaW5kdWNpYmxlIHByb21vdGVyOyBzdWJzZXF1ZW50bHksIGZvbGxvd2luZyB0aGUgYWR2aWNlIG9mIFByb2Zlc3NvciBIZSBmcm9tIHRoZSBaaHVqaWFuZyBIb3NwaXRhbCBvZiBTb3V0aGVybiBNZWRpY2FsIFVuaXZlcnNpdHksIG91ciB0ZWFtIHJlcGxhY2VkIGJpbGUgYWNpZCB3aXRoIFBFQS48L3A+XHJcbiAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwiaW5kZW50XCI+VG8gcmVmaW5lIHRoZSBkZXNpZ24gb2YgdGhlIHNhZmV0eSBtb2R1bGUsIHdlIGFwcHJvYWNoZWQgUHJlc2lkZW50IFpob3UgZnJvbSBTaGVuemhlbiBIb3NwaXRhbCwgYW4gZXhwZXJ0IGluIGhlcGF0aWMgZW5jZXBoYWxvcGF0aHkgYW5kIGd1dCBtaWNyb2Jpb3RhLCB3aG8gb2ZmZXJlZCB2YWx1YWJsZSBzdWdnZXN0aW9ucyB0byBhZGRyZXNzIGNvbXBsaWNhdGlvbnMuPC9wPlxyXG4gICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cImluZGVudFwiPlRvIHJlc29sdmUgZXhwZXJpbWVudGFsIGlzc3Vlcywgd2UgY29uc3VsdGVkIHdpdGggUHJvZmVzc29yIENoZW4gZnJvbSB0aGUgU2Nob29sIG9mIEJhc2ljIE1lZGljYWwgU2NpZW5jZXMgYXQgU291dGhlcm4gTWVkaWNhbCBVbml2ZXJzaXR5IGFuZCBhbHNvIGhhZCBhbiBvbmxpbmUgZGlzY3Vzc2lvbiB3aXRoIFRlYWNoZXIgUWl1IGZyb20gdGhlIE5hdGlvbmFsIFVuaXZlcnNpdHkgb2YgRGVmZW5zZSBUZWNobm9sb2d5LjwvcD5cclxuICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJpbmRlbnRcIj5BZGRpdGlvbmFsbHksIGFub3RoZXIgZmVtYWxlIHNjaWVudGlzdCB3ZSBpbnRlcnZpZXdlZCB3YXMgUHJvZmVzc29yIFJlbiBmcm9tIHRoZSBTY2hvb2wgb2YgTWFyeGlzbSwgd2hvIHByb3ZpZGVkIHVzIHdpdGggYWR2aWNlIGZyb20gYW4gZXRoaWNhbCBzYWZldHkgcGVyc3BlY3RpdmUuIFNoZSBhZHZpc2VkIHRoYXQgYW55IGdlbmV0aWMgZWRpdGluZyBvZiBvcmdhbmlzbXMgbXVzdCBiZSBjb25kdWN0ZWQgaW4gYWNjb3JkYW5jZSB3aXRoIGV4aXN0aW5nIGV0aGljYWwgcmVndWxhdGlvbnMsIGVzcGVjaWFsbHkgYWRoZXJpbmcgdG8gdGhlIFwiZG8gbm90IGRpc3NlbWluYXRlIHByaW5jaXBsZVwiOyBhdCB0aGUgc2FtZSB0aW1lLCBpdCBpcyBpbXBlcmF0aXZlIG5vdCB0byByZWxlYXNlIGdlbmV0aWNhbGx5IG1vZGlmaWVkIG9yZ2FuaXNtcyBvciBwcm9kdWN0cyBvZiBnZW5ldGljYWxseSBtb2RpZmllZCBvcmdhbmlzbXMgZnJvbSB0aGUgbGFib3JhdG9yeSBpbnRvIHRoZSBlbnZpcm9ubWVudCwgYW5kIGFueSBzaXRlcyBvZiBnZW5ldGljIGVkaXRpbmcgb3IgZGVsZXRpb24gYW5kIHRoZSBzZXF1ZW5jZXMgZWRpdGVkIG11c3QgYmUgcmVwb3J0ZWQgdG8gdGhlIHNhZmV0eSBjb21taXR0ZWUuPC9wPlxyXG4gICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cImluZGVudFwiPlN1YnNlcXVlbnRseSwgc2hlIHJlbWluZGVkIHVzIHRoYXQgb3VyIHByb2plY3Qgc2hvdWxkIGJlIGVkdWNhdGlvbmFsIGFuZCBwb3B1bGFyaXppbmcsIGNhcGFibGUgb2YgZW5oYW5jaW5nIHRoZSBwdWJsaWMncyB1bmRlcnN0YW5kaW5nIGFuZCBhd2FyZW5lc3Mgb2Ygc3ludGhldGljIGJpb2xvZ3ksIGFuZCB0aHJvdWdoIHB1YmxpYyBpbnRlcmFjdGlvbiBhbmQgdGhlIG9yZ2FuaXphdGlvbiBvZiBzY2llbmNlIHBvcHVsYXJpemF0aW9uIGFjdGl2aXRpZXMsIGFsbG93IG1vcmUgcGVvcGxlIHRvIHVuZGVyc3RhbmQgdGhlIHNpZ25pZmljYW5jZSwgdmFsdWUsIGFuZCBhcHBsaWNhdGlvbiBwcm9zcGVjdHMgb2YgdGhlIHByb2plY3QuPC9wPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPSdpbWFnZS1jb250YWluZXInPlxyXG4gICAgICAgICAgICAgIDxpbWcgXHJcbiAgICAgICAgICAgICAgICBzcmM9XCJodHRwczovL3N0YXRpYy5pZ2VtLndpa2kvdGVhbXMvNTM3OC9hd2FyZC1pbmNsdXNpdml0eS8xNS0xLndlYnBcIlxyXG4gICAgICAgICAgICAgICAgYWx0PVwiZXhhbXBsZVwiXHJcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJpbWFnZS13aWRlXCJcclxuICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICA8ZmlnY2FwdGlvbiBjbGFzc05hbWU9J2NhcHRpb24nPjExIFNlcHRlbWJlciAyMDI0IGF0IHRoZSBTb3V0aGVybiBIb3NwaXRhbCBMaWZlIE5hcnJhdGl2ZSBDZW50cmU8L2ZpZ2NhcHRpb24+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPSdpbWFnZS1jb250YWluZXInPlxyXG4gICAgICAgICAgICAgIDxpbWcgXHJcbiAgICAgICAgICAgICAgICBzcmM9XCJodHRwczovL3N0YXRpYy5pZ2VtLndpa2kvdGVhbXMvNTM3OC9hd2FyZC1pbmNsdXNpdml0eS8xNi53ZWJwXCJcclxuICAgICAgICAgICAgICAgIGFsdD1cImV4YW1wbGVcIlxyXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiaW1hZ2Utd2lkZVwiXHJcbiAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgPGZpZ2NhcHRpb24gY2xhc3NOYW1lPSdjYXB0aW9uJz5FeGNoYW5naW5nIHdpdGggdGVhY2hlcnMgZnJvbSBTaGVuemhlbiBVbml2ZXJzaXR5PC9maWdjYXB0aW9uPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT0naW1hZ2UtY29udGFpbmVyJz5cclxuICAgICAgICAgICAgICA8aW1nIFxyXG4gICAgICAgICAgICAgICAgc3JjPVwiaHR0cHM6Ly9zdGF0aWMuaWdlbS53aWtpL3RlYW1zLzUzNzgvYXdhcmQtaW5jbHVzaXZpdHkvMTctMS53ZWJwXCJcclxuICAgICAgICAgICAgICAgIGFsdD1cImV4YW1wbGVcIlxyXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiaW1hZ2Utd2lkZVwiXHJcbiAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgPGZpZ2NhcHRpb24gY2xhc3NOYW1lPSdjYXB0aW9uJz5cImlHRU1lcnMgZXhjaGFuZ2luZyBzdWdnZXN0aW9uc1wiIG9yIFwiaUdFTWVycyBleGNoYW5naW5nIGFkdmljZTwvZmlnY2FwdGlvbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICA8L0VsZW1lbnQ+XHJcblxyXG4gICAgICAgICAgICAgIDxFbGVtZW50IG5hbWU9XCJzZWN0aW9uOVwiIGNsYXNzTmFtZT1cImVsZW1lbnQgcm91bmRlZC1ib3JkZXJcIiBpZD0nc2VjdGlvbjknPlxyXG4gICAgICAgICAgICAgIDxoMj5Db25jbHVzaW9uPC9oMj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJvdW5kZWQtYm9yZGVyXCI+XHJcbiAgICAgICAgICAgICAgPGg0IGNsYXNzTmFtZT1cImNlbnRlci10ZXh0XCI+TWF4aW1pemluZyBJbmNsdXNpdml0eTwvaDQ+XHJcbiAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwiaW5kZW50XCI+VGhyb3VnaCB0aGVzZSBtZWFzdXJlcywgb3VyIHRlYW0gaGFzIHN1Y2NlZWRlZCBpbiBpbmNyZWFzaW5nIHRoZSBwYXJ0aWNpcGF0aW9uIGFuZCByZXByZXNlbnRhdGlvbiBvZiBwZW9wbGUgZnJvbSBkaWZmZXJlbnQgYmFja2dyb3VuZHMgaW4gc2NpZW50aWZpYyByZXNlYXJjaC4gVGhlIFJ1cmFsIE91dHJlYWNoIFByb2dyYW1tZSBhbmQgdGhlIExhbmd1YWdlIFByb2plY3QgcmVtb3ZlIGluZm9ybWF0aW9uIGFuZCBsYW5ndWFnZSBiYXJyaWVycyBhbmQgbWFrZSBzY2llbnRpZmljIGtub3dsZWRnZSBtb3JlIGFjY2Vzc2libGUgdG8gYSB3aWRlciByYW5nZSBvZiBwZW9wbGUuIFByb2plY3QgSGVscCBhbmQgUHJvamVjdCBFdGhpY3MsIG9uIHRoZSBvdGhlciBoYW5kLCBoZWxwZWQgZGlzYWR2YW50YWdlZCBncm91cHMgb3ZlcmNvbWUgYmFycmllcnMgdGhyb3VnaCByZXNvdXJjZSBzaGFyaW5nIGFuZCBmaW5hbmNpYWwgYXNzaXN0YW5jZS4gVGhlc2UgZWZmb3J0cyBub3Qgb25seSBlbmhhbmNlIHRoZSBzY2llbnRpZmljIHZhbHVlIG9mIHRoZSBwcm9qZWN0cywgYnV0IGFsc28gbGF5IGEgc29saWQgZm91bmRhdGlvbiBmb3IgYnVpbGRpbmcgYSBtb3JlIGluY2x1c2l2ZSBhbmQgZXF1aXRhYmxlIHNjaWVudGlmaWMgY29tbXVuaXR5LiBXZSBob3BlIHRoYXQgdGhyb3VnaCB0aGVzZSBwcmFjdGljYWwgYWN0aW9ucywgd2UgY2FuIG1vdGl2YXRlIG1vcmUgcGVvcGxlIHRvIHVuZGVyc3RhbmQgaUdFTSwgYW5kIGNhbiBpbnNwaXJlIG1vcmUgcGVvcGxlIHRvIHBhcnRpY2lwYXRlIGluIHNjaWVudGlmaWMgcmVzZWFyY2gsIHNvIHRoYXQgZXZlcnlvbmUncyB2b2ljZSBjYW4gYmUgaGVhcmQsIGFuZCBldmVyeW9uZSBoYXMgdGhlIG9wcG9ydHVuaXR5IHRvIGJlIGEgZm9yY2UgZm9yIGNoYW5nZSBpbiB0aGUgd29ybGQuPC9wPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvRWxlbWVudD5cclxuXHJcbiAgICAgICAgICAgIFxyXG5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICBcclxuXHJcbiAgICAgICAgICBcclxuICAgICAgICBcclxuICAgICAgPC9kaXY+XHJcbiAgICA8Lz5cclxuICApO1xyXG59XHJcbiIsICJpbXBvcnQgeyBOYXYgfSBmcm9tICdyZWFjdC1ib290c3RyYXAnO1xyXG5pbXBvcnQgeyBMaW5rLCBFbGVtZW50IH0gZnJvbSAncmVhY3Qtc2Nyb2xsJztcclxuaW1wb3J0IFJlYWN0LCB7IHVzZUVmZmVjdCwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XHJcbmltcG9ydCBNYXRoSmF4IGZyb20gJ3JlYWN0LW1hdGhqYXgnO1xyXG5cclxuXHJcblxyXG5cclxudHlwZSBmb3JtRGF0YSA9IHtcclxuICAgIGlkOiBzdHJpbmc7XHJcbiAgICBjb2wxOiBzdHJpbmc7XHJcbiAgICBjb2wyOiBzdHJpbmc7XHJcbiAgICBjb2wzOiBzdHJpbmc7XHJcbiAgICBjb2w0OiBzdHJpbmc7XHJcbn07XHJcbmNvbnN0IHRhYmxlMTogZm9ybURhdGFbXSA9IFtcclxuICAgIHsgaWQ6ICdDQk1LcicsIGNvbDE6ICdDYXJiYW1hdGUga2luYXNlJywgY29sMjogJ2F0cF9jICsgY28yX2MgKyBuaDRfYyA8PT4gYWRwX2MgKyBjYnBfYyArIDIuMCBoX2MnLCBjb2wzOiAnMC41NTE2MDQnLCBjb2w0OiAnTWF4aW1pemUnIH0sXHJcbiAgICB7IGlkOiAnR01QUycsIGNvbDE6ICdHTVAgc3ludGhhc2UnLCBjb2wyOiAnYXRwX2MgKyBuaDRfYyArIHhtcF9jIC0tPiBhbXBfYyArIGdtcF9jICsgMi4wIGhfYyArIHBwaV9jJywgY29sMzogJzAuMjE0MTIxJywgY29sNDogJ01heGltaXplJyB9LFxyXG4gICAgeyBpZDogJ0FTTlMyJywgY29sMTogJ0FzcGFyYWdpbmUgc3ludGhldGFzZScsIGNvbDI6ICdhc3BcXFxcX1xcXFxfTF9jICsgYXRwX2MgKyBuaDRfYyAtLT4gYW1wX2MgKyBhc25cXFxcX1xcXFxfTF9jICsgaF9jICsgcHBpX2MnLCBjb2wzOiAnMC4yMTIyMDgnLCBjb2w0OiAnTWF4aW1pemUnIH0sXHJcbiAgICB7IGlkOiAnR0xZQ0wnLCBjb2wxOiAnR2x5Y2luZSBDbGVhdmFnZSBTeXN0ZW0nLCBjb2wyOiAnZ2x5X2MgKyBuYWRfYyArIHRoZl9jIC0tPiBjbzJfYyArIG1sdGhmX2MgKyBuYWRoX2MgKyBuaDRfYycsIGNvbDM6ICcwLjA0NzY0NycsIGNvbDQ6ICdNaW5pbWl6ZScgfSxcclxuICAgIHsgaWQ6ICdUUlBBUzInLCBjb2wxOiAnVHJ5cHRvcGhhbmFzZSAoTC10cnlwdG9waGFuKScsIGNvbDI6ICdoMm9fe2N9ICsgdHJwXFxcXF9cXFxcX0xfe2N9IDw9PiBpbmRvbGVfe2N9ICsgbmg0X3tjfSArICBweXJfe2N9JywgY29sMzogJy0wLjA1MDA0MCcsIGNvbDQ6ICdNaW5pbWl6ZScgfSxcclxuICAgIHsgaWQ6ICdHTFVEeScsIGNvbDE6ICdHbHV0YW1hdGUgZGVoeWRyb2dlbmFzZSAoTkFEUCknLCBjb2wyOiAnZ2x1XFxcXF9cXFxcX0xfYyArIGgyb19jICsgbmFkcF9jIDw9PiBha2dfYyArIGhfYyArIG5hZHBoX2MgKyBuaDRfYycsIGNvbDM6ICctNy41Mjc0ODAnLCBjb2w0OiAnTWluaW1pemUnIH1cclxuXTtcclxuXHJcblxyXG5jb25zdCB0YWJsZTI6IGZvcm1EYXRhW10gPSBbXHJcbiAgICB7IGlkOiAnR0xZQ0wnLCBjb2wxOiAnQVRQUzRycHAnLCBjb2wyOiAnRUNPTElOX1JTMjE1MDAsIEVDT0xJTl9SUzIxNDk1LCBFQ09MSU5fUlMyMTQ4MCwgRUNPTElOX1JTMjE0OTAsIEVDT0xJTl9SUzIxNDg1LCBFQ09MSU5fUlMyMTQ3MCcsIGNvbDM6ICcwJywgY29sNDogJzAuMzEzODc2JyB9LFxyXG4gICAgeyBpZDogJ0dMWUNMJywgY29sMTogJ0dITVQyciwgVEhGQVQnLCBjb2wyOiAnRUNPTElOX1JTMTQ0NDAnLCBjb2wzOiAnMCcsIGNvbDQ6ICcwLjg1OTI3MScgfSxcclxuICAgIHsgaWQ6ICdHTFlDTCcsIGNvbDE6ICdHTFlDTCcsIGNvbDI6ICdFQ09MSU5fUlMxNjE3NSwgRUNPTElOX1JTMTYxNjUnLCBjb2wzOiAnMCcsIGNvbDQ6ICcwLjg4MDAwNScgfSxcclxuICAgIHsgaWQ6ICdHTFlDTCcsIGNvbDE6ICdQU0VSVCwgT0hQQkFUJywgY29sMjogJ0VDT0xJTl9SUzA0ODA1JywgY29sMzogJzAnLCBjb2w0OiAnMC44Mzg3NTYnIH0sXHJcbiAgICB7IGlkOiAnR0xZQ0wnLCBjb2wxOiAnUFNQX0wnLCBjb2wyOiAnRUNPTElOX1JTMjUxODUnLCBjb2wzOiAnMCcsIGNvbDQ6ICcwLjg0NzkyOScgfSxcclxuICAgIHsgaWQ6ICdHTFVEeScsIGNvbDE6ICc0SFRIUkEnLCBjb2wyOiAnRUNPTElOX1JTMDQ2MzAnLCBjb2wzOiAnLTcuNTI4ODAyJywgY29sNDogJzAuODgwMzI1JyB9LFxyXG4gICAgeyBpZDogJ0dMVUR5JywgY29sMTogJ0RTRVJ0MnBwLCBBTEF0MnBwX2NvcHkxLCBEQUxBdDJwcCwgQkFMQXQycHAsIEdMWXQycHAnLCBjb2wyOiAnRUNPTElOX1JTMjQ0NTAnLCBjb2wzOiAnLTcuNTM4MjgwJywgY29sNDogJzAuODgwMTY0JyB9LFxyXG4gICAgeyBpZDogJ0dMVUR5JywgY29sMTogJ0VOTycsIGNvbDI6ICdFQ09MSU5fUlMxNTUwMCcsIGNvbDM6ICctMTMuNzMyNjIzJywgY29sNDogJzAuNzA0NTcxJyB9LFxyXG4gICAgeyBpZDogJ0dMVUR5JywgY29sMTogJ1RSUEFTMicsIGNvbDI6ICdFQ09MSU5fUlMyMTM1NScsIGNvbDM6ICctNy41NzI2MjInLCBjb2w0OiAnMC44Nzk3NjInIH1cclxuXTtcclxuXHJcblxyXG5cclxuY29uc3QgdGFibGUzOiBmb3JtRGF0YVtdID0gW1xyXG4gICAgeyBpZDogJ05vbmUgKFdUKScsIGNvbDE6ICcwLjg4MDMzMScsIGNvbDI6ICcxMC43OTkwNzAnLCBjb2wzOiBcIjFcIiwgY29sNDogXCIxXCIgfSxcclxuICAgIHsgaWQ6ICdFQ09MSU5fUlMxNTUwMCcsIGNvbDE6ICcwLjcwNDU3MScsIGNvbDI6ICcxLjk5MjEyMicsIGNvbDM6ICc4MC4wMzQ4MTgnLCBjb2w0OiAnMTguNDQ3MTY1JyB9LFxyXG4gICAgeyBpZDogJ0VDT0xJTl9SUzA0NjMwLCBFQ09MSU5fUlMxNTUwMCcsIGNvbDE6ICcwLjcwNDU3MScsIGNvbDI6ICcxLjkxOTkwOScsIGNvbDM6ICc4MC4wMzQ4MTgnLCBjb2w0OiAnMTcuNzc4NDYzJyB9LFxyXG4gICAgeyBpZDogJ0VDT0xJTl9SUzE1NTAwLCBFQ09MSU5fUlMyMTM1NScsIGNvbDE6ICcwLjcwNDU3MScsIGNvbDI6ICcxLjkxOTkwOScsIGNvbDM6ICc4MC4wMzQ4MTgnLCBjb2w0OiAnMTcuNzc4NDYzJyB9LFxyXG4gICAgeyBpZDogJ0VDT0xJTl9SUzA0NjMwLCBFQ09MSU5fUlMxNTUwMCwgRUNPTElOX1JTMjEzNTUnLCBjb2wxOiAnMC43MDQ1NzEnLCBjb2wyOiAnMS44ODM0ODMnLCBjb2wzOiAnODAuMDM0ODE4JywgY29sNDogJzE3LjQ0MTE2MicgfSxcclxuICAgIHsgaWQ6ICdFQ09MSU5fUlMxNjE3NSwgRUNPTElOX1JTMTU1MDAsIEVDT0xJTl9SUzIxMzU1JywgY29sMTogJzAuNzAzOTA5JywgY29sMjogJzEuODgzNDgzJywgY29sMzogJzc5Ljk1OTU4NCcsIGNvbDQ6ICcxNy40NDExNjInIH0sXHJcbiAgICB7IGlkOiAnRUNPTElOX1JTMTYxNzUsIEVDT0xJTl9SUzE2MTY1LCBFQ09MSU5fUlMxNTUwMCwgRUNPTElOX1JTMjEzNTUnLCBjb2wxOiAnMC43MDM5MDknLCBjb2wyOiAnMS44NzY2MTAnLCBjb2wzOiAnNzkuOTU5NTg0JywgY29sNDogJzE3LjM3NzUxNCcgfVxyXG5dO1xyXG5cclxuXHJcblxyXG4vLyBzaWRlbmF2YmFyIGJlZ2luXHJcbmludGVyZmFjZSBTaWRlTmF2YmFyUHJvcHMge1xyXG4gICAgYWN0aXZlTGluazogc3RyaW5nO1xyXG59XHJcbmNvbnN0IFNpZGVOYXZiYXI6IFJlYWN0LkZDPFNpZGVOYXZiYXJQcm9wcz4gPSAoeyBhY3RpdmVMaW5rIH0pID0+IHtcclxuICAgIHJldHVybiAoXHJcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJzaWRlLW5hdmJhclwiPlxyXG4gICAgICAgICAgICA8TmF2IGNsYXNzTmFtZT1cImZsZXgtY29sdW1uXCI+XHJcbiAgICAgICAgICAgICAgICA8TmF2LkxpbmsgYXM9e0xpbmt9IHRvPVwic2VjdGlvbjFcIiBzbW9vdGg9e3RydWV9IGR1cmF0aW9uPXs1MDB9IGNsYXNzTmFtZT17YWN0aXZlTGluayA9PT0gJ3NlY3Rpb24xJyA/ICdhY3RpdmUnIDogJ25vdEFjdGl2ZSd9Pk9ERSBNb2RlbCBvZiBCaW9jaGVtaWNhbCBSZWFjdGlvbnM8L05hdi5MaW5rPlxyXG4gICAgICAgICAgICAgICAgPE5hdi5MaW5rIGFzPXtMaW5rfSB0bz1cInNlY3Rpb24yXCIgc21vb3RoPXt0cnVlfSBkdXJhdGlvbj17NTAwfSBjbGFzc05hbWU9e2FjdGl2ZUxpbmsgPT09ICdzZWN0aW9uMicgPyAnYWN0aXZlJyA6ICdub3RBY3RpdmUnfT5NZXRhYm9saWMgRW5naW5lZXJpbmcgU3RyYXRlZ3kgdG8gUmVkdWNlIEFtbW9uaWEgUHJvZHVjdGlvbjwvTmF2Lkxpbms+XHJcbiAgICAgICAgICAgICAgICA8TmF2LkxpbmsgYXM9e0xpbmt9IHRvPVwic2VjdGlvbjNcIiBzbW9vdGg9e3RydWV9IGR1cmF0aW9uPXs1MDB9IGNsYXNzTmFtZT17YWN0aXZlTGluayA9PT0gJ3NlY3Rpb24zJyA/ICdhY3RpdmUnIDogJ25vdEFjdGl2ZSd9PnBhcnQzPC9OYXYuTGluaz5cclxuICAgICAgICAgICAgICAgIHsvKiBcdTZERkJcdTUyQTBcdTY2RjRcdTU5MUFcdTVCRkNcdTgyMkFcdTk0RkVcdTYzQTUgKi99XHJcbiAgICAgICAgICAgIDwvTmF2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgKTtcclxufTtcclxuLy8gc2lkZW5hdmJhciBlbmQgXHJcblxyXG5leHBvcnQgZnVuY3Rpb24gTW9kZWwoKSB7XHJcbiAgICAvLyBzaWRlbmF2YmFyIGJlZ2luXHJcbiAgICBjb25zdCBbYWN0aXZlTGluaywgc2V0QWN0aXZlTGlua10gPSB1c2VTdGF0ZTxzdHJpbmc+KCcnKTtcclxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XHJcbiAgICAgICAgY29uc3QgaGFuZGxlU2Nyb2xsID0gKCkgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCBzZWN0aW9ucyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5lbGVtZW50Jyk7XHJcbiAgICAgICAgICAgIGxldCBjdXJyZW50U2VjdGlvbiA9ICcnO1xyXG4gICAgICAgICAgICBzZWN0aW9ucy5mb3JFYWNoKHNlY3Rpb24gPT4ge1xyXG4gICAgICAgICAgICAgICAgY29uc3Qgc2VjdGlvblRvcCA9IHNlY3Rpb24uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkudG9wO1xyXG4gICAgICAgICAgICAgICAgaWYgKHNlY3Rpb25Ub3AgPD0gd2luZG93LmlubmVySGVpZ2h0IC8gMiAmJiBzZWN0aW9uVG9wID4gLXNlY3Rpb24uY2xpZW50SGVpZ2h0KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY3VycmVudFNlY3Rpb24gPSBzZWN0aW9uLmlkO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgc2V0QWN0aXZlTGluayhjdXJyZW50U2VjdGlvbik7XHJcbiAgICAgICAgfTtcclxuICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgaGFuZGxlU2Nyb2xsKTtcclxuICAgICAgICByZXR1cm4gKCkgPT4gd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIGhhbmRsZVNjcm9sbCk7XHJcbiAgICB9LCBbXSk7XHJcbiAgICAvLyBzaWRlbmF2YmFyIGVuZFxyXG5cclxuICAgIGNvbnN0IFtpc09wZW4xLCBzZXRJc09wZW4xXSA9IHVzZVN0YXRlKGZhbHNlKTtcclxuICAgIGNvbnN0IFtpc09wZW4yLCBzZXRJc09wZW4yXSA9IHVzZVN0YXRlKGZhbHNlKTtcclxuXHJcblxyXG4gICAgY29uc3QgdG9nZ2xlQWNjb3JkaW9uMSA9ICgpID0+IHtcclxuICAgICAgICBzZXRJc09wZW4xKCFpc09wZW4xKTtcclxuICAgIH07XHJcblxyXG4gICAgY29uc3QgdG9nZ2xlQWNjb3JkaW9uMiA9ICgpID0+IHtcclxuICAgICAgICBzZXRJc09wZW4yKCFpc09wZW4yKTtcclxuICAgIH07XHJcblxyXG5cclxuXHJcbiAgICByZXR1cm4gKFxyXG4gICAgICAgIDw+XHJcblxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImN1c3RvbS1oZWFkZXItbW9kZWxcIj5cclxuICAgICAgICAgICAgICAgIDxoMSBjbGFzc05hbWU9XCJjZW50ZXJlZC10aXRsZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpbWdcclxuICAgICAgICAgICAgICAgICAgICAgICAgc3JjPVwiaHR0cHM6Ly9zdGF0aWMuaWdlbS53aWtpL3RlYW1zLzUzNzgvaGVhZGVyL21vZGVsLnBuZ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGFsdD1cInNhZmV0eSBoZWFkZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJoZWFkZXItaW1nXCJcclxuICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpbWdcclxuICAgICAgICAgICAgICAgICAgICAgICAgc3JjPVwiaHR0cHM6Ly9zdGF0aWMuaWdlbS53aWtpL3RlYW1zLzUzNzgvaGVhZGVyL2hlYWRlci1iYXIud2VicFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGFsdD1cInNhZmV0eSBoZWFkZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJoZWFkZXItYmFyXCJcclxuICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgIHsvKiA8aW1nXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHNyYz1cImh0dHBzOi8vc3RhdGljLmlnZW0ud2lraS90ZWFtcy81Mzc4L21vZGVsL21vZGVsLXBhZ2Uud2VicFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGFsdD1cInNhZmV0eSBoZWFkZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJoZWFkZXItYmFyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3sgb3BhY2l0eTogMC43IH19XHJcbiAgICAgICAgICAgICAgICAgICAgLz4gKi99XHJcbiAgICAgICAgICAgICAgICA8L2gxPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyb3cgIGJnLXJpY2VfeWVsbG93XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC0yIG1vZGVsLW5hdlwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxTaWRlTmF2YmFyIGFjdGl2ZUxpbms9e2FjdGl2ZUxpbmt9IC8+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC0xMCBtb2RlbC1mb250XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPEVsZW1lbnQgbmFtZT1cInNlY3Rpb24xXCIgY2xhc3NOYW1lPVwiZWxlbWVudFwiIGlkPSdzZWN0aW9uMSc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxoMiBjbGFzc05hbWU9XCJjZW50ZXItdGV4dCBtdC01XCI+MS4gT0RFIE1vZGVsIG9mIEJpb2NoZW1pY2FsIFJlYWN0aW9uczwvaDI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPSdodHRwczovL3N0YXRpYy5pZ2VtLndpa2kvdGVhbXMvNTM3OC9tb2RlbC9tb2RlbC1wYWdlLndlYnAnIGNsYXNzTmFtZT0ncmVzcG9uc2l2ZS1pbWcnIHN0eWxlPXt7IG1heFdpZHRoOiAnNjAlJywgbWFyZ2luOiAnMCBhdXRvJywgcGFkZGluZ1JpZ2h0OiAnMjAlJyB9fSAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZmlnY2FwdGlvbiBjbGFzc05hbWU9J2NhcHRpb24nIHN0eWxlPXt7IHBhZGRpbmdSaWdodDogJzIwJScgfX0gPlBsYWNlaG9sZGVyczwvZmlnY2FwdGlvbj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxoMz4xLjEgT3hpZGF0aW9uIG9mIFBoZW55bGV0aHlsYW1pbmU8L2gzPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHA+Rmlyc3RseSwgcGhlbnlsZXRoeWxhbWluZSAoUEVBKSBkaWZmdXNlcyB0aHJvdWdoIHRoZSBvdXRlciBtZW1icmFuZSBvZiA8ZW0+RXNjaGVyaWNoaWEgY29saTwvZW0+IGludG8gdGhlIHBlcmlwbGFzbWljIHNwYWNlLCB3aGVyZSBpdCBpbnRlcmFjdHMgd2l0aCBUeW5BLjwvcD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPE1hdGhKYXguUHJvdmlkZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT0naW5kZW50IGZvcm11bGFfY29udGVudCcgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT0nZm9ybXVsYV9saW5lJz48TWF0aEpheC5Ob2RlIGZvcm11bGE9e2B7UEVBX3tndXR9XFxcXG92ZXJzZXR7a197XFxcXHRleHR7ZGlmZn19XFxcXF97XFxcXHRleHR7UEVBfX19e1xcXFx1bmRlcnNldHtrX3tcXFxcdGV4dHtkaWZmfX1cXFxcX3tcXFxcdGV4dHtQRUF9fX17XFxcXHJpZ2h0bGVmdGhhcnBvb25zfX0gIFBFQV97cGVyaX19YH0gLz4gPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT0nZm9ybXVsYV9udW1iZXInPjE8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9NYXRoSmF4LlByb3ZpZGVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8cD5BY2NvcmRpbmcgdG8gdGhlIGxhdyBvZiBtYXNzIGFjdGlvbiwgdGhpcyBwcm9jZXNzIGNhbiBiZSByZXByZXNlbnRlZCBieSBhbiBvcmRpbmFyeSBkaWZmZXJlbnRpYWwgZXF1YXRpb24gKE9ERSkgYXMgZm9sbG93czwvcD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPE1hdGhKYXguUHJvdmlkZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT0naW5kZW50IGZvcm11bGFfY29udGVudCcgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT0nZm9ybXVsYV9saW5lJz4gPE1hdGhKYXguTm9kZSBmb3JtdWxhPXtgXFxcXGZyYWN7XFxcXG1hdGhybXtkfVtQRUFfe3Blcml9XX17XFxcXG1hdGhybXtkfXR9ID0gXFxcXGZyYWN7a197ZGlmZlxcXFxfUEVBfX17Vl97cGVyaX19KFtQRUFfe2d1dH1dIC0gW1BFQV97cGVyaX1dKWB9IC8+IDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9J2Zvcm11bGFfbnVtYmVyJz4yPC9zcGFuPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPSdpbmRlbnQgZm9ybXVsYV9jb250ZW50Jz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9J2Zvcm11bGFfbGluZSc+IDxNYXRoSmF4Lk5vZGUgZm9ybXVsYT17YFxcXFxmcmFje1xcXFxtYXRocm17ZH1bUEVBX3tndXR9XX17XFxcXG1hdGhybXtkfXR9ID0gXFxcXGZyYWN7a197ZGlmZlxcXFxfUEVBfX17Vl97Z3V0fX0oW1BFQV97cGVyaX1dIC0gW1BFQV97Z3V0fV0pYH0gLz4gICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPSdmb3JtdWxhX251bWJlcic+Mzwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L01hdGhKYXguUHJvdmlkZXI+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8cD53aGVyZSA8TWF0aEpheC5Qcm92aWRlcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxNYXRoSmF4Lk5vZGUgaW5saW5lIGZvcm11bGE9e2BrX3tcXFxcbWF0aHJte2RpZmZcXFxcX1BFQX19YH0gLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9NYXRoSmF4LlByb3ZpZGVyPiByZXByZXNlbnRzIHRoZSBwYXNzaXZlIGRpZmZ1c2lvbiBjb25zdGFudCBvZiBwaGVueWxldGh5bGFtaW5lLiBUaGUgYW1vdW50IG9mIHN1YnN0YW5jZSBwYXNzaW5nIHRocm91Z2ggdGhlIG1lbWJyYW5lIHBlciB1bml0IHRpbWUgaXMgZXF1YWwgdG8gdGhlIHByb2R1Y3Qgb2YgdGhlIGNvbmNlbnRyYXRpb24gZGlmZmVyZW5jZSBhY3Jvc3MgdGhlIG1lbWJyYW5lIGFuZCB0aGUgcGFzc2l2ZSBkaWZmdXNpb24gcmF0ZSBjb25zdGFudC48L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxwPlN1YnNlcXVlbnRseSwgbW9ub2FtaW5lIG94aWRhc2UgVHluQSBveGlkaXplcyBwaGVueWxldGh5bGFtaW5lIGludG8gcGhlbnlsYWNldGFsZGVoeWRlIChQQSkgYW5kIGFtbW9uaWEuPC9wPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8TWF0aEpheC5Qcm92aWRlcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPSdpbmRlbnQgZm9ybXVsYV9jb250ZW50Jz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9J2Zvcm11bGFfbGluZSc+PE1hdGhKYXguTm9kZSBmb3JtdWxhPXtgIFBFQVxcXFx4cmlnaHRhcnJvd1tLX3tNXFxcXF9UeW5BfSxrX3tjYXRcXFxcX1R5bkF9XXtUeW5BfSBQQV97cGVyaX0gKyBOSF97M1xcXFxfcGVyaX1gfSAvPiA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPSdmb3JtdWxhX251bWJlcic+NDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L01hdGhKYXguUHJvdmlkZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxwPlRoZSBNaWNoYWVsaXMtTWVudGVuIG1lY2hhbmlzbSBkZXNjcmliZXMgdGhlIGVuenltYXRpYyBjb252ZXJzaW9uIG9mIGEgc3Vic3RyYXRlIDxNYXRoSmF4LlByb3ZpZGVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPE1hdGhKYXguTm9kZSBpbmxpbmUgZm9ybXVsYT17YFNgfSAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L01hdGhKYXguUHJvdmlkZXI+IGludG8gYSBwcm9kdWN0IDxNYXRoSmF4LlByb3ZpZGVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxNYXRoSmF4Lk5vZGUgaW5saW5lIGZvcm11bGE9e2BQYH0gLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvTWF0aEpheC5Qcm92aWRlcj4gdmlhIGFuIGVuenltZSA8TWF0aEpheC5Qcm92aWRlcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPE1hdGhKYXguTm9kZSBpbmxpbmUgZm9ybXVsYT17YEVgfSAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvTWF0aEpheC5Qcm92aWRlcj4sIHRocm91Z2ggdGhlIGZvcm1hdGlvbiBvZiBhbiBlbnp5bWUtc3Vic3RyYXRlIGNvbXBsZXggPE1hdGhKYXguUHJvdmlkZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxNYXRoSmF4Lk5vZGUgaW5saW5lIGZvcm11bGE9e2BFU2B9IC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9NYXRoSmF4LlByb3ZpZGVyPi4gVGhlIGJhc2ljIHJlYWN0aW9uIHNjaGVtZSBpczo8L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxNYXRoSmF4LlByb3ZpZGVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9J2luZGVudCBmb3JtdWxhX2NvbnRlbnQnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT0nZm9ybXVsYV9saW5lJz48TWF0aEpheC5Ob2RlIGZvcm11bGE9e2B7e0UrU31cXFxcb3ZlcnNldHtrX3tmMX19e1xcXFx1bmRlcnNldHtrX3tyMX19e1xcXFxyaWdodGxlZnRoYXJwb29uc319ICBFUyBcXFxceHJpZ2h0YXJyb3dbXXtrX3tjYXR9fUUgKyBQfWB9IC8+IDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9J2Zvcm11bGFfbnVtYmVyJz41PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvTWF0aEpheC5Qcm92aWRlcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHA+d2hlcmUgPE1hdGhKYXguUHJvdmlkZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8TWF0aEpheC5Ob2RlIGlubGluZSBmb3JtdWxhPXtga197ZjF9YH0gLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9NYXRoSmF4LlByb3ZpZGVyPiBpcyB0aGUgcmF0ZSBjb25zdGFudCBmb3IgdGhlIGZvcm1hdGlvbiBvZiB0aGUgZW56eW1lLXN1YnN0cmF0ZSBjb21wbGV4LCA8TWF0aEpheC5Qcm92aWRlcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPE1hdGhKYXguTm9kZSBpbmxpbmUgZm9ybXVsYT17YGtfe3IxfWB9IC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9NYXRoSmF4LlByb3ZpZGVyPiBpcyB0aGUgcmF0ZSBjb25zdGFudCBmb3IgdGhlIGRpc3NvY2lhdGlvbiBvZiB0aGUgY29tcGxleCBiYWNrIHRvIGZyZWUgZW56eW1lIGFuZCBzdWJzdHJhdGUsIGFuZCA8TWF0aEpheC5Qcm92aWRlcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPE1hdGhKYXguTm9kZSBpbmxpbmUgZm9ybXVsYT17YGtfe2NhdH1gfSAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvTWF0aEpheC5Qcm92aWRlcj4gaXMgdGhlIHJhdGUgY29uc3RhbnQgZm9yIHRoZSBjb252ZXJzaW9uIG9mIHRoZSBlbnp5bWUtc3Vic3RyYXRlIGNvbXBsZXggaW50byBwcm9kdWN0IGFuZCBmcmVlIGVuenltZS48L3A+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8cD5UaGUgZGVyaXZhdGlvbiByZWxpZXMgb24gdHdvIG1haW4gYXNzdW1wdGlvbnM6PC9wPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHA+MS4gU3RlYWR5LVN0YXRlIEFwcHJveGltYXRpb246IFRoZSBjb25jZW50cmF0aW9uIG9mIHRoZSBlbnp5bWUtc3Vic3RyYXRlIGNvbXBsZXggcmVtYWlucyBjb25zdGFudCBkdXJpbmcgdGhlIHJlYWN0aW9uIGJlY2F1c2UgaXRzIGZvcm1hdGlvbiBhbmQgYnJlYWtkb3duIHJlYWNoIGEgZHluYW1pYyBlcXVpbGlicml1bTwvcD5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxwPlRodXMsIHRoZSByYXRlIG9mIGZvcm1hdGlvbiBvZiA8TWF0aEpheC5Qcm92aWRlcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxNYXRoSmF4Lk5vZGUgaW5saW5lIGZvcm11bGE9e2BFU2B9IC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvTWF0aEpheC5Qcm92aWRlcj4gZXF1YWxzIGl0cyBicmVha2Rvd248L3A+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8TWF0aEpheC5Qcm92aWRlcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPSdpbmRlbnQgZm9ybXVsYV9jb250ZW50Jz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9J2Zvcm11bGFfbGluZSc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxNYXRoSmF4Lk5vZGUgZm9ybXVsYT17YGtfe2YxfVtFXVtTXSA9IFxcXFxsZWZ0KCBrX3tyMX0gKyBrX3tcXFxcbWF0aHJte2NhdH19IFxcXFxyaWdodCkgW0VTXWB9IC8+IDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9J2Zvcm11bGFfbnVtYmVyJz42PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT0naW5kZW50IGZvcm11bGFfY29udGVudCc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPSdmb3JtdWxhX2xpbmUnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8TWF0aEpheC5Ob2RlIGZvcm11bGE9e2BbRVNdID0gXFxcXGZyYWN7IGtfe2YxfVtFXVtTXSB9eyBrX3tyMX0gKyBrX3tcXFxcbWF0aHJte2NhdH19IH1gfSAvPiAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT0nZm9ybXVsYV9udW1iZXInPjc8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvTWF0aEpheC5Qcm92aWRlcj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxwPjIuIFRvdGFsIEVuenltZSBDb25jZW50cmF0aW9uOiBUaGUgdG90YWwgY29uY2VudHJhdGlvbiBvZiB0aGUgZW56eW1lIGlzIGNvbnN0YW50IGFuZCBjYW4gYmUgZXhwcmVzc2VkIGFzIHRoZSBzdW0gb2YgZnJlZSBlbnp5bWUgYW5kIGVuenltZSBib3VuZCBpbiB0aGUgZW56eW1lLXN1YnN0cmF0ZSBjb21wbGV4LjwvcD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPE1hdGhKYXguUHJvdmlkZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT0naW5kZW50IGZvcm11bGFfY29udGVudCc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPSdmb3JtdWxhX2xpbmUnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8TWF0aEpheC5Ob2RlIGZvcm11bGE9e2BbRV97XFxcXHRleHR7dG90YWx9fV0gPSBbRV0gKyBbRVNdYH0gLz4gIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9J2Zvcm11bGFfbnVtYmVyJz44PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvTWF0aEpheC5Qcm92aWRlcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHA+U3Vic3RpdHV0ZSA8TWF0aEpheC5Qcm92aWRlcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxNYXRoSmF4Lk5vZGUgaW5saW5lIGZvcm11bGE9e2BbRV0gPSBbRV97XFxcXHRleHR7dG90YWx9fV0gLSBbRVNdXHJcbmB9IC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvTWF0aEpheC5Qcm92aWRlcj5pbnRvIHRoZSBzdGVhZHktc3RhdGUgZXF1YXRpb24gYW5kIHNvbHZlIGZvciA8TWF0aEpheC5Qcm92aWRlcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPE1hdGhKYXguTm9kZSBpbmxpbmUgZm9ybXVsYT17YFtFU11cclxuYH0gLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L01hdGhKYXguUHJvdmlkZXI+PC9wPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPE1hdGhKYXguUHJvdmlkZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT0naW5kZW50IGZvcm11bGFfY29udGVudCc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPSdmb3JtdWxhX2xpbmUnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8TWF0aEpheC5Ob2RlIGZvcm11bGE9e2BbRVNdID0gXFxcXGZyYWN7W0Vfe1xcXFx0ZXh0e3RvdGFsfX1dIFtTXX17XFxcXGZyYWN7a197cjF9ICsga197XFxcXHRleHR7Y2F0fX19e2tfe2YxfX0gKyBbU119YH0gLz4gIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9J2Zvcm11bGFfbnVtYmVyJz45PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvTWF0aEpheC5Qcm92aWRlcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHA+VGhlIE1pY2hhZWxpcyBjb25zdGFudCAgPE1hdGhKYXguUHJvdmlkZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8TWF0aEpheC5Ob2RlIGlubGluZSBmb3JtdWxhPXtgS19NYH0gLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9NYXRoSmF4LlByb3ZpZGVyPiBpcyBkZWZpbmVkIGFzPC9wPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8TWF0aEpheC5Qcm92aWRlcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPSdpbmRlbnQgZm9ybXVsYV9jb250ZW50Jz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9J2Zvcm11bGFfbGluZSc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxNYXRoSmF4Lk5vZGUgZm9ybXVsYT17YEtfTSA9IFxcXFxmcmFje2tfe3IxfSArIGtfe1xcXFx0ZXh0e2NhdH19fXtrX3tmMX19XHJcbmB9IC8+ICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9J2Zvcm11bGFfbnVtYmVyJz4xMDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L01hdGhKYXguUHJvdmlkZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxwPlRoaXMgc2ltcGxpZmllcyB0aGUgZXhwcmVzc2lvbiBmb3IgIHRvPC9wPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPE1hdGhKYXguUHJvdmlkZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT0naW5kZW50IGZvcm11bGFfY29udGVudCc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPSdmb3JtdWxhX2xpbmUnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8TWF0aEpheC5Ob2RlIGZvcm11bGE9e2BFUyA9IFxcXFxmcmFjeyB7W0VcXFxcX3RvdGFsXVtTXX0gfXtLX00gKyBbU119YH0gLz4gIDwvc3Bhbj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPSdmb3JtdWxhX251bWJlcic+MTE8L3NwYW4+ICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L01hdGhKYXguUHJvdmlkZXI+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8cD5UaGUgcmF0ZSBvZiBwcm9kdWN0IGZvcm1hdGlvbiBpc1xyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxNYXRoSmF4LlByb3ZpZGVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9J2luZGVudCBmb3JtdWxhX2NvbnRlbnQnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT0nZm9ybXVsYV9saW5lJz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPE1hdGhKYXguTm9kZSBmb3JtdWxhPXtgdl8wID0ga197Y2F0fVtFU11gfSAvPiAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9J2Zvcm11bGFfbnVtYmVyJz4xMjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L01hdGhKYXguUHJvdmlkZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxwPlN1YnN0aXR1dGluZyA8TWF0aEpheC5Qcm92aWRlcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxNYXRoSmF4Lk5vZGUgaW5saW5lIGZvcm11bGE9e2BbRVNdYH0gLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9NYXRoSmF4LlByb3ZpZGVyPiBnaXZlcyB0aGUgTWljaGFlbGlzLU1lbnRlbiBlcXVhdGlvbjo8L3A+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8TWF0aEpheC5Qcm92aWRlcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPSdpbmRlbnQgZm9ybXVsYV9jb250ZW50Jz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9J2Zvcm11bGFfbGluZSc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxNYXRoSmF4Lk5vZGUgZm9ybXVsYT17YHZfMCA9IFxcXFxmcmFje1Zfe21heH1bc119e0tfTStbU119YH0gLz4gIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9J2Zvcm11bGFfbnVtYmVyJz4xMzwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L01hdGhKYXguUHJvdmlkZXI+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8cD53aGVyZSA8TWF0aEpheC5Qcm92aWRlcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxNYXRoSmF4Lk5vZGUgaW5saW5lIGZvcm11bGE9e2BWX3ttYXh9ID0ga197Y2F0fVtFX3t0b3RhbH1dYH0gLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9NYXRoSmF4LlByb3ZpZGVyPiA8L3A+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8cD5Db25zaWRlcmluZyB0aGF0IDxNYXRoSmF4LlByb3ZpZGVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPE1hdGhKYXguTm9kZSBpbmxpbmUgZm9ybXVsYT17YGtfe2NhdH1gfSAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L01hdGhKYXguUHJvdmlkZXI+IGFuZCA8TWF0aEpheC5Qcm92aWRlcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPE1hdGhKYXguTm9kZSBpbmxpbmUgZm9ybXVsYT17YEtfTWB9IC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9NYXRoSmF4LlByb3ZpZGVyPiBhcmUgbW9yZSByZWFkaWx5IGF2YWlsYWJsZSwgd2UgdXNlIHRoZW0gdG8gZXhwcmVzcyB0aGUgTWljaGFlbGlzLU1lbnRlbiBlcXVhdGlvbjwvcD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPE1hdGhKYXguUHJvdmlkZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT0naW5kZW50IGZvcm11bGFfY29udGVudCc+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxNYXRoSmF4Lk5vZGUgZm9ybXVsYT17YHZfMCA9IFxcXFxmcmFje2t7Y2F0fVtFX3t0b3RhbH1dW1NdfXtLX00gK1tTXX1gfSAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvTWF0aEpheC5Qcm92aWRlcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHA+VGhpcyBwcm9jZXNzIGNhbiBiZSBkZXNjcmliZWQgdXNpbmcgTWljaGFlbGlzLU1lbnRlbiBraW5ldGljcyBhcyBmb2xsb3dzPC9wPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPE1hdGhKYXguUHJvdmlkZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT0naW5kZW50IGZvcm11bGFfY29udGVudCc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPSdmb3JtdWxhX2xpbmUnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8TWF0aEpheC5Ob2RlIGZvcm11bGE9e2BcXFxcZnJhY3tcXFxcbWF0aHJte2R9W1BBX3twZXJpfV19e1xcXFxtYXRocm17ZH10fSA9IFxcXFxmcmFje2tfe2NhdFxcXFxfVHluQX1bVHluQV1bUEVBX3twZXJpfV19e0tfe01cXFxcX1R5bkF9K1tQRUFfe3Blcml9XX1gfSAvPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9J2Zvcm11bGFfbnVtYmVyJz4xNDwvc3Bhbj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPSdpbmRlbnQgZm9ybXVsYV9jb250ZW50Jz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9J2Zvcm11bGFfbGluZSc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxNYXRoSmF4Lk5vZGUgZm9ybXVsYT17YFxcXFxmcmFje1xcXFxtYXRocm17ZH1bTkhfezNcXFxcX3Blcml9XX17XFxcXG1hdGhybXtkfXR9ID0gXFxcXGZyYWN7a197Y2F0XFxcXF9UeW5BfVtUeW5BXVtQRUFfe3Blcml9XX17S197TVxcXFxfVHluQX0rW1BFQV97cGVyaX1dfWB9IC8+IDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9J2Zvcm11bGFfbnVtYmVyJz4xNTwvc3Bhbj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPSdpbmRlbnQgZm9ybXVsYV9jb250ZW50Jz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9J2Zvcm11bGFfbGluZSc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxNYXRoSmF4Lk5vZGUgZm9ybXVsYT17YFxcXFxmcmFje1xcXFxtYXRocm17ZH1bUEVBX3twZXJpfV19e1xcXFxtYXRocm17ZH10fSA9IC1cXFxcZnJhY3trX3tjYXRcXFxcX1R5bkF9W1R5bkFdW1BFQV97cGVyaX1dfXtLX3tNXFxcXF9UeW5BfStbUEVBX3twZXJpfV19YH0gLz48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPSdmb3JtdWxhX251bWJlcic+MTY8L3NwYW4+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvTWF0aEpheC5Qcm92aWRlcj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxwPlRoZSBwaGVueWxhY2V0YWxkZWh5ZGUgYW5kIGFtbW9uaWEgZm9ybWVkIGluIHRoaXMgcmVhY3Rpb24gY3Jvc3MgdGhlIGlubmVyIG1lbWJyYW5lIGludG8gdGhlIGN5dG9wbGFzbSwgd2hlcmUgdGhleSBwYXJ0aWNpcGF0ZSBpbiBmdXJ0aGVyIG94aWRhdGlvbiBhbmQgbWV0YWJvbGljIHByb2Nlc3Nlcy48L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxNYXRoSmF4LlByb3ZpZGVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9J2luZGVudCBmb3JtdWxhX2NvbnRlbnQnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT0nZm9ybXVsYV9saW5lJz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPE1hdGhKYXguTm9kZSBmb3JtdWxhPXtgUEFfe3Blcml9XFxcXG92ZXJzZXR7fXtcXFxcdW5kZXJzZXR7fXtcXFxccmlnaHRsZWZ0aGFycG9vbnN9fVBBX3tjeXRvfWB9IC8+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT0nZm9ybXVsYV9udW1iZXInPjE3PC9zcGFuPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9J2luZGVudCBmb3JtdWxhX2NvbnRlbnQnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT0nZm9ybXVsYV9saW5lJz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPE1hdGhKYXguTm9kZSBmb3JtdWxhPXtgTkhfezNcXFxcX3Blcml9XFxcXG92ZXJzZXR7fXtcXFxcdW5kZXJzZXR7fXtcXFxccmlnaHRsZWZ0aGFycG9vbnN9fU5IX3szXFxcXF9jeXRvfWB9IC8+ICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT0nZm9ybXVsYV9udW1iZXInPjE4PC9zcGFuPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L01hdGhKYXguUHJvdmlkZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxwPkFjY29yZGluZyB0byB0aGUgbGF3IG9mIG1hc3MgYWN0aW9uPC9wPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8TWF0aEpheC5Qcm92aWRlcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPSdpbmRlbnQgZm9ybXVsYV9jb250ZW50Jz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9J2Zvcm11bGFfbGluZSc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxNYXRoSmF4Lk5vZGUgZm9ybXVsYT17YFxcXFxmcmFje1xcXFxtYXRocm17ZH1bUEFfe2N5dG99XX17XFxcXG1hdGhybXtkfXR9ID0gXFxcXGZyYWN7a197ZGlmZlxcXFxfUEF9fXtWX3tjeXRvfX0oW1BBX3twZXJpfV0tW1BBX3tjeXRvfV0pYH0gLz48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPSdmb3JtdWxhX251bWJlcic+MTk8L3NwYW4+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT0naW5kZW50IGZvcm11bGFfY29udGVudCc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPSdmb3JtdWxhX2xpbmUnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8TWF0aEpheC5Ob2RlIGZvcm11bGE9e2BcXFxcZnJhY3tcXFxcbWF0aHJte2R9W1BBX3twZXJpfV19e1xcXFxtYXRocm17ZH10fSA9IFxcXFxmcmFje2tfe2RpZmZcXFxcX1BBfX17Vl97cGVyaX19KFtQQV97Y3l0b31dLVtQQV97cGVyaX1dKWB9IC8+ICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPSdmb3JtdWxhX251bWJlcic+MjA8L3NwYW4+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT0naW5kZW50IGZvcm11bGFfY29udGVudCc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPSdmb3JtdWxhX2xpbmUnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8TWF0aEpheC5Ob2RlIGZvcm11bGE9e2BcXFxcZnJhY3tcXFxcbWF0aHJte2R9W05IX3szXFxcXF9jeXRvfV19e1xcXFxtYXRocm17ZH10fSA9IFxcXFxmcmFje2tfe2RpZmZcXFxcX05IM319e1Zfe2N5dG99fShbTkhfezNcXFxcX3Blcml9XS1bTkhfezNcXFxcX2N5dG99XSlgfSAvPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9J2Zvcm11bGFfbnVtYmVyJz4yMTwvc3Bhbj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPSdpbmRlbnQgZm9ybXVsYV9jb250ZW50Jz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9J2Zvcm11bGFfbGluZSc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxNYXRoSmF4Lk5vZGUgZm9ybXVsYT17YFxcXFxmcmFje1xcXFxtYXRocm17ZH1bTkhfezNcXFxcX3Blcml9XX17XFxcXG1hdGhybXtkfXR9ID0gXFxcXGZyYWN7a197ZGlmZlxcXFxfTkgzfX17Vl97cGVyaX19KFtOSF97M1xcXFxfY3l0b31dLVtOSF97M1xcXFxfcGVyaX1dKWB9IC8+ICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPSdmb3JtdWxhX251bWJlcic+MjI8L3NwYW4+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L01hdGhKYXguUHJvdmlkZXI+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aDM+MS4yIFByb2R1Y3Rpb24gb2YgR1MgYW5kIFRQSDE8L2gzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8cD5UaGUgcHJvY2VzcyBieSB3aGljaCBGZWFSIGNhdGFseXplcyB0aGUgZnVydGhlciBveGlkYXRpb24gb2YgcGhlbnlsYWNldGFsZGVoeWRlIGludG8gcGhlbnlsYWNldGljIGFjaWQgKFBBQSkgaW4gdGhlIGN5dG9wbGFzbSBjYW4gYmUgYnJva2VuIGRvd24gaW50byB0d28gc3RlcHMgYWNjb3JkaW5nIHRvIHRoZSBwcmluY2lwbGVzIG9mIE1pY2hhZWxpcy1NZW50ZW4ga2luZXRpY3MuIFRoZSBwaGVueWxhY2V0aWMgYWNpZCBwcm9kdWNlZCBieSB0aGUgcmVhY3Rpb24gdGhlbiBkaWZmdXNlcyBvdXQgb2YgdGhlIGNlbGwuPC9wPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8TWF0aEpheC5Qcm92aWRlcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPSdpbmRlbnQgZm9ybXVsYV9jb250ZW50Jz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9J2Zvcm11bGFfbGluZSc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxNYXRoSmF4Lk5vZGUgZm9ybXVsYT17YEZlYVIrUEFfe2N5dG99XFxcXG92ZXJzZXR7fXtcXFxcdW5kZXJzZXR7fXtcXFxccmlnaHRsZWZ0aGFycG9vbnN9fUZlYXJSLVBBYH0gLz48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPSdmb3JtdWxhX251bWJlcic+MjM8L3NwYW4+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT0naW5kZW50IGZvcm11bGFfY29udGVudCc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPSdmb3JtdWxhX2xpbmUnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8TWF0aEpheC5Ob2RlIGZvcm11bGE9e2BGZWFSLVBBXFxcXHhyaWdodGFycm93e31GZWFyUitQQUFfe2N5dG99YH0gLz4gICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9J2Zvcm11bGFfbnVtYmVyJz4yNDwvc3Bhbj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPSdpbmRlbnQgZm9ybXVsYV9jb250ZW50Jz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9J2Zvcm11bGFfbGluZSc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxNYXRoSmF4Lk5vZGUgZm9ybXVsYT17YFBBQV97Y3l0b31cXFxcb3ZlcnNldHt9e1xcXFx1bmRlcnNldHt9e1xcXFxyaWdodGxlZnRoYXJwb29uc319UEFBX3tndXR9YH0gLz48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPSdmb3JtdWxhX251bWJlcic+MjU8L3NwYW4+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvTWF0aEpheC5Qcm92aWRlcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHA+VGhlIEZlYVItcGhlbnlsYWNldGFsZGVoeWRlIGNvbXBsZXggY2FuIGJpbmQgYW5kIGFjdGl2YXRlIHRoZSBQVHluQSBwcm9tb3Rlci4gSW4gdGhpcyBjYXNlLCB0aGUgY29uY2VudHJhdGlvbiBvZiB0aGUgZW56eW1lLXN1YnN0cmF0ZSBjb21wbGV4IDxNYXRoSmF4LlByb3ZpZGVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPE1hdGhKYXguTm9kZSBpbmxpbmUgZm9ybXVsYT17YFtGZWFSLVBBXWB9IC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvTWF0aEpheC5Qcm92aWRlcj4gaXMgbm8gbG9uZ2VyIGNvbnN0YW50LCB2aW9sYXRpbmcgdGhlIHR3byBtYWluIGFzc3VtcHRpb25zIG9mIHRoZSBNaWNoYWVsaXMtTWVudGVuIGVxdWF0aW9uLiBIb3dldmVyLCB0aGUgcmVsYXRpb25zaGlwIGJldHdlZW4gPE1hdGhKYXguUHJvdmlkZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxNYXRoSmF4Lk5vZGUgaW5saW5lIGZvcm11bGE9e2BLX01gfSAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvTWF0aEpheC5Qcm92aWRlcj4gYW5kIHRoZSByYXRlIGNvbnN0YW50cyA8TWF0aEpheC5Qcm92aWRlcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPE1hdGhKYXguTm9kZSBpbmxpbmUgZm9ybXVsYT17YGtfe2YxfWB9IC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9NYXRoSmF4LlByb3ZpZGVyPiwgPE1hdGhKYXguUHJvdmlkZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxNYXRoSmF4Lk5vZGUgaW5saW5lIGZvcm11bGE9e2BrX3tyMX1gfSAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvTWF0aEpheC5Qcm92aWRlcj4gYW5kIDxNYXRoSmF4LlByb3ZpZGVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8TWF0aEpheC5Ob2RlIGlubGluZSBmb3JtdWxhPXtga197Y2F0fWB9IC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9NYXRoSmF4LlByb3ZpZGVyPiBzdGlsbCBob2xkcy48L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxNYXRoSmF4LlByb3ZpZGVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9J2luZGVudCBmb3JtdWxhX2NvbnRlbnQnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT0nZm9ybXVsYV9saW5lJz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPE1hdGhKYXguTm9kZSBmb3JtdWxhPXtgS19NID0gXFxcXGZyYWN7a197cjF9K2tfe2NhdH19e2tfe2YxfX1gfSAvPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9J2Zvcm11bGFfbnVtYmVyJz4yNjwvc3Bhbj5cclxuXHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvTWF0aEpheC5Qcm92aWRlcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHA+U2luY2UgdGhlIGNvbnN0YW50cyBkZXBlbmQgb25seSBvbiB0aGUgaW50cmluc2ljIHByb3BlcnRpZXMgb2YgdGhlIGVuenltZSBhbmQgc3Vic3RyYXRlLCB3ZSBjYW4gdXNlIHRoZSB2YWx1ZXMgb2YgPE1hdGhKYXguUHJvdmlkZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8TWF0aEpheC5Ob2RlIGlubGluZSBmb3JtdWxhPXtgS19NYH0gLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9NYXRoSmF4LlByb3ZpZGVyPiBhbmQgPE1hdGhKYXguUHJvdmlkZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxNYXRoSmF4Lk5vZGUgaW5saW5lIGZvcm11bGE9e2BrX3tjYXR9YH0gLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L01hdGhKYXguUHJvdmlkZXI+IHRvIHNvbHZlIGZvciA8TWF0aEpheC5Qcm92aWRlcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPE1hdGhKYXguTm9kZSBpbmxpbmUgZm9ybXVsYT17YGtfe2YxfWB9IC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9NYXRoSmF4LlByb3ZpZGVyPiBhbmQgPE1hdGhKYXguUHJvdmlkZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxNYXRoSmF4Lk5vZGUgaW5saW5lIGZvcm11bGE9e2BrX3tyMX1gfSAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvTWF0aEpheC5Qcm92aWRlcj4uIDwvcD5cclxuXHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8cD5JZiB3ZSBhc3N1bWUgdGhhdCB0aGUgPE1hdGhKYXguUHJvdmlkZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8TWF0aEpheC5Ob2RlIGlubGluZSBmb3JtdWxhPXtgRmVhUi1QQWB9IC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvTWF0aEpheC5Qcm92aWRlcj4gY29tcGxleCBpcyB1bmxpa2VseSB0byBkaXNzb2NpYXRlIGJhY2sgaW50byA8TWF0aEpheC5Qcm92aWRlcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPE1hdGhKYXguTm9kZSBpbmxpbmUgZm9ybXVsYT17YEZlYVJgfSAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvTWF0aEpheC5Qcm92aWRlcj4gYW5kIDxNYXRoSmF4LlByb3ZpZGVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8TWF0aEpheC5Ob2RlIGlubGluZSBmb3JtdWxhPXtgUEFgfSAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvTWF0aEpheC5Qcm92aWRlcj4gYWZ0ZXIgZm9ybWF0aW9uLCBpLmUuLCA8TWF0aEpheC5Qcm92aWRlcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPE1hdGhKYXguTm9kZSBpbmxpbmUgZm9ybXVsYT17YGtfe3IxfVxcXFxhcHByb3ggMGB9IC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9NYXRoSmF4LlByb3ZpZGVyPiwgdGhlbiB3ZSBoYXZlPC9wPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8TWF0aEpheC5Qcm92aWRlcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPSdpbmRlbnQgZm9ybXVsYV9jb250ZW50Jz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9J2Zvcm11bGFfbGluZSc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxNYXRoSmF4Lk5vZGUgZm9ybXVsYT17YGtfe2YxfSBcXFxcYXBwcm94IFxcXFxmcmFje2tfe2NhdH19e0tfbX1gfSAvPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9J2Zvcm11bGFfbnVtYmVyJz4yNzwvc3Bhbj5cclxuXHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvTWF0aEpheC5Qcm92aWRlcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHA+QmFzZWQgb24gdGhlIHR3by1zdGVwIHJlYWN0aW9uIHByb2Nlc3MgZGVzY3JpYmVkLCB3ZSBjYW4gZXN0YWJsaXNoIHRoZSBmb2xsb3dpbmcgc3lzdGVtIG9mIE9ERXMuPC9wPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8TWF0aEpheC5Qcm92aWRlcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPSdpbmRlbnQgZm9ybXVsYV9jb250ZW50Jz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9J2Zvcm11bGFfbGluZSc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxNYXRoSmF4Lk5vZGUgZm9ybXVsYT17YFxcXFxmcmFje1xcXFxtYXRocm17ZH1bRmVhUlxcXFxtYXRocm17LX1QQV19e1xcXFxtYXRocm17ZH10fSA9IFxcXFxmcmFje2tfe2NhdFxcXFxfRmVhUn1bRmVhUl1bUEFfe2N5dG99XX17S197TVxcXFxfRmVhUn19IC0ga197Y2F0XFxcXF9GZWFSfVtGZWFSXFxcXG1hdGhybXstfVBBXWB9IC8+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT0nZm9ybXVsYV9udW1iZXInPjI4PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT0naW5kZW50IGZvcm11bGFfY29udGVudCc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPSdmb3JtdWxhX2xpbmUnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8TWF0aEpheC5Ob2RlIGZvcm11bGE9e2BcXFxcZnJhY3tcXFxcbWF0aHJte2R9W0ZlYVJdfXtcXFxcbWF0aHJte2R9dH0gPSAtIFxcXFxmcmFje2tfe2NhdFxcXFxfRmVhUn1bRmVhUl1bUEFfe2N5dG99XX17S197TVxcXFxfRmVhUn19ICsga197Y2F0XFxcXF9GZWFSfVtGZWFSXFxcXG1hdGhybXstfVBBXWB9IC8+IDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9J2Zvcm11bGFfbnVtYmVyJz4yOTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9J2luZGVudCBmb3JtdWxhX2NvbnRlbnQnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT0nZm9ybXVsYV9saW5lJz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPE1hdGhKYXguTm9kZSBmb3JtdWxhPXtgXFxcXGZyYWN7XFxcXG1hdGhybXtkfVtQQV97Y3l0b31dfXtcXFxcbWF0aHJte2R9dH0gPSAtIFxcXFxmcmFje2tfe2NhdFxcXFxfRmVhUn1bRmVhUl1bUEFfe2N5dG99XX17S197TVxcXFxfRmVhUn19YH0gLz4gPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT0nZm9ybXVsYV9udW1iZXInPjMwPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT0naW5kZW50IGZvcm11bGFfY29udGVudCcgaWQ9J2xvbmdfZm9ybXVsYSc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPSdmb3JtdWxhX2xpbmUnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8TWF0aEpheC5Ob2RlIGZvcm11bGE9e2BcXFxcZnJhY3tcXFxcbWF0aHJte2R9W1BBQV97Y3l0b31dfXtcXFxcbWF0aHJte2R9dH0gPSBrX3tjYXRcXFxcX0ZlYVJ9W0ZlYVJcXFxcbWF0aHJtey19UEFdICsgXFxcXGZyYWN7a197ZGlmZlxcXFxfUEFBfX17Vl97Y3l0b319KFtQQUFfe2d1dH1dLVtQQUFfe2N5dG99XSlgfSAvPiA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPSdmb3JtdWxhX251bWJlcic+MzE8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT0naW5kZW50IGZvcm11bGFfY29udGVudCc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPSdmb3JtdWxhX2xpbmUnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8TWF0aEpheC5Ob2RlIGZvcm11bGE9e2BcXFxcZnJhY3tcXFxcbWF0aHJte2R9W1BBQV97Z3V0fV19e1xcXFxtYXRocm17ZH10fSA9IFxcXFxmcmFje2tfe2RpZmZcXFxcX1BBQX19e1Zfe2d1dH19KFtQQUFfe2N5dG99XS1bUEFBX3tndXR9XSlgfSAvPiAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9J2Zvcm11bGFfbnVtYmVyJz4zMjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9NYXRoSmF4LlByb3ZpZGVyPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHA+VGhlIHByb2Nlc3MgYnkgd2hpY2ggdGhlIDxNYXRoSmF4LlByb3ZpZGVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPE1hdGhKYXguTm9kZSBpbmxpbmUgZm9ybXVsYT17YEZlYVItUEFgfSAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L01hdGhKYXguUHJvdmlkZXI+IGNvbXBsZXggYWN0aXZhdGVzIHRoZSBQVHluQSBwcm9tb3RlciB1cHN0cmVhbSBvZiBHUyBvciBUUEgxIGNhbiBiZSBkZXNjcmliZWQgYXMgZm9sbG93czwvcD5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxNYXRoSmF4LlByb3ZpZGVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9J2luZGVudCBmb3JtdWxhX2NvbnRlbnQnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT0nZm9ybXVsYV9saW5lJz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPE1hdGhKYXguTm9kZSBmb3JtdWxhPXtgUF97VHluQVxcXFxfR1N9K0ZlYVItUEFcXFxcb3ZlcnNldHt9e1xcXFx1bmRlcnNldHt9e1xcXFxyaWdodGxlZnRoYXJwb29uc319UF97VHluQVxcXFxfR1NcXFxcX2FjdGl2ZX1gfSAvPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9J2Zvcm11bGFfbnVtYmVyJz4zMzwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9J2luZGVudCBmb3JtdWxhX2NvbnRlbnQnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT0nZm9ybXVsYV9saW5lJz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPE1hdGhKYXguTm9kZSBmb3JtdWxhPXtgUF97VHluQVxcXFxfVFBIMX0rRmVhUi1QQVxcXFxvdmVyc2V0e317XFxcXHVuZGVyc2V0e317XFxcXHJpZ2h0bGVmdGhhcnBvb25zfX1QX3tUeW5BXFxcXF9UUEgxXFxcXF9hY3RpdmV9YH0gLz4gPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT0nZm9ybXVsYV9udW1iZXInPjM0PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvTWF0aEpheC5Qcm92aWRlcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHA+VGhlIGNvcnJlc3BvbmRpbmcgc2V0IG9mIE9ERXMgaXM8L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxNYXRoSmF4LlByb3ZpZGVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9J2luZGVudCBmb3JtdWxhX2NvbnRlbnQnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT0nZm9ybXVsYV9saW5lJz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPE1hdGhKYXguTm9kZSBmb3JtdWxhPXtgXFxcXGZyYWN7XFxcXG1hdGhybXtkfVtQX3tUeW5BXFxcXF9HU1xcXFxfYWN0aXZlfV19e1xcXFxtYXRocm17ZH10fSA9IGtfe2ZcXFxcX1B0eW5BfVtQX3tUeW5BXFxcXF9HU31dW0ZlYVJcXFxcbWF0aHJtey19UEFdIC0ga197clxcXFxfUHR5bkF9W1Bfe1R5bkFcXFxcX0dTXFxcXF9hY3RpdmV9XWB9IC8+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT0nZm9ybXVsYV9udW1iZXInPjM1PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT0naW5kZW50IGZvcm11bGFfY29udGVudCc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPSdmb3JtdWxhX2xpbmUnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8TWF0aEpheC5Ob2RlIGZvcm11bGE9e2BcXFxcZnJhY3tcXFxcbWF0aHJte2R9W1Bfe1R5bkFcXFxcX1RQSDFcXFxcX2FjdGl2ZX1dfXtcXFxcbWF0aHJte2R9dH0gPSBrX3tmXFxcXF9QdHluQX1bUF97VHluQVxcXFxfVFBIMX1dW0ZlYVJcXFxcbWF0aHJtey19UEFdIC0ga197clxcXFxfUHR5bkF9W1Bfe1R5bkFcXFxcX1RQSDFcXFxcX2FjdGl2ZX1dYH0gLz4gIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9J2Zvcm11bGFfbnVtYmVyJz4zNjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9J2luZGVudCBmb3JtdWxhX2NvbnRlbnQnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT0nZm9ybXVsYV9saW5lJz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPE1hdGhKYXguTm9kZSBmb3JtdWxhPXtgXFxcXGZyYWN7XFxcXG1hdGhybXtkfVtQX3tUeW5BXFxcXF9HU31dfXtcXFxcbWF0aHJte2R9dH0gPSAta197ZlxcXFxfUHR5bkF9W1Bfe1R5bkFcXFxcX0dTfV1bRmVhUlxcXFxtYXRocm17LX1QQV0gKyBrX3tyXFxcXF9QdHluQX1bUF97VHluQVxcXFxfR1NcXFxcX2FjdGl2ZX1dYH0gLz48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPSdmb3JtdWxhX251bWJlcic+Mzc8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPSdpbmRlbnQgZm9ybXVsYV9jb250ZW50Jz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9J2Zvcm11bGFfbGluZSc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxNYXRoSmF4Lk5vZGUgZm9ybXVsYT17YFxcXFxmcmFje1xcXFxtYXRocm17ZH1bUF97VHluQVxcXFxfVFBIMX1dfXtcXFxcbWF0aHJte2R9dH0gPSAta197ZlxcXFxfUHR5bkF9W1Bfe1R5bkFcXFxcX1RQSDF9XVtGZWFSXFxcXG1hdGhybXstfVBBXSArIGtfe3JcXFxcX1B0eW5BfVtQX3tUeW5BXFxcXF9UUEgxXFxcXF9hY3RpdmV9XWB9IC8+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT0nZm9ybXVsYV9udW1iZXInPjM4PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9J2luZGVudCBmb3JtdWxhX2NvbnRlbnQnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT0nZm9ybXVsYV9saW5lJz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPE1hdGhKYXguTm9kZSBmb3JtdWxhPXtgXFxcXGZyYWN7XFxcXG1hdGhybXtkfVtGZWFSXFxcXG1hdGhybXstfVBBXX17XFxcXG1hdGhybXtkfXR9ID0gLWtfe2ZcXFxcX1B0eW5BfVtQX3tUeW5BXFxcXF9HU31dW0ZlYVJcXFxcbWF0aHJtey19UEFdIC0ga197ZlxcXFxfUHR5bkF9W1Bfe1R5bkFcXFxcX1RQSDF9XVtGZWFSXFxcXG1hdGhybXstfVBBXSArIGtfe3JcXFxcX1B0eW5BfVtQX3tUeW5BXFxcXF9HU1xcXFxfYWN0aXZlfV0gKyBrX3tyXFxcXF9QdHluQX1bUF97VHluQVxcXFxfVFBIMVxcXFxfYWN0aXZlfV1gfSAvPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9J2Zvcm11bGFfbnVtYmVyJz4zOTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9NYXRoSmF4LlByb3ZpZGVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8cD53aGVyZSA8TWF0aEpheC5Qcm92aWRlcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxNYXRoSmF4Lk5vZGUgaW5saW5lIGZvcm11bGE9e2BrX3tmXFxcXF9QdHluQX1gfSAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L01hdGhKYXguUHJvdmlkZXI+IGlzIHRoZSByYXRlIGNvbnN0YW50IGZvciB0aGUgYmluZGluZyBvZiA8TWF0aEpheC5Qcm92aWRlcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPE1hdGhKYXguTm9kZSBpbmxpbmUgZm9ybXVsYT17YEZlYVItUEFgfSAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvTWF0aEpheC5Qcm92aWRlcj4gdG8gdGhlIFBUeW5BIHByb21vdGVyIGFuZCB0aGUgZm9ybWF0aW9uIG9mIHRoZSBhY3RpdmF0ZWQgcHJvbW90ZXIgc3RhdGUsIHdoaWxlIDxNYXRoSmF4LlByb3ZpZGVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8TWF0aEpheC5Ob2RlIGlubGluZSBmb3JtdWxhPXtga197cl9QdHluQX1gfSAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvTWF0aEpheC5Qcm92aWRlcj4gaXMgdGhlIHJhdGUgY29uc3RhbnQgZm9yIHRoZSBkaXNzb2NpYXRpb24gb2YgdGhlIGFjdGl2YXRlZCBwcm9tb3RlciBhbmQgaXRzIGluYWN0aXZhdGlvbi48L3A+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8cD5UaGUgYWN0aXZhdGVkIHByb21vdGVyIGluaXRpYXRlcyB0aGUgdHJhbnNjcmlwdGlvbiBvZiBkb3duc3RyZWFtIGdlbmVzLCBwcm9kdWNpbmcgdGhlIGNvcnJlc3BvbmRpbmcgbVJOQSwgd2hpbGUgd2UgYWxzbyB0YWtlIGludG8gYWNjb3VudCB0aGUgcHJvY2VzcyBvZiBtUk5BIGRlZ3JhZGF0aW9uLjwvcD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPE1hdGhKYXguUHJvdmlkZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT0naW5kZW50IGZvcm11bGFfY29udGVudCc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPSdmb3JtdWxhX2xpbmUnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8TWF0aEpheC5Ob2RlIGZvcm11bGE9e2BQX3tUeW5BXFxcXF9HU1xcXFxfYWN0aXZlfSAgXFxcXHJpZ2h0YXJyb3cgUF97VHluQVxcXFxfR1NcXFxcX2FjdGl2ZX0gKyBtUk5BX3tHU31gfSAvPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9J2Zvcm11bGFfbnVtYmVyJz40MDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9J2luZGVudCBmb3JtdWxhX2NvbnRlbnQnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT0nZm9ybXVsYV9saW5lJz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPE1hdGhKYXguTm9kZSBmb3JtdWxhPXtgUF97VHluQVxcXFxfVFBIMVxcXFxfYWN0aXZlfSBcXFxccmlnaHRhcnJvdyAgUF97VHluQVxcXFxfVFBIMVxcXFxfYWN0aXZlfSttUk5BX3tUUEgxfWB9IC8+ICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPSdmb3JtdWxhX251bWJlcic+NDE8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPSdpbmRlbnQgZm9ybXVsYV9jb250ZW50Jz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9J2Zvcm11bGFfbGluZSc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxNYXRoSmF4Lk5vZGUgZm9ybXVsYT17YG1STkFfe0dTfVxcXFxyaWdodGFycm93IFxcXFx2YXJub3RoaW5nYH0gLz4gIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9J2Zvcm11bGFfbnVtYmVyJz40Mjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9J2luZGVudCBmb3JtdWxhX2NvbnRlbnQnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT0nZm9ybXVsYV9saW5lJz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPE1hdGhKYXguTm9kZSBmb3JtdWxhPXtgbVJOQV97VFBIMX1cXFxccmlnaHRhcnJvdyBcXFxcdmFybm90aGluZ2B9IC8+IDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9J2Zvcm11bGFfbnVtYmVyJz40Mzwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPSdpbmRlbnQgZm9ybXVsYV9jb250ZW50Jz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9J2Zvcm11bGFfbGluZSc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxNYXRoSmF4Lk5vZGUgZm9ybXVsYT17YFxcXFxmcmFje1xcXFxtYXRocm17ZH1bbVJOQV97R1N9XX17XFxcXG1hdGhybXtkfXR9ID0ga197bVJOQVxcXFxfR1N9W1Bfe1R5bkFcXFxcX0dTXFxcXF9hY3RpdmV9XSAtIGRfe21STkFcXFxcX0dTfVttUk5BX3tHU31dYH0gLz4gPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT0nZm9ybXVsYV9udW1iZXInPjQ0PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9J2luZGVudCBmb3JtdWxhX2NvbnRlbnQnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT0nZm9ybXVsYV9saW5lJz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPE1hdGhKYXguTm9kZSBmb3JtdWxhPXtgXFxcXGZyYWN7XFxcXG1hdGhybXtkfVttUk5BX3tUUEgxfV19e1xcXFxtYXRocm17ZH10fSA9IGtfe21STkFcXFxcX1RQSDF9W1Bfe1R5bkFcXFxcX1RQSDFcXFxcX2FjdGl2ZX1dIC0gZF97bVJOQVxcXFxfVFBIMX1bbVJOQV97VFBIMX1dYH0gLz4gPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT0nZm9ybXVsYV9udW1iZXInPjQ1PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvTWF0aEpheC5Qcm92aWRlcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHA+TmV4dCBpcyB0aGUgcHJvY2VzcyBvZiB0cmFuc2xhdGlvbiBhbmQgZGVncmFkYXRpb24gb2YgdGhlIHRhcmdldCBwcm90ZWluLjwvcD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPE1hdGhKYXguUHJvdmlkZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT0naW5kZW50IGZvcm11bGFfY29udGVudCc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPSdmb3JtdWxhX2xpbmUnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8TWF0aEpheC5Ob2RlIGZvcm11bGE9e2BtUk5BX3tHU31cXFxccmlnaHRhcnJvdyBtUk5BX3tHU30rR1NgfSAvPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9J2Zvcm11bGFfbnVtYmVyJz40Njwvc3Bhbj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPSdpbmRlbnQgZm9ybXVsYV9jb250ZW50Jz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9J2Zvcm11bGFfbGluZSc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxNYXRoSmF4Lk5vZGUgZm9ybXVsYT17YG1STkFfe1RQSDF9XFxcXHJpZ2h0YXJyb3cgbVJOQV97VFBIMX0rVFBIMWB9IC8+IDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9J2Zvcm11bGFfbnVtYmVyJz40ODwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9J2luZGVudCBmb3JtdWxhX2NvbnRlbnQnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT0nZm9ybXVsYV9saW5lJz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPE1hdGhKYXguTm9kZSBmb3JtdWxhPXtgR1NcXFxccmlnaHRhcnJvdyBcXFxcdmFybm90aGluZ2B9IC8+IDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9J2Zvcm11bGFfbnVtYmVyJz40OTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9J2luZGVudCBmb3JtdWxhX2NvbnRlbnQnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT0nZm9ybXVsYV9saW5lJz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPE1hdGhKYXguTm9kZSBmb3JtdWxhPXtgVFBIMVxcXFxyaWdodGFycm93IFxcXFx2YXJub3RoaW5nYH0gLz4gIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9J2Zvcm11bGFfbnVtYmVyJz41MDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPSdpbmRlbnQgZm9ybXVsYV9jb250ZW50Jz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9J2Zvcm11bGFfbGluZSc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxNYXRoSmF4Lk5vZGUgZm9ybXVsYT17YFxcXFxmcmFje1xcXFxtYXRocm17ZH1bR1NdfXtcXFxcbWF0aHJte2R9dH0gPSBwX3tHU31bbVJOQV97R1N9XSAtIGRfe0dTfVtHU11gfSAvPiA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPSdmb3JtdWxhX251bWJlcic+NTE8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT0naW5kZW50IGZvcm11bGFfY29udGVudCc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPSdmb3JtdWxhX2xpbmUnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8TWF0aEpheC5Ob2RlIGZvcm11bGE9e2BcXFxcZnJhY3tcXFxcbWF0aHJte2R9W1RQSDFdfXtcXFxcbWF0aHJte2R9dH0gPSBwX3tUUEgxfVttUk5BX3tUUEgxfV0gLSBkX3tUUEgxfVtUUEgxXWB9IC8+IDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9J2Zvcm11bGFfbnVtYmVyJz41Mjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L01hdGhKYXguUHJvdmlkZXI+XHJcblxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGgzPjEuMyBNZXRhYm9saXNtIG9mIEFtbW9uaWEgYW5kIFRyeXB0b3BoYW48L2gzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8cD5VbmRlciB0aGUgY2F0YWx5c2lzIG9mIEdTLCBnbHV0YW1hdGUgYWNjZXB0cyBhbW1vbmlhIGFuZCBpcyBjb252ZXJ0ZWQgaW50byBnbHV0YW1pbmUuIEdsdXRhbWF0ZSBpbiB0aGUgZ3V0IGRpZmZ1c2VzIGludG8gdGhlIGN5dG9wbGFzbSwgd2hlcmUgaXQgaXMgY29udmVydGVkIGludG8gZ2x1dGFtaW5lLiBUaGUgZ2x1dGFtaW5lIHRoZW4gZGlmZnVzZXMgYmFjayBpbnRvIHRoZSBndXQsIGFjdGluZyBhcyBhIGNhcnJpZXIgbW9sZWN1bGUuPC9wPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8TWF0aEpheC5Qcm92aWRlcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPSdpbmRlbnQgZm9ybXVsYV9jb250ZW50Jz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9J2Zvcm11bGFfbGluZSc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxNYXRoSmF4Lk5vZGUgZm9ybXVsYT17YEdsdV97Z3V0fVxcXFxvdmVyc2V0e317XFxcXHVuZGVyc2V0e317XFxcXHJpZ2h0bGVmdGhhcnBvb25zfX1HbHVfe2N5dG99YH0gLz48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPSdmb3JtdWxhX251bWJlcic+NTM8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPSdpbmRlbnQgZm9ybXVsYV9jb250ZW50Jz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9J2Zvcm11bGFfbGluZSc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxNYXRoSmF4Lk5vZGUgZm9ybXVsYT17YE5IX3szX3tQZXJpfX1cXFxcb3ZlcnNldHt9e1xcXFx1bmRlcnNldHt9e1xcXFxyaWdodGxlZnRoYXJwb29uc319TkhfezNfe2N5dG99fWB9IC8+ICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT0nZm9ybXVsYV9udW1iZXInPjU0PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT0naW5kZW50IGZvcm11bGFfY29udGVudCc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPSdmb3JtdWxhX2xpbmUnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8TWF0aEpheC5Ob2RlIGZvcm11bGE9e2BHbHVfe2N5dG99KyBOSF97M1xcXFxfY3l0b31cXFxceHJpZ2h0YXJyb3dbXSBHbG5fe2N5dG99YH0gLz4gPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT0nZm9ybXVsYV9udW1iZXInPjU1PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT0naW5kZW50IGZvcm11bGFfY29udGVudCc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPSdmb3JtdWxhX2xpbmUnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8TWF0aEpheC5Ob2RlIGZvcm11bGE9e2BHbG5fe2N5dG99XFxcXG92ZXJzZXR7fXtcXFxcdW5kZXJzZXR7fXtcXFxccmlnaHRsZWZ0aGFycG9vbnN9fSBHbG5fe2d1dH1gfSAvPiAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT0nZm9ybXVsYV9udW1iZXInPjU2PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L01hdGhKYXguUHJvdmlkZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxwPkZvciBhbiBlbnp5bWUtY2F0YWx5emVkIHJlYWN0aW9uIGludm9sdmluZyB0d28gc3Vic3RyYXRlcyB0aGF0IGZvcm0gYSBzaW5nbGUgcHJvZHVjdCwgdGhlIE1pY2hhZWxpcy1NZW50ZW4gZXF1YXRpb24gY2FuIGJlIGV4dGVuZGVkIHRvIGFjY291bnQgZm9yIHRoZSBpbnZvbHZlbWVudCBvZiBib3RoIHN1YnN0cmF0ZXMuIFRoZSBnZW5lcmFsIHJlYWN0aW9uIGNhbiBiZSB3cml0dGVuIGFzPC9wPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8TWF0aEpheC5Qcm92aWRlcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPSdpbmRlbnQgZm9ybXVsYV9jb250ZW50Jz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9J2Zvcm11bGFfbGluZSc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxNYXRoSmF4Lk5vZGUgZm9ybXVsYT17YEUrQStCXFxcXG92ZXJzZXR7a197ZjF9fXtcXFxcdW5kZXJzZXR7a197cjF9fXtcXFxccmlnaHRsZWZ0aGFycG9vbnN9fUVBQiBcXFxceHJpZ2h0YXJyb3d7a197Y2F0fX1FK1BdYH0gLz48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPSdmb3JtdWxhX251bWJlcic+NTc8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9NYXRoSmF4LlByb3ZpZGVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8cD5UaGUgTWljaGFlbGlzLU1lbnRlbiBlcXVhdGlvbiBpczwvcD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPE1hdGhKYXguUHJvdmlkZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT0naW5kZW50IGZvcm11bGFfY29udGVudCc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPSdmb3JtdWxhX2xpbmUnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8TWF0aEpheC5Ob2RlIGZvcm11bGE9e2B2XzAgPSBcXFxcZnJhY3tWX3ttYXh9IFtBXSBbQl19e0tfe01cXFxcX0F9W0JdICsgS197TVxcXFxfQn1bQV0gKyBbQV1bQl19YH0gLz48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPSdmb3JtdWxhX251bWJlcic+NTg8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9NYXRoSmF4LlByb3ZpZGVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8cD53aGVyZSA8TWF0aEpheC5Qcm92aWRlcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxNYXRoSmF4Lk5vZGUgaW5saW5lIGZvcm11bGE9e2BWX3ttYXh9YH0gLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9NYXRoSmF4LlByb3ZpZGVyPiBpcyB0aGUgbWF4aW11bSByZWFjdGlvbiB2ZWxvY2l0eSwgZ2l2ZW4gYnkgPE1hdGhKYXguUHJvdmlkZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxNYXRoSmF4Lk5vZGUgaW5saW5lIGZvcm11bGE9e2BWX3ttYXh9PWtfe2NhdH1bRV97dG90YWx9XWB9IC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9NYXRoSmF4LlByb3ZpZGVyPiwgd2hpbGUgPE1hdGhKYXguUHJvdmlkZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxNYXRoSmF4Lk5vZGUgaW5saW5lIGZvcm11bGE9e2BLX3tNXFxcXF9BfWB9IC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9NYXRoSmF4LlByb3ZpZGVyPiBhbmQ8TWF0aEpheC5Qcm92aWRlcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPE1hdGhKYXguTm9kZSBpbmxpbmUgZm9ybXVsYT17YEtfe01cXFxcX0J9YH0gLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L01hdGhKYXguUHJvdmlkZXI+IGFyZSB0aGUgTWljaGFlbGlzIGNvbnN0YW50IGZvciBzdWJzdHJhdGU8TWF0aEpheC5Qcm92aWRlcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPE1hdGhKYXguTm9kZSBpbmxpbmUgZm9ybXVsYT17YEFgfSAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvTWF0aEpheC5Qcm92aWRlcj4gYW5kIDxNYXRoSmF4LlByb3ZpZGVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8TWF0aEpheC5Ob2RlIGlubGluZSBmb3JtdWxhPXtgQmB9IC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9NYXRoSmF4LlByb3ZpZGVyPiByZXNwZWN0aXZlbHkuIDwvcD5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxwPnRoZSBjb3JyZXNwb25kaW5nIHNldCBvZiBPREVzIGlzPC9wPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8TWF0aEpheC5Qcm92aWRlcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPSdpbmRlbnQgZm9ybXVsYV9jb250ZW50Jz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9J2Zvcm11bGFfbGluZSc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxNYXRoSmF4Lk5vZGUgZm9ybXVsYT17YFxcXFxmcmFje1xcXFxtYXRocm17ZH1bR2x1X3tndXR9XX17XFxcXG1hdGhybXtkfXR9ID0gXFxcXGZyYWN7a197ZGlmZlxcXFxfR2x1fX17Vl97Z3V0fX0oW0dsdV97Y3l0b31dLVtHbHVfe2d1dH1dKWB9IC8+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT0nZm9ybXVsYV9udW1iZXInPjU5PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT0naW5kZW50IGZvcm11bGFfY29udGVudCc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPSdmb3JtdWxhX2xpbmUnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8TWF0aEpheC5Ob2RlIGZvcm11bGE9e2BcXFxcZnJhY3tcXFxcbWF0aHJte2R9W0dsdV97Y3l0b31dfXtcXFxcbWF0aHJte2R9dH0gPSBcXFxcZnJhY3trX3tkaWZmXFxcXF9HbHV9fXtWX3tjeXRvfX0oW0dsdV97Z3V0fV0tW0dsdV97Y3l0b31dKSAtIFxcXFxmcmFje2tfe2NhdFxcXFxfR1N9W0dTXVtHbHVfe2N5dG99XVtOSF97M1xcXFxfY3l0b31dfXsoS197TVxcXFxfR1NcXFxcX0dsdX0rW0dsdV97Y3l0b31dKShLX3tNXFxcXF9HU1xcXFxfTkgzfStbTkhfezNcXFxcX2N5dG99XSl9YH0gLz48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPSdmb3JtdWxhX251bWJlcic+NjA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPSdpbmRlbnQgZm9ybXVsYV9jb250ZW50Jz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9J2Zvcm11bGFfbGluZSc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxNYXRoSmF4Lk5vZGUgZm9ybXVsYT17YFxcXFxmcmFje1xcXFxtYXRocm17ZH1bTkhfezNcXFxcX2N5dG99XX17XFxcXG1hdGhybXtkfXR9ID0gXFxcXGZyYWN7a197ZGlmZlxcXFxfTkgzfX17Vl97Y3l0b319KFtOSF97M1xcXFxfcGVyaX1dLVtOSF97M1xcXFxfY3l0b31dKSAtIFxcXFxmcmFje2tfe2NhdFxcXFxfR1N9W0dTXVtHbHVfe2N5dG99XVtOSF97M1xcXFxfY3l0b31dfXsoS197TVxcXFxfR1NcXFxcX0dsdX0rW0dsdV97Y3l0b31dKShLX3tNXFxcXF9HU1xcXFxfTkgzfStbTkhfezNcXFxcX2N5dG99XSl9YH0gLz4gPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT0nZm9ybXVsYV9udW1iZXInPjYxPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT0naW5kZW50IGZvcm11bGFfY29udGVudCc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPSdmb3JtdWxhX2xpbmUnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8TWF0aEpheC5Ob2RlIGZvcm11bGE9e2BcXFxcZnJhY3tcXFxcbWF0aHJte2R9W0dsbl97Y3l0b31dfXtcXFxcbWF0aHJte2R9dH0gPSBcXFxcZnJhY3trX3tjYXRcXFxcX0dTfVtHU11bR2x1X3tjeXRvfV1bTkhfezNcXFxcX2N5dG99XX17KEtfe01cXFxcX0dTXFxcXF9HbHV9K1tHbHVfe2N5dG99XSkoS197TVxcXFxfR1NcXFxcX05IM30rW05IX3szXFxcXF9jeXRvfV0pfSArIFxcXFxmcmFje2tfe2RpZmZcXFxcX0dsbn19e1Zfe2N5dG99fShbR2xuX3tndXR9XS1bR2xuX3tjeXRvfV0pYH0gLz48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPSdmb3JtdWxhX251bWJlcic+NjI8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPSdpbmRlbnQgZm9ybXVsYV9jb250ZW50Jz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9J2Zvcm11bGFfbGluZSc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxNYXRoSmF4Lk5vZGUgZm9ybXVsYT17YFxcXFxmcmFje1xcXFxtYXRocm17ZH1bR2xuX3tndXR9XX17XFxcXG1hdGhybXtkfXR9ID0gXFxcXGZyYWN7a197ZGlmZlxcXFxfR2xufX17Vl97Z3V0fX0oW0dsbl97Y3l0b31dLVtHbG5fe2d1dH1dKWB9IC8+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT0nZm9ybXVsYV9udW1iZXInPjYzPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L01hdGhKYXguUHJvdmlkZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxwPlRQSDEgY29udmVydHMgdHJ5cHRvcGhhbiB0aGF0IGVudGVycyB0aGUgY3l0b3BsYXNtIGludG8gNS1oeWRyb3h5dHJ5cHRvcGhhbiwgd2hpY2ggaXMgdGhlbiB0cmFuc3BvcnRlZCBmcm9tIHRoZSBjeXRvcGxhc20gaW50byB0aGUgZ3V0LiBUaGUgY29ycmVzcG9uZGluZyByZWFjdGlvbiBlcXVhdGlvbnMgYW5kIE9ERXMgYXJlIGFzIGZvbGxvd3M8L3A+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8TWF0aEpheC5Qcm92aWRlcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPSdpbmRlbnQgZm9ybXVsYV9jb250ZW50Jz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9J2Zvcm11bGFfbGluZSc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxNYXRoSmF4Lk5vZGUgZm9ybXVsYT17YFRycF97Z3V0fVxcXFxvdmVyc2V0e317XFxcXHVuZGVyc2V0e317XFxcXHJpZ2h0bGVmdGhhcnBvb25zfX1UcnBfe2N5dG99YH0gLz48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPSdmb3JtdWxhX251bWJlcic+NjQ8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPSdpbmRlbnQgZm9ybXVsYV9jb250ZW50Jz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9J2Zvcm11bGFfbGluZSc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxNYXRoSmF4Lk5vZGUgZm9ybXVsYT17YFRycF97Y3l0b31cXFxceHJpZ2h0YXJyb3d7VFBIMX01LUhUUF97Y3l0b31gfSAvPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9J2Zvcm11bGFfbnVtYmVyJz42NTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9J2luZGVudCBmb3JtdWxhX2NvbnRlbnQnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT0nZm9ybXVsYV9saW5lJz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPE1hdGhKYXguTm9kZSBmb3JtdWxhPXtgNS1IVFBfe2N5dG99XFxcXG92ZXJzZXR7fXtcXFxcdW5kZXJzZXR7fXtcXFxccmlnaHRsZWZ0aGFycG9vbnN9fTUtSFRQX3tndXR9YH0gLz48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPSdmb3JtdWxhX251bWJlcic+NjY8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPSdpbmRlbnQgZm9ybXVsYV9jb250ZW50Jz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9J2Zvcm11bGFfbGluZSc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxNYXRoSmF4Lk5vZGUgZm9ybXVsYT17YFxcXFxmcmFje1xcXFxtYXRocm17ZH1bVHJwX3tndXR9XX17XFxcXG1hdGhybXtkfXR9ID0gXFxcXGZyYWN7a197ZGlmZlxcXFxfVHJwfX17Vl97Z3V0fX0oW1RycF97Y3l0b31dLVtUcnBfe2d1dH1dKWB9IC8+IDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9J2Zvcm11bGFfbnVtYmVyJz42Nzwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9J2luZGVudCBmb3JtdWxhX2NvbnRlbnQnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT0nZm9ybXVsYV9saW5lJz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPE1hdGhKYXguTm9kZSBmb3JtdWxhPXtgXFxcXGZyYWN7XFxcXG1hdGhybXtkfVtUcnBfe2N5dG99XX17XFxcXG1hdGhybXtkfXR9ID0gXFxcXGZyYWN7a197ZGlmZlxcXFxfVHJwfX17Vl97Y3l0b319KFtUcnBfe2d1dH1dLVtUcnBfe2N5dG99XSkgLSBcXFxcZnJhY3trX3tjYXRcXFxcX1RQSDF9W1RQSDFdW1RycF97Y3l0b31dfXtLX3tNXFxcXF9UUEgxfStbVHJwX3tjeXRvfV19YH0gLz48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPSdmb3JtdWxhX251bWJlcic+Njg8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPSdpbmRlbnQgZm9ybXVsYV9jb250ZW50Jz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9J2Zvcm11bGFfbGluZSc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxNYXRoSmF4Lk5vZGUgZm9ybXVsYT17YFxcXFxmcmFje1xcXFxtYXRocm17ZH1bNVxcXFxtYXRocm17LX1IVFBfe2N5dG99XX17XFxcXG1hdGhybXtkfXR9ID0gXFxcXGZyYWN7a197Y2F0XFxcXF9UUEgxfVtUUEgxXVtUcnBfe2N5dG99XX17S197TVxcXFxfVFBIMX0rW1RycF97Y3l0b31dfSAtIFxcXFxmcmFje2tfe2RpZmZcXFxcXzUtSFRQfX17Vl97Y3l0b319KFs1XFxcXG1hdGhybXstfUhUUF97Z3V0fV0tWzVcXFxcbWF0aHJtey19SFRQX3tjeXRvfV0pYH0gLz48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPSdmb3JtdWxhX251bWJlcic+Njk8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPSdpbmRlbnQgZm9ybXVsYV9jb250ZW50Jz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9J2Zvcm11bGFfbGluZSc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxNYXRoSmF4Lk5vZGUgZm9ybXVsYT17YFxcXFxmcmFje1xcXFxtYXRocm17ZH1bNVxcXFxtYXRocm17LX1IVFBfe2d1dH1dfXtcXFxcbWF0aHJte2R9dH0gPSBcXFxcZnJhY3trX3tkaWZmXFxcXF81LUhUUH19e1Zfe2d1dH19KFs1XFxcXG1hdGhybXstfUhUUF97Y3l0b31dLVs1XFxcXG1hdGhybXstfUhUUF97Z3V0fV0pYH0gLz48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPSdmb3JtdWxhX251bWJlcic+NzA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvTWF0aEpheC5Qcm92aWRlcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGgzPjEuNCBGdWxsIE9ERSBNb2RlbDwvaDM+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8TWF0aEpheC5Qcm92aWRlcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPSdpbmRlbnQgZm9ybXVsYV9jb250ZW50Jz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9J2Zvcm11bGFfbGluZSc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxNYXRoSmF4Lk5vZGUgZm9ybXVsYT17YFxcXFxmcmFje1xcXFxtYXRocm17ZH1bUEVBX3tndXR9XX17XFxcXG1hdGhybXtkfXR9ID0gXFxcXGZyYWN7a197ZGlmZlxcXFxfUEVBfX17Vl97Z3V0fX0oW1BFQV97cGVyaX1dLVtQRUFfe2d1dH1dKWB9IC8+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT0nZm9ybXVsYV9udW1iZXInPjcxPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT0naW5kZW50IGZvcm11bGFfY29udGVudCc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPSdmb3JtdWxhX2xpbmUnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8TWF0aEpheC5Ob2RlIGZvcm11bGE9e2BcXFxcZnJhY3tcXFxcbWF0aHJte2R9W1BFQV97cGVyaX1dfXtcXFxcbWF0aHJte2R9dH0gPSBcXFxcZnJhY3trX3tkaWZmXFxcXF9QRUF9fXtWX3twZXJpfX0oW1BFQV97Z3V0fV0tW1BFQV97cGVyaX1dKSAtXFxcXGZyYWN7a197Y2F0XFxcXF9UeW5BfVtUeW5BXVtQRUFfe3Blcml9XX17S197TVxcXFxfVHluQX0rW1BFQV97cGVyaX1dfWB9IC8+IDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9J2Zvcm11bGFfbnVtYmVyJz43Mjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9J2luZGVudCBmb3JtdWxhX2NvbnRlbnQnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT0nZm9ybXVsYV9saW5lJz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPE1hdGhKYXguTm9kZSBmb3JtdWxhPXtgXFxcXGZyYWN7XFxcXG1hdGhybXtkfVtQQV97cGVyaX1dfXtcXFxcbWF0aHJte2R9dH0gPSBcXFxcZnJhY3trX3tjYXRcXFxcX1R5bkF9W1R5bkFdW1BFQV97cGVyaX1dfXtLX3tNXFxcXF9UeW5BfStbUEVBX3twZXJpfV19ICsgXFxcXGZyYWN7a197ZGlmZlxcXFxfUEF9fXtWX3twZXJpfX0oW1BBX3tjeXRvfV0tW1BBX3twZXJpfV0pYH0gLz4gPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT0nZm9ybXVsYV9udW1iZXInPjczPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT0naW5kZW50IGZvcm11bGFfY29udGVudCc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPSdmb3JtdWxhX2xpbmUnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8TWF0aEpheC5Ob2RlIGZvcm11bGE9e2BcXFxcZnJhY3tcXFxcbWF0aHJte2R9W05IX3szXFxcXF9wZXJpfV19e1xcXFxtYXRocm17ZH10fSA9IFxcXFxmcmFje2tfe2NhdFxcXFxfVHluQX1bVHluQV1bUEVBX3twZXJpfV19e0tfe01cXFxcX1R5bkF9K1tQRUFfe3Blcml9XX0gKyBcXFxcZnJhY3trX3tkaWZmXFxcXF9OSDN9fXtWX3twZXJpfX0oW05IX3szXFxcXF9jeXRvfV0tW05IX3szXFxcXF9wZXJpfV0pYH0gLz4gIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9J2Zvcm11bGFfbnVtYmVyJz43NDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9J2luZGVudCBmb3JtdWxhX2NvbnRlbnQnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT0nZm9ybXVsYV9saW5lJz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPE1hdGhKYXguTm9kZSBmb3JtdWxhPXtgXFxcXGZyYWN7XFxcXG1hdGhybXtkfVtQQV97Y3l0b31dfXtcXFxcbWF0aHJte2R9dH0gPSBcXFxcZnJhY3trX3tkaWZmXFxcXF9QQX19e1Zfe2N5dG99fShbUEFfe3Blcml9XS1bUEFfe2N5dG99XSkgLSBcXFxcZnJhY3trX3tjYXRcXFxcX0ZlYVJ9W0ZlYVJdW1BBX3tjeXRvfV19e0tfe01cXFxcX0ZlYVJ9fWB9IC8+IDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9J2Zvcm11bGFfbnVtYmVyJz43NTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9J2luZGVudCBmb3JtdWxhX2NvbnRlbnQnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT0nZm9ybXVsYV9saW5lJz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPE1hdGhKYXguTm9kZSBmb3JtdWxhPXtgXFxcXGZyYWN7XFxcXG1hdGhybXtkfVtOSF97M1xcXFxfY3l0b31dfXtcXFxcbWF0aHJte2R9dH0gPSBcXFxcZnJhY3trX3tkaWZmXFxcXF9OSDN9fXtWX3tjeXRvfX0oW05IX3szXFxcXF9wZXJpfV0tW05IX3szXFxcXF9jeXRvfV0pIC0gXFxcXGZyYWN7a197Y2F0XFxcXF9HU31bR1NdW0dsdV97Y3l0b31dW05IX3szXFxcXF9jeXRvfV19eyhLX3tNXFxcXF9HU1xcXFxfR2x1fStbR2x1X3tjeXRvfV0pKEtfe01cXFxcX0dTXFxcXF9OSDN9K1tOSF97M1xcXFxfY3l0b31dKX1gfSAvPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9J2Zvcm11bGFfbnVtYmVyJz43Njwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9J2luZGVudCBmb3JtdWxhX2NvbnRlbnQnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT0nZm9ybXVsYV9saW5lJz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPE1hdGhKYXguTm9kZSBmb3JtdWxhPXtgXFxcXGZyYWN7XFxcXG1hdGhybXtkfVtQQUFfe2N5dG99XX17XFxcXG1hdGhybXtkfXR9ID0ga197Y2F0XFxcXF9GZWFSfVtGZWFSXFxcXG1hdGhybXstfVBBXSArIFxcXFxmcmFje2tfe2RpZmZcXFxcX1BBQX19e1Zfe2N5dG99fShbUEFBX3tndXR9XS1bUEFBX3tjeXRvfV0pYH0gLz4gPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT0nZm9ybXVsYV9udW1iZXInPjc3PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT0naW5kZW50IGZvcm11bGFfY29udGVudCc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPSdmb3JtdWxhX2xpbmUnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8TWF0aEpheC5Ob2RlIGZvcm11bGE9e2BcXFxcZnJhY3tcXFxcbWF0aHJte2R9W1BBQV97Z3V0fV19e1xcXFxtYXRocm17ZH10fSA9IFxcXFxmcmFje2tfe2RpZmZcXFxcX1BBQX19e1Zfe2d1dH19KFtQQUFfe2N5dG99XS1bUEFBX3tndXR9XSlgfSAvPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9J2Zvcm11bGFfbnVtYmVyJz43ODwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9J2luZGVudCBmb3JtdWxhX2NvbnRlbnQnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT0nZm9ybXVsYV9saW5lJz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPE1hdGhKYXguTm9kZSBmb3JtdWxhPXtgXFxcXGZyYWN7XFxcXG1hdGhybXtkfVtQX3tUeW5BXFxcXF9HU1xcXFxfYWN0aXZlfV19e1xcXFxtYXRocm17ZH10fSA9IGtfe2ZcXFxcX1B0eW5BfVtQX3tUeW5BXFxcXF9HU31dW0ZlYVJcXFxcbWF0aHJtey19UEFdIC0ga197clxcXFxfUHR5bkF9W1Bfe1R5bkFcXFxcX0dTXFxcXF9hY3RpdmV9XWB9IC8+IDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9J2Zvcm11bGFfbnVtYmVyJz43OTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9J2luZGVudCBmb3JtdWxhX2NvbnRlbnQnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT0nZm9ybXVsYV9saW5lJz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPE1hdGhKYXguTm9kZSBmb3JtdWxhPXtgXFxcXGZyYWN7XFxcXG1hdGhybXtkfVtQX3tUeW5BXFxcXF9UUEgxXFxcXF9hY3RpdmV9XX17XFxcXG1hdGhybXtkfXR9ID0ga197ZlxcXFxfUHR5bkF9W1Bfe1R5bkFcXFxcX1RQSDF9XVtGZWFSXFxcXG1hdGhybXstfVBBXSAtIGtfe3JcXFxcX1B0eW5BfVtQX3tUeW5BXFxcXF9UUEgxXFxcXF9hY3RpdmV9XWB9IC8+ICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT0nZm9ybXVsYV9udW1iZXInPjgwPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT0naW5kZW50IGZvcm11bGFfY29udGVudCc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPSdmb3JtdWxhX2xpbmUnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8TWF0aEpheC5Ob2RlIGZvcm11bGE9e2BcXFxcZnJhY3tcXFxcbWF0aHJte2R9W1Bfe1R5bkFcXFxcX0dTfV19e1xcXFxtYXRocm17ZH10fSA9IC1rX3tmXFxcXF9QdHluQX1bUF97VHluQVxcXFxfR1N9XVtGZWFSXFxcXG1hdGhybXstfVBBXSArIGtfe3JcXFxcX1B0eW5BfVtQX3tUeW5BXFxcXF9HU1xcXFxfYWN0aXZlfV1gfSAvPiAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT0nZm9ybXVsYV9udW1iZXInPjgxPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT0naW5kZW50IGZvcm11bGFfY29udGVudCc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPSdmb3JtdWxhX2xpbmUnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8TWF0aEpheC5Ob2RlIGZvcm11bGE9e2BcXFxcZnJhY3tcXFxcbWF0aHJte2R9W1Bfe1R5bkFcXFxcX1RQSDF9XX17XFxcXG1hdGhybXtkfXR9ID0gLWtfe2ZcXFxcX1B0eW5BfVtQX3tUeW5BXFxcXF9UUEgxfV1bRmVhUlxcXFxtYXRocm17LX1QQV0gKyBrX3tyXFxcXF9QdHluQX1bUF97VHluQVxcXFxfVFBIMVxcXFxfYWN0aXZlfV1gfSAvPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9J2Zvcm11bGFfbnVtYmVyJz44Mjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9J2luZGVudCBmb3JtdWxhX2NvbnRlbnQnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT0nZm9ybXVsYV9saW5lJz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPE1hdGhKYXguTm9kZSBmb3JtdWxhPXtgXFxcXGZyYWN7XFxcXG1hdGhybXtkfVtGZWFSXX17XFxcXG1hdGhybXtkfXR9ID0gLSBcXFxcZnJhY3trX3tjYXRcXFxcX0ZlYVJ9W0ZlYVJdW1BBX3tjeXRvfV19e0tfe01cXFxcX0ZlYVJ9fSArIGtfe2NhdFxcXFxfRmVhUn1bRmVhUlxcXFxtYXRocm17LX1QQV1gfSAvPiAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT0nZm9ybXVsYV9udW1iZXInPjgzPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT0naW5kZW50IGZvcm11bGFfY29udGVudCc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPSdmb3JtdWxhX2xpbmUnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8TWF0aEpheC5Ob2RlIGZvcm11bGE9e2BcXFxcZnJhY3tcXFxcbWF0aHJte2R9W0ZlYVJcXFxcbWF0aHJtey19UEFdfXtcXFxcbWF0aHJte2R9dH0gPSBcXFxcZnJhY3trX3tjYXRcXFxcX0ZlYVJ9W0ZlYVJdW1BBX3tjeXRvfV19e0tfe01cXFxcX0ZlYVJ9fSAtIGtfe2NhdFxcXFxfRmVhUn1bRmVhUlxcXFxtYXRocm17LX1QQV0gLWtfe2ZcXFxcX1B0eW5BfVtQX3tUeW5BXFxcXF9HU31dW0ZlYVJcXFxcbWF0aHJtey19UEFdIC0ga197ZlxcXFxfUHR5bkF9W1Bfe1R5bkFcXFxcX1RQSDF9XVtGZWFSXFxcXG1hdGhybXstfVBBXSArIGtfe3JcXFxcX1B0eW5BfVtQX3tUeW5BXFxcXF9HU1xcXFxfYWN0aXZlfV0gKyBrX3tyXFxcXF9QdHluQX1bUF97VHluQVxcXFxfVFBIMVxcXFxfYWN0aXZlfV1gfSAvPiAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT0nZm9ybXVsYV9udW1iZXInPjg0PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT0naW5kZW50IGZvcm11bGFfY29udGVudCc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPSdmb3JtdWxhX2xpbmUnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8TWF0aEpheC5Ob2RlIGZvcm11bGE9e2BcXFxcZnJhY3tcXFxcbWF0aHJte2R9W21STkFfe0dTfV19e1xcXFxtYXRocm17ZH10fSA9IGtfe21STkFcXFxcX0dTfVtQX3tUeW5BXFxcXF9HU1xcXFxfYWN0aXZlfV0gLSBkX3ttUk5BXFxcXF9HU31bbVJOQV97R1N9XWB9IC8+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT0nZm9ybXVsYV9udW1iZXInPjg1PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT0naW5kZW50IGZvcm11bGFfY29udGVudCc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPSdmb3JtdWxhX2xpbmUnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8TWF0aEpheC5Ob2RlIGZvcm11bGE9e2BcXFxcZnJhY3tcXFxcbWF0aHJte2R9W21STkFfe1RQSDF9XX17XFxcXG1hdGhybXtkfXR9ID0ga197bVJOQVxcXFxfVFBIMX1bUF97VHluQVxcXFxfVFBIMVxcXFxfYWN0aXZlfV0gLSBkX3ttUk5BXFxcXF9UUEgxfVttUk5BX3tUUEgxfV1gfSAvPiAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT0nZm9ybXVsYV9udW1iZXInPjg2PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT0naW5kZW50IGZvcm11bGFfY29udGVudCc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPSdmb3JtdWxhX2xpbmUnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8TWF0aEpheC5Ob2RlIGZvcm11bGE9e2BcXFxcZnJhY3tcXFxcbWF0aHJte2R9W0dTXX17XFxcXG1hdGhybXtkfXR9ID0gcF97R1N9W21STkFfe0dTfV0gLSBkX3tHU31bR1NdYH0gLz4gIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9J2Zvcm11bGFfbnVtYmVyJz44Nzwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9J2luZGVudCBmb3JtdWxhX2NvbnRlbnQnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT0nZm9ybXVsYV9saW5lJz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPE1hdGhKYXguTm9kZSBmb3JtdWxhPXtgXFxcXGZyYWN7XFxcXG1hdGhybXtkfVtUUEgxXX17XFxcXG1hdGhybXtkfXR9ID0gcF97VFBIMX1bbVJOQV97VFBIMX1dIC0gZF97VFBIMX1bVFBIMV1gfSAvPiA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPSdmb3JtdWxhX251bWJlcic+ODg8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPSdpbmRlbnQgZm9ybXVsYV9jb250ZW50Jz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9J2Zvcm11bGFfbGluZSc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxNYXRoSmF4Lk5vZGUgZm9ybXVsYT17YFxcXFxmcmFje1xcXFxtYXRocm17ZH1bR2x1X3tndXR9XX17XFxcXG1hdGhybXtkfXR9ID0gXFxcXGZyYWN7a197ZGlmZlxcXFxfR2x1fX17Vl97Z3V0fX0oW0dsdV97Y3l0b31dLVtHbHVfe2d1dH1dKWB9IC8+IDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9J2Zvcm11bGFfbnVtYmVyJz44OTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9J2luZGVudCBmb3JtdWxhX2NvbnRlbnQnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT0nZm9ybXVsYV9saW5lJz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPE1hdGhKYXguTm9kZSBmb3JtdWxhPXtgXFxcXGZyYWN7XFxcXG1hdGhybXtkfVtHbHVfe2N5dG99XX17XFxcXG1hdGhybXtkfXR9ID0gXFxcXGZyYWN7a197ZGlmZlxcXFxfR2x1fX17Vl97Y3l0b319KFtHbHVfe2d1dH1dLVtHbHVfe2N5dG99XSkgLSBcXFxcZnJhY3trX3tjYXRcXFxcX0dTfVtHU11bR2x1X3tjeXRvfV1bTkhfezNcXFxcX2N5dG99XX17KEtfe01cXFxcX0dTXFxcXF9HbHV9K1tHbHVfe2N5dG99XSkoS197TVxcXFxfR1NcXFxcX05IM30rW05IX3szXFxcXF9jeXRvfV0pfWB9IC8+IDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9J2Zvcm11bGFfbnVtYmVyJz45MDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9J2luZGVudCBmb3JtdWxhX2NvbnRlbnQnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT0nZm9ybXVsYV9saW5lJz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPE1hdGhKYXguTm9kZSBmb3JtdWxhPXtgXFxcXGZyYWN7XFxcXG1hdGhybXtkfVtHbG5fe2N5dG99XX17XFxcXG1hdGhybXtkfXR9ID0gXFxcXGZyYWN7a197Y2F0XFxcXF9HU31bR1NdW0dsdV97Y3l0b31dW05IX3szXFxcXF9jeXRvfV19eyhLX3tNXFxcXF9HU1xcXFxfR2x1fStbR2x1X3tjeXRvfV0pKEtfe01cXFxcX0dTXFxcXF9OSDN9K1tOSF97M1xcXFxfY3l0b31dKX0gKyBcXFxcZnJhY3trX3tkaWZmXFxcXF9HbG59fXtWX3tjeXRvfX0oW0dsbl97Z3V0fV0tW0dsbl97Y3l0b31dKWB9IC8+IDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9J2Zvcm11bGFfbnVtYmVyJz45MTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9J2luZGVudCBmb3JtdWxhX2NvbnRlbnQnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT0nZm9ybXVsYV9saW5lJz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPE1hdGhKYXguTm9kZSBmb3JtdWxhPXtgXFxcXGZyYWN7XFxcXG1hdGhybXtkfVtHbG5fe2d1dH1dfXtcXFxcbWF0aHJte2R9dH0gPSBcXFxcZnJhY3trX3tkaWZmXFxcXF9HbG59fXtWX3tndXR9fShbR2xuX3tjeXRvfV0tW0dsbl97Z3V0fV0pYH0gLz48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPSdmb3JtdWxhX251bWJlcic+OTI8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPSdpbmRlbnQgZm9ybXVsYV9jb250ZW50Jz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9J2Zvcm11bGFfbGluZSc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxNYXRoSmF4Lk5vZGUgZm9ybXVsYT17YFxcXFxmcmFje1xcXFxtYXRocm17ZH1bVHJwX3tndXR9XX17XFxcXG1hdGhybXtkfXR9ID0gXFxcXGZyYWN7a197ZGlmZlxcXFxfVHJwfX17Vl97Z3V0fX0oW1RycF97Y3l0b31dLVtUcnBfe2d1dH1dKWB9IC8+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT0nZm9ybXVsYV9udW1iZXInPjkzPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT0naW5kZW50IGZvcm11bGFfY29udGVudCc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPSdmb3JtdWxhX2xpbmUnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8TWF0aEpheC5Ob2RlIGZvcm11bGE9e2BcXFxcZnJhY3tcXFxcbWF0aHJte2R9W1RycF97Y3l0b31dfXtcXFxcbWF0aHJte2R9dH0gPSBcXFxcZnJhY3trX3tkaWZmXFxcXF9UcnB9fXtWX3tjeXRvfX0oW1RycF97Z3V0fV0tW1RycF97Y3l0b31dKSAtIFxcXFxmcmFje2tfe2NhdFxcXFxfVFBIMX1bVFBIMV1bVHJwX3tjeXRvfV19e0tfe01cXFxcX1RQSDF9K1tUcnBfe2N5dG99XX1gfSAvPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9J2Zvcm11bGFfbnVtYmVyJz45NDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9J2luZGVudCBmb3JtdWxhX2NvbnRlbnQnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT0nZm9ybXVsYV9saW5lJz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPE1hdGhKYXguTm9kZSBmb3JtdWxhPXtgXFxcXGZyYWN7XFxcXG1hdGhybXtkfVs1XFxcXG1hdGhybXstfUhUUF97Y3l0b31dfXtcXFxcbWF0aHJte2R9dH0gPSBcXFxcZnJhY3trX3tjYXRcXFxcX1RQSDF9W1RQSDFdW1RycF97Y3l0b31dfXtLX3tNXFxcXF9UUEgxfStbVHJwX3tjeXRvfV19IC0gXFxcXGZyYWN7a197ZGlmZlxcXFxfNS1IVFB9fXtWX3tjeXRvfX0oWzVcXFxcbWF0aHJtey19SFRQX3tndXR9XS1bNVxcXFxtYXRocm17LX1IVFBfe2N5dG99XSlgfSAvPiA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPSdmb3JtdWxhX251bWJlcic+OTU8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPSdpbmRlbnQgZm9ybXVsYV9jb250ZW50Jz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9J2Zvcm11bGFfbGluZSc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxNYXRoSmF4Lk5vZGUgZm9ybXVsYT17YFxcXFxmcmFje1xcXFxtYXRocm17ZH1bNVxcXFxtYXRocm17LX1IVFBfe2d1dH1dfXtcXFxcbWF0aHJte2R9dH0gPSBcXFxcZnJhY3trX3tkaWZmXFxcXF81LUhUUH19e1Zfe2d1dH19KFs1XFxcXG1hdGhybXstfUhUUF97Y3l0b31dLVs1XFxcXG1hdGhybXstfUhUUF97Z3V0fV0pYH0gLz4gPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT0nZm9ybXVsYV9udW1iZXInPjk2PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvTWF0aEpheC5Qcm92aWRlcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGgzPkluaXRpYWwgQ29uZGl0aW9uczwvaDM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxwPkV4Y2VwdCBmb3IgdGhlIHZhcmlhYmxlcyBtZW50aW9uZWQgYmVsb3csIHRoZSBpbml0aWFsIHZhbHVlcyBvZiBhbGwgb3RoZXIgdmFyaWFibGVzIGFyZSBzZXQgdG8gMC48L3A+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8cD5QbGFjZWhvbGRlcnM8L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9FbGVtZW50PlxyXG4gICAgICAgICAgICAgICAgICAgIDxFbGVtZW50IG5hbWU9XCJzZWN0aW9uMlwiIGNsYXNzTmFtZT1cImVsZW1lbnRcIiBpZD0nc2VjdGlvbjInPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aDI+UEFSVDIgTWV0YWJvbGljIEVuZ2luZWVyaW5nIFN0cmF0ZWd5IHRvIFJlZHVjZSBBbW1vbmlhIFByb2R1Y3Rpb248L2gyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aDM+Mi4xIEdvYWxzPC9oMz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHA+SW4gRXNjaGVyaWNoaWEgY29saSBOaXNzbGUgMTkxNywgdmFyaW91cyBtZXRhYm9saWMgcHJvY2Vzc2VzLCBzdWNoIGFzIGFtaW5vIGFjaWQgZGVhbWluYXRpb24gYW5kIHVyZWEgbWV0YWJvbGlzbSwgZ2VuZXJhdGUgYW1tb25pYSwgd2hpY2ggbWF5IHBvc2UgcG90ZW50aWFsIHJpc2tzIHRvIHBhdGllbnRzIHVuZGVyZ29pbmcgdHJlYXRtZW50IHdpdGggZW5naW5lZXJlZCBiYWN0ZXJpYS4gSW4gb3VyIHdldCBsYWIgZXhwZXJpbWVudHMsIHdlIHV0aWxpemVkIE05IG1lZGl1bSB0byByZWR1Y2UgYW1tb25pYSBwcm9kdWN0aW9uOyBob3dldmVyLCBpdCBpcyBjcnVjaWFsIHRvIGRlY3JlYXNlIHRoZSBzdHJhaW4ncyBpbnRyaW5zaWMgYW1tb25pYSBwcm9kdWN0aW9uIHRocm91Z2ggbWV0aG9kcyBzdWNoIGFzIGdlbmUga25vY2tvdXQgZm9yIHN0cmFpbnMgaW50ZW5kZWQgZm9yIHRoZXJhcGV1dGljIHVzZS48L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxwPk91ciBnb2FsIGlzIHRvIGlkZW50aWZ5IHRoZSBrZXkgZ2VuZXMgaW5mbHVlbmNpbmcgYW1tb25pYSBwcm9kdWN0aW9uIGFuZCB1cHRha2UsIGFuZCB0byBwZXJmb3JtIGtub2Nrb3V0cyBiYXNlZCBvbiB0aGVpciBlZmZlY3RzIG9uIGFtbW9uaWEgbWV0YWJvbGlzbS4gVGhpcyBhcHByb2FjaCBhaW1zIHRvIHNpbXVsYXRlIHRoZSBvdmVyYWxsIGltcGFjdCBvZiB0aGVzZSBtb2RpZmljYXRpb25zIG9uIGFtbW9uaWEgbWV0YWJvbGlzbSBpbiBFc2NoZXJpY2hpYSBjb2xpLCB0aGVyZWJ5IHByb3ZpZGluZyBnZW5ldGljIHRhcmdldHMgZm9yIGZ1dHVyZSBwcm9kdWN0aW9uIG9mIHRoZXJhcGV1dGljIHN0cmFpbnMuIFRvIGFjaGlldmUgdGhpcyBvYmplY3RpdmUsIHdlIHV0aWxpemVkIGEgZ2Vub21lLXNjYWxlIG1ldGFib2xpYyBtb2RlbCAoR0VNKSBvZiBFc2NoZXJpY2hpYSBjb2xpIE5pc3NsZSAxOTE3LCBhIGZsdXggYmFsYW5jZSBhbmFseXNpcyAoRkJBKSBjb21wdXRhdGlvbmFsIGZyYW1ld29yaywgYW5kIHRoZSBPcHRHZW5lIGdlbmUgb3B0aW1pemF0aW9uIHN0cmF0ZWd5LiBUaGUgR0VNIHdhcyBwcm92aWRlZCBieSBIb2YgZXQgYWwuLCB0aGUgRkJBIGNvbXB1dGF0aW9uYWwgZnJhbWV3b3JrIHdhcyBzdXBwbGllZCBieSBDT0JSQXB5LCBhbmQgdGhlIE9wdEdlbmUgYWxnb3JpdGhtIHdhcyBzb3VyY2VkIGZyb20gdGhlIENhbWVvIGxpYnJhcnkuPC9wPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aDM+Mi4yIElkZW50aWZpY2F0aW9uIG9mIEFtbW9uaWEtUmVsYXRlZCBSZWFjdGlvbnMgYW5kIEZsdXg8L2gzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8cD5GaXJzdCwgd2UgbG9hZGVkIHRoZSBnZW5vbWUtc2NhbGUgbWV0YWJvbGljIG1vZGVsIDxzdHJvbmc+aURLMTQ2Mzwvc3Ryb25nPiAgZm9yIEVzY2hlcmljaGlhIGNvbGkgTmlzc2xlIDE5MTcsIHdoaWNoIGluY2x1ZGVzIDxzdHJvbmc+MSw0NjQ8L3N0cm9uZz4gIGdlbmVzLDxiPjIsMTEyPC9iPiBtZXRhYm9saXRlcywgYW5kIDxiPjIsOTg0PC9iPiByZWFjdGlvbnMgYmFzZWQgb24gZ2Vub21pYyBhbm5vdGF0aW9ucyBhbmQgZXhwZXJpbWVudGFsIGRhdGEuIFN1YnNlcXVlbnRseSwgd2UgZW1wbG95ZWQgdGhlIGZsdXggYmFsYW5jZSBhbmFseXNpcyAoRkJBKSBtZXRob2QgdG8gY2FsY3VsYXRlIHRoZSBzdGVhZHktc3RhdGUgbWV0YWJvbGljIGZsdXhlcyAoaS5lLiwgcmVhY3Rpb24gcmF0ZXMpIGZvciB2YXJpb3VzIG1ldGFib2xpYyByZWFjdGlvbnMgaW4gdGhlIHdpbGQtdHlwZSBzdHJhaW4uPC9wPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImFjY29yZGlvblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJhY2NvcmRpb24taGVhZGVyXCIgb25DbGljaz17dG9nZ2xlQWNjb3JkaW9uMX0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgzPntpc09wZW4xID8gJ0NvbGxhcHNlJyA6ICdDbGljayBoZXJlIHRvIHNlZSB0aGUgZGV0YWlscyBvZiBGQkEgbWV0aG9kISd9IC4uLi4uLjwvaDM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17YGFjY29yZGlvbi1jb250ZW50LW1vZGVsICR7aXNPcGVuMSA/ICdvcGVuJyA6ICcnfWB9PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPkZCQSBpcyBhIGNvbnN0cmFpbnQtYmFzZWQgcmVjb25zdHJ1Y3Rpb24gYW5kIGFuYWx5c2lzIChDT0JSQSkgbWV0aG9kIHRoYXQgcmVxdWlyZXMgaW5wdXQgZGF0YSBpbmNsdWRpbmcgYWxsIHJlYWN0aW9ucyBpbnZvbHZlZCBpbiB0aGUgbWV0YWJvbGljIHByb2Nlc3NlcywgdGhlIHVwcGVyIGFuZCBsb3dlciBib3VuZHMgZm9yIHRoZSBmbHV4IG9mIGVhY2ggcmVhY3Rpb24sIGFuZCB0aGUgd2VpZ2h0cyBmb3IgZWFjaCByZWFjdGlvbiBpbiB0aGUgb3B0aW1pemF0aW9uIG9iamVjdGl2ZS4gVGhpcyBmcmFtZXdvcmsgYWxsb3dzIGZvciB0aGUgc3lzdGVtYXRpYyBldmFsdWF0aW9uIG9mIG1ldGFib2xpYyBuZXR3b3JrIGJlaGF2aW9yIHVuZGVyIHNwZWNpZmllZCBjb25zdHJhaW50cywgZW5hYmxpbmcgdGhlIGlkZW50aWZpY2F0aW9uIG9mIG9wdGltYWwgZmx1eCBkaXN0cmlidXRpb25zIHRoYXQgYWxpZ24gd2l0aCB0aGUgY2hvc2VuIG9iamVjdGl2ZXMuPC9wPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPlRoZSBiYXNpYyBtYXRoZW1hdGljYWwgbW9kZWwgb2YgRkJBIGNhbiBiZSBleHByZXNzZWQgaW4gdGhlIGZvbGxvd2luZyBsaW5lYXIgcHJvZ3JhbW1pbmcgZm9ybTwvcD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8TWF0aEpheC5Qcm92aWRlcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9J2luZGVudCBmb3JtdWxhX2NvbnRlbnQnID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT0nZm9ybXVsYV9saW5lJz48TWF0aEpheC5Ob2RlIGZvcm11bGE9e2BcXFxcYmVnaW57YWxpZ24qfSZcXFxcbWF4ICBcXFxccXVhZCAgXFxcXG1hdGhiZntjfV5UIFxcXFxtYXRoYmZ7dn1cXFxcXFxcXCZcXFxcYmVnaW57YXJyYXl9e3JAe1xcXFxxdWFkfWxAe31sQHtcXFxccXVhZH1sfVxcXFx0ZXh0e3MudC59ICBcXFxccXVhZCAmIFxcXFxtYXRoYmZ7U30gXFxcXG1hdGhiZnt2fSA9IFxcXFxtYXRoYmZ7MH1cXFxcXFxcXCZcXFxcbWF0aGJme3Z9X3tcXFxcdGV4dHttaW59fSBcXFxcbGVxIFxcXFxtYXRoYmZ7dn0gXFxcXGxlcSBcXFxcbWF0aGJme3Z9X3tcXFxcdGV4dHttYXh9fVxcXFxlbmR7YXJyYXl9IFxcXFxlbmR7YWxpZ24qfWB9IC8+IDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT0nZm9ybXVsYV9udW1iZXInPjE8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvTWF0aEpheC5Qcm92aWRlcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD5XaGVyZTo8L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVsPjxsaT48TWF0aEpheC5Qcm92aWRlcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPE1hdGhKYXguTm9kZSBpbmxpbmUgZm9ybXVsYT17YHZgfSAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvTWF0aEpheC5Qcm92aWRlcj4gaXMgdGhlIDxzdHJvbmc+Zmx1eCB2ZWN0b3I8L3N0cm9uZz4gLCB3aXRoIGVhY2ggdmFsdWUgcmVwcmVzZW50aW5nIHRoZSByYXRlIG9mIGEgc3BlY2lmaWMgcmVhY3Rpb24uPC9saT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxNYXRoSmF4LlByb3ZpZGVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPE1hdGhKYXguTm9kZSBpbmxpbmUgZm9ybXVsYT17YGNgfSAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L01hdGhKYXguUHJvdmlkZXI+IGlzIHRoZSA8c3Ryb25nPmNvZWZmaWNpZW50IHZlY3Rvcjwvc3Ryb25nPiAgb2YgdGhlIG9iamVjdGl2ZSBmdW5jdGlvbiwgd2hpY2ggaW5jbHVkZXMgdGhlIHdlaWdodCB2YWx1ZXMgZm9yIGVhY2ggcmVhY3Rpb24gaW4gdGhlIG9wdGltaXphdGlvbiBvYmplY3RpdmUuIFR5cGljYWxseSwgdGhlIGdvYWwgaXMgdG8gbWF4aW1pemUgdGhlIGJpb21hc3MgcmVhY3Rpb24gdG8gcHJvbW90ZSB0aGUgZmFzdGVzdCBncm93dGggb2YgdGhlIG9yZ2FuaXNtLCB3aXRoIHRoZSB3ZWlnaHQgb2YgdGhlIGJpb21hc3MgcmVhY3Rpb24gc2V0IHRvIDEgYW5kIGFsbCBvdGhlciByZWFjdGlvbnMgc2V0IHRvIDAuPC9saT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxNYXRoSmF4LlByb3ZpZGVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPE1hdGhKYXguTm9kZSBpbmxpbmUgZm9ybXVsYT17YFNgfSAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L01hdGhKYXguUHJvdmlkZXI+IGlzIHRoZSA8c3Ryb25nPnN0b2ljaGlvbWV0cmljIG1hdHJpeDwvc3Ryb25nPiBvZiB0aGUgbWV0YWJvbGljIG5ldHdvcmssIHdoZXJlIHJvd3MgcmVwcmVzZW50IG1ldGFib2xpdGVzIGFuZCBjb2x1bW5zIHJlcHJlc2VudCByZWFjdGlvbnMuIFRoZSB2YWx1ZXMgaW5kaWNhdGUgdGhlIHN0b2ljaGlvbWV0cmljIGNvZWZmaWNpZW50cyBvZiBtZXRhYm9saXRlcyBpbiB0aGUgcmVhY3Rpb25zLCB3aXRoIHN1YnN0cmF0ZXMgcmVwcmVzZW50ZWQgYXMgbmVnYXRpdmUgYW5kIHByb2R1Y3RzIGFzIHBvc2l0aXZlLjwvbGk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48TWF0aEpheC5Qcm92aWRlcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxNYXRoSmF4Lk5vZGUgaW5saW5lIGZvcm11bGE9e2B2X3ttaW59YH0gLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9NYXRoSmF4LlByb3ZpZGVyPiBhbmQgPE1hdGhKYXguUHJvdmlkZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPE1hdGhKYXguTm9kZSBpbmxpbmUgZm9ybXVsYT17YHZfe21heH1gfSAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9NYXRoSmF4LlByb3ZpZGVyPiBhcmUgdGhlIDxzdHJvbmc+bG93ZXIgYW5kIHVwcGVyIGJvdW5kczwvc3Ryb25nPiAgb24gdGhlIGZsdXhlcywgcmVzcGVjdGl2ZWx5LjwvbGk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD5JbiBvdGhlciB3b3JkcywgdGhlIGdvYWwgb2YgRkJBIGlzIHRvIG1heGltaXplIHRoZSBmbHV4IG9mIHRoZSBvYmplY3RpdmUgcmVhY3Rpb24gKHR5cGljYWxseSB0aGUgYmlvbWFzcyByZWFjdGlvbikgdW5kZXIgdGhlIGNvbnN0cmFpbnRzIG9mIGJhbGFuY2VkIGlucHV0LW91dHB1dCBmbHV4ZXMgYW5kIGVuc3VyaW5nIHRoYXQgdGhlIGZsdXhlcyBvZiBlYWNoIHJlYWN0aW9uIHJlbWFpbiB3aXRoaW4gdGhlaXIgc3BlY2lmaWVkIGJvdW5kczwvcD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD5JbiBDT0JSQXB5LCB0aGUgZGVmYXVsdCB1bml0IGZvciBmbHV4IGlzIG1tb2wvKGdEVypociksIHdoaWNoIHJlcHJlc2VudHMgdGhlIG1pbGxpbW9sZXMgb2YgYSBzdWJzdGFuY2UgcHJvZHVjZWQgb3IgY29uc3VtZWQgcGVyIGdyYW0gZHJ5IGNlbGwgd2VpZ2h0IHBlciBob3VyLjwvcD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHA+VG8gaWRlbnRpZnkga25vY2tvdXQgdGFyZ2V0cywgd2UgcmFuIEZCQSBvcHRpbWl6YXRpb24gb24gaURLMTQ2MywgeWllbGRpbmcgdGhlIGZsdXggdmFsdWVzIGZvciB2YXJpb3VzIG1ldGFib2xpYyByZWFjdGlvbnMgaW4gdGhlIG9wdGltaXplZCBzdHJhaW4uIE5leHQsIHdlIGZpbHRlcmVkIG91dCB0aGUgcmVhY3Rpb25zIHJlbGF0ZWQgdG8gYW1tb25pYSwgZXhjbHVkaW5nIHRob3NlIHdpdGggYSBmbHV4IG9mIHplcm8gdW5kZXIgbm9ybWFsIHBoeXNpb2xvZ2ljYWwgY29uZGl0aW9ucy4gVGhlIGJpb21hc3MgcmVhY3Rpb24gYW5kIHJlYWN0aW9ucyBsaW5lYXJseSByZWxhdGVkIHRvIGl0IHdlcmUgY29uc2lkZXJlZCBlc3NlbnRpYWwgYW5kIG5vdCBzZWxlY3RlZCBhcyB0YXJnZXRzLiBVbHRpbWF0ZWx5LCBhbW9uZyB0aGUgPGI+NiByZWFjdGlvbnMgaWRlbnRpZmllZDwvYj4sIHRoZSBmbHV4IG9mIGFtbW9uaWEtcHJvZHVjaW5nIHJlYWN0aW9ucyB3aWxsIGJlIG1pbmltaXplZCwgd2hpbGUgdGhlIGZsdXggb2YgYW1tb25pYS1jb25zdW1pbmcgcmVhY3Rpb25zIHdpbGwgYmUgbWF4aW1pemVkLjwvcD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHAgc3R5bGU9e3sgY29sb3I6ICcjNjU2NTYzJyB9fSA+VGFibGUgMTogSWRlbnRpZmllZCBrbm9ja291dCB0YXJnZXQgcmVhY3Rpb25zPC9wPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHRhYmxlIGNsYXNzTmFtZT1cIm1vZGVsLXRhYmxlIHRocmVlLWxpbmUtdGFibGVcIj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGhlYWQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyIGNsYXNzTmFtZT0ndGFibGUtaGVhZC1saW5lJz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPklEPC90aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPk5hbWU8L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+Rm9ybXVsYTwvdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5GbHV4IFttbW9sLyhnRFcqaHIpXTwvdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5TdHJhdGVneTwvdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGhlYWQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGJvZHk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3RhYmxlMS5tYXAoKHJvdykgPT4gKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+e3Jvdy5pZH08L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPntyb3cuY29sMX08L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZm9ybXVsYS1zY3JvbGxcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPE1hdGhKYXguUHJvdmlkZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8TWF0aEpheC5Ob2RlIGlubGluZSBmb3JtdWxhPXtyb3cuY29sMn0gLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9NYXRoSmF4LlByb3ZpZGVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD57cm93LmNvbDN9PC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD57cm93LmNvbDR9PC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApKX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGJvZHk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGFibGU+XHJcblxyXG5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxoMz4yLjMgVGFyZ2V0IEdlbmUgU2VhcmNoIEJhc2VkIG9uIEV2b2x1dGlvbmFyeSBBbGdvcml0aG1zPC9oMz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHA+QWZ0ZXIgaWRlbnRpZnlpbmcgdGhlIGFtbW9uaWEtcmVsYXRlZCByZWFjdGlvbnMsIHRoZSBuZXh0IG9iamVjdGl2ZSBpcyB0byBzZWFyY2ggZm9yIHRhcmdldCBnZW5lcyB0aGF0IGNhbiByZWR1Y2UgYW1tb25pYSBwcm9kdWN0aW9uIHdoaWxlIGluY3JlYXNpbmcgaXRzIGNvbnN1bXB0aW9uLiBGb3IgdGhpcyBwdXJwb3NlLCB3ZSBlbXBsb3llZCB0aGUgT3B0R2VuZSBhbGdvcml0aG0gcHJvcG9zZWQgYnkgUGF0aWwgZXQgYWwuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvcD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJhY2NvcmRpb25cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYWNjb3JkaW9uLWhlYWRlclwiIG9uQ2xpY2s9e3RvZ2dsZUFjY29yZGlvbjJ9PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoMz57aXNPcGVuMiA/ICdDb2xsYXBzZScgOiAnQ2xpY2sgaGVyZSB0byBzZWUgdGhlIGRldGFpbHMgb2YgT3B0R2VuZSBhbGdvcml0aG0hJ30gLi4uLi4uPC9oMz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtgYWNjb3JkaW9uLWNvbnRlbnQtbW9kZWwgJHtpc09wZW4yID8gJ29wZW4nIDogJyd9YH0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+T3B0R2VuZSBpcyBhIHRhcmdldCBnZW5lIHNlYXJjaCBhbGdvcml0aG0gYmFzZWQgb24gZ2VuZXRpYyBhbGdvcml0aG1zIChHQSksIHdoaWNoIHV0aWxpemUgdGhlIHByaW5jaXBsZXMgb2YgRGFyd2luaWFuIGV2b2x1dGlvbiB0byBzZWFyY2ggZm9yIGdsb2JhbCBvcHRpbWFsIHNvbHV0aW9ucy4gVGhlIGJhc2ljIHdvcmtmbG93IGlzIG91dGxpbmVkIGFzIGZvbGxvd3M6PC9wPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvbD48bGk+PGI+UG9wdWxhdGlvbiBJbml0aWFsaXphdGlvbjwvYj4gOiBBIHNwZWNpZmllZCBudW1iZXIgb2Ygc29sdXRpb25zIGFyZSByYW5kb21seSBnZW5lcmF0ZWQsIHdoZXJlIGVhY2ggc29sdXRpb24gaXMgcmVwcmVzZW50ZWQgYXMgYSBvbmUtaG90IGVuY29kZWQgZ2VuZSBcInN3aXRjaFwiIHZlY3Rvci4gSW4gdGhpcyB2ZWN0b3IsIGEgZ2VuZSBtYXJrZWQgYXMgXCJvblwiIGhhcyBhIHZhbHVlIG9mIDEsIGluZGljYXRpbmcgbm9ybWFsIGV4cHJlc3Npb24sIHdoaWxlIGEgZ2VuZSBtYXJrZWQgYXMgXCJvZmZcIiBoYXMgYSB2YWx1ZSBvZiAwLCBpbmRpY2F0aW5nIHRoYXQgdGhlIGdlbmUgaXMga25vY2tlZCBvdXQuIEVhY2ggc29sdXRpb24gaXMgcmVmZXJyZWQgdG8gYXMgYW4gaW5kaXZpZHVhbC48L2xpPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGI+Rml0bmVzcyBDYWxjdWxhdGlvbjwvYj4gOiBUaGUgZml0bmVzcyAob2JqZWN0aXZlIGZ1bmN0aW9uIHZhbHVlKSBvZiBlYWNoIGluZGl2aWR1YWwgaXMgY2FsY3VsYXRlZCwgdGFraW5nIGludG8gYWNjb3VudCB0aHJlZSBmYWN0b3JzOiB0aGUgYmlvbWFzcyBzaG91bGQgYmUgbWF4aW1pemVkLCBhbW1vbmlhIHByb2R1Y3Rpb24gc2hvdWxkIGJlIG1pbmltaXplZCAob3IgYW1tb25pYSBjb25zdW1wdGlvbiBzaG91bGQgYmUgbWF4aW1pemVkKSwgYW5kIHRoZSBudW1iZXIgb2YgZ2VuZXMga25vY2tlZCBvdXQgc2hvdWxkIGJlIG1pbmltaXplZC4gQmlvbWFzcywgYW1tb25pYSBwcm9kdWN0aW9uLCBhbmQgYW1tb25pYSBjb25zdW1wdGlvbiB3aWxsIGJlIGNvbXB1dGVkIHVzaW5nIHRoZSBGQkEgbWV0aG9kLjwvbGk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48Yj5UZXJtaW5hdGlvbiBDaGVjazwvYj46IFZlcmlmeSBpZiB0aGUgdGVybWluYXRpb24gY3JpdGVyaWEgYXJlIG1ldC4gSWYgdGhleSBhcmUsIHJldHVybiB0aGUgcmVzdWx0czsgaWYgbm90LCBwcm9jZWVkIHRvIHRoZSBuZXh0IHN0ZXAuPC9saT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxiPkFkanVzdG1lbnQgb2YgSW5kaXZpZHVhbHM8L2I+OiBFYWNoIGluZGl2aWR1YWwgdW5kZXJnb2VzIGFkanVzdG1lbnQsIHdoaWNoIGluY2x1ZGVzIGNyb3Nzb3ZlciBhbmQgbXV0YXRpb24uIENyb3Nzb3ZlciwgYWtpbiB0byBjaHJvbW9zb21hbCBjcm9zc292ZXIsIGludm9sdmVzIGV4Y2hhbmdpbmcgc2VnbWVudHMgb2YgZGF0YSBiZXR3ZWVuIHR3byBpbmRpdmlkdWFscy4gTXV0YXRpb24gZW50YWlscyBtb2RpZnlpbmcgYSBzcGVjaWZpYyBwb2ludCBpbiBhbiBpbmRpdmlkdWFsJ3MgZGF0YSAoZS5nLiwgbWFya2luZyBhIGdlbmUgYXMgXCJvZmZcIikuIEluZGl2aWR1YWxzIHdpdGggaGlnaGVyIGZpdG5lc3Mgc2NvcmVzIGhhdmUgYSBncmVhdGVyIHByb2JhYmlsaXR5IG9mIGJlaW5nIGFkanVzdGVkLjwvbGk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48Yj5SZXR1cm4gdG8gU3RlcCAyPC9iPjogUmVwZWF0IHRoZSBmaXRuZXNzIGNhbGN1bGF0aW9uIGFuZCBzdWJzZXF1ZW50IHN0ZXBzLjwvbGk+PC9vbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD5Gb3IgZ2VuZXMgbWFya2VkIGFzIFwib2ZmXCIsIHRoZXNlIGdlbmVzIGFyZSBjb25zaWRlcmVkIGluYWN0aXZlLCBhbmQgdGhlIHVwcGVyIGFuZCBsb3dlciBib3VuZHMgZm9yIHRoZSBjb3JyZXNwb25kaW5nIHJlYWN0aW9ucyBhcmUgYm90aCBzZXQgdG8gMCwgZWZmZWN0aXZlbHkgYWNoaWV2aW5nIHRoZSBrbm9ja291dCBvZiB0aGF0IGdlbmUuPC9wPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPlRoZSBwcm9jZXNzIG9mIHRoZSBhbGdvcml0aG0gYW5kIHRoZSByZXByZXNlbnRhdGlvbiBtZXRob2Qgb2YgcXVlcnkgcGhlbm90eXBlIGFyZSBzaG93biBpbiB0aGUgZm9sbG93aW5nIHR3byBmaWd1cmVzOjwvcD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IGltZyBzcmM9J2h0dHBzOi8vc3RhdGljLmlnZW0ud2lraS90ZWFtcy81Mzc4L21vZGVsL21vZGVsMS53ZWJwJyBjbGFzc05hbWU9J3Jlc3BvbnNpdmUtaW1nJyAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmlnY2FwdGlvbiBjbGFzc05hbWU9J2NhcHRpb24nPkZpZ3VyZSBTMTogIFNjaGVtYXRpYyBvdmVydmlldyBvZiB0aGUgT3B0R2VuZSBhbGdvcml0aG08L2ZpZ2NhcHRpb24+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IGltZyBzcmM9J2h0dHBzOi8vc3RhdGljLmlnZW0ud2lraS90ZWFtcy81Mzc4L21vZGVsL21vZGVsMi53ZWJwJyBjbGFzc05hbWU9J3Jlc3BvbnNpdmUtaW1nJyAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmlnY2FwdGlvbiBjbGFzc05hbWU9J2NhcHRpb24nPkZpZ3VyZSBTMjogUmVwcmVzZW50YXRpb24gb2YgdGhlIG1ldGFib2xpYyBnZW5vdHlwZTwvZmlnY2FwdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHA+QmFzZWQgb24gdGhlIE9wdEdlbmUgYWxnb3JpdGhtLCB3ZSBpZGVudGlmaWVkIHR3byB2YWx1YWJsZSB0YXJnZXQgcmVhY3Rpb25zOiA8Yj5HbHljaW5lIENsZWF2YWdlIFN5c3RlbSAoR0xZQ0wpPC9iPiBhbmQgPGI+R2x1dGFtYXRlIERlaHlkcm9nZW5hc2UgKE5BRFAsIEdMVUR5KTwvYj4uIFRoZSBtYWluIHJlYWN0aW9ucyBpbnZvbHZlZCwgdGhlIGNhbmRpZGF0ZSBrbm9ja291dCB0YXJnZXRzLCBhbmQgdGhlIGVmZmVjdHMgb2YgdGhlaXIga25vY2tvdXQgb24gZmx1eCBhcmUgc3VtbWFyaXplZCBpbiB0aGUgdGFibGUgYmVsb3c6PC9wPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8cCBzdHlsZT17eyBjb2xvcjogJyM2NTY1NjMnIH19ID5UYWJsZSAyOiBDYW5kaWRhdGUga25vY2tvdXQgdGFyZ2V0IGdlbmVzIGlkZW50aWZpZWQgYnkgT3B0R2VuZTwvcD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHRhYmxlIGNsYXNzTmFtZT1cIm1vZGVsLXRhYmxlIHRocmVlLWxpbmUtdGFibGVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjYXB0aW9uPjwvY2FwdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aGVhZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHIgY2xhc3NOYW1lPSd0YWJsZS1oZWFkLWxpbmUnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+VGFyZ2V0IFJlYWN0aW9uPC90aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPlJlbGF0ZWQgUmVhY3Rpb25zPC90aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPkdlbmVzPC90aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPlRhcmdldCBGbHV4IFttbW9sLyhnRFcqaHIpXTwvdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5CaW9tYXNzIEZsdXggW21tb2wvKGdEVypocildPC90aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90aGVhZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0Ym9keT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7dGFibGUyLm1hcCgocm93KSA9PiAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD57cm93LmlkfTwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+e3Jvdy5jb2wxfTwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+e3Jvdy5jb2wyfTwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+e3Jvdy5jb2wzfTwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+e3Jvdy5jb2w0fTwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSl9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3Rib2R5PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3RhYmxlPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHA+U3Vic2VxdWVudGx5LCB3ZSBldmFsdWF0ZWQgdGhlIHBvdGVudGlhbCBpbXBhY3Qgb2YgPGI+MTUgY2FuZGlkYXRlIGdlbmVzPC9iPiByZXN1bHRpbmcgaW4gPGI+MzIsNzY3IGtub2Nrb3V0IGNvbWJpbmF0aW9uczwvYj4gb24gdGhlIGdyb3d0aCBhbmQgYW1tb25pYSBwcm9kdWN0aW9uIG9mIHRoZSBzdHJhaW4gdXNpbmcgRkJBLiBUaGUgcmVzdWx0cyBpbmRpY2F0ZWQgdGhhdCBlbmhhbmNpbmcgdGhlIHJldmVyc2UgcmVhY3Rpb24gb2YgR0xVRHkgaXMgYSBrZXkgZmFjdG9yIGluIHJlZHVjaW5nIGFtbW9uaWEgcHJvZHVjdGlvbiwgd2hpbGUgdGhlIGtub2Nrb3V0IG9mIHRoZSA8Yj5FQ09MSU5fUlMxNTUwMDwvYj4gZ2VuZSAoY29ycmVzcG9uZGluZyB0byB0aGUgRU5PIHJlYWN0aW9uKSBpcyBhIGNydWNpYWwgc3RlcCB0b3dhcmQgYWNoaWV2aW5nIHRoaXMgZ29hbC4gQWx0aG91Z2ggdGhlIGtub2Nrb3V0IG9mIHRoZSBHTFlDTCByZWFjdGlvbiBjYW4gYWxzbyByZWR1Y2UgYW1tb25pYSBwcm9kdWN0aW9uIHRvIGEgc21hbGwgZXh0ZW50LCBpdCBpcyBub3QgYSBwcmltYXJ5IGZhY3Rvci4gQWRkaXRpb25hbGx5LCBkaWZmZXJlbnQga25vY2tvdXQgc2NoZW1lcyBzaWduaWZpY2FudGx5IGFmZmVjdCB0aGUgc3RyYWluJ3MgZ3Jvd3RoLCBzcGVjaWZpY2FsbHkgdGhlIGJpb21hc3MgZmx1eC48L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxwPkNvbnNpZGVyaW5nIHRoYXQgZXhjZXNzaXZlIGtub2Nrb3V0cyBtYXkgaW1wYWlyIHRoZSBzdHJhaW4ncyBub3JtYWwgcGh5c2lvbG9naWNhbCBmdW5jdGlvbnMgYW5kIGluY3JlYXNlIG9wZXJhdGlvbmFsIGNvbXBsZXhpdHksIHdlIHVsdGltYXRlbHkgaWRlbnRpZmllZCA8Yj42IGFsdGVybmF0aXZlIGtub2Nrb3V0IHNjaGVtZXM8L2I+IHRoYXQgYmFsYW5jZSBhbW1vbmlhIHByb2R1Y3Rpb24gYW5kIGJpb21hc3M6PC9wPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8cCBzdHlsZT17eyBjb2xvcjogJyM2NTY1NjMnIH19ID5UYWJsZSAzOiBLbm9ja291dCBzY2hlbWVzIHdlIHVsdGltYXRlbHkgc2VsZWN0ZWQuPC9wPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8dGFibGUgY2xhc3NOYW1lPVwibW9kZWwtdGFibGUgdGhyZWUtbGluZS10YWJsZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoZWFkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ciBjbGFzc05hbWU9J3RhYmxlLWhlYWQtbGluZSc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5UYXJnZXQgR2VuZXMgZm9yIEtub2Nrb3V0PC90aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPkJpb21hc3MgRmx1eCBbbW1vbC8oZ0RXKmhyKV08L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+QW1tb25pYSBQcm9kdWN0aW9uIFVuaXQgQmlvbWFzcyBbbW1vbC8oZ0RXKmhyKV08L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+QmlvbWFzcyBSYXRpbyBDb21wYXJlZCB0byBXVCAoJSk8L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+QW1tb25pYSBQcm9kdWN0aW9uIFJhdGlvIENvbXBhcmVkIHRvIFdUICglKTwvdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGhlYWQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGJvZHk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3RhYmxlMy5tYXAoKHJvdykgPT4gKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+e3Jvdy5pZH08L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPntyb3cuY29sMX08L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPntyb3cuY29sMn08L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPntyb3cuY29sM308L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPntyb3cuY29sNH08L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkpfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90Ym9keT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC90YWJsZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHA+VGhlIHRhYmxlIGRpc3BsYXlzIHRoZSBiaW9tYXNzIGZsdXggYW5kIGFtbW9uaWEgcHJvZHVjdGlvbiBwZXIgdW5pdCBiaW9tYXNzIGZvciB0aGUgd2lsZC10eXBlIHN0cmFpbiBhbmQgdmFyaW91cyBrbm9ja291dCBzdHJhaW5zLCBhbG9uZyB3aXRoIHRoZSBwZXJjZW50YWdlIG9mIHRoZXNlIHZhbHVlcyBjb21wYXJlZCB0byB0aGUgd2lsZC10eXBlIHN0cmFpbi48L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwgaW1nIHNyYz0naHR0cHM6Ly9zdGF0aWMuaWdlbS53aWtpL3RlYW1zLzUzNzgvbW9kZWwvbW9kZWw0LndlYnAnIGNsYXNzTmFtZT0ncmVzcG9uc2l2ZS1pbWcnIHN0eWxlPXt7IG1heFdpZHRoOiAnNjAlJywgbWFyZ2luOiAnMCBhdXRvJywgZGlzcGxheTogJ2Jsb2NrJywgcGFkZGluZ1JpZ2h0OiAnMjAlJyB9fSAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZmlnY2FwdGlvbiBjbGFzc05hbWU9J2NhcHRpb24nIHN0eWxlPXt7IHBhZGRpbmdSaWdodDogJzIwJScgfX0gPkZpZ3VyZSAxOiBHcm93dGggb2YgRXNjaGVyaWNoaWEgY29saSBOaXNzbGUgMTkxNyBpbiBNOSBhbmQgTEIgTWVkaXVtPC9maWdjYXB0aW9uPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHA+V2UgY29tcGFyZWQgdGhlIGNoYW5nZXMgaW4gYmlvbWFzcyBmbHV4IGJlZm9yZSBhbmQgYWZ0ZXIgZ2VuZSBrbm9ja291dHMgcHJlZGljdGVkIGJ5IHRoZSBtb2RlbCB3aXRoIHRoZSBncm93dGggY2hhcmFjdGVyaXN0aWNzIG9mICpFc2NoZXJpY2hpYSBjb2xpKiBOaXNzbGUgMTkxNyBpbiBNOSBhbmQgTEIgbWVkaWEgb2J0YWluZWQgZnJvbSB3ZXQgZXhwZXJpbWVudHMuIEFmdGVyIGdlbmUga25vY2tvdXQsIHRoZSBiaW9tYXNzIGZsdXggb2YgdGhlIHN0cmFpbiByZWFjaGVkIDxiPjgwLjAzJTwvYj5vZiBpdHMgcHJlLWtub2Nrb3V0IGxldmVsIHVuZGVyIG9wdGltYWwgY29uZGl0aW9ucy4gSW4gdGhlIE05IG1lZGl1bSwgd2hpY2ggaW5oaWJpdHMgYW1tb25pYSBwcm9kdWN0aW9uLCB0aGUgZ3Jvd3RoIHJhdGUgb2YgdGhlIHN0cmFpbiB3YXMgYXBwcm94aW1hdGVseSA8Yj4gODEuNzclPC9iPiBvZiB0aGF0IGluIExCIG1lZGl1bS4gVGhpcyB2YWxpZGF0ZXMgdGhlIG1vZGVsJ3MgY2FsY3VsYXRpb25zIGFuZCBkZW1vbnN0cmF0ZXMgdGhhdCBtZXJlbHkgaW5oaWJpdGluZyBhbW1vbmlhIHByb2R1Y3Rpb24gZG9lcyBub3Qgc2lnbmlmaWNhbnRseSBhZmZlY3QgdGhlIHN0cmFpbidzIGdyb3d0aCwgaW5kaWNhdGluZyB0aGUgZmVhc2liaWxpdHkgb2YgdGhlIGdlbmUga25vY2tvdXQgc3RyYXRlZ3kuPC9wPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHA+SW4gc3VtbWFyeSwgb3VyIG1ldGFib2xpYyBlbmdpbmVlcmluZyBhbmFseXNpcyBwcm92aWRlZCBtdWx0aXBsZSBrbm9ja291dCBzY2hlbWVzLCBpbmNsdWRpbmcgc2luZ2xlIGFuZCBtdWx0aS1nZW5lIGtub2Nrb3V0cy4gVGhyb3VnaCBnZW5lIGtub2Nrb3V0LCBhbW1vbmlhIHByb2R1Y3Rpb24gY2FuIGJlIHJlZHVjZWQgdG8gYXBwcm94aW1hdGVseSA8Yj4xOCUgPC9iPm9mIHRoZSB3aWxkLXR5cGUgbGV2ZWxzLCB3aGlsZSB0aGUgZ3Jvd3RoIHJhdGUgb2YgdGhlIHN0cmFpbiBjYW4gYmUgbWFpbnRhaW5lZCBhdCBhYm91dCA8Yj44MCU8L2I+IG9mIHRoZSB3aWxkLXR5cGUuIFRoaXMgZmluZGluZyBvZmZlcnMgc2lnbmlmaWNhbnQgZGlyZWN0aW9ucyBmb3IgZ2VuZXRpYyBtb2RpZmljYXRpb25zIGluIHRoZSBkZXZlbG9wbWVudCBvZiBlbmdpbmVlcmVkIHN0cmFpbnMgaW50ZW5kZWQgZm9yIGluIHZpdm8gdGhlcmFweS48L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9FbGVtZW50PlxyXG4gICAgICAgICAgICAgICAgICAgIDxFbGVtZW50IG5hbWU9XCJzZWN0aW9uM1wiIGNsYXNzTmFtZT1cImVsZW1lbnQgXCIgaWQ9J3NlY3Rpb24zJz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGgyIGNsYXNzTmFtZT1cImNlbnRlci10ZXh0IG10LTVcIj5wYXJ0MyBQbGFjZWhvbGRlcnM8L2gyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9J2h0dHBzOi8vc3RhdGljLmlnZW0ud2lraS90ZWFtcy81Mzc4L21vZGVsL21vZGVsLWZsb3ctcGljLnBuZycgY2xhc3NOYW1lPSdyZXNwb25zaXZlLWltZycgc3R5bGU9e3sgbWF4V2lkdGg6ICc2MCUnLCBtYXJnaW46ICcwIGF1dG8nLCBkaXNwbGF5OiAnYmxvY2snLCBwYWRkaW5nUmlnaHQ6ICcyMCUnIH19IC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD48ZmlnY2FwdGlvbiBjbGFzc05hbWU9J2NhcHRpb24nID5Qcm90ZWluLUxpZ2FuZCBDb21wbGV4IC0gTW9sZWN1bGFyIER5bmFtaWNzIFNpbXVsYXRpb24gd2l0aCBHUk9NQUNTPC9maWdjYXB0aW9uPjwvcD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9J2h0dHBzOi8vc3RhdGljLmlnZW0ud2lraS90ZWFtcy81Mzc4L21vZGVsL21vZGVsMy53ZWJwJyBjbGFzc05hbWU9J3Jlc3BvbnNpdmUtaW1nJyAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8cD48ZmlnY2FwdGlvbiBjbGFzc05hbWU9J2NhcHRpb24nID5QbGFjZWhvbGRlcnM8L2ZpZ2NhcHRpb24+PC9wPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICA8L0VsZW1lbnQ+XHJcblxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvPlxyXG4gICAgKTtcclxufVxyXG4iLCAiaW1wb3J0IHsgTmF2IH0gZnJvbSAncmVhY3QtYm9vdHN0cmFwJztcclxuaW1wb3J0IHsgTGluayxFbGVtZW50IH0gZnJvbSAncmVhY3Qtc2Nyb2xsJztcclxuaW1wb3J0IFJlYWN0LHt1c2VFZmZlY3QsdXNlU3RhdGV9IGZyb20gJ3JlYWN0JztcclxuXHJcblxyXG4vLyBzaWRlbmF2YmFyIGJlZ2luXHJcbmludGVyZmFjZSBTaWRlTmF2YmFyUHJvcHMge1xyXG4gIGFjdGl2ZUxpbms6IHN0cmluZztcclxufVxyXG5jb25zdCBTaWRlTmF2YmFyOiBSZWFjdC5GQzxTaWRlTmF2YmFyUHJvcHM+ID0gKHsgYWN0aXZlTGluayB9KSA9PiB7XHJcbiAgcmV0dXJuIChcclxuICAgIDxkaXYgY2xhc3NOYW1lPVwic2lkZS1uYXZiYXJcIj5cclxuICAgICAgPE5hdiBjbGFzc05hbWU9XCJmbGV4LWNvbHVtblwiPlxyXG4gICAgICAgIDxOYXYuTGluayBhcz17TGlua30gdG89XCJzZWN0aW9uMVwiIHNtb290aD17dHJ1ZX0gZHVyYXRpb249ezUwMH0gY2xhc3NOYW1lPXthY3RpdmVMaW5rID09PSAnc2VjdGlvbjEnID8gJ2FjdGl2ZScgOiAnbm90QWN0aXZlJ30+VGVhbSBwcm9maWxlPC9OYXYuTGluaz5cclxuICAgICAgICA8TmF2LkxpbmsgYXM9e0xpbmt9IHRvPVwic2VjdGlvbjJcIiBzbW9vdGg9e3RydWV9IGR1cmF0aW9uPXs1MDB9IGNsYXNzTmFtZT17YWN0aXZlTGluayA9PT0gJ3NlY3Rpb24yJyA/ICdhY3RpdmUnIDogJ25vdEFjdGl2ZSd9PlByb2plY3Qgb3ZlcnZpZXc8L05hdi5MaW5rPlxyXG4gICAgICAgIDxOYXYuTGluayBhcz17TGlua30gdG89XCJzZWN0aW9uM1wiIHNtb290aD17dHJ1ZX0gZHVyYXRpb249ezUwMH0gY2xhc3NOYW1lPXthY3RpdmVMaW5rID09PSAnc2VjdGlvbjMnID8gJ2FjdGl2ZScgOiAnbm90QWN0aXZlJ30+Q29vcGVyYXRpb24gbmVlZHMgYW5kIGRpcmVjdGlvbnM8L05hdi5MaW5rPlxyXG4gICAgICAgIDxOYXYuTGluayBhcz17TGlua30gdG89XCJzZWN0aW9uNFwiIHNtb290aD17dHJ1ZX0gZHVyYXRpb249ezUwMH0gY2xhc3NOYW1lPXthY3RpdmVMaW5rID09PSAnc2VjdGlvbjQnID8gJ2FjdGl2ZScgOiAnbm90QWN0aXZlJ30+Q29vcGVyYXRpb24gbW9kZTwvTmF2Lkxpbms+XHJcbiAgICAgICAgPE5hdi5MaW5rIGFzPXtMaW5rfSB0bz1cInNlY3Rpb241XCIgc21vb3RoPXt0cnVlfSBkdXJhdGlvbj17NTAwfSBjbGFzc05hbWU9e2FjdGl2ZUxpbmsgPT09ICdzZWN0aW9uNScgPyAnYWN0aXZlJyA6ICdub3RBY3RpdmUnfT5Db25jbHVzaW9uPC9OYXYuTGluaz5cclxuICAgICAgICA8TmF2LkxpbmsgYXM9e0xpbmt9IHRvPVwic2VjdGlvbjZcIiBzbW9vdGg9e3RydWV9IGR1cmF0aW9uPXs1MDB9IGNsYXNzTmFtZT17YWN0aXZlTGluayA9PT0gJ3NlY3Rpb242JyA/ICdhY3RpdmUnIDogJ25vdEFjdGl2ZSd9PlNlY3Rpb24gNjwvTmF2Lkxpbms+XHJcbiAgICAgICAgPE5hdi5MaW5rIGFzPXtMaW5rfSB0bz1cInNlY3Rpb243XCIgc21vb3RoPXt0cnVlfSBkdXJhdGlvbj17NTAwfSBjbGFzc05hbWU9e2FjdGl2ZUxpbmsgPT09ICdzZWN0aW9uNycgPyAnYWN0aXZlJyA6ICdub3RBY3RpdmUnfT5TZWN0aW9uIDc8L05hdi5MaW5rPlxyXG4gICAgICAgIDxOYXYuTGluayBhcz17TGlua30gdG89XCJzZWN0aW9uOFwiIHNtb290aD17dHJ1ZX0gZHVyYXRpb249ezUwMH0gY2xhc3NOYW1lPXthY3RpdmVMaW5rID09PSAnc2VjdGlvbjgnID8gJ2FjdGl2ZScgOiAnbm90QWN0aXZlJ30+U2VjdGlvbiA4PC9OYXYuTGluaz5cclxuICAgICAgICA8TmF2LkxpbmsgYXM9e0xpbmt9IHRvPVwic2VjdGlvbjlcIiBzbW9vdGg9e3RydWV9IGR1cmF0aW9uPXs1MDB9IGNsYXNzTmFtZT17YWN0aXZlTGluayA9PT0gJ3NlY3Rpb245JyA/ICdhY3RpdmUnIDogJ25vdEFjdGl2ZSd9PlNlY3Rpb24gOTwvTmF2Lkxpbms+XHJcbiAgICAgICAgPE5hdi5MaW5rIGFzPXtMaW5rfSB0bz1cInNlY3Rpb24xMFwiIHNtb290aD17dHJ1ZX0gZHVyYXRpb249ezUwMH0gY2xhc3NOYW1lPXthY3RpdmVMaW5rID09PSAnc2VjdGlvbjEwJyA/ICdhY3RpdmUnIDogJ25vdEFjdGl2ZSd9PlNlY3Rpb24gMTA8L05hdi5MaW5rPlxyXG4gICAgICAgIDxOYXYuTGluayBhcz17TGlua30gdG89XCJzZWN0aW9uMTFcIiBzbW9vdGg9e3RydWV9IGR1cmF0aW9uPXs1MDB9IGNsYXNzTmFtZT17YWN0aXZlTGluayA9PT0gJ3NlY3Rpb24xMScgPyAnYWN0aXZlJyA6ICdub3RBY3RpdmUnfT5TZWN0aW9uIDExPC9OYXYuTGluaz5cclxuICAgICAgICB7LyogXHU2REZCXHU1MkEwXHU2NkY0XHU1OTFBXHU1QkZDXHU4MjJBXHU5NEZFXHU2M0E1ICovfVxyXG4gICAgICA8L05hdj5cclxuICAgIDwvZGl2PlxyXG4gICk7XHJcbn07XHJcbi8vIHNpZGVuYXZiYXIgZW5kIFxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGNvbGxhYm9yYXRpb24oKSB7XHJcbiAgICAvLyBzaWRlbmF2YmFyIGJlZ2luXHJcbiAgICBjb25zdCBbYWN0aXZlTGluaywgc2V0QWN0aXZlTGlua10gPSB1c2VTdGF0ZTxzdHJpbmc+KCcnKTtcclxuICAgICAgdXNlRWZmZWN0KCgpID0+IHtcclxuICAgICAgICBjb25zdCBoYW5kbGVTY3JvbGwgPSAoKSA9PiB7XHJcbiAgICAgICAgICBjb25zdCBzZWN0aW9ucyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5lbGVtZW50Jyk7XHJcbiAgICAgICAgICBsZXQgY3VycmVudFNlY3Rpb24gPSAnJztcclxuICAgICAgICAgICAgc2VjdGlvbnMuZm9yRWFjaChzZWN0aW9uID0+IHtcclxuICAgICAgICAgICAgICBjb25zdCBzZWN0aW9uVG9wID0gc2VjdGlvbi5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS50b3A7XHJcbiAgICAgICAgICAgICAgaWYgKHNlY3Rpb25Ub3AgPD0gd2luZG93LmlubmVySGVpZ2h0IC8gMiAmJiBzZWN0aW9uVG9wID4gLXNlY3Rpb24uY2xpZW50SGVpZ2h0KSB7XHJcbiAgICAgICAgICAgICAgICBjdXJyZW50U2VjdGlvbiA9IHNlY3Rpb24uaWQ7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIHNldEFjdGl2ZUxpbmsoY3VycmVudFNlY3Rpb24pO1xyXG4gICAgICAgIH07XHJcbiAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIGhhbmRsZVNjcm9sbCk7XHJcbiAgICAgICAgcmV0dXJuICgpID0+IHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdzY3JvbGwnLCBoYW5kbGVTY3JvbGwpO1xyXG4gICAgICB9LCBbXSk7XHJcbiAgICAgIC8vIHNpZGVuYXZiYXIgZW5kXHJcbiAgXHJcbiAgXHJcbiAgICByZXR1cm4gKFxyXG4gICAgICA8PlxyXG5cclxuPGRpdiBjbGFzc05hbWU9XCJjdXN0b20taGVhZGVyLWluY2x1c2l2aXR5XCI+XHJcbjxoMSBjbGFzc05hbWU9XCJjZW50ZXJlZC10aXRsZVwiPlxyXG4gICAgICAgICAgICAgIDxpbWcgXHJcbiAgICAgICAgICAgICAgICBzcmM9XCJodHRwczovL3N0YXRpYy5pZ2VtLndpa2kvdGVhbXMvNTM3OC9oZWFkZXIvY29sbGFib3JhdGlvbi5wbmdcIlxyXG4gICAgICAgICAgICAgICAgYWx0PVwic2FmZXR5IGhlYWRlclwiXHJcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJoZWFkZXItaW1nXCJcclxuICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBcclxuICAgICAgICAgICAgICAgIHNyYz1cImh0dHBzOi8vc3RhdGljLmlnZW0ud2lraS90ZWFtcy81Mzc4L2hlYWRlci9oZWFkZXItYmFyLndlYnBcIlxyXG4gICAgICAgICAgICAgICAgYWx0PVwic2FmZXR5IGhlYWRlclwiXHJcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJoZWFkZXItYmFyXCJcclxuICAgICAgICAgICAgICAvPlxyXG48L2gxPlxyXG48L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT0ncm93IGJnLXJpY2VfeWVsbG93Jz5cclxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC0yXCI+XHJcbiAgICAgICAgICAgIDxTaWRlTmF2YmFyIGFjdGl2ZUxpbms9e2FjdGl2ZUxpbmt9ICAgICAgICAgIC8+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIFxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtMTBcIj5cclxuICAgICAgICAgICAgXHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInZoMjBcIj5cclxuICAgICAgICAgICAgICAgIDxhIGhyZWY9XCJodHRwczovLzIwMjQuaWdlbS53aWtpL2NqdWgtamx1LWNoaW5hL2NvbGxhYm9yYXRpb25cIiA+Q0pVSC1KTFUtY2hpbmE8L2E+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPEVsZW1lbnQgbmFtZT1cInNlY3Rpb24xXCIgY2xhc3NOYW1lPVwiZWxlbWVudCByb3VuZGVkLWJvcmRlclwiIGlkPSdzZWN0aW9uMSc+XHJcbiAgICAgICAgICAgICAgICAgICA8aDI+VGVhbSBwcm9maWxlPC9oMj5cclxuICAgICAgICAgICAgICAgICAgIDxwPlRoZSBTTVUtR0RNVSBpR0VNIChJbnRlcm5hdGlvbmFsIEdlbmV0aWNhbGx5IEVuZ2luZWVyZWQgTWFjaGluZSBDb21wZXRpdGlvbikgdGVhbSwgYXMgYSBwaW9uZWVyaW5nIGZvcmNlIG9mIHJlc2VhcmNoIGlubm92YXRpb24gYXQgdGhlIFVuaXZlcnNpdHksIGlzIGNvbW1pdHRlZCB0byBleHBsb3JpbmcgdGhlIGxhdGVzdCBib3VuZGFyaWVzIG9mIHN5bnRoZXRpYyBiaW9sb2d5LiBPdXIgdGVhbSBicmluZ3MgdG9nZXRoZXIgdGhlIGJlc3Qgc3R1ZGVudHMgZnJvbSBkaWZmZXJlbnQgZGlzY2lwbGluZXMsIGluY2x1ZGluZyBtZWRpY2luZSwgYmlvbG9neSwgY29tcHV0ZXIgc2NpZW5jZSwgY2hlbWljYWwgZW5naW5lZXJpbmcgYW5kIG1hdGVyaWFscyBzY2llbmNlLCB0byBzb2x2ZSBnbG9iYWwgY2hhbGxlbmdlcyB0aHJvdWdoIGludGVyZGlzY2lwbGluYXJ5IGNvbGxhYm9yYXRpb24uPC9wPlxyXG4gICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgPC9FbGVtZW50PlxyXG4gICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgIDxFbGVtZW50IG5hbWU9XCJzZWN0aW9uMlwiIGNsYXNzTmFtZT1cImVsZW1lbnQgcm91bmRlZC1ib3JkZXJcIiBpZD0nc2VjdGlvbjInPlxyXG4gICAgICAgICAgICAgICAgICA8aDI+UHJvamVjdCBvdmVydmlldzwvaDI+XHJcbiAgICAgICAgICAgICAgICAgIDxwPlRoaXMgeWVhciwgdGhlIGlHRU0gdGVhbSBhdCBTb3V0aGVybiBNZWRpY2FsIFVuaXZlcnNpdHkgY2FycmllZCBvdXQgYSBwcm9qZWN0IGNhbGxlZCBcIkxpdmVyLUJyYWluIEd1YXJkaWFuXCIuIFRoaXMgcHJvamVjdCBhaW1zIHRvIHVzZSBzeW50aGV0aWMgYmlvbG9neSB0ZWNobm9sb2d5IHRvIGRlc2lnbiBhbmQgY29uc3RydWN0IGFuIGltcHJvdmVkIGdlbmV0aWNhbGx5IGVuZ2luZWVyZWQgYmFjdGVyaWFsIGFtbW9uaWEgbWV0YWJvbGlzbSBzeXN0ZW0gdGhhdCBjYW4gZWZmaWNpZW50bHkgcmVkdWNlIHRoZSBjb25jZW50cmF0aW9uIG9mIGFtbW9uaWEgaW4gaHVtYW4gaW50ZXN0aW5hbCB0cmFjdCwgaW4gb3JkZXIgdG8gcHJvdmlkZSBuZXcgaWRlYXMgYW5kIG5ldyBtZXRob2RzIGZvciBzb2x2aW5nIHRoZSBwcm9ibGVtIG9mIGh1bWFuIGhlcGF0aWMgZW5jZXBoYWxvcGF0aHkuPC9wPlxyXG4gICAgICAgICAgICAgICAgPC9FbGVtZW50PlxyXG4gICAgICAgICAgICBcclxuICBcclxuICAgICAgICAgICAgICAgIDxFbGVtZW50IG5hbWU9XCJzZWN0aW9uM1wiIGNsYXNzTmFtZT1cImVsZW1lbnQgcm91bmRlZC1ib3JkZXJcIiBpZD0nc2VjdGlvbjMnPlxyXG4gICAgICAgICAgICAgICAgPGgyPmNvb3BlcmF0aW9uIG5lZWRzIGFuZCBkaXJlY3Rpb25zPC9oMj5cclxuICAgICAgICAgICAgICAgIHsvKiA8cD5Db250ZW50IGZvciBzZWN0aW9uIDMuPC9wPiAqL31cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicm91bmRlZC1ib3JkZXJcIj5cclxuICAgICAgICAgICAgICAgIDxoNCBjbGFzc05hbWU9XCJjZW50ZXItdGV4dFwiPkJpb2luZm9ybWF0aWNzIHN1cHBvcnQ8L2g0PlxyXG4gICAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwiaW5kZW50XCI+Q29sbGFib3JhdGlvbjogSW52aXRlIHRlYW1zIG9yIGluZGl2aWR1YWxzIHdpdGggYSBiYWNrZ3JvdW5kIGluIGJpb2luZm9ybWF0aWNzIHRvIGFzc2lzdCB1cyBpbiBnZW5lIHNlcXVlbmNpbmcsIG1ldGFib2xpYyBwYXRod2F5IG9wdGltaXphdGlvbiwgYW5kIG1pY3JvYmlhbCBjb21tdW5pdHkgZHluYW1pY3MgbW9kZWxpbmcuIEV4cGVjdGVkIHJlc3VsdHM6IFRocm91Z2ggYmlnIGRhdGEgYW5hbHlzaXMgYW5kIG1hY2hpbmUgbGVhcm5pbmcgYWxnb3JpdGhtLCBhY2N1cmF0ZWx5IGxvY2F0ZSBrZXkgZ2VuZXMsIG9wdGltaXplIG1pY3JvYmlhbCBtZXRhYm9saWMgZWZmaWNpZW5jeSwgcHJlZGljdCBhbmQgYWRqdXN0IG1pY3JvYmlhbCBjb21tdW5pdHkgc3RydWN0dXJlIHRvIGFjaGlldmUgdGhlIGJlc3QgaGVhdnkgbWV0YWwgcmVtb3ZhbCBlZmZlY3QuPC9wPlxyXG4gICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicm91bmRlZC1ib3JkZXJcIj5cclxuICAgICAgICAgICAgICAgIDxoNCBjbGFzc05hbWU9XCJjZW50ZXItdGV4dFwiPk1hdGVyaWFscyBTY2llbmNlIGFuZCBOYW5vdGVjaG5vbG9neTwvaDQ+XHJcbiAgICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJpbmRlbnRcIj5Db2xsYWJvcmF0aW9uOiBXb3JraW5nIHdpdGggdGVhbXMgaW4gbWF0ZXJpYWxzIHNjaWVuY2UgdG8gZGV2ZWxvcCBub3ZlbCBuYW5vbWF0ZXJpYWxzIChjYXBzdWxlcy9wcm9iaW90aWMgcG93ZGVycykgYXMgbWljcm9iaWFsIGNhcnJpZXJzIG9yIGNhdGFseXN0cyB0byBlbmhhbmNlIHRoZSBzZW5zaXRpdml0eSBvZiBtaWNyb29yZ2FuaXNtcyB0byBQRUEsIGkuZS4gdGhlaXIgYWJpbGl0eSB0byByZXNwb25kIHRvIHNpZ25hbHMgYW5kIHRyYW5zZm9ybSBtZXRhYm9saXNtLjwvcD5cclxuICAgICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cImluZGVudFwiPkV4cGVjdGVkIHJlc3VsdHM6IERldmVsb3AgZWZmaWNpZW50LCBzdGFibGUgYW5kIHJlY3ljbGFibGUgbmFub2NvbXBvc2l0ZSBtYXRlcmlhbHMsIGFuZCBlbmhhbmNlIHRoZSBwcmFjdGljYWwgYXBwbGljYXRpb24gdmFsdWUgb2YgdGhlIHByb2plY3QgcmVzdWx0cy48L3A+XHJcbiAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyb3VuZGVkLWJvcmRlclwiPlxyXG4gICAgICAgICAgICAgICAgPGg0IGNsYXNzTmFtZT1cImNlbnRlci10ZXh0XCI+Q29tcHV0ZXIgU2NpZW5jZSBhbmQgYXJ0aWZpY2lhbCBJbnRlbGxpZ2VuY2U8L2g0PlxyXG4gICAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwiaW5kZW50XCI+Q29sbGFib3JhdGlvbjogVXNlIEFJIHRlY2hub2xvZ3kgdG8gb3B0aW1pemUgZXhwZXJpbWVudGFsIGRlc2lnbiBhbmQgaW1wcm92ZSBleHBlcmltZW50YWwgZWZmaWNpZW5jeTsgQXQgdGhlIHNhbWUgdGltZSwgYW4gaW50ZWxsaWdlbnQgbW9uaXRvcmluZyBzeXN0ZW0gaXMgZGV2ZWxvcGVkIHRvIG1vbml0b3IgYW5kIHByZWRpY3QgdGhlIGR5bmFtaWMgcHJvY2VzcyBvZiBtaWNyb2JpYWwgdHJlYXRtZW50IG9mIGFtbW9uaWEgaW4gdGhlIGJvZHkgaW4gcmVhbCB0aW1lLjwvcD5cclxuICAgICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cImluZGVudFwiPkV4cGVjdGVkIHJlc3VsdHM6IE9wdGltaXplIHRoZSBleHBlcmltZW50YWwgcHJvY2VzcyB0aHJvdWdoIHRoZSBhbGdvcml0aG0sIHJlZHVjZSB0aGUgY29uc3VtcHRpb24gb2YgbWFucG93ZXIgYW5kIG1hdGVyaWFsIHJlc291cmNlczsgRXN0YWJsaXNoIGFuIGludGVsbGlnZW50IGVhcmx5IHdhcm5pbmcgbWVjaGFuaXNtIHRvIGVuc3VyZSB0aGUgc2FmZSBhbmQgc3RhYmxlIG9wZXJhdGlvbiBvZiB0aGUgcHJvamVjdC48L3A+XHJcbiAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyb3VuZGVkLWJvcmRlclwiPlxyXG4gICAgICAgICAgICAgICAgPGg0IGNsYXNzTmFtZT1cImNlbnRlci10ZXh0XCI+RW52aXJvbm1lbnRhbCBzY2llbmNlIGFuZCBwb2xpY3kgcmVzZWFyY2g8L2g0PlxyXG4gICAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwiaW5kZW50XCI+Q29sbGFib3JhdGlvbjogRW52aXJvbm1lbnRhbCBzY2llbmNlIGV4cGVydHMgYW5kIHBvbGljeSByZXNlYXJjaGVycyB3aWxsIGJlIGludml0ZWQgdG8gYXNzZXNzIHRoZSBlbnZpcm9ubWVudGFsIGltcGFjdCBvZiB0aGUgcHJvamVjdCByZXN1bHRzLCBhbmQgZXhwbG9yZSB0aGUgZmVhc2liaWxpdHkgb2YgYXBwbGljYXRpb24gYW5kIHBvbGljeSByZWNvbW1lbmRhdGlvbnMuPC9wPlxyXG4gICAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwiaW5kZW50XCI+RXhwZWN0ZWQgcmVzdWx0czogRGV2ZWxvcCBzY2llbnRpZmljIGFuZCByaWdvcm91cyBlbnZpcm9ubWVudGFsIGltcGFjdCBhc3Nlc3NtZW50IHJlcG9ydHMgdG8gcHJvdmlkZSBwb2xpY3kgc3VwcG9ydCBhbmQgZ3VpZGFuY2UgZm9yIHRoZSB0cmFuc2Zvcm1hdGlvbiBhbmQgYXBwbGljYXRpb24gb2YgcHJvamVjdCByZXN1bHRzLjwvcD5cclxuICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L0VsZW1lbnQ+XHJcblxyXG4gICAgICAgICAgICAgICAgPEVsZW1lbnQgbmFtZT1cInNlY3Rpb240XCIgY2xhc3NOYW1lPVwiZWxlbWVudCByb3VuZGVkLWJvcmRlclwiIGlkPSdzZWN0aW9uNCc+XHJcbiAgICAgICAgICAgICAgICA8aDI+Q29vcGVyYXRpb24gbW9kZTwvaDI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJvdW5kZWQtYm9yZGVyXCI+XHJcbiAgICAgICAgICAgICAgICA8aDQgY2xhc3NOYW1lPVwiY2VudGVyLXRleHRcIj5SZWd1bGFyIGNvbW11bmljYXRpb24gbWVldGluZ3M8L2g0PlxyXG4gICAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwiaW5kZW50XCI+U2V0IHVwIG9ubGluZSBvciBvZmZsaW5lIG1lZXRpbmdzIHRvIHJlZ3VsYXJseSBzaGFyZSByZXNlYXJjaCBwcm9ncmVzcywgZGlzY3VzcyBwcm9ibGVtcyBlbmNvdW50ZXJlZCBhbmQgc29sdXRpb25zLjwvcD5cclxuICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJvdW5kZWQtYm9yZGVyXCI+XHJcbiAgICAgICAgICAgICAgICA8aDQgY2xhc3NOYW1lPVwiY2VudGVyLXRleHRcIj5SZXNvdXJjZSBzaGFyaW5nPC9oND5cclxuICAgICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cImluZGVudFwiPk9wZW4gZXhwZXJpbWVudGFsIGRhdGEsIGNvbXB1dGluZyByZXNvdXJjZXMgYW5kIHJlc2VhcmNoIHJlc3VsdHMgdG8gcHJvbW90ZSBrbm93bGVkZ2Ugc2hhcmluZyBhbmQgdGVjaG5pY2FsIGV4Y2hhbmdlIGFtb25nIHRlYW1zLjwvcD5cclxuICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicm91bmRlZC1ib3JkZXJcIj5cclxuICAgICAgICAgICAgICAgIDxoNCBjbGFzc05hbWU9XCJjZW50ZXItdGV4dFwiPkpvaW50IHB1YmxpY2F0aW9uPC9oND5cclxuICAgICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cImluZGVudFwiPlRlYW0gbWVtYmVycyBhcmUgZW5jb3VyYWdlZCB0byBqb2ludGx5IHNpZ24gYW5kIHB1Ymxpc2ggdGhlIHNjaWVudGlmaWMgcmVzZWFyY2ggcmVzdWx0cyBvYnRhaW5lZCB0b2dldGhlciB0byBlbmhhbmNlIHRoZSBhY2FkZW1pYyBpbmZsdWVuY2UgYW5kIGRlcHRoIG9mIGNvb3BlcmF0aW9uLjwvcD5cclxuICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJvdW5kZWQtYm9yZGVyXCI+XHJcbiAgICAgICAgICAgICAgICA8aDQgY2xhc3NOYW1lPVwiY2VudGVyLXRleHRcIj5UYWxlbnQgY3VsdGl2YXRpb248L2g0PlxyXG4gICAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwiaW5kZW50XCI+VGhyb3VnaCBpbnRlcmRpc2NpcGxpbmFyeSBjb29wZXJhdGlvbiBwcm9qZWN0cywgcHJvdmlkZSB2YWx1YWJsZSBwcmFjdGljYWwgb3Bwb3J0dW5pdGllcyBhbmQgaW50ZXJkaXNjaXBsaW5hcnkgdmlzaW9uIGZvciBwYXJ0aWNpcGF0aW5nIHN0dWRlbnRzLCBhbmQgY3VsdGl2YXRlIGludGVyZGlzY2lwbGluYXJ5IHRhbGVudHMuPC9wPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgIDwvRWxlbWVudD5cclxuXHJcbiAgICAgICAgICAgICAgPEVsZW1lbnQgbmFtZT1cInNlY3Rpb241XCIgY2xhc3NOYW1lPVwiZWxlbWVudCByb3VuZGVkLWJvcmRlclwiIGlkPSdzZWN0aW9uNSc+XHJcbiAgICAgICAgICAgICAgPGgyPkNvbmNsdXNpb248L2gyPlxyXG4gICAgICAgICAgICAgIDxwPlRoZSBTTVUtR0RNVSBpR0VNIHRlYW0gbG9va3MgZm9yd2FyZCB0byB3b3JraW5nIGhhbmQgaW4gaGFuZCB3aXRoIHBlb3BsZSBmcm9tIGFsbCB3YWxrcyBvZiBsaWZlIGF0IGhvbWUgYW5kIGFicm9hZCB0byBqb2ludGx5IHByb21vdGUgdGhlIGRldmVsb3BtZW50IG9mIHRoZSBmaWVsZCBvZiBzeW50aGV0aWMgYmlvbG9neSBhbmQgY29udHJpYnV0ZSB3aXNkb20gYW5kIHN0cmVuZ3RoIHRvIHNvbHZpbmcgZ2xvYmFsIHByb2JsZW1zLiBXZSBiZWxpZXZlIHRoYXQgdGhyb3VnaCBjbG9zZSBjb2xsYWJvcmF0aW9uIGFuZCBpbm5vdmF0aW9uLCB3ZSBjYW4gY3JlYXRlIGEgZ3JlZW5lciBhbmQgbW9yZSBzdXN0YWluYWJsZSBmdXR1cmUuPC9wPiAgICAgXHJcbiAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgPC9FbGVtZW50PlxyXG5cclxuICAgICAgICAgICAgICA8RWxlbWVudCBuYW1lPVwic2VjdGlvbjZcIiBjbGFzc05hbWU9XCJlbGVtZW50IHJvdW5kZWQtYm9yZGVyXCIgaWQ9J3NlY3Rpb242Jz5cclxuICAgICAgICAgICAgICA8aDI+U2VjdGlvbiA2PC9oMj5cclxuICAgICAgICAgICAgICA8cD5Db250ZW50IGZvciBzZWN0aW9uIDYuPC9wPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicm91bmRlZC1ib3JkZXJcIj5cclxuICAgICAgICAgICAgICA8aDQgY2xhc3NOYW1lPVwiY2VudGVyLXRleHRcIj5cdTYyMTFcdTY2MkZcdTU5MjdcdTVFMDVCPC9oND5cclxuICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJpbmRlbnRcIj5sYXMgaWpmZnMgYWlza2ZkIGZza2ogaWl3bHMgYXNkLmFhc3MgZmZhcyBhd3NzZCBhd3VzIGlpc2FsIGZhc2suYWlzaXNhZCBrc2pkZmthZiBpd2phc2lmamFrZHNoZiB3aWpkZmFsa3NqZiB3aWtzamtmamtzYWxoZiwgZ3NhaGZqaGdlamtmaCAgdWhhZWprZmggc2pkaWhnZnVxaXcgamggc2ppYWZoanNhaiBmaCBhc2QuPC9wPlxyXG4gICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cImluZGVudFwiPmxhcyBpamZmcyBhaXNrZmQgZnNraiBpaXdscyBhc2QuYWFzcyBmZmFzIGF3c3NkIGF3dXMgaWlzYWwgZmFzay5haXNpc2FkIGtzamRma2FmIGl3amFzaWZqYWtkc2hmIHdpamRmYWxrc2pmIHdpa3Nqa2Zqa3NhbGhmLCBnc2FoZmpoZ2Vqa2ZoICB1aGFlamtmaCBzamRpaGdmdXFpdyBqaCBzamlhZmhqc2FqIGZoIGFzZC48L3A+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9FbGVtZW50PlxyXG5cclxuICAgICAgICAgICAgICA8RWxlbWVudCBuYW1lPVwic2VjdGlvbjdcIiBjbGFzc05hbWU9XCJlbGVtZW50IHJvdW5kZWQtYm9yZGVyXCIgaWQ9J3NlY3Rpb243Jz5cclxuICAgICAgICAgICAgICA8aDI+U2VjdGlvbiA3PC9oMj5cclxuICAgICAgICAgICAgICA8cD5Db250ZW50IGZvciBzZWN0aW9uIDcuPC9wPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicm91bmRlZC1ib3JkZXJcIj5cclxuICAgICAgICAgICAgICA8aDQgY2xhc3NOYW1lPVwiY2VudGVyLXRleHRcIj5cdTYyMTFcdTY2MkZcdTU5MjdcdTVFMDVCPC9oND5cclxuICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJpbmRlbnRcIj5sYXMgaWpmZnMgYWlza2ZkIGZza2ogaWl3bHMgYXNkLmFhc3MgZmZhcyBhd3NzZCBhd3VzIGlpc2FsIGZhc2suYWlzaXNhZCBrc2pkZmthZiBpd2phc2lmamFrZHNoZiB3aWpkZmFsa3NqZiB3aWtzamtmamtzYWxoZiwgZ3NhaGZqaGdlamtmaCAgdWhhZWprZmggc2pkaWhnZnVxaXcgamggc2ppYWZoanNhaiBmaCBhc2QuPC9wPlxyXG4gICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cImluZGVudFwiPmxhcyBpamZmcyBhaXNrZmQgZnNraiBpaXdscyBhc2QuYWFzcyBmZmFzIGF3c3NkIGF3dXMgaWlzYWwgZmFzay5haXNpc2FkIGtzamRma2FmIGl3amFzaWZqYWtkc2hmIHdpamRmYWxrc2pmIHdpa3Nqa2Zqa3NhbGhmLCBnc2FoZmpoZ2Vqa2ZoICB1aGFlamtmaCBzamRpaGdmdXFpdyBqaCBzamlhZmhqc2FqIGZoIGFzZC48L3A+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9FbGVtZW50PlxyXG5cclxuICAgICAgICAgICAgICA8RWxlbWVudCBuYW1lPVwic2VjdGlvbjhcIiBjbGFzc05hbWU9XCJlbGVtZW50IHJvdW5kZWQtYm9yZGVyXCIgaWQ9J3NlY3Rpb244Jz5cclxuICAgICAgICAgICAgICA8aDI+U2VjdGlvbiA4PC9oMj5cclxuICAgICAgICAgICAgICA8cD5Db250ZW50IGZvciBzZWN0aW9uIDguPC9wPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicm91bmRlZC1ib3JkZXJcIj5cclxuICAgICAgICAgICAgICA8aDQgY2xhc3NOYW1lPVwiY2VudGVyLXRleHRcIj5cdTYyMTFcdTY2MkZcdTU5MjdcdTVFMDVCPC9oND5cclxuICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJpbmRlbnRcIj5sYXMgaWpmZnMgYWlza2ZkIGZza2ogaWl3bHMgYXNkLmFhc3MgZmZhcyBhd3NzZCBhd3VzIGlpc2FsIGZhc2suYWlzaXNhZCBrc2pkZmthZiBpd2phc2lmamFrZHNoZiB3aWpkZmFsa3NqZiB3aWtzamtmamtzYWxoZiwgZ3NhaGZqaGdlamtmaCAgdWhhZWprZmggc2pkaWhnZnVxaXcgamggc2ppYWZoanNhaiBmaCBhc2QuPC9wPlxyXG4gICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cImluZGVudFwiPmxhcyBpamZmcyBhaXNrZmQgZnNraiBpaXdscyBhc2QuYWFzcyBmZmFzIGF3c3NkIGF3dXMgaWlzYWwgZmFzay5haXNpc2FkIGtzamRma2FmIGl3amFzaWZqYWtkc2hmIHdpamRmYWxrc2pmIHdpa3Nqa2Zqa3NhbGhmLCBnc2FoZmpoZ2Vqa2ZoICB1aGFlamtmaCBzamRpaGdmdXFpdyBqaCBzamlhZmhqc2FqIGZoIGFzZC48L3A+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9FbGVtZW50PlxyXG5cclxuICAgICAgICAgICAgICA8RWxlbWVudCBuYW1lPVwic2VjdGlvbjlcIiBjbGFzc05hbWU9XCJlbGVtZW50IHJvdW5kZWQtYm9yZGVyXCIgaWQ9J3NlY3Rpb245Jz5cclxuICAgICAgICAgICAgICA8aDI+U2VjdGlvbiA5PC9oMj5cclxuICAgICAgICAgICAgICA8cD5Db250ZW50IGZvciBzZWN0aW9uIDkuPC9wPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicm91bmRlZC1ib3JkZXJcIj5cclxuICAgICAgICAgICAgICA8aDQgY2xhc3NOYW1lPVwiY2VudGVyLXRleHRcIj5cdTYyMTFcdTY2MkZcdTU5MjdcdTVFMDVCPC9oND5cclxuICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJpbmRlbnRcIj5sYXMgaWpmZnMgYWlza2ZkIGZza2ogaWl3bHMgYXNkLmFhc3MgZmZhcyBhd3NzZCBhd3VzIGlpc2FsIGZhc2suYWlzaXNhZCBrc2pkZmthZiBpd2phc2lmamFrZHNoZiB3aWpkZmFsa3NqZiB3aWtzamtmamtzYWxoZiwgZ3NhaGZqaGdlamtmaCAgdWhhZWprZmggc2pkaWhnZnVxaXcgamggc2ppYWZoanNhaiBmaCBhc2QuPC9wPlxyXG4gICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cImluZGVudFwiPmxhcyBpamZmcyBhaXNrZmQgZnNraiBpaXdscyBhc2QuYWFzcyBmZmFzIGF3c3NkIGF3dXMgaWlzYWwgZmFzay5haXNpc2FkIGtzamRma2FmIGl3amFzaWZqYWtkc2hmIHdpamRmYWxrc2pmIHdpa3Nqa2Zqa3NhbGhmLCBnc2FoZmpoZ2Vqa2ZoICB1aGFlamtmaCBzamRpaGdmdXFpdyBqaCBzamlhZmhqc2FqIGZoIGFzZC48L3A+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9FbGVtZW50PlxyXG5cclxuICAgICAgICAgICAgICA8RWxlbWVudCBuYW1lPVwic2VjdGlvbjEwXCIgY2xhc3NOYW1lPVwiZWxlbWVudCByb3VuZGVkLWJvcmRlclwiIGlkPSdzZWN0aW9uMTAnPlxyXG4gICAgICAgICAgICAgIDxoMj5TZWN0aW9uIDEwPC9oMj5cclxuICAgICAgICAgICAgICA8cD5Db250ZW50IGZvciBzZWN0aW9uIDEwLjwvcD5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJvdW5kZWQtYm9yZGVyXCI+XHJcbiAgICAgICAgICAgICAgPGg0IGNsYXNzTmFtZT1cImNlbnRlci10ZXh0XCI+XHU2MjExXHU2NjJGXHU1OTI3XHU1RTA1QjwvaDQ+XHJcbiAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwiaW5kZW50XCI+bGFzIGlqZmZzIGFpc2tmZCBmc2tqIGlpd2xzIGFzZC5hYXNzIGZmYXMgYXdzc2QgYXd1cyBpaXNhbCBmYXNrLmFpc2lzYWQga3NqZGZrYWYgaXdqYXNpZmpha2RzaGYgd2lqZGZhbGtzamYgd2lrc2prZmprc2FsaGYsIGdzYWhmamhnZWprZmggIHVoYWVqa2ZoIHNqZGloZ2Z1cWl3IGpoIHNqaWFmaGpzYWogZmggYXNkLjwvcD5cclxuICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJpbmRlbnRcIj5sYXMgaWpmZnMgYWlza2ZkIGZza2ogaWl3bHMgYXNkLmFhc3MgZmZhcyBhd3NzZCBhd3VzIGlpc2FsIGZhc2suYWlzaXNhZCBrc2pkZmthZiBpd2phc2lmamFrZHNoZiB3aWpkZmFsa3NqZiB3aWtzamtmamtzYWxoZiwgZ3NhaGZqaGdlamtmaCAgdWhhZWprZmggc2pkaWhnZnVxaXcgamggc2ppYWZoanNhaiBmaCBhc2QuPC9wPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvRWxlbWVudD5cclxuXHJcbiAgICAgICAgICAgICAgPEVsZW1lbnQgbmFtZT1cInNlY3Rpb24xMVwiIGNsYXNzTmFtZT1cImVsZW1lbnQgcm91bmRlZC1ib3JkZXJcIiBpZD0nc2VjdGlvbjExJz5cclxuICAgICAgICAgICAgICA8aDI+U2VjdGlvbiAxMTwvaDI+XHJcbiAgICAgICAgICAgICAgPHA+Q29udGVudCBmb3Igc2VjdGlvbiAxMS48L3A+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyb3VuZGVkLWJvcmRlclwiPlxyXG4gICAgICAgICAgICAgIDxoNCBjbGFzc05hbWU9XCJjZW50ZXItdGV4dFwiPlx1NjIxMVx1NjYyRlx1NTkyN1x1NUUwNUI8L2g0PlxyXG4gICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cImluZGVudFwiPmxhcyBpamZmcyBhaXNrZmQgZnNraiBpaXdscyBhc2QuYWFzcyBmZmFzIGF3c3NkIGF3dXMgaWlzYWwgZmFzay5haXNpc2FkIGtzamRma2FmIGl3amFzaWZqYWtkc2hmIHdpamRmYWxrc2pmIHdpa3Nqa2Zqa3NhbGhmLCBnc2FoZmpoZ2Vqa2ZoICB1aGFlamtmaCBzamRpaGdmdXFpdyBqaCBzamlhZmhqc2FqIGZoIGFzZC48L3A+XHJcbiAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwiaW5kZW50XCI+bGFzIGlqZmZzIGFpc2tmZCBmc2tqIGlpd2xzIGFzZC5hYXNzIGZmYXMgYXdzc2QgYXd1cyBpaXNhbCBmYXNrLmFpc2lzYWQga3NqZGZrYWYgaXdqYXNpZmpha2RzaGYgd2lqZGZhbGtzamYgd2lrc2prZmprc2FsaGYsIGdzYWhmamhnZWprZmggIHVoYWVqa2ZoIHNqZGloZ2Z1cWl3IGpoIHNqaWFmaGpzYWogZmggYXNkLjwvcD5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L0VsZW1lbnQ+XHJcbiAgICAgICAgICAgIFxyXG4gIFxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgXHJcbiAgICAgIDwvPlxyXG4gICAgKTtcclxuICB9IiwgImltcG9ydCB7IE5hdiB9IGZyb20gJ3JlYWN0LWJvb3RzdHJhcCc7XHJcbmltcG9ydCB7IExpbmssRWxlbWVudCB9IGZyb20gJ3JlYWN0LXNjcm9sbCc7XHJcbmltcG9ydCBSZWFjdCx7dXNlRWZmZWN0LHVzZVN0YXRlfSBmcm9tICdyZWFjdCc7XHJcblxyXG5cclxuLy8gc2lkZW5hdmJhciBiZWdpblxyXG5pbnRlcmZhY2UgU2lkZU5hdmJhclByb3BzIHtcclxuICBhY3RpdmVMaW5rOiBzdHJpbmc7XHJcbn1cclxuY29uc3QgU2lkZU5hdmJhcjogUmVhY3QuRkM8U2lkZU5hdmJhclByb3BzPiA9ICh7IGFjdGl2ZUxpbmsgfSkgPT4ge1xyXG4gIHJldHVybiAoXHJcbiAgICA8ZGl2IGNsYXNzTmFtZT1cInNpZGUtbmF2YmFyXCI+XHJcbiAgICAgIDxOYXYgY2xhc3NOYW1lPVwiZmxleC1jb2x1bW5cIj5cclxuICAgICAgICA8TmF2LkxpbmsgYXM9e0xpbmt9IHRvPVwic2VjdGlvbjFcIiBzbW9vdGg9e3RydWV9IGR1cmF0aW9uPXs1MDB9IGNsYXNzTmFtZT17YWN0aXZlTGluayA9PT0gJ3NlY3Rpb24xJyA/ICdhY3RpdmUnIDogJ25vdEFjdGl2ZSd9PkJhc2ljZSBQYXJ0czwvTmF2Lkxpbms+XHJcbiAgICAgICAgPE5hdi5MaW5rIGFzPXtMaW5rfSB0bz1cInNlY3Rpb24yXCIgc21vb3RoPXt0cnVlfSBkdXJhdGlvbj17NTAwfSBjbGFzc05hbWU9e2FjdGl2ZUxpbmsgPT09ICdzZWN0aW9uMicgPyAnYWN0aXZlJyA6ICdub3RBY3RpdmUnfT5Db21wb3NpdGUgUGFydHM8L05hdi5MaW5rPlxyXG4gICAgICAgIDxOYXYuTGluayBhcz17TGlua30gdG89XCJzZWN0aW9uM1wiIHNtb290aD17dHJ1ZX0gZHVyYXRpb249ezUwMH0gY2xhc3NOYW1lPXthY3RpdmVMaW5rID09PSAnc2VjdGlvbjMnID8gJ2FjdGl2ZScgOiAnbm90QWN0aXZlJ30+Q29udHJpYnV0aW9uPC9OYXYuTGluaz5cclxuICAgICAgPC9OYXY+XHJcbiAgICA8L2Rpdj5cclxuICApO1xyXG59O1xyXG4vLyBzaWRlbmF2YmFyIGVuZCBcclxuXHJcbnR5cGUgVGFibGVSb3dEYXRhID0ge1xyXG4gIGlkOiBzdHJpbmc7XHJcbiAgdHlwZTogc3RyaW5nO1xyXG4gIGRlc2NyaXB0aW9uOiBzdHJpbmc7XHJcbiAgY2xhc3M6IHN0cmluZztcclxuICBsaW5rOiBzdHJpbmc7XHJcbn07XHJcblxyXG5jb25zdCBiYXNpY1BhcnRzOiBUYWJsZVJvd0RhdGFbXSA9IFtcclxuICB7IGlkOiAnQkJhX0s1Mzc4MDAwJywgdHlwZTogJ0NvZGluZycsIGRlc2NyaXB0aW9uOiAnR1MnLGNsYXNzOlwidGFibGUtZWxlbWVudC15ZWxsb3dcIixsaW5rOidodHRwczovL3BhcnRzLmlnZW0ub3JnL1BhcnQ6QkJhX0s1Mzc4MDAwJyB9LFxyXG4gIHsgaWQ6ICdCQmFfSzUzNzgwMDEnLCB0eXBlOiAnQ29kaW5nJywgZGVzY3JpcHRpb246ICdUUEgxJyxjbGFzczpcInRhYmxlLWVsZW1lbnQtb3JhbmdlXCIsbGluazonaHR0cHM6Ly9wYXJ0cy5pZ2VtLm9yZy9QYXJ0OkJCYV9LNTM3ODAwMSd9LFxyXG4gIHsgaWQ6ICdCQmFfSzUzNzgwMDYnLCB0eXBlOiAnQ29kaW5nJywgZGVzY3JpcHRpb246ICd0eW5BLUc0OTRTJyxjbGFzczpcInRhYmxlLWVsZW1lbnQteWVsbG93XCIsbGluazonaHR0cHM6Ly9wYXJ0cy5pZ2VtLm9yZy9QYXJ0OkJCYV9LNTM3ODAwNid9LFxyXG4gIHsgaWQ6ICdCQmFfSzUzNzgwMDcnLCB0eXBlOiAnQ29kaW5nJywgZGVzY3JpcHRpb246ICdmZWFSLUE4MUwnLGNsYXNzOlwidGFibGUtZWxlbWVudC1vcmFuZ2VcIixsaW5rOidodHRwczovL3BhcnRzLmlnZW0ub3JnL1BhcnQ6QkJhX0s1Mzc4MDA3J30sXHJcbiAgeyBpZDogJ0JCYV9LNTM3ODAwOScsIHR5cGU6ICdQcm9tb3RlcicsIGRlc2NyaXB0aW9uOiAnUHR5bkEnLGNsYXNzOlwidGFibGUtZWxlbWVudC15ZWxsb3dcIixsaW5rOidodHRwczovL3BhcnRzLmlnZW0ub3JnL1BhcnQ6QkJhX0s1Mzc4MDA5J30sXHJcbiAgeyBpZDogJ0JCYV9LNTM3ODAxMScsIHR5cGU6ICdDb2RpbmcnLCBkZXNjcmlwdGlvbjogJ0NzZ0EnLGNsYXNzOlwidGFibGUtZWxlbWVudC1vcmFuZ2VcIixsaW5rOidodHRwczovL3BhcnRzLmlnZW0ub3JnL1BhcnQ6QkJhX0s1Mzc4MDExJ30sXHJcbiAgeyBpZDogJ0JCYV9LNTM3ODAxMicsIHR5cGU6ICdDb2RpbmcnLCBkZXNjcmlwdGlvbjogJ1RGRjMnLGNsYXNzOlwidGFibGUtZWxlbWVudC15ZWxsb3dcIixsaW5rOidodHRwczovL3BhcnRzLmlnZW0ub3JnL1BhcnQ6QkJhX0s1Mzc4MDEyJ30sXHJcbiAgeyBpZDogJ0JCYV9LNTM3ODAxNicsIHR5cGU6ICdSQlMnLCBkZXNjcmlwdGlvbjogJ1JCUycsY2xhc3M6XCJ0YWJsZS1lbGVtZW50LW9yYW5nZVwiLGxpbms6J2h0dHBzOi8vcGFydHMuaWdlbS5vcmcvUGFydDpCQmFfSzUzNzgwMTYnfSxcclxuICB7IGlkOiAnQkJhX0s1Mzc4MDE4JywgdHlwZTogJ0NvZGluZycsIGRlc2NyaXB0aW9uOiAnR0ZQJyxjbGFzczpcInRhYmxlLWVsZW1lbnQteWVsbG93XCIsbGluazonaHR0cHM6Ly9wYXJ0cy5pZ2VtLm9yZy9QYXJ0OkJCYV9LNTM3ODAxOCcgfSxcclxuICB7IGlkOiAnQkJhX0s1Mzc4MDIwJywgdHlwZTogJ0NvZGluZycsIGRlc2NyaXB0aW9uOiAnNnhIaXMnLGNsYXNzOlwidGFibGUtZWxlbWVudC1vcmFuZ2UgdGFibGUtYm90dG9tLWxpbmVcIixsaW5rOidodHRwczovL3BhcnRzLmlnZW0ub3JnL3BhcnRzZGIvZWRpdF9zZXEuY2dpP3BhcnQ9QkJhX0s1Mzc4MDIwJ30sXHJcbl07XHJcbmNvbnN0IGNvbXBvc2l0ZVBhcnRzOiBUYWJsZVJvd0RhdGFbXSA9IFtcclxuICB7IGlkOiAnQkJhX0s1Mzc4MDAyJywgdHlwZTogJ0NvbXBvc2l0ZScsIGRlc2NyaXB0aW9uOiAnUHR5bkEtUkJTLVRQSDEnLGNsYXNzOlwidGFibGUtZWxlbWVudC15ZWxsb3dcIixsaW5rOidodHRwczovL3BhcnRzLmlnZW0ub3JnL1BhcnQ6QkJhX0s1Mzc4MDAyJyB9LFxyXG4gIHsgaWQ6ICdCQmFfSzUzNzgwMDMnLCB0eXBlOiAnQ29tcG9zaXRlJywgZGVzY3JpcHRpb246ICdQdHluQS1SQlMtR1MnLGNsYXNzOlwidGFibGUtZWxlbWVudC1vcmFuZ2VcIixsaW5rOidodHRwczovL3BhcnRzLmlnZW0ub3JnL1BhcnQ6QkJhX0s1Mzc4MDAzJ30sXHJcbiAgeyBpZDogJ0JCYV9LNTM3ODAwNCcsIHR5cGU6ICdDb21wb3NpdGUnLCBkZXNjcmlwdGlvbjogJ2ZlYVItQTgxTC1HNDk0Uy1QdHluQS1HUycsY2xhc3M6XCJ0YWJsZS1lbGVtZW50LXllbGxvd1wiLGxpbms6J2h0dHBzOi8vcGFydHMuaWdlbS5vcmcvUGFydDpCQmFfSzUzNzgwMDQnfSxcclxuICB7IGlkOiAnQkJhX0s1Mzc4MDA1JywgdHlwZTogJ0NvbXBvc2l0ZScsIGRlc2NyaXB0aW9uOiAnZmVhUi1BODFMLUc0OTRTLVB0eW5BLVRQSDEnLGNsYXNzOlwidGFibGUtZWxlbWVudC1vcmFuZ2VcIixsaW5rOidodHRwczovL3BhcnRzLmlnZW0ub3JnL1BhcnQ6QkJhX0s1Mzc4MDA1J30sXHJcbiAgeyBpZDogJ0JCYV9LNTM3ODAxOScsIHR5cGU6ICdDb21wb3NpdGUnLCBkZXNjcmlwdGlvbjogJ1B0eW5BLVJCUy1HRlAnLGNsYXNzOlwidGFibGUtZWxlbWVudC15ZWxsb3dcIixsaW5rOidodHRwczovL3BhcnRzLmlnZW0ub3JnL1BhcnQ6QkJhX0s1Mzc4MDE5J30sXHJcbiAgeyBpZDogJ0JCYV9LNTM3ODAyMScsIHR5cGU6ICdDb21wb3NpdGUnLCBkZXNjcmlwdGlvbjogJ0NzZ0EtNnhIaXMtVEZGMycsY2xhc3M6XCJ0YWJsZS1lbGVtZW50LW9yYW5nZSB0YWJsZS1ib3R0b20tbGluZVwiLGxpbms6J2h0dHBzOi8vcGFydHMuaWdlbS5vcmcvUGFydDpCQmFfSzUzNzgwMjEnfSxcclxuXTtcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBwYXJ0cygpIHtcclxuICAgIC8vIHNpZGVuYXZiYXIgYmVnaW5cclxuICAgIGNvbnN0IFthY3RpdmVMaW5rLCBzZXRBY3RpdmVMaW5rXSA9IHVzZVN0YXRlPHN0cmluZz4oJycpO1xyXG4gICAgICB1c2VFZmZlY3QoKCkgPT4ge1xyXG4gICAgICAgIGNvbnN0IGhhbmRsZVNjcm9sbCA9ICgpID0+IHtcclxuICAgICAgICAgIGNvbnN0IHNlY3Rpb25zID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnLmVsZW1lbnQnKTtcclxuICAgICAgICAgIGxldCBjdXJyZW50U2VjdGlvbiA9ICcnO1xyXG4gICAgICAgICAgICBzZWN0aW9ucy5mb3JFYWNoKHNlY3Rpb24gPT4ge1xyXG4gICAgICAgICAgICAgIGNvbnN0IHNlY3Rpb25Ub3AgPSBzZWN0aW9uLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnRvcDtcclxuICAgICAgICAgICAgICBpZiAoc2VjdGlvblRvcCA8PSB3aW5kb3cuaW5uZXJIZWlnaHQgLyAyICYmIHNlY3Rpb25Ub3AgPiAtc2VjdGlvbi5jbGllbnRIZWlnaHQpIHtcclxuICAgICAgICAgICAgICAgIGN1cnJlbnRTZWN0aW9uID0gc2VjdGlvbi5pZDtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgc2V0QWN0aXZlTGluayhjdXJyZW50U2VjdGlvbik7XHJcbiAgICAgICAgfTtcclxuICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgaGFuZGxlU2Nyb2xsKTtcclxuICAgICAgICByZXR1cm4gKCkgPT4gd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIGhhbmRsZVNjcm9sbCk7XHJcbiAgICAgIH0sIFtdKTtcclxuICAgICAgLy8gc2lkZW5hdmJhciBlbmRcclxuICBcclxuICBcclxuICAgIHJldHVybiAoXHJcbiAgICAgIDw+XHJcbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY3VzdG9tLWhlYWRlci1wYXJ0c1wiPlxyXG4gICAgICAgICAgICAgICAgPGgxIGNsYXNzTmFtZT1cImNlbnRlcmVkLXRpdGxlXCI+XHJcbiAgICAgICAgICAgICAgICA8aW1nXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHNyYz1cImh0dHBzOi8vc3RhdGljLmlnZW0ud2lraS90ZWFtcy81Mzc4L2hlYWRlci9wYXJ0cy5wbmdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBhbHQ9XCJzYWZldHkgaGVhZGVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiaGVhZGVyLWltZ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICA8aW1nXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHNyYz1cImh0dHBzOi8vc3RhdGljLmlnZW0ud2lraS90ZWFtcy81Mzc4L2hlYWRlci9oZWFkZXItYmFyLndlYnBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBhbHQ9XCJzYWZldHkgaGVhZGVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiaGVhZGVyLWJhclwiXHJcbiAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgIDwvaDE+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT0ncm93IGJnLXJpY2VfeWVsbG93Jz5cclxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC0yXCI+XHJcbiAgICAgICAgICAgIDxTaWRlTmF2YmFyIGFjdGl2ZUxpbms9e2FjdGl2ZUxpbmt9ICAgICAgICAgIC8+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIFxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtMTBcIj5cclxuICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICA8RWxlbWVudCBuYW1lPVwic2VjdGlvbjFcIiBjbGFzc05hbWU9XCJlbGVtZW50IHJvdW5kZWQtYm9yZGVyXCIgaWQ9J3NlY3Rpb24xJz5cclxuICAgICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cImluZGVudFwiPldlIGhhdmUgYnVpbHQgc2V2ZXJhbCBCaW9Ccmlja3MsIHdoaWNoIGNvdmVyIGFsbCBhc3BlY3RzIHRocm91Z2hvdXQgb3VyIHByb2plY3RzLCBjb25zdGl0dXRpbmcgb3VyIHNlbnNvcnkgbW9kdWxlLCBtZXRhYm9saWMgbW9kdWxlLCBhbmQgc2FmZXR5IG1vZHVsZS48L3A+XHJcbiAgICAgICAgICAgICAgICAgICA8aDI+MS5PdXIgQmFzaWMgUGFydHM8L2gyPlxyXG4gICAgICAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwiaW5kZW50XCI+V2UgZGVzaWduZWQgc2l4IGJhc2ljIHBhcnRzIGluIHRvdGFsIHRoaXMgeWVhcix5b3UgY2FuIGNsaWNrIG9uIHRoZSBwYXJ0IHRvIHNlZSBkZXRhaWxzLjwvcD5cclxuICAgICAgICAgICAgICAgICAgIDx0YWJsZSBjbGFzc05hbWU9XCJ0aHJlZS1saW5lLXRhYmxlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dGhlYWQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHIgY2xhc3NOYW1lPSd0YWJsZS1oZWFkLWxpbmUnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5QYXJ0IE5hbWU8L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5UeXBlPC90aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+U2hvcnQgRGVzY3JpcHRpb248L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC90aGVhZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHRib2R5PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge2Jhc2ljUGFydHMubWFwKChyb3cpID0+IChcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHIgY2xhc3NOYW1lPXtyb3cuY2xhc3N9IGtleT17cm93LmlkfT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPjxhIGhyZWY9e3Jvdy5saW5rfT57cm93LmlkfTwvYT48L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+e3Jvdy50eXBlfTwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD57cm93LmRlc2NyaXB0aW9ufTwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICkpfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3Rib2R5PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvdGFibGU+XHJcbiAgICAgICAgICAgICAgICAgPC9FbGVtZW50PlxyXG5cclxuICAgICAgICAgICAgICAgIDxFbGVtZW50IG5hbWU9XCJzZWN0aW9uMlwiIGNsYXNzTmFtZT1cImVsZW1lbnQgcm91bmRlZC1ib3JkZXJcIiBpZD0nc2VjdGlvbjInPlxyXG4gICAgICAgICAgICAgICAgICA8aDI+Mi5PdXIgQ29tcG9zaXRlIFBhcnRzPC9oMj5cclxuICAgICAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwiaW5kZW50XCI+V2UgZGVzaWduZWQgc2V2ZW4gY29tcG9zaXRlIHBhcnRzIGluIHRvdGFsIHRoaXMgeWVhcix5b3UgY2FuIGNsaWNrIG9uIHRoZSBwYXJ0IHRvIHNlZSBkZXRhaWxzLjwvcD5cclxuICAgICAgICAgICAgICAgICAgPHRhYmxlIGNsYXNzTmFtZT1cInRocmVlLWxpbmUtdGFibGVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDx0aGVhZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ciBjbGFzc05hbWU9J3RhYmxlLWhlYWQtbGluZSc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoID5QYXJ0IE5hbWU8L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCA+VHlwZTwvdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoID5TaG9ydCBEZXNjcmlwdGlvbjwvdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3RoZWFkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8dGJvZHk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7Y29tcG9zaXRlUGFydHMubWFwKChyb3cpID0+IChcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHIgY2xhc3NOYW1lPXtyb3cuY2xhc3N9IGtleT17cm93LmlkfT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPjxhIGhyZWY9e3Jvdy5saW5rfT57cm93LmlkfTwvYT48L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+e3Jvdy50eXBlfTwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD57cm93LmRlc2NyaXB0aW9ufTwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICkpfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3Rib2R5PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvdGFibGU+ICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgIDwvRWxlbWVudD5cclxuICAgICAgICAgICAgXHJcbiAgXHJcbiAgICAgICAgICAgICAgICA8RWxlbWVudCBuYW1lPVwic2VjdGlvbjNcIiBjbGFzc05hbWU9XCJlbGVtZW50IHJvdW5kZWQtYm9yZGVyXCIgaWQ9J3NlY3Rpb24zJz5cclxuICAgICAgICAgICAgICAgIDxoMj4gMy5Db250cmlidXRpb248L2gyPlxyXG4gICAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwiaW5kZW50XCI+SW4gYWRkaXRpb24sIHdlIGhhdmUgYWRkZWQgY29udGVudCB0byB0aGUgdXBsb2FkZWQgcGFydHMuPC9wPlxyXG4gICAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwiaW5kZW50XCI+V2Ugb3B0aW1pemVkIHRoZSBjb2RvbiBvZiA8YSBocmVmPSdodHRwczovL3BhcnRzLmlnZW0ub3JnL1BhcnQ6QkJhX0szOTI0MDExJz5CQmFfSzM5MjQwMTE8L2E+IGFuZCA8YSBocmVmPSdodHRwczovL3BhcnRzLmlnZW0ub3JnL1BhcnQ6QkJhX0szOTI0MDAyJz5CQmFfSzM5MjQwMDI8L2E+LCBhbmQgYWRkZWQgdHdvIGJhc2ljIGNvbXBvbmVudHMgYWNjb3JkaW5nbHksIG5hbWVseSA8YSBocmVmPSdodHRwczovL3BhcnRzLmlnZW0ub3JnL1BhcnQ6QkJhX0s1Mzc4MDExJz5CQmFfSzUzNzgwMTE8L2E+IGFuZCA8YSBocmVmPSdodHRwczovL3BhcnRzLmlnZW0ub3JnL1BhcnQ6QkJhX0s1Mzc4MDEyJz5CQmFfSzUzNzgwMTI8L2E+LjwvcD5cclxuICAgICAgICAgICAgICAgIDwvRWxlbWVudD5cclxuXHJcbiAgICAgICAgICAgICAgXHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICBcclxuICAgICAgPC8+XHJcbiAgICApO1xyXG4gIH0iLCAiaW1wb3J0IHsgTmF2IH0gZnJvbSAncmVhY3QtYm9vdHN0cmFwJztcclxuaW1wb3J0IHsgTGluayxFbGVtZW50IH0gZnJvbSAncmVhY3Qtc2Nyb2xsJztcclxuaW1wb3J0IFJlYWN0LHt1c2VFZmZlY3QsdXNlU3RhdGV9IGZyb20gJ3JlYWN0JztcclxuXHJcbi8vIHNpZGVuYXZiYXIgYmVnaW5cclxuaW50ZXJmYWNlIFNpZGVOYXZiYXJQcm9wcyB7XHJcbiAgYWN0aXZlTGluazogc3RyaW5nO1xyXG59XHJcbmNvbnN0IFNpZGVOYXZiYXI6IFJlYWN0LkZDPFNpZGVOYXZiYXJQcm9wcz4gPSAoeyBhY3RpdmVMaW5rIH0pID0+IHtcclxuICByZXR1cm4gKFxyXG4gICAgPGRpdiBjbGFzc05hbWU9XCJzaWRlLW5hdmJhclwiPlxyXG4gICAgICA8TmF2IGNsYXNzTmFtZT1cImZsZXgtY29sdW1uXCI+XHJcbiAgICAgICAgPE5hdi5MaW5rIGFzPXtMaW5rfSB0bz1cInNlY3Rpb24xXCIgc21vb3RoPXt0cnVlfSBkdXJhdGlvbj17NTAwfSBjbGFzc05hbWU9e2FjdGl2ZUxpbmsgPT09ICdzZWN0aW9uMScgPyAnYWN0aXZlJyA6ICdub3RBY3RpdmUnfT5TZWN0aW9uIDE8L05hdi5MaW5rPlxyXG4gICAgICAgIDxOYXYuTGluayBhcz17TGlua30gdG89XCJzZWN0aW9uMlwiIHNtb290aD17dHJ1ZX0gZHVyYXRpb249ezUwMH0gY2xhc3NOYW1lPXthY3RpdmVMaW5rID09PSAnc2VjdGlvbjInID8gJ2FjdGl2ZScgOiAnbm90QWN0aXZlJ30+U2VjdGlvbiAyPC9OYXYuTGluaz5cclxuICAgICAgICA8TmF2LkxpbmsgYXM9e0xpbmt9IHRvPVwic2VjdGlvbjNcIiBzbW9vdGg9e3RydWV9IGR1cmF0aW9uPXs1MDB9IGNsYXNzTmFtZT17YWN0aXZlTGluayA9PT0gJ3NlY3Rpb24zJyA/ICdhY3RpdmUnIDogJ25vdEFjdGl2ZSd9PlNlY3Rpb24gMzwvTmF2Lkxpbms+XHJcbiAgICAgICAgPE5hdi5MaW5rIGFzPXtMaW5rfSB0bz1cInNlY3Rpb240XCIgc21vb3RoPXt0cnVlfSBkdXJhdGlvbj17NTAwfSBjbGFzc05hbWU9e2FjdGl2ZUxpbmsgPT09ICdzZWN0aW9uNCcgPyAnYWN0aXZlJyA6ICdub3RBY3RpdmUnfT5TZWN0aW9uIDQ8L05hdi5MaW5rPlxyXG4gICAgICAgIDxOYXYuTGluayBhcz17TGlua30gdG89XCJzZWN0aW9uNVwiIHNtb290aD17dHJ1ZX0gZHVyYXRpb249ezUwMH0gY2xhc3NOYW1lPXthY3RpdmVMaW5rID09PSAnc2VjdGlvbjUnID8gJ2FjdGl2ZScgOiAnbm90QWN0aXZlJ30+U2VjdGlvbiA1PC9OYXYuTGluaz5cclxuICAgICAgICA8TmF2LkxpbmsgYXM9e0xpbmt9IHRvPVwic2VjdGlvbjZcIiBzbW9vdGg9e3RydWV9IGR1cmF0aW9uPXs1MDB9IGNsYXNzTmFtZT17YWN0aXZlTGluayA9PT0gJ3NlY3Rpb242JyA/ICdhY3RpdmUnIDogJ25vdEFjdGl2ZSd9PlNlY3Rpb24gNjwvTmF2Lkxpbms+XHJcbiAgICAgICAgPE5hdi5MaW5rIGFzPXtMaW5rfSB0bz1cInNlY3Rpb243XCIgc21vb3RoPXt0cnVlfSBkdXJhdGlvbj17NTAwfSBjbGFzc05hbWU9e2FjdGl2ZUxpbmsgPT09ICdzZWN0aW9uNycgPyAnYWN0aXZlJyA6ICdub3RBY3RpdmUnfT5TZWN0aW9uIDc8L05hdi5MaW5rPlxyXG4gICAgICAgIDxOYXYuTGluayBhcz17TGlua30gdG89XCJzZWN0aW9uOFwiIHNtb290aD17dHJ1ZX0gZHVyYXRpb249ezUwMH0gY2xhc3NOYW1lPXthY3RpdmVMaW5rID09PSAnc2VjdGlvbjgnID8gJ2FjdGl2ZScgOiAnbm90QWN0aXZlJ30+U2VjdGlvbiA4PC9OYXYuTGluaz5cclxuICAgICAgICA8TmF2LkxpbmsgYXM9e0xpbmt9IHRvPVwic2VjdGlvbjlcIiBzbW9vdGg9e3RydWV9IGR1cmF0aW9uPXs1MDB9IGNsYXNzTmFtZT17YWN0aXZlTGluayA9PT0gJ3NlY3Rpb245JyA/ICdhY3RpdmUnIDogJ25vdEFjdGl2ZSd9PlNlY3Rpb24gOTwvTmF2Lkxpbms+XHJcbiAgICAgICAgPE5hdi5MaW5rIGFzPXtMaW5rfSB0bz1cInNlY3Rpb24xMFwiIHNtb290aD17dHJ1ZX0gZHVyYXRpb249ezUwMH0gY2xhc3NOYW1lPXthY3RpdmVMaW5rID09PSAnc2VjdGlvbjEwJyA/ICdhY3RpdmUnIDogJ25vdEFjdGl2ZSd9PlNlY3Rpb24gMTA8L05hdi5MaW5rPlxyXG4gICAgICAgIDxOYXYuTGluayBhcz17TGlua30gdG89XCJzZWN0aW9uMTFcIiBzbW9vdGg9e3RydWV9IGR1cmF0aW9uPXs1MDB9IGNsYXNzTmFtZT17YWN0aXZlTGluayA9PT0gJ3NlY3Rpb24xMScgPyAnYWN0aXZlJyA6ICdub3RBY3RpdmUnfT5TZWN0aW9uIDExPC9OYXYuTGluaz5cclxuICAgICAgICB7LyogXHU2REZCXHU1MkEwXHU2NkY0XHU1OTFBXHU1QkZDXHU4MjJBXHU5NEZFXHU2M0E1ICovfVxyXG4gICAgICA8L05hdj5cclxuICAgIDwvZGl2PlxyXG4gICk7XHJcbn07XHJcbi8vIHNpZGVuYXZiYXIgZW5kIFxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIERlc2lnbigpIHtcclxuICAvLyBzaWRlbmF2YmFyIGJlZ2luXHJcbiAgY29uc3QgW2FjdGl2ZUxpbmssIHNldEFjdGl2ZUxpbmtdID0gdXNlU3RhdGU8c3RyaW5nPignJyk7XHJcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xyXG4gICAgICBjb25zdCBoYW5kbGVTY3JvbGwgPSAoKSA9PiB7XHJcbiAgICAgICAgY29uc3Qgc2VjdGlvbnMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcuZWxlbWVudCcpO1xyXG4gICAgICAgIGxldCBjdXJyZW50U2VjdGlvbiA9ICcnO1xyXG4gICAgICAgICAgc2VjdGlvbnMuZm9yRWFjaChzZWN0aW9uID0+IHtcclxuICAgICAgICAgICAgY29uc3Qgc2VjdGlvblRvcCA9IHNlY3Rpb24uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkudG9wO1xyXG4gICAgICAgICAgICBpZiAoc2VjdGlvblRvcCA8PSB3aW5kb3cuaW5uZXJIZWlnaHQgLyAyICYmIHNlY3Rpb25Ub3AgPiAtc2VjdGlvbi5jbGllbnRIZWlnaHQpIHtcclxuICAgICAgICAgICAgICBjdXJyZW50U2VjdGlvbiA9IHNlY3Rpb24uaWQ7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIHNldEFjdGl2ZUxpbmsoY3VycmVudFNlY3Rpb24pO1xyXG4gICAgICB9O1xyXG4gICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgaGFuZGxlU2Nyb2xsKTtcclxuICAgICAgcmV0dXJuICgpID0+IHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdzY3JvbGwnLCBoYW5kbGVTY3JvbGwpO1xyXG4gICAgfSwgW10pO1xyXG4gICAgLy8gc2lkZW5hdmJhciBlbmRcclxuXHJcblxyXG5cclxuICByZXR1cm4gKFxyXG4gICAgPD5cclxuICAgIDxkaXYgY2xhc3NOYW1lPVwiY3VzdG9tLWhlYWRlci1kZXNpZ25cIj5cclxuPGgxIGNsYXNzTmFtZT1cImNlbnRlcmVkLXRpdGxlXCI+XHJcblxyXG4gICAgICAgICAgICAgIDxpbWcgXHJcbiAgICAgICAgICAgICAgICBzcmM9XCJodHRwczovL3N0YXRpYy5pZ2VtLndpa2kvdGVhbXMvNTM3OC9oZWFkZXIvZGVzaWduLnBuZ1wiXHJcbiAgICAgICAgICAgICAgICBhbHQ9XCJzYWZldHkgaGVhZGVyXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImhlYWRlci1pbWdcIlxyXG4gICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgPGltZyBcclxuICAgICAgICAgICAgICAgIHNyYz1cImh0dHBzOi8vc3RhdGljLmlnZW0ud2lraS90ZWFtcy81Mzc4L2hlYWRlci9oZWFkZXItYmFyLndlYnBcIlxyXG4gICAgICAgICAgICAgICAgYWx0PVwic2FmZXR5IGhlYWRlclwiXHJcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJoZWFkZXItYmFyXCJcclxuICAgICAgICAgICAgICAvPlxyXG48L2gxPlxyXG48L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJyb3cgIGJnLXJpY2VfeWVsbG93XCI+XHJcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtMlwiPlxyXG4gICAgICAgICAgPFNpZGVOYXZiYXIgYWN0aXZlTGluaz17YWN0aXZlTGlua30gICAgICAgICAgLz5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICBcclxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC0xMFwiPlxyXG4gICAgICAgICAgXHJcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJiZC1jYWxsb3V0IGJkLWNhbGxvdXQtaW5mbyBiZy1ncmF5XCI+XHJcbiAgICAgICAgICAgICAgICAgIDxoMT5XaGF0IGRvIHdlIGRvIHRvIC4uLj8gU2VlLi4uPC9oMT5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgPEVsZW1lbnQgbmFtZT1cInNlY3Rpb24xXCIgY2xhc3NOYW1lPVwiZWxlbWVudFwiIGlkPSdzZWN0aW9uMSc+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT0ncm93IGNlbnRlci1kaXYnPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT0nY29sLTQgJz48aW1nIHNyYz0naHR0cHM6Ly9wbGFjZWhvbGQuY28vNjAweDUwMCcgY2xhc3NOYW1lPSdyZXNwb25zaXZlLWltZycgLz5cclxuICAgICAgICAgICAgICAgICAgPGZpZ2NhcHRpb24gY2xhc3NOYW1lPSdjYXB0aW9uJz5cdThGRDlcdTY2MkZcdTU2RkVcdTZDRThcdTc2ODRcdTRFRTNcdTc4MDEsXHU1NzI4XHU1NkZFXHU3MjQ3XHU0RTBCXHU5NzYyXHU0RjdGXHU3NTI4PC9maWdjYXB0aW9uPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT0nY29sLTYgJz5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPSdyb3VuZGVkLWJvcmRlciBtYXJnaW4tMCc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxoMyBjbGFzc05hbWU9XCJjZW50ZXItdGV4dFwiPldhcyBpbHVzbWE8L2gzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJpbmRlbnRcIj5sYXMgaWpmZnMgYWlza2ZkIGZza2ogaWl3bHMgYXNkLmFhc3MgZmZhcyBhd3NzZCBhd3VzIGlpc2FsIGZhc2suYWlzaXNhZCBrc2pkZmthZiBpd2phc2lmamFrZHNoZiB3aWpkZmFsa3NqZiB3aWtzamtmamtzYWxoZiwgZ3NhaGZqaGdlamtmaCAgdWhhZWprZmggc2pkaWhnZnVxaXcgamggc2ppYWZoanNhaiBmaCBhc2QuPC9wPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJpbmRlbnRcIj5sYXMgaWpmZnMgYWlza2ZkIGZza2ogaWl3bHMgYXNkLmFhc3MgZmZhcyBhd3NzZCBhd3VzIGlpc2FsIGZhc2suYWlzaXNhZCBrc2pkZmthZiBpd2phc2lmamFrZHNoZiB3aWpkZmFsa3NqZiB3aWtzamtmamtzYWxoZiwgZ3NhaGZqaGdlamtmaCAgdWhhZWprZmggc2pkaWhnZnVxaXcgamggc2ppYWZoanNhaiBmaCBhc2QuPC9wPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvRWxlbWVudD5cclxuXHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImJkLWNhbGxvdXQgYmQtY2FsbG91dC1pbmZvIGJnLWdyYXlcIj5cclxuICAgICAgICAgICAgICAgICAgPGgxPldoYXQgZG8gd2UgZG8gdG8gLi4uPyBTZWUuLi48L2gxPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgey8qIDxoMj5TZWN0aW9uIDE8L2gyPlxyXG4gICAgICAgICAgICAgICAgIDxwPkNvbnRlbnQgZm9yIHNlY3Rpb24gMS48L3A+XHJcbiAgICAgICAgICAgICAgICAgPGltZyBcclxuICAgICAgICAgICAgICAgIHNyYz1cImh0dHBzOi8vc3RhdGljLmlnZW0ud2lraS90ZWFtcy81Mzc4L3NjaG9vbC1iYWRnZS95YW55aW50ZWNoLndlYnBcIlxyXG4gICAgICAgICAgICAgICAgYWx0PVwiZXhhbXBsZVwiXHJcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJyZXNwb25zaXZlLWltZ1wiXHJcbiAgICAgICAgICAgICAgLz4gKi99XHJcblxyXG4gICAgICAgICAgXHJcblxyXG4gICAgICAgICAgXHJcbiAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgPEVsZW1lbnQgbmFtZT1cInNlY3Rpb24yXCIgY2xhc3NOYW1lPVwiZWxlbWVudFwiIGlkPSdzZWN0aW9uMic+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPSdyb3cgY2VudGVyLWRpdic+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT0nY29sLTYgJz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9J3JvdW5kZWQtYm9yZGVyIG1hcmdpbi0wJz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8aDMgY2xhc3NOYW1lPVwiY2VudGVyLXRleHRcIj5KYWNrZXQ8L2gzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cImluZGVudFwiPmxhcyBpamZmcyBhaXNrZmQgZnNraiBpaXdscyBhc2QuYWFzcyBmZmFzIGF3c3NkIGF3dXMgaWlzYWwgZmFzay5haXNpc2FkIGtzamRma2FmIGl3amFzaWZqYWtkc2hmIHdpamRmYWxrc2pmIHdpa3Nqa2Zqa3NhbGhmLCBnc2FoZmpoZ2Vqa2ZoICB1aGFlamtmaCBzamRpaGdmdXFpdyBqaCBzamlhZmhqc2FqIGZoIGFzZC48L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwiaW5kZW50XCI+bGFzIGlqZmZzIGFpc2tmZCBmc2tqIGlpd2xzIGFzZC5hYXNzIGZmYXMgYXdzc2QgYXd1cyBpaXNhbCBmYXNrLmFpc2lzYWQga3NqZGZrYWYgaXdqYXNpZmpha2RzaGYgd2lqZGZhbGtzamYgd2lrc2prZmprc2FsaGYsIGdzYWhmamhnZWprZmggIHVoYWVqa2ZoIHNqZGloZ2Z1cWl3IGpoIHNqaWFmaGpzYWogZmggYXNkLjwvcD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPSdjb2wtNCc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPSdodHRwczovL3BsYWNlaG9sZC5jby82MDB4NTAwJyBjbGFzc05hbWU9J3Jlc3BvbnNpdmUtaW1nJyAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZmlnY2FwdGlvbiBjbGFzc05hbWU9J2NhcHRpb24nPlx1OEZEOVx1NjYyRlx1NTZGRVx1NkNFOFx1NzY4NFx1NEVFM1x1NzgwMSxcdTU3MjhcdTU2RkVcdTcyNDdcdTRFMEJcdTk3NjJcdTRGN0ZcdTc1Mjg8L2ZpZ2NhcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L0VsZW1lbnQ+XHJcbiAgICAgICAgICBcclxuXHJcbiAgICAgICAgICAgICAgPEVsZW1lbnQgbmFtZT1cInNlY3Rpb24zXCIgY2xhc3NOYW1lPVwiZWxlbWVudCByb3VuZGVkLWJvcmRlclwiIGlkPSdzZWN0aW9uMyc+XHJcbiAgICAgICAgICAgICAgPGgyPlNlY3Rpb24gMzwvaDI+XHJcbiAgICAgICAgICAgICAgPHA+Q29udGVudCBmb3Igc2VjdGlvbiAzLjwvcD5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJvdW5kZWQtYm9yZGVyXCI+XHJcbiAgICAgICAgICAgICAgPGg0IGNsYXNzTmFtZT1cImNlbnRlci10ZXh0XCI+U2VjdGlvbiAzPC9oND5cclxuICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJpbmRlbnRcIj5sYXMgaWpmZnMgYWlza2ZkIGZza2ogaWl3bHMgYXNkLmFhc3MgZmZhcyBhd3NzZCBhd3VzIGlpc2FsIGZhc2suYWlzaXNhZCBrc2pkZmthZiBpd2phc2lmamFrZHNoZiB3aWpkZmFsa3NqZiB3aWtzamtmamtzYWxoZiwgZ3NhaGZqaGdlamtmaCAgdWhhZWprZmggc2pkaWhnZnVxaXcgamggc2ppYWZoanNhaiBmaCBhc2QuPC9wPlxyXG4gICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cImluZGVudFwiPmxhcyBpamZmcyBhaXNrZmQgZnNraiBpaXdscyBhc2QuYWFzcyBmZmFzIGF3c3NkIGF3dXMgaWlzYWwgZmFzay5haXNpc2FkIGtzamRma2FmIGl3amFzaWZqYWtkc2hmIHdpamRmYWxrc2pmIHdpa3Nqa2Zqa3NhbGhmLCBnc2FoZmpoZ2Vqa2ZoICB1aGFlamtmaCBzamRpaGdmdXFpdyBqaCBzamlhZmhqc2FqIGZoIGFzZC48L3A+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9FbGVtZW50PlxyXG5cclxuICAgICAgICAgICAgICA8RWxlbWVudCBuYW1lPVwic2VjdGlvbjRcIiBjbGFzc05hbWU9XCJlbGVtZW50IHJvdW5kZWQtYm9yZGVyXCIgaWQ9J3NlY3Rpb240Jz5cclxuICAgICAgICAgICAgICA8aDI+U2VjdGlvbiA0PC9oMj5cclxuICAgICAgICAgICAgICA8cD5Db250ZW50IGZvciBzZWN0aW9uIDQuPC9wPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicm91bmRlZC1ib3JkZXJcIj5cclxuICAgICAgICAgICAgICA8aDQgY2xhc3NOYW1lPVwiY2VudGVyLXRleHRcIj5cdTYyMTFcdTY2MkZcdTU5MjdcdTVFMDVCPC9oND5cclxuICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJpbmRlbnRcIj5sYXMgaWpmZnMgYWlza2ZkIGZza2ogaWl3bHMgYXNkLmFhc3MgZmZhcyBhd3NzZCBhd3VzIGlpc2FsIGZhc2suYWlzaXNhZCBrc2pkZmthZiBpd2phc2lmamFrZHNoZiB3aWpkZmFsa3NqZiB3aWtzamtmamtzYWxoZiwgZ3NhaGZqaGdlamtmaCAgdWhhZWprZmggc2pkaWhnZnVxaXcgamggc2ppYWZoanNhaiBmaCBhc2QuPC9wPlxyXG4gICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cImluZGVudFwiPmxhcyBpamZmcyBhaXNrZmQgZnNraiBpaXdscyBhc2QuYWFzcyBmZmFzIGF3c3NkIGF3dXMgaWlzYWwgZmFzay5haXNpc2FkIGtzamRma2FmIGl3amFzaWZqYWtkc2hmIHdpamRmYWxrc2pmIHdpa3Nqa2Zqa3NhbGhmLCBnc2FoZmpoZ2Vqa2ZoICB1aGFlamtmaCBzamRpaGdmdXFpdyBqaCBzamlhZmhqc2FqIGZoIGFzZC48L3A+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9FbGVtZW50PlxyXG5cclxuICAgICAgICAgICAgICA8RWxlbWVudCBuYW1lPVwic2VjdGlvbjVcIiBjbGFzc05hbWU9XCJlbGVtZW50IHJvdW5kZWQtYm9yZGVyXCIgaWQ9J3NlY3Rpb241Jz5cclxuICAgICAgICAgICAgICA8aDI+U2VjdGlvbiA1PC9oMj5cclxuICAgICAgICAgICAgICA8cD5Db250ZW50IGZvciBzZWN0aW9uIDUuPC9wPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicm91bmRlZC1ib3JkZXJcIj5cclxuICAgICAgICAgICAgICA8aDQgY2xhc3NOYW1lPVwiY2VudGVyLXRleHRcIj5cdTYyMTFcdTY2MkZcdTU5MjdcdTVFMDVCPC9oND5cclxuICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJpbmRlbnRcIj5sYXMgaWpmZnMgYWlza2ZkIGZza2ogaWl3bHMgYXNkLmFhc3MgZmZhcyBhd3NzZCBhd3VzIGlpc2FsIGZhc2suYWlzaXNhZCBrc2pkZmthZiBpd2phc2lmamFrZHNoZiB3aWpkZmFsa3NqZiB3aWtzamtmamtzYWxoZiwgZ3NhaGZqaGdlamtmaCAgdWhhZWprZmggc2pkaWhnZnVxaXcgamggc2ppYWZoanNhaiBmaCBhc2QuPC9wPlxyXG4gICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cImluZGVudFwiPmxhcyBpamZmcyBhaXNrZmQgZnNraiBpaXdscyBhc2QuYWFzcyBmZmFzIGF3c3NkIGF3dXMgaWlzYWwgZmFzay5haXNpc2FkIGtzamRma2FmIGl3amFzaWZqYWtkc2hmIHdpamRmYWxrc2pmIHdpa3Nqa2Zqa3NhbGhmLCBnc2FoZmpoZ2Vqa2ZoICB1aGFlamtmaCBzamRpaGdmdXFpdyBqaCBzamlhZmhqc2FqIGZoIGFzZC48L3A+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9FbGVtZW50PlxyXG5cclxuICAgICAgICAgICAgICA8RWxlbWVudCBuYW1lPVwic2VjdGlvbjZcIiBjbGFzc05hbWU9XCJlbGVtZW50IHJvdW5kZWQtYm9yZGVyXCIgaWQ9J3NlY3Rpb242Jz5cclxuICAgICAgICAgICAgICA8aDI+U2VjdGlvbiA2PC9oMj5cclxuICAgICAgICAgICAgICA8cD5Db250ZW50IGZvciBzZWN0aW9uIDYuPC9wPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicm91bmRlZC1ib3JkZXJcIj5cclxuICAgICAgICAgICAgICA8aDQgY2xhc3NOYW1lPVwiY2VudGVyLXRleHRcIj5cdTYyMTFcdTY2MkZcdTU5MjdcdTVFMDVCPC9oND5cclxuICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJpbmRlbnRcIj5sYXMgaWpmZnMgYWlza2ZkIGZza2ogaWl3bHMgYXNkLmFhc3MgZmZhcyBhd3NzZCBhd3VzIGlpc2FsIGZhc2suYWlzaXNhZCBrc2pkZmthZiBpd2phc2lmamFrZHNoZiB3aWpkZmFsa3NqZiB3aWtzamtmamtzYWxoZiwgZ3NhaGZqaGdlamtmaCAgdWhhZWprZmggc2pkaWhnZnVxaXcgamggc2ppYWZoanNhaiBmaCBhc2QuPC9wPlxyXG4gICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cImluZGVudFwiPmxhcyBpamZmcyBhaXNrZmQgZnNraiBpaXdscyBhc2QuYWFzcyBmZmFzIGF3c3NkIGF3dXMgaWlzYWwgZmFzay5haXNpc2FkIGtzamRma2FmIGl3amFzaWZqYWtkc2hmIHdpamRmYWxrc2pmIHdpa3Nqa2Zqa3NhbGhmLCBnc2FoZmpoZ2Vqa2ZoICB1aGFlamtmaCBzamRpaGdmdXFpdyBqaCBzamlhZmhqc2FqIGZoIGFzZC48L3A+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9FbGVtZW50PlxyXG5cclxuICAgICAgICAgICAgICA8RWxlbWVudCBuYW1lPVwic2VjdGlvbjdcIiBjbGFzc05hbWU9XCJlbGVtZW50IHJvdW5kZWQtYm9yZGVyXCIgaWQ9J3NlY3Rpb243Jz5cclxuICAgICAgICAgICAgICA8aDI+U2VjdGlvbiA3PC9oMj5cclxuICAgICAgICAgICAgICA8cD5Db250ZW50IGZvciBzZWN0aW9uIDcuPC9wPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicm91bmRlZC1ib3JkZXJcIj5cclxuICAgICAgICAgICAgICA8aDQgY2xhc3NOYW1lPVwiY2VudGVyLXRleHRcIj5cdTYyMTFcdTY2MkZcdTU5MjdcdTVFMDVCPC9oND5cclxuICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJpbmRlbnRcIj5sYXMgaWpmZnMgYWlza2ZkIGZza2ogaWl3bHMgYXNkLmFhc3MgZmZhcyBhd3NzZCBhd3VzIGlpc2FsIGZhc2suYWlzaXNhZCBrc2pkZmthZiBpd2phc2lmamFrZHNoZiB3aWpkZmFsa3NqZiB3aWtzamtmamtzYWxoZiwgZ3NhaGZqaGdlamtmaCAgdWhhZWprZmggc2pkaWhnZnVxaXcgamggc2ppYWZoanNhaiBmaCBhc2QuPC9wPlxyXG4gICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cImluZGVudFwiPmxhcyBpamZmcyBhaXNrZmQgZnNraiBpaXdscyBhc2QuYWFzcyBmZmFzIGF3c3NkIGF3dXMgaWlzYWwgZmFzay5haXNpc2FkIGtzamRma2FmIGl3amFzaWZqYWtkc2hmIHdpamRmYWxrc2pmIHdpa3Nqa2Zqa3NhbGhmLCBnc2FoZmpoZ2Vqa2ZoICB1aGFlamtmaCBzamRpaGdmdXFpdyBqaCBzamlhZmhqc2FqIGZoIGFzZC48L3A+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9FbGVtZW50PlxyXG5cclxuICAgICAgICAgICAgICA8RWxlbWVudCBuYW1lPVwic2VjdGlvbjhcIiBjbGFzc05hbWU9XCJlbGVtZW50IHJvdW5kZWQtYm9yZGVyXCIgaWQ9J3NlY3Rpb244Jz5cclxuICAgICAgICAgICAgICA8aDI+U2VjdGlvbiA4PC9oMj5cclxuICAgICAgICAgICAgICA8cD5Db250ZW50IGZvciBzZWN0aW9uIDguPC9wPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicm91bmRlZC1ib3JkZXJcIj5cclxuICAgICAgICAgICAgICA8aDQgY2xhc3NOYW1lPVwiY2VudGVyLXRleHRcIj5cdTYyMTFcdTY2MkZcdTU5MjdcdTVFMDVCPC9oND5cclxuICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJpbmRlbnRcIj5sYXMgaWpmZnMgYWlza2ZkIGZza2ogaWl3bHMgYXNkLmFhc3MgZmZhcyBhd3NzZCBhd3VzIGlpc2FsIGZhc2suYWlzaXNhZCBrc2pkZmthZiBpd2phc2lmamFrZHNoZiB3aWpkZmFsa3NqZiB3aWtzamtmamtzYWxoZiwgZ3NhaGZqaGdlamtmaCAgdWhhZWprZmggc2pkaWhnZnVxaXcgamggc2ppYWZoanNhaiBmaCBhc2QuPC9wPlxyXG4gICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cImluZGVudFwiPmxhcyBpamZmcyBhaXNrZmQgZnNraiBpaXdscyBhc2QuYWFzcyBmZmFzIGF3c3NkIGF3dXMgaWlzYWwgZmFzay5haXNpc2FkIGtzamRma2FmIGl3amFzaWZqYWtkc2hmIHdpamRmYWxrc2pmIHdpa3Nqa2Zqa3NhbGhmLCBnc2FoZmpoZ2Vqa2ZoICB1aGFlamtmaCBzamRpaGdmdXFpdyBqaCBzamlhZmhqc2FqIGZoIGFzZC48L3A+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9FbGVtZW50PlxyXG5cclxuICAgICAgICAgICAgICA8RWxlbWVudCBuYW1lPVwic2VjdGlvbjlcIiBjbGFzc05hbWU9XCJlbGVtZW50IHJvdW5kZWQtYm9yZGVyXCIgaWQ9J3NlY3Rpb245Jz5cclxuICAgICAgICAgICAgICA8aDI+U2VjdGlvbiA5PC9oMj5cclxuICAgICAgICAgICAgICA8cD5Db250ZW50IGZvciBzZWN0aW9uIDkuPC9wPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicm91bmRlZC1ib3JkZXJcIj5cclxuICAgICAgICAgICAgICA8aDQgY2xhc3NOYW1lPVwiY2VudGVyLXRleHRcIj5cdTYyMTFcdTY2MkZcdTU5MjdcdTVFMDVCPC9oND5cclxuICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJpbmRlbnRcIj5sYXMgaWpmZnMgYWlza2ZkIGZza2ogaWl3bHMgYXNkLmFhc3MgZmZhcyBhd3NzZCBhd3VzIGlpc2FsIGZhc2suYWlzaXNhZCBrc2pkZmthZiBpd2phc2lmamFrZHNoZiB3aWpkZmFsa3NqZiB3aWtzamtmamtzYWxoZiwgZ3NhaGZqaGdlamtmaCAgdWhhZWprZmggc2pkaWhnZnVxaXcgamggc2ppYWZoanNhaiBmaCBhc2QuPC9wPlxyXG4gICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cImluZGVudFwiPmxhcyBpamZmcyBhaXNrZmQgZnNraiBpaXdscyBhc2QuYWFzcyBmZmFzIGF3c3NkIGF3dXMgaWlzYWwgZmFzay5haXNpc2FkIGtzamRma2FmIGl3amFzaWZqYWtkc2hmIHdpamRmYWxrc2pmIHdpa3Nqa2Zqa3NhbGhmLCBnc2FoZmpoZ2Vqa2ZoICB1aGFlamtmaCBzamRpaGdmdXFpdyBqaCBzamlhZmhqc2FqIGZoIGFzZC48L3A+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9FbGVtZW50PlxyXG5cclxuICAgICAgICAgICAgICA8RWxlbWVudCBuYW1lPVwic2VjdGlvbjEwXCIgY2xhc3NOYW1lPVwiZWxlbWVudCByb3VuZGVkLWJvcmRlclwiIGlkPSdzZWN0aW9uMTAnPlxyXG4gICAgICAgICAgICAgIDxoMj5TZWN0aW9uIDEwPC9oMj5cclxuICAgICAgICAgICAgICA8cD5Db250ZW50IGZvciBzZWN0aW9uIDEwLjwvcD5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJvdW5kZWQtYm9yZGVyXCI+XHJcbiAgICAgICAgICAgICAgPGg0IGNsYXNzTmFtZT1cImNlbnRlci10ZXh0XCI+XHU2MjExXHU2NjJGXHU1OTI3XHU1RTA1QjwvaDQ+XHJcbiAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwiaW5kZW50XCI+bGFzIGlqZmZzIGFpc2tmZCBmc2tqIGlpd2xzIGFzZC5hYXNzIGZmYXMgYXdzc2QgYXd1cyBpaXNhbCBmYXNrLmFpc2lzYWQga3NqZGZrYWYgaXdqYXNpZmpha2RzaGYgd2lqZGZhbGtzamYgd2lrc2prZmprc2FsaGYsIGdzYWhmamhnZWprZmggIHVoYWVqa2ZoIHNqZGloZ2Z1cWl3IGpoIHNqaWFmaGpzYWogZmggYXNkLjwvcD5cclxuICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJpbmRlbnRcIj5sYXMgaWpmZnMgYWlza2ZkIGZza2ogaWl3bHMgYXNkLmFhc3MgZmZhcyBhd3NzZCBhd3VzIGlpc2FsIGZhc2suYWlzaXNhZCBrc2pkZmthZiBpd2phc2lmamFrZHNoZiB3aWpkZmFsa3NqZiB3aWtzamtmamtzYWxoZiwgZ3NhaGZqaGdlamtmaCAgdWhhZWprZmggc2pkaWhnZnVxaXcgamggc2ppYWZoanNhaiBmaCBhc2QuPC9wPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvRWxlbWVudD5cclxuXHJcbiAgICAgICAgICAgICAgPEVsZW1lbnQgbmFtZT1cInNlY3Rpb24xMVwiIGNsYXNzTmFtZT1cImVsZW1lbnQgcm91bmRlZC1ib3JkZXJcIiBpZD0nc2VjdGlvbjExJz5cclxuICAgICAgICAgICAgICA8aDI+U2VjdGlvbiAxMTwvaDI+XHJcbiAgICAgICAgICAgICAgPHA+Q29udGVudCBmb3Igc2VjdGlvbiAxMS48L3A+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyb3VuZGVkLWJvcmRlclwiPlxyXG4gICAgICAgICAgICAgIDxoNCBjbGFzc05hbWU9XCJjZW50ZXItdGV4dFwiPlx1NjIxMVx1NjYyRlx1NTkyN1x1NUUwNUI8L2g0PlxyXG4gICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cImluZGVudFwiPmxhcyBpamZmcyBhaXNrZmQgZnNraiBpaXdscyBhc2QuYWFzcyBmZmFzIGF3c3NkIGF3dXMgaWlzYWwgZmFzay5haXNpc2FkIGtzamRma2FmIGl3amFzaWZqYWtkc2hmIHdpamRmYWxrc2pmIHdpa3Nqa2Zqa3NhbGhmLCBnc2FoZmpoZ2Vqa2ZoICB1aGFlamtmaCBzamRpaGdmdXFpdyBqaCBzamlhZmhqc2FqIGZoIGFzZC48L3A+XHJcbiAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwiaW5kZW50XCI+bGFzIGlqZmZzIGFpc2tmZCBmc2tqIGlpd2xzIGFzZC5hYXNzIGZmYXMgYXdzc2QgYXd1cyBpaXNhbCBmYXNrLmFpc2lzYWQga3NqZGZrYWYgaXdqYXNpZmpha2RzaGYgd2lqZGZhbGtzamYgd2lrc2prZmprc2FsaGYsIGdzYWhmamhnZWprZmggIHVoYWVqa2ZoIHNqZGloZ2Z1cWl3IGpoIHNqaWFmaGpzYWogZmggYXNkLjwvcD5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L0VsZW1lbnQ+XHJcbiAgICAgICAgICBcclxuXHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtMVwiPjwvZGl2PlxyXG5cclxuICAgICAgICAgIFxyXG4gICAgICAgIFxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvPlxyXG4gICk7XHJcbn1cclxuIiwgImNvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9kaXJuYW1lID0gXCJGOlxcXFxzbXUtZ2RtdS1jaGluYVxcXFxzcmNcIjtjb25zdCBfX3ZpdGVfaW5qZWN0ZWRfb3JpZ2luYWxfZmlsZW5hbWUgPSBcIkY6XFxcXHNtdS1nZG11LWNoaW5hXFxcXHNyY1xcXFxwYWdlcy50c1wiO2NvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9pbXBvcnRfbWV0YV91cmwgPSBcImZpbGU6Ly8vRjovc211LWdkbXUtY2hpbmEvc3JjL3BhZ2VzLnRzXCI7Ly8gXHU1QkZDXHU4MjJBXHU5ODdBXHU1RThGXHJcblxyXG5pbXBvcnQge1xyXG4gIEF0dHJpYnV0aW9ucyxcclxuICBDb250cmlidXRpb24sXHJcbiAgRGVzY3JpcHRpb24sXHJcbiAgRW5naW5lZXJpbmcsXHJcbiAgRXhwZXJpbWVudHMsXHJcbiAgSG9tZSxcclxuICBIdW1hblByYWN0aWNlcyxcclxuICBSZXN1bHRzLFxyXG4gIFNhZmV0eSxcclxuICBUZWFtLFxyXG4gIEVkdWNhdGlvbixcclxuICBJbmNsdXNpdml0eSxcclxuICBNb2RlbCxcclxuICBjb2xsYWJvcmF0aW9uLFxyXG4gIHBhcnRzLFxyXG4gIERlc2lnbixcclxufSBmcm9tIFwiLi9jb250ZW50c1wiO1xyXG5pbXBvcnQgeyBGYUhvbWUsIEZhVXNlcnMsIEZhUHJvamVjdERpYWdyYW0sIEZhU2hpZWxkQWx0LCBGYUhhbmRzSGVscGluZywgRmFBd2FyZCwgIEZhRmxhc2ssIEZhTGlnaHRidWxiLCBGYUJ1c2luZXNzVGltZSwgRmFVbml2ZXJzYWxBY2Nlc3MsIEZhQ29ncywgRmFIYW5kc2hha2UgfSBmcm9tIFwicmVhY3QtaWNvbnMvZmFcIjsgLy8gXHU1RjE1XHU1MTY1XHU1NkZFXHU2ODA3XHJcblxyXG5pbnRlcmZhY2UgQmFzZSB7XHJcbiAgbmFtZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG4gIGljb24/OiBSZWFjdC5Db21wb25lbnRUeXBlOyAvLyBcdTZERkJcdTUyQTAgaWNvbiBcdTVDNUVcdTYwMjdcclxufVxyXG5cclxuY2xhc3MgRm9sZGVyIGltcGxlbWVudHMgQmFzZSB7XHJcbiAgbmFtZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG4gIGZvbGRlcjogUGFnZVtdIHwgdW5kZWZpbmVkO1xyXG4gIGljb24/OiBSZWFjdC5Db21wb25lbnRUeXBlO1xyXG59XHJcblxyXG5jbGFzcyBQYWdlIGltcGxlbWVudHMgQmFzZSB7XHJcbiAgbmFtZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG4gIHRpdGxlOiBzdHJpbmcgfCB1bmRlZmluZWQ7XHJcbiAgcGF0aDogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG4gIGNvbXBvbmVudDogUmVhY3QuRkMgfCB1bmRlZmluZWQ7XHJcbiAgbGVhZDogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG4gIGljb24/OiBSZWFjdC5Db21wb25lbnRUeXBlO1xyXG59XHJcblxyXG5jb25zdCBQYWdlczogKFBhZ2UgfCBGb2xkZXIpW10gPSBbXHJcbiAge1xyXG4gICAgbmFtZTogXCJIb21lXCIsXHJcbiAgICB0aXRsZTogXCJMaXZlci1CcmFpbiBHdWFyZGlhblwiLFxyXG4gICAgcGF0aDogXCIvXCIsXHJcbiAgICBjb21wb25lbnQ6IEhvbWUsXHJcbiAgICBsZWFkOiBcIldlbGNvbWUgdG8gaUdFTSAyMDI0ISBZb3VyIHRlYW0gaGFzIGJlZW4gYXBwcm92ZWQgYW5kIHlvdSBhcmUgcmVhZHkgdG8gc3RhcnQgdGhlIGlHRU0gc2Vhc29uIVwiLFxyXG4gICAgaWNvbjogRmFIb21lLFxyXG4gIH0sXHJcbiAge1xyXG4gICAgbmFtZTogXCJUZWFtXCIsXHJcbiAgICBmb2xkZXI6IFtcclxuICAgICAge1xyXG4gICAgICAgIG5hbWU6IFwiVGVhbVwiLFxyXG4gICAgICAgIHRpdGxlOiBcIlRlYW1cIixcclxuICAgICAgICBwYXRoOiBcIi90ZWFtXCIsXHJcbiAgICAgICAgY29tcG9uZW50OiBUZWFtLFxyXG4gICAgICAgIGxlYWQ6IFwiT24gdGhpcyBwYWdlIHlvdSBjYW4gaW50cm9kdWNlIHlvdXIgdGVhbSBtZW1iZXJzLCBpbnN0cnVjdG9ycywgYW5kIGFkdmlzb3JzLlwiLFxyXG4gICAgICAgIGljb246IEZhVXNlcnMsXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBuYW1lOiBcIkF0dHJpYnV0aW9uc1wiLFxyXG4gICAgICAgIHRpdGxlOiBcIkF0dHJpYnV0aW9uc1wiLFxyXG4gICAgICAgIHBhdGg6IFwiL2F0dHJpYnV0aW9uc1wiLFxyXG4gICAgICAgIGNvbXBvbmVudDogQXR0cmlidXRpb25zLFxyXG4gICAgICAgIGxlYWQ6IFwiSW4gdGhlIGlHRU0gQ29tcGV0aXRpb24sIHdlIGNlbGVicmF0ZSBzdHVkZW50IGVmZm9ydCBhbmQgYWNoaWV2ZW1lbnQuIFRoZSBBdHRyaWJ1dGlvbnMgZm9ybSBoZWxwcyB0aGUganVkZ2VzIGRpZmZlcmVudGlhdGUgYmV0d2VlbiB3aGF0IHN0dWRlbnRzIGFjY29tcGxpc2hlZCBmcm9tIGhvdyB0aGVpciBleHRlcm5hbCBjb2xsYWJvcmF0b3JzIHN1cHBvcnRlZCB0aGVtLiBUaGVyZWZvcmUsIHRlYW1zIG11c3QgY2xlYXJseSBleHBsYWluIG9uIHRoZSBzdGFuZGFyZCBQcm9qZWN0IEF0dHJpYnV0aW9ucyBmb3JtIHdoYXQgd29yayB0aGV5IGhhdmUgY29uZHVjdGVkIGJ5IHRoZW1zZWx2ZXMgYW5kIHdoYXQgaGFzIGJlZW4gZG9uZSBieSBvdGhlcnMuXCIsXHJcbiAgICAgICAgaWNvbjogRmFVc2VycyxcclxuICAgICAgfSxcclxuICAgIF0sXHJcbiAgICBpY29uOiBGYVVzZXJzLFxyXG4gIH0sXHJcbiAge1xyXG4gICAgbmFtZTogXCJMYWIgV29ya1wiLFxyXG4gICAgZm9sZGVyOiBbXHJcbiAgICAgIHtcclxuICAgICAgICBuYW1lOiBcIlJlc3VsdHNcIixcclxuICAgICAgICB0aXRsZTogXCJSZXN1bHRzXCIsXHJcbiAgICAgICAgcGF0aDogXCIvcmVzdWx0c1wiLFxyXG4gICAgICAgIGNvbXBvbmVudDogUmVzdWx0cyxcclxuICAgICAgICBsZWFkOiBcIllvdSBjYW4gZGVzY3JpYmUgdGhlIHJlc3VsdHMgb2YgeW91ciBwcm9qZWN0IGFuZCB5b3VyIGZ1dHVyZSBwbGFucyBoZXJlLlwiLFxyXG4gICAgICAgIGljb246IEZhRmxhc2ssXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBuYW1lOiBcIlNhZmV0eVwiLFxyXG4gICAgICAgIHRpdGxlOiBcIlNhZmV0eVwiLFxyXG4gICAgICAgIHBhdGg6IFwiL3NhZmV0eVwiLFxyXG4gICAgICAgIGNvbXBvbmVudDogU2FmZXR5LFxyXG4gICAgICAgIGxlYWQ6IFwiRGVzY3JpYmUgYWxsIHRoZSBzYWZldHkgaXNzdWVzIG9mIHlvdXIgcHJvamVjdC5cIixcclxuICAgICAgICBpY29uOiBGYVNoaWVsZEFsdCxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIG5hbWU6IFwiRXhwZXJpbWVudHNcIixcclxuICAgICAgICB0aXRsZTogXCJFeHBlcmltZW50c1wiLFxyXG4gICAgICAgIHBhdGg6IFwiL2V4cGVyaW1lbnRzXCIsXHJcbiAgICAgICAgY29tcG9uZW50OiBFeHBlcmltZW50cyxcclxuICAgICAgICBsZWFkOiBcIkRlc2NyaWJlIHRoZSByZXNlYXJjaCwgZXhwZXJpbWVudHMsIGFuZCBwcm90b2NvbHMgeW91IHVzZWQgaW4geW91ciBpR0VNIHByb2plY3QuXCIsXHJcbiAgICAgICAgaWNvbjogRmFGbGFzayxcclxuICAgICAgfSxcclxuICAgIF0sXHJcbiAgICBpY29uOiBGYVByb2plY3REaWFncmFtLFxyXG4gIH0sXHJcbiAge1xyXG4gICAgbmFtZTogXCJQcm9qZWN0XCIsXHJcbiAgICBmb2xkZXI6IFtcclxuICAgICAge1xyXG4gICAgICAgIG5hbWU6IFwiQ29udHJpYnV0aW9uXCIsXHJcbiAgICAgICAgdGl0bGU6IFwiQ29udHJpYnV0aW9uXCIsXHJcbiAgICAgICAgcGF0aDogXCIvY29udHJpYnV0aW9uXCIsXHJcbiAgICAgICAgY29tcG9uZW50OiBDb250cmlidXRpb24sXHJcbiAgICAgICAgbGVhZDogXCJNYWtlIGEgdXNlZnVsIGNvbnRyaWJ1dGlvbiBmb3IgZnV0dXJlIGlHRU0gdGVhbXMuIFVzZSB0aGlzIHBhZ2UgdG8gZG9jdW1lbnQgdGhhdCBjb250cmlidXRpb24uXCIsXHJcbiAgICAgICAgaWNvbjogRmFQcm9qZWN0RGlhZ3JhbSxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIG5hbWU6IFwiRGVzY3JpcHRpb25cIixcclxuICAgICAgICB0aXRsZTogXCJQcm9qZWN0IERlc2NyaXB0aW9uXCIsXHJcbiAgICAgICAgcGF0aDogXCIvZGVzY3JpcHRpb25cIixcclxuICAgICAgICBjb21wb25lbnQ6IERlc2NyaXB0aW9uLFxyXG4gICAgICAgIGxlYWQ6IFwiRGVzY3JpYmUgaG93IGFuZCB3aHkgeW91IGNob3NlIHlvdXIgaUdFTSBwcm9qZWN0LlwiLFxyXG4gICAgICAgIGljb246IEZhQnVzaW5lc3NUaW1lLFxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgbmFtZTogXCJEZXNpZ25cIixcclxuICAgICAgICB0aXRsZTogXCJEZXNpZ25cIixcclxuICAgICAgICBwYXRoOiBcIi9kZXNpZ25cIixcclxuICAgICAgICBjb21wb25lbnQ6IERlc2lnbixcclxuICAgICAgICBsZWFkOiBcIkRlc2NyaWJlIHRoZSByZXNlYXJjaCwgZXhwZXJpbWVudHMsIGFuZCBwcm90b2NvbHMgeW91IHVzZWQgaW4geW91ciBpR0VNIHByb2plY3QuXCIsXHJcbiAgICAgICAgaWNvbjogRmFGbGFzayxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIG5hbWU6IFwiRW5naW5lZXJpbmdcIixcclxuICAgICAgICB0aXRsZTogXCJFbmdpbmVlcmluZyBTdWNjZXNzXCIsXHJcbiAgICAgICAgcGF0aDogXCIvZW5naW5lZXJpbmdcIixcclxuICAgICAgICBjb21wb25lbnQ6IEVuZ2luZWVyaW5nLFxyXG4gICAgICAgIGxlYWQ6IFwiRGVtb25zdHJhdGUgZW5naW5lZXJpbmcgc3VjY2VzcyBpbiBhIHRlY2huaWNhbCBhc3BlY3Qgb2YgeW91ciBwcm9qZWN0IGJ5IGdvaW5nIHRocm91Z2ggYXQgbGVhc3Qgb25lIGl0ZXJhdGlvbiBvZiB0aGUgZW5naW5lZXJpbmcgZGVzaWduIGN5Y2xlLiBUaGlzIGFjaGlldmVtZW50IHNob3VsZCBiZSBkaXN0aW5jdCBmcm9tIHlvdXIgQ29udHJpYnV0aW9uIGZvciBCcm9uemUuXCIsXHJcbiAgICAgICAgaWNvbjogRmFDb2dzLFxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgbmFtZTogXCJNb2RlbFwiLFxyXG4gICAgICAgIHRpdGxlOiBcIk1vZGVsXCIsXHJcbiAgICAgICAgcGF0aDogXCIvbW9kZWxcIixcclxuICAgICAgICBjb21wb25lbnQ6IE1vZGVsLFxyXG4gICAgICAgIGxlYWQ6IFwiRXhwbGFpbiB5b3VyIG1vZGVsJ3MgYXNzdW1wdGlvbnMsIGRhdGEsIHBhcmFtZXRlcnMsIGFuZCByZXN1bHRzIGluIGEgd2F5IHRoYXQgYW55b25lIGNvdWxkIHVuZGVyc3RhbmQuXCIsXHJcbiAgICAgICAgaWNvbjogRmFDb2dzLFxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgbmFtZTogXCJQYXJ0c1wiLFxyXG4gICAgICAgIHRpdGxlOiBcIlBhcnRzXCIsXHJcbiAgICAgICAgcGF0aDogXCIvcGFydHNcIixcclxuICAgICAgICBjb21wb25lbnQ6IHBhcnRzLFxyXG4gICAgICAgIGxlYWQ6IFwiWW91IGNhbiBkZXNjcmliZSB0aGUgcmVzdWx0cyBvZiB5b3VyIHByb2plY3QgYW5kIHlvdXIgZnV0dXJlIHBsYW5zIGhlcmUuXCIsXHJcbiAgICAgICAgaWNvbjogRmFGbGFzayxcclxuICAgICAgfSxcclxuICAgICAgXHJcbiAgICBdLFxyXG4gICAgaWNvbjogRmFQcm9qZWN0RGlhZ3JhbSxcclxuICB9LFxyXG4gIFxyXG4gIHtcclxuICAgIG5hbWU6IFwiSHVtYW4gUHJhY3RpY2VcIixcclxuICAgIGZvbGRlcjogW1xyXG4gICAgICB7XHJcbiAgICAgICAgbmFtZTogXCJJbnRlZ3JhdGVkIEh1bWFuIFByYWN0aWNlc1wiLFxyXG4gICAgICAgIHRpdGxlOiBcIkludGVncmF0ZWQgSHVtYW4gUHJhY3RpY2VzXCIsXHJcbiAgICAgICAgcGF0aDogXCIvaHVtYW4tcHJhY3RpY2VzXCIsXHJcbiAgICAgICAgY29tcG9uZW50OiBIdW1hblByYWN0aWNlcyxcclxuICAgICAgICBsZWFkOiBcIldlIGFzayBldmVyeSB0ZWFtIHRvIHRoaW5rIGRlZXBseSBhbmQgY3JlYXRpdmVseSBhYm91dCB3aGV0aGVyIHRoZWlyIHByb2plY3QgaXMgcmVzcG9uc2libGUgYW5kIGdvb2QgZm9yIHRoZSB3b3JsZC4gQ29uc2lkZXIgaG93IHRoZSB3b3JsZCBhZmZlY3RzIHlvdXIgd29yayBhbmQgaG93IHlvdXIgd29yayBhZmZlY3RzIHRoZSB3b3JsZC5cIixcclxuICAgICAgICBpY29uOiBGYUhhbmRzSGVscGluZyxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIG5hbWU6IFwiRWR1Y2F0aW9uXCIsXHJcbiAgICAgICAgdGl0bGU6IFwiRWR1Y2F0aW9uXCIsXHJcbiAgICAgICAgcGF0aDogXCIvZWR1Y2F0aW9uXCIsXHJcbiAgICAgICAgY29tcG9uZW50OiBFZHVjYXRpb24sXHJcbiAgICAgICAgbGVhZDogXCJJbm5vdmF0aXZlIGVkdWNhdGlvbmFsIHRvb2xzIGFuZCBvdXRyZWFjaCBhY3Rpdml0aWVzIGhhdmUgdGhlIGFiaWxpdHkgdG8gZXN0YWJsaXNoIGEgdHdvLXdheSBkaWFsb2d1ZSB3aXRoIG5ldyBjb21tdW5pdGllcyBieSBkaXNjdXNzaW5nIHB1YmxpYyB2YWx1ZXMgYW5kIHRoZSBzY2llbmNlIGJlaGluZCBzeW50aGV0aWMgYmlvbG9neS5cIixcclxuICAgICAgICBpY29uOiBGYUxpZ2h0YnVsYixcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIG5hbWU6IFwiSW5jbHVzaXZpdHlcIixcclxuICAgICAgICB0aXRsZTogXCJEaXZlcnNpdHkgYW5kIEluY2x1c2lvblwiLFxyXG4gICAgICAgIHBhdGg6IFwiL2luY2x1c2l2aXR5XCIsXHJcbiAgICAgICAgY29tcG9uZW50OiBJbmNsdXNpdml0eSxcclxuICAgICAgICBsZWFkOiBcIkV2ZXJ5IGluZGl2aWR1YWwsIHJlZ2FyZGxlc3Mgb2YgYmFja2dyb3VuZCBvciBleHBlcmllbmNlLCBzaG91bGQgaGF2ZSBhbiBlcXVhbCBvcHBvcnR1bml0eSB0byBlbmdhZ2Ugd2l0aCBzY2llbnRpZmljIGtub3dsZWRnZSBhbmQgdGVjaG5vbG9naWNhbCBkZXZlbG9wbWVudC5cIixcclxuICAgICAgICBpY29uOiBGYVVuaXZlcnNhbEFjY2VzcyxcclxuICAgICAgfSxcclxuICAgXHJcbiAgICAgIHtcclxuICAgICAgICBuYW1lOiBcIkNvbGxhYm9yYXRpb25cIixcclxuICAgICAgICB0aXRsZTogXCJDb2xsYWJvcmF0aW9uXCIsXHJcbiAgICAgICAgcGF0aDogXCIvY29sbGFib3JhdGlvblwiLFxyXG4gICAgICAgIGNvbXBvbmVudDogY29sbGFib3JhdGlvbixcclxuICAgICAgICBsZWFkOiBcIkNvbGxhYm9yYXRpb24uXCIsXHJcbiAgICAgICAgaWNvbjogRmFIYW5kc2hha2UsXHJcbiAgICAgIH0sXHJcbiAgICBdLFxyXG4gICAgaWNvbjogRmFBd2FyZCxcclxuICB9LFxyXG4gIFxyXG5dO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgUGFnZXM7IiwgImNvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9kaXJuYW1lID0gXCJGOlxcXFxzbXUtZ2RtdS1jaGluYVxcXFxzcmNcXFxcdXRpbHNcIjtjb25zdCBfX3ZpdGVfaW5qZWN0ZWRfb3JpZ2luYWxfZmlsZW5hbWUgPSBcIkY6XFxcXHNtdS1nZG11LWNoaW5hXFxcXHNyY1xcXFx1dGlsc1xcXFxzdHJpbmdUb1NsdWcudHNcIjtjb25zdCBfX3ZpdGVfaW5qZWN0ZWRfb3JpZ2luYWxfaW1wb3J0X21ldGFfdXJsID0gXCJmaWxlOi8vL0Y6L3NtdS1nZG11LWNoaW5hL3NyYy91dGlscy9zdHJpbmdUb1NsdWcudHNcIjtleHBvcnQgZnVuY3Rpb24gc3RyaW5nVG9TbHVnKHN0cmluZzogc3RyaW5nKTogc3RyaW5nIHtcclxuICBsZXQgc2x1ZyA9IFN0cmluZyhzdHJpbmcpLnRvTG93ZXJDYXNlKCk7XHJcbiAgc2x1ZyA9IHNsdWcucmVwbGFjZSgvW15hLXowLTktXS9nLCBcIi1cIik7XHJcbiAgc2x1ZyA9IHNsdWcucmVwbGFjZSgvLSsvZywgXCItXCIpO1xyXG4gIC8vIHJlbW92ZSBkYXNoZXMgYXQgc3RhcnQgYW5kIGVuZFxyXG4gIGNvbnN0IHN0YXJ0ID0gc2x1Zy5zZWFyY2goL1teLV0vKTsgLy8gZmluZCBpbmRleCBvZiBmaXJzdCBub24tZGFzaFxyXG4gIGNvbnN0IGVuZCA9IHNsdWcuc2VhcmNoKC8tKyQvKTsgLy8gZmluZCBpbmRleCBvZiBmaXJzdCBlbmQgZGFzaFxyXG4gIHJldHVybiBzbHVnLnN1YnN0cmluZyhzdGFydCwgZW5kID09PSAtMSA/IHVuZGVmaW5lZCA6IGVuZCk7XHJcbn1cclxuIl0sCiAgIm1hcHBpbmdzIjogIjtBQUF5TyxTQUFTLGNBQWMsZUFBZTtBQUMvUSxPQUFPLFdBQVc7OztBQ0RsQixTQUFXLFdBQVcsZ0JBQWdCO0FBQ3RDLFNBQVMsZUFBZTtBQXdCbEIsU0FFRSxLQUZGOzs7QUN6Qk4sU0FBZ0IsWUFBQUEsaUJBQWdCO0FBYzVCLFNBb0xBLFVBeEtJLE9BQUFDLE1BWkosUUFBQUMsYUFBQTs7O0FDZEosU0FBUyxhQUFBQyxrQkFBaUI7QUF3QnRCLHFCQUFBQyxXQUdJLE9BQUFDLE1BREEsUUFBQUMsYUFGSjs7O0FDeEJKLFNBQVMsV0FBVztBQUNwQixTQUFTLE1BQUssV0FBQUMsZ0JBQWU7QUFDN0IsU0FBYyxhQUFBQyxZQUFVLFlBQUFDLGlCQUFlO0FBVWpDLFNBNkNBLFlBQUFDLFdBNUNFLE9BQUFDLE1BREYsUUFBQUMsYUFBQTs7O0FDWk4sU0FBUyxPQUFBQyxZQUFXO0FBQ3BCLFNBQVMsUUFBQUMsT0FBSyxXQUFBQyxnQkFBZTtBQUM3QixTQUFjLGFBQUFDLFlBQVUsWUFBQUMsaUJBQWU7QUFXakMsU0ErQ0YsWUFBQUMsV0E5Q0ksT0FBQUMsTUFERixRQUFBQyxhQUFBO0FBbVJOO0FBRW1COzs7QUNsU25CLFNBQVMsT0FBQUMsWUFBVztBQUNwQixTQUFTLFFBQUFDLE9BQUssV0FBQUMsZ0JBQWU7QUFDN0IsU0FBYyxhQUFBQyxZQUFVLFlBQUFDLGlCQUFlO0FBU2pDLFNBMkNGLFlBQUFDLFdBMUNJLE9BQUFDLE1BREYsUUFBQUMsYUFBQTs7O0FDWE4sU0FBUyxPQUFBQyxZQUFXO0FBQ3BCLFNBQVMsUUFBQUMsT0FBTSxXQUFBQyxnQkFBZTtBQUM5QixTQUFnQixhQUFBQyxZQUFXLFlBQUFDLGlCQUFnQjtBQVVyQyxTQTJERixZQUFBQyxXQTFESSxPQUFBQyxNQURGLFFBQUFDLGFBQUE7OztBQ1pOLFNBQVMsT0FBQUMsWUFBVztBQUNwQixTQUFTLFFBQUFDLE9BQUssV0FBQUMsZ0JBQWU7QUFDN0IsU0FBYyxhQUFBQyxZQUFVLFlBQUFDLGlCQUFlO0FBU2pDLFNBMENGLFlBQUFDLFdBekNJLE9BQUFDLE1BREYsUUFBQUMsYUFBQTs7O0FDWE4sU0FBUyxPQUFBQyxZQUFXO0FBQ3BCLFNBQVMsUUFBQUMsT0FBSyxXQUFBQyxnQkFBZTtBQUM3QixTQUFjLGFBQUFDLFlBQVUsWUFBQUMsaUJBQWU7QUFTakMsU0EwQ0YsWUFBQUMsV0F6Q0ksT0FBQUMsTUFERixRQUFBQyxhQUFBOzs7QUNYTixTQUFTLE9BQUFDLFlBQVc7QUFDcEIsU0FBUyxRQUFBQyxPQUFLLFdBQUFDLGdCQUFlO0FBQzdCLFNBQWMsYUFBQUMsWUFBVSxZQUFBQyxpQkFBZTtBQVNqQyxTQW1DRixZQUFBQyxXQWxDSSxPQUFBQyxPQURGLFFBQUFDLGNBQUE7OztBQ1hOLFNBQVMsT0FBQUMsWUFBVztBQUNwQixTQUFTLFFBQUFDLE9BQU0sV0FBQUMsZ0JBQWU7QUFDOUIsU0FBZ0IsYUFBQUMsYUFBVyxZQUFBQyxrQkFBZ0I7QUFTckMsU0FzQ0YsWUFBQUMsWUFyQ0ksT0FBQUMsT0FERixRQUFBQyxjQUFBOzs7QUNYTixTQUFTLE9BQUFDLFlBQVc7QUFDcEIsU0FBUyxRQUFBQyxPQUFLLFdBQUFDLGlCQUFlO0FBQzdCLFNBQWMsYUFBQUMsYUFBVSxZQUFBQyxrQkFBZTtBQVNqQyxTQXFDRixZQUFBQyxZQXBDSSxPQUFBQyxPQURGLFFBQUFDLGNBQUE7OztBQ1hOLFNBQVMsT0FBQUMsYUFBVztBQUNwQixTQUFTLFFBQUFDLFFBQUssV0FBQUMsaUJBQWU7QUFDN0IsU0FBYyxhQUFBQyxhQUFVLFlBQUFDLGtCQUFlO0FBU2pDLFNBMENGLFlBQUFDLFlBekNJLE9BQUFDLE9BREYsUUFBQUMsY0FBQTs7O0FDWE4sU0FBUyxPQUFBQyxhQUFXO0FBQ3BCLFNBQVMsUUFBQUMsUUFBSyxXQUFBQyxpQkFBZTtBQUM3QixTQUFjLGFBQUFDLGFBQVUsWUFBQUMsa0JBQWU7QUFTakMsU0FzQ0YsWUFBQUMsWUFyQ0ksT0FBQUMsT0FERixRQUFBQyxjQUFBOzs7QUNYTixTQUFTLE9BQUFDLGFBQVc7QUFDcEIsU0FBUyxRQUFBQyxRQUFNLFdBQUFDLGlCQUFlO0FBQzlCLFNBQWdCLGFBQUFDLGFBQVcsWUFBQUMsa0JBQWdCO0FBQzNDLE9BQU8sYUFBYTtBQXVEUixTQThDSixZQUFBQyxZQTdDUSxPQUFBQyxPQURKLFFBQUFDLGNBQUE7OztBQzFEWixTQUFTLE9BQUFDLGFBQVc7QUFDcEIsU0FBUyxRQUFBQyxRQUFLLFdBQUFDLGlCQUFlO0FBQzdCLFNBQWMsYUFBQUMsYUFBVSxZQUFBQyxrQkFBZTtBQVVqQyxTQXlDQSxZQUFBQyxZQXhDRSxPQUFBQyxPQURGLFFBQUFDLGNBQUE7OztBQ1pOLFNBQVMsT0FBQUMsYUFBVztBQUNwQixTQUFTLFFBQUFDLFFBQUssV0FBQUMsaUJBQWU7QUFDN0IsU0FBYyxhQUFBQyxhQUFVLFlBQUFDLGtCQUFlO0FBVWpDLFNBNkRBLFlBQUFDLFlBNURFLE9BQUFDLE9BREYsUUFBQUMsY0FBQTs7O0FDWk4sU0FBUyxPQUFBQyxhQUFXO0FBQ3BCLFNBQVMsUUFBQUMsUUFBSyxXQUFBQyxpQkFBZTtBQUM3QixTQUFjLGFBQUFDLGFBQVUsWUFBQUMsa0JBQWU7QUFTakMsU0EwQ0YsWUFBQUMsWUF6Q0ksT0FBQUMsT0FERixRQUFBQyxjQUFBOzs7QUNTTixTQUFTLFFBQVEsU0FBUyxrQkFBa0IsYUFBYSxnQkFBZ0IsU0FBVSxTQUFTLGFBQWEsZ0JBQWdCLG1CQUFtQixRQUFRLG1CQUFtQjs7O0FDcEI2RyxTQUFTLGFBQWEsUUFBd0I7QUFDaFUsTUFBSSxPQUFPLE9BQU8sTUFBTSxFQUFFLFlBQVk7QUFDdEMsU0FBTyxLQUFLLFFBQVEsZUFBZSxHQUFHO0FBQ3RDLFNBQU8sS0FBSyxRQUFRLE9BQU8sR0FBRztBQUU5QixRQUFNLFFBQVEsS0FBSyxPQUFPLE1BQU07QUFDaEMsUUFBTSxNQUFNLEtBQUssT0FBTyxLQUFLO0FBQzdCLFNBQU8sS0FBSyxVQUFVLE9BQU8sUUFBUSxLQUFLLFNBQVksR0FBRztBQUMzRDs7O0FwQkhBLElBQU8sc0JBQVEsTUFBTTtBQUNuQixRQUFNLE1BQU0sUUFBUSxPQUFPLFFBQVEsSUFBSSxDQUFDO0FBQ3hDLFNBQU8sYUFBYTtBQUFBLElBQ2xCLE1BQU0sSUFBSSxhQUFhLElBQUksY0FBYyxDQUFDO0FBQUEsSUFDMUMsU0FBUyxDQUFDLE1BQU0sQ0FBQztBQUFBLEVBQ25CLENBQUM7QUFDSDsiLAogICJuYW1lcyI6IFsidXNlU3RhdGUiLCAianN4IiwgImpzeHMiLCAidXNlRWZmZWN0IiwgIkZyYWdtZW50IiwgImpzeCIsICJqc3hzIiwgIkVsZW1lbnQiLCAidXNlRWZmZWN0IiwgInVzZVN0YXRlIiwgIkZyYWdtZW50IiwgImpzeCIsICJqc3hzIiwgIk5hdiIsICJMaW5rIiwgIkVsZW1lbnQiLCAidXNlRWZmZWN0IiwgInVzZVN0YXRlIiwgIkZyYWdtZW50IiwgImpzeCIsICJqc3hzIiwgIk5hdiIsICJMaW5rIiwgIkVsZW1lbnQiLCAidXNlRWZmZWN0IiwgInVzZVN0YXRlIiwgIkZyYWdtZW50IiwgImpzeCIsICJqc3hzIiwgIk5hdiIsICJMaW5rIiwgIkVsZW1lbnQiLCAidXNlRWZmZWN0IiwgInVzZVN0YXRlIiwgIkZyYWdtZW50IiwgImpzeCIsICJqc3hzIiwgIk5hdiIsICJMaW5rIiwgIkVsZW1lbnQiLCAidXNlRWZmZWN0IiwgInVzZVN0YXRlIiwgIkZyYWdtZW50IiwgImpzeCIsICJqc3hzIiwgIk5hdiIsICJMaW5rIiwgIkVsZW1lbnQiLCAidXNlRWZmZWN0IiwgInVzZVN0YXRlIiwgIkZyYWdtZW50IiwgImpzeCIsICJqc3hzIiwgIk5hdiIsICJMaW5rIiwgIkVsZW1lbnQiLCAidXNlRWZmZWN0IiwgInVzZVN0YXRlIiwgIkZyYWdtZW50IiwgImpzeCIsICJqc3hzIiwgIk5hdiIsICJMaW5rIiwgIkVsZW1lbnQiLCAidXNlRWZmZWN0IiwgInVzZVN0YXRlIiwgIkZyYWdtZW50IiwgImpzeCIsICJqc3hzIiwgIk5hdiIsICJMaW5rIiwgIkVsZW1lbnQiLCAidXNlRWZmZWN0IiwgInVzZVN0YXRlIiwgIkZyYWdtZW50IiwgImpzeCIsICJqc3hzIiwgIk5hdiIsICJMaW5rIiwgIkVsZW1lbnQiLCAidXNlRWZmZWN0IiwgInVzZVN0YXRlIiwgIkZyYWdtZW50IiwgImpzeCIsICJqc3hzIiwgIk5hdiIsICJMaW5rIiwgIkVsZW1lbnQiLCAidXNlRWZmZWN0IiwgInVzZVN0YXRlIiwgIkZyYWdtZW50IiwgImpzeCIsICJqc3hzIiwgIk5hdiIsICJMaW5rIiwgIkVsZW1lbnQiLCAidXNlRWZmZWN0IiwgInVzZVN0YXRlIiwgIkZyYWdtZW50IiwgImpzeCIsICJqc3hzIiwgIk5hdiIsICJMaW5rIiwgIkVsZW1lbnQiLCAidXNlRWZmZWN0IiwgInVzZVN0YXRlIiwgIkZyYWdtZW50IiwgImpzeCIsICJqc3hzIiwgIk5hdiIsICJMaW5rIiwgIkVsZW1lbnQiLCAidXNlRWZmZWN0IiwgInVzZVN0YXRlIiwgIkZyYWdtZW50IiwgImpzeCIsICJqc3hzIiwgIk5hdiIsICJMaW5rIiwgIkVsZW1lbnQiLCAidXNlRWZmZWN0IiwgInVzZVN0YXRlIiwgIkZyYWdtZW50IiwgImpzeCIsICJqc3hzIl0KfQo=
-- 
GitLab