UNPKG

@nlabs/gothamjs

Version:
303 lines (302 loc) 35.4 kB
'use client'; import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime"; import { Dialog, DialogBackdrop, DialogPanel, Menu, MenuButton, MenuItem, MenuItems, TransitionChild } from '@headlessui/react'; import { cn } from '@nlabs/utils'; import { Menu as Bars3, Bell, Calendar, ChevronDown, Files, Folder, Home, PieChart, Search, Users, X } from 'lucide-react'; import { useState } from 'react'; import { Outlet } from 'react-router'; import { Config } from '../../config/appConfig.js'; const sideMenuItems = [ { current: true, href: '#', icon: Home, name: 'Dashboard' }, { current: false, href: '#', icon: Users, name: 'Team' }, { current: false, href: '#', icon: Folder, name: 'Projects' }, { current: false, href: '#', icon: Calendar, name: 'Calendar' }, { current: false, href: '#', icon: Files, name: 'Documents' }, { current: false, href: '#', icon: PieChart, name: 'Reports' } ]; const userMenuItems = [ { href: '#', name: 'Profile' }, { href: '#', name: 'Sign out' } ]; export const MenuView = ()=>{ const [sidebarOpen, setSidebarOpen] = useState(false); const app = Config.get('app'); return /*#__PURE__*/ _jsxs("div", { children: [ /*#__PURE__*/ _jsxs(Dialog, { open: sidebarOpen, onClose: setSidebarOpen, className: "relative z-50 lg:hidden", children: [ /*#__PURE__*/ _jsx(DialogBackdrop, { transition: true, className: "fixed inset-0 bg-gray-900/80 transition-opacity duration-300 ease-linear data-closed:opacity-0" }), /*#__PURE__*/ _jsx("div", { className: "fixed inset-0 flex", children: /*#__PURE__*/ _jsxs(DialogPanel, { transition: true, className: "relative mr-16 flex w-full max-w-xs flex-1 transform transition duration-300 ease-in-out data-closed:-translate-x-full", children: [ /*#__PURE__*/ _jsx(TransitionChild, { children: /*#__PURE__*/ _jsx("div", { className: "absolute top-0 left-full flex w-16 justify-center pt-5 duration-300 ease-in-out data-closed:opacity-0", children: /*#__PURE__*/ _jsxs("button", { type: "button", onClick: ()=>setSidebarOpen(false), className: "-m-2.5 p-2.5", children: [ /*#__PURE__*/ _jsx("span", { className: "sr-only", children: "Close sidebar" }), /*#__PURE__*/ _jsx(X, { "aria-hidden": "true", className: "size-6 text-white" }) ] }) }) }), /*#__PURE__*/ _jsxs("div", { className: "flex grow flex-col gap-y-5 overflow-y-auto bg-gray-900 px-6 pb-2 ring-1 ring-white/10", children: [ /*#__PURE__*/ _jsx("div", { className: "flex h-16 shrink-0 items-center", children: /*#__PURE__*/ _jsx("img", { alt: app?.title, src: app?.logo, className: "h-8 w-auto" }) }), /*#__PURE__*/ _jsx("nav", { className: "flex flex-1 flex-col", children: /*#__PURE__*/ _jsx("ul", { role: "list", className: "-mx-2 flex-1 space-y-1", children: sideMenuItems?.map((item)=>/*#__PURE__*/ _jsx("li", { children: /*#__PURE__*/ _jsxs("a", { href: item.href, className: cn(item.current ? 'bg-gray-800 text-white' : 'text-gray-400 hover:bg-gray-800 hover:text-white', 'group flex gap-x-3 rounded-md p-2 text-sm/6 font-semibold'), children: [ item.icon && /*#__PURE__*/ _jsx(item.icon, { "aria-hidden": "true", className: "size-6 shrink-0" }), item.name ] }) }, item.name)) }) }) ] }) ] }) }) ] }), /*#__PURE__*/ _jsxs("div", { className: "hidden lg:fixed lg:inset-y-0 lg:left-0 lg:z-50 lg:block lg:w-20 lg:overflow-y-auto lg:bg-gray-900 lg:pb-4", children: [ /*#__PURE__*/ _jsx("div", { className: "flex h-16 shrink-0 items-center justify-center", children: /*#__PURE__*/ _jsx("img", { alt: "Your Company", src: "https://tailwindcss.com/plus-assets/img/logos/mark.svg?color=indigo&shade=500", className: "h-8 w-auto" }) }), /*#__PURE__*/ _jsx("nav", { className: "mt-8", children: /*#__PURE__*/ _jsx("ul", { role: "list", className: "flex flex-col items-center space-y-1", children: sideMenuItems?.map((item)=>/*#__PURE__*/ _jsx("li", { children: /*#__PURE__*/ _jsxs("a", { href: item.href, className: cn(item.current ? 'bg-gray-800 text-white' : 'text-gray-400 hover:bg-gray-800 hover:text-white', 'group flex gap-x-3 rounded-md p-3 text-sm/6 font-semibold'), children: [ item.icon && /*#__PURE__*/ _jsx(item.icon, { "aria-hidden": "true", className: "size-6 shrink-0" }), /*#__PURE__*/ _jsx("span", { className: "sr-only", children: item.name }) ] }) }, item.name)) }) }) ] }), /*#__PURE__*/ _jsxs("div", { className: "lg:pl-20", children: [ /*#__PURE__*/ _jsxs("div", { className: "sticky top-0 z-40 flex h-16 shrink-0 items-center gap-x-4 border-b border-gray-200 bg-white px-4 shadow-xs sm:gap-x-6 sm:px-6 lg:px-8", children: [ /*#__PURE__*/ _jsxs("button", { type: "button", onClick: ()=>setSidebarOpen(true), className: "-m-2.5 p-2.5 text-gray-700 lg:hidden", children: [ /*#__PURE__*/ _jsx("span", { className: "sr-only", children: "Open sidebar" }), /*#__PURE__*/ _jsx(Bars3, { "aria-hidden": "true", className: "size-6" }) ] }), /*#__PURE__*/ _jsx("div", { "aria-hidden": "true", className: "h-6 w-px bg-gray-900/10 lg:hidden" }), /*#__PURE__*/ _jsxs("div", { className: "flex flex-1 gap-x-4 self-stretch lg:gap-x-6", children: [ /*#__PURE__*/ _jsxs("form", { action: "#", method: "GET", className: "grid flex-1 grid-cols-1", children: [ /*#__PURE__*/ _jsx("input", { name: "search", type: "search", placeholder: "Search", "aria-label": "Search", className: "col-start-1 row-start-1 block size-full bg-white pl-8 text-base text-gray-900 outline-hidden placeholder:text-gray-400 sm:text-sm/6" }), /*#__PURE__*/ _jsx(Search, { "aria-hidden": "true", className: "pointer-events-none col-start-1 row-start-1 size-5 self-center text-gray-400" }) ] }), /*#__PURE__*/ _jsxs("div", { className: "flex items-center gap-x-4 lg:gap-x-6", children: [ /*#__PURE__*/ _jsxs("button", { type: "button", className: "-m-2.5 p-2.5 text-gray-400 hover:text-gray-500", children: [ /*#__PURE__*/ _jsx("span", { className: "sr-only", children: "View notifications" }), /*#__PURE__*/ _jsx(Bell, { "aria-hidden": "true", className: "size-6" }) ] }), /*#__PURE__*/ _jsx("div", { "aria-hidden": "true", className: "hidden lg:block lg:h-6 lg:w-px lg:bg-gray-900/10" }), /*#__PURE__*/ _jsxs(Menu, { as: "div", className: "relative", children: [ /*#__PURE__*/ _jsxs(MenuButton, { className: "-m-1.5 flex items-center p-1.5", children: [ /*#__PURE__*/ _jsx("span", { className: "sr-only", children: "Open user menu" }), /*#__PURE__*/ _jsx("img", { alt: "", src: "https://images.unsplash.com/photo-1472099645785-5658abf4ff4e?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=facearea&facepad=2&w=256&h=256&q=80", className: "size-8 rounded-full bg-gray-50" }), /*#__PURE__*/ _jsxs("span", { className: "hidden lg:flex lg:items-center", children: [ /*#__PURE__*/ _jsx("span", { "aria-hidden": "true", className: "ml-4 text-sm/6 font-semibold text-gray-900", children: "Tom Cook" }), /*#__PURE__*/ _jsx(ChevronDown, { "aria-hidden": "true", className: "ml-2 size-5 text-gray-400" }) ] }) ] }), /*#__PURE__*/ _jsx(MenuItems, { transition: true, className: "absolute right-0 z-10 mt-2.5 w-32 origin-top-right rounded-md bg-white py-2 ring-1 shadow-lg ring-gray-900/5 transition focus:outline-hidden data-closed:scale-95 data-closed:transform data-closed:opacity-0 data-enter:duration-100 data-enter:ease-out data-leave:duration-75 data-leave:ease-in", children: userMenuItems?.map((item)=>/*#__PURE__*/ _jsx(MenuItem, { children: /*#__PURE__*/ _jsx("a", { href: item.href, className: "block px-3 py-1 text-sm/6 text-gray-900 data-focus:bg-gray-50 data-focus:outline-hidden", children: item.name }) }, item.name)) }) ] }) ] }) ] }) ] }), /*#__PURE__*/ _jsx("main", { className: "xl:pl-96", children: /*#__PURE__*/ _jsx("div", { className: "px-4 py-10 sm:px-6 lg:px-8 lg:py-6", children: /*#__PURE__*/ _jsx(Outlet, {}) }) }) ] }) ] }); }; export default MenuView; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9uaXRyb2c3L0RldmVsb3BtZW50L2dvdGhhbWpzL3NyYy92aWV3cy9NZW51Vmlldy9NZW51Vmlldy50c3giXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBjbGllbnQnO1xuaW1wb3J0IHtcbiAgRGlhbG9nLFxuICBEaWFsb2dCYWNrZHJvcCxcbiAgRGlhbG9nUGFuZWwsXG4gIE1lbnUsXG4gIE1lbnVCdXR0b24sXG4gIE1lbnVJdGVtLFxuICBNZW51SXRlbXMsXG4gIFRyYW5zaXRpb25DaGlsZFxufSBmcm9tICdAaGVhZGxlc3N1aS9yZWFjdCc7XG5pbXBvcnQge2NufSBmcm9tICdAbmxhYnMvdXRpbHMnO1xuaW1wb3J0IHtcbiAgTWVudSBhcyBCYXJzMyxcbiAgQmVsbCxcbiAgQ2FsZW5kYXIsXG4gIENoZXZyb25Eb3duLFxuICBGaWxlcyxcbiAgRm9sZGVyLFxuICBIb21lLFxuICBQaWVDaGFydCxcbiAgU2VhcmNoLFxuICBVc2VycyxcbiAgWFxufSBmcm9tICdsdWNpZGUtcmVhY3QnO1xuaW1wb3J0IHt1c2VTdGF0ZX0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHtPdXRsZXR9IGZyb20gJ3JlYWN0LXJvdXRlcic7XG5cbmltcG9ydCB7Q29uZmlnfSBmcm9tICcuLi8uLi9jb25maWcvYXBwQ29uZmlnLmpzJztcblxuaW1wb3J0IHR5cGUge0VsZW1lbnRUeXBlLCBGQ30gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHR5cGUge0dvdGhhbUNvbmZpZ3VyYXRpb259IGZyb20gJy4uL0dvdGhhbS9Hb3RoYW1Qcm92aWRlci5qcyc7XG5cbmNvbnN0IHNpZGVNZW51SXRlbXM6IE1lbnVJdGVtc1tdID0gW1xuICB7IGN1cnJlbnQ6IHRydWUsIGhyZWY6ICcjJywgaWNvbjogSG9tZSwgbmFtZTogJ0Rhc2hib2FyZCcgfSxcbiAgeyBjdXJyZW50OiBmYWxzZSwgaHJlZjogJyMnLCBpY29uOiBVc2VycywgbmFtZTogJ1RlYW0nIH0sXG4gIHsgY3VycmVudDogZmFsc2UsIGhyZWY6ICcjJywgaWNvbjogRm9sZGVyLCBuYW1lOiAnUHJvamVjdHMnIH0sXG4gIHsgY3VycmVudDogZmFsc2UsIGhyZWY6ICcjJywgaWNvbjogQ2FsZW5kYXIsIG5hbWU6ICdDYWxlbmRhcicgfSxcbiAgeyBjdXJyZW50OiBmYWxzZSwgaHJlZjogJyMnLCBpY29uOiBGaWxlcywgbmFtZTogJ0RvY3VtZW50cycgfSxcbiAgeyBjdXJyZW50OiBmYWxzZSwgaHJlZjogJyMnLCBpY29uOiBQaWVDaGFydCwgbmFtZTogJ1JlcG9ydHMnIH1cbl07XG5cbmNvbnN0IHVzZXJNZW51SXRlbXM6IE1lbnVJdGVtc1tdID0gW1xuICB7IGhyZWY6ICcjJywgbmFtZTogJ1Byb2ZpbGUnIH0sXG4gIHsgaHJlZjogJyMnLCBuYW1lOiAnU2lnbiBvdXQnIH1cbl07XG5cbmV4cG9ydCB0eXBlIE1lbnVJdGVtcyA9IHtcbiAgcmVhZG9ubHkgY3VycmVudD86IGJvb2xlYW47XG4gIHJlYWRvbmx5IGhyZWY6IHN0cmluZztcbiAgcmVhZG9ubHkgaWNvbj86IEVsZW1lbnRUeXBlO1xuICByZWFkb25seSBuYW1lOiBzdHJpbmc7XG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIE1lbnVWaWV3UHJvcHMge1xuICBzaWRlTWVudUl0ZW1zOiBNZW51SXRlbXNbXTtcbiAgdXNlck1lbnVJdGVtczogTWVudUl0ZW1zW107XG59XG5cbmV4cG9ydCBjb25zdCBNZW51VmlldzogRkM8TWVudVZpZXdQcm9wcz4gPSAoKSA9PiB7XG4gIGNvbnN0IFtzaWRlYmFyT3Blbiwgc2V0U2lkZWJhck9wZW5dID0gdXNlU3RhdGUoZmFsc2UpO1xuICBjb25zdCBhcHA6IEdvdGhhbUNvbmZpZ3VyYXRpb25bJ2FwcCddID0gQ29uZmlnLmdldCgnYXBwJykgYXMgR290aGFtQ29uZmlndXJhdGlvblsnYXBwJ107XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2PlxuICAgICAgPERpYWxvZyBvcGVuPXtzaWRlYmFyT3Blbn0gb25DbG9zZT17c2V0U2lkZWJhck9wZW59IGNsYXNzTmFtZT1cInJlbGF0aXZlIHotNTAgbGc6aGlkZGVuXCI+XG4gICAgICAgIDxEaWFsb2dCYWNrZHJvcFxuICAgICAgICAgIHRyYW5zaXRpb25cbiAgICAgICAgICBjbGFzc05hbWU9XCJmaXhlZCBpbnNldC0wIGJnLWdyYXktOTAwLzgwIHRyYW5zaXRpb24tb3BhY2l0eSBkdXJhdGlvbi0zMDAgZWFzZS1saW5lYXIgZGF0YS1jbG9zZWQ6b3BhY2l0eS0wXCJcbiAgICAgICAgLz5cblxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZpeGVkIGluc2V0LTAgZmxleFwiPlxuICAgICAgICAgIDxEaWFsb2dQYW5lbFxuICAgICAgICAgICAgdHJhbnNpdGlvblxuICAgICAgICAgICAgY2xhc3NOYW1lPVwicmVsYXRpdmUgbXItMTYgZmxleCB3LWZ1bGwgbWF4LXcteHMgZmxleC0xIHRyYW5zZm9ybSB0cmFuc2l0aW9uIGR1cmF0aW9uLTMwMCBlYXNlLWluLW91dCBkYXRhLWNsb3NlZDotdHJhbnNsYXRlLXgtZnVsbFwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPFRyYW5zaXRpb25DaGlsZD5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJhYnNvbHV0ZSB0b3AtMCBsZWZ0LWZ1bGwgZmxleCB3LTE2IGp1c3RpZnktY2VudGVyIHB0LTUgZHVyYXRpb24tMzAwIGVhc2UtaW4tb3V0IGRhdGEtY2xvc2VkOm9wYWNpdHktMFwiPlxuICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIG9uQ2xpY2s9eygpID0+IHNldFNpZGViYXJPcGVuKGZhbHNlKX0gY2xhc3NOYW1lPVwiLW0tMi41IHAtMi41XCI+XG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJzci1vbmx5XCI+Q2xvc2Ugc2lkZWJhcjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgIDxYIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIGNsYXNzTmFtZT1cInNpemUtNiB0ZXh0LXdoaXRlXCIgLz5cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L1RyYW5zaXRpb25DaGlsZD5cblxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGdyb3cgZmxleC1jb2wgZ2FwLXktNSBvdmVyZmxvdy15LWF1dG8gYmctZ3JheS05MDAgcHgtNiBwYi0yIHJpbmctMSByaW5nLXdoaXRlLzEwXCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBoLTE2IHNocmluay0wIGl0ZW1zLWNlbnRlclwiPlxuICAgICAgICAgICAgICAgIDxpbWdcbiAgICAgICAgICAgICAgICAgIGFsdD17YXBwPy50aXRsZX1cbiAgICAgICAgICAgICAgICAgIHNyYz17YXBwPy5sb2dvfVxuICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiaC04IHctYXV0b1wiXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxuYXYgY2xhc3NOYW1lPVwiZmxleCBmbGV4LTEgZmxleC1jb2xcIj5cbiAgICAgICAgICAgICAgICA8dWwgcm9sZT1cImxpc3RcIiBjbGFzc05hbWU9XCItbXgtMiBmbGV4LTEgc3BhY2UteS0xXCI+XG4gICAgICAgICAgICAgICAgICB7c2lkZU1lbnVJdGVtcz8ubWFwKChpdGVtKSA9PiAoXG4gICAgICAgICAgICAgICAgICAgIDxsaSBrZXk9e2l0ZW0ubmFtZX0+XG4gICAgICAgICAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAgICAgICAgIGhyZWY9e2l0ZW0uaHJlZn1cbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17Y24oXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0uY3VycmVudFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gJ2JnLWdyYXktODAwIHRleHQtd2hpdGUnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAndGV4dC1ncmF5LTQwMCBob3ZlcjpiZy1ncmF5LTgwMCBob3Zlcjp0ZXh0LXdoaXRlJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgJ2dyb3VwIGZsZXggZ2FwLXgtMyByb3VuZGVkLW1kIHAtMiB0ZXh0LXNtLzYgZm9udC1zZW1pYm9sZCdcbiAgICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAge2l0ZW0uaWNvbiAmJiA8aXRlbS5pY29uIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIGNsYXNzTmFtZT1cInNpemUtNiBzaHJpbmstMFwiIC8+fVxuICAgICAgICAgICAgICAgICAgICAgICAge2l0ZW0ubmFtZX1cbiAgICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgICAgICA8L3VsPlxuICAgICAgICAgICAgICA8L25hdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvRGlhbG9nUGFuZWw+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9EaWFsb2c+XG5cbiAgICAgIHsvKiBTdGF0aWMgc2lkZWJhciBmb3IgZGVza3RvcCAqL31cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaGlkZGVuIGxnOmZpeGVkIGxnOmluc2V0LXktMCBsZzpsZWZ0LTAgbGc6ei01MCBsZzpibG9jayBsZzp3LTIwIGxnOm92ZXJmbG93LXktYXV0byBsZzpiZy1ncmF5LTkwMCBsZzpwYi00XCI+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBoLTE2IHNocmluay0wIGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlclwiPlxuICAgICAgICAgIDxpbWdcbiAgICAgICAgICAgIGFsdD1cIllvdXIgQ29tcGFueVwiXG4gICAgICAgICAgICBzcmM9XCJodHRwczovL3RhaWx3aW5kY3NzLmNvbS9wbHVzLWFzc2V0cy9pbWcvbG9nb3MvbWFyay5zdmc/Y29sb3I9aW5kaWdvJnNoYWRlPTUwMFwiXG4gICAgICAgICAgICBjbGFzc05hbWU9XCJoLTggdy1hdXRvXCJcbiAgICAgICAgICAvPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPG5hdiBjbGFzc05hbWU9XCJtdC04XCI+XG4gICAgICAgICAgPHVsIHJvbGU9XCJsaXN0XCIgY2xhc3NOYW1lPVwiZmxleCBmbGV4LWNvbCBpdGVtcy1jZW50ZXIgc3BhY2UteS0xXCI+XG4gICAgICAgICAgICB7c2lkZU1lbnVJdGVtcz8ubWFwKChpdGVtKSA9PiAoXG4gICAgICAgICAgICAgIDxsaSBrZXk9e2l0ZW0ubmFtZX0+XG4gICAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAgIGhyZWY9e2l0ZW0uaHJlZn1cbiAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17Y24oXG4gICAgICAgICAgICAgICAgICAgIGl0ZW0uY3VycmVudCA/ICdiZy1ncmF5LTgwMCB0ZXh0LXdoaXRlJyA6ICd0ZXh0LWdyYXktNDAwIGhvdmVyOmJnLWdyYXktODAwIGhvdmVyOnRleHQtd2hpdGUnLFxuICAgICAgICAgICAgICAgICAgICAnZ3JvdXAgZmxleCBnYXAteC0zIHJvdW5kZWQtbWQgcC0zIHRleHQtc20vNiBmb250LXNlbWlib2xkJ1xuICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICB7aXRlbS5pY29uICYmIDxpdGVtLmljb24gYXJpYS1oaWRkZW49XCJ0cnVlXCIgY2xhc3NOYW1lPVwic2l6ZS02IHNocmluay0wXCIgLz59XG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJzci1vbmx5XCI+e2l0ZW0ubmFtZX08L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgKSl9XG4gICAgICAgICAgPC91bD5cbiAgICAgICAgPC9uYXY+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJsZzpwbC0yMFwiPlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInN0aWNreSB0b3AtMCB6LTQwIGZsZXggaC0xNiBzaHJpbmstMCBpdGVtcy1jZW50ZXIgZ2FwLXgtNCBib3JkZXItYiBib3JkZXItZ3JheS0yMDAgYmctd2hpdGUgcHgtNCBzaGFkb3cteHMgc206Z2FwLXgtNiBzbTpweC02IGxnOnB4LThcIj5cbiAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBvbkNsaWNrPXsoKSA9PiBzZXRTaWRlYmFyT3Blbih0cnVlKX0gY2xhc3NOYW1lPVwiLW0tMi41IHAtMi41IHRleHQtZ3JheS03MDAgbGc6aGlkZGVuXCI+XG4gICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJzci1vbmx5XCI+T3BlbiBzaWRlYmFyPC9zcGFuPlxuICAgICAgICAgICAgPEJhcnMzIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIGNsYXNzTmFtZT1cInNpemUtNlwiIC8+XG4gICAgICAgICAgPC9idXR0b24+XG5cbiAgICAgICAgICB7LyogU2VwYXJhdG9yICovfVxuICAgICAgICAgIDxkaXYgYXJpYS1oaWRkZW49XCJ0cnVlXCIgY2xhc3NOYW1lPVwiaC02IHctcHggYmctZ3JheS05MDAvMTAgbGc6aGlkZGVuXCIgLz5cblxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBmbGV4LTEgZ2FwLXgtNCBzZWxmLXN0cmV0Y2ggbGc6Z2FwLXgtNlwiPlxuICAgICAgICAgICAgPGZvcm0gYWN0aW9uPVwiI1wiIG1ldGhvZD1cIkdFVFwiIGNsYXNzTmFtZT1cImdyaWQgZmxleC0xIGdyaWQtY29scy0xXCI+XG4gICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgIG5hbWU9XCJzZWFyY2hcIlxuICAgICAgICAgICAgICAgIHR5cGU9XCJzZWFyY2hcIlxuICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiU2VhcmNoXCJcbiAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPVwiU2VhcmNoXCJcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJjb2wtc3RhcnQtMSByb3ctc3RhcnQtMSBibG9jayBzaXplLWZ1bGwgYmctd2hpdGUgcGwtOCB0ZXh0LWJhc2UgdGV4dC1ncmF5LTkwMCBvdXRsaW5lLWhpZGRlbiBwbGFjZWhvbGRlcjp0ZXh0LWdyYXktNDAwIHNtOnRleHQtc20vNlwiXG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDxTZWFyY2hcbiAgICAgICAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInBvaW50ZXItZXZlbnRzLW5vbmUgY29sLXN0YXJ0LTEgcm93LXN0YXJ0LTEgc2l6ZS01IHNlbGYtY2VudGVyIHRleHQtZ3JheS00MDBcIlxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC9mb3JtPlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlciBnYXAteC00IGxnOmdhcC14LTZcIj5cbiAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3NOYW1lPVwiLW0tMi41IHAtMi41IHRleHQtZ3JheS00MDAgaG92ZXI6dGV4dC1ncmF5LTUwMFwiPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cInNyLW9ubHlcIj5WaWV3IG5vdGlmaWNhdGlvbnM8L3NwYW4+XG4gICAgICAgICAgICAgICAgPEJlbGwgYXJpYS1oaWRkZW49XCJ0cnVlXCIgY2xhc3NOYW1lPVwic2l6ZS02XCIgLz5cbiAgICAgICAgICAgICAgPC9idXR0b24+XG5cbiAgICAgICAgICAgICAgey8qIFNlcGFyYXRvciAqL31cbiAgICAgICAgICAgICAgPGRpdiBhcmlhLWhpZGRlbj1cInRydWVcIiBjbGFzc05hbWU9XCJoaWRkZW4gbGc6YmxvY2sgbGc6aC02IGxnOnctcHggbGc6YmctZ3JheS05MDAvMTBcIiAvPlxuXG4gICAgICAgICAgICAgIHsvKiBQcm9maWxlIGRyb3Bkb3duICovfVxuICAgICAgICAgICAgICA8TWVudSBhcz1cImRpdlwiIGNsYXNzTmFtZT1cInJlbGF0aXZlXCI+XG4gICAgICAgICAgICAgICAgPE1lbnVCdXR0b24gY2xhc3NOYW1lPVwiLW0tMS41IGZsZXggaXRlbXMtY2VudGVyIHAtMS41XCI+XG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJzci1vbmx5XCI+T3BlbiB1c2VyIG1lbnU8L3NwYW4+XG4gICAgICAgICAgICAgICAgICA8aW1nXG4gICAgICAgICAgICAgICAgICAgIGFsdD1cIlwiXG4gICAgICAgICAgICAgICAgICAgIHNyYz1cImh0dHBzOi8vaW1hZ2VzLnVuc3BsYXNoLmNvbS9waG90by0xNDcyMDk5NjQ1Nzg1LTU2NThhYmY0ZmY0ZT9peGxpYj1yYi0xLjIuMSZpeGlkPWV5SmhjSEJmYVdRaU9qRXlNRGQ5JmF1dG89Zm9ybWF0JmZpdD1mYWNlYXJlYSZmYWNlcGFkPTImdz0yNTYmaD0yNTYmcT04MFwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInNpemUtOCByb3VuZGVkLWZ1bGwgYmctZ3JheS01MFwiXG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiaGlkZGVuIGxnOmZsZXggbGc6aXRlbXMtY2VudGVyXCI+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIGNsYXNzTmFtZT1cIm1sLTQgdGV4dC1zbS82IGZvbnQtc2VtaWJvbGQgdGV4dC1ncmF5LTkwMFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgVG9tIENvb2tcbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8Q2hldnJvbkRvd24gYXJpYS1oaWRkZW49XCJ0cnVlXCIgY2xhc3NOYW1lPVwibWwtMiBzaXplLTUgdGV4dC1ncmF5LTQwMFwiIC8+XG4gICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9NZW51QnV0dG9uPlxuICAgICAgICAgICAgICAgIDxNZW51SXRlbXNcbiAgICAgICAgICAgICAgICAgIHRyYW5zaXRpb25cbiAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImFic29sdXRlIHJpZ2h0LTAgei0xMCBtdC0yLjUgdy0zMiBvcmlnaW4tdG9wLXJpZ2h0IHJvdW5kZWQtbWQgYmctd2hpdGUgcHktMiByaW5nLTEgc2hhZG93LWxnIHJpbmctZ3JheS05MDAvNSB0cmFuc2l0aW9uIGZvY3VzOm91dGxpbmUtaGlkZGVuIGRhdGEtY2xvc2VkOnNjYWxlLTk1IGRhdGEtY2xvc2VkOnRyYW5zZm9ybSBkYXRhLWNsb3NlZDpvcGFjaXR5LTAgZGF0YS1lbnRlcjpkdXJhdGlvbi0xMDAgZGF0YS1lbnRlcjplYXNlLW91dCBkYXRhLWxlYXZlOmR1cmF0aW9uLTc1IGRhdGEtbGVhdmU6ZWFzZS1pblwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge3VzZXJNZW51SXRlbXM/Lm1hcCgoaXRlbSkgPT4gKFxuICAgICAgICAgICAgICAgICAgICA8TWVudUl0ZW0ga2V5PXtpdGVtLm5hbWV9PlxuICAgICAgICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgICAgICBocmVmPXtpdGVtLmhyZWZ9XG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJibG9jayBweC0zIHB5LTEgdGV4dC1zbS82IHRleHQtZ3JheS05MDAgZGF0YS1mb2N1czpiZy1ncmF5LTUwIGRhdGEtZm9jdXM6b3V0bGluZS1oaWRkZW5cIlxuICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIHtpdGVtLm5hbWV9XG4gICAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgICAgICA8L01lbnVJdGVtPlxuICAgICAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICAgICAgPC9NZW51SXRlbXM+XG4gICAgICAgICAgICAgIDwvTWVudT5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8bWFpbiBjbGFzc05hbWU9XCJ4bDpwbC05NlwiPlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicHgtNCBweS0xMCBzbTpweC02IGxnOnB4LTggbGc6cHktNlwiPjxPdXRsZXQvPjwvZGl2PlxuICAgICAgICA8L21haW4+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgKTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IE1lbnVWaWV3OyJdLCJuYW1lcyI6WyJEaWFsb2ciLCJEaWFsb2dCYWNrZHJvcCIsIkRpYWxvZ1BhbmVsIiwiTWVudSIsIk1lbnVCdXR0b24iLCJNZW51SXRlbSIsIk1lbnVJdGVtcyIsIlRyYW5zaXRpb25DaGlsZCIsImNuIiwiQmFyczMiLCJCZWxsIiwiQ2FsZW5kYXIiLCJDaGV2cm9uRG93biIsIkZpbGVzIiwiRm9sZGVyIiwiSG9tZSIsIlBpZUNoYXJ0IiwiU2VhcmNoIiwiVXNlcnMiLCJYIiwidXNlU3RhdGUiLCJPdXRsZXQiLCJDb25maWciLCJzaWRlTWVudUl0ZW1zIiwiY3VycmVudCIsImhyZWYiLCJpY29uIiwibmFtZSIsInVzZXJNZW51SXRlbXMiLCJNZW51VmlldyIsInNpZGViYXJPcGVuIiwic2V0U2lkZWJhck9wZW4iLCJhcHAiLCJnZXQiLCJkaXYiLCJvcGVuIiwib25DbG9zZSIsImNsYXNzTmFtZSIsInRyYW5zaXRpb24iLCJidXR0b24iLCJ0eXBlIiwib25DbGljayIsInNwYW4iLCJhcmlhLWhpZGRlbiIsImltZyIsImFsdCIsInRpdGxlIiwic3JjIiwibG9nbyIsIm5hdiIsInVsIiwicm9sZSIsIm1hcCIsIml0ZW0iLCJsaSIsImEiLCJmb3JtIiwiYWN0aW9uIiwibWV0aG9kIiwiaW5wdXQiLCJwbGFjZWhvbGRlciIsImFyaWEtbGFiZWwiLCJhcyIs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