react-odontogram 0.4.0 → 0.4.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.css +2 -2
- package/dist/index.js +2 -2
- package/dist/index.mjs +2 -2
- package/package.json +1 -1
package/dist/index.css
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
:root{--dark-blue: #3e5edc;--base-blue: #8a98be;--light-blue: #c6ccf8}.Odontogram svg.dark-theme{--dark-blue: #aab6ff;--base-blue: #d0d5f6;--light-blue: #5361e6;background-color:#0b0d1a;color-scheme:dark;color:#e4e6ef}.Odontogram svg{color:var(--base-blue);fill:"none";transition:all ease-in 125ms}.Odontogram svg path:nth-of-type(2){opacity:0;transition:all ease-in .2s}.Odontogram g.selected path:nth-of-type(2){fill:var(--light-blue);opacity:1}.Odontogram g.selected path:first-of-type{transition:stroke 1s ease}.Odontogram g.selected:hover path:first-of-type{stroke:currentColor;stroke-width:1;stroke-linecap:round;stroke-dasharray:4 4;stroke-dashoffset:0;transition:stroke 5s ease;animation:dash-move 1s linear infinite;animation-delay:1s;filter:drop-shadow(0 0 8px currentColor);-webkit-filter:drop-shadow(0 0 8px currentColor)}@keyframes dash-move{to{stroke-dashoffset:8}}.Odontogram g.selected{transition:all .3s ease;color:var(--dark-blue)}.Odontogram g.selected path{stroke-width:1.5}g[class^=teeth-]:hover path:nth-of-type(2){fill:var(--light-blue);opacity:1}.odontogram-tooltip{box-shadow:0 2px 8px #00000026;backdrop-filter:blur(4px)}.dark-theme .odontogram-tooltip{background:#fffffff2;color:#000}.Odontogram g[role=option]:focus-visible{outline:4px solid var(--dark-blue)!important}
|
|
2
|
-
/*# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
:root{--dark-blue: #3e5edc;--base-blue: #8a98be;--light-blue: #c6ccf8}#storybook-root{width:100%;height:100%}.dark-template{width:100%;height:100%;display:flex;justify-content:center;align-items:center;background-color:#0b0d1a}.Odontogram svg.dark-theme{--dark-blue: #aab6ff;--base-blue: #d0d5f6;--light-blue: #5361e6;background-color:#0b0d1a;color-scheme:dark;color:#e4e6ef}.Odontogram svg{color:var(--base-blue);fill:"none";transition:all ease-in 125ms}.Odontogram svg path:nth-of-type(2){opacity:0;transition:all ease-in .2s}.Odontogram g.selected path:nth-of-type(2){fill:var(--light-blue);opacity:1}.Odontogram g.selected path:first-of-type{transition:stroke 1s ease}.Odontogram g.selected:hover path:first-of-type{stroke:currentColor;stroke-width:1;stroke-linecap:round;stroke-dasharray:4 4;stroke-dashoffset:0;transition:stroke 5s ease;animation:dash-move 1s linear infinite;animation-delay:1s;filter:drop-shadow(0 0 8px currentColor);-webkit-filter:drop-shadow(0 0 8px currentColor)}@keyframes dash-move{to{stroke-dashoffset:8}}.Odontogram g.selected{transition:all .3s ease;color:var(--dark-blue)}.Odontogram g.selected path{stroke-width:1.5}g[class^=teeth-]:hover path:nth-of-type(2){fill:var(--light-blue);opacity:1}.odontogram-tooltip{box-shadow:0 2px 8px #00000026;backdrop-filter:blur(4px)}.dark-theme .odontogram-tooltip{background:#fffffff2;color:#000}.Odontogram g[role=option]:focus-visible{outline:4px solid var(--dark-blue)!important}
|
|
2
|
+
/*# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vc3JjL3N0eWxlcy5jc3MiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIjpyb290IHtcblx0LS1kYXJrLWJsdWU6ICMzZTVlZGM7XG5cdC0tYmFzZS1ibHVlOiAjOGE5OGJlO1xuXHQtLWxpZ2h0LWJsdWU6ICNjNmNjZjg7XG59XG5cblxuXG4jc3Rvcnlib29rLXJvb3Qge1xuXHR3aWR0aDogMTAwJTtcblx0aGVpZ2h0OiAxMDAlO1xufVxuXG4uZGFyay10ZW1wbGF0ZSB7XG5cdHdpZHRoOiAxMDAlO1xuXHRoZWlnaHQ6IDEwMCU7XG5cdGRpc3BsYXk6IGZsZXg7XG5cdGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXHRhbGlnbi1pdGVtczogY2VudGVyO1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiAjMGIwZDFhO1xufVxuXG4vKiBcdUQ4M0NcdURGMTkgRGFyayB0aGVtZSBvdmVycmlkZXMgKi9cbi5PZG9udG9ncmFtIHN2Zy5kYXJrLXRoZW1lIHtcblx0LS1kYXJrLWJsdWU6ICNhYWI2ZmY7IC8qIGxpZ2h0ZXIgYmx1ZSBmb3IgY29udHJhc3Qgb24gZGFyayBiZyAqL1xuXHQtLWJhc2UtYmx1ZTogI2QwZDVmNjsgLyogbGlnaHQgbXV0ZWQgYmFzZSAqL1xuXHQtLWxpZ2h0LWJsdWU6ICM1MzYxZTY7IC8qIHZpYnJhbnQgaGlnaGxpZ2h0IGJsdWUgKi9cblx0YmFja2dyb3VuZC1jb2xvcjogIzBiMGQxYTsgLyogb3B0aW9uYWwgcGFnZSBiYWNrZ3JvdW5kICovXG5cdGNvbG9yLXNjaGVtZTogZGFyaztcblx0Y29sb3I6ICNlNGU2ZWY7XG59XG5cbi5PZG9udG9ncmFtIHN2ZyB7XG5cdGNvbG9yOiB2YXIoLS1iYXNlLWJsdWUpO1xuXHRmaWxsOiBcIm5vbmVcIjtcblx0dHJhbnNpdGlvbjogYWxsIGVhc2UtaW4gMTI1bXM7XG59XG5cbi5PZG9udG9ncmFtIHN2ZyBwYXRoOm50aC1vZi10eXBlKDIpIHtcblx0b3BhY2l0eTogMDtcblx0dHJhbnNpdGlvbjogYWxsIGVhc2UtaW4gMjAwbXM7XG59XG5cbi5PZG9udG9ncmFtIGcuc2VsZWN0ZWQgcGF0aDpudGgtb2YtdHlwZSgyKSB7XG5cdGZpbGw6IHZhcigtLWxpZ2h0LWJsdWUpO1xuXHRvcGFjaXR5OiAxO1xufVxuXG4uT2RvbnRvZ3JhbSBnLnNlbGVjdGVkIHBhdGg6Zmlyc3Qtb2YtdHlwZSB7XG5cdHRyYW5zaXRpb246IHN0cm9rZSAxcyBlYXNlO1xufVxuXG4vKiBBbmltYXRlIGRhc2ggb24gaG92ZXIgKi9cbi5PZG9udG9ncmFtIGcuc2VsZWN0ZWQ6aG92ZXIgcGF0aDpmaXJzdC1vZi10eXBlIHtcblx0c3Ryb2tlOiBjdXJyZW50Q29sb3I7XG5cdHN0cm9rZS13aWR0aDogMTtcblx0c3Ryb2tlLWxpbmVjYXA6IHJvdW5kO1xuXHRzdHJva2UtZGFzaGFycmF5OiA0IDQ7IC8qIGRhc2ggbGVuZ3RoICsgZ2FwICovXG5cdHN0cm9rZS1kYXNob2Zmc2V0OiAwO1xuXHR0cmFuc2l0aW9uOiBzdHJva2UgNXMgZWFzZTtcblx0YW5pbWF0aW9uOiBkYXNoLW1vdmUgMXMgbGluZWFyIGluZmluaXRlO1xuXHRhbmltYXRpb24tZGVsYXk6IDFzO1xuXG5cdGZpbHRlcjogZHJvcC1zaGFkb3coMCAwIDhweCBjdXJyZW50Q29sb3IpO1xuXHQtd2Via2l0LWZpbHRlcjogZHJvcC1zaGFkb3coMCAwIDhweCBjdXJyZW50Q29sb3IpO1xufVxuXG5Aa2V5ZnJhbWVzIGRhc2gtbW92ZSB7XG5cdHRvIHtcblx0XHRzdHJva2UtZGFzaG9mZnNldDogODsgLyogbW92ZSBieSBvbmUgZGFzaCtnYXAgbGVuZ3RoICovXG5cdH1cbn1cblxuLk9kb250b2dyYW0gZy5zZWxlY3RlZCB7XG5cdC8qIGZpbGw6IHZhcigtLWxpZ2h0LWJsdWUpOyAgKi9cblx0Lyogc3Ryb2tlOiB2YXIoLS1kYXJrLWJsdWUpOyAqL1xuXHQvKiBzdHJva2Utd2lkdGg6IDEuNTsgKi9cblx0dHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcblx0Y29sb3I6IHZhcigtLWRhcmstYmx1ZSk7XG59XG5cbi5PZG9udG9ncmFtIGcuc2VsZWN0ZWQgcGF0aCB7XG5cdHN0cm9rZS13aWR0aDogMS41O1xufVxuXG5nW2NsYXNzXj1cInRlZXRoLVwiXTpob3ZlciBwYXRoOm50aC1vZi10eXBlKDIpIHtcblx0ZmlsbDogdmFyKC0tbGlnaHQtYmx1ZSk7XG5cdG9wYWNpdHk6IDE7XG59XG5cbi5vZG9udG9ncmFtLXRvb2x0aXAge1xuXHRib3gtc2hhZG93OiAwIDJweCA4cHggcmdiYSgwLCAwLCAwLCAwLjE1KTtcblx0YmFja2Ryb3AtZmlsdGVyOiBibHVyKDRweCk7XG59XG5cbi5kYXJrLXRoZW1lIC5vZG9udG9ncmFtLXRvb2x0aXAge1xuXHRiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOTUpO1xuXHRjb2xvcjogIzAwMDtcbn1cblxuXG4gXG5cbi5PZG9udG9ncmFtIGdbcm9sZT1cIm9wdGlvblwiXTpmb2N1cy12aXNpYmxlIHtcbm91dGxpbmU6IDRweCBzb2xpZCB2YXIoLS1kYXJrLWJsdWUpICFpbXBvcnRhbnQ7XG59XG5cblxuIl0sCiAgIm1hcHBpbmdzIjogIkFBQUEsTUFDQyxhQUFhLFFBQ2IsYUFBYSxRQUNiLGNBQWMsT0FDZixDQUlBLENBQUMsZUFDQSxNQUFPLEtBQ1AsT0FBUSxJQUNULENBRUEsQ0FBQyxjQUNBLE1BQU8sS0FDUCxPQUFRLEtBQ1IsUUFBUyxLQUNULGdCQUFpQixPQUNqQixZQUFhLE9BQ2IsaUJBQWtCLE9BQ25CLENBR0EsQ0FBQyxXQUFXLEdBQUcsQ0FBQyxXQUNmLGFBQWEsUUFDYixhQUFhLFFBQ2IsY0FBYyxRQUNkLGlCQUFrQixRQUNsQixhQUFjLEtBQ2QsTUFBTyxPQUNSLENBRUEsQ0FUQyxXQVNXLElBQ1gsTUFBTyxJQUFJLGFBQ1gsS0FBTSxPQUNOLFdBQVksSUFBSSxRQUFRLEtBQ3pCLENBRUEsQ0FmQyxXQWVXLElBQUksSUFBSSxnQkFDbkIsUUFBUyxFQUNULFdBQVksSUFBSSxRQUFRLEdBQ3pCLENBRUEsQ0FwQkMsV0FvQlcsQ0FBQyxDQUFDLFNBQVMsSUFBSSxnQkFDMUIsS0FBTSxJQUFJLGNBQ1YsUUFBUyxDQUNWLENBRUEsQ0F6QkMsV0F5QlcsQ0FBQyxDQUxDLFNBS1MsSUFBSSxlQUMxQixXQUFZLE9BQU8sR0FBRyxJQUN2QixDQUdBLENBOUJDLFdBOEJXLENBQUMsQ0FWQyxRQVVRLE9BQU8sSUFBSSxlQUNoQyxPQUFRLGFBQ1IsYUFBYyxFQUNkLGVBQWdCLE1BQ2hCLGlCQUFrQixFQUFFLEVBQ3BCLGtCQUFtQixFQUNuQixXQUFZLE9BQU8sR0FBRyxLQUN0QixVQUFXLFVBQVUsR0FBRyxPQUFPLFNBQy9CLGdCQUFpQixHQUVqQixPQUFRLFlBQVksRUFBRSxFQUFFLElBQUksY0FDNUIsZUFBZ0IsWUFBWSxFQUFFLEVBQUUsSUFBSSxhQUNyQyxDQUVBLFdBUFksVUFRWCxHQUNDLGtCQUFtQixDQUNwQixDQUNELENBRUEsQ0FsREMsV0FrRFcsQ0FBQyxDQTlCQyxTQWtDYixXQUFZLElBQUksSUFBSyxLQUNyQixNQUFPLElBQUksWUFDWixDQUVBLENBMURDLFdBMERXLENBQUMsQ0F0Q0MsU0FzQ1MsS0FDdEIsYUFBYyxHQUNmLENBRUEsQ0FBQyxDQUFDLGNBQWdCLE9BQU8sSUFBSSxnQkFDNUIsS0FBTSxJQUFJLGNBQ1YsUUFBUyxDQUNWLENBRUEsQ0FBQyxtQkFDQSxXQUFZLEVBQUUsSUFBSSxJQUFJLFVBQ3RCLGdCQUFpQixLQUFLLElBQ3ZCLENBRUEsQ0F4RWdCLFdBd0VKLENBTFgsbUJBTUEsV0FBWSxVQUNaLE1BQU8sSUFDUixDQUtBLENBaEZDLFdBZ0ZXLENBQUMsQ0FBQyxZQUFjLGVBQzVCLFFBQVMsSUFBSSxNQUFNLElBQUksc0JBQ3ZCIiwKICAibmFtZXMiOiBbXQp9Cg== */
|
package/dist/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var N=Object.defineProperty;var e1=Object.getOwnPropertyDescriptor;var t1=Object.getOwnPropertyNames;var o1=Object.prototype.hasOwnProperty;var r1=(e,t)=>{for(var o in t)N(e,o,{get:t[o],enumerable:!0})},n1=(e,t,o,i)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of t1(t))!o1.call(e,n)&&n!==o&&N(e,n,{get:()=>t[n],enumerable:!(i=e1(t,n))||i.enumerable});return e};var a1=e=>n1(N({},"__esModule",{value:!0}),e);var s1={};r1(s1,{Odontogram:()=>V,convertFDIToNotation:()=>T,default:()=>q,getToothNotations:()=>$,mapToCssVars:()=>H});module.exports=a1(s1);var p=require("react");var w=require("react"),u=require("react/jsx-runtime"),i1=(e,t)=>typeof e=="function"?e(t):e,I=({active:e,payload:t,position:o,content:i})=>{var h,a,g;let n=(0,w.useRef)(null);return(0,w.useEffect)(()=>{if(n.current&&o){let{x:f,y:k}=o;n.current.style.left=`${f+10}px`,n.current.style.top=`${k+10}px`}},[o]),e&&t?(0,u.jsx)("div",{ref:n,className:"odontogram-tooltip",style:{position:"fixed",pointerEvents:"none",background:"rgba(0, 0, 0, 0.75)",color:"#fff",padding:"6px 10px",borderRadius:"6px",fontSize:"12px",lineHeight:1.3,whiteSpace:"nowrap",zIndex:1e3,transform:"translate(-50%, -100%)",transition:"opacity 0.15s ease"},children:i1(i,t)??(0,u.jsxs)(u.Fragment,{children:[(0,u.jsxs)("div",{children:["Tooth: ",(h=t==null?void 0:t.notations)==null?void 0:h.fdi]}),(0,u.jsxs)("div",{children:["Type: ",t==null?void 0:t.type]}),(0,u.jsxs)("div",{children:["Universal: ",(a=t==null?void 0:t.notations)==null?void 0:a.universal,", Palmer:"," ",(g=t==null?void 0:t.notations)==null?void 0:g.palmer]})]})}):null};var M=[{name:"1",type:"Central Incisor",outlinePath:"M173.951 1.698c-2.198.16-5.302.862-5.302.862s-5.531 1.025-7.781 2.27c-2.403 1.333-5.553 3.299-6.013 5.258-.432 1.84-.78 4.734-.491 6.832l.027.2c.348 2.527.865 6.28 1.239 10.316.186 2-.101 3.21.751 6.16.895 3.1 1.395 4.573 2.013 5.687.646 1.164 1.493 2.087 2.03 3.28.866 1.924 2.393 4.29 3.87 6.1a48.805 48.805 0 0 0 2.36 2.663c1.016 1.078 2.819 3.11 3.898 4.331 1.526 1.727 3.076 3.248 4.423 3.742 1.217.446 2.709.642 3.793.936 1.369.372 2.494.638 4.597 0 1.545-.468 2.725-.621 4.372-2.424 2.064-2.258 2.846-3.517 3.512-4.746 1.065-1.964 2.524-4.648 3.541-6.422.611-1.068 2.221-3.089 4.086-8.845 1.54-4.752 2.367-7.76 2.731-8.994.415-1.408 1.079-3.583 1.355-6.196.44-4.176 1.114-7.482 1.062-11.026-.044-3.046.104-5.04-1.065-6.306-.95-1.029-1.988-2.001-3.306-2.534-1.959-.79-3.775-1.358-5.298-1.592-1.351-.207-7.05-.35-11.219-.057-1.567.11-3.61.097-9.185.505Z",shadowPath:"M188.269 50.215c19.275-41.867 10.766-43.612 4.937-44.684-5.829-1.073-28.455 2.53-29.72 2.817-.442.218-8.911 0-4.767 19.54 3.416 16.105 16.193 26.596 17.244 27.265 3.148 2.003 8.837 2.595 12.306-4.938Z",lineHighlightPath:"M160.472 14.727c.392-.402 4.317-3.309 8.941-5.47 3.097-1.448 7.773-1.629 11.207-1.749 8.759-.365 10.004.91 12.637 1.495.562.139.909.276 1.771.595"},{name:"2",type:"Lateral Incisor",outlinePath:"M135.016 60.41c3.443 1.355 7.834 2.73 9.601 2.346 4.185-.91 7.044-4.017 8.123-8.152 2.069-7.927 2.249-16.288 1.995-24.436-.113-3.596.72-16.81-4.184-18.444-8.135-6.14-32.088.494-36.979 8.055-5.013 7.751.878 21.131 5.56 27.728 3.862 5.44 9.714 10.474 15.884 12.903Z",shadowPath:"M134.65 55.386c2.732 1.076 6.217 2.167 7.62 1.862 3.321-.723 5.59-3.188 6.446-6.47 1.642-6.29 1.786-12.927 1.583-19.393-.089-2.854.572-13.342-3.32-14.638-6.456-4.873-25.466.392-29.348 6.393-3.979 6.152.696 16.77 4.413 22.006 3.064 4.317 7.709 8.313 12.606 10.24Z",lineHighlightPath:"M121.569 28.952c.551-.984 6.354-8.214 12.866-9.045 3.238-.413 10.619-.17 11.838 0"},{name:"3",type:"Canine",outlinePath:"M77.63 64.236c1.692 1.401 15.516 14.583 34.698 16.903 5.569.674 15.058-7.184 15.789-12.89 1.335-10.423-12.444-29.205-21.965-33.703-4.542-2.145-25.892-4.039-28.523 2.939-2.471 6.557-6.596 21.29 0 26.751Z",shadowPath:"M123.285 66.267c1.072-8.368-10.234-23.94-17.99-27.603-3.72-1.757-21.206-3.308-23.36 2.407-1.757 4.66-4.09 13.284-2.306 18.17 4.15 11.36 40.897 28.573 43.656 7.026Z",lineHighlightPath:["M82.84 60.043c-.01-.855-.193-4.63.256-8.12.667-5.185.703-5.866 1.29-8.106.437-1.666 2.083-4.91 17.487-3.748","M101.438 68.49c.376-.045 2.284-5.112 9.498-6.344"]},{name:"4",type:"First Premolar",outlinePath:"M93.684 108.748c-7.498 3.397-35.368-7.397-35.596-7.441-1.429-.842-12.215-2.854-9.068-29.414.147-1.238 1.353-2.05 2.218-2.556.956-.559 3.157-1.595 7.587-2.794 2.707-.734 13.856-3.54 18.674-.92 2.216 1.206 6.363 4.117 10.473 7.036 4.11 2.919 10.958 8.715 13.327 11.338 2.291 2.537 10.324 13.75-7.615 24.751Z",shadowPath:"M91.495 105.931c-6.528 2.958-30.793-6.44-30.992-6.478-1.243-.734-10.634-2.486-7.895-25.61.128-1.078 1.178-1.785 1.932-2.225.832-.487 2.748-1.39 6.605-2.433 2.357-.639 12.064-3.082 16.258-.8 1.93 1.05 5.54 3.584 9.12 6.125 3.578 2.541 9.54 7.588 11.603 9.872 1.994 2.208 8.987 11.971-6.63 21.549Z",lineHighlightPath:["M55.234 92.414c.022-.242.06-1.469.875-7.79.46-3.573 1.813-5.49 3.134-7.01 1.18-1.359 3.524-3.193 5.88-4.365 1.46-.632 3.029-1.126 6.044-1.776.826-.138 1.477-.175 2.526-.395","M87.02 101.387c4.183-.792 8.747-9.774 8.747-9.774"]},{name:"5",type:"Second Premolar",outlinePath:"M33.396 127.652c-1.088-2.713-4.486-11.852-3.962-15.246.477-3.085 14.47-12.008 23.595-12.008 2.178 0 25.157 6.665 35.073 17.908 4.551 9.324-1.624 23.339-16.22 23.339-8.193 0-23.563-1.897-25.453-2.215-1.896-.319-4.317-1.128-6.596-2.321-1.289-.675-2-1.035-2.478-1.647-.655-.84-2.101-3.178-3.96-7.81Z",shadowPath:"M36.837 126.778c-.945-2.356-3.895-10.289-3.44-13.235.414-2.679 12.561-10.424 20.483-10.424 1.89 0 21.837 5.785 30.445 15.545 3.951 8.094-1.41 20.26-14.08 20.26-7.112 0-20.454-1.647-22.095-1.922-1.645-.277-3.747-.98-5.725-2.015-1.12-.586-1.737-.899-2.151-1.43-.57-.729-1.825-2.759-3.437-6.779Z",lineHighlightPath:["M40.8 131.221c-4.003-20.278 8.442-20.974 13.779-23.692","M74.056 134.729c6.35-4.264 6.343-10.503 6.489-11.448"]},{name:"6",type:"First Molar",outlinePath:"M35.539 203.323c-3.363.196-32.788-4.02-28.495-42.465 3.631-20.408 26.21-23.364 29.557-22.912 9.019-.745 25.727 6.743 29.255 9.403 4.546 3.427 7.384 5.681 8.606 7.092 2.436 2.814 4.499 5.11 4.7 6.313.284 1.703 1.317 4.72-2.248 9.687-2.453 3.418-2.957 6.663-2.856 10.223.118 4.185.37 9.754-.524 11.63-.592 1.244-.984 2.627-2.375 3.392-2.015 1.108-4.61 2.317-11.93 3.748-3.623.708-9.309 1.83-12.401 2.292-5.19.777-8.423 1.43-11.289 1.597Z",shadowPath:"M36.515 199.085c-2.927.17-28.54-3.499-24.803-36.963 3.16-17.764 22.814-20.337 25.727-19.944 10.82-.893 25.709 5.989 32.955 14.358 2.12 2.45 3.917 4.448 4.091 5.495.248 1.482.513 4.268-2.59 8.591-2.135 2.975-1.94 5.641-1.852 8.74.096 3.417 1.402 10.917-2.523 13.076-1.754.964-4.013 2.016-10.384 3.261-6.762 1.322-13.728 2.984-20.621 3.386Z",lineHighlightPath:["M37.132 192.147c1.288-.372 3.385-2.071 5.183-5.438m9.008-35.98c1.188 1.224 2.114 6.385.15 11.363m0 0c-1.537 3.899-4.944 9.378-11.195 9.378 6.877.321 4.651 10.343 2.037 15.239m9.159-24.617c1.47-2.589 4.966-7.572 8.068-8.217m-17.227 32.834c-.186 2.348.044 7.351 2.458 8.584"]},{name:"7",type:"Second Molar",outlinePath:"M4.969 248.132c-1.188-2.74-14.708-27.152 12.319-42.139 1.836-1.018 24.508-7.711 45.28 10.874 2.274 2.035 4.455 3.579 5.403 5.102 1.414 2.271 2.128 3.435 1.687 5.606-.387 1.901-1.54 3.642-3.77 7.711-1.127 2.056-1.854 3.427-1.369 7.824.175 1.59.627 3.935.048 6.603-.466 2.147-.941 3.567-2.578 5.006-2.53 2.224-5.307 3.645-9.076 4.35-1.091.204-3.133.811-7.525 1.702-2.776.563-6.619 1.234-10.09 1.654-3.47.42-6.478.638-8.612.636-3.353-.002-6.734.031-9.465-1.48l-.018-.01c-1.654-.915-4.076-2.255-6.245-4.732-2.258-2.579-4.591-5.482-5.989-8.707Z",shadowPath:"M8.799 246.28c-1.128-2.352-12.843-23.709 10.756-36.796 1.604-.889 21.4-6.732 39.538 9.496 1.986 1.777 3.89 3.125 4.717 4.454 1.235 1.983 1.859 3 1.473 4.895-.337 1.66-1.343 3.18-3.291 6.734-.984 1.795-1.619 2.992-1.196 6.831.154 1.389.548 3.436.042 5.766-2.872 13.231-31.213 11.657-33.076 11.656h-.007c-2.936-.003-12.714-.01-18.956-13.036Z",lineHighlightPath:["M32.14 255.091c.748-.303 2.28-2.378 3.103-5.721m-1.99-35.481c3.009 1.363 4.015 4.888 3.736 8.716m0 0c-.424 5.835-3.832 12.377-7.683 13.049 6.954 1.18 7.244 8.414 5.937 13.716m1.746-26.765c.327-2.24 1.82-6.958 5.19-7.91m-6.936 34.675c.65 2.172 2.55 6.507 4.967 6.471"]},{name:"8",type:"Third Molar",outlinePath:"M.895 291.331c-.362-1.218-.116-3.411-.164-3.892-.035-.34.124-3.438.727-5.558 1.04-2.82 1.808-4.74 2.573-5.752 1.413-1.872 3.913-4.769 7.135-7.2 2.288-1.726 5.003-3.187 8.133-4.339 2.249-.828 4.362-1.502 7.732-1.693 2.175-.123 5.25-.155 8.782.108s7.403.804 10.353 1.397 4.92 1.218 6.641 1.893c1.722.675 3.148 1.389 3.972 1.768 1.51.696 2.9 1.209 3.824 2.14 1.857 1.872 2.617 3.334 2.912 4.807.254 1.27.252 3.216-.224 4.531-.672 1.859-1.468 2.856-1.468 5.7 0 3.857 1.713 5.95 1.915 8.356.337 4.008.317 6.168-.42 7.485-.591 1.057-1.532 2.383-5.541 5.088-1.173.791-2.684 1.634-6.643 3.424-2.762 1.248-6.977 3.108-9.205 4.107-2.473 1.109-4.667 2.226-8.234 3.053-2.54.589-5.631.784-9.012.186-2.307-.408-5.449-1.183-9.107-3.827-3.928-2.839-6.53-4.897-7.497-6.041-.866-1.026-1.714-2.082-2.412-3.555-.904-1.905-2.272-3.643-3-5.916-.846-2.633-1.167-4.233-1.772-6.27Z",shadowPath:"M4.732 291.175c-.317-1.07-.101-2.994-.144-3.416-.03-.299.11-3.019.638-4.88.914-2.476 1.588-4.161 2.26-5.05 1.24-1.643 3.434-4.187 6.263-6.321 2.009-1.515 4.393-2.797 7.14-3.809 1.974-.727 3.83-1.318 6.788-1.486 1.91-.108 4.61-.136 7.71.095 3.1.231 6.498.706 9.088 1.226 2.59.521 4.319 1.07 5.83 1.662 1.512.592 2.764 1.22 3.487 1.553 1.326.61 2.547 1.061 3.357 1.878 1.63 1.643 2.298 2.927 2.557 4.22.223 1.115.221 2.824-.196 3.978-.59 1.632-1.29 2.507-1.29 5.004 0 3.385 1.504 5.223 1.682 7.335.296 3.519.278 5.416-.369 6.571-.52.928-1.345 2.093-4.865 4.467-1.03.695-2.355 1.435-5.831 3.006-2.425 1.096-6.126 2.728-8.082 3.606-2.17.973-4.096 1.954-7.228 2.68-2.229.517-4.944.688-7.912.163-2.024-.358-4.783-1.038-7.995-3.359-3.448-2.493-5.732-4.299-6.58-5.304-.761-.901-1.505-1.827-2.119-3.121-.793-1.672-1.994-3.198-2.634-5.193-.742-2.312-1.024-3.717-1.555-5.505Z",lineHighlightPath:["M31.732 309.511c1.462-.897 2.585-3.672 2.93-6.726m-2.93-29.453c2.114 1.092 3.49 4.44 3.61 8.062m4.133-7.58c-1.353 1.058-4.074 4.057-4.134 7.58m0 0c.155 4.693-1.797 9.846-6.983 11.152 5.379-.357 6.859 5.305 6.303 10.239m4.557 7.24c-1.678-.671-4.938-3.058-4.557-7.24"]}];var y=require("react/jsx-runtime"),G=({name:e,outlinePath:t,shadowPath:o,lineHighlightPath:i,selected:n,onClick:h,onKeyDown:a,onHover:g,onLeave:f,children:k})=>(0,y.jsxs)("g",{className:`${e} ${n?"selected":""}`,tabIndex:0,onClick:()=>h==null?void 0:h(e),onKeyDown:b=>a==null?void 0:a(b,e),onMouseMove:b=>g==null?void 0:g(e,b),onMouseLeave:f,role:"option","aria-selected":n,"aria-label":`Tooth ${e}`,style:{cursor:"pointer",outline:"none",touchAction:"manipulation",transition:"all 0.2s ease"},children:[k,(0,y.jsx)("path",{stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",d:t}),(0,y.jsx)("path",{fill:"currentColor",d:o}),Array.isArray(i)?i.map(b=>(0,y.jsx)("path",{stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",d:b},`${b}`)):(0,y.jsx)("path",{stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",d:i})]});var d=require("react/jsx-runtime"),R={top:(e,t)=>({x:e.left+e.width/2,y:e.top-t}),"top-start":(e,t)=>({x:e.left,y:e.top-t}),"top-end":(e,t)=>({x:e.right,y:e.top-t}),bottom:(e,t)=>({x:e.left+e.width/2,y:e.bottom+t}),"bottom-start":(e,t)=>({x:e.left,y:e.bottom+t}),"bottom-end":(e,t)=>({x:e.right,y:e.bottom+t}),left:(e,t)=>({x:e.left-t,y:e.top+e.height/2}),"left-start":(e,t)=>({x:e.left-t,y:e.top}),"left-end":(e,t)=>({x:e.left-t,y:e.bottom}),right:(e,t)=>({x:e.right+t,y:e.top+e.height/2}),"right-start":(e,t)=>({x:e.right+t,y:e.top}),"right-end":(e,t)=>({x:e.right+t,y:e.bottom})};function T(e,t){let o=e.replace("teeth-",""),i={11:8,12:7,13:6,14:5,15:4,16:3,17:2,18:1,21:9,22:10,23:11,24:12,25:13,26:14,27:15,28:16,31:24,32:23,33:22,34:21,35:20,36:19,37:18,38:17,41:25,42:26,43:27,44:28,45:29,46:30,47:31,48:32};if(t==="Universal")return String(i[o]??o);if(t==="Palmer"){let n=o[0];return`${o[1]}${{1:"UR",2:"UL",3:"LL",4:"LR"}[n]??""}`}return o}function $(e){let t=e.replace("teeth-",""),o=T(e,"Universal"),i=T(e,"Palmer");return{fdi:t,universal:o,palmer:i}}var V=({defaultSelected:e=[],onChange:t,className:o="",theme:i="light",colors:n={},notation:h,tooltip:a={margin:10},showTooltip:g=!0,showHalf:f="full",name:k,maxTeeth:b=8})=>{let z=i==="dark"?{"--dark-blue":"#aab6ff","--base-blue":"#d0d5f6","--light-blue":"#5361e6"}:{"--dark-blue":"#3e5edc","--base-blue":"#8a98be","--light-blue":"#c6ccf8"},[U,j]=(0,p.useState)(new Set(e)),O=(0,p.useRef)(null),l1=(0,p.useRef)(null),[S,D]=(0,p.useState)({active:!1}),L=(0,p.useCallback)(r=>{j(l=>{let c=new Set(l);c.has(r)?c.delete(r):c.add(r);let v=Array.from(c).map(s=>{let P=s.replace("teeth-","").slice(1),m=M.find(B=>B.name===P);return{id:s,notations:$(s),type:(m==null?void 0:m.type)??"Unknown"}});return t==null||t(v),c})},[t]),J=(0,p.useCallback)((r,l)=>{(r.key==="Enter"||r.key===" ")&&(r.preventDefault(),L(l))},[L]),C=[{name:"first",transform:"",label:"Upper Right",position:{x:100,y:30}},{name:"second",transform:"scale(-1, 1) translate(-409, 0)",label:"Upper Left",position:{x:309,y:30}},{name:"third",transform:"scale(1, -1) translate(0, -694)",label:"Lower Right",position:{x:100,y:664}},{name:"fourth",transform:"scale(-1, -1) translate(-409, -694)",label:"Lower Left",position:{x:309,y:664}}],Z=C;f==="upper"?Z=C.slice(0,2):f==="lower"&&(Z=C.slice(2));let Q=(r,l,c="right")=>{var A,F;let s=l.currentTarget.querySelector("path");if(!(s&&O.current))return;let x=s.getBoundingClientRect(),P=O.current.getBoundingClientRect(),m=(a==null?void 0:a.margin)||10,{x:B,y:E}=((A=R[c])==null?void 0:A.call(R,x,m))??R.right(x,m),K=E<P.top?x.bottom+m:E;D({active:!0,position:{x:B,y:K},payload:{id:r,notations:$(r),type:((F=M.find(X=>X.name===r.replace("teeth-","").slice(1)))==null?void 0:F.type)??"Unknown"}})},W=()=>D(r=>({...r,active:!1})),Y=(r,l)=>(l?M.slice(0,l):M).map(v=>{let s=`${r}${v.name}`,x=T(s,h??"FDI");return(0,d.jsx)(G,{...v,name:s,selected:U.has(s),onClick:L,onKeyDown:J,onHover:(P,m)=>Q(P,m,a==null?void 0:a.placement),onLeave:W,children:(0,d.jsx)("title",{children:x})},s)}),_={...z,...H(n)};return(0,d.jsxs)("div",{className:`Odontogram ${i==="dark"?"dark-theme":""}`,style:{..._,width:"100%",maxWidth:300,margin:"0 auto",display:"flex",justifyContent:"center",alignItems:"center"},role:"listbox","aria-label":"Odontogram","aria-multiselectable":"true",children:[(0,d.jsx)("input",{type:"hidden",name:k??"teeth",value:JSON.stringify(Array.from(U))}),(0,d.jsxs)("svg",{ref:O,xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:f==="full"?"0 0 409 694":f==="upper"?"0 0 409 347":"0 347 409 347",className:"Odontogram",style:{width:"100%",height:"auto",userSelect:"none",touchAction:"manipulation"},children:[(0,d.jsx)("title",{children:"Odontogram"}),Z.map(({name:r,transform:l,label:c,position:v},s)=>(0,d.jsx)("g",{role:"group","aria-label":c,name:r,transform:l,children:Y(`teeth-${s+1}`,b)},r))]}),g&&(0,d.jsx)(I,{active:S.active,position:S.position,payload:S.payload,content:a==null?void 0:a.content})]})};function H(e){let t={};return e.darkBlue&&(t["--dark-blue"]=e.darkBlue),e.baseBlue&&(t["--base-blue"]=e.baseBlue),e.lightBlue&&(t["--light-blue"]=e.lightBlue),t}var q=V;0&&(module.exports={Odontogram,convertFDIToNotation,getToothNotations,mapToCssVars});
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vc3JjL2luZGV4LnRzIiwgIi4uL3NyYy9PZG9udG9ncmFtLnRzeCIsICIuLi9zcmMvVG9vbHRpcC50c3giLCAiLi4vc3JjL2RhdGEudHMiLCAiLi4vc3JjL1RlZXRoLnRzeCJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiZXhwb3J0IHsgZGVmYXVsdCB9IGZyb20gXCIuL09kb250b2dyYW1cIjtcblxuZXhwb3J0ICogZnJvbSBcIi4vT2RvbnRvZ3JhbVwiO1xuIiwgImltcG9ydCBcIi4vc3R5bGVzLmNzc1wiO1xuaW1wb3J0IHtcbiAgdHlwZSBDU1NQcm9wZXJ0aWVzLFxuICB0eXBlIEZDLFxuICB1c2VDYWxsYmFjayxcbiAgdXNlUmVmLFxuICB1c2VTdGF0ZSxcbn0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyBPZG9udG9ncmFtVG9vbHRpcCB9IGZyb20gXCIuL1Rvb2x0aXBcIjtcbmltcG9ydCB7IHRlZXRoUGF0aHMgfSBmcm9tIFwiLi9kYXRhXCI7XG5pbXBvcnQgdHlwZSB7IE9kb250b2dyYW1Qcm9wcywgUGxhY2VtZW50LCBUb290aERldGFpbCB9IGZyb20gXCIuL3R5cGVcIjtcbmltcG9ydCB7IFRlZXRoIH0gZnJvbSBcIi4vVGVldGhcIjtcblxuY29uc3QgcGxhY2VtZW50czogUmVjb3JkPFxuICBQbGFjZW1lbnQsXG4gICh0b290aEJveDogRE9NUmVjdCwgbWFyZ2luOiBudW1iZXIpID0+IHsgeDogbnVtYmVyOyB5OiBudW1iZXIgfVxuPiA9IHtcbiAgdG9wOiAodCwgbSkgPT4gKHsgeDogdC5sZWZ0ICsgdC53aWR0aCAvIDIsIHk6IHQudG9wIC0gbSB9KSxcbiAgXCJ0b3Atc3RhcnRcIjogKHQsIG0pID0+ICh7IHg6IHQubGVmdCwgeTogdC50b3AgLSBtIH0pLFxuICBcInRvcC1lbmRcIjogKHQsIG0pID0+ICh7IHg6IHQucmlnaHQsIHk6IHQudG9wIC0gbSB9KSxcbiAgYm90dG9tOiAodCwgbSkgPT4gKHsgeDogdC5sZWZ0ICsgdC53aWR0aCAvIDIsIHk6IHQuYm90dG9tICsgbSB9KSxcbiAgXCJib3R0b20tc3RhcnRcIjogKHQsIG0pID0+ICh7IHg6IHQubGVmdCwgeTogdC5ib3R0b20gKyBtIH0pLFxuICBcImJvdHRvbS1lbmRcIjogKHQsIG0pID0+ICh7IHg6IHQucmlnaHQsIHk6IHQuYm90dG9tICsgbSB9KSxcbiAgbGVmdDogKHQsIG0pID0+ICh7IHg6IHQubGVmdCAtIG0sIHk6IHQudG9wICsgdC5oZWlnaHQgLyAyIH0pLFxuICBcImxlZnQtc3RhcnRcIjogKHQsIG0pID0+ICh7IHg6IHQubGVmdCAtIG0sIHk6IHQudG9wIH0pLFxuICBcImxlZnQtZW5kXCI6ICh0LCBtKSA9PiAoeyB4OiB0LmxlZnQgLSBtLCB5OiB0LmJvdHRvbSB9KSxcbiAgcmlnaHQ6ICh0LCBtKSA9PiAoeyB4OiB0LnJpZ2h0ICsgbSwgeTogdC50b3AgKyB0LmhlaWdodCAvIDIgfSksXG4gIFwicmlnaHQtc3RhcnRcIjogKHQsIG0pID0+ICh7IHg6IHQucmlnaHQgKyBtLCB5OiB0LnRvcCB9KSxcbiAgXCJyaWdodC1lbmRcIjogKHQsIG0pID0+ICh7IHg6IHQucmlnaHQgKyBtLCB5OiB0LmJvdHRvbSB9KSxcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBjb252ZXJ0RkRJVG9Ob3RhdGlvbihcbiAgZmRpOiBzdHJpbmcsXG4gIG5vdGF0aW9uOiBcIkZESVwiIHwgXCJVbml2ZXJzYWxcIiB8IFwiUGFsbWVyXCJcbikge1xuICBjb25zdCBudW0gPSBmZGkucmVwbGFjZShcInRlZXRoLVwiLCBcIlwiKTtcblxuICBjb25zdCBmZGlUb1VuaXZlcnNhbDogUmVjb3JkPHN0cmluZywgbnVtYmVyPiA9IHtcbiAgICBcIjExXCI6IDgsXG4gICAgXCIxMlwiOiA3LFxuICAgIFwiMTNcIjogNixcbiAgICBcIjE0XCI6IDUsXG4gICAgXCIxNVwiOiA0LFxuICAgIFwiMTZcIjogMyxcbiAgICBcIjE3XCI6IDIsXG4gICAgXCIxOFwiOiAxLFxuICAgIFwiMjFcIjogOSxcbiAgICBcIjIyXCI6IDEwLFxuICAgIFwiMjNcIjogMTEsXG4gICAgXCIyNFwiOiAxMixcbiAgICBcIjI1XCI6IDEzLFxuICAgIFwiMjZcIjogMTQsXG4gICAgXCIyN1wiOiAxNSxcbiAgICBcIjI4XCI6IDE2LFxuICAgIFwiMzFcIjogMjQsXG4gICAgXCIzMlwiOiAyMyxcbiAgICBcIjMzXCI6IDIyLFxuICAgIFwiMzRcIjogMjEsXG4gICAgXCIzNVwiOiAyMCxcbiAgICBcIjM2XCI6IDE5LFxuICAgIFwiMzdcIjogMTgsXG4gICAgXCIzOFwiOiAxNyxcbiAgICBcIjQxXCI6IDI1LFxuICAgIFwiNDJcIjogMjYsXG4gICAgXCI0M1wiOiAyNyxcbiAgICBcIjQ0XCI6IDI4LFxuICAgIFwiNDVcIjogMjksXG4gICAgXCI0NlwiOiAzMCxcbiAgICBcIjQ3XCI6IDMxLFxuICAgIFwiNDhcIjogMzIsXG4gIH07XG5cbiAgaWYgKG5vdGF0aW9uID09PSBcIlVuaXZlcnNhbFwiKSB7XG4gICAgcmV0dXJuIFN0cmluZyhmZGlUb1VuaXZlcnNhbFtudW1dID8/IG51bSk7XG4gIH1cblxuICBpZiAobm90YXRpb24gPT09IFwiUGFsbWVyXCIpIHtcbiAgICBjb25zdCBxdWFkcmFudCA9IG51bVswXTtcbiAgICBjb25zdCB0b290aCA9IG51bVsxXTtcbiAgICBjb25zdCBzeW1ib2xzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICAgICAgXCIxXCI6IFwiVVJcIiwgLy8gdXBwZXIgcmlnaHRcbiAgICAgIFwiMlwiOiBcIlVMXCIsIC8vIHVwcGVyIGxlZnRcbiAgICAgIFwiM1wiOiBcIkxMXCIsIC8vIGxvd2VyIGxlZnRcbiAgICAgIFwiNFwiOiBcIkxSXCIsIC8vIGxvd2VyIHJpZ2h0XG4gICAgfTtcbiAgICByZXR1cm4gYCR7dG9vdGh9JHtzeW1ib2xzW3F1YWRyYW50XSA/PyBcIlwifWA7XG4gIH1cblxuICByZXR1cm4gbnVtO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0VG9vdGhOb3RhdGlvbnMoZmRpOiBzdHJpbmcpIHtcbiAgY29uc3QgbnVtID0gZmRpLnJlcGxhY2UoXCJ0ZWV0aC1cIiwgXCJcIik7XG4gIGNvbnN0IHVuaXZlcnNhbCA9IGNvbnZlcnRGRElUb05vdGF0aW9uKGZkaSwgXCJVbml2ZXJzYWxcIik7XG4gIGNvbnN0IHBhbG1lciA9IGNvbnZlcnRGRElUb05vdGF0aW9uKGZkaSwgXCJQYWxtZXJcIik7XG4gIHJldHVybiB7XG4gICAgZmRpOiBudW0sXG4gICAgdW5pdmVyc2FsLFxuICAgIHBhbG1lcixcbiAgfTtcbn1cblxuZXhwb3J0IGNvbnN0IE9kb250b2dyYW06IEZDPE9kb250b2dyYW1Qcm9wcz4gPSAoe1xuICBkZWZhdWx0U2VsZWN0ZWQgPSBbXSxcbiAgb25DaGFuZ2UsXG4gIGNsYXNzTmFtZSA9IFwiXCIsXG4gIHRoZW1lID0gXCJsaWdodFwiLFxuICBjb2xvcnMgPSB7fSxcbiAgbm90YXRpb24sXG4gIHRvb2x0aXAgPSB7XG4gICAgbWFyZ2luOiAxMCxcbiAgfSxcbiAgc2hvd1Rvb2x0aXAgPSB0cnVlLFxuICBzaG93SGFsZiA9IFwiZnVsbFwiLFxuICBuYW1lLFxuICBtYXhUZWV0aCA9IDgsXG5cbn0pID0+IHtcbiAgY29uc3QgdGhlbWVDb2xvcnMgPVxuICAgIHRoZW1lID09PSBcImRhcmtcIlxuICAgICAgPyB7XG4gICAgICAgIFwiLS1kYXJrLWJsdWVcIjogXCIjYWFiNmZmXCIsXG4gICAgICAgIFwiLS1iYXNlLWJsdWVcIjogXCIjZDBkNWY2XCIsXG4gICAgICAgIFwiLS1saWdodC1ibHVlXCI6IFwiIzUzNjFlNlwiLFxuICAgICAgfVxuICAgICAgOiB7XG4gICAgICAgIFwiLS1kYXJrLWJsdWVcIjogXCIjM2U1ZWRjXCIsXG4gICAgICAgIFwiLS1iYXNlLWJsdWVcIjogXCIjOGE5OGJlXCIsXG4gICAgICAgIFwiLS1saWdodC1ibHVlXCI6IFwiI2M2Y2NmOFwiLFxuICAgICAgfTtcblxuICBjb25zdCBbc2VsZWN0ZWQsIHNldFNlbGVjdGVkXSA9IHVzZVN0YXRlPFNldDxzdHJpbmc+PihcbiAgICBuZXcgU2V0KGRlZmF1bHRTZWxlY3RlZClcbiAgKTtcblxuICBjb25zdCBzdmdSZWYgPSB1c2VSZWY8U1ZHU1ZHRWxlbWVudD4obnVsbCk7XG4gIGNvbnN0IF90b29sdGlwUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKTtcblxuICBjb25zdCBbdG9vbHRpcERhdGEsIHNldFRvb2x0aXBEYXRhXSA9IHVzZVN0YXRlPHtcbiAgICBhY3RpdmU6IGJvb2xlYW47XG4gICAgcG9zaXRpb24/OiB7IHg6IG51bWJlcjsgeTogbnVtYmVyIH07XG4gICAgcGF5bG9hZD86IFRvb3RoRGV0YWlsO1xuICB9Pih7IGFjdGl2ZTogZmFsc2UgfSk7XG5cbiAgY29uc3QgaGFuZGxlVG9nZ2xlID0gdXNlQ2FsbGJhY2soXG4gICAgKG5hbWU6IHN0cmluZykgPT4ge1xuICAgICAgc2V0U2VsZWN0ZWQoKHByZXYpID0+IHtcbiAgICAgICAgY29uc3QgdXBkYXRlZCA9IG5ldyBTZXQocHJldik7XG4gICAgICAgIHVwZGF0ZWQuaGFzKG5hbWUpID8gdXBkYXRlZC5kZWxldGUobmFtZSkgOiB1cGRhdGVkLmFkZChuYW1lKTtcblxuICAgICAgICAvLyBidWlsZCBkZXRhaWxlZCBKU09OIG91dHB1dFxuICAgICAgICBjb25zdCBkZXRhaWxzID0gQXJyYXkuZnJvbSh1cGRhdGVkKS5tYXAoKGlkKSA9PiB7XG4gICAgICAgICAgY29uc3QgZmRpID0gaWQucmVwbGFjZShcInRlZXRoLVwiLCBcIlwiKTtcbiAgICAgICAgICBjb25zdCB0b290aEJhc2UgPSBmZGkuc2xpY2UoMSk7XG4gICAgICAgICAgY29uc3QgdG9vdGhEYXRhID0gdGVldGhQYXRocy5maW5kKCh0KSA9PiB0Lm5hbWUgPT09IHRvb3RoQmFzZSk7XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGlkLFxuICAgICAgICAgICAgbm90YXRpb25zOiBnZXRUb290aE5vdGF0aW9ucyhpZCksXG4gICAgICAgICAgICB0eXBlOiB0b290aERhdGE/LnR5cGUgPz8gXCJVbmtub3duXCIsXG4gICAgICAgICAgfTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgb25DaGFuZ2U/LihkZXRhaWxzKTtcbiAgICAgICAgcmV0dXJuIHVwZGF0ZWQ7XG4gICAgICB9KTtcbiAgICB9LFxuICAgIFtvbkNoYW5nZV1cbiAgKTtcbiAgY29uc3QgaGFuZGxlS2V5RG93biA9IHVzZUNhbGxiYWNrKFxuICAgIChlOiBSZWFjdC5LZXlib2FyZEV2ZW50PFNWR0dFbGVtZW50PiwgbmFtZTogc3RyaW5nKSA9PiB7XG4gICAgICBpZiAoZS5rZXkgPT09IFwiRW50ZXJcIiB8fCBlLmtleSA9PT0gXCIgXCIpIHtcbiAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBoYW5kbGVUb2dnbGUobmFtZSk7XG4gICAgICB9XG4gICAgfSxcbiAgICBbaGFuZGxlVG9nZ2xlXVxuICApO1xuXG4gIGNvbnN0IHF1YWRyYW50czogQXJyYXk8e1xuICAgIG5hbWU6IFwiZmlyc3RcIiB8IFwic2Vjb25kXCIgfCBcInRoaXJkXCIgfCBcImZvdXJ0aFwiO1xuICAgIHRyYW5zZm9ybTogc3RyaW5nO1xuICAgIGxhYmVsOiBzdHJpbmc7XG4gICAgcG9zaXRpb246IHsgeDogbnVtYmVyOyB5OiBudW1iZXIgfTtcbiAgfT4gPSBbXG4gICAgICB7XG4gICAgICAgIG5hbWU6IFwiZmlyc3RcIixcbiAgICAgICAgdHJhbnNmb3JtOiBcIlwiLFxuICAgICAgICBsYWJlbDogXCJVcHBlciBSaWdodFwiLFxuICAgICAgICBwb3NpdGlvbjogeyB4OiAxMDAsIHk6IDMwIH0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBuYW1lOiBcInNlY29uZFwiLFxuICAgICAgICB0cmFuc2Zvcm06IFwic2NhbGUoLTEsIDEpIHRyYW5zbGF0ZSgtNDA5LCAwKVwiLFxuICAgICAgICBsYWJlbDogXCJVcHBlciBMZWZ0XCIsXG4gICAgICAgIHBvc2l0aW9uOiB7IHg6IDMwOSwgeTogMzAgfSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6IFwidGhpcmRcIixcbiAgICAgICAgdHJhbnNmb3JtOiBcInNjYWxlKDEsIC0xKSB0cmFuc2xhdGUoMCwgLTY5NClcIixcbiAgICAgICAgbGFiZWw6IFwiTG93ZXIgUmlnaHRcIixcbiAgICAgICAgcG9zaXRpb246IHsgeDogMTAwLCB5OiA2NjQgfSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6IFwiZm91cnRoXCIsXG4gICAgICAgIHRyYW5zZm9ybTogXCJzY2FsZSgtMSwgLTEpIHRyYW5zbGF0ZSgtNDA5LCAtNjk0KVwiLFxuICAgICAgICBsYWJlbDogXCJMb3dlciBMZWZ0XCIsXG4gICAgICAgIHBvc2l0aW9uOiB7IHg6IDMwOSwgeTogNjY0IH0sXG4gICAgICB9LFxuICAgIF07XG5cbiAgbGV0IHZpc2libGVRdWFkcmFudHMgPSBxdWFkcmFudHM7XG4gIGlmIChzaG93SGFsZiA9PT0gXCJ1cHBlclwiKSB7XG4gICAgdmlzaWJsZVF1YWRyYW50cyA9IHF1YWRyYW50cy5zbGljZSgwLCAyKTtcbiAgfSBlbHNlIGlmIChzaG93SGFsZiA9PT0gXCJsb3dlclwiKSB7XG4gICAgdmlzaWJsZVF1YWRyYW50cyA9IHF1YWRyYW50cy5zbGljZSgyKTtcbiAgfVxuXG4gIGNvbnN0IGhhbmRsZUhvdmVyID0gKFxuICAgIG5hbWU6IHN0cmluZyxcbiAgICBlOiBSZWFjdC5Nb3VzZUV2ZW50LFxuICAgIHBsYWNlbWVudDogUGxhY2VtZW50ID0gXCJyaWdodFwiIC8vIGRlZmF1bHRcbiAgKSA9PiB7XG4gICAgY29uc3QgdGFyZ2V0ID0gZS5jdXJyZW50VGFyZ2V0IGFzIFNWR0dFbGVtZW50O1xuICAgIGNvbnN0IHBhdGggPSB0YXJnZXQucXVlcnlTZWxlY3RvcihcInBhdGhcIik7XG5cbiAgICBpZiAoIShwYXRoICYmIHN2Z1JlZi5jdXJyZW50KSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHRvb3RoQm94ID0gcGF0aC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICBjb25zdCBzdmdCb3ggPSBzdmdSZWYuY3VycmVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcblxuICAgIGNvbnN0IG1hcmdpbiA9IHRvb2x0aXA/Lm1hcmdpbiB8fCAxMDsgLy8gZGlzdGFuY2UgYmV0d2VlbiB0b290aCBhbmQgdG9vbHRpcFxuXG4gICAgLy8gQ29tcHV0ZSB0b29sdGlwIHBvc2l0aW9uIGp1c3QgYWJvdmUgb3IgYmVsb3cgZGVwZW5kaW5nIG9uIHNwYWNlXG5cbiAgICBjb25zdCB7IHgsIHkgfSA9XG4gICAgICBwbGFjZW1lbnRzW3BsYWNlbWVudF0/Lih0b290aEJveCwgbWFyZ2luKSA/P1xuICAgICAgcGxhY2VtZW50cy5yaWdodCh0b290aEJveCwgbWFyZ2luKTtcblxuICAgIGNvbnN0IHNhZmVZID0geSA8IHN2Z0JveC50b3AgPyB0b290aEJveC5ib3R0b20gKyBtYXJnaW4gOiB5O1xuXG4gICAgc2V0VG9vbHRpcERhdGEoe1xuICAgICAgYWN0aXZlOiB0cnVlLFxuICAgICAgcG9zaXRpb246IHsgeCwgeTogc2FmZVkgfSxcbiAgICAgIHBheWxvYWQ6IHtcbiAgICAgICAgaWQ6IG5hbWUsXG4gICAgICAgIG5vdGF0aW9uczogZ2V0VG9vdGhOb3RhdGlvbnMobmFtZSksXG4gICAgICAgIHR5cGU6XG4gICAgICAgICAgdGVldGhQYXRocy5maW5kKCh0KSA9PiB0Lm5hbWUgPT09IG5hbWUucmVwbGFjZShcInRlZXRoLVwiLCBcIlwiKS5zbGljZSgxKSlcbiAgICAgICAgICAgID8udHlwZSA/PyBcIlVua25vd25cIixcbiAgICAgIH0sXG4gICAgfSk7XG4gIH07XG4gIGNvbnN0IGhhbmRsZUxlYXZlID0gKCkgPT4gc2V0VG9vbHRpcERhdGEoKHApID0+ICh7IC4uLnAsIGFjdGl2ZTogZmFsc2UgfSkpO1xuICBjb25zdCByZW5kZXJUZWV0aCA9IChwcmVmaXg6IHN0cmluZywgbWF4VGVldGg/OiBudW1iZXIpID0+IHtcbiAgICAvLyBGSVhFRDogdXNlIHNsaWNlKCkgaW5zdGVhZCBvZiBzcGxpY2UoKVxuICAgIGNvbnN0IGZpbHRlcmVkVGVldGggPSBtYXhUZWV0aFxuICAgICAgPyB0ZWV0aFBhdGhzLnNsaWNlKDAsIG1heFRlZXRoKVxuICAgICAgOiB0ZWV0aFBhdGhzO1xuXG4gICAgcmV0dXJuIGZpbHRlcmVkVGVldGgubWFwKCh0b290aCkgPT4ge1xuICAgICAgY29uc3QgaWQgPSBgJHtwcmVmaXh9JHt0b290aC5uYW1lfWA7XG4gICAgICBjb25zdCBkaXNwbGF5TmFtZSA9IGNvbnZlcnRGRElUb05vdGF0aW9uKGlkLCBub3RhdGlvbiA/PyBcIkZESVwiKTtcblxuICAgICAgcmV0dXJuIChcbiAgICAgICAgPFRlZXRoXG4gICAgICAgICAga2V5PXtpZH1cbiAgICAgICAgICB7Li4udG9vdGh9XG4gICAgICAgICAgbmFtZT17aWR9XG4gICAgICAgICAgc2VsZWN0ZWQ9e3NlbGVjdGVkLmhhcyhpZCl9XG4gICAgICAgICAgb25DbGljaz17aGFuZGxlVG9nZ2xlfVxuICAgICAgICAgIG9uS2V5RG93bj17aGFuZGxlS2V5RG93bn1cbiAgICAgICAgICBvbkhvdmVyPXsobmFtZSwgZSkgPT4gaGFuZGxlSG92ZXIobmFtZSwgZSwgdG9vbHRpcD8ucGxhY2VtZW50KX1cbiAgICAgICAgICBvbkxlYXZlPXtoYW5kbGVMZWF2ZX1cbiAgICAgICAgPlxuICAgICAgICAgIDx0aXRsZT57ZGlzcGxheU5hbWV9PC90aXRsZT5cbiAgICAgICAgPC9UZWV0aD5cbiAgICAgICk7XG4gICAgfSk7XG4gIH07XG5cbiAgY29uc3QgZmluYWxDb2xvcnMgPSB7IC4uLnRoZW1lQ29sb3JzLCAuLi5tYXBUb0Nzc1ZhcnMoY29sb3JzKSB9O1xuXG4gIHJldHVybiAoXG4gICAgPGRpdlxuICAgICAgY2xhc3NOYW1lPXtgT2RvbnRvZ3JhbSAke3RoZW1lID09PSBcImRhcmtcIiA/IFwiZGFyay10aGVtZVwiIDogXCJcIn1gfVxuICAgICAgc3R5bGU9e3tcbiAgICAgICAgLi4uKGZpbmFsQ29sb3JzIGFzIENTU1Byb3BlcnRpZXMpLFxuICAgICAgICB3aWR0aDogXCIxMDAlXCIsXG4gICAgICAgIG1heFdpZHRoOiAzMDAsXG4gICAgICAgIG1hcmdpbjogXCIwIGF1dG9cIixcbiAgICAgICAgZGlzcGxheTogXCJmbGV4XCIsXG4gICAgICAgIGp1c3RpZnlDb250ZW50OiBcImNlbnRlclwiLFxuICAgICAgICBhbGlnbkl0ZW1zOiBcImNlbnRlclwiLFxuICAgICAgICAvLyBpc29sYXRpb246IFwiaXNvbGF0ZVwiLFxuICAgICAgfX1cbiAgICAgIHJvbGU9XCJsaXN0Ym94XCJcbiAgICAgIGFyaWEtbGFiZWw9XCJPZG9udG9ncmFtXCJcbiAgICAgIGFyaWEtbXVsdGlzZWxlY3RhYmxlPVwidHJ1ZVwiXG4gICAgPlxuICAgICAgPGlucHV0XG4gICAgICAgIHR5cGU9XCJoaWRkZW5cIlxuICAgICAgICBuYW1lPXtuYW1lID8/IFwidGVldGhcIn1cbiAgICAgICAgdmFsdWU9e0pTT04uc3RyaW5naWZ5KEFycmF5LmZyb20oc2VsZWN0ZWQpKX1cbiAgICAgIC8+XG4gICAgICA8c3ZnXG4gICAgICAgIHJlZj17c3ZnUmVmfVxuICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcbiAgICAgICAgZmlsbD1cIm5vbmVcIlxuICAgICAgICB2aWV3Qm94PXtcbiAgICAgICAgICBzaG93SGFsZiA9PT0gXCJmdWxsXCJcbiAgICAgICAgICAgID8gXCIwIDAgNDA5IDY5NFwiXG4gICAgICAgICAgICA6IHNob3dIYWxmID09PSBcInVwcGVyXCJcbiAgICAgICAgICAgICAgPyBcIjAgMCA0MDkgMzQ3XCJcbiAgICAgICAgICAgICAgOiBcIjAgMzQ3IDQwOSAzNDdcIlxuICAgICAgICB9XG4gICAgICAgIGNsYXNzTmFtZT1cIk9kb250b2dyYW1cIlxuICAgICAgICBzdHlsZT17e1xuICAgICAgICAgIHdpZHRoOiBcIjEwMCVcIixcbiAgICAgICAgICBoZWlnaHQ6IFwiYXV0b1wiLFxuICAgICAgICAgIHVzZXJTZWxlY3Q6IFwibm9uZVwiLFxuICAgICAgICAgIHRvdWNoQWN0aW9uOiBcIm1hbmlwdWxhdGlvblwiLFxuICAgICAgICB9fVxuICAgICAgPlxuICAgICAgICA8dGl0bGU+T2RvbnRvZ3JhbTwvdGl0bGU+XG4gICAgICAgIHt2aXNpYmxlUXVhZHJhbnRzLm1hcCgoeyBuYW1lLCB0cmFuc2Zvcm0sIGxhYmVsLCBwb3NpdGlvbiB9LCBpbmRleCkgPT4gKFxuICAgICAgICAgIDxnXG4gICAgICAgICAgICByb2xlPVwiZ3JvdXBcIlxuICAgICAgICAgICAgYXJpYS1sYWJlbD17bGFiZWx9XG4gICAgICAgICAgICBrZXk9e25hbWV9XG4gICAgICAgICAgICBuYW1lPXtuYW1lfVxuICAgICAgICAgICAgdHJhbnNmb3JtPXt0cmFuc2Zvcm19XG4gICAgICAgICAgPlxuICAgICAgICAgICAge3JlbmRlclRlZXRoKGB0ZWV0aC0ke2luZGV4ICsgMX1gLCBtYXhUZWV0aCl9XG4gICAgICAgICAgPC9nPlxuICAgICAgICApKX1cbiAgICAgIDwvc3ZnPlxuICAgICAge3Nob3dUb29sdGlwICYmIChcbiAgICAgICAgPE9kb250b2dyYW1Ub29sdGlwXG4gICAgICAgICAgYWN0aXZlPXt0b29sdGlwRGF0YS5hY3RpdmV9XG4gICAgICAgICAgcG9zaXRpb249e3Rvb2x0aXBEYXRhLnBvc2l0aW9ufVxuICAgICAgICAgIHBheWxvYWQ9e3Rvb2x0aXBEYXRhLnBheWxvYWR9XG4gICAgICAgICAgY29udGVudD17dG9vbHRpcD8uY29udGVudH1cbiAgICAgICAgLz5cbiAgICAgICl9XG4gICAgPC9kaXY+XG4gICk7XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gbWFwVG9Dc3NWYXJzKGNvbG9yczogUmVjb3JkPHN0cmluZywgc3RyaW5nIHwgdW5kZWZpbmVkPikge1xuICBjb25zdCBjc3NWYXJzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge307XG4gIGlmIChjb2xvcnMuZGFya0JsdWUpIHtcbiAgICBjc3NWYXJzW1wiLS1kYXJrLWJsdWVcIl0gPSBjb2xvcnMuZGFya0JsdWU7XG4gIH1cbiAgaWYgKGNvbG9ycy5iYXNlQmx1ZSkge1xuICAgIGNzc1ZhcnNbXCItLWJhc2UtYmx1ZVwiXSA9IGNvbG9ycy5iYXNlQmx1ZTtcbiAgfVxuICBpZiAoY29sb3JzLmxpZ2h0Qmx1ZSkge1xuICAgIGNzc1ZhcnNbXCItLWxpZ2h0LWJsdWVcIl0gPSBjb2xvcnMubGlnaHRCbHVlO1xuICB9XG4gIHJldHVybiBjc3NWYXJzO1xufVxuXG5leHBvcnQgZGVmYXVsdCBPZG9udG9ncmFtO1xuIiwgImltcG9ydCB7IHVzZUVmZmVjdCwgdXNlUmVmIH0gZnJvbSBcInJlYWN0XCI7XG5cbmV4cG9ydCB0eXBlIFRvb2x0aXBDb250ZW50UmVuZGVyZXIgPSAocGF5bG9hZD86IGFueSkgPT4gUmVhY3QuUmVhY3ROb2RlO1xuXG5leHBvcnQgaW50ZXJmYWNlIE9kb250b2dyYW1Ub29sdGlwUHJvcHMge1xuICBhY3RpdmU6IGJvb2xlYW47XG4gIHBheWxvYWQ/OiBhbnk7XG4gIHBvc2l0aW9uPzogeyB4OiBudW1iZXI7IHk6IG51bWJlciB9O1xuICBjb250ZW50PzogUmVhY3QuUmVhY3ROb2RlIHwgVG9vbHRpcENvbnRlbnRSZW5kZXJlcjtcbn1cblxuY29uc3QgZ2V0Q29udGVudCA9IChcbiAgY29udGVudDogUmVhY3QuUmVhY3ROb2RlIHwgVG9vbHRpcENvbnRlbnRSZW5kZXJlcixcbiAgcGF5bG9hZD86IGFueVxuKSA9PiB7XG4gIHJldHVybiB0eXBlb2YgY29udGVudCA9PT0gXCJmdW5jdGlvblwiID8gY29udGVudChwYXlsb2FkKSA6IGNvbnRlbnQ7XG59O1xuXG5leHBvcnQgY29uc3QgT2RvbnRvZ3JhbVRvb2x0aXA6IFJlYWN0LkZDPE9kb250b2dyYW1Ub29sdGlwUHJvcHM+ID0gKHtcbiAgYWN0aXZlLFxuICBwYXlsb2FkLFxuICBwb3NpdGlvbixcbiAgY29udGVudCxcbn0pID0+IHtcbiAgY29uc3QgcmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChyZWYuY3VycmVudCAmJiBwb3NpdGlvbikge1xuICAgICAgY29uc3QgeyB4LCB5IH0gPSBwb3NpdGlvbjtcbiAgICAgIHJlZi5jdXJyZW50LnN0eWxlLmxlZnQgPSBgJHt4ICsgMTB9cHhgO1xuICAgICAgcmVmLmN1cnJlbnQuc3R5bGUudG9wID0gYCR7eSArIDEwfXB4YDtcbiAgICB9XG4gIH0sIFtwb3NpdGlvbl0pO1xuXG4gIGlmICghKGFjdGl2ZSAmJiBwYXlsb2FkKSkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2XG4gICAgICByZWY9e3JlZn1cbiAgICAgIGNsYXNzTmFtZT1cIm9kb250b2dyYW0tdG9vbHRpcFwiXG4gICAgICBzdHlsZT17e1xuICAgICAgICBwb3NpdGlvbjogXCJmaXhlZFwiLFxuICAgICAgICBwb2ludGVyRXZlbnRzOiBcIm5vbmVcIixcbiAgICAgICAgYmFja2dyb3VuZDogXCJyZ2JhKDAsIDAsIDAsIDAuNzUpXCIsXG4gICAgICAgIGNvbG9yOiBcIiNmZmZcIixcbiAgICAgICAgcGFkZGluZzogXCI2cHggMTBweFwiLFxuICAgICAgICBib3JkZXJSYWRpdXM6IFwiNnB4XCIsXG4gICAgICAgIGZvbnRTaXplOiBcIjEycHhcIixcbiAgICAgICAgbGluZUhlaWdodDogMS4zLFxuICAgICAgICB3aGl0ZVNwYWNlOiBcIm5vd3JhcFwiLFxuICAgICAgICB6SW5kZXg6IDEwMDAsXG4gICAgICAgIHRyYW5zZm9ybTogXCJ0cmFuc2xhdGUoLTUwJSwgLTEwMCUpXCIsXG4gICAgICAgIHRyYW5zaXRpb246IFwib3BhY2l0eSAwLjE1cyBlYXNlXCIsXG4gICAgICB9fVxuICAgID5cbiAgICAgIHtnZXRDb250ZW50KGNvbnRlbnQsIHBheWxvYWQpID8/IChcbiAgICAgICAgPD5cbiAgICAgICAgICA8ZGl2PlRvb3RoOiB7cGF5bG9hZD8ubm90YXRpb25zPy5mZGl9PC9kaXY+XG4gICAgICAgICAgPGRpdj5UeXBlOiB7cGF5bG9hZD8udHlwZX08L2Rpdj5cbiAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgVW5pdmVyc2FsOiB7cGF5bG9hZD8ubm90YXRpb25zPy51bml2ZXJzYWx9LCBQYWxtZXI6e1wiIFwifVxuICAgICAgICAgICAge3BheWxvYWQ/Lm5vdGF0aW9ucz8ucGFsbWVyfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8Lz5cbiAgICAgICl9XG4gICAgPC9kaXY+XG4gICk7XG59O1xuIiwgImV4cG9ydCBjb25zdCB0ZWV0aFBhdGhzID0gW1xuXHR7XG5cdFx0bmFtZTogXCIxXCIsXG5cdFx0dHlwZTogXCJDZW50cmFsIEluY2lzb3JcIixcblx0XHRvdXRsaW5lUGF0aDpcblx0XHRcdFwiTTE3My45NTEgMS42OThjLTIuMTk4LjE2LTUuMzAyLjg2Mi01LjMwMi44NjJzLTUuNTMxIDEuMDI1LTcuNzgxIDIuMjdjLTIuNDAzIDEuMzMzLTUuNTUzIDMuMjk5LTYuMDEzIDUuMjU4LS40MzIgMS44NC0uNzggNC43MzQtLjQ5MSA2LjgzMmwuMDI3LjJjLjM0OCAyLjUyNy44NjUgNi4yOCAxLjIzOSAxMC4zMTYuMTg2IDItLjEwMSAzLjIxLjc1MSA2LjE2Ljg5NSAzLjEgMS4zOTUgNC41NzMgMi4wMTMgNS42ODcuNjQ2IDEuMTY0IDEuNDkzIDIuMDg3IDIuMDMgMy4yOC44NjYgMS45MjQgMi4zOTMgNC4yOSAzLjg3IDYuMWE0OC44MDUgNDguODA1IDAgMCAwIDIuMzYgMi42NjNjMS4wMTYgMS4wNzggMi44MTkgMy4xMSAzLjg5OCA0LjMzMSAxLjUyNiAxLjcyNyAzLjA3NiAzLjI0OCA0LjQyMyAzLjc0MiAxLjIxNy40NDYgMi43MDkuNjQyIDMuNzkzLjkzNiAxLjM2OS4zNzIgMi40OTQuNjM4IDQuNTk3IDAgMS41NDUtLjQ2OCAyLjcyNS0uNjIxIDQuMzcyLTIuNDI0IDIuMDY0LTIuMjU4IDIuODQ2LTMuNTE3IDMuNTEyLTQuNzQ2IDEuMDY1LTEuOTY0IDIuNTI0LTQuNjQ4IDMuNTQxLTYuNDIyLjYxMS0xLjA2OCAyLjIyMS0zLjA4OSA0LjA4Ni04Ljg0NSAxLjU0LTQuNzUyIDIuMzY3LTcuNzYgMi43MzEtOC45OTQuNDE1LTEuNDA4IDEuMDc5LTMuNTgzIDEuMzU1LTYuMTk2LjQ0LTQuMTc2IDEuMTE0LTcuNDgyIDEuMDYyLTExLjAyNi0uMDQ0LTMuMDQ2LjEwNC01LjA0LTEuMDY1LTYuMzA2LS45NS0xLjAyOS0xLjk4OC0yLjAwMS0zLjMwNi0yLjUzNC0xLjk1OS0uNzktMy43NzUtMS4zNTgtNS4yOTgtMS41OTItMS4zNTEtLjIwNy03LjA1LS4zNS0xMS4yMTktLjA1Ny0xLjU2Ny4xMS0zLjYxLjA5Ny05LjE4NS41MDVaXCIsXG5cdFx0c2hhZG93UGF0aDpcblx0XHRcdFwiTTE4OC4yNjkgNTAuMjE1YzE5LjI3NS00MS44NjcgMTAuNzY2LTQzLjYxMiA0LjkzNy00NC42ODQtNS44MjktMS4wNzMtMjguNDU1IDIuNTMtMjkuNzIgMi44MTctLjQ0Mi4yMTgtOC45MTEgMC00Ljc2NyAxOS41NCAzLjQxNiAxNi4xMDUgMTYuMTkzIDI2LjU5NiAxNy4yNDQgMjcuMjY1IDMuMTQ4IDIuMDAzIDguODM3IDIuNTk1IDEyLjMwNi00LjkzOFpcIixcblx0XHRsaW5lSGlnaGxpZ2h0UGF0aDpcblx0XHRcdFwiTTE2MC40NzIgMTQuNzI3Yy4zOTItLjQwMiA0LjMxNy0zLjMwOSA4Ljk0MS01LjQ3IDMuMDk3LTEuNDQ4IDcuNzczLTEuNjI5IDExLjIwNy0xLjc0OSA4Ljc1OS0uMzY1IDEwLjAwNC45MSAxMi42MzcgMS40OTUuNTYyLjEzOS45MDkuMjc2IDEuNzcxLjU5NVwiLFxuXHR9LFxuXG5cdHtcblx0XHRuYW1lOiBcIjJcIixcblx0XHR0eXBlOiBcIkxhdGVyYWwgSW5jaXNvclwiLFxuXG5cdFx0b3V0bGluZVBhdGg6XG5cdFx0XHRcIk0xMzUuMDE2IDYwLjQxYzMuNDQzIDEuMzU1IDcuODM0IDIuNzMgOS42MDEgMi4zNDYgNC4xODUtLjkxIDcuMDQ0LTQuMDE3IDguMTIzLTguMTUyIDIuMDY5LTcuOTI3IDIuMjQ5LTE2LjI4OCAxLjk5NS0yNC40MzYtLjExMy0zLjU5Ni43Mi0xNi44MS00LjE4NC0xOC40NDQtOC4xMzUtNi4xNC0zMi4wODguNDk0LTM2Ljk3OSA4LjA1NS01LjAxMyA3Ljc1MS44NzggMjEuMTMxIDUuNTYgMjcuNzI4IDMuODYyIDUuNDQgOS43MTQgMTAuNDc0IDE1Ljg4NCAxMi45MDNaXCIsXG5cdFx0c2hhZG93UGF0aDpcblx0XHRcdFwiTTEzNC42NSA1NS4zODZjMi43MzIgMS4wNzYgNi4yMTcgMi4xNjcgNy42MiAxLjg2MiAzLjMyMS0uNzIzIDUuNTktMy4xODggNi40NDYtNi40NyAxLjY0Mi02LjI5IDEuNzg2LTEyLjkyNyAxLjU4My0xOS4zOTMtLjA4OS0yLjg1NC41NzItMTMuMzQyLTMuMzItMTQuNjM4LTYuNDU2LTQuODczLTI1LjQ2Ni4zOTItMjkuMzQ4IDYuMzkzLTMuOTc5IDYuMTUyLjY5NiAxNi43NyA0LjQxMyAyMi4wMDYgMy4wNjQgNC4zMTcgNy43MDkgOC4zMTMgMTIuNjA2IDEwLjI0WlwiLFxuXHRcdGxpbmVIaWdobGlnaHRQYXRoOlxuXHRcdFx0XCJNMTIxLjU2OSAyOC45NTJjLjU1MS0uOTg0IDYuMzU0LTguMjE0IDEyLjg2Ni05LjA0NSAzLjIzOC0uNDEzIDEwLjYxOS0uMTcgMTEuODM4IDBcIixcblx0fSxcblx0e1xuXHRcdG5hbWU6IFwiM1wiLFxuXHRcdHR5cGU6IFwiQ2FuaW5lXCIsXG5cblx0XHRvdXRsaW5lUGF0aDpcblx0XHRcdFwiTTc3LjYzIDY0LjIzNmMxLjY5MiAxLjQwMSAxNS41MTYgMTQuNTgzIDM0LjY5OCAxNi45MDMgNS41NjkuNjc0IDE1LjA1OC03LjE4NCAxNS43ODktMTIuODkgMS4zMzUtMTAuNDIzLTEyLjQ0NC0yOS4yMDUtMjEuOTY1LTMzLjcwMy00LjU0Mi0yLjE0NS0yNS44OTItNC4wMzktMjguNTIzIDIuOTM5LTIuNDcxIDYuNTU3LTYuNTk2IDIxLjI5IDAgMjYuNzUxWlwiLFxuXHRcdHNoYWRvd1BhdGg6XG5cdFx0XHRcIk0xMjMuMjg1IDY2LjI2N2MxLjA3Mi04LjM2OC0xMC4yMzQtMjMuOTQtMTcuOTktMjcuNjAzLTMuNzItMS43NTctMjEuMjA2LTMuMzA4LTIzLjM2IDIuNDA3LTEuNzU3IDQuNjYtNC4wOSAxMy4yODQtMi4zMDYgMTguMTcgNC4xNSAxMS4zNiA0MC44OTcgMjguNTczIDQzLjY1NiA3LjAyNlpcIixcblx0XHRsaW5lSGlnaGxpZ2h0UGF0aDogW1xuXHRcdFx0XCJNODIuODQgNjAuMDQzYy0uMDEtLjg1NS0uMTkzLTQuNjMuMjU2LTguMTIuNjY3LTUuMTg1LjcwMy01Ljg2NiAxLjI5LTguMTA2LjQzNy0xLjY2NiAyLjA4My00LjkxIDE3LjQ4Ny0zLjc0OFwiLFxuXHRcdFx0XCJNMTAxLjQzOCA2OC40OWMuMzc2LS4wNDUgMi4yODQtNS4xMTIgOS40OTgtNi4zNDRcIixcblx0XHRdLFxuXHR9LFxuXHR7XG5cdFx0bmFtZTogXCI0XCIsXG5cdFx0dHlwZTogXCJGaXJzdCBQcmVtb2xhclwiLFxuXG5cdFx0b3V0bGluZVBhdGg6XG5cdFx0XHRcIk05My42ODQgMTA4Ljc0OGMtNy40OTggMy4zOTctMzUuMzY4LTcuMzk3LTM1LjU5Ni03LjQ0MS0xLjQyOS0uODQyLTEyLjIxNS0yLjg1NC05LjA2OC0yOS40MTQuMTQ3LTEuMjM4IDEuMzUzLTIuMDUgMi4yMTgtMi41NTYuOTU2LS41NTkgMy4xNTctMS41OTUgNy41ODctMi43OTQgMi43MDctLjczNCAxMy44NTYtMy41NCAxOC42NzQtLjkyIDIuMjE2IDEuMjA2IDYuMzYzIDQuMTE3IDEwLjQ3MyA3LjAzNiA0LjExIDIuOTE5IDEwLjk1OCA4LjcxNSAxMy4zMjcgMTEuMzM4IDIuMjkxIDIuNTM3IDEwLjMyNCAxMy43NS03LjYxNSAyNC43NTFaXCIsXG5cdFx0c2hhZG93UGF0aDpcblx0XHRcdFwiTTkxLjQ5NSAxMDUuOTMxYy02LjUyOCAyLjk1OC0zMC43OTMtNi40NC0zMC45OTItNi40NzgtMS4yNDMtLjczNC0xMC42MzQtMi40ODYtNy44OTUtMjUuNjEuMTI4LTEuMDc4IDEuMTc4LTEuNzg1IDEuOTMyLTIuMjI1LjgzMi0uNDg3IDIuNzQ4LTEuMzkgNi42MDUtMi40MzMgMi4zNTctLjYzOSAxMi4wNjQtMy4wODIgMTYuMjU4LS44IDEuOTMgMS4wNSA1LjU0IDMuNTg0IDkuMTIgNi4xMjUgMy41NzggMi41NDEgOS41NCA3LjU4OCAxMS42MDMgOS44NzIgMS45OTQgMi4yMDggOC45ODcgMTEuOTcxLTYuNjMgMjEuNTQ5WlwiLFxuXHRcdGxpbmVIaWdobGlnaHRQYXRoOiBbXG5cdFx0XHRcIk01NS4yMzQgOTIuNDE0Yy4wMjItLjI0Mi4wNi0xLjQ2OS44NzUtNy43OS40Ni0zLjU3MyAxLjgxMy01LjQ5IDMuMTM0LTcuMDEgMS4xOC0xLjM1OSAzLjUyNC0zLjE5MyA1Ljg4LTQuMzY1IDEuNDYtLjYzMiAzLjAyOS0xLjEyNiA2LjA0NC0xLjc3Ni44MjYtLjEzOCAxLjQ3Ny0uMTc1IDIuNTI2LS4zOTVcIixcblx0XHRcdFwiTTg3LjAyIDEwMS4zODdjNC4xODMtLjc5MiA4Ljc0Ny05Ljc3NCA4Ljc0Ny05Ljc3NFwiLFxuXHRcdF0sXG5cdH0sXG5cdHtcblx0XHRuYW1lOiBcIjVcIixcblx0XHR0eXBlOiBcIlNlY29uZCBQcmVtb2xhclwiLFxuXHRcdG91dGxpbmVQYXRoOlxuXHRcdFx0XCJNMzMuMzk2IDEyNy42NTJjLTEuMDg4LTIuNzEzLTQuNDg2LTExLjg1Mi0zLjk2Mi0xNS4yNDYuNDc3LTMuMDg1IDE0LjQ3LTEyLjAwOCAyMy41OTUtMTIuMDA4IDIuMTc4IDAgMjUuMTU3IDYuNjY1IDM1LjA3MyAxNy45MDggNC41NTEgOS4zMjQtMS42MjQgMjMuMzM5LTE2LjIyIDIzLjMzOS04LjE5MyAwLTIzLjU2My0xLjg5Ny0yNS40NTMtMi4yMTUtMS44OTYtLjMxOS00LjMxNy0xLjEyOC02LjU5Ni0yLjMyMS0xLjI4OS0uNjc1LTItMS4wMzUtMi40NzgtMS42NDctLjY1NS0uODQtMi4xMDEtMy4xNzgtMy45Ni03LjgxWlwiLFxuXHRcdHNoYWRvd1BhdGg6XG5cdFx0XHRcIk0zNi44MzcgMTI2Ljc3OGMtLjk0NS0yLjM1Ni0zLjg5NS0xMC4yODktMy40NC0xMy4yMzUuNDE0LTIuNjc5IDEyLjU2MS0xMC40MjQgMjAuNDgzLTEwLjQyNCAxLjg5IDAgMjEuODM3IDUuNzg1IDMwLjQ0NSAxNS41NDUgMy45NTEgOC4wOTQtMS40MSAyMC4yNi0xNC4wOCAyMC4yNi03LjExMiAwLTIwLjQ1NC0xLjY0Ny0yMi4wOTUtMS45MjItMS42NDUtLjI3Ny0zLjc0Ny0uOTgtNS43MjUtMi4wMTUtMS4xMi0uNTg2LTEuNzM3LS44OTktMi4xNTEtMS40My0uNTctLjcyOS0xLjgyNS0yLjc1OS0zLjQzNy02Ljc3OVpcIixcblx0XHRsaW5lSGlnaGxpZ2h0UGF0aDogW1xuXHRcdFx0XCJNNDAuOCAxMzEuMjIxYy00LjAwMy0yMC4yNzggOC40NDItMjAuOTc0IDEzLjc3OS0yMy42OTJcIixcblx0XHRcdFwiTTc0LjA1NiAxMzQuNzI5YzYuMzUtNC4yNjQgNi4zNDMtMTAuNTAzIDYuNDg5LTExLjQ0OFwiLFxuXHRcdF0sXG5cdH0sXG5cdHtcblx0XHRuYW1lOiBcIjZcIixcblx0XHR0eXBlOiBcIkZpcnN0IE1vbGFyXCIsXG5cdFx0b3V0bGluZVBhdGg6XG5cdFx0XHRcIk0zNS41MzkgMjAzLjMyM2MtMy4zNjMuMTk2LTMyLjc4OC00LjAyLTI4LjQ5NS00Mi40NjUgMy42MzEtMjAuNDA4IDI2LjIxLTIzLjM2NCAyOS41NTctMjIuOTEyIDkuMDE5LS43NDUgMjUuNzI3IDYuNzQzIDI5LjI1NSA5LjQwMyA0LjU0NiAzLjQyNyA3LjM4NCA1LjY4MSA4LjYwNiA3LjA5MiAyLjQzNiAyLjgxNCA0LjQ5OSA1LjExIDQuNyA2LjMxMy4yODQgMS43MDMgMS4zMTcgNC43Mi0yLjI0OCA5LjY4Ny0yLjQ1MyAzLjQxOC0yLjk1NyA2LjY2My0yLjg1NiAxMC4yMjMuMTE4IDQuMTg1LjM3IDkuNzU0LS41MjQgMTEuNjMtLjU5MiAxLjI0NC0uOTg0IDIuNjI3LTIuMzc1IDMuMzkyLTIuMDE1IDEuMTA4LTQuNjEgMi4zMTctMTEuOTMgMy43NDgtMy42MjMuNzA4LTkuMzA5IDEuODMtMTIuNDAxIDIuMjkyLTUuMTkuNzc3LTguNDIzIDEuNDMtMTEuMjg5IDEuNTk3WlwiLFxuXHRcdHNoYWRvd1BhdGg6XG5cdFx0XHRcIk0zNi41MTUgMTk5LjA4NWMtMi45MjcuMTctMjguNTQtMy40OTktMjQuODAzLTM2Ljk2MyAzLjE2LTE3Ljc2NCAyMi44MTQtMjAuMzM3IDI1LjcyNy0xOS45NDQgMTAuODItLjg5MyAyNS43MDkgNS45ODkgMzIuOTU1IDE0LjM1OCAyLjEyIDIuNDUgMy45MTcgNC40NDggNC4wOTEgNS40OTUuMjQ4IDEuNDgyLjUxMyA0LjI2OC0yLjU5IDguNTkxLTIuMTM1IDIuOTc1LTEuOTQgNS42NDEtMS44NTIgOC43NC4wOTYgMy40MTcgMS40MDIgMTAuOTE3LTIuNTIzIDEzLjA3Ni0xLjc1NC45NjQtNC4wMTMgMi4wMTYtMTAuMzg0IDMuMjYxLTYuNzYyIDEuMzIyLTEzLjcyOCAyLjk4NC0yMC42MjEgMy4zODZaXCIsXG5cdFx0bGluZUhpZ2hsaWdodFBhdGg6IFtcblx0XHRcdFwiTTM3LjEzMiAxOTIuMTQ3YzEuMjg4LS4zNzIgMy4zODUtMi4wNzEgNS4xODMtNS40MzhtOS4wMDgtMzUuOThjMS4xODggMS4yMjQgMi4xMTQgNi4zODUuMTUgMTEuMzYzbTAgMGMtMS41MzcgMy44OTktNC45NDQgOS4zNzgtMTEuMTk1IDkuMzc4IDYuODc3LjMyMSA0LjY1MSAxMC4zNDMgMi4wMzcgMTUuMjM5bTkuMTU5LTI0LjYxN2MxLjQ3LTIuNTg5IDQuOTY2LTcuNTcyIDguMDY4LTguMjE3bS0xNy4yMjcgMzIuODM0Yy0uMTg2IDIuMzQ4LjA0NCA3LjM1MSAyLjQ1OCA4LjU4NFwiLFxuXHRcdF0sXG5cdH0sXG5cdHtcblx0XHRuYW1lOiBcIjdcIixcblx0XHR0eXBlOiBcIlNlY29uZCBNb2xhclwiLFxuXG5cdFx0b3V0bGluZVBhdGg6XG5cdFx0XHRcIk00Ljk2OSAyNDguMTMyYy0xLjE4OC0yLjc0LTE0LjcwOC0yNy4xNTIgMTIuMzE5LTQyLjEzOSAxLjgzNi0xLjAxOCAyNC41MDgtNy43MTEgNDUuMjggMTAuODc0IDIuMjc0IDIuMDM1IDQuNDU1IDMuNTc5IDUuNDAzIDUuMTAyIDEuNDE0IDIuMjcxIDIuMTI4IDMuNDM1IDEuNjg3IDUuNjA2LS4zODcgMS45MDEtMS41NCAzLjY0Mi0zLjc3IDcuNzExLTEuMTI3IDIuMDU2LTEuODU0IDMuNDI3LTEuMzY5IDcuODI0LjE3NSAxLjU5LjYyNyAzLjkzNS4wNDggNi42MDMtLjQ2NiAyLjE0Ny0uOTQxIDMuNTY3LTIuNTc4IDUuMDA2LTIuNTMgMi4yMjQtNS4zMDcgMy42NDUtOS4wNzYgNC4zNS0xLjA5MS4yMDQtMy4xMzMuODExLTcuNTI1IDEuNzAyLTIuNzc2LjU2My02LjYxOSAxLjIzNC0xMC4wOSAxLjY1NC0zLjQ3LjQyLTYuNDc4LjYzOC04LjYxMi42MzYtMy4zNTMtLjAwMi02LjczNC4wMzEtOS40NjUtMS40OGwtLjAxOC0uMDFjLTEuNjU0LS45MTUtNC4wNzYtMi4yNTUtNi4yNDUtNC43MzItMi4yNTgtMi41NzktNC41OTEtNS40ODItNS45ODktOC43MDdaXCIsXG5cdFx0c2hhZG93UGF0aDpcblx0XHRcdFwiTTguNzk5IDI0Ni4yOGMtMS4xMjgtMi4zNTItMTIuODQzLTIzLjcwOSAxMC43NTYtMzYuNzk2IDEuNjA0LS44ODkgMjEuNC02LjczMiAzOS41MzggOS40OTYgMS45ODYgMS43NzcgMy44OSAzLjEyNSA0LjcxNyA0LjQ1NCAxLjIzNSAxLjk4MyAxLjg1OSAzIDEuNDczIDQuODk1LS4zMzcgMS42Ni0xLjM0MyAzLjE4LTMuMjkxIDYuNzM0LS45ODQgMS43OTUtMS42MTkgMi45OTItMS4xOTYgNi44MzEuMTU0IDEuMzg5LjU0OCAzLjQzNi4wNDIgNS43NjYtMi44NzIgMTMuMjMxLTMxLjIxMyAxMS42NTctMzMuMDc2IDExLjY1NmgtLjAwN2MtMi45MzYtLjAwMy0xMi43MTQtLjAxLTE4Ljk1Ni0xMy4wMzZaXCIsXG5cdFx0bGluZUhpZ2hsaWdodFBhdGg6IFtcblx0XHRcdFwiTTMyLjE0IDI1NS4wOTFjLjc0OC0uMzAzIDIuMjgtMi4zNzggMy4xMDMtNS43MjFtLTEuOTktMzUuNDgxYzMuMDA5IDEuMzYzIDQuMDE1IDQuODg4IDMuNzM2IDguNzE2bTAgMGMtLjQyNCA1LjgzNS0zLjgzMiAxMi4zNzctNy42ODMgMTMuMDQ5IDYuOTU0IDEuMTggNy4yNDQgOC40MTQgNS45MzcgMTMuNzE2bTEuNzQ2LTI2Ljc2NWMuMzI3LTIuMjQgMS44Mi02Ljk1OCA1LjE5LTcuOTFtLTYuOTM2IDM0LjY3NWMuNjUgMi4xNzIgMi41NSA2LjUwNyA0Ljk2NyA2LjQ3MVwiLFxuXHRcdF0sXG5cdH0sXG5cdHtcblx0XHRuYW1lOiBcIjhcIixcblx0XHR0eXBlOiBcIlRoaXJkIE1vbGFyXCIsXG5cblx0XHRvdXRsaW5lUGF0aDpcblx0XHRcdFwiTS44OTUgMjkxLjMzMWMtLjM2Mi0xLjIxOC0uMTE2LTMuNDExLS4xNjQtMy44OTItLjAzNS0uMzQuMTI0LTMuNDM4LjcyNy01LjU1OCAxLjA0LTIuODIgMS44MDgtNC43NCAyLjU3My01Ljc1MiAxLjQxMy0xLjg3MiAzLjkxMy00Ljc2OSA3LjEzNS03LjIgMi4yODgtMS43MjYgNS4wMDMtMy4xODcgOC4xMzMtNC4zMzkgMi4yNDktLjgyOCA0LjM2Mi0xLjUwMiA3LjczMi0xLjY5MyAyLjE3NS0uMTIzIDUuMjUtLjE1NSA4Ljc4Mi4xMDhzNy40MDMuODA0IDEwLjM1MyAxLjM5NyA0LjkyIDEuMjE4IDYuNjQxIDEuODkzYzEuNzIyLjY3NSAzLjE0OCAxLjM4OSAzLjk3MiAxLjc2OCAxLjUxLjY5NiAyLjkgMS4yMDkgMy44MjQgMi4xNCAxLjg1NyAxLjg3MiAyLjYxNyAzLjMzNCAyLjkxMiA0LjgwNy4yNTQgMS4yNy4yNTIgMy4yMTYtLjIyNCA0LjUzMS0uNjcyIDEuODU5LTEuNDY4IDIuODU2LTEuNDY4IDUuNyAwIDMuODU3IDEuNzEzIDUuOTUgMS45MTUgOC4zNTYuMzM3IDQuMDA4LjMxNyA2LjE2OC0uNDIgNy40ODUtLjU5MSAxLjA1Ny0xLjUzMiAyLjM4My01LjU0MSA1LjA4OC0xLjE3My43OTEtMi42ODQgMS42MzQtNi42NDMgMy40MjQtMi43NjIgMS4yNDgtNi45NzcgMy4xMDgtOS4yMDUgNC4xMDctMi40NzMgMS4xMDktNC42NjcgMi4yMjYtOC4yMzQgMy4wNTMtMi41NC41ODktNS42MzEuNzg0LTkuMDEyLjE4Ni0yLjMwNy0uNDA4LTUuNDQ5LTEuMTgzLTkuMTA3LTMuODI3LTMuOTI4LTIuODM5LTYuNTMtNC44OTctNy40OTctNi4wNDEtLjg2Ni0xLjAyNi0xLjcxNC0yLjA4Mi0yLjQxMi0zLjU1NS0uOTA0LTEuOTA1LTIuMjcyLTMuNjQzLTMtNS45MTYtLjg0Ni0yLjYzMy0xLjE2Ny00LjIzMy0xLjc3Mi02LjI3WlwiLFxuXHRcdHNoYWRvd1BhdGg6XG5cdFx0XHRcIk00LjczMiAyOTEuMTc1Yy0uMzE3LTEuMDctLjEwMS0yLjk5NC0uMTQ0LTMuNDE2LS4wMy0uMjk5LjExLTMuMDE5LjYzOC00Ljg4LjkxNC0yLjQ3NiAxLjU4OC00LjE2MSAyLjI2LTUuMDUgMS4yNC0xLjY0MyAzLjQzNC00LjE4NyA2LjI2My02LjMyMSAyLjAwOS0xLjUxNSA0LjM5My0yLjc5NyA3LjE0LTMuODA5IDEuOTc0LS43MjcgMy44My0xLjMxOCA2Ljc4OC0xLjQ4NiAxLjkxLS4xMDggNC42MS0uMTM2IDcuNzEuMDk1IDMuMS4yMzEgNi40OTguNzA2IDkuMDg4IDEuMjI2IDIuNTkuNTIxIDQuMzE5IDEuMDcgNS44MyAxLjY2MiAxLjUxMi41OTIgMi43NjQgMS4yMiAzLjQ4NyAxLjU1MyAxLjMyNi42MSAyLjU0NyAxLjA2MSAzLjM1NyAxLjg3OCAxLjYzIDEuNjQzIDIuMjk4IDIuOTI3IDIuNTU3IDQuMjIuMjIzIDEuMTE1LjIyMSAyLjgyNC0uMTk2IDMuOTc4LS41OSAxLjYzMi0xLjI5IDIuNTA3LTEuMjkgNS4wMDQgMCAzLjM4NSAxLjUwNCA1LjIyMyAxLjY4MiA3LjMzNS4yOTYgMy41MTkuMjc4IDUuNDE2LS4zNjkgNi41NzEtLjUyLjkyOC0xLjM0NSAyLjA5My00Ljg2NSA0LjQ2Ny0xLjAzLjY5NS0yLjM1NSAxLjQzNS01LjgzMSAzLjAwNi0yLjQyNSAxLjA5Ni02LjEyNiAyLjcyOC04LjA4MiAzLjYwNi0yLjE3Ljk3My00LjA5NiAxLjk1NC03LjIyOCAyLjY4LTIuMjI5LjUxNy00Ljk0NC42ODgtNy45MTIuMTYzLTIuMDI0LS4zNTgtNC43ODMtMS4wMzgtNy45OTUtMy4zNTktMy40NDgtMi40OTMtNS43MzItNC4yOTktNi41OC01LjMwNC0uNzYxLS45MDEtMS41MDUtMS44MjctMi4xMTktMy4xMjEtLjc5My0xLjY3Mi0xLjk5NC0zLjE5OC0yLjYzNC01LjE5My0uNzQyLTIuMzEyLTEuMDI0LTMuNzE3LTEuNTU1LTUuNTA1WlwiLFxuXHRcdGxpbmVIaWdobGlnaHRQYXRoOiBbXG5cdFx0XHRcIk0zMS43MzIgMzA5LjUxMWMxLjQ2Mi0uODk3IDIuNTg1LTMuNjcyIDIuOTMtNi43MjZtLTIuOTMtMjkuNDUzYzIuMTE0IDEuMDkyIDMuNDkgNC40NCAzLjYxIDguMDYybTQuMTMzLTcuNThjLTEuMzUzIDEuMDU4LTQuMDc0IDQuMDU3LTQuMTM0IDcuNThtMCAwYy4xNTUgNC42OTMtMS43OTcgOS44NDYtNi45ODMgMTEuMTUyIDUuMzc5LS4zNTcgNi44NTkgNS4zMDUgNi4zMDMgMTAuMjM5bTQuNTU3IDcuMjRjLTEuNjc4LS42NzEtNC45MzgtMy4wNTgtNC41NTctNy4yNFwiLFxuXHRcdF0sXG5cdH0sXG5dO1xuXG4iLCAiaW1wb3J0IHsgVGVldGhQcm9wcyB9IGZyb20gXCIuL3R5cGVcIjtcblxuZXhwb3J0IGNvbnN0IFRlZXRoID0gKHtcbiAgbmFtZSxcbiAgb3V0bGluZVBhdGgsXG4gIHNoYWRvd1BhdGgsXG4gIGxpbmVIaWdobGlnaHRQYXRoLFxuICBzZWxlY3RlZCxcbiAgb25DbGljayxcbiAgb25LZXlEb3duLFxuICBvbkhvdmVyLFxuICBvbkxlYXZlLFxuICBjaGlsZHJlbixcbn06IFRlZXRoUHJvcHMpID0+IChcbiAgPGdcbiAgICBjbGFzc05hbWU9e2Ake25hbWV9ICR7c2VsZWN0ZWQgPyBcInNlbGVjdGVkXCIgOiBcIlwifWB9XG4gICAgdGFiSW5kZXg9ezB9XG4gICAgb25DbGljaz17KCkgPT4gb25DbGljaz8uKG5hbWUpfVxuICAgIG9uS2V5RG93bj17KGUpID0+IG9uS2V5RG93bj8uKGUsIG5hbWUpfVxuICAgIG9uTW91c2VNb3ZlPXsoZSkgPT4gb25Ib3Zlcj8uKG5hbWUsIGUpfVxuICAgIG9uTW91c2VMZWF2ZT17b25MZWF2ZX1cbiAgICByb2xlPVwib3B0aW9uXCJcbiAgICBhcmlhLXNlbGVjdGVkPXtzZWxlY3RlZH1cbiAgICBhcmlhLWxhYmVsPXtgVG9vdGggJHtuYW1lfWB9XG4gICAgc3R5bGU9e3tcbiAgICAgIGN1cnNvcjogXCJwb2ludGVyXCIsXG4gICAgICBvdXRsaW5lOiBcIm5vbmVcIixcbiAgICAgIHRvdWNoQWN0aW9uOiBcIm1hbmlwdWxhdGlvblwiLFxuICAgICAgdHJhbnNpdGlvbjogXCJhbGwgMC4ycyBlYXNlXCIsXG4gICAgfX1cbiAgPlxuICAgIHtjaGlsZHJlbn1cbiAgICA8cGF0aFxuICAgICAgc3Ryb2tlPVwiY3VycmVudENvbG9yXCJcbiAgICAgIHN0cm9rZUxpbmVjYXA9XCJyb3VuZFwiXG4gICAgICBzdHJva2VMaW5lam9pbj1cInJvdW5kXCJcbiAgICAgIGQ9e291dGxpbmVQYXRofVxuICAgIC8+XG4gICAgPHBhdGggZmlsbD1cImN1cnJlbnRDb2xvclwiIGQ9e3NoYWRvd1BhdGh9IC8+XG4gICAge0FycmF5LmlzQXJyYXkobGluZUhpZ2hsaWdodFBhdGgpID8gKFxuICAgICAgbGluZUhpZ2hsaWdodFBhdGgubWFwKChkKSA9PiAoXG4gICAgICAgIDxwYXRoXG4gICAgICAgICAga2V5PXtgJHtkfWB9XG4gICAgICAgICAgc3Ryb2tlPVwiY3VycmVudENvbG9yXCJcbiAgICAgICAgICBzdHJva2VMaW5lY2FwPVwicm91bmRcIlxuICAgICAgICAgIHN0cm9rZUxpbmVqb2luPVwicm91bmRcIlxuICAgICAgICAgIGQ9e2R9XG4gICAgICAgIC8+XG4gICAgICApKVxuICAgICkgOiAoXG4gICAgICA8cGF0aFxuICAgICAgICBzdHJva2U9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgICBzdHJva2VMaW5lY2FwPVwicm91bmRcIlxuICAgICAgICBzdHJva2VMaW5lam9pbj1cInJvdW5kXCJcbiAgICAgICAgZD17bGluZUhpZ2hsaWdodFBhdGh9XG4gICAgICAvPlxuICAgICl9XG4gIDwvZz5cbik7XG4iXSwKICAibWFwcGluZ3MiOiAibWJBQUEsSUFBQUEsR0FBQSxHQUFBQyxHQUFBRCxHQUFBLGdCQUFBRSxFQUFBLHlCQUFBQyxFQUFBLFlBQUFDLEVBQUEsc0JBQUFDLEVBQUEsaUJBQUFDLElBQUEsZUFBQUMsR0FBQVAsSUNDQSxJQUFBUSxFQU1PLGlCQ1BQLElBQUFDLEVBQWtDLGlCQXVDOUJDLEVBQUEsNkJBNUJFQyxHQUFhLENBQ2pCQyxFQUNBQyxJQUVPLE9BQU9ELEdBQVksV0FBYUEsRUFBUUMsQ0FBTyxFQUFJRCxFQUcvQ0UsRUFBc0QsQ0FBQyxDQUNsRSxPQUFBQyxFQUNBLFFBQUFGLEVBQ0EsU0FBQUcsRUFDQSxRQUFBSixDQUNGLElBQU0sQ0F2Qk4sSUFBQUssRUFBQUMsRUFBQUMsRUF3QkUsSUFBTUMsS0FBTSxVQUF1QixJQUFJLEVBVXZDLFNBUkEsYUFBVSxJQUFNLENBQ2QsR0FBSUEsRUFBSSxTQUFXSixFQUFVLENBQzNCLEdBQU0sQ0FBRSxFQUFBSyxFQUFHLEVBQUFDLENBQUUsRUFBSU4sRUFDakJJLEVBQUksUUFBUSxNQUFNLEtBQU8sR0FBR0MsRUFBSSxFQUFFLEtBQ2xDRCxFQUFJLFFBQVEsTUFBTSxJQUFNLEdBQUdFLEVBQUksRUFBRSxJQUNuQyxDQUNGLEVBQUcsQ0FBQ04sQ0FBUSxDQUFDLEVBRVBELEdBQVVGLEtBS2QsT0FBQyxPQUNDLElBQUtPLEVBQ0wsVUFBVSxxQkFDVixNQUFPLENBQ0wsU0FBVSxR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Ik9kb250b2dyYW0iLCAiY29udmVydEZESVRvTm90YXRpb24iLCAiT2RvbnRvZ3JhbV9kZWZhdWx0IiwgImdldFRvb3RoTm90YXRpb25zIiwgIm1hcFRvQ3NzVmFycyIsICJfX3RvQ29tbW9uSlMiLCAiaW1wb3J0X3JlYWN0IiwgImltcG9ydF9yZWFjdCIsICJpbXBvcnRfanN4X3J1bnRpbWUiLCAiZ2V0Q29udGVudCIsICJjb250ZW50IiwgInBheWxvYWQiLCAiT2RvbnRvZ3JhbVRvb2x0aXAiLCAiYWN0aXZlIiwgInBvc2l0aW9uIiwgIl9hIiwgIl9iIiwgIl9jIiwgInJlZiIsICJ4IiwgInkiLCAidGVldGhQYXRocyIsICJpbXBvcnRfanN4X3J1bnRpbWUiLCAiVGVldGgiLCAibmFtZSIsICJvdXRsaW5lUGF0aCIsICJzaGFkb3dQYXRoIiwgImxpbmVIaWdobGlnaHRQYXRoIiwgInNlbGVjdGVkIiwgIm9uQ2xpY2siLCAib25LZXlEb3duIiwgIm9uSG92ZXIiLCAib25MZWF2ZSIsICJjaGlsZHJlbiIsICJlIiwgImQiLCAiaW1wb3J0X2pzeF9ydW50aW1lIiwgInBsYWNlbWVudHMiLCAidCIsICJtIiwgImNvbnZlcnRGRElUb05vdGF0aW9uIiwgImZkaSIsICJub3RhdGlvbiIsICJudW0iLCAiZmRpVG9Vbml2ZXJzYWwiLCAicXVhZHJhbnQiLCAiZ2V0VG9vdGhOb3RhdGlvbnMiLCAidW5pdmVyc2FsIiwgInBhbG1lciIsICJPZG9udG9ncmFtIiwgImRlZmF1bHRTZWxlY3RlZCIsICJvbkNoYW5nZSIsICJjbGFzc05hbWUiLCAidGhlbWUiLCAiY29sb3JzIiwgInRvb2x0aXAiLCAic2hvd1Rvb2x0aXAiLCAic2hvd0hhbGYiLCAibmFtZSIsICJtYXhUZWV0aCIsICJ0aGVtZUNvbG9ycyIsICJzZWxlY3RlZCIsICJzZXRTZWxlY3RlZCIsICJzdmdSZWYiLCAiX3Rvb2x0aXBSZWYiLCAidG9vbHRpcERhdGEiLCAic2V0VG9vbHRpcERhdGEiLCAiaGFuZGxlVG9nZ2xlIiwgInByZXYiLCAidXBkYXRlZCIsICJkZXRhaWxzIiwgImlkIiwgInRvb3RoQmFzZSIsICJ0b290aERhdGEiLCAidGVldGhQYXRocyIsICJoYW5kbGVLZXlEb3duIiwgImUiLCAicXVhZHJhbnRzIiwgInZpc2libGVRdWFkcmFudHMiLCAiaGFuZGxlSG92ZXIiLCAicGxhY2VtZW50IiwgIl9hIiwgIl9iIiwgInBhdGgiLCAidG9vdGhCb3giLCAic3ZnQm94IiwgIm1hcmdpbiIsICJ4IiwgInkiLCAic2FmZVkiLCAiaGFuZGxlTGVhdmUiLCAicCIsICJyZW5kZXJUZWV0aCIsICJwcmVmaXgiLCAidG9vdGgiLCAiZGlzcGxheU5hbWUiLCAiVGVldGgiLCAiZmluYWxDb2xvcnMiLCAibWFwVG9Dc3NWYXJzIiwgInRyYW5zZm9ybSIsICJsYWJlbCIsICJwb3NpdGlvbiIsICJpbmRleCIsICJPZG9udG9ncmFtVG9vbHRpcCIsICJjc3NWYXJzIiwgIk9kb250b2dyYW1fZGVmYXVsdCJdCn0K
|
|
1
|
+
"use strict";var E=Object.defineProperty;var t1=Object.getOwnPropertyDescriptor;var e1=Object.getOwnPropertyNames;var o1=Object.prototype.hasOwnProperty;var r1=(t,e)=>{for(var o in e)E(t,o,{get:e[o],enumerable:!0})},n1=(t,e,o,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of e1(e))!o1.call(t,a)&&a!==o&&E(t,a,{get:()=>e[a],enumerable:!(n=t1(e,a))||n.enumerable});return t};var a1=t=>n1(E({},"__esModule",{value:!0}),t);var s1={};r1(s1,{Odontogram:()=>q,convertFDIToNotation:()=>S,default:()=>z,getToothNotations:()=>$,mapToCssVars:()=>j});module.exports=a1(s1);var f=require("react");var M=require("react"),h=require("react/jsx-runtime"),i1=(t,e)=>typeof t=="function"?t(e):t,V=({active:t,payload:e,position:o,content:n})=>{var b,u,x;let a=(0,M.useRef)(null),[p,i]=(0,M.useState)({left:0,top:0});return(0,M.useEffect)(()=>{if(!a.current||!o)return;let l=a.current.getBoundingClientRect(),{x:L,y:T}=o,C=L-l.width/2,w=T-l.height-12;i({left:C,top:w})},[o,n,e]),t&&e?(0,h.jsxs)("div",{ref:a,className:"odontogram-tooltip",style:{position:"fixed",pointerEvents:"none",background:"rgba(0,0,0,0.85)",color:"#fff",padding:"6px 10px",borderRadius:"6px",fontSize:"12px",lineHeight:1.3,whiteSpace:"nowrap",zIndex:1e3,left:p.left,top:p.top,opacity:t?1:0,transition:"opacity 0.15s ease"},children:[i1(n,e)??(0,h.jsxs)(h.Fragment,{children:[(0,h.jsxs)("div",{children:["Tooth: ",(b=e==null?void 0:e.notations)==null?void 0:b.fdi]}),(0,h.jsxs)("div",{children:["Type: ",e==null?void 0:e.type]}),(0,h.jsxs)("div",{children:["Universal: ",(u=e==null?void 0:e.notations)==null?void 0:u.universal,", Palmer:"," ",(x=e==null?void 0:e.notations)==null?void 0:x.palmer]})]}),(0,h.jsx)("div",{className:"odontogram-tooltip-arrow",style:{position:"absolute",bottom:"-6px",left:"50%",transform:"translateX(-50%)",width:0,height:0,borderLeft:"6px solid transparent",borderRight:"6px solid transparent",borderTop:"6px solid rgba(0, 0, 0, 0.85)"}})]}):null};var R=[{name:"1",type:"Central Incisor",outlinePath:"M173.951 1.698c-2.198.16-5.302.862-5.302.862s-5.531 1.025-7.781 2.27c-2.403 1.333-5.553 3.299-6.013 5.258-.432 1.84-.78 4.734-.491 6.832l.027.2c.348 2.527.865 6.28 1.239 10.316.186 2-.101 3.21.751 6.16.895 3.1 1.395 4.573 2.013 5.687.646 1.164 1.493 2.087 2.03 3.28.866 1.924 2.393 4.29 3.87 6.1a48.805 48.805 0 0 0 2.36 2.663c1.016 1.078 2.819 3.11 3.898 4.331 1.526 1.727 3.076 3.248 4.423 3.742 1.217.446 2.709.642 3.793.936 1.369.372 2.494.638 4.597 0 1.545-.468 2.725-.621 4.372-2.424 2.064-2.258 2.846-3.517 3.512-4.746 1.065-1.964 2.524-4.648 3.541-6.422.611-1.068 2.221-3.089 4.086-8.845 1.54-4.752 2.367-7.76 2.731-8.994.415-1.408 1.079-3.583 1.355-6.196.44-4.176 1.114-7.482 1.062-11.026-.044-3.046.104-5.04-1.065-6.306-.95-1.029-1.988-2.001-3.306-2.534-1.959-.79-3.775-1.358-5.298-1.592-1.351-.207-7.05-.35-11.219-.057-1.567.11-3.61.097-9.185.505Z",shadowPath:"M188.269 50.215c19.275-41.867 10.766-43.612 4.937-44.684-5.829-1.073-28.455 2.53-29.72 2.817-.442.218-8.911 0-4.767 19.54 3.416 16.105 16.193 26.596 17.244 27.265 3.148 2.003 8.837 2.595 12.306-4.938Z",lineHighlightPath:"M160.472 14.727c.392-.402 4.317-3.309 8.941-5.47 3.097-1.448 7.773-1.629 11.207-1.749 8.759-.365 10.004.91 12.637 1.495.562.139.909.276 1.771.595"},{name:"2",type:"Lateral Incisor",outlinePath:"M135.016 60.41c3.443 1.355 7.834 2.73 9.601 2.346 4.185-.91 7.044-4.017 8.123-8.152 2.069-7.927 2.249-16.288 1.995-24.436-.113-3.596.72-16.81-4.184-18.444-8.135-6.14-32.088.494-36.979 8.055-5.013 7.751.878 21.131 5.56 27.728 3.862 5.44 9.714 10.474 15.884 12.903Z",shadowPath:"M134.65 55.386c2.732 1.076 6.217 2.167 7.62 1.862 3.321-.723 5.59-3.188 6.446-6.47 1.642-6.29 1.786-12.927 1.583-19.393-.089-2.854.572-13.342-3.32-14.638-6.456-4.873-25.466.392-29.348 6.393-3.979 6.152.696 16.77 4.413 22.006 3.064 4.317 7.709 8.313 12.606 10.24Z",lineHighlightPath:"M121.569 28.952c.551-.984 6.354-8.214 12.866-9.045 3.238-.413 10.619-.17 11.838 0"},{name:"3",type:"Canine",outlinePath:"M77.63 64.236c1.692 1.401 15.516 14.583 34.698 16.903 5.569.674 15.058-7.184 15.789-12.89 1.335-10.423-12.444-29.205-21.965-33.703-4.542-2.145-25.892-4.039-28.523 2.939-2.471 6.557-6.596 21.29 0 26.751Z",shadowPath:"M123.285 66.267c1.072-8.368-10.234-23.94-17.99-27.603-3.72-1.757-21.206-3.308-23.36 2.407-1.757 4.66-4.09 13.284-2.306 18.17 4.15 11.36 40.897 28.573 43.656 7.026Z",lineHighlightPath:["M82.84 60.043c-.01-.855-.193-4.63.256-8.12.667-5.185.703-5.866 1.29-8.106.437-1.666 2.083-4.91 17.487-3.748","M101.438 68.49c.376-.045 2.284-5.112 9.498-6.344"]},{name:"4",type:"First Premolar",outlinePath:"M93.684 108.748c-7.498 3.397-35.368-7.397-35.596-7.441-1.429-.842-12.215-2.854-9.068-29.414.147-1.238 1.353-2.05 2.218-2.556.956-.559 3.157-1.595 7.587-2.794 2.707-.734 13.856-3.54 18.674-.92 2.216 1.206 6.363 4.117 10.473 7.036 4.11 2.919 10.958 8.715 13.327 11.338 2.291 2.537 10.324 13.75-7.615 24.751Z",shadowPath:"M91.495 105.931c-6.528 2.958-30.793-6.44-30.992-6.478-1.243-.734-10.634-2.486-7.895-25.61.128-1.078 1.178-1.785 1.932-2.225.832-.487 2.748-1.39 6.605-2.433 2.357-.639 12.064-3.082 16.258-.8 1.93 1.05 5.54 3.584 9.12 6.125 3.578 2.541 9.54 7.588 11.603 9.872 1.994 2.208 8.987 11.971-6.63 21.549Z",lineHighlightPath:["M55.234 92.414c.022-.242.06-1.469.875-7.79.46-3.573 1.813-5.49 3.134-7.01 1.18-1.359 3.524-3.193 5.88-4.365 1.46-.632 3.029-1.126 6.044-1.776.826-.138 1.477-.175 2.526-.395","M87.02 101.387c4.183-.792 8.747-9.774 8.747-9.774"]},{name:"5",type:"Second Premolar",outlinePath:"M33.396 127.652c-1.088-2.713-4.486-11.852-3.962-15.246.477-3.085 14.47-12.008 23.595-12.008 2.178 0 25.157 6.665 35.073 17.908 4.551 9.324-1.624 23.339-16.22 23.339-8.193 0-23.563-1.897-25.453-2.215-1.896-.319-4.317-1.128-6.596-2.321-1.289-.675-2-1.035-2.478-1.647-.655-.84-2.101-3.178-3.96-7.81Z",shadowPath:"M36.837 126.778c-.945-2.356-3.895-10.289-3.44-13.235.414-2.679 12.561-10.424 20.483-10.424 1.89 0 21.837 5.785 30.445 15.545 3.951 8.094-1.41 20.26-14.08 20.26-7.112 0-20.454-1.647-22.095-1.922-1.645-.277-3.747-.98-5.725-2.015-1.12-.586-1.737-.899-2.151-1.43-.57-.729-1.825-2.759-3.437-6.779Z",lineHighlightPath:["M40.8 131.221c-4.003-20.278 8.442-20.974 13.779-23.692","M74.056 134.729c6.35-4.264 6.343-10.503 6.489-11.448"]},{name:"6",type:"First Molar",outlinePath:"M35.539 203.323c-3.363.196-32.788-4.02-28.495-42.465 3.631-20.408 26.21-23.364 29.557-22.912 9.019-.745 25.727 6.743 29.255 9.403 4.546 3.427 7.384 5.681 8.606 7.092 2.436 2.814 4.499 5.11 4.7 6.313.284 1.703 1.317 4.72-2.248 9.687-2.453 3.418-2.957 6.663-2.856 10.223.118 4.185.37 9.754-.524 11.63-.592 1.244-.984 2.627-2.375 3.392-2.015 1.108-4.61 2.317-11.93 3.748-3.623.708-9.309 1.83-12.401 2.292-5.19.777-8.423 1.43-11.289 1.597Z",shadowPath:"M36.515 199.085c-2.927.17-28.54-3.499-24.803-36.963 3.16-17.764 22.814-20.337 25.727-19.944 10.82-.893 25.709 5.989 32.955 14.358 2.12 2.45 3.917 4.448 4.091 5.495.248 1.482.513 4.268-2.59 8.591-2.135 2.975-1.94 5.641-1.852 8.74.096 3.417 1.402 10.917-2.523 13.076-1.754.964-4.013 2.016-10.384 3.261-6.762 1.322-13.728 2.984-20.621 3.386Z",lineHighlightPath:["M37.132 192.147c1.288-.372 3.385-2.071 5.183-5.438m9.008-35.98c1.188 1.224 2.114 6.385.15 11.363m0 0c-1.537 3.899-4.944 9.378-11.195 9.378 6.877.321 4.651 10.343 2.037 15.239m9.159-24.617c1.47-2.589 4.966-7.572 8.068-8.217m-17.227 32.834c-.186 2.348.044 7.351 2.458 8.584"]},{name:"7",type:"Second Molar",outlinePath:"M4.969 248.132c-1.188-2.74-14.708-27.152 12.319-42.139 1.836-1.018 24.508-7.711 45.28 10.874 2.274 2.035 4.455 3.579 5.403 5.102 1.414 2.271 2.128 3.435 1.687 5.606-.387 1.901-1.54 3.642-3.77 7.711-1.127 2.056-1.854 3.427-1.369 7.824.175 1.59.627 3.935.048 6.603-.466 2.147-.941 3.567-2.578 5.006-2.53 2.224-5.307 3.645-9.076 4.35-1.091.204-3.133.811-7.525 1.702-2.776.563-6.619 1.234-10.09 1.654-3.47.42-6.478.638-8.612.636-3.353-.002-6.734.031-9.465-1.48l-.018-.01c-1.654-.915-4.076-2.255-6.245-4.732-2.258-2.579-4.591-5.482-5.989-8.707Z",shadowPath:"M8.799 246.28c-1.128-2.352-12.843-23.709 10.756-36.796 1.604-.889 21.4-6.732 39.538 9.496 1.986 1.777 3.89 3.125 4.717 4.454 1.235 1.983 1.859 3 1.473 4.895-.337 1.66-1.343 3.18-3.291 6.734-.984 1.795-1.619 2.992-1.196 6.831.154 1.389.548 3.436.042 5.766-2.872 13.231-31.213 11.657-33.076 11.656h-.007c-2.936-.003-12.714-.01-18.956-13.036Z",lineHighlightPath:["M32.14 255.091c.748-.303 2.28-2.378 3.103-5.721m-1.99-35.481c3.009 1.363 4.015 4.888 3.736 8.716m0 0c-.424 5.835-3.832 12.377-7.683 13.049 6.954 1.18 7.244 8.414 5.937 13.716m1.746-26.765c.327-2.24 1.82-6.958 5.19-7.91m-6.936 34.675c.65 2.172 2.55 6.507 4.967 6.471"]},{name:"8",type:"Third Molar",outlinePath:"M.895 291.331c-.362-1.218-.116-3.411-.164-3.892-.035-.34.124-3.438.727-5.558 1.04-2.82 1.808-4.74 2.573-5.752 1.413-1.872 3.913-4.769 7.135-7.2 2.288-1.726 5.003-3.187 8.133-4.339 2.249-.828 4.362-1.502 7.732-1.693 2.175-.123 5.25-.155 8.782.108s7.403.804 10.353 1.397 4.92 1.218 6.641 1.893c1.722.675 3.148 1.389 3.972 1.768 1.51.696 2.9 1.209 3.824 2.14 1.857 1.872 2.617 3.334 2.912 4.807.254 1.27.252 3.216-.224 4.531-.672 1.859-1.468 2.856-1.468 5.7 0 3.857 1.713 5.95 1.915 8.356.337 4.008.317 6.168-.42 7.485-.591 1.057-1.532 2.383-5.541 5.088-1.173.791-2.684 1.634-6.643 3.424-2.762 1.248-6.977 3.108-9.205 4.107-2.473 1.109-4.667 2.226-8.234 3.053-2.54.589-5.631.784-9.012.186-2.307-.408-5.449-1.183-9.107-3.827-3.928-2.839-6.53-4.897-7.497-6.041-.866-1.026-1.714-2.082-2.412-3.555-.904-1.905-2.272-3.643-3-5.916-.846-2.633-1.167-4.233-1.772-6.27Z",shadowPath:"M4.732 291.175c-.317-1.07-.101-2.994-.144-3.416-.03-.299.11-3.019.638-4.88.914-2.476 1.588-4.161 2.26-5.05 1.24-1.643 3.434-4.187 6.263-6.321 2.009-1.515 4.393-2.797 7.14-3.809 1.974-.727 3.83-1.318 6.788-1.486 1.91-.108 4.61-.136 7.71.095 3.1.231 6.498.706 9.088 1.226 2.59.521 4.319 1.07 5.83 1.662 1.512.592 2.764 1.22 3.487 1.553 1.326.61 2.547 1.061 3.357 1.878 1.63 1.643 2.298 2.927 2.557 4.22.223 1.115.221 2.824-.196 3.978-.59 1.632-1.29 2.507-1.29 5.004 0 3.385 1.504 5.223 1.682 7.335.296 3.519.278 5.416-.369 6.571-.52.928-1.345 2.093-4.865 4.467-1.03.695-2.355 1.435-5.831 3.006-2.425 1.096-6.126 2.728-8.082 3.606-2.17.973-4.096 1.954-7.228 2.68-2.229.517-4.944.688-7.912.163-2.024-.358-4.783-1.038-7.995-3.359-3.448-2.493-5.732-4.299-6.58-5.304-.761-.901-1.505-1.827-2.119-3.121-.793-1.672-1.994-3.198-2.634-5.193-.742-2.312-1.024-3.717-1.555-5.505Z",lineHighlightPath:["M31.732 309.511c1.462-.897 2.585-3.672 2.93-6.726m-2.93-29.453c2.114 1.092 3.49 4.44 3.61 8.062m4.133-7.58c-1.353 1.058-4.074 4.057-4.134 7.58m0 0c.155 4.693-1.797 9.846-6.983 11.152 5.379-.357 6.859 5.305 6.303 10.239m4.557 7.24c-1.678-.671-4.938-3.058-4.557-7.24"]}];var v=require("react/jsx-runtime"),H=({name:t,outlinePath:e,shadowPath:o,lineHighlightPath:n,selected:a,onClick:p,onKeyDown:i,onHover:b,onLeave:u,children:x})=>(0,v.jsxs)("g",{className:`${t} ${a?"selected":""}`,tabIndex:0,onClick:()=>p==null?void 0:p(t),onKeyDown:l=>i==null?void 0:i(l,t),onMouseMove:l=>b==null?void 0:b(t,l),onMouseLeave:u,role:"option","aria-selected":a,"aria-label":`Tooth ${t}`,style:{cursor:"pointer",outline:"none",touchAction:"manipulation",transition:"all 0.2s ease"},children:[x,(0,v.jsx)("path",{stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",d:e}),(0,v.jsx)("path",{fill:"currentColor",d:o}),Array.isArray(n)?n.map(l=>(0,v.jsx)("path",{stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",d:l},`${l}`)):(0,v.jsx)("path",{stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",d:n})]});var m=require("react/jsx-runtime"),O={top:(t,e)=>({x:t.left+t.width/2,y:t.top-e}),"top-start":(t,e)=>({x:t.left,y:t.top-e}),"top-end":(t,e)=>({x:t.right,y:t.top-e}),bottom:(t,e)=>({x:t.left+t.width/2,y:t.bottom+e}),"bottom-start":(t,e)=>({x:t.left,y:t.bottom+e}),"bottom-end":(t,e)=>({x:t.right,y:t.bottom+e}),left:(t,e)=>({x:t.left-e,y:t.top+t.height/2}),"left-start":(t,e)=>({x:t.left-e,y:t.top}),"left-end":(t,e)=>({x:t.left-e,y:t.bottom}),right:(t,e)=>({x:t.right+e,y:t.top+t.height/2}),"right-start":(t,e)=>({x:t.right+e,y:t.top}),"right-end":(t,e)=>({x:t.right+e,y:t.bottom})};function S(t,e){let o=t.replace("teeth-",""),n={11:8,12:7,13:6,14:5,15:4,16:3,17:2,18:1,21:9,22:10,23:11,24:12,25:13,26:14,27:15,28:16,31:24,32:23,33:22,34:21,35:20,36:19,37:18,38:17,41:25,42:26,43:27,44:28,45:29,46:30,47:31,48:32};if(e==="Universal")return String(n[o]??o);if(e==="Palmer"){let a=o[0];return`${o[1]}${{1:"UR",2:"UL",3:"LL",4:"LR"}[a]??""}`}return o}function $(t){let e=t.replace("teeth-",""),o=S(t,"Universal"),n=S(t,"Palmer");return{fdi:e,universal:o,palmer:n}}var q=({defaultSelected:t=[],onChange:e,className:o="",theme:n="light",colors:a={},notation:p,tooltip:i={margin:-10,placement:"top"},showTooltip:b=!0,showHalf:u="full",name:x,maxTeeth:l=8})=>{let L=n==="dark"?{"--dark-blue":"#aab6ff","--base-blue":"#d0d5f6","--light-blue":"#5361e6"}:{"--dark-blue":"#3e5edc","--base-blue":"#8a98be","--light-blue":"#c6ccf8"},[T,C]=(0,f.useState)(new Set(t)),w=(0,f.useRef)(null),l1=(0,f.useRef)(null),[B,A]=(0,f.useState)({active:!1}),Z=(0,f.useCallback)(r=>{C(c=>{let d=new Set(c);d.has(r)?d.delete(r):d.add(r);let k=Array.from(d).map(s=>{let P=s.replace("teeth-","").slice(1),g=R.find(D=>D.name===P);return{id:s,notations:$(s),type:(g==null?void 0:g.type)??"Unknown"}});return e==null||e(k),d})},[e]),J=(0,f.useCallback)((r,c)=>{(r.key==="Enter"||r.key===" ")&&(r.preventDefault(),Z(c))},[Z]),N=[{name:"first",transform:"",label:"Upper Right",position:{x:100,y:30}},{name:"second",transform:"scale(-1, 1) translate(-409, 0)",label:"Upper Left",position:{x:309,y:30}},{name:"third",transform:"scale(1, -1) translate(0, -694)",label:"Lower Right",position:{x:100,y:664}},{name:"fourth",transform:"scale(-1, -1) translate(-409, -694)",label:"Lower Left",position:{x:309,y:664}}],U=N;u==="upper"?U=N.slice(0,2):u==="lower"&&(U=N.slice(2));let Q=(r,c,d="right")=>{var I,G;let s=c.currentTarget.querySelector("path");if(!(s&&w.current))return;let y=s.getBoundingClientRect(),P=w.current.getBoundingClientRect(),g=(i==null?void 0:i.margin)||10;console.log("toothbox box",y,"svgBOx",P);let{x:D,y:F}=((I=O[d])==null?void 0:I.call(O,y,g))??O.right(y,g),_=F<P.top?y.bottom+g:F;A({active:!0,position:{x:D,y:_},payload:{id:r,notations:$(r),type:((G=R.find(K=>K.name===r.replace("teeth-","").slice(1)))==null?void 0:G.type)??"Unknown"}})},W=()=>A(r=>({...r,active:!1})),X=(r,c)=>(c?R.slice(0,c):R).map(k=>{let s=`${r}${k.name}`,y=S(s,p??"FDI");return(0,m.jsx)(H,{...k,name:s,selected:T.has(s),onClick:Z,onKeyDown:J,onHover:(P,g)=>Q(P,g,i==null?void 0:i.placement),onLeave:W,children:(0,m.jsx)("title",{children:y})},s)}),Y={...L,...j(a)};return(0,m.jsxs)("div",{className:`Odontogram ${n==="dark"?"dark-theme":""}`,style:{...Y,width:"100%",maxWidth:300,margin:"0 auto",display:"flex",justifyContent:"center",alignItems:"center"},role:"listbox","aria-label":"Odontogram","aria-multiselectable":"true",children:[(0,m.jsx)("input",{type:"hidden",name:x??"teeth",value:JSON.stringify(Array.from(T))}),(0,m.jsxs)("svg",{ref:w,xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:u==="full"?"0 0 409 694":u==="upper"?"0 0 409 347":"0 347 409 347",className:"Odontogram",style:{width:"100%",height:"auto",userSelect:"none",touchAction:"manipulation"},children:[(0,m.jsx)("title",{children:"Odontogram"}),U.map(({name:r,transform:c,label:d,position:k},s)=>(0,m.jsx)("g",{role:"group","aria-label":d,name:r,transform:c,children:X(`teeth-${s+1}`,l)},r))]}),b&&(0,m.jsx)(V,{active:B.active,position:B.position,payload:B.payload,content:i==null?void 0:i.content})]})};function j(t){let e={};return t.darkBlue&&(e["--dark-blue"]=t.darkBlue),t.baseBlue&&(e["--base-blue"]=t.baseBlue),t.lightBlue&&(e["--light-blue"]=t.lightBlue),e}var z=q;0&&(module.exports={Odontogram,convertFDIToNotation,getToothNotations,mapToCssVars});
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vc3JjL2luZGV4LnRzIiwgIi4uL3NyYy9PZG9udG9ncmFtLnRzeCIsICIuLi9zcmMvVG9vbHRpcC50c3giLCAiLi4vc3JjL2RhdGEudHMiLCAiLi4vc3JjL1RlZXRoLnRzeCJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiZXhwb3J0IHsgZGVmYXVsdCB9IGZyb20gXCIuL09kb250b2dyYW1cIjtcblxuZXhwb3J0ICogZnJvbSBcIi4vT2RvbnRvZ3JhbVwiO1xuIiwgImltcG9ydCBcIi4vc3R5bGVzLmNzc1wiO1xuaW1wb3J0IHtcbiAgdHlwZSBDU1NQcm9wZXJ0aWVzLFxuICB0eXBlIEZDLFxuICB1c2VDYWxsYmFjayxcbiAgdXNlUmVmLFxuICB1c2VTdGF0ZSxcbn0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyBPZG9udG9ncmFtVG9vbHRpcCB9IGZyb20gXCIuL1Rvb2x0aXBcIjtcbmltcG9ydCB7IHRlZXRoUGF0aHMgfSBmcm9tIFwiLi9kYXRhXCI7XG5pbXBvcnQgdHlwZSB7IE9kb250b2dyYW1Qcm9wcywgUGxhY2VtZW50LCBUb290aERldGFpbCB9IGZyb20gXCIuL3R5cGVcIjtcbmltcG9ydCB7IFRlZXRoIH0gZnJvbSBcIi4vVGVldGhcIjtcblxuY29uc3QgcGxhY2VtZW50czogUmVjb3JkPFxuICBQbGFjZW1lbnQsXG4gICh0b290aEJveDogRE9NUmVjdCwgbWFyZ2luOiBudW1iZXIpID0+IHsgeDogbnVtYmVyOyB5OiBudW1iZXIgfVxuPiA9IHtcbiAgdG9wOiAodCwgbSkgPT4gKHsgeDogdC5sZWZ0ICsgdC53aWR0aCAvIDIsIHk6IHQudG9wIC0gbSB9KSxcbiAgXCJ0b3Atc3RhcnRcIjogKHQsIG0pID0+ICh7IHg6IHQubGVmdCwgeTogdC50b3AgLSBtIH0pLFxuICBcInRvcC1lbmRcIjogKHQsIG0pID0+ICh7IHg6IHQucmlnaHQsIHk6IHQudG9wIC0gbSB9KSxcbiAgYm90dG9tOiAodCwgbSkgPT4gKHsgeDogdC5sZWZ0ICsgdC53aWR0aCAvIDIsIHk6IHQuYm90dG9tICsgbSB9KSxcbiAgXCJib3R0b20tc3RhcnRcIjogKHQsIG0pID0+ICh7IHg6IHQubGVmdCwgeTogdC5ib3R0b20gKyBtIH0pLFxuICBcImJvdHRvbS1lbmRcIjogKHQsIG0pID0+ICh7IHg6IHQucmlnaHQsIHk6IHQuYm90dG9tICsgbSB9KSxcbiAgbGVmdDogKHQsIG0pID0+ICh7IHg6IHQubGVmdCAtIG0sIHk6IHQudG9wICsgdC5oZWlnaHQgLyAyIH0pLFxuICBcImxlZnQtc3RhcnRcIjogKHQsIG0pID0+ICh7IHg6IHQubGVmdCAtIG0sIHk6IHQudG9wIH0pLFxuICBcImxlZnQtZW5kXCI6ICh0LCBtKSA9PiAoeyB4OiB0LmxlZnQgLSBtLCB5OiB0LmJvdHRvbSB9KSxcbiAgcmlnaHQ6ICh0LCBtKSA9PiAoeyB4OiB0LnJpZ2h0ICsgbSwgeTogdC50b3AgKyB0LmhlaWdodCAvIDIgfSksXG4gIFwicmlnaHQtc3RhcnRcIjogKHQsIG0pID0+ICh7IHg6IHQucmlnaHQgKyBtLCB5OiB0LnRvcCB9KSxcbiAgXCJyaWdodC1lbmRcIjogKHQsIG0pID0+ICh7IHg6IHQucmlnaHQgKyBtLCB5OiB0LmJvdHRvbSB9KSxcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBjb252ZXJ0RkRJVG9Ob3RhdGlvbihcbiAgZmRpOiBzdHJpbmcsXG4gIG5vdGF0aW9uOiBcIkZESVwiIHwgXCJVbml2ZXJzYWxcIiB8IFwiUGFsbWVyXCJcbikge1xuICBjb25zdCBudW0gPSBmZGkucmVwbGFjZShcInRlZXRoLVwiLCBcIlwiKTtcblxuICBjb25zdCBmZGlUb1VuaXZlcnNhbDogUmVjb3JkPHN0cmluZywgbnVtYmVyPiA9IHtcbiAgICBcIjExXCI6IDgsXG4gICAgXCIxMlwiOiA3LFxuICAgIFwiMTNcIjogNixcbiAgICBcIjE0XCI6IDUsXG4gICAgXCIxNVwiOiA0LFxuICAgIFwiMTZcIjogMyxcbiAgICBcIjE3XCI6IDIsXG4gICAgXCIxOFwiOiAxLFxuICAgIFwiMjFcIjogOSxcbiAgICBcIjIyXCI6IDEwLFxuICAgIFwiMjNcIjogMTEsXG4gICAgXCIyNFwiOiAxMixcbiAgICBcIjI1XCI6IDEzLFxuICAgIFwiMjZcIjogMTQsXG4gICAgXCIyN1wiOiAxNSxcbiAgICBcIjI4XCI6IDE2LFxuICAgIFwiMzFcIjogMjQsXG4gICAgXCIzMlwiOiAyMyxcbiAgICBcIjMzXCI6IDIyLFxuICAgIFwiMzRcIjogMjEsXG4gICAgXCIzNVwiOiAyMCxcbiAgICBcIjM2XCI6IDE5LFxuICAgIFwiMzdcIjogMTgsXG4gICAgXCIzOFwiOiAxNyxcbiAgICBcIjQxXCI6IDI1LFxuICAgIFwiNDJcIjogMjYsXG4gICAgXCI0M1wiOiAyNyxcbiAgICBcIjQ0XCI6IDI4LFxuICAgIFwiNDVcIjogMjksXG4gICAgXCI0NlwiOiAzMCxcbiAgICBcIjQ3XCI6IDMxLFxuICAgIFwiNDhcIjogMzIsXG4gIH07XG5cbiAgaWYgKG5vdGF0aW9uID09PSBcIlVuaXZlcnNhbFwiKSB7XG4gICAgcmV0dXJuIFN0cmluZyhmZGlUb1VuaXZlcnNhbFtudW1dID8/IG51bSk7XG4gIH1cblxuICBpZiAobm90YXRpb24gPT09IFwiUGFsbWVyXCIpIHtcbiAgICBjb25zdCBxdWFkcmFudCA9IG51bVswXTtcbiAgICBjb25zdCB0b290aCA9IG51bVsxXTtcbiAgICBjb25zdCBzeW1ib2xzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICAgICAgXCIxXCI6IFwiVVJcIiwgLy8gdXBwZXIgcmlnaHRcbiAgICAgIFwiMlwiOiBcIlVMXCIsIC8vIHVwcGVyIGxlZnRcbiAgICAgIFwiM1wiOiBcIkxMXCIsIC8vIGxvd2VyIGxlZnRcbiAgICAgIFwiNFwiOiBcIkxSXCIsIC8vIGxvd2VyIHJpZ2h0XG4gICAgfTtcbiAgICByZXR1cm4gYCR7dG9vdGh9JHtzeW1ib2xzW3F1YWRyYW50XSA/PyBcIlwifWA7XG4gIH1cblxuICByZXR1cm4gbnVtO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0VG9vdGhOb3RhdGlvbnMoZmRpOiBzdHJpbmcpIHtcbiAgY29uc3QgbnVtID0gZmRpLnJlcGxhY2UoXCJ0ZWV0aC1cIiwgXCJcIik7XG4gIGNvbnN0IHVuaXZlcnNhbCA9IGNvbnZlcnRGRElUb05vdGF0aW9uKGZkaSwgXCJVbml2ZXJzYWxcIik7XG4gIGNvbnN0IHBhbG1lciA9IGNvbnZlcnRGRElUb05vdGF0aW9uKGZkaSwgXCJQYWxtZXJcIik7XG4gIHJldHVybiB7XG4gICAgZmRpOiBudW0sXG4gICAgdW5pdmVyc2FsLFxuICAgIHBhbG1lcixcbiAgfTtcbn1cblxuZXhwb3J0IGNvbnN0IE9kb250b2dyYW06IEZDPE9kb250b2dyYW1Qcm9wcz4gPSAoe1xuICBkZWZhdWx0U2VsZWN0ZWQgPSBbXSxcbiAgb25DaGFuZ2UsXG4gIGNsYXNzTmFtZSA9IFwiXCIsXG4gIHRoZW1lID0gXCJsaWdodFwiLFxuICBjb2xvcnMgPSB7fSxcbiAgbm90YXRpb24sXG4gIHRvb2x0aXAgPSB7XG4gICAgbWFyZ2luOiAtMTAsXG4gICAgcGxhY2VtZW50OiBcInRvcFwiXG4gIH0sXG4gIHNob3dUb29sdGlwID0gdHJ1ZSxcbiAgc2hvd0hhbGYgPSBcImZ1bGxcIixcbiAgbmFtZSxcbiAgbWF4VGVldGggPSA4LFxuXG59KSA9PiB7XG4gIGNvbnN0IHRoZW1lQ29sb3JzID1cbiAgICB0aGVtZSA9PT0gXCJkYXJrXCJcbiAgICAgID8ge1xuICAgICAgICBcIi0tZGFyay1ibHVlXCI6IFwiI2FhYjZmZlwiLFxuICAgICAgICBcIi0tYmFzZS1ibHVlXCI6IFwiI2QwZDVmNlwiLFxuICAgICAgICBcIi0tbGlnaHQtYmx1ZVwiOiBcIiM1MzYxZTZcIixcbiAgICAgIH1cbiAgICAgIDoge1xuICAgICAgICBcIi0tZGFyay1ibHVlXCI6IFwiIzNlNWVkY1wiLFxuICAgICAgICBcIi0tYmFzZS1ibHVlXCI6IFwiIzhhOThiZVwiLFxuICAgICAgICBcIi0tbGlnaHQtYmx1ZVwiOiBcIiNjNmNjZjhcIixcbiAgICAgIH07XG5cbiAgY29uc3QgW3NlbGVjdGVkLCBzZXRTZWxlY3RlZF0gPSB1c2VTdGF0ZTxTZXQ8c3RyaW5nPj4oXG4gICAgbmV3IFNldChkZWZhdWx0U2VsZWN0ZWQpXG4gICk7XG5cbiAgY29uc3Qgc3ZnUmVmID0gdXNlUmVmPFNWR1NWR0VsZW1lbnQ+KG51bGwpO1xuICBjb25zdCBfdG9vbHRpcFJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbCk7XG5cbiAgY29uc3QgW3Rvb2x0aXBEYXRhLCBzZXRUb29sdGlwRGF0YV0gPSB1c2VTdGF0ZTx7XG4gICAgYWN0aXZlOiBib29sZWFuO1xuICAgIHBvc2l0aW9uPzogeyB4OiBudW1iZXI7IHk6IG51bWJlciB9O1xuICAgIHBheWxvYWQ/OiBUb290aERldGFpbDtcbiAgfT4oeyBhY3RpdmU6IGZhbHNlIH0pO1xuXG4gIGNvbnN0IGhhbmRsZVRvZ2dsZSA9IHVzZUNhbGxiYWNrKFxuICAgIChuYW1lOiBzdHJpbmcpID0+IHtcbiAgICAgIHNldFNlbGVjdGVkKChwcmV2KSA9PiB7XG4gICAgICAgIGNvbnN0IHVwZGF0ZWQgPSBuZXcgU2V0KHByZXYpO1xuICAgICAgICB1cGRhdGVkLmhhcyhuYW1lKSA/IHVwZGF0ZWQuZGVsZXRlKG5hbWUpIDogdXBkYXRlZC5hZGQobmFtZSk7XG5cbiAgICAgICAgLy8gYnVpbGQgZGV0YWlsZWQgSlNPTiBvdXRwdXRcbiAgICAgICAgY29uc3QgZGV0YWlscyA9IEFycmF5LmZyb20odXBkYXRlZCkubWFwKChpZCkgPT4ge1xuICAgICAgICAgIGNvbnN0IGZkaSA9IGlkLnJlcGxhY2UoXCJ0ZWV0aC1cIiwgXCJcIik7XG4gICAgICAgICAgY29uc3QgdG9vdGhCYXNlID0gZmRpLnNsaWNlKDEpO1xuICAgICAgICAgIGNvbnN0IHRvb3RoRGF0YSA9IHRlZXRoUGF0aHMuZmluZCgodCkgPT4gdC5uYW1lID09PSB0b290aEJhc2UpO1xuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBpZCxcbiAgICAgICAgICAgIG5vdGF0aW9uczogZ2V0VG9vdGhOb3RhdGlvbnMoaWQpLFxuICAgICAgICAgICAgdHlwZTogdG9vdGhEYXRhPy50eXBlID8/IFwiVW5rbm93blwiLFxuICAgICAgICAgIH07XG4gICAgICAgIH0pO1xuXG4gICAgICAgIG9uQ2hhbmdlPy4oZGV0YWlscyk7XG4gICAgICAgIHJldHVybiB1cGRhdGVkO1xuICAgICAgfSk7XG4gICAgfSxcbiAgICBbb25DaGFuZ2VdXG4gICk7XG4gIGNvbnN0IGhhbmRsZUtleURvd24gPSB1c2VDYWxsYmFjayhcbiAgICAoZTogUmVhY3QuS2V5Ym9hcmRFdmVudDxTVkdHRWxlbWVudD4sIG5hbWU6IHN0cmluZykgPT4ge1xuICAgICAgaWYgKGUua2V5ID09PSBcIkVudGVyXCIgfHwgZS5rZXkgPT09IFwiIFwiKSB7XG4gICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgaGFuZGxlVG9nZ2xlKG5hbWUpO1xuICAgICAgfVxuICAgIH0sXG4gICAgW2hhbmRsZVRvZ2dsZV1cbiAgKTtcblxuICBjb25zdCBxdWFkcmFudHM6IEFycmF5PHtcbiAgICBuYW1lOiBcImZpcnN0XCIgfCBcInNlY29uZFwiIHwgXCJ0aGlyZFwiIHwgXCJmb3VydGhcIjtcbiAgICB0cmFuc2Zvcm06IHN0cmluZztcbiAgICBsYWJlbDogc3RyaW5nO1xuICAgIHBvc2l0aW9uOiB7IHg6IG51bWJlcjsgeTogbnVtYmVyIH07XG4gIH0+ID0gW1xuICAgICAge1xuICAgICAgICBuYW1lOiBcImZpcnN0XCIsXG4gICAgICAgIHRyYW5zZm9ybTogXCJcIixcbiAgICAgICAgbGFiZWw6IFwiVXBwZXIgUmlnaHRcIixcbiAgICAgICAgcG9zaXRpb246IHsgeDogMTAwLCB5OiAzMCB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogXCJzZWNvbmRcIixcbiAgICAgICAgdHJhbnNmb3JtOiBcInNjYWxlKC0xLCAxKSB0cmFuc2xhdGUoLTQwOSwgMClcIixcbiAgICAgICAgbGFiZWw6IFwiVXBwZXIgTGVmdFwiLFxuICAgICAgICBwb3NpdGlvbjogeyB4OiAzMDksIHk6IDMwIH0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBuYW1lOiBcInRoaXJkXCIsXG4gICAgICAgIHRyYW5zZm9ybTogXCJzY2FsZSgxLCAtMSkgdHJhbnNsYXRlKDAsIC02OTQpXCIsXG4gICAgICAgIGxhYmVsOiBcIkxvd2VyIFJpZ2h0XCIsXG4gICAgICAgIHBvc2l0aW9uOiB7IHg6IDEwMCwgeTogNjY0IH0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBuYW1lOiBcImZvdXJ0aFwiLFxuICAgICAgICB0cmFuc2Zvcm06IFwic2NhbGUoLTEsIC0xKSB0cmFuc2xhdGUoLTQwOSwgLTY5NClcIixcbiAgICAgICAgbGFiZWw6IFwiTG93ZXIgTGVmdFwiLFxuICAgICAgICBwb3NpdGlvbjogeyB4OiAzMDksIHk6IDY2NCB9LFxuICAgICAgfSxcbiAgICBdO1xuXG4gIGxldCB2aXNpYmxlUXVhZHJhbnRzID0gcXVhZHJhbnRzO1xuICBpZiAoc2hvd0hhbGYgPT09IFwidXBwZXJcIikge1xuICAgIHZpc2libGVRdWFkcmFudHMgPSBxdWFkcmFudHMuc2xpY2UoMCwgMik7XG4gIH0gZWxzZSBpZiAoc2hvd0hhbGYgPT09IFwibG93ZXJcIikge1xuICAgIHZpc2libGVRdWFkcmFudHMgPSBxdWFkcmFudHMuc2xpY2UoMik7XG4gIH1cblxuICBjb25zdCBoYW5kbGVIb3ZlciA9IChcbiAgICBuYW1lOiBzdHJpbmcsXG4gICAgZTogUmVhY3QuTW91c2VFdmVudCxcbiAgICBwbGFjZW1lbnQ6IFBsYWNlbWVudCA9IFwicmlnaHRcIiAvLyBkZWZhdWx0XG4gICkgPT4ge1xuICAgIGNvbnN0IHRhcmdldCA9IGUuY3VycmVudFRhcmdldCBhcyBTVkdHRWxlbWVudDtcbiAgICBjb25zdCBwYXRoID0gdGFyZ2V0LnF1ZXJ5U2VsZWN0b3IoXCJwYXRoXCIpO1xuXG4gICAgaWYgKCEocGF0aCAmJiBzdmdSZWYuY3VycmVudCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCB0b290aEJveCA9IHBhdGguZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgY29uc3Qgc3ZnQm94ID0gc3ZnUmVmLmN1cnJlbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG5cbiAgICBjb25zdCBtYXJnaW4gPSB0b29sdGlwPy5tYXJnaW4gfHwgMTA7IC8vIGRpc3RhbmNlIGJldHdlZW4gdG9vdGggYW5kIHRvb2x0aXBcblxuICAgIC8vIENvbXB1dGUgdG9vbHRpcCBwb3NpdGlvbiBqdXN0IGFib3ZlIG9yIGJlbG93IGRlcGVuZGluZyBvbiBzcGFjZVxuXG4gICAgY29uc29sZS5sb2coXG4gICAgICBcInRvb3RoYm94IGJveFwiLCB0b290aEJveCxcbiAgICAgIFwic3ZnQk94XCIsIHN2Z0JveFxuICAgIClcblxuICAgIGNvbnN0IHsgeCwgeSB9ID1cbiAgICAgIHBsYWNlbWVudHNbcGxhY2VtZW50XT8uKHRvb3RoQm94LCBtYXJnaW4pID8/XG4gICAgICBwbGFjZW1lbnRzLnJpZ2h0KHRvb3RoQm94LCBtYXJnaW4pO1xuXG4gICAgY29uc3Qgc2FmZVkgPSB5IDwgc3ZnQm94LnRvcCA/IHRvb3RoQm94LmJvdHRvbSArIG1hcmdpbiA6IHk7XG5cbiAgICBzZXRUb29sdGlwRGF0YSh7XG4gICAgICBhY3RpdmU6IHRydWUsXG4gICAgICBwb3NpdGlvbjogeyB4LCB5OiBzYWZlWSB9LFxuICAgICAgcGF5bG9hZDoge1xuICAgICAgICBpZDogbmFtZSxcbiAgICAgICAgbm90YXRpb25zOiBnZXRUb290aE5vdGF0aW9ucyhuYW1lKSxcbiAgICAgICAgdHlwZTpcbiAgICAgICAgICB0ZWV0aFBhdGhzLmZpbmQoKHQpID0+IHQubmFtZSA9PT0gbmFtZS5yZXBsYWNlKFwidGVldGgtXCIsIFwiXCIpLnNsaWNlKDEpKVxuICAgICAgICAgICAgPy50eXBlID8/IFwiVW5rbm93blwiLFxuICAgICAgfSxcbiAgICB9KTtcbiAgfTtcbiAgY29uc3QgaGFuZGxlTGVhdmUgPSAoKSA9PiBzZXRUb29sdGlwRGF0YSgocCkgPT4gKHsgLi4ucCwgYWN0aXZlOiBmYWxzZSB9KSk7XG4gIGNvbnN0IHJlbmRlclRlZXRoID0gKHByZWZpeDogc3RyaW5nLCBtYXhUZWV0aD86IG51bWJlcikgPT4ge1xuICAgIC8vIEZJWEVEOiB1c2Ugc2xpY2UoKSBpbnN0ZWFkIG9mIHNwbGljZSgpXG4gICAgY29uc3QgZmlsdGVyZWRUZWV0aCA9IG1heFRlZXRoXG4gICAgICA/IHRlZXRoUGF0aHMuc2xpY2UoMCwgbWF4VGVldGgpXG4gICAgICA6IHRlZXRoUGF0aHM7XG5cbiAgICByZXR1cm4gZmlsdGVyZWRUZWV0aC5tYXAoKHRvb3RoKSA9PiB7XG4gICAgICBjb25zdCBpZCA9IGAke3ByZWZpeH0ke3Rvb3RoLm5hbWV9YDtcbiAgICAgIGNvbnN0IGRpc3BsYXlOYW1lID0gY29udmVydEZESVRvTm90YXRpb24oaWQsIG5vdGF0aW9uID8/IFwiRkRJXCIpO1xuXG4gICAgICByZXR1cm4gKFxuICAgICAgICA8VGVldGhcbiAgICAgICAgICBrZXk9e2lkfVxuICAgICAgICAgIHsuLi50b290aH1cbiAgICAgICAgICBuYW1lPXtpZH1cbiAgICAgICAgICBzZWxlY3RlZD17c2VsZWN0ZWQuaGFzKGlkKX1cbiAgICAgICAgICBvbkNsaWNrPXtoYW5kbGVUb2dnbGV9XG4gICAgICAgICAgb25LZXlEb3duPXtoYW5kbGVLZXlEb3dufVxuICAgICAgICAgIG9uSG92ZXI9eyhuYW1lLCBlKSA9PiBoYW5kbGVIb3ZlcihuYW1lLCBlLCB0b29sdGlwPy5wbGFjZW1lbnQpfVxuICAgICAgICAgIG9uTGVhdmU9e2hhbmRsZUxlYXZlfVxuICAgICAgICA+XG4gICAgICAgICAgPHRpdGxlPntkaXNwbGF5TmFtZX08L3RpdGxlPlxuICAgICAgICA8L1RlZXRoPlxuICAgICAgKTtcbiAgICB9KTtcbiAgfTtcblxuICBjb25zdCBmaW5hbENvbG9ycyA9IHsgLi4udGhlbWVDb2xvcnMsIC4uLm1hcFRvQ3NzVmFycyhjb2xvcnMpIH07XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2XG4gICAgICBjbGFzc05hbWU9e2BPZG9udG9ncmFtICR7dGhlbWUgPT09IFwiZGFya1wiID8gXCJkYXJrLXRoZW1lXCIgOiBcIlwifWB9XG4gICAgICBzdHlsZT17e1xuICAgICAgICAuLi4oZmluYWxDb2xvcnMgYXMgQ1NTUHJvcGVydGllcyksXG4gICAgICAgIHdpZHRoOiBcIjEwMCVcIixcbiAgICAgICAgbWF4V2lkdGg6IDMwMCxcbiAgICAgICAgbWFyZ2luOiBcIjAgYXV0b1wiLFxuICAgICAgICBkaXNwbGF5OiBcImZsZXhcIixcbiAgICAgICAganVzdGlmeUNvbnRlbnQ6IFwiY2VudGVyXCIsXG4gICAgICAgIGFsaWduSXRlbXM6IFwiY2VudGVyXCIsXG4gICAgICAgIC8vIGlzb2xhdGlvbjogXCJpc29sYXRlXCIsXG4gICAgICB9fVxuICAgICAgcm9sZT1cImxpc3Rib3hcIlxuICAgICAgYXJpYS1sYWJlbD1cIk9kb250b2dyYW1cIlxuICAgICAgYXJpYS1tdWx0aXNlbGVjdGFibGU9XCJ0cnVlXCJcbiAgICA+XG4gICAgICA8aW5wdXRcbiAgICAgICAgdHlwZT1cImhpZGRlblwiXG4gICAgICAgIG5hbWU9e25hbWUgPz8gXCJ0ZWV0aFwifVxuICAgICAgICB2YWx1ZT17SlNPTi5zdHJpbmdpZnkoQXJyYXkuZnJvbShzZWxlY3RlZCkpfVxuICAgICAgLz5cbiAgICAgIDxzdmdcbiAgICAgICAgcmVmPXtzdmdSZWZ9XG4gICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxuICAgICAgICBmaWxsPVwibm9uZVwiXG4gICAgICAgIHZpZXdCb3g9e1xuICAgICAgICAgIHNob3dIYWxmID09PSBcImZ1bGxcIlxuICAgICAgICAgICAgPyBcIjAgMCA0MDkgNjk0XCJcbiAgICAgICAgICAgIDogc2hvd0hhbGYgPT09IFwidXBwZXJcIlxuICAgICAgICAgICAgICA/IFwiMCAwIDQwOSAzNDdcIlxuICAgICAgICAgICAgICA6IFwiMCAzNDcgNDA5IDM0N1wiXG4gICAgICAgIH1cbiAgICAgICAgY2xhc3NOYW1lPVwiT2RvbnRvZ3JhbVwiXG4gICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgd2lkdGg6IFwiMTAwJVwiLFxuICAgICAgICAgIGhlaWdodDogXCJhdXRvXCIsXG4gICAgICAgICAgdXNlclNlbGVjdDogXCJub25lXCIsXG4gICAgICAgICAgdG91Y2hBY3Rpb246IFwibWFuaXB1bGF0aW9uXCIsXG4gICAgICAgIH19XG4gICAgICA+XG4gICAgICAgIDx0aXRsZT5PZG9udG9ncmFtPC90aXRsZT5cbiAgICAgICAge3Zpc2libGVRdWFkcmFudHMubWFwKCh7IG5hbWUsIHRyYW5zZm9ybSwgbGFiZWwsIHBvc2l0aW9uIH0sIGluZGV4KSA9PiAoXG4gICAgICAgICAgPGdcbiAgICAgICAgICAgIHJvbGU9XCJncm91cFwiXG4gICAgICAgICAgICBhcmlhLWxhYmVsPXtsYWJlbH1cbiAgICAgICAgICAgIGtleT17bmFtZX1cbiAgICAgICAgICAgIG5hbWU9e25hbWV9XG4gICAgICAgICAgICB0cmFuc2Zvcm09e3RyYW5zZm9ybX1cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7cmVuZGVyVGVldGgoYHRlZXRoLSR7aW5kZXggKyAxfWAsIG1heFRlZXRoKX1cbiAgICAgICAgICA8L2c+XG4gICAgICAgICkpfVxuICAgICAgPC9zdmc+XG4gICAgICB7c2hvd1Rvb2x0aXAgJiYgKFxuICAgICAgICA8T2RvbnRvZ3JhbVRvb2x0aXBcbiAgICAgICAgICBhY3RpdmU9e3Rvb2x0aXBEYXRhLmFjdGl2ZX1cbiAgICAgICAgICBwb3NpdGlvbj17dG9vbHRpcERhdGEucG9zaXRpb259XG4gICAgICAgICAgcGF5bG9hZD17dG9vbHRpcERhdGEucGF5bG9hZH1cbiAgICAgICAgICBjb250ZW50PXt0b29sdGlwPy5jb250ZW50fVxuICAgICAgICAvPlxuICAgICAgKX1cbiAgICA8L2Rpdj5cbiAgKTtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBtYXBUb0Nzc1ZhcnMoY29sb3JzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmcgfCB1bmRlZmluZWQ+KSB7XG4gIGNvbnN0IGNzc1ZhcnM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7fTtcbiAgaWYgKGNvbG9ycy5kYXJrQmx1ZSkge1xuICAgIGNzc1ZhcnNbXCItLWRhcmstYmx1ZVwiXSA9IGNvbG9ycy5kYXJrQmx1ZTtcbiAgfVxuICBpZiAoY29sb3JzLmJhc2VCbHVlKSB7XG4gICAgY3NzVmFyc1tcIi0tYmFzZS1ibHVlXCJdID0gY29sb3JzLmJhc2VCbHVlO1xuICB9XG4gIGlmIChjb2xvcnMubGlnaHRCbHVlKSB7XG4gICAgY3NzVmFyc1tcIi0tbGlnaHQtYmx1ZVwiXSA9IGNvbG9ycy5saWdodEJsdWU7XG4gIH1cbiAgcmV0dXJuIGNzc1ZhcnM7XG59XG5cbmV4cG9ydCBkZWZhdWx0IE9kb250b2dyYW07XG4iLCAiaW1wb3J0IHsgdXNlRWZmZWN0LCB1c2VSZWYsIHVzZVN0YXRlIH0gZnJvbSBcInJlYWN0XCI7XG5cbmV4cG9ydCB0eXBlIFRvb2x0aXBDb250ZW50UmVuZGVyZXIgPSAocGF5bG9hZD86IGFueSkgPT4gUmVhY3QuUmVhY3ROb2RlO1xuXG5leHBvcnQgaW50ZXJmYWNlIE9kb250b2dyYW1Ub29sdGlwUHJvcHMge1xuICBhY3RpdmU6IGJvb2xlYW47XG4gIHBheWxvYWQ/OiBhbnk7XG4gIHBvc2l0aW9uPzogeyB4OiBudW1iZXI7IHk6IG51bWJlciB9O1xuICBjb250ZW50PzogUmVhY3QuUmVhY3ROb2RlIHwgVG9vbHRpcENvbnRlbnRSZW5kZXJlcjtcbn1cblxuY29uc3QgZ2V0Q29udGVudCA9IChcbiAgY29udGVudDogUmVhY3QuUmVhY3ROb2RlIHwgVG9vbHRpcENvbnRlbnRSZW5kZXJlcixcbiAgcGF5bG9hZD86IGFueVxuKSA9PiB7XG4gIHJldHVybiB0eXBlb2YgY29udGVudCA9PT0gXCJmdW5jdGlvblwiID8gY29udGVudChwYXlsb2FkKSA6IGNvbnRlbnQ7XG59O1xuXG5leHBvcnQgY29uc3QgT2RvbnRvZ3JhbVRvb2x0aXA6IFJlYWN0LkZDPE9kb250b2dyYW1Ub29sdGlwUHJvcHM+ID0gKHtcbiAgYWN0aXZlLFxuICBwYXlsb2FkLFxuICBwb3NpdGlvbixcbiAgY29udGVudCxcbn0pID0+IHtcbiAgY29uc3QgcmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKTtcbiAgY29uc3QgW2Nvb3Jkcywgc2V0Q29vcmRzXSA9IHVzZVN0YXRlKHsgbGVmdDogMCwgdG9wOiAwIH0pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFyZWYuY3VycmVudCB8fCAhcG9zaXRpb24pIHJldHVybjtcblxuICAgIGNvbnN0IHRvb2x0aXBCb3ggPSByZWYuY3VycmVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICBjb25zdCB7IHgsIHkgfSA9IHBvc2l0aW9uO1xuXG4gICAgLy8gcGxhY2UgdG9vbHRpcCBhYm92ZSB0aGUgaG92ZXIgcG9pbnRcbiAgICBjb25zdCBsZWZ0ID0geCAtIHRvb2x0aXBCb3gud2lkdGggLyAyO1xuICAgIGNvbnN0IHRvcCA9IHkgLSB0b29sdGlwQm94LmhlaWdodCAtIDEyOyAvLyBzcGFjZSBmb3IgYXJyb3dcblxuICAgIHNldENvb3Jkcyh7IGxlZnQsIHRvcCB9KTtcbiAgfSwgW3Bvc2l0aW9uLCBjb250ZW50LCBwYXlsb2FkXSk7XG5cbiAgaWYgKCEoYWN0aXZlICYmIHBheWxvYWQpKSByZXR1cm4gbnVsbDtcblxuICByZXR1cm4gKFxuICAgIDxkaXZcbiAgICAgIHJlZj17cmVmfVxuICAgICAgY2xhc3NOYW1lPVwib2RvbnRvZ3JhbS10b29sdGlwXCJcbiAgICAgIHN0eWxlPXt7XG4gICAgICAgIHBvc2l0aW9uOiBcImZpeGVkXCIsXG4gICAgICAgIHBvaW50ZXJFdmVudHM6IFwibm9uZVwiLFxuICAgICAgICBiYWNrZ3JvdW5kOiBcInJnYmEoMCwwLDAsMC44NSlcIixcbiAgICAgICAgY29sb3I6IFwiI2ZmZlwiLFxuICAgICAgICBwYWRkaW5nOiBcIjZweCAxMHB4XCIsXG4gICAgICAgIGJvcmRlclJhZGl1czogXCI2cHhcIixcbiAgICAgICAgZm9udFNpemU6IFwiMTJweFwiLFxuICAgICAgICBsaW5lSGVpZ2h0OiAxLjMsXG4gICAgICAgIHdoaXRlU3BhY2U6IFwibm93cmFwXCIsXG4gICAgICAgIHpJbmRleDogMTAwMCxcblxuICAgICAgICBsZWZ0OiBjb29yZHMubGVmdCxcbiAgICAgICAgdG9wOiBjb29yZHMudG9wLFxuXG4gICAgICAgIG9wYWNpdHk6IGFjdGl2ZSA/IDEgOiAwLFxuICAgICAgICB0cmFuc2l0aW9uOiBcIm9wYWNpdHkgMC4xNXMgZWFzZVwiLFxuICAgICAgfX1cbiAgICA+XG4gICAgICB7LyogdG9vbHRpcCBjb250ZW50ICovfVxuICAgICAge2dldENvbnRlbnQoY29udGVudCwgcGF5bG9hZCkgPz8gKFxuICAgICAgICA8PlxuICAgICAgICAgIDxkaXY+VG9vdGg6IHtwYXlsb2FkPy5ub3RhdGlvbnM/LmZkaX08L2Rpdj5cbiAgICAgICAgICA8ZGl2PlR5cGU6IHtwYXlsb2FkPy50eXBlfTwvZGl2PlxuICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICBVbml2ZXJzYWw6IHtwYXlsb2FkPy5ub3RhdGlvbnM/LnVuaXZlcnNhbH0sIFBhbG1lcjp7XCIgXCJ9XG4gICAgICAgICAgICB7cGF5bG9hZD8ubm90YXRpb25zPy5wYWxtZXJ9XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvPlxuICAgICAgKX1cblxuICAgICAgey8qIEFSUk9XICovfVxuICAgICAgPGRpdlxuICAgICAgICBjbGFzc05hbWU9XCJvZG9udG9ncmFtLXRvb2x0aXAtYXJyb3dcIlxuICAgICAgICBzdHlsZT17e1xuICAgICAgICAgIHBvc2l0aW9uOiBcImFic29sdXRlXCIsXG4gICAgICAgICAgYm90dG9tOiBcIi02cHhcIixcbiAgICAgICAgICBsZWZ0OiBcIjUwJVwiLFxuICAgICAgICAgIHRyYW5zZm9ybTogXCJ0cmFuc2xhdGVYKC01MCUpXCIsXG4gICAgICAgICAgd2lkdGg6IDAsXG4gICAgICAgICAgaGVpZ2h0OiAwLFxuICAgICAgICAgIGJvcmRlckxlZnQ6IFwiNnB4IHNvbGlkIHRyYW5zcGFyZW50XCIsXG4gICAgICAgICAgYm9yZGVyUmlnaHQ6IFwiNnB4IHNvbGlkIHRyYW5zcGFyZW50XCIsXG4gICAgICAgICAgYm9yZGVyVG9wOiBcIjZweCBzb2xpZCByZ2JhKDAsIDAsIDAsIDAuODUpXCIsIC8vIGFycm93IGNvbG9yXG4gICAgICAgIH19XG4gICAgICAvPlxuICAgIDwvZGl2PlxuICApO1xufTtcbiIsICJleHBvcnQgY29uc3QgdGVldGhQYXRocyA9IFtcblx0e1xuXHRcdG5hbWU6IFwiMVwiLFxuXHRcdHR5cGU6IFwiQ2VudHJhbCBJbmNpc29yXCIsXG5cdFx0b3V0bGluZVBhdGg6XG5cdFx0XHRcIk0xNzMuOTUxIDEuNjk4Yy0yLjE5OC4xNi01LjMwMi44NjItNS4zMDIuODYycy01LjUzMSAxLjAyNS03Ljc4MSAyLjI3Yy0yLjQwMyAxLjMzMy01LjU1MyAzLjI5OS02LjAxMyA1LjI1OC0uNDMyIDEuODQtLjc4IDQuNzM0LS40OTEgNi44MzJsLjAyNy4yYy4zNDggMi41MjcuODY1IDYuMjggMS4yMzkgMTAuMzE2LjE4NiAyLS4xMDEgMy4yMS43NTEgNi4xNi44OTUgMy4xIDEuMzk1IDQuNTczIDIuMDEzIDUuNjg3LjY0NiAxLjE2NCAxLjQ5MyAyLjA4NyAyLjAzIDMuMjguODY2IDEuOTI0IDIuMzkzIDQuMjkgMy44NyA2LjFhNDguODA1IDQ4LjgwNSAwIDAgMCAyLjM2IDIuNjYzYzEuMDE2IDEuMDc4IDIuODE5IDMuMTEgMy44OTggNC4zMzEgMS41MjYgMS43MjcgMy4wNzYgMy4yNDggNC40MjMgMy43NDIgMS4yMTcuNDQ2IDIuNzA5LjY0MiAzLjc5My45MzYgMS4zNjkuMzcyIDIuNDk0LjYzOCA0LjU5NyAwIDEuNTQ1LS40NjggMi43MjUtLjYyMSA0LjM3Mi0yLjQyNCAyLjA2NC0yLjI1OCAyLjg0Ni0zLjUxNyAzLjUxMi00Ljc0NiAxLjA2NS0xLjk2NCAyLjUyNC00LjY0OCAzLjU0MS02LjQyMi42MTEtMS4wNjggMi4yMjEtMy4wODkgNC4wODYtOC44NDUgMS41NC00Ljc1MiAyLjM2Ny03Ljc2IDIuNzMxLTguOTk0LjQxNS0xLjQwOCAxLjA3OS0zLjU4MyAxLjM1NS02LjE5Ni40NC00LjE3NiAxLjExNC03LjQ4MiAxLjA2Mi0xMS4wMjYtLjA0NC0zLjA0Ni4xMDQtNS4wNC0xLjA2NS02LjMwNi0uOTUtMS4wMjktMS45ODgtMi4wMDEtMy4zMDYtMi41MzQtMS45NTktLjc5LTMuNzc1LTEuMzU4LTUuMjk4LTEuNTkyLTEuMzUxLS4yMDctNy4wNS0uMzUtMTEuMjE5LS4wNTctMS41NjcuMTEtMy42MS4wOTctOS4xODUuNTA1WlwiLFxuXHRcdHNoYWRvd1BhdGg6XG5cdFx0XHRcIk0xODguMjY5IDUwLjIxNWMxOS4yNzUtNDEuODY3IDEwLjc2Ni00My42MTIgNC45MzctNDQuNjg0LTUuODI5LTEuMDczLTI4LjQ1NSAyLjUzLTI5LjcyIDIuODE3LS40NDIuMjE4LTguOTExIDAtNC43NjcgMTkuNTQgMy40MTYgMTYuMTA1IDE2LjE5MyAyNi41OTYgMTcuMjQ0IDI3LjI2NSAzLjE0OCAyLjAwMyA4LjgzNyAyLjU5NSAxMi4zMDYtNC45MzhaXCIsXG5cdFx0bGluZUhpZ2hsaWdodFBhdGg6XG5cdFx0XHRcIk0xNjAuNDcyIDE0LjcyN2MuMzkyLS40MDIgNC4zMTctMy4zMDkgOC45NDEtNS40NyAzLjA5Ny0xLjQ0OCA3Ljc3My0xLjYyOSAxMS4yMDctMS43NDkgOC43NTktLjM2NSAxMC4wMDQuOTEgMTIuNjM3IDEuNDk1LjU2Mi4xMzkuOTA5LjI3NiAxLjc3MS41OTVcIixcblx0fSxcblxuXHR7XG5cdFx0bmFtZTogXCIyXCIsXG5cdFx0dHlwZTogXCJMYXRlcmFsIEluY2lzb3JcIixcblxuXHRcdG91dGxpbmVQYXRoOlxuXHRcdFx0XCJNMTM1LjAxNiA2MC40MWMzLjQ0MyAxLjM1NSA3LjgzNCAyLjczIDkuNjAxIDIuMzQ2IDQuMTg1LS45MSA3LjA0NC00LjAxNyA4LjEyMy04LjE1MiAyLjA2OS03LjkyNyAyLjI0OS0xNi4yODggMS45OTUtMjQuNDM2LS4xMTMtMy41OTYuNzItMTYuODEtNC4xODQtMTguNDQ0LTguMTM1LTYuMTQtMzIuMDg4LjQ5NC0zNi45NzkgOC4wNTUtNS4wMTMgNy43NTEuODc4IDIxLjEzMSA1LjU2IDI3LjcyOCAzLjg2MiA1LjQ0IDkuNzE0IDEwLjQ3NCAxNS44ODQgMTIuOTAzWlwiLFxuXHRcdHNoYWRvd1BhdGg6XG5cdFx0XHRcIk0xMzQuNjUgNTUuMzg2YzIuNzMyIDEuMDc2IDYuMjE3IDIuMTY3IDcuNjIgMS44NjIgMy4zMjEtLjcyMyA1LjU5LTMuMTg4IDYuNDQ2LTYuNDcgMS42NDItNi4yOSAxLjc4Ni0xMi45MjcgMS41ODMtMTkuMzkzLS4wODktMi44NTQuNTcyLTEzLjM0Mi0zLjMyLTE0LjYzOC02LjQ1Ni00Ljg3My0yNS40NjYuMzkyLTI5LjM0OCA2LjM5My0zLjk3OSA2LjE1Mi42OTYgMTYuNzcgNC40MTMgMjIuMDA2IDMuMDY0IDQuMzE3IDcuNzA5IDguMzEzIDEyLjYwNiAxMC4yNFpcIixcblx0XHRsaW5lSGlnaGxpZ2h0UGF0aDpcblx0XHRcdFwiTTEyMS41NjkgMjguOTUyYy41NTEtLjk4NCA2LjM1NC04LjIxNCAxMi44NjYtOS4wNDUgMy4yMzgtLjQxMyAxMC42MTktLjE3IDExLjgzOCAwXCIsXG5cdH0sXG5cdHtcblx0XHRuYW1lOiBcIjNcIixcblx0XHR0eXBlOiBcIkNhbmluZVwiLFxuXG5cdFx0b3V0bGluZVBhdGg6XG5cdFx0XHRcIk03Ny42MyA2NC4yMzZjMS42OTIgMS40MDEgMTUuNTE2IDE0LjU4MyAzNC42OTggMTYuOTAzIDUuNTY5LjY3NCAxNS4wNTgtNy4xODQgMTUuNzg5LTEyLjg5IDEuMzM1LTEwLjQyMy0xMi40NDQtMjkuMjA1LTIxLjk2NS0zMy43MDMtNC41NDItMi4xNDUtMjUuODkyLTQuMDM5LTI4LjUyMyAyLjkzOS0yLjQ3MSA2LjU1Ny02LjU5NiAyMS4yOSAwIDI2Ljc1MVpcIixcblx0XHRzaGFkb3dQYXRoOlxuXHRcdFx0XCJNMTIzLjI4NSA2Ni4yNjdjMS4wNzItOC4zNjgtMTAuMjM0LTIzLjk0LTE3Ljk5LTI3LjYwMy0zLjcyLTEuNzU3LTIxLjIwNi0zLjMwOC0yMy4zNiAyLjQwNy0xLjc1NyA0LjY2LTQuMDkgMTMuMjg0LTIuMzA2IDE4LjE3IDQuMTUgMTEuMzYgNDAuODk3IDI4LjU3MyA0My42NTYgNy4wMjZaXCIsXG5cdFx0bGluZUhpZ2hsaWdodFBhdGg6IFtcblx0XHRcdFwiTTgyLjg0IDYwLjA0M2MtLjAxLS44NTUtLjE5My00LjYzLjI1Ni04LjEyLjY2Ny01LjE4NS43MDMtNS44NjYgMS4yOS04LjEwNi40MzctMS42NjYgMi4wODMtNC45MSAxNy40ODctMy43NDhcIixcblx0XHRcdFwiTTEwMS40MzggNjguNDljLjM3Ni0uMDQ1IDIuMjg0LTUuMTEyIDkuNDk4LTYuMzQ0XCIsXG5cdFx0XSxcblx0fSxcblx0e1xuXHRcdG5hbWU6IFwiNFwiLFxuXHRcdHR5cGU6IFwiRmlyc3QgUHJlbW9sYXJcIixcblxuXHRcdG91dGxpbmVQYXRoOlxuXHRcdFx0XCJNOTMuNjg0IDEwOC43NDhjLTcuNDk4IDMuMzk3LTM1LjM2OC03LjM5Ny0zNS41OTYtNy40NDEtMS40MjktLjg0Mi0xMi4yMTUtMi44NTQtOS4wNjgtMjkuNDE0LjE0Ny0xLjIzOCAxLjM1My0yLjA1IDIuMjE4LTIuNTU2Ljk1Ni0uNTU5IDMuMTU3LTEuNTk1IDcuNTg3LTIuNzk0IDIuNzA3LS43MzQgMTMuODU2LTMuNTQgMTguNjc0LS45MiAyLjIxNiAxLjIwNiA2LjM2MyA0LjExNyAxMC40NzMgNy4wMzYgNC4xMSAyLjkxOSAxMC45NTggOC43MTUgMTMuMzI3IDExLjMzOCAyLjI5MSAyLjUzNyAxMC4zMjQgMTMuNzUtNy42MTUgMjQuNzUxWlwiLFxuXHRcdHNoYWRvd1BhdGg6XG5cdFx0XHRcIk05MS40OTUgMTA1LjkzMWMtNi41MjggMi45NTgtMzAuNzkzLTYuNDQtMzAuOTkyLTYuNDc4LTEuMjQzLS43MzQtMTAuNjM0LTIuNDg2LTcuODk1LTI1LjYxLjEyOC0xLjA3OCAxLjE3OC0xLjc4NSAxLjkzMi0yLjIyNS44MzItLjQ4NyAyLjc0OC0xLjM5IDYuNjA1LTIuNDMzIDIuMzU3LS42MzkgMTIuMDY0LTMuMDgyIDE2LjI1OC0uOCAxLjkzIDEuMDUgNS41NCAzLjU4NCA5LjEyIDYuMTI1IDMuNTc4IDIuNTQxIDkuNTQgNy41ODggMTEuNjAzIDkuODcyIDEuOTk0IDIuMjA4IDguOTg3IDExLjk3MS02LjYzIDIxLjU0OVpcIixcblx0XHRsaW5lSGlnaGxpZ2h0UGF0aDogW1xuXHRcdFx0XCJNNTUuMjM0IDkyLjQxNGMuMDIyLS4yNDIuMDYtMS40NjkuODc1LTcuNzkuNDYtMy41NzMgMS44MTMtNS40OSAzLjEzNC03LjAxIDEuMTgtMS4zNTkgMy41MjQtMy4xOTMgNS44OC00LjM2NSAxLjQ2LS42MzIgMy4wMjktMS4xMjYgNi4wNDQtMS43NzYuODI2LS4xMzggMS40NzctLjE3NSAyLjUyNi0uMzk1XCIsXG5cdFx0XHRcIk04Ny4wMiAxMDEuMzg3YzQuMTgzLS43OTIgOC43NDctOS43NzQgOC43NDctOS43NzRcIixcblx0XHRdLFxuXHR9LFxuXHR7XG5cdFx0bmFtZTogXCI1XCIsXG5cdFx0dHlwZTogXCJTZWNvbmQgUHJlbW9sYXJcIixcblx0XHRvdXRsaW5lUGF0aDpcblx0XHRcdFwiTTMzLjM5NiAxMjcuNjUyYy0xLjA4OC0yLjcxMy00LjQ4Ni0xMS44NTItMy45NjItMTUuMjQ2LjQ3Ny0zLjA4NSAxNC40Ny0xMi4wMDggMjMuNTk1LTEyLjAwOCAyLjE3OCAwIDI1LjE1NyA2LjY2NSAzNS4wNzMgMTcuOTA4IDQuNTUxIDkuMzI0LTEuNjI0IDIzLjMzOS0xNi4yMiAyMy4zMzktOC4xOTMgMC0yMy41NjMtMS44OTctMjUuNDUzLTIuMjE1LTEuODk2LS4zMTktNC4zMTctMS4xMjgtNi41OTYtMi4zMjEtMS4yODktLjY3NS0yLTEuMDM1LTIuNDc4LTEuNjQ3LS42NTUtLjg0LTIuMTAxLTMuMTc4LTMuOTYtNy44MVpcIixcblx0XHRzaGFkb3dQYXRoOlxuXHRcdFx0XCJNMzYuODM3IDEyNi43NzhjLS45NDUtMi4zNTYtMy44OTUtMTAuMjg5LTMuNDQtMTMuMjM1LjQxNC0yLjY3OSAxMi41NjEtMTAuNDI0IDIwLjQ4My0xMC40MjQgMS44OSAwIDIxLjgzNyA1Ljc4NSAzMC40NDUgMTUuNTQ1IDMuOTUxIDguMDk0LTEuNDEgMjAuMjYtMTQuMDggMjAuMjYtNy4xMTIgMC0yMC40NTQtMS42NDctMjIuMDk1LTEuOTIyLTEuNjQ1LS4yNzctMy43NDctLjk4LTUuNzI1LTIuMDE1LTEuMTItLjU4Ni0xLjczNy0uODk5LTIuMTUxLTEuNDMtLjU3LS43MjktMS44MjUtMi43NTktMy40MzctNi43NzlaXCIsXG5cdFx0bGluZUhpZ2hsaWdodFBhdGg6IFtcblx0XHRcdFwiTTQwLjggMTMxLjIyMWMtNC4wMDMtMjAuMjc4IDguNDQyLTIwLjk3NCAxMy43NzktMjMuNjkyXCIsXG5cdFx0XHRcIk03NC4wNTYgMTM0LjcyOWM2LjM1LTQuMjY0IDYuMzQzLTEwLjUwMyA2LjQ4OS0xMS40NDhcIixcblx0XHRdLFxuXHR9LFxuXHR7XG5cdFx0bmFtZTogXCI2XCIsXG5cdFx0dHlwZTogXCJGaXJzdCBNb2xhclwiLFxuXHRcdG91dGxpbmVQYXRoOlxuXHRcdFx0XCJNMzUuNTM5IDIwMy4zMjNjLTMuMzYzLjE5Ni0zMi43ODgtNC4wMi0yOC40OTUtNDIuNDY1IDMuNjMxLTIwLjQwOCAyNi4yMS0yMy4zNjQgMjkuNTU3LTIyLjkxMiA5LjAxOS0uNzQ1IDI1LjcyNyA2Ljc0MyAyOS4yNTUgOS40MDMgNC41NDYgMy40MjcgNy4zODQgNS42ODEgOC42MDYgNy4wOTIgMi40MzYgMi44MTQgNC40OTkgNS4xMSA0LjcgNi4zMTMuMjg0IDEuNzAzIDEuMzE3IDQuNzItMi4yNDggOS42ODctMi40NTMgMy40MTgtMi45NTcgNi42NjMtMi44NTYgMTAuMjIzLjExOCA0LjE4NS4zNyA5Ljc1NC0uNTI0IDExLjYzLS41OTIgMS4yNDQtLjk4NCAyLjYyNy0yLjM3NSAzLjM5Mi0yLjAxNSAxLjEwOC00LjYxIDIuMzE3LTExLjkzIDMuNzQ4LTMuNjIzLjcwOC05LjMwOSAxLjgzLTEyLjQwMSAyLjI5Mi01LjE5Ljc3Ny04LjQyMyAxLjQzLTExLjI4OSAxLjU5N1pcIixcblx0XHRzaGFkb3dQYXRoOlxuXHRcdFx0XCJNMzYuNTE1IDE5OS4wODVjLTIuOTI3LjE3LTI4LjU0LTMuNDk5LTI0LjgwMy0zNi45NjMgMy4xNi0xNy43NjQgMjIuODE0LTIwLjMzNyAyNS43MjctMTkuOTQ0IDEwLjgyLS44OTMgMjUuNzA5IDUuOTg5IDMyLjk1NSAxNC4zNTggMi4xMiAyLjQ1IDMuOTE3IDQuNDQ4IDQuMDkxIDUuNDk1LjI0OCAxLjQ4Mi41MTMgNC4yNjgtMi41OSA4LjU5MS0yLjEzNSAyLjk3NS0xLjk0IDUuNjQxLTEuODUyIDguNzQuMDk2IDMuNDE3IDEuNDAyIDEwLjkxNy0yLjUyMyAxMy4wNzYtMS43NTQuOTY0LTQuMDEzIDIuMDE2LTEwLjM4NCAzLjI2MS02Ljc2MiAxLjMyMi0xMy43MjggMi45ODQtMjAuNjIxIDMuMzg2WlwiLFxuXHRcdGxpbmVIaWdobGlnaHRQYXRoOiBbXG5cdFx0XHRcIk0zNy4xMzIgMTkyLjE0N2MxLjI4OC0uMzcyIDMuMzg1LTIuMDcxIDUuMTgzLTUuNDM4bTkuMDA4LTM1Ljk4YzEuMTg4IDEuMjI0IDIuMTE0IDYuMzg1LjE1IDExLjM2M20wIDBjLTEuNTM3IDMuODk5LTQuOTQ0IDkuMzc4LTExLjE5NSA5LjM3OCA2Ljg3Ny4zMjEgNC42NTEgMTAuMzQzIDIuMDM3IDE1LjIzOW05LjE1OS0yNC42MTdjMS40Ny0yLjU4OSA0Ljk2Ni03LjU3MiA4LjA2OC04LjIxN20tMTcuMjI3IDMyLjgzNGMtLjE4NiAyLjM0OC4wNDQgNy4zNTEgMi40NTggOC41ODRcIixcblx0XHRdLFxuXHR9LFxuXHR7XG5cdFx0bmFtZTogXCI3XCIsXG5cdFx0dHlwZTogXCJTZWNvbmQgTW9sYXJcIixcblxuXHRcdG91dGxpbmVQYXRoOlxuXHRcdFx0XCJNNC45NjkgMjQ4LjEzMmMtMS4xODgtMi43NC0xNC43MDgtMjcuMTUyIDEyLjMxOS00Mi4xMzkgMS44MzYtMS4wMTggMjQuNTA4LTcuNzExIDQ1LjI4IDEwLjg3NCAyLjI3NCAyLjAzNSA0LjQ1NSAzLjU3OSA1LjQwMyA1LjEwMiAxLjQxNCAyLjI3MSAyLjEyOCAzLjQzNSAxLjY4NyA1LjYwNi0uMzg3IDEuOTAxLTEuNTQgMy42NDItMy43NyA3LjcxMS0xLjEyNyAyLjA1Ni0xLjg1NCAzLjQyNy0xLjM2OSA3LjgyNC4xNzUgMS41OS42MjcgMy45MzUuMDQ4IDYuNjAzLS40NjYgMi4xNDctLjk0MSAzLjU2Ny0yLjU3OCA1LjAwNi0yLjUzIDIuMjI0LTUuMzA3IDMuNjQ1LTkuMDc2IDQuMzUtMS4wOTEuMjA0LTMuMTMzLjgxMS03LjUyNSAxLjcwMi0yLjc3Ni41NjMtNi42MTkgMS4yMzQtMTAuMDkgMS42NTQtMy40Ny40Mi02LjQ3OC42MzgtOC42MTIuNjM2LTMuMzUzLS4wMDItNi43MzQuMDMxLTkuNDY1LTEuNDhsLS4wMTgtLjAxYy0xLjY1NC0uOTE1LTQuMDc2LTIuMjU1LTYuMjQ1LTQuNzMyLTIuMjU4LTIuNTc5LTQuNTkxLTUuNDgyLTUuOTg5LTguNzA3WlwiLFxuXHRcdHNoYWRvd1BhdGg6XG5cdFx0XHRcIk04Ljc5OSAyNDYuMjhjLTEuMTI4LTIuMzUyLTEyLjg0My0yMy43MDkgMTAuNzU2LTM2Ljc5NiAxLjYwNC0uODg5IDIxLjQtNi43MzIgMzkuNTM4IDkuNDk2IDEuOTg2IDEuNzc3IDMuODkgMy4xMjUgNC43MTcgNC40NTQgMS4yMzUgMS45ODMgMS44NTkgMyAxLjQ3MyA0Ljg5NS0uMzM3IDEuNjYtMS4zNDMgMy4xOC0zLjI5MSA2LjczNC0uOTg0IDEuNzk1LTEuNjE5IDIuOTkyLTEuMTk2IDYuODMxLjE1NCAxLjM4OS41NDggMy40MzYuMDQyIDUuNzY2LTIuODcyIDEzLjIzMS0zMS4yMTMgMTEuNjU3LTMzLjA3NiAxMS42NTZoLS4wMDdjLTIuOTM2LS4wMDMtMTIuNzE0LS4wMS0xOC45NTYtMTMuMDM2WlwiLFxuXHRcdGxpbmVIaWdobGlnaHRQYXRoOiBbXG5cdFx0XHRcIk0zMi4xNCAyNTUuMDkxYy43NDgtLjMwMyAyLjI4LTIuMzc4IDMuMTAzLTUuNzIxbS0xLjk5LTM1LjQ4MWMzLjAwOSAxLjM2MyA0LjAxNSA0Ljg4OCAzLjczNiA4LjcxNm0wIDBjLS40MjQgNS44MzUtMy44MzIgMTIuMzc3LTcuNjgzIDEzLjA0OSA2Ljk1NCAxLjE4IDcuMjQ0IDguNDE0IDUuOTM3IDEzLjcxNm0xLjc0Ni0yNi43NjVjLjMyNy0yLjI0IDEuODItNi45NTggNS4xOS03LjkxbS02LjkzNiAzNC42NzVjLjY1IDIuMTcyIDIuNTUgNi41MDcgNC45NjcgNi40NzFcIixcblx0XHRdLFxuXHR9LFxuXHR7XG5cdFx0bmFtZTogXCI4XCIsXG5cdFx0dHlwZTogXCJUaGlyZCBNb2xhclwiLFxuXG5cdFx0b3V0bGluZVBhdGg6XG5cdFx0XHRcIk0uODk1IDI5MS4zMzFjLS4zNjItMS4yMTgtLjExNi0zLjQxMS0uMTY0LTMuODkyLS4wMzUtLjM0LjEyNC0zLjQzOC43MjctNS41NTggMS4wNC0yLjgyIDEuODA4LTQuNzQgMi41NzMtNS43NTIgMS40MTMtMS44NzIgMy45MTMtNC43NjkgNy4xMzUtNy4yIDIuMjg4LTEuNzI2IDUuMDAzLTMuMTg3IDguMTMzLTQuMzM5IDIuMjQ5LS44MjggNC4zNjItMS41MDIgNy43MzItMS42OTMgMi4xNzUtLjEyMyA1LjI1LS4xNTUgOC43ODIuMTA4czcuNDAzLjgwNCAxMC4zNTMgMS4zOTcgNC45MiAxLjIxOCA2LjY0MSAxLjg5M2MxLjcyMi42NzUgMy4xNDggMS4zODkgMy45NzIgMS43NjggMS41MS42OTYgMi45IDEuMjA5IDMuODI0IDIuMTQgMS44NTcgMS44NzIgMi42MTcgMy4zMzQgMi45MTIgNC44MDcuMjU0IDEuMjcuMjUyIDMuMjE2LS4yMjQgNC41MzEtLjY3MiAxLjg1OS0xLjQ2OCAyLjg1Ni0xLjQ2OCA1LjcgMCAzLjg1NyAxLjcxMyA1Ljk1IDEuOTE1IDguMzU2LjMzNyA0LjAwOC4zMTcgNi4xNjgtLjQyIDcuNDg1LS41OTEgMS4wNTctMS41MzIgMi4zODMtNS41NDEgNS4wODgtMS4xNzMuNzkxLTIuNjg0IDEuNjM0LTYuNjQzIDMuNDI0LTIuNzYyIDEuMjQ4LTYuOTc3IDMuMTA4LTkuMjA1IDQuMTA3LTIuNDczIDEuMTA5LTQuNjY3IDIuMjI2LTguMjM0IDMuMDUzLTIuNTQuNTg5LTUuNjMxLjc4NC05LjAxMi4xODYtMi4zMDctLjQwOC01LjQ0OS0xLjE4My05LjEwNy0zLjgyNy0zLjkyOC0yLjgzOS02LjUzLTQuODk3LTcuNDk3LTYuMDQxLS44NjYtMS4wMjYtMS43MTQtMi4wODItMi40MTItMy41NTUtLjkwNC0xLjkwNS0yLjI3Mi0zLjY0My0zLTUuOTE2LS44NDYtMi42MzMtMS4xNjctNC4yMzMtMS43NzItNi4yN1pcIixcblx0XHRzaGFkb3dQYXRoOlxuXHRcdFx0XCJNNC43MzIgMjkxLjE3NWMtLjMxNy0xLjA3LS4xMDEtMi45OTQtLjE0NC0zLjQxNi0uMDMtLjI5OS4xMS0zLjAxOS42MzgtNC44OC45MTQtMi40NzYgMS41ODgtNC4xNjEgMi4yNi01LjA1IDEuMjQtMS42NDMgMy40MzQtNC4xODcgNi4yNjMtNi4zMjEgMi4wMDktMS41MTUgNC4zOTMtMi43OTcgNy4xNC0zLjgwOSAxLjk3NC0uNzI3IDMuODMtMS4zMTggNi43ODgtMS40ODYgMS45MS0uMTA4IDQuNjEtLjEzNiA3LjcxLjA5NSAzLjEuMjMxIDYuNDk4LjcwNiA5LjA4OCAxLjIyNiAyLjU5LjUyMSA0LjMxOSAxLjA3IDUuODMgMS42NjIgMS41MTIuNTkyIDIuNzY0IDEuMjIgMy40ODcgMS41NTMgMS4zMjYuNjEgMi41NDcgMS4wNjEgMy4zNTcgMS44NzggMS42MyAxLjY0MyAyLjI5OCAyLjkyNyAyLjU1NyA0LjIyLjIyMyAxLjExNS4yMjEgMi44MjQtLjE5NiAzLjk3OC0uNTkgMS42MzItMS4yOSAyLjUwNy0xLjI5IDUuMDA0IDAgMy4zODUgMS41MDQgNS4yMjMgMS42ODIgNy4zMzUuMjk2IDMuNTE5LjI3OCA1LjQxNi0uMzY5IDYuNTcxLS41Mi45MjgtMS4zNDUgMi4wOTMtNC44NjUgNC40NjctMS4wMy42OTUtMi4zNTUgMS40MzUtNS44MzEgMy4wMDYtMi40MjUgMS4wOTYtNi4xMjYgMi43MjgtOC4wODIgMy42MDYtMi4xNy45NzMtNC4wOTYgMS45NTQtNy4yMjggMi42OC0yLjIyOS41MTctNC45NDQuNjg4LTcuOTEyLjE2My0yLjAyNC0uMzU4LTQuNzgzLTEuMDM4LTcuOTk1LTMuMzU5LTMuNDQ4LTIuNDkzLTUuNzMyLTQuMjk5LTYuNTgtNS4zMDQtLjc2MS0uOTAxLTEuNTA1LTEuODI3LTIuMTE5LTMuMTIxLS43OTMtMS42NzItMS45OTQtMy4xOTgtMi42MzQtNS4xOTMtLjc0Mi0yLjMxMi0xLjAyNC0zLjcxNy0xLjU1NS01LjUwNVpcIixcblx0XHRsaW5lSGlnaGxpZ2h0UGF0aDogW1xuXHRcdFx0XCJNMzEuNzMyIDMwOS41MTFjMS40NjItLjg5NyAyLjU4NS0zLjY3MiAyLjkzLTYuNzI2bS0yLjkzLTI5LjQ1M2MyLjExNCAxLjA5MiAzLjQ5IDQuNDQgMy42MSA4LjA2Mm00LjEzMy03LjU4Yy0xLjM1MyAxLjA1OC00LjA3NCA0LjA1Ny00LjEzNCA3LjU4bTAgMGMuMTU1IDQuNjkzLTEuNzk3IDkuODQ2LTYuOTgzIDExLjE1MiA1LjM3OS0uMzU3IDYuODU5IDUuMzA1IDYuMzAzIDEwLjIzOW00LjU1NyA3LjI0Yy0xLjY3OC0uNjcxLTQuOTM4LTMuMDU4LTQuNTU3LTcuMjRcIixcblx0XHRdLFxuXHR9LFxuXTtcblxuIiwgImltcG9ydCB7IFRlZXRoUHJvcHMgfSBmcm9tIFwiLi90eXBlXCI7XG5cbmV4cG9ydCBjb25zdCBUZWV0aCA9ICh7XG4gIG5hbWUsXG4gIG91dGxpbmVQYXRoLFxuICBzaGFkb3dQYXRoLFxuICBsaW5lSGlnaGxpZ2h0UGF0aCxcbiAgc2VsZWN0ZWQsXG4gIG9uQ2xpY2ssXG4gIG9uS2V5RG93bixcbiAgb25Ib3ZlcixcbiAgb25MZWF2ZSxcbiAgY2hpbGRyZW4sXG59OiBUZWV0aFByb3BzKSA9PiAoXG4gIDxnXG4gICAgY2xhc3NOYW1lPXtgJHtuYW1lfSAke3NlbGVjdGVkID8gXCJzZWxlY3RlZFwiIDogXCJcIn1gfVxuICAgIHRhYkluZGV4PXswfVxuICAgIG9uQ2xpY2s9eygpID0+IG9uQ2xpY2s/LihuYW1lKX1cbiAgICBvbktleURvd249eyhlKSA9PiBvbktleURvd24/LihlLCBuYW1lKX1cbiAgICBvbk1vdXNlTW92ZT17KGUpID0+IG9uSG92ZXI/LihuYW1lLCBlKX1cbiAgICBvbk1vdXNlTGVhdmU9e29uTGVhdmV9XG4gICAgcm9sZT1cIm9wdGlvblwiXG4gICAgYXJpYS1zZWxlY3RlZD17c2VsZWN0ZWR9XG4gICAgYXJpYS1sYWJlbD17YFRvb3RoICR7bmFtZX1gfVxuICAgIHN0eWxlPXt7XG4gICAgICBjdXJzb3I6IFwicG9pbnRlclwiLFxuICAgICAgb3V0bGluZTogXCJub25lXCIsXG4gICAgICB0b3VjaEFjdGlvbjogXCJtYW5pcHVsYXRpb25cIixcbiAgICAgIHRyYW5zaXRpb246IFwiYWxsIDAuMnMgZWFzZVwiLFxuICAgIH19XG4gID5cbiAgICB7Y2hpbGRyZW59XG4gICAgPHBhdGhcbiAgICAgIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiXG4gICAgICBzdHJva2VMaW5lY2FwPVwicm91bmRcIlxuICAgICAgc3Ryb2tlTGluZWpvaW49XCJyb3VuZFwiXG4gICAgICBkPXtvdXRsaW5lUGF0aH1cbiAgICAvPlxuICAgIDxwYXRoIGZpbGw9XCJjdXJyZW50Q29sb3JcIiBkPXtzaGFkb3dQYXRofSAvPlxuICAgIHtBcnJheS5pc0FycmF5KGxpbmVIaWdobGlnaHRQYXRoKSA/IChcbiAgICAgIGxpbmVIaWdobGlnaHRQYXRoLm1hcCgoZCkgPT4gKFxuICAgICAgICA8cGF0aFxuICAgICAgICAgIGtleT17YCR7ZH1gfVxuICAgICAgICAgIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiXG4gICAgICAgICAgc3Ryb2tlTGluZWNhcD1cInJvdW5kXCJcbiAgICAgICAgICBzdHJva2VMaW5lam9pbj1cInJvdW5kXCJcbiAgICAgICAgICBkPXtkfVxuICAgICAgICAvPlxuICAgICAgKSlcbiAgICApIDogKFxuICAgICAgPHBhdGhcbiAgICAgICAgc3Ryb2tlPVwiY3VycmVudENvbG9yXCJcbiAgICAgICAgc3Ryb2tlTGluZWNhcD1cInJvdW5kXCJcbiAgICAgICAgc3Ryb2tlTGluZWpvaW49XCJyb3VuZFwiXG4gICAgICAgIGQ9e2xpbmVIaWdobGlnaHRQYXRofVxuICAgICAgLz5cbiAgICApfVxuICA8L2c+XG4pO1xuIl0sCiAgIm1hcHBpbmdzIjogIm1iQUFBLElBQUFBLEdBQUEsR0FBQUMsR0FBQUQsR0FBQSxnQkFBQUUsRUFBQSx5QkFBQUMsRUFBQSxZQUFBQyxFQUFBLHNCQUFBQyxFQUFBLGlCQUFBQyxJQUFBLGVBQUFDLEdBQUFQLElDQ0EsSUFBQVEsRUFNTyxpQkNQUCxJQUFBQyxFQUE0QyxpQkFtRXBDQyxFQUFBLDZCQXhERkMsR0FBYSxDQUNqQkMsRUFDQUMsSUFFTyxPQUFPRCxHQUFZLFdBQWFBLEVBQVFDLENBQU8sRUFBSUQsRUFHL0NFLEVBQXNELENBQUMsQ0FDbEUsT0FBQUMsRUFDQSxRQUFBRixFQUNBLFNBQUFHLEVBQ0EsUUFBQUosQ0FDRixJQUFNLENBdkJOLElBQUFLLEVBQUFDLEVBQUFDLEVBd0JFLElBQU1DLEtBQU0sVUFBdUIsSUFBSSxFQUNqQyxDQUFDQyxFQUFRQyxDQUFTLEtBQUksWUFBUyxDQUFFLEtBQU0sRUFBRyxJQUFLLENBQUUsQ0FBQyxFQWV4RCxTQWJBLGFBQVUsSUFBTSxDQUNkLEdBQUksQ0FBQ0YsRUFBSSxTQUFXLENBQUNKLEVBQVUsT0FFL0IsSUFBTU8sRUFBYUgsRUFBSSxRQUFRLHNCQUFzQixFQUMvQyxDQUFFLEVBQUFJLEVBQUcsRUFBQUMsQ0FBRSxFQUFJVCxFQUdYVSxFQUFPRixFQUFJRCxFQUFXLE1BQVEsRUFDOUJJLEVBQU1GLEVBQUlGLEVBQVcsT0FBUyxHQUVwQ0QsRUFBVSxDQUFFLEtBQUFJLEVBQU0sSUFBQUMsQ0FBSSxDQUFDLENBQ3pCLEVBQUcsQ0FBQ1gsRUFBVUosRUFBU0MsQ0FBTyxDQUFDLEVBRXpCRSxHQUFVRixLQUdkLFFBQUMsT0FDQyxJQUFLTyxFQUNMLFVBQVUscUJBQ1YsTUFBTyxDQUNMLFNBQVUsUUFDVixjQUFlLE9BQ2YsV0FBWSxtQkFDWixNQUFPLE9BQ1AsUUFBUyxXQUNULGFBQWMsTUFDZCxTQUFVLE9BQ1YsV0FBWSxJQUNaLFdBQVksU0FDWixPQUFRLElBRVIsS0FBTUMsRUFBTyxLQUNiLElBQUtBLEVBQU8sSUFFWixRQUFTTixFQUFTLEVBQUksRUFDdEIsV0FBWSxvQkFDZCxFQUdDLFVBQUFKLEdBQVdDLEVBQVNDLENBQU8sTUFDMUIsb0JBQ0UscUJBQUMsT0FBSSxxQkFBUUksRUFBQUosR0FBQSxZQUFBQSxFQUFTLFlBQVQsWUFBQUksRUFBb0IsS0FBSSxLQUNyQyxRQUFDLE9BQUksbUJBQU9KLEdBQUEsWUFBQUEsRUFBUyxNQUFLLEtBQzFCLFFBQUMsT0FBSSx5QkFDU0ssRUFBQUwsR0FBQSxZQUFBQSxFQUFTLFlBQVQsWUFBQUssRUFBb0IsVUFBVSxZQUFVLEtBQ25EQyxFQUFBTixHQUFBLFlBQUFBLEVBQVMsWUFBVCxZQUFBTSxFQUFvQixRQUN2QixHQUNGLEtBSUYsT0FBQyxPQUNDLFVBQVUsMkJBQ1YsTUFBTyxDQUNMLFNBQVUsV0FDVixPQUFRLE9BQ1IsS0FBTSxNQUNOLFVBQVcsbUJBQ1gsTUFBTyxFQUNQLE9BQVEsRUFDUixXQUFZLHdCQUNaLFlBQWEsd0JBQ2IsVUFBVywrQkFDYixFQUNGLEdBQ0YsRUFwRCtCLElBc0RuQyxFQzlGTyxJQUFNUyxFQUFhLENBQ3pCLENBQ0MsS0FBTSxJQUNOLEtBQU0sa0JBQ04sWUFDQyw2MUJBQ0QsV0FDQywyTUFDRCxrQkFDQyxtSkFDRixFQUVBLENBQ0MsS0FBTSxJQUNOLEtBQU0sa0JBRU4sWUFDQywwUUFDRCxXQUNDLHlRQUNELGtCQUNDLG1GQUNGLEVBQ0EsQ0FDQyxLQUFNLElBQ04sS0FBTSxTQUVOLFlBQ0MsNk1BQ0QsV0FDQyxzS0FDRCxrQkFBbUIsQ0FDbEIsOEdBQ0Esa0RBQ0QsQ0FDRCxFQUNBLENBQ0MsS0FBTSxJQUNOLEtBQU0saUJBRU4sWUFDQyxvVEFDRCxXQUNDLDBTQUNELGtCQUFtQixDQUNsQiwrS0FDQSxtREFDRCxDQUNELEVBQ0EsQ0FDQyxLQUFNLElBQ04sS0FBTSxrQkFDTixZQUNDLDJTQUNELFdBQ0MsdVNBQ0Qsa0JBQW1CLENBQ2xCLHlEQUNBLHNEQUNELENBQ0QsRUFDQSxDQUNDLEtBQU0sSUFDTixLQUFNLGNBQ04sWUFDQyxzYkFDRCxXQUNDLHFWQUNELGtCQUFtQixDQUNsQixpUkFDRCxDQUNELEVBQ0EsQ0FDQyxLQUFNLElBQ04sS0FBTSxlQUVOLFlBQ0MsOGhCQUNELFdBQ0Msc1ZBQ0Qsa0JBQW1CLENBQ2xCLDJRQUNELENBQ0QsRUFDQSxDQUNDLEtBQU0sSUFDTixLQUFNLGNBRU4sWUFDQywyMUJBQ0QsV0FDQyxtMkJBQ0Qsa0JBQW1CLENBQ2xCLDBRQUNELENBQ0QsQ0FDRCxFQ2xGRSxJQUFBQyxFQUFBLDZCQVpXQyxFQUFRLENBQUMsQ0FDcEIsS0FBQUMsRUFDQSxZQUFBQyxFQUNBLFdBQUFDLEVBQ0Esa0JBQUFDLEVBQ0EsU0FBQUMsRUFDQSxRQUFBQyxFQUNBLFVBQUFDLEVBQ0EsUUFBQUMsRUFDQSxRQUFBQyxFQUNBLFNBQUFDLENBQ0YsT0FDRSxRQUFDLEtBQ0MsVUFBVyxHQUFHVCxDQUFJLElBQUlJLEVBQVcsV0FBYSxFQUFFLEdBQ2hELFNBQVUsRUFDVixRQUFTLElBQU1DLEdBQUEsWUFBQUEsRUFBVUwsR0FDekIsVUFBWVUsR0FBTUosR0FBQSxZQUFBQSxFQUFZSSxFQUFHVixHQUNqQyxZQUFjVSxHQUFNSCxHQUFBLFlBQUFBLEVBQVVQLEVBQU1VLEdBQ3BDLGFBQWNGLEVBQ2QsS0FBSyxTQUNMLGdCQUFlSixFQUNmLGFBQVksU0FBU0osQ0FBSSxHQUN6QixNQUFPLENBQ0wsT0FBUSxVQUNSLFFBQVMsT0FDVCxZQUFhLGVBQ2IsV0FBWSxlQUNkLEVBRUMsVUFBQVMsS0FDRCxPQUFDLFFBQ0MsT0FBTyxlQUNQLGNBQWMsUUFDZCxlQUFlLFFBQ2YsRUFBR1IsRUFDTCxLQUNBLE9BQUMsUUFBSyxLQUFLLGVBQWUsRUFBR0MsRUFBWSxFQUN4QyxNQUFNLFFBQVFDLENBQWlCLEVBQzlCQSxFQUFrQixJQUFLUSxNQUNyQixPQUFDLFFBRUMsT0FBTyxlQUNQLGNBQWMsUUFDZCxlQUFlLFFBQ2YsRUFBR0EsR0FKRSxHQUFHQSxDQUFDLEVBS1gsQ0FDRCxLQUVELE9BQUMsUUFDQyxPQUFPLGVBQ1AsY0FBYyxRQUNkLGVBQWUsUUFDZixFQUFHUixFQUNMLEdBRUosRUhpT1EsSUFBQVMsRUFBQSw2QkE3UUpDLEVBR0YsQ0FDRixJQUFLLENBQUMsRUFBR0MsS0FBTyxDQUFFLEVBQUcsRUFBRSxLQUFPLEVBQUUsTUFBUSxFQUFHLEVBQUcsRUFBRSxJQUFNQSxDQUFFLEdBQ3hELFlBQWEsQ0FBQyxFQUFHQSxLQUFPLENBQUUsRUFBRyxFQUFFLEtBQU0sRUFBRyxFQUFFLElBQU1BLENBQUUsR0FDbEQsVUFBVyxDQUFDLEVBQUdBLEtBQU8sQ0FBRSxFQUFHLEVBQUUsTUFBTyxFQUFHLEVBQUUsSUFBTUEsQ0FBRSxHQUNqRCxPQUFRLENBQUMsRUFBR0EsS0FBTyxDQUFFLEVBQUcsRUFBRSxLQUFPLEVBQUUsTUFBUSxFQUFHLEVBQUcsRUFBRSxPQUFTQSxDQUFFLEdBQzlELGVBQWdCLENBQUMsRUFBR0EsS0FBTyxDQUFFLEVBQUcsRUFBRSxLQUFNLEVBQUcsRUFBRSxPQUFTQSxDQUFFLEdBQ3hELGFBQWMsQ0FBQyxFQUFHQSxLQUFPLENBQUUsRUFBRyxFQUFFLE1BQU8sRUFBRyxFQUFFLE9BQVNBLENBQUUsR0FDdkQsS0FBTSxDQUFDLEVBQUdBLEtBQU8sQ0FBRSxFQUFHLEVBQUUsS0FBT0EsRUFBRyxFQUFHLEVBQUUsSUFBTSxFQUFFLE9BQVMsQ0FBRSxHQUMxRCxhQUFjLENBQUMsRUFBR0EsS0FBTyxDQUFFLEVBQUcsRUFBRSxLQUFPQSxFQUFHLEVBQUcsRUFBRSxHQUFJLEdBQ25ELFdBQVksQ0FBQyxFQUFHQSxLQUFPLENBQUUsRUFBRyxFQUFFLEtBQU9BLEVBQUcsRUFBRyxFQUFFLE1BQU8sR0FDcEQsTUFBTyxDQUFDLEVBQUdBLEtBQU8sQ0FBRSxFQUFHLEVBQUUsTUFBUUEsRUFBRyxFQUFHLEVBQUUsSUFBTSxFQUFFLE9BQVMsQ0FBRSxHQUM1RCxjQUFlLENBQUMsRUFBR0EsS0FBTyxDQUFFLEVBQUcsRUFBRSxNQUFRQSxFQUFHLEVBQUcsRUFBRSxHQUFJLEdBQ3JELFlBQWEsQ0FBQyxFQUFHQSxLQUFPLENBQUUsRUFBRyxFQUFFLE1BQVFBLEVBQUcsRUFBRyxFQUFFLE1BQU8sRUFDeEQsRUFFTyxTQUFTQyxFQUNkQyxFQUNBQyxFQUNBLENBQ0EsSUFBTUMsRUFBTUYsRUFBSSxRQUFRLFNBQVUsRUFBRSxFQUU5QkcsRUFBeUMsQ0FDN0MsR0FBTSxFQUNOLEdBQU0sRUFDTixHQUFNLEVBQ04sR0FBTSxFQUNOLEdBQU0sRUFDTixHQUFNLEVBQ04sR0FBTSxFQUNOLEdBQU0sRUFDTixHQUFNLEVBQ04sR0FBTSxHQUNOLEdBQU0sR0FDTixHQUFNLEdBQ04sR0FBTSxHQUNOLEdBQU0sR0FDTixHQUFNLEdBQ04sR0FBTSxHQUNOLEdBQU0sR0FDTixHQUFNLEdBQ04sR0FBTSxHQUNOLEdBQU0sR0FDTixHQUFNLEdBQ04sR0FBTSxHQUNOLEdBQU0sR0FDTixHQUFNLEdBQ04sR0FBTSxHQUNOLEdBQU0sR0FDTixHQUFNLEdBQ04sR0FBTSxHQUNOLEdBQU0sR0FDTixHQUFNLEdBQ04sR0FBTSxHQUNOLEdBQU0sRUFDUixFQUVBLEdBQUlGLElBQWEsWUFDZixPQUFPLE9BQU9FLEVBQWVELENBQUcsR0FBS0EsQ0FBRyxFQUcxQyxHQUFJRCxJQUFhLFNBQVUsQ0FDekIsSUFBTUcsRUFBV0YsRUFBSSxDQUFDLEVBUXRCLE1BQU8sR0FQT0EsRUFBSSxDQUFDLENBT0osR0FOeUIsQ0FDdEMsRUFBSyxLQUNMLEVBQUssS0FDTCxFQUFLLEtBQ0wsRUFBSyxJQUNQLEVBQzBCRSxDQUFRLEdBQUssRUFBRSxFQUMzQyxDQUVBLE9BQU9GLENBQ1QsQ0FFTyxTQUFTRyxFQUFrQkwsRUFBYSxDQUM3QyxJQUFNRSxFQUFNRixFQUFJLFFBQVEsU0FBVSxFQUFFLEVBQzlCTSxFQUFZUCxFQUFxQkMsRUFBSyxXQUFXLEVBQ2pETyxFQUFTUixFQUFxQkMsRUFBSyxRQUFRLEVBQ2pELE1BQU8sQ0FDTCxJQUFLRSxFQUNMLFVBQUFJLEVBQ0EsT0FBQUMsQ0FDRixDQUNGLENBRU8sSUFBTUMsRUFBa0MsQ0FBQyxDQUM5QyxnQkFBQUMsRUFBa0IsQ0FBQyxFQUNuQixTQUFBQyxFQUNBLFVBQUFDLEVBQVksR0FDWixNQUFBQyxFQUFRLFFBQ1IsT0FBQUMsRUFBUyxDQUFDLEVBQ1YsU0FBQVosRUFDQSxRQUFBYSxFQUFVLENBQ1IsT0FBUSxJQUNSLFVBQVcsS0FDYixFQUNBLFlBQUFDLEVBQWMsR0FDZCxTQUFBQyxFQUFXLE9BQ1gsS0FBQUMsRUFDQSxTQUFBQyxFQUFXLENBRWIsSUFBTSxDQUNKLElBQU1DLEVBQ0pQLElBQVUsT0FDTixDQUNBLGNBQWUsVUFDZixjQUFlLFVBQ2YsZUFBZ0IsU0FDbEIsRUFDRSxDQUNBLGNBQWUsVUFDZixjQUFlLFVBQ2YsZUFBZ0IsU0FDbEIsRUFFRSxDQUFDUSxFQUFVQyxDQUFXLEtBQUksWUFDOUIsSUFBSSxJQUFJWixDQUFlLENBQ3pCLEVBRU1hLEtBQVMsVUFBc0IsSUFBSSxFQUNuQ0MsTUFBYyxVQUF1QixJQUFJLEVBRXpDLENBQUNDLEVBQWFDLENBQWMsS0FBSSxZQUluQyxDQUFFLE9BQVEsRUFBTSxDQUFDLEVBRWRDLEtBQWUsZUFDbEJULEdBQWlCLENBQ2hCSSxFQUFhTSxHQUFTLENBQ3BCLElBQU1DLEVBQVUsSUFBSSxJQUFJRCxDQUFJLEVBQzVCQyxFQUFRLElBQUlYLENBQUksRUFBSVcsRUFBUSxPQUFPWCxDQUFJLEVBQUlXLEVBQVEsSUFBSVgsQ0FBSSxFQUczRCxJQUFNWSxFQUFVLE1BQU0sS0FBS0QsQ0FBTyxFQUFFLElBQUtFLEdBQU8sQ0FFOUMsSUFBTUMsRUFETUQsRUFBRyxRQUFRLFNBQVUsRUFBRSxFQUNiLE1BQU0sQ0FBQyxFQUN2QkUsRUFBWUMsRUFBVyxLQUFNQyxHQUFNQSxFQUFFLE9BQVNILENBQVMsRUFDN0QsTUFBTyxDQUNMLEdBQUFELEVBQ0EsVUFBV3pCLEVBQWtCeUIsQ0FBRSxFQUMvQixNQUFNRSxHQUFBLFlBQUFBLEVBQVcsT0FBUSxTQUMzQixDQUNGLENBQUMsRUFFRCxPQUFBdEIsR0FBQSxNQUFBQSxFQUFXbUIsR0FDSkQsQ0FDVCxDQUFDLENBQ0gsRUFDQSxDQUFDbEIsQ0FBUSxDQUNYLEVBQ015QixLQUFnQixlQUNwQixDQUFDQyxFQUFxQ25CLElBQWlCLEVBQ2pEbUIsRUFBRSxNQUFRLFNBQVdBLEVBQUUsTUFBUSxPQUNqQ0EsRUFBRSxlQUFlLEVBQ2pCVixFQUFhVCxDQUFJLEVBRXJCLEVBQ0EsQ0FBQ1MsQ0FBWSxDQUNmLEVBRU1XLEVBS0QsQ0FDRCxDQUNFLEtBQU0sUUFDTixVQUFXLEdBQ1gsTUFBTyxjQUNQLFNBQVUsQ0FBRSxFQUFHLElBQUssRUFBRyxFQUFHLENBQzVCLEVBQ0EsQ0FDRSxLQUFNLFNBQ04sVUFBVyxrQ0FDWCxNQUFPLGFBQ1AsU0FBVSxDQUFFLEVBQUcsSUFBSyxFQUFHLEVBQUcsQ0FDNUIsRUFDQSxDQUNFLEtBQU0sUUFDTixVQUFXLGtDQUNYLE1BQU8sY0FDUCxTQUFVLENBQUUsRUFBRyxJQUFLLEVBQUcsR0FBSSxDQUM3QixFQUNBLENBQ0UsS0FBTSxTQUNOLFVBQVcsc0NBQ1gsTUFBTyxhQUNQLFNBQVUsQ0FBRSxFQUFHLElBQUssRUFBRyxHQUFJLENBQzdCLENBQ0YsRUFFRUMsRUFBbUJELEVBQ25CckIsSUFBYSxRQUNmc0IsRUFBbUJELEVBQVUsTUFBTSxFQUFHLENBQUMsRUFDOUJyQixJQUFhLFVBQ3RCc0IsRUFBbUJELEVBQVUsTUFBTSxDQUFDLEdBR3RDLElBQU1FLEVBQWMsQ0FDbEJ0QixFQUNBbUIsRUFDQUksRUFBdUIsVUFDcEIsQ0E5TlAsSUFBQUMsRUFBQUMsRUFnT0ksSUFBTUMsRUFEU1AsRUFBRSxjQUNHLGNBQWMsTUFBTSxFQUV4QyxHQUFJLEVBQUVPLEdBQVFyQixFQUFPLFNBQ25CLE9BR0YsSUFBTXNCLEVBQVdELEVBQUssc0JBQXNCLEVBQ3RDRSxFQUFTdkIsRUFBTyxRQUFRLHNCQUFzQixFQUU5Q3dCLEdBQVNoQyxHQUFBLFlBQUFBLEVBQVMsU0FBVSxHQUlsQyxRQUFRLElBQ04sZUFBZ0I4QixFQUNoQixTQUFVQyxDQUNaLEVBRUEsR0FBTSxDQUFFLEVBQUFFLEVBQUcsRUFBQUMsQ0FBRSxJQUNYUCxFQUFBNUMsRUFBVzJDLEtBQVgsWUFBQUMsRUFBQSxLQUFBNUMsRUFBd0IrQyxFQUFVRSxLQUNsQ2pELEVBQVcsTUFBTStDLEVBQVVFLENBQU0sRUFFN0JHLEVBQVFELEVBQUlILEVBQU8sSUFBTUQsRUFBUyxPQUFTRSxFQUFTRSxFQUUxRHZCLEVBQWUsQ0FDYixPQUFRLEdBQ1IsU0FBVSxDQUFFLEVBQUFzQixFQUFHLEVBQUdFLENBQU0sRUFDeEIsUUFBUyxDQUNQLEdBQUloQyxFQUNKLFVBQVdaLEVBQWtCWSxDQUFJLEVBQ2pDLE9BQ0V5QixFQUFBVCxFQUFXLEtBQU1DLEdBQU1BLEVBQUUsT0FBU2pCLEVBQUssUUFBUSxTQUFVLEVBQUUsRUFBRSxNQUFNLENBQUMsQ0FBQyxJQUFyRSxZQUFBeUIsRUFDSSxPQUFRLFNBQ2hCLENBQ0YsQ0FBQyxDQUNILEVBQ01RLEVBQWMsSUFBTXpCLEVBQWdCMEIsSUFBTyxDQUFFLEdBQUdBLEVBQUcsT0FBUSxFQUFNLEVBQUUsRUFDbkVDLEVBQWMsQ0FBQ0MsRUFBZ0JuQyxLQUViQSxFQUNsQmUsRUFBVyxNQUFNLEVBQUdmLENBQVEsRUFDNUJlLEdBRWlCLElBQUtxQixHQUFVLENBQ2xDLElBQU14QixFQUFLLEdBQUd1QixDQUFNLEdBQUdDLEVBQU0sSUFBSSxHQUMzQkMsRUFBY3hELEVBQXFCK0IsRUFBSTdCLEdBQVksS0FBSyxFQUU5RCxTQUNFLE9BQUN1RCxFQUFBLENBRUUsR0FBR0YsRUFDSixLQUFNeEIsRUFDTixTQUFVVixFQUFTLElBQUlVLENBQUUsRUFDekIsUUFBU0osRUFDVCxVQUFXUyxFQUNYLFFBQVMsQ0FBQ2xCLEVBQU1tQixJQUFNRyxFQUFZdEIsRUFBTW1CLEVBQUd0QixHQUFBLFlBQUFBLEVBQVMsU0FBUyxFQUM3RCxRQUFTb0MsRUFFVCxtQkFBQyxTQUFPLFNBQUFLLEVBQVksR0FUZnpCLENBVVAsQ0FFSixDQUFDLEVBR0cyQixFQUFjLENBQUUsR0FBR3RDLEVBQWEsR0FBR3VDLEVBQWE3QyxDQUFNLENBQUUsRUFFOUQsU0FDRSxRQUFDLE9BQ0MsVUFBVyxjQUFjRCxJQUFVLE9BQVMsYUFBZSxFQUFFLEdBQzdELE1BQU8sQ0FDTCxHQUFJNkMsRUFDSixNQUFPLE9BQ1AsU0FBVSxJQUNWLE9BQVEsU0FDUixRQUFTLE9BQ1QsZUFBZ0IsU0FDaEIsV0FBWSxRQUVkLEVBQ0EsS0FBSyxVQUNMLGFBQVcsYUFDWCx1QkFBcUIsT0FFckIsb0JBQUMsU0FDQyxLQUFLLFNBQ0wsS0FBTXhDLEdBQVEsUUFDZCxNQUFPLEtBQUssVUFBVSxNQUFNLEtBQUtHLENBQVEsQ0FBQyxFQUM1QyxLQUNBLFFBQUMsT0FDQyxJQUFLRSxFQUNMLE1BQU0sNkJBQ04sS0FBSyxPQUNMLFFBQ0VOLElBQWEsT0FDVCxjQUNBQSxJQUFhLFFBQ1gsY0FDQSxnQkFFUixVQUFVLGFBQ1YsTUFBTyxDQUNMLE1BQU8sT0FDUCxPQUFRLE9BQ1IsV0FBWSxPQUNaLFlBQWEsY0FDZixFQUVBLG9CQUFDLFNBQU0sc0JBQVUsRUFDaEJzQixFQUFpQixJQUFJLENBQUMsQ0FBRSxLQUFBckIsRUFBTSxVQUFBMEMsRUFBVyxNQUFBQyxFQUFPLFNBQUFDLENBQVMsRUFBR0MsT0FDM0QsT0FBQyxLQUNDLEtBQUssUUFDTCxhQUFZRixFQUVaLEtBQU0zQyxFQUNOLFVBQVcwQyxFQUVWLFNBQUFQLEVBQVksU0FBU1UsRUFBUSxDQUFDLEdBQUk1QyxDQUFRLEdBSnRDRCxDQUtQLENBQ0QsR0FDSCxFQUNDRixNQUNDLE9BQUNnRCxFQUFBLENBQ0MsT0FBUXZDLEVBQVksT0FDcEIsU0FBVUEsRUFBWSxTQUN0QixRQUFTQSxFQUFZLFFBQ3JCLFFBQVNWLEdBQUEsWUFBQUEsRUFBUyxRQUNwQixHQUVKLENBRUosRUFFTyxTQUFTNEMsRUFBYTdDLEVBQTRDLENBQ3ZFLElBQU1tRCxFQUFrQyxDQUFDLEVBQ3pDLE9BQUluRCxFQUFPLFdBQ1RtRCxFQUFRLGFBQWEsRUFBSW5ELEVBQU8sVUFFOUJBLEVBQU8sV0FDVG1ELEVBQVEsYUFBYSxFQUFJbkQsRUFBTyxVQUU5QkEsRUFBTyxZQUNUbUQsRUFBUSxjQUFjLEVBQUluRCxFQUFPLFdBRTVCbUQsQ0FDVCxDQUVBLElBQU9DLEVBQVF6RCIsCiAgIm5hbWVzIjogWyJpbmRleF9leHBvcnRzIiwgIl9fZXhwb3J0IiwgIk9kb250b2dyYW0iLCAiY29udmVydEZESVRvTm90YXRpb24iLCAiT2RvbnRvZ3JhbV9kZWZhdWx0IiwgImdldFRvb3RoTm90YXRpb25zIiwgIm1hcFRvQ3NzVmFycyIsICJfX3RvQ29tbW9uSlMiLCAiaW1wb3J0X3JlYWN0IiwgImltcG9ydF9yZWFjdCIsICJpbXBvcnRfanN4X3J1bnRpbWUiLCAiZ2V0Q29udGVudCIsICJjb250ZW50IiwgInBheWxvYWQiLCAiT2RvbnRvZ3JhbVRvb2x0aXAiLCAiYWN0aXZlIiwgInBvc2l0aW9uIiwgIl9hIiwgIl9iIiwgIl9jIiwgInJlZiIsICJjb29yZHMiLCAic2V0Q29vcmRzIiwgInRvb2x0aXBCb3giLCAieCIsICJ5IiwgImxlZnQiLCAidG9wIiwgInRlZXRoUGF0aHMiLCAiaW1wb3J0X2pzeF9ydW50aW1lIiwgIlRlZXRoIiwgIm5hbWUiLCAib3V0bGluZVBhdGgiLCAic2hhZG93UGF0aCIsICJsaW5lSGlnaGxpZ2h0UGF0aCIsICJzZWxlY3RlZCIsICJvbkNsaWNrIiwgIm9uS2V5RG93biIsICJvbkhvdmVyIiwgIm9uTGVhdmUiLCAiY2hpbGRyZW4iLCAiZSIsICJkIiwgImltcG9ydF9qc3hfcnVudGltZSIsICJwbGFjZW1lbnRzIiwgIm0iLCAiY29udmVydEZESVRvTm90YXRpb24iLCAiZmRpIiwgIm5vdGF0aW9uIiwgIm51bSIsICJmZGlUb1VuaXZlcnNhbCIsICJxdWFkcmFudCIsICJnZXRUb290aE5vdGF0aW9ucyIsICJ1bml2ZXJzYWwiLCAicGFsbWVyIiwgIk9kb250b2dyYW0iLCAiZGVmYXVsdFNlbGVjdGVkIiwgIm9uQ2hhbmdlIiwgImNsYXNzTmFtZSIsICJ0aGVtZSIsICJjb2xvcnMiLCAidG9vbHRpcCIsICJzaG93VG9vbHRpcCIsICJzaG93SGFsZiIsICJuYW1lIiwgIm1heFRlZXRoIiwgInRoZW1lQ29sb3JzIiwgInNlbGVjdGVkIiwgInNldFNlbGVjdGVkIiwgInN2Z1JlZiIsICJfdG9vbHRpcFJlZiIsICJ0b29sdGlwRGF0YSIsICJzZXRUb29sdGlwRGF0YSIsICJoYW5kbGVUb2dnbGUiLCAicHJldiIsICJ1cGRhdGVkIiwgImRldGFpbHMiLCAiaWQiLCAidG9vdGhCYXNlIiwgInRvb3RoRGF0YSIsICJ0ZWV0aFBhdGhzIiwgInQiLCAiaGFuZGxlS2V5RG93biIsICJlIiwgInF1YWRyYW50cyIsICJ2aXNpYmxlUXVhZHJhbnRzIiwgImhhbmRsZUhvdmVyIiwgInBsYWNlbWVudCIsICJfYSIsICJfYiIsICJwYXRoIiwgInRvb3RoQm94IiwgInN2Z0JveCIsICJtYXJnaW4iLCAieCIsICJ5IiwgInNhZmVZIiwgImhhbmRsZUxlYXZlIiwgInAiLCAicmVuZGVyVGVldGgiLCAicHJlZml4IiwgInRvb3RoIiwgImRpc3BsYXlOYW1lIiwgIlRlZXRoIiwgImZpbmFsQ29sb3JzIiwgIm1hcFRvQ3NzVmFycyIsICJ0cmFuc2Zvcm0iLCAibGFiZWwiLCAicG9zaXRpb24iLCAiaW5kZXgiLCAiT2RvbnRvZ3JhbVRvb2x0aXAiLCAiY3NzVmFycyIsICJPZG9udG9ncmFtX2RlZmF1bHQiXQp9Cg==
|
package/dist/index.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{useCallback as A,useRef as F,useState as I}from"react";import{useEffect as K,useRef as X}from"react";import{Fragment as t1,jsx as o1,jsxs as k}from"react/jsx-runtime";var e1=(e,t)=>typeof e=="function"?e(t):e,D=({active:e,payload:t,position:n,content:i})=>{var d,r,m;let s=X(null);return K(()=>{if(s.current&&n){let{x:u,y}=n;s.current.style.left=`${u+10}px`,s.current.style.top=`${y+10}px`}},[n]),e&&t?o1("div",{ref:s,className:"odontogram-tooltip",style:{position:"fixed",pointerEvents:"none",background:"rgba(0, 0, 0, 0.75)",color:"#fff",padding:"6px 10px",borderRadius:"6px",fontSize:"12px",lineHeight:1.3,whiteSpace:"nowrap",zIndex:1e3,transform:"translate(-50%, -100%)",transition:"opacity 0.15s ease"},children:e1(i,t)??k(t1,{children:[k("div",{children:["Tooth: ",(d=t==null?void 0:t.notations)==null?void 0:d.fdi]}),k("div",{children:["Type: ",t==null?void 0:t.type]}),k("div",{children:["Universal: ",(r=t==null?void 0:t.notations)==null?void 0:r.universal,", Palmer:"," ",(m=t==null?void 0:t.notations)==null?void 0:m.palmer]})]})}):null};var x=[{name:"1",type:"Central Incisor",outlinePath:"M173.951 1.698c-2.198.16-5.302.862-5.302.862s-5.531 1.025-7.781 2.27c-2.403 1.333-5.553 3.299-6.013 5.258-.432 1.84-.78 4.734-.491 6.832l.027.2c.348 2.527.865 6.28 1.239 10.316.186 2-.101 3.21.751 6.16.895 3.1 1.395 4.573 2.013 5.687.646 1.164 1.493 2.087 2.03 3.28.866 1.924 2.393 4.29 3.87 6.1a48.805 48.805 0 0 0 2.36 2.663c1.016 1.078 2.819 3.11 3.898 4.331 1.526 1.727 3.076 3.248 4.423 3.742 1.217.446 2.709.642 3.793.936 1.369.372 2.494.638 4.597 0 1.545-.468 2.725-.621 4.372-2.424 2.064-2.258 2.846-3.517 3.512-4.746 1.065-1.964 2.524-4.648 3.541-6.422.611-1.068 2.221-3.089 4.086-8.845 1.54-4.752 2.367-7.76 2.731-8.994.415-1.408 1.079-3.583 1.355-6.196.44-4.176 1.114-7.482 1.062-11.026-.044-3.046.104-5.04-1.065-6.306-.95-1.029-1.988-2.001-3.306-2.534-1.959-.79-3.775-1.358-5.298-1.592-1.351-.207-7.05-.35-11.219-.057-1.567.11-3.61.097-9.185.505Z",shadowPath:"M188.269 50.215c19.275-41.867 10.766-43.612 4.937-44.684-5.829-1.073-28.455 2.53-29.72 2.817-.442.218-8.911 0-4.767 19.54 3.416 16.105 16.193 26.596 17.244 27.265 3.148 2.003 8.837 2.595 12.306-4.938Z",lineHighlightPath:"M160.472 14.727c.392-.402 4.317-3.309 8.941-5.47 3.097-1.448 7.773-1.629 11.207-1.749 8.759-.365 10.004.91 12.637 1.495.562.139.909.276 1.771.595"},{name:"2",type:"Lateral Incisor",outlinePath:"M135.016 60.41c3.443 1.355 7.834 2.73 9.601 2.346 4.185-.91 7.044-4.017 8.123-8.152 2.069-7.927 2.249-16.288 1.995-24.436-.113-3.596.72-16.81-4.184-18.444-8.135-6.14-32.088.494-36.979 8.055-5.013 7.751.878 21.131 5.56 27.728 3.862 5.44 9.714 10.474 15.884 12.903Z",shadowPath:"M134.65 55.386c2.732 1.076 6.217 2.167 7.62 1.862 3.321-.723 5.59-3.188 6.446-6.47 1.642-6.29 1.786-12.927 1.583-19.393-.089-2.854.572-13.342-3.32-14.638-6.456-4.873-25.466.392-29.348 6.393-3.979 6.152.696 16.77 4.413 22.006 3.064 4.317 7.709 8.313 12.606 10.24Z",lineHighlightPath:"M121.569 28.952c.551-.984 6.354-8.214 12.866-9.045 3.238-.413 10.619-.17 11.838 0"},{name:"3",type:"Canine",outlinePath:"M77.63 64.236c1.692 1.401 15.516 14.583 34.698 16.903 5.569.674 15.058-7.184 15.789-12.89 1.335-10.423-12.444-29.205-21.965-33.703-4.542-2.145-25.892-4.039-28.523 2.939-2.471 6.557-6.596 21.29 0 26.751Z",shadowPath:"M123.285 66.267c1.072-8.368-10.234-23.94-17.99-27.603-3.72-1.757-21.206-3.308-23.36 2.407-1.757 4.66-4.09 13.284-2.306 18.17 4.15 11.36 40.897 28.573 43.656 7.026Z",lineHighlightPath:["M82.84 60.043c-.01-.855-.193-4.63.256-8.12.667-5.185.703-5.866 1.29-8.106.437-1.666 2.083-4.91 17.487-3.748","M101.438 68.49c.376-.045 2.284-5.112 9.498-6.344"]},{name:"4",type:"First Premolar",outlinePath:"M93.684 108.748c-7.498 3.397-35.368-7.397-35.596-7.441-1.429-.842-12.215-2.854-9.068-29.414.147-1.238 1.353-2.05 2.218-2.556.956-.559 3.157-1.595 7.587-2.794 2.707-.734 13.856-3.54 18.674-.92 2.216 1.206 6.363 4.117 10.473 7.036 4.11 2.919 10.958 8.715 13.327 11.338 2.291 2.537 10.324 13.75-7.615 24.751Z",shadowPath:"M91.495 105.931c-6.528 2.958-30.793-6.44-30.992-6.478-1.243-.734-10.634-2.486-7.895-25.61.128-1.078 1.178-1.785 1.932-2.225.832-.487 2.748-1.39 6.605-2.433 2.357-.639 12.064-3.082 16.258-.8 1.93 1.05 5.54 3.584 9.12 6.125 3.578 2.541 9.54 7.588 11.603 9.872 1.994 2.208 8.987 11.971-6.63 21.549Z",lineHighlightPath:["M55.234 92.414c.022-.242.06-1.469.875-7.79.46-3.573 1.813-5.49 3.134-7.01 1.18-1.359 3.524-3.193 5.88-4.365 1.46-.632 3.029-1.126 6.044-1.776.826-.138 1.477-.175 2.526-.395","M87.02 101.387c4.183-.792 8.747-9.774 8.747-9.774"]},{name:"5",type:"Second Premolar",outlinePath:"M33.396 127.652c-1.088-2.713-4.486-11.852-3.962-15.246.477-3.085 14.47-12.008 23.595-12.008 2.178 0 25.157 6.665 35.073 17.908 4.551 9.324-1.624 23.339-16.22 23.339-8.193 0-23.563-1.897-25.453-2.215-1.896-.319-4.317-1.128-6.596-2.321-1.289-.675-2-1.035-2.478-1.647-.655-.84-2.101-3.178-3.96-7.81Z",shadowPath:"M36.837 126.778c-.945-2.356-3.895-10.289-3.44-13.235.414-2.679 12.561-10.424 20.483-10.424 1.89 0 21.837 5.785 30.445 15.545 3.951 8.094-1.41 20.26-14.08 20.26-7.112 0-20.454-1.647-22.095-1.922-1.645-.277-3.747-.98-5.725-2.015-1.12-.586-1.737-.899-2.151-1.43-.57-.729-1.825-2.759-3.437-6.779Z",lineHighlightPath:["M40.8 131.221c-4.003-20.278 8.442-20.974 13.779-23.692","M74.056 134.729c6.35-4.264 6.343-10.503 6.489-11.448"]},{name:"6",type:"First Molar",outlinePath:"M35.539 203.323c-3.363.196-32.788-4.02-28.495-42.465 3.631-20.408 26.21-23.364 29.557-22.912 9.019-.745 25.727 6.743 29.255 9.403 4.546 3.427 7.384 5.681 8.606 7.092 2.436 2.814 4.499 5.11 4.7 6.313.284 1.703 1.317 4.72-2.248 9.687-2.453 3.418-2.957 6.663-2.856 10.223.118 4.185.37 9.754-.524 11.63-.592 1.244-.984 2.627-2.375 3.392-2.015 1.108-4.61 2.317-11.93 3.748-3.623.708-9.309 1.83-12.401 2.292-5.19.777-8.423 1.43-11.289 1.597Z",shadowPath:"M36.515 199.085c-2.927.17-28.54-3.499-24.803-36.963 3.16-17.764 22.814-20.337 25.727-19.944 10.82-.893 25.709 5.989 32.955 14.358 2.12 2.45 3.917 4.448 4.091 5.495.248 1.482.513 4.268-2.59 8.591-2.135 2.975-1.94 5.641-1.852 8.74.096 3.417 1.402 10.917-2.523 13.076-1.754.964-4.013 2.016-10.384 3.261-6.762 1.322-13.728 2.984-20.621 3.386Z",lineHighlightPath:["M37.132 192.147c1.288-.372 3.385-2.071 5.183-5.438m9.008-35.98c1.188 1.224 2.114 6.385.15 11.363m0 0c-1.537 3.899-4.944 9.378-11.195 9.378 6.877.321 4.651 10.343 2.037 15.239m9.159-24.617c1.47-2.589 4.966-7.572 8.068-8.217m-17.227 32.834c-.186 2.348.044 7.351 2.458 8.584"]},{name:"7",type:"Second Molar",outlinePath:"M4.969 248.132c-1.188-2.74-14.708-27.152 12.319-42.139 1.836-1.018 24.508-7.711 45.28 10.874 2.274 2.035 4.455 3.579 5.403 5.102 1.414 2.271 2.128 3.435 1.687 5.606-.387 1.901-1.54 3.642-3.77 7.711-1.127 2.056-1.854 3.427-1.369 7.824.175 1.59.627 3.935.048 6.603-.466 2.147-.941 3.567-2.578 5.006-2.53 2.224-5.307 3.645-9.076 4.35-1.091.204-3.133.811-7.525 1.702-2.776.563-6.619 1.234-10.09 1.654-3.47.42-6.478.638-8.612.636-3.353-.002-6.734.031-9.465-1.48l-.018-.01c-1.654-.915-4.076-2.255-6.245-4.732-2.258-2.579-4.591-5.482-5.989-8.707Z",shadowPath:"M8.799 246.28c-1.128-2.352-12.843-23.709 10.756-36.796 1.604-.889 21.4-6.732 39.538 9.496 1.986 1.777 3.89 3.125 4.717 4.454 1.235 1.983 1.859 3 1.473 4.895-.337 1.66-1.343 3.18-3.291 6.734-.984 1.795-1.619 2.992-1.196 6.831.154 1.389.548 3.436.042 5.766-2.872 13.231-31.213 11.657-33.076 11.656h-.007c-2.936-.003-12.714-.01-18.956-13.036Z",lineHighlightPath:["M32.14 255.091c.748-.303 2.28-2.378 3.103-5.721m-1.99-35.481c3.009 1.363 4.015 4.888 3.736 8.716m0 0c-.424 5.835-3.832 12.377-7.683 13.049 6.954 1.18 7.244 8.414 5.937 13.716m1.746-26.765c.327-2.24 1.82-6.958 5.19-7.91m-6.936 34.675c.65 2.172 2.55 6.507 4.967 6.471"]},{name:"8",type:"Third Molar",outlinePath:"M.895 291.331c-.362-1.218-.116-3.411-.164-3.892-.035-.34.124-3.438.727-5.558 1.04-2.82 1.808-4.74 2.573-5.752 1.413-1.872 3.913-4.769 7.135-7.2 2.288-1.726 5.003-3.187 8.133-4.339 2.249-.828 4.362-1.502 7.732-1.693 2.175-.123 5.25-.155 8.782.108s7.403.804 10.353 1.397 4.92 1.218 6.641 1.893c1.722.675 3.148 1.389 3.972 1.768 1.51.696 2.9 1.209 3.824 2.14 1.857 1.872 2.617 3.334 2.912 4.807.254 1.27.252 3.216-.224 4.531-.672 1.859-1.468 2.856-1.468 5.7 0 3.857 1.713 5.95 1.915 8.356.337 4.008.317 6.168-.42 7.485-.591 1.057-1.532 2.383-5.541 5.088-1.173.791-2.684 1.634-6.643 3.424-2.762 1.248-6.977 3.108-9.205 4.107-2.473 1.109-4.667 2.226-8.234 3.053-2.54.589-5.631.784-9.012.186-2.307-.408-5.449-1.183-9.107-3.827-3.928-2.839-6.53-4.897-7.497-6.041-.866-1.026-1.714-2.082-2.412-3.555-.904-1.905-2.272-3.643-3-5.916-.846-2.633-1.167-4.233-1.772-6.27Z",shadowPath:"M4.732 291.175c-.317-1.07-.101-2.994-.144-3.416-.03-.299.11-3.019.638-4.88.914-2.476 1.588-4.161 2.26-5.05 1.24-1.643 3.434-4.187 6.263-6.321 2.009-1.515 4.393-2.797 7.14-3.809 1.974-.727 3.83-1.318 6.788-1.486 1.91-.108 4.61-.136 7.71.095 3.1.231 6.498.706 9.088 1.226 2.59.521 4.319 1.07 5.83 1.662 1.512.592 2.764 1.22 3.487 1.553 1.326.61 2.547 1.061 3.357 1.878 1.63 1.643 2.298 2.927 2.557 4.22.223 1.115.221 2.824-.196 3.978-.59 1.632-1.29 2.507-1.29 5.004 0 3.385 1.504 5.223 1.682 7.335.296 3.519.278 5.416-.369 6.571-.52.928-1.345 2.093-4.865 4.467-1.03.695-2.355 1.435-5.831 3.006-2.425 1.096-6.126 2.728-8.082 3.606-2.17.973-4.096 1.954-7.228 2.68-2.229.517-4.944.688-7.912.163-2.024-.358-4.783-1.038-7.995-3.359-3.448-2.493-5.732-4.299-6.58-5.304-.761-.901-1.505-1.827-2.119-3.121-.793-1.672-1.994-3.198-2.634-5.193-.742-2.312-1.024-3.717-1.555-5.505Z",lineHighlightPath:["M31.732 309.511c1.462-.897 2.585-3.672 2.93-6.726m-2.93-29.453c2.114 1.092 3.49 4.44 3.61 8.062m4.133-7.58c-1.353 1.058-4.074 4.057-4.134 7.58m0 0c.155 4.693-1.797 9.846-6.983 11.152 5.379-.357 6.859 5.305 6.303 10.239m4.557 7.24c-1.678-.671-4.938-3.058-4.557-7.24"]}];import{jsx as P,jsxs as r1}from"react/jsx-runtime";var E=({name:e,outlinePath:t,shadowPath:n,lineHighlightPath:i,selected:s,onClick:d,onKeyDown:r,onHover:m,onLeave:u,children:y})=>r1("g",{className:`${e} ${s?"selected":""}`,tabIndex:0,onClick:()=>d==null?void 0:d(e),onKeyDown:p=>r==null?void 0:r(p,e),onMouseMove:p=>m==null?void 0:m(e,p),onMouseLeave:u,role:"option","aria-selected":s,"aria-label":`Tooth ${e}`,style:{cursor:"pointer",outline:"none",touchAction:"manipulation",transition:"all 0.2s ease"},children:[y,P("path",{stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",d:t}),P("path",{fill:"currentColor",d:n}),Array.isArray(i)?i.map(p=>P("path",{stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",d:p},`${p}`)):P("path",{stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",d:i})]});import{jsx as b,jsxs as V}from"react/jsx-runtime";var M={top:(e,t)=>({x:e.left+e.width/2,y:e.top-t}),"top-start":(e,t)=>({x:e.left,y:e.top-t}),"top-end":(e,t)=>({x:e.right,y:e.top-t}),bottom:(e,t)=>({x:e.left+e.width/2,y:e.bottom+t}),"bottom-start":(e,t)=>({x:e.left,y:e.bottom+t}),"bottom-end":(e,t)=>({x:e.right,y:e.bottom+t}),left:(e,t)=>({x:e.left-t,y:e.top+e.height/2}),"left-start":(e,t)=>({x:e.left-t,y:e.top}),"left-end":(e,t)=>({x:e.left-t,y:e.bottom}),right:(e,t)=>({x:e.right+t,y:e.top+e.height/2}),"right-start":(e,t)=>({x:e.right+t,y:e.top}),"right-end":(e,t)=>({x:e.right+t,y:e.bottom})};function C(e,t){let n=e.replace("teeth-",""),i={11:8,12:7,13:6,14:5,15:4,16:3,17:2,18:1,21:9,22:10,23:11,24:12,25:13,26:14,27:15,28:16,31:24,32:23,33:22,34:21,35:20,36:19,37:18,38:17,41:25,42:26,43:27,44:28,45:29,46:30,47:31,48:32};if(t==="Universal")return String(i[n]??n);if(t==="Palmer"){let s=n[0];return`${n[1]}${{1:"UR",2:"UL",3:"LL",4:"LR"}[s]??""}`}return n}function G(e){let t=e.replace("teeth-",""),n=C(e,"Universal"),i=C(e,"Palmer");return{fdi:t,universal:n,palmer:i}}var n1=({defaultSelected:e=[],onChange:t,className:n="",theme:i="light",colors:s={},notation:d,tooltip:r={margin:10},showTooltip:m=!0,showHalf:u="full",name:y,maxTeeth:p=8})=>{let H=i==="dark"?{"--dark-blue":"#aab6ff","--base-blue":"#d0d5f6","--light-blue":"#5361e6"}:{"--dark-blue":"#3e5edc","--base-blue":"#8a98be","--light-blue":"#c6ccf8"},[Z,q]=I(new Set(e)),w=F(null),s1=F(null),[R,B]=I({active:!1}),T=A(o=>{q(l=>{let c=new Set(l);c.has(o)?c.delete(o):c.add(o);let g=Array.from(c).map(a=>{let v=a.replace("teeth-","").slice(1),h=x.find(L=>L.name===v);return{id:a,notations:G(a),type:(h==null?void 0:h.type)??"Unknown"}});return t==null||t(g),c})},[t]),z=A((o,l)=>{(o.key==="Enter"||o.key===" ")&&(o.preventDefault(),T(l))},[T]),O=[{name:"first",transform:"",label:"Upper Right",position:{x:100,y:30}},{name:"second",transform:"scale(-1, 1) translate(-409, 0)",label:"Upper Left",position:{x:309,y:30}},{name:"third",transform:"scale(1, -1) translate(0, -694)",label:"Lower Right",position:{x:100,y:664}},{name:"fourth",transform:"scale(-1, -1) translate(-409, -694)",label:"Lower Left",position:{x:309,y:664}}],S=O;u==="upper"?S=O.slice(0,2):u==="lower"&&(S=O.slice(2));let j=(o,l,c="right")=>{var $,U;let a=l.currentTarget.querySelector("path");if(!(a&&w.current))return;let f=a.getBoundingClientRect(),v=w.current.getBoundingClientRect(),h=(r==null?void 0:r.margin)||10,{x:L,y:N}=(($=M[c])==null?void 0:$.call(M,f,h))??M.right(f,h),Y=N<v.top?f.bottom+h:N;B({active:!0,position:{x:L,y:Y},payload:{id:o,notations:G(o),type:((U=x.find(_=>_.name===o.replace("teeth-","").slice(1)))==null?void 0:U.type)??"Unknown"}})},J=()=>B(o=>({...o,active:!1})),Q=(o,l)=>(l?x.slice(0,l):x).map(g=>{let a=`${o}${g.name}`,f=C(a,d??"FDI");return b(E,{...g,name:a,selected:Z.has(a),onClick:T,onKeyDown:z,onHover:(v,h)=>j(v,h,r==null?void 0:r.placement),onLeave:J,children:b("title",{children:f})},a)}),W={...H,...a1(s)};return V("div",{className:`Odontogram ${i==="dark"?"dark-theme":""}`,style:{...W,width:"100%",maxWidth:300,margin:"0 auto",display:"flex",justifyContent:"center",alignItems:"center"},role:"listbox","aria-label":"Odontogram","aria-multiselectable":"true",children:[b("input",{type:"hidden",name:y??"teeth",value:JSON.stringify(Array.from(Z))}),V("svg",{ref:w,xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:u==="full"?"0 0 409 694":u==="upper"?"0 0 409 347":"0 347 409 347",className:"Odontogram",style:{width:"100%",height:"auto",userSelect:"none",touchAction:"manipulation"},children:[b("title",{children:"Odontogram"}),S.map(({name:o,transform:l,label:c,position:g},a)=>b("g",{role:"group","aria-label":c,name:o,transform:l,children:Q(`teeth-${a+1}`,p)},o))]}),m&&b(D,{active:R.active,position:R.position,payload:R.payload,content:r==null?void 0:r.content})]})};function a1(e){let t={};return e.darkBlue&&(t["--dark-blue"]=e.darkBlue),e.baseBlue&&(t["--base-blue"]=e.baseBlue),e.lightBlue&&(t["--light-blue"]=e.lightBlue),t}var i1=n1;export{n1 as Odontogram,C as convertFDIToNotation,i1 as default,G as getToothNotations,a1 as mapToCssVars};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vc3JjL09kb250b2dyYW0udHN4IiwgIi4uL3NyYy9Ub29sdGlwLnRzeCIsICIuLi9zcmMvZGF0YS50cyIsICIuLi9zcmMvVGVldGgudHN4Il0sCiAgInNvdXJjZXNDb250ZW50IjogWyJpbXBvcnQgXCIuL3N0eWxlcy5jc3NcIjtcbmltcG9ydCB7XG4gIHR5cGUgQ1NTUHJvcGVydGllcyxcbiAgdHlwZSBGQyxcbiAgdXNlQ2FsbGJhY2ssXG4gIHVzZVJlZixcbiAgdXNlU3RhdGUsXG59IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgT2RvbnRvZ3JhbVRvb2x0aXAgfSBmcm9tIFwiLi9Ub29sdGlwXCI7XG5pbXBvcnQgeyB0ZWV0aFBhdGhzIH0gZnJvbSBcIi4vZGF0YVwiO1xuaW1wb3J0IHR5cGUgeyBPZG9udG9ncmFtUHJvcHMsIFBsYWNlbWVudCwgVG9vdGhEZXRhaWwgfSBmcm9tIFwiLi90eXBlXCI7XG5pbXBvcnQgeyBUZWV0aCB9IGZyb20gXCIuL1RlZXRoXCI7XG5cbmNvbnN0IHBsYWNlbWVudHM6IFJlY29yZDxcbiAgUGxhY2VtZW50LFxuICAodG9vdGhCb3g6IERPTVJlY3QsIG1hcmdpbjogbnVtYmVyKSA9PiB7IHg6IG51bWJlcjsgeTogbnVtYmVyIH1cbj4gPSB7XG4gIHRvcDogKHQsIG0pID0+ICh7IHg6IHQubGVmdCArIHQud2lkdGggLyAyLCB5OiB0LnRvcCAtIG0gfSksXG4gIFwidG9wLXN0YXJ0XCI6ICh0LCBtKSA9PiAoeyB4OiB0LmxlZnQsIHk6IHQudG9wIC0gbSB9KSxcbiAgXCJ0b3AtZW5kXCI6ICh0LCBtKSA9PiAoeyB4OiB0LnJpZ2h0LCB5OiB0LnRvcCAtIG0gfSksXG4gIGJvdHRvbTogKHQsIG0pID0+ICh7IHg6IHQubGVmdCArIHQud2lkdGggLyAyLCB5OiB0LmJvdHRvbSArIG0gfSksXG4gIFwiYm90dG9tLXN0YXJ0XCI6ICh0LCBtKSA9PiAoeyB4OiB0LmxlZnQsIHk6IHQuYm90dG9tICsgbSB9KSxcbiAgXCJib3R0b20tZW5kXCI6ICh0LCBtKSA9PiAoeyB4OiB0LnJpZ2h0LCB5OiB0LmJvdHRvbSArIG0gfSksXG4gIGxlZnQ6ICh0LCBtKSA9PiAoeyB4OiB0LmxlZnQgLSBtLCB5OiB0LnRvcCArIHQuaGVpZ2h0IC8gMiB9KSxcbiAgXCJsZWZ0LXN0YXJ0XCI6ICh0LCBtKSA9PiAoeyB4OiB0LmxlZnQgLSBtLCB5OiB0LnRvcCB9KSxcbiAgXCJsZWZ0LWVuZFwiOiAodCwgbSkgPT4gKHsgeDogdC5sZWZ0IC0gbSwgeTogdC5ib3R0b20gfSksXG4gIHJpZ2h0OiAodCwgbSkgPT4gKHsgeDogdC5yaWdodCArIG0sIHk6IHQudG9wICsgdC5oZWlnaHQgLyAyIH0pLFxuICBcInJpZ2h0LXN0YXJ0XCI6ICh0LCBtKSA9PiAoeyB4OiB0LnJpZ2h0ICsgbSwgeTogdC50b3AgfSksXG4gIFwicmlnaHQtZW5kXCI6ICh0LCBtKSA9PiAoeyB4OiB0LnJpZ2h0ICsgbSwgeTogdC5ib3R0b20gfSksXG59O1xuXG5leHBvcnQgZnVuY3Rpb24gY29udmVydEZESVRvTm90YXRpb24oXG4gIGZkaTogc3RyaW5nLFxuICBub3RhdGlvbjogXCJGRElcIiB8IFwiVW5pdmVyc2FsXCIgfCBcIlBhbG1lclwiXG4pIHtcbiAgY29uc3QgbnVtID0gZmRpLnJlcGxhY2UoXCJ0ZWV0aC1cIiwgXCJcIik7XG5cbiAgY29uc3QgZmRpVG9Vbml2ZXJzYWw6IFJlY29yZDxzdHJpbmcsIG51bWJlcj4gPSB7XG4gICAgXCIxMVwiOiA4LFxuICAgIFwiMTJcIjogNyxcbiAgICBcIjEzXCI6IDYsXG4gICAgXCIxNFwiOiA1LFxuICAgIFwiMTVcIjogNCxcbiAgICBcIjE2XCI6IDMsXG4gICAgXCIxN1wiOiAyLFxuICAgIFwiMThcIjogMSxcbiAgICBcIjIxXCI6IDksXG4gICAgXCIyMlwiOiAxMCxcbiAgICBcIjIzXCI6IDExLFxuICAgIFwiMjRcIjogMTIsXG4gICAgXCIyNVwiOiAxMyxcbiAgICBcIjI2XCI6IDE0LFxuICAgIFwiMjdcIjogMTUsXG4gICAgXCIyOFwiOiAxNixcbiAgICBcIjMxXCI6IDI0LFxuICAgIFwiMzJcIjogMjMsXG4gICAgXCIzM1wiOiAyMixcbiAgICBcIjM0XCI6IDIxLFxuICAgIFwiMzVcIjogMjAsXG4gICAgXCIzNlwiOiAxOSxcbiAgICBcIjM3XCI6IDE4LFxuICAgIFwiMzhcIjogMTcsXG4gICAgXCI0MVwiOiAyNSxcbiAgICBcIjQyXCI6IDI2LFxuICAgIFwiNDNcIjogMjcsXG4gICAgXCI0NFwiOiAyOCxcbiAgICBcIjQ1XCI6IDI5LFxuICAgIFwiNDZcIjogMzAsXG4gICAgXCI0N1wiOiAzMSxcbiAgICBcIjQ4XCI6IDMyLFxuICB9O1xuXG4gIGlmIChub3RhdGlvbiA9PT0gXCJVbml2ZXJzYWxcIikge1xuICAgIHJldHVybiBTdHJpbmcoZmRpVG9Vbml2ZXJzYWxbbnVtXSA/PyBudW0pO1xuICB9XG5cbiAgaWYgKG5vdGF0aW9uID09PSBcIlBhbG1lclwiKSB7XG4gICAgY29uc3QgcXVhZHJhbnQgPSBudW1bMF07XG4gICAgY29uc3QgdG9vdGggPSBudW1bMV07XG4gICAgY29uc3Qgc3ltYm9sczogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgICAgIFwiMVwiOiBcIlVSXCIsIC8vIHVwcGVyIHJpZ2h0XG4gICAgICBcIjJcIjogXCJVTFwiLCAvLyB1cHBlciBsZWZ0XG4gICAgICBcIjNcIjogXCJMTFwiLCAvLyBsb3dlciBsZWZ0XG4gICAgICBcIjRcIjogXCJMUlwiLCAvLyBsb3dlciByaWdodFxuICAgIH07XG4gICAgcmV0dXJuIGAke3Rvb3RofSR7c3ltYm9sc1txdWFkcmFudF0gPz8gXCJcIn1gO1xuICB9XG5cbiAgcmV0dXJuIG51bTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFRvb3RoTm90YXRpb25zKGZkaTogc3RyaW5nKSB7XG4gIGNvbnN0IG51bSA9IGZkaS5yZXBsYWNlKFwidGVldGgtXCIsIFwiXCIpO1xuICBjb25zdCB1bml2ZXJzYWwgPSBjb252ZXJ0RkRJVG9Ob3RhdGlvbihmZGksIFwiVW5pdmVyc2FsXCIpO1xuICBjb25zdCBwYWxtZXIgPSBjb252ZXJ0RkRJVG9Ob3RhdGlvbihmZGksIFwiUGFsbWVyXCIpO1xuICByZXR1cm4ge1xuICAgIGZkaTogbnVtLFxuICAgIHVuaXZlcnNhbCxcbiAgICBwYWxtZXIsXG4gIH07XG59XG5cbmV4cG9ydCBjb25zdCBPZG9udG9ncmFtOiBGQzxPZG9udG9ncmFtUHJvcHM+ID0gKHtcbiAgZGVmYXVsdFNlbGVjdGVkID0gW10sXG4gIG9uQ2hhbmdlLFxuICBjbGFzc05hbWUgPSBcIlwiLFxuICB0aGVtZSA9IFwibGlnaHRcIixcbiAgY29sb3JzID0ge30sXG4gIG5vdGF0aW9uLFxuICB0b29sdGlwID0ge1xuICAgIG1hcmdpbjogMTAsXG4gIH0sXG4gIHNob3dUb29sdGlwID0gdHJ1ZSxcbiAgc2hvd0hhbGYgPSBcImZ1bGxcIixcbiAgbmFtZSxcbiAgbWF4VGVldGggPSA4LFxuXG59KSA9PiB7XG4gIGNvbnN0IHRoZW1lQ29sb3JzID1cbiAgICB0aGVtZSA9PT0gXCJkYXJrXCJcbiAgICAgID8ge1xuICAgICAgICBcIi0tZGFyay1ibHVlXCI6IFwiI2FhYjZmZlwiLFxuICAgICAgICBcIi0tYmFzZS1ibHVlXCI6IFwiI2QwZDVmNlwiLFxuICAgICAgICBcIi0tbGlnaHQtYmx1ZVwiOiBcIiM1MzYxZTZcIixcbiAgICAgIH1cbiAgICAgIDoge1xuICAgICAgICBcIi0tZGFyay1ibHVlXCI6IFwiIzNlNWVkY1wiLFxuICAgICAgICBcIi0tYmFzZS1ibHVlXCI6IFwiIzhhOThiZVwiLFxuICAgICAgICBcIi0tbGlnaHQtYmx1ZVwiOiBcIiNjNmNjZjhcIixcbiAgICAgIH07XG5cbiAgY29uc3QgW3NlbGVjdGVkLCBzZXRTZWxlY3RlZF0gPSB1c2VTdGF0ZTxTZXQ8c3RyaW5nPj4oXG4gICAgbmV3IFNldChkZWZhdWx0U2VsZWN0ZWQpXG4gICk7XG5cbiAgY29uc3Qgc3ZnUmVmID0gdXNlUmVmPFNWR1NWR0VsZW1lbnQ+KG51bGwpO1xuICBjb25zdCBfdG9vbHRpcFJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbCk7XG5cbiAgY29uc3QgW3Rvb2x0aXBEYXRhLCBzZXRUb29sdGlwRGF0YV0gPSB1c2VTdGF0ZTx7XG4gICAgYWN0aXZlOiBib29sZWFuO1xuICAgIHBvc2l0aW9uPzogeyB4OiBudW1iZXI7IHk6IG51bWJlciB9O1xuICAgIHBheWxvYWQ/OiBUb290aERldGFpbDtcbiAgfT4oeyBhY3RpdmU6IGZhbHNlIH0pO1xuXG4gIGNvbnN0IGhhbmRsZVRvZ2dsZSA9IHVzZUNhbGxiYWNrKFxuICAgIChuYW1lOiBzdHJpbmcpID0+IHtcbiAgICAgIHNldFNlbGVjdGVkKChwcmV2KSA9PiB7XG4gICAgICAgIGNvbnN0IHVwZGF0ZWQgPSBuZXcgU2V0KHByZXYpO1xuICAgICAgICB1cGRhdGVkLmhhcyhuYW1lKSA/IHVwZGF0ZWQuZGVsZXRlKG5hbWUpIDogdXBkYXRlZC5hZGQobmFtZSk7XG5cbiAgICAgICAgLy8gYnVpbGQgZGV0YWlsZWQgSlNPTiBvdXRwdXRcbiAgICAgICAgY29uc3QgZGV0YWlscyA9IEFycmF5LmZyb20odXBkYXRlZCkubWFwKChpZCkgPT4ge1xuICAgICAgICAgIGNvbnN0IGZkaSA9IGlkLnJlcGxhY2UoXCJ0ZWV0aC1cIiwgXCJcIik7XG4gICAgICAgICAgY29uc3QgdG9vdGhCYXNlID0gZmRpLnNsaWNlKDEpO1xuICAgICAgICAgIGNvbnN0IHRvb3RoRGF0YSA9IHRlZXRoUGF0aHMuZmluZCgodCkgPT4gdC5uYW1lID09PSB0b290aEJhc2UpO1xuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBpZCxcbiAgICAgICAgICAgIG5vdGF0aW9uczogZ2V0VG9vdGhOb3RhdGlvbnMoaWQpLFxuICAgICAgICAgICAgdHlwZTogdG9vdGhEYXRhPy50eXBlID8/IFwiVW5rbm93blwiLFxuICAgICAgICAgIH07XG4gICAgICAgIH0pO1xuXG4gICAgICAgIG9uQ2hhbmdlPy4oZGV0YWlscyk7XG4gICAgICAgIHJldHVybiB1cGRhdGVkO1xuICAgICAgfSk7XG4gICAgfSxcbiAgICBbb25DaGFuZ2VdXG4gICk7XG4gIGNvbnN0IGhhbmRsZUtleURvd24gPSB1c2VDYWxsYmFjayhcbiAgICAoZTogUmVhY3QuS2V5Ym9hcmRFdmVudDxTVkdHRWxlbWVudD4sIG5hbWU6IHN0cmluZykgPT4ge1xuICAgICAgaWYgKGUua2V5ID09PSBcIkVudGVyXCIgfHwgZS5rZXkgPT09IFwiIFwiKSB7XG4gICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgaGFuZGxlVG9nZ2xlKG5hbWUpO1xuICAgICAgfVxuICAgIH0sXG4gICAgW2hhbmRsZVRvZ2dsZV1cbiAgKTtcblxuICBjb25zdCBxdWFkcmFudHM6IEFycmF5PHtcbiAgICBuYW1lOiBcImZpcnN0XCIgfCBcInNlY29uZFwiIHwgXCJ0aGlyZFwiIHwgXCJmb3VydGhcIjtcbiAgICB0cmFuc2Zvcm06IHN0cmluZztcbiAgICBsYWJlbDogc3RyaW5nO1xuICAgIHBvc2l0aW9uOiB7IHg6IG51bWJlcjsgeTogbnVtYmVyIH07XG4gIH0+ID0gW1xuICAgICAge1xuICAgICAgICBuYW1lOiBcImZpcnN0XCIsXG4gICAgICAgIHRyYW5zZm9ybTogXCJcIixcbiAgICAgICAgbGFiZWw6IFwiVXBwZXIgUmlnaHRcIixcbiAgICAgICAgcG9zaXRpb246IHsgeDogMTAwLCB5OiAzMCB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogXCJzZWNvbmRcIixcbiAgICAgICAgdHJhbnNmb3JtOiBcInNjYWxlKC0xLCAxKSB0cmFuc2xhdGUoLTQwOSwgMClcIixcbiAgICAgICAgbGFiZWw6IFwiVXBwZXIgTGVmdFwiLFxuICAgICAgICBwb3NpdGlvbjogeyB4OiAzMDksIHk6IDMwIH0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBuYW1lOiBcInRoaXJkXCIsXG4gICAgICAgIHRyYW5zZm9ybTogXCJzY2FsZSgxLCAtMSkgdHJhbnNsYXRlKDAsIC02OTQpXCIsXG4gICAgICAgIGxhYmVsOiBcIkxvd2VyIFJpZ2h0XCIsXG4gICAgICAgIHBvc2l0aW9uOiB7IHg6IDEwMCwgeTogNjY0IH0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBuYW1lOiBcImZvdXJ0aFwiLFxuICAgICAgICB0cmFuc2Zvcm06IFwic2NhbGUoLTEsIC0xKSB0cmFuc2xhdGUoLTQwOSwgLTY5NClcIixcbiAgICAgICAgbGFiZWw6IFwiTG93ZXIgTGVmdFwiLFxuICAgICAgICBwb3NpdGlvbjogeyB4OiAzMDksIHk6IDY2NCB9LFxuICAgICAgfSxcbiAgICBdO1xuXG4gIGxldCB2aXNpYmxlUXVhZHJhbnRzID0gcXVhZHJhbnRzO1xuICBpZiAoc2hvd0hhbGYgPT09IFwidXBwZXJcIikge1xuICAgIHZpc2libGVRdWFkcmFudHMgPSBxdWFkcmFudHMuc2xpY2UoMCwgMik7XG4gIH0gZWxzZSBpZiAoc2hvd0hhbGYgPT09IFwibG93ZXJcIikge1xuICAgIHZpc2libGVRdWFkcmFudHMgPSBxdWFkcmFudHMuc2xpY2UoMik7XG4gIH1cblxuICBjb25zdCBoYW5kbGVIb3ZlciA9IChcbiAgICBuYW1lOiBzdHJpbmcsXG4gICAgZTogUmVhY3QuTW91c2VFdmVudCxcbiAgICBwbGFjZW1lbnQ6IFBsYWNlbWVudCA9IFwicmlnaHRcIiAvLyBkZWZhdWx0XG4gICkgPT4ge1xuICAgIGNvbnN0IHRhcmdldCA9IGUuY3VycmVudFRhcmdldCBhcyBTVkdHRWxlbWVudDtcbiAgICBjb25zdCBwYXRoID0gdGFyZ2V0LnF1ZXJ5U2VsZWN0b3IoXCJwYXRoXCIpO1xuXG4gICAgaWYgKCEocGF0aCAmJiBzdmdSZWYuY3VycmVudCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCB0b290aEJveCA9IHBhdGguZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgY29uc3Qgc3ZnQm94ID0gc3ZnUmVmLmN1cnJlbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG5cbiAgICBjb25zdCBtYXJnaW4gPSB0b29sdGlwPy5tYXJnaW4gfHwgMTA7IC8vIGRpc3RhbmNlIGJldHdlZW4gdG9vdGggYW5kIHRvb2x0aXBcblxuICAgIC8vIENvbXB1dGUgdG9vbHRpcCBwb3NpdGlvbiBqdXN0IGFib3ZlIG9yIGJlbG93IGRlcGVuZGluZyBvbiBzcGFjZVxuXG4gICAgY29uc3QgeyB4LCB5IH0gPVxuICAgICAgcGxhY2VtZW50c1twbGFjZW1lbnRdPy4odG9vdGhCb3gsIG1hcmdpbikgPz9cbiAgICAgIHBsYWNlbWVudHMucmlnaHQodG9vdGhCb3gsIG1hcmdpbik7XG5cbiAgICBjb25zdCBzYWZlWSA9IHkgPCBzdmdCb3gudG9wID8gdG9vdGhCb3guYm90dG9tICsgbWFyZ2luIDogeTtcblxuICAgIHNldFRvb2x0aXBEYXRhKHtcbiAgICAgIGFjdGl2ZTogdHJ1ZSxcbiAgICAgIHBvc2l0aW9uOiB7IHgsIHk6IHNhZmVZIH0sXG4gICAgICBwYXlsb2FkOiB7XG4gICAgICAgIGlkOiBuYW1lLFxuICAgICAgICBub3RhdGlvbnM6IGdldFRvb3RoTm90YXRpb25zKG5hbWUpLFxuICAgICAgICB0eXBlOlxuICAgICAgICAgIHRlZXRoUGF0aHMuZmluZCgodCkgPT4gdC5uYW1lID09PSBuYW1lLnJlcGxhY2UoXCJ0ZWV0aC1cIiwgXCJcIikuc2xpY2UoMSkpXG4gICAgICAgICAgICA/LnR5cGUgPz8gXCJVbmtub3duXCIsXG4gICAgICB9LFxuICAgIH0pO1xuICB9O1xuICBjb25zdCBoYW5kbGVMZWF2ZSA9ICgpID0+IHNldFRvb2x0aXBEYXRhKChwKSA9PiAoeyAuLi5wLCBhY3RpdmU6IGZhbHNlIH0pKTtcbiAgY29uc3QgcmVuZGVyVGVldGggPSAocHJlZml4OiBzdHJpbmcsIG1heFRlZXRoPzogbnVtYmVyKSA9PiB7XG4gICAgLy8gRklYRUQ6IHVzZSBzbGljZSgpIGluc3RlYWQgb2Ygc3BsaWNlKClcbiAgICBjb25zdCBmaWx0ZXJlZFRlZXRoID0gbWF4VGVldGhcbiAgICAgID8gdGVldGhQYXRocy5zbGljZSgwLCBtYXhUZWV0aClcbiAgICAgIDogdGVldGhQYXRocztcblxuICAgIHJldHVybiBmaWx0ZXJlZFRlZXRoLm1hcCgodG9vdGgpID0+IHtcbiAgICAgIGNvbnN0IGlkID0gYCR7cHJlZml4fSR7dG9vdGgubmFtZX1gO1xuICAgICAgY29uc3QgZGlzcGxheU5hbWUgPSBjb252ZXJ0RkRJVG9Ob3RhdGlvbihpZCwgbm90YXRpb24gPz8gXCJGRElcIik7XG5cbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxUZWV0aFxuICAgICAgICAgIGtleT17aWR9XG4gICAgICAgICAgey4uLnRvb3RofVxuICAgICAgICAgIG5hbWU9e2lkfVxuICAgICAgICAgIHNlbGVjdGVkPXtzZWxlY3RlZC5oYXMoaWQpfVxuICAgICAgICAgIG9uQ2xpY2s9e2hhbmRsZVRvZ2dsZX1cbiAgICAgICAgICBvbktleURvd249e2hhbmRsZUtleURvd259XG4gICAgICAgICAgb25Ib3Zlcj17KG5hbWUsIGUpID0+IGhhbmRsZUhvdmVyKG5hbWUsIGUsIHRvb2x0aXA/LnBsYWNlbWVudCl9XG4gICAgICAgICAgb25MZWF2ZT17aGFuZGxlTGVhdmV9XG4gICAgICAgID5cbiAgICAgICAgICA8dGl0bGU+e2Rpc3BsYXlOYW1lfTwvdGl0bGU+XG4gICAgICAgIDwvVGVldGg+XG4gICAgICApO1xuICAgIH0pO1xuICB9O1xuXG4gIGNvbnN0IGZpbmFsQ29sb3JzID0geyAuLi50aGVtZUNvbG9ycywgLi4ubWFwVG9Dc3NWYXJzKGNvbG9ycykgfTtcblxuICByZXR1cm4gKFxuICAgIDxkaXZcbiAgICAgIGNsYXNzTmFtZT17YE9kb250b2dyYW0gJHt0aGVtZSA9PT0gXCJkYXJrXCIgPyBcImRhcmstdGhlbWVcIiA6IFwiXCJ9YH1cbiAgICAgIHN0eWxlPXt7XG4gICAgICAgIC4uLihmaW5hbENvbG9ycyBhcyBDU1NQcm9wZXJ0aWVzKSxcbiAgICAgICAgd2lkdGg6IFwiMTAwJVwiLFxuICAgICAgICBtYXhXaWR0aDogMzAwLFxuICAgICAgICBtYXJnaW46IFwiMCBhdXRvXCIsXG4gICAgICAgIGRpc3BsYXk6IFwiZmxleFwiLFxuICAgICAgICBqdXN0aWZ5Q29udGVudDogXCJjZW50ZXJcIixcbiAgICAgICAgYWxpZ25JdGVtczogXCJjZW50ZXJcIixcbiAgICAgICAgLy8gaXNvbGF0aW9uOiBcImlzb2xhdGVcIixcbiAgICAgIH19XG4gICAgICByb2xlPVwibGlzdGJveFwiXG4gICAgICBhcmlhLWxhYmVsPVwiT2RvbnRvZ3JhbVwiXG4gICAgICBhcmlhLW11bHRpc2VsZWN0YWJsZT1cInRydWVcIlxuICAgID5cbiAgICAgIDxpbnB1dFxuICAgICAgICB0eXBlPVwiaGlkZGVuXCJcbiAgICAgICAgbmFtZT17bmFtZSA/PyBcInRlZXRoXCJ9XG4gICAgICAgIHZhbHVlPXtKU09OLnN0cmluZ2lmeShBcnJheS5mcm9tKHNlbGVjdGVkKSl9XG4gICAgICAvPlxuICAgICAgPHN2Z1xuICAgICAgICByZWY9e3N2Z1JlZn1cbiAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXG4gICAgICAgIGZpbGw9XCJub25lXCJcbiAgICAgICAgdmlld0JveD17XG4gICAgICAgICAgc2hvd0hhbGYgPT09IFwiZnVsbFwiXG4gICAgICAgICAgICA/IFwiMCAwIDQwOSA2OTRcIlxuICAgICAgICAgICAgOiBzaG93SGFsZiA9PT0gXCJ1cHBlclwiXG4gICAgICAgICAgICAgID8gXCIwIDAgNDA5IDM0N1wiXG4gICAgICAgICAgICAgIDogXCIwIDM0NyA0MDkgMzQ3XCJcbiAgICAgICAgfVxuICAgICAgICBjbGFzc05hbWU9XCJPZG9udG9ncmFtXCJcbiAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICB3aWR0aDogXCIxMDAlXCIsXG4gICAgICAgICAgaGVpZ2h0OiBcImF1dG9cIixcbiAgICAgICAgICB1c2VyU2VsZWN0OiBcIm5vbmVcIixcbiAgICAgICAgICB0b3VjaEFjdGlvbjogXCJtYW5pcHVsYXRpb25cIixcbiAgICAgICAgfX1cbiAgICAgID5cbiAgICAgICAgPHRpdGxlPk9kb250b2dyYW08L3RpdGxlPlxuICAgICAgICB7dmlzaWJsZVF1YWRyYW50cy5tYXAoKHsgbmFtZSwgdHJhbnNmb3JtLCBsYWJlbCwgcG9zaXRpb24gfSwgaW5kZXgpID0+IChcbiAgICAgICAgICA8Z1xuICAgICAgICAgICAgcm9sZT1cImdyb3VwXCJcbiAgICAgICAgICAgIGFyaWEtbGFiZWw9e2xhYmVsfVxuICAgICAgICAgICAga2V5PXtuYW1lfVxuICAgICAgICAgICAgbmFtZT17bmFtZX1cbiAgICAgICAgICAgIHRyYW5zZm9ybT17dHJhbnNmb3JtfVxuICAgICAgICAgID5cbiAgICAgICAgICAgIHtyZW5kZXJUZWV0aChgdGVldGgtJHtpbmRleCArIDF9YCwgbWF4VGVldGgpfVxuICAgICAgICAgIDwvZz5cbiAgICAgICAgKSl9XG4gICAgICA8L3N2Zz5cbiAgICAgIHtzaG93VG9vbHRpcCAmJiAoXG4gICAgICAgIDxPZG9udG9ncmFtVG9vbHRpcFxuICAgICAgICAgIGFjdGl2ZT17dG9vbHRpcERhdGEuYWN0aXZlfVxuICAgICAgICAgIHBvc2l0aW9uPXt0b29sdGlwRGF0YS5wb3NpdGlvbn1cbiAgICAgICAgICBwYXlsb2FkPXt0b29sdGlwRGF0YS5wYXlsb2FkfVxuICAgICAgICAgIGNvbnRlbnQ9e3Rvb2x0aXA/LmNvbnRlbnR9XG4gICAgICAgIC8+XG4gICAgICApfVxuICAgIDwvZGl2PlxuICApO1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIG1hcFRvQ3NzVmFycyhjb2xvcnM6IFJlY29yZDxzdHJpbmcsIHN0cmluZyB8IHVuZGVmaW5lZD4pIHtcbiAgY29uc3QgY3NzVmFyczogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHt9O1xuICBpZiAoY29sb3JzLmRhcmtCbHVlKSB7XG4gICAgY3NzVmFyc1tcIi0tZGFyay1ibHVlXCJdID0gY29sb3JzLmRhcmtCbHVlO1xuICB9XG4gIGlmIChjb2xvcnMuYmFzZUJsdWUpIHtcbiAgICBjc3NWYXJzW1wiLS1iYXNlLWJsdWVcIl0gPSBjb2xvcnMuYmFzZUJsdWU7XG4gIH1cbiAgaWYgKGNvbG9ycy5saWdodEJsdWUpIHtcbiAgICBjc3NWYXJzW1wiLS1saWdodC1ibHVlXCJdID0gY29sb3JzLmxpZ2h0Qmx1ZTtcbiAgfVxuICByZXR1cm4gY3NzVmFycztcbn1cblxuZXhwb3J0IGRlZmF1bHQgT2RvbnRvZ3JhbTtcbiIsICJpbXBvcnQgeyB1c2VFZmZlY3QsIHVzZVJlZiB9IGZyb20gXCJyZWFjdFwiO1xuXG5leHBvcnQgdHlwZSBUb29sdGlwQ29udGVudFJlbmRlcmVyID0gKHBheWxvYWQ/OiBhbnkpID0+IFJlYWN0LlJlYWN0Tm9kZTtcblxuZXhwb3J0IGludGVyZmFjZSBPZG9udG9ncmFtVG9vbHRpcFByb3BzIHtcbiAgYWN0aXZlOiBib29sZWFuO1xuICBwYXlsb2FkPzogYW55O1xuICBwb3NpdGlvbj86IHsgeDogbnVtYmVyOyB5OiBudW1iZXIgfTtcbiAgY29udGVudD86IFJlYWN0LlJlYWN0Tm9kZSB8IFRvb2x0aXBDb250ZW50UmVuZGVyZXI7XG59XG5cbmNvbnN0IGdldENvbnRlbnQgPSAoXG4gIGNvbnRlbnQ6IFJlYWN0LlJlYWN0Tm9kZSB8IFRvb2x0aXBDb250ZW50UmVuZGVyZXIsXG4gIHBheWxvYWQ/OiBhbnlcbikgPT4ge1xuICByZXR1cm4gdHlwZW9mIGNvbnRlbnQgPT09IFwiZnVuY3Rpb25cIiA/IGNvbnRlbnQocGF5bG9hZCkgOiBjb250ZW50O1xufTtcblxuZXhwb3J0IGNvbnN0IE9kb250b2dyYW1Ub29sdGlwOiBSZWFjdC5GQzxPZG9udG9ncmFtVG9vbHRpcFByb3BzPiA9ICh7XG4gIGFjdGl2ZSxcbiAgcGF5bG9hZCxcbiAgcG9zaXRpb24sXG4gIGNvbnRlbnQsXG59KSA9PiB7XG4gIGNvbnN0IHJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbCk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAocmVmLmN1cnJlbnQgJiYgcG9zaXRpb24pIHtcbiAgICAgIGNvbnN0IHsgeCwgeSB9ID0gcG9zaXRpb247XG4gICAgICByZWYuY3VycmVudC5zdHlsZS5sZWZ0ID0gYCR7eCArIDEwfXB4YDtcbiAgICAgIHJlZi5jdXJyZW50LnN0eWxlLnRvcCA9IGAke3kgKyAxMH1weGA7XG4gICAgfVxuICB9LCBbcG9zaXRpb25dKTtcblxuICBpZiAoIShhY3RpdmUgJiYgcGF5bG9hZCkpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPGRpdlxuICAgICAgcmVmPXtyZWZ9XG4gICAgICBjbGFzc05hbWU9XCJvZG9udG9ncmFtLXRvb2x0aXBcIlxuICAgICAgc3R5bGU9e3tcbiAgICAgICAgcG9zaXRpb246IFwiZml4ZWRcIixcbiAgICAgICAgcG9pbnRlckV2ZW50czogXCJub25lXCIsXG4gICAgICAgIGJhY2tncm91bmQ6IFwicmdiYSgwLCAwLCAwLCAwLjc1KVwiLFxuICAgICAgICBjb2xvcjogXCIjZmZmXCIsXG4gICAgICAgIHBhZGRpbmc6IFwiNnB4IDEwcHhcIixcbiAgICAgICAgYm9yZGVyUmFkaXVzOiBcIjZweFwiLFxuICAgICAgICBmb250U2l6ZTogXCIxMnB4XCIsXG4gICAgICAgIGxpbmVIZWlnaHQ6IDEuMyxcbiAgICAgICAgd2hpdGVTcGFjZTogXCJub3dyYXBcIixcbiAgICAgICAgekluZGV4OiAxMDAwLFxuICAgICAgICB0cmFuc2Zvcm06IFwidHJhbnNsYXRlKC01MCUsIC0xMDAlKVwiLFxuICAgICAgICB0cmFuc2l0aW9uOiBcIm9wYWNpdHkgMC4xNXMgZWFzZVwiLFxuICAgICAgfX1cbiAgICA+XG4gICAgICB7Z2V0Q29udGVudChjb250ZW50LCBwYXlsb2FkKSA/PyAoXG4gICAgICAgIDw+XG4gICAgICAgICAgPGRpdj5Ub290aDoge3BheWxvYWQ/Lm5vdGF0aW9ucz8uZmRpfTwvZGl2PlxuICAgICAgICAgIDxkaXY+VHlwZToge3BheWxvYWQ/LnR5cGV9PC9kaXY+XG4gICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIFVuaXZlcnNhbDoge3BheWxvYWQ/Lm5vdGF0aW9ucz8udW5pdmVyc2FsfSwgUGFsbWVyOntcIiBcIn1cbiAgICAgICAgICAgIHtwYXlsb2FkPy5ub3RhdGlvbnM/LnBhbG1lcn1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC8+XG4gICAgICApfVxuICAgIDwvZGl2PlxuICApO1xufTtcbiIsICJleHBvcnQgY29uc3QgdGVldGhQYXRocyA9IFtcblx0e1xuXHRcdG5hbWU6IFwiMVwiLFxuXHRcdHR5cGU6IFwiQ2VudHJhbCBJbmNpc29yXCIsXG5cdFx0b3V0bGluZVBhdGg6XG5cdFx0XHRcIk0xNzMuOTUxIDEuNjk4Yy0yLjE5OC4xNi01LjMwMi44NjItNS4zMDIuODYycy01LjUzMSAxLjAyNS03Ljc4MSAyLjI3Yy0yLjQwMyAxLjMzMy01LjU1MyAzLjI5OS02LjAxMyA1LjI1OC0uNDMyIDEuODQtLjc4IDQuNzM0LS40OTEgNi44MzJsLjAyNy4yYy4zNDggMi41MjcuODY1IDYuMjggMS4yMzkgMTAuMzE2LjE4NiAyLS4xMDEgMy4yMS43NTEgNi4xNi44OTUgMy4xIDEuMzk1IDQuNTczIDIuMDEzIDUuNjg3LjY0NiAxLjE2NCAxLjQ5MyAyLjA4NyAyLjAzIDMuMjguODY2IDEuOTI0IDIuMzkzIDQuMjkgMy44NyA2LjFhNDguODA1IDQ4LjgwNSAwIDAgMCAyLjM2IDIuNjYzYzEuMDE2IDEuMDc4IDIuODE5IDMuMTEgMy44OTggNC4zMzEgMS41MjYgMS43MjcgMy4wNzYgMy4yNDggNC40MjMgMy43NDIgMS4yMTcuNDQ2IDIuNzA5LjY0MiAzLjc5My45MzYgMS4zNjkuMzcyIDIuNDk0LjYzOCA0LjU5NyAwIDEuNTQ1LS40NjggMi43MjUtLjYyMSA0LjM3Mi0yLjQyNCAyLjA2NC0yLjI1OCAyLjg0Ni0zLjUxNyAzLjUxMi00Ljc0NiAxLjA2NS0xLjk2NCAyLjUyNC00LjY0OCAzLjU0MS02LjQyMi42MTEtMS4wNjggMi4yMjEtMy4wODkgNC4wODYtOC44NDUgMS41NC00Ljc1MiAyLjM2Ny03Ljc2IDIuNzMxLTguOTk0LjQxNS0xLjQwOCAxLjA3OS0zLjU4MyAxLjM1NS02LjE5Ni40NC00LjE3NiAxLjExNC03LjQ4MiAxLjA2Mi0xMS4wMjYtLjA0NC0zLjA0Ni4xMDQtNS4wNC0xLjA2NS02LjMwNi0uOTUtMS4wMjktMS45ODgtMi4wMDEtMy4zMDYtMi41MzQtMS45NTktLjc5LTMuNzc1LTEuMzU4LTUuMjk4LTEuNTkyLTEuMzUxLS4yMDctNy4wNS0uMzUtMTEuMjE5LS4wNTctMS41NjcuMTEtMy42MS4wOTctOS4xODUuNTA1WlwiLFxuXHRcdHNoYWRvd1BhdGg6XG5cdFx0XHRcIk0xODguMjY5IDUwLjIxNWMxOS4yNzUtNDEuODY3IDEwLjc2Ni00My42MTIgNC45MzctNDQuNjg0LTUuODI5LTEuMDczLTI4LjQ1NSAyLjUzLTI5LjcyIDIuODE3LS40NDIuMjE4LTguOTExIDAtNC43NjcgMTkuNTQgMy40MTYgMTYuMTA1IDE2LjE5MyAyNi41OTYgMTcuMjQ0IDI3LjI2NSAzLjE0OCAyLjAwMyA4LjgzNyAyLjU5NSAxMi4zMDYtNC45MzhaXCIsXG5cdFx0bGluZUhpZ2hsaWdodFBhdGg6XG5cdFx0XHRcIk0xNjAuNDcyIDE0LjcyN2MuMzkyLS40MDIgNC4zMTctMy4zMDkgOC45NDEtNS40NyAzLjA5Ny0xLjQ0OCA3Ljc3My0xLjYyOSAxMS4yMDctMS43NDkgOC43NTktLjM2NSAxMC4wMDQuOTEgMTIuNjM3IDEuNDk1LjU2Mi4xMzkuOTA5LjI3NiAxLjc3MS41OTVcIixcblx0fSxcblxuXHR7XG5cdFx0bmFtZTogXCIyXCIsXG5cdFx0dHlwZTogXCJMYXRlcmFsIEluY2lzb3JcIixcblxuXHRcdG91dGxpbmVQYXRoOlxuXHRcdFx0XCJNMTM1LjAxNiA2MC40MWMzLjQ0MyAxLjM1NSA3LjgzNCAyLjczIDkuNjAxIDIuMzQ2IDQuMTg1LS45MSA3LjA0NC00LjAxNyA4LjEyMy04LjE1MiAyLjA2OS03LjkyNyAyLjI0OS0xNi4yODggMS45OTUtMjQuNDM2LS4xMTMtMy41OTYuNzItMTYuODEtNC4xODQtMTguNDQ0LTguMTM1LTYuMTQtMzIuMDg4LjQ5NC0zNi45NzkgOC4wNTUtNS4wMTMgNy43NTEuODc4IDIxLjEzMSA1LjU2IDI3LjcyOCAzLjg2MiA1LjQ0IDkuNzE0IDEwLjQ3NCAxNS44ODQgMTIuOTAzWlwiLFxuXHRcdHNoYWRvd1BhdGg6XG5cdFx0XHRcIk0xMzQuNjUgNTUuMzg2YzIuNzMyIDEuMDc2IDYuMjE3IDIuMTY3IDcuNjIgMS44NjIgMy4zMjEtLjcyMyA1LjU5LTMuMTg4IDYuNDQ2LTYuNDcgMS42NDItNi4yOSAxLjc4Ni0xMi45MjcgMS41ODMtMTkuMzkzLS4wODktMi44NTQuNTcyLTEzLjM0Mi0zLjMyLTE0LjYzOC02LjQ1Ni00Ljg3My0yNS40NjYuMzkyLTI5LjM0OCA2LjM5My0zLjk3OSA2LjE1Mi42OTYgMTYuNzcgNC40MTMgMjIuMDA2IDMuMDY0IDQuMzE3IDcuNzA5IDguMzEzIDEyLjYwNiAxMC4yNFpcIixcblx0XHRsaW5lSGlnaGxpZ2h0UGF0aDpcblx0XHRcdFwiTTEyMS41NjkgMjguOTUyYy41NTEtLjk4NCA2LjM1NC04LjIxNCAxMi44NjYtOS4wNDUgMy4yMzgtLjQxMyAxMC42MTktLjE3IDExLjgzOCAwXCIsXG5cdH0sXG5cdHtcblx0XHRuYW1lOiBcIjNcIixcblx0XHR0eXBlOiBcIkNhbmluZVwiLFxuXG5cdFx0b3V0bGluZVBhdGg6XG5cdFx0XHRcIk03Ny42MyA2NC4yMzZjMS42OTIgMS40MDEgMTUuNTE2IDE0LjU4MyAzNC42OTggMTYuOTAzIDUuNTY5LjY3NCAxNS4wNTgtNy4xODQgMTUuNzg5LTEyLjg5IDEuMzM1LTEwLjQyMy0xMi40NDQtMjkuMjA1LTIxLjk2NS0zMy43MDMtNC41NDItMi4xNDUtMjUuODkyLTQuMDM5LTI4LjUyMyAyLjkzOS0yLjQ3MSA2LjU1Ny02LjU5NiAyMS4yOSAwIDI2Ljc1MVpcIixcblx0XHRzaGFkb3dQYXRoOlxuXHRcdFx0XCJNMTIzLjI4NSA2Ni4yNjdjMS4wNzItOC4zNjgtMTAuMjM0LTIzLjk0LTE3Ljk5LTI3LjYwMy0zLjcyLTEuNzU3LTIxLjIwNi0zLjMwOC0yMy4zNiAyLjQwNy0xLjc1NyA0LjY2LTQuMDkgMTMuMjg0LTIuMzA2IDE4LjE3IDQuMTUgMTEuMzYgNDAuODk3IDI4LjU3MyA0My42NTYgNy4wMjZaXCIsXG5cdFx0bGluZUhpZ2hsaWdodFBhdGg6IFtcblx0XHRcdFwiTTgyLjg0IDYwLjA0M2MtLjAxLS44NTUtLjE5My00LjYzLjI1Ni04LjEyLjY2Ny01LjE4NS43MDMtNS44NjYgMS4yOS04LjEwNi40MzctMS42NjYgMi4wODMtNC45MSAxNy40ODctMy43NDhcIixcblx0XHRcdFwiTTEwMS40MzggNjguNDljLjM3Ni0uMDQ1IDIuMjg0LTUuMTEyIDkuNDk4LTYuMzQ0XCIsXG5cdFx0XSxcblx0fSxcblx0e1xuXHRcdG5hbWU6IFwiNFwiLFxuXHRcdHR5cGU6IFwiRmlyc3QgUHJlbW9sYXJcIixcblxuXHRcdG91dGxpbmVQYXRoOlxuXHRcdFx0XCJNOTMuNjg0IDEwOC43NDhjLTcuNDk4IDMuMzk3LTM1LjM2OC03LjM5Ny0zNS41OTYtNy40NDEtMS40MjktLjg0Mi0xMi4yMTUtMi44NTQtOS4wNjgtMjkuNDE0LjE0Ny0xLjIzOCAxLjM1My0yLjA1IDIuMjE4LTIuNTU2Ljk1Ni0uNTU5IDMuMTU3LTEuNTk1IDcuNTg3LTIuNzk0IDIuNzA3LS43MzQgMTMuODU2LTMuNTQgMTguNjc0LS45MiAyLjIxNiAxLjIwNiA2LjM2MyA0LjExNyAxMC40NzMgNy4wMzYgNC4xMSAyLjkxOSAxMC45NTggOC43MTUgMTMuMzI3IDExLjMzOCAyLjI5MSAyLjUzNyAxMC4zMjQgMTMuNzUtNy42MTUgMjQuNzUxWlwiLFxuXHRcdHNoYWRvd1BhdGg6XG5cdFx0XHRcIk05MS40OTUgMTA1LjkzMWMtNi41MjggMi45NTgtMzAuNzkzLTYuNDQtMzAuOTkyLTYuNDc4LTEuMjQzLS43MzQtMTAuNjM0LTIuNDg2LTcuODk1LTI1LjYxLjEyOC0xLjA3OCAxLjE3OC0xLjc4NSAxLjkzMi0yLjIyNS44MzItLjQ4NyAyLjc0OC0xLjM5IDYuNjA1LTIuNDMzIDIuMzU3LS42MzkgMTIuMDY0LTMuMDgyIDE2LjI1OC0uOCAxLjkzIDEuMDUgNS41NCAzLjU4NCA5LjEyIDYuMTI1IDMuNTc4IDIuNTQxIDkuNTQgNy41ODggMTEuNjAzIDkuODcyIDEuOTk0IDIuMjA4IDguOTg3IDExLjk3MS02LjYzIDIxLjU0OVpcIixcblx0XHRsaW5lSGlnaGxpZ2h0UGF0aDogW1xuXHRcdFx0XCJNNTUuMjM0IDkyLjQxNGMuMDIyLS4yNDIuMDYtMS40NjkuODc1LTcuNzkuNDYtMy41NzMgMS44MTMtNS40OSAzLjEzNC03LjAxIDEuMTgtMS4zNTkgMy41MjQtMy4xOTMgNS44OC00LjM2NSAxLjQ2LS42MzIgMy4wMjktMS4xMjYgNi4wNDQtMS43NzYuODI2LS4xMzggMS40NzctLjE3NSAyLjUyNi0uMzk1XCIsXG5cdFx0XHRcIk04Ny4wMiAxMDEuMzg3YzQuMTgzLS43OTIgOC43NDctOS43NzQgOC43NDctOS43NzRcIixcblx0XHRdLFxuXHR9LFxuXHR7XG5cdFx0bmFtZTogXCI1XCIsXG5cdFx0dHlwZTogXCJTZWNvbmQgUHJlbW9sYXJcIixcblx0XHRvdXRsaW5lUGF0aDpcblx0XHRcdFwiTTMzLjM5NiAxMjcuNjUyYy0xLjA4OC0yLjcxMy00LjQ4Ni0xMS44NTItMy45NjItMTUuMjQ2LjQ3Ny0zLjA4NSAxNC40Ny0xMi4wMDggMjMuNTk1LTEyLjAwOCAyLjE3OCAwIDI1LjE1NyA2LjY2NSAzNS4wNzMgMTcuOTA4IDQuNTUxIDkuMzI0LTEuNjI0IDIzLjMzOS0xNi4yMiAyMy4zMzktOC4xOTMgMC0yMy41NjMtMS44OTctMjUuNDUzLTIuMjE1LTEuODk2LS4zMTktNC4zMTctMS4xMjgtNi41OTYtMi4zMjEtMS4yODktLjY3NS0yLTEuMDM1LTIuNDc4LTEuNjQ3LS42NTUtLjg0LTIuMTAxLTMuMTc4LTMuOTYtNy44MVpcIixcblx0XHRzaGFkb3dQYXRoOlxuXHRcdFx0XCJNMzYuODM3IDEyNi43NzhjLS45NDUtMi4zNTYtMy44OTUtMTAuMjg5LTMuNDQtMTMuMjM1LjQxNC0yLjY3OSAxMi41NjEtMTAuNDI0IDIwLjQ4My0xMC40MjQgMS44OSAwIDIxLjgzNyA1Ljc4NSAzMC40NDUgMTUuNTQ1IDMuOTUxIDguMDk0LTEuNDEgMjAuMjYtMTQuMDggMjAuMjYtNy4xMTIgMC0yMC40NTQtMS42NDctMjIuMDk1LTEuOTIyLTEuNjQ1LS4yNzctMy43NDctLjk4LTUuNzI1LTIuMDE1LTEuMTItLjU4Ni0xLjczNy0uODk5LTIuMTUxLTEuNDMtLjU3LS43MjktMS44MjUtMi43NTktMy40MzctNi43NzlaXCIsXG5cdFx0bGluZUhpZ2hsaWdodFBhdGg6IFtcblx0XHRcdFwiTTQwLjggMTMxLjIyMWMtNC4wMDMtMjAuMjc4IDguNDQyLTIwLjk3NCAxMy43NzktMjMuNjkyXCIsXG5cdFx0XHRcIk03NC4wNTYgMTM0LjcyOWM2LjM1LTQuMjY0IDYuMzQzLTEwLjUwMyA2LjQ4OS0xMS40NDhcIixcblx0XHRdLFxuXHR9LFxuXHR7XG5cdFx0bmFtZTogXCI2XCIsXG5cdFx0dHlwZTogXCJGaXJzdCBNb2xhclwiLFxuXHRcdG91dGxpbmVQYXRoOlxuXHRcdFx0XCJNMzUuNTM5IDIwMy4zMjNjLTMuMzYzLjE5Ni0zMi43ODgtNC4wMi0yOC40OTUtNDIuNDY1IDMuNjMxLTIwLjQwOCAyNi4yMS0yMy4zNjQgMjkuNTU3LTIyLjkxMiA5LjAxOS0uNzQ1IDI1LjcyNyA2Ljc0MyAyOS4yNTUgOS40MDMgNC41NDYgMy40MjcgNy4zODQgNS42ODEgOC42MDYgNy4wOTIgMi40MzYgMi44MTQgNC40OTkgNS4xMSA0LjcgNi4zMTMuMjg0IDEuNzAzIDEuMzE3IDQuNzItMi4yNDggOS42ODctMi40NTMgMy40MTgtMi45NTcgNi42NjMtMi44NTYgMTAuMjIzLjExOCA0LjE4NS4zNyA5Ljc1NC0uNTI0IDExLjYzLS41OTIgMS4yNDQtLjk4NCAyLjYyNy0yLjM3NSAzLjM5Mi0yLjAxNSAxLjEwOC00LjYxIDIuMzE3LTExLjkzIDMuNzQ4LTMuNjIzLjcwOC05LjMwOSAxLjgzLTEyLjQwMSAyLjI5Mi01LjE5Ljc3Ny04LjQyMyAxLjQzLTExLjI4OSAxLjU5N1pcIixcblx0XHRzaGFkb3dQYXRoOlxuXHRcdFx0XCJNMzYuNTE1IDE5OS4wODVjLTIuOTI3LjE3LTI4LjU0LTMuNDk5LTI0LjgwMy0zNi45NjMgMy4xNi0xNy43NjQgMjIuODE0LTIwLjMzNyAyNS43MjctMTkuOTQ0IDEwLjgyLS44OTMgMjUuNzA5IDUuOTg5IDMyLjk1NSAxNC4zNTggMi4xMiAyLjQ1IDMuOTE3IDQuNDQ4IDQuMDkxIDUuNDk1LjI0OCAxLjQ4Mi41MTMgNC4yNjgtMi41OSA4LjU5MS0yLjEzNSAyLjk3NS0xLjk0IDUuNjQxLTEuODUyIDguNzQuMDk2IDMuNDE3IDEuNDAyIDEwLjkxNy0yLjUyMyAxMy4wNzYtMS43NTQuOTY0LTQuMDEzIDIuMDE2LTEwLjM4NCAzLjI2MS02Ljc2MiAxLjMyMi0xMy43MjggMi45ODQtMjAuNjIxIDMuMzg2WlwiLFxuXHRcdGxpbmVIaWdobGlnaHRQYXRoOiBbXG5cdFx0XHRcIk0zNy4xMzIgMTkyLjE0N2MxLjI4OC0uMzcyIDMuMzg1LTIuMDcxIDUuMTgzLTUuNDM4bTkuMDA4LTM1Ljk4YzEuMTg4IDEuMjI0IDIuMTE0IDYuMzg1LjE1IDExLjM2M20wIDBjLTEuNTM3IDMuODk5LTQuOTQ0IDkuMzc4LTExLjE5NSA5LjM3OCA2Ljg3Ny4zMjEgNC42NTEgMTAuMzQzIDIuMDM3IDE1LjIzOW05LjE1OS0yNC42MTdjMS40Ny0yLjU4OSA0Ljk2Ni03LjU3MiA4LjA2OC04LjIxN20tMTcuMjI3IDMyLjgzNGMtLjE4NiAyLjM0OC4wNDQgNy4zNTEgMi40NTggOC41ODRcIixcblx0XHRdLFxuXHR9LFxuXHR7XG5cdFx0bmFtZTogXCI3XCIsXG5cdFx0dHlwZTogXCJTZWNvbmQgTW9sYXJcIixcblxuXHRcdG91dGxpbmVQYXRoOlxuXHRcdFx0XCJNNC45NjkgMjQ4LjEzMmMtMS4xODgtMi43NC0xNC43MDgtMjcuMTUyIDEyLjMxOS00Mi4xMzkgMS44MzYtMS4wMTggMjQuNTA4LTcuNzExIDQ1LjI4IDEwLjg3NCAyLjI3NCAyLjAzNSA0LjQ1NSAzLjU3OSA1LjQwMyA1LjEwMiAxLjQxNCAyLjI3MSAyLjEyOCAzLjQzNSAxLjY4NyA1LjYwNi0uMzg3IDEuOTAxLTEuNTQgMy42NDItMy43NyA3LjcxMS0xLjEyNyAyLjA1Ni0xLjg1NCAzLjQyNy0xLjM2OSA3LjgyNC4xNzUgMS41OS42MjcgMy45MzUuMDQ4IDYuNjAzLS40NjYgMi4xNDctLjk0MSAzLjU2Ny0yLjU3OCA1LjAwNi0yLjUzIDIuMjI0LTUuMzA3IDMuNjQ1LTkuMDc2IDQuMzUtMS4wOTEuMjA0LTMuMTMzLjgxMS03LjUyNSAxLjcwMi0yLjc3Ni41NjMtNi42MTkgMS4yMzQtMTAuMDkgMS42NTQtMy40Ny40Mi02LjQ3OC42MzgtOC42MTIuNjM2LTMuMzUzLS4wMDItNi43MzQuMDMxLTkuNDY1LTEuNDhsLS4wMTgtLjAxYy0xLjY1NC0uOTE1LTQuMDc2LTIuMjU1LTYuMjQ1LTQuNzMyLTIuMjU4LTIuNTc5LTQuNTkxLTUuNDgyLTUuOTg5LTguNzA3WlwiLFxuXHRcdHNoYWRvd1BhdGg6XG5cdFx0XHRcIk04Ljc5OSAyNDYuMjhjLTEuMTI4LTIuMzUyLTEyLjg0My0yMy43MDkgMTAuNzU2LTM2Ljc5NiAxLjYwNC0uODg5IDIxLjQtNi43MzIgMzkuNTM4IDkuNDk2IDEuOTg2IDEuNzc3IDMuODkgMy4xMjUgNC43MTcgNC40NTQgMS4yMzUgMS45ODMgMS44NTkgMyAxLjQ3MyA0Ljg5NS0uMzM3IDEuNjYtMS4zNDMgMy4xOC0zLjI5MSA2LjczNC0uOTg0IDEuNzk1LTEuNjE5IDIuOTkyLTEuMTk2IDYuODMxLjE1NCAxLjM4OS41NDggMy40MzYuMDQyIDUuNzY2LTIuODcyIDEzLjIzMS0zMS4yMTMgMTEuNjU3LTMzLjA3NiAxMS42NTZoLS4wMDdjLTIuOTM2LS4wMDMtMTIuNzE0LS4wMS0xOC45NTYtMTMuMDM2WlwiLFxuXHRcdGxpbmVIaWdobGlnaHRQYXRoOiBbXG5cdFx0XHRcIk0zMi4xNCAyNTUuMDkxYy43NDgtLjMwMyAyLjI4LTIuMzc4IDMuMTAzLTUuNzIxbS0xLjk5LTM1LjQ4MWMzLjAwOSAxLjM2MyA0LjAxNSA0Ljg4OCAzLjczNiA4LjcxNm0wIDBjLS40MjQgNS44MzUtMy44MzIgMTIuMzc3LTcuNjgzIDEzLjA0OSA2Ljk1NCAxLjE4IDcuMjQ0IDguNDE0IDUuOTM3IDEzLjcxNm0xLjc0Ni0yNi43NjVjLjMyNy0yLjI0IDEuODItNi45NTggNS4xOS03LjkxbS02LjkzNiAzNC42NzVjLjY1IDIuMTcyIDIuNTUgNi41MDcgNC45NjcgNi40NzFcIixcblx0XHRdLFxuXHR9LFxuXHR7XG5cdFx0bmFtZTogXCI4XCIsXG5cdFx0dHlwZTogXCJUaGlyZCBNb2xhclwiLFxuXG5cdFx0b3V0bGluZVBhdGg6XG5cdFx0XHRcIk0uODk1IDI5MS4zMzFjLS4zNjItMS4yMTgtLjExNi0zLjQxMS0uMTY0LTMuODkyLS4wMzUtLjM0LjEyNC0zLjQzOC43MjctNS41NTggMS4wNC0yLjgyIDEuODA4LTQuNzQgMi41NzMtNS43NTIgMS40MTMtMS44NzIgMy45MTMtNC43NjkgNy4xMzUtNy4yIDIuMjg4LTEuNzI2IDUuMDAzLTMuMTg3IDguMTMzLTQuMzM5IDIuMjQ5LS44MjggNC4zNjItMS41MDIgNy43MzItMS42OTMgMi4xNzUtLjEyMyA1LjI1LS4xNTUgOC43ODIuMTA4czcuNDAzLjgwNCAxMC4zNTMgMS4zOTcgNC45MiAxLjIxOCA2LjY0MSAxLjg5M2MxLjcyMi42NzUgMy4xNDggMS4zODkgMy45NzIgMS43NjggMS41MS42OTYgMi45IDEuMjA5IDMuODI0IDIuMTQgMS44NTcgMS44NzIgMi42MTcgMy4zMzQgMi45MTIgNC44MDcuMjU0IDEuMjcuMjUyIDMuMjE2LS4yMjQgNC41MzEtLjY3MiAxLjg1OS0xLjQ2OCAyLjg1Ni0xLjQ2OCA1LjcgMCAzLjg1NyAxLjcxMyA1Ljk1IDEuOTE1IDguMzU2LjMzNyA0LjAwOC4zMTcgNi4xNjgtLjQyIDcuNDg1LS41OTEgMS4wNTctMS41MzIgMi4zODMtNS41NDEgNS4wODgtMS4xNzMuNzkxLTIuNjg0IDEuNjM0LTYuNjQzIDMuNDI0LTIuNzYyIDEuMjQ4LTYuOTc3IDMuMTA4LTkuMjA1IDQuMTA3LTIuNDczIDEuMTA5LTQuNjY3IDIuMjI2LTguMjM0IDMuMDUzLTIuNTQuNTg5LTUuNjMxLjc4NC05LjAxMi4xODYtMi4zMDctLjQwOC01LjQ0OS0xLjE4My05LjEwNy0zLjgyNy0zLjkyOC0yLjgzOS02LjUzLTQuODk3LTcuNDk3LTYuMDQxLS44NjYtMS4wMjYtMS43MTQtMi4wODItMi40MTItMy41NTUtLjkwNC0xLjkwNS0yLjI3Mi0zLjY0My0zLTUuOTE2LS44NDYtMi42MzMtMS4xNjctNC4yMzMtMS43NzItNi4yN1pcIixcblx0XHRzaGFkb3dQYXRoOlxuXHRcdFx0XCJNNC43MzIgMjkxLjE3NWMtLjMxNy0xLjA3LS4xMDEtMi45OTQtLjE0NC0zLjQxNi0uMDMtLjI5OS4xMS0zLjAxOS42MzgtNC44OC45MTQtMi40NzYgMS41ODgtNC4xNjEgMi4yNi01LjA1IDEuMjQtMS42NDMgMy40MzQtNC4xODcgNi4yNjMtNi4zMjEgMi4wMDktMS41MTUgNC4zOTMtMi43OTcgNy4xNC0zLjgwOSAxLjk3NC0uNzI3IDMuODMtMS4zMTggNi43ODgtMS40ODYgMS45MS0uMTA4IDQuNjEtLjEzNiA3LjcxLjA5NSAzLjEuMjMxIDYuNDk4LjcwNiA5LjA4OCAxLjIyNiAyLjU5LjUyMSA0LjMxOSAxLjA3IDUuODMgMS42NjIgMS41MTIuNTkyIDIuNzY0IDEuMjIgMy40ODcgMS41NTMgMS4zMjYuNjEgMi41NDcgMS4wNjEgMy4zNTcgMS44NzggMS42MyAxLjY0MyAyLjI5OCAyLjkyNyAyLjU1NyA0LjIyLjIyMyAxLjExNS4yMjEgMi44MjQtLjE5NiAzLjk3OC0uNTkgMS42MzItMS4yOSAyLjUwNy0xLjI5IDUuMDA0IDAgMy4zODUgMS41MDQgNS4yMjMgMS42ODIgNy4zMzUuMjk2IDMuNTE5LjI3OCA1LjQxNi0uMzY5IDYuNTcxLS41Mi45MjgtMS4zNDUgMi4wOTMtNC44NjUgNC40NjctMS4wMy42OTUtMi4zNTUgMS40MzUtNS44MzEgMy4wMDYtMi40MjUgMS4wOTYtNi4xMjYgMi43MjgtOC4wODIgMy42MDYtMi4xNy45NzMtNC4wOTYgMS45NTQtNy4yMjggMi42OC0yLjIyOS41MTctNC45NDQuNjg4LTcuOTEyLjE2My0yLjAyNC0uMzU4LTQuNzgzLTEuMDM4LTcuOTk1LTMuMzU5LTMuNDQ4LTIuNDkzLTUuNzMyLTQuMjk5LTYuNTgtNS4zMDQtLjc2MS0uOTAxLTEuNTA1LTEuODI3LTIuMTE5LTMuMTIxLS43OTMtMS42NzItMS45OTQtMy4xOTgtMi42MzQtNS4xOTMtLjc0Mi0yLjMxMi0xLjAyNC0zLjcxNy0xLjU1NS01LjUwNVpcIixcblx0XHRsaW5lSGlnaGxpZ2h0UGF0aDogW1xuXHRcdFx0XCJNMzEuNzMyIDMwOS41MTFjMS40NjItLjg5NyAyLjU4NS0zLjY3MiAyLjkzLTYuNzI2bS0yLjkzLTI5LjQ1M2MyLjExNCAxLjA5MiAzLjQ5IDQuNDQgMy42MSA4LjA2Mm00LjEzMy03LjU4Yy0xLjM1MyAxLjA1OC00LjA3NCA0LjA1Ny00LjEzNCA3LjU4bTAgMGMuMTU1IDQuNjkzLTEuNzk3IDkuODQ2LTYuOTgzIDExLjE1MiA1LjM3OS0uMzU3IDYuODU5IDUuMzA1IDYuMzAzIDEwLjIzOW00LjU1NyA3LjI0Yy0xLjY3OC0uNjcxLTQuOTM4LTMuMDU4LTQuNTU3LTcuMjRcIixcblx0XHRdLFxuXHR9LFxuXTtcblxuIiwgImltcG9ydCB7IFRlZXRoUHJvcHMgfSBmcm9tIFwiLi90eXBlXCI7XG5cbmV4cG9ydCBjb25zdCBUZWV0aCA9ICh7XG4gIG5hbWUsXG4gIG91dGxpbmVQYXRoLFxuICBzaGFkb3dQYXRoLFxuICBsaW5lSGlnaGxpZ2h0UGF0aCxcbiAgc2VsZWN0ZWQsXG4gIG9uQ2xpY2ssXG4gIG9uS2V5RG93bixcbiAgb25Ib3ZlcixcbiAgb25MZWF2ZSxcbiAgY2hpbGRyZW4sXG59OiBUZWV0aFByb3BzKSA9PiAoXG4gIDxnXG4gICAgY2xhc3NOYW1lPXtgJHtuYW1lfSAke3NlbGVjdGVkID8gXCJzZWxlY3RlZFwiIDogXCJcIn1gfVxuICAgIHRhYkluZGV4PXswfVxuICAgIG9uQ2xpY2s9eygpID0+IG9uQ2xpY2s/LihuYW1lKX1cbiAgICBvbktleURvd249eyhlKSA9PiBvbktleURvd24/LihlLCBuYW1lKX1cbiAgICBvbk1vdXNlTW92ZT17KGUpID0+IG9uSG92ZXI/LihuYW1lLCBlKX1cbiAgICBvbk1vdXNlTGVhdmU9e29uTGVhdmV9XG4gICAgcm9sZT1cIm9wdGlvblwiXG4gICAgYXJpYS1zZWxlY3RlZD17c2VsZWN0ZWR9XG4gICAgYXJpYS1sYWJlbD17YFRvb3RoICR7bmFtZX1gfVxuICAgIHN0eWxlPXt7XG4gICAgICBjdXJzb3I6IFwicG9pbnRlclwiLFxuICAgICAgb3V0bGluZTogXCJub25lXCIsXG4gICAgICB0b3VjaEFjdGlvbjogXCJtYW5pcHVsYXRpb25cIixcbiAgICAgIHRyYW5zaXRpb246IFwiYWxsIDAuMnMgZWFzZVwiLFxuICAgIH19XG4gID5cbiAgICB7Y2hpbGRyZW59XG4gICAgPHBhdGhcbiAgICAgIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiXG4gICAgICBzdHJva2VMaW5lY2FwPVwicm91bmRcIlxuICAgICAgc3Ryb2tlTGluZWpvaW49XCJyb3VuZFwiXG4gICAgICBkPXtvdXRsaW5lUGF0aH1cbiAgICAvPlxuICAgIDxwYXRoIGZpbGw9XCJjdXJyZW50Q29sb3JcIiBkPXtzaGFkb3dQYXRofSAvPlxuICAgIHtBcnJheS5pc0FycmF5KGxpbmVIaWdobGlnaHRQYXRoKSA/IChcbiAgICAgIGxpbmVIaWdobGlnaHRQYXRoLm1hcCgoZCkgPT4gKFxuICAgICAgICA8cGF0aFxuICAgICAgICAgIGtleT17YCR7ZH1gfVxuICAgICAgICAgIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiXG4gICAgICAgICAgc3Ryb2tlTGluZWNhcD1cInJvdW5kXCJcbiAgICAgICAgICBzdHJva2VMaW5lam9pbj1cInJvdW5kXCJcbiAgICAgICAgICBkPXtkfVxuICAgICAgICAvPlxuICAgICAgKSlcbiAgICApIDogKFxuICAgICAgPHBhdGhcbiAgICAgICAgc3Ryb2tlPVwiY3VycmVudENvbG9yXCJcbiAgICAgICAgc3Ryb2tlTGluZWNhcD1cInJvdW5kXCJcbiAgICAgICAgc3Ryb2tlTGluZWpvaW49XCJyb3VuZFwiXG4gICAgICAgIGQ9e2xpbmVIaWdobGlnaHRQYXRofVxuICAgICAgLz5cbiAgICApfVxuICA8L2c+XG4pO1xuIl0sCiAgIm1hcHBpbmdzIjogIkFBQ0EsT0FHRSxlQUFBQSxFQUNBLFVBQUFDLEVBQ0EsWUFBQUMsTUFDSyxRQ1BQLE9BQVMsYUFBQUMsRUFBVyxVQUFBQyxNQUFjLFFBdUM5QixPQW1CSSxZQUFBQyxHQW5CSixPQUFBQyxHQW9CTSxRQUFBQyxNQXBCTixvQkE1QkosSUFBTUMsR0FBYSxDQUNqQkMsRUFDQUMsSUFFTyxPQUFPRCxHQUFZLFdBQWFBLEVBQVFDLENBQU8sRUFBSUQsRUFHL0NFLEVBQXNELENBQUMsQ0FDbEUsT0FBQUMsRUFDQSxRQUFBRixFQUNBLFNBQUFHLEVBQ0EsUUFBQUosQ0FDRixJQUFNLENBdkJOLElBQUFLLEVBQUFDLEVBQUFDLEVBd0JFLElBQU1DLEVBQU1iLEVBQXVCLElBQUksRUFVdkMsT0FSQUQsRUFBVSxJQUFNLENBQ2QsR0FBSWMsRUFBSSxTQUFXSixFQUFVLENBQzNCLEdBQU0sQ0FBRSxFQUFBSyxFQUFHLENBQUUsRUFBSUwsRUFDakJJLEVBQUksUUFBUSxNQUFNLEtBQU8sR0FBR0MsRUFBSSxFQUFFLEtBQ2xDRCxFQUFJLFFBQVEsTUFBTSxJQUFNLEdBQUcsRUFBSSxFQUFFLElBQ25DLENBQ0YsRUFBRyxDQUFDSixDQUFRLENBQUMsRUFFUEQsR0FBVUYsRUFLZEosR0FBQyxPQUNDLElBQUtXLEVBQ0wsVUFBVSxxQkFDVixNQUFPLENBQ0wsU0FBVSxRQUNWLGNBQWUsT0FDZixXQUFZLHNCQUNaLE1BQU8sT0FDUCxRQUFTLFdBQ1QsYUFBYyxNQUNkLFNBQVUsT0FDVixXQUFZLElBQ1osV0FBWSxTQUNaLE9BQVEsSUFDUixVQUFXLHlCQUNYLFdBQVksb0JBQ2QsRUFFQyxTQUFBVCxH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UmVmIiwgIkZyYWdtZW50IiwgImpzeCIsICJqc3hzIiwgImdldENvbnRlbnQiLCAiY29udGVudCIsICJwYXlsb2FkIiwgIk9kb250b2dyYW1Ub29sdGlwIiwgImFjdGl2ZSIsICJwb3NpdGlvbiIsICJfYSIsICJfYiIsICJfYyIsICJyZWYiLCAieCIsICJ0ZWV0aFBhdGhzIiwgImpzeCIsICJqc3hzIiwgIlRlZXRoIiwgIm5hbWUiLCAib3V0bGluZVBhdGgiLCAic2hhZG93UGF0aCIsICJsaW5lSGlnaGxpZ2h0UGF0aCIsICJzZWxlY3RlZCIsICJvbkNsaWNrIiwgIm9uS2V5RG93biIsICJvbkhvdmVyIiwgIm9uTGVhdmUiLCAiY2hpbGRyZW4iLCAiZSIsICJkIiwgImpzeCIsICJqc3hzIiwgInBsYWNlbWVudHMiLCAidCIsICJtIiwgImNvbnZlcnRGRElUb05vdGF0aW9uIiwgImZkaSIsICJub3RhdGlvbiIsICJudW0iLCAiZmRpVG9Vbml2ZXJzYWwiLCAicXVhZHJhbnQiLCAiZ2V0VG9vdGhOb3RhdGlvbnMiLCAidW5pdmVyc2FsIiwgInBhbG1lciIsICJPZG9udG9ncmFtIiwgImRlZmF1bHRTZWxlY3RlZCIsICJvbkNoYW5nZSIsICJjbGFzc05hbWUiLCAidGhlbWUiLCAiY29sb3JzIiwgInRvb2x0aXAiLCAic2hvd1Rvb2x0aXAiLCAic2hvd0hhbGYiLCAibmFtZSIsICJtYXhUZWV0aCIsICJ0aGVtZUNvbG9ycyIsICJzZWxlY3RlZCIsICJzZXRTZWxlY3RlZCIsICJ1c2VTdGF0ZSIsICJzdmdSZWYiLCAidXNlUmVmIiwgIl90b29sdGlwUmVmIiwgInRvb2x0aXBEYXRhIiwgInNldFRvb2x0aXBEYXRhIiwgImhhbmRsZVRvZ2dsZSIsICJ1c2VDYWxsYmFjayIsICJwcmV2IiwgInVwZGF0ZWQiLCAiZGV0YWlscyIsICJpZCIsICJ0b290aEJhc2UiLCAidG9vdGhEYXRhIiwgInRlZXRoUGF0aHMiLCAiaGFuZGxlS2V5RG93biIsICJlIiwgInF1YWRyYW50cyIsICJ2aXNpYmxlUXVhZHJhbnRzIiwgImhhbmRsZUhvdmVyIiwgInBsYWNlbWVudCIsICJfYSIsICJfYiIsICJwYXRoIiwgInRvb3RoQm94IiwgInN2Z0JveCIsICJtYXJnaW4iLCAieCIsICJ5IiwgInNhZmVZIiwgImhhbmRsZUxlYXZlIiwgInAiLCAicmVuZGVyVGVldGgiLCAicHJlZml4IiwgInRvb3RoIiwgImRpc3BsYXlOYW1lIiwgIlRlZXRoIiwgImZpbmFsQ29sb3JzIiwgIm1hcFRvQ3NzVmFycyIsICJ0cmFuc2Zvcm0iLCAibGFiZWwiLCAicG9zaXRpb24iLCAiaW5kZXgiLCAiT2RvbnRvZ3JhbVRvb2x0aXAiLCAiY3NzVmFycyIsICJPZG9udG9ncmFtX2RlZmF1bHQiXQp9Cg==
|
|
1
|
+
import{useCallback as I,useRef as G,useState as V}from"react";import{useEffect as _,useRef as K,useState as t1}from"react";import{Fragment as o1,jsx as r1,jsxs as k}from"react/jsx-runtime";var e1=(t,e)=>typeof t=="function"?t(e):t,A=({active:t,payload:e,position:n,content:a})=>{var u,m,f;let l=K(null),[h,r]=t1({left:0,top:0});return _(()=>{if(!l.current||!n)return;let s=l.current.getBoundingClientRect(),{x:T,y:M}=n,O=T-s.width/2,x=M-s.height-12;r({left:O,top:x})},[n,a,e]),t&&e?k("div",{ref:l,className:"odontogram-tooltip",style:{position:"fixed",pointerEvents:"none",background:"rgba(0,0,0,0.85)",color:"#fff",padding:"6px 10px",borderRadius:"6px",fontSize:"12px",lineHeight:1.3,whiteSpace:"nowrap",zIndex:1e3,left:h.left,top:h.top,opacity:t?1:0,transition:"opacity 0.15s ease"},children:[e1(a,e)??k(o1,{children:[k("div",{children:["Tooth: ",(u=e==null?void 0:e.notations)==null?void 0:u.fdi]}),k("div",{children:["Type: ",e==null?void 0:e.type]}),k("div",{children:["Universal: ",(m=e==null?void 0:e.notations)==null?void 0:m.universal,", Palmer:"," ",(f=e==null?void 0:e.notations)==null?void 0:f.palmer]})]}),r1("div",{className:"odontogram-tooltip-arrow",style:{position:"absolute",bottom:"-6px",left:"50%",transform:"translateX(-50%)",width:0,height:0,borderLeft:"6px solid transparent",borderRight:"6px solid transparent",borderTop:"6px solid rgba(0, 0, 0, 0.85)"}})]}):null};var P=[{name:"1",type:"Central Incisor",outlinePath:"M173.951 1.698c-2.198.16-5.302.862-5.302.862s-5.531 1.025-7.781 2.27c-2.403 1.333-5.553 3.299-6.013 5.258-.432 1.84-.78 4.734-.491 6.832l.027.2c.348 2.527.865 6.28 1.239 10.316.186 2-.101 3.21.751 6.16.895 3.1 1.395 4.573 2.013 5.687.646 1.164 1.493 2.087 2.03 3.28.866 1.924 2.393 4.29 3.87 6.1a48.805 48.805 0 0 0 2.36 2.663c1.016 1.078 2.819 3.11 3.898 4.331 1.526 1.727 3.076 3.248 4.423 3.742 1.217.446 2.709.642 3.793.936 1.369.372 2.494.638 4.597 0 1.545-.468 2.725-.621 4.372-2.424 2.064-2.258 2.846-3.517 3.512-4.746 1.065-1.964 2.524-4.648 3.541-6.422.611-1.068 2.221-3.089 4.086-8.845 1.54-4.752 2.367-7.76 2.731-8.994.415-1.408 1.079-3.583 1.355-6.196.44-4.176 1.114-7.482 1.062-11.026-.044-3.046.104-5.04-1.065-6.306-.95-1.029-1.988-2.001-3.306-2.534-1.959-.79-3.775-1.358-5.298-1.592-1.351-.207-7.05-.35-11.219-.057-1.567.11-3.61.097-9.185.505Z",shadowPath:"M188.269 50.215c19.275-41.867 10.766-43.612 4.937-44.684-5.829-1.073-28.455 2.53-29.72 2.817-.442.218-8.911 0-4.767 19.54 3.416 16.105 16.193 26.596 17.244 27.265 3.148 2.003 8.837 2.595 12.306-4.938Z",lineHighlightPath:"M160.472 14.727c.392-.402 4.317-3.309 8.941-5.47 3.097-1.448 7.773-1.629 11.207-1.749 8.759-.365 10.004.91 12.637 1.495.562.139.909.276 1.771.595"},{name:"2",type:"Lateral Incisor",outlinePath:"M135.016 60.41c3.443 1.355 7.834 2.73 9.601 2.346 4.185-.91 7.044-4.017 8.123-8.152 2.069-7.927 2.249-16.288 1.995-24.436-.113-3.596.72-16.81-4.184-18.444-8.135-6.14-32.088.494-36.979 8.055-5.013 7.751.878 21.131 5.56 27.728 3.862 5.44 9.714 10.474 15.884 12.903Z",shadowPath:"M134.65 55.386c2.732 1.076 6.217 2.167 7.62 1.862 3.321-.723 5.59-3.188 6.446-6.47 1.642-6.29 1.786-12.927 1.583-19.393-.089-2.854.572-13.342-3.32-14.638-6.456-4.873-25.466.392-29.348 6.393-3.979 6.152.696 16.77 4.413 22.006 3.064 4.317 7.709 8.313 12.606 10.24Z",lineHighlightPath:"M121.569 28.952c.551-.984 6.354-8.214 12.866-9.045 3.238-.413 10.619-.17 11.838 0"},{name:"3",type:"Canine",outlinePath:"M77.63 64.236c1.692 1.401 15.516 14.583 34.698 16.903 5.569.674 15.058-7.184 15.789-12.89 1.335-10.423-12.444-29.205-21.965-33.703-4.542-2.145-25.892-4.039-28.523 2.939-2.471 6.557-6.596 21.29 0 26.751Z",shadowPath:"M123.285 66.267c1.072-8.368-10.234-23.94-17.99-27.603-3.72-1.757-21.206-3.308-23.36 2.407-1.757 4.66-4.09 13.284-2.306 18.17 4.15 11.36 40.897 28.573 43.656 7.026Z",lineHighlightPath:["M82.84 60.043c-.01-.855-.193-4.63.256-8.12.667-5.185.703-5.866 1.29-8.106.437-1.666 2.083-4.91 17.487-3.748","M101.438 68.49c.376-.045 2.284-5.112 9.498-6.344"]},{name:"4",type:"First Premolar",outlinePath:"M93.684 108.748c-7.498 3.397-35.368-7.397-35.596-7.441-1.429-.842-12.215-2.854-9.068-29.414.147-1.238 1.353-2.05 2.218-2.556.956-.559 3.157-1.595 7.587-2.794 2.707-.734 13.856-3.54 18.674-.92 2.216 1.206 6.363 4.117 10.473 7.036 4.11 2.919 10.958 8.715 13.327 11.338 2.291 2.537 10.324 13.75-7.615 24.751Z",shadowPath:"M91.495 105.931c-6.528 2.958-30.793-6.44-30.992-6.478-1.243-.734-10.634-2.486-7.895-25.61.128-1.078 1.178-1.785 1.932-2.225.832-.487 2.748-1.39 6.605-2.433 2.357-.639 12.064-3.082 16.258-.8 1.93 1.05 5.54 3.584 9.12 6.125 3.578 2.541 9.54 7.588 11.603 9.872 1.994 2.208 8.987 11.971-6.63 21.549Z",lineHighlightPath:["M55.234 92.414c.022-.242.06-1.469.875-7.79.46-3.573 1.813-5.49 3.134-7.01 1.18-1.359 3.524-3.193 5.88-4.365 1.46-.632 3.029-1.126 6.044-1.776.826-.138 1.477-.175 2.526-.395","M87.02 101.387c4.183-.792 8.747-9.774 8.747-9.774"]},{name:"5",type:"Second Premolar",outlinePath:"M33.396 127.652c-1.088-2.713-4.486-11.852-3.962-15.246.477-3.085 14.47-12.008 23.595-12.008 2.178 0 25.157 6.665 35.073 17.908 4.551 9.324-1.624 23.339-16.22 23.339-8.193 0-23.563-1.897-25.453-2.215-1.896-.319-4.317-1.128-6.596-2.321-1.289-.675-2-1.035-2.478-1.647-.655-.84-2.101-3.178-3.96-7.81Z",shadowPath:"M36.837 126.778c-.945-2.356-3.895-10.289-3.44-13.235.414-2.679 12.561-10.424 20.483-10.424 1.89 0 21.837 5.785 30.445 15.545 3.951 8.094-1.41 20.26-14.08 20.26-7.112 0-20.454-1.647-22.095-1.922-1.645-.277-3.747-.98-5.725-2.015-1.12-.586-1.737-.899-2.151-1.43-.57-.729-1.825-2.759-3.437-6.779Z",lineHighlightPath:["M40.8 131.221c-4.003-20.278 8.442-20.974 13.779-23.692","M74.056 134.729c6.35-4.264 6.343-10.503 6.489-11.448"]},{name:"6",type:"First Molar",outlinePath:"M35.539 203.323c-3.363.196-32.788-4.02-28.495-42.465 3.631-20.408 26.21-23.364 29.557-22.912 9.019-.745 25.727 6.743 29.255 9.403 4.546 3.427 7.384 5.681 8.606 7.092 2.436 2.814 4.499 5.11 4.7 6.313.284 1.703 1.317 4.72-2.248 9.687-2.453 3.418-2.957 6.663-2.856 10.223.118 4.185.37 9.754-.524 11.63-.592 1.244-.984 2.627-2.375 3.392-2.015 1.108-4.61 2.317-11.93 3.748-3.623.708-9.309 1.83-12.401 2.292-5.19.777-8.423 1.43-11.289 1.597Z",shadowPath:"M36.515 199.085c-2.927.17-28.54-3.499-24.803-36.963 3.16-17.764 22.814-20.337 25.727-19.944 10.82-.893 25.709 5.989 32.955 14.358 2.12 2.45 3.917 4.448 4.091 5.495.248 1.482.513 4.268-2.59 8.591-2.135 2.975-1.94 5.641-1.852 8.74.096 3.417 1.402 10.917-2.523 13.076-1.754.964-4.013 2.016-10.384 3.261-6.762 1.322-13.728 2.984-20.621 3.386Z",lineHighlightPath:["M37.132 192.147c1.288-.372 3.385-2.071 5.183-5.438m9.008-35.98c1.188 1.224 2.114 6.385.15 11.363m0 0c-1.537 3.899-4.944 9.378-11.195 9.378 6.877.321 4.651 10.343 2.037 15.239m9.159-24.617c1.47-2.589 4.966-7.572 8.068-8.217m-17.227 32.834c-.186 2.348.044 7.351 2.458 8.584"]},{name:"7",type:"Second Molar",outlinePath:"M4.969 248.132c-1.188-2.74-14.708-27.152 12.319-42.139 1.836-1.018 24.508-7.711 45.28 10.874 2.274 2.035 4.455 3.579 5.403 5.102 1.414 2.271 2.128 3.435 1.687 5.606-.387 1.901-1.54 3.642-3.77 7.711-1.127 2.056-1.854 3.427-1.369 7.824.175 1.59.627 3.935.048 6.603-.466 2.147-.941 3.567-2.578 5.006-2.53 2.224-5.307 3.645-9.076 4.35-1.091.204-3.133.811-7.525 1.702-2.776.563-6.619 1.234-10.09 1.654-3.47.42-6.478.638-8.612.636-3.353-.002-6.734.031-9.465-1.48l-.018-.01c-1.654-.915-4.076-2.255-6.245-4.732-2.258-2.579-4.591-5.482-5.989-8.707Z",shadowPath:"M8.799 246.28c-1.128-2.352-12.843-23.709 10.756-36.796 1.604-.889 21.4-6.732 39.538 9.496 1.986 1.777 3.89 3.125 4.717 4.454 1.235 1.983 1.859 3 1.473 4.895-.337 1.66-1.343 3.18-3.291 6.734-.984 1.795-1.619 2.992-1.196 6.831.154 1.389.548 3.436.042 5.766-2.872 13.231-31.213 11.657-33.076 11.656h-.007c-2.936-.003-12.714-.01-18.956-13.036Z",lineHighlightPath:["M32.14 255.091c.748-.303 2.28-2.378 3.103-5.721m-1.99-35.481c3.009 1.363 4.015 4.888 3.736 8.716m0 0c-.424 5.835-3.832 12.377-7.683 13.049 6.954 1.18 7.244 8.414 5.937 13.716m1.746-26.765c.327-2.24 1.82-6.958 5.19-7.91m-6.936 34.675c.65 2.172 2.55 6.507 4.967 6.471"]},{name:"8",type:"Third Molar",outlinePath:"M.895 291.331c-.362-1.218-.116-3.411-.164-3.892-.035-.34.124-3.438.727-5.558 1.04-2.82 1.808-4.74 2.573-5.752 1.413-1.872 3.913-4.769 7.135-7.2 2.288-1.726 5.003-3.187 8.133-4.339 2.249-.828 4.362-1.502 7.732-1.693 2.175-.123 5.25-.155 8.782.108s7.403.804 10.353 1.397 4.92 1.218 6.641 1.893c1.722.675 3.148 1.389 3.972 1.768 1.51.696 2.9 1.209 3.824 2.14 1.857 1.872 2.617 3.334 2.912 4.807.254 1.27.252 3.216-.224 4.531-.672 1.859-1.468 2.856-1.468 5.7 0 3.857 1.713 5.95 1.915 8.356.337 4.008.317 6.168-.42 7.485-.591 1.057-1.532 2.383-5.541 5.088-1.173.791-2.684 1.634-6.643 3.424-2.762 1.248-6.977 3.108-9.205 4.107-2.473 1.109-4.667 2.226-8.234 3.053-2.54.589-5.631.784-9.012.186-2.307-.408-5.449-1.183-9.107-3.827-3.928-2.839-6.53-4.897-7.497-6.041-.866-1.026-1.714-2.082-2.412-3.555-.904-1.905-2.272-3.643-3-5.916-.846-2.633-1.167-4.233-1.772-6.27Z",shadowPath:"M4.732 291.175c-.317-1.07-.101-2.994-.144-3.416-.03-.299.11-3.019.638-4.88.914-2.476 1.588-4.161 2.26-5.05 1.24-1.643 3.434-4.187 6.263-6.321 2.009-1.515 4.393-2.797 7.14-3.809 1.974-.727 3.83-1.318 6.788-1.486 1.91-.108 4.61-.136 7.71.095 3.1.231 6.498.706 9.088 1.226 2.59.521 4.319 1.07 5.83 1.662 1.512.592 2.764 1.22 3.487 1.553 1.326.61 2.547 1.061 3.357 1.878 1.63 1.643 2.298 2.927 2.557 4.22.223 1.115.221 2.824-.196 3.978-.59 1.632-1.29 2.507-1.29 5.004 0 3.385 1.504 5.223 1.682 7.335.296 3.519.278 5.416-.369 6.571-.52.928-1.345 2.093-4.865 4.467-1.03.695-2.355 1.435-5.831 3.006-2.425 1.096-6.126 2.728-8.082 3.606-2.17.973-4.096 1.954-7.228 2.68-2.229.517-4.944.688-7.912.163-2.024-.358-4.783-1.038-7.995-3.359-3.448-2.493-5.732-4.299-6.58-5.304-.761-.901-1.505-1.827-2.119-3.121-.793-1.672-1.994-3.198-2.634-5.193-.742-2.312-1.024-3.717-1.555-5.505Z",lineHighlightPath:["M31.732 309.511c1.462-.897 2.585-3.672 2.93-6.726m-2.93-29.453c2.114 1.092 3.49 4.44 3.61 8.062m4.133-7.58c-1.353 1.058-4.074 4.057-4.134 7.58m0 0c.155 4.693-1.797 9.846-6.983 11.152 5.379-.357 6.859 5.305 6.303 10.239m4.557 7.24c-1.678-.671-4.938-3.058-4.557-7.24"]}];import{jsx as w,jsxs as n1}from"react/jsx-runtime";var F=({name:t,outlinePath:e,shadowPath:n,lineHighlightPath:a,selected:l,onClick:h,onKeyDown:r,onHover:u,onLeave:m,children:f})=>n1("g",{className:`${t} ${l?"selected":""}`,tabIndex:0,onClick:()=>h==null?void 0:h(t),onKeyDown:s=>r==null?void 0:r(s,t),onMouseMove:s=>u==null?void 0:u(t,s),onMouseLeave:m,role:"option","aria-selected":l,"aria-label":`Tooth ${t}`,style:{cursor:"pointer",outline:"none",touchAction:"manipulation",transition:"all 0.2s ease"},children:[f,w("path",{stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",d:e}),w("path",{fill:"currentColor",d:n}),Array.isArray(a)?a.map(s=>w("path",{stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",d:s},`${s}`)):w("path",{stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",d:a})]});import{jsx as v,jsxs as q}from"react/jsx-runtime";var R={top:(t,e)=>({x:t.left+t.width/2,y:t.top-e}),"top-start":(t,e)=>({x:t.left,y:t.top-e}),"top-end":(t,e)=>({x:t.right,y:t.top-e}),bottom:(t,e)=>({x:t.left+t.width/2,y:t.bottom+e}),"bottom-start":(t,e)=>({x:t.left,y:t.bottom+e}),"bottom-end":(t,e)=>({x:t.right,y:t.bottom+e}),left:(t,e)=>({x:t.left-e,y:t.top+t.height/2}),"left-start":(t,e)=>({x:t.left-e,y:t.top}),"left-end":(t,e)=>({x:t.left-e,y:t.bottom}),right:(t,e)=>({x:t.right+e,y:t.top+t.height/2}),"right-start":(t,e)=>({x:t.right+e,y:t.top}),"right-end":(t,e)=>({x:t.right+e,y:t.bottom})};function N(t,e){let n=t.replace("teeth-",""),a={11:8,12:7,13:6,14:5,15:4,16:3,17:2,18:1,21:9,22:10,23:11,24:12,25:13,26:14,27:15,28:16,31:24,32:23,33:22,34:21,35:20,36:19,37:18,38:17,41:25,42:26,43:27,44:28,45:29,46:30,47:31,48:32};if(e==="Universal")return String(a[n]??n);if(e==="Palmer"){let l=n[0];return`${n[1]}${{1:"UR",2:"UL",3:"LL",4:"LR"}[l]??""}`}return n}function H(t){let e=t.replace("teeth-",""),n=N(t,"Universal"),a=N(t,"Palmer");return{fdi:e,universal:n,palmer:a}}var a1=({defaultSelected:t=[],onChange:e,className:n="",theme:a="light",colors:l={},notation:h,tooltip:r={margin:-10,placement:"top"},showTooltip:u=!0,showHalf:m="full",name:f,maxTeeth:s=8})=>{let T=a==="dark"?{"--dark-blue":"#aab6ff","--base-blue":"#d0d5f6","--light-blue":"#5361e6"}:{"--dark-blue":"#3e5edc","--base-blue":"#8a98be","--light-blue":"#c6ccf8"},[M,O]=V(new Set(t)),x=G(null),l1=G(null),[S,U]=V({active:!1}),L=I(o=>{O(c=>{let d=new Set(c);d.has(o)?d.delete(o):d.add(o);let b=Array.from(d).map(i=>{let y=i.replace("teeth-","").slice(1),p=P.find(Z=>Z.name===y);return{id:i,notations:H(i),type:(p==null?void 0:p.type)??"Unknown"}});return e==null||e(b),d})},[e]),j=I((o,c)=>{(o.key==="Enter"||o.key===" ")&&(o.preventDefault(),L(c))},[L]),C=[{name:"first",transform:"",label:"Upper Right",position:{x:100,y:30}},{name:"second",transform:"scale(-1, 1) translate(-409, 0)",label:"Upper Left",position:{x:309,y:30}},{name:"third",transform:"scale(1, -1) translate(0, -694)",label:"Lower Right",position:{x:100,y:664}},{name:"fourth",transform:"scale(-1, -1) translate(-409, -694)",label:"Lower Left",position:{x:309,y:664}}],B=C;m==="upper"?B=C.slice(0,2):m==="lower"&&(B=C.slice(2));let z=(o,c,d="right")=>{var E,$;let i=c.currentTarget.querySelector("path");if(!(i&&x.current))return;let g=i.getBoundingClientRect(),y=x.current.getBoundingClientRect(),p=(r==null?void 0:r.margin)||10;console.log("toothbox box",g,"svgBOx",y);let{x:Z,y:D}=((E=R[d])==null?void 0:E.call(R,g,p))??R.right(g,p),X=D<y.top?g.bottom+p:D;U({active:!0,position:{x:Z,y:X},payload:{id:o,notations:H(o),type:(($=P.find(Y=>Y.name===o.replace("teeth-","").slice(1)))==null?void 0:$.type)??"Unknown"}})},J=()=>U(o=>({...o,active:!1})),Q=(o,c)=>(c?P.slice(0,c):P).map(b=>{let i=`${o}${b.name}`,g=N(i,h??"FDI");return v(F,{...b,name:i,selected:M.has(i),onClick:L,onKeyDown:j,onHover:(y,p)=>z(y,p,r==null?void 0:r.placement),onLeave:J,children:v("title",{children:g})},i)}),W={...T,...i1(l)};return q("div",{className:`Odontogram ${a==="dark"?"dark-theme":""}`,style:{...W,width:"100%",maxWidth:300,margin:"0 auto",display:"flex",justifyContent:"center",alignItems:"center"},role:"listbox","aria-label":"Odontogram","aria-multiselectable":"true",children:[v("input",{type:"hidden",name:f??"teeth",value:JSON.stringify(Array.from(M))}),q("svg",{ref:x,xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:m==="full"?"0 0 409 694":m==="upper"?"0 0 409 347":"0 347 409 347",className:"Odontogram",style:{width:"100%",height:"auto",userSelect:"none",touchAction:"manipulation"},children:[v("title",{children:"Odontogram"}),B.map(({name:o,transform:c,label:d,position:b},i)=>v("g",{role:"group","aria-label":d,name:o,transform:c,children:Q(`teeth-${i+1}`,s)},o))]}),u&&v(A,{active:S.active,position:S.position,payload:S.payload,content:r==null?void 0:r.content})]})};function i1(t){let e={};return t.darkBlue&&(e["--dark-blue"]=t.darkBlue),t.baseBlue&&(e["--base-blue"]=t.baseBlue),t.lightBlue&&(e["--light-blue"]=t.lightBlue),e}var s1=a1;export{a1 as Odontogram,N as convertFDIToNotation,s1 as default,H as getToothNotations,i1 as mapToCssVars};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vc3JjL09kb250b2dyYW0udHN4IiwgIi4uL3NyYy9Ub29sdGlwLnRzeCIsICIuLi9zcmMvZGF0YS50cyIsICIuLi9zcmMvVGVldGgudHN4Il0sCiAgInNvdXJjZXNDb250ZW50IjogWyJpbXBvcnQgXCIuL3N0eWxlcy5jc3NcIjtcbmltcG9ydCB7XG4gIHR5cGUgQ1NTUHJvcGVydGllcyxcbiAgdHlwZSBGQyxcbiAgdXNlQ2FsbGJhY2ssXG4gIHVzZVJlZixcbiAgdXNlU3RhdGUsXG59IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgT2RvbnRvZ3JhbVRvb2x0aXAgfSBmcm9tIFwiLi9Ub29sdGlwXCI7XG5pbXBvcnQgeyB0ZWV0aFBhdGhzIH0gZnJvbSBcIi4vZGF0YVwiO1xuaW1wb3J0IHR5cGUgeyBPZG9udG9ncmFtUHJvcHMsIFBsYWNlbWVudCwgVG9vdGhEZXRhaWwgfSBmcm9tIFwiLi90eXBlXCI7XG5pbXBvcnQgeyBUZWV0aCB9IGZyb20gXCIuL1RlZXRoXCI7XG5cbmNvbnN0IHBsYWNlbWVudHM6IFJlY29yZDxcbiAgUGxhY2VtZW50LFxuICAodG9vdGhCb3g6IERPTVJlY3QsIG1hcmdpbjogbnVtYmVyKSA9PiB7IHg6IG51bWJlcjsgeTogbnVtYmVyIH1cbj4gPSB7XG4gIHRvcDogKHQsIG0pID0+ICh7IHg6IHQubGVmdCArIHQud2lkdGggLyAyLCB5OiB0LnRvcCAtIG0gfSksXG4gIFwidG9wLXN0YXJ0XCI6ICh0LCBtKSA9PiAoeyB4OiB0LmxlZnQsIHk6IHQudG9wIC0gbSB9KSxcbiAgXCJ0b3AtZW5kXCI6ICh0LCBtKSA9PiAoeyB4OiB0LnJpZ2h0LCB5OiB0LnRvcCAtIG0gfSksXG4gIGJvdHRvbTogKHQsIG0pID0+ICh7IHg6IHQubGVmdCArIHQud2lkdGggLyAyLCB5OiB0LmJvdHRvbSArIG0gfSksXG4gIFwiYm90dG9tLXN0YXJ0XCI6ICh0LCBtKSA9PiAoeyB4OiB0LmxlZnQsIHk6IHQuYm90dG9tICsgbSB9KSxcbiAgXCJib3R0b20tZW5kXCI6ICh0LCBtKSA9PiAoeyB4OiB0LnJpZ2h0LCB5OiB0LmJvdHRvbSArIG0gfSksXG4gIGxlZnQ6ICh0LCBtKSA9PiAoeyB4OiB0LmxlZnQgLSBtLCB5OiB0LnRvcCArIHQuaGVpZ2h0IC8gMiB9KSxcbiAgXCJsZWZ0LXN0YXJ0XCI6ICh0LCBtKSA9PiAoeyB4OiB0LmxlZnQgLSBtLCB5OiB0LnRvcCB9KSxcbiAgXCJsZWZ0LWVuZFwiOiAodCwgbSkgPT4gKHsgeDogdC5sZWZ0IC0gbSwgeTogdC5ib3R0b20gfSksXG4gIHJpZ2h0OiAodCwgbSkgPT4gKHsgeDogdC5yaWdodCArIG0sIHk6IHQudG9wICsgdC5oZWlnaHQgLyAyIH0pLFxuICBcInJpZ2h0LXN0YXJ0XCI6ICh0LCBtKSA9PiAoeyB4OiB0LnJpZ2h0ICsgbSwgeTogdC50b3AgfSksXG4gIFwicmlnaHQtZW5kXCI6ICh0LCBtKSA9PiAoeyB4OiB0LnJpZ2h0ICsgbSwgeTogdC5ib3R0b20gfSksXG59O1xuXG5leHBvcnQgZnVuY3Rpb24gY29udmVydEZESVRvTm90YXRpb24oXG4gIGZkaTogc3RyaW5nLFxuICBub3RhdGlvbjogXCJGRElcIiB8IFwiVW5pdmVyc2FsXCIgfCBcIlBhbG1lclwiXG4pIHtcbiAgY29uc3QgbnVtID0gZmRpLnJlcGxhY2UoXCJ0ZWV0aC1cIiwgXCJcIik7XG5cbiAgY29uc3QgZmRpVG9Vbml2ZXJzYWw6IFJlY29yZDxzdHJpbmcsIG51bWJlcj4gPSB7XG4gICAgXCIxMVwiOiA4LFxuICAgIFwiMTJcIjogNyxcbiAgICBcIjEzXCI6IDYsXG4gICAgXCIxNFwiOiA1LFxuICAgIFwiMTVcIjogNCxcbiAgICBcIjE2XCI6IDMsXG4gICAgXCIxN1wiOiAyLFxuICAgIFwiMThcIjogMSxcbiAgICBcIjIxXCI6IDksXG4gICAgXCIyMlwiOiAxMCxcbiAgICBcIjIzXCI6IDExLFxuICAgIFwiMjRcIjogMTIsXG4gICAgXCIyNVwiOiAxMyxcbiAgICBcIjI2XCI6IDE0LFxuICAgIFwiMjdcIjogMTUsXG4gICAgXCIyOFwiOiAxNixcbiAgICBcIjMxXCI6IDI0LFxuICAgIFwiMzJcIjogMjMsXG4gICAgXCIzM1wiOiAyMixcbiAgICBcIjM0XCI6IDIxLFxuICAgIFwiMzVcIjogMjAsXG4gICAgXCIzNlwiOiAxOSxcbiAgICBcIjM3XCI6IDE4LFxuICAgIFwiMzhcIjogMTcsXG4gICAgXCI0MVwiOiAyNSxcbiAgICBcIjQyXCI6IDI2LFxuICAgIFwiNDNcIjogMjcsXG4gICAgXCI0NFwiOiAyOCxcbiAgICBcIjQ1XCI6IDI5LFxuICAgIFwiNDZcIjogMzAsXG4gICAgXCI0N1wiOiAzMSxcbiAgICBcIjQ4XCI6IDMyLFxuICB9O1xuXG4gIGlmIChub3RhdGlvbiA9PT0gXCJVbml2ZXJzYWxcIikge1xuICAgIHJldHVybiBTdHJpbmcoZmRpVG9Vbml2ZXJzYWxbbnVtXSA/PyBudW0pO1xuICB9XG5cbiAgaWYgKG5vdGF0aW9uID09PSBcIlBhbG1lclwiKSB7XG4gICAgY29uc3QgcXVhZHJhbnQgPSBudW1bMF07XG4gICAgY29uc3QgdG9vdGggPSBudW1bMV07XG4gICAgY29uc3Qgc3ltYm9sczogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgICAgIFwiMVwiOiBcIlVSXCIsIC8vIHVwcGVyIHJpZ2h0XG4gICAgICBcIjJcIjogXCJVTFwiLCAvLyB1cHBlciBsZWZ0XG4gICAgICBcIjNcIjogXCJMTFwiLCAvLyBsb3dlciBsZWZ0XG4gICAgICBcIjRcIjogXCJMUlwiLCAvLyBsb3dlciByaWdodFxuICAgIH07XG4gICAgcmV0dXJuIGAke3Rvb3RofSR7c3ltYm9sc1txdWFkcmFudF0gPz8gXCJcIn1gO1xuICB9XG5cbiAgcmV0dXJuIG51bTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFRvb3RoTm90YXRpb25zKGZkaTogc3RyaW5nKSB7XG4gIGNvbnN0IG51bSA9IGZkaS5yZXBsYWNlKFwidGVldGgtXCIsIFwiXCIpO1xuICBjb25zdCB1bml2ZXJzYWwgPSBjb252ZXJ0RkRJVG9Ob3RhdGlvbihmZGksIFwiVW5pdmVyc2FsXCIpO1xuICBjb25zdCBwYWxtZXIgPSBjb252ZXJ0RkRJVG9Ob3RhdGlvbihmZGksIFwiUGFsbWVyXCIpO1xuICByZXR1cm4ge1xuICAgIGZkaTogbnVtLFxuICAgIHVuaXZlcnNhbCxcbiAgICBwYWxtZXIsXG4gIH07XG59XG5cbmV4cG9ydCBjb25zdCBPZG9udG9ncmFtOiBGQzxPZG9udG9ncmFtUHJvcHM+ID0gKHtcbiAgZGVmYXVsdFNlbGVjdGVkID0gW10sXG4gIG9uQ2hhbmdlLFxuICBjbGFzc05hbWUgPSBcIlwiLFxuICB0aGVtZSA9IFwibGlnaHRcIixcbiAgY29sb3JzID0ge30sXG4gIG5vdGF0aW9uLFxuICB0b29sdGlwID0ge1xuICAgIG1hcmdpbjogLTEwLFxuICAgIHBsYWNlbWVudDogXCJ0b3BcIlxuICB9LFxuICBzaG93VG9vbHRpcCA9IHRydWUsXG4gIHNob3dIYWxmID0gXCJmdWxsXCIsXG4gIG5hbWUsXG4gIG1heFRlZXRoID0gOCxcblxufSkgPT4ge1xuICBjb25zdCB0aGVtZUNvbG9ycyA9XG4gICAgdGhlbWUgPT09IFwiZGFya1wiXG4gICAgICA/IHtcbiAgICAgICAgXCItLWRhcmstYmx1ZVwiOiBcIiNhYWI2ZmZcIixcbiAgICAgICAgXCItLWJhc2UtYmx1ZVwiOiBcIiNkMGQ1ZjZcIixcbiAgICAgICAgXCItLWxpZ2h0LWJsdWVcIjogXCIjNTM2MWU2XCIsXG4gICAgICB9XG4gICAgICA6IHtcbiAgICAgICAgXCItLWRhcmstYmx1ZVwiOiBcIiMzZTVlZGNcIixcbiAgICAgICAgXCItLWJhc2UtYmx1ZVwiOiBcIiM4YTk4YmVcIixcbiAgICAgICAgXCItLWxpZ2h0LWJsdWVcIjogXCIjYzZjY2Y4XCIsXG4gICAgICB9O1xuXG4gIGNvbnN0IFtzZWxlY3RlZCwgc2V0U2VsZWN0ZWRdID0gdXNlU3RhdGU8U2V0PHN0cmluZz4+KFxuICAgIG5ldyBTZXQoZGVmYXVsdFNlbGVjdGVkKVxuICApO1xuXG4gIGNvbnN0IHN2Z1JlZiA9IHVzZVJlZjxTVkdTVkdFbGVtZW50PihudWxsKTtcbiAgY29uc3QgX3Rvb2x0aXBSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpO1xuXG4gIGNvbnN0IFt0b29sdGlwRGF0YSwgc2V0VG9vbHRpcERhdGFdID0gdXNlU3RhdGU8e1xuICAgIGFjdGl2ZTogYm9vbGVhbjtcbiAgICBwb3NpdGlvbj86IHsgeDogbnVtYmVyOyB5OiBudW1iZXIgfTtcbiAgICBwYXlsb2FkPzogVG9vdGhEZXRhaWw7XG4gIH0+KHsgYWN0aXZlOiBmYWxzZSB9KTtcblxuICBjb25zdCBoYW5kbGVUb2dnbGUgPSB1c2VDYWxsYmFjayhcbiAgICAobmFtZTogc3RyaW5nKSA9PiB7XG4gICAgICBzZXRTZWxlY3RlZCgocHJldikgPT4ge1xuICAgICAgICBjb25zdCB1cGRhdGVkID0gbmV3IFNldChwcmV2KTtcbiAgICAgICAgdXBkYXRlZC5oYXMobmFtZSkgPyB1cGRhdGVkLmRlbGV0ZShuYW1lKSA6IHVwZGF0ZWQuYWRkKG5hbWUpO1xuXG4gICAgICAgIC8vIGJ1aWxkIGRldGFpbGVkIEpTT04gb3V0cHV0XG4gICAgICAgIGNvbnN0IGRldGFpbHMgPSBBcnJheS5mcm9tKHVwZGF0ZWQpLm1hcCgoaWQpID0+IHtcbiAgICAgICAgICBjb25zdCBmZGkgPSBpZC5yZXBsYWNlKFwidGVldGgtXCIsIFwiXCIpO1xuICAgICAgICAgIGNvbnN0IHRvb3RoQmFzZSA9IGZkaS5zbGljZSgxKTtcbiAgICAgICAgICBjb25zdCB0b290aERhdGEgPSB0ZWV0aFBhdGhzLmZpbmQoKHQpID0+IHQubmFtZSA9PT0gdG9vdGhCYXNlKTtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgaWQsXG4gICAgICAgICAgICBub3RhdGlvbnM6IGdldFRvb3RoTm90YXRpb25zKGlkKSxcbiAgICAgICAgICAgIHR5cGU6IHRvb3RoRGF0YT8udHlwZSA/PyBcIlVua25vd25cIixcbiAgICAgICAgICB9O1xuICAgICAgICB9KTtcblxuICAgICAgICBvbkNoYW5nZT8uKGRldGFpbHMpO1xuICAgICAgICByZXR1cm4gdXBkYXRlZDtcbiAgICAgIH0pO1xuICAgIH0sXG4gICAgW29uQ2hhbmdlXVxuICApO1xuICBjb25zdCBoYW5kbGVLZXlEb3duID0gdXNlQ2FsbGJhY2soXG4gICAgKGU6IFJlYWN0LktleWJvYXJkRXZlbnQ8U1ZHR0VsZW1lbnQ+LCBuYW1lOiBzdHJpbmcpID0+IHtcbiAgICAgIGlmIChlLmtleSA9PT0gXCJFbnRlclwiIHx8IGUua2V5ID09PSBcIiBcIikge1xuICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGhhbmRsZVRvZ2dsZShuYW1lKTtcbiAgICAgIH1cbiAgICB9LFxuICAgIFtoYW5kbGVUb2dnbGVdXG4gICk7XG5cbiAgY29uc3QgcXVhZHJhbnRzOiBBcnJheTx7XG4gICAgbmFtZTogXCJmaXJzdFwiIHwgXCJzZWNvbmRcIiB8IFwidGhpcmRcIiB8IFwiZm91cnRoXCI7XG4gICAgdHJhbnNmb3JtOiBzdHJpbmc7XG4gICAgbGFiZWw6IHN0cmluZztcbiAgICBwb3NpdGlvbjogeyB4OiBudW1iZXI7IHk6IG51bWJlciB9O1xuICB9PiA9IFtcbiAgICAgIHtcbiAgICAgICAgbmFtZTogXCJmaXJzdFwiLFxuICAgICAgICB0cmFuc2Zvcm06IFwiXCIsXG4gICAgICAgIGxhYmVsOiBcIlVwcGVyIFJpZ2h0XCIsXG4gICAgICAgIHBvc2l0aW9uOiB7IHg6IDEwMCwgeTogMzAgfSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6IFwic2Vjb25kXCIsXG4gICAgICAgIHRyYW5zZm9ybTogXCJzY2FsZSgtMSwgMSkgdHJhbnNsYXRlKC00MDksIDApXCIsXG4gICAgICAgIGxhYmVsOiBcIlVwcGVyIExlZnRcIixcbiAgICAgICAgcG9zaXRpb246IHsgeDogMzA5LCB5OiAzMCB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogXCJ0aGlyZFwiLFxuICAgICAgICB0cmFuc2Zvcm06IFwic2NhbGUoMSwgLTEpIHRyYW5zbGF0ZSgwLCAtNjk0KVwiLFxuICAgICAgICBsYWJlbDogXCJMb3dlciBSaWdodFwiLFxuICAgICAgICBwb3NpdGlvbjogeyB4OiAxMDAsIHk6IDY2NCB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogXCJmb3VydGhcIixcbiAgICAgICAgdHJhbnNmb3JtOiBcInNjYWxlKC0xLCAtMSkgdHJhbnNsYXRlKC00MDksIC02OTQpXCIsXG4gICAgICAgIGxhYmVsOiBcIkxvd2VyIExlZnRcIixcbiAgICAgICAgcG9zaXRpb246IHsgeDogMzA5LCB5OiA2NjQgfSxcbiAgICAgIH0sXG4gICAgXTtcblxuICBsZXQgdmlzaWJsZVF1YWRyYW50cyA9IHF1YWRyYW50cztcbiAgaWYgKHNob3dIYWxmID09PSBcInVwcGVyXCIpIHtcbiAgICB2aXNpYmxlUXVhZHJhbnRzID0gcXVhZHJhbnRzLnNsaWNlKDAsIDIpO1xuICB9IGVsc2UgaWYgKHNob3dIYWxmID09PSBcImxvd2VyXCIpIHtcbiAgICB2aXNpYmxlUXVhZHJhbnRzID0gcXVhZHJhbnRzLnNsaWNlKDIpO1xuICB9XG5cbiAgY29uc3QgaGFuZGxlSG92ZXIgPSAoXG4gICAgbmFtZTogc3RyaW5nLFxuICAgIGU6IFJlYWN0Lk1vdXNlRXZlbnQsXG4gICAgcGxhY2VtZW50OiBQbGFjZW1lbnQgPSBcInJpZ2h0XCIgLy8gZGVmYXVsdFxuICApID0+IHtcbiAgICBjb25zdCB0YXJnZXQgPSBlLmN1cnJlbnRUYXJnZXQgYXMgU1ZHR0VsZW1lbnQ7XG4gICAgY29uc3QgcGF0aCA9IHRhcmdldC5xdWVyeVNlbGVjdG9yKFwicGF0aFwiKTtcblxuICAgIGlmICghKHBhdGggJiYgc3ZnUmVmLmN1cnJlbnQpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgdG9vdGhCb3ggPSBwYXRoLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgIGNvbnN0IHN2Z0JveCA9IHN2Z1JlZi5jdXJyZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuXG4gICAgY29uc3QgbWFyZ2luID0gdG9vbHRpcD8ubWFyZ2luIHx8IDEwOyAvLyBkaXN0YW5jZSBiZXR3ZWVuIHRvb3RoIGFuZCB0b29sdGlwXG5cbiAgICAvLyBDb21wdXRlIHRvb2x0aXAgcG9zaXRpb24ganVzdCBhYm92ZSBvciBiZWxvdyBkZXBlbmRpbmcgb24gc3BhY2VcblxuICAgIGNvbnNvbGUubG9nKFxuICAgICAgXCJ0b290aGJveCBib3hcIiwgdG9vdGhCb3gsXG4gICAgICBcInN2Z0JPeFwiLCBzdmdCb3hcbiAgICApXG5cbiAgICBjb25zdCB7IHgsIHkgfSA9XG4gICAgICBwbGFjZW1lbnRzW3BsYWNlbWVudF0/Lih0b290aEJveCwgbWFyZ2luKSA/P1xuICAgICAgcGxhY2VtZW50cy5yaWdodCh0b290aEJveCwgbWFyZ2luKTtcblxuICAgIGNvbnN0IHNhZmVZID0geSA8IHN2Z0JveC50b3AgPyB0b290aEJveC5ib3R0b20gKyBtYXJnaW4gOiB5O1xuXG4gICAgc2V0VG9vbHRpcERhdGEoe1xuICAgICAgYWN0aXZlOiB0cnVlLFxuICAgICAgcG9zaXRpb246IHsgeCwgeTogc2FmZVkgfSxcbiAgICAgIHBheWxvYWQ6IHtcbiAgICAgICAgaWQ6IG5hbWUsXG4gICAgICAgIG5vdGF0aW9uczogZ2V0VG9vdGhOb3RhdGlvbnMobmFtZSksXG4gICAgICAgIHR5cGU6XG4gICAgICAgICAgdGVldGhQYXRocy5maW5kKCh0KSA9PiB0Lm5hbWUgPT09IG5hbWUucmVwbGFjZShcInRlZXRoLVwiLCBcIlwiKS5zbGljZSgxKSlcbiAgICAgICAgICAgID8udHlwZSA/PyBcIlVua25vd25cIixcbiAgICAgIH0sXG4gICAgfSk7XG4gIH07XG4gIGNvbnN0IGhhbmRsZUxlYXZlID0gKCkgPT4gc2V0VG9vbHRpcERhdGEoKHApID0+ICh7IC4uLnAsIGFjdGl2ZTogZmFsc2UgfSkpO1xuICBjb25zdCByZW5kZXJUZWV0aCA9IChwcmVmaXg6IHN0cmluZywgbWF4VGVldGg/OiBudW1iZXIpID0+IHtcbiAgICAvLyBGSVhFRDogdXNlIHNsaWNlKCkgaW5zdGVhZCBvZiBzcGxpY2UoKVxuICAgIGNvbnN0IGZpbHRlcmVkVGVldGggPSBtYXhUZWV0aFxuICAgICAgPyB0ZWV0aFBhdGhzLnNsaWNlKDAsIG1heFRlZXRoKVxuICAgICAgOiB0ZWV0aFBhdGhzO1xuXG4gICAgcmV0dXJuIGZpbHRlcmVkVGVldGgubWFwKCh0b290aCkgPT4ge1xuICAgICAgY29uc3QgaWQgPSBgJHtwcmVmaXh9JHt0b290aC5uYW1lfWA7XG4gICAgICBjb25zdCBkaXNwbGF5TmFtZSA9IGNvbnZlcnRGRElUb05vdGF0aW9uKGlkLCBub3RhdGlvbiA/PyBcIkZESVwiKTtcblxuICAgICAgcmV0dXJuIChcbiAgICAgICAgPFRlZXRoXG4gICAgICAgICAga2V5PXtpZH1cbiAgICAgICAgICB7Li4udG9vdGh9XG4gICAgICAgICAgbmFtZT17aWR9XG4gICAgICAgICAgc2VsZWN0ZWQ9e3NlbGVjdGVkLmhhcyhpZCl9XG4gICAgICAgICAgb25DbGljaz17aGFuZGxlVG9nZ2xlfVxuICAgICAgICAgIG9uS2V5RG93bj17aGFuZGxlS2V5RG93bn1cbiAgICAgICAgICBvbkhvdmVyPXsobmFtZSwgZSkgPT4gaGFuZGxlSG92ZXIobmFtZSwgZSwgdG9vbHRpcD8ucGxhY2VtZW50KX1cbiAgICAgICAgICBvbkxlYXZlPXtoYW5kbGVMZWF2ZX1cbiAgICAgICAgPlxuICAgICAgICAgIDx0aXRsZT57ZGlzcGxheU5hbWV9PC90aXRsZT5cbiAgICAgICAgPC9UZWV0aD5cbiAgICAgICk7XG4gICAgfSk7XG4gIH07XG5cbiAgY29uc3QgZmluYWxDb2xvcnMgPSB7IC4uLnRoZW1lQ29sb3JzLCAuLi5tYXBUb0Nzc1ZhcnMoY29sb3JzKSB9O1xuXG4gIHJldHVybiAoXG4gICAgPGRpdlxuICAgICAgY2xhc3NOYW1lPXtgT2RvbnRvZ3JhbSAke3RoZW1lID09PSBcImRhcmtcIiA/IFwiZGFyay10aGVtZVwiIDogXCJcIn1gfVxuICAgICAgc3R5bGU9e3tcbiAgICAgICAgLi4uKGZpbmFsQ29sb3JzIGFzIENTU1Byb3BlcnRpZXMpLFxuICAgICAgICB3aWR0aDogXCIxMDAlXCIsXG4gICAgICAgIG1heFdpZHRoOiAzMDAsXG4gICAgICAgIG1hcmdpbjogXCIwIGF1dG9cIixcbiAgICAgICAgZGlzcGxheTogXCJmbGV4XCIsXG4gICAgICAgIGp1c3RpZnlDb250ZW50OiBcImNlbnRlclwiLFxuICAgICAgICBhbGlnbkl0ZW1zOiBcImNlbnRlclwiLFxuICAgICAgICAvLyBpc29sYXRpb246IFwiaXNvbGF0ZVwiLFxuICAgICAgfX1cbiAgICAgIHJvbGU9XCJsaXN0Ym94XCJcbiAgICAgIGFyaWEtbGFiZWw9XCJPZG9udG9ncmFtXCJcbiAgICAgIGFyaWEtbXVsdGlzZWxlY3RhYmxlPVwidHJ1ZVwiXG4gICAgPlxuICAgICAgPGlucHV0XG4gICAgICAgIHR5cGU9XCJoaWRkZW5cIlxuICAgICAgICBuYW1lPXtuYW1lID8/IFwidGVldGhcIn1cbiAgICAgICAgdmFsdWU9e0pTT04uc3RyaW5naWZ5KEFycmF5LmZyb20oc2VsZWN0ZWQpKX1cbiAgICAgIC8+XG4gICAgICA8c3ZnXG4gICAgICAgIHJlZj17c3ZnUmVmfVxuICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcbiAgICAgICAgZmlsbD1cIm5vbmVcIlxuICAgICAgICB2aWV3Qm94PXtcbiAgICAgICAgICBzaG93SGFsZiA9PT0gXCJmdWxsXCJcbiAgICAgICAgICAgID8gXCIwIDAgNDA5IDY5NFwiXG4gICAgICAgICAgICA6IHNob3dIYWxmID09PSBcInVwcGVyXCJcbiAgICAgICAgICAgICAgPyBcIjAgMCA0MDkgMzQ3XCJcbiAgICAgICAgICAgICAgOiBcIjAgMzQ3IDQwOSAzNDdcIlxuICAgICAgICB9XG4gICAgICAgIGNsYXNzTmFtZT1cIk9kb250b2dyYW1cIlxuICAgICAgICBzdHlsZT17e1xuICAgICAgICAgIHdpZHRoOiBcIjEwMCVcIixcbiAgICAgICAgICBoZWlnaHQ6IFwiYXV0b1wiLFxuICAgICAgICAgIHVzZXJTZWxlY3Q6IFwibm9uZVwiLFxuICAgICAgICAgIHRvdWNoQWN0aW9uOiBcIm1hbmlwdWxhdGlvblwiLFxuICAgICAgICB9fVxuICAgICAgPlxuICAgICAgICA8dGl0bGU+T2RvbnRvZ3JhbTwvdGl0bGU+XG4gICAgICAgIHt2aXNpYmxlUXVhZHJhbnRzLm1hcCgoeyBuYW1lLCB0cmFuc2Zvcm0sIGxhYmVsLCBwb3NpdGlvbiB9LCBpbmRleCkgPT4gKFxuICAgICAgICAgIDxnXG4gICAgICAgICAgICByb2xlPVwiZ3JvdXBcIlxuICAgICAgICAgICAgYXJpYS1sYWJlbD17bGFiZWx9XG4gICAgICAgICAgICBrZXk9e25hbWV9XG4gICAgICAgICAgICBuYW1lPXtuYW1lfVxuICAgICAgICAgICAgdHJhbnNmb3JtPXt0cmFuc2Zvcm19XG4gICAgICAgICAgPlxuICAgICAgICAgICAge3JlbmRlclRlZXRoKGB0ZWV0aC0ke2luZGV4ICsgMX1gLCBtYXhUZWV0aCl9XG4gICAgICAgICAgPC9nPlxuICAgICAgICApKX1cbiAgICAgIDwvc3ZnPlxuICAgICAge3Nob3dUb29sdGlwICYmIChcbiAgICAgICAgPE9kb250b2dyYW1Ub29sdGlwXG4gICAgICAgICAgYWN0aXZlPXt0b29sdGlwRGF0YS5hY3RpdmV9XG4gICAgICAgICAgcG9zaXRpb249e3Rvb2x0aXBEYXRhLnBvc2l0aW9ufVxuICAgICAgICAgIHBheWxvYWQ9e3Rvb2x0aXBEYXRhLnBheWxvYWR9XG4gICAgICAgICAgY29udGVudD17dG9vbHRpcD8uY29udGVudH1cbiAgICAgICAgLz5cbiAgICAgICl9XG4gICAgPC9kaXY+XG4gICk7XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gbWFwVG9Dc3NWYXJzKGNvbG9yczogUmVjb3JkPHN0cmluZywgc3RyaW5nIHwgdW5kZWZpbmVkPikge1xuICBjb25zdCBjc3NWYXJzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge307XG4gIGlmIChjb2xvcnMuZGFya0JsdWUpIHtcbiAgICBjc3NWYXJzW1wiLS1kYXJrLWJsdWVcIl0gPSBjb2xvcnMuZGFya0JsdWU7XG4gIH1cbiAgaWYgKGNvbG9ycy5iYXNlQmx1ZSkge1xuICAgIGNzc1ZhcnNbXCItLWJhc2UtYmx1ZVwiXSA9IGNvbG9ycy5iYXNlQmx1ZTtcbiAgfVxuICBpZiAoY29sb3JzLmxpZ2h0Qmx1ZSkge1xuICAgIGNzc1ZhcnNbXCItLWxpZ2h0LWJsdWVcIl0gPSBjb2xvcnMubGlnaHRCbHVlO1xuICB9XG4gIHJldHVybiBjc3NWYXJzO1xufVxuXG5leHBvcnQgZGVmYXVsdCBPZG9udG9ncmFtO1xuIiwgImltcG9ydCB7IHVzZUVmZmVjdCwgdXNlUmVmLCB1c2VTdGF0ZSB9IGZyb20gXCJyZWFjdFwiO1xuXG5leHBvcnQgdHlwZSBUb29sdGlwQ29udGVudFJlbmRlcmVyID0gKHBheWxvYWQ/OiBhbnkpID0+IFJlYWN0LlJlYWN0Tm9kZTtcblxuZXhwb3J0IGludGVyZmFjZSBPZG9udG9ncmFtVG9vbHRpcFByb3BzIHtcbiAgYWN0aXZlOiBib29sZWFuO1xuICBwYXlsb2FkPzogYW55O1xuICBwb3NpdGlvbj86IHsgeDogbnVtYmVyOyB5OiBudW1iZXIgfTtcbiAgY29udGVudD86IFJlYWN0LlJlYWN0Tm9kZSB8IFRvb2x0aXBDb250ZW50UmVuZGVyZXI7XG59XG5cbmNvbnN0IGdldENvbnRlbnQgPSAoXG4gIGNvbnRlbnQ6IFJlYWN0LlJlYWN0Tm9kZSB8IFRvb2x0aXBDb250ZW50UmVuZGVyZXIsXG4gIHBheWxvYWQ/OiBhbnlcbikgPT4ge1xuICByZXR1cm4gdHlwZW9mIGNvbnRlbnQgPT09IFwiZnVuY3Rpb25cIiA/IGNvbnRlbnQocGF5bG9hZCkgOiBjb250ZW50O1xufTtcblxuZXhwb3J0IGNvbnN0IE9kb250b2dyYW1Ub29sdGlwOiBSZWFjdC5GQzxPZG9udG9ncmFtVG9vbHRpcFByb3BzPiA9ICh7XG4gIGFjdGl2ZSxcbiAgcGF5bG9hZCxcbiAgcG9zaXRpb24sXG4gIGNvbnRlbnQsXG59KSA9PiB7XG4gIGNvbnN0IHJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbCk7XG4gIGNvbnN0IFtjb29yZHMsIHNldENvb3Jkc10gPSB1c2VTdGF0ZSh7IGxlZnQ6IDAsIHRvcDogMCB9KTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICghcmVmLmN1cnJlbnQgfHwgIXBvc2l0aW9uKSByZXR1cm47XG5cbiAgICBjb25zdCB0b29sdGlwQm94ID0gcmVmLmN1cnJlbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgY29uc3QgeyB4LCB5IH0gPSBwb3NpdGlvbjtcblxuICAgIC8vIHBsYWNlIHRvb2x0aXAgYWJvdmUgdGhlIGhvdmVyIHBvaW50XG4gICAgY29uc3QgbGVmdCA9IHggLSB0b29sdGlwQm94LndpZHRoIC8gMjtcbiAgICBjb25zdCB0b3AgPSB5IC0gdG9vbHRpcEJveC5oZWlnaHQgLSAxMjsgLy8gc3BhY2UgZm9yIGFycm93XG5cbiAgICBzZXRDb29yZHMoeyBsZWZ0LCB0b3AgfSk7XG4gIH0sIFtwb3NpdGlvbiwgY29udGVudCwgcGF5bG9hZF0pO1xuXG4gIGlmICghKGFjdGl2ZSAmJiBwYXlsb2FkKSkgcmV0dXJuIG51bGw7XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2XG4gICAgICByZWY9e3JlZn1cbiAgICAgIGNsYXNzTmFtZT1cIm9kb250b2dyYW0tdG9vbHRpcFwiXG4gICAgICBzdHlsZT17e1xuICAgICAgICBwb3NpdGlvbjogXCJmaXhlZFwiLFxuICAgICAgICBwb2ludGVyRXZlbnRzOiBcIm5vbmVcIixcbiAgICAgICAgYmFja2dyb3VuZDogXCJyZ2JhKDAsMCwwLDAuODUpXCIsXG4gICAgICAgIGNvbG9yOiBcIiNmZmZcIixcbiAgICAgICAgcGFkZGluZzogXCI2cHggMTBweFwiLFxuICAgICAgICBib3JkZXJSYWRpdXM6IFwiNnB4XCIsXG4gICAgICAgIGZvbnRTaXplOiBcIjEycHhcIixcbiAgICAgICAgbGluZUhlaWdodDogMS4zLFxuICAgICAgICB3aGl0ZVNwYWNlOiBcIm5vd3JhcFwiLFxuICAgICAgICB6SW5kZXg6IDEwMDAsXG5cbiAgICAgICAgbGVmdDogY29vcmRzLmxlZnQsXG4gICAgICAgIHRvcDogY29vcmRzLnRvcCxcblxuICAgICAgICBvcGFjaXR5OiBhY3RpdmUgPyAxIDogMCxcbiAgICAgICAgdHJhbnNpdGlvbjogXCJvcGFjaXR5IDAuMTVzIGVhc2VcIixcbiAgICAgIH19XG4gICAgPlxuICAgICAgey8qIHRvb2x0aXAgY29udGVudCAqL31cbiAgICAgIHtnZXRDb250ZW50KGNvbnRlbnQsIHBheWxvYWQpID8/IChcbiAgICAgICAgPD5cbiAgICAgICAgICA8ZGl2PlRvb3RoOiB7cGF5bG9hZD8ubm90YXRpb25zPy5mZGl9PC9kaXY+XG4gICAgICAgICAgPGRpdj5UeXBlOiB7cGF5bG9hZD8udHlwZX08L2Rpdj5cbiAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgVW5pdmVyc2FsOiB7cGF5bG9hZD8ubm90YXRpb25zPy51bml2ZXJzYWx9LCBQYWxtZXI6e1wiIFwifVxuICAgICAgICAgICAge3BheWxvYWQ/Lm5vdGF0aW9ucz8ucGFsbWVyfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8Lz5cbiAgICAgICl9XG5cbiAgICAgIHsvKiBBUlJPVyAqL31cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3NOYW1lPVwib2RvbnRvZ3JhbS10b29sdGlwLWFycm93XCJcbiAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICBwb3NpdGlvbjogXCJhYnNvbHV0ZVwiLFxuICAgICAgICAgIGJvdHRvbTogXCItNnB4XCIsXG4gICAgICAgICAgbGVmdDogXCI1MCVcIixcbiAgICAgICAgICB0cmFuc2Zvcm06IFwidHJhbnNsYXRlWCgtNTAlKVwiLFxuICAgICAgICAgIHdpZHRoOiAwLFxuICAgICAgICAgIGhlaWdodDogMCxcbiAgICAgICAgICBib3JkZXJMZWZ0OiBcIjZweCBzb2xpZCB0cmFuc3BhcmVudFwiLFxuICAgICAgICAgIGJvcmRlclJpZ2h0OiBcIjZweCBzb2xpZCB0cmFuc3BhcmVudFwiLFxuICAgICAgICAgIGJvcmRlclRvcDogXCI2cHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjg1KVwiLCAvLyBhcnJvdyBjb2xvclxuICAgICAgICB9fVxuICAgICAgLz5cbiAgICA8L2Rpdj5cbiAgKTtcbn07XG4iLCAiZXhwb3J0IGNvbnN0IHRlZXRoUGF0aHMgPSBbXG5cdHtcblx0XHRuYW1lOiBcIjFcIixcblx0XHR0eXBlOiBcIkNlbnRyYWwgSW5jaXNvclwiLFxuXHRcdG91dGxpbmVQYXRoOlxuXHRcdFx0XCJNMTczLjk1MSAxLjY5OGMtMi4xOTguMTYtNS4zMDIuODYyLTUuMzAyLjg2MnMtNS41MzEgMS4wMjUtNy43ODEgMi4yN2MtMi40MDMgMS4zMzMtNS41NTMgMy4yOTktNi4wMTMgNS4yNTgtLjQzMiAxLjg0LS43OCA0LjczNC0uNDkxIDYuODMybC4wMjcuMmMuMzQ4IDIuNTI3Ljg2NSA2LjI4IDEuMjM5IDEwLjMxNi4xODYgMi0uMTAxIDMuMjEuNzUxIDYuMTYuODk1IDMuMSAxLjM5NSA0LjU3MyAyLjAxMyA1LjY4Ny42NDYgMS4xNjQgMS40OTMgMi4wODcgMi4wMyAzLjI4Ljg2NiAxLjkyNCAyLjM5MyA0LjI5IDMuODcgNi4xYTQ4LjgwNSA0OC44MDUgMCAwIDAgMi4zNiAyLjY2M2MxLjAxNiAxLjA3OCAyLjgxOSAzLjExIDMuODk4IDQuMzMxIDEuNTI2IDEuNzI3IDMuMDc2IDMuMjQ4IDQuNDIzIDMuNzQyIDEuMjE3LjQ0NiAyLjcwOS42NDIgMy43OTMuOTM2IDEuMzY5LjM3MiAyLjQ5NC42MzggNC41OTcgMCAxLjU0NS0uNDY4IDIuNzI1LS42MjEgNC4zNzItMi40MjQgMi4wNjQtMi4yNTggMi44NDYtMy41MTcgMy41MTItNC43NDYgMS4wNjUtMS45NjQgMi41MjQtNC42NDggMy41NDEtNi40MjIuNjExLTEuMDY4IDIuMjIxLTMuMDg5IDQuMDg2LTguODQ1IDEuNTQtNC43NTIgMi4zNjctNy43NiAyLjczMS04Ljk5NC40MTUtMS40MDggMS4wNzktMy41ODMgMS4zNTUtNi4xOTYuNDQtNC4xNzYgMS4xMTQtNy40ODIgMS4wNjItMTEuMDI2LS4wNDQtMy4wNDYuMTA0LTUuMDQtMS4wNjUtNi4zMDYtLjk1LTEuMDI5LTEuOTg4LTIuMDAxLTMuMzA2LTIuNTM0LTEuOTU5LS43OS0zLjc3NS0xLjM1OC01LjI5OC0xLjU5Mi0xLjM1MS0uMjA3LTcuMDUtLjM1LTExLjIxOS0uMDU3LTEuNTY3LjExLTMuNjEuMDk3LTkuMTg1LjUwNVpcIixcblx0XHRzaGFkb3dQYXRoOlxuXHRcdFx0XCJNMTg4LjI2OSA1MC4yMTVjMTkuMjc1LTQxLjg2NyAxMC43NjYtNDMuNjEyIDQuOTM3LTQ0LjY4NC01LjgyOS0xLjA3My0yOC40NTUgMi41My0yOS43MiAyLjgxNy0uNDQyLjIxOC04LjkxMSAwLTQuNzY3IDE5LjU0IDMuNDE2IDE2LjEwNSAxNi4xOTMgMjYuNTk2IDE3LjI0NCAyNy4yNjUgMy4xNDggMi4wMDMgOC44MzcgMi41OTUgMTIuMzA2LTQuOTM4WlwiLFxuXHRcdGxpbmVIaWdobGlnaHRQYXRoOlxuXHRcdFx0XCJNMTYwLjQ3MiAxNC43MjdjLjM5Mi0uNDAyIDQuMzE3LTMuMzA5IDguOTQxLTUuNDcgMy4wOTctMS40NDggNy43NzMtMS42MjkgMTEuMjA3LTEuNzQ5IDguNzU5LS4zNjUgMTAuMDA0LjkxIDEyLjYzNyAxLjQ5NS41NjIuMTM5LjkwOS4yNzYgMS43NzEuNTk1XCIsXG5cdH0sXG5cblx0e1xuXHRcdG5hbWU6IFwiMlwiLFxuXHRcdHR5cGU6IFwiTGF0ZXJhbCBJbmNpc29yXCIsXG5cblx0XHRvdXRsaW5lUGF0aDpcblx0XHRcdFwiTTEzNS4wMTYgNjAuNDFjMy40NDMgMS4zNTUgNy44MzQgMi43MyA5LjYwMSAyLjM0NiA0LjE4NS0uOTEgNy4wNDQtNC4wMTcgOC4xMjMtOC4xNTIgMi4wNjktNy45MjcgMi4yNDktMTYuMjg4IDEuOTk1LTI0LjQzNi0uMTEzLTMuNTk2LjcyLTE2LjgxLTQuMTg0LTE4LjQ0NC04LjEzNS02LjE0LTMyLjA4OC40OTQtMzYuOTc5IDguMDU1LTUuMDEzIDcuNzUxLjg3OCAyMS4xMzEgNS41NiAyNy43MjggMy44NjIgNS40NCA5LjcxNCAxMC40NzQgMTUuODg0IDEyLjkwM1pcIixcblx0XHRzaGFkb3dQYXRoOlxuXHRcdFx0XCJNMTM0LjY1IDU1LjM4NmMyLjczMiAxLjA3NiA2LjIxNyAyLjE2NyA3LjYyIDEuODYyIDMuMzIxLS43MjMgNS41OS0zLjE4OCA2LjQ0Ni02LjQ3IDEuNjQyLTYuMjkgMS43ODYtMTIuOTI3IDEuNTgzLTE5LjM5My0uMDg5LTIuODU0LjU3Mi0xMy4zNDItMy4zMi0xNC42MzgtNi40NTYtNC44NzMtMjUuNDY2LjM5Mi0yOS4zNDggNi4zOTMtMy45NzkgNi4xNTIuNjk2IDE2Ljc3IDQuNDEzIDIyLjAwNiAzLjA2NCA0LjMxNyA3LjcwOSA4LjMxMyAxMi42MDYgMTAuMjRaXCIsXG5cdFx0bGluZUhpZ2hsaWdodFBhdGg6XG5cdFx0XHRcIk0xMjEuNTY5IDI4Ljk1MmMuNTUxLS45ODQgNi4zNTQtOC4yMTQgMTIuODY2LTkuMDQ1IDMuMjM4LS40MTMgMTAuNjE5LS4xNyAxMS44MzggMFwiLFxuXHR9LFxuXHR7XG5cdFx0bmFtZTogXCIzXCIsXG5cdFx0dHlwZTogXCJDYW5pbmVcIixcblxuXHRcdG91dGxpbmVQYXRoOlxuXHRcdFx0XCJNNzcuNjMgNjQuMjM2YzEuNjkyIDEuNDAxIDE1LjUxNiAxNC41ODMgMzQuNjk4IDE2LjkwMyA1LjU2OS42NzQgMTUuMDU4LTcuMTg0IDE1Ljc4OS0xMi44OSAxLjMzNS0xMC40MjMtMTIuNDQ0LTI5LjIwNS0yMS45NjUtMzMuNzAzLTQuNTQyLTIuMTQ1LTI1Ljg5Mi00LjAzOS0yOC41MjMgMi45MzktMi40NzEgNi41NTctNi41OTYgMjEuMjkgMCAyNi43NTFaXCIsXG5cdFx0c2hhZG93UGF0aDpcblx0XHRcdFwiTTEyMy4yODUgNjYuMjY3YzEuMDcyLTguMzY4LTEwLjIzNC0yMy45NC0xNy45OS0yNy42MDMtMy43Mi0xLjc1Ny0yMS4yMDYtMy4zMDgtMjMuMzYgMi40MDctMS43NTcgNC42Ni00LjA5IDEzLjI4NC0yLjMwNiAxOC4xNyA0LjE1IDExLjM2IDQwLjg5NyAyOC41NzMgNDMuNjU2IDcuMDI2WlwiLFxuXHRcdGxpbmVIaWdobGlnaHRQYXRoOiBbXG5cdFx0XHRcIk04Mi44NCA2MC4wNDNjLS4wMS0uODU1LS4xOTMtNC42My4yNTYtOC4xMi42NjctNS4xODUuNzAzLTUuODY2IDEuMjktOC4xMDYuNDM3LTEuNjY2IDIuMDgzLTQuOTEgMTcuNDg3LTMuNzQ4XCIsXG5cdFx0XHRcIk0xMDEuNDM4IDY4LjQ5Yy4zNzYtLjA0NSAyLjI4NC01LjExMiA5LjQ5OC02LjM0NFwiLFxuXHRcdF0sXG5cdH0sXG5cdHtcblx0XHRuYW1lOiBcIjRcIixcblx0XHR0eXBlOiBcIkZpcnN0IFByZW1vbGFyXCIsXG5cblx0XHRvdXRsaW5lUGF0aDpcblx0XHRcdFwiTTkzLjY4NCAxMDguNzQ4Yy03LjQ5OCAzLjM5Ny0zNS4zNjgtNy4zOTctMzUuNTk2LTcuNDQxLTEuNDI5LS44NDItMTIuMjE1LTIuODU0LTkuMDY4LTI5LjQxNC4xNDctMS4yMzggMS4zNTMtMi4wNSAyLjIxOC0yLjU1Ni45NTYtLjU1OSAzLjE1Ny0xLjU5NSA3LjU4Ny0yLjc5NCAyLjcwNy0uNzM0IDEzLjg1Ni0zLjU0IDE4LjY3NC0uOTIgMi4yMTYgMS4yMDYgNi4zNjMgNC4xMTcgMTAuNDczIDcuMDM2IDQuMTEgMi45MTkgMTAuOTU4IDguNzE1IDEzLjMyNyAxMS4zMzggMi4yOTEgMi41MzcgMTAuMzI0IDEzLjc1LTcuNjE1IDI0Ljc1MVpcIixcblx0XHRzaGFkb3dQYXRoOlxuXHRcdFx0XCJNOTEuNDk1IDEwNS45MzFjLTYuNTI4IDIuOTU4LTMwLjc5My02LjQ0LTMwLjk5Mi02LjQ3OC0xLjI0My0uNzM0LTEwLjYzNC0yLjQ4Ni03Ljg5NS0yNS42MS4xMjgtMS4wNzggMS4xNzgtMS43ODUgMS45MzItMi4yMjUuODMyLS40ODcgMi43NDgtMS4zOSA2LjYwNS0yLjQzMyAyLjM1Ny0uNjM5IDEyLjA2NC0zLjA4MiAxNi4yNTgtLjggMS45MyAxLjA1IDUuNTQgMy41ODQgOS4xMiA2LjEyNSAzLjU3OCAyLjU0MSA5LjU0IDcuNTg4IDExLjYwMyA5Ljg3MiAxLjk5NCAyLjIwOCA4Ljk4NyAxMS45NzEtNi42MyAyMS41NDlaXCIsXG5cdFx0bGluZUhpZ2hsaWdodFBhdGg6IFtcblx0XHRcdFwiTTU1LjIzNCA5Mi40MTRjLjAyMi0uMjQyLjA2LTEuNDY5Ljg3NS03Ljc5LjQ2LTMuNTczIDEuODEzLTUuNDkgMy4xMzQtNy4wMSAxLjE4LTEuMzU5IDMuNTI0LTMuMTkzIDUuODgtNC4zNjUgMS40Ni0uNjMyIDMuMDI5LTEuMTI2IDYuMDQ0LTEuNzc2LjgyNi0uMTM4IDEuNDc3LS4xNzUgMi41MjYtLjM5NVwiLFxuXHRcdFx0XCJNODcuMDIgMTAxLjM4N2M0LjE4My0uNzkyIDguNzQ3LTkuNzc0IDguNzQ3LTkuNzc0XCIsXG5cdFx0XSxcblx0fSxcblx0e1xuXHRcdG5hbWU6IFwiNVwiLFxuXHRcdHR5cGU6IFwiU2Vjb25kIFByZW1vbGFyXCIsXG5cdFx0b3V0bGluZVBhdGg6XG5cdFx0XHRcIk0zMy4zOTYgMTI3LjY1MmMtMS4wODgtMi43MTMtNC40ODYtMTEuODUyLTMuOTYyLTE1LjI0Ni40NzctMy4wODUgMTQuNDctMTIuMDA4IDIzLjU5NS0xMi4wMDggMi4xNzggMCAyNS4xNTcgNi42NjUgMzUuMDczIDE3LjkwOCA0LjU1MSA5LjMyNC0xLjYyNCAyMy4zMzktMTYuMjIgMjMuMzM5LTguMTkzIDAtMjMuNTYzLTEuODk3LTI1LjQ1My0yLjIxNS0xLjg5Ni0uMzE5LTQuMzE3LTEuMTI4LTYuNTk2LTIuMzIxLTEuMjg5LS42NzUtMi0xLjAzNS0yLjQ3OC0xLjY0Ny0uNjU1LS44NC0yLjEwMS0zLjE3OC0zLjk2LTcuODFaXCIsXG5cdFx0c2hhZG93UGF0aDpcblx0XHRcdFwiTTM2LjgzNyAxMjYuNzc4Yy0uOTQ1LTIuMzU2LTMuODk1LTEwLjI4OS0zLjQ0LTEzLjIzNS40MTQtMi42NzkgMTIuNTYxLTEwLjQyNCAyMC40ODMtMTAuNDI0IDEuODkgMCAyMS44MzcgNS43ODUgMzAuNDQ1IDE1LjU0NSAzLjk1MSA4LjA5NC0xLjQxIDIwLjI2LTE0LjA4IDIwLjI2LTcuMTEyIDAtMjAuNDU0LTEuNjQ3LTIyLjA5NS0xLjkyMi0xLjY0NS0uMjc3LTMuNzQ3LS45OC01LjcyNS0yLjAxNS0xLjEyLS41ODYtMS43MzctLjg5OS0yLjE1MS0xLjQzLS41Ny0uNzI5LTEuODI1LTIuNzU5LTMuNDM3LTYuNzc5WlwiLFxuXHRcdGxpbmVIaWdobGlnaHRQYXRoOiBbXG5cdFx0XHRcIk00MC44IDEzMS4yMjFjLTQuMDAzLTIwLjI3OCA4LjQ0Mi0yMC45NzQgMTMuNzc5LTIzLjY5MlwiLFxuXHRcdFx0XCJNNzQuMDU2IDEzNC43MjljNi4zNS00LjI2NCA2LjM0My0xMC41MDMgNi40ODktMTEuNDQ4XCIsXG5cdFx0XSxcblx0fSxcblx0e1xuXHRcdG5hbWU6IFwiNlwiLFxuXHRcdHR5cGU6IFwiRmlyc3QgTW9sYXJcIixcblx0XHRvdXRsaW5lUGF0aDpcblx0XHRcdFwiTTM1LjUzOSAyMDMuMzIzYy0zLjM2My4xOTYtMzIuNzg4LTQuMDItMjguNDk1LTQyLjQ2NSAzLjYzMS0yMC40MDggMjYuMjEtMjMuMzY0IDI5LjU1Ny0yMi45MTIgOS4wMTktLjc0NSAyNS43MjcgNi43NDMgMjkuMjU1IDkuNDAzIDQuNTQ2IDMuNDI3IDcuMzg0IDUuNjgxIDguNjA2IDcuMDkyIDIuNDM2IDIuODE0IDQuNDk5IDUuMTEgNC43IDYuMzEzLjI4NCAxLjcwMyAxLjMxNyA0LjcyLTIuMjQ4IDkuNjg3LTIuNDUzIDMuNDE4LTIuOTU3IDYuNjYzLTIuODU2IDEwLjIyMy4xMTggNC4xODUuMzcgOS43NTQtLjUyNCAxMS42My0uNTkyIDEuMjQ0LS45ODQgMi42MjctMi4zNzUgMy4zOTItMi4wMTUgMS4xMDgtNC42MSAyLjMxNy0xMS45MyAzLjc0OC0zLjYyMy43MDgtOS4zMDkgMS44My0xMi40MDEgMi4yOTItNS4xOS43NzctOC40MjMgMS40My0xMS4yODkgMS41OTdaXCIsXG5cdFx0c2hhZG93UGF0aDpcblx0XHRcdFwiTTM2LjUxNSAxOTkuMDg1Yy0yLjkyNy4xNy0yOC41NC0zLjQ5OS0yNC44MDMtMzYuOTYzIDMuMTYtMTcuNzY0IDIyLjgxNC0yMC4zMzcgMjUuNzI3LTE5Ljk0NCAxMC44Mi0uODkzIDI1LjcwOSA1Ljk4OSAzMi45NTUgMTQuMzU4IDIuMTIgMi40NSAzLjkxNyA0LjQ0OCA0LjA5MSA1LjQ5NS4yNDggMS40ODIuNTEzIDQuMjY4LTIuNTkgOC41OTEtMi4xMzUgMi45NzUtMS45NCA1LjY0MS0xLjg1MiA4Ljc0LjA5NiAzLjQxNyAxLjQwMiAxMC45MTctMi41MjMgMTMuMDc2LTEuNzU0Ljk2NC00LjAxMyAyLjAxNi0xMC4zODQgMy4yNjEtNi43NjIgMS4zMjItMTMuNzI4IDIuOTg0LTIwLjYyMSAzLjM4NlpcIixcblx0XHRsaW5lSGlnaGxpZ2h0UGF0aDogW1xuXHRcdFx0XCJNMzcuMTMyIDE5Mi4xNDdjMS4yODgtLjM3MiAzLjM4NS0yLjA3MSA1LjE4My01LjQzOG05LjAwOC0zNS45OGMxLjE4OCAxLjIyNCAyLjExNCA2LjM4NS4xNSAxMS4zNjNtMCAwYy0xLjUzNyAzLjg5OS00Ljk0NCA5LjM3OC0xMS4xOTUgOS4zNzggNi44NzcuMzIxIDQuNjUxIDEwLjM0MyAyLjAzNyAxNS4yMzltOS4xNTktMjQuNjE3YzEuNDctMi41ODkgNC45NjYtNy41NzIgOC4wNjgtOC4yMTdtLTE3LjIyNyAzMi44MzRjLS4xODYgMi4zNDguMDQ0IDcuMzUxIDIuNDU4IDguNTg0XCIsXG5cdFx0XSxcblx0fSxcblx0e1xuXHRcdG5hbWU6IFwiN1wiLFxuXHRcdHR5cGU6IFwiU2Vjb25kIE1vbGFyXCIsXG5cblx0XHRvdXRsaW5lUGF0aDpcblx0XHRcdFwiTTQuOTY5IDI0OC4xMzJjLTEuMTg4LTIuNzQtMTQuNzA4LTI3LjE1MiAxMi4zMTktNDIuMTM5IDEuODM2LTEuMDE4IDI0LjUwOC03LjcxMSA0NS4yOCAxMC44NzQgMi4yNzQgMi4wMzUgNC40NTUgMy41NzkgNS40MDMgNS4xMDIgMS40MTQgMi4yNzEgMi4xMjggMy40MzUgMS42ODcgNS42MDYtLjM4NyAxLjkwMS0xLjU0IDMuNjQyLTMuNzcgNy43MTEtMS4xMjcgMi4wNTYtMS44NTQgMy40MjctMS4zNjkgNy44MjQuMTc1IDEuNTkuNjI3IDMuOTM1LjA0OCA2LjYwMy0uNDY2IDIuMTQ3LS45NDEgMy41NjctMi41NzggNS4wMDYtMi41MyAyLjIyNC01LjMwNyAzLjY0NS05LjA3NiA0LjM1LTEuMDkxLjIwNC0zLjEzMy44MTEtNy41MjUgMS43MDItMi43NzYuNTYzLTYuNjE5IDEuMjM0LTEwLjA5IDEuNjU0LTMuNDcuNDItNi40NzguNjM4LTguNjEyLjYzNi0zLjM1My0uMDAyLTYuNzM0LjAzMS05LjQ2NS0xLjQ4bC0uMDE4LS4wMWMtMS42NTQtLjkxNS00LjA3Ni0yLjI1NS02LjI0NS00LjczMi0yLjI1OC0yLjU3OS00LjU5MS01LjQ4Mi01Ljk4OS04LjcwN1pcIixcblx0XHRzaGFkb3dQYXRoOlxuXHRcdFx0XCJNOC43OTkgMjQ2LjI4Yy0xLjEyOC0yLjM1Mi0xMi44NDMtMjMuNzA5IDEwLjc1Ni0zNi43OTYgMS42MDQtLjg4OSAyMS40LTYuNzMyIDM5LjUzOCA5LjQ5NiAxLjk4NiAxLjc3NyAzLjg5IDMuMTI1IDQuNzE3IDQuNDU0IDEuMjM1IDEuOTgzIDEuODU5IDMgMS40NzMgNC44OTUtLjMzNyAxLjY2LTEuMzQzIDMuMTgtMy4yOTEgNi43MzQtLjk4NCAxLjc5NS0xLjYxOSAyLjk5Mi0xLjE5NiA2LjgzMS4xNTQgMS4zODkuNTQ4IDMuNDM2LjA0MiA1Ljc2Ni0yLjg3MiAxMy4yMzEtMzEuMjEzIDExLjY1Ny0zMy4wNzYgMTEuNjU2aC0uMDA3Yy0yLjkzNi0uMDAzLTEyLjcxNC0uMDEtMTguOTU2LTEzLjAzNlpcIixcblx0XHRsaW5lSGlnaGxpZ2h0UGF0aDogW1xuXHRcdFx0XCJNMzIuMTQgMjU1LjA5MWMuNzQ4LS4zMDMgMi4yOC0yLjM3OCAzLjEwMy01LjcyMW0tMS45OS0zNS40ODFjMy4wMDkgMS4zNjMgNC4wMTUgNC44ODggMy43MzYgOC43MTZtMCAwYy0uNDI0IDUuODM1LTMuODMyIDEyLjM3Ny03LjY4MyAxMy4wNDkgNi45NTQgMS4xOCA3LjI0NCA4LjQxNCA1LjkzNyAxMy43MTZtMS43NDYtMjYuNzY1Yy4zMjctMi4yNCAxLjgyLTYuOTU4IDUuMTktNy45MW0tNi45MzYgMzQuNjc1Yy42NSAyLjE3MiAyLjU1IDYuNTA3IDQuOTY3IDYuNDcxXCIsXG5cdFx0XSxcblx0fSxcblx0e1xuXHRcdG5hbWU6IFwiOFwiLFxuXHRcdHR5cGU6IFwiVGhpcmQgTW9sYXJcIixcblxuXHRcdG91dGxpbmVQYXRoOlxuXHRcdFx0XCJNLjg5NSAyOTEuMzMxYy0uMzYyLTEuMjE4LS4xMTYtMy40MTEtLjE2NC0zLjg5Mi0uMDM1LS4zNC4xMjQtMy40MzguNzI3LTUuNTU4IDEuMDQtMi44MiAxLjgwOC00Ljc0IDIuNTczLTUuNzUyIDEuNDEzLTEuODcyIDMuOTEzLTQuNzY5IDcuMTM1LTcuMiAyLjI4OC0xLjcyNiA1LjAwMy0zLjE4NyA4LjEzMy00LjMzOSAyLjI0OS0uODI4IDQuMzYyLTEuNTAyIDcuNzMyLTEuNjkzIDIuMTc1LS4xMjMgNS4yNS0uMTU1IDguNzgyLjEwOHM3LjQwMy44MDQgMTAuMzUzIDEuMzk3IDQuOTIgMS4yMTggNi42NDEgMS44OTNjMS43MjIuNjc1IDMuMTQ4IDEuMzg5IDMuOTcyIDEuNzY4IDEuNTEuNjk2IDIuOSAxLjIwOSAzLjgyNCAyLjE0IDEuODU3IDEuODcyIDIuNjE3IDMuMzM0IDIuOTEyIDQuODA3LjI1NCAxLjI3LjI1MiAzLjIxNi0uMjI0IDQuNTMxLS42NzIgMS44NTktMS40NjggMi44NTYtMS40NjggNS43IDAgMy44NTcgMS43MTMgNS45NSAxLjkxNSA4LjM1Ni4zMzcgNC4wMDguMzE3IDYuMTY4LS40MiA3LjQ4NS0uNTkxIDEuMDU3LTEuNTMyIDIuMzgzLTUuNTQxIDUuMDg4LTEuMTczLjc5MS0yLjY4NCAxLjYzNC02LjY0MyAzLjQyNC0yLjc2MiAxLjI0OC02Ljk3NyAzLjEwOC05LjIwNSA0LjEwNy0yLjQ3MyAxLjEwOS00LjY2NyAyLjIyNi04LjIzNCAzLjA1My0yLjU0LjU4OS01LjYzMS43ODQtOS4wMTIuMTg2LTIuMzA3LS40MDgtNS40NDktMS4xODMtOS4xMDctMy44MjctMy45MjgtMi44MzktNi41My00Ljg5Ny03LjQ5Ny02LjA0MS0uODY2LTEuMDI2LTEuNzE0LTIuMDgyLTIuNDEyLTMuNTU1LS45MDQtMS45MDUtMi4yNzItMy42NDMtMy01LjkxNi0uODQ2LTIuNjMzLTEuMTY3LTQuMjMzLTEuNzcyLTYuMjdaXCIsXG5cdFx0c2hhZG93UGF0aDpcblx0XHRcdFwiTTQuNzMyIDI5MS4xNzVjLS4zMTctMS4wNy0uMTAxLTIuOTk0LS4xNDQtMy40MTYtLjAzLS4yOTkuMTEtMy4wMTkuNjM4LTQuODguOTE0LTIuNDc2IDEuNTg4LTQuMTYxIDIuMjYtNS4wNSAxLjI0LTEuNjQzIDMuNDM0LTQuMTg3IDYuMjYzLTYuMzIxIDIuMDA5LTEuNTE1IDQuMzkzLTIuNzk3IDcuMTQtMy44MDkgMS45NzQtLjcyNyAzLjgzLTEuMzE4IDYuNzg4LTEuNDg2IDEuOTEtLjEwOCA0LjYxLS4xMzYgNy43MS4wOTUgMy4xLjIzMSA2LjQ5OC43MDYgOS4wODggMS4yMjYgMi41OS41MjEgNC4zMTkgMS4wNyA1LjgzIDEuNjYyIDEuNTEyLjU5MiAyLjc2NCAxLjIyIDMuNDg3IDEuNTUzIDEuMzI2LjYxIDIuNTQ3IDEuMDYxIDMuMzU3IDEuODc4IDEuNjMgMS42NDMgMi4yOTggMi45MjcgMi41NTcgNC4yMi4yMjMgMS4xMTUuMjIxIDIuODI0LS4xOTYgMy45NzgtLjU5IDEuNjMyLTEuMjkgMi41MDctMS4yOSA1LjAwNCAwIDMuMzg1IDEuNTA0IDUuMjIzIDEuNjgyIDcuMzM1LjI5NiAzLjUxOS4yNzggNS40MTYtLjM2OSA2LjU3MS0uNTIuOTI4LTEuMzQ1IDIuMDkzLTQuODY1IDQuNDY3LTEuMDMuNjk1LTIuMzU1IDEuNDM1LTUuODMxIDMuMDA2LTIuNDI1IDEuMDk2LTYuMTI2IDIuNzI4LTguMDgyIDMuNjA2LTIuMTcuOTczLTQuMDk2IDEuOTU0LTcuMjI4IDIuNjgtMi4yMjkuNTE3LTQuOTQ0LjY4OC03LjkxMi4xNjMtMi4wMjQtLjM1OC00Ljc4My0xLjAzOC03Ljk5NS0zLjM1OS0zLjQ0OC0yLjQ5My01LjczMi00LjI5OS02LjU4LTUuMzA0LS43NjEtLjkwMS0xLjUwNS0xLjgyNy0yLjExOS0zLjEyMS0uNzkzLTEuNjcyLTEuOTk0LTMuMTk4LTIuNjM0LTUuMTkzLS43NDItMi4zMTItMS4wMjQtMy43MTctMS41NTUtNS41MDVaXCIsXG5cdFx0bGluZUhpZ2hsaWdodFBhdGg6IFtcblx0XHRcdFwiTTMxLjczMiAzMDkuNTExYzEuNDYyLS44OTcgMi41ODUtMy42NzIgMi45My02LjcyNm0tMi45My0yOS40NTNjMi4xMTQgMS4wOTIgMy40OSA0LjQ0IDMuNjEgOC4wNjJtNC4xMzMtNy41OGMtMS4zNTMgMS4wNTgtNC4wNzQgNC4wNTctNC4xMzQgNy41OG0wIDBjLjE1NSA0LjY5My0xLjc5NyA5Ljg0Ni02Ljk4MyAxMS4xNTIgNS4zNzktLjM1NyA2Ljg1OSA1LjMwNSA2LjMwMyAxMC4yMzltNC41NTcgNy4yNGMtMS42NzgtLjY3MS00LjkzOC0zLjA1OC00LjU1Ny03LjI0XCIsXG5cdFx0XSxcblx0fSxcbl07XG5cbiIsICJpbXBvcnQgeyBUZWV0aFByb3BzIH0gZnJvbSBcIi4vdHlwZVwiO1xuXG5leHBvcnQgY29uc3QgVGVldGggPSAoe1xuICBuYW1lLFxuICBvdXRsaW5lUGF0aCxcbiAgc2hhZG93UGF0aCxcbiAgbGluZUhpZ2hsaWdodFBhdGgsXG4gIHNlbGVjdGVkLFxuICBvbkNsaWNrLFxuICBvbktleURvd24sXG4gIG9uSG92ZXIsXG4gIG9uTGVhdmUsXG4gIGNoaWxkcmVuLFxufTogVGVldGhQcm9wcykgPT4gKFxuICA8Z1xuICAgIGNsYXNzTmFtZT17YCR7bmFtZX0gJHtzZWxlY3RlZCA/IFwic2VsZWN0ZWRcIiA6IFwiXCJ9YH1cbiAgICB0YWJJbmRleD17MH1cbiAgICBvbkNsaWNrPXsoKSA9PiBvbkNsaWNrPy4obmFtZSl9XG4gICAgb25LZXlEb3duPXsoZSkgPT4gb25LZXlEb3duPy4oZSwgbmFtZSl9XG4gICAgb25Nb3VzZU1vdmU9eyhlKSA9PiBvbkhvdmVyPy4obmFtZSwgZSl9XG4gICAgb25Nb3VzZUxlYXZlPXtvbkxlYXZlfVxuICAgIHJvbGU9XCJvcHRpb25cIlxuICAgIGFyaWEtc2VsZWN0ZWQ9e3NlbGVjdGVkfVxuICAgIGFyaWEtbGFiZWw9e2BUb290aCAke25hbWV9YH1cbiAgICBzdHlsZT17e1xuICAgICAgY3Vyc29yOiBcInBvaW50ZXJcIixcbiAgICAgIG91dGxpbmU6IFwibm9uZVwiLFxuICAgICAgdG91Y2hBY3Rpb246IFwibWFuaXB1bGF0aW9uXCIsXG4gICAgICB0cmFuc2l0aW9uOiBcImFsbCAwLjJzIGVhc2VcIixcbiAgICB9fVxuICA+XG4gICAge2NoaWxkcmVufVxuICAgIDxwYXRoXG4gICAgICBzdHJva2U9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgc3Ryb2tlTGluZWNhcD1cInJvdW5kXCJcbiAgICAgIHN0cm9rZUxpbmVqb2luPVwicm91bmRcIlxuICAgICAgZD17b3V0bGluZVBhdGh9XG4gICAgLz5cbiAgICA8cGF0aCBmaWxsPVwiY3VycmVudENvbG9yXCIgZD17c2hhZG93UGF0aH0gLz5cbiAgICB7QXJyYXkuaXNBcnJheShsaW5lSGlnaGxpZ2h0UGF0aCkgPyAoXG4gICAgICBsaW5lSGlnaGxpZ2h0UGF0aC5tYXAoKGQpID0+IChcbiAgICAgICAgPHBhdGhcbiAgICAgICAgICBrZXk9e2Ake2R9YH1cbiAgICAgICAgICBzdHJva2U9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgICAgIHN0cm9rZUxpbmVjYXA9XCJyb3VuZFwiXG4gICAgICAgICAgc3Ryb2tlTGluZWpvaW49XCJyb3VuZFwiXG4gICAgICAgICAgZD17ZH1cbiAgICAgICAgLz5cbiAgICAgICkpXG4gICAgKSA6IChcbiAgICAgIDxwYXRoXG4gICAgICAgIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiXG4gICAgICAgIHN0cm9rZUxpbmVjYXA9XCJyb3VuZFwiXG4gICAgICAgIHN0cm9rZUxpbmVqb2luPVwicm91bmRcIlxuICAgICAgICBkPXtsaW5lSGlnaGxpZ2h0UGF0aH1cbiAgICAgIC8+XG4gICAgKX1cbiAgPC9nPlxuKTtcbiJdLAogICJtYXBwaW5ncyI6ICJBQUNBLE9BR0UsZUFBQUEsRUFDQSxVQUFBQyxFQUNBLFlBQUFDLE1BQ0ssUUNQUCxPQUFTLGFBQUFDLEVBQVcsVUFBQUMsRUFBUSxZQUFBQyxPQUFnQixRQW1FcEMsbUJBQUFDLEdBV0YsT0FBQUMsR0FWSSxRQUFBQyxNQURGLG9CQXhEUixJQUFNQyxHQUFhLENBQ2pCQyxFQUNBQyxJQUVPLE9BQU9ELEdBQVksV0FBYUEsRUFBUUMsQ0FBTyxFQUFJRCxFQUcvQ0UsRUFBc0QsQ0FBQyxDQUNsRSxPQUFBQyxFQUNBLFFBQUFGLEVBQ0EsU0FBQUcsRUFDQSxRQUFBSixDQUNGLElBQU0sQ0F2Qk4sSUFBQUssRUFBQUMsRUFBQUMsRUF3QkUsSUFBTUMsRUFBTWQsRUFBdUIsSUFBSSxFQUNqQyxDQUFDZSxFQUFRQyxDQUFTLEVBQUlmLEdBQVMsQ0FBRSxLQUFNLEVBQUcsSUFBSyxDQUFFLENBQUMsRUFleEQsT0FiQUYsRUFBVSxJQUFNLENBQ2QsR0FBSSxDQUFDZSxFQUFJLFNBQVcsQ0FBQ0osRUFBVSxPQUUvQixJQUFNTyxFQUFhSCxFQUFJLFFBQVEsc0JBQXNCLEVBQy9DLENBQUUsRUFBQUksRUFBRyxFQUFBQyxDQUFFLEVBQUlULEVBR1hVLEVBQU9GLEVBQUlELEVBQVcsTUFBUSxFQUM5QkksRUFBTUYsRUFBSUYsRUFBVyxPQUFTLEdBRXBDRCxFQUFVLENBQUUsS0FBQUksRUFBTSxJQUFBQyxDQUFJLENBQUMsQ0FDekIsRUFBRyxDQUFDWCxFQUFVSixFQUFTQyxDQUFPLENBQUMsRUFFekJFLEdBQVVGLEVBR2RILEVBQUMsT0FDQyxJQUFLVSxFQUNMLFVBQVUscUJBQ1YsTUFBTyxDQUNMLFNBQVUs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WSxRQUNyQixRQUFTWixHQUFBLFlBQUFBLEVBQVMsUUFDcEIsR0FFSixDQUVKLEVBRU8sU0FBUytDLEdBQWFoRCxFQUE0QyxDQUN2RSxJQUFNc0QsRUFBa0MsQ0FBQyxFQUN6QyxPQUFJdEQsRUFBTyxXQUNUc0QsRUFBUSxhQUFhLEVBQUl0RCxFQUFPLFVBRTlCQSxFQUFPLFdBQ1RzRCxFQUFRLGFBQWEsRUFBSXRELEVBQU8sVUFFOUJBLEVBQU8sWUFDVHNELEVBQVEsY0FBYyxFQUFJdEQsRUFBTyxXQUU1QnNELENBQ1QsQ0FFQSxJQUFPQyxHQUFRNUQiLAogICJuYW1lcyI6IFsidXNlQ2FsbGJhY2siLCAidXNlUmVmIiwgInVzZVN0YXRlIiwgInVzZUVmZmVjdCIsICJ1c2VSZWYiLCAidXNlU3RhdGUiLCAiRnJhZ21lbnQiLCAianN4IiwgImpzeHMiLCAiZ2V0Q29udGVudCIsICJjb250ZW50IiwgInBheWxvYWQiLCAiT2RvbnRvZ3JhbVRvb2x0aXAiLCAiYWN0aXZlIiwgInBvc2l0aW9uIiwgIl9hIiwgIl9iIiwgIl9jIiwgInJlZiIsICJjb29yZHMiLCAic2V0Q29vcmRzIiwgInRvb2x0aXBCb3giLCAieCIsICJ5IiwgImxlZnQiLCAidG9wIiwgInRlZXRoUGF0aHMiLCAianN4IiwgImpzeHMiLCAiVGVldGgiLCAibmFtZSIsICJvdXRsaW5lUGF0aCIsICJzaGFkb3dQYXRoIiwgImxpbmVIaWdobGlnaHRQYXRoIiwgInNlbGVjdGVkIiwgIm9uQ2xpY2siLCAib25LZXlEb3duIiwgIm9uSG92ZXIiLCAib25MZWF2ZSIsICJjaGlsZHJlbiIsICJlIiwgImQiLCAianN4IiwgImpzeHMiLCAicGxhY2VtZW50cyIsICJtIiwgImNvbnZlcnRGRElUb05vdGF0aW9uIiwgImZkaSIsICJub3RhdGlvbiIsICJudW0iLCAiZmRpVG9Vbml2ZXJzYWwiLCAicXVhZHJhbnQiLCAiZ2V0VG9vdGhOb3RhdGlvbnMiLCAidW5pdmVyc2FsIiwgInBhbG1lciIsICJPZG9udG9ncmFtIiwgImRlZmF1bHRTZWxlY3RlZCIsICJvbkNoYW5nZSIsICJjbGFzc05hbWUiLCAidGhlbWUiLCAiY29sb3JzIiwgInRvb2x0aXAiLCAic2hvd1Rvb2x0aXAiLCAic2hvd0hhbGYiLCAibmFtZSIsICJtYXhUZWV0aCIsICJ0aGVtZUNvbG9ycyIsICJzZWxlY3RlZCIsICJzZXRTZWxlY3RlZCIsICJ1c2VTdGF0ZSIsICJzdmdSZWYiLCAidXNlUmVmIiwgIl90b29sdGlwUmVmIiwgInRvb2x0aXBEYXRhIiwgInNldFRvb2x0aXBEYXRhIiwgImhhbmRsZVRvZ2dsZSIsICJ1c2VDYWxsYmFjayIsICJwcmV2IiwgInVwZGF0ZWQiLCAiZGV0YWlscyIsICJpZCIsICJ0b290aEJhc2UiLCAidG9vdGhEYXRhIiwgInRlZXRoUGF0aHMiLCAidCIsICJoYW5kbGVLZXlEb3duIiwgImUiLCAicXVhZHJhbnRzIiwgInZpc2libGVRdWFkcmFudHMiLCAiaGFuZGxlSG92ZXIiLCAicGxhY2VtZW50IiwgIl9hIiwgIl9iIiwgInBhdGgiLCAidG9vdGhCb3giLCAic3ZnQm94IiwgIm1hcmdpbiIsICJ4IiwgInkiLCAic2FmZVkiLCAiaGFuZGxlTGVhdmUiLCAicCIsICJyZW5kZXJUZWV0aCIsICJwcmVmaXgiLCAidG9vdGgiLCAiZGlzcGxheU5hbWUiLCAiVGVldGgiLCAiZmluYWxDb2xvcnMiLCAibWFwVG9Dc3NWYXJzIiwgInRyYW5zZm9ybSIsICJsYWJlbCIsICJwb3NpdGlvbiIsICJpbmRleCIsICJPZG9udG9ncmFtVG9vbHRpcCIsICJjc3NWYXJzIiwgIk9kb250b2dyYW1fZGVmYXVsdCJdCn0K
|