@eui/styles 15.0.0-next.5 → 15.0.0-next.7
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/styles/eui-legacy.css +1 -1
- package/dist/styles/eui-legacy.css.map +1 -1
- package/dist/styles/eui.css +3 -1
- package/dist/styles/eui.css.map +1 -1
- package/package.json +1 -1
- package/src/styles/05-material/_full-indigo-pink-theme.scss +0 -0
- package/src/styles/05-material/_module.scss +28 -2
- package/src/styles/05-material/_old-v14-material/_module.scss +2 -0
- package/src/styles/05-material/{components → _old-v14-material/components}/_button.scss +0 -0
- package/src/styles/05-material/{components → _old-v14-material/components}/_calendar.scss +0 -0
- package/src/styles/05-material/{components → _old-v14-material/components}/_cdk-drag.scss +0 -0
- package/src/styles/05-material/{components → _old-v14-material/components}/_cdk-global-scrollblock.scss +0 -0
- package/src/styles/05-material/{components → _old-v14-material/components}/_cdk-overlay-container.scss +0 -0
- package/src/styles/05-material/{components → _old-v14-material/components}/_cdk-overlay-pane.scss +0 -0
- package/src/styles/05-material/{components → _old-v14-material/components}/_checkbox.scss +0 -0
- package/src/styles/05-material/{components → _old-v14-material/components}/_input.scss +0 -0
- package/src/styles/05-material/{components → _old-v14-material/components}/_module.scss +0 -0
- package/src/styles/05-material/{components → _old-v14-material/components}/_option.scss +0 -0
- package/src/styles/05-material/{components → _old-v14-material/components}/_radio.scss +0 -0
- package/src/styles/05-material/{components → _old-v14-material/components}/_tooltip.scss +0 -0
- package/src/styles/05-material/{themes → _old-v14-material/themes}/default/_module.scss +0 -0
- package/src/styles/05-material/{themes → _old-v14-material/themes}/default/_theme.scss +0 -0
- package/src/styles/05-material/{themes → _old-v14-material/themes}/default/_variables.scss +0 -0
- package/src/styles/05-material/_overrides.scss +20 -0
- package/src/styles/06-shared/{_ux-form-group.scss → _old-to-review/_ux-form-group.scss} +0 -0
- package/src/styles/06-shared/{_ux-input-maxlength.scss → _old-to-review/_ux-input-maxlength.scss} +0 -0
- package/src/styles/06-shared/{_ux-input-placeholder.scss → _old-to-review/_ux-input-placeholder.scss} +0 -0
- package/src/styles/07-elements/_module-legacy.scss +1 -0
- package/src/styles/07-elements/legacy/_ux-input-group.scss +56 -0
- package/src/styles/11-extras/_module.scss +1 -1
- package/src/styles/eui-dev.scss +1 -1
- package/src/styles/eui.scss +1 -1
- package/src/styles/08-themes/_module-eui.scss +0 -1
- package/src/styles/08-themes/eui/_module.scss +0 -1
- package/src/styles/08-themes/eui/compact/_eui-t-compact.scss +0 -154
- package/src/styles/08-themes/eui/compact/_module.scss +0 -2
package/dist/styles/eui.css.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../../node_modules/@eui/styles-base/src/styles/01-ecl/all/full-css/ecl-reset.scss","eui.scss","../../../../../../../node_modules/@eui/styles-base/src/styles/03-vars/_tokens.vars.scss","../../../../../../../node_modules/@eui/styles-base/src/styles/03-vars/_other.vars.scss","02b-base-vars/_layout.vars.scss","../../../../../../../node_modules/@eui/styles-base/src/styles/05-assets/icons-svg/_icons-generics.scss","06-shared/_flex.scss","06-shared/_typography.scss","../../../../../../../node_modules/@eui/styles-base/src/styles/02-base/mixins/_eui-font-family.scss","../../../../../../../node_modules/@eui/styles-base/src/styles/02-base/mixins/_eui-font.scss","06-shared/_eui-input-maxlength.scss","../../../../../../../node_modules/@eui/styles-base/src/styles/04-elements/_html.scss","../../../../../../../node_modules/@eui/styles-base/src/styles/04-elements/_body.scss","../../../../../../../node_modules/@eui/styles-base/src/styles/04-elements/_shared.scss","07-elements/eui-table-default/_eui-table-default.scss","08-themes/compact/_eui-t-compact.scss","../../../../../../../node_modules/@eui/styles-base/src/styles/02-base/mixins/theming/_compact-vars.scss","10-media/_ieimgfix.scss","11-extras/_cookie-consent.scss","11-extras/_preloader-eu.scss","11-extras/_preloader.scss"],"names":[],"mappings":"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CA,YJ00BZ,CI50BQ,+BACI,aAAA,CACA,YJ+0BZ,CIj1BQ,+BACI,aAAA,CACA,YJo1BZ,CIt1BQ,+BACI,aAAA,CACA,YJy1BZ,CI31BQ,8BACI,aAAA,CACA,YJ81BZ,CIh2BQ,8BACI,aAAA,CACA,YJm2BZ,CIr2BQ,8BACI,aAAA,CACA,YJw2BZ,CI12BQ,8BACI,aAAA,CACA,YJ62BZ,CI/2BQ,8BACI,aAAA,CACA,YJk3BZ,CIp3BQ,8BACI,aAAA,CACA,YJu3BZ,CIz3BQ,6BACI,aAAA,CACA,YJ43BZ,CI93BQ,6BACI,aAAA,CACA,YJi4BZ,CIn4BQ,6BACI,aAAA,CACA,YJs4BZ,CIx4BQ,6BACI,aAAA,CACA,YJ24BZ,CI74BQ,4BACI,aAAA,CACA,YJg5BZ,CIl5BQ,iCACI,aAAA,CACA,YJq5BZ,CIv5BQ,iCACI,aAAA,CACA,YJ05BZ,CI55BQ,iCACI,aAAA,CACA,YJ+5BZ,CIj6BQ,iCACI,aAAA,CACA,YJo6BZ,CIt6BQ,iCACI,aAAA,CACA,YJy6BZ,CI36BQ,gCACI,aAAA,CACA,YJ86BZ,CIh7BQ,gCACI,aAAA,CACA,YJm7BZ,CIr7BQ,gCACI,aAAA,CACA,YJw7BZ,CI17BQ,gCACI,aAAA,CACA,YJ67BZ,CI/7BQ,+BACI,aAAA,CACA,YJk8BZ,CIp8BQ,iCACI,aAAA,CACA,YJu8BZ,CIz8BQ,iCACI,aAAA,CACA,YJ48BZ,CI98BQ,iCACI,aAAA,CACA,YJi9BZ,CIn9BQ,iCACI,aAAA,CACA,YJs9BZ,CIx9BQ,iCACI,aAAA,CACA,YJ29BZ,CI79BQ,gCACI,aAAA,CACA,YJg+BZ,CIl+BQ,gCACI,aAAA,CACA,YJq+BZ,CIv+BQ,gCACI,aAAA,CACA,YJ0+BZ,CI5+BQ,gCACI,aAAA,CACA,YJ++BZ,CIj/BQ,+BACI,aAAA,CACA,YJo/BZ,CIt/BQ,gCACI,aAAA,CACA,YJy/BZ,CI3/BQ,gCACI,aAAA,CACA,YJ8/BZ,CIhgCQ,gCACI,aAAA,CACA,YJmgCZ,CIrgCQ,gCACI,aAAA,CACA,YJwgCZ,CI1gCQ,gCACI,aAAA,CACA,YJ6gCZ,CI/gCQ,+BACI,aAAA,CA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","file":"eui.css","sourcesContent":["/*! @ecl/preset-reset - 3.4.2 Built on 2022-09-21T10:02:32.565Z */\n/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{-webkit-text-size-adjust:100%;line-height:1.15}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}body{margin:0;overflow-x:hidden}","/*! @ecl/preset-reset - 3.4.2 Built on 2022-09-21T10:02:32.565Z */\n/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */\nhtml {\n -webkit-text-size-adjust: 100%;\n line-height: 1.15;\n}\n\nmain {\n display: block;\n}\n\nh1 {\n font-size: 2em;\n margin: 0.67em 0;\n}\n\nhr {\n box-sizing: content-box;\n height: 0;\n overflow: visible;\n}\n\npre {\n font-family: monospace, monospace;\n font-size: 1em;\n}\n\na {\n background-color: transparent;\n}\n\nabbr[title] {\n border-bottom: none;\n text-decoration: underline;\n -webkit-text-decoration: underline dotted;\n text-decoration: underline dotted;\n}\n\nb, strong {\n font-weight: bolder;\n}\n\ncode, kbd, samp {\n font-family: monospace, monospace;\n font-size: 1em;\n}\n\nsmall {\n font-size: 80%;\n}\n\nsub, sup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -0.25em;\n}\n\nsup {\n top: -0.5em;\n}\n\nimg {\n border-style: none;\n}\n\nbutton, input, optgroup, select, textarea {\n font-family: inherit;\n font-size: 100%;\n line-height: 1.15;\n margin: 0;\n}\n\nbutton, input {\n overflow: visible;\n}\n\nbutton, select {\n text-transform: none;\n}\n\n[type=button], [type=reset], [type=submit], button {\n -webkit-appearance: button;\n}\n\n[type=button]::-moz-focus-inner, [type=reset]::-moz-focus-inner, [type=submit]::-moz-focus-inner, button::-moz-focus-inner {\n border-style: none;\n padding: 0;\n}\n\n[type=button]:-moz-focusring, [type=reset]:-moz-focusring, [type=submit]:-moz-focusring, button:-moz-focusring {\n outline: 1px dotted ButtonText;\n}\n\nfieldset {\n padding: 0.35em 0.75em 0.625em;\n}\n\nlegend {\n box-sizing: border-box;\n color: inherit;\n display: table;\n max-width: 100%;\n padding: 0;\n white-space: normal;\n}\n\nprogress {\n vertical-align: baseline;\n}\n\ntextarea {\n overflow: auto;\n}\n\n[type=checkbox], [type=radio] {\n box-sizing: border-box;\n padding: 0;\n}\n\n[type=number]::-webkit-inner-spin-button, [type=number]::-webkit-outer-spin-button {\n height: auto;\n}\n\n[type=search] {\n -webkit-appearance: textfield;\n outline-offset: -2px;\n}\n\n[type=search]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n::-webkit-file-upload-button {\n -webkit-appearance: button;\n font: inherit;\n}\n\ndetails {\n display: block;\n}\n\nsummary {\n display: list-item;\n}\n\ntemplate {\n display: none;\n}\n\n[hidden] {\n display: none;\n}\n\nbody {\n margin: 0;\n overflow-x: hidden;\n}\n\n/**\n * ECL color variants formula\n * Applies tint or shade of base color provided\n *\n * @param color: base color, has variant of 100\n * @param variant: number in range between 0 - 200\n * 100 - neutral variant, no changes\n * 0 - 99: brightens base color by mixing in white color, the lower, the brighter\n * 99 - 200: darkens base color by mixing in black color, the bigger, the darker\n *\n * @return color variant of provided base color\n *\n * @examples\n *\n * // provides 30% darker pink color\n * background-color: eui-color-variant(pink, 130);\n *\n * // provides 95% lighter pink color\n * background-color: eui-color-variant(pink, 5);\n */\n/** Common weight name mapping\n @See the OpenType specification:\n https://docs.microsoft.com/en-us/typography/opentype/spec/os2#usweightclass\n The numerical values 100 to 900 roughly correspond to the following common weight names:\n 100 Thin (Hairline)\n 200\t Extra Light (Ultra Light)\n 300\t Light\n 400\t Normal\n 500\t Medium\n 600\t Semi Bold (Demi Bold)\n 700\t Bold\n 800\t Extra Bold (Ultra Bold)\n 900\t Black (Heavy)\n**/\n:root {\n --eui-base-color-grey-100: #404040;\n --eui-base-color-grey-100-rgb: rgb(64, 64, 64);\n --eui-base-color-grey-100-contrast: white;\n --eui-base-color-grey-100-contrast-rgb: rgb(255, 255, 255);\n --eui-base-color-grey-90: #535353;\n --eui-base-color-grey-90-rgb: rgb(83, 83, 83);\n --eui-base-color-grey-90-contrast: white;\n --eui-base-color-grey-90-contrast-rgb: rgb(255, 255, 255);\n --eui-base-color-grey-80: #666666;\n --eui-base-color-grey-80-rgb: rgb(102, 102, 102);\n --eui-base-color-grey-80-contrast: white;\n --eui-base-color-grey-80-contrast-rgb: rgb(255, 255, 255);\n --eui-base-color-grey-75: #707070;\n --eui-base-color-grey-75-rgb: rgb(112, 112, 112);\n --eui-base-color-grey-75-contrast: white;\n --eui-base-color-grey-75-contrast-rgb: rgb(255, 255, 255);\n --eui-base-color-grey-50: #a0a0a0;\n --eui-base-color-grey-50-rgb: rgb(160, 160, 160);\n --eui-base-color-grey-50-contrast: #404040;\n --eui-base-color-grey-50-contrast-rgb: rgb(64, 64, 64);\n --eui-base-color-grey-35: #bcbcbc;\n --eui-base-color-grey-35-rgb: rgb(188, 188, 188);\n --eui-base-color-grey-35-contrast: #404040;\n --eui-base-color-grey-35-contrast-rgb: rgb(64, 64, 64);\n --eui-base-color-grey-25: #cfcfcf;\n --eui-base-color-grey-25-rgb: rgb(207, 207, 207);\n --eui-base-color-grey-25-contrast: #404040;\n --eui-base-color-grey-25-contrast-rgb: rgb(64, 64, 64);\n --eui-base-color-grey-20: #d9d9d9;\n --eui-base-color-grey-20-rgb: rgb(217, 217, 217);\n --eui-base-color-grey-20-contrast: #404040;\n --eui-base-color-grey-20-contrast-rgb: rgb(64, 64, 64);\n --eui-base-color-grey-15: #e2e2e2;\n --eui-base-color-grey-15-rgb: rgb(226, 226, 226);\n --eui-base-color-grey-15-contrast: #404040;\n --eui-base-color-grey-15-contrast-rgb: rgb(64, 64, 64);\n --eui-base-color-grey-10: #ececec;\n --eui-base-color-grey-10-rgb: rgb(236, 236, 236);\n --eui-base-color-grey-10-contrast: #404040;\n --eui-base-color-grey-10-contrast-rgb: rgb(64, 64, 64);\n --eui-base-color-grey-5: whitesmoke;\n --eui-base-color-grey-5-rgb: rgb(245, 245, 245);\n --eui-base-color-grey-5-contrast: #404040;\n --eui-base-color-grey-5-contrast-rgb: rgb(64, 64, 64);\n --eui-base-color-grey-2: #fbfbfb;\n --eui-base-color-grey-2-rgb: rgb(251, 251, 251);\n --eui-base-color-grey-2-contrast: #404040;\n --eui-base-color-grey-2-contrast-rgb: rgb(64, 64, 64);\n --eui-base-color-primary-140: #002959;\n --eui-base-color-primary-140-rgb: rgb(0, 41, 89);\n --eui-base-color-primary-140-contrast: white;\n --eui-base-color-primary-140-contrast-rgb: rgb(255, 255, 255);\n --eui-base-color-primary-130: #003068;\n --eui-base-color-primary-130-rgb: rgb(0, 48, 104);\n --eui-base-color-primary-130-contrast: white;\n --eui-base-color-primary-130-contrast-rgb: rgb(255, 255, 255);\n --eui-base-color-primary-120: #003676;\n --eui-base-color-primary-120-rgb: rgb(0, 54, 118);\n --eui-base-color-primary-120-contrast: white;\n --eui-base-color-primary-120-contrast-rgb: rgb(255, 255, 255);\n --eui-base-color-primary-110: #003d85;\n --eui-base-color-primary-110-rgb: rgb(0, 61, 133);\n --eui-base-color-primary-110-contrast: white;\n --eui-base-color-primary-110-contrast-rgb: rgb(255, 255, 255);\n --eui-base-color-primary-100: #004494;\n --eui-base-color-primary-100-rgb: rgb(0, 68, 148);\n --eui-base-color-primary-100-contrast: white;\n --eui-base-color-primary-100-contrast-rgb: rgb(255, 255, 255);\n --eui-base-color-primary-75: #4073af;\n --eui-base-color-primary-75-rgb: rgb(64, 115, 175);\n --eui-base-color-primary-75-contrast: white;\n --eui-base-color-primary-75-contrast-rgb: rgb(255, 255, 255);\n --eui-base-color-primary-50: #80a2ca;\n --eui-base-color-primary-50-rgb: rgb(128, 162, 202);\n --eui-base-color-primary-50-contrast: #404040;\n --eui-base-color-primary-50-contrast-rgb: rgb(64, 64, 64);\n --eui-base-color-primary-25: #bfd0e4;\n --eui-base-color-primary-25-rgb: rgb(191, 208, 228);\n --eui-base-color-primary-25-contrast: #404040;\n --eui-base-color-primary-25-contrast-rgb: rgb(64, 64, 64);\n --eui-base-color-primary-10: #e6ecf4;\n --eui-base-color-primary-10-rgb: rgb(230, 236, 244);\n --eui-base-color-primary-10-contrast: #404040;\n --eui-base-color-primary-10-contrast-rgb: rgb(64, 64, 64);\n --eui-base-color-primary-5: #f2f6fa;\n --eui-base-color-primary-5-rgb: rgb(242, 246, 250);\n --eui-base-color-primary-5-contrast: #404040;\n --eui-base-color-primary-5-contrast-rgb: rgb(64, 64, 64);\n --eui-base-color-accent-140: #99800e;\n --eui-base-color-accent-140-rgb: rgb(153, 128, 14);\n --eui-base-color-accent-140-contrast: #404040;\n --eui-base-color-accent-140-contrast-rgb: rgb(64, 64, 64);\n --eui-base-color-accent-130: #b39610;\n --eui-base-color-accent-130-rgb: rgb(179, 150, 16);\n --eui-base-color-accent-130-contrast: #404040;\n --eui-base-color-accent-130-contrast-rgb: rgb(64, 64, 64);\n --eui-base-color-accent-120: #f8ae21;\n --eui-base-color-accent-120-rgb: rgb(248, 174, 33);\n --eui-base-color-accent-120-contrast: #404040;\n --eui-base-color-accent-120-contrast-rgb: rgb(64, 64, 64);\n --eui-base-color-accent-110: #fbc11d;\n --eui-base-color-accent-110-rgb: rgb(251, 193, 29);\n --eui-base-color-accent-110-contrast: #404040;\n --eui-base-color-accent-110-contrast-rgb: rgb(64, 64, 64);\n --eui-base-color-accent-100: #ffd617;\n --eui-base-color-accent-100-rgb: rgb(255, 214, 23);\n --eui-base-color-accent-100-contrast: #404040;\n --eui-base-color-accent-100-contrast-rgb: rgb(64, 64, 64);\n --eui-base-color-accent-75: #ffde39;\n --eui-base-color-accent-75-rgb: rgb(255, 222, 57);\n --eui-base-color-accent-75-contrast: #404040;\n --eui-base-color-accent-75-contrast-rgb: rgb(64, 64, 64);\n --eui-base-color-accent-50: #ffe879;\n --eui-base-color-accent-50-rgb: rgb(255, 232, 121);\n --eui-base-color-accent-50-contrast: #404040;\n --eui-base-color-accent-50-contrast-rgb: rgb(64, 64, 64);\n --eui-base-color-accent-25: #fff4bb;\n --eui-base-color-accent-25-rgb: rgb(255, 244, 187);\n --eui-base-color-accent-25-contrast: #404040;\n --eui-base-color-accent-25-contrast-rgb: rgb(64, 64, 64);\n --eui-base-color-accent-10: #fffbe8;\n --eui-base-color-accent-10-rgb: rgb(255, 251, 232);\n --eui-base-color-accent-10-contrast: #404040;\n --eui-base-color-accent-10-contrast-rgb: rgb(64, 64, 64);\n --eui-base-color-accent-5: #fffdf3;\n --eui-base-color-accent-5-rgb: rgb(255, 253, 243);\n --eui-base-color-accent-5-contrast: #404040;\n --eui-base-color-accent-5-contrast-rgb: rgb(64, 64, 64);\n --eui-base-color-info-140: #00436c;\n --eui-base-color-info-140-rgb: rgb(0, 67, 108);\n --eui-base-color-info-140-contrast: white;\n --eui-base-color-info-140-contrast-rgb: rgb(255, 255, 255);\n --eui-base-color-info-130: #004e7e;\n --eui-base-color-info-130-rgb: rgb(0, 78, 126);\n --eui-base-color-info-130-contrast: white;\n --eui-base-color-info-130-contrast-rgb: rgb(255, 255, 255);\n --eui-base-color-info-120: #005990;\n --eui-base-color-info-120-rgb: rgb(0, 89, 144);\n --eui-base-color-info-120-contrast: white;\n --eui-base-color-info-120-contrast-rgb: rgb(255, 255, 255);\n --eui-base-color-info-110: #0064a2;\n --eui-base-color-info-110-rgb: rgb(0, 100, 162);\n --eui-base-color-info-110-contrast: white;\n --eui-base-color-info-110-contrast-rgb: rgb(255, 255, 255);\n --eui-base-color-info-100: #006fb4;\n --eui-base-color-info-100-rgb: rgb(0, 111, 180);\n --eui-base-color-info-100-contrast: white;\n --eui-base-color-info-100-contrast-rgb: rgb(255, 255, 255);\n --eui-base-color-info-75: #4093c7;\n --eui-base-color-info-75-rgb: rgb(64, 147, 199);\n --eui-base-color-info-75-contrast: white;\n --eui-base-color-info-75-contrast-rgb: rgb(255, 255, 255);\n --eui-base-color-info-50: #80b7da;\n --eui-base-color-info-50-rgb: rgb(128, 183, 218);\n --eui-base-color-info-50-contrast: #404040;\n --eui-base-color-info-50-contrast-rgb: rgb(64, 64, 64);\n --eui-base-color-info-25: #bfdbec;\n --eui-base-color-info-25-rgb: rgb(191, 219, 236);\n --eui-base-color-info-25-contrast: #404040;\n --eui-base-color-info-25-contrast-rgb: rgb(64, 64, 64);\n --eui-base-color-info-10: #e6f1f8;\n --eui-base-color-info-10-rgb: rgb(230, 241, 248);\n --eui-base-color-info-10-contrast: #404040;\n --eui-base-color-info-10-contrast-rgb: rgb(64, 64, 64);\n --eui-base-color-info-5: #f2f8fb;\n --eui-base-color-info-5-rgb: rgb(242, 248, 251);\n --eui-base-color-info-5-contrast: #404040;\n --eui-base-color-info-5-contrast-rgb: rgb(64, 64, 64);\n --eui-base-color-success-140: #2a4922;\n --eui-base-color-success-140-rgb: rgb(42, 73, 34);\n --eui-base-color-success-140-contrast: white;\n --eui-base-color-success-140-contrast-rgb: rgb(255, 255, 255);\n --eui-base-color-success-130: #315528;\n --eui-base-color-success-130-rgb: rgb(49, 85, 40);\n --eui-base-color-success-130-contrast: white;\n --eui-base-color-success-130-contrast-rgb: rgb(255, 255, 255);\n --eui-base-color-success-120: #38622e;\n --eui-base-color-success-120-rgb: rgb(56, 98, 46);\n --eui-base-color-success-120-contrast: white;\n --eui-base-color-success-120-contrast-rgb: rgb(255, 255, 255);\n --eui-base-color-success-110: #3f6e33;\n --eui-base-color-success-110-rgb: rgb(63, 110, 51);\n --eui-base-color-success-110-contrast: white;\n --eui-base-color-success-110-contrast-rgb: rgb(255, 255, 255);\n --eui-base-color-success-100: #467a39;\n --eui-base-color-success-100-rgb: rgb(70, 122, 57);\n --eui-base-color-success-100-contrast: white;\n --eui-base-color-success-100-contrast-rgb: rgb(255, 255, 255);\n --eui-base-color-success-75: #749b6b;\n --eui-base-color-success-75-rgb: rgb(116, 155, 107);\n --eui-base-color-success-75-contrast: #404040;\n --eui-base-color-success-75-contrast-rgb: rgb(64, 64, 64);\n --eui-base-color-success-50: #a3bd9c;\n --eui-base-color-success-50-rgb: rgb(163, 189, 156);\n --eui-base-color-success-50-contrast: #404040;\n --eui-base-color-success-50-contrast-rgb: rgb(64, 64, 64);\n --eui-base-color-success-25: #d1dece;\n --eui-base-color-success-25-rgb: rgb(209, 222, 206);\n --eui-base-color-success-25-contrast: #404040;\n --eui-base-color-success-25-contrast-rgb: rgb(64, 64, 64);\n --eui-base-color-success-10: #edf2eb;\n --eui-base-color-success-10-rgb: rgb(237, 242, 235);\n --eui-base-color-success-10-contrast: #404040;\n --eui-base-color-success-10-contrast-rgb: rgb(64, 64, 64);\n --eui-base-color-success-5: #f6f8f5;\n --eui-base-color-success-5-rgb: rgb(246, 248, 245);\n --eui-base-color-success-5-contrast: #404040;\n --eui-base-color-success-5-contrast-rgb: rgb(64, 64, 64);\n --eui-base-color-warning-140: #915917;\n --eui-base-color-warning-140-rgb: rgb(145, 89, 23);\n --eui-base-color-warning-140-contrast: white;\n --eui-base-color-warning-140-contrast-rgb: rgb(255, 255, 255);\n --eui-base-color-warning-130: #a9681b;\n --eui-base-color-warning-130-rgb: rgb(169, 104, 27);\n --eui-base-color-warning-130-contrast: white;\n --eui-base-color-warning-130-contrast-rgb: rgb(255, 255, 255);\n --eui-base-color-warning-120: #c2771f;\n --eui-base-color-warning-120-rgb: rgb(194, 119, 31);\n --eui-base-color-warning-120-contrast: #404040;\n --eui-base-color-warning-120-contrast-rgb: rgb(64, 64, 64);\n --eui-base-color-warning-110: #da8623;\n --eui-base-color-warning-110-rgb: rgb(218, 134, 35);\n --eui-base-color-warning-110-contrast: #404040;\n --eui-base-color-warning-110-contrast-rgb: rgb(64, 64, 64);\n --eui-base-color-warning-100: #f29527;\n --eui-base-color-warning-100-rgb: rgb(242, 149, 39);\n --eui-base-color-warning-100-contrast: #404040;\n --eui-base-color-warning-100-contrast-rgb: rgb(64, 64, 64);\n --eui-base-color-warning-75: #f5b05d;\n --eui-base-color-warning-75-rgb: rgb(245, 176, 93);\n --eui-base-color-warning-75-contrast: #404040;\n --eui-base-color-warning-75-contrast-rgb: rgb(64, 64, 64);\n --eui-base-color-warning-50: #f9ca93;\n --eui-base-color-warning-50-rgb: rgb(249, 202, 147);\n --eui-base-color-warning-50-contrast: #404040;\n --eui-base-color-warning-50-contrast-rgb: rgb(64, 64, 64);\n --eui-base-color-warning-25: #fce5c9;\n --eui-base-color-warning-25-rgb: rgb(252, 229, 201);\n --eui-base-color-warning-25-contrast: #404040;\n --eui-base-color-warning-25-contrast-rgb: rgb(64, 64, 64);\n --eui-base-color-warning-10: #fef4e9;\n --eui-base-color-warning-10-rgb: rgb(254, 244, 233);\n --eui-base-color-warning-10-contrast: #404040;\n --eui-base-color-warning-10-contrast-rgb: rgb(64, 64, 64);\n --eui-base-color-warning-5: #fefaf4;\n --eui-base-color-warning-5-rgb: rgb(254, 250, 244);\n --eui-base-color-warning-5-contrast: #404040;\n --eui-base-color-warning-5-contrast-rgb: rgb(64, 64, 64);\n --eui-base-color-danger-140: #83141d;\n --eui-base-color-danger-140-rgb: rgb(131, 20, 29);\n --eui-base-color-danger-140-contrast: white;\n --eui-base-color-danger-140-contrast-rgb: rgb(255, 255, 255);\n --eui-base-color-danger-130: #991722;\n --eui-base-color-danger-130-rgb: rgb(153, 23, 34);\n --eui-base-color-danger-130-contrast: white;\n --eui-base-color-danger-130-contrast-rgb: rgb(255, 255, 255);\n --eui-base-color-danger-120: #ae1a27;\n --eui-base-color-danger-120-rgb: rgb(174, 26, 39);\n --eui-base-color-danger-120-contrast: white;\n --eui-base-color-danger-120-contrast-rgb: rgb(255, 255, 255);\n --eui-base-color-danger-110: #c41e2c;\n --eui-base-color-danger-110-rgb: rgb(196, 30, 44);\n --eui-base-color-danger-110-contrast: white;\n --eui-base-color-danger-110-contrast-rgb: rgb(255, 255, 255);\n --eui-base-color-danger-100: #da2131;\n --eui-base-color-danger-100-rgb: rgb(218, 33, 49);\n --eui-base-color-danger-100-contrast: white;\n --eui-base-color-danger-100-contrast-rgb: rgb(255, 255, 255);\n --eui-base-color-danger-75: #e35965;\n --eui-base-color-danger-75-rgb: rgb(227, 89, 101);\n --eui-base-color-danger-75-contrast: #404040;\n --eui-base-color-danger-75-contrast-rgb: rgb(64, 64, 64);\n --eui-base-color-danger-50: #ed9098;\n --eui-base-color-danger-50-rgb: rgb(237, 144, 152);\n --eui-base-color-danger-50-contrast: #404040;\n --eui-base-color-danger-50-contrast-rgb: rgb(64, 64, 64);\n --eui-base-color-danger-25: #f6c8cc;\n --eui-base-color-danger-25-rgb: rgb(246, 200, 204);\n --eui-base-color-danger-25-contrast: #404040;\n --eui-base-color-danger-25-contrast-rgb: rgb(64, 64, 64);\n --eui-base-color-danger-10: #fbe9ea;\n --eui-base-color-danger-10-rgb: rgb(251, 233, 234);\n --eui-base-color-danger-10-contrast: #404040;\n --eui-base-color-danger-10-contrast-rgb: rgb(64, 64, 64);\n --eui-base-color-danger-5: #fdf4f5;\n --eui-base-color-danger-5-rgb: rgb(253, 244, 245);\n --eui-base-color-danger-5-contrast: #404040;\n --eui-base-color-danger-5-contrast-rgb: rgb(64, 64, 64);\n --eui-base-color-grey: #a0a0a0;\n --eui-base-color-primary: #004494;\n --eui-base-color-accent: #ffd617;\n --eui-base-color-info: #006fb4;\n --eui-base-color-success: #467a39;\n --eui-base-color-warning: #f29527;\n --eui-base-color-danger: #da2131;\n --eui-base-color-text: var(--eui-base-color-grey-100);\n --eui-base-color-link: var(--eui-base-color-primary-100);\n --eui-base-color-black: black;\n --eui-base-color-white: white;\n --eui-base-color: var(--eui-base-color-grey-100);\n --eui-base-font-size: 16px;\n --eui-base-font-size-6xl: 2.625rem;\n --eui-base-font-size-5xl: 2.25rem;\n --eui-base-font-size-4xl: 2rem;\n --eui-base-font-size-3xl: 1.75rem;\n --eui-base-font-size-2xl: 1.5rem;\n --eui-base-font-size-xl: 1.25rem;\n --eui-base-font-size-l: 1.125rem;\n --eui-base-font-size-m: 1rem;\n --eui-base-font-size-s: 0.875rem;\n --eui-base-font-size-xs: 0.75rem;\n --eui-base-font-size-2xs: 0.625rem;\n --eui-base-font-family: Arial, Helvetica Neue, Helvetica, sans-serif;\n --eui-base-font-family-icons: eui-icons, sans-serif;\n --eui-base-font-family-monospace: Consolas, Liberation Mono, Courier New, monospace;\n --eui-base-icon-size: 1.5rem;\n --eui-base-icon-size-xs: 1rem;\n --eui-base-icon-size-s: 1.25rem;\n --eui-base-icon-size-m: 1.5rem;\n --eui-base-icon-size-l: 2rem;\n --eui-base-icon-size-xl: 2.5rem;\n --eui-base-icon-size-2xl: 3rem;\n --eui-base-icon-size-3xl: 3.5rem;\n --eui-base-icon-size-4xl: 4rem;\n --eui-base-font-6xl: normal normal 400 2.625rem/3.25rem arial, sans-serif;\n --eui-base-font-5xl: normal normal 400 2.25rem/2.75rem arial, sans-serif;\n --eui-base-font-4xl: normal normal 400 2rem/2.5rem arial, sans-serif;\n --eui-base-font-3xl: normal normal 400 1.75rem/2rem arial, sans-serif;\n --eui-base-font-2xl: normal normal 400 1.5rem/1.75rem arial, sans-serif;\n --eui-base-font-xl: normal normal 400 1.25rem/1.5rem arial, sans-serif;\n --eui-base-font-l: normal normal 400 1.125rem/1.5rem arial, sans-serif;\n --eui-base-font-m: normal normal 400 1rem/1.25rem arial, sans-serif;\n --eui-base-font-s: normal normal 400 0.875rem/1rem arial, sans-serif;\n --eui-base-font-xs: normal normal 400 0.75rem/1rem arial, sans-serif;\n --eui-base-font-2xs: normal normal 400 0.625rem/1rem arial, sans-serif;\n --eui-base-font-prolonged-xl: normal normal 400 1.25rem/1.75rem arial, sans-serif;\n --eui-base-font-prolonged-l: normal normal 400 1.125rem/1.75rem arial, sans-serif;\n --eui-base-font-prolonged-m: normal normal 400 1rem/1.5rem arial, sans-serif;\n --eui-base-font-prolonged-s: normal normal 400 0.875rem/1.25rem arial, sans-serif;\n --eui-base-font-prolonged-xs: normal normal 400 0.75rem/1.25rem arial, sans-serif;\n --eui-base-spacing-none: 0;\n --eui-base-spacing-2xs: 0.25rem;\n --eui-base-spacing-xs: 0.5rem;\n --eui-base-spacing-s: 0.75rem;\n --eui-base-spacing-m: 1rem;\n --eui-base-spacing-l: 1.5rem;\n --eui-base-spacing-xl: 2rem;\n --eui-base-spacing-2xl: 2.5rem;\n --eui-base-spacing-3xl: 3rem;\n --eui-base-spacing-4xl: 4rem;\n --eui-base-shadow-1: 0 2px 1px -1px rgba(0, 0, 0, 0.2), 0 1px 1px 0 rgba(0, 0, 0, 0.14), 0 1px 3px 0 rgba(0, 0, 0, 0.12);\n --eui-base-shadow-2: 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12);\n --eui-base-shadow-3: 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 3px 4px 0 rgba(0, 0, 0, 0.14), 0 1px 8px 0 rgba(0, 0, 0, 0.12);\n --eui-base-shadow-4: 0 2px 4px -1px rgba(0, 0, 0, 0.2), 0 4px 5px 0 rgba(0, 0, 0, 0.14), 0 1px 10px 0 rgba(0, 0, 0, 0.12);\n --eui-base-shadow-6: 0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 6px 10px 0px rgba(0, 0, 0, 0.14), 0px 1px 18px 0px rgba(0, 0, 0, 0.12);\n --eui-base-shadow-8: 0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12);\n --eui-base-shadow-9: 0px 5px 6px -3px rgba(0, 0, 0, 0.2), 0px 9px 12px 1px rgba(0, 0, 0, 0.14), 0px 3px 16px 2px rgba(0, 0, 0, 0.12);\n --eui-base-shadow-12: 0px 7px 8px -4px rgba(0, 0, 0, 0.2), 0px 12px 17px 2px rgba(0, 0, 0, 0.14), 0px 5px 22px 4px rgba(0, 0, 0, 0.12);\n --eui-base-shadow-16: 0px 8px 10px -5px rgba(0, 0, 0, 0.2), 0px 16px 24px 2px rgba(0, 0, 0, 0.14), 0px 6px 30px 5px rgba(0, 0, 0, 0.12);\n --eui-base-shadow-24: 0px 11px 15px -7px rgba(0, 0, 0, 0.2), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 9px 46px 8px rgba(0, 0, 0, 0.12);\n --eui-base-shadow-z-depth-0: 0 1px 0 rgba(0, 0, 0, 0.08), 0 1px 1px rgba(0, 0, 0, 0.08);\n --eui-base-shadow-z-depth-1: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24);\n --eui-base-shadow-z-depth-2: 0 3px 6px rgba(0, 0, 0, 0.16), 0 3px 6px rgba(0, 0, 0, 0.23);\n --eui-base-shadow-z-depth-3: 0 10px 20px rgba(0, 0, 0, 0.19), 0 6px 6px rgba(0, 0, 0, 0.23);\n --eui-base-shadow-z-depth-4: 0 14px 28px rgba(0, 0, 0, 0.25), 0 10px 10px rgba(0, 0, 0, 0.22);\n --eui-base-shadow-z-depth-5: 0 19px 38px rgba(0, 0, 0, 0.3), 0 15px 12px rgba(0, 0, 0, 0.22);\n --eui-base-z-index-auto: auto;\n --eui-base-z-index-zero: 0;\n --eui-base-z-index-root: 1;\n --eui-base-z-index-input-maxlength: 2;\n --eui-base-z-index-header: 5;\n --eui-base-z-index-top-message: 8;\n --eui-base-z-index-nav: 10;\n --eui-base-z-index-clearable-icon: 11;\n --eui-base-z-index-loading-indicator: 20;\n --eui-base-z-index-cdk-overlay-pane: 999;\n --eui-base-z-index-logo: 1000;\n --eui-base-z-index-sticky: 1040;\n --eui-base-z-index-sidebar: 1044;\n --eui-base-z-index-overlay: 1045;\n --eui-base-z-index-btn-floating: 1046;\n --eui-base-z-index-highlighted: 1047;\n --eui-base-z-index-footer-action-bar: 1048;\n --eui-base-z-index-modal-backdrop: 1049;\n --eui-base-z-index-modal: 1050;\n --eui-base-z-index-menu: 1060;\n --eui-base-z-index-tooltip: 1070;\n --eui-base-z-index-max: 9999;\n --eui-base-z-index-cdk-overlay-container: 10000;\n --eui-base-z-index-block-document: 10010;\n --eui-base-z-index-growl-message: 99999;\n}\n\n:root {\n --eui-base-line-height: 1.25;\n --eui-base-scale-factor: 1;\n --eui-base-disabled-opacity: 0.45;\n --eui-base-border-radius: 3px;\n --eui-base-border: 1px solid var(--eui-color-grey-lighter);\n --eui-base-border-light: 1px solid var(--eui-color-grey-light);\n --eui-base-border-lighter: 1px solid var(--eui-color-grey-lighter);\n --eui-base-border-lightest: 1px solid var(--eui-color-grey-lightest);\n --eui-base-animation-linear-out-slow-in-timing-function: cubic-bezier(0, 0, 0.2, 1);\n --eui-base-animation-fast-out-slow-in-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n --eui-base-animation-fast-out-linear-in-timing-function: cubic-bezier(0.4, 0, 1, 1);\n --eui-base-animation-ease-timing-function: cubic-bezier(0.25, 0.1, 0.25, 1);\n --eui-base-animation-ease-in-out-timing-function: ease-in-out;\n --eui-base-animation-duration-fast: 0.25s;\n --eui-base-animation-duration-medium: 0.5s;\n --eui-base-animation-duration-slow: 1s;\n --eui-base-animation-duration-base: 500ms;\n --eui-base-animation-duration: var(--eui-base-animation-duration-base);\n --eui-base-animation-transition-base: all 0.2s var(--eui-base-animation-linear-out-slow-in-timing-function);\n --eui-base-animation-transition-ease: all 0.2s var(--eui-base-animation-ease-timing-function);\n --eui-base-animation-transition-ease-in-out: all 0.2s var(--eui-base-animation-ease-in-out-timing-function);\n --eui-base-animation-transition-ease-in-out-1s: all 1s var(--eui-base-animation-ease-in-out-timing-function);\n --eui-base-animation-delay: 0s;\n --eui-base-animation-direction: normal;\n --eui-base-animation-fill-mode: forwards;\n --eui-base-animation-background-color: var(--eui-base-color-primary-50);\n --eui-base-color-accessible-focus: var(--eui-base-color-accent-110);\n}\n\n:root {\n --eui-app-header-height-default: 0px;\n --eui-app-header-height: 0px;\n --eui-app-header-height-active: 90px;\n --eui-app-header-height-shrink: 0px;\n --eui-app-top-message-height-default: 0px;\n --eui-app-top-message-height: 0px;\n --eui-app-top-message-height-active: 42px;\n --eui-app-toolbar-height-default: 0px;\n --eui-app-toolbar-height: 0px;\n --eui-app-toolbar-height-active: 55px;\n --eui-app-sidebar-width-default: 0px;\n --eui-app-sidebar-width: 0px;\n --eui-app-sidebar-width-active: 300px;\n --eui-app-sidebar-width-close-default: 0px;\n --eui-app-sidebar-width-close: 0px;\n --eui-app-sidebar-width-close-active: 64px;\n --eui-app-sidebar-header-height: 0px;\n --eui-app-sidebar-header-height-default: 0px;\n --eui-app-sidebar-header-height-active: 48px;\n --eui-app-sidebar-footer-height: 0px;\n --eui-app-sidebar-footer-height-default: 0px;\n --eui-app-sidebar-footer-height-active: 24px;\n --eui-page-header-with-subtitle-height: 4rem;\n --eui-page-header-without-subtitle-height: 2rem;\n --eui-page-column--size-s: 50px;\n --eui-page-column--size-m: 150px;\n --eui-page-column--size-l: 200px;\n --eui-page-column--size-xl: 250px;\n --eui-page-column--size-xxl: 300px;\n --eui-page-column--size-xxxl: 350px;\n --eui-page-column-footer-height: 3.5rem;\n --eui-border-state-width: 6px;\n --eui-app-header-bg-color: var(--eui-base-color-white);\n --eui-app-header-title-color: var(--eui-base-color-grey-100);\n --eui-app-header-subtitle-color: var(--eui-base-color-grey-75);\n --eui-app-toolbar-color: var(--eui-base-color-white);\n --eui-app-toolbar-bg-color: var(--eui-base-color-primary-100);\n --eui-app-toolbar-border-bottom-color: var(--eui-base-color-primary-25);\n --eui-app-sidebar-bg-color: var(--eui-base-color-grey-2);\n --eui-app-sidebar-border-right-color: #f2f4f9;\n --eui-app-body-bg-color: var(--eui-base-color-grey-5);\n --eui-app-main-bg-color: var(--eui-base-color-grey-2);\n --eui-app-footer-color: var(--eui-base-color-font);\n --eui-app-footer-bg-color: var(--eui-base-color-grey-2);\n --eui-app-footer-border-top-color: #e8ebf1;\n}\n\n.xs, .sm {\n --eui-app-header-height: 0px;\n}\n\n.eui-icon-svg {\n fill: currentColor;\n margin: 0;\n transform: scaleX(1) scaleY(1) rotateZ(0deg);\n transition: transform 300ms ease-in-out;\n}\n\n.eui-icon-svg--size-xs {\n height: 1rem;\n width: 1rem;\n}\n\n.eui-icon-svg--size-s {\n height: 1.25rem;\n width: 1.25rem;\n}\n\n.eui-icon-svg--size-m {\n height: 1.5rem;\n width: 1.5rem;\n}\n\n.eui-icon-svg--size-l {\n height: 2rem;\n width: 2rem;\n}\n\n.eui-icon-svg--size-xl {\n height: 2.5rem;\n width: 2.5rem;\n}\n\n.eui-icon-svg--size-2xl {\n height: 3rem;\n width: 3rem;\n}\n\n.eui-icon-svg--size-3xl {\n height: 3.5rem;\n width: 3.5rem;\n}\n\n.eui-icon-svg--size-4xl {\n height: 4rem;\n width: 4rem;\n}\n\n.eui-icon-svg--color-grey-100 {\n color: #404040;\n fill: #404040;\n}\n\n.eui-icon-svg--color-grey-90 {\n color: #535353;\n fill: #535353;\n}\n\n.eui-icon-svg--color-grey-80 {\n color: #666666;\n fill: #666666;\n}\n\n.eui-icon-svg--color-grey-75 {\n color: #707070;\n fill: #707070;\n}\n\n.eui-icon-svg--color-grey-50 {\n color: #a0a0a0;\n fill: #a0a0a0;\n}\n\n.eui-icon-svg--color-grey-35 {\n color: #bcbcbc;\n fill: #bcbcbc;\n}\n\n.eui-icon-svg--color-grey-25 {\n color: #cfcfcf;\n fill: #cfcfcf;\n}\n\n.eui-icon-svg--color-grey-20 {\n color: #d9d9d9;\n fill: #d9d9d9;\n}\n\n.eui-icon-svg--color-grey-15 {\n color: #e2e2e2;\n fill: #e2e2e2;\n}\n\n.eui-icon-svg--color-grey-10 {\n color: #ececec;\n fill: #ececec;\n}\n\n.eui-icon-svg--color-grey-5 {\n color: whitesmoke;\n fill: whitesmoke;\n}\n\n.eui-icon-svg--color-grey-2 {\n color: #fbfbfb;\n fill: #fbfbfb;\n}\n\n.eui-icon-svg--color-primary-140 {\n color: #002959;\n fill: #002959;\n}\n\n.eui-icon-svg--color-primary-130 {\n color: #003068;\n fill: #003068;\n}\n\n.eui-icon-svg--color-primary-120 {\n color: #003676;\n fill: #003676;\n}\n\n.eui-icon-svg--color-primary-110 {\n color: #003d85;\n fill: #003d85;\n}\n\n.eui-icon-svg--color-primary-100 {\n color: #004494;\n fill: #004494;\n}\n\n.eui-icon-svg--color-primary-75 {\n color: #4073af;\n fill: #4073af;\n}\n\n.eui-icon-svg--color-primary-50 {\n color: #80a2ca;\n fill: #80a2ca;\n}\n\n.eui-icon-svg--color-primary-25 {\n color: #bfd0e4;\n fill: #bfd0e4;\n}\n\n.eui-icon-svg--color-primary-10 {\n color: #e6ecf4;\n fill: #e6ecf4;\n}\n\n.eui-icon-svg--color-primary-5 {\n color: #f2f6fa;\n fill: #f2f6fa;\n}\n\n.eui-icon-svg--color-accent-140 {\n color: #99800e;\n fill: #99800e;\n}\n\n.eui-icon-svg--color-accent-130 {\n color: #b39610;\n fill: #b39610;\n}\n\n.eui-icon-svg--color-accent-120 {\n color: #f8ae21;\n fill: #f8ae21;\n}\n\n.eui-icon-svg--color-accent-110 {\n color: #fbc11d;\n fill: #fbc11d;\n}\n\n.eui-icon-svg--color-accent-100 {\n color: #ffd617;\n fill: #ffd617;\n}\n\n.eui-icon-svg--color-accent-75 {\n color: #ffde39;\n fill: #ffde39;\n}\n\n.eui-icon-svg--color-accent-50 {\n color: #ffe879;\n fill: #ffe879;\n}\n\n.eui-icon-svg--color-accent-25 {\n color: #fff4bb;\n fill: #fff4bb;\n}\n\n.eui-icon-svg--color-accent-10 {\n color: #fffbe8;\n fill: #fffbe8;\n}\n\n.eui-icon-svg--color-accent-5 {\n color: #fffdf3;\n fill: #fffdf3;\n}\n\n.eui-icon-svg--color-info-140 {\n color: #00436c;\n fill: #00436c;\n}\n\n.eui-icon-svg--color-info-130 {\n color: #004e7e;\n fill: #004e7e;\n}\n\n.eui-icon-svg--color-info-120 {\n color: #005990;\n fill: #005990;\n}\n\n.eui-icon-svg--color-info-110 {\n color: #0064a2;\n fill: #0064a2;\n}\n\n.eui-icon-svg--color-info-100 {\n color: #006fb4;\n fill: #006fb4;\n}\n\n.eui-icon-svg--color-info-75 {\n color: #4093c7;\n fill: #4093c7;\n}\n\n.eui-icon-svg--color-info-50 {\n color: #80b7da;\n fill: #80b7da;\n}\n\n.eui-icon-svg--color-info-25 {\n color: #bfdbec;\n fill: #bfdbec;\n}\n\n.eui-icon-svg--color-info-10 {\n color: #e6f1f8;\n fill: #e6f1f8;\n}\n\n.eui-icon-svg--color-info-5 {\n color: #f2f8fb;\n fill: #f2f8fb;\n}\n\n.eui-icon-svg--color-success-140 {\n color: #2a4922;\n fill: #2a4922;\n}\n\n.eui-icon-svg--color-success-130 {\n color: #315528;\n fill: #315528;\n}\n\n.eui-icon-svg--color-success-120 {\n color: #38622e;\n fill: #38622e;\n}\n\n.eui-icon-svg--color-success-110 {\n color: #3f6e33;\n fill: #3f6e33;\n}\n\n.eui-icon-svg--color-success-100 {\n color: #467a39;\n fill: #467a39;\n}\n\n.eui-icon-svg--color-success-75 {\n color: #749b6b;\n fill: #749b6b;\n}\n\n.eui-icon-svg--color-success-50 {\n color: #a3bd9c;\n fill: #a3bd9c;\n}\n\n.eui-icon-svg--color-success-25 {\n color: #d1dece;\n fill: #d1dece;\n}\n\n.eui-icon-svg--color-success-10 {\n color: #edf2eb;\n fill: #edf2eb;\n}\n\n.eui-icon-svg--color-success-5 {\n color: #f6f8f5;\n fill: #f6f8f5;\n}\n\n.eui-icon-svg--color-warning-140 {\n color: #915917;\n fill: #915917;\n}\n\n.eui-icon-svg--color-warning-130 {\n color: #a9681b;\n fill: #a9681b;\n}\n\n.eui-icon-svg--color-warning-120 {\n color: #c2771f;\n fill: #c2771f;\n}\n\n.eui-icon-svg--color-warning-110 {\n color: #da8623;\n fill: #da8623;\n}\n\n.eui-icon-svg--color-warning-100 {\n color: #f29527;\n fill: #f29527;\n}\n\n.eui-icon-svg--color-warning-75 {\n color: #f5b05d;\n fill: #f5b05d;\n}\n\n.eui-icon-svg--color-warning-50 {\n color: #f9ca93;\n fill: #f9ca93;\n}\n\n.eui-icon-svg--color-warning-25 {\n color: #fce5c9;\n fill: #fce5c9;\n}\n\n.eui-icon-svg--color-warning-10 {\n color: #fef4e9;\n fill: #fef4e9;\n}\n\n.eui-icon-svg--color-warning-5 {\n color: #fefaf4;\n fill: #fefaf4;\n}\n\n.eui-icon-svg--color-danger-140 {\n color: #83141d;\n fill: #83141d;\n}\n\n.eui-icon-svg--color-danger-130 {\n color: #991722;\n fill: #991722;\n}\n\n.eui-icon-svg--color-danger-120 {\n color: #ae1a27;\n fill: #ae1a27;\n}\n\n.eui-icon-svg--color-danger-110 {\n color: #c41e2c;\n fill: #c41e2c;\n}\n\n.eui-icon-svg--color-danger-100 {\n color: #da2131;\n fill: #da2131;\n}\n\n.eui-icon-svg--color-danger-75 {\n color: #e35965;\n fill: #e35965;\n}\n\n.eui-icon-svg--color-danger-50 {\n color: #ed9098;\n fill: #ed9098;\n}\n\n.eui-icon-svg--color-danger-25 {\n color: #f6c8cc;\n fill: #f6c8cc;\n}\n\n.eui-icon-svg--color-danger-10 {\n color: #fbe9ea;\n fill: #fbe9ea;\n}\n\n.eui-icon-svg--color-danger-5 {\n color: #fdf4f5;\n fill: #fdf4f5;\n}\n\n.flex-container {\n align-items: center;\n display: flex;\n width: 100%;\n}\n\n.d-flex {\n display: -webkit-box !important;\n display: -webkit-flex !important;\n display: -ms-flexbox !important;\n display: flex !important;\n}\n\n.ux-col {\n flex: 1 0 auto;\n}\n\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\n.h1,\n.h2,\n.h3,\n.h4,\n.h5,\n.h6,\n.h7,\n.h8,\n.h9 {\n font-family: var(--eui-base-font-family);\n font-size: var(--eui-base-font-size);\n font-style: normal;\n font-weight: 400;\n color: inherit;\n}\n\nh1,\n.h1 {\n font: normal normal 400 2rem/2.5rem arial, sans-serif;\n line-height: var(--eui-base-line-height);\n}\n\nh2,\n.h2 {\n font: normal normal 400 1.75rem/2rem arial, sans-serif;\n line-height: var(--eui-base-line-height);\n}\n\nh3,\n.h3 {\n font: normal normal 400 1.5rem/1.75rem arial, sans-serif;\n line-height: var(--eui-base-line-height);\n}\n\nh4,\n.h4 {\n font: normal normal 400 1.25rem/1.5rem arial, sans-serif;\n line-height: var(--eui-base-line-height);\n}\n\nh5,\n.h5 {\n font: normal normal 400 1.125rem/1.5rem arial, sans-serif;\n line-height: var(--eui-base-line-height);\n}\n\nh6,\n.h6 {\n font: normal normal 400 1rem/1.25rem arial, sans-serif;\n line-height: var(--eui-base-line-height);\n}\n\n.h7,\n.small {\n font: normal normal 400 0.875rem/1rem arial, sans-serif;\n line-height: var(--eui-base-line-height);\n}\n\n.h8,\n.smaller {\n font: normal normal 400 0.75rem/1rem arial, sans-serif;\n line-height: var(--eui-base-line-height);\n}\n\n.h9,\n.smallest,\n.tiny {\n font: normal normal 400 0.625rem/1rem arial, sans-serif;\n line-height: var(--eui-base-line-height);\n}\n\na,\na:not([href]):not([tabindex]) {\n color: var(--eui-base-color-link);\n cursor: pointer;\n}\na:hover, a:focus,\na:not([href]):not([tabindex]):hover,\na:not([href]):not([tabindex]):focus {\n color: var(--eui-base-color-link);\n text-decoration: underline;\n}\n\na {\n background-color: transparent;\n text-decoration: none;\n}\n\na:focus {\n text-decoration: underline;\n}\n\nabbr[title] {\n text-decoration: none;\n}\n\n.label, abbr, blockquote, del, label, mark, p {\n font-size: var(--eui-base-font-size);\n}\n\nlabel {\n margin-bottom: var(--eui-base-spacing-xs);\n}\n\n.eui-input-maxlength-wrapper {\n position: relative;\n width: 100%;\n}\n.eui-input-maxlength-wrapper .eui-input-maxlength {\n font: normal normal 400 0.75rem/1rem arial, sans-serif;\n background-color: var(--eui-base-color-grey-10);\n border: 1px solid var(--eui-base-color-grey-50);\n border-radius: var(--eui-base-border-radius);\n color: var(--eui-base-color-black);\n padding: 0 var(--eui-base-spacing-2xs);\n position: absolute;\n right: calc(-1 * var(--eui-base-spacing-xs));\n top: calc(-1 * var(--eui-base-spacing-xs));\n z-index: var(--eui-base-z-index-input-maxlength);\n}\n.eui-input-maxlength-wrapper .eui-input-maxlength--invalid {\n background-color: var(--eui-base-color-danger-100);\n border-color: var(--eui-base-color-danger-100);\n color: var(--eui-base-color-white);\n}\n\nhtml {\n --eui-html-font-size: var(--eui-base-font-size);\n --eui-html-line-height: var(--eui-base-line-height);\n display: block;\n height: 100%;\n font-size: var(--eui-html-font-size);\n line-height: var(--eui-html-line-height);\n}\n\nbody {\n --eui-body-bg-color: var(--eui-app-body-bg-color);\n --eui-body-color: var(--eui-base-color);\n --eui-body-font-family: var(--eui-base-font-family);\n --eui-body-font-size: var(--eui-base-font-size);\n --eui-body-line-height: var(--eui-base-line-height);\n background-color: var(--eui-body-bg-color);\n color: var(--eui-body-color);\n font-family: var(--eui-body-font-family);\n font-feature-settings: \"liga\";\n font-size: var(--eui-body-font-size);\n -moz-font-smoothing: antialiased;\n -webkit-font-smoothing: antialiased;\n font-style: normal;\n font-weight: normal;\n height: 100%;\n line-height: var(--eui-body-line-height);\n margin: 0;\n text-align: left;\n text-rendering: optimizeLegibility;\n}\n\n@-ms-viewport {\n width: device-width;\n}\n/* ==========================================================================\n #BOX-SIZING\n ========================================================================== */\n/**\n * More sensible default box-sizing:\n * css-tricks.com/inheriting-box-sizing-probably-slightly-better-best-practice\n */\nhtml {\n box-sizing: border-box;\n}\n\n*, *::before, *::after {\n box-sizing: inherit;\n}\n\na,\narea,\nbutton,\n[role=button],\ninput,\nlabel,\nselect,\nsummary,\ntextarea {\n touch-action: manipulation;\n}\n\n[tabindex=\"-1\"]:focus {\n outline: none !important;\n}\n\n[hidden] {\n display: none !important;\n}\n\np,\nlabel,\n.label,\nblockquote,\nabbr,\nmark,\ndel {\n font-size: var(--eui-base-font-size);\n}\n\n.label,\nlabel {\n align-items: center;\n display: inline-flex;\n font-style: normal;\n font-weight: normal;\n padding-right: var(--eui-base-spacing-m);\n position: relative;\n}\n\nem {\n font-style: italic;\n}\n\noptgroup,\nstrong,\nb {\n font-weight: bold;\n}\noptgroup i, optgroup em,\nstrong i,\nstrong em,\nb i,\nb em {\n font-style: italic;\n}\n\ncode,\nkbd,\npre,\nsamp {\n font-size: var(--eui-base-font-size);\n font-family: var(--eui-base-font-family-monospace);\n font-style: normal;\n font-weight: 400;\n}\n\ncode {\n color: #cc367b;\n font-size: 95%;\n word-wrap: break-word;\n}\n\nsmall {\n font-size: 80%;\n}\n\nkbd {\n background-color: var(--eui-base-color-grey-75);\n border-radius: var(--eui-base-border-radius);\n color: var(--eui-base-color-white);\n font-size: var(--eui-base-font-size-s);\n padding: 1px var(--eui-base-spacing-2xs);\n}\n\npre {\n color: var(--eui-base-color);\n display: block;\n font-size: 87.5%;\n margin-bottom: var(--eui-base-spacing-m);\n margin-top: 0;\n overflow: auto;\n}\n\nblockquote {\n border-left: var(--eui-base-spacing-xs) solid var(--eui-base-color-grey-20);\n padding: var(--eui-base-spacing-xs) var(--eui-base-spacing-m);\n}\n\nmark,\n.mark {\n background-color: var(--eui-base-color-accent-25);\n padding: var(--eui-base-spacing-2xs);\n}\n\ntable.eui-table-default {\n background-color: transparent;\n border-collapse: collapse;\n border-spacing: 0;\n color: var(--eui-base-color-font);\n max-width: 100%;\n overflow: auto;\n position: relative;\n}\ntable.eui-table-default thead > tr > th,\ntable.eui-table-default tbody > tr > td,\ntable.eui-table-default tfoot > tr > td {\n vertical-align: top;\n}\ntable.eui-table-default tr > th,\ntable.eui-table-default tr > td {\n padding: var(--eui-base-spacing-s);\n}\ntable.eui-table-default thead th {\n border-bottom: 1px solid var(--eui-base-color-grey-10);\n color: var(--eui-base-color-grey-75);\n font-size: var(--eui-base-font-size);\n padding: var(--eui-base-spacing-m) var(--eui-base-spacing-s);\n vertical-align: middle;\n font-style: normal;\n font-weight: 700;\n}\ntable.eui-table-default thead tr {\n background: var(--eui-base-color-grey-5);\n border-top: 0;\n}\ntable.eui-table-default tbody {\n -webkit-overflow-scrolling: touch;\n}\ntable.eui-table-default tbody tr:nth-of-type(odd) {\n background-color: var(--eui-base-color-white);\n}\ntable.eui-table-default tbody tr:nth-of-type(odd):hover {\n background-color: var(--eui-base-color-grey-5);\n}\ntable.eui-table-default tbody tr:nth-of-type(even) {\n background-color: var(--eui-base-color-grey-5);\n}\ntable.eui-table-default tbody tr:nth-of-type(even):hover {\n background-color: var(--eui-base-color-white);\n}\ntable.eui-table-default tr {\n border-bottom: 1px solid var(--eui-base-color-grey-20);\n display: table-row;\n}\ntable.eui-table-default--compact thead th {\n padding: var(--eui-base-spacing-xs) var(--eui-base-spacing-s);\n}\ntable.eui-table-default--compact tr > td {\n padding: var(--eui-base-spacing-2xs) var(--eui-base-spacing-s);\n}\ntable.eui-table-default--responsive {\n display: block;\n width: 100%;\n}\ntable.eui-table-default--responsive--bordered {\n border: 0;\n}\ntable.eui-table-default--bordered th,\ntable.eui-table-default--bordered td {\n border: 1px solid var(--eui-base-color-grey-20);\n}\ntable.eui-table-default--shadowed {\n box-shadow: var(--eui-base-base-shadow-1);\n}\ntable.eui-table-default--nowrap {\n white-space: nowrap;\n}\ntable.eui-table-default--nowrap thead > tr > th,\ntable.eui-table-default--nowrap tbody > tr > td,\ntable.eui-table-default--nowrap tfoot > tr > td {\n white-space: nowrap;\n}\ntable.eui-table-default--centered {\n display: table;\n margin: 0 auto;\n width: auto;\n}\ntable.eui-table-default--align-middle thead > tr > th,\ntable.eui-table-default--align-middle tbody > tr > td,\ntable.eui-table-default--align-middle tfoot > tr > td {\n vertical-align: middle;\n}\n\nhtml.eui-t-compact {\n --eui-base-font-size: 14px;\n --eui-base-line-height: 1.25;\n font-size: var(--eui-base-font-size);\n line-height: var(--eui-base-line-height);\n}\n\nform.eui-t-form-compact {\n --eui-base-font-size: 14px;\n --eui-base-line-height: 1.25;\n --eui-input-group-spacing: var(--eui-base-spacing-xs);\n --eui-compact-ratio: 0.875;\n --eui-base-spacing-none: calc( var(--eui-compact-ratio) * 0 );\n --eui-base-spacing-2xs: calc( var(--eui-compact-ratio) * 0.25rem );\n --eui-base-spacing-xs: calc( var(--eui-compact-ratio) * 0.5rem );\n --eui-base-spacing-s: calc( var(--eui-compact-ratio) * 0.75rem );\n --eui-base-spacing-m: calc( var(--eui-compact-ratio) * 1rem );\n --eui-base-spacing-l: calc( var(--eui-compact-ratio) * 1.5rem );\n --eui-base-spacing-xl: calc( var(--eui-compact-ratio) * 2rem );\n --eui-base-spacing-2xl: calc( var(--eui-compact-ratio) * 2.5rem );\n --eui-base-spacing-3xl: calc( var(--eui-compact-ratio) * 3rem );\n --eui-base-spacing-4xl: calc( var(--eui-compact-ratio) * 4rem );\n font-size: var(--eui-base-font-size);\n line-height: var(--eui-base-line-height);\n}\nform.eui-t-form-compact .eui-input-group {\n margin-bottom: var(--eui-input-group-spacing);\n}\nform.eui-t-form-compact .eui-input-group label {\n margin-bottom: var(--eui-base-spacing-2xs);\n}\nform.eui-t-form-compact .eui-input-group-addon-item {\n min-height: calc(2.5 * var(--eui-base-spacing));\n min-width: calc(2.5 * var(--eui-base-spacing));\n padding: calc(var(--eui-base-spacing-xs) - 1px);\n}\n\n.eui-table.eui-t-table-compact {\n --eui-base-font-size: 14px;\n --eui-base-line-height: 1.25;\n --eui-table-header-padding: var(--eui-base-spacing-s);\n --eui-table-row-padding: var(--eui-base-spacing-2xs);\n --eui-table-footer-padding: var(--eui-base-spacing-s);\n --eui-compact-ratio: 0.875;\n --eui-base-spacing-none: calc( var(--eui-compact-ratio) * 0 );\n --eui-base-spacing-2xs: calc( var(--eui-compact-ratio) * 0.25rem );\n --eui-base-spacing-xs: calc( var(--eui-compact-ratio) * 0.5rem );\n --eui-base-spacing-s: calc( var(--eui-compact-ratio) * 0.75rem );\n --eui-base-spacing-m: calc( var(--eui-compact-ratio) * 1rem );\n --eui-base-spacing-l: calc( var(--eui-compact-ratio) * 1.5rem );\n --eui-base-spacing-xl: calc( var(--eui-compact-ratio) * 2rem );\n --eui-base-spacing-2xl: calc( var(--eui-compact-ratio) * 2.5rem );\n --eui-base-spacing-3xl: calc( var(--eui-compact-ratio) * 3rem );\n --eui-base-spacing-4xl: calc( var(--eui-compact-ratio) * 4rem );\n font-size: var(--eui-base-font-size);\n line-height: var(--eui-base-line-height);\n}\n.eui-table.eui-t-table-compact thead tr {\n height: auto;\n}\n.eui-table.eui-t-table-compact thead tr th {\n padding: var(--eui-table-header-padding) var(--eui-base-spacing-s);\n}\n.eui-table.eui-t-table-compact tbody tr {\n height: auto;\n}\n.eui-table.eui-t-table-compact tbody tr td {\n padding: var(--eui-table-row-padding) var(--eui-base-spacing-s);\n}\n.eui-table.eui-t-table-compact tfoot tr {\n height: auto;\n}\n.eui-table.eui-t-table-compact tfoot tr td {\n padding: var(--eui-table-footer-padding) var(--eui-base-spacing-s);\n}\n\n.eui-card.eui-t-card-compact {\n --eui-base-font-size: 14px;\n --eui-base-line-height: 1.25;\n --eui-card-title-size: var(--eui-base-font-size-m);\n --eui-card-subtitle-size: var(--eui-base-font-size-s);\n --eui-compact-ratio: 0.875;\n --eui-base-spacing-none: calc( var(--eui-compact-ratio) * 0 );\n --eui-base-spacing-2xs: calc( var(--eui-compact-ratio) * 0.25rem );\n --eui-base-spacing-xs: calc( var(--eui-compact-ratio) * 0.5rem );\n --eui-base-spacing-s: calc( var(--eui-compact-ratio) * 0.75rem );\n --eui-base-spacing-m: calc( var(--eui-compact-ratio) * 1rem );\n --eui-base-spacing-l: calc( var(--eui-compact-ratio) * 1.5rem );\n --eui-base-spacing-xl: calc( var(--eui-compact-ratio) * 2rem );\n --eui-base-spacing-2xl: calc( var(--eui-compact-ratio) * 2.5rem );\n --eui-base-spacing-3xl: calc( var(--eui-compact-ratio) * 3rem );\n --eui-base-spacing-4xl: calc( var(--eui-compact-ratio) * 4rem );\n font-size: var(--eui-base-font-size);\n line-height: var(--eui-base-line-height);\n}\n.eui-card.eui-t-card-compact .eui-card-header__title-container-title, .eui-card.eui-t-card-compact .eui-card-header__title-container-title .eui-label {\n font-size: var(--eui-card-title-size);\n}\n.eui-card.eui-t-card-compact .eui-card-header__title-container-subtitle, .eui-card.eui-t-card-compact .eui-card-header__title-container-subtitle .eui-label {\n font-size: var(--eui-card-subtitle-size);\n}\n.eui-card.eui-t-card-compact .eui-card-header__urgent-indicator::after {\n font-size: var(--eui-base-font-size-2xl);\n}\n\n@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {\n img[src$=\".svg\"] {\n width: 100%;\n }\n}\n@media screen {\n img {\n background-repeat: no-repeat;\n background-size: 100%;\n -ms-interpolation-mode: bicubic;\n }\n}\n.cookie-consent-banner {\n display: block !important;\n min-width: 50% !important;\n position: absolute !important;\n right: 50% !important;\n top: var(--eui-base-spacing-m) !important;\n transform: translateX(50%) !important;\n z-index: var(--eui-base-z-index-max) !important;\n box-shadow: var(--eui-base-shadow-24) !important;\n background: var(--eui-base-color-primary) !important;\n color: var(eui-base-color-white) !important;\n}\n\n.eu-app-loader-wrapper {\n position: fixed;\n display: block;\n top: 50%;\n left: 50%;\n width: 270px;\n margin-left: -135px;\n margin-top: -80px;\n}\n\n.eu-app-loader-stars-flag-wrapper {\n background-color: #000099;\n width: 270px;\n height: 160px;\n padding-top: 10px;\n border: 1px solid #e4e4ff;\n box-shadow: 0 10px 20px rgba(0, 0, 0, 0.19), 0 6px 6px rgba(0, 0, 0, 0.23);\n}\n\n.eu-app-loader-stars {\n background: url(\"data:image/png;base64,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\");\n background-size: cover;\n width: 140px;\n height: 140px;\n position: absolute;\n left: 25%;\n animation: rotation 10s ease-in-out infinite;\n}\n\n@keyframes rotation {\n to {\n transform: rotate(1turn);\n }\n}\n@-ms-keyframes rotation {\n to {\n transform: rotate(1turn);\n }\n}\n@-o-keyframes rotation {\n to {\n transform: rotate(1turn);\n }\n}\n@-webkit-keyframes rotation {\n to {\n transform: rotate(1turn);\n }\n}\n@-moz-keyframes rotation {\n to {\n transform: rotate(1turn);\n }\n}\n.eu-app-loader-bars-wrapper {\n width: 100%;\n height: 6px;\n left: 50%;\n bottom: -30px;\n position: absolute;\n}\n\n.eu-app-loader-bars-border {\n background: #4a4a4a;\n border: transparent;\n height: 100%;\n width: 100%;\n position: relative;\n left: -50%;\n top: -50%;\n padding: 1px;\n}\n\n.eu-app-loader-bars-whitespace {\n overflow: hidden;\n height: 100%;\n width: 100%;\n margin: 0 auto;\n overflow: hidden;\n position: relative;\n}\n\n.eu-app-loader-bars-line {\n position: absolute;\n height: 100%;\n width: 100%;\n background-color: rgba(255, 255, 255, 0.98);\n animation: cssload-slide 2.25s steps(40) infinite;\n -o-animation: cssload-slide 2.25s steps(40) infinite;\n -ms-animation: cssload-slide 2.25s steps(40) infinite;\n -webkit-animation: cssload-slide 2.25s steps(40) infinite;\n -moz-animation: cssload-slide 2.25s steps(40) infinite;\n}\n\n@keyframes cssload-slide {\n 0% {\n left: -100%;\n }\n 100% {\n left: 100%;\n }\n}\n@-o-keyframes cssload-slide {\n 0% {\n left: -100%;\n }\n 100% {\n left: 100%;\n }\n}\n@-ms-keyframes cssload-slide {\n 0% {\n left: -100%;\n }\n 100% {\n left: 100%;\n }\n}\n@-webkit-keyframes cssload-slide {\n 0% {\n left: -100%;\n }\n 100% {\n left: 100%;\n }\n}\n@-moz-keyframes cssload-slide {\n 0% {\n left: -100%;\n }\n 100% {\n left: 100%;\n }\n}\n.eu-app-loader-text {\n color: #ececec;\n text-align: center;\n font-size: 18px;\n padding-top: 150px;\n}\n\n#loader-wrapper {\n height: 100%;\n left: 0;\n position: fixed;\n top: 0;\n width: 100%;\n z-index: 1000;\n}\n#loader-wrapper #loader {\n -webkit-animation: spin 2s linear infinite;\n /* Chrome, Opera 15+, Safari 5+ */\n animation: spin 2s linear infinite;\n /* Chrome, Firefox 16+, IE 10+, Opera */\n animation: hourglass 5s linear infinite;\n border: 10px solid transparent;\n border-radius: 50%;\n border-top-color: var(--eui-base-color-warning-100);\n display: block;\n height: 200px;\n left: 50%;\n margin: -100px 0 0 -100px;\n position: relative;\n top: 50%;\n width: 200px;\n}\n#loader-wrapper #loader::before {\n -webkit-animation: spin 2s linear infinite;\n /* Chrome, Opera 15+, Safari 5+ */\n animation: spin 2s linear infinite;\n /* Chrome, Firefox 16+, IE 10+, Opera */\n animation: hourglass 4s linear infinite;\n border: 10px solid transparent;\n border-radius: 50%;\n border-top-color: var(--eui-base-color-danger-100);\n bottom: 5px;\n content: \"\";\n left: 5px;\n position: absolute;\n right: 5px;\n top: 5px;\n}\n#loader-wrapper #loader::after {\n -webkit-animation: spin 1s linear infinite;\n /* Chrome, Opera 15+, Safari 5+ */\n animation: spin 1s linear infinite;\n /* Chrome, Firefox 16+, IE 10+, Opera */\n animation: hourglass 3s linear infinite;\n border: 10px solid transparent;\n border-radius: 50%;\n border-top-color: var(--eui-base-color-primary-100);\n bottom: 20px;\n content: \"\";\n left: 20px;\n position: absolute;\n right: 20px;\n top: 20px;\n}\n\n/* stylelint-enable */\n@-webkit-keyframes spin {\n 0% {\n -webkit-transform: rotate(0deg);\n -ms-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n 100% {\n -webkit-transform: rotate(360deg);\n -ms-transform: rotate(360deg);\n transform: rotate(360deg);\n }\n}\n@keyframes spin {\n 0% {\n -webkit-transform: rotate(0deg);\n -ms-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n 100% {\n -webkit-transform: rotate(360deg);\n -ms-transform: rotate(360deg);\n transform: rotate(360deg);\n }\n}\n@-webkit-keyframes hourglass {\n 0% {\n transform: rotate(0);\n animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);\n }\n 50% {\n transform: rotate(900deg);\n animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\n }\n 100% {\n transform: rotate(1800deg);\n }\n}\n@keyframes hourglass {\n 0% {\n transform: rotate(0);\n animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);\n }\n 50% {\n transform: rotate(900deg);\n animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\n }\n 100% {\n transform: rotate(1800deg);\n }\n}\n\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQGV1aS9zdHlsZXMtYmFzZS9zcmMvc3R5bGVzLzAxLWVjbC9hbGwvZnVsbC1jc3MvZWNsLXJlc2V0LnNjc3MiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQGV1aS9zdHlsZXMtYmFzZS9zcmMvc3R5bGVzLzAyLWJhc2UvZnVuY3Rpb25zL191dGlscy5zY3NzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0BldWkvc3R5bGVzLWJhc2Uvc3JjL3N0eWxlcy8wMi1iYXNlL21peGlucy9fZXVpLWZvbnQtZmFtaWx5LnNjc3MiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQGV1aS9zdHlsZXMtYmFzZS9zcmMvc3R5bGVzLzAzLXZhcnMvX3Rva2Vucy52YXJzLnNjc3MiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQGV1aS9zdHlsZXMtYmFzZS9zcmMvc3R5bGVzLzAzLXZhcnMvX290aGVyLnZhcnMuc2NzcyIsIjAyYi1iYXNlLXZhcnMvX2xheW91dC52YXJzLnNjc3MiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQGV1aS9zdHlsZXMtYmFzZS9zcmMvc3R5bGVzLzA1LWFzc2V0cy9pY29ucy1zdmcvX2ljb25zLWdlbmVyaWNzLnNjc3MiLCIwNi1zaGFyZWQvX2ZsZXguc2NzcyIsIjA2LXNoYXJlZC9fdHlwb2dyYXBoeS5zY3NzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0BldWkvc3R5bGVzLWJhc2Uvc3JjL3N0eWxlcy8wMi1iYXNlL21peGlucy9fZXVpLWZvbnQuc2NzcyIsIjA2LXNoYXJlZC9fZXVpLWlucHV0LW1heGxlbmd0aC5zY3NzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0BldWkvc3R5bGVzLWJhc2Uvc3JjL3N0eWxlcy8wNC1lbGVtZW50cy9faHRtbC5zY3NzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0BldWkvc3R5bGVzLWJhc2Uvc3JjL3N0eWxlcy8wNC1lbGVtZW50cy9fYm9keS5zY3NzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0BldWkvc3R5bGVzLWJhc2Uvc3JjL3N0eWxlcy8wNC1lbGVtZW50cy9fc2hhcmVkLnNjc3MiLCIwNy1lbGVtZW50cy9ldWktdGFibGUtZGVmYXVsdC9fZXVpLXRhYmxlLWRlZmF1bHQuc2NzcyIsIjA4LXRoZW1lcy9jb21wYWN0L19ldWktdC1jb21wYWN0LnNjc3MiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQGV1aS9zdHlsZXMtYmFzZS9zcmMvc3R5bGVzLzAyLWJhc2UvbWl4aW5zL3RoZW1pbmcvX2NvbXBhY3QtdmFycy5zY3NzIiwiMTAtbWVkaWEvX2llaW1nZml4LnNjc3MiLCIxMS1leHRyYXMvX2Nvb2tpZS1jb25zZW50LnNjc3MiLCIxMS1leHRyYXMvX3ByZWxvYWRlci1ldS5zY3NzIiwiMTEtZXh0cmFzL19wcmVsb2FkZXIuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQTRFO0VBQUs7RUFBOEI7OztBQUFpQjtFQUFLOzs7QUFBYztFQUFHO0VBQWM7OztBQUFlO0VBQUc7RUFBdUI7RUFBUzs7O0FBQWlCO0VBQUk7RUFBZ0M7OztBQUFjO0VBQUU7OztBQUE2QjtFQUFZO0VBQW1CO0VBQTBCO0VBQXlDOzs7QUFBaUM7RUFBUzs7O0FBQW1CO0VBQWM7RUFBZ0M7OztBQUFjO0VBQU07OztBQUFjO0VBQVE7RUFBYztFQUFjO0VBQWtCOzs7QUFBd0I7RUFBSTs7O0FBQWM7RUFBSTs7O0FBQVU7RUFBSTs7O0FBQWtCO0VBQXNDO0VBQW9CO0VBQWU7RUFBaUI7OztBQUFTO0VBQWE7OztBQUFpQjtFQUFjOzs7QUFBb0I7RUFBZ0Q7OztBQUEwQjtFQUF3SDtFQUFrQjs7O0FBQVU7RUFBNEc7OztBQUE4QjtFQUFTOzs7QUFBMkI7RUFBTztFQUFzQjtFQUFjO0VBQWM7RUFBZTtFQUFVOzs7QUFBbUI7RUFBUzs7O0FBQXdCO0VBQVM7OztBQUFjO0VBQTZCO0VBQXNCOzs7QUFBVTtFQUFrRjs7O0FBQVk7RUFBYztFQUE2Qjs7O0FBQW9CO0VBQXlDOzs7QUFBd0I7RUFBNkI7RUFBMEI7OztBQUFhO0VBQVE7OztBQUFjO0VBQVE7OztBQUFrQjtFQUFTOzs7QUFBYTtFQUFTOzs7QUFBYTtFQUFLO0VBQVM7OztBQ3VDaDBEO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUN4Q0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQ0FBO0VBSVk7RUFDQTtFQUNBO0VBQ0E7RUFIQTtFQUNBO0VBQ0E7RUFDQTtFQUhBO0VBQ0E7RUFDQTtFQUNBO0VBSEE7RUFDQTtFQUNBO0VBQ0E7RUFIQTtFQUNBO0VBQ0E7RUFDQTtFQUhBO0VBQ0E7RUFDQTtFQUNBO0VBSEE7RUFDQTtFQUNBO0VBQ0E7RUFIQTtFQUNBO0VBQ0E7RUFDQTtFQUhBO0VBQ0E7RUFDQTtFQUNBO0VBSEE7RUFDQTtFQUNBO0VBQ0E7RUFIQTtFQUNBO0VBQ0E7RUFDQTtFQUhBO0VBQ0E7RUFDQTtFQUNBO0VBSEE7RUFDQTtFQUNBO0VBQ0E7RUFIQTtFQUNBO0VBQ0E7RUFDQTtFQUhBO0VBQ0E7RUFDQTtFQUNBO0VBSEE7RUFDQTtFQUNBO0VBQ0E7RUFIQTtFQUNBO0VBQ0E7RUFDQTtFQUhBO0VBQ0E7RUFDQTtFQUNBO0VBSEE7RUFDQTtFQUNBO0VBQ0E7RUFIQTtFQUNBO0VBQ0E7RUFDQTtFQUhBO0VBQ0E7RUFDQTtFQUNBO0VBSEE7RUFDQTtFQUNBO0VBQ0E7RUFIQTtFQUNBO0VBQ0E7RUFDQTtFQUhBO0VBQ0E7RUFDQTtFQUNBO0VBSEE7RUFDQTtFQUNBO0VBQ0E7RUFIQTtFQUNBO0VBQ0E7RUFDQTtFQUhBO0VBQ0E7RUFDQTtFQUNBO0VBSEE7RUFDQTtFQUNBO0VBQ0E7RUFIQTtFQUNBO0VBQ0E7RUFDQTtFQUhBO0VBQ0E7RUFDQTtFQUNBO0VBSEE7RUFDQTtFQUNBO0VBQ0E7RUFIQTtFQUNBO0VBQ0E7RUFDQTtFQUhBO0VBQ0E7RUFDQTtFQUNBO0VBSEE7RUFDQTtFQUNBO0VBQ0E7RUFIQTtFQUNBO0VBQ0E7RUFDQTtFQUhBO0VBQ0E7RUFDQTtFQUNBO0VBSEE7RUFDQTtFQUNBO0VBQ0E7RUFIQTtFQUNBO0VBQ0E7RUFDQTtFQUhBO0VBQ0E7RUFDQTtFQUNBO0VBSEE7RUFDQTtFQUNBO0VBQ0E7RUFIQTtFQUNBO0VBQ0E7RUFDQTtFQUhBO0VBQ0E7RUFDQTtFQUNBO0VBSEE7RUFDQTtFQUNBO0VBQ0E7RUFIQTtFQUNBO0VBQ0E7RUFDQTtFQUhBO0VBQ0E7RUFDQTtFQUNBO0VBSEE7RUFDQTtFQUNBO0VBQ0E7RUFIQTtFQUNBO0VBQ0E7RUFDQTtFQUhBO0VBQ0E7RUFDQTtFQUNBO0VBSEE7RUFDQTtFQUNBO0VBQ0E7RUFIQTtFQUNBO0VBQ0E7RUFDQTtFQUhBO0VBQ0E7RUFDQTtFQUNBO0VBSEE7RUFDQTtFQUNBO0VBQ0E7RUFIQTtFQUNBO0VBQ0E7RUFDQTtFQUhBO0VBQ0E7RUFDQTtFQUNBO0VBSEE7RUFDQTtFQUNBO0VBQ0E7RUFIQTtFQUNBO0VBQ0E7RUFDQTtFQUhBO0VBQ0E7RUFDQTtFQUNBO0VBSEE7RUFDQTtFQUNBO0VBQ0E7RUFIQTtFQUNBO0VBQ0E7RUFDQTtFQUhBO0VBQ0E7RUFDQTtFQUNBO0VBSEE7RUFDQTtFQUNBO0VBQ0E7RUFIQTtFQUNBO0VBQ0E7RUFDQTtFQUhBO0VBQ0E7RUFDQTtFQUNBO0VBSEE7RUFDQTtFQUNBO0VBQ0E7RUFIQTtFQUNBO0VBQ0E7RUFDQTtFQUhBO0VBQ0E7RUFDQTtFQUNBO0VBSEE7RUFDQTtFQUNBO0VBQ0E7RUFIQTtFQUNBO0VBQ0E7RUFDQTtFQUhBO0VBQ0E7RUFDQTtFQUNBO0VBSEE7RUFDQTtFQUNBO0VBQ0E7RUFIQTtFQUNBO0VBQ0E7RUFDQTtFQUhBO0VBQ0E7RUFDQTtFQUNBO0VBTUo7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFJSjtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBR0E7RUFFSTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBSUo7RUFDQTtFQUNBO0VBR0E7RUFFSTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBVUk7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFNSjtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUtBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBS0E7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7OztBQy9EUjtFQUNJO0VBQ0E7RUFDQTtFQUVBO0VBRUE7RUFDQTtFQUNBO0VBQ0E7RUFHQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBRUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUVBO0VBQ0E7RUFDQTtFQUNBO0VBRUE7RUFDQTtFQUNBO0VBQ0E7RUFHQTs7O0FDcENKO0VBRUk7RUFDQTtFQUNBO0VBQ0E7RUFFQTtFQUNBO0VBQ0E7RUFFQTtFQUNBO0VBQ0E7RUFFQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFHQTtFQUNBO0VBRUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFHQTtFQUlBO0VBQ0E7RUFDQTtFQUVBO0VBQ0E7RUFDQTtFQUVBO0VBQ0E7RUFFQTtFQUNBO0VBRUE7RUFDQTtFQUNBOzs7QUFHSjtFQUNJOzs7QUNqRUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0E7RUFDSTtFQUNBOzs7QUFGSjtFQUNJO0VBQ0E7OztBQUZKO0VBQ0k7RUFDQTs7O0FBRko7RUFDSTtFQUNBOzs7QUFGSjtFQUNJO0VBQ0E7OztBQUZKO0VBQ0k7RUFDQTs7O0FBRko7RUFDSTtFQUNBOzs7QUFGSjtFQUNJO0VBQ0E7OztBQUtBO0VBQ0k7RUFDQTs7O0FBRko7RUFDSTtFQUNBOzs7QUFGSjtFQUNJO0VBQ0E7OztBQUZKO0VBQ0k7RUFDQTs7O0FBRko7RUFDSTtFQUNBOzs7QUFGSjtFQUNJO0VBQ0E7OztBQUZKO0VBQ0k7RUFDQTs7O0FBRko7RUFDSTtFQUNBOzs7QUFGSjtFQUNJO0VBQ0E7OztBQUZKO0VBQ0k7RUFDQTs7O0FBRko7RUFDSTtFQUNBOzs7QUFGSjtFQUNJO0VBQ0E7OztBQUZKO0VBQ0k7RUFDQTs7O0FBRko7RUFDSTtFQUNBOzs7QUFGSjtFQUNJO0VBQ0E7OztBQUZKO0VBQ0k7RUFDQTs7O0FBRko7RUFDSTtFQUNBOzs7QUFGSjtFQUNJO0VBQ0E7OztBQUZKO0VBQ0k7RUFDQTs7O0FBRko7RUFDSTtFQUNBOzs7QUFGSjtFQUNJO0VBQ0E7OztBQUZKO0VBQ0k7RUFDQTs7O0FBRko7RUFDSTtFQUNBOzs7QUFGSjtFQUNJO0VBQ0E7OztBQUZKO0VBQ0k7RUFDQTs7O0FBRko7RUFDSTtFQUNBOzs7QUFGSjtFQUNJO0VBQ0E7OztBQUZKO0VBQ0k7RUFDQTs7O0FBRko7RUFDSTtFQUNBOzs7QUFGSjtFQUNJO0VBQ0E7OztBQUZKO0VBQ0k7RUFDQTs7O0FBRko7RUFDSTtFQUNBOzs7QUFGSjtFQUNJO0VBQ0E7OztBQUZKO0VBQ0k7RUFDQTs7O0FBRko7RUFDSTtFQUNBOzs7QUFGSjtFQUNJO0VBQ0E7OztBQUZKO0VBQ0k7RUFDQTs7O0FBRko7RUFDSTtFQUNBOzs7QUFGSjtFQUNJO0VBQ0E7OztBQUZKO0VBQ0k7RUFDQTs7O0FBRko7RUFDSTtFQUNBOzs7QUFGSjtFQUNJO0VBQ0E7OztBQUZKO0VBQ0k7RUFDQTs7O0FBRko7RUFDSTtFQUNBOzs7QUFGSjtFQUNJO0VBQ0E7OztBQUZKO0VBQ0k7RUFDQTs7O0FBRko7RUFDSTtFQUNBOzs7QUFGSjtFQUNJO0VBQ0E7OztBQUZKO0VBQ0k7RUFDQTs7O0FBRko7RUFDSTtFQUNBOzs7QUFGSjtFQUNJO0VBQ0E7OztBQUZKO0VBQ0k7RUFDQTs7O0FBRko7RUFDSTtFQUNBOzs7QUFGSjtFQUNJO0VBQ0E7OztBQUZKO0VBQ0k7RUFDQTs7O0FBRko7RUFDSTtFQUNBOzs7QUFGSjtFQUNJO0VBQ0E7OztBQUZKO0VBQ0k7RUFDQTs7O0FBRko7RUFDSTtFQUNBOzs7QUFGSjtFQUNJO0VBQ0E7OztBQUZKO0VBQ0k7RUFDQTs7O0FBRko7RUFDSTtFQUNBOzs7QUFGSjtFQUNJO0VBQ0E7OztBQUZKO0VBQ0k7RUFDQTs7O0FBRko7RUFDSTtFQUNBOzs7QUFGSjtFQUNJO0VBQ0E7OztBQUZKO0VBQ0k7RUFDQTs7O0FBRko7RUFDSTtFQUNBOzs7QUFGSjtFQUNJO0VBQ0E7OztBQUZKO0VBQ0k7RUFDQTs7O0FBRko7RUFDSTtFQUNBOzs7QUFGSjtFQUNJO0VBQ0E7OztBQ2RaO0VBQ0k7RUFDQTtFQUNBOzs7QUFLSjtFQUNJO0VBQ0E7RUFDQTtFQUNBOzs7QUFJSjtFQUlJOzs7QUNuQko7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0VOWUk7RUFDQTtFQUNBO0VBQ0E7RU1DQTs7O0FBS0o7QUFBQTtFQ3BCSSxNQUYyQjtFRHlCM0I7OztBQUdKO0FBQUE7RUMxQkksTUFGMkI7RUQrQjNCOzs7QUFHSjtBQUFBO0VDaENJLE1BRjJCO0VEcUMzQjs7O0FBR0o7QUFBQTtFQ3RDSSxNQUYyQjtFRDJDM0I7OztBQUdKO0FBQUE7RUM1Q0ksTUFGMkI7RURpRDNCOzs7QUFHSjtBQUFBO0VDbERJLE1BRjJCO0VEdUQzQjs7O0FBR0o7QUFBQTtFQ3hESSxNQUYyQjtFRDZEM0I7OztBQUdKO0FBQUE7RUM5REksTUFGMkI7RURtRTNCOzs7QUFHSjtBQUFBO0FBQUE7RUNwRUksTUFGMkI7RUQwRTNCOzs7QUFJSjtBQUFBO0VBRUk7RUFDQTs7QUFFQTtBQUFBO0FBQUE7RUFFSTtFQUNBOzs7QUFJUjtFQUNJO0VBQ0E7OztBQUdKO0VBQ0k7OztBQUdKO0VBQ0k7OztBQUdKO0VBQ0k7OztBQUdKO0VBQ0k7OztBRTdHSjtFQUNJO0VBQ0E7O0FBRUE7RUREQSxNQUYyQjtFQ0t2QjtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDSTtFQUNBO0VBQ0E7OztBQ3BCWjtFQUVJO0VBQ0E7RUFFQTtFQUNBO0VBQ0E7RUFDQTs7O0FDUko7RUFFSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBRUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FDTEE7RUFDSTs7QUFJUjtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFBQTtBQUtBO0VBQ0k7OztBQUlBO0VBR0k7OztBQWNSO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtFQVNJOzs7QUFRSjtFQUNJOzs7QUFJSjtFQUNJOzs7QUFHSjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtFQU9JOzs7QUFHSjtBQUFBO0VBRUk7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUVJOzs7QUFHSjtBQUFBO0FBQUE7RUFHSTs7QUFFQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0VBRUk7OztBQUlSO0FBQUE7QUFBQTtBQUFBO0VBSUk7RVg1RUE7RUFDQTtFQUNBOzs7QVc4RUo7RUFDSTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7OztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTs7O0FBR0o7QUFBQTtFQUVJO0VBQ0E7OztBQzVKSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUdBO0FBQUE7QUFBQTtFQUdJOztBQUdKO0FBQUE7RUFFSTs7QUFJQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RVpLUjtFQUNBOztBWUZJO0VBQ0k7RUFDQTs7QUFLUjtFQUNJOztBQUVBO0VBQ0k7O0FBRUE7RUFDSTs7QUFJUjtFQUNJOztBQUVBO0VBQ0k7O0FBS1o7RUFDSTtFQUNBOztBQU1JO0VBQ0k7O0FBSVI7RUFDSTs7QUFLUjtFQUNJO0VBQ0E7O0FBRUE7RUFDSTs7QUFNSjtBQUFBO0VBRUk7O0FBS1I7RUFDSTs7QUFJSjtFQUNJOztBQUVBO0FBQUE7QUFBQTtFQUdJOztBQUtSO0VBQ0k7RUFDQTtFQUNBOztBQUtBO0FBQUE7QUFBQTtFQUdJOzs7QUN6SFo7RUFFSTtFQUNBO0VBRUE7RUFDQTs7O0FBS0o7RUFFSTtFQUNBO0VBQ0E7RUNoQkE7RUFFSTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFRG1CSjtFQUNBOztBQUdBO0VBQ0k7O0FBRUE7RUFDSTs7QUFJUjtFQUNJO0VBQ0E7RUFDQTs7O0FBTVI7RUFFSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VDaERBO0VBRUk7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RURrREo7RUFDQTs7QUFJSTtFQUNJOztBQUVBO0VBQ0k7O0FBTVI7RUFDSTs7QUFFQTtFQUNJOztBQU1SO0VBQ0k7O0FBRUE7RUFDSTs7O0FBUWhCO0VBRUk7RUFDQTtFQUNBO0VBQ0E7RUM5RkE7RUFFSTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFRGdHSjtFQUNBOztBQU1ZO0VBRUk7O0FBR0o7RUFFSTs7QUFLSjtFQUNJOzs7QUV0SHBCO0VBQ0k7SUFDSTs7O0FBR1I7RUFFSTtJQUNJO0lBQ0E7SUFDQTs7O0FDVlI7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FDWEo7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0U7SUFDRTs7O0FBSUo7RUFDRTtJQUNFOzs7QUFJSjtFQUNFO0lBQ0U7OztBQUlKO0VBQ0U7SUFDRTs7O0FBSUo7RUFDRTtJQUNFOzs7QUFLSjtFQUNDO0VBQ0E7RUFDRztFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTtFQUNIO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Q7RUFDQztFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdEO0VBQ0M7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNDO0VBQ0E7RUFDQTtFQUNBOzs7QUFLRjtFQUNDO0lBQ0M7O0VBR0Q7SUFDQzs7O0FBSUY7RUFDQztJQUNDOztFQUdEO0lBQ0M7OztBQUlGO0VBQ0M7SUFDQzs7RUFHRDtJQUNDOzs7QUFJRjtFQUNDO0lBQ0M7O0VBR0Q7SUFDQzs7O0FBSUY7RUFDQztJQUNDOztFQUdEO0lBQ0M7OztBQUtGO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7OztBQzdKSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNJO0FBQTRDO0VBQzVDO0FBQW9DO0VBQ3BDO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDSTtBQUE0QztFQUM1QztBQUFvQztFQUNwQztFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFHSjtFQUNJO0FBQTRDO0VBQzVDO0FBQW9DO0VBQ3BDO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFLWjtBQUNBO0VBQ0k7SUFDSTtJQUNBO0lBQ0E7O0VBR0o7SUFDSTtJQUNBO0lBQ0E7OztBQUdSO0VBQ0k7SUFDSTtJQUNBO0lBQ0E7O0VBR0o7SUFDSTtJQUNBO0lBQ0E7OztBQUdSO0VBQ0k7SUFDSTtJQUNBOztFQUVKO0lBQ0k7SUFDQTs7RUFFSjtJQUNJOzs7QUFHUjtFQUNJO0lBQ0k7SUFDQTs7RUFFSjtJQUNJO0lBQ0E7O0VBRUo7SUFDSSIsImZpbGUiOiJldWkudGVtcC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIvKiEgQGVjbC9wcmVzZXQtcmVzZXQgLSAzLjQuMiBCdWlsdCBvbiAyMDIyLTA5LTIxVDEwOjAyOjMyLjU2NVogKi9cbi8qISBub3JtYWxpemUuY3NzIHY4LjAuMSB8IE1JVCBMaWNlbnNlIHwgZ2l0aHViLmNvbS9uZWNvbGFzL25vcm1hbGl6ZS5jc3MgKi9odG1sey13ZWJraXQtdGV4dC1zaXplLWFkanVzdDoxMDAlO2xpbmUtaGVpZ2h0OjEuMTV9bWFpbntkaXNwbGF5OmJsb2NrfWgxe2ZvbnQtc2l6ZToyZW07bWFyZ2luOi42N2VtIDB9aHJ7Ym94LXNpemluZzpjb250ZW50LWJveDtoZWlnaHQ6MDtvdmVyZmxvdzp2aXNpYmxlfXByZXtmb250LWZhbWlseTptb25vc3BhY2UsbW9ub3NwYWNlO2ZvbnQtc2l6ZToxZW19YXtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50fWFiYnJbdGl0bGVde2JvcmRlci1ib3R0b206bm9uZTt0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lOy13ZWJraXQtdGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZSBkb3R0ZWQ7dGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZSBkb3R0ZWR9YixzdHJvbmd7Zm9udC13ZWlnaHQ6Ym9sZGVyfWNvZGUsa2JkLHNhbXB7Zm9udC1mYW1pbHk6bW9ub3NwYWNlLG1vbm9zcGFjZTtmb250LXNpemU6MWVtfXNtYWxse2ZvbnQtc2l6ZTo4MCV9c3ViLHN1cHtmb250LXNpemU6NzUlO2xpbmUtaGVpZ2h0OjA7cG9zaXRpb246cmVsYXRpdmU7dmVydGljYWwtYWxpZ246YmFzZWxpbmV9c3Vie2JvdHRvbTotLjI1ZW19c3Vwe3RvcDotLjVlbX1pbWd7Ym9yZGVyLXN0eWxlOm5vbmV9YnV0dG9uLGlucHV0LG9wdGdyb3VwLHNlbGVjdCx0ZXh0YXJlYXtmb250LWZhbWlseTppbmhlcml0O2ZvbnQtc2l6ZToxMDAlO2xpbmUtaGVpZ2h0OjEuMTU7bWFyZ2luOjB9YnV0dG9uLGlucHV0e292ZXJmbG93OnZpc2libGV9YnV0dG9uLHNlbGVjdHt0ZXh0LXRyYW5zZm9ybTpub25lfVt0eXBlPWJ1dHRvbl0sW3R5cGU9cmVzZXRdLFt0eXBlPXN1Ym1pdF0sYnV0dG9uey13ZWJraXQtYXBwZWFyYW5jZTpidXR0b259W3R5cGU9YnV0dG9uXTo6LW1vei1mb2N1cy1pbm5lcixbdHlwZT1yZXNldF06Oi1tb3otZm9jdXMtaW5uZXIsW3R5cGU9c3VibWl0XTo6LW1vei1mb2N1cy1pbm5lcixidXR0b246Oi1tb3otZm9jdXMtaW5uZXJ7Ym9yZGVyLXN0eWxlOm5vbmU7cGFkZGluZzowfVt0eXBlPWJ1dHRvbl06LW1vei1mb2N1c3JpbmcsW3R5cGU9cmVzZXRdOi1tb3otZm9jdXNyaW5nLFt0eXBlPXN1Ym1pdF06LW1vei1mb2N1c3JpbmcsYnV0dG9uOi1tb3otZm9jdXNyaW5ne291dGxpbmU6MXB4IGRvdHRlZCBCdXR0b25UZXh0fWZpZWxkc2V0e3BhZGRpbmc6LjM1ZW0gLjc1ZW0gLjYyNWVtfWxlZ2VuZHtib3gtc2l6aW5nOmJvcmRlci1ib3g7Y29sb3I6aW5oZXJpdDtkaXNwbGF5OnRhYmxlO21heC13aWR0aDoxMDAlO3BhZGRpbmc6MDt3aGl0ZS1zcGFjZTpub3JtYWx9cHJvZ3Jlc3N7dmVydGljYWwtYWxpZ246YmFzZWxpbmV9dGV4dGFyZWF7b3ZlcmZsb3c6YXV0b31bdHlwZT1jaGVja2JveF0sW3R5cGU9cmFkaW9de2JveC1zaXppbmc6Ym9yZGVyLWJveDtwYWRkaW5nOjB9W3R5cGU9bnVtYmVyXTo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbixbdHlwZT1udW1iZXJdOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9ue2hlaWdodDphdXRvfVt0eXBlPXNlYXJjaF17LXdlYmtpdC1hcHBlYXJhbmNlOnRleHRmaWVsZDtvdXRsaW5lLW9mZnNldDotMnB4fVt0eXBlPXNlYXJjaF06Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb257LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmV9Ojotd2Via2l0LWZpbGUtdXBsb2FkLWJ1dHRvbnstd2Via2l0LWFwcGVhcmFuY2U6YnV0dG9uO2ZvbnQ6aW5oZXJpdH1kZXRhaWxze2Rpc3BsYXk6YmxvY2t9c3VtbWFyeXtkaXNwbGF5Omxpc3QtaXRlbX10ZW1wbGF0ZXtkaXNwbGF5Om5vbmV9W2hpZGRlbl17ZGlzcGxheTpub25lfWJvZHl7bWFyZ2luOjA7b3ZlcmZsb3cteDpoaWRkZW59IiwiQHVzZSBcInNhc3M6bWF0aFwiO1xuQGZ1bmN0aW9uIHYoJHZhciwgJGZhbGxiYWNrOiBudWxsKSB7XG4gICAgQGlmICgkZmFsbGJhY2spIHtcbiAgICAgICAgQHJldHVybiB2YXIoLS0jeyR2YXJ9LCAjeyRmYWxsYmFja30pO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICAgIEByZXR1cm4gdmFyKC0tI3skdmFyfSk7XG4gICAgfVxufVxuQGZ1bmN0aW9uIG1hcC1kZWVwLWdldCgkbWFwLCAka2V5cy4uLikge1xuICAgIEBlYWNoICRrZXkgaW4gJGtleXMge1xuICAgICAgICBAZGVidWcgI3skbWFwfTtcbiAgICAgICAgJG1hcDogbWFwLWdldCgkbWFwLCAka2V5KTtcbiAgICB9XG4gICAgQHJldHVybiAkbWFwO1xufVxuQGZ1bmN0aW9uIHRvUkdCKCRjb2xvcikge1xuICAgIEByZXR1cm4gXCJyZ2IoXCIgKyByZWQoJGNvbG9yKSArIFwiLCBcIiArIGdyZWVuKCRjb2xvcikgKyBcIiwgXCIgKyBibHVlKCRjb2xvcikrIFwiKVwiO1xufVxuQGZ1bmN0aW9uIGdldENvbnRyYXN0KCRjb2xvcikge1xuICAgICRjb2xvci1icmlnaHRuZXNzOiByb3VuZCgocmVkKCRjb2xvcikgKiAyOTkpICsgKGdyZWVuKCRjb2xvcikgKiA1ODcpICsgbWF0aC5kaXYoKGJsdWUoJGNvbG9yKSAqIDExNCksIDEwMDApKTtcbiAgICAkbGlnaHQtY29sb3I6IHJvdW5kKChyZWQoI2ZmZikgKiAyOTkpICsgKGdyZWVuKCNmZmYpICogNTg3KSArIG1hdGguZGl2KChibHVlKCNmZmYpICogMTE0KSwgMTAwMCkpO1xuICAgIEBpZiBhYnMoJGNvbG9yLWJyaWdodG5lc3MpIDwgbWF0aC5kaXYoJGxpZ2h0LWNvbG9yLCAyKSB7XG4gICAgICAgIEByZXR1cm4gd2hpdGU7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgICAgQHJldHVybiBtYXAtZ2V0KCRlY2wtY29sb3IsICdncmV5LTEwMCcpO1xuICAgIH1cbn1cbkBmdW5jdGlvbiBnZXRDb2xvcigkc2hhZGU6IHByaW1hcnksICRodWU6IDEwMCkge1xuICAgICRzZWxlY3RlZC1zaGFkZTogbWFwLWdldCgkZXVpLWJhc2UtdG9rZW5zLWNvbG9ycywgJHNoYWRlKTtcbiAgICBAaWYgKCRzZWxlY3RlZC1zaGFkZSkge1xuICAgICAgICBAcmV0dXJuIG1hcC1nZXQoJHNlbGVjdGVkLXNoYWRlLCAkaHVlKTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgICBAcmV0dXJuIGJsYWNrO1xuICAgIH1cbiAgICBAcmV0dXJuICRzZWxlY3RlZC1jb2xvcjtcbn1cblxuLyoqXG4gICAqIEVDTCBjb2xvciB2YXJpYW50cyBmb3JtdWxhXG4gICAqIEFwcGxpZXMgdGludCBvciBzaGFkZSBvZiBiYXNlIGNvbG9yIHByb3ZpZGVkXG4gICAqXG4gICAqIEBwYXJhbSBjb2xvcjogYmFzZSBjb2xvciwgaGFzIHZhcmlhbnQgb2YgMTAwXG4gICAqIEBwYXJhbSB2YXJpYW50OiBudW1iZXIgaW4gcmFuZ2UgYmV0d2VlbiAwIC0gMjAwXG4gICAqICAgICAgICAgICAgICAgICAxMDAgLSBuZXV0cmFsIHZhcmlhbnQsIG5vIGNoYW5nZXNcbiAgICogICAgICAgICAgICAgICAgIDAgLSA5OTogYnJpZ2h0ZW5zIGJhc2UgY29sb3IgYnkgbWl4aW5nIGluIHdoaXRlIGNvbG9yLCB0aGUgbG93ZXIsIHRoZSBicmlnaHRlclxuICAgKiAgICAgICAgICAgICAgICAgOTkgLSAyMDA6IGRhcmtlbnMgYmFzZSBjb2xvciBieSBtaXhpbmcgaW4gYmxhY2sgY29sb3IsIHRoZSBiaWdnZXIsIHRoZSBkYXJrZXJcbiAgICpcbiAgICogQHJldHVybiBjb2xvciB2YXJpYW50IG9mIHByb3ZpZGVkIGJhc2UgY29sb3JcbiAgICpcbiAgICogQGV4YW1wbGVzXG4gICAqXG4gICAqIC8vIHByb3ZpZGVzIDMwJSBkYXJrZXIgcGluayBjb2xvclxuICAgKiBiYWNrZ3JvdW5kLWNvbG9yOiBldWktY29sb3ItdmFyaWFudChwaW5rLCAxMzApO1xuICAgKlxuICAgKiAvLyBwcm92aWRlcyA5NSUgbGlnaHRlciBwaW5rIGNvbG9yXG4gICAqIGJhY2tncm91bmQtY29sb3I6IGV1aS1jb2xvci12YXJpYW50KHBpbmssIDUpO1xuICAgKi9cbkBmdW5jdGlvbiBldWktY29sb3ItdmFyaWFudCgkY29sb3IsICR2YXJpYW50OiAxMDApIHtcbiAgICBAaWYgKCR2YXJpYW50IDwgMTAwKSB7XG4gICAgICAgIEByZXR1cm4gbWl4KCNmZmZmZmYsICRjb2xvciwgMTAwIC0gJHZhcmlhbnQpO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICAgIEByZXR1cm4gbWl4KCMwMDAwMDAsICRjb2xvciwgJHZhcmlhbnQgLSAxMDApO1xuICAgIH1cbn1cbkBmdW5jdGlvbiBuZXctYnJlYWtwb2ludCgkcXVlcnk6ICRmZWF0dXJlICR2YWx1ZSkge1xuICAgIEBpZiBsZW5ndGgoJHF1ZXJ5KSA9PSAxIHtcbiAgICAgICAgJHF1ZXJ5OiAkZGVmYXVsdC1mZWF0dXJlIG50aCgkcXVlcnksIDEpO1xuICAgIH1cbiAgICBAZWxzZSBpZiBpcy1ldmVuKGxlbmd0aCgkcXVlcnkpKSB7XG4gICAgICAgICRxdWVyeTogYXBwZW5kKCRxdWVyeSwgMTIpO1xuICAgIH1cbiAgICBAcmV0dXJuICRxdWVyeTtcbn1cbkBmdW5jdGlvbiBzdHJpcC11bml0cygkdmFsdWUpIHtcbiAgICBAcmV0dXJuIG1hdGguZGl2KCR2YWx1ZSwgJHZhbHVlICogMCArIDEpO1xufVxuQGZ1bmN0aW9uIHRvLXJlbSgkcHh2YWwpIHtcbiAgICBAaWYgbm90IHVuaXRsZXNzKCRweHZhbCkge1xuICAgICAgICAkcHh2YWw6IHN0cmlwLXVuaXRzKCRweHZhbCk7XG4gICAgfVxuICAgICRiYXNlOiAxNnB4O1xuICAgIEBpZiBub3QgdW5pdGxlc3MoJGJhc2UpIHtcbiAgICAgICAgJGJhc2U6IHN0cmlwLXVuaXRzKCRiYXNlKTtcbiAgICB9XG4gICAgQHJldHVybiBtYXRoLmRpdigkcHh2YWwsICRiYXNlKSAqIDFyZW07XG59XG4iLCIvKiogQ29tbW9uIHdlaWdodCBuYW1lIG1hcHBpbmdcbiAgICBAU2VlIHRoZSBPcGVuVHlwZSBzcGVjaWZpY2F0aW9uOlxuICAgIGh0dHBzOi8vZG9jcy5taWNyb3NvZnQuY29tL2VuLXVzL3R5cG9ncmFwaHkvb3BlbnR5cGUvc3BlYy9vczIjdXN3ZWlnaHRjbGFzc1xuICAgIFRoZSBudW1lcmljYWwgdmFsdWVzIDEwMCB0byA5MDAgcm91Z2hseSBjb3JyZXNwb25kIHRvIHRoZSBmb2xsb3dpbmcgY29tbW9uIHdlaWdodCBuYW1lczpcbiAgICAxMDAgICAgIFRoaW4gKEhhaXJsaW5lKVxuICAgIDIwMFx0ICAgIEV4dHJhIExpZ2h0IChVbHRyYSBMaWdodClcbiAgICAzMDBcdCAgICBMaWdodFxuICAgIDQwMFx0ICAgIE5vcm1hbFxuICAgIDUwMFx0ICAgIE1lZGl1bVxuICAgIDYwMFx0ICAgIFNlbWkgQm9sZCAoRGVtaSBCb2xkKVxuICAgIDcwMFx0ICAgIEJvbGRcbiAgICA4MDBcdCAgICBFeHRyYSBCb2xkIChVbHRyYSBCb2xkKVxuICAgIDkwMFx0ICAgIEJsYWNrIChIZWF2eSlcbioqL1xuQG1peGluIGV1aS1mb250LWZhbWlseSgpIHtcbiAgICBmb250LWZhbWlseTogdihldWktYmFzZS1mb250LWZhbWlseSk7XG4gICAgZm9udC1zaXplOiB2KGV1aS1iYXNlLWZvbnQtc2l6ZSk7XG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG59XG5AbWl4aW4gZXVpLWZvbnQtZmFtaWx5LWxpZ2h0KCkge1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICBmb250LXdlaWdodDogMzAwO1xufVxuQG1peGluIGV1aS1mb250LWZhbWlseS1ub3JtYWwoKSB7XG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG59XG5AbWl4aW4gZXVpLWZvbnQtZmFtaWx5LWl0YWxpYygpIHtcbiAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcbn1cbkBtaXhpbiBldWktZm9udC1mYW1pbHktYm9sZCgpIHtcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbn1cbkBtaXhpbiBldWktZm9udC1mYW1pbHktYm9sZC1pdGFsaWMoKSB7XG4gICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG59XG5cbkBtaXhpbiBldWktZm9udC1mYW1pbHktbW9ub3NwYWNlKCkge1xuICAgIGZvbnQtZmFtaWx5OiB2KGV1aS1iYXNlLWZvbnQtZmFtaWx5LW1vbm9zcGFjZSk7XG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG59XG4iLCI6cm9vdCB7XG4gICAgLy8gQ09MT1JTXG4gICAgQGVhY2ggJGNvbG9yLCAkc2hhZGVzIGluICRldWktYmFzZS10b2tlbnMtY29sb3JzIHtcbiAgICAgICAgQGVhY2ggJHNoYWRlLCAkdmFsdWUgaW4gJHNoYWRlcyB7XG4gICAgICAgICAgICAtLWV1aS1iYXNlLWNvbG9yLSN7JGNvbG9yICsgJy0nICsgJHNoYWRlfTogI3skdmFsdWV9O1xuICAgICAgICAgICAgLS1ldWktYmFzZS1jb2xvci0jeyRjb2xvciArICctJyArICRzaGFkZX0tcmdiOiAje3RvUkdCKCR2YWx1ZSl9O1xuICAgICAgICAgICAgLS1ldWktYmFzZS1jb2xvci0jeyRjb2xvciArICctJyArICRzaGFkZX0tY29udHJhc3Q6ICN7Z2V0Q29udHJhc3QoJHZhbHVlKX07XG4gICAgICAgICAgICAtLWV1aS1iYXNlLWNvbG9yLSN7JGNvbG9yICsgJy0nICsgJHNoYWRlfS1jb250cmFzdC1yZ2I6ICN7dG9SR0IoZ2V0Q29udHJhc3QoJHZhbHVlKSl9O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gREVGQVVMVFMgMTAwc1xuICAgIEBlYWNoICRjb2xvciwgJHZhbHVlIGluICRldWktYmFzZS10b2tlbnMtY29sb3JzLTEwMHMge1xuICAgICAgICAtLWV1aS1iYXNlLWNvbG9yLSN7JycgKyAkY29sb3J9OiAjeyR2YWx1ZX07XG4gICAgfVxuXG4gICAgLy8gT1RIRVIgQ09MT1JTXG4gICAgLS1ldWktYmFzZS1jb2xvci10ZXh0OiB2YXIoLS1ldWktYmFzZS1jb2xvci1ncmV5LTEwMCk7XG4gICAgLS1ldWktYmFzZS1jb2xvci1saW5rOiB2YXIoLS1ldWktYmFzZS1jb2xvci1wcmltYXJ5LTEwMCk7XG4gICAgLS1ldWktYmFzZS1jb2xvci1ibGFjazogYmxhY2s7XG4gICAgLS1ldWktYmFzZS1jb2xvci13aGl0ZTogd2hpdGU7XG4gICAgLS1ldWktYmFzZS1jb2xvcjogdmFyKC0tZXVpLWJhc2UtY29sb3ItZ3JleS0xMDApO1xuXG4gICAgLy8gRk9OVC1TSVpFU1xuICAgIC0tZXVpLWJhc2UtZm9udC1zaXplOiAxNnB4O1xuICAgIEBlYWNoICRmb250LXNpemUsICR2YWx1ZSBpbiAkZXVpLWJhc2UtdG9rZW5zLWZvbnQtc2l6ZXMge1xuICAgICAgICAtLWV1aS1iYXNlLWZvbnQtc2l6ZS0jeyRmb250LXNpemV9OiAjeyR2YWx1ZX07XG4gICAgfVxuXG4gICAgLy8gLy8gRk9OVFNcbiAgICAtLWV1aS1iYXNlLWZvbnQtZmFtaWx5OiAjeyRldWktYmFzZS1mb250LWZhbWlseX07XG4gICAgLS1ldWktYmFzZS1mb250LWZhbWlseS1pY29uczogI3skZXVpLWJhc2UtZm9udC1mYW1pbHktaWNvbnN9O1xuICAgIC0tZXVpLWJhc2UtZm9udC1mYW1pbHktbW9ub3NwYWNlOiAjeyRldWktYmFzZS1mb250LWZhbWlseS1tb25vc3BhY2V9O1xuXG4gICAgLy8gSUNPTi1TSVpFU1xuICAgIC0tZXVpLWJhc2UtaWNvbi1zaXplOiAxLjVyZW07XG4gICAgQGVhY2ggJGljb24tc2l6ZSwgJHZhbHVlIGluICRldWktYmFzZS10b2tlbnMtaWNvbi1zaXplcyB7XG4gICAgICAgIC0tZXVpLWJhc2UtaWNvbi1zaXplLSN7JGljb24tc2l6ZX06ICN7JHZhbHVlfTtcbiAgICB9XG5cbiAgICBAZWFjaCAkZmFtaWx5LCAkc2l6ZXMgaW4gJGV1aS1iYXNlLXRva2Vucy1mb250cyB7XG4gICAgICAgICRmYW1pbHktdHlwZTogJGZhbWlseSArICctJztcbiAgICAgICAgQGlmKCRmYW1pbHkgPT0gdWkpIHtcbiAgICAgICAgICAgICRmYW1pbHktdHlwZTogJyc7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkc2l6ZSwgJGRlZmluaXRpb24gaW4gJHNpemVzIHtcbiAgICAgICAgICAgIC0tZXVpLWJhc2UtZm9udC0jeyRmYW1pbHktdHlwZX0jeyRzaXplfTogI3skZGVmaW5pdGlvbn07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBTUEFDSU5HU1xuICAgIEBlYWNoICRzcGFjaW5nLCAkdmFsdWUgaW4gJGV1aS1iYXNlLXRva2Vucy1zcGFjaW5ncyB7XG4gICAgICAgIC0tZXVpLWJhc2Utc3BhY2luZy0jeyRzcGFjaW5nfTogI3skdmFsdWV9O1xuICAgIH1cblxuICAgIC8vIFNIQURPV1NcbiAgICBAZWFjaCAkc2hhZG93LCAkdmFsdWUgaW4gJGV1aS1iYXNlLXRva2Vucy1zaGFkb3dzIHtcbiAgICAgICAgLS1ldWktYmFzZS1zaGFkb3ctI3skc2hhZG93fTogI3skdmFsdWV9O1xuICAgIH1cblxuICAgIC8vIFotSU5ERVhFU1xuICAgIEBlYWNoICRpZHgsICR2YWx1ZSBpbiAkZXVpLWJhc2UtdG9rZW5zLXotaW5kZXhlcyB7XG4gICAgICAgIC0tZXVpLWJhc2Utei1pbmRleC0jeyRpZHh9OiAjeyR2YWx1ZX07XG4gICAgfVxufVxuIiwiOnJvb3Qge1xuICAgIC0tZXVpLWJhc2UtbGluZS1oZWlnaHQ6IDEuMjU7XG4gICAgLS1ldWktYmFzZS1zY2FsZS1mYWN0b3I6IDE7XG4gICAgLS1ldWktYmFzZS1kaXNhYmxlZC1vcGFjaXR5OiAwLjQ1O1xuXG4gICAgLS1ldWktYmFzZS1ib3JkZXItcmFkaXVzOiAzcHg7XG5cbiAgICAtLWV1aS1iYXNlLWJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWV1aS1jb2xvci1ncmV5LWxpZ2h0ZXIpO1xuICAgIC0tZXVpLWJhc2UtYm9yZGVyLWxpZ2h0OiAxcHggc29saWQgdmFyKC0tZXVpLWNvbG9yLWdyZXktbGlnaHQpO1xuICAgIC0tZXVpLWJhc2UtYm9yZGVyLWxpZ2h0ZXI6IDFweCBzb2xpZCB2YXIoLS1ldWktY29sb3ItZ3JleS1saWdodGVyKTtcbiAgICAtLWV1aS1iYXNlLWJvcmRlci1saWdodGVzdDogMXB4IHNvbGlkIHZhcigtLWV1aS1jb2xvci1ncmV5LWxpZ2h0ZXN0KTtcblxuICAgIC8vIEFuaW1hdGlvbnMgcmVsYXRlZFxuICAgIC0tZXVpLWJhc2UtYW5pbWF0aW9uLWxpbmVhci1vdXQtc2xvdy1pbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLCAwLCAwLjIsIDEpO1xuICAgIC0tZXVpLWJhc2UtYW5pbWF0aW9uLWZhc3Qtb3V0LXNsb3ctaW4tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpO1xuICAgIC0tZXVpLWJhc2UtYW5pbWF0aW9uLWZhc3Qtb3V0LWxpbmVhci1pbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjQsIDAsIDEsIDEpO1xuICAgIC0tZXVpLWJhc2UtYW5pbWF0aW9uLWVhc2UtdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4yNSwgMC4xLCAwLjI1LCAxKTsgICAgLy8gZWFzZVxuICAgIC0tZXVpLWJhc2UtYW5pbWF0aW9uLWVhc2UtaW4tb3V0LXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbi1vdXQ7XG5cbiAgICAtLWV1aS1iYXNlLWFuaW1hdGlvbi1kdXJhdGlvbi1mYXN0OiAwLjI1cztcbiAgICAtLWV1aS1iYXNlLWFuaW1hdGlvbi1kdXJhdGlvbi1tZWRpdW06IDAuNXM7XG4gICAgLS1ldWktYmFzZS1hbmltYXRpb24tZHVyYXRpb24tc2xvdzogMXM7XG4gICAgLS1ldWktYmFzZS1hbmltYXRpb24tZHVyYXRpb24tYmFzZTogNTAwbXM7XG4gICAgLS1ldWktYmFzZS1hbmltYXRpb24tZHVyYXRpb246IHZhcigtLWV1aS1iYXNlLWFuaW1hdGlvbi1kdXJhdGlvbi1iYXNlKTtcblxuICAgIC0tZXVpLWJhc2UtYW5pbWF0aW9uLXRyYW5zaXRpb24tYmFzZTogYWxsIDAuMnMgI3t2YXIoLS1ldWktYmFzZS1hbmltYXRpb24tbGluZWFyLW91dC1zbG93LWluLXRpbWluZy1mdW5jdGlvbil9O1xuICAgIC0tZXVpLWJhc2UtYW5pbWF0aW9uLXRyYW5zaXRpb24tZWFzZTogYWxsIDAuMnMgI3t2YXIoLS1ldWktYmFzZS1hbmltYXRpb24tZWFzZS10aW1pbmctZnVuY3Rpb24pfTtcbiAgICAtLWV1aS1iYXNlLWFuaW1hdGlvbi10cmFuc2l0aW9uLWVhc2UtaW4tb3V0OiBhbGwgMC4ycyAje3ZhcigtLWV1aS1iYXNlLWFuaW1hdGlvbi1lYXNlLWluLW91dC10aW1pbmctZnVuY3Rpb24pfTtcbiAgICAtLWV1aS1iYXNlLWFuaW1hdGlvbi10cmFuc2l0aW9uLWVhc2UtaW4tb3V0LTFzOiBhbGwgMXMgI3t2YXIoLS1ldWktYmFzZS1hbmltYXRpb24tZWFzZS1pbi1vdXQtdGltaW5nLWZ1bmN0aW9uKX07XG5cbiAgICAtLWV1aS1iYXNlLWFuaW1hdGlvbi1kZWxheTogMHM7XG4gICAgLS1ldWktYmFzZS1hbmltYXRpb24tZGlyZWN0aW9uOiBub3JtYWw7XG4gICAgLS1ldWktYmFzZS1hbmltYXRpb24tZmlsbC1tb2RlOiBmb3J3YXJkczsgICAgLy8gdGhpcyBwcmV2ZW50cyB0aGUgYW5pbWF0aW9uIGZyb20gcmVzdGFydGluZ1xuICAgIC0tZXVpLWJhc2UtYW5pbWF0aW9uLWJhY2tncm91bmQtY29sb3I6IHZhcigtLWV1aS1iYXNlLWNvbG9yLXByaW1hcnktNTApOyAgLy8gI2NmY2ZkZjtcblxuICAgIC8vIEV4dHJhIGNvbG9yc1xuICAgIC0tZXVpLWJhc2UtY29sb3ItYWNjZXNzaWJsZS1mb2N1czogdmFyKC0tZXVpLWJhc2UtY29sb3ItYWNjZW50LTExMCk7ICAgIC8vIENhcmJvbiBibHVlOiAjMGY2MmZlO1xufVxuIiwiOnJvb3Qge1xuICAgIC8vIGVVSSBBUFBcbiAgICAtLWV1aS1hcHAtaGVhZGVyLWhlaWdodC1kZWZhdWx0OiAwcHg7XG4gICAgLS1ldWktYXBwLWhlYWRlci1oZWlnaHQ6IDBweDtcbiAgICAtLWV1aS1hcHAtaGVhZGVyLWhlaWdodC1hY3RpdmU6IDkwcHg7XG4gICAgLS1ldWktYXBwLWhlYWRlci1oZWlnaHQtc2hyaW5rOiAwcHg7XG5cbiAgICAtLWV1aS1hcHAtdG9wLW1lc3NhZ2UtaGVpZ2h0LWRlZmF1bHQ6IDBweDtcbiAgICAtLWV1aS1hcHAtdG9wLW1lc3NhZ2UtaGVpZ2h0OiAwcHg7XG4gICAgLS1ldWktYXBwLXRvcC1tZXNzYWdlLWhlaWdodC1hY3RpdmU6IDQycHg7XG5cbiAgICAtLWV1aS1hcHAtdG9vbGJhci1oZWlnaHQtZGVmYXVsdDogMHB4O1xuICAgIC0tZXVpLWFwcC10b29sYmFyLWhlaWdodDogMHB4O1xuICAgIC0tZXVpLWFwcC10b29sYmFyLWhlaWdodC1hY3RpdmU6IDU1cHg7XG5cbiAgICAtLWV1aS1hcHAtc2lkZWJhci13aWR0aC1kZWZhdWx0OiAwcHg7XG4gICAgLS1ldWktYXBwLXNpZGViYXItd2lkdGg6IDBweDtcbiAgICAtLWV1aS1hcHAtc2lkZWJhci13aWR0aC1hY3RpdmU6IDMwMHB4O1xuICAgIC0tZXVpLWFwcC1zaWRlYmFyLXdpZHRoLWNsb3NlLWRlZmF1bHQ6IDBweDtcbiAgICAtLWV1aS1hcHAtc2lkZWJhci13aWR0aC1jbG9zZTogMHB4O1xuICAgIC0tZXVpLWFwcC1zaWRlYmFyLXdpZHRoLWNsb3NlLWFjdGl2ZTogNjRweDtcbiAgICAtLWV1aS1hcHAtc2lkZWJhci1oZWFkZXItaGVpZ2h0OiAwcHg7XG4gICAgLS1ldWktYXBwLXNpZGViYXItaGVhZGVyLWhlaWdodC1kZWZhdWx0OiAwcHg7XG4gICAgLS1ldWktYXBwLXNpZGViYXItaGVhZGVyLWhlaWdodC1hY3RpdmU6IDQ4cHg7XG4gICAgLS1ldWktYXBwLXNpZGViYXItZm9vdGVyLWhlaWdodDogMHB4O1xuICAgIC0tZXVpLWFwcC1zaWRlYmFyLWZvb3Rlci1oZWlnaHQtZGVmYXVsdDogMHB4O1xuICAgIC0tZXVpLWFwcC1zaWRlYmFyLWZvb3Rlci1oZWlnaHQtYWN0aXZlOiAyNHB4O1xuXG4gICAgLy8gUGFnZSBMYXlvdXRcbiAgICAtLWV1aS1wYWdlLWhlYWRlci13aXRoLXN1YnRpdGxlLWhlaWdodDogNHJlbTtcbiAgICAtLWV1aS1wYWdlLWhlYWRlci13aXRob3V0LXN1YnRpdGxlLWhlaWdodDogMnJlbTtcblxuICAgIC0tZXVpLXBhZ2UtY29sdW1uLS1zaXplLXM6IDUwcHg7XG4gICAgLS1ldWktcGFnZS1jb2x1bW4tLXNpemUtbTogMTUwcHg7XG4gICAgLS1ldWktcGFnZS1jb2x1bW4tLXNpemUtbDogMjAwcHg7XG4gICAgLS1ldWktcGFnZS1jb2x1bW4tLXNpemUteGw6IDI1MHB4O1xuICAgIC0tZXVpLXBhZ2UtY29sdW1uLS1zaXplLXh4bDogMzAwcHg7XG4gICAgLS1ldWktcGFnZS1jb2x1bW4tLXNpemUteHh4bDogMzUwcHg7XG4gICAgLS1ldWktcGFnZS1jb2x1bW4tZm9vdGVyLWhlaWdodDogMy41cmVtO1xuXG4gICAgLy8gTWlzY1xuICAgIC0tZXVpLWJvcmRlci1zdGF0ZS13aWR0aDogNnB4O1xuXG4gICAgLy8gQ29sb3JzXG4gICAgLy8gZVVJIEFwcCBlbGVtZW50c1xuICAgIC0tZXVpLWFwcC1oZWFkZXItYmctY29sb3I6IHZhcigtLWV1aS1iYXNlLWNvbG9yLXdoaXRlKTtcbiAgICAtLWV1aS1hcHAtaGVhZGVyLXRpdGxlLWNvbG9yOiB2YXIoLS1ldWktYmFzZS1jb2xvci1ncmV5LTEwMCk7XG4gICAgLS1ldWktYXBwLWhlYWRlci1zdWJ0aXRsZS1jb2xvcjogdmFyKC0tZXVpLWJhc2UtY29sb3ItZ3JleS03NSk7XG5cbiAgICAtLWV1aS1hcHAtdG9vbGJhci1jb2xvcjogdmFyKC0tZXVpLWJhc2UtY29sb3Itd2hpdGUpO1xuICAgIC0tZXVpLWFwcC10b29sYmFyLWJnLWNvbG9yOiB2YXIoLS1ldWktYmFzZS1jb2xvci1wcmltYXJ5LTEwMCk7XG4gICAgLS1ldWktYXBwLXRvb2xiYXItYm9yZGVyLWJvdHRvbS1jb2xvcjogdmFyKC0tZXVpLWJhc2UtY29sb3ItcHJpbWFyeS0yNSk7XG5cbiAgICAtLWV1aS1hcHAtc2lkZWJhci1iZy1jb2xvcjogdmFyKC0tZXVpLWJhc2UtY29sb3ItZ3JleS0yKTtcbiAgICAtLWV1aS1hcHAtc2lkZWJhci1ib3JkZXItcmlnaHQtY29sb3I6ICNmMmY0Zjk7XG5cbiAgICAtLWV1aS1hcHAtYm9keS1iZy1jb2xvcjogdmFyKC0tZXVpLWJhc2UtY29sb3ItZ3JleS01KTtcbiAgICAtLWV1aS1hcHAtbWFpbi1iZy1jb2xvcjogdmFyKC0tZXVpLWJhc2UtY29sb3ItZ3JleS0yKTtcblxuICAgIC0tZXVpLWFwcC1mb290ZXItY29sb3I6IHZhcigtLWV1aS1iYXNlLWNvbG9yLWZvbnQpO1xuICAgIC0tZXVpLWFwcC1mb290ZXItYmctY29sb3I6IHZhcigtLWV1aS1iYXNlLWNvbG9yLWdyZXktMik7XG4gICAgLS1ldWktYXBwLWZvb3Rlci1ib3JkZXItdG9wLWNvbG9yOiAjZThlYmYxO1xufVxuXG4ueHMsIC5zbSB7XG4gICAgLS1ldWktYXBwLWhlYWRlci1oZWlnaHQ6IDBweDtcbn1cbiIsIi5ldWktaWNvbi1zdmcge1xuICAgIGZpbGw6IGN1cnJlbnRDb2xvcjtcbiAgICBtYXJnaW46IDA7XG4gICAgdHJhbnNmb3JtOiBzY2FsZVgoMSkgc2NhbGVZKDEpIHJvdGF0ZVooMGRlZyk7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDMwMG1zIGVhc2UtaW4tb3V0O1xufVxuQGVhY2ggJHNpemUsICR2YWx1ZSBpbiAkZXVpLWJhc2UtdG9rZW5zLWljb24tc2l6ZXMge1xuICAgIC5ldWktaWNvbi1zdmctLXNpemUtI3skc2l6ZX0ge1xuICAgICAgICBoZWlnaHQ6ICN7JHZhbHVlfTtcbiAgICAgICAgd2lkdGg6ICN7JHZhbHVlfTtcbiAgICB9O1xufVxuQGVhY2ggJGNvbG9yLCAkc2hhZGVzIGluICRldWktYmFzZS10b2tlbnMtY29sb3JzIHtcbiAgICBAZWFjaCAkc2hhZGUsICR2YWx1ZSBpbiAkc2hhZGVzIHtcbiAgICAgICAgLmV1aS1pY29uLXN2Zy0tY29sb3ItI3skY29sb3IgKyAnLScgKyAkc2hhZGV9IHtcbiAgICAgICAgICAgIGNvbG9yOiAjeyR2YWx1ZX07XG4gICAgICAgICAgICBmaWxsOiAjeyR2YWx1ZX07XG4gICAgICAgIH07XG4gICAgfVxufVxuIiwiLy8gVE9ETyB2MTUgcmVtb3ZlIC8gcmVwbGFjZSBpbiBzaG93Y3phc2VcblxuLmZsZXgtY29udGFpbmVyIHtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgd2lkdGg6IDEwMCU7XG59XG5cbi8vIHYgdiB2ICBJRTExIEZJWEVTIC0+IFRPIEJFIERFUFJFQ0FURUQgIHYgdiB2XG4vLyBGbGV4Ym94IC8gQm9vdHN0cmFwIG9idmlvdXMgb3ZlcnJpZGVzIGZvciBJRS9WZW5kb3JzXG4uZC1mbGV4IHtcbiAgICBkaXNwbGF5OiAtd2Via2l0LWJveCAhaW1wb3J0YW50O1xuICAgIGRpc3BsYXk6IC13ZWJraXQtZmxleCAhaW1wb3J0YW50O1xuICAgIGRpc3BsYXk6IC1tcy1mbGV4Ym94ICFpbXBvcnRhbnQ7XG4gICAgZGlzcGxheTogZmxleCAhaW1wb3J0YW50O1xufVxuXG4vLyBMaWtlIC5jb2wgZGVmaW5pdGlvbiB3aXRoIElFIGZpeFxuLnV4LWNvbCB7XG4gICAgLy8gQSBwcmVmZXJyZWQgc2l6ZSBvZiAwIG11c3QgaGF2ZSBhIHVuaXQgdG8gYXZvaWQgYmVpbmcgaW50ZXJwcmV0ZWQgYXMgYSBmbGV4aWJpbGl0eS5cbiAgICAvLyBEZWZhdWx0cyB0byAwJSB3aGVuIG9taXR0ZWQuXG4gICAgLy8gU291cmNlOiBNRE4gJiBNU0ROXG4gICAgZmxleDogMSAwIGF1dG87XG59XG4iLCIvLyBUT0RPIHYxNSB0cmFuc2ZlciB0byBzdHlsZXMgYmFzZSA/XG5cbi8vIEhFQURJTkdTXG5oMSxcbmgyLFxuaDMsXG5oNCxcbmg1LFxuaDYsXG4uaDEsXG4uaDIsXG4uaDMsXG4uaDQsXG4uaDUsXG4uaDYsXG4uaDcsXG4uaDgsXG4uaDkge1xuICAgIEBpbmNsdWRlIGV1aS1mb250LWZhbWlseSgpO1xuICAgIGNvbG9yOiBpbmhlcml0O1xuICAgIC8vIGZvbnQtZmFtaWx5OiB2KGV1aS1iYXNlLWZvbnQtZmFtaWx5KTtcbiAgICAvLyBmb250LXdlaWdodDogbm9ybWFsO1xufVxuXG5oMSxcbi5oMSB7XG4gICAgQGluY2x1ZGUgZXVpLWZvbnQoNHhsLCB1aSk7XG4gICAgbGluZS1oZWlnaHQ6IHYoZXVpLWJhc2UtbGluZS1oZWlnaHQpO1xufVxuXG5oMixcbi5oMiB7XG4gICAgQGluY2x1ZGUgZXVpLWZvbnQoM3hsLCB1aSk7XG4gICAgbGluZS1oZWlnaHQ6IHYoZXVpLWJhc2UtbGluZS1oZWlnaHQpO1xufVxuXG5oMyxcbi5oMyB7XG4gICAgQGluY2x1ZGUgZXVpLWZvbnQoMnhsLCB1aSk7XG4gICAgbGluZS1oZWlnaHQ6IHYoZXVpLWJhc2UtbGluZS1oZWlnaHQpO1xufVxuXG5oNCxcbi5oNCB7XG4gICAgQGluY2x1ZGUgZXVpLWZvbnQoeGwsIHVpKTtcbiAgICBsaW5lLWhlaWdodDogdihldWktYmFzZS1saW5lLWhlaWdodCk7XG59XG5cbmg1LFxuLmg1IHtcbiAgICBAaW5jbHVkZSBldWktZm9udChsLCB1aSk7XG4gICAgbGluZS1oZWlnaHQ6IHYoZXVpLWJhc2UtbGluZS1oZWlnaHQpO1xufVxuXG5oNixcbi5oNiB7XG4gICAgQGluY2x1ZGUgZXVpLWZvbnQobSwgdWkpO1xuICAgIGxpbmUtaGVpZ2h0OiB2KGV1aS1iYXNlLWxpbmUtaGVpZ2h0KTtcbn1cblxuLmg3LFxuLnNtYWxsIHtcbiAgICBAaW5jbHVkZSBldWktZm9udChzLCB1aSk7XG4gICAgbGluZS1oZWlnaHQ6IHYoZXVpLWJhc2UtbGluZS1oZWlnaHQpO1xufVxuXG4uaDgsXG4uc21hbGxlciB7XG4gICAgQGluY2x1ZGUgZXVpLWZvbnQoeHMsIHVpKTtcbiAgICBsaW5lLWhlaWdodDogdihldWktYmFzZS1saW5lLWhlaWdodCk7XG59XG5cbi5oOSxcbi5zbWFsbGVzdCxcbi50aW55IHtcbiAgICBAaW5jbHVkZSBldWktZm9udCgyeHMsIHVpKTtcbiAgICBsaW5lLWhlaWdodDogdihldWktYmFzZS1saW5lLWhlaWdodCk7XG59XG5cblxuYSxcbmE6bm90KFtocmVmXSk6bm90KFt0YWJpbmRleF0pIHtcbiAgICBjb2xvcjogdihldWktYmFzZS1jb2xvci1saW5rKTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAmOmhvdmVyLFxuICAgICY6Zm9jdXMge1xuICAgICAgICBjb2xvcjogdihldWktYmFzZS1jb2xvci1saW5rKTtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgfVxufVxuXG5hIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG5cbmE6Zm9jdXMge1xuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xufVxuXG5hYmJyW3RpdGxlXSB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyAgLy8gVE9ETzogdW5kZXJsaW5lIGRvdHRlZCBpcyB0aGUgZGVmYXVsdCBhbmQgcmVjb21tZW5kZWQgdXNhZ2Vcbn1cblxuLmxhYmVsLCBhYmJyLCBibG9ja3F1b3RlLCBkZWwsIGxhYmVsLCBtYXJrLCBwIHtcbiAgICBmb250LXNpemU6IHYoZXVpLWJhc2UtZm9udC1zaXplKTtcbn1cblxubGFiZWwge1xuICAgIG1hcmdpbi1ib3R0b206IHYoZXVpLWJhc2Utc3BhY2luZy14cyk7XG59XG4iLCJAbWl4aW4gZXVpLWZvbnQoJHNpemU6IG0sICRmYW1pbHk6IHVpKSB7XG4gICAgJHNlbGVjdGVkLWZhbWlseTogbWFwLWdldCgkZXVpLWJhc2UtdG9rZW5zLWZvbnRzLCAkZmFtaWx5KTtcbiAgICAkc2VsZWN0ZWQtZm9udC1kZWZpbml0aW9uOiBtYXAtZ2V0KCRzZWxlY3RlZC1mYW1pbHksICRzaXplKTtcblxuICAgIGZvbnQ6ICRzZWxlY3RlZC1mb250LWRlZmluaXRpb247XG59XG4iLCIvLyBlVUkgMTMrIG9ubHlcbi5ldWktaW5wdXQtbWF4bGVuZ3RoLXdyYXBwZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB3aWR0aDogMTAwJTtcblxuICAgIC5ldWktaW5wdXQtbWF4bGVuZ3RoIHtcbiAgICAgICAgQGluY2x1ZGUgZXVpLWZvbnQoeHMsIHVpKTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdihldWktYmFzZS1jb2xvci1ncmV5LTEwKTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdihldWktYmFzZS1jb2xvci1ncmV5LTUwKTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogdihldWktYmFzZS1ib3JkZXItcmFkaXVzKTtcbiAgICAgICAgY29sb3I6IHYoZXVpLWJhc2UtY29sb3ItYmxhY2spO1xuICAgICAgICBwYWRkaW5nOiAwIHYoZXVpLWJhc2Utc3BhY2luZy0yeHMpO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHJpZ2h0OiBjYWxjKC0xICogI3t2KGV1aS1iYXNlLXNwYWNpbmcteHMpfSk7XG4gICAgICAgIHRvcDogY2FsYygtMSAqICN7dihldWktYmFzZS1zcGFjaW5nLXhzKX0pO1xuICAgICAgICB6LWluZGV4OiB2KGV1aS1iYXNlLXotaW5kZXgtaW5wdXQtbWF4bGVuZ3RoKTtcblxuICAgICAgICAmLS1pbnZhbGlkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHYoZXVpLWJhc2UtY29sb3ItZGFuZ2VyLTEwMCk7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IHYoZXVpLWJhc2UtY29sb3ItZGFuZ2VyLTEwMCk7XG4gICAgICAgICAgICBjb2xvcjogdihldWktYmFzZS1jb2xvci13aGl0ZSk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCJodG1sIHtcbiAgICAvLyBFeHBvc2VkIENTUyB2YXJzXG4gICAgLS1ldWktaHRtbC1mb250LXNpemU6IHZhcigtLWV1aS1iYXNlLWZvbnQtc2l6ZSk7XG4gICAgLS1ldWktaHRtbC1saW5lLWhlaWdodDogdmFyKC0tZXVpLWJhc2UtbGluZS1oZWlnaHQpO1xuXG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGZvbnQtc2l6ZTogdihldWktaHRtbC1mb250LXNpemUpO1xuICAgIGxpbmUtaGVpZ2h0OiB2KGV1aS1odG1sLWxpbmUtaGVpZ2h0KTtcbn1cbiIsImJvZHkge1xuICAgIC8vIEV4cG9zZWQgQ1NTIHZhcnNcbiAgICAtLWV1aS1ib2R5LWJnLWNvbG9yOiB2YXIoLS1ldWktYXBwLWJvZHktYmctY29sb3IpO1xuICAgIC0tZXVpLWJvZHktY29sb3I6IHZhcigtLWV1aS1iYXNlLWNvbG9yKTtcbiAgICAtLWV1aS1ib2R5LWZvbnQtZmFtaWx5OiB2YXIoLS1ldWktYmFzZS1mb250LWZhbWlseSk7XG4gICAgLS1ldWktYm9keS1mb250LXNpemU6IHZhcigtLWV1aS1iYXNlLWZvbnQtc2l6ZSk7XG4gICAgLS1ldWktYm9keS1saW5lLWhlaWdodDogdmFyKC0tZXVpLWJhc2UtbGluZS1oZWlnaHQpO1xuXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdihldWktYm9keS1iZy1jb2xvcik7XG4gICAgY29sb3I6IHYoZXVpLWJvZHktY29sb3IpO1xuICAgIGZvbnQtZmFtaWx5OiB2KGV1aS1ib2R5LWZvbnQtZmFtaWx5KTtcbiAgICBmb250LWZlYXR1cmUtc2V0dGluZ3M6ICdsaWdhJztcbiAgICBmb250LXNpemU6IHYoZXVpLWJvZHktZm9udC1zaXplKTtcbiAgICAtbW96LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgbGluZS1oZWlnaHQ6IHYoZXVpLWJvZHktbGluZS1oZWlnaHQpO1xuICAgIG1hcmdpbjogMDtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIHRleHQtcmVuZGVyaW5nOiBvcHRpbWl6ZUxlZ2liaWxpdHk7XG59XG4iLCIvLyBNYWtlIHZpZXdwb3J0IHJlc3BvbnNpdmVcbi8vXG4vLyBAdmlld3BvcnQgaXMgbmVlZGVkIGJlY2F1c2UgSUUgMTArIGRvZXNuJ3QgaG9ub3IgPG1ldGEgbmFtZT1cInZpZXdwb3J0XCI+IGluXG4vLyBzb21lIGNhc2VzLiBTZWUgaHR0cHM6Ly90aW1rYWRsZWMuY29tLzIwMTIvMTAvaWUxMC1zbmFwLW1vZGUtYW5kLXJlc3BvbnNpdmUtZGVzaWduLy5cbi8vIEV2ZW50dWFsbHkgQHZpZXdwb3J0IHdpbGwgcmVwbGFjZSA8bWV0YSBuYW1lPVwidmlld3BvcnRcIj4uXG4vL1xuLy8gSG93ZXZlciwgYGRldmljZS13aWR0aGAgaXMgYnJva2VuIG9uIElFIDEwIG9uIFdpbmRvd3MgKFBob25lKSA4LFxuLy8gKHNlZSBodHRwczovL3RpbWthZGxlYy5jb20vMjAxMy8wMS93aW5kb3dzLXBob25lLTgtYW5kLWRldmljZS13aWR0aC8gYW5kIGh0dHBzOi8vZ2l0aHViLmNvbS90d2JzL2Jvb3RzdHJhcC9pc3N1ZXMvMTA0OTcpXG4vLyBhbmQgdGhlIGZpeCBmb3IgdGhhdCBpbnZvbHZlcyBhIHNuaXBwZXQgb2YgSmF2YVNjcmlwdCB0byBzbmlmZiB0aGUgdXNlciBhZ2VudFxuLy8gYW5kIGFwcGx5IHNvbWUgY29uZGl0aW9uYWwgQ1NTLlxuLy9cbi8vIFNlZSBodHRwczovL2dldGJvb3RzdHJhcC5jb20vZ2V0dGluZy1zdGFydGVkLyNzdXBwb3J0LWllMTAtd2lkdGggZm9yIHRoZSByZWxldmFudCBoYWNrLlxuLy9cbi8vIFdyYXAgYEB2aWV3cG9ydGAgd2l0aCBgQGF0LXJvb3RgIGZvciB3aGVuIGZvbGtzIGRvIGEgbmVzdGVkIGltcG9ydCAoZS5nLixcbi8vIGAuY2xhc3MtbmFtZSB7IEBpbXBvcnQgXCJib290c3RyYXBcIjsgfWApLlxuQGF0LXJvb3Qge1xuICAgIEAtbXMtdmlld3BvcnQge1xuICAgICAgICB3aWR0aDogZGV2aWNlLXdpZHRoO1xuICAgIH1cbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgICNCT1gtU0laSU5HXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIE1vcmUgc2Vuc2libGUgZGVmYXVsdCBib3gtc2l6aW5nOlxuICogY3NzLXRyaWNrcy5jb20vaW5oZXJpdGluZy1ib3gtc2l6aW5nLXByb2JhYmx5LXNsaWdodGx5LWJldHRlci1iZXN0LXByYWN0aWNlXG4gKi9cblxuaHRtbCB7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cblxuKiB7XG4gICAgJixcbiAgICAmOjpiZWZvcmUsXG4gICAgJjo6YWZ0ZXIge1xuICAgICAgICBib3gtc2l6aW5nOiBpbmhlcml0O1xuICAgIH1cbn1cblxuLy8gQXZvaWQgMzAwbXMgY2xpY2sgZGVsYXkgb24gdG91Y2ggZGV2aWNlcyB0aGF0IHN1cHBvcnQgdGhlIGB0b3VjaC1hY3Rpb25gIENTUyBwcm9wZXJ0eS5cbi8vXG4vLyBJbiBwYXJ0aWN1bGFyLCB1bmxpa2UgbW9zdCBvdGhlciBicm93c2VycywgSUUxMStFZGdlIG9uIFdpbmRvd3MgMTAgb24gdG91Y2ggZGV2aWNlcyBhbmQgSUUgTW9iaWxlIDEwLTExXG4vLyBET04nVCByZW1vdmUgdGhlIGNsaWNrIGRlbGF5IHdoZW4gYDxtZXRhIG5hbWU9XCJ2aWV3cG9ydFwiIGNvbnRlbnQ9XCJ3aWR0aD1kZXZpY2Utd2lkdGhcIj5gIGlzIHByZXNlbnQuXG4vLyBIb3dldmVyLCB0aGV5IERPIHN1cHBvcnQgcmVtb3ZpbmcgdGhlIGNsaWNrIGRlbGF5IHZpYSBgdG91Y2gtYWN0aW9uOiBtYW5pcHVsYXRpb25gLlxuLy8gU2VlOlxuLy8gKiBodHRwczovL3Y0LWFscGhhLmdldGJvb3RzdHJhcC5jb20vY29udGVudC9yZWJvb3QvI2NsaWNrLWRlbGF5LW9wdGltaXphdGlvbi1mb3ItdG91Y2hcbi8vICogaHR0cDovL2Nhbml1c2UuY29tLyNmZWF0PWNzcy10b3VjaC1hY3Rpb25cbi8vICogaHR0cHM6Ly9wYXRyaWNraGxhdWtlLmdpdGh1Yi5pby90b3VjaC90ZXN0cy9yZXN1bHRzLyNzdXBwcmVzc2luZy0zMDBtcy1kZWxheVxuXG5hLFxuYXJlYSxcbmJ1dHRvbixcbltyb2xlPVwiYnV0dG9uXCJdLFxuaW5wdXQsXG5sYWJlbCxcbnNlbGVjdCxcbnN1bW1hcnksXG50ZXh0YXJlYSB7XG4gICAgdG91Y2gtYWN0aW9uOiBtYW5pcHVsYXRpb247XG59XG5cbi8vIFN1cHByZXNzIHRoZSBmb2N1cyBvdXRsaW5lIG9uIGVsZW1lbnRzIHRoYXQgY2Fubm90IGJlIGFjY2Vzc2VkIHZpYSBrZXlib2FyZC5cbi8vIFRoaXMgcHJldmVudHMgYW4gdW53YW50ZWQgZm9jdXMgb3V0bGluZSBmcm9tIGFwcGVhcmluZyBhcm91bmQgZWxlbWVudHMgdGhhdFxuLy8gbWlnaHQgc3RpbGwgcmVzcG9uZCB0byBwb2ludGVyIGV2ZW50cy5cbi8vXG4vLyBDcmVkaXQ6IGh0dHBzOi8vZ2l0aHViLmNvbS9zdWl0Y3NzL2Jhc2Vcblt0YWJpbmRleD1cIi0xXCJdOmZvY3VzIHtcbiAgICBvdXRsaW5lOiBub25lICFpbXBvcnRhbnQ7XG59XG5cbi8vIEFsd2F5cyBoaWRlIGFuIGVsZW1lbnQgd2l0aCB0aGUgYGhpZGRlbmAgSFRNTCBhdHRyaWJ1dGUgKGZyb20gUHVyZUNTUykuXG5baGlkZGVuXSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xufVxuXG5wLFxubGFiZWwsXG4ubGFiZWwsXG5ibG9ja3F1b3RlLFxuYWJicixcbm1hcmssXG5kZWwge1xuICAgIGZvbnQtc2l6ZTogdihldWktYmFzZS1mb250LXNpemUpO1xufVxuXG4ubGFiZWwsXG5sYWJlbCB7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsgICAvLyBEbyBOT1QgY2hhbmdlIVxuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIHBhZGRpbmctcmlnaHQ6IHYoZXVpLWJhc2Utc3BhY2luZy1tKTsgIC8vIEZvciBpbmxpbmUgZGlzcGxheVxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgICAgIC8vIE1hbmRhdG9yeSEgRG8gTk9UIGNoYW5nZSFcbn1cblxuZW0ge1xuICAgIC8vZm9udC1mYW1pbHk6IHYoZXVpLWZvbnQtZmFtaWx5LWl0YWxpYyk7IC8vIGRvIE5PVCB1c2UgbWl4aW4gaGVyZSFcbiAgICBmb250LXN0eWxlOiBpdGFsaWM7XG59XG5cbm9wdGdyb3VwLFxuc3Ryb25nLFxuYiB7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG5cbiAgICAmIGksXG4gICAgJiBlbSB7XG4gICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICB9XG59XG5cbmNvZGUsXG5rYmQsXG5wcmUsXG5zYW1wIHtcbiAgICBmb250LXNpemU6IHYoZXVpLWJhc2UtZm9udC1zaXplKTtcbiAgICBAaW5jbHVkZSBldWktZm9udC1mYW1pbHktbW9ub3NwYWNlO1xufVxuXG5jb2RlIHtcbiAgICBjb2xvcjogI2NjMzY3YjsgICAgIC8vIFdDQUcyIEFBIGNvbnRyYXN0IHJhdGlvIGNvbXBsaWFudDogNC41OVxuICAgIGZvbnQtc2l6ZTogOTUlO1xuICAgIHdvcmQtd3JhcDogYnJlYWstd29yZDtcbn1cblxuc21hbGwge1xuICAgIGZvbnQtc2l6ZTogODAlO1xufVxuXG5rYmQge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHYoZXVpLWJhc2UtY29sb3ItZ3JleS03NSk7ICAgIC8vIFdDQUcyIEFBIGNvbXBsaWFudFxuICAgIGJvcmRlci1yYWRpdXM6IHYoZXVpLWJhc2UtYm9yZGVyLXJhZGl1cyk7XG4gICAgY29sb3I6IHYoZXVpLWJhc2UtY29sb3Itd2hpdGUpO1xuICAgIGZvbnQtc2l6ZTogdihldWktYmFzZS1mb250LXNpemUtcyk7XG4gICAgcGFkZGluZzogMXB4IHYoZXVpLWJhc2Utc3BhY2luZy0yeHMpO1xufVxuXG5wcmUge1xuICAgIGNvbG9yOiB2KGV1aS1iYXNlLWNvbG9yKTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmb250LXNpemU6IDg3LjUlO1xuICAgIG1hcmdpbi1ib3R0b206IHYoZXVpLWJhc2Utc3BhY2luZy1tKTtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICAgIG92ZXJmbG93OiBhdXRvO1xufVxuXG5ibG9ja3F1b3RlIHtcbiAgICBib3JkZXItbGVmdDogdihldWktYmFzZS1zcGFjaW5nLXhzKSBzb2xpZCB2KGV1aS1iYXNlLWNvbG9yLWdyZXktMjApO1xuICAgIHBhZGRpbmc6IHYoZXVpLWJhc2Utc3BhY2luZy14cykgdihldWktYmFzZS1zcGFjaW5nLW0pO1xufVxuXG5tYXJrLFxuLm1hcmsge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHYoZXVpLWJhc2UtY29sb3ItYWNjZW50LTI1KTtcbiAgICBwYWRkaW5nOiB2KGV1aS1iYXNlLXNwYWNpbmctMnhzKTtcbn1cbiIsIi8vIHN0eWxlbGludC1kaXNhYmxlIG5vLWRlc2NlbmRpbmctc3BlY2lmaWNpdHlcbnRhYmxlLmV1aS10YWJsZS1kZWZhdWx0IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuICAgIGJvcmRlci1zcGFjaW5nOiAwO1xuICAgIGNvbG9yOiB2KGV1aS1iYXNlLWNvbG9yLWZvbnQpO1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBvdmVyZmxvdzogYXV0bztcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAvLyBPdmVyYWxsIHNldHRpbmdzIChkZWZhdWx0KVxuICAgIHRoZWFkID4gdHIgPiB0aCxcbiAgICB0Ym9keSA+IHRyID4gdGQsXG4gICAgdGZvb3QgPiB0ciA+IHRkIHtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICB9XG5cbiAgICB0ciA+IHRoLFxuICAgIHRyID4gdGQge1xuICAgICAgICBwYWRkaW5nOiB2KGV1aS1iYXNlLXNwYWNpbmctcyk7XG4gICAgfVxuXG4gICAgdGhlYWQge1xuICAgICAgICB0aCB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdihldWktYmFzZS1jb2xvci1ncmV5LTEwKTtcbiAgICAgICAgICAgIGNvbG9yOiB2KGV1aS1iYXNlLWNvbG9yLWdyZXktNzUpO1xuICAgICAgICAgICAgZm9udC1zaXplOiB2KGV1aS1iYXNlLWZvbnQtc2l6ZSk7XG4gICAgICAgICAgICBwYWRkaW5nOiB2KGV1aS1iYXNlLXNwYWNpbmctbSkgdihldWktYmFzZS1zcGFjaW5nLXMpO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGV1aS1mb250LWZhbWlseS1ib2xkO1xuICAgICAgICB9XG5cbiAgICAgICAgdHIge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogdihldWktYmFzZS1jb2xvci1ncmV5LTUpO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIFN0cmlwZWQgJiBob3ZlcmVkIHRhYmxlcyBieSBkZWZhdWx0IChVWClcbiAgICB0Ym9keSB7XG4gICAgICAgIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDsgIC8vIG9wdGlvbmFsIC0gZW5hYmxlIGlPUyBtb21lbnR1bSBzY3JvbGxpbmdcblxuICAgICAgICB0cjpudGgtb2YtdHlwZShvZGQpIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHYoZXVpLWJhc2UtY29sb3Itd2hpdGUpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2KGV1aS1iYXNlLWNvbG9yLWdyZXktNSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0cjpudGgtb2YtdHlwZShldmVuKSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2KGV1aS1iYXNlLWNvbG9yLWdyZXktNSk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHYoZXVpLWJhc2UtY29sb3Itd2hpdGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgdHIge1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdihldWktYmFzZS1jb2xvci1ncmV5LTIwKTtcbiAgICAgICAgZGlzcGxheTogdGFibGUtcm93O1xuICAgIH1cblxuICAgIC8vIENvbXBhY3QgdGFibGVcbiAgICAmLS1jb21wYWN0IHtcbiAgICAgICAgdGhlYWQge1xuICAgICAgICAgICAgdGgge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IHYoZXVpLWJhc2Utc3BhY2luZy14cykgdihldWktYmFzZS1zcGFjaW5nLXMpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdHIgPiB0ZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiB2KGV1aS1iYXNlLXNwYWNpbmctMnhzKSB2KGV1aS1iYXNlLXNwYWNpbmctcyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBSZXNwb25zaXZlIHRhYmxlXG4gICAgJi0tcmVzcG9uc2l2ZSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmLS1ib3JkZXJlZCB7XG4gICAgICAgICAgICBib3JkZXI6IDA7ICAvLyBQcmV2ZW50IGRvdWJsZSBib3JkZXIgb24gaG9yaXpvbnRhbCBzY3JvbGwgZHVlIHRvIHVzZSBvZiBgZGlzcGxheTogYmxvY2s7YFxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gQm9yZGVyZWQgdGFibGVcbiAgICAmLS1ib3JkZXJlZCB7XG4gICAgICAgIHRoLFxuICAgICAgICB0ZCB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2KGV1aS1iYXNlLWNvbG9yLWdyZXktMjApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gU2hhZG93ZWQgdGFibGVcbiAgICAmLS1zaGFkb3dlZCB7XG4gICAgICAgIGJveC1zaGFkb3c6IHYoZXVpLWJhc2UtYmFzZS1zaGFkb3ctMSk7XG4gICAgfVxuXG4gICAgLy8gTm9XcmFwIHRhYmxlIGNvbnRlbnQgKGFsc28gZGlzYWJsZXMgZWxsaXBzaXMpXG4gICAgJi0tbm93cmFwIHtcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcblxuICAgICAgICB0aGVhZCA+IHRyID4gdGgsXG4gICAgICAgIHRib2R5ID4gdHIgPiB0ZCxcbiAgICAgICAgdGZvb3QgPiB0ciA+IHRkIHtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBDZW50ZXJlZCB0YWJsZVxuICAgICYtLWNlbnRlcmVkIHtcbiAgICAgICAgZGlzcGxheTogdGFibGU7XG4gICAgICAgIG1hcmdpbjogMCBhdXRvO1xuICAgICAgICB3aWR0aDogYXV0bztcbiAgICB9XG5cbiAgICAvLyBNaWRkbGUgYWxpZ25lZCBjZWxscyBjb250ZW50XG4gICAgJi0tYWxpZ24tbWlkZGxlIHtcbiAgICAgICAgdGhlYWQgPiB0ciA+IHRoLFxuICAgICAgICB0Ym9keSA+IHRyID4gdGQsXG4gICAgICAgIHRmb290ID4gdHIgPiB0ZCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4vLyAvLyBSRVNQT05TSVZFIExBWU9VVCAoUFJPVE8pXG4vLyBAaW5jbHVkZSBtZWRpYSgkZXVpLWJrcC1tb2JpbGUpIHtcbi8vICAgICB0YWJsZS51eC10YWJsZSB7XG4vLyAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4vLyAgICAgICAgICYudXgtdGFibGUtLXJlc3BvbnNpdmUge1xuLy8gICAgICAgICAgICAgZGlzcGxheTogY29udGVudHM7XG5cbi8vICAgICAgICAgICAgICYudXgtdGFibGUtLWJvcmRlcmVkIHtcbi8vICAgICAgICAgICAgICAgICB0ciB7XG4vLyAgICAgICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHYoZXVpLWJhc2UtY29sb3ItZ3JleS1saWdodCk7XG4vLyAgICAgICAgICAgICAgICAgfVxuLy8gICAgICAgICAgICAgfVxuXG4vLyAgICAgICAgICAgICAmLnV4LXRhYmxlLS1jb21wYWN0IHtcbi8vICAgICAgICAgICAgICAgICB0ZCB7XG4vLyAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiB2KGV1aS1iYXNlLXNwYWNpbmctM3hzKTtcbi8vICAgICAgICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IHYoZXVpLWJhc2Utc3BhY2luZy0yeHMpO1xuXG4vLyAgICAgICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4vLyAgICAgICAgICAgICAgICAgICAgICAgICB0b3A6IHYoZXVpLWJhc2Utc3BhY2luZy0yeHMpO1xuLy8gICAgICAgICAgICAgICAgICAgICB9XG4vLyAgICAgICAgICAgICAgICAgfVxuLy8gICAgICAgICAgICAgfVxuXG4vLyAgICAgICAgICAgICAvLyBGb3JjZSB0YWJsZSB0byBiZSBsaWtlIGNhcmRzXG4vLyAgICAgICAgICAgICB0aGVhZCxcbi8vICAgICAgICAgICAgIHRib2R5LFxuLy8gICAgICAgICAgICAgdGgsXG4vLyAgICAgICAgICAgICB0ZCxcbi8vICAgICAgICAgICAgIHRyIHtcbi8vICAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbi8vICAgICAgICAgICAgIH1cblxuLy8gICAgICAgICAgICAgLy8gSGlkZSB0YWJsZSBoZWFkZXJzIGJ1dCBub3QgZGlzcGxheTogbm9uZSBmb3IgYWNjZXNzaWJpbGl0eVxuLy8gICAgICAgICAgICAgdGhlYWQgdHIge1xuLy8gICAgICAgICAgICAgICAgIGxlZnQ6IC05OTk5cHg7XG4vLyAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuLy8gICAgICAgICAgICAgICAgIHRvcDogLTk5OTlweDtcbi8vICAgICAgICAgICAgIH1cblxuLy8gICAgICAgICAgICAgdHIge1xuLy8gICAgICAgICAgICAgICAgIGhlaWdodDogYXV0bztcbi8vICAgICAgICAgICAgIH1cblxuLy8gICAgICAgICAgICAgdGgsXG4vLyAgICAgICAgICAgICB0ZCB7XG4vLyAgICAgICAgICAgICAgICAgLy8gQmVoYXZlIGxpa2UgYSBcInJvd1wiXG4vLyAgICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuLy8gICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2KGV1aS1iYXNlLWNvbG9yLWdyZXktbGlnaHRlc3QpO1xuLy8gICAgICAgICAgICAgICAgIHBhZGRpbmc6IHYoZXVpLWJhc2Utc3BhY2luZy14cyk7XG4vLyAgICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiA1MCU7XG4vLyAgICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuLy8gICAgICAgICAgICAgfVxuXG4vLyAgICAgICAgICAgICB0ZDo6YmVmb3JlIHtcbi8vICAgICAgICAgICAgICAgICBjb2xvcjogdihldWktYmFzZS1jb2xvci1ncmV5LWRhcmspO1xuLy8gICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1jb2wpOyAgICAvLyBMaWtlIGEgdGFibGUgaGVhZGVyIGNvbHVtblxuLy8gICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuLy8gICAgICAgICAgICAgICAgIGxlZnQ6IHYoZXVpLWJhc2Utc3BhY2luZy14cyk7XG4vLyAgICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogdihldWktYmFzZS1zcGFjaW5nLXhzKTtcbi8vICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4vLyAgICAgICAgICAgICAgICAgLy8gTWltaWMgdG9wICYgbGVmdCBwYWRkaW5nc1xuLy8gICAgICAgICAgICAgICAgIHRvcDogdihldWktYmFzZS1zcGFjaW5nLXhzKTtcbi8vICAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuLy8gICAgICAgICAgICAgICAgIHdpZHRoOiA0NSU7XG4vLyAgICAgICAgICAgICB9XG4vLyAgICAgICAgIH1cbi8vICAgICB9XG4vLyB9XG4iLCIvLyBHTE9CQUwgQ09NUEFDVCBUSEVNRVxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbmh0bWwuZXVpLXQtY29tcGFjdCB7XG4gICAgLy8gRXhwb3NlZCBDU1MgdmFyaWFibGVzXG4gICAgLS1ldWktYmFzZS1mb250LXNpemU6IDE0cHg7ICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEZvbnQgc2l6ZSBiYXNlIGZvciBjb21wYWN0IHRoZW1lXG4gICAgLS1ldWktYmFzZS1saW5lLWhlaWdodDogMS4yNTsgICAgICAgICAgICAgICAgICAgICAgIC8vIFVuaXRsZXNzIG51bWJlciB2YWx1ZSBpcyBtdWx0aXBsaWVkIGJ5IHRoZSBlbGVtZW50J3MgZm9udCBzaXplXG4gICAgLy8gU2V0dXBcbiAgICBmb250LXNpemU6IHZhcigtLWV1aS1iYXNlLWZvbnQtc2l6ZSk7ICAgICAgICAgICAgICAgLy8gQXBwbGllcyB0aGUgZGVmaW5lZCBjdXN0b20gZm9udCBzaXplXG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLWV1aS1iYXNlLWxpbmUtaGVpZ2h0KTsgICAgICAgICAgIC8vIEFwcGxpZXMgdGhlIGRlZmluZWQgY3VzdG9tIGxpbmUgaGVpZ2h0IHJhdGlvXG59XG5cbi8vIEZPUk0gRUxFTUVOVFNcbi8vLy8vLy8vLy8vLy8vLy8vXG5mb3JtLmV1aS10LWZvcm0tY29tcGFjdCB7XG4gICAgLy8gRXhwb3NlZCBDU1MgdmFyaWFibGVzXG4gICAgLS1ldWktYmFzZS1mb250LXNpemU6IDE0cHg7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gRm9udCBzaXplIGJhc2UgZm9yIGNvbXBhY3QgdGhlbWVcbiAgICAtLWV1aS1iYXNlLWxpbmUtaGVpZ2h0OiAxLjI1OyAgICAgICAgICAgICAgICAgICAgICAgLy8gVW5pdGxlc3MgbnVtYmVyIHZhbHVlIGlzIG11bHRpcGxpZWQgYnkgdGhlIGVsZW1lbnQncyBmb250IHNpemVcbiAgICAtLWV1aS1pbnB1dC1ncm91cC1zcGFjaW5nOiB2YXIoLS1ldWktYmFzZS1zcGFjaW5nLXhzKTsgICAvLyBTcGFjaW5nIGJldHdlZW4gZm9ybSBncm91cHMgZWxlbWVudHNcbiAgICAvLyBJbnRlcm5hbHNcbiAgICAvLyBTZWU6IGV1aS1zdHlsZXMtYmFzZVxcc3JjXFxzdHlsZXNcXDAyLWJhc2VcXG1peGluc1xcdGhlbWluZ1xcX2NvbXBhY3QtdmFycy5zY3NzXG4gICAgQGluY2x1ZGUgZXVpLWNvbXBhY3QtZ2V0LXRva2VucygpO1xuICAgIC8vIFNldHVwXG4gICAgZm9udC1zaXplOiB2YXIoLS1ldWktYmFzZS1mb250LXNpemUpOyAgICAgICAgICAgICAgICAgICAgLy8gQXBwbGllcyB0aGUgZGVmaW5lZCBjdXN0b20gZm9udCBzaXplXG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLWV1aS1iYXNlLWxpbmUtaGVpZ2h0KTsgICAgICAgICAgIC8vIEFwcGxpZXMgdGhlIGRlZmluZWQgY3VzdG9tIGxpbmUgaGVpZ2h0IHJhdGlvXG5cbiAgICAvLyBJbnRlcm5hbHNcbiAgICAuZXVpLWlucHV0LWdyb3VwIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tZXVpLWlucHV0LWdyb3VwLXNwYWNpbmcpO1xuXG4gICAgICAgIGxhYmVsIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IHZhcigtLWV1aS1iYXNlLXNwYWNpbmctMnhzKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5ldWktaW5wdXQtZ3JvdXAtYWRkb24taXRlbSB7XG4gICAgICAgIG1pbi1oZWlnaHQ6IGNhbGMoMi41ICogI3t2KGV1aS1iYXNlLXNwYWNpbmcpfSk7XG4gICAgICAgIG1pbi13aWR0aDogY2FsYygyLjUgKiAje3YoZXVpLWJhc2Utc3BhY2luZyl9KTtcbiAgICAgICAgcGFkZGluZzogY2FsYygje3YoZXVpLWJhc2Utc3BhY2luZy14cyl9IC0gMXB4KTtcbiAgICB9XG59XG5cbi8vIFRBQkxFXG4vLy8vLy8vLy8vLy8vLy8vL1xuLmV1aS10YWJsZS5ldWktdC10YWJsZS1jb21wYWN0IHtcbiAgICAvLyBFeHBvc2VkIENTUyB2YXJpYWJsZXNcbiAgICAtLWV1aS1iYXNlLWZvbnQtc2l6ZTogMTRweDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBGb250IHNpemUgYmFzZSBmb3IgY29tcGFjdCB0aGVtZVxuICAgIC0tZXVpLWJhc2UtbGluZS1oZWlnaHQ6IDEuMjU7ICAgICAgICAgICAgICAgICAgICAgICAvLyBVbml0bGVzcyBudW1iZXIgdmFsdWUgaXMgbXVsdGlwbGllZCBieSB0aGUgZWxlbWVudCdzIGZvbnQgc2l6ZVxuICAgIC0tZXVpLXRhYmxlLWhlYWRlci1wYWRkaW5nOiB2YXIoLS1ldWktYmFzZS1zcGFjaW5nLXMpOyAgIC8vIFRhYmxlIGhlYWRlciBzcGFjZXIgc2V0IHRvIDAuNzVyZW1cbiAgICAtLWV1aS10YWJsZS1yb3ctcGFkZGluZzogdmFyKC0tZXVpLWJhc2Utc3BhY2luZy0yeHMpOyAgICAvLyBUYWJsZSBib2R5IHJvdyBzcGFjZXIgc2V0IHRvIDAuMjVyZW1cbiAgICAtLWV1aS10YWJsZS1mb290ZXItcGFkZGluZzogdmFyKC0tZXVpLWJhc2Utc3BhY2luZy1zKTsgICAvLyBUYWJsZSBmb290ZXIgc3BhY2VyIHNldCB0byAwLjc1cmVtXG4gICAgLy8gSW50ZXJuYWxzXG4gICAgQGluY2x1ZGUgZXVpLWNvbXBhY3QtZ2V0LXRva2VucygpO1xuICAgIC8vIFNldHVwXG4gICAgZm9udC1zaXplOiB2YXIoLS1ldWktYmFzZS1mb250LXNpemUpOyAgICAgICAgICAgICAgICAgICAgLy8gQXBwbGllcyB0aGUgZGVmaW5lZCBjdXN0b20gZm9udCBzaXplXG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLWV1aS1iYXNlLWxpbmUtaGVpZ2h0KTsgICAgICAgICAgIC8vIEFwcGxpZXMgdGhlIGRlZmluZWQgY3VzdG9tIGxpbmUgaGVpZ2h0IHJhdGlvXG5cbiAgICAvLyBJbnRlcm5hbHNcbiAgICB0aGVhZCB7XG4gICAgICAgIHRyIHtcbiAgICAgICAgICAgIGhlaWdodDogYXV0bztcblxuICAgICAgICAgICAgdGgge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IHZhcigtLWV1aS10YWJsZS1oZWFkZXItcGFkZGluZykgIHZhcigtLWV1aS1iYXNlLXNwYWNpbmctcyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB0Ym9keSB7XG4gICAgICAgIHRyIHtcbiAgICAgICAgICAgIGhlaWdodDogYXV0bztcblxuICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IHZhcigtLWV1aS10YWJsZS1yb3ctcGFkZGluZykgIHZhcigtLWV1aS1iYXNlLXNwYWNpbmctcyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB0Zm9vdCB7XG4gICAgICAgIHRyIHtcbiAgICAgICAgICAgIGhlaWdodDogYXV0bztcblxuICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IHZhcigtLWV1aS10YWJsZS1mb290ZXItcGFkZGluZykgIHZhcigtLWV1aS1iYXNlLXNwYWNpbmctcyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8vIENBUkRcbi8vLy8vLy8vLy8vLy8vLy8vXG4uZXVpLWNhcmQuZXVpLXQtY2FyZC1jb21wYWN0IHtcbiAgICAvLyBFeHBvc2VkIENTUyB2YXJpYWJsZXNcbiAgICAtLWV1aS1iYXNlLWZvbnQtc2l6ZTogMTRweDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBGb250IHNpemUgYmFzZSBmb3IgY29tcGFjdCB0aGVtZVxuICAgIC0tZXVpLWJhc2UtbGluZS1oZWlnaHQ6IDEuMjU7ICAgICAgICAgICAgICAgICAgICAgICAvLyBVbml0bGVzcyBudW1iZXIgdmFsdWUgaXMgbXVsdGlwbGllZCBieSB0aGUgZWxlbWVudCdzIGZvbnQgc2l6ZVxuICAgIC0tZXVpLWNhcmQtdGl0bGUtc2l6ZTogdmFyKC0tZXVpLWJhc2UtZm9udC1zaXplLW0pOyAgICAgIC8vIENhcmQgdGl0bGUgZm9udCBzaXplXG4gICAgLS1ldWktY2FyZC1zdWJ0aXRsZS1zaXplOiB2YXIoLS1ldWktYmFzZS1mb250LXNpemUtcyk7ICAgLy8gQ2FyZCBzdWJ0aXRsZSBmb250IHNpemVcbiAgICAvLyBJbnRlcm5hbHNcbiAgICBAaW5jbHVkZSBldWktY29tcGFjdC1nZXQtdG9rZW5zKCk7XG4gICAgLy8gU2V0dXBcbiAgICBmb250LXNpemU6IHZhcigtLWV1aS1iYXNlLWZvbnQtc2l6ZSk7ICAgICAgICAgICAgICAgICAgICAvLyBBcHBsaWVzIHRoZSBkZWZpbmVkIGN1c3RvbSBmb250IHNpemVcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tZXVpLWJhc2UtbGluZS1oZWlnaHQpOyAgICAgICAgICAgLy8gQXBwbGllcyB0aGUgZGVmaW5lZCBjdXN0b20gbGluZSBoZWlnaHQgcmF0aW9cblxuICAgIC8vIEludGVybmFsc1xuICAgIC5ldWktY2FyZCB7XG4gICAgICAgICYtaGVhZGVyIHtcbiAgICAgICAgICAgICZfX3RpdGxlLWNvbnRhaW5lciB7XG4gICAgICAgICAgICAgICAgJi10aXRsZSxcbiAgICAgICAgICAgICAgICAmLXRpdGxlIC5ldWktbGFiZWwge1xuICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IHZhcigtLWV1aS1jYXJkLXRpdGxlLXNpemUpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYtc3VidGl0bGUsXG4gICAgICAgICAgICAgICAgJi1zdWJ0aXRsZSAuZXVpLWxhYmVsIHtcbiAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiB2YXIoLS1ldWktY2FyZC1zdWJ0aXRsZS1zaXplKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICZfX3VyZ2VudC1pbmRpY2F0b3Ige1xuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiB2YXIoLS1ldWktYmFzZS1mb250LXNpemUtMnhsKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCJAbWl4aW4gZXVpLWNvbXBhY3QtZ2V0LXRva2VucygkcmF0aW86IDAuODc1KSB7XG4gICAgLS1ldWktY29tcGFjdC1yYXRpbzogI3skcmF0aW99O1xuICAgIEBlYWNoICRzcGFjaW5nLCAkdmFsdWUgaW4gJGV1aS1iYXNlLXRva2Vucy1zcGFjaW5ncyB7XG4gICAgICAgIC0tZXVpLWJhc2Utc3BhY2luZy0jeyRzcGFjaW5nfTogY2FsYyggI3t2YXIoLS1ldWktY29tcGFjdC1yYXRpbyl9ICogI3skdmFsdWV9ICk7XG4gICAgfVxufVxuIiwiLy8gSUUxMCsgU1ZHJ3MgYXNwZWN0IHJhdGlvcyBhbmQgc2l6ZXMgZml4XG5AbWVkaWEgc2NyZWVuIGFuZCAoLW1zLWhpZ2gtY29udHJhc3Q6IGFjdGl2ZSksICgtbXMtaGlnaC1jb250cmFzdDogbm9uZSkge1xuICAgIGltZ1tzcmMkPVwiLnN2Z1wiXSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cbn1cbkBtZWRpYSBzY3JlZW4ge1xuICAgIC8vIElFIEZpeDogQmljdWJpYyBTY2FsaW5nIGZvciBJbWFnZXMgJiBmdWxsIHdpZHRoIGJhY2tncm91bmQgKEVDIGxvZ28pXG4gICAgaW1nIHtcbiAgICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICAgICAgYmFja2dyb3VuZC1zaXplOiAxMDAlO1xuICAgICAgICAtbXMtaW50ZXJwb2xhdGlvbi1tb2RlOiBiaWN1YmljO1xuICAgIH1cbn1cbiIsIi8vIENPT0tJRSBDT05TRU5UXG4uY29va2llLWNvbnNlbnQtYmFubmVyIHtcbiAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICAgIG1pbi13aWR0aDogNTAlICFpbXBvcnRhbnQ7XG4gICAgcG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7XG4gICAgcmlnaHQ6IDUwJSAhaW1wb3J0YW50O1xuICAgIHRvcDogdihldWktYmFzZS1zcGFjaW5nLW0pICFpbXBvcnRhbnQ7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDUwJSkgIWltcG9ydGFudDtcbiAgICB6LWluZGV4OiB2KGV1aS1iYXNlLXotaW5kZXgtbWF4KSAhaW1wb3J0YW50O1xuICAgIGJveC1zaGFkb3c6IHYoZXVpLWJhc2Utc2hhZG93LTI0KSAhaW1wb3J0YW50O1xuICAgIGJhY2tncm91bmQ6IHYoZXVpLWJhc2UtY29sb3ItcHJpbWFyeSkgIWltcG9ydGFudDtcbiAgICBjb2xvcjogdmFyKGV1aS1iYXNlLWNvbG9yLXdoaXRlKSAhaW1wb3J0YW50O1xufVxuIiwiLmV1LWFwcC1sb2FkZXItd3JhcHBlciB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHRvcDogNTAlO1xuICAgIGxlZnQ6IDUwJTtcbiAgICB3aWR0aDogMjcwcHg7XG4gICAgbWFyZ2luLWxlZnQ6IC0xMzVweDtcbiAgICBtYXJnaW4tdG9wOiAtODBweDtcbn1cblxuLmV1LWFwcC1sb2FkZXItc3RhcnMtZmxhZy13cmFwcGVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwMDk5O1xuICAgIHdpZHRoOiAyNzBweDtcbiAgICBoZWlnaHQ6IDE2MHB4O1xuICAgIHBhZGRpbmctdG9wOiAxMHB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNlNGU0ZmY7XG4gICAgYm94LXNoYWRvdzogMCAxMHB4IDIwcHggcmdiYSgwLDAsMCwwLjE5KSwgMCA2cHggNnB4IHJnYmEoMCwwLDAsMC4yMyk7XG59XG5cbi5ldS1hcHAtbG9hZGVyLXN0YXJzIHtcbiAgICBiYWNrZ3JvdW5kOiB1cmwoJ2RhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBY0lBQUFIQ0NBTUFBQUJMeGpsM0FBQUFwVkJNVkVVQUFBRC96QUQvekFEL3pRRC96QUQvd3dEL3pnRC96QUQveGdEL3pnRC96QUQvekFEL3pRRC96QUQvekFEL3pRRC96QUQvekFEL3pBRC96QUQvekFEL3pBRC96QUQvekFEL3pRRC96QUQvelFEL3pBRC96QUQvemdELzBnRC95UUQvekFEL3pBRC96QUQveXdEL3pBRC96QUQvekFEL3pBRC96QUQvekFEL3pRRC96QUQvekFEL3pBRC95d0QvekFEL3pBRC96UUQveHdEL3pBRC96QUQvekFEL3pBQks1UWlKQUFBQU5uUlNUbE1BVmZsbS9RUXpLUWdVZ2U1UnhOSEtrUjNrYi9heXYwR0tkaG5lWGg4UURXdXFuRGEzODlpa2V5OGs2TlJZUHpxVVNCSmhjK0xFY3ZrRkFBQVFCVWxFUVZSNDJ1emQ2WExhVUF3RllHRnd3REhHTEdiZmw1Q3RKR25UblBkL3RGS2F1SjZKRFJoOGd4VHJlNEx6bytQaFJ1b1JLYVdVVWtvcHBaUlNTaW1sbEZKS0thVVNMSmVrWkZzc1NNbjI5a1pLdERMd1FFcXlQdEFuSlprUCtLUUVHMk5yVEVxdUZyWmFwT1R5c09XUkVtdFF3bFpwUUVxcUdYWm1wS1RxWUtkRFNpaW5oSjJTUTBxbUl0NFZTY20wd3JzVktaRitXWGhuL1NJbDBTdENJMUlTdFJGcWt4Sm9haUZrVFVuSnMwSEVoaFJuNVZraGhvOEl2eEJqcHROZ051NHNuTUM2SThWR2VZM1UxbVZTakZUcVNLbGVJWldoKzNzNlY5VkZDbTZWUStidjVPV0Z6dGJ3Y0RTdndTUHpOekljMHZrcVBSeXBWK0dTK2RzWVo3U2o5TlRFRVpwUG5ESi9FNjJzZHBTY05nNmFUM2hsL2g2ODdIYVVSZ0gyQ2tiOE1uOERnMUtHTzBybEd2YW9sVGxtbG0rR3JkbFhQQkhyRlo2WnhldkU3Q2laZUNLNlZiNlpaWE5LV2U4b2pTM0VzTWFjTTR0V3hNNHJaV2FKV0V2T21VVmJaYjZqMUVPc0h1Zk1razBzN0ZnVHlzb1FzWWFjTTBzMnlueEg2UjRKN3ZsbUZxMmQrWTdTTlJKYzg4MHMyVFRBdTJCSzJWZ2p3USsrbVNYYklGU2dUSlNScU13MXMyaHpoT2FVaVR0RStENGk3cmhtbHF3U0lIUlRvU3pVRUNwZDIvWjFDYUVhMTh5U1ZSRlJwUXc4SU5UczBsYTNpZEFEejh4Q05KWlhNVmFJV0YzRldEWW9sVDQrdEoxUFU4USt6OHhDMkxlbmJYdmUycW1yWm5hQ0lvVmFGdjd4ZVdZV28rc2lOYmRMNlRRK0hoQmxpaWovd0Q4Tmpwa0ZjVlpJYWVWUVNxMXdNaGc3Uld4eHpDeEt5MElLVnV2RXFobTNtalJGN0hETUxNdlZHa2RiWDUxWU5lT05LY2JZMjVYUThNc3N6YTg1UWdaV3pXYTd4eURGMmowUmkvd3l5ek82d1JGdVJuUUtINDlkU3RSOWhNOHZzMEFQUGc3eXhuUUt4K280dElmVHNSeHVtVVhhZmRHU2hkL0M5UG85T3FEWDU1WlpxRzRUZXpTN2RLSUpIVFRobGxrcVp5WHZZU1V4czFFdFM5N0RTbUptazVieDI1NnNIMVlTTXh0MGoxaXMvL09zeE13R1hTZnRLREVtTWJOQmE4UmFFMk1TTTV0VFJnTEdaU0lTTXh0MGh3U01HMzBrWmphb2hnUTFZa3RpWm5NZWtJRHhvU3lKbVEzcUkrTHREU0hHaDdJa1pqYkl4MytMNlhTQkQ0d1BaVW5NYk00WUliZEFXd1VYSWFZcmZCSXpHOVQ2TkdVYmUvaUw4YUVzaVprTjhxSlR0dWhFanZHaExJbVp6Um1VNHFaczNTYkE5MUNXeE13R3pTSXI4eEZPbS9HaExJbVpEZXBFVithamlnSGJRaGVKbWMxeFNvbGxXdVVhMDBJWGlaa05ldDFUcGxXcDh5eDBrWmpaSUE4M1ZVcFV2ZUg0KzA1aVpuTW1WcTFCZXpScS9BcGRKR1kyNlBmQ3ByM3N4VzlpUm1KbWd3WjBFTHRYbHNUTVNpbWxsRkpLS2FXVVVrcXBMekhSaytNbjJmQVpiYlJ5dG5PUWxRNmZ4VVV2eUZkZFIwYnNnTTJRZUdvaGQ0VWRXZWpDNHRLdnZ3SDBNdkVKWGdBdVB5TG13S04rU1ZPekg5bjA2MDhEQU0ra1Vucm1jNm1rZ0swNnFaVHFmUHIxNTloNkk1VlNFMXUzeEVEbDV2MjhvMHBseWVkU1NSVTdQVktwOVBoY0tybkZ6cEJVS2tPQXlaZTA0dWE4aHV6TU1qZjM4bC9TbjNtdklUdTN6TzBuWGRvaTV6VmtaNWU1TGVqQ2JEZm5OV1JubDdtNU5sMVdOKzgxWkdlWHVWMThSUENTOHhxeXM4dmNMajRpc0I5elhrTjI5bmYwNGlPQzU3elhrR1ZSNXZaTVgyTXcyeFErYXlOaVdJaFJ6UGxmM3BiRlFvd2hJdHFGenphekFXV3VHT0FFcFJlYmNzMWVsSENDb0VnR05IeWsxdFE1SWowM2tacmZJQU9pZldONkNpNk55UndwR0w3KzlOUkVDa0Z1VHNFZE1ncVFRdk9KREhMYU9GcE4vMXdUclljNld0c2hvK3kraGVQYzhsZ0xZV0o2aStOWWZadFNNUGdQeXVVd3ltU2w2dkw1ZEZYcU9LaVR2NXJqZ3hvZURxcFg2R3RVWGIybmVkb3ZlajZmcmovczNWMVgwMEFReHZFeGJVbEQzK3g3c1ZiYktnVzBSY0hqZlArUEpvSW1tN2hKQ3hmclJQKy9XeTdnUEllenA3c3puYW4raDFweUdYelJKL3JlVUFKdy9xRzRETDdvaW1qbzZKcVB1QXkrN0lwb1p4VncwbEdQNXYrNlQvTmtaMDMxNkNRUzNwdmluMktuTDlLMHJ1Yjl4Zm42YXkwdzB4ZHAyNVY2clNXOG1SYlo2VEEzckgycFhqTUpMbWxxbnAyK1NOTzY2dGRNSkxTR0ZwanBpN1R0U2tzMEpMU1BXbVNudzl5d2RrZExmSlRBN2lOVlR0TG51OU15MGIyRTlWWWR1eGtuNlltMjZwanQxUEZXd3BybW45ZkhrWm0rU05OYUhVMUY0M3pSWnlwQnZZOEt6K3Z4WGxPM2doSzNtdHJIK2FKUDZDRTBCL2Q1M2EwaU1qcWgwbGYzNkNvV2ZRNFMwcWI0dk80dXRoMXhraDc3L2tLbjZ5bjZiQ1NnOTVOOHI1VzcySlloTk9XK1pLdUFpMVhFMEVOb3VtbXZWYkdLeU9pRUtndC9aVENaaGk4UlhKVlZCdWNqUmlkVVdKWlZCaHVUVUNVQzk2bTJINWMzbWxJMDlEb3JieE9OKzJGTEJIZFZ2VmJqaUpPMC9CeU54bFY5Z1hjU3lxWnluK2JaVWtjQ2o1RXV6eXIza0c0a2tQWmxmMWpkdVJ3eGhNYmpKdHEycS9lUVhyWWtqTVAyMkc5cWNKSjZMQnBTcmJWOUpXRzhrNlBvUXlRM0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBUGczZlBqUHQyT1hxRlBPV3diKyt0UXA1Ky9mQlgrcVVjNng2aWRCVVoxeXZsQzlFQlRWS2VlQjZrQlFWS09jVi9wZ0pjaXJVODVqZlRBVzVOVXA1NTQrNkFueWFwVHptK2F2VllsdzFTbm50VDVhQzF4MXlubW1qMllDVjQxeVRwcnBxa1JrNnBSekkxdVZpRXlkY3Y2WXJVcEVwa1k1MzBmT3FrU2thcFR6TjNkVklqTDF5WG1xcWFrZ1U1dWMzMGZxcmtwRXFqWTVIOVJ4RUdUczVSeXZYM2tNMURGNDViR21HbXdtNSt0SVh5QzZGcFFJbjNPODAyZmJ4WUpTNFhOdXY5Wm5ldDBXT0F6azNPM29NM1M2QXBlSm5JYzlQVmx2S0hCWXlibTkwQk10T0VSekRPVjhPOUlUakc0RkxsTTVKMU05YXNQQ3ZSeHpPYitkYUtVSkw5NTVCbk9PKzFxaHoyVXd4MmJPN2RkY0JrOWxOdWR1aDh2Z1NRem52SXJVSTZJelA4ZDB6aC9VaXkvOHVtem52RkF2TnRlN2JPZThWSytsSUdNNjV4c3RjU05JbWM3NVhFdWNDektXYzk1cGliMGdZempuV0V2eE51TXduUE8xT2dZRGRkQXQ0N0tiYzE5VHpmTlc2N3lwcWI0Z1l6Ym5UNW9hemVYQlBLMXVNWVFteDJ6T0YvcmJOQ2xVdHhoQ2syYzE1NEUrbVRRa05ZNzBKNGJRNUJuTmVhaFA5ckU0NHIwK29lL0pZVFRuY1ZheEtsYTNHRUpUWkRQblhsbkZxdHRoZEVLUnlad2ZSNkQwVnVLeDZqR0Vwc0JrenV2SFM0cDR0YzZiakU3SXM1anpRRC9QcGRUOE01OUpjd3ptbkVTenBQTG5zNGdoTkE2RE9WOHM1SWdGdDN1WHZaemZ5VkUwYzd2SUdRQUFBQUFBQUFBQUFBQUFBTUFQOXU1RUtYVWdpQUpvazhXd0k3c3N5aUtMQ2dpbzcvNy9wejNxYVZFUkowQmlacGgrOVBrQTY1WkZUWkYwTTFjSUlZUVFRZ2doaEJCQ0NDR0VFRUpjandlcFNVOWtaYzlQNk90eWsxY2lMWHN1c1NzMWZCS3grWTBTV1dMZ29FMGl0amFjQWRsaEJXeEl4TFlCYlBrU01RSVdjcExHNWkrQUVWbGgwQUN3SmhIVEdrRERqcE0wZzUxYkVqSGRZc2VPSXM4UmR2NlFpS21HblRsWklEdVZTc3JrbFpOVEd3cVJpMUpKbWNnZFlNdEpPcGRLeWtSNmdDVW5hYllnbFpTL3Fad3NYUDRrM1VvbDVlOHFKN2QwYVdOOG1aRklVams1cGd2ekMxSkorYnZLeVlKUGw5V1dTc3BmVms1ZWZFU3drVXJLMzFWT1hueEU0QzhnbFpTL09rY3ZQaUpZQTVCS3l2ZzZDRm1UR2QzaEt2TlRFeUc5aklKNzVXL2VIdDJNUWc4aHpjeFBxMkdYVXVjMmtJQzM4ZW1xK1dNUENUUmMwcUJhUVd3MW1TUFN1b2JZS2xYU3dzOTdpR2RrejViZEJUMk1FSStYOTBtWDF4cGlhUFJKL05OdklJYmFLMm1VYStKc1pYbGRzeGVVY2JabWpyVHlPdzdPTTdkakxjUVNnem5PNDNSOFVqSC9nU3JZTU1xMFNyRmd6OUdWdmNWSkxhbTgvNkZhd2ttM1dZcGk5Z1BsNWEvOFlURHlHNzA5UjlmeEQxUlBIZ1lUZmFNdlZja2dQKy9KdzJDaVIwU0xqcTUyVFI0RzAzeEVyTFhKdUZ3QkN0NE5pYU51UENnVWNtUmU5ekNLUFh1UlZpdEN4ZXVTZVVNY3NHWXYwbTV6S0EzSnZCWU8yYk5oYnJIc0ZFb3RNaTduNFR0NzlpS3RWb1NhbHlQVFhCeXdaaS9TYm5ORWNNbTBDUTdaczJGdXNXd0JFU1prMkpzRHlFa2EzeFpSbkRjeXE0K1FXVXRPMGpPTkVkS2FJYVJQWmpXL3YxNnZPOWJzUlZyTkwyRFBxWDhmK2pUSnFJRno4SG85V0dMdmxVU0VWK3d0ZzRPaGorRkxhRmJoMSt2aEthSmNuWERVSm54MEhRNTlWbVRTU1BGNlBWUEFwNXFjcEtkK3YxQW9Lb1krSXpKbzBGRHRXdDJYc0NPWDBKeisvVUxwWGpGRk5Ic0pUVkc5YStYblBiazY0Wmc3OVdRdzF6US9JcGhIVFFiYk5iazY0WWhlMUdUUWJSZ2VFV1Nub1YwcjFRZEtob1pLTjlGcm9rSFo3SWhnZTJ6WHF1N0lTUnA5ampyMVkzdUJXekpsaEdtUkl0MzBVQ09oVUVQdmhpSVZweGlSSWRscHVYcDhjOW1SUzJnVW5wMXhsbzZvbHFjK21iRWErM1NjS3llcHdwMUx4L25qREpueFFDZkpIcUw4MzRRUVFnZ2hoQkJDQ0NHRUVPZmJNbHdCNTVoWm96bkRueVZ5ekt6UllrSHNjTXlzenpQRHBoS09tVFhLTTJ3cTRaaFpveVd3SkdZNFp0WW5ZTmhVd2pHelJrOE1tMG80WnRhb2pKMEtzY0l4c3o0dkRKdEtPR2JXNkFQL2ZCQWpIRE5yVk1JL0pXS0VZMlo5cXZqQzZDWmhqcGsxcXVOTG5kamdtRm1qRnI2MGlBMk9tZlhwZXFFTEhabmdtRmtqRjNzdU1jRXhzMFlUN0UySUNZNlo5Y2s1MzY0aFk0RmpabzNlRWZKT0xIRE1uSW9nUDNSL0tpT2s3UDQwekFkMExzbXNtZXNnQWNlbDgwbG16ZTRyOXZScC9zK1pkZkx6bmoxOW12OXhacTNhTmNOOW1vK1AvREpiTHRjMDI2YzVIdlBMYkwxemUwaWREMHJCbnovOE10c3ZLSnZyMHd5QUYyNlpPY2plR3V2VDdBQWRicGw1S0JZTTlXbFdnQXEzekV4VVcwYXFnTyt4Yzg4ck14dCt4ekhRQzE3SFRwMVhaa1llZTFEcVBWSzZXMG9sWHBrNWVYTTBGTjhvcHV0ZWwxTm1WdHBRZWlWS3VTWnp5Q2t6S3hzb2JWTGZVbXB4eXN5SnYwQ0loczZuZlUybWwrT1RtWlUxSXF4VDMxSnkrV1JtNVJZUjdsTGZVcHJ3eWN4S0R4RjZxWDk3ZE42NFpHYmxCcEZ1VXQ5UzZuUEp6TW9kUWtZakRhZFNFM3ROTHBsWm1XRnYyaWZxVDdFM1M3c21FODZBUjJaV25zTlR0c09KM0RPbFlJV1FGWS9Nck9URFU3YkRpVnllWWdtR0dZVUtRaW9aaGVGTGFwbXY4UkthSlQ0dHRvcUozSkxpZVVxMjdmbVVYdVlydklRbXdLZEpsMEs2RTN3SzR2NjVHV0tiQmVsbHZzWkxhSjYrZXNGVjFYazdUeHIySWhSYkVxbGx2c1pMYUNyN0tadHlJbGRKYnk5Q3JWQzBJVE5uTDlpWkQ5VFZlUWt2ZEttV2NMWlMxWTdNakgzc3E0QVYrbzFrRjdwazczQ211Nnd0bWZtYVlSbFFwR0NKSlNYeFdqdHZaZDZtekV4VlQvUnBac2RPVmR2cS9PakJyc3c4ZGQ3cGhQY1BTcWJmd0ZHTnZuMlpPZkxwSkYvUDZudzVzREh6My9idUpBZEJJQXJDY01jaGpvaFRCRFFZRXhQanRINzNQNW9MRXJVUjBDVmwvOThXRGdDcHlpdjRobk1xOC9LbUV5cno2dkxxdG1mdW9PSm9sUUt0WEV0SzZTaXAyOUZSRW5jeFQ4akp1cXF4K1FKTzFsV2RyQ3pVWkYzVndENEZtcXlyT3R1Yk9MWkNrTW02cXBsM1RNczd3RFZ6RUhDMXAyWHlPc0RGdkl1T3pEK201YWVJbVVQN3hWWllkMHNsc3dBN1Nwb1dWcmdQL0Y0RTh5NHlWdFhKNEhET3ZJdUtxQzRabkU2WWQ1R3c3WmxabExzS2VjUzhpNEpEdzJYbC9yakh2RXY3eFhaTFhLM2t4amRwMjQwNm0xSGo4MDBuaE12THlyTFVmWkh5ZDk5dSsxOWVBUUFBQUFBQUFBQUFBQUFBQVBBUEhsS0RxUHk1bEUvMUFBQUFBRWxGVGtTdVFtQ0MnKTtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgIHdpZHRoOiAxNDBweDtcbiAgICBoZWlnaHQ6IDE0MHB4O1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiAyNSU7XG4gICAgYW5pbWF0aW9uOiByb3RhdGlvbiAxMHMgZWFzZS1pbi1vdXQgaW5maW5pdGU7XG59XG5cbkBrZXlmcmFtZXMgcm90YXRpb24ge1xuICB0byB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMXR1cm4pO1xuICB9XG59XG5cbkAtbXMta2V5ZnJhbWVzIHJvdGF0aW9uIHtcbiAgdG8ge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDF0dXJuKTtcbiAgfVxufVxuXG5ALW8ta2V5ZnJhbWVzIHJvdGF0aW9uIHtcbiAgdG8ge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDF0dXJuKTtcbiAgfVxufVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgcm90YXRpb24ge1xuICB0byB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMXR1cm4pO1xuICB9XG59XG5cbkAtbW96LWtleWZyYW1lcyByb3RhdGlvbiB7XG4gIHRvIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxdHVybik7XG4gIH1cbn1cblxuXG4uZXUtYXBwLWxvYWRlci1iYXJzLXdyYXBwZXIge1xuXHR3aWR0aDogMTAwJTtcblx0aGVpZ2h0OiA2cHg7XG4gICAgbGVmdDogNTAlO1xuICAgIGJvdHRvbTogLTMwcHg7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xufVxuXG4uZXUtYXBwLWxvYWRlci1iYXJzLWJvcmRlciB7XG4gICAgYmFja2dyb3VuZDogIzRhNGE0YTtcbiAgICBib3JkZXI6IHRyYW5zcGFyZW50O1xuXHRoZWlnaHQ6IDEwMCU7XG5cdHdpZHRoOiAxMDAlO1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdGxlZnQ6IC01MCU7XG5cdHRvcDogLTUwJTtcblx0cGFkZGluZzogMXB4O1xufVxuXG4uZXUtYXBwLWxvYWRlci1iYXJzLXdoaXRlc3BhY2Uge1xuXHRvdmVyZmxvdzogaGlkZGVuO1xuXHRoZWlnaHQ6IDEwMCU7XG5cdHdpZHRoOiAxMDAlO1xuXHRtYXJnaW46IDAgYXV0bztcblx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4uZXUtYXBwLWxvYWRlci1iYXJzLWxpbmUge1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdGhlaWdodDogMTAwJTtcblx0d2lkdGg6IDEwMCU7XG5cdGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LDI1NSwyNTUsMC45OCk7XG5cdGFuaW1hdGlvbjogY3NzbG9hZC1zbGlkZSAyLjI1cyBzdGVwcyg0MCkgaW5maW5pdGU7XG5cdFx0LW8tYW5pbWF0aW9uOiBjc3Nsb2FkLXNsaWRlIDIuMjVzIHN0ZXBzKDQwKSBpbmZpbml0ZTtcblx0XHQtbXMtYW5pbWF0aW9uOiBjc3Nsb2FkLXNsaWRlIDIuMjVzIHN0ZXBzKDQwKSBpbmZpbml0ZTtcblx0XHQtd2Via2l0LWFuaW1hdGlvbjogY3NzbG9hZC1zbGlkZSAyLjI1cyBzdGVwcyg0MCkgaW5maW5pdGU7XG5cdFx0LW1vei1hbmltYXRpb246IGNzc2xvYWQtc2xpZGUgMi4yNXMgc3RlcHMoNDApIGluZmluaXRlO1xufVxuXG5cblxuQGtleWZyYW1lcyBjc3Nsb2FkLXNsaWRlIHtcblx0MCUge1xuXHRcdGxlZnQ6IC0xMDAlO1xuXHR9XG5cblx0MTAwJSB7XG5cdFx0bGVmdDogMTAwJTtcblx0fVxufVxuXG5ALW8ta2V5ZnJhbWVzIGNzc2xvYWQtc2xpZGUge1xuXHQwJSB7XG5cdFx0bGVmdDogLTEwMCU7XG5cdH1cblxuXHQxMDAlIHtcblx0XHRsZWZ0OiAxMDAlO1xuXHR9XG59XG5cbkAtbXMta2V5ZnJhbWVzIGNzc2xvYWQtc2xpZGUge1xuXHQwJSB7XG5cdFx0bGVmdDogLTEwMCU7XG5cdH1cblxuXHQxMDAlIHtcblx0XHRsZWZ0OiAxMDAlO1xuXHR9XG59XG5cbkAtd2Via2l0LWtleWZyYW1lcyBjc3Nsb2FkLXNsaWRlIHtcblx0MCUge1xuXHRcdGxlZnQ6IC0xMDAlO1xuXHR9XG5cblx0MTAwJSB7XG5cdFx0bGVmdDogMTAwJTtcblx0fVxufVxuXG5ALW1vei1rZXlmcmFtZXMgY3NzbG9hZC1zbGlkZSB7XG5cdDAlIHtcblx0XHRsZWZ0OiAtMTAwJTtcblx0fVxuXG5cdDEwMCUge1xuXHRcdGxlZnQ6IDEwMCU7XG5cdH1cbn1cblxuXG4uZXUtYXBwLWxvYWRlci10ZXh0IHtcbiAgICBjb2xvcjogI2VjZWNlYztcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgZm9udC1zaXplOiAxOHB4O1xuICAgIHBhZGRpbmctdG9wOiAxNTBweDtcbn1cbiIsIiNsb2FkZXItd3JhcHBlciB7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGxlZnQ6IDA7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHRvcDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICB6LWluZGV4OiAxMDAwO1xuXG4gICAgI2xvYWRlciB7XG4gICAgICAgIC13ZWJraXQtYW5pbWF0aW9uOiBzcGluIDJzIGxpbmVhciBpbmZpbml0ZTsgLyogQ2hyb21lLCBPcGVyYSAxNSssIFNhZmFyaSA1KyAqL1xuICAgICAgICBhbmltYXRpb246IHNwaW4gMnMgbGluZWFyIGluZmluaXRlOyAvKiBDaHJvbWUsIEZpcmVmb3ggMTYrLCBJRSAxMCssIE9wZXJhICovXG4gICAgICAgIGFuaW1hdGlvbjogaG91cmdsYXNzIDVzIGxpbmVhciBpbmZpbml0ZTtcbiAgICAgICAgYm9yZGVyOiAxMHB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgIGJvcmRlci10b3AtY29sb3I6IHYoZXVpLWJhc2UtY29sb3Itd2FybmluZy0xMDApO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiAyMDBweDtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICBtYXJnaW46IC0xMDBweCAwIDAgLTEwMHB4O1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICB3aWR0aDogMjAwcHg7XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIC13ZWJraXQtYW5pbWF0aW9uOiBzcGluIDJzIGxpbmVhciBpbmZpbml0ZTsgLyogQ2hyb21lLCBPcGVyYSAxNSssIFNhZmFyaSA1KyAqL1xuICAgICAgICAgICAgYW5pbWF0aW9uOiBzcGluIDJzIGxpbmVhciBpbmZpbml0ZTsgLyogQ2hyb21lLCBGaXJlZm94IDE2KywgSUUgMTArLCBPcGVyYSAqL1xuICAgICAgICAgICAgYW5pbWF0aW9uOiBob3VyZ2xhc3MgNHMgbGluZWFyIGluZmluaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxMHB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogdihldWktYmFzZS1jb2xvci1kYW5nZXItMTAwKTtcbiAgICAgICAgICAgIGJvdHRvbTogNXB4O1xuICAgICAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgICAgIGxlZnQ6IDVweDtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHJpZ2h0OiA1cHg7XG4gICAgICAgICAgICB0b3A6IDVweDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIC13ZWJraXQtYW5pbWF0aW9uOiBzcGluIDFzIGxpbmVhciBpbmZpbml0ZTsgLyogQ2hyb21lLCBPcGVyYSAxNSssIFNhZmFyaSA1KyAqL1xuICAgICAgICAgICAgYW5pbWF0aW9uOiBzcGluIDFzIGxpbmVhciBpbmZpbml0ZTsgLyogQ2hyb21lLCBGaXJlZm94IDE2KywgSUUgMTArLCBPcGVyYSAqL1xuICAgICAgICAgICAgYW5pbWF0aW9uOiBob3VyZ2xhc3MgM3MgbGluZWFyIGluZmluaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxMHB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogdihldWktYmFzZS1jb2xvci1wcmltYXJ5LTEwMCk7XG4gICAgICAgICAgICBib3R0b206IDIwcHg7XG4gICAgICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICAgICAgbGVmdDogMjBweDtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHJpZ2h0OiAyMHB4O1xuICAgICAgICAgICAgdG9wOiAyMHB4O1xuICAgICAgICB9XG4gICAgfVxufVxuXG4vKiBzdHlsZWxpbnQtZW5hYmxlICovXG5ALXdlYmtpdC1rZXlmcmFtZXMgc3BpbiB7XG4gICAgMCUge1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xuICAgICAgICAtbXMtdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xuICAgIH1cblxuICAgIDEwMCUge1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7XG4gICAgICAgIC1tcy10cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpO1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpO1xuICAgIH1cbn1cbkBrZXlmcmFtZXMgc3BpbiB7XG4gICAgMCUge1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xuICAgICAgICAtbXMtdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xuICAgIH1cblxuICAgIDEwMCUge1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7XG4gICAgICAgIC1tcy10cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpO1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpO1xuICAgIH1cbn1cbkAtd2Via2l0LWtleWZyYW1lcyBob3VyZ2xhc3MgIHtcbiAgICAwJSB7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDApO1xuICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC41NSwgMC4wNTUsIDAuNjc1LCAwLjE5KTtcbiAgICB9XG4gICAgNTAlIHtcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoOTAwZGVnKTtcbiAgICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMjE1LCAwLjYxLCAwLjM1NSwgMSk7XG4gICAgfVxuICAgIDEwMCUge1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxODAwZGVnKTtcbiAgICB9XG59XG5Aa2V5ZnJhbWVzIGhvdXJnbGFzcyB7XG4gICAgMCUge1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwKTtcbiAgICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNTUsIDAuMDU1LCAwLjY3NSwgMC4xOSk7XG4gICAgfVxuICAgIDUwJSB7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDkwMGRlZyk7XG4gICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjIxNSwgMC42MSwgMC4zNTUsIDEpO1xuICAgIH1cbiAgICAxMDAlIHtcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMTgwMGRlZyk7XG4gICAgfVxufVxuIl19 */",":root {\n // COLORS\n @each $color, $shades in $eui-base-tokens-colors {\n @each $shade, $value in $shades {\n --eui-base-color-#{$color + '-' + $shade}: #{$value};\n --eui-base-color-#{$color + '-' + $shade}-rgb: #{toRGB($value)};\n --eui-base-color-#{$color + '-' + $shade}-contrast: #{getContrast($value)};\n --eui-base-color-#{$color + '-' + $shade}-contrast-rgb: #{toRGB(getContrast($value))};\n }\n }\n\n // DEFAULTS 100s\n @each $color, $value in $eui-base-tokens-colors-100s {\n --eui-base-color-#{'' + $color}: #{$value};\n }\n\n // OTHER COLORS\n --eui-base-color-text: var(--eui-base-color-grey-100);\n --eui-base-color-link: var(--eui-base-color-primary-100);\n --eui-base-color-black: black;\n --eui-base-color-white: white;\n --eui-base-color: var(--eui-base-color-grey-100);\n\n // FONT-SIZES\n --eui-base-font-size: 16px;\n @each $font-size, $value in $eui-base-tokens-font-sizes {\n --eui-base-font-size-#{$font-size}: #{$value};\n }\n\n // // FONTS\n --eui-base-font-family: #{$eui-base-font-family};\n --eui-base-font-family-icons: #{$eui-base-font-family-icons};\n --eui-base-font-family-monospace: #{$eui-base-font-family-monospace};\n\n // ICON-SIZES\n --eui-base-icon-size: 1.5rem;\n @each $icon-size, $value in $eui-base-tokens-icon-sizes {\n --eui-base-icon-size-#{$icon-size}: #{$value};\n }\n\n @each $family, $sizes in $eui-base-tokens-fonts {\n $family-type: $family + '-';\n @if($family == ui) {\n $family-type: '';\n }\n\n @each $size, $definition in $sizes {\n --eui-base-font-#{$family-type}#{$size}: #{$definition};\n }\n }\n\n // SPACINGS\n @each $spacing, $value in $eui-base-tokens-spacings {\n --eui-base-spacing-#{$spacing}: #{$value};\n }\n\n // SHADOWS\n @each $shadow, $value in $eui-base-tokens-shadows {\n --eui-base-shadow-#{$shadow}: #{$value};\n }\n\n // Z-INDEXES\n @each $idx, $value in $eui-base-tokens-z-indexes {\n --eui-base-z-index-#{$idx}: #{$value};\n }\n}\n",":root {\n --eui-base-line-height: 1.25;\n --eui-base-scale-factor: 1;\n --eui-base-disabled-opacity: 0.45;\n\n --eui-base-border-radius: 3px;\n\n --eui-base-border: 1px solid var(--eui-color-grey-lighter);\n --eui-base-border-light: 1px solid var(--eui-color-grey-light);\n --eui-base-border-lighter: 1px solid var(--eui-color-grey-lighter);\n --eui-base-border-lightest: 1px solid var(--eui-color-grey-lightest);\n\n // Animations related\n --eui-base-animation-linear-out-slow-in-timing-function: cubic-bezier(0, 0, 0.2, 1);\n --eui-base-animation-fast-out-slow-in-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n --eui-base-animation-fast-out-linear-in-timing-function: cubic-bezier(0.4, 0, 1, 1);\n --eui-base-animation-ease-timing-function: cubic-bezier(0.25, 0.1, 0.25, 1); // ease\n --eui-base-animation-ease-in-out-timing-function: ease-in-out;\n\n --eui-base-animation-duration-fast: 0.25s;\n --eui-base-animation-duration-medium: 0.5s;\n --eui-base-animation-duration-slow: 1s;\n --eui-base-animation-duration-base: 500ms;\n --eui-base-animation-duration: var(--eui-base-animation-duration-base);\n\n --eui-base-animation-transition-base: all 0.2s #{var(--eui-base-animation-linear-out-slow-in-timing-function)};\n --eui-base-animation-transition-ease: all 0.2s #{var(--eui-base-animation-ease-timing-function)};\n --eui-base-animation-transition-ease-in-out: all 0.2s #{var(--eui-base-animation-ease-in-out-timing-function)};\n --eui-base-animation-transition-ease-in-out-1s: all 1s #{var(--eui-base-animation-ease-in-out-timing-function)};\n\n --eui-base-animation-delay: 0s;\n --eui-base-animation-direction: normal;\n --eui-base-animation-fill-mode: forwards; // this prevents the animation from restarting\n --eui-base-animation-background-color: var(--eui-base-color-primary-50); // #cfcfdf;\n\n // Extra colors\n --eui-base-color-accessible-focus: var(--eui-base-color-accent-110); // Carbon blue: #0f62fe;\n}\n",":root {\n // eUI APP\n --eui-app-header-height-default: 0px;\n --eui-app-header-height: 0px;\n --eui-app-header-height-active: 90px;\n --eui-app-header-height-shrink: 0px;\n\n --eui-app-top-message-height-default: 0px;\n --eui-app-top-message-height: 0px;\n --eui-app-top-message-height-active: 42px;\n\n --eui-app-toolbar-height-default: 0px;\n --eui-app-toolbar-height: 0px;\n --eui-app-toolbar-height-active: 55px;\n\n --eui-app-sidebar-width-default: 0px;\n --eui-app-sidebar-width: 0px;\n --eui-app-sidebar-width-active: 300px;\n --eui-app-sidebar-width-close-default: 0px;\n --eui-app-sidebar-width-close: 0px;\n --eui-app-sidebar-width-close-active: 64px;\n --eui-app-sidebar-header-height: 0px;\n --eui-app-sidebar-header-height-default: 0px;\n --eui-app-sidebar-header-height-active: 48px;\n --eui-app-sidebar-footer-height: 0px;\n --eui-app-sidebar-footer-height-default: 0px;\n --eui-app-sidebar-footer-height-active: 24px;\n\n // Page Layout\n --eui-page-header-with-subtitle-height: 4rem;\n --eui-page-header-without-subtitle-height: 2rem;\n\n --eui-page-column--size-s: 50px;\n --eui-page-column--size-m: 150px;\n --eui-page-column--size-l: 200px;\n --eui-page-column--size-xl: 250px;\n --eui-page-column--size-xxl: 300px;\n --eui-page-column--size-xxxl: 350px;\n --eui-page-column-footer-height: 3.5rem;\n\n // Misc\n --eui-border-state-width: 6px;\n\n // Colors\n // eUI App elements\n --eui-app-header-bg-color: var(--eui-base-color-white);\n --eui-app-header-title-color: var(--eui-base-color-grey-100);\n --eui-app-header-subtitle-color: var(--eui-base-color-grey-75);\n\n --eui-app-toolbar-color: var(--eui-base-color-white);\n --eui-app-toolbar-bg-color: var(--eui-base-color-primary-100);\n --eui-app-toolbar-border-bottom-color: var(--eui-base-color-primary-25);\n\n --eui-app-sidebar-bg-color: var(--eui-base-color-grey-2);\n --eui-app-sidebar-border-right-color: #f2f4f9;\n\n --eui-app-body-bg-color: var(--eui-base-color-grey-5);\n --eui-app-main-bg-color: var(--eui-base-color-grey-2);\n\n --eui-app-footer-color: var(--eui-base-color-font);\n --eui-app-footer-bg-color: var(--eui-base-color-grey-2);\n --eui-app-footer-border-top-color: #e8ebf1;\n}\n\n.xs, .sm {\n --eui-app-header-height: 0px;\n}\n",".eui-icon-svg {\n fill: currentColor;\n margin: 0;\n transform: scaleX(1) scaleY(1) rotateZ(0deg);\n transition: transform 300ms ease-in-out;\n}\n@each $size, $value in $eui-base-tokens-icon-sizes {\n .eui-icon-svg--size-#{$size} {\n height: #{$value};\n width: #{$value};\n };\n}\n@each $color, $shades in $eui-base-tokens-colors {\n @each $shade, $value in $shades {\n .eui-icon-svg--color-#{$color + '-' + $shade} {\n color: #{$value};\n fill: #{$value};\n };\n }\n}\n","// TODO v15 remove / replace in showczase\n\n.flex-container {\n align-items: center;\n display: flex;\n width: 100%;\n}\n\n// v v v IE11 FIXES -> TO BE DEPRECATED v v v\n// Flexbox / Bootstrap obvious overrides for IE/Vendors\n.d-flex {\n display: -webkit-box !important;\n display: -webkit-flex !important;\n display: -ms-flexbox !important;\n display: flex !important;\n}\n\n// Like .col definition with IE fix\n.ux-col {\n // A preferred size of 0 must have a unit to avoid being interpreted as a flexibility.\n // Defaults to 0% when omitted.\n // Source: MDN & MSDN\n flex: 1 0 auto;\n}\n","// TODO v15 transfer to styles base ?\n\n// HEADINGS\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\n.h1,\n.h2,\n.h3,\n.h4,\n.h5,\n.h6,\n.h7,\n.h8,\n.h9 {\n @include eui-font-family();\n color: inherit;\n // font-family: v(eui-base-font-family);\n // font-weight: normal;\n}\n\nh1,\n.h1 {\n @include eui-font(4xl, ui);\n line-height: v(eui-base-line-height);\n}\n\nh2,\n.h2 {\n @include eui-font(3xl, ui);\n line-height: v(eui-base-line-height);\n}\n\nh3,\n.h3 {\n @include eui-font(2xl, ui);\n line-height: v(eui-base-line-height);\n}\n\nh4,\n.h4 {\n @include eui-font(xl, ui);\n line-height: v(eui-base-line-height);\n}\n\nh5,\n.h5 {\n @include eui-font(l, ui);\n line-height: v(eui-base-line-height);\n}\n\nh6,\n.h6 {\n @include eui-font(m, ui);\n line-height: v(eui-base-line-height);\n}\n\n.h7,\n.small {\n @include eui-font(s, ui);\n line-height: v(eui-base-line-height);\n}\n\n.h8,\n.smaller {\n @include eui-font(xs, ui);\n line-height: v(eui-base-line-height);\n}\n\n.h9,\n.smallest,\n.tiny {\n @include eui-font(2xs, ui);\n line-height: v(eui-base-line-height);\n}\n\n\na,\na:not([href]):not([tabindex]) {\n color: v(eui-base-color-link);\n cursor: pointer;\n\n &:hover,\n &:focus {\n color: v(eui-base-color-link);\n text-decoration: underline;\n }\n}\n\na {\n background-color: transparent;\n text-decoration: none;\n}\n\na:focus {\n text-decoration: underline;\n}\n\nabbr[title] {\n text-decoration: none; // TODO: underline dotted is the default and recommended usage\n}\n\n.label, abbr, blockquote, del, label, mark, p {\n font-size: v(eui-base-font-size);\n}\n\nlabel {\n margin-bottom: v(eui-base-spacing-xs);\n}\n","/** Common weight name mapping\n @See the OpenType specification:\n https://docs.microsoft.com/en-us/typography/opentype/spec/os2#usweightclass\n The numerical values 100 to 900 roughly correspond to the following common weight names:\n 100 Thin (Hairline)\n 200\t Extra Light (Ultra Light)\n 300\t Light\n 400\t Normal\n 500\t Medium\n 600\t Semi Bold (Demi Bold)\n 700\t Bold\n 800\t Extra Bold (Ultra Bold)\n 900\t Black (Heavy)\n**/\n@mixin eui-font-family() {\n font-family: v(eui-base-font-family);\n font-size: v(eui-base-font-size);\n font-style: normal;\n font-weight: 400;\n}\n@mixin eui-font-family-light() {\n font-style: normal;\n font-weight: 300;\n}\n@mixin eui-font-family-normal() {\n font-style: normal;\n font-weight: 400;\n}\n@mixin eui-font-family-italic() {\n font-style: italic;\n font-weight: 400;\n}\n@mixin eui-font-family-bold() {\n font-style: normal;\n font-weight: 700;\n}\n@mixin eui-font-family-bold-italic() {\n font-style: italic;\n font-weight: 700;\n}\n\n@mixin eui-font-family-monospace() {\n font-family: v(eui-base-font-family-monospace);\n font-style: normal;\n font-weight: 400;\n}\n","@mixin eui-font($size: m, $family: ui) {\n $selected-family: map-get($eui-base-tokens-fonts, $family);\n $selected-font-definition: map-get($selected-family, $size);\n\n font: $selected-font-definition;\n}\n","// eUI 13+ only\n.eui-input-maxlength-wrapper {\n position: relative;\n width: 100%;\n\n .eui-input-maxlength {\n @include eui-font(xs, ui);\n background-color: v(eui-base-color-grey-10);\n border: 1px solid v(eui-base-color-grey-50);\n border-radius: v(eui-base-border-radius);\n color: v(eui-base-color-black);\n padding: 0 v(eui-base-spacing-2xs);\n position: absolute;\n right: calc(-1 * #{v(eui-base-spacing-xs)});\n top: calc(-1 * #{v(eui-base-spacing-xs)});\n z-index: v(eui-base-z-index-input-maxlength);\n\n &--invalid {\n background-color: v(eui-base-color-danger-100);\n border-color: v(eui-base-color-danger-100);\n color: v(eui-base-color-white);\n }\n }\n}\n","html {\n // Exposed CSS vars\n --eui-html-font-size: var(--eui-base-font-size);\n --eui-html-line-height: var(--eui-base-line-height);\n\n display: block;\n height: 100%;\n font-size: v(eui-html-font-size);\n line-height: v(eui-html-line-height);\n}\n","body {\n // Exposed CSS vars\n --eui-body-bg-color: var(--eui-app-body-bg-color);\n --eui-body-color: var(--eui-base-color);\n --eui-body-font-family: var(--eui-base-font-family);\n --eui-body-font-size: var(--eui-base-font-size);\n --eui-body-line-height: var(--eui-base-line-height);\n\n background-color: v(eui-body-bg-color);\n color: v(eui-body-color);\n font-family: v(eui-body-font-family);\n font-feature-settings: 'liga';\n font-size: v(eui-body-font-size);\n -moz-font-smoothing: antialiased;\n -webkit-font-smoothing: antialiased;\n font-style: normal;\n font-weight: normal;\n height: 100%;\n line-height: v(eui-body-line-height);\n margin: 0;\n text-align: left;\n text-rendering: optimizeLegibility;\n}\n","// Make viewport responsive\n//\n// @viewport is needed because IE 10+ doesn't honor <meta name=\"viewport\"> in\n// some cases. See https://timkadlec.com/2012/10/ie10-snap-mode-and-responsive-design/.\n// Eventually @viewport will replace <meta name=\"viewport\">.\n//\n// However, `device-width` is broken on IE 10 on Windows (Phone) 8,\n// (see https://timkadlec.com/2013/01/windows-phone-8-and-device-width/ and https://github.com/twbs/bootstrap/issues/10497)\n// and the fix for that involves a snippet of JavaScript to sniff the user agent\n// and apply some conditional CSS.\n//\n// See https://getbootstrap.com/getting-started/#support-ie10-width for the relevant hack.\n//\n// Wrap `@viewport` with `@at-root` for when folks do a nested import (e.g.,\n// `.class-name { @import \"bootstrap\"; }`).\n@at-root {\n @-ms-viewport {\n width: device-width;\n }\n}\n\n/* ==========================================================================\n #BOX-SIZING\n ========================================================================== */\n\n/**\n * More sensible default box-sizing:\n * css-tricks.com/inheriting-box-sizing-probably-slightly-better-best-practice\n */\n\nhtml {\n box-sizing: border-box;\n}\n\n* {\n &,\n &::before,\n &::after {\n box-sizing: inherit;\n }\n}\n\n// Avoid 300ms click delay on touch devices that support the `touch-action` CSS property.\n//\n// In particular, unlike most other browsers, IE11+Edge on Windows 10 on touch devices and IE Mobile 10-11\n// DON'T remove the click delay when `<meta name=\"viewport\" content=\"width=device-width\">` is present.\n// However, they DO support removing the click delay via `touch-action: manipulation`.\n// See:\n// * https://v4-alpha.getbootstrap.com/content/reboot/#click-delay-optimization-for-touch\n// * http://caniuse.com/#feat=css-touch-action\n// * https://patrickhlauke.github.io/touch/tests/results/#suppressing-300ms-delay\n\na,\narea,\nbutton,\n[role=\"button\"],\ninput,\nlabel,\nselect,\nsummary,\ntextarea {\n touch-action: manipulation;\n}\n\n// Suppress the focus outline on elements that cannot be accessed via keyboard.\n// This prevents an unwanted focus outline from appearing around elements that\n// might still respond to pointer events.\n//\n// Credit: https://github.com/suitcss/base\n[tabindex=\"-1\"]:focus {\n outline: none !important;\n}\n\n// Always hide an element with the `hidden` HTML attribute (from PureCSS).\n[hidden] {\n display: none !important;\n}\n\np,\nlabel,\n.label,\nblockquote,\nabbr,\nmark,\ndel {\n font-size: v(eui-base-font-size);\n}\n\n.label,\nlabel {\n align-items: center;\n display: inline-flex; // Do NOT change!\n font-style: normal;\n font-weight: normal;\n padding-right: v(eui-base-spacing-m); // For inline display\n position: relative; // Mandatory! Do NOT change!\n}\n\nem {\n //font-family: v(eui-font-family-italic); // do NOT use mixin here!\n font-style: italic;\n}\n\noptgroup,\nstrong,\nb {\n font-weight: bold;\n\n & i,\n & em {\n font-style: italic;\n }\n}\n\ncode,\nkbd,\npre,\nsamp {\n font-size: v(eui-base-font-size);\n @include eui-font-family-monospace;\n}\n\ncode {\n color: #cc367b; // WCAG2 AA contrast ratio compliant: 4.59\n font-size: 95%;\n word-wrap: break-word;\n}\n\nsmall {\n font-size: 80%;\n}\n\nkbd {\n background-color: v(eui-base-color-grey-75); // WCAG2 AA compliant\n border-radius: v(eui-base-border-radius);\n color: v(eui-base-color-white);\n font-size: v(eui-base-font-size-s);\n padding: 1px v(eui-base-spacing-2xs);\n}\n\npre {\n color: v(eui-base-color);\n display: block;\n font-size: 87.5%;\n margin-bottom: v(eui-base-spacing-m);\n margin-top: 0;\n overflow: auto;\n}\n\nblockquote {\n border-left: v(eui-base-spacing-xs) solid v(eui-base-color-grey-20);\n padding: v(eui-base-spacing-xs) v(eui-base-spacing-m);\n}\n\nmark,\n.mark {\n background-color: v(eui-base-color-accent-25);\n padding: v(eui-base-spacing-2xs);\n}\n","// stylelint-disable no-descending-specificity\ntable.eui-table-default {\n background-color: transparent;\n border-collapse: collapse;\n border-spacing: 0;\n color: v(eui-base-color-font);\n max-width: 100%;\n overflow: auto;\n position: relative;\n\n // Overall settings (default)\n thead > tr > th,\n tbody > tr > td,\n tfoot > tr > td {\n vertical-align: top;\n }\n\n tr > th,\n tr > td {\n padding: v(eui-base-spacing-s);\n }\n\n thead {\n th {\n border-bottom: 1px solid v(eui-base-color-grey-10);\n color: v(eui-base-color-grey-75);\n font-size: v(eui-base-font-size);\n padding: v(eui-base-spacing-m) v(eui-base-spacing-s);\n vertical-align: middle;\n @include eui-font-family-bold;\n }\n\n tr {\n background: v(eui-base-color-grey-5);\n border-top: 0;\n }\n }\n\n // Striped & hovered tables by default (UX)\n tbody {\n -webkit-overflow-scrolling: touch; // optional - enable iOS momentum scrolling\n\n tr:nth-of-type(odd) {\n background-color: v(eui-base-color-white);\n\n &:hover {\n background-color: v(eui-base-color-grey-5);\n }\n }\n\n tr:nth-of-type(even) {\n background-color: v(eui-base-color-grey-5);\n\n &:hover {\n background-color: v(eui-base-color-white);\n }\n }\n }\n\n tr {\n border-bottom: 1px solid v(eui-base-color-grey-20);\n display: table-row;\n }\n\n // Compact table\n &--compact {\n thead {\n th {\n padding: v(eui-base-spacing-xs) v(eui-base-spacing-s);\n }\n }\n\n tr > td {\n padding: v(eui-base-spacing-2xs) v(eui-base-spacing-s);\n }\n }\n\n // Responsive table\n &--responsive {\n display: block;\n width: 100%;\n\n &--bordered {\n border: 0; // Prevent double border on horizontal scroll due to use of `display: block;`\n }\n }\n\n // Bordered table\n &--bordered {\n th,\n td {\n border: 1px solid v(eui-base-color-grey-20);\n }\n }\n\n // Shadowed table\n &--shadowed {\n box-shadow: v(eui-base-base-shadow-1);\n }\n\n // NoWrap table content (also disables ellipsis)\n &--nowrap {\n white-space: nowrap;\n\n thead > tr > th,\n tbody > tr > td,\n tfoot > tr > td {\n white-space: nowrap;\n }\n }\n\n // Centered table\n &--centered {\n display: table;\n margin: 0 auto;\n width: auto;\n }\n\n // Middle aligned cells content\n &--align-middle {\n thead > tr > th,\n tbody > tr > td,\n tfoot > tr > td {\n vertical-align: middle;\n }\n }\n}\n\n// // RESPONSIVE LAYOUT (PROTO)\n// @include media($eui-bkp-mobile) {\n// table.ux-table {\n// display: block;\n\n// &.ux-table--responsive {\n// display: contents;\n\n// &.ux-table--bordered {\n// tr {\n// border: 1px solid v(eui-base-color-grey-light);\n// }\n// }\n\n// &.ux-table--compact {\n// td {\n// padding-bottom: v(eui-base-spacing-3xs);\n// padding-top: v(eui-base-spacing-2xs);\n\n// &::before {\n// top: v(eui-base-spacing-2xs);\n// }\n// }\n// }\n\n// // Force table to be like cards\n// thead,\n// tbody,\n// th,\n// td,\n// tr {\n// display: block;\n// }\n\n// // Hide table headers but not display: none for accessibility\n// thead tr {\n// left: -9999px;\n// position: absolute;\n// top: -9999px;\n// }\n\n// tr {\n// height: auto;\n// }\n\n// th,\n// td {\n// // Behave like a \"row\"\n// border: none;\n// border-bottom: 1px solid v(eui-base-color-grey-lightest);\n// padding: v(eui-base-spacing-xs);\n// padding-left: 50%;\n// position: relative;\n// }\n\n// td::before {\n// color: v(eui-base-color-grey-dark);\n// content: attr(data-col); // Like a table header column\n// font-weight: bold;\n// left: v(eui-base-spacing-xs);\n// padding-right: v(eui-base-spacing-xs);\n// position: absolute;\n// // Mimic top & left paddings\n// top: v(eui-base-spacing-xs);\n// white-space: nowrap;\n// width: 45%;\n// }\n// }\n// }\n// }\n","// GLOBAL COMPACT THEME\n///////////////////////\nhtml.eui-t-compact {\n // Exposed CSS variables\n --eui-base-font-size: 14px; // Font size base for compact theme\n --eui-base-line-height: 1.25; // Unitless number value is multiplied by the element's font size\n // Setup\n font-size: var(--eui-base-font-size); // Applies the defined custom font size\n line-height: var(--eui-base-line-height); // Applies the defined custom line height ratio\n}\n\n// FORM ELEMENTS\n/////////////////\nform.eui-t-form-compact {\n // Exposed CSS variables\n --eui-base-font-size: 14px; // Font size base for compact theme\n --eui-base-line-height: 1.25; // Unitless number value is multiplied by the element's font size\n --eui-input-group-spacing: var(--eui-base-spacing-xs); // Spacing between form groups elements\n // Internals\n // See: eui-styles-base\\src\\styles\\02-base\\mixins\\theming\\_compact-vars.scss\n @include eui-compact-get-tokens();\n // Setup\n font-size: var(--eui-base-font-size); // Applies the defined custom font size\n line-height: var(--eui-base-line-height); // Applies the defined custom line height ratio\n\n // Internals\n .eui-input-group {\n margin-bottom: var(--eui-input-group-spacing);\n\n label {\n margin-bottom: var(--eui-base-spacing-2xs);\n }\n }\n\n .eui-input-group-addon-item {\n min-height: calc(2.5 * #{v(eui-base-spacing)});\n min-width: calc(2.5 * #{v(eui-base-spacing)});\n padding: calc(#{v(eui-base-spacing-xs)} - 1px);\n }\n}\n\n// TABLE\n/////////////////\n.eui-table.eui-t-table-compact {\n // Exposed CSS variables\n --eui-base-font-size: 14px; // Font size base for compact theme\n --eui-base-line-height: 1.25; // Unitless number value is multiplied by the element's font size\n --eui-table-header-padding: var(--eui-base-spacing-s); // Table header spacer set to 0.75rem\n --eui-table-row-padding: var(--eui-base-spacing-2xs); // Table body row spacer set to 0.25rem\n --eui-table-footer-padding: var(--eui-base-spacing-s); // Table footer spacer set to 0.75rem\n // Internals\n @include eui-compact-get-tokens();\n // Setup\n font-size: var(--eui-base-font-size); // Applies the defined custom font size\n line-height: var(--eui-base-line-height); // Applies the defined custom line height ratio\n\n // Internals\n thead {\n tr {\n height: auto;\n\n th {\n padding: var(--eui-table-header-padding) var(--eui-base-spacing-s);\n }\n }\n }\n\n tbody {\n tr {\n height: auto;\n\n td {\n padding: var(--eui-table-row-padding) var(--eui-base-spacing-s);\n }\n }\n }\n\n tfoot {\n tr {\n height: auto;\n\n td {\n padding: var(--eui-table-footer-padding) var(--eui-base-spacing-s);\n }\n }\n }\n}\n\n// CARD\n/////////////////\n.eui-card.eui-t-card-compact {\n // Exposed CSS variables\n --eui-base-font-size: 14px; // Font size base for compact theme\n --eui-base-line-height: 1.25; // Unitless number value is multiplied by the element's font size\n --eui-card-title-size: var(--eui-base-font-size-m); // Card title font size\n --eui-card-subtitle-size: var(--eui-base-font-size-s); // Card subtitle font size\n // Internals\n @include eui-compact-get-tokens();\n // Setup\n font-size: var(--eui-base-font-size); // Applies the defined custom font size\n line-height: var(--eui-base-line-height); // Applies the defined custom line height ratio\n\n // Internals\n .eui-card {\n &-header {\n &__title-container {\n &-title,\n &-title .eui-label {\n font-size: var(--eui-card-title-size);\n }\n\n &-subtitle,\n &-subtitle .eui-label {\n font-size: var(--eui-card-subtitle-size);\n }\n }\n\n &__urgent-indicator {\n &::after {\n font-size: var(--eui-base-font-size-2xl);\n }\n }\n }\n }\n}\n","@mixin eui-compact-get-tokens($ratio: 0.875) {\n --eui-compact-ratio: #{$ratio};\n @each $spacing, $value in $eui-base-tokens-spacings {\n --eui-base-spacing-#{$spacing}: calc( #{var(--eui-compact-ratio)} * #{$value} );\n }\n}\n","// IE10+ SVG's aspect ratios and sizes fix\n@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {\n img[src$=\".svg\"] {\n width: 100%;\n }\n}\n@media screen {\n // IE Fix: Bicubic Scaling for Images & full width background (EC logo)\n img {\n background-repeat: no-repeat;\n background-size: 100%;\n -ms-interpolation-mode: bicubic;\n }\n}\n","// COOKIE CONSENT\n.cookie-consent-banner {\n display: block !important;\n min-width: 50% !important;\n position: absolute !important;\n right: 50% !important;\n top: v(eui-base-spacing-m) !important;\n transform: translateX(50%) !important;\n z-index: v(eui-base-z-index-max) !important;\n box-shadow: v(eui-base-shadow-24) !important;\n background: v(eui-base-color-primary) !important;\n color: var(eui-base-color-white) !important;\n}\n",".eu-app-loader-wrapper {\n position: fixed;\n display: block;\n top: 50%;\n left: 50%;\n width: 270px;\n margin-left: -135px;\n margin-top: -80px;\n}\n\n.eu-app-loader-stars-flag-wrapper {\n background-color: #000099;\n width: 270px;\n height: 160px;\n padding-top: 10px;\n border: 1px solid #e4e4ff;\n box-shadow: 0 10px 20px rgba(0,0,0,0.19), 0 6px 6px rgba(0,0,0,0.23);\n}\n\n.eu-app-loader-stars {\n background: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAcIAAAHCCAMAAABLxjl3AAAApVBMVEUAAAD/zAD/zAD/zQD/zAD/wwD/zgD/zAD/xgD/zgD/zAD/zAD/zQD/zAD/zAD/zQD/zAD/zAD/zAD/zAD/zAD/zAD/zAD/zAD/zQD/zAD/zQD/zAD/zAD/zgD/0gD/yQD/zAD/zAD/zAD/ywD/zAD/zAD/zAD/zAD/zAD/zAD/zQD/zAD/zAD/zAD/ywD/zAD/zAD/zQD/xwD/zAD/zAD/zAD/zABK5QiJAAAANnRSTlMAVflm/QQzKQgUge5RxNHKkR3kb/ayv0GKdhneXh8QDWuqnDa389ikey8k6NRYPzqUSBJhc+LEcvkFAAAQBUlEQVR42uzd6XLaUAwFYGFwwDHGLGbfl5CtJGnTnPd/tFKauJ6JDRh8gxTre4Lzo+PhRuoRKaWUUkoppZRSSimllFJKKaUSLJekZFssSMn29kZKtDLwQEqyPtAnJZkP+KQEG2NrTEquFrZapOTysOWREmtQwlZpQEqqGXZmpKTqYKdDSiinhJ2SQ0qmIt4VScm0wrsVKZF+WXhn/SIl0StCI1IStRFqkxJoaiFkTUnJs0HEhhRn5Vkhho8IvxBjptNgNu4snMC6I8VGeY3U1mVSjFTqSKleIZWh+3s6V9VFCm6VQ+bv5OWFztbwcDSvwSPzNzIc0vkqPRypV+GS+dsYZ7Sj9NTEEZpPnDJ/E62sdpScNg6aT3hl/h687HaURgH2Ckb8Mn8Dg1KGO0rlGvaolTlmlm+GrdlXPBHrFZ6ZxevE7CiZeCK6Vb6ZZXNKWe8ojS3EsMacM4tWxM4rZWaJWEvOmUVbZb6j1EOsHufMkk0s7FgTysoQsYacM0s2ynxH6R4J7vlmFq2d+Y7SNRJc880s2TTAu2BK2VgjwQ++mSXbIFSgTJSRqMw1s2hzhOaUiTtE+D4i7rhmlqwSIHRToSzUECpd2/Z1CaEa18ySVRFRpQw8INTs0la3idADz8xCNJZXMVaIWF3FWDYolT4+tJ1PU8Q+z8xC2LenbXve2qmrZnaCIoVaFv7xeWYWo+siNbdL6TQ+HhBliij/wD8NjpkFcVZIaeVQSq1wMhg7RWxxzCxKy0IKVuvEqhm3mjRF7HDMLMvVGkdbX51YNeONKcbY25XQ8Mssza85QgZWzWa7xyDF2j0Ri/wyyzO6wRFuRnQKH49dStR9hM8vs0APPg7yxnQKx+o4tIfTsRxumUXafdGShd/C9Po9OqDX55ZZqG4TezS7dKIJHTThllkqZyXvYSUxs1EtS97DSmJmk5bx256sH1YSMxt0j1is//OsxMwGXSftKDEmMbNBa8RaE2MSM5tTRgLGZSISMxt0hwSMG30kZjaohgQ1YktiZnMekIDxoSyJmQ3qI+LtDSHGh7IkZjbIx3+L6XSBD4wPZUnMbM4YIbdAWwUXIaYrfBIzG9T6NGUbe/iL8aEsiZkN8qJTtuhEjvGhLImZzRmU4qZs3SbA91CWxMwGzSIr8xFOm/GhLImZDepEV+ajigHbQheJmc1xSollWuUa00IXiZkNet1TplWp8yx0kZjZIA83VUpUveH4+05iZnMmVq1BezRq/ApdJGY26PfCpr3sxW9iRmJmgwZ0ELtXlsTMSimllFJKKaWUUkqpLzHRk+Mn2fAZbbRytnOQlQ6fxUUvyFddR0bsgM2QeGohd4UdWejC4tKvvwH0MvEJXgAuPyLmwKN+SVOzH9n0608DAM+kUnrmc6mkgK06qZTqfPr159h6I5VSE1u3xEDl5v28o0plyedSSRU7PVKp9PhcKrnFzpBUKkOAyZe04ua8huzMMjf38l/Sn3mvITu3zO0nXdoi5zVkZ5e5LejCbDfnNWRnl7m5Nl1WN+81ZGeXuV18RPCS8xqys8vcLj4isB9zXkN29nf04iOC57zXkGVR5vZMX2Mw2xQ+ayNiWIhRzPlf3pbFQowhItqFzzazAWWuGOAEpRebcs1elHCCoEgGNHyk1tQ5Ij03kZrfIAOifWN6Ci6NyRwpGL7+9NRECkFuTsEdMgqQQvOJDHLaOFpN/1wTrYc6Wtsho+y+hePc8lgLYWJ6i+NYfZtSMPgPyuUwymSl6vL5dFXqOKiTv5rjgxoeDqpX6GtUXb2nedovej6frj/s3V1X00AQxvExbUlD3+x7sVbbKgW0RcHjfP+PJoImm7hJCxfrRP+/Wy7gPIezp7sznan+h1pyGXzRJ/reUAJw/qG4DL7oimjo6JqPuAy+7IpoZxVw0lGP5v+6T/NkZ0316CQS3pvin2KnL9K0rub9xfn6ay0w0xdp25V6rSW8mRbZ6TA3rH2pXjMJLmlqnp2+SNO66tdMJLSGFpjpi7TtSks0JLSPWmSnw9ywdkdLfJTA7iNVTtLnu9My0b2E9VYduxkn6Ym26pjt1PFWwprmn9fHkZm+SNNaHU1F43zRZypBvY8Kz+vxXlO3ghK3mtrH+aJP6CE0B/d53a0iMjqh0lf36CoWfQ4S0qb4vO4uth1xkh77/kKn6yn6bCSg95N8r5W72JYhNOW+ZKuAi1XE0ENoummvVbGKyOiEKgt/ZTCZhi8RXJVVBucjRidUWJZVBhuTUCUC96m2H5c3mlI09DorbxON+2FLBHdVvVbjiJO0/ByNxlV9gXcSyqZyn+bZUkcCj5Euzyr3kG4kkPZlf1jduRwxhMbjJtq2q/eQXrYkjMP22G9qcJJ6LBpSrbV9JWG8k6PoQyQ3AAAAAAAAAAAAAAAAAAAAAAAAAAAAAPg3fPjPt2OXqFPOWwb++tQp5+/fBX+qUc6x6idBUZ1yvlC9EBTVKeeB6kBQVKOcV/pgJcirU85jfTAW5NUp554+6AnyapTzm+avVYlw1SnntT5aC1x1ynmmj2YCV41yTprpqkRk6pRzI1uViEydcv6YrUpEpkY530fOqkSkapTzN3dVIjL1yXmqqakgU5uc30fqrkpEqjY5H9RxEGTs5RyvX3kM1DF45bGmGmwm5+tIXyC6FpQIn3O802fbxYJS4XNuv9Znet0WOAzk3O3oM3S6ApeJnIc9PVlvKHBYybm90BMtOERzDOV8O9ITjG4FLlM5J1M9asPCvRxzOb+daKUJL955BnOO+1qhz2Uwx2bO7ddcBk9lNuduh8vgSQznvIrUI6IzP8d0zh/Uiy/8umznvFAvNte7bOe8VK+lIGM65xstcSNImc75XEucCzKWc95pib0gYzjnWEvxNuMwnPO1OgYDddAt47Kbc19TzfNW67ypqb4gYzbnT5oazeXBPK1uMYQmx2zOF/rbNClUtxhCk2c154E+mTQkNY70J4bQ5BnNeahP9rE44r0+oe/JYTTncVaxKla3GEJTZDPnXlnFqtthdEKRyZwfR6D0VuKx6jGEpsBkzuvHS4p4tc6bjE7Is5jzQD/PpdT8M59JcwzmnESzpPLns4ghNA6DOV8s5IgFt3uXvZzfyVE0c7vIGQAAAAAAAAAAAAAAAMAP9u5EKXUgiAJok8WwI7ssyiKLCgio7/7/pz3qaVERJ0BiZph+9PkA65ZFTZF0M1cIIYQQQgghhBBCCCGEEEJcjwepSU9kZc9P6Otyk1ciLXsusSs1fBKx+Y0SWWLgoE0itjacAdlhBWxIxLYBbPkSMQIWcpLG5i+AEVlh0ACwJhHTGkDDjpM0g51bEjHdYseOIs8Rdv6QiKmGnTlZIDuVSsrklZNTGwqRi1JJmcgdYMtJOpdKykR6gCUnabYglZS/qZwsXP4k3Uol5e8qJ7d0aWN8mZFIUjk5pgvzC1JJ+bvKyYJPl9WWSspfVk5efESwkUrK31VOXnxE4C8glZS/OkcvPiJYA5BKyvg6CFmTGd3hKvNTEyG9jIJ75W/eHt2MQg8hzcxPq2GXUuc2kIC38emq+WMPCTRc0qBaQWw1mSPSuobYKlXSws97iGdkz5bdBT2MEI+X90mX1xpiaPRJ/NNvIIbaK2mUa+JsZXldsxeUcbZmjrTyOw7OM7djLcQSgznO43R8UjH/gSrYMMq0SrFgz9GVvcVJLam8/6Fawkm3WYpi9gPl5a/8YTDyG709R9fxD1RPHgYTfaMvVckgP+/Jw2CiR0SLjq52TR4G03xErLXJuFwBCt4NiaNuPCgUcmRe9zCKPXuRVitCxeuSeUMcsGYv0m5zKA3JvBYO2bNhbrHsFEotMi7n4Tt79iKtVoSalyPTXBywZi/SbnNEcMm0CQ7Zs2FusWwBESZk2JsDyEka3xZRnDcyq4+QWUtO0jONEdKaIaRPZjW/v16vO9bsRVrNL2DPqX8f+jTJqIFz8Ho9WGLvlUSEV+wtg4Ohj+FLaFbh1+vhKaJcnXDUJnx0HQ59VmTSSPF6PVPAp5qcpKd+v1AoKoY+IzJo0FDtWt2XsCOX0Jz+/ULpXjFFNHsJTVG9a+XnPbk64Zg79WQw1zQ/IphHTQbbNbk64Yhe1GTQbRgeEWSnoV0r1QdKhoZKN9FrokHZ7Ihge2zXqu7ISRp9jjr1Y3uBWzJlhGmRIt30UCOhUEPvhiIVpxiRIdlpuXp8c9mRS2gUnp1xlo6olqc+mbEa+3ScKyepwp1Lx/njDJnxQCfJHqL834QQQgghhBBCCCGEEOfbMlwB55hZoznDnyVyzKzRYkHscMyszzPDphKOmTXKM2wq4ZhZoyWwJGY4ZtYnYNhUwjGzRk8Mm0o4ZtaojJ0KscIxsz4vDJtKOGbW6AP/fBAjHDNrVMI/JWKEY2Z9qvjC6CZhjpk1quNLndjgmFmjFr60iA2OmfXpeqELHZngmFkjF3suMcExs0YT7E2ICY6Z9ck5364hY4FjZo3eEfJOLHDMnIogP3R/KiOk7P40zAd0LsmsmesgAcel80lmze4r9vRp/s+ZdfLznj19mv9xZq3aNcN9mo+P/DJbLtc026c5HvPLbL1ze0idD0rBnz/8MtsvKJvr0wyAF26ZOcjeGuvT7AAdbpl5KBYM9WlWgAq3zExUW0aqgO+xc88rMxt+xzHQC17HTp1XZkYee1DqPVK6W0olXpk5eXM0FN8oputel1NmVtpQeiVKuSZzyCkzKxsobVLfUmpxysyJv0CIhs6nfU2ml+OTmZU1IqxT31Jy+WRm5RYR7lLfUprwycxKDxF6qX97dN64ZGblBpFuUt9S6nPJzModQkYjDadSE3tNLplZmWFv2ifqT7E3S7smE86AR2ZWnsNTtsOJ3DOlYIWQFY/MrOTDU7bDiVyeYgmGGYUKQioZheFLapmv8RKaJT4ttoqJ3JLieUq27fmUXuYrvIQmwKdJl0K6E3wK4v65GWKbBellvsZLaJ6+esFV1Xk7Txr2IhRbEqllvsZLaCr7KZtyIldJby9CrVC0ITNnL9iZD9TVeQkvdKmWcLZS1Y7MjH3sq4AV+o1kF7pk73Cmu6wtmfmaYRlQpGCJJSXxWjtvZd6mzExVT/RpZsdOVdvq/OjBrsw8dd7phPcPSqbfwFGNvn2ZOfLpJF/P6nw5sDHz3/buJAdBIArCcMchjohTBDQYExPjtH73P5oLErUR0CVl/98WDgCpyiv4hnMq8/KmEyrz6vLqtmfuoOJolQKtXEtK6Sip29FREncxT8jJuqqx+QJO1lWdrCzUZF3VwD4FmqyrOtubOLZCkMm6qpl3TMs7wDVzEHC1p2XyOsDFvIuOzD+m5aeImUP7xVZYd0slswA7SpoWVrgP/F4E8y4yVtXJ4HDOvIuKqC4ZnE6Yd5Gw7ZlZlLsKecS8i4JDw2Xl/rjHvEv7xXZLXK3kxjdp2406m1Hj800nhMvLyrLUfZHyd99u+19eAQAAAAAAAAAAAAAAAPAPHlKDqPy5lE/1AAAAAElFTkSuQmCC');\n background-size: cover;\n width: 140px;\n height: 140px;\n position: absolute;\n left: 25%;\n animation: rotation 10s ease-in-out infinite;\n}\n\n@keyframes rotation {\n to {\n transform: rotate(1turn);\n }\n}\n\n@-ms-keyframes rotation {\n to {\n transform: rotate(1turn);\n }\n}\n\n@-o-keyframes rotation {\n to {\n transform: rotate(1turn);\n }\n}\n\n@-webkit-keyframes rotation {\n to {\n transform: rotate(1turn);\n }\n}\n\n@-moz-keyframes rotation {\n to {\n transform: rotate(1turn);\n }\n}\n\n\n.eu-app-loader-bars-wrapper {\n\twidth: 100%;\n\theight: 6px;\n left: 50%;\n bottom: -30px;\n position: absolute;\n}\n\n.eu-app-loader-bars-border {\n background: #4a4a4a;\n border: transparent;\n\theight: 100%;\n\twidth: 100%;\n\tposition: relative;\n\tleft: -50%;\n\ttop: -50%;\n\tpadding: 1px;\n}\n\n.eu-app-loader-bars-whitespace {\n\toverflow: hidden;\n\theight: 100%;\n\twidth: 100%;\n\tmargin: 0 auto;\n\toverflow: hidden;\n\tposition: relative;\n}\n\n.eu-app-loader-bars-line {\n\tposition: absolute;\n\theight: 100%;\n\twidth: 100%;\n\tbackground-color: rgba(255,255,255,0.98);\n\tanimation: cssload-slide 2.25s steps(40) infinite;\n\t\t-o-animation: cssload-slide 2.25s steps(40) infinite;\n\t\t-ms-animation: cssload-slide 2.25s steps(40) infinite;\n\t\t-webkit-animation: cssload-slide 2.25s steps(40) infinite;\n\t\t-moz-animation: cssload-slide 2.25s steps(40) infinite;\n}\n\n\n\n@keyframes cssload-slide {\n\t0% {\n\t\tleft: -100%;\n\t}\n\n\t100% {\n\t\tleft: 100%;\n\t}\n}\n\n@-o-keyframes cssload-slide {\n\t0% {\n\t\tleft: -100%;\n\t}\n\n\t100% {\n\t\tleft: 100%;\n\t}\n}\n\n@-ms-keyframes cssload-slide {\n\t0% {\n\t\tleft: -100%;\n\t}\n\n\t100% {\n\t\tleft: 100%;\n\t}\n}\n\n@-webkit-keyframes cssload-slide {\n\t0% {\n\t\tleft: -100%;\n\t}\n\n\t100% {\n\t\tleft: 100%;\n\t}\n}\n\n@-moz-keyframes cssload-slide {\n\t0% {\n\t\tleft: -100%;\n\t}\n\n\t100% {\n\t\tleft: 100%;\n\t}\n}\n\n\n.eu-app-loader-text {\n color: #ececec;\n text-align: center;\n font-size: 18px;\n padding-top: 150px;\n}\n","#loader-wrapper {\n height: 100%;\n left: 0;\n position: fixed;\n top: 0;\n width: 100%;\n z-index: 1000;\n\n #loader {\n -webkit-animation: spin 2s linear infinite; /* Chrome, Opera 15+, Safari 5+ */\n animation: spin 2s linear infinite; /* Chrome, Firefox 16+, IE 10+, Opera */\n animation: hourglass 5s linear infinite;\n border: 10px solid transparent;\n border-radius: 50%;\n border-top-color: v(eui-base-color-warning-100);\n display: block;\n height: 200px;\n left: 50%;\n margin: -100px 0 0 -100px;\n position: relative;\n top: 50%;\n width: 200px;\n\n &::before {\n -webkit-animation: spin 2s linear infinite; /* Chrome, Opera 15+, Safari 5+ */\n animation: spin 2s linear infinite; /* Chrome, Firefox 16+, IE 10+, Opera */\n animation: hourglass 4s linear infinite;\n border: 10px solid transparent;\n border-radius: 50%;\n border-top-color: v(eui-base-color-danger-100);\n bottom: 5px;\n content: \"\";\n left: 5px;\n position: absolute;\n right: 5px;\n top: 5px;\n }\n\n &::after {\n -webkit-animation: spin 1s linear infinite; /* Chrome, Opera 15+, Safari 5+ */\n animation: spin 1s linear infinite; /* Chrome, Firefox 16+, IE 10+, Opera */\n animation: hourglass 3s linear infinite;\n border: 10px solid transparent;\n border-radius: 50%;\n border-top-color: v(eui-base-color-primary-100);\n bottom: 20px;\n content: \"\";\n left: 20px;\n position: absolute;\n right: 20px;\n top: 20px;\n }\n }\n}\n\n/* stylelint-enable */\n@-webkit-keyframes spin {\n 0% {\n -webkit-transform: rotate(0deg);\n -ms-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n\n 100% {\n -webkit-transform: rotate(360deg);\n -ms-transform: rotate(360deg);\n transform: rotate(360deg);\n }\n}\n@keyframes spin {\n 0% {\n -webkit-transform: rotate(0deg);\n -ms-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n\n 100% {\n -webkit-transform: rotate(360deg);\n -ms-transform: rotate(360deg);\n transform: rotate(360deg);\n }\n}\n@-webkit-keyframes hourglass {\n 0% {\n transform: rotate(0);\n animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);\n }\n 50% {\n transform: rotate(900deg);\n animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\n }\n 100% {\n transform: rotate(1800deg);\n }\n}\n@keyframes hourglass {\n 0% {\n transform: rotate(0);\n animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);\n }\n 50% {\n transform: rotate(900deg);\n animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\n }\n 100% {\n transform: rotate(1800deg);\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../../../../../../../node_modules/@eui/styles-base/src/styles/01-ecl/all/full-css/ecl-reset.scss","eui.scss","../../../../../../../node_modules/@eui/styles-base/src/styles/03-vars/_tokens.vars.scss","../../../../../../../node_modules/@eui/styles-base/src/styles/03-vars/_other.vars.scss","02b-base-vars/_layout.vars.scss","../../../../../../../node_modules/@eui/styles-base/src/styles/05-assets/icons-svg/_icons-generics.scss","../../../../../../../node_modules/@angular/material/core/ripple/_ripple.scss","../../../../../../../node_modules/@angular/cdk/a11y/_index.scss","../../../../../../../node_modules/@angular/cdk/overlay/_index.scss","../../../../../../../node_modules/@angular/cdk/text-field/_index.scss","../../../../../../../node_modules/@angular/material/core/focus-indicators/_private.scss","../../../../../../../node_modules/@angular/material/core/style/_layout-common.scss","../../../../../../../node_modules/@angular/material/core/ripple/_ripple-theme.scss","../../../../../../../node_modules/@angular/material/core/option/_option-theme.scss","../../../../../../../node_modules/@material/theme/_css.scss","../../../../../../../node_modules/@material/list/_evolution-mixins.scss","../../../../../../../node_modules/@angular/material/core/option/_optgroup-theme.scss","../../../../../../../node_modules/@angular/material/core/selection/pseudo-checkbox/_pseudo-checkbox-theme.scss","../../../../../../../node_modules/@angular/material/core/_core-theme.scss","../../../../../../../node_modules/@material/elevation/_elevation-theme.scss","../../../../../../../node_modules/@angular/material/datepicker/_datepicker-theme.scss","../../../../../../../node_modules/@material/menu-surface/_mixins.scss","../../../../../../../node_modules/@material/dom/_dom.scss","05-material/_overrides.scss","02-base/mixins/_eui-scrollbars.scss","../../../../../../../node_modules/@eui/styles-base/src/styles/02-base/mixins/utils/_media.scss","06-shared/_flex.scss","06-shared/_typography.scss","../../../../../../../node_modules/@eui/styles-base/src/styles/02-base/mixins/_eui-font-family.scss","../../../../../../../node_modules/@eui/styles-base/src/styles/02-base/mixins/_eui-font.scss","06-shared/_eui-input-maxlength.scss","../../../../../../../node_modules/@eui/styles-base/src/styles/04-elements/_html.scss","../../../../../../../node_modules/@eui/styles-base/src/styles/04-elements/_body.scss","../../../../../../../node_modules/@eui/styles-base/src/styles/04-elements/_shared.scss","07-elements/eui-table-default/_eui-table-default.scss","08-themes/compact/_eui-t-compact.scss","../../../../../../../node_modules/@eui/styles-base/src/styles/02-base/mixins/theming/_compact-vars.scss","10-media/_ieimgfix.scss","11-extras/_cookie-consent.scss","11-extras/_preloader.scss"],"names":[],"mappings":"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CA,YJ00BZ,CI50BQ,+BACI,aAAA,CACA,YJ+0BZ,CIj1BQ,+BACI,aAAA,CACA,YJo1BZ,CIt1BQ,+BACI,aAAA,CACA,YJy1BZ,CI31BQ,8BACI,aAAA,CACA,YJ81BZ,CIh2BQ,8BACI,aAAA,CACA,YJm2BZ,CIr2BQ,8BACI,aAAA,CACA,YJw2BZ,CI12BQ,8BACI,aAAA,CACA,YJ62BZ,CI/2BQ,8BACI,aAAA,CACA,YJk3BZ,CIp3BQ,8BACI,aAAA,CACA,YJu3BZ,CIz3BQ,6BACI,aAAA,CACA,YJ43BZ,CI93BQ,6BACI,aAAA,CACA,YJi4BZ,CIn4BQ,6BACI,aAAA,CACA,YJs4BZ,CIx4BQ,6BACI,aAAA,CACA,YJ24BZ,CI74BQ,4BACI,aAAA,CACA,YJg5BZ,CIl5BQ,iCACI,aAAA,CACA,YJq5BZ,CIv5BQ,iCACI,aAAA,CACA,YJ05BZ,CI55BQ,iCACI,aAAA,CACA,YJ+5BZ,CIj6BQ,iCACI,aAAA,CACA,YJo6BZ,CIt6BQ,iCACI,aAAA,CACA,YJy6BZ,CI36BQ,gCACI,aAAA,CACA,YJ86BZ,CIh7BQ,gCACI,aAAA,CACA,YJm7BZ,CIr7BQ,gCACI,aAAA,CACA,YJw7BZ,CI17BQ,gCACI,aAAA,CACA,YJ67BZ,CI/7BQ,+BACI,aAAA,CACA,YJk8BZ,CIp8BQ,iCACI,aAAA,CACA,YJu8BZ,CIz8BQ,iCACI,aAAA,CACA,YJ48BZ,CI98BQ,iCACI,aAAA,CACA,YJi9BZ,CIn9BQ,iCACI,aAAA,CACA,YJs9BZ,CIx9BQ,iCACI,aAAA,CACA,YJ29BZ,CI79BQ,gCACI,aAAA,CACA,YJg+BZ,CIl+BQ,gCACI,aAAA,CACA,YJq+BZ,CIv+BQ,gCACI,aAAA,CACA,YJ0+BZ,CI5+BQ,gCACI,aAAA,CACA,YJ++BZ,CIj/BQ,+BACI,aAAA,CACA,YJo/BZ,CIt/BQ,gCACI,aAAA,CACA,YJy/BZ,CI3/BQ,gCACI,aAAA,CACA,YJ8/BZ,CIhgCQ,gCACI,aAAA,CACA,YJmgCZ,CIrgCQ,gCACI,aAAA,CACA,YJwgCZ,CI1gCQ,gCACI,aAAA,CACA,YJ6gCZ,CI/gCQ,+BACI,aAAA,CACA,YJkhCZ,CIphCQ,+BACI,aAAA,CACA,YJuhCZ,CIzhCQ,+BACI,aAAA,CACA,YJ4hCZ,CI9hCQ,+BACI,aAAA,CACA,YJiiCZ,CIniCQ,8BACI,aAAA,CACA,YJsiCZ,CKjjCE,YACE,eAAA,CAIA,iBLijCJ,CK1iCI,wBACE,uBL4iCN,CKxiCE,iCACE,gBL2iCJ,CKxiCE,oBACE,iBAAA,CACA,iBAAA,CACA,mBAAA,CAEA,uDAAA,CAIA,wBLuiCJ,CMxhCI,8CDXE,YLsiCN,CM1kCE,qBACE,QAAA,CACA,kBAAA,CACA,UAAA,CACA,WAAA,CACA,eAAA,CACA,SAAA,CACA,iBAAA,CACA,SAAA,CAIA,kBAAA,CAGA,SAAA,CAGA,uBAAA,CACA,oBAAA,CAMA,MNikCJ,CM/jCI,+BACE,SAAA,CACA,ONikCN,COjlCE,mDAEE,mBAAA,CAGA,KAAA,CACA,MAAA,CACA,WAAA,CACA,UPilCJ,CO7kCE,uBACE,cAAA,CACA,YPglCJ,CO9kCI,6BAGE,YP8kCN,CO/jCE,8CANE,YAAA,CACA,iBAAA,CACA,YPmlCJ,CO/kCE,kBAIE,mBAAA,CACA,qBAAA,CAMA,cAAA,CACA,ePmkCJ,COhkCE,sBAEE,iBAAA,CACA,KAAA,CACA,QAAA,CACA,MAAA,CACA,OAAA,CAEA,YApEuB,CAqEvB,mBAAA,CACA,uCAAA,CACA,iDAAA,CACA,SPikCJ,CO/jCI,mDACE,SPikCN,CO5jCM,6EAGE,UP4jCR,COvjCE,2BACE,0BP0jCJ,COvjCE,kCAEE,mDAAA,CACA,iBAAA,CACA,SPyjCJ,COnjCI,+DACE,SAAA,CACA,kBPqjCN,COjjCE,qCACE,ePojCJ,CO/iCE,6CACE,iBAAA,CACA,YArHc,CA0Hd,YAAA,CAIA,qBAAA,CAGA,aAAA,CACA,cPyiCJ,CQ3qCE,+BACE,WRorCJ,CQ9qCE,yCAyCA,uBAAA,CACA,4BAAA,CAxCE,qBAAA,CACA,yBRkrCJ,CQzqCE,iDA6BA,uBAAA,CACA,4BAAA,CA5BE,kBR6qCJ,CQnqCE;EAA0C,IAAA,CRuqC5C,CQtqCE;EAAwC,IAAA,CRyqC1C,CQvqCE,oDAEE,8CRwqCJ,CQrqCE,0DAEE,4CRuqCJ,CStsCE,qBACE,iBTysCJ,CSvsCI,4BCfF,KAAA,CACA,MAAA,CACA,OAAA,CACA,QAAA,CACA,iBAAA,CDaI,qBAAA,CACA,mBAAA,CACA,+CAAA,CACA,oJAAA,CAYA,0DTksCN,CS1rCI,kCACE,UT4rCN,CMjpCM,0BG7BA,mCTkrCN,CS7tCE,yBACE,iBTguCJ,CS9tCI,gCCfF,KAAA,CACA,MAAA,CACA,OAAA,CACA,QAAA,CACA,iBAAA,CDaI,qBAAA,CACA,mBAAA,CACA,mDAAA,CACA,gKAAA,CAYA,8DTytCN,CSjtCI,sCACE,UTmtCN,CMxqCM,0BG7BA,uCTysCN,CWvvCE,oBAII,+BXuvCN,CYxvCI,gBCgEA,iEb4rCJ,CYvvCM,kPAOE,0BZmvCR,CcjdE,gHD9uBE,sCbmsCJ,CcrdE,+GD9uBE,wCbusCJ,CczdE,6GD9uBE,oCb2sCJ,Ce/wCI,wBFoEA,iEb+sCJ,CgB1wCE,qBACE,qBhB6wCJ,CgB3wCI,2BACE,ahB6wCN,CgBzwCE,8BACE,ahB4wCJ,CgBzwCE,0FAEE,kBhB4wCJ,CgBpwCE,wJAIE,kBhBuwCJ,CgBpwCE,oFAEE,kBhBuwCJ,CgBlwCI,0HACE,kBhBswCN,CiBzyCE,oBAIE,wBAAA,CACA,qBjByyCJ,CiB/xCI,+DCoQE,iFlBgiCN,CiBpyCI,+DCoQE,gGlBqiCN,CiBzyCI,+DCoQE,gGlB0iCN,CiB9yCI,+DCoQE,gGlB+iCN,CiBnzCI,+DCoQE,iGlBojCN,CiBxzCI,+DCoQE,iGlByjCN,CiB7zCI,+DCoQE,kGlB8jCN,CiBl0CI,+DCoQE,sGlBmkCN,CiBv0CI,+DCoQE,sGlBwkCN,CiB50CI,+DCoQE,sGlB6kCN,CiBj1CI,iECoQE,uGlBklCN,CiBt1CI,iECoQE,uGlBulCN,CiB31CI,iECoQE,uGlB4lCN,CiBh2CI,iECoQE,uGlBimCN,CiBr2CI,iECoQE,uGlBsmCN,CiB12CI,iECoQE,uGlB2mCN,CiB/2CI,iECoQE,wGlBgnCN,CiBp3CI,iECoQE,wGlBqnCN,CiBz3CI,iECoQE,wGlB0nCN,CiB93CI,iECoQE,wGlB+nCN,CiBn4CI,iECoQE,yGlBooCN,CiBx4CI,iECoQE,yGlByoCN,CiB74CI,iECoQE,yGlB8oCN,CiBl5CI,iECoQE,yGlBmpCN,CiBv5CI,iECoQE,yGlBwpCN,CiBr5CI,yBACE,YjBw5CN,CmBt3CE,oBACE,oBnBy3CJ,CmBp3CE,+HAGE,qBnBu3CJ,CmBp3CE,yCACE,0BnBu3CJ,CmBp3CE,oDAEE,qBnBu3CJ,CmBp3CE,gEAEE,qBAAA,CACA,wBnBu3CJ,CmB92CE,mMACE,qBnBq3CJ,CmBl3CE,8BAOI,qBnB+2CN,CmB/6CE,uGA2EI,4BnBw2CN,CmBn7CE,mIAoFM,4BnBm2CR,CmBjxCE,mCACE,4BnBoxCJ,CmBjxCE,sFAEE,6BnBoxCJ,CmBjxCE,4GAEE,4EnBoxCJ,CmBjxCE,4GAEE,6EnBoxCJ,CmBjxCE,4IAEE,kBnBoxCJ,CmBjxCE,sIAEE,kBnBoxCJ,CmBz/CE,4BACE,wBAAA,CACA,UnB4/CJ,CmBz/CE,wDAII,kCnBy/CN,CmBh/CE,oDACE,+BnBm/CJ,CmBj+CE,2TASI,kCnB69CN,CmB/+CE,qBASA,6KASI,kCnBk+CJ,CACF,CmB14CE,wBD4II,iGAqGS,CC/OX,qBAAA,CACA,qBnB64CJ,CmB50CE,sEACE,+BnB80CJ,CmB30CE,4JAEE,6BnB60CJ,CmB10CE,kLAEE,+EnB40CJ,CmBz0CE,kLAEE,gFnB20CJ,CmBx0CE,kNAEE,kBnB00CJ,CmBv0CE,4MAEE,kBnBy0CJ,CmB9iDE,+DACE,wBAAA,CACA,anBgjDJ,CmB7iDE,2FAII,qCnB4iDN,CmBniDE,uFACE,kCnBqiDJ,CmBnhDE,iYASI,qCnB8gDN,CmBhiDE,qBASA,gNASI,qCnBkhDJ,CACF,CmBt3CE,oEACE,6BnBw3CJ,CmBr3CE,wJAEE,6BnBu3CJ,CmBp3CE,8KAEE,6EnBs3CJ,CmBn3CE,8KAEE,8EnBq3CJ,CmBl3CE,8MAEE,kBnBo3CJ,CmBj3CE,wMAEE,kBnBm3CJ,CmBxlDE,6DACE,wBAAA,CACA,UnB0lDJ,CmBvlDE,yFAII,mCnBslDN,CmB7kDE,qFACE,+BnB+kDJ,CmB7jDE,6XASI,mCnBwjDN,CmB1kDE,qBASA,8MASI,mCnB4jDJ,CACF,CmBt9CE,8BD8HI,yGlB61CN,CmBv9CE,8BACE,anB09CJ,CmBx9CI,yCACE,anB09CN,CmBv9CI,uCACE,anBy9CN,CmBr9CE,sCACE,qBnBw9CJ,CoBxmDE,kBF6PI,sGAqGS,CL/TX,8CAAA,CAAA,sCb4kDJ,Cc91BE,6BD9uBE,iEb+kDJ,Ccv1BE,+BDxvBE,mEbmlDJ,Cc30BE,8BDxwBE,8DbulDJ,CchzBE,+GDvyBE,wBAAA,CAAA,8Db4lDJ,Cc10BE,oBDlxBE,8DbqmDJ,CchxBI,6IAII,WdkxBR,CclRI,mZDz1CA,sCb8nDJ,CcrRI,8QDz2CA,sCbuoDJ,CcryBE,sCDl2BE,iEb2oDJ,CqBvnDI,oEP42CA,wBDh4CA,wBbgpDF,CACF,CcpqBE,kBD7+BE,gCbopDJ,CsBluDA,kBACI,qBtBquDJ,CsBjuDA,wBACI,cAAA,CACA,iBAAA,CACA,UtBouDJ,CuB3uDI,2CACI,eAAA,CACA,UAHsB,CAItB,SAJsB,CAOlB,8CvB2uDZ,CuBnuDI,iDAEQ,8CAjB0C,CAkB1C,kBvBouDZ,CuBluDY,uDACI,8CvBouDhB,CuB3tDI,iDAEQ,8CAhCwF,CAiCxF,evB4tDZ,CwBxuDQ,oCFTJ,wBACI,WAAA,CACA,aAAA,CACA,cAAA,CACA,UtBqvDN,CuBpwDE,2CACI,eAAA,CACA,UAHsB,CAItB,SAJsB,CAOlB,8CvBowDV,CuB5vDE,iDAEQ,8CAjB0C,CAkB1C,kBvB6vDV,CuB3vDU,uDACI,8CvB6vDd,CuBpvDE,iDAEQ,8CAhCwF,CAiCxF,evBqvDV,CACF,CyBrxDA,gBACI,kBAAA,CACA,YAAA,CACA,UzBuxDJ,CyBlxDA,QAII,sBzBqxDJ,CyBjxDA,QAII,azBixDJ,C0BpyDA,sDCYI,uCAAA,CACA,mCAAA,CACA,iBAAA,CACA,eAAA,CDCA,a1B0yDJ,C0BryDA,OEpBI,mD5B+zDJ,C0BryDA,cAHI,uC1B8yDJ,C0B3yDA,OE1BI,oD5Bq0DJ,C0BryDA,OEhCI,sD5B20DJ,C0BryDA,cAHI,uC1B8yDJ,C0B3yDA,OEtCI,sD5Bi1D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","file":"eui.css","sourcesContent":["/*! @ecl/preset-reset - 3.4.2 Built on 2022-09-21T10:02:32.565Z */\n/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{-webkit-text-size-adjust:100%;line-height:1.15}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}body{margin:0;overflow-x:hidden}","/*! @ecl/preset-reset - 3.4.2 Built on 2022-09-21T10:02:32.565Z */\n/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */\nhtml {\n -webkit-text-size-adjust: 100%;\n line-height: 1.15;\n}\n\nmain {\n display: block;\n}\n\nh1 {\n font-size: 2em;\n margin: 0.67em 0;\n}\n\nhr {\n box-sizing: content-box;\n height: 0;\n overflow: visible;\n}\n\npre {\n font-family: monospace, monospace;\n font-size: 1em;\n}\n\na {\n background-color: transparent;\n}\n\nabbr[title] {\n border-bottom: none;\n text-decoration: underline;\n -webkit-text-decoration: underline dotted;\n text-decoration: underline dotted;\n}\n\nb, strong {\n font-weight: bolder;\n}\n\ncode, kbd, samp {\n font-family: monospace, monospace;\n font-size: 1em;\n}\n\nsmall {\n font-size: 80%;\n}\n\nsub, sup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -0.25em;\n}\n\nsup {\n top: -0.5em;\n}\n\nimg {\n border-style: none;\n}\n\nbutton, input, optgroup, select, textarea {\n font-family: inherit;\n font-size: 100%;\n line-height: 1.15;\n margin: 0;\n}\n\nbutton, input {\n overflow: visible;\n}\n\nbutton, select {\n text-transform: none;\n}\n\n[type=button], [type=reset], [type=submit], button {\n -webkit-appearance: button;\n}\n\n[type=button]::-moz-focus-inner, [type=reset]::-moz-focus-inner, [type=submit]::-moz-focus-inner, button::-moz-focus-inner {\n border-style: none;\n padding: 0;\n}\n\n[type=button]:-moz-focusring, [type=reset]:-moz-focusring, [type=submit]:-moz-focusring, button:-moz-focusring {\n outline: 1px dotted ButtonText;\n}\n\nfieldset {\n padding: 0.35em 0.75em 0.625em;\n}\n\nlegend {\n box-sizing: border-box;\n color: inherit;\n display: table;\n max-width: 100%;\n padding: 0;\n white-space: normal;\n}\n\nprogress {\n vertical-align: baseline;\n}\n\ntextarea {\n overflow: auto;\n}\n\n[type=checkbox], [type=radio] {\n box-sizing: border-box;\n padding: 0;\n}\n\n[type=number]::-webkit-inner-spin-button, [type=number]::-webkit-outer-spin-button {\n height: auto;\n}\n\n[type=search] {\n -webkit-appearance: textfield;\n outline-offset: -2px;\n}\n\n[type=search]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n::-webkit-file-upload-button {\n -webkit-appearance: button;\n font: inherit;\n}\n\ndetails {\n display: block;\n}\n\nsummary {\n display: list-item;\n}\n\ntemplate {\n display: none;\n}\n\n[hidden] {\n display: none;\n}\n\nbody {\n margin: 0;\n overflow-x: hidden;\n}\n\n/**\n * ECL color variants formula\n * Applies tint or shade of base color provided\n *\n * @param color: base color, has variant of 100\n * @param variant: number in range between 0 - 200\n * 100 - neutral variant, no changes\n * 0 - 99: brightens base color by mixing in white color, the lower, the brighter\n * 99 - 200: darkens base color by mixing in black color, the bigger, the darker\n *\n * @return color variant of provided base color\n *\n * @examples\n *\n * // provides 30% darker pink color\n * background-color: eui-color-variant(pink, 130);\n *\n * // provides 95% lighter pink color\n * background-color: eui-color-variant(pink, 5);\n */\n/** Common weight name mapping\n @See the OpenType specification:\n https://docs.microsoft.com/en-us/typography/opentype/spec/os2#usweightclass\n The numerical values 100 to 900 roughly correspond to the following common weight names:\n 100 Thin (Hairline)\n 200\t Extra Light (Ultra Light)\n 300\t Light\n 400\t Normal\n 500\t Medium\n 600\t Semi Bold (Demi Bold)\n 700\t Bold\n 800\t Extra Bold (Ultra Bold)\n 900\t Black (Heavy)\n**/\n:root {\n --eui-base-color-grey-100: #404040;\n --eui-base-color-grey-100-rgb: rgb(64, 64, 64);\n --eui-base-color-grey-100-contrast: white;\n --eui-base-color-grey-100-contrast-rgb: rgb(255, 255, 255);\n --eui-base-color-grey-90: #535353;\n --eui-base-color-grey-90-rgb: rgb(83, 83, 83);\n --eui-base-color-grey-90-contrast: white;\n --eui-base-color-grey-90-contrast-rgb: rgb(255, 255, 255);\n --eui-base-color-grey-80: #666666;\n --eui-base-color-grey-80-rgb: rgb(102, 102, 102);\n --eui-base-color-grey-80-contrast: white;\n --eui-base-color-grey-80-contrast-rgb: rgb(255, 255, 255);\n --eui-base-color-grey-75: #707070;\n --eui-base-color-grey-75-rgb: rgb(112, 112, 112);\n --eui-base-color-grey-75-contrast: white;\n --eui-base-color-grey-75-contrast-rgb: rgb(255, 255, 255);\n --eui-base-color-grey-50: #a0a0a0;\n --eui-base-color-grey-50-rgb: rgb(160, 160, 160);\n --eui-base-color-grey-50-contrast: #404040;\n --eui-base-color-grey-50-contrast-rgb: rgb(64, 64, 64);\n --eui-base-color-grey-35: #bcbcbc;\n --eui-base-color-grey-35-rgb: rgb(188, 188, 188);\n --eui-base-color-grey-35-contrast: #404040;\n --eui-base-color-grey-35-contrast-rgb: rgb(64, 64, 64);\n --eui-base-color-grey-25: #cfcfcf;\n --eui-base-color-grey-25-rgb: rgb(207, 207, 207);\n --eui-base-color-grey-25-contrast: #404040;\n --eui-base-color-grey-25-contrast-rgb: rgb(64, 64, 64);\n --eui-base-color-grey-20: #d9d9d9;\n --eui-base-color-grey-20-rgb: rgb(217, 217, 217);\n --eui-base-color-grey-20-contrast: #404040;\n --eui-base-color-grey-20-contrast-rgb: rgb(64, 64, 64);\n --eui-base-color-grey-15: #e2e2e2;\n --eui-base-color-grey-15-rgb: rgb(226, 226, 226);\n --eui-base-color-grey-15-contrast: #404040;\n --eui-base-color-grey-15-contrast-rgb: rgb(64, 64, 64);\n --eui-base-color-grey-10: #ececec;\n --eui-base-color-grey-10-rgb: rgb(236, 236, 236);\n --eui-base-color-grey-10-contrast: #404040;\n --eui-base-color-grey-10-contrast-rgb: rgb(64, 64, 64);\n --eui-base-color-grey-5: whitesmoke;\n --eui-base-color-grey-5-rgb: rgb(245, 245, 245);\n --eui-base-color-grey-5-contrast: #404040;\n --eui-base-color-grey-5-contrast-rgb: rgb(64, 64, 64);\n --eui-base-color-grey-2: #fbfbfb;\n --eui-base-color-grey-2-rgb: rgb(251, 251, 251);\n --eui-base-color-grey-2-contrast: #404040;\n --eui-base-color-grey-2-contrast-rgb: rgb(64, 64, 64);\n --eui-base-color-primary-140: #002959;\n --eui-base-color-primary-140-rgb: rgb(0, 41, 89);\n --eui-base-color-primary-140-contrast: white;\n --eui-base-color-primary-140-contrast-rgb: rgb(255, 255, 255);\n --eui-base-color-primary-130: #003068;\n --eui-base-color-primary-130-rgb: rgb(0, 48, 104);\n --eui-base-color-primary-130-contrast: white;\n --eui-base-color-primary-130-contrast-rgb: rgb(255, 255, 255);\n --eui-base-color-primary-120: #003676;\n --eui-base-color-primary-120-rgb: rgb(0, 54, 118);\n --eui-base-color-primary-120-contrast: white;\n --eui-base-color-primary-120-contrast-rgb: rgb(255, 255, 255);\n --eui-base-color-primary-110: #003d85;\n --eui-base-color-primary-110-rgb: rgb(0, 61, 133);\n --eui-base-color-primary-110-contrast: white;\n --eui-base-color-primary-110-contrast-rgb: rgb(255, 255, 255);\n --eui-base-color-primary-100: #004494;\n --eui-base-color-primary-100-rgb: rgb(0, 68, 148);\n --eui-base-color-primary-100-contrast: white;\n --eui-base-color-primary-100-contrast-rgb: rgb(255, 255, 255);\n --eui-base-color-primary-75: #4073af;\n --eui-base-color-primary-75-rgb: rgb(64, 115, 175);\n --eui-base-color-primary-75-contrast: white;\n --eui-base-color-primary-75-contrast-rgb: rgb(255, 255, 255);\n --eui-base-color-primary-50: #80a2ca;\n --eui-base-color-primary-50-rgb: rgb(128, 162, 202);\n --eui-base-color-primary-50-contrast: #404040;\n --eui-base-color-primary-50-contrast-rgb: rgb(64, 64, 64);\n --eui-base-color-primary-25: #bfd0e4;\n --eui-base-color-primary-25-rgb: rgb(191, 208, 228);\n --eui-base-color-primary-25-contrast: #404040;\n --eui-base-color-primary-25-contrast-rgb: rgb(64, 64, 64);\n --eui-base-color-primary-10: #e6ecf4;\n --eui-base-color-primary-10-rgb: rgb(230, 236, 244);\n --eui-base-color-primary-10-contrast: #404040;\n --eui-base-color-primary-10-contrast-rgb: rgb(64, 64, 64);\n --eui-base-color-primary-5: #f2f6fa;\n --eui-base-color-primary-5-rgb: rgb(242, 246, 250);\n --eui-base-color-primary-5-contrast: #404040;\n --eui-base-color-primary-5-contrast-rgb: rgb(64, 64, 64);\n --eui-base-color-accent-140: #99800e;\n --eui-base-color-accent-140-rgb: rgb(153, 128, 14);\n --eui-base-color-accent-140-contrast: #404040;\n --eui-base-color-accent-140-contrast-rgb: rgb(64, 64, 64);\n --eui-base-color-accent-130: #b39610;\n --eui-base-color-accent-130-rgb: rgb(179, 150, 16);\n --eui-base-color-accent-130-contrast: #404040;\n --eui-base-color-accent-130-contrast-rgb: rgb(64, 64, 64);\n --eui-base-color-accent-120: #f8ae21;\n --eui-base-color-accent-120-rgb: rgb(248, 174, 33);\n --eui-base-color-accent-120-contrast: #404040;\n --eui-base-color-accent-120-contrast-rgb: rgb(64, 64, 64);\n --eui-base-color-accent-110: #fbc11d;\n --eui-base-color-accent-110-rgb: rgb(251, 193, 29);\n --eui-base-color-accent-110-contrast: #404040;\n --eui-base-color-accent-110-contrast-rgb: rgb(64, 64, 64);\n --eui-base-color-accent-100: #ffd617;\n --eui-base-color-accent-100-rgb: rgb(255, 214, 23);\n --eui-base-color-accent-100-contrast: #404040;\n --eui-base-color-accent-100-contrast-rgb: rgb(64, 64, 64);\n --eui-base-color-accent-75: #ffde39;\n --eui-base-color-accent-75-rgb: rgb(255, 222, 57);\n --eui-base-color-accent-75-contrast: #404040;\n --eui-base-color-accent-75-contrast-rgb: rgb(64, 64, 64);\n --eui-base-color-accent-50: #ffe879;\n --eui-base-color-accent-50-rgb: rgb(255, 232, 121);\n --eui-base-color-accent-50-contrast: #404040;\n --eui-base-color-accent-50-contrast-rgb: rgb(64, 64, 64);\n --eui-base-color-accent-25: #fff4bb;\n --eui-base-color-accent-25-rgb: rgb(255, 244, 187);\n --eui-base-color-accent-25-contrast: #404040;\n --eui-base-color-accent-25-contrast-rgb: rgb(64, 64, 64);\n --eui-base-color-accent-10: #fffbe8;\n --eui-base-color-accent-10-rgb: rgb(255, 251, 232);\n --eui-base-color-accent-10-contrast: #404040;\n --eui-base-color-accent-10-contrast-rgb: rgb(64, 64, 64);\n --eui-base-color-accent-5: #fffdf3;\n --eui-base-color-accent-5-rgb: rgb(255, 253, 243);\n --eui-base-color-accent-5-contrast: #404040;\n --eui-base-color-accent-5-contrast-rgb: rgb(64, 64, 64);\n --eui-base-color-info-140: #00436c;\n --eui-base-color-info-140-rgb: rgb(0, 67, 108);\n --eui-base-color-info-140-contrast: white;\n --eui-base-color-info-140-contrast-rgb: rgb(255, 255, 255);\n --eui-base-color-info-130: #004e7e;\n --eui-base-color-info-130-rgb: rgb(0, 78, 126);\n --eui-base-color-info-130-contrast: white;\n --eui-base-color-info-130-contrast-rgb: rgb(255, 255, 255);\n --eui-base-color-info-120: #005990;\n --eui-base-color-info-120-rgb: rgb(0, 89, 144);\n --eui-base-color-info-120-contrast: white;\n --eui-base-color-info-120-contrast-rgb: rgb(255, 255, 255);\n --eui-base-color-info-110: #0064a2;\n --eui-base-color-info-110-rgb: rgb(0, 100, 162);\n --eui-base-color-info-110-contrast: white;\n --eui-base-color-info-110-contrast-rgb: rgb(255, 255, 255);\n --eui-base-color-info-100: #006fb4;\n --eui-base-color-info-100-rgb: rgb(0, 111, 180);\n --eui-base-color-info-100-contrast: white;\n --eui-base-color-info-100-contrast-rgb: rgb(255, 255, 255);\n --eui-base-color-info-75: #4093c7;\n --eui-base-color-info-75-rgb: rgb(64, 147, 199);\n --eui-base-color-info-75-contrast: white;\n --eui-base-color-info-75-contrast-rgb: rgb(255, 255, 255);\n --eui-base-color-info-50: #80b7da;\n --eui-base-color-info-50-rgb: rgb(128, 183, 218);\n --eui-base-color-info-50-contrast: #404040;\n --eui-base-color-info-50-contrast-rgb: rgb(64, 64, 64);\n --eui-base-color-info-25: #bfdbec;\n --eui-base-color-info-25-rgb: rgb(191, 219, 236);\n --eui-base-color-info-25-contrast: #404040;\n --eui-base-color-info-25-contrast-rgb: rgb(64, 64, 64);\n --eui-base-color-info-10: #e6f1f8;\n --eui-base-color-info-10-rgb: rgb(230, 241, 248);\n --eui-base-color-info-10-contrast: #404040;\n --eui-base-color-info-10-contrast-rgb: rgb(64, 64, 64);\n --eui-base-color-info-5: #f2f8fb;\n --eui-base-color-info-5-rgb: rgb(242, 248, 251);\n --eui-base-color-info-5-contrast: #404040;\n --eui-base-color-info-5-contrast-rgb: rgb(64, 64, 64);\n --eui-base-color-success-140: #2a4922;\n --eui-base-color-success-140-rgb: rgb(42, 73, 34);\n --eui-base-color-success-140-contrast: white;\n --eui-base-color-success-140-contrast-rgb: rgb(255, 255, 255);\n --eui-base-color-success-130: #315528;\n --eui-base-color-success-130-rgb: rgb(49, 85, 40);\n --eui-base-color-success-130-contrast: white;\n --eui-base-color-success-130-contrast-rgb: rgb(255, 255, 255);\n --eui-base-color-success-120: #38622e;\n --eui-base-color-success-120-rgb: rgb(56, 98, 46);\n --eui-base-color-success-120-contrast: white;\n --eui-base-color-success-120-contrast-rgb: rgb(255, 255, 255);\n --eui-base-color-success-110: #3f6e33;\n --eui-base-color-success-110-rgb: rgb(63, 110, 51);\n --eui-base-color-success-110-contrast: white;\n --eui-base-color-success-110-contrast-rgb: rgb(255, 255, 255);\n --eui-base-color-success-100: #467a39;\n --eui-base-color-success-100-rgb: rgb(70, 122, 57);\n --eui-base-color-success-100-contrast: white;\n --eui-base-color-success-100-contrast-rgb: rgb(255, 255, 255);\n --eui-base-color-success-75: #749b6b;\n --eui-base-color-success-75-rgb: rgb(116, 155, 107);\n --eui-base-color-success-75-contrast: #404040;\n --eui-base-color-success-75-contrast-rgb: rgb(64, 64, 64);\n --eui-base-color-success-50: #a3bd9c;\n --eui-base-color-success-50-rgb: rgb(163, 189, 156);\n --eui-base-color-success-50-contrast: #404040;\n --eui-base-color-success-50-contrast-rgb: rgb(64, 64, 64);\n --eui-base-color-success-25: #d1dece;\n --eui-base-color-success-25-rgb: rgb(209, 222, 206);\n --eui-base-color-success-25-contrast: #404040;\n --eui-base-color-success-25-contrast-rgb: rgb(64, 64, 64);\n --eui-base-color-success-10: #edf2eb;\n --eui-base-color-success-10-rgb: rgb(237, 242, 235);\n --eui-base-color-success-10-contrast: #404040;\n --eui-base-color-success-10-contrast-rgb: rgb(64, 64, 64);\n --eui-base-color-success-5: #f6f8f5;\n --eui-base-color-success-5-rgb: rgb(246, 248, 245);\n --eui-base-color-success-5-contrast: #404040;\n --eui-base-color-success-5-contrast-rgb: rgb(64, 64, 64);\n --eui-base-color-warning-140: #915917;\n --eui-base-color-warning-140-rgb: rgb(145, 89, 23);\n --eui-base-color-warning-140-contrast: white;\n --eui-base-color-warning-140-contrast-rgb: rgb(255, 255, 255);\n --eui-base-color-warning-130: #a9681b;\n --eui-base-color-warning-130-rgb: rgb(169, 104, 27);\n --eui-base-color-warning-130-contrast: white;\n --eui-base-color-warning-130-contrast-rgb: rgb(255, 255, 255);\n --eui-base-color-warning-120: #c2771f;\n --eui-base-color-warning-120-rgb: rgb(194, 119, 31);\n --eui-base-color-warning-120-contrast: #404040;\n --eui-base-color-warning-120-contrast-rgb: rgb(64, 64, 64);\n --eui-base-color-warning-110: #da8623;\n --eui-base-color-warning-110-rgb: rgb(218, 134, 35);\n --eui-base-color-warning-110-contrast: #404040;\n --eui-base-color-warning-110-contrast-rgb: rgb(64, 64, 64);\n --eui-base-color-warning-100: #f29527;\n --eui-base-color-warning-100-rgb: rgb(242, 149, 39);\n --eui-base-color-warning-100-contrast: #404040;\n --eui-base-color-warning-100-contrast-rgb: rgb(64, 64, 64);\n --eui-base-color-warning-75: #f5b05d;\n --eui-base-color-warning-75-rgb: rgb(245, 176, 93);\n --eui-base-color-warning-75-contrast: #404040;\n --eui-base-color-warning-75-contrast-rgb: rgb(64, 64, 64);\n --eui-base-color-warning-50: #f9ca93;\n --eui-base-color-warning-50-rgb: rgb(249, 202, 147);\n --eui-base-color-warning-50-contrast: #404040;\n --eui-base-color-warning-50-contrast-rgb: rgb(64, 64, 64);\n --eui-base-color-warning-25: #fce5c9;\n --eui-base-color-warning-25-rgb: rgb(252, 229, 201);\n --eui-base-color-warning-25-contrast: #404040;\n --eui-base-color-warning-25-contrast-rgb: rgb(64, 64, 64);\n --eui-base-color-warning-10: #fef4e9;\n --eui-base-color-warning-10-rgb: rgb(254, 244, 233);\n --eui-base-color-warning-10-contrast: #404040;\n --eui-base-color-warning-10-contrast-rgb: rgb(64, 64, 64);\n --eui-base-color-warning-5: #fefaf4;\n --eui-base-color-warning-5-rgb: rgb(254, 250, 244);\n --eui-base-color-warning-5-contrast: #404040;\n --eui-base-color-warning-5-contrast-rgb: rgb(64, 64, 64);\n --eui-base-color-danger-140: #83141d;\n --eui-base-color-danger-140-rgb: rgb(131, 20, 29);\n --eui-base-color-danger-140-contrast: white;\n --eui-base-color-danger-140-contrast-rgb: rgb(255, 255, 255);\n --eui-base-color-danger-130: #991722;\n --eui-base-color-danger-130-rgb: rgb(153, 23, 34);\n --eui-base-color-danger-130-contrast: white;\n --eui-base-color-danger-130-contrast-rgb: rgb(255, 255, 255);\n --eui-base-color-danger-120: #ae1a27;\n --eui-base-color-danger-120-rgb: rgb(174, 26, 39);\n --eui-base-color-danger-120-contrast: white;\n --eui-base-color-danger-120-contrast-rgb: rgb(255, 255, 255);\n --eui-base-color-danger-110: #c41e2c;\n --eui-base-color-danger-110-rgb: rgb(196, 30, 44);\n --eui-base-color-danger-110-contrast: white;\n --eui-base-color-danger-110-contrast-rgb: rgb(255, 255, 255);\n --eui-base-color-danger-100: #da2131;\n --eui-base-color-danger-100-rgb: rgb(218, 33, 49);\n --eui-base-color-danger-100-contrast: white;\n --eui-base-color-danger-100-contrast-rgb: rgb(255, 255, 255);\n --eui-base-color-danger-75: #e35965;\n --eui-base-color-danger-75-rgb: rgb(227, 89, 101);\n --eui-base-color-danger-75-contrast: #404040;\n --eui-base-color-danger-75-contrast-rgb: rgb(64, 64, 64);\n --eui-base-color-danger-50: #ed9098;\n --eui-base-color-danger-50-rgb: rgb(237, 144, 152);\n --eui-base-color-danger-50-contrast: #404040;\n --eui-base-color-danger-50-contrast-rgb: rgb(64, 64, 64);\n --eui-base-color-danger-25: #f6c8cc;\n --eui-base-color-danger-25-rgb: rgb(246, 200, 204);\n --eui-base-color-danger-25-contrast: #404040;\n --eui-base-color-danger-25-contrast-rgb: rgb(64, 64, 64);\n --eui-base-color-danger-10: #fbe9ea;\n --eui-base-color-danger-10-rgb: rgb(251, 233, 234);\n --eui-base-color-danger-10-contrast: #404040;\n --eui-base-color-danger-10-contrast-rgb: rgb(64, 64, 64);\n --eui-base-color-danger-5: #fdf4f5;\n --eui-base-color-danger-5-rgb: rgb(253, 244, 245);\n --eui-base-color-danger-5-contrast: #404040;\n --eui-base-color-danger-5-contrast-rgb: rgb(64, 64, 64);\n --eui-base-color-grey: #a0a0a0;\n --eui-base-color-primary: #004494;\n --eui-base-color-accent: #ffd617;\n --eui-base-color-info: #006fb4;\n --eui-base-color-success: #467a39;\n --eui-base-color-warning: #f29527;\n --eui-base-color-danger: #da2131;\n --eui-base-color-text: var(--eui-base-color-grey-100);\n --eui-base-color-link: var(--eui-base-color-primary-100);\n --eui-base-color-black: black;\n --eui-base-color-white: white;\n --eui-base-color: var(--eui-base-color-grey-100);\n --eui-base-font-size: 16px;\n --eui-base-font-size-6xl: 2.625rem;\n --eui-base-font-size-5xl: 2.25rem;\n --eui-base-font-size-4xl: 2rem;\n --eui-base-font-size-3xl: 1.75rem;\n --eui-base-font-size-2xl: 1.5rem;\n --eui-base-font-size-xl: 1.25rem;\n --eui-base-font-size-l: 1.125rem;\n --eui-base-font-size-m: 1rem;\n --eui-base-font-size-s: 0.875rem;\n --eui-base-font-size-xs: 0.75rem;\n --eui-base-font-size-2xs: 0.625rem;\n --eui-base-font-family: Arial, Helvetica Neue, Helvetica, sans-serif;\n --eui-base-font-family-icons: eui-icons, sans-serif;\n --eui-base-font-family-monospace: Consolas, Liberation Mono, Courier New, monospace;\n --eui-base-icon-size: 1.5rem;\n --eui-base-icon-size-xs: 1rem;\n --eui-base-icon-size-s: 1.25rem;\n --eui-base-icon-size-m: 1.5rem;\n --eui-base-icon-size-l: 2rem;\n --eui-base-icon-size-xl: 2.5rem;\n --eui-base-icon-size-2xl: 3rem;\n --eui-base-icon-size-3xl: 3.5rem;\n --eui-base-icon-size-4xl: 4rem;\n --eui-base-font-6xl: normal normal 400 2.625rem/3.25rem arial, sans-serif;\n --eui-base-font-5xl: normal normal 400 2.25rem/2.75rem arial, sans-serif;\n --eui-base-font-4xl: normal normal 400 2rem/2.5rem arial, sans-serif;\n --eui-base-font-3xl: normal normal 400 1.75rem/2rem arial, sans-serif;\n --eui-base-font-2xl: normal normal 400 1.5rem/1.75rem arial, sans-serif;\n --eui-base-font-xl: normal normal 400 1.25rem/1.5rem arial, sans-serif;\n --eui-base-font-l: normal normal 400 1.125rem/1.5rem arial, sans-serif;\n --eui-base-font-m: normal normal 400 1rem/1.25rem arial, sans-serif;\n --eui-base-font-s: normal normal 400 0.875rem/1rem arial, sans-serif;\n --eui-base-font-xs: normal normal 400 0.75rem/1rem arial, sans-serif;\n --eui-base-font-2xs: normal normal 400 0.625rem/1rem arial, sans-serif;\n --eui-base-font-prolonged-xl: normal normal 400 1.25rem/1.75rem arial, sans-serif;\n --eui-base-font-prolonged-l: normal normal 400 1.125rem/1.75rem arial, sans-serif;\n --eui-base-font-prolonged-m: normal normal 400 1rem/1.5rem arial, sans-serif;\n --eui-base-font-prolonged-s: normal normal 400 0.875rem/1.25rem arial, sans-serif;\n --eui-base-font-prolonged-xs: normal normal 400 0.75rem/1.25rem arial, sans-serif;\n --eui-base-spacing-none: 0;\n --eui-base-spacing-2xs: 0.25rem;\n --eui-base-spacing-xs: 0.5rem;\n --eui-base-spacing-s: 0.75rem;\n --eui-base-spacing-m: 1rem;\n --eui-base-spacing-l: 1.5rem;\n --eui-base-spacing-xl: 2rem;\n --eui-base-spacing-2xl: 2.5rem;\n --eui-base-spacing-3xl: 3rem;\n --eui-base-spacing-4xl: 4rem;\n --eui-base-shadow-1: 0 2px 1px -1px rgba(0, 0, 0, 0.2), 0 1px 1px 0 rgba(0, 0, 0, 0.14), 0 1px 3px 0 rgba(0, 0, 0, 0.12);\n --eui-base-shadow-2: 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12);\n --eui-base-shadow-3: 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 3px 4px 0 rgba(0, 0, 0, 0.14), 0 1px 8px 0 rgba(0, 0, 0, 0.12);\n --eui-base-shadow-4: 0 2px 4px -1px rgba(0, 0, 0, 0.2), 0 4px 5px 0 rgba(0, 0, 0, 0.14), 0 1px 10px 0 rgba(0, 0, 0, 0.12);\n --eui-base-shadow-6: 0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 6px 10px 0px rgba(0, 0, 0, 0.14), 0px 1px 18px 0px rgba(0, 0, 0, 0.12);\n --eui-base-shadow-8: 0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12);\n --eui-base-shadow-9: 0px 5px 6px -3px rgba(0, 0, 0, 0.2), 0px 9px 12px 1px rgba(0, 0, 0, 0.14), 0px 3px 16px 2px rgba(0, 0, 0, 0.12);\n --eui-base-shadow-12: 0px 7px 8px -4px rgba(0, 0, 0, 0.2), 0px 12px 17px 2px rgba(0, 0, 0, 0.14), 0px 5px 22px 4px rgba(0, 0, 0, 0.12);\n --eui-base-shadow-16: 0px 8px 10px -5px rgba(0, 0, 0, 0.2), 0px 16px 24px 2px rgba(0, 0, 0, 0.14), 0px 6px 30px 5px rgba(0, 0, 0, 0.12);\n --eui-base-shadow-24: 0px 11px 15px -7px rgba(0, 0, 0, 0.2), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 9px 46px 8px rgba(0, 0, 0, 0.12);\n --eui-base-shadow-z-depth-0: 0 1px 0 rgba(0, 0, 0, 0.08), 0 1px 1px rgba(0, 0, 0, 0.08);\n --eui-base-shadow-z-depth-1: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24);\n --eui-base-shadow-z-depth-2: 0 3px 6px rgba(0, 0, 0, 0.16), 0 3px 6px rgba(0, 0, 0, 0.23);\n --eui-base-shadow-z-depth-3: 0 10px 20px rgba(0, 0, 0, 0.19), 0 6px 6px rgba(0, 0, 0, 0.23);\n --eui-base-shadow-z-depth-4: 0 14px 28px rgba(0, 0, 0, 0.25), 0 10px 10px rgba(0, 0, 0, 0.22);\n --eui-base-shadow-z-depth-5: 0 19px 38px rgba(0, 0, 0, 0.3), 0 15px 12px rgba(0, 0, 0, 0.22);\n --eui-base-z-index-auto: auto;\n --eui-base-z-index-zero: 0;\n --eui-base-z-index-root: 1;\n --eui-base-z-index-input-maxlength: 2;\n --eui-base-z-index-header: 5;\n --eui-base-z-index-top-message: 8;\n --eui-base-z-index-nav: 10;\n --eui-base-z-index-clearable-icon: 11;\n --eui-base-z-index-loading-indicator: 20;\n --eui-base-z-index-cdk-overlay-pane: 999;\n --eui-base-z-index-logo: 1000;\n --eui-base-z-index-sticky: 1040;\n --eui-base-z-index-sidebar: 1044;\n --eui-base-z-index-overlay: 1045;\n --eui-base-z-index-btn-floating: 1046;\n --eui-base-z-index-highlighted: 1047;\n --eui-base-z-index-footer-action-bar: 1048;\n --eui-base-z-index-modal-backdrop: 1049;\n --eui-base-z-index-modal: 1050;\n --eui-base-z-index-menu: 1060;\n --eui-base-z-index-tooltip: 1070;\n --eui-base-z-index-max: 9999;\n --eui-base-z-index-cdk-overlay-container: 10000;\n --eui-base-z-index-block-document: 10010;\n --eui-base-z-index-growl-message: 99999;\n}\n\n:root {\n --eui-base-line-height: 1.25;\n --eui-base-scale-factor: 1;\n --eui-base-disabled-opacity: 0.45;\n --eui-base-border-radius: 3px;\n --eui-base-border: 1px solid var(--eui-color-grey-lighter);\n --eui-base-border-light: 1px solid var(--eui-color-grey-light);\n --eui-base-border-lighter: 1px solid var(--eui-color-grey-lighter);\n --eui-base-border-lightest: 1px solid var(--eui-color-grey-lightest);\n --eui-base-animation-linear-out-slow-in-timing-function: cubic-bezier(0, 0, 0.2, 1);\n --eui-base-animation-fast-out-slow-in-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n --eui-base-animation-fast-out-linear-in-timing-function: cubic-bezier(0.4, 0, 1, 1);\n --eui-base-animation-ease-timing-function: cubic-bezier(0.25, 0.1, 0.25, 1);\n --eui-base-animation-ease-in-out-timing-function: ease-in-out;\n --eui-base-animation-duration-fast: 0.25s;\n --eui-base-animation-duration-medium: 0.5s;\n --eui-base-animation-duration-slow: 1s;\n --eui-base-animation-duration-base: 500ms;\n --eui-base-animation-duration: var(--eui-base-animation-duration-base);\n --eui-base-animation-transition-base: all 0.2s var(--eui-base-animation-linear-out-slow-in-timing-function);\n --eui-base-animation-transition-ease: all 0.2s var(--eui-base-animation-ease-timing-function);\n --eui-base-animation-transition-ease-in-out: all 0.2s var(--eui-base-animation-ease-in-out-timing-function);\n --eui-base-animation-transition-ease-in-out-1s: all 1s var(--eui-base-animation-ease-in-out-timing-function);\n --eui-base-animation-delay: 0s;\n --eui-base-animation-direction: normal;\n --eui-base-animation-fill-mode: forwards;\n --eui-base-animation-background-color: var(--eui-base-color-primary-50);\n --eui-base-color-accessible-focus: var(--eui-base-color-accent-110);\n}\n\n:root {\n --eui-app-header-height-default: 0px;\n --eui-app-header-height: 0px;\n --eui-app-header-height-active: 90px;\n --eui-app-header-height-shrink: 0px;\n --eui-app-top-message-height-default: 0px;\n --eui-app-top-message-height: 0px;\n --eui-app-top-message-height-active: 42px;\n --eui-app-toolbar-height-default: 0px;\n --eui-app-toolbar-height: 0px;\n --eui-app-toolbar-height-active: 55px;\n --eui-app-sidebar-width-default: 0px;\n --eui-app-sidebar-width: 0px;\n --eui-app-sidebar-width-active: 300px;\n --eui-app-sidebar-width-close-default: 0px;\n --eui-app-sidebar-width-close: 0px;\n --eui-app-sidebar-width-close-active: 64px;\n --eui-app-sidebar-header-height: 0px;\n --eui-app-sidebar-header-height-default: 0px;\n --eui-app-sidebar-header-height-active: 48px;\n --eui-app-sidebar-footer-height: 0px;\n --eui-app-sidebar-footer-height-default: 0px;\n --eui-app-sidebar-footer-height-active: 24px;\n --eui-page-header-with-subtitle-height: 4rem;\n --eui-page-header-without-subtitle-height: 2rem;\n --eui-page-column--size-s: 50px;\n --eui-page-column--size-m: 150px;\n --eui-page-column--size-l: 200px;\n --eui-page-column--size-xl: 250px;\n --eui-page-column--size-xxl: 300px;\n --eui-page-column--size-xxxl: 350px;\n --eui-page-column-footer-height: 3.5rem;\n --eui-border-state-width: 6px;\n --eui-app-header-bg-color: var(--eui-base-color-white);\n --eui-app-header-title-color: var(--eui-base-color-grey-100);\n --eui-app-header-subtitle-color: var(--eui-base-color-grey-75);\n --eui-app-toolbar-color: var(--eui-base-color-white);\n --eui-app-toolbar-bg-color: var(--eui-base-color-primary-100);\n --eui-app-toolbar-border-bottom-color: var(--eui-base-color-primary-25);\n --eui-app-sidebar-bg-color: var(--eui-base-color-grey-2);\n --eui-app-sidebar-border-right-color: #f2f4f9;\n --eui-app-body-bg-color: var(--eui-base-color-grey-5);\n --eui-app-main-bg-color: var(--eui-base-color-grey-2);\n --eui-app-footer-color: var(--eui-base-color-font);\n --eui-app-footer-bg-color: var(--eui-base-color-grey-2);\n --eui-app-footer-border-top-color: #e8ebf1;\n}\n\n.xs, .sm {\n --eui-app-header-height: 0px;\n}\n\n.eui-icon-svg {\n fill: currentColor;\n margin: 0;\n transform: scaleX(1) scaleY(1) rotateZ(0deg);\n transition: transform 300ms ease-in-out;\n}\n\n.eui-icon-svg--size-xs {\n height: 1rem;\n width: 1rem;\n}\n\n.eui-icon-svg--size-s {\n height: 1.25rem;\n width: 1.25rem;\n}\n\n.eui-icon-svg--size-m {\n height: 1.5rem;\n width: 1.5rem;\n}\n\n.eui-icon-svg--size-l {\n height: 2rem;\n width: 2rem;\n}\n\n.eui-icon-svg--size-xl {\n height: 2.5rem;\n width: 2.5rem;\n}\n\n.eui-icon-svg--size-2xl {\n height: 3rem;\n width: 3rem;\n}\n\n.eui-icon-svg--size-3xl {\n height: 3.5rem;\n width: 3.5rem;\n}\n\n.eui-icon-svg--size-4xl {\n height: 4rem;\n width: 4rem;\n}\n\n.eui-icon-svg--color-grey-100 {\n color: #404040;\n fill: #404040;\n}\n\n.eui-icon-svg--color-grey-90 {\n color: #535353;\n fill: #535353;\n}\n\n.eui-icon-svg--color-grey-80 {\n color: #666666;\n fill: #666666;\n}\n\n.eui-icon-svg--color-grey-75 {\n color: #707070;\n fill: #707070;\n}\n\n.eui-icon-svg--color-grey-50 {\n color: #a0a0a0;\n fill: #a0a0a0;\n}\n\n.eui-icon-svg--color-grey-35 {\n color: #bcbcbc;\n fill: #bcbcbc;\n}\n\n.eui-icon-svg--color-grey-25 {\n color: #cfcfcf;\n fill: #cfcfcf;\n}\n\n.eui-icon-svg--color-grey-20 {\n color: #d9d9d9;\n fill: #d9d9d9;\n}\n\n.eui-icon-svg--color-grey-15 {\n color: #e2e2e2;\n fill: #e2e2e2;\n}\n\n.eui-icon-svg--color-grey-10 {\n color: #ececec;\n fill: #ececec;\n}\n\n.eui-icon-svg--color-grey-5 {\n color: whitesmoke;\n fill: whitesmoke;\n}\n\n.eui-icon-svg--color-grey-2 {\n color: #fbfbfb;\n fill: #fbfbfb;\n}\n\n.eui-icon-svg--color-primary-140 {\n color: #002959;\n fill: #002959;\n}\n\n.eui-icon-svg--color-primary-130 {\n color: #003068;\n fill: #003068;\n}\n\n.eui-icon-svg--color-primary-120 {\n color: #003676;\n fill: #003676;\n}\n\n.eui-icon-svg--color-primary-110 {\n color: #003d85;\n fill: #003d85;\n}\n\n.eui-icon-svg--color-primary-100 {\n color: #004494;\n fill: #004494;\n}\n\n.eui-icon-svg--color-primary-75 {\n color: #4073af;\n fill: #4073af;\n}\n\n.eui-icon-svg--color-primary-50 {\n color: #80a2ca;\n fill: #80a2ca;\n}\n\n.eui-icon-svg--color-primary-25 {\n color: #bfd0e4;\n fill: #bfd0e4;\n}\n\n.eui-icon-svg--color-primary-10 {\n color: #e6ecf4;\n fill: #e6ecf4;\n}\n\n.eui-icon-svg--color-primary-5 {\n color: #f2f6fa;\n fill: #f2f6fa;\n}\n\n.eui-icon-svg--color-accent-140 {\n color: #99800e;\n fill: #99800e;\n}\n\n.eui-icon-svg--color-accent-130 {\n color: #b39610;\n fill: #b39610;\n}\n\n.eui-icon-svg--color-accent-120 {\n color: #f8ae21;\n fill: #f8ae21;\n}\n\n.eui-icon-svg--color-accent-110 {\n color: #fbc11d;\n fill: #fbc11d;\n}\n\n.eui-icon-svg--color-accent-100 {\n color: #ffd617;\n fill: #ffd617;\n}\n\n.eui-icon-svg--color-accent-75 {\n color: #ffde39;\n fill: #ffde39;\n}\n\n.eui-icon-svg--color-accent-50 {\n color: #ffe879;\n fill: #ffe879;\n}\n\n.eui-icon-svg--color-accent-25 {\n color: #fff4bb;\n fill: #fff4bb;\n}\n\n.eui-icon-svg--color-accent-10 {\n color: #fffbe8;\n fill: #fffbe8;\n}\n\n.eui-icon-svg--color-accent-5 {\n color: #fffdf3;\n fill: #fffdf3;\n}\n\n.eui-icon-svg--color-info-140 {\n color: #00436c;\n fill: #00436c;\n}\n\n.eui-icon-svg--color-info-130 {\n color: #004e7e;\n fill: #004e7e;\n}\n\n.eui-icon-svg--color-info-120 {\n color: #005990;\n fill: #005990;\n}\n\n.eui-icon-svg--color-info-110 {\n color: #0064a2;\n fill: #0064a2;\n}\n\n.eui-icon-svg--color-info-100 {\n color: #006fb4;\n fill: #006fb4;\n}\n\n.eui-icon-svg--color-info-75 {\n color: #4093c7;\n fill: #4093c7;\n}\n\n.eui-icon-svg--color-info-50 {\n color: #80b7da;\n fill: #80b7da;\n}\n\n.eui-icon-svg--color-info-25 {\n color: #bfdbec;\n fill: #bfdbec;\n}\n\n.eui-icon-svg--color-info-10 {\n color: #e6f1f8;\n fill: #e6f1f8;\n}\n\n.eui-icon-svg--color-info-5 {\n color: #f2f8fb;\n fill: #f2f8fb;\n}\n\n.eui-icon-svg--color-success-140 {\n color: #2a4922;\n fill: #2a4922;\n}\n\n.eui-icon-svg--color-success-130 {\n color: #315528;\n fill: #315528;\n}\n\n.eui-icon-svg--color-success-120 {\n color: #38622e;\n fill: #38622e;\n}\n\n.eui-icon-svg--color-success-110 {\n color: #3f6e33;\n fill: #3f6e33;\n}\n\n.eui-icon-svg--color-success-100 {\n color: #467a39;\n fill: #467a39;\n}\n\n.eui-icon-svg--color-success-75 {\n color: #749b6b;\n fill: #749b6b;\n}\n\n.eui-icon-svg--color-success-50 {\n color: #a3bd9c;\n fill: #a3bd9c;\n}\n\n.eui-icon-svg--color-success-25 {\n color: #d1dece;\n fill: #d1dece;\n}\n\n.eui-icon-svg--color-success-10 {\n color: #edf2eb;\n fill: #edf2eb;\n}\n\n.eui-icon-svg--color-success-5 {\n color: #f6f8f5;\n fill: #f6f8f5;\n}\n\n.eui-icon-svg--color-warning-140 {\n color: #915917;\n fill: #915917;\n}\n\n.eui-icon-svg--color-warning-130 {\n color: #a9681b;\n fill: #a9681b;\n}\n\n.eui-icon-svg--color-warning-120 {\n color: #c2771f;\n fill: #c2771f;\n}\n\n.eui-icon-svg--color-warning-110 {\n color: #da8623;\n fill: #da8623;\n}\n\n.eui-icon-svg--color-warning-100 {\n color: #f29527;\n fill: #f29527;\n}\n\n.eui-icon-svg--color-warning-75 {\n color: #f5b05d;\n fill: #f5b05d;\n}\n\n.eui-icon-svg--color-warning-50 {\n color: #f9ca93;\n fill: #f9ca93;\n}\n\n.eui-icon-svg--color-warning-25 {\n color: #fce5c9;\n fill: #fce5c9;\n}\n\n.eui-icon-svg--color-warning-10 {\n color: #fef4e9;\n fill: #fef4e9;\n}\n\n.eui-icon-svg--color-warning-5 {\n color: #fefaf4;\n fill: #fefaf4;\n}\n\n.eui-icon-svg--color-danger-140 {\n color: #83141d;\n fill: #83141d;\n}\n\n.eui-icon-svg--color-danger-130 {\n color: #991722;\n fill: #991722;\n}\n\n.eui-icon-svg--color-danger-120 {\n color: #ae1a27;\n fill: #ae1a27;\n}\n\n.eui-icon-svg--color-danger-110 {\n color: #c41e2c;\n fill: #c41e2c;\n}\n\n.eui-icon-svg--color-danger-100 {\n color: #da2131;\n fill: #da2131;\n}\n\n.eui-icon-svg--color-danger-75 {\n color: #e35965;\n fill: #e35965;\n}\n\n.eui-icon-svg--color-danger-50 {\n color: #ed9098;\n fill: #ed9098;\n}\n\n.eui-icon-svg--color-danger-25 {\n color: #f6c8cc;\n fill: #f6c8cc;\n}\n\n.eui-icon-svg--color-danger-10 {\n color: #fbe9ea;\n fill: #fbe9ea;\n}\n\n.eui-icon-svg--color-danger-5 {\n color: #fdf4f5;\n fill: #fdf4f5;\n}\n\n.mat-ripple {\n overflow: hidden;\n position: relative;\n}\n.mat-ripple:not(:empty) {\n transform: translateZ(0);\n}\n\n.mat-ripple.mat-ripple-unbounded {\n overflow: visible;\n}\n\n.mat-ripple-element {\n position: absolute;\n border-radius: 50%;\n pointer-events: none;\n transition: opacity, transform 0ms cubic-bezier(0, 0, 0.2, 1);\n transform: scale3d(0, 0, 0);\n}\n.cdk-high-contrast-active .mat-ripple-element {\n display: none;\n}\n\n.cdk-visually-hidden {\n border: 0;\n clip: rect(0 0 0 0);\n height: 1px;\n margin: -1px;\n overflow: hidden;\n padding: 0;\n position: absolute;\n width: 1px;\n white-space: nowrap;\n outline: 0;\n -webkit-appearance: none;\n -moz-appearance: none;\n left: 0;\n}\n[dir=rtl] .cdk-visually-hidden {\n left: auto;\n right: 0;\n}\n\n.cdk-overlay-container, .cdk-global-overlay-wrapper {\n pointer-events: none;\n top: 0;\n left: 0;\n height: 100%;\n width: 100%;\n}\n\n.cdk-overlay-container {\n position: fixed;\n z-index: 1000;\n}\n.cdk-overlay-container:empty {\n display: none;\n}\n\n.cdk-global-overlay-wrapper {\n display: flex;\n position: absolute;\n z-index: 1000;\n}\n\n.cdk-overlay-pane {\n position: absolute;\n pointer-events: auto;\n box-sizing: border-box;\n z-index: 1000;\n display: flex;\n max-width: 100%;\n max-height: 100%;\n}\n\n.cdk-overlay-backdrop {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n z-index: 1000;\n pointer-events: auto;\n -webkit-tap-highlight-color: transparent;\n transition: opacity 400ms cubic-bezier(0.25, 0.8, 0.25, 1);\n opacity: 0;\n}\n.cdk-overlay-backdrop.cdk-overlay-backdrop-showing {\n opacity: 1;\n}\n.cdk-high-contrast-active .cdk-overlay-backdrop.cdk-overlay-backdrop-showing {\n opacity: 0.6;\n}\n\n.cdk-overlay-dark-backdrop {\n background: rgba(0, 0, 0, 0.32);\n}\n\n.cdk-overlay-transparent-backdrop {\n transition: visibility 1ms linear, opacity 1ms linear;\n visibility: hidden;\n opacity: 1;\n}\n.cdk-overlay-transparent-backdrop.cdk-overlay-backdrop-showing {\n opacity: 0;\n visibility: visible;\n}\n\n.cdk-overlay-backdrop-noop-animation {\n transition: none;\n}\n\n.cdk-overlay-connected-position-bounding-box {\n position: absolute;\n z-index: 1000;\n display: flex;\n flex-direction: column;\n min-width: 1px;\n min-height: 1px;\n}\n\n.cdk-global-scrollblock {\n position: fixed;\n width: 100%;\n overflow-y: scroll;\n}\n\ntextarea.cdk-textarea-autosize {\n resize: none;\n}\n\ntextarea.cdk-textarea-autosize-measuring {\n padding: 2px 0 !important;\n box-sizing: content-box !important;\n height: auto !important;\n overflow: hidden !important;\n}\n\ntextarea.cdk-textarea-autosize-measuring-firefox {\n padding: 2px 0 !important;\n box-sizing: content-box !important;\n height: 0 !important;\n}\n\n@keyframes cdk-text-field-autofill-start {\n /*!*/\n}\n@keyframes cdk-text-field-autofill-end {\n /*!*/\n}\n.cdk-text-field-autofill-monitored:-webkit-autofill {\n animation: cdk-text-field-autofill-start 0s 1ms;\n}\n\n.cdk-text-field-autofill-monitored:not(:-webkit-autofill) {\n animation: cdk-text-field-autofill-end 0s 1ms;\n}\n\n.mat-focus-indicator {\n position: relative;\n}\n.mat-focus-indicator::before {\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n position: absolute;\n box-sizing: border-box;\n pointer-events: none;\n display: var(--mat-focus-indicator-display, none);\n border: var(--mat-focus-indicator-border-width, 3px) var(--mat-focus-indicator-border-style, solid) var(--mat-focus-indicator-border-color, transparent);\n border-radius: var(--mat-focus-indicator-border-radius, 4px);\n}\n.mat-focus-indicator:focus::before {\n content: \"\";\n}\n\n.cdk-high-contrast-active {\n --mat-focus-indicator-display: block;\n}\n\n.mat-mdc-focus-indicator {\n position: relative;\n}\n.mat-mdc-focus-indicator::before {\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n position: absolute;\n box-sizing: border-box;\n pointer-events: none;\n display: var(--mat-mdc-focus-indicator-display, none);\n border: var(--mat-mdc-focus-indicator-border-width, 3px) var(--mat-mdc-focus-indicator-border-style, solid) var(--mat-mdc-focus-indicator-border-color, transparent);\n border-radius: var(--mat-mdc-focus-indicator-border-radius, 4px);\n}\n.mat-mdc-focus-indicator:focus::before {\n content: \"\";\n}\n\n.cdk-high-contrast-active {\n --mat-mdc-focus-indicator-display: block;\n}\n\n.mat-ripple-element {\n background-color: rgba(0, 0, 0, 0.1);\n}\n\n.mat-mdc-option {\n color: var(--mdc-theme-text-primary-on-background, rgba(0, 0, 0, 0.87));\n}\n.mat-mdc-option:hover:not(.mdc-list-item--disabled), .mat-mdc-option:focus:not(.mdc-list-item--disabled), .mat-mdc-option.mat-mdc-option-active, .mat-mdc-option.mdc-list-item--selected:not(.mat-mdc-option-multiple):not(.mdc-list-item--disabled) {\n background: rgba(0, 0, 0, 0.04);\n}\n\n.mat-primary .mat-mdc-option.mdc-list-item--selected:not(.mdc-list-item--disabled) .mdc-list-item__primary-text {\n color: var(--mdc-theme-primary, #004494);\n}\n\n.mat-accent .mat-mdc-option.mdc-list-item--selected:not(.mdc-list-item--disabled) .mdc-list-item__primary-text {\n color: var(--mdc-theme-secondary, #fffcf4);\n}\n\n.mat-warn .mat-mdc-option.mdc-list-item--selected:not(.mdc-list-item--disabled) .mdc-list-item__primary-text {\n color: var(--mdc-theme-error, #da2131);\n}\n\n.mat-mdc-optgroup-label {\n color: var(--mdc-theme-text-primary-on-background, rgba(0, 0, 0, 0.87));\n}\n\n.mat-pseudo-checkbox {\n color: rgba(0, 0, 0, 0.54);\n}\n.mat-pseudo-checkbox::after {\n color: #fafafa;\n}\n\n.mat-pseudo-checkbox-disabled {\n color: #b0b0b0;\n}\n\n.mat-primary .mat-pseudo-checkbox-checked,\n.mat-primary .mat-pseudo-checkbox-indeterminate {\n background: #004494;\n}\n\n.mat-pseudo-checkbox-checked,\n.mat-pseudo-checkbox-indeterminate,\n.mat-accent .mat-pseudo-checkbox-checked,\n.mat-accent .mat-pseudo-checkbox-indeterminate {\n background: #fffcf4;\n}\n\n.mat-warn .mat-pseudo-checkbox-checked,\n.mat-warn .mat-pseudo-checkbox-indeterminate {\n background: #da2131;\n}\n\n.mat-pseudo-checkbox-checked.mat-pseudo-checkbox-disabled,\n.mat-pseudo-checkbox-indeterminate.mat-pseudo-checkbox-disabled {\n background: #b0b0b0;\n}\n\n.mat-app-background {\n background-color: #fafafa;\n color: rgba(0, 0, 0, 0.87);\n}\n\n.mat-elevation-z0, .mat-mdc-elevation-specific.mat-elevation-z0 {\n /* @alternate */\n box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);\n}\n\n.mat-elevation-z1, .mat-mdc-elevation-specific.mat-elevation-z1 {\n /* @alternate */\n box-shadow: 0px 2px 1px -1px rgba(0, 0, 0, 0.2), 0px 1px 1px 0px rgba(0, 0, 0, 0.14), 0px 1px 3px 0px rgba(0, 0, 0, 0.12);\n}\n\n.mat-elevation-z2, .mat-mdc-elevation-specific.mat-elevation-z2 {\n /* @alternate */\n box-shadow: 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12);\n}\n\n.mat-elevation-z3, .mat-mdc-elevation-specific.mat-elevation-z3 {\n /* @alternate */\n box-shadow: 0px 3px 3px -2px rgba(0, 0, 0, 0.2), 0px 3px 4px 0px rgba(0, 0, 0, 0.14), 0px 1px 8px 0px rgba(0, 0, 0, 0.12);\n}\n\n.mat-elevation-z4, .mat-mdc-elevation-specific.mat-elevation-z4 {\n /* @alternate */\n box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);\n}\n\n.mat-elevation-z5, .mat-mdc-elevation-specific.mat-elevation-z5 {\n /* @alternate */\n box-shadow: 0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 5px 8px 0px rgba(0, 0, 0, 0.14), 0px 1px 14px 0px rgba(0, 0, 0, 0.12);\n}\n\n.mat-elevation-z6, .mat-mdc-elevation-specific.mat-elevation-z6 {\n /* @alternate */\n box-shadow: 0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 6px 10px 0px rgba(0, 0, 0, 0.14), 0px 1px 18px 0px rgba(0, 0, 0, 0.12);\n}\n\n.mat-elevation-z7, .mat-mdc-elevation-specific.mat-elevation-z7 {\n /* @alternate */\n box-shadow: 0px 4px 5px -2px rgba(0, 0, 0, 0.2), 0px 7px 10px 1px rgba(0, 0, 0, 0.14), 0px 2px 16px 1px rgba(0, 0, 0, 0.12);\n}\n\n.mat-elevation-z8, .mat-mdc-elevation-specific.mat-elevation-z8 {\n /* @alternate */\n box-shadow: 0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12);\n}\n\n.mat-elevation-z9, .mat-mdc-elevation-specific.mat-elevation-z9 {\n /* @alternate */\n box-shadow: 0px 5px 6px -3px rgba(0, 0, 0, 0.2), 0px 9px 12px 1px rgba(0, 0, 0, 0.14), 0px 3px 16px 2px rgba(0, 0, 0, 0.12);\n}\n\n.mat-elevation-z10, .mat-mdc-elevation-specific.mat-elevation-z10 {\n /* @alternate */\n box-shadow: 0px 6px 6px -3px rgba(0, 0, 0, 0.2), 0px 10px 14px 1px rgba(0, 0, 0, 0.14), 0px 4px 18px 3px rgba(0, 0, 0, 0.12);\n}\n\n.mat-elevation-z11, .mat-mdc-elevation-specific.mat-elevation-z11 {\n /* @alternate */\n box-shadow: 0px 6px 7px -4px rgba(0, 0, 0, 0.2), 0px 11px 15px 1px rgba(0, 0, 0, 0.14), 0px 4px 20px 3px rgba(0, 0, 0, 0.12);\n}\n\n.mat-elevation-z12, .mat-mdc-elevation-specific.mat-elevation-z12 {\n /* @alternate */\n box-shadow: 0px 7px 8px -4px rgba(0, 0, 0, 0.2), 0px 12px 17px 2px rgba(0, 0, 0, 0.14), 0px 5px 22px 4px rgba(0, 0, 0, 0.12);\n}\n\n.mat-elevation-z13, .mat-mdc-elevation-specific.mat-elevation-z13 {\n /* @alternate */\n box-shadow: 0px 7px 8px -4px rgba(0, 0, 0, 0.2), 0px 13px 19px 2px rgba(0, 0, 0, 0.14), 0px 5px 24px 4px rgba(0, 0, 0, 0.12);\n}\n\n.mat-elevation-z14, .mat-mdc-elevation-specific.mat-elevation-z14 {\n /* @alternate */\n box-shadow: 0px 7px 9px -4px rgba(0, 0, 0, 0.2), 0px 14px 21px 2px rgba(0, 0, 0, 0.14), 0px 5px 26px 4px rgba(0, 0, 0, 0.12);\n}\n\n.mat-elevation-z15, .mat-mdc-elevation-specific.mat-elevation-z15 {\n /* @alternate */\n box-shadow: 0px 8px 9px -5px rgba(0, 0, 0, 0.2), 0px 15px 22px 2px rgba(0, 0, 0, 0.14), 0px 6px 28px 5px rgba(0, 0, 0, 0.12);\n}\n\n.mat-elevation-z16, .mat-mdc-elevation-specific.mat-elevation-z16 {\n /* @alternate */\n box-shadow: 0px 8px 10px -5px rgba(0, 0, 0, 0.2), 0px 16px 24px 2px rgba(0, 0, 0, 0.14), 0px 6px 30px 5px rgba(0, 0, 0, 0.12);\n}\n\n.mat-elevation-z17, .mat-mdc-elevation-specific.mat-elevation-z17 {\n /* @alternate */\n box-shadow: 0px 8px 11px -5px rgba(0, 0, 0, 0.2), 0px 17px 26px 2px rgba(0, 0, 0, 0.14), 0px 6px 32px 5px rgba(0, 0, 0, 0.12);\n}\n\n.mat-elevation-z18, .mat-mdc-elevation-specific.mat-elevation-z18 {\n /* @alternate */\n box-shadow: 0px 9px 11px -5px rgba(0, 0, 0, 0.2), 0px 18px 28px 2px rgba(0, 0, 0, 0.14), 0px 7px 34px 6px rgba(0, 0, 0, 0.12);\n}\n\n.mat-elevation-z19, .mat-mdc-elevation-specific.mat-elevation-z19 {\n /* @alternate */\n box-shadow: 0px 9px 12px -6px rgba(0, 0, 0, 0.2), 0px 19px 29px 2px rgba(0, 0, 0, 0.14), 0px 7px 36px 6px rgba(0, 0, 0, 0.12);\n}\n\n.mat-elevation-z20, .mat-mdc-elevation-specific.mat-elevation-z20 {\n /* @alternate */\n box-shadow: 0px 10px 13px -6px rgba(0, 0, 0, 0.2), 0px 20px 31px 3px rgba(0, 0, 0, 0.14), 0px 8px 38px 7px rgba(0, 0, 0, 0.12);\n}\n\n.mat-elevation-z21, .mat-mdc-elevation-specific.mat-elevation-z21 {\n /* @alternate */\n box-shadow: 0px 10px 13px -6px rgba(0, 0, 0, 0.2), 0px 21px 33px 3px rgba(0, 0, 0, 0.14), 0px 8px 40px 7px rgba(0, 0, 0, 0.12);\n}\n\n.mat-elevation-z22, .mat-mdc-elevation-specific.mat-elevation-z22 {\n /* @alternate */\n box-shadow: 0px 10px 14px -6px rgba(0, 0, 0, 0.2), 0px 22px 35px 3px rgba(0, 0, 0, 0.14), 0px 8px 42px 7px rgba(0, 0, 0, 0.12);\n}\n\n.mat-elevation-z23, .mat-mdc-elevation-specific.mat-elevation-z23 {\n /* @alternate */\n box-shadow: 0px 11px 14px -7px rgba(0, 0, 0, 0.2), 0px 23px 36px 3px rgba(0, 0, 0, 0.14), 0px 9px 44px 8px rgba(0, 0, 0, 0.12);\n}\n\n.mat-elevation-z24, .mat-mdc-elevation-specific.mat-elevation-z24 {\n /* @alternate */\n box-shadow: 0px 11px 15px -7px rgba(0, 0, 0, 0.2), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 9px 46px 8px rgba(0, 0, 0, 0.12);\n}\n\n.mat-theme-loaded-marker {\n display: none;\n}\n\n.mat-calendar-arrow {\n fill: rgba(0, 0, 0, 0.54);\n}\n\n.mat-datepicker-toggle,\n.mat-datepicker-content .mat-calendar-next-button,\n.mat-datepicker-content .mat-calendar-previous-button {\n color: rgba(0, 0, 0, 0.54);\n}\n\n.mat-calendar-table-header-divider::after {\n background: rgba(0, 0, 0, 0.12);\n}\n\n.mat-calendar-table-header,\n.mat-calendar-body-label {\n color: rgba(0, 0, 0, 0.54);\n}\n\n.mat-calendar-body-cell-content,\n.mat-date-range-input-separator {\n color: rgba(0, 0, 0, 0.87);\n border-color: transparent;\n}\n\n.mat-calendar-body-disabled > .mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical) {\n color: rgba(0, 0, 0, 0.38);\n}\n\n.mat-form-field-disabled .mat-date-range-input-separator {\n color: rgba(0, 0, 0, 0.38);\n}\n\n.mat-calendar-body-in-preview {\n color: rgba(0, 0, 0, 0.24);\n}\n\n.mat-calendar-body-today:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical) {\n border-color: rgba(0, 0, 0, 0.38);\n}\n\n.mat-calendar-body-disabled > .mat-calendar-body-today:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical) {\n border-color: rgba(0, 0, 0, 0.18);\n}\n\n.mat-calendar-body-in-range::before {\n background: rgba(0, 68, 148, 0.2);\n}\n\n.mat-calendar-body-comparison-identical,\n.mat-calendar-body-in-comparison-range::before {\n background: rgba(249, 171, 0, 0.2);\n}\n\n.mat-calendar-body-comparison-bridge-start::before,\n[dir=rtl] .mat-calendar-body-comparison-bridge-end::before {\n background: linear-gradient(to right, rgba(0, 68, 148, 0.2) 50%, rgba(249, 171, 0, 0.2) 50%);\n}\n\n.mat-calendar-body-comparison-bridge-end::before,\n[dir=rtl] .mat-calendar-body-comparison-bridge-start::before {\n background: linear-gradient(to left, rgba(0, 68, 148, 0.2) 50%, rgba(249, 171, 0, 0.2) 50%);\n}\n\n.mat-calendar-body-in-range > .mat-calendar-body-comparison-identical,\n.mat-calendar-body-in-comparison-range.mat-calendar-body-in-range::after {\n background: #a8dab5;\n}\n\n.mat-calendar-body-comparison-identical.mat-calendar-body-selected,\n.mat-calendar-body-in-comparison-range > .mat-calendar-body-selected {\n background: #46a35e;\n}\n\n.mat-calendar-body-selected {\n background-color: #004494;\n color: white;\n}\n\n.mat-calendar-body-disabled > .mat-calendar-body-selected {\n background-color: rgba(0, 68, 148, 0.4);\n}\n\n.mat-calendar-body-today.mat-calendar-body-selected {\n box-shadow: inset 0 0 0 1px white;\n}\n\n.cdk-keyboard-focused .mat-calendar-body-active > .mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical),\n.cdk-program-focused .mat-calendar-body-active > .mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical) {\n background-color: rgba(0, 68, 148, 0.3);\n}\n\n@media (hover: hover) {\n .mat-calendar-body-cell:not(.mat-calendar-body-disabled):hover > .mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical) {\n background-color: rgba(0, 68, 148, 0.3);\n }\n}\n.mat-datepicker-content {\n /* @alternate */\n box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);\n background-color: white;\n color: rgba(0, 0, 0, 0.87);\n}\n.mat-datepicker-content.mat-accent .mat-calendar-body-in-range::before {\n background: rgba(255, 252, 244, 0.2);\n}\n.mat-datepicker-content.mat-accent .mat-calendar-body-comparison-identical,\n.mat-datepicker-content.mat-accent .mat-calendar-body-in-comparison-range::before {\n background: rgba(249, 171, 0, 0.2);\n}\n.mat-datepicker-content.mat-accent .mat-calendar-body-comparison-bridge-start::before,\n.mat-datepicker-content.mat-accent [dir=rtl] .mat-calendar-body-comparison-bridge-end::before {\n background: linear-gradient(to right, rgba(255, 252, 244, 0.2) 50%, rgba(249, 171, 0, 0.2) 50%);\n}\n.mat-datepicker-content.mat-accent .mat-calendar-body-comparison-bridge-end::before,\n.mat-datepicker-content.mat-accent [dir=rtl] .mat-calendar-body-comparison-bridge-start::before {\n background: linear-gradient(to left, rgba(255, 252, 244, 0.2) 50%, rgba(249, 171, 0, 0.2) 50%);\n}\n.mat-datepicker-content.mat-accent .mat-calendar-body-in-range > .mat-calendar-body-comparison-identical,\n.mat-datepicker-content.mat-accent .mat-calendar-body-in-comparison-range.mat-calendar-body-in-range::after {\n background: #a8dab5;\n}\n.mat-datepicker-content.mat-accent .mat-calendar-body-comparison-identical.mat-calendar-body-selected,\n.mat-datepicker-content.mat-accent .mat-calendar-body-in-comparison-range > .mat-calendar-body-selected {\n background: #46a35e;\n}\n.mat-datepicker-content.mat-accent .mat-calendar-body-selected {\n background-color: #fffcf4;\n color: #404040;\n}\n.mat-datepicker-content.mat-accent .mat-calendar-body-disabled > .mat-calendar-body-selected {\n background-color: rgba(255, 252, 244, 0.4);\n}\n.mat-datepicker-content.mat-accent .mat-calendar-body-today.mat-calendar-body-selected {\n box-shadow: inset 0 0 0 1px #404040;\n}\n.mat-datepicker-content.mat-accent .cdk-keyboard-focused .mat-calendar-body-active > .mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical),\n.mat-datepicker-content.mat-accent .cdk-program-focused .mat-calendar-body-active > .mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical) {\n background-color: rgba(255, 252, 244, 0.3);\n}\n@media (hover: hover) {\n .mat-datepicker-content.mat-accent .mat-calendar-body-cell:not(.mat-calendar-body-disabled):hover > .mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical) {\n background-color: rgba(255, 252, 244, 0.3);\n }\n}\n.mat-datepicker-content.mat-warn .mat-calendar-body-in-range::before {\n background: rgba(218, 33, 49, 0.2);\n}\n.mat-datepicker-content.mat-warn .mat-calendar-body-comparison-identical,\n.mat-datepicker-content.mat-warn .mat-calendar-body-in-comparison-range::before {\n background: rgba(249, 171, 0, 0.2);\n}\n.mat-datepicker-content.mat-warn .mat-calendar-body-comparison-bridge-start::before,\n.mat-datepicker-content.mat-warn [dir=rtl] .mat-calendar-body-comparison-bridge-end::before {\n background: linear-gradient(to right, rgba(218, 33, 49, 0.2) 50%, rgba(249, 171, 0, 0.2) 50%);\n}\n.mat-datepicker-content.mat-warn .mat-calendar-body-comparison-bridge-end::before,\n.mat-datepicker-content.mat-warn [dir=rtl] .mat-calendar-body-comparison-bridge-start::before {\n background: linear-gradient(to left, rgba(218, 33, 49, 0.2) 50%, rgba(249, 171, 0, 0.2) 50%);\n}\n.mat-datepicker-content.mat-warn .mat-calendar-body-in-range > .mat-calendar-body-comparison-identical,\n.mat-datepicker-content.mat-warn .mat-calendar-body-in-comparison-range.mat-calendar-body-in-range::after {\n background: #a8dab5;\n}\n.mat-datepicker-content.mat-warn .mat-calendar-body-comparison-identical.mat-calendar-body-selected,\n.mat-datepicker-content.mat-warn .mat-calendar-body-in-comparison-range > .mat-calendar-body-selected {\n background: #46a35e;\n}\n.mat-datepicker-content.mat-warn .mat-calendar-body-selected {\n background-color: #da2131;\n color: white;\n}\n.mat-datepicker-content.mat-warn .mat-calendar-body-disabled > .mat-calendar-body-selected {\n background-color: rgba(218, 33, 49, 0.4);\n}\n.mat-datepicker-content.mat-warn .mat-calendar-body-today.mat-calendar-body-selected {\n box-shadow: inset 0 0 0 1px white;\n}\n.mat-datepicker-content.mat-warn .cdk-keyboard-focused .mat-calendar-body-active > .mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical),\n.mat-datepicker-content.mat-warn .cdk-program-focused .mat-calendar-body-active > .mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical) {\n background-color: rgba(218, 33, 49, 0.3);\n}\n@media (hover: hover) {\n .mat-datepicker-content.mat-warn .mat-calendar-body-cell:not(.mat-calendar-body-disabled):hover > .mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical) {\n background-color: rgba(218, 33, 49, 0.3);\n }\n}\n\n.mat-datepicker-content-touch {\n /* @alternate */\n box-shadow: 0px 11px 15px -7px rgba(0, 0, 0, 0.2), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 9px 46px 8px rgba(0, 0, 0, 0.12);\n}\n\n.mat-datepicker-toggle-active {\n color: #004494;\n}\n.mat-datepicker-toggle-active.mat-accent {\n color: #fffcf4;\n}\n.mat-datepicker-toggle-active.mat-warn {\n color: #da2131;\n}\n\n.mat-date-range-input-inner[disabled] {\n color: rgba(0, 0, 0, 0.38);\n}\n\n.mdc-menu-surface {\n /* @alternate */\n box-shadow: 0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12);\n background-color: var(--mdc-theme-surface, #fff);\n color: var(--mdc-theme-on-surface, #000);\n}\n.mdc-list-item__primary-text {\n color: var(--mdc-theme-text-primary-on-background, rgba(0, 0, 0, 0.87));\n}\n\n.mdc-list-item__secondary-text {\n color: var(--mdc-theme-text-secondary-on-background, rgba(0, 0, 0, 0.54));\n}\n\n.mdc-list-item__overline-text {\n color: var(--mdc-theme-text-hint-on-background, rgba(0, 0, 0, 0.38));\n}\n\n.mdc-list-item--with-leading-icon .mdc-list-item__start,\n.mdc-list-item--with-trailing-icon .mdc-list-item__end {\n background-color: transparent;\n}\n\n.mdc-list-item--with-leading-icon .mdc-list-item__start,\n.mdc-list-item--with-trailing-icon .mdc-list-item__end {\n color: var(--mdc-theme-text-icon-on-background, rgba(0, 0, 0, 0.38));\n}\n\n.mdc-list-item__end {\n color: var(--mdc-theme-text-hint-on-background, rgba(0, 0, 0, 0.38));\n}\n\n.mdc-list-item--disabled .mdc-list-item__start,\n.mdc-list-item--disabled .mdc-list-item__content,\n.mdc-list-item--disabled .mdc-list-item__end {\n opacity: 0.38;\n}\n\n.mdc-list-item--disabled .mdc-list-item__primary-text {\n color: var(--mdc-theme-on-surface, #000);\n}\n.mdc-list-item--disabled .mdc-list-item__secondary-text {\n color: var(--mdc-theme-on-surface, #000);\n}\n.mdc-list-item--disabled .mdc-list-item__overline-text {\n color: var(--mdc-theme-on-surface, #000);\n}\n.mdc-list-item--disabled.mdc-list-item--with-leading-icon .mdc-list-item__start {\n color: var(--mdc-theme-on-surface, #000);\n}\n.mdc-list-item--disabled.mdc-list-item--with-trailing-icon .mdc-list-item__end {\n color: var(--mdc-theme-on-surface, #000);\n}\n.mdc-list-item--disabled.mdc-list-item--with-trailing-meta .mdc-list-item__end {\n color: var(--mdc-theme-on-surface, #000);\n}\n\n.mdc-list-item--selected .mdc-list-item__primary-text,\n.mdc-list-item--activated .mdc-list-item__primary-text {\n color: var(--mdc-theme-primary, #004494);\n}\n.mdc-list-item--selected.mdc-list-item--with-leading-icon .mdc-list-item__start,\n.mdc-list-item--activated.mdc-list-item--with-leading-icon .mdc-list-item__start {\n color: var(--mdc-theme-primary, #004494);\n}\n\n.mdc-deprecated-list-group__subheader {\n color: var(--mdc-theme-text-primary-on-background, rgba(0, 0, 0, 0.87));\n}\n\n@media screen and (forced-colors: active), (-ms-high-contrast: active) {\n .mdc-list-divider::after {\n border-bottom-color: white;\n }\n}\n.mdc-list-divider {\n background-color: rgba(0, 0, 0, 0.12);\n}\n\n.cdk-overlay-pane {\n background-color: white;\n}\n\n.cdk-global-scrollblock {\n position: fixed;\n overflow-y: scroll;\n width: 100%;\n}\n.cdk-global-scrollblock::-webkit-scrollbar {\n display: inherit;\n height: 8px;\n width: 8px;\n background-color: var(--eui-base-color-grey-10);\n}\n.cdk-global-scrollblock::-webkit-scrollbar-thumb {\n background-color: var(--eui-base-color-grey-20);\n border-radius: 5rem;\n}\n.cdk-global-scrollblock::-webkit-scrollbar-thumb:hover {\n background-color: var(--eui-base-color-grey-25);\n}\n.cdk-global-scrollblock::-webkit-scrollbar-track {\n background-color: var(--eui-base-color-grey-10);\n border-radius: 0;\n}\n\n@media screen and (max-width: 767px) {\n .cdk-global-scrollblock {\n height: 100%;\n overflow: auto;\n position: fixed;\n width: 100%;\n }\n .cdk-global-scrollblock::-webkit-scrollbar {\n display: inherit;\n height: 8px;\n width: 8px;\n background-color: var(--eui-base-color-grey-10);\n }\n .cdk-global-scrollblock::-webkit-scrollbar-thumb {\n background-color: var(--eui-base-color-grey-20);\n border-radius: 5rem;\n }\n .cdk-global-scrollblock::-webkit-scrollbar-thumb:hover {\n background-color: var(--eui-base-color-grey-25);\n }\n .cdk-global-scrollblock::-webkit-scrollbar-track {\n background-color: var(--eui-base-color-grey-10);\n border-radius: 0;\n }\n}\n.flex-container {\n align-items: center;\n display: flex;\n width: 100%;\n}\n\n.d-flex {\n display: -webkit-box !important;\n display: -webkit-flex !important;\n display: -ms-flexbox !important;\n display: flex !important;\n}\n\n.ux-col {\n flex: 1 0 auto;\n}\n\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\n.h1,\n.h2,\n.h3,\n.h4,\n.h5,\n.h6,\n.h7,\n.h8,\n.h9 {\n font-family: var(--eui-base-font-family);\n font-size: var(--eui-base-font-size);\n font-style: normal;\n font-weight: 400;\n color: inherit;\n}\n\nh1,\n.h1 {\n font: normal normal 400 2rem/2.5rem arial, sans-serif;\n line-height: var(--eui-base-line-height);\n}\n\nh2,\n.h2 {\n font: normal normal 400 1.75rem/2rem arial, sans-serif;\n line-height: var(--eui-base-line-height);\n}\n\nh3,\n.h3 {\n font: normal normal 400 1.5rem/1.75rem arial, sans-serif;\n line-height: var(--eui-base-line-height);\n}\n\nh4,\n.h4 {\n font: normal normal 400 1.25rem/1.5rem arial, sans-serif;\n line-height: var(--eui-base-line-height);\n}\n\nh5,\n.h5 {\n font: normal normal 400 1.125rem/1.5rem arial, sans-serif;\n line-height: var(--eui-base-line-height);\n}\n\nh6,\n.h6 {\n font: normal normal 400 1rem/1.25rem arial, sans-serif;\n line-height: var(--eui-base-line-height);\n}\n\n.h7,\n.small {\n font: normal normal 400 0.875rem/1rem arial, sans-serif;\n line-height: var(--eui-base-line-height);\n}\n\n.h8,\n.smaller {\n font: normal normal 400 0.75rem/1rem arial, sans-serif;\n line-height: var(--eui-base-line-height);\n}\n\n.h9,\n.smallest,\n.tiny {\n font: normal normal 400 0.625rem/1rem arial, sans-serif;\n line-height: var(--eui-base-line-height);\n}\n\na,\na:not([href]):not([tabindex]) {\n color: var(--eui-base-color-link);\n cursor: pointer;\n}\na:hover, a:focus,\na:not([href]):not([tabindex]):hover,\na:not([href]):not([tabindex]):focus {\n color: var(--eui-base-color-link);\n text-decoration: underline;\n}\n\na {\n background-color: transparent;\n text-decoration: none;\n}\n\na:focus {\n text-decoration: underline;\n}\n\nabbr[title] {\n text-decoration: none;\n}\n\n.label, abbr, blockquote, del, label, mark, p {\n font-size: var(--eui-base-font-size);\n}\n\nlabel {\n margin-bottom: var(--eui-base-spacing-xs);\n}\n\n.eui-input-maxlength-wrapper {\n position: relative;\n width: 100%;\n}\n.eui-input-maxlength-wrapper .eui-input-maxlength {\n font: normal normal 400 0.75rem/1rem arial, sans-serif;\n background-color: var(--eui-base-color-grey-10);\n border: 1px solid var(--eui-base-color-grey-50);\n border-radius: var(--eui-base-border-radius);\n color: var(--eui-base-color-black);\n padding: 0 var(--eui-base-spacing-2xs);\n position: absolute;\n right: calc(-1 * var(--eui-base-spacing-xs));\n top: calc(-1 * var(--eui-base-spacing-xs));\n z-index: var(--eui-base-z-index-input-maxlength);\n}\n.eui-input-maxlength-wrapper .eui-input-maxlength--invalid {\n background-color: var(--eui-base-color-danger-100);\n border-color: var(--eui-base-color-danger-100);\n color: var(--eui-base-color-white);\n}\n\nhtml {\n --eui-html-font-size: var(--eui-base-font-size);\n --eui-html-line-height: var(--eui-base-line-height);\n display: block;\n height: 100%;\n font-size: var(--eui-html-font-size);\n line-height: var(--eui-html-line-height);\n}\n\nbody {\n --eui-body-bg-color: var(--eui-app-body-bg-color);\n --eui-body-color: var(--eui-base-color);\n --eui-body-font-family: var(--eui-base-font-family);\n --eui-body-font-size: var(--eui-base-font-size);\n --eui-body-line-height: var(--eui-base-line-height);\n background-color: var(--eui-body-bg-color);\n color: var(--eui-body-color);\n font-family: var(--eui-body-font-family);\n font-feature-settings: \"liga\";\n font-size: var(--eui-body-font-size);\n -moz-font-smoothing: antialiased;\n -webkit-font-smoothing: antialiased;\n font-style: normal;\n font-weight: normal;\n height: 100%;\n line-height: var(--eui-body-line-height);\n margin: 0;\n text-align: left;\n text-rendering: optimizeLegibility;\n}\n\n@-ms-viewport {\n width: device-width;\n}\n/* ==========================================================================\n #BOX-SIZING\n ========================================================================== */\n/**\n * More sensible default box-sizing:\n * css-tricks.com/inheriting-box-sizing-probably-slightly-better-best-practice\n */\nhtml {\n box-sizing: border-box;\n}\n\n*, *::before, *::after {\n box-sizing: inherit;\n}\n\na,\narea,\nbutton,\n[role=button],\ninput,\nlabel,\nselect,\nsummary,\ntextarea {\n touch-action: manipulation;\n}\n\n[tabindex=\"-1\"]:focus {\n outline: none !important;\n}\n\n[hidden] {\n display: none !important;\n}\n\np,\nlabel,\n.label,\nblockquote,\nabbr,\nmark,\ndel {\n font-size: var(--eui-base-font-size);\n}\n\n.label,\nlabel {\n align-items: center;\n display: inline-flex;\n font-style: normal;\n font-weight: normal;\n padding-right: var(--eui-base-spacing-m);\n position: relative;\n}\n\nem {\n font-style: italic;\n}\n\noptgroup,\nstrong,\nb {\n font-weight: bold;\n}\noptgroup i, optgroup em,\nstrong i,\nstrong em,\nb i,\nb em {\n font-style: italic;\n}\n\ncode,\nkbd,\npre,\nsamp {\n font-size: var(--eui-base-font-size);\n font-family: var(--eui-base-font-family-monospace);\n font-style: normal;\n font-weight: 400;\n}\n\ncode {\n color: #cc367b;\n font-size: 95%;\n word-wrap: break-word;\n}\n\nsmall {\n font-size: 80%;\n}\n\nkbd {\n background-color: var(--eui-base-color-grey-75);\n border-radius: var(--eui-base-border-radius);\n color: var(--eui-base-color-white);\n font-size: var(--eui-base-font-size-s);\n padding: 1px var(--eui-base-spacing-2xs);\n}\n\npre {\n color: var(--eui-base-color);\n display: block;\n font-size: 87.5%;\n margin-bottom: var(--eui-base-spacing-m);\n margin-top: 0;\n overflow: auto;\n}\n\nblockquote {\n border-left: var(--eui-base-spacing-xs) solid var(--eui-base-color-grey-20);\n padding: var(--eui-base-spacing-xs) var(--eui-base-spacing-m);\n}\n\nmark,\n.mark {\n background-color: var(--eui-base-color-accent-25);\n padding: var(--eui-base-spacing-2xs);\n}\n\ntable.eui-table-default {\n background-color: transparent;\n border-collapse: collapse;\n border-spacing: 0;\n color: var(--eui-base-color-font);\n max-width: 100%;\n overflow: auto;\n position: relative;\n}\ntable.eui-table-default thead > tr > th,\ntable.eui-table-default tbody > tr > td,\ntable.eui-table-default tfoot > tr > td {\n vertical-align: top;\n}\ntable.eui-table-default tr > th,\ntable.eui-table-default tr > td {\n padding: var(--eui-base-spacing-s);\n}\ntable.eui-table-default thead th {\n border-bottom: 1px solid var(--eui-base-color-grey-10);\n color: var(--eui-base-color-grey-75);\n font-size: var(--eui-base-font-size);\n padding: var(--eui-base-spacing-m) var(--eui-base-spacing-s);\n vertical-align: middle;\n font-style: normal;\n font-weight: 700;\n}\ntable.eui-table-default thead tr {\n background: var(--eui-base-color-grey-5);\n border-top: 0;\n}\ntable.eui-table-default tbody {\n -webkit-overflow-scrolling: touch;\n}\ntable.eui-table-default tbody tr:nth-of-type(odd) {\n background-color: var(--eui-base-color-white);\n}\ntable.eui-table-default tbody tr:nth-of-type(odd):hover {\n background-color: var(--eui-base-color-grey-5);\n}\ntable.eui-table-default tbody tr:nth-of-type(even) {\n background-color: var(--eui-base-color-grey-5);\n}\ntable.eui-table-default tbody tr:nth-of-type(even):hover {\n background-color: var(--eui-base-color-white);\n}\ntable.eui-table-default tr {\n border-bottom: 1px solid var(--eui-base-color-grey-20);\n display: table-row;\n}\ntable.eui-table-default--compact thead th {\n padding: var(--eui-base-spacing-xs) var(--eui-base-spacing-s);\n}\ntable.eui-table-default--compact tr > td {\n padding: var(--eui-base-spacing-2xs) var(--eui-base-spacing-s);\n}\ntable.eui-table-default--responsive {\n display: block;\n width: 100%;\n}\ntable.eui-table-default--responsive--bordered {\n border: 0;\n}\ntable.eui-table-default--bordered th,\ntable.eui-table-default--bordered td {\n border: 1px solid var(--eui-base-color-grey-20);\n}\ntable.eui-table-default--shadowed {\n box-shadow: var(--eui-base-base-shadow-1);\n}\ntable.eui-table-default--nowrap {\n white-space: nowrap;\n}\ntable.eui-table-default--nowrap thead > tr > th,\ntable.eui-table-default--nowrap tbody > tr > td,\ntable.eui-table-default--nowrap tfoot > tr > td {\n white-space: nowrap;\n}\ntable.eui-table-default--centered {\n display: table;\n margin: 0 auto;\n width: auto;\n}\ntable.eui-table-default--align-middle thead > tr > th,\ntable.eui-table-default--align-middle tbody > tr > td,\ntable.eui-table-default--align-middle tfoot > tr > td {\n vertical-align: middle;\n}\n\nhtml.eui-t-compact {\n --eui-base-font-size: 14px;\n --eui-base-line-height: 1.25;\n font-size: var(--eui-base-font-size);\n line-height: var(--eui-base-line-height);\n}\n\nform.eui-t-form-compact {\n --eui-base-font-size: 14px;\n --eui-base-line-height: 1.25;\n --eui-input-group-spacing: var(--eui-base-spacing-xs);\n --eui-compact-ratio: 0.875;\n --eui-base-spacing-none: calc( var(--eui-compact-ratio) * 0 );\n --eui-base-spacing-2xs: calc( var(--eui-compact-ratio) * 0.25rem );\n --eui-base-spacing-xs: calc( var(--eui-compact-ratio) * 0.5rem );\n --eui-base-spacing-s: calc( var(--eui-compact-ratio) * 0.75rem );\n --eui-base-spacing-m: calc( var(--eui-compact-ratio) * 1rem );\n --eui-base-spacing-l: calc( var(--eui-compact-ratio) * 1.5rem );\n --eui-base-spacing-xl: calc( var(--eui-compact-ratio) * 2rem );\n --eui-base-spacing-2xl: calc( var(--eui-compact-ratio) * 2.5rem );\n --eui-base-spacing-3xl: calc( var(--eui-compact-ratio) * 3rem );\n --eui-base-spacing-4xl: calc( var(--eui-compact-ratio) * 4rem );\n font-size: var(--eui-base-font-size);\n line-height: var(--eui-base-line-height);\n}\nform.eui-t-form-compact .eui-input-group {\n margin-bottom: var(--eui-input-group-spacing);\n}\nform.eui-t-form-compact .eui-input-group label {\n margin-bottom: var(--eui-base-spacing-2xs);\n}\nform.eui-t-form-compact .eui-input-group-addon-item {\n min-height: calc(2.5 * var(--eui-base-spacing));\n min-width: calc(2.5 * var(--eui-base-spacing));\n padding: calc(var(--eui-base-spacing-xs) - 1px);\n}\n\n.eui-table.eui-t-table-compact {\n --eui-base-font-size: 14px;\n --eui-base-line-height: 1.25;\n --eui-table-header-padding: var(--eui-base-spacing-s);\n --eui-table-row-padding: var(--eui-base-spacing-2xs);\n --eui-table-footer-padding: var(--eui-base-spacing-s);\n --eui-compact-ratio: 0.875;\n --eui-base-spacing-none: calc( var(--eui-compact-ratio) * 0 );\n --eui-base-spacing-2xs: calc( var(--eui-compact-ratio) * 0.25rem );\n --eui-base-spacing-xs: calc( var(--eui-compact-ratio) * 0.5rem );\n --eui-base-spacing-s: calc( var(--eui-compact-ratio) * 0.75rem );\n --eui-base-spacing-m: calc( var(--eui-compact-ratio) * 1rem );\n --eui-base-spacing-l: calc( var(--eui-compact-ratio) * 1.5rem );\n --eui-base-spacing-xl: calc( var(--eui-compact-ratio) * 2rem );\n --eui-base-spacing-2xl: calc( var(--eui-compact-ratio) * 2.5rem );\n --eui-base-spacing-3xl: calc( var(--eui-compact-ratio) * 3rem );\n --eui-base-spacing-4xl: calc( var(--eui-compact-ratio) * 4rem );\n font-size: var(--eui-base-font-size);\n line-height: var(--eui-base-line-height);\n}\n.eui-table.eui-t-table-compact thead tr {\n height: auto;\n}\n.eui-table.eui-t-table-compact thead tr th {\n padding: var(--eui-table-header-padding) var(--eui-base-spacing-s);\n}\n.eui-table.eui-t-table-compact tbody tr {\n height: auto;\n}\n.eui-table.eui-t-table-compact tbody tr td {\n padding: var(--eui-table-row-padding) var(--eui-base-spacing-s);\n}\n.eui-table.eui-t-table-compact tfoot tr {\n height: auto;\n}\n.eui-table.eui-t-table-compact tfoot tr td {\n padding: var(--eui-table-footer-padding) var(--eui-base-spacing-s);\n}\n\n.eui-card.eui-t-card-compact {\n --eui-base-font-size: 14px;\n --eui-base-line-height: 1.25;\n --eui-card-title-size: var(--eui-base-font-size-m);\n --eui-card-subtitle-size: var(--eui-base-font-size-s);\n --eui-compact-ratio: 0.875;\n --eui-base-spacing-none: calc( var(--eui-compact-ratio) * 0 );\n --eui-base-spacing-2xs: calc( var(--eui-compact-ratio) * 0.25rem );\n --eui-base-spacing-xs: calc( var(--eui-compact-ratio) * 0.5rem );\n --eui-base-spacing-s: calc( var(--eui-compact-ratio) * 0.75rem );\n --eui-base-spacing-m: calc( var(--eui-compact-ratio) * 1rem );\n --eui-base-spacing-l: calc( var(--eui-compact-ratio) * 1.5rem );\n --eui-base-spacing-xl: calc( var(--eui-compact-ratio) * 2rem );\n --eui-base-spacing-2xl: calc( var(--eui-compact-ratio) * 2.5rem );\n --eui-base-spacing-3xl: calc( var(--eui-compact-ratio) * 3rem );\n --eui-base-spacing-4xl: calc( var(--eui-compact-ratio) * 4rem );\n font-size: var(--eui-base-font-size);\n line-height: var(--eui-base-line-height);\n}\n.eui-card.eui-t-card-compact .eui-card-header__title-container-title, .eui-card.eui-t-card-compact .eui-card-header__title-container-title .eui-label {\n font-size: var(--eui-card-title-size);\n}\n.eui-card.eui-t-card-compact .eui-card-header__title-container-subtitle, .eui-card.eui-t-card-compact .eui-card-header__title-container-subtitle .eui-label {\n font-size: var(--eui-card-subtitle-size);\n}\n.eui-card.eui-t-card-compact .eui-card-header__urgent-indicator::after {\n font-size: var(--eui-base-font-size-2xl);\n}\n\n@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {\n img[src$=\".svg\"] {\n width: 100%;\n }\n}\n@media screen {\n img {\n background-repeat: no-repeat;\n background-size: 100%;\n -ms-interpolation-mode: bicubic;\n }\n}\n.cookie-consent-banner {\n display: block !important;\n min-width: 50% !important;\n position: absolute !important;\n right: 50% !important;\n top: var(--eui-base-spacing-m) !important;\n transform: translateX(50%) !important;\n z-index: var(--eui-base-z-index-max) !important;\n box-shadow: var(--eui-base-shadow-24) !important;\n background: var(--eui-base-color-primary) !important;\n color: var(eui-base-color-white) !important;\n}\n\n#loader-wrapper {\n height: 100%;\n left: 0;\n position: fixed;\n top: 0;\n width: 100%;\n z-index: 1000;\n}\n#loader-wrapper #loader {\n -webkit-animation: spin 2s linear infinite;\n /* Chrome, Opera 15+, Safari 5+ */\n animation: spin 2s linear infinite;\n /* Chrome, Firefox 16+, IE 10+, Opera */\n animation: hourglass 5s linear infinite;\n border: 10px solid transparent;\n border-radius: 50%;\n border-top-color: var(--eui-base-color-warning-100);\n display: block;\n height: 200px;\n left: 50%;\n margin: -100px 0 0 -100px;\n position: relative;\n top: 50%;\n width: 200px;\n}\n#loader-wrapper #loader::before {\n -webkit-animation: spin 2s linear infinite;\n /* Chrome, Opera 15+, Safari 5+ */\n animation: spin 2s linear infinite;\n /* Chrome, Firefox 16+, IE 10+, Opera */\n animation: hourglass 4s linear infinite;\n border: 10px solid transparent;\n border-radius: 50%;\n border-top-color: var(--eui-base-color-danger-100);\n bottom: 5px;\n content: \"\";\n left: 5px;\n position: absolute;\n right: 5px;\n top: 5px;\n}\n#loader-wrapper #loader::after {\n -webkit-animation: spin 1s linear infinite;\n /* Chrome, Opera 15+, Safari 5+ */\n animation: spin 1s linear infinite;\n /* Chrome, Firefox 16+, IE 10+, Opera */\n animation: hourglass 3s linear infinite;\n border: 10px solid transparent;\n border-radius: 50%;\n border-top-color: var(--eui-base-color-primary-100);\n bottom: 20px;\n content: \"\";\n left: 20px;\n position: absolute;\n right: 20px;\n top: 20px;\n}\n\n/* stylelint-enable */\n@-webkit-keyframes spin {\n 0% {\n -webkit-transform: rotate(0deg);\n -ms-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n 100% {\n -webkit-transform: rotate(360deg);\n -ms-transform: rotate(360deg);\n transform: rotate(360deg);\n }\n}\n@keyframes spin {\n 0% {\n -webkit-transform: rotate(0deg);\n -ms-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n 100% {\n -webkit-transform: rotate(360deg);\n -ms-transform: rotate(360deg);\n transform: rotate(360deg);\n }\n}\n@-webkit-keyframes hourglass {\n 0% {\n transform: rotate(0);\n animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);\n }\n 50% {\n transform: rotate(900deg);\n animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\n }\n 100% {\n transform: rotate(1800deg);\n }\n}\n@keyframes hourglass {\n 0% {\n transform: rotate(0);\n animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);\n }\n 50% {\n transform: rotate(900deg);\n animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\n }\n 100% {\n transform: rotate(1800deg);\n }\n}\n\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQGV1aS9zdHlsZXMtYmFzZS9zcmMvc3R5bGVzLzAxLWVjbC9hbGwvZnVsbC1jc3MvZWNsLXJlc2V0LnNjc3MiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQGV1aS9zdHlsZXMtYmFzZS9zcmMvc3R5bGVzLzAyLWJhc2UvZnVuY3Rpb25zL191dGlscy5zY3NzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0BldWkvc3R5bGVzLWJhc2Uvc3JjL3N0eWxlcy8wMi1iYXNlL21peGlucy9fZXVpLWZvbnQtZmFtaWx5LnNjc3MiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQGV1aS9zdHlsZXMtYmFzZS9zcmMvc3R5bGVzLzAzLXZhcnMvX3Rva2Vucy52YXJzLnNjc3MiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQGV1aS9zdHlsZXMtYmFzZS9zcmMvc3R5bGVzLzAzLXZhcnMvX290aGVyLnZhcnMuc2NzcyIsIjAyYi1iYXNlLXZhcnMvX2xheW91dC52YXJzLnNjc3MiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQGV1aS9zdHlsZXMtYmFzZS9zcmMvc3R5bGVzLzA1LWFzc2V0cy9pY29ucy1zdmcvX2ljb25zLWdlbmVyaWNzLnNjc3MiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQGFuZ3VsYXIvbWF0ZXJpYWwvY29yZS9yaXBwbGUvX3JpcHBsZS5zY3NzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhbmd1bGFyL2Nkay9hMTF5L19pbmRleC5zY3NzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhbmd1bGFyL2Nkay9vdmVybGF5L19pbmRleC5zY3NzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhbmd1bGFyL2Nkay90ZXh0LWZpZWxkL19pbmRleC5zY3NzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUvZm9jdXMtaW5kaWNhdG9ycy9fcHJpdmF0ZS5zY3NzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUvc3R5bGUvX2xheW91dC1jb21tb24uc2NzcyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYW5ndWxhci9tYXRlcmlhbC9jb3JlL3JpcHBsZS9fcmlwcGxlLXRoZW1lLnNjc3MiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQGFuZ3VsYXIvbWF0ZXJpYWwvY29yZS9vcHRpb24vX29wdGlvbi10aGVtZS5zY3NzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0BtYXRlcmlhbC90aGVtZS9fY3NzLnNjc3MiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQG1hdGVyaWFsL2xpc3QvX2V2b2x1dGlvbi1taXhpbnMuc2NzcyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYW5ndWxhci9tYXRlcmlhbC9jb3JlL29wdGlvbi9fb3B0Z3JvdXAtdGhlbWUuc2NzcyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYW5ndWxhci9tYXRlcmlhbC9jb3JlL3NlbGVjdGlvbi9wc2V1ZG8tY2hlY2tib3gvX3BzZXVkby1jaGVja2JveC10aGVtZS5zY3NzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUvX2NvcmUtdGhlbWUuc2NzcyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9AbWF0ZXJpYWwvZWxldmF0aW9uL19lbGV2YXRpb24tdGhlbWUuc2NzcyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYW5ndWxhci9tYXRlcmlhbC9kYXRlcGlja2VyL19kYXRlcGlja2VyLXRoZW1lLnNjc3MiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQG1hdGVyaWFsL21lbnUtc3VyZmFjZS9fbWl4aW5zLnNjc3MiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQG1hdGVyaWFsL2xpc3QvX2V2b2x1dGlvbi12YXJpYWJsZXMuc2NzcyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9AbWF0ZXJpYWwvZG9tL19kb20uc2NzcyIsIjA1LW1hdGVyaWFsL19vdmVycmlkZXMuc2NzcyIsIjAyLWJhc2UvbWl4aW5zL19ldWktc2Nyb2xsYmFycy5zY3NzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0BldWkvc3R5bGVzLWJhc2Uvc3JjL3N0eWxlcy8wMi1iYXNlL21peGlucy91dGlscy9fbWVkaWEuc2NzcyIsIjA2LXNoYXJlZC9fZmxleC5zY3NzIiwiMDYtc2hhcmVkL190eXBvZ3JhcGh5LnNjc3MiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQGV1aS9zdHlsZXMtYmFzZS9zcmMvc3R5bGVzLzAyLWJhc2UvbWl4aW5zL19ldWktZm9udC5zY3NzIiwiMDYtc2hhcmVkL19ldWktaW5wdXQtbWF4bGVuZ3RoLnNjc3MiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQGV1aS9zdHlsZXMtYmFzZS9zcmMvc3R5bGVzLzA0LWVsZW1lbnRzL19odG1sLnNjc3MiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQGV1aS9zdHlsZXMtYmFzZS9zcmMvc3R5bGVzLzA0LWVsZW1lbnRzL19ib2R5LnNjc3MiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQGV1aS9zdHlsZXMtYmFzZS9zcmMvc3R5bGVzLzA0LWVsZW1lbnRzL19zaGFyZWQuc2NzcyIsIjA3LWVsZW1lbnRzL2V1aS10YWJsZS1kZWZhdWx0L19ldWktdGFibGUtZGVmYXVsdC5zY3NzIiwiMDgtdGhlbWVzL2NvbXBhY3QvX2V1aS10LWNvbXBhY3Quc2NzcyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9AZXVpL3N0eWxlcy1iYXNlL3NyYy9zdHlsZXMvMDItYmFzZS9taXhpbnMvdGhlbWluZy9fY29tcGFjdC12YXJzLnNjc3MiLCIxMC1tZWRpYS9faWVpbWdmaXguc2NzcyIsIjExLWV4dHJhcy9fY29va2llLWNvbnNlbnQuc2NzcyIsIjExLWV4dHJhcy9fcHJlbG9hZGVyLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUE0RTtFQUFLO0VBQThCOzs7QUFBaUI7RUFBSzs7O0FBQWM7RUFBRztFQUFjOzs7QUFBZTtFQUFHO0VBQXVCO0VBQVM7OztBQUFpQjtFQUFJO0VBQWdDOzs7QUFBYztFQUFFOzs7QUFBNkI7RUFBWTtFQUFtQjtFQUEwQjtFQUF5Qzs7O0FBQWlDO0VBQVM7OztBQUFtQjtFQUFjO0VBQWdDOzs7QUFBYztFQUFNOzs7QUFBYztFQUFRO0VBQWM7RUFBYztFQUFrQjs7O0FBQXdCO0VBQUk7OztBQUFjO0VBQUk7OztBQUFVO0VBQUk7OztBQUFrQjtFQUFzQztFQUFvQjtFQUFlO0VBQWlCOzs7QUFBUztFQUFhOzs7QUFBaUI7RUFBYzs7O0FBQW9CO0VBQWdEOzs7QUFBMEI7RUFBd0g7RUFBa0I7OztBQUFVO0VBQTRHOzs7QUFBOEI7RUFBUzs7O0FBQTJCO0VBQU87RUFBc0I7RUFBYztFQUFjO0VBQWU7RUFBVTs7O0FBQW1CO0VBQVM7OztBQUF3QjtFQUFTOzs7QUFBYztFQUE2QjtFQUFzQjs7O0FBQVU7RUFBa0Y7OztBQUFZO0VBQWM7RUFBNkI7OztBQUFvQjtFQUF5Qzs7O0FBQXdCO0VBQTZCO0VBQTBCOzs7QUFBYTtFQUFROzs7QUFBYztFQUFROzs7QUFBa0I7RUFBUzs7O0FBQWE7RUFBUzs7O0FBQWE7RUFBSztFQUFTOzs7QUN1Q2gwRDtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FDeENBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUNBQTtFQUlZO0VBQ0E7RUFDQTtFQUNBO0VBSEE7RUFDQTtFQUNBO0VBQ0E7RUFIQTtFQUNBO0VBQ0E7RUFDQTtFQUhBO0VBQ0E7RUFDQTtFQUNBO0VBSEE7RUFDQTtFQUNBO0VBQ0E7RUFIQTtFQUNBO0VBQ0E7RUFDQTtFQUhBO0VBQ0E7RUFDQTtFQUNBO0VBSEE7RUFDQTtFQUNBO0VBQ0E7RUFIQTtFQUNBO0VBQ0E7RUFDQTtFQUhBO0VBQ0E7RUFDQTtFQUNBO0VBSEE7RUFDQTtFQUNBO0VBQ0E7RUFIQTtFQUNBO0VBQ0E7RUFDQTtFQUhBO0VBQ0E7RUFDQTtFQUNBO0VBSEE7RUFDQTtFQUNBO0VBQ0E7RUFIQTtFQUNBO0VBQ0E7RUFDQTtFQUhBO0VBQ0E7RUFDQTtFQUNBO0VBSEE7RUFDQTtFQUNBO0VBQ0E7RUFIQTtFQUNBO0VBQ0E7RUFDQTtFQUhBO0VBQ0E7RUFDQTtFQUNBO0VBSEE7RUFDQTtFQUNBO0VBQ0E7RUFIQTtFQUNBO0VBQ0E7RUFDQTtFQUhBO0VBQ0E7RUFDQTtFQUNBO0VBSEE7RUFDQTtFQUNBO0VBQ0E7RUFIQTtFQUNBO0VBQ0E7RUFDQTtFQUhBO0VBQ0E7RUFDQTtFQUNBO0VBSEE7RUFDQTtFQUNBO0VBQ0E7RUFIQTtFQUNBO0VBQ0E7RUFDQTtFQUhBO0VBQ0E7RUFDQTtFQUNBO0VBSEE7RUFDQTtFQUNBO0VBQ0E7RUFIQTtFQUNBO0VBQ0E7RUFDQTtFQUhBO0VBQ0E7RUFDQTtFQUNBO0VBSEE7RUFDQTtFQUNBO0VBQ0E7RUFIQTtFQUNBO0VBQ0E7RUFDQTtFQUhBO0VBQ0E7RUFDQTtFQUNBO0VBSEE7RUFDQTtFQUNBO0VBQ0E7RUFIQTtFQUNBO0VBQ0E7RUFDQTtFQUhBO0VBQ0E7RUFDQTtFQUNBO0VBSEE7RUFDQTtFQUNBO0VBQ0E7RUFIQTtFQUNBO0VBQ0E7RUFDQTtFQUhBO0VBQ0E7RUFDQTtFQUNBO0VBSEE7RUFDQTtFQUNBO0VBQ0E7RUFIQTtFQUNBO0VBQ0E7RUFDQTtFQUhBO0VBQ0E7RUFDQTtFQUNBO0VBSEE7RUFDQTtFQUNBO0VBQ0E7RUFIQTtFQUNBO0VBQ0E7RUFDQTtFQUhBO0VBQ0E7RUFDQTtFQUNBO0VBSEE7RUFDQTtFQUNBO0VBQ0E7RUFIQTtFQUNBO0VBQ0E7RUFDQTtFQUhBO0VBQ0E7RUFDQTtFQUNBO0VBSEE7RUFDQTtFQUNBO0VBQ0E7RUFIQTtFQUNBO0VBQ0E7RUFDQTtFQUhBO0VBQ0E7RUFDQTtFQUNBO0VBSEE7RUFDQTtFQUNBO0VBQ0E7RUFIQTtFQUNBO0VBQ0E7RUFDQTtFQUhBO0VBQ0E7RUFDQTtFQUNBO0VBSEE7RUFDQTtFQUNBO0VBQ0E7RUFIQTtFQUNBO0VBQ0E7RUFDQTtFQUhBO0VBQ0E7RUFDQTtFQUNBO0VBSEE7RUFDQTtFQUNBO0VBQ0E7RUFIQTtFQUNBO0VBQ0E7RUFDQTtFQUhBO0VBQ0E7RUFDQTtFQUNBO0VBSEE7RUFDQTtFQUNBO0VBQ0E7RUFIQTtFQUNBO0VBQ0E7RUFDQTtFQUhBO0VBQ0E7RUFDQTtFQUNBO0VBSEE7RUFDQTtFQUNBO0VBQ0E7RUFIQTtFQUNBO0VBQ0E7RUFDQTtFQUhBO0VBQ0E7RUFDQTtFQUNBO0VBSEE7RUFDQTtFQUNBO0VBQ0E7RUFIQTtFQUNBO0VBQ0E7RUFDQTtFQUhBO0VBQ0E7RUFDQTtFQUNBO0VBSEE7RUFDQTtFQUNBO0VBQ0E7RUFIQTtFQUNBO0VBQ0E7RUFDQTtFQU1KO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBSUo7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUdBO0VBRUk7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUlKO0VBQ0E7RUFDQTtFQUdBO0VBRUk7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQVVJO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBTUo7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFLQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUtBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBOzs7QUMvRFI7RUFDSTtFQUNBO0VBQ0E7RUFFQTtFQUVBO0VBQ0E7RUFDQTtFQUNBO0VBR0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUVBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFFQTtFQUNBO0VBQ0E7RUFDQTtFQUVBO0VBQ0E7RUFDQTtFQUNBO0VBR0E7OztBQ3BDSjtFQUVJO0VBQ0E7RUFDQTtFQUNBO0VBRUE7RUFDQTtFQUNBO0VBRUE7RUFDQTtFQUNBO0VBRUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBR0E7RUFDQTtFQUVBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBR0E7RUFJQTtFQUNBO0VBQ0E7RUFFQTtFQUNBO0VBQ0E7RUFFQTtFQUNBO0VBRUE7RUFDQTtFQUVBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTs7O0FDakVKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7OztBQUdBO0VBQ0k7RUFDQTs7O0FBRko7RUFDSTtFQUNBOzs7QUFGSjtFQUNJO0VBQ0E7OztBQUZKO0VBQ0k7RUFDQTs7O0FBRko7RUFDSTtFQUNBOzs7QUFGSjtFQUNJO0VBQ0E7OztBQUZKO0VBQ0k7RUFDQTs7O0FBRko7RUFDSTtFQUNBOzs7QUFLQTtFQUNJO0VBQ0E7OztBQUZKO0VBQ0k7RUFDQTs7O0FBRko7RUFDSTtFQUNBOzs7QUFGSjtFQUNJO0VBQ0E7OztBQUZKO0VBQ0k7RUFDQTs7O0FBRko7RUFDSTtFQUNBOzs7QUFGSjtFQUNJO0VBQ0E7OztBQUZKO0VBQ0k7RUFDQTs7O0FBRko7RUFDSTtFQUNBOzs7QUFGSjtFQUNJO0VBQ0E7OztBQUZKO0VBQ0k7RUFDQTs7O0FBRko7RUFDSTtFQUNBOzs7QUFGSjtFQUNJO0VBQ0E7OztBQUZKO0VBQ0k7RUFDQTs7O0FBRko7RUFDSTtFQUNBOzs7QUFGSjtFQUNJO0VBQ0E7OztBQUZKO0VBQ0k7RUFDQTs7O0FBRko7RUFDSTtFQUNBOzs7QUFGSjtFQUNJO0VBQ0E7OztBQUZKO0VBQ0k7RUFDQTs7O0FBRko7RUFDSTtFQUNBOzs7QUFGSjtFQUNJO0VBQ0E7OztBQUZKO0VBQ0k7RUFDQTs7O0FBRko7RUFDSTtFQUNBOzs7QUFGSjtFQUNJO0VBQ0E7OztBQUZKO0VBQ0k7RUFDQTs7O0FBRko7RUFDSTtFQUNBOzs7QUFGSjtFQUNJO0VBQ0E7OztBQUZKO0VBQ0k7RUFDQTs7O0FBRko7RUFDSTtFQUNBOzs7QUFGSjtFQUNJO0VBQ0E7OztBQUZKO0VBQ0k7RUFDQTs7O0FBRko7RUFDSTtFQUNBOzs7QUFGSjtFQUNJO0VBQ0E7OztBQUZKO0VBQ0k7RUFDQTs7O0FBRko7RUFDSTtFQUNBOzs7QUFGSjtFQUNJO0VBQ0E7OztBQUZKO0VBQ0k7RUFDQTs7O0FBRko7RUFDSTtFQUNBOzs7QUFGSjtFQUNJO0VBQ0E7OztBQUZKO0VBQ0k7RUFDQTs7O0FBRko7RUFDSTtFQUNBOzs7QUFGSjtFQUNJO0VBQ0E7OztBQUZKO0VBQ0k7RUFDQTs7O0FBRko7RUFDSTtFQUNBOzs7QUFGSjtFQUNJO0VBQ0E7OztBQUZKO0VBQ0k7RUFDQTs7O0FBRko7RUFDSTtFQUNBOzs7QUFGSjtFQUNJO0VBQ0E7OztBQUZKO0VBQ0k7RUFDQTs7O0FBRko7RUFDSTtFQUNBOzs7QUFGSjtFQUNJO0VBQ0E7OztBQUZKO0VBQ0k7RUFDQTs7O0FBRko7RUFDSTtFQUNBOzs7QUFGSjtFQUNJO0VBQ0E7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Ozs7QUFJSjtFQUNJOzs7QUFHSjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtFQU9JOzs7QUFHSjtBQUFBO0VBRUk7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUVJOzs7QUFHSjtBQUFBO0FBQUE7RUFHSTs7QUFFQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0VBRUk7OztBQUlSO0FBQUE7QUFBQTtBQUFBO0VBSUk7RWhDNUVBO0VBQ0E7RUFDQTs7O0FnQzhFSjtFQUNJO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBOzs7QUFHSjtBQUFBO0VBRUk7RUFDQTs7O0FDNUpKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBR0E7QUFBQTtBQUFBO0VBR0k7O0FBR0o7QUFBQTtFQUVJOztBQUlBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFakNLUjtFQUNBOztBaUNGSTtFQUNJO0VBQ0E7O0FBS1I7RUFDSTs7QUFFQTtFQUNJOztBQUVBO0VBQ0k7O0FBSVI7RUFDSTs7QUFFQTtFQUNJOztBQUtaO0VBQ0k7RUFDQTs7QUFNSTtFQUNJOztBQUlSO0VBQ0k7O0FBS1I7RUFDSTtFQUNBOztBQUVBO0VBQ0k7O0FBTUo7QUFBQTtFQUVJOztBQUtSO0VBQ0k7O0FBSUo7RUFDSTs7QUFFQTtBQUFBO0FBQUE7RUFHSTs7QUFLUjtFQUNJO0VBQ0E7RUFDQTs7QUFLQTtBQUFBO0FBQUE7RUFHSTs7O0FDekhaO0VBRUk7RUFDQTtFQUVBO0VBQ0E7OztBQUtKO0VBRUk7RUFDQTtFQUNBO0VDaEJBO0VBRUk7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RURtQko7RUFDQTs7QUFHQTtFQUNJOztBQUVBO0VBQ0k7O0FBSVI7RUFDSTtFQUNBO0VBQ0E7OztBQU1SO0VBRUk7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQ2hEQTtFQUVJO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VEa0RKO0VBQ0E7O0FBSUk7RUFDSTs7QUFFQTtFQUNJOztBQU1SO0VBQ0k7O0FBRUE7RUFDSTs7QUFNUjtFQUNJOztBQUVBO0VBQ0k7OztBQVFoQjtFQUVJO0VBQ0E7RUFDQTtFQUNBO0VDOUZBO0VBRUk7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RURnR0o7RUFDQTs7QUFNWTtFQUVJOztBQUdKO0VBRUk7O0FBS0o7RUFDSTs7O0FFdEhwQjtFQUNJO0lBQ0k7OztBQUdSO0VBRUk7SUFDSTtJQUNBO0lBQ0E7OztBQ1ZSO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQ1hKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0k7QUFBNEM7RUFDNUM7QUFBb0M7RUFDcEM7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNJO0FBQTRDO0VBQzVDO0FBQW9DO0VBQ3BDO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUdKO0VBQ0k7QUFBNEM7RUFDNUM7QUFBb0M7RUFDcEM7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUtaO0FBQ0E7RUFDSTtJQUNJO0lBQ0E7SUFDQTs7RUFHSjtJQUNJO0lBQ0E7SUFDQTs7O0FBR1I7RUFDSTtJQUNJO0lBQ0E7SUFDQTs7RUFHSjtJQUNJO0lBQ0E7SUFDQTs7O0FBR1I7RUFDSTtJQUNJO0lBQ0E7O0VBRUo7SUFDSTtJQUNBOztFQUVKO0lBQ0k7OztBQUdSO0VBQ0k7SUFDSTtJQUNBOztFQUVKO0lBQ0k7SUFDQTs7RUFFSjtJQUNJIiwiZmlsZSI6ImV1aS50ZW1wLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi8qISBAZWNsL3ByZXNldC1yZXNldCAtIDMuNC4yIEJ1aWx0IG9uIDIwMjItMDktMjFUMTA6MDI6MzIuNTY1WiAqL1xuLyohIG5vcm1hbGl6ZS5jc3MgdjguMC4xIHwgTUlUIExpY2Vuc2UgfCBnaXRodWIuY29tL25lY29sYXMvbm9ybWFsaXplLmNzcyAqL2h0bWx7LXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OjEwMCU7bGluZS1oZWlnaHQ6MS4xNX1tYWlue2Rpc3BsYXk6YmxvY2t9aDF7Zm9udC1zaXplOjJlbTttYXJnaW46LjY3ZW0gMH1ocntib3gtc2l6aW5nOmNvbnRlbnQtYm94O2hlaWdodDowO292ZXJmbG93OnZpc2libGV9cHJle2ZvbnQtZmFtaWx5Om1vbm9zcGFjZSxtb25vc3BhY2U7Zm9udC1zaXplOjFlbX1he2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnR9YWJiclt0aXRsZV17Ym9yZGVyLWJvdHRvbTpub25lO3RleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7LXdlYmtpdC10ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lIGRvdHRlZDt0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lIGRvdHRlZH1iLHN0cm9uZ3tmb250LXdlaWdodDpib2xkZXJ9Y29kZSxrYmQsc2FtcHtmb250LWZhbWlseTptb25vc3BhY2UsbW9ub3NwYWNlO2ZvbnQtc2l6ZToxZW19c21hbGx7Zm9udC1zaXplOjgwJX1zdWIsc3Vwe2ZvbnQtc2l6ZTo3NSU7bGluZS1oZWlnaHQ6MDtwb3NpdGlvbjpyZWxhdGl2ZTt2ZXJ0aWNhbC1hbGlnbjpiYXNlbGluZX1zdWJ7Ym90dG9tOi0uMjVlbX1zdXB7dG9wOi0uNWVtfWltZ3tib3JkZXItc3R5bGU6bm9uZX1idXR0b24saW5wdXQsb3B0Z3JvdXAsc2VsZWN0LHRleHRhcmVhe2ZvbnQtZmFtaWx5OmluaGVyaXQ7Zm9udC1zaXplOjEwMCU7bGluZS1oZWlnaHQ6MS4xNTttYXJnaW46MH1idXR0b24saW5wdXR7b3ZlcmZsb3c6dmlzaWJsZX1idXR0b24sc2VsZWN0e3RleHQtdHJhbnNmb3JtOm5vbmV9W3R5cGU9YnV0dG9uXSxbdHlwZT1yZXNldF0sW3R5cGU9c3VibWl0XSxidXR0b257LXdlYmtpdC1hcHBlYXJhbmNlOmJ1dHRvbn1bdHlwZT1idXR0b25dOjotbW96LWZvY3VzLWlubmVyLFt0eXBlPXJlc2V0XTo6LW1vei1mb2N1cy1pbm5lcixbdHlwZT1zdWJtaXRdOjotbW96LWZvY3VzLWlubmVyLGJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lcntib3JkZXItc3R5bGU6bm9uZTtwYWRkaW5nOjB9W3R5cGU9YnV0dG9uXTotbW96LWZvY3VzcmluZyxbdHlwZT1yZXNldF06LW1vei1mb2N1c3JpbmcsW3R5cGU9c3VibWl0XTotbW96LWZvY3VzcmluZyxidXR0b246LW1vei1mb2N1c3Jpbmd7b3V0bGluZToxcHggZG90dGVkIEJ1dHRvblRleHR9ZmllbGRzZXR7cGFkZGluZzouMzVlbSAuNzVlbSAuNjI1ZW19bGVnZW5ke2JveC1zaXppbmc6Ym9yZGVyLWJveDtjb2xvcjppbmhlcml0O2Rpc3BsYXk6dGFibGU7bWF4LXdpZHRoOjEwMCU7cGFkZGluZzowO3doaXRlLXNwYWNlOm5vcm1hbH1wcm9ncmVzc3t2ZXJ0aWNhbC1hbGlnbjpiYXNlbGluZX10ZXh0YXJlYXtvdmVyZmxvdzphdXRvfVt0eXBlPWNoZWNrYm94XSxbdHlwZT1yYWRpb117Ym94LXNpemluZzpib3JkZXItYm94O3BhZGRpbmc6MH1bdHlwZT1udW1iZXJdOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLFt0eXBlPW51bWJlcl06Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b257aGVpZ2h0OmF1dG99W3R5cGU9c2VhcmNoXXstd2Via2l0LWFwcGVhcmFuY2U6dGV4dGZpZWxkO291dGxpbmUtb2Zmc2V0Oi0ycHh9W3R5cGU9c2VhcmNoXTo6LXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbnstd2Via2l0LWFwcGVhcmFuY2U6bm9uZX06Oi13ZWJraXQtZmlsZS11cGxvYWQtYnV0dG9uey13ZWJraXQtYXBwZWFyYW5jZTpidXR0b247Zm9udDppbmhlcml0fWRldGFpbHN7ZGlzcGxheTpibG9ja31zdW1tYXJ5e2Rpc3BsYXk6bGlzdC1pdGVtfXRlbXBsYXRle2Rpc3BsYXk6bm9uZX1baGlkZGVuXXtkaXNwbGF5Om5vbmV9Ym9keXttYXJnaW46MDtvdmVyZmxvdy14OmhpZGRlbn0iLCJAdXNlIFwic2FzczptYXRoXCI7XG5AZnVuY3Rpb24gdigkdmFyLCAkZmFsbGJhY2s6IG51bGwpIHtcbiAgICBAaWYgKCRmYWxsYmFjaykge1xuICAgICAgICBAcmV0dXJuIHZhcigtLSN7JHZhcn0sICN7JGZhbGxiYWNrfSk7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgICAgQHJldHVybiB2YXIoLS0jeyR2YXJ9KTtcbiAgICB9XG59XG5AZnVuY3Rpb24gbWFwLWRlZXAtZ2V0KCRtYXAsICRrZXlzLi4uKSB7XG4gICAgQGVhY2ggJGtleSBpbiAka2V5cyB7XG4gICAgICAgIEBkZWJ1ZyAjeyRtYXB9O1xuICAgICAgICAkbWFwOiBtYXAtZ2V0KCRtYXAsICRrZXkpO1xuICAgIH1cbiAgICBAcmV0dXJuICRtYXA7XG59XG5AZnVuY3Rpb24gdG9SR0IoJGNvbG9yKSB7XG4gICAgQHJldHVybiBcInJnYihcIiArIHJlZCgkY29sb3IpICsgXCIsIFwiICsgZ3JlZW4oJGNvbG9yKSArIFwiLCBcIiArIGJsdWUoJGNvbG9yKSsgXCIpXCI7XG59XG5AZnVuY3Rpb24gZ2V0Q29udHJhc3QoJGNvbG9yKSB7XG4gICAgJGNvbG9yLWJyaWdodG5lc3M6IHJvdW5kKChyZWQoJGNvbG9yKSAqIDI5OSkgKyAoZ3JlZW4oJGNvbG9yKSAqIDU4NykgKyBtYXRoLmRpdigoYmx1ZSgkY29sb3IpICogMTE0KSwgMTAwMCkpO1xuICAgICRsaWdodC1jb2xvcjogcm91bmQoKHJlZCgjZmZmKSAqIDI5OSkgKyAoZ3JlZW4oI2ZmZikgKiA1ODcpICsgbWF0aC5kaXYoKGJsdWUoI2ZmZikgKiAxMTQpLCAxMDAwKSk7XG4gICAgQGlmIGFicygkY29sb3ItYnJpZ2h0bmVzcykgPCBtYXRoLmRpdigkbGlnaHQtY29sb3IsIDIpIHtcbiAgICAgICAgQHJldHVybiB3aGl0ZTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgICBAcmV0dXJuIG1hcC1nZXQoJGVjbC1jb2xvciwgJ2dyZXktMTAwJyk7XG4gICAgfVxufVxuQGZ1bmN0aW9uIGdldENvbG9yKCRzaGFkZTogcHJpbWFyeSwgJGh1ZTogMTAwKSB7XG4gICAgJHNlbGVjdGVkLXNoYWRlOiBtYXAtZ2V0KCRldWktYmFzZS10b2tlbnMtY29sb3JzLCAkc2hhZGUpO1xuICAgIEBpZiAoJHNlbGVjdGVkLXNoYWRlKSB7XG4gICAgICAgIEByZXR1cm4gbWFwLWdldCgkc2VsZWN0ZWQtc2hhZGUsICRodWUpO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICAgIEByZXR1cm4gYmxhY2s7XG4gICAgfVxuICAgIEByZXR1cm4gJHNlbGVjdGVkLWNvbG9yO1xufVxuXG4vKipcbiAgICogRUNMIGNvbG9yIHZhcmlhbnRzIGZvcm11bGFcbiAgICogQXBwbGllcyB0aW50IG9yIHNoYWRlIG9mIGJhc2UgY29sb3IgcHJvdmlkZWRcbiAgICpcbiAgICogQHBhcmFtIGNvbG9yOiBiYXNlIGNvbG9yLCBoYXMgdmFyaWFudCBvZiAxMDBcbiAgICogQHBhcmFtIHZhcmlhbnQ6IG51bWJlciBpbiByYW5nZSBiZXR3ZWVuIDAgLSAyMDBcbiAgICogICAgICAgICAgICAgICAgIDEwMCAtIG5ldXRyYWwgdmFyaWFudCwgbm8gY2hhbmdlc1xuICAgKiAgICAgICAgICAgICAgICAgMCAtIDk5OiBicmlnaHRlbnMgYmFzZSBjb2xvciBieSBtaXhpbmcgaW4gd2hpdGUgY29sb3IsIHRoZSBsb3dlciwgdGhlIGJyaWdodGVyXG4gICAqICAgICAgICAgICAgICAgICA5OSAtIDIwMDogZGFya2VucyBiYXNlIGNvbG9yIGJ5IG1peGluZyBpbiBibGFjayBjb2xvciwgdGhlIGJpZ2dlciwgdGhlIGRhcmtlclxuICAgKlxuICAgKiBAcmV0dXJuIGNvbG9yIHZhcmlhbnQgb2YgcHJvdmlkZWQgYmFzZSBjb2xvclxuICAgKlxuICAgKiBAZXhhbXBsZXNcbiAgICpcbiAgICogLy8gcHJvdmlkZXMgMzAlIGRhcmtlciBwaW5rIGNvbG9yXG4gICAqIGJhY2tncm91bmQtY29sb3I6IGV1aS1jb2xvci12YXJpYW50KHBpbmssIDEzMCk7XG4gICAqXG4gICAqIC8vIHByb3ZpZGVzIDk1JSBsaWdodGVyIHBpbmsgY29sb3JcbiAgICogYmFja2dyb3VuZC1jb2xvcjogZXVpLWNvbG9yLXZhcmlhbnQocGluaywgNSk7XG4gICAqL1xuQGZ1bmN0aW9uIGV1aS1jb2xvci12YXJpYW50KCRjb2xvciwgJHZhcmlhbnQ6IDEwMCkge1xuICAgIEBpZiAoJHZhcmlhbnQgPCAxMDApIHtcbiAgICAgICAgQHJldHVybiBtaXgoI2ZmZmZmZiwgJGNvbG9yLCAxMDAgLSAkdmFyaWFudCk7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgICAgQHJldHVybiBtaXgoIzAwMDAwMCwgJGNvbG9yLCAkdmFyaWFudCAtIDEwMCk7XG4gICAgfVxufVxuQGZ1bmN0aW9uIG5ldy1icmVha3BvaW50KCRxdWVyeTogJGZlYXR1cmUgJHZhbHVlKSB7XG4gICAgQGlmIGxlbmd0aCgkcXVlcnkpID09IDEge1xuICAgICAgICAkcXVlcnk6ICRkZWZhdWx0LWZlYXR1cmUgbnRoKCRxdWVyeSwgMSk7XG4gICAgfVxuICAgIEBlbHNlIGlmIGlzLWV2ZW4obGVuZ3RoKCRxdWVyeSkpIHtcbiAgICAgICAgJHF1ZXJ5OiBhcHBlbmQoJHF1ZXJ5LCAxMik7XG4gICAgfVxuICAgIEByZXR1cm4gJHF1ZXJ5O1xufVxuQGZ1bmN0aW9uIHN0cmlwLXVuaXRzKCR2YWx1ZSkge1xuICAgIEByZXR1cm4gbWF0aC5kaXYoJHZhbHVlLCAkdmFsdWUgKiAwICsgMSk7XG59XG5AZnVuY3Rpb24gdG8tcmVtKCRweHZhbCkge1xuICAgIEBpZiBub3QgdW5pdGxlc3MoJHB4dmFsKSB7XG4gICAgICAgICRweHZhbDogc3RyaXAtdW5pdHMoJHB4dmFsKTtcbiAgICB9XG4gICAgJGJhc2U6IDE2cHg7XG4gICAgQGlmIG5vdCB1bml0bGVzcygkYmFzZSkge1xuICAgICAgICAkYmFzZTogc3RyaXAtdW5pdHMoJGJhc2UpO1xuICAgIH1cbiAgICBAcmV0dXJuIG1hdGguZGl2KCRweHZhbCwgJGJhc2UpICogMXJlbTtcbn1cbiIsIi8qKiBDb21tb24gd2VpZ2h0IG5hbWUgbWFwcGluZ1xuICAgIEBTZWUgdGhlIE9wZW5UeXBlIHNwZWNpZmljYXRpb246XG4gICAgaHR0cHM6Ly9kb2NzLm1pY3Jvc29mdC5jb20vZW4tdXMvdHlwb2dyYXBoeS9vcGVudHlwZS9zcGVjL29zMiN1c3dlaWdodGNsYXNzXG4gICAgVGhlIG51bWVyaWNhbCB2YWx1ZXMgMTAwIHRvIDkwMCByb3VnaGx5IGNvcnJlc3BvbmQgdG8gdGhlIGZvbGxvd2luZyBjb21tb24gd2VpZ2h0IG5hbWVzOlxuICAgIDEwMCAgICAgVGhpbiAoSGFpcmxpbmUpXG4gICAgMjAwXHQgICAgRXh0cmEgTGlnaHQgKFVsdHJhIExpZ2h0KVxuICAgIDMwMFx0ICAgIExpZ2h0XG4gICAgNDAwXHQgICAgTm9ybWFsXG4gICAgNTAwXHQgICAgTWVkaXVtXG4gICAgNjAwXHQgICAgU2VtaSBCb2xkIChEZW1pIEJvbGQpXG4gICAgNzAwXHQgICAgQm9sZFxuICAgIDgwMFx0ICAgIEV4dHJhIEJvbGQgKFVsdHJhIEJvbGQpXG4gICAgOTAwXHQgICAgQmxhY2sgKEhlYXZ5KVxuKiovXG5AbWl4aW4gZXVpLWZvbnQtZmFtaWx5KCkge1xuICAgIGZvbnQtZmFtaWx5OiB2KGV1aS1iYXNlLWZvbnQtZmFtaWx5KTtcbiAgICBmb250LXNpemU6IHYoZXVpLWJhc2UtZm9udC1zaXplKTtcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcbn1cbkBtaXhpbiBldWktZm9udC1mYW1pbHktbGlnaHQoKSB7XG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgIGZvbnQtd2VpZ2h0OiAzMDA7XG59XG5AbWl4aW4gZXVpLWZvbnQtZmFtaWx5LW5vcm1hbCgpIHtcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcbn1cbkBtaXhpbiBldWktZm9udC1mYW1pbHktaXRhbGljKCkge1xuICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICBmb250LXdlaWdodDogNDAwO1xufVxuQG1peGluIGV1aS1mb250LWZhbWlseS1ib2xkKCkge1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICBmb250LXdlaWdodDogNzAwO1xufVxuQG1peGluIGV1aS1mb250LWZhbWlseS1ib2xkLWl0YWxpYygpIHtcbiAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbn1cblxuQG1peGluIGV1aS1mb250LWZhbWlseS1tb25vc3BhY2UoKSB7XG4gICAgZm9udC1mYW1pbHk6IHYoZXVpLWJhc2UtZm9udC1mYW1pbHktbW9ub3NwYWNlKTtcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcbn1cbiIsIjpyb290IHtcbiAgICAvLyBDT0xPUlNcbiAgICBAZWFjaCAkY29sb3IsICRzaGFkZXMgaW4gJGV1aS1iYXNlLXRva2Vucy1jb2xvcnMge1xuICAgICAgICBAZWFjaCAkc2hhZGUsICR2YWx1ZSBpbiAkc2hhZGVzIHtcbiAgICAgICAgICAgIC0tZXVpLWJhc2UtY29sb3ItI3skY29sb3IgKyAnLScgKyAkc2hhZGV9OiAjeyR2YWx1ZX07XG4gICAgICAgICAgICAtLWV1aS1iYXNlLWNvbG9yLSN7JGNvbG9yICsgJy0nICsgJHNoYWRlfS1yZ2I6ICN7dG9SR0IoJHZhbHVlKX07XG4gICAgICAgICAgICAtLWV1aS1iYXNlLWNvbG9yLSN7JGNvbG9yICsgJy0nICsgJHNoYWRlfS1jb250cmFzdDogI3tnZXRDb250cmFzdCgkdmFsdWUpfTtcbiAgICAgICAgICAgIC0tZXVpLWJhc2UtY29sb3ItI3skY29sb3IgKyAnLScgKyAkc2hhZGV9LWNvbnRyYXN0LXJnYjogI3t0b1JHQihnZXRDb250cmFzdCgkdmFsdWUpKX07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBERUZBVUxUUyAxMDBzXG4gICAgQGVhY2ggJGNvbG9yLCAkdmFsdWUgaW4gJGV1aS1iYXNlLXRva2Vucy1jb2xvcnMtMTAwcyB7XG4gICAgICAgIC0tZXVpLWJhc2UtY29sb3ItI3snJyArICRjb2xvcn06ICN7JHZhbHVlfTtcbiAgICB9XG5cbiAgICAvLyBPVEhFUiBDT0xPUlNcbiAgICAtLWV1aS1iYXNlLWNvbG9yLXRleHQ6IHZhcigtLWV1aS1iYXNlLWNvbG9yLWdyZXktMTAwKTtcbiAgICAtLWV1aS1iYXNlLWNvbG9yLWxpbms6IHZhcigtLWV1aS1iYXNlLWNvbG9yLXByaW1hcnktMTAwKTtcbiAgICAtLWV1aS1iYXNlLWNvbG9yLWJsYWNrOiBibGFjaztcbiAgICAtLWV1aS1iYXNlLWNvbG9yLXdoaXRlOiB3aGl0ZTtcbiAgICAtLWV1aS1iYXNlLWNvbG9yOiB2YXIoLS1ldWktYmFzZS1jb2xvci1ncmV5LTEwMCk7XG5cbiAgICAvLyBGT05ULVNJWkVTXG4gICAgLS1ldWktYmFzZS1mb250LXNpemU6IDE2cHg7XG4gICAgQGVhY2ggJGZvbnQtc2l6ZSwgJHZhbHVlIGluICRldWktYmFzZS10b2tlbnMtZm9udC1zaXplcyB7XG4gICAgICAgIC0tZXVpLWJhc2UtZm9udC1zaXplLSN7JGZvbnQtc2l6ZX06ICN7JHZhbHVlfTtcbiAgICB9XG5cbiAgICAvLyAvLyBGT05UU1xuICAgIC0tZXVpLWJhc2UtZm9udC1mYW1pbHk6ICN7JGV1aS1iYXNlLWZvbnQtZmFtaWx5fTtcbiAgICAtLWV1aS1iYXNlLWZvbnQtZmFtaWx5LWljb25zOiAjeyRldWktYmFzZS1mb250LWZhbWlseS1pY29uc307XG4gICAgLS1ldWktYmFzZS1mb250LWZhbWlseS1tb25vc3BhY2U6ICN7JGV1aS1iYXNlLWZvbnQtZmFtaWx5LW1vbm9zcGFjZX07XG5cbiAgICAvLyBJQ09OLVNJWkVTXG4gICAgLS1ldWktYmFzZS1pY29uLXNpemU6IDEuNXJlbTtcbiAgICBAZWFjaCAkaWNvbi1zaXplLCAkdmFsdWUgaW4gJGV1aS1iYXNlLXRva2Vucy1pY29uLXNpemVzIHtcbiAgICAgICAgLS1ldWktYmFzZS1pY29uLXNpemUtI3skaWNvbi1zaXplfTogI3skdmFsdWV9O1xuICAgIH1cblxuICAgIEBlYWNoICRmYW1pbHksICRzaXplcyBpbiAkZXVpLWJhc2UtdG9rZW5zLWZvbnRzIHtcbiAgICAgICAgJGZhbWlseS10eXBlOiAkZmFtaWx5ICsgJy0nO1xuICAgICAgICBAaWYoJGZhbWlseSA9PSB1aSkge1xuICAgICAgICAgICAgJGZhbWlseS10eXBlOiAnJztcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRzaXplLCAkZGVmaW5pdGlvbiBpbiAkc2l6ZXMge1xuICAgICAgICAgICAgLS1ldWktYmFzZS1mb250LSN7JGZhbWlseS10eXBlfSN7JHNpemV9OiAjeyRkZWZpbml0aW9ufTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIFNQQUNJTkdTXG4gICAgQGVhY2ggJHNwYWNpbmcsICR2YWx1ZSBpbiAkZXVpLWJhc2UtdG9rZW5zLXNwYWNpbmdzIHtcbiAgICAgICAgLS1ldWktYmFzZS1zcGFjaW5nLSN7JHNwYWNpbmd9OiAjeyR2YWx1ZX07XG4gICAgfVxuXG4gICAgLy8gU0hBRE9XU1xuICAgIEBlYWNoICRzaGFkb3csICR2YWx1ZSBpbiAkZXVpLWJhc2UtdG9rZW5zLXNoYWRvd3Mge1xuICAgICAgICAtLWV1aS1iYXNlLXNoYWRvdy0jeyRzaGFkb3d9OiAjeyR2YWx1ZX07XG4gICAgfVxuXG4gICAgLy8gWi1JTkRFWEVTXG4gICAgQGVhY2ggJGlkeCwgJHZhbHVlIGluICRldWktYmFzZS10b2tlbnMtei1pbmRleGVzIHtcbiAgICAgICAgLS1ldWktYmFzZS16LWluZGV4LSN7JGlkeH06ICN7JHZhbHVlfTtcbiAgICB9XG59XG4iLCI6cm9vdCB7XG4gICAgLS1ldWktYmFzZS1saW5lLWhlaWdodDogMS4yNTtcbiAgICAtLWV1aS1iYXNlLXNjYWxlLWZhY3RvcjogMTtcbiAgICAtLWV1aS1iYXNlLWRpc2FibGVkLW9wYWNpdHk6IDAuNDU7XG5cbiAgICAtLWV1aS1iYXNlLWJvcmRlci1yYWRpdXM6IDNweDtcblxuICAgIC0tZXVpLWJhc2UtYm9yZGVyOiAxcHggc29saWQgdmFyKC0tZXVpLWNvbG9yLWdyZXktbGlnaHRlcik7XG4gICAgLS1ldWktYmFzZS1ib3JkZXItbGlnaHQ6IDFweCBzb2xpZCB2YXIoLS1ldWktY29sb3ItZ3JleS1saWdodCk7XG4gICAgLS1ldWktYmFzZS1ib3JkZXItbGlnaHRlcjogMXB4IHNvbGlkIHZhcigtLWV1aS1jb2xvci1ncmV5LWxpZ2h0ZXIpO1xuICAgIC0tZXVpLWJhc2UtYm9yZGVyLWxpZ2h0ZXN0OiAxcHggc29saWQgdmFyKC0tZXVpLWNvbG9yLWdyZXktbGlnaHRlc3QpO1xuXG4gICAgLy8gQW5pbWF0aW9ucyByZWxhdGVkXG4gICAgLS1ldWktYmFzZS1hbmltYXRpb24tbGluZWFyLW91dC1zbG93LWluLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMSk7XG4gICAgLS1ldWktYmFzZS1hbmltYXRpb24tZmFzdC1vdXQtc2xvdy1pbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7XG4gICAgLS1ldWktYmFzZS1hbmltYXRpb24tZmFzdC1vdXQtbGluZWFyLWluLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNCwgMCwgMSwgMSk7XG4gICAgLS1ldWktYmFzZS1hbmltYXRpb24tZWFzZS10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjI1LCAwLjEsIDAuMjUsIDEpOyAgICAvLyBlYXNlXG4gICAgLS1ldWktYmFzZS1hbmltYXRpb24tZWFzZS1pbi1vdXQtdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluLW91dDtcblxuICAgIC0tZXVpLWJhc2UtYW5pbWF0aW9uLWR1cmF0aW9uLWZhc3Q6IDAuMjVzO1xuICAgIC0tZXVpLWJhc2UtYW5pbWF0aW9uLWR1cmF0aW9uLW1lZGl1bTogMC41cztcbiAgICAtLWV1aS1iYXNlLWFuaW1hdGlvbi1kdXJhdGlvbi1zbG93OiAxcztcbiAgICAtLWV1aS1iYXNlLWFuaW1hdGlvbi1kdXJhdGlvbi1iYXNlOiA1MDBtcztcbiAgICAtLWV1aS1iYXNlLWFuaW1hdGlvbi1kdXJhdGlvbjogdmFyKC0tZXVpLWJhc2UtYW5pbWF0aW9uLWR1cmF0aW9uLWJhc2UpO1xuXG4gICAgLS1ldWktYmFzZS1hbmltYXRpb24tdHJhbnNpdGlvbi1iYXNlOiBhbGwgMC4ycyAje3ZhcigtLWV1aS1iYXNlLWFuaW1hdGlvbi1saW5lYXItb3V0LXNsb3ctaW4tdGltaW5nLWZ1bmN0aW9uKX07XG4gICAgLS1ldWktYmFzZS1hbmltYXRpb24tdHJhbnNpdGlvbi1lYXNlOiBhbGwgMC4ycyAje3ZhcigtLWV1aS1iYXNlLWFuaW1hdGlvbi1lYXNlLXRpbWluZy1mdW5jdGlvbil9O1xuICAgIC0tZXVpLWJhc2UtYW5pbWF0aW9uLXRyYW5zaXRpb24tZWFzZS1pbi1vdXQ6IGFsbCAwLjJzICN7dmFyKC0tZXVpLWJhc2UtYW5pbWF0aW9uLWVhc2UtaW4tb3V0LXRpbWluZy1mdW5jdGlvbil9O1xuICAgIC0tZXVpLWJhc2UtYW5pbWF0aW9uLXRyYW5zaXRpb24tZWFzZS1pbi1vdXQtMXM6IGFsbCAxcyAje3ZhcigtLWV1aS1iYXNlLWFuaW1hdGlvbi1lYXNlLWluLW91dC10aW1pbmctZnVuY3Rpb24pfTtcblxuICAgIC0tZXVpLWJhc2UtYW5pbWF0aW9uLWRlbGF5OiAwcztcbiAgICAtLWV1aS1iYXNlLWFuaW1hdGlvbi1kaXJlY3Rpb246IG5vcm1hbDtcbiAgICAtLWV1aS1iYXNlLWFuaW1hdGlvbi1maWxsLW1vZGU6IGZvcndhcmRzOyAgICAvLyB0aGlzIHByZXZlbnRzIHRoZSBhbmltYXRpb24gZnJvbSByZXN0YXJ0aW5nXG4gICAgLS1ldWktYmFzZS1hbmltYXRpb24tYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZXVpLWJhc2UtY29sb3ItcHJpbWFyeS01MCk7ICAvLyAjY2ZjZmRmO1xuXG4gICAgLy8gRXh0cmEgY29sb3JzXG4gICAgLS1ldWktYmFzZS1jb2xvci1hY2Nlc3NpYmxlLWZvY3VzOiB2YXIoLS1ldWktYmFzZS1jb2xvci1hY2NlbnQtMTEwKTsgICAgLy8gQ2FyYm9uIGJsdWU6ICMwZjYyZmU7XG59XG4iLCI6cm9vdCB7XG4gICAgLy8gZVVJIEFQUFxuICAgIC0tZXVpLWFwcC1oZWFkZXItaGVpZ2h0LWRlZmF1bHQ6IDBweDtcbiAgICAtLWV1aS1hcHAtaGVhZGVyLWhlaWdodDogMHB4O1xuICAgIC0tZXVpLWFwcC1oZWFkZXItaGVpZ2h0LWFjdGl2ZTogOTBweDtcbiAgICAtLWV1aS1hcHAtaGVhZGVyLWhlaWdodC1zaHJpbms6IDBweDtcblxuICAgIC0tZXVpLWFwcC10b3AtbWVzc2FnZS1oZWlnaHQtZGVmYXVsdDogMHB4O1xuICAgIC0tZXVpLWFwcC10b3AtbWVzc2FnZS1oZWlnaHQ6IDBweDtcbiAgICAtLWV1aS1hcHAtdG9wLW1lc3NhZ2UtaGVpZ2h0LWFjdGl2ZTogNDJweDtcblxuICAgIC0tZXVpLWFwcC10b29sYmFyLWhlaWdodC1kZWZhdWx0OiAwcHg7XG4gICAgLS1ldWktYXBwLXRvb2xiYXItaGVpZ2h0OiAwcHg7XG4gICAgLS1ldWktYXBwLXRvb2xiYXItaGVpZ2h0LWFjdGl2ZTogNTVweDtcblxuICAgIC0tZXVpLWFwcC1zaWRlYmFyLXdpZHRoLWRlZmF1bHQ6IDBweDtcbiAgICAtLWV1aS1hcHAtc2lkZWJhci13aWR0aDogMHB4O1xuICAgIC0tZXVpLWFwcC1zaWRlYmFyLXdpZHRoLWFjdGl2ZTogMzAwcHg7XG4gICAgLS1ldWktYXBwLXNpZGViYXItd2lkdGgtY2xvc2UtZGVmYXVsdDogMHB4O1xuICAgIC0tZXVpLWFwcC1zaWRlYmFyLXdpZHRoLWNsb3NlOiAwcHg7XG4gICAgLS1ldWktYXBwLXNpZGViYXItd2lkdGgtY2xvc2UtYWN0aXZlOiA2NHB4O1xuICAgIC0tZXVpLWFwcC1zaWRlYmFyLWhlYWRlci1oZWlnaHQ6IDBweDtcbiAgICAtLWV1aS1hcHAtc2lkZWJhci1oZWFkZXItaGVpZ2h0LWRlZmF1bHQ6IDBweDtcbiAgICAtLWV1aS1hcHAtc2lkZWJhci1oZWFkZXItaGVpZ2h0LWFjdGl2ZTogNDhweDtcbiAgICAtLWV1aS1hcHAtc2lkZWJhci1mb290ZXItaGVpZ2h0OiAwcHg7XG4gICAgLS1ldWktYXBwLXNpZGViYXItZm9vdGVyLWhlaWdodC1kZWZhdWx0OiAwcHg7XG4gICAgLS1ldWktYXBwLXNpZGViYXItZm9vdGVyLWhlaWdodC1hY3RpdmU6IDI0cHg7XG5cbiAgICAvLyBQYWdlIExheW91dFxuICAgIC0tZXVpLXBhZ2UtaGVhZGVyLXdpdGgtc3VidGl0bGUtaGVpZ2h0OiA0cmVtO1xuICAgIC0tZXVpLXBhZ2UtaGVhZGVyLXdpdGhvdXQtc3VidGl0bGUtaGVpZ2h0OiAycmVtO1xuXG4gICAgLS1ldWktcGFnZS1jb2x1bW4tLXNpemUtczogNTBweDtcbiAgICAtLWV1aS1wYWdlLWNvbHVtbi0tc2l6ZS1tOiAxNTBweDtcbiAgICAtLWV1aS1wYWdlLWNvbHVtbi0tc2l6ZS1sOiAyMDBweDtcbiAgICAtLWV1aS1wYWdlLWNvbHVtbi0tc2l6ZS14bDogMjUwcHg7XG4gICAgLS1ldWktcGFnZS1jb2x1bW4tLXNpemUteHhsOiAzMDBweDtcbiAgICAtLWV1aS1wYWdlLWNvbHVtbi0tc2l6ZS14eHhsOiAzNTBweDtcbiAgICAtLWV1aS1wYWdlLWNvbHVtbi1mb290ZXItaGVpZ2h0OiAzLjVyZW07XG5cbiAgICAvLyBNaXNjXG4gICAgLS1ldWktYm9yZGVyLXN0YXRlLXdpZHRoOiA2cHg7XG5cbiAgICAvLyBDb2xvcnNcbiAgICAvLyBlVUkgQXBwIGVsZW1lbnRzXG4gICAgLS1ldWktYXBwLWhlYWRlci1iZy1jb2xvcjogdmFyKC0tZXVpLWJhc2UtY29sb3Itd2hpdGUpO1xuICAgIC0tZXVpLWFwcC1oZWFkZXItdGl0bGUtY29sb3I6IHZhcigtLWV1aS1iYXNlLWNvbG9yLWdyZXktMTAwKTtcbiAgICAtLWV1aS1hcHAtaGVhZGVyLXN1YnRpdGxlLWNvbG9yOiB2YXIoLS1ldWktYmFzZS1jb2xvci1ncmV5LTc1KTtcblxuICAgIC0tZXVpLWFwcC10b29sYmFyLWNvbG9yOiB2YXIoLS1ldWktYmFzZS1jb2xvci13aGl0ZSk7XG4gICAgLS1ldWktYXBwLXRvb2xiYXItYmctY29sb3I6IHZhcigtLWV1aS1iYXNlLWNvbG9yLXByaW1hcnktMTAwKTtcbiAgICAtLWV1aS1hcHAtdG9vbGJhci1ib3JkZXItYm90dG9tLWNvbG9yOiB2YXIoLS1ldWktYmFzZS1jb2xvci1wcmltYXJ5LTI1KTtcblxuICAgIC0tZXVpLWFwcC1zaWRlYmFyLWJnLWNvbG9yOiB2YXIoLS1ldWktYmFzZS1jb2xvci1ncmV5LTIpO1xuICAgIC0tZXVpLWFwcC1zaWRlYmFyLWJvcmRlci1yaWdodC1jb2xvcjogI2YyZjRmOTtcblxuICAgIC0tZXVpLWFwcC1ib2R5LWJnLWNvbG9yOiB2YXIoLS1ldWktYmFzZS1jb2xvci1ncmV5LTUpO1xuICAgIC0tZXVpLWFwcC1tYWluLWJnLWNvbG9yOiB2YXIoLS1ldWktYmFzZS1jb2xvci1ncmV5LTIpO1xuXG4gICAgLS1ldWktYXBwLWZvb3Rlci1jb2xvcjogdmFyKC0tZXVpLWJhc2UtY29sb3ItZm9udCk7XG4gICAgLS1ldWktYXBwLWZvb3Rlci1iZy1jb2xvcjogdmFyKC0tZXVpLWJhc2UtY29sb3ItZ3JleS0yKTtcbiAgICAtLWV1aS1hcHAtZm9vdGVyLWJvcmRlci10b3AtY29sb3I6ICNlOGViZjE7XG59XG5cbi54cywgLnNtIHtcbiAgICAtLWV1aS1hcHAtaGVhZGVyLWhlaWdodDogMHB4O1xufVxuIiwiLmV1aS1pY29uLXN2ZyB7XG4gICAgZmlsbDogY3VycmVudENvbG9yO1xuICAgIG1hcmdpbjogMDtcbiAgICB0cmFuc2Zvcm06IHNjYWxlWCgxKSBzY2FsZVkoMSkgcm90YXRlWigwZGVnKTtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMzAwbXMgZWFzZS1pbi1vdXQ7XG59XG5AZWFjaCAkc2l6ZSwgJHZhbHVlIGluICRldWktYmFzZS10b2tlbnMtaWNvbi1zaXplcyB7XG4gICAgLmV1aS1pY29uLXN2Zy0tc2l6ZS0jeyRzaXplfSB7XG4gICAgICAgIGhlaWdodDogI3skdmFsdWV9O1xuICAgICAgICB3aWR0aDogI3skdmFsdWV9O1xuICAgIH07XG59XG5AZWFjaCAkY29sb3IsICRzaGFkZXMgaW4gJGV1aS1iYXNlLXRva2Vucy1jb2xvcnMge1xuICAgIEBlYWNoICRzaGFkZSwgJHZhbHVlIGluICRzaGFkZXMge1xuICAgICAgICAuZXVpLWljb24tc3ZnLS1jb2xvci0jeyRjb2xvciArICctJyArICRzaGFkZX0ge1xuICAgICAgICAgICAgY29sb3I6ICN7JHZhbHVlfTtcbiAgICAgICAgICAgIGZpbGw6ICN7JHZhbHVlfTtcbiAgICAgICAgfTtcbiAgICB9XG59XG4iLCJAdXNlICdAYW5ndWxhci9jZGsnO1xuXG5AbWl4aW4gcmlwcGxlKCkge1xuICAvLyBUaGUgaG9zdCBlbGVtZW50IG9mIGFuIG1hdC1yaXBwbGUgZGlyZWN0aXZlIHNob3VsZCBhbHdheXMgaGF2ZSBhIHBvc2l0aW9uIG9mIFwiYWJzb2x1dGVcIiBvclxuICAvLyBcInJlbGF0aXZlXCIgc28gdGhhdCB0aGUgcmlwcGxlcyBpbnNpZGUgYXJlIGNvcnJlY3RseSBwb3NpdGlvbmVkIHJlbGF0aXZlbHkgdG8gdGhlIGNvbnRhaW5lci5cbiAgLm1hdC1yaXBwbGUge1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAvLyBCeSBkZWZhdWx0LCBldmVyeSByaXBwbGUgY29udGFpbmVyIHNob3VsZCBoYXZlIHBvc2l0aW9uOiByZWxhdGl2ZSBpbiBmYXZvciBvZiBjcmVhdGluZyBhblxuICAgIC8vIGVhc3kgQVBJIGZvciBkZXZlbG9wZXJzIHVzaW5nIHRoZSBNYXRSaXBwbGUgZGlyZWN0aXZlLlxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgIC8vIFByb21vdGUgY29udGFpbmVycyB0aGF0IGhhdmUgcmlwcGxlcyB0byBhIG5ldyBsYXllci4gV2Ugd2FudCB0byB0YXJnZXQgYDpub3QoOmVtcHR5KWAsXG4gICAgLy8gYmVjYXVzZSB3ZSBkb24ndCB3YW50IGFsbCByaXBwbGUgY29udGFpbmVycyB0byBoYXZlIHRoZWlyIG93biBsYXllciBzaW5jZSB0aGV5J3JlIHVzZWQgaW4gYVxuICAgIC8vIGxvdCBvZiBwbGFjZXMgYW5kIHRoZSBsYXllciBpcyBvbmx5IHJlbGV2YW50IHdoaWxlIGFuaW1hdGluZy4gTm90ZSB0aGF0IGlkZWFsbHkgd2UnZCB1c2VcbiAgICAvLyB0aGUgYGNvbnRhaW5gIHByb3BlcnR5IGhlcmUgKHNlZSAjMTMxNzUpLCBiZWNhdXNlIGA6ZW1wdHlgIGNhbiBiZSBicm9rZW4gYnkgaGF2aW5nIGV4dHJhXG4gICAgLy8gdGV4dCBpbnNpZGUgdGhlIGVsZW1lbnQsIGJ1dCBpdCBpc24ndCB2ZXJ5IHdlbGwgc3VwcG9ydGVkIHlldC5cbiAgICAmOm5vdCg6ZW1wdHkpIHtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWigwKTtcbiAgICB9XG4gIH1cblxuICAubWF0LXJpcHBsZS5tYXQtcmlwcGxlLXVuYm91bmRlZCB7XG4gICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gIH1cblxuICAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSwgdHJhbnNmb3JtIDBtcyBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAxKTtcblxuICAgIC8vIFdlIHVzZSBhIDNkIHRyYW5zZm9ybSBoZXJlIGluIG9yZGVyIHRvIGF2b2lkIGFuIGlzc3VlIGluIFNhZmFyaSB3aGVyZVxuICAgIC8vIHRoZSByaXBwbGVzIGFyZW4ndCBjbGlwcGVkIHdoZW4gaW5zaWRlIHRoZSBzaGFkb3cgRE9NIChzZWUgIzI0MDI4KS5cbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoMCwgMCwgMCk7XG5cbiAgICAvLyBJbiBoaWdoIGNvbnRyYXN0IG1vZGUgdGhlIHJpcHBsZSBpcyBvcGFxdWUsIGNhdXNpbmcgaXQgdG8gb2JzdHJ1Y3QgdGhlIGNvbnRlbnQuXG4gICAgQGluY2x1ZGUgY2RrLmhpZ2gtY29udHJhc3QoYWN0aXZlLCBvZmYpIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG59XG4iLCIvLy8gRW1pdHMgYSBDU1MgY2xhc3MsIGAuY2RrLXZpc3VhbGx5LWhpZGRlbmAuIFRoaXMgY2xhc3MgY2FuIGJlIGFwcGxpZWQgdG8gYW4gZWxlbWVudFxuLy8vIHRvIG1ha2UgdGhhdCBlbGVtZW50IHZpc3VhbGx5IGhpZGRlbiB3aGlsZSByZW1haW5pbmcgYXZhaWxhYmxlIHRvIGFzc2lzdGl2ZSB0ZWNobm9sb2d5LlxuQG1peGluIGExMXktdmlzdWFsbHktaGlkZGVuKCkge1xuICAuY2RrLXZpc3VhbGx5LWhpZGRlbiB7XG4gICAgYm9yZGVyOiAwO1xuICAgIGNsaXA6IHJlY3QoMCAwIDAgMCk7XG4gICAgaGVpZ2h0OiAxcHg7XG4gICAgbWFyZ2luOiAtMXB4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgcGFkZGluZzogMDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgd2lkdGg6IDFweDtcblxuICAgIC8vIFRoaXMgd29ya3MgYXJvdW5kIGEgQ2hyb21lIGJ1ZyB0aGF0IGNhbiBjYXVzZSB0aGUgdGFiIHRvIGNyYXNoIHdoZW4gbGFyZ2UgYW1vdW50cyBvZlxuICAgIC8vIG5vbi1FbmdsaXNoIHRleHQgZ2V0IHdyYXBwZWQ6IGh0dHBzOi8vYnVncy5jaHJvbWl1bS5vcmcvcC9jaHJvbWl1bS9pc3N1ZXMvZGV0YWlsP2lkPTEyMDE0NDRcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuXG4gICAgLy8gQXZvaWQgYnJvd3NlcnMgcmVuZGVyaW5nIHRoZSBmb2N1cyByaW5nIGluIHNvbWUgY2FzZXMuXG4gICAgb3V0bGluZTogMDtcblxuICAgIC8vIEF2b2lkIHNvbWUgY2FzZXMgd2hlcmUgdGhlIGJyb3dzZXIgd2lsbCBzdGlsbCByZW5kZXIgdGhlIG5hdGl2ZSBjb250cm9scyAoc2VlICM5MDQ5KS5cbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgLW1vei1hcHBlYXJhbmNlOiBub25lO1xuXG4gICAgLy8gV2UgbmVlZCBhdCBsZWFzdCBvbmUgb2YgdG9wL2JvdHRvbS9sZWZ0L3JpZ2h0IGluIG9yZGVyIHRvIHByZXZlbnQgY2FzZXMgd2hlcmUgdGhlXG4gICAgLy8gYWJzb2x1dGUtcG9zaXRpb25lZCBlbGVtZW50IGlzIHB1c2hlZCBkb3duIGFuZCBjYW4gYWZmZWN0IHNjcm9sbGluZyAoc2VlICMyNDU5NykuXG4gICAgLy8gYGxlZnRgIHdhcyBjaG9zZW4gaGVyZSwgYmVjYXVzZSBpdCdzIHRoZSBsZWFzdCBsaWtlbHkgdG8gYnJlYWsgb3ZlcnJpZGVzIHdoZXJlIHRoZVxuICAgIC8vIGVsZW1lbnQgbWlnaHQgaGF2ZSBiZWVuIHBvc2l0aW9uZWQgKGUuZy4gYG1hdC1jaGVja2JveGApLlxuICAgIGxlZnQ6IDA7XG5cbiAgICBbZGlyPSdydGwnXSAmIHtcbiAgICAgIGxlZnQ6IGF1dG87XG4gICAgICByaWdodDogMDtcbiAgICB9XG4gIH1cbn1cblxuLy8vIEBkZXByZWNhdGVkIFVzZSBgYTExeS12aXN1YWxseS1oaWRkZW5gLlxuQG1peGluIGExMXkoKSB7XG4gIEBpbmNsdWRlIGExMXktdmlzdWFsbHktaGlkZGVuO1xufVxuXG4vLy8gRW1pdHMgdGhlIG1peGluJ3MgY29udGVudCBuZXN0ZWQgdW5kZXIgYCRzZWxlY3Rvci1jb250ZXh0YCBpZiBgJHNlbGVjdG9yLWNvbnRleHRgXG4vLy8gaXMgbm9uLWVtcHR5LlxuLy8vIEBwYXJhbSB7U3RyaW5nfSBzZWxlY3Rvci1jb250ZXh0IFRoZSBzZWxlY3RvciB1bmRlciB3aGljaCB0byBuZXN0IHRoZSBtaXhpbidzIGNvbnRlbnQuXG5AbWl4aW4gX29wdGlvbmFsbHktbmVzdC1jb250ZW50KCRzZWxlY3Rvci1jb250ZXh0KSB7XG4gIEBpZiAoJHNlbGVjdG9yLWNvbnRleHQgPT0gJycpIHtcbiAgICBAY29udGVudDtcbiAgfVxuICBAZWxzZSB7XG4gICAgI3skc2VsZWN0b3ItY29udGV4dH0ge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG59XG5cbi8vLyBBcHBsaWVzIHN0eWxlcyBmb3IgdXNlcnMgaW4gaGlnaCBjb250cmFzdCBtb2RlLiBOb3RlIHRoYXQgdGhpcyBvbmx5IGFwcGxpZXNcbi8vLyB0byBNaWNyb3NvZnQgYnJvd3NlcnMuIENocm9tZSBjYW4gYmUgaW5jbHVkZWQgYnkgY2hlY2tpbmcgZm9yIHRoZSBgaHRtbFtoY11gXG4vLy8gYXR0cmlidXRlLCBob3dldmVyIENocm9tZSBoYW5kbGVzIGhpZ2ggY29udHJhc3QgZGlmZmVyZW50bHkuXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gdGFyZ2V0IFR5cGUgb2YgaGlnaCBjb250cmFzdCBzZXR0aW5nIHRvIHRhcmdldC4gRGVmYXVsdHMgdG8gYGFjdGl2ZWAsIGNhbiBiZVxuLy8vICAgICBgd2hpdGUtb24tYmxhY2tgIG9yIGBibGFjay1vbi13aGl0ZWAuXG4vLy8gQHBhcmFtIHtTdHJpbmd9IGVuY2Fwc3VsYXRpb24gV2hldGhlciB0byBlbWl0IHN0eWxlcyBmb3IgdmlldyBlbmNhcHN1bGF0aW9uLiBWYWx1ZXMgYXJlOlxuLy8vICAgICAqIGBvbmAgLSB3b3JrcyBmb3IgYEVtdWxhdGVkYCwgYE5hdGl2ZWAsIGFuZCBgU2hhZG93RG9tYFxuLy8vICAgICAqIGBvZmZgIC0gd29ya3MgZm9yIGBOb25lYFxuLy8vICAgICAqIGBhbnlgIC0gd29ya3MgZm9yIGFsbCBlbmNhcHN1bGF0aW9uIG1vZGVzIGJ5IGVtaXR0aW5nIHRoZSBDU1MgdHdpY2UgKGRlZmF1bHQpLlxuQG1peGluIGhpZ2gtY29udHJhc3QoJHRhcmdldDogYWN0aXZlLCAkZW5jYXBzdWxhdGlvbjogJ2FueScpIHtcbiAgQGlmICgkdGFyZ2V0ICE9ICdhY3RpdmUnIGFuZCAkdGFyZ2V0ICE9ICdibGFjay1vbi13aGl0ZScgYW5kICR0YXJnZXQgIT0gJ3doaXRlLW9uLWJsYWNrJykge1xuICAgIEBlcnJvciAnVW5rbm93biBjZGstaGlnaC1jb250cmFzdCB2YWx1ZSBcIiN7JHRhcmdldH1cIiBwcm92aWRlZC4gJyArXG4gICAgICAgICAgICdBbGxvd2VkIHZhbHVlcyBhcmUgXCJhY3RpdmVcIiwgXCJibGFjay1vbi13aGl0ZVwiLCBhbmQgXCJ3aGl0ZS1vbi1ibGFja1wiJztcbiAgfVxuXG4gIEBpZiAoJGVuY2Fwc3VsYXRpb24gIT0gJ29uJyBhbmQgJGVuY2Fwc3VsYXRpb24gIT0gJ29mZicgYW5kICRlbmNhcHN1bGF0aW9uICE9ICdhbnknKSB7XG4gICAgQGVycm9yICdVbmtub3duIGNkay1oaWdoLWNvbnRyYXN0IGVuY2Fwc3VsYXRpb24gXCIjeyRlbmNhcHN1bGF0aW9ufVwiIHByb3ZpZGVkLiAnICtcbiAgICAgICAgICAgJ0FsbG93ZWQgdmFsdWVzIGFyZSBcIm9uXCIsIFwib2ZmXCIsIGFuZCBcImFueVwiJztcbiAgfVxuXG4gIC8vIElmIHRoZSBzZWxlY3RvciBjb250ZXh0IGhhcyBtdWx0aXBsZSBwYXJ0cywgc3VjaCBhcyBgLnNlY3Rpb24sIC5yZWdpb25gLCBqdXN0IGRvaW5nXG4gIC8vIGAuY2RrLWhpZ2gtY29udHJhc3QteHh4ICN7Jn1gIHdpbGwgb25seSBhcHBseSB0aGUgcGFyZW50IHNlbGVjdG9yIHRvIHRoZSBmaXJzdCBwYXJ0IG9mIHRoZVxuICAvLyBjb250ZXh0LiBXZSBhZGRyZXNzIHRoaXMgYnkgbmVzdGluZyB0aGUgc2VsZWN0b3IgY29udGV4dCB1bmRlciAuY2RrLWhpZ2gtY29udHJhc3QuXG4gIEBhdC1yb290IHtcbiAgICAkc2VsZWN0b3ItY29udGV4dDogI3smfTtcblxuICAgIEBpZiAoJGVuY2Fwc3VsYXRpb24gIT0gJ29uJykge1xuICAgICAgLy8gTm90ZSB0aGF0IGlmIHRoaXMgc2VsZWN0b3IgaXMgdXBkYXRlZCwgdGhlIHNhbWUgY2hhbmdlIGhhcyB0byBiZSBtYWRlIGluc2lkZVxuICAgICAgLy8gYF9vdmVybGF5LnNjc3NgIHdoaWNoIGNhbid0IGRlcGVuZCBvbiB0aGlzIG1peGluIGR1ZSB0byBzb21lIGluZnJhc3RydWN0dXJlIGxpbWl0YXRpb25zLlxuICAgICAgLmNkay1oaWdoLWNvbnRyYXN0LSN7JHRhcmdldH0ge1xuICAgICAgICBAaW5jbHVkZSBfb3B0aW9uYWxseS1uZXN0LWNvbnRlbnQoJHNlbGVjdG9yLWNvbnRleHQpIHtcbiAgICAgICAgICBAY29udGVudDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIEBpZiAoJGVuY2Fwc3VsYXRpb24gIT0gJ29mZicpIHtcbiAgICAgIC5jZGstaGlnaC1jb250cmFzdC0jeyR0YXJnZXR9IDpob3N0IHtcbiAgICAgICAgQGluY2x1ZGUgX29wdGlvbmFsbHktbmVzdC1jb250ZW50KCRzZWxlY3Rvci1jb250ZXh0KSB7XG4gICAgICAgICAgQGNvbnRlbnQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIFdlIHdhbnQgb3ZlcmxheXMgdG8gYWx3YXlzIGFwcGVhciBvdmVyIHVzZXIgY29udGVudCwgc28gc2V0IGEgYmFzZWxpbmVcbi8vIHZlcnkgaGlnaCB6LWluZGV4IGZvciB0aGUgb3ZlcmxheSBjb250YWluZXIsIHdoaWNoIGlzIHdoZXJlIHdlIGNyZWF0ZSB0aGUgbmV3XG4vLyBzdGFja2luZyBjb250ZXh0IGZvciBhbGwgb3ZlcmxheXMuXG4kb3ZlcmxheS1jb250YWluZXItei1pbmRleDogMTAwMCAhZGVmYXVsdDtcbiRvdmVybGF5LXotaW5kZXg6IDEwMDAgIWRlZmF1bHQ7XG4kb3ZlcmxheS1iYWNrZHJvcC16LWluZGV4OiAxMDAwICFkZWZhdWx0O1xuXG4vLyBCYWNrZ3JvdW5kIGNvbG9yIGZvciBhbGwgb2YgdGhlIGJhY2tkcm9wc1xuJG92ZXJsYXktYmFja2Ryb3AtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4zMikgIWRlZmF1bHQ7XG5cbi8vIERlZmF1bHQgYmFja2Ryb3AgYW5pbWF0aW9uIGlzIGJhc2VkIG9uIHRoZSBNYXRlcmlhbCBEZXNpZ24gc3dpZnQtZWFzZS1vdXQuXG4kYmFja2Ryb3AtYW5pbWF0aW9uLWR1cmF0aW9uOiA0MDBtcyAhZGVmYXVsdDtcbiRiYWNrZHJvcC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjI1LCAxKSAhZGVmYXVsdDtcblxuLy8vIEVtaXRzIHN0cnVjdHVyYWwgc3R5bGVzIHJlcXVpcmVkIGZvciBjZGsvb3ZlcmxheSB0byBmdW5jdGlvbi5cbkBtaXhpbiBvdmVybGF5KCkge1xuICAuY2RrLW92ZXJsYXktY29udGFpbmVyLCAuY2RrLWdsb2JhbC1vdmVybGF5LXdyYXBwZXIge1xuICAgIC8vIERpc2FibGUgZXZlbnRzIGZyb20gYmVpbmcgY2FwdHVyZWQgb24gdGhlIG92ZXJsYXkgY29udGFpbmVyLlxuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgLy8gVGhlIGNvbnRhaW5lciBzaG91bGQgYmUgdGhlIHNpemUgb2YgdGhlIHZpZXdwb3J0LlxuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuXG4gIC8vIFRoZSBvdmVybGF5LWNvbnRhaW5lciBpcyBhbiBpbnZpc2libGUgZWxlbWVudCB3aGljaCBjb250YWlucyBhbGwgaW5kaXZpZHVhbCBvdmVybGF5cy5cbiAgLmNkay1vdmVybGF5LWNvbnRhaW5lciB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHotaW5kZXg6ICRvdmVybGF5LWNvbnRhaW5lci16LWluZGV4O1xuXG4gICAgJjplbXB0eSB7XG4gICAgICAvLyBIaWRlIHRoZSBlbGVtZW50IHdoZW4gaXQgZG9lc24ndCBoYXZlIGFueSBjaGlsZCBub2Rlcy4gVGhpcyBkb2Vzbid0XG4gICAgICAvLyBpbmNsdWRlIG92ZXJsYXlzIHRoYXQgaGF2ZSBiZWVuIGRldGFjaGVkLCByYXRoZXIgdGhhbiBkaXNwb3NlZC5cbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgLy8gV2UgdXNlIGFuIGV4dHJhIHdyYXBwZXIgZWxlbWVudCBpbiBvcmRlciB0byB1c2UgbWFrZSB0aGUgb3ZlcmxheSBpdHNlbGYgYSBmbGV4IGl0ZW0uXG4gIC8vIFRoaXMgbWFrZXMgY2VudGVyaW5nIHRoZSBvdmVybGF5IGVhc3kgd2l0aG91dCBydW5uaW5nIGludG8gdGhlIHN1YnBpeGVsIHJlbmRlcmluZ1xuICAvLyBwcm9ibGVtcyB0aWVkIHRvIHVzaW5nIGB0cmFuc2Zvcm1gIGFuZCB3aXRob3V0IGludGVyZmVyaW5nIHdpdGggdGhlIG90aGVyIHBvc2l0aW9uXG4gIC8vIHN0cmF0ZWdpZXMuXG4gIC5jZGstZ2xvYmFsLW92ZXJsYXktd3JhcHBlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgei1pbmRleDogJG92ZXJsYXktei1pbmRleDtcbiAgfVxuXG4gIC8vIEEgc2luZ2xlIG92ZXJsYXkgcGFuZS5cbiAgLmNkay1vdmVybGF5LXBhbmUge1xuICAgIC8vIE5vdGU6IGl0J3MgaW1wb3J0YW50IGZvciB0aGlzIG9uZSB0byBzdGFydCBvZmYgYGFic29sdXRlYCxcbiAgICAvLyBpbiBvcmRlciBmb3IgdXMgdG8gYmUgYWJsZSB0byBtZWFzdXJlIGl0IGNvcnJlY3RseS5cbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgcG9pbnRlci1ldmVudHM6IGF1dG87XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICB6LWluZGV4OiAkb3ZlcmxheS16LWluZGV4O1xuXG4gICAgLy8gRm9yIGNvbm5lY3RlZC1wb3NpdGlvbiBvdmVybGF5cywgd2Ugc2V0IGBkaXNwbGF5OiBmbGV4YCBpblxuICAgIC8vIG9yZGVyIHRvIGZvcmNlIGBtYXgtd2lkdGhgIGFuZCBgbWF4LWhlaWdodGAgdG8gdGFrZSBlZmZlY3QuXG4gICAgZGlzcGxheTogZmxleDtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgbWF4LWhlaWdodDogMTAwJTtcbiAgfVxuXG4gIC5jZGstb3ZlcmxheS1iYWNrZHJvcCB7XG4gICAgLy8gVE9ETyhqZWxib3Vybik6IHJldXNlIHNpZGVuYXYgZnVsbHNjcmVlbiBtaXhpbi5cbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGJvdHRvbTogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHJpZ2h0OiAwO1xuXG4gICAgei1pbmRleDogJG92ZXJsYXktYmFja2Ryb3Atei1pbmRleDtcbiAgICBwb2ludGVyLWV2ZW50czogYXV0bztcbiAgICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgJGJhY2tkcm9wLWFuaW1hdGlvbi1kdXJhdGlvbiAkYmFja2Ryb3AtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjtcbiAgICBvcGFjaXR5OiAwO1xuXG4gICAgJi5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5nIHtcbiAgICAgIG9wYWNpdHk6IDE7XG5cbiAgICAgIC8vIE5vdGUgdGhhdCB3ZSBjYW4ndCBpbXBvcnQgYW5kIHVzZSB0aGUgYGhpZ2gtY29udHJhc3RgIG1peGluIGZyb20gYF9hMTF5LnNjc3NgLCBiZWNhdXNlXG4gICAgICAvLyB0aGlzIGZpbGUgd2lsbCBiZSBjb3BpZWQgdG8gdGhlIHRvcC1sZXZlbCBgY2RrYCBwYWNrYWdlIHdoZW4gcHV0dGluZyB0b2dldGhlciB0aGUgZmlsZXNcbiAgICAgIC8vIGZvciBucG0uIEFueSByZWxhdGl2ZSBpbXBvcnQgcGF0aHMgd2UgdXNlIGhlcmUgd2lsbCBiZWNvbWUgaW52YWxpZCBvbmNlIHRoZSBmaWxlIGlzIGNvcGllZC5cbiAgICAgIC5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgJiB7XG4gICAgICAgIC8vIEluIGhpZ2ggY29udHJhc3QgbW9kZSB0aGUgcmdiYSBiYWNrZ3JvdW5kIHdpbGwgYmVjb21lIHNvbGlkXG4gICAgICAgIC8vIHNvIHdlIG5lZWQgdG8gZmFsbCBiYWNrIHRvIG1ha2luZyBpdCBvcGFxdWUgdXNpbmcgYG9wYWNpdHlgLlxuICAgICAgICBvcGFjaXR5OiAwLjY7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLmNkay1vdmVybGF5LWRhcmstYmFja2Ryb3Age1xuICAgIGJhY2tncm91bmQ6ICRvdmVybGF5LWJhY2tkcm9wLWNvbG9yO1xuICB9XG5cbiAgLmNkay1vdmVybGF5LXRyYW5zcGFyZW50LWJhY2tkcm9wIHtcbiAgICAvLyBEZWZpbmUgYSB0cmFuc2l0aW9uIG9uIHRoZSB2aXNpYmlsaXR5IHNvIHRoYXQgdGhlIGB0cmFuc2l0aW9uZW5kYCBldmVudCBjYW4gZmlyZSBpbW1lZGlhdGVseS5cbiAgICB0cmFuc2l0aW9uOiB2aXNpYmlsaXR5IDFtcyBsaW5lYXIsIG9wYWNpdHkgMW1zIGxpbmVhcjtcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgb3BhY2l0eTogMTtcblxuICAgIC8vIE5vdGU6IGFzIG9mIEZpcmVmb3ggNTcsIGhhdmluZyB0aGUgYmFja2Ryb3AgYmUgYGJhY2tncm91bmQ6IG5vbmVgIHdpbGwgcHJldmVudCBpdCBmcm9tXG4gICAgLy8gY2FwdHVyaW5nIHRoZSB1c2VyJ3MgbW91c2Ugc2Nyb2xsIGV2ZW50cy4gU2luY2Ugd2UgYWxzbyBjYW4ndCB1c2Ugc29tZXRoaW5nIGxpa2VcbiAgICAvLyBgcmdiYSgwLCAwLCAwLCAwKWAsIHdlIHdvcmsgYXJvdW5kIHRoZSBpbmNvbnNpc3RlbmN5IGJ5IG5vdCBzZXR0aW5nIHRoZSBiYWNrZ3JvdW5kIGF0XG4gICAgLy8gYWxsIGFuZCB1c2luZyBgb3BhY2l0eWAgdG8gbWFrZSB0aGUgZWxlbWVudCB0cmFuc3BhcmVudC5cbiAgICAmLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmcge1xuICAgICAgb3BhY2l0eTogMDtcbiAgICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgfVxuICB9XG5cbiAgLmNkay1vdmVybGF5LWJhY2tkcm9wLW5vb3AtYW5pbWF0aW9uIHtcbiAgICB0cmFuc2l0aW9uOiBub25lO1xuICB9XG5cbiAgLy8gT3ZlcmxheSBwYXJlbnQgZWxlbWVudCB1c2VkIHdpdGggdGhlIGNvbm5lY3RlZCBwb3NpdGlvbiBzdHJhdGVneS4gVXNlZCB0byBjb25zdHJhaW4gdGhlXG4gIC8vIG92ZXJsYXkgZWxlbWVudCdzIHNpemUgdG8gZml0IHdpdGhpbiB0aGUgdmlld3BvcnQuXG4gIC5jZGstb3ZlcmxheS1jb25uZWN0ZWQtcG9zaXRpb24tYm91bmRpbmctYm94IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgei1pbmRleDogJG92ZXJsYXktei1pbmRleDtcblxuICAgIC8vIFdlIHVzZSBgZGlzcGxheTogZmxleGAgb24gdGhpcyBlbGVtZW50IGV4Y2x1c2l2ZWx5IGZvciBjZW50ZXJpbmcgY29ubmVjdGVkIG92ZXJsYXlzLlxuICAgIC8vIFdoZW4gKm5vdCogY2VudGVyaW5nLCBhIHRvcC9sZWZ0L2JvdHRvbS9yaWdodCB3aWxsIGJlIHNldCB3aGljaCBvdmVycmlkZXMgdGhlIG5vcm1hbFxuICAgIC8vIGZsZXggbGF5b3V0LlxuICAgIGRpc3BsYXk6IGZsZXg7XG5cbiAgICAvLyBXZSB1c2UgdGhlIGBjb2x1bW5gIGRpcmVjdGlvbiBoZXJlIHRvIGF2b2lkIHNvbWUgZmxleGJveCBpc3N1ZXMgaW4gRWRnZVxuICAgIC8vIHdoZW4gdXNpbmcgdGhlIFwiZ3JvdyBhZnRlciBvcGVuXCIgb3B0aW9ucy5cbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgLy8gQWRkIHNvbWUgZGltZW5zaW9ucyBzbyB0aGUgZWxlbWVudCBoYXMgYW4gYGlubmVyVGV4dGAgd2hpY2ggc29tZSBwZW9wbGUgZGVwZW5kIG9uIGluIHRlc3RzLlxuICAgIG1pbi13aWR0aDogMXB4O1xuICAgIG1pbi1oZWlnaHQ6IDFweDtcbiAgfVxuXG4gIC8vIFVzZWQgd2hlbiBkaXNhYmxpbmcgZ2xvYmFsIHNjcm9sbGluZy5cbiAgLmNkay1nbG9iYWwtc2Nyb2xsYmxvY2sge1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcblxuICAgIC8vIE5lY2Vzc2FyeSBmb3IgdGhlIGNvbnRlbnQgbm90IHRvIGxvc2UgaXRzIHdpZHRoLiBOb3RlIHRoYXQgd2UncmUgdXNpbmcgMTAwJSwgaW5zdGVhZCBvZlxuICAgIC8vIDEwMHZ3LCBiZWNhdXNlIDEwMHZ3IGluY2x1ZGVzIHRoZSB3aWR0aCBwbHVzIHRoZSBzY3JvbGxiYXIsIHdoZXJlYXMgMTAwJSBpcyB0aGUgd2lkdGhcbiAgICAvLyB0aGF0IHRoZSBlbGVtZW50IGhhZCBiZWZvcmUgd2UgbWFkZSBpdCBgZml4ZWRgLlxuICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgLy8gTm90ZTogdGhpcyB3aWxsIGFsd2F5cyBhZGQgYSBzY3JvbGxiYXIgdG8gd2hhdGV2ZXIgZWxlbWVudCBpdCBpcyBvbiwgd2hpY2ggY2FuXG4gICAgLy8gcG90ZW50aWFsbHkgcmVzdWx0IGluIGRvdWJsZSBzY3JvbGxiYXJzLiBJdCBzaG91bGRuJ3QgYmUgYW4gaXNzdWUsIGJlY2F1c2Ugd2Ugd29uJ3RcbiAgICAvLyBibG9jayBzY3JvbGxpbmcgb24gYSBwYWdlIHRoYXQgZG9lc24ndCBoYXZlIGEgc2Nyb2xsYmFyIGluIHRoZSBmaXJzdCBwbGFjZS5cbiAgICBvdmVyZmxvdy15OiBzY3JvbGw7XG4gIH1cbn1cbiIsIi8vIFN0cnVjdHVyYWwgc3R5bGVzIGZvciB0aGUgYXV0b3NpemUgdGV4dCBmaWVsZHMuXG5AbWl4aW4gdGV4dC1maWVsZC1hdXRvc2l6ZSgpIHtcbiAgLy8gUmVtb3ZlIHRoZSByZXNpemUgaGFuZGxlIG9uIGF1dG9zaXppbmcgdGV4dGFyZWFzLCBiZWNhdXNlIHdoYXRldmVyIGhlaWdodFxuICAvLyB0aGUgdXNlciByZXNpemVkIHRvIHdpbGwgYmUgb3ZlcndyaXR0ZW4gb25jZSB0aGV5IHN0YXJ0IHR5cGluZyBhZ2Fpbi5cbiAgdGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXplIHtcbiAgICByZXNpemU6IG5vbmU7XG4gIH1cblxuICAvLyBUaGlzIGNsYXNzIGlzIHRlbXBvcmFyaWx5IGFwcGxpZWQgdG8gdGhlIHRleHRhcmVhIHdoZW4gaXQgaXMgYmVpbmcgbWVhc3VyZWQuIEl0IGlzIGltbWVkaWF0ZWx5XG4gIC8vIHJlbW92ZWQgd2hlbiBtZWFzdXJpbmcgaXMgY29tcGxldGUuIFdlIHVzZSBgIWltcG9ydGFudGAgcnVsZXMgaGVyZSB0byBtYWtlIHN1cmUgdXNlci1zcGVjaWZpZWRcbiAgLy8gcnVsZXMgZG8gbm90IGludGVyZmVyZSB3aXRoIHRoZSBtZWFzdXJlbWVudC5cbiAgdGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXplLW1lYXN1cmluZyB7XG4gICAgQGluY2x1ZGUgX2F1dG9zaXplLW1lYXN1cmluZy1iYXNlO1xuICAgIGhlaWdodDogYXV0byAhaW1wb3J0YW50O1xuICAgIG92ZXJmbG93OiBoaWRkZW4gIWltcG9ydGFudDtcbiAgfVxuXG4gIC8vIFNpbWlsYXIgdG8gdGhlIGBjZGstdGV4dGFyZWEtYXV0b3NpemUtbWVhc3VyaW5nYCBjbGFzcywgYnV0IG9ubHkgYXBwbGllZCBvbiBGaXJlZm94LiBXZSBuZWVkXG4gIC8vIHRvIHVzZSB0aGlzIGNsYXNzLCBiZWNhdXNlIEZpcmVmb3ggaGFzIGEgYnVnIHdoZXJlIGNoYW5naW5nIHRoZSBgb3ZlcmZsb3dgIGJyZWFrcyB0aGUgdXNlcidzXG4gIC8vIGFiaWxpdHkgdG8gdW5kby9yZWRvIHdoYXQgdGhleSB3ZXJlIHR5cGluZyAoc2VlICMxNjYyOSkuIFRoaXMgY2xhc3MgaXMgb25seSBzY29wZWQgdG8gRmlyZWZveCxcbiAgLy8gYmVjYXVzZSB0aGUgbWVhc3VyZW1lbnRzIHRoZXJlIGRvbid0IHNlZW0gdG8gYmUgYWZmZWN0ZWQgYnkgdGhlIGBoZWlnaHQ6IDBgLCB3aGVyZWFzIG9uIG90aGVyXG4gIC8vIGJyb3dzZXJzIHRoZXkgYXJlLCBlLmcuIENocm9tZSBkZXRlY3RzIGxvbmdlciB0ZXh0IGFuZCBJRSBkb2VzJ3QgcmVzaXplIGJhY2sgdG8gbm9ybWFsLlxuICAvLyBJZGVudGljYWwgaXNzdWUgcmVwb3J0OiBodHRwczovL2J1Z3ppbGxhLm1vemlsbGEub3JnL3Nob3dfYnVnLmNnaT9pZD00NDg3ODRcbiAgdGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXplLW1lYXN1cmluZy1maXJlZm94IHtcbiAgICBAaW5jbHVkZSBfYXV0b3NpemUtbWVhc3VyaW5nLWJhc2U7XG4gICAgaGVpZ2h0OiAwICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuLy8gQ29yZSBzdHlsZXMgdGhhdCBlbmFibGUgbW9uaXRvcmluZyBhdXRvZmlsbCBzdGF0ZSBvZiB0ZXh0IGZpZWxkcy5cbkBtaXhpbiB0ZXh0LWZpZWxkLWF1dG9maWxsKCkge1xuICAvLyBLZXlmcmFtZXMgdGhhdCBhcHBseSBubyBzdHlsZXMsIGJ1dCBhbGxvdyB1cyB0byBtb25pdG9yIHdoZW4gYW4gdGV4dCBmaWVsZCBiZWNvbWVzIGF1dG9maWxsZWRcbiAgLy8gYnkgd2F0Y2hpbmcgZm9yIHRoZSBhbmltYXRpb24gZXZlbnRzIHRoYXQgYXJlIGZpcmVkIHdoZW4gdGhleSBzdGFydC4gTm90ZTogdGhlIC8qISovIGNvbW1lbnQgaXNcbiAgLy8gbmVlZGVkIHRvIHByZXZlbnQgTGliU2FzcyBmcm9tIHN0cmlwcGluZyB0aGUga2V5ZnJhbWVzIG91dC5cbiAgLy8gQmFzZWQgb246IGh0dHBzOi8vbWVkaXVtLmNvbS9AYnJ1bm4vZGV0ZWN0aW5nLWF1dG9maWxsZWQtZmllbGRzLWluLWphdmFzY3JpcHQtYWVkNTk4ZDI1ZGE3XG4gIEBrZXlmcmFtZXMgY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtc3RhcnQgey8qISovfVxuICBAa2V5ZnJhbWVzIGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWVuZCB7LyohKi99XG5cbiAgLmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLW1vbml0b3JlZDotd2Via2l0LWF1dG9maWxsIHtcbiAgICAvLyBTaW5jZSBDaHJvbWUgODAgd2UgbmVlZCBhIDFtcyBkZWxheSwgb3IgdGhlIGFuaW1hdGlvbnN0YXJ0IGV2ZW50IHdvbid0IGZpcmUuXG4gICAgYW5pbWF0aW9uOiBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1zdGFydCAwcyAxbXM7XG4gIH1cblxuICAuY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtbW9uaXRvcmVkOm5vdCg6LXdlYmtpdC1hdXRvZmlsbCkge1xuICAgIC8vIFNpbmNlIENocm9tZSA4MCB3ZSBuZWVkIGEgMW1zIGRlbGF5LCBvciB0aGUgYW5pbWF0aW9uc3RhcnQgZXZlbnQgd29uJ3QgZmlyZS5cbiAgICBhbmltYXRpb246IGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWVuZCAwcyAxbXM7XG4gIH1cbn1cblxuQG1peGluIF9hdXRvc2l6ZS1tZWFzdXJpbmctYmFzZSB7XG4gIC8vIEhhdmluZyAycHggdG9wIGFuZCBib3R0b20gcGFkZGluZyBzZWVtcyB0byBmaXggYSBidWcgd2hlcmUgQ2hyb21lIGdldHMgYW4gaW5jb3JyZWN0XG4gIC8vIG1lYXN1cmVtZW50LiBXZSBqdXN0IGhhdmUgdG8gYWNjb3VudCBmb3IgaXQgbGF0ZXIgYW5kIHN1YnRyYWN0IGl0IG9mZiB0aGUgZmluYWwgcmVzdWx0LlxuICBwYWRkaW5nOiAycHggMCAhaW1wb3J0YW50O1xuICBib3gtc2l6aW5nOiBjb250ZW50LWJveCAhaW1wb3J0YW50O1xufVxuXG4vLyBVc2VkIHRvIGdlbmVyYXRlIFVJRHMgZm9yIGtleWZyYW1lcyB1c2VkIHRvIGNoYW5nZSB0aGUgdGV4dCBmaWVsZCBhdXRvZmlsbCBzdHlsZXMuXG4kYXV0b2ZpbGwtY29sb3ItZnJhbWUtY291bnQ6IDA7XG5cbi8vIE1peGluIHVzZWQgdG8gYXBwbHkgY3VzdG9tIGJhY2tncm91bmQgYW5kIGZvcmVncm91bmQgY29sb3JzIHRvIGFuIGF1dG9maWxsZWQgdGV4dCBmaWVsZC5cbi8vIEJhc2VkIG9uOiBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy8yNzgxNTQ5L1xuLy8gcmVtb3ZpbmctaW5wdXQtYmFja2dyb3VuZC1jb2xvdXItZm9yLWNocm9tZS1hdXRvY29tcGxldGUjYW5zd2VyLTM3NDMyMjYwXG5AbWl4aW4gdGV4dC1maWVsZC1hdXRvZmlsbC1jb2xvcigkYmFja2dyb3VuZCwgJGZvcmVncm91bmQ6JycpIHtcbiAgQGtleWZyYW1lcyBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1jb2xvci0jeyRhdXRvZmlsbC1jb2xvci1mcmFtZS1jb3VudH0ge1xuICAgIHRvIHtcbiAgICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgICAgQGlmICRmb3JlZ3JvdW5kICE9ICcnIHsgY29sb3I6ICRmb3JlZ3JvdW5kOyB9XG4gICAgfVxuICB9XG5cbiAgJjotd2Via2l0LWF1dG9maWxsIHtcbiAgICBhbmltYXRpb246IGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWNvbG9yLSN7JGF1dG9maWxsLWNvbG9yLWZyYW1lLWNvdW50fSBib3RoO1xuICB9XG5cbiAgJi5jZGstdGV4dC1maWVsZC1hdXRvZmlsbC1tb25pdG9yZWQ6LXdlYmtpdC1hdXRvZmlsbCB7XG4gICAgLy8gU2luY2UgQ2hyb21lIDgwIHdlIG5lZWQgYSAxbXMgZGVsYXkgZm9yIGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLXN0YXJ0LCBvciB0aGUgYW5pbWF0aW9uc3RhcnRcbiAgICAvLyBldmVudCB3b24ndCBmaXJlLlxuICAgIGFuaW1hdGlvbjogY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtc3RhcnQgMHMgMW1zLFxuICAgICAgICAgICAgICAgY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtY29sb3ItI3skYXV0b2ZpbGwtY29sb3ItZnJhbWUtY291bnR9IGJvdGg7XG4gIH1cblxuICAkYXV0b2ZpbGwtY29sb3ItZnJhbWUtY291bnQ6ICRhdXRvZmlsbC1jb2xvci1mcmFtZS1jb3VudCArIDEgIWdsb2JhbDtcbn1cblxuLy8gQGRlcHJlY2F0ZWQgVXNlIGBhdXRvc2l6ZWAgYW5kIGBhdXRvZmlsbGAgaW5zdGVhZC5cbkBtaXhpbiB0ZXh0LWZpZWxkIHtcbiAgQGluY2x1ZGUgdGV4dC1maWVsZC1hdXRvc2l6ZSgpO1xuICBAaW5jbHVkZSB0ZXh0LWZpZWxkLWF1dG9maWxsKCk7XG59XG4iLCJAdXNlICdzYXNzOm1hcCc7XG5AdXNlICdzYXNzOm1ldGEnO1xuQHVzZSAnQGFuZ3VsYXIvY2RrJztcbkB1c2UgJy4uL3N0eWxlL2xheW91dC1jb21tb24nO1xuQHVzZSAnLi4vdGhlbWluZy90aGVtaW5nJztcblxuLy8gUHJpdmF0ZSBzYXNzIHZhcmlhYmxlcyB0aGF0IHdpbGwgYmUgdXNlZCBhcyByZWZlcmVuY2UgdGhyb3VnaG91dCBjb21wb25lbnQgc3R5bGVzaGVldHMuXG4kZGVmYXVsdC1ib3JkZXItd2lkdGg6IDNweDtcbiRkZWZhdWx0LWJvcmRlci1zdHlsZTogc29saWQ7XG4kZGVmYXVsdC1ib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuJGRlZmF1bHQtYm9yZGVyLXJhZGl1czogNHB4O1xuXG4vLyBNaXhpbiB0aGF0IHJlbmRlcnMgdGhlIGZvY3VzIGluZGljYXRvciBzdHJ1Y3R1cmFsIHN0eWxlcy5cbkBtaXhpbiBzdHJ1Y3R1cmFsLXN0eWxpbmcoJHByZWZpeCkge1xuICAuI3skcHJlZml4fS1mb2N1cy1pbmRpY2F0b3Ige1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICY6OmJlZm9yZSB7XG4gICAgICBAaW5jbHVkZSBsYXlvdXQtY29tbW9uLmZpbGwoKTtcbiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgIGRpc3BsYXk6IHZhcigtLSN7JHByZWZpeH0tZm9jdXMtaW5kaWNhdG9yLWRpc3BsYXksIG5vbmUpOyAvLyBIaWRlIHRoZSBpbmRpY2F0b3IgYnkgZGVmYXVsdC5cbiAgICAgIGJvcmRlcjogdmFyKFxuICAgICAgICAgIC0tI3skcHJlZml4fS1mb2N1cy1pbmRpY2F0b3ItYm9yZGVyLXdpZHRoLFxuICAgICAgICAgICN7JGRlZmF1bHQtYm9yZGVyLXdpZHRofVxuICAgICAgICApXG4gICAgICAgIHZhcihcbiAgICAgICAgICAtLSN7JHByZWZpeH0tZm9jdXMtaW5kaWNhdG9yLWJvcmRlci1zdHlsZSxcbiAgICAgICAgICAjeyRkZWZhdWx0LWJvcmRlci1zdHlsZX1cbiAgICAgICAgKVxuICAgICAgICB2YXIoXG4gICAgICAgICAgLS0jeyRwcmVmaXh9LWZvY3VzLWluZGljYXRvci1ib3JkZXItY29sb3IsXG4gICAgICAgICAgI3skZGVmYXVsdC1ib3JkZXItY29sb3J9XG4gICAgICAgICk7XG4gICAgICBib3JkZXItcmFkaXVzOiB2YXIoXG4gICAgICAgIC0tI3skcHJlZml4fS1mb2N1cy1pbmRpY2F0b3ItYm9yZGVyLXJhZGl1cyxcbiAgICAgICAgI3skZGVmYXVsdC1ib3JkZXItcmFkaXVzfVxuICAgICAgKTtcbiAgICB9XG5cbiAgICAvLyBCeSBkZWZhdWx0LCByZW5kZXIgdGhlIGZvY3VzIGluZGljYXRvciB3aGVuIHRoZSBmb2N1cyBpbmRpY2F0b3IgaG9zdCBlbGVtZW50IHRha2VzIGZvY3VzLlxuICAgIC8vIERlZmluaW5nIGEgcHNldWRvIGVsZW1lbnQncyBjb250ZW50IHdpbGwgY2F1c2UgaXQgdG8gcmVuZGVyLlxuICAgICY6Zm9jdXM6OmJlZm9yZSB7XG4gICAgICBjb250ZW50OiAnJztcbiAgICB9XG4gIH1cblxuICAvLyBFbmFibGUgdGhlIGluZGljYXRvciBpbiBoaWdoIGNvbnRyYXN0IG1vZGUuXG4gIEBpbmNsdWRlIGNkay5oaWdoLWNvbnRyYXN0KGFjdGl2ZSwgb2ZmKSB7XG4gICAgQGluY2x1ZGUgY3VzdG9taXplLWZvY3VzLWluZGljYXRvcnMoKGRpc3BsYXk6IGJsb2NrKSwgJHByZWZpeCk7XG4gIH1cbn1cblxuLy8gR2VuZXJhdGVzIENTUyB2YXJpYWJsZSBkZWNsYXJhdGlvbnMgZnJvbSBhIG1hcC5cbkBtaXhpbiBfb3V0cHV0LXZhcmlhYmxlcygkbWFwKSB7XG4gIEBlYWNoICRrZXksICR2YWx1ZSBpbiAkbWFwIHtcbiAgICBAaWYgKCR2YWx1ZSkge1xuICAgICAgLS0jeyRrZXl9OiAjeyR2YWx1ZX07XG4gICAgfVxuICB9XG59XG5cbi8vIE1peGluIHRoYXQgZGVkdXBzIENTUyB2YXJpYWJsZXMgZm9yIHRoZSBzdHJvbmctZm9jdXMtaW5kaWNhdG9ycyBtaXhpbi5cbkBtaXhpbiBjdXN0b21pemUtZm9jdXMtaW5kaWNhdG9ycygkY29uZmlnLCAkcHJlZml4KSB7XG4gICRib3JkZXItc3R5bGU6IG1hcC5nZXQoJGNvbmZpZywgYm9yZGVyLXN0eWxlKTtcbiAgJGJvcmRlci13aWR0aDogbWFwLmdldCgkY29uZmlnLCBib3JkZXItd2lkdGgpO1xuICAkYm9yZGVyLXJhZGl1czogbWFwLmdldCgkY29uZmlnLCBib3JkZXItcmFkaXVzKTtcbiAgJGJvcmRlci1jb2xvcjogbWFwLmdldCgkY29uZmlnLCBib3JkZXItY29sb3IpO1xuICAkZGlzcGxheTogbWFwLmdldCgkY29uZmlnLCBkaXNwbGF5KTtcbiAgJG1hcDogKFxuICAgICcjeyRwcmVmaXh9LWZvY3VzLWluZGljYXRvci1ib3JkZXItc3R5bGUnOiAkYm9yZGVyLXN0eWxlLFxuICAgICcjeyRwcmVmaXh9LWZvY3VzLWluZGljYXRvci1ib3JkZXItd2lkdGgnOiAkYm9yZGVyLXdpZHRoLFxuICAgICcjeyRwcmVmaXh9LWZvY3VzLWluZGljYXRvci1ib3JkZXItcmFkaXVzJzogJGJvcmRlci1yYWRpdXMsXG4gICAgJyN7JHByZWZpeH0tZm9jdXMtaW5kaWNhdG9yLWJvcmRlci1jb2xvcic6ICRib3JkZXItY29sb3IsXG4gICAgJyN7JHByZWZpeH0tZm9jdXMtaW5kaWNhdG9yLWRpc3BsYXknOiAkZGlzcGxheSxcbiAgKTtcblxuICBAaWYgKCYpIHtcbiAgICBAaW5jbHVkZSBfb3V0cHV0LXZhcmlhYmxlcygkbWFwKTtcbiAgfVxuICBAZWxzZSB7XG4gICAgLy8gV2UgdXNlIGBodG1sYCBoZXJlIGluc3RlYWQgb2YgYDpyb290YCwgYmVjYXVzZSB0aGVcbiAgICAvLyBsYXR0ZXIgY2F1c2VzIHNvbWUgaXNzdWVzIHdpdGggaW50ZXJuYWwgdG9vbGluZy5cbiAgICBodG1sIHtcbiAgICAgIEBpbmNsdWRlIF9vdXRwdXQtdmFyaWFibGVzKCRtYXApO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gc3Ryb25nLWZvY3VzLWluZGljYXRvcnMoJGNvbmZpZzogKCkpIHtcbiAgLy8gRGVmYXVsdCBmb2N1cyBpbmRpY2F0b3IgY29uZmlnLlxuICAkZGVmYXVsdC1jb25maWc6IChcbiAgICAgIGJvcmRlci1jb2xvcjogYmxhY2ssXG4gICAgICBkaXNwbGF5OiBibG9jayxcbiAgKTtcblxuICAvLyBNZXJnZSBkZWZhdWx0IGNvbmZpZyB3aXRoIHVzZXIgY29uZmlnLlxuICAkY29uZmlnOiBtYXAubWVyZ2UoJGRlZmF1bHQtY29uZmlnLCAkY29uZmlnKTtcblxuICBAaW5jbHVkZSBjdXN0b21pemUtZm9jdXMtaW5kaWNhdG9ycygkY29uZmlnLCAnbWF0Jyk7XG59XG5cbkBtaXhpbiBtZGMtc3Ryb25nLWZvY3VzLWluZGljYXRvcnMoJGNvbmZpZzogKCkpIHtcbiAgLy8gRGVmYXVsdCBmb2N1cyBpbmRpY2F0b3IgY29uZmlnLlxuICAkZGVmYXVsdC1jb25maWc6IChcbiAgICAgIGJvcmRlci1jb2xvcjogYmxhY2ssXG4gICAgICBkaXNwbGF5OiBibG9jayxcbiAgKTtcblxuICAvLyBNZXJnZSBkZWZhdWx0IGNvbmZpZyB3aXRoIHVzZXIgY29uZmlnLlxuICAkY29uZmlnOiBtYXAubWVyZ2UoJGRlZmF1bHQtY29uZmlnLCAkY29uZmlnKTtcblxuICBAaW5jbHVkZSBjdXN0b21pemUtZm9jdXMtaW5kaWNhdG9ycygkY29uZmlnLCAnbWF0LW1kYycpO1xufVxuXG5AbWl4aW4gc3Ryb25nLWZvY3VzLWluZGljYXRvcnMtY29sb3IoJGNvbmZpZy1vci10aGVtZS1vci1jb2xvcikge1xuICBAaWYgbWV0YS50eXBlLW9mKCRjb25maWctb3ItdGhlbWUtb3ItY29sb3IpID09ICdjb2xvcicge1xuICAgIEBpbmNsdWRlIGN1c3RvbWl6ZS1mb2N1cy1pbmRpY2F0b3JzKChcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkY29uZmlnLW9yLXRoZW1lLW9yLWNvbG9yXG4gICAgKSwgJ21hdCcpO1xuICB9XG4gIEBlbHNlIHtcbiAgICAkY29uZmlnOiB0aGVtaW5nLmdldC1jb2xvci1jb25maWcoJGNvbmZpZy1vci10aGVtZS1vci1jb2xvcik7XG4gICAgJGJvcmRlci1jb2xvcjogdGhlbWluZy5nZXQtY29sb3ItZnJvbS1wYWxldHRlKG1hcC5nZXQoJGNvbmZpZywgcHJpbWFyeSkpO1xuICAgIEBpbmNsdWRlIGN1c3RvbWl6ZS1mb2N1cy1pbmRpY2F0b3JzKChcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyLWNvbG9yXG4gICAgKSwgJ21hdCcpO1xuICB9XG59XG5cbkBtaXhpbiBzdHJvbmctZm9jdXMtaW5kaWNhdG9ycy10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnLW9yLWNvbG9yKSB7XG4gIEBpZiBtZXRhLnR5cGUtb2YoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZy1vci1jb2xvcikgPT0gJ2NvbG9yJyB7XG4gICAgQGluY2x1ZGUgY3VzdG9taXplLWZvY3VzLWluZGljYXRvcnMoKFxuICAgICAgICBib3JkZXItY29sb3I6ICR0aGVtZS1vci1jb2xvci1jb25maWctb3ItY29sb3JcbiAgICApLCAnbWF0Jyk7XG4gIH1cbiAgQGVsc2Uge1xuICAgICR0aGVtZTogdGhlbWluZy5wcml2YXRlLWxlZ2FjeS1nZXQtdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZy1vci1jb2xvcik7XG4gICAgQGluY2x1ZGUgdGhlbWluZy5wcml2YXRlLWNoZWNrLWR1cGxpY2F0ZS10aGVtZS1zdHlsZXMoJHRoZW1lLCAnbWF0LWZvY3VzLWluZGljYXRvcnMnKSB7XG4gICAgICAkY29sb3I6IHRoZW1pbmcuZ2V0LWNvbG9yLWNvbmZpZygkdGhlbWUpO1xuICAgICAgQGlmICRjb2xvciAhPSBudWxsIHtcbiAgICAgICAgQGluY2x1ZGUgc3Ryb25nLWZvY3VzLWluZGljYXRvcnMtY29sb3IoJGNvbG9yKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1kYy1zdHJvbmctZm9jdXMtaW5kaWNhdG9ycy1jb2xvcigkY29uZmlnLW9yLXRoZW1lLW9yLWNvbG9yKSB7XG4gIEBpZiBtZXRhLnR5cGUtb2YoJGNvbmZpZy1vci10aGVtZS1vci1jb2xvcikgPT0gJ2NvbG9yJyB7XG4gICAgQGluY2x1ZGUgY3VzdG9taXplLWZvY3VzLWluZGljYXRvcnMoKFxuICAgICAgICBib3JkZXItY29sb3I6ICRjb25maWctb3ItdGhlbWUtb3ItY29sb3JcbiAgICApLCAnbWF0LW1kYycpO1xuICB9XG4gIEBlbHNlIHtcbiAgICAkY29uZmlnOiB0aGVtaW5nLmdldC1jb2xvci1jb25maWcoJGNvbmZpZy1vci10aGVtZS1vci1jb2xvcik7XG4gICAgJGJvcmRlci1jb2xvcjogdGhlbWluZy5nZXQtY29sb3ItZnJvbS1wYWxldHRlKG1hcC5nZXQoJGNvbmZpZywgcHJpbWFyeSkpO1xuICAgIEBpbmNsdWRlIGN1c3RvbWl6ZS1mb2N1cy1pbmRpY2F0b3JzKChcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyLWNvbG9yXG4gICAgKSwgJ21hdC1tZGMnKTtcbiAgfVxufVxuXG5AbWl4aW4gbWRjLXN0cm9uZy1mb2N1cy1pbmRpY2F0b3JzLXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWctb3ItY29sb3IpIHtcbiAgQGlmIG1ldGEudHlwZS1vZigkdGhlbWUtb3ItY29sb3ItY29uZmlnLW9yLWNvbG9yKSA9PSAnY29sb3InIHtcbiAgICBAaW5jbHVkZSBjdXN0b21pemUtZm9jdXMtaW5kaWNhdG9ycygoXG4gICAgICAgIGJvcmRlci1jb2xvcjogJHRoZW1lLW9yLWNvbG9yLWNvbmZpZy1vci1jb2xvclxuICAgICksICdtYXQtbWRjJyk7XG4gIH1cbiAgQGVsc2Uge1xuICAgICR0aGVtZTogdGhlbWluZy5wcml2YXRlLWxlZ2FjeS1nZXQtdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZy1vci1jb2xvcik7XG4gICAgQGluY2x1ZGUgdGhlbWluZy5wcml2YXRlLWNoZWNrLWR1cGxpY2F0ZS10aGVtZS1zdHlsZXMoJHRoZW1lLCAnbWF0LW1kYy1mb2N1cy1pbmRpY2F0b3JzJykge1xuICAgICAgJGNvbG9yOiB0aGVtaW5nLmdldC1jb2xvci1jb25maWcoJHRoZW1lKTtcbiAgICAgIEBpZiAkY29sb3IgIT0gbnVsbCB7XG4gICAgICAgIEBpbmNsdWRlIG1kYy1zdHJvbmctZm9jdXMtaW5kaWNhdG9ycy1jb2xvcigkY29sb3IpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gVGhpcyBtaXhpbiBlbnN1cmVzIGFuIGVsZW1lbnQgc3BhbnMgdG8gZmlsbCB0aGUgbmVhcmVzdCBhbmNlc3RvciB3aXRoIGRlZmluZWQgcG9zaXRpb25pbmcuXG5AbWl4aW4gZmlsbCB7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xufVxuIiwiQHVzZSAnc2FzczptYXAnO1xuQHVzZSAnc2FzczptZXRhJztcbkB1c2UgJy4uL3RoZW1pbmcvdGhlbWluZyc7XG5cbi8vIENvbG9ycyBmb3IgdGhlIHJpcHBsZSBlbGVtZW50cy5cbkBtaXhpbiBjb2xvcigkY29uZmlnLW9yLXRoZW1lKSB7XG4gICRjb25maWc6IHRoZW1pbmcuZ2V0LWNvbG9yLWNvbmZpZygkY29uZmlnLW9yLXRoZW1lKTtcbiAgJGZvcmVncm91bmQ6IG1hcC5nZXQoJGNvbmZpZywgZm9yZWdyb3VuZCk7XG4gICRmb3JlZ3JvdW5kLWJhc2U6IG1hcC5nZXQoJGZvcmVncm91bmQsIGJhc2UpO1xuICAkY29sb3Itb3BhY2l0eTogMC4xO1xuXG4gIC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICAgIC8vIElmIHRoZSByaXBwbGUgY29sb3IgaXMgcmVzb2x2ZXMgdG8gYSBjb2xvciAqdHlwZSosIHdlIGNhbiB1c2UgaXQgZGlyZWN0bHksIG90aGVyd2lzZVxuICAgIC8vIChlLmcuIGl0IHJlc29sdmVzIHRvIGEgQ1NTIHZhcmlhYmxlKSB3ZSBmYWxsIGJhY2sgdG8gdXNpbmcgdGhlIGNvbG9yIGFuZCBzZXR0aW5nIGFuIG9wYWNpdHkuXG4gICAgQGlmIChtZXRhLnR5cGUtb2YoJGZvcmVncm91bmQtYmFzZSkgPT0gY29sb3IpIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJGZvcmVncm91bmQtYmFzZSwgJGNvbG9yLW9wYWNpdHkpO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZm9yZWdyb3VuZC1iYXNlO1xuICAgICAgb3BhY2l0eTogJGNvbG9yLW9wYWNpdHk7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiB0aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKSB7XG4gICR0aGVtZTogdGhlbWluZy5wcml2YXRlLWxlZ2FjeS1nZXQtdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZyk7XG4gIEBpbmNsdWRlIHRoZW1pbmcucHJpdmF0ZS1jaGVjay1kdXBsaWNhdGUtdGhlbWUtc3R5bGVzKCR0aGVtZSwgJ21hdC1yaXBwbGUnKSB7XG4gICAgJGNvbG9yOiB0aGVtaW5nLmdldC1jb2xvci1jb25maWcoJHRoZW1lKTtcbiAgICBAaWYgJGNvbG9yICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgY29sb3IoJGNvbG9yKTtcbiAgICB9XG4gIH1cbn1cbiIsIkB1c2UgJ0BtYXRlcmlhbC90aGVtZS90aGVtZS1jb2xvcicgYXMgbWRjLXRoZW1lLWNvbG9yO1xuQHVzZSAnQG1hdGVyaWFsL3RoZW1lL3RoZW1lJyBhcyBtZGMtdGhlbWU7XG5AdXNlICdAbWF0ZXJpYWwvbGlzdC9ldm9sdXRpb24tbWl4aW5zJyBhcyBtZGMtbGlzdC1taXhpbnM7XG5AdXNlICdAbWF0ZXJpYWwvdHlwb2dyYXBoeScgYXMgbWRjLXR5cG9ncmFwaHk7XG5AdXNlICdAbWF0ZXJpYWwvcmlwcGxlJyBhcyBtZGMtcmlwcGxlO1xuXG5AdXNlICcuLi90aGVtaW5nL3RoZW1pbmcnO1xuQHVzZSAnLi4vdHlwb2dyYXBoeS90eXBvZ3JhcGh5JztcbkB1c2UgJy4uL21kYy1oZWxwZXJzL21kYy1oZWxwZXJzJztcblxuQG1peGluIGNvbG9yKCRjb25maWctb3ItdGhlbWUpIHtcbiAgJGNvbmZpZzogdGhlbWluZy5nZXQtY29sb3ItY29uZmlnKCRjb25maWctb3ItdGhlbWUpO1xuXG4gIEBpbmNsdWRlIG1kYy1oZWxwZXJzLnVzaW5nLW1kYy10aGVtZSgkY29uZmlnKSB7XG4gICAgLm1hdC1tZGMtb3B0aW9uIHtcbiAgICAgIC8vIFNpbmNlIHRoaXMgd2lsbCB1c3VhbGx5IGJlIHJlbmRlcmVkIGluIGFuIG92ZXJsYXksXG4gICAgICAvLyB3ZSBoYXZlIGV4cGxpY2l0bHkgc2V0IHRoZSBkZWZhdWx0IGNvbG9yLlxuICAgICAgQGluY2x1ZGUgbWRjLXRoZW1lLnByb3AoY29sb3IsIHRleHQtcHJpbWFyeS1vbi1iYWNrZ3JvdW5kKTtcblxuICAgICAgJjpob3Zlcjpub3QoLm1kYy1saXN0LWl0ZW0tLWRpc2FibGVkKSxcbiAgICAgICY6Zm9jdXM6bm90KC5tZGMtbGlzdC1pdGVtLS1kaXNhYmxlZCksXG4gICAgICAmLm1hdC1tZGMtb3B0aW9uLWFjdGl2ZSxcblxuICAgICAgLy8gSW4gbXVsdGlwbGUgbW9kZSB0aGVyZSBpcyBhIGNoZWNrYm94IHRvIHNob3cgdGhhdCB0aGUgb3B0aW9uIGlzIHNlbGVjdGVkLlxuICAgICAgJi5tZGMtbGlzdC1pdGVtLS1zZWxlY3RlZDpub3QoLm1hdC1tZGMtb3B0aW9uLW11bHRpcGxlKTpub3QoLm1kYy1saXN0LWl0ZW0tLWRpc2FibGVkKSB7XG4gICAgICAgICRjb2xvcjogbWRjLXRoZW1lLWNvbG9yLiRvbi1zdXJmYWNlO1xuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKCRjb2xvciwgbWRjLXJpcHBsZS5zdGF0ZXMtb3BhY2l0eSgkY29sb3IsIGhvdmVyKSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLm1hdC1wcmltYXJ5IHtcbiAgICAgIC5tYXQtbWRjLW9wdGlvbi5tZGMtbGlzdC1pdGVtLS1zZWxlY3RlZDpub3QoLm1kYy1saXN0LWl0ZW0tLWRpc2FibGVkKSB7XG4gICAgICAgIEBpbmNsdWRlIG1kYy1saXN0LW1peGlucy5saXN0LXByaW1hcnktdGV4dC1pbmstY29sb3IocHJpbWFyeSxcbiAgICAgICAgICAkcXVlcnk6IG1kYy1oZWxwZXJzLiRtZGMtdGhlbWUtc3R5bGVzLXF1ZXJ5KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAubWF0LWFjY2VudCB7XG4gICAgICAubWF0LW1kYy1vcHRpb24ubWRjLWxpc3QtaXRlbS0tc2VsZWN0ZWQ6bm90KC5tZGMtbGlzdC1pdGVtLS1kaXNhYmxlZCkge1xuICAgICAgICBAaW5jbHVkZSBtZGMtbGlzdC1taXhpbnMubGlzdC1wcmltYXJ5LXRleHQtaW5rLWNvbG9yKHNlY29uZGFyeSxcbiAgICAgICAgICAkcXVlcnk6IG1kYy1oZWxwZXJzLiRtZGMtdGhlbWUtc3R5bGVzLXF1ZXJ5KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAubWF0LXdhcm4ge1xuICAgICAgLm1hdC1tZGMtb3B0aW9uLm1kYy1saXN0LWl0ZW0tLXNlbGVjdGVkOm5vdCgubWRjLWxpc3QtaXRlbS0tZGlzYWJsZWQpIHtcbiAgICAgICAgQGluY2x1ZGUgbWRjLWxpc3QtbWl4aW5zLmxpc3QtcHJpbWFyeS10ZXh0LWluay1jb2xvcihlcnJvcixcbiAgICAgICAgICAkcXVlcnk6IG1kYy1oZWxwZXJzLiRtZGMtdGhlbWUtc3R5bGVzLXF1ZXJ5KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuQG1peGluIHR5cG9ncmFwaHkoJGNvbmZpZy1vci10aGVtZSkge1xuICAkY29uZmlnOiB0eXBvZ3JhcGh5LnByaXZhdGUtdHlwb2dyYXBoeS10by0yMDE4LWNvbmZpZyhcbiAgICAgIHRoZW1pbmcuZ2V0LXR5cG9ncmFwaHktY29uZmlnKCRjb25maWctb3ItdGhlbWUpKTtcblxuICBAaW5jbHVkZSBtZGMtaGVscGVycy51c2luZy1tZGMtdHlwb2dyYXBoeSgkY29uZmlnKSB7XG4gICAgLy8gTURDIHVzZXMgdGhlIGBzdWJ0aXRsZTFgIGxldmVsIGZvciBsaXN0IGl0ZW1zLCBidXRcbiAgICAvLyB0aGUgc3BlYyBzaG93cyBgYm9keTFgIGFzIHRoZSBjb3JyZWN0IGxldmVsLlxuICAgIC5tYXQtbWRjLW9wdGlvbiB7XG4gICAgICBAaW5jbHVkZSBtZGMtdHlwb2dyYXBoeS50eXBvZ3JhcGh5KGJvZHkxLFxuICAgICAgICAkcXVlcnk6IG1kYy1oZWxwZXJzLiRtZGMtdHlwb2dyYXBoeS1zdHlsZXMtcXVlcnksXG4gICAgICAgIC8vIEV4Y2x1ZGUgdGhlc2UgcHJvcGVydGllcywgYmVjYXVzZSB0aGV5IGNhdXNlIHNvbWUgYnVpbGRcbiAgICAgICAgLy8gaXNzdWVzIGludGVybmFsbHkgYW5kIHRoZXkgYXJlbid0IHVzZWQgZm9yIGFueXRoaW5nLlxuICAgICAgICAkZXhjbHVkZS1wcm9wczogKHRleHQtZGVjb3JhdGlvbiwgdGV4dC10cmFuc2Zvcm0pXG4gICAgICApO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gZGVuc2l0eSgkY29uZmlnLW9yLXRoZW1lKSB7XG4gICRkZW5zaXR5LXNjYWxlOiB0aGVtaW5nLmdldC1kZW5zaXR5LWNvbmZpZygkY29uZmlnLW9yLXRoZW1lKTtcbn1cblxuQG1peGluIHRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpIHtcbiAgJHRoZW1lOiB0aGVtaW5nLnByaXZhdGUtbGVnYWN5LWdldC10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKTtcbiAgQGluY2x1ZGUgdGhlbWluZy5wcml2YXRlLWNoZWNrLWR1cGxpY2F0ZS10aGVtZS1zdHlsZXMoJHRoZW1lLCAnbWF0LW9wdGlvbicpIHtcbiAgICAkY29sb3I6IHRoZW1pbmcuZ2V0LWNvbG9yLWNvbmZpZygkdGhlbWUpO1xuICAgICRkZW5zaXR5OiB0aGVtaW5nLmdldC1kZW5zaXR5LWNvbmZpZygkdGhlbWUpO1xuICAgICR0eXBvZ3JhcGh5OiB0aGVtaW5nLmdldC10eXBvZ3JhcGh5LWNvbmZpZygkdGhlbWUpO1xuXG4gICAgQGlmICRjb2xvciAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIGNvbG9yKCRjb2xvcik7XG4gICAgfVxuICAgIEBpZiAkZGVuc2l0eSAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIGRlbnNpdHkoJGRlbnNpdHkpO1xuICAgIH1cbiAgICBAaWYgJHR5cG9ncmFwaHkgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSB0eXBvZ3JhcGh5KCR0eXBvZ3JhcGh5KTtcbiAgICB9XG4gIH1cbn1cbiIsIi8vXG4vLyBDb3B5cmlnaHQgMjAyMCBHb29nbGUgSW5jLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG4vL1xuXG5AdXNlICdzYXNzOmxpc3QnO1xuQHVzZSAnc2FzczptYXAnO1xuQHVzZSAnc2FzczptZXRhJztcbkB1c2UgJy4vZ3NzJztcblxuLy8vIFdoZW4gdHJ1ZSwgYWRkIGFuIGFkZGl0aW9uYWwgcHJvcGVydHkvdmFsdWUgZGVjbGFyYXRpb24gYmVmb3JlIGRlY2xhcmF0aW9uc1xuLy8vIHRoYXQgdXNlIGFkdmFuY2VkIGZlYXR1cmVzIHN1Y2ggYXMgY3VzdG9tIHByb3BlcnRpZXMgb3IgQ1NTIGZ1bmN0aW9ucy4gVGhpc1xuLy8vIGFkZHMgZmFsbGJhY2sgc3VwcG9ydCBmb3Igb2xkZXIgYnJvd3NlcnMgc3VjaCBhcyBJRTExIHRoYXQgZG8gbm90IHN1cHBvcnRcbi8vLyB0aGVzZSBmZWF0dXJlcyBhdCB0aGUgY29zdCBvZiBhZGRpdGlvbmFsIENTUy4gU2V0IHRoaXMgdmFyaWFibGUgdG8gZmFsc2UgdG9cbi8vLyBkaXNhYmxlIGdlbmVyYXRpbmcgZmFsbGJhY2sgZGVjbGFyYXRpb25zLlxuJGVuYWJsZS1mYWxsYmFjay1kZWNsYXJhdGlvbnM6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBXcml0ZXMgYSBDU1MgcHJvcGVydHkvdmFsdWUgZGVjbGFyYXRpb24uIFRoaXMgbWl4aW4gaXMgdXNlZCB0aHJvdWdob3V0IHRoZVxuLy8vIHRoZW1lIHBhY2thZ2UgZm9yIGNvbnNpc3RlbmN5IGZvciBkeW5hbWljYWxseSBzZXR0aW5nIENTUyBwcm9wZXJ0eSB2YWx1ZXMuXG4vLy9cbi8vLyBUaGlzIG1peGluIG1heSBvcHRpb25hbGx5IHRha2UgYSBmYWxsYmFjayB2YWx1ZS4gRm9yIGFkdmFuY2VkIGZlYXR1cmVzIHN1Y2hcbi8vLyBhcyBjdXN0b20gcHJvcGVydGllcyBvciBDU1MgZnVuY3Rpb25zIGxpa2UgbWluIGFuZCBtYXgsIGEgZmFsbGJhY2sgdmFsdWUgaXNcbi8vLyByZWNvbW1lbmRlZCB0byBzdXBwb3J0IG9sZGVyIGJyb3dzZXJzLlxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRwcm9wZXJ0eSAtIFRoZSBDU1MgcHJvcGVydHkgb2YgdGhlIGRlY2xhcmF0aW9uLlxuLy8vIEBwYXJhbSB7Kn0gJHZhbHVlIC0gVGhlIHZhbHVlIG9mIHRoZSBDU1MgZGVjbGFyYXRpb24uIFRoZSB2YWx1ZSBzaG91bGQgYmVcbi8vLyAgICAgcmVzb2x2ZWQgYnkgb3RoZXIgdGhlbWUgZnVuY3Rpb25zIGZpcnN0IChpLmUuIGN1c3RvbSBwcm9wZXJ0eSBNYXBzIGFuZFxuLy8vICAgICBNYXRlcmlhbCB0aGVtZSBrZXlzIGFyZSBub3Qgc3VwcG9ydGVkIGluIHRoaXMgbWl4aW4pLiBJZiB0aGUgdmFsdWUgaXNcbi8vLyAgICAgbnVsbCwgbm8gZGVjbGFyYXRpb25zIHdpbGwgYmUgZW1pdHRlZC5cbi8vLyBAcGFyYW0geyp9ICRmYWxsYmFjayAtIEFuIG9wdGlvbmFsIGZhbGxiYWNrIHZhbHVlIGZvciBvbGRlciBicm93c2Vycy4gSWZcbi8vLyAgICAgcHJvdmlkZWQsIGEgc2Vjb25kIHByb3BlcnR5L3ZhbHVlIGRlY2xhcmF0aW9uIHdpbGwgYmUgYWRkZWQgYmVmb3JlIHRoZVxuLy8vICAgICBtYWluIHByb3BlcnR5L3ZhbHVlIGRlY2xhcmF0aW9uLlxuLy8vIEBwYXJhbSB7TWFwfSAkZ3NzIC0gQW4gb3B0aW9uYWwgTWFwIG9mIEdTUyBhbm5vdGF0aW9ucyB0byBhZGQuXG4vLy8gQHBhcmFtIHtCb29sfSAkaW1wb3J0YW50IC0gSWYgdHJ1ZSwgYWRkIGAhaW1wb3J0YW50YCB0byB0aGUgZGVjbGFyYXRpb24uXG5AbWl4aW4gZGVjbGFyYXRpb24oXG4gICRwcm9wZXJ0eSxcbiAgJHZhbHVlLFxuICAkZmFsbGJhY2stdmFsdWU6IG51bGwsXG4gICRnc3M6ICgpLFxuICAkaW1wb3J0YW50OiBmYWxzZVxuKSB7XG4gIC8vIE5vcm1hbGx5IHNldHRpbmcgYSBudWxsIHZhbHVlIHRvIGEgcHJvcGVydHkgd2lsbCBub3QgZW1pdCBDU1MsIHNvIG1peGluc1xuICAvLyB3b3VsZG4ndCBuZWVkIHRvIGNoZWNrIHRoaXMuIEhvd2V2ZXIsIFNhc3Mgd2lsbCB0aHJvdyBhbiBlcnJvciBpZiB0aGVcbiAgLy8gaW50ZXJwb2xhdGVkIHByb3BlcnR5IGlzIGEgY3VzdG9tIHByb3BlcnR5LlxuICBAaWYgJHZhbHVlICE9IG51bGwge1xuICAgICRpbXBvcnRhbnQtcnVsZTogaWYoJGltcG9ydGFudCwgJyAhaW1wb3J0YW50JywgJycpO1xuXG4gICAgQGlmICRmYWxsYmFjay12YWx1ZSBhbmQgJGVuYWJsZS1mYWxsYmFjay1kZWNsYXJhdGlvbnMge1xuICAgICAgQGluY2x1ZGUgZ3NzLmFubm90YXRlKCRnc3MpO1xuICAgICAgI3skcHJvcGVydHl9OiAjeyRmYWxsYmFjay12YWx1ZX0gI3skaW1wb3J0YW50LXJ1bGV9O1xuXG4gICAgICAvLyBBZGQgQGFsdGVybmF0ZSB0byBhbm5vdGF0aW9ucy5cbiAgICAgICRnc3M6IG1hcC5tZXJnZShcbiAgICAgICAgJGdzcyxcbiAgICAgICAgKFxuICAgICAgICAgIGFsdGVybmF0ZTogdHJ1ZSxcbiAgICAgICAgKVxuICAgICAgKTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBnc3MuYW5ub3RhdGUoJGdzcyk7XG4gICAgI3skcHJvcGVydHl9OiAjeyR2YWx1ZX0jeyRpbXBvcnRhbnQtcnVsZX07XG4gIH1cbn1cblxuLy8vIFVucGFja3Mgc2hvcnRoYW5kIHZhbHVlcyBmb3IgQ1NTIHByb3BlcnRpZXMgKGkuZS4gbGlzdHMgb2YgMS0zIHZhbHVlcykuXG4vLy8gSWYgYSBsaXN0IG9mIDQgdmFsdWVzIGlzIGdpdmVuLCBpdCBpcyByZXR1cm5lZCBhcy1pcy5cbi8vL1xuLy8vIEV4YW1wbGVzOlxuLy8vXG4vLy8gdW5wYWNrLXZhbHVlKDRweCkgPT4gNHB4IDRweCA0cHggNHB4XG4vLy8gdW5wYWNrLXZhbHVlKDRweCAycHgpID0+IDRweCAycHggNHB4IDJweFxuLy8vIHVucGFjay12YWx1ZSg0cHggMnB4IDJweCkgPT4gNHB4IDJweCAycHggMnB4XG4vLy8gdW5wYWNrLXZhbHVlKDRweCAycHggMCAycHgpID0+IDRweCAycHggMCAycHhcbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyIHwgTWFwIHwgTGlzdH0gJHZhbHVlIC0gTGlzdCBvZiAxIHRvIDQgdmFsdWUgbnVtYmVycy5cbi8vLyBAcmV0dXJuIHtMaXN0fSBhIExpc3Qgb2YgNCB2YWx1ZSBudW1iZXJzLlxuQGZ1bmN0aW9uIHVucGFjay12YWx1ZSgkdmFsdWUpIHtcbiAgQGlmIG1ldGEudHlwZS1vZigkdmFsdWUpID09ICdtYXAnIG9yIGxpc3QubGVuZ3RoKCR2YWx1ZSkgPT0gMSB7XG4gICAgQHJldHVybiAkdmFsdWUgJHZhbHVlICR2YWx1ZSAkdmFsdWU7XG4gIH0gQGVsc2UgaWYgbGlzdC5sZW5ndGgoJHZhbHVlKSA9PSA0IHtcbiAgICBAcmV0dXJuICR2YWx1ZTtcbiAgfSBAZWxzZSBpZiBsaXN0Lmxlbmd0aCgkdmFsdWUpID09IDMge1xuICAgIEByZXR1cm4gbGlzdC5udGgoJHZhbHVlLCAxKSBsaXN0Lm50aCgkdmFsdWUsIDIpIGxpc3QubnRoKCR2YWx1ZSwgMylcbiAgICAgIGxpc3QubnRoKCR2YWx1ZSwgMik7XG4gIH0gQGVsc2UgaWYgbGlzdC5sZW5ndGgoJHZhbHVlKSA9PSAyIHtcbiAgICBAcmV0dXJuIGxpc3QubnRoKCR2YWx1ZSwgMSkgbGlzdC5udGgoJHZhbHVlLCAyKSBsaXN0Lm50aCgkdmFsdWUsIDEpXG4gICAgICBsaXN0Lm50aCgkdmFsdWUsIDIpO1xuICB9XG5cbiAgQGVycm9yIFwiSW52YWxpZCBDU1MgcHJvcGVydHkgdmFsdWU6ICcjeyR2YWx1ZX0nIGlzIG1vcmUgdGhhbiA0IHZhbHVlc1wiO1xufVxuIiwiLy8gU2VsZWN0b3IgJy5tZGMtKicgc2hvdWxkIG9ubHkgYmUgdXNlZCBpbiB0aGlzIHByb2plY3QuXG4vLyBzdHlsZWxpbnQtZGlzYWJsZSBzZWxlY3Rvci1jbGFzcy1wYXR0ZXJuIC0tXG4vLyBOT1RFOiB0aGlzIGlzIHRoZSBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgYWZvcmVtZW50aW9uZWQgY2xhc3Nlcy5cblxuQHVzZSAnc2FzczptYXRoJztcbkB1c2UgJ3Nhc3M6bGlzdCc7XG5AdXNlICdzYXNzOm1hcCc7XG5AdXNlICdAbWF0ZXJpYWwvdGhlbWUvdGhlbWUnO1xuQHVzZSAnQG1hdGVyaWFsL3JpcHBsZS9yaXBwbGUnO1xuQHVzZSAnQG1hdGVyaWFsL3JpcHBsZS9yaXBwbGUtdGhlbWUnO1xuQHVzZSAnQG1hdGVyaWFsL3J0bC9ydGwnO1xuQHVzZSAnQG1hdGVyaWFsL2RlbnNpdHkvZnVuY3Rpb25zJyBhcyBkZW5zaXR5LWZ1bmN0aW9ucztcbkB1c2UgJ0BtYXRlcmlhbC9kb20vbWl4aW5zJyBhcyBkb20tbWl4aW5zO1xuQHVzZSAnQG1hdGVyaWFsL3NoYXBlL21peGlucycgYXMgc2hhcGUtbWl4aW5zO1xuQHVzZSAnQG1hdGVyaWFsL3R5cG9ncmFwaHkvdHlwb2dyYXBoeSc7XG5AdXNlICdAbWF0ZXJpYWwvZmVhdHVyZS10YXJnZXRpbmcvZmVhdHVyZS10YXJnZXRpbmcnO1xuQHVzZSAnQG1hdGVyaWFsL3RoZW1lL3RoZW1lLWNvbG9yJztcbkB1c2UgJy4vZXZvbHV0aW9uLXZhcmlhYmxlcycgYXMgdmFyaWFibGVzO1xuXG4kcmlwcGxlLXRhcmdldDogdmFyaWFibGVzLiRyaXBwbGUtdGFyZ2V0O1xuXG5AbWl4aW4gY29yZS1zdHlsZXMoJHF1ZXJ5OiBmZWF0dXJlLXRhcmdldGluZy5hbGwoKSkge1xuICBAaW5jbHVkZSB3aXRob3V0LXJpcHBsZSgkcXVlcnkpO1xuICBAaW5jbHVkZSB3aXRoLXJpcHBsZSgkcXVlcnkpO1xufVxuXG5AbWl4aW4gd2l0aG91dC1yaXBwbGUoJHF1ZXJ5OiBmZWF0dXJlLXRhcmdldGluZy5hbGwoKSkge1xuICAkZmVhdC1jb2xvcjogZmVhdHVyZS10YXJnZXRpbmcuY3JlYXRlLXRhcmdldCgkcXVlcnksIGNvbG9yKTtcbiAgJGZlYXQtc3RydWN0dXJlOiBmZWF0dXJlLXRhcmdldGluZy5jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgc3RydWN0dXJlKTtcbiAgJGZlYXQtdHlwb2dyYXBoeTogZmVhdHVyZS10YXJnZXRpbmcuY3JlYXRlLXRhcmdldCgkcXVlcnksIHR5cG9ncmFwaHkpO1xuXG4gIC8vXG4gIC8vIEl0ZW1zXG4gIC8vXG5cbiAgQGluY2x1ZGUgbGlzdC1wcmltYXJ5LXRleHQtaW5rLWNvbG9yKHRleHQtcHJpbWFyeS1vbi1iYWNrZ3JvdW5kLCAkcXVlcnkpO1xuICBAaW5jbHVkZSBsaXN0LXNlY29uZGFyeS10ZXh0LWluay1jb2xvcih0ZXh0LXNlY29uZGFyeS1vbi1iYWNrZ3JvdW5kLCAkcXVlcnkpO1xuICBAaW5jbHVkZSBsaXN0LW92ZXJsaW5lLXRleHQtaW5rLWNvbG9yKHRleHQtaGludC1vbi1iYWNrZ3JvdW5kLCAkcXVlcnkpO1xuICBAaW5jbHVkZSBsaXN0LWljb24tZmlsbC1jb2xvcih0cmFuc3BhcmVudCwgJHF1ZXJ5KTtcbiAgQGluY2x1ZGUgbGlzdC1pY29uLWluay1jb2xvcih0ZXh0LWljb24tb24tYmFja2dyb3VuZCwgJHF1ZXJ5KTtcbiAgQGluY2x1ZGUgbGlzdC1tZXRhLXRleHQtaW5rLWNvbG9yKHRleHQtaGludC1vbi1iYWNrZ3JvdW5kLCAkcXVlcnkpO1xuICBAaW5jbHVkZSBsaXN0LWRpc2FibGVkLW9wYWNpdHkodmFyaWFibGVzLiRjb250ZW50LWRpc2FibGVkLW9wYWNpdHksICRxdWVyeSk7XG4gIEBpbmNsdWRlIGxpc3QtZGlzYWJsZWQtaW5rLWNvbG9yKHZhcmlhYmxlcy4kY29udGVudC1kaXNhYmxlZC1jb2xvciwgJHF1ZXJ5KTtcbiAgQGluY2x1ZGUgbGlzdC1zZWxlY3RlZC1pbmstY29sb3IodmFyaWFibGVzLiRjb250ZW50LXNlbGVjdGVkLWNvbG9yLCAkcXVlcnkpO1xuXG4gIEBpbmNsdWRlIGdyb3VwLXN1YmhlYWRlci1pbmstY29sb3IodGV4dC1wcmltYXJ5LW9uLWJhY2tncm91bmQsICRxdWVyeSk7XG5cbiAgQGluY2x1ZGUgX2hpZ2gtY29udHJhc3QtbW9kZSgkcXVlcnkpO1xuXG4gIC5tZGMtbGlzdCB7XG4gICAgQGluY2x1ZGUgbGlzdC1iYXNlKCRxdWVyeTogJHF1ZXJ5KTtcbiAgfVxuXG4gIC5tZGMtbGlzdC1pdGVtX193cmFwcGVyIHtcbiAgICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy50YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuICB9XG5cbiAgLm1kYy1saXN0LWl0ZW0ge1xuICAgIEBpbmNsdWRlIGl0ZW0tYmFzZSgkcXVlcnk6ICRxdWVyeSk7XG5cbiAgICBAaW5jbHVkZSBfb25lLWxpbmUtaXRlbS1kZW5zaXR5KFxuICAgICAgdmFyaWFibGVzLiRvbmUtbGluZS1pdGVtLWRlbnNpdHktc2NhbGUsXG4gICAgICAkcXVlcnk6ICRxdWVyeVxuICAgICk7XG4gICAgQGluY2x1ZGUgX3R3by1saW5lLWl0ZW0tZGVuc2l0eShcbiAgICAgIHZhcmlhYmxlcy4kdHdvLWxpbmUtaXRlbS1kZW5zaXR5LXNjYWxlLFxuICAgICAgJHF1ZXJ5OiAkcXVlcnlcbiAgICApO1xuICAgIEBpbmNsdWRlIF90aHJlZS1saW5lLWl0ZW0tZGVuc2l0eShcbiAgICAgIHZhcmlhYmxlcy4kdGhyZWUtbGluZS1pdGVtLWRlbnNpdHktc2NhbGUsXG4gICAgICAkcXVlcnk6ICRxdWVyeVxuICAgICk7XG5cbiAgICBAaW5jbHVkZSBvbmUtbGluZS1pdGVtLXN0YXJ0LWFsaWdubWVudChjZW50ZXIsICRxdWVyeTogJHF1ZXJ5KTtcbiAgICBAaW5jbHVkZSB0d28tbGluZS1pdGVtLXN0YXJ0LWFsaWdubWVudChcbiAgICAgICRhbGlnbm1lbnQ6IGZsZXgtc3RhcnQsXG4gICAgICAkb2Zmc2V0OiAxNnB4LFxuICAgICAgJHF1ZXJ5OiAkcXVlcnlcbiAgICApO1xuICAgIEBpbmNsdWRlIHRocmVlLWxpbmUtaXRlbS1zdGFydC1hbGlnbm1lbnQoXG4gICAgICAkYWxpZ25tZW50OiBmbGV4LXN0YXJ0LFxuICAgICAgJG9mZnNldDogMTZweCxcbiAgICAgICRxdWVyeTogJHF1ZXJ5XG4gICAgKTtcblxuICAgIEBpbmNsdWRlIG9uZS1saW5lLWl0ZW0tZW5kLWFsaWdubWVudChjZW50ZXIsICRxdWVyeTogJHF1ZXJ5KTtcbiAgICBAaW5jbHVkZSB0d28tbGluZS1pdGVtLWVuZC1hbGlnbm1lbnQoY2VudGVyLCAkcXVlcnk6ICRxdWVyeSk7XG4gICAgQGluY2x1ZGUgdGhyZWUtbGluZS1pdGVtLWVuZC1hbGlnbm1lbnQoXG4gICAgICAkYWxpZ25tZW50OiBmbGV4LXN0YXJ0LFxuICAgICAgJG9mZnNldDogMTZweCxcbiAgICAgICRxdWVyeTogJHF1ZXJ5XG4gICAgKTtcblxuICAgIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLnRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB9XG5cbiAgICAvLyBSZXNldCBtb3VzZSBjdXJzb3IgZm9yIGRpc2FibGVkIGFuZCBub24taW50ZXJhY3RpdmUgaXRlbXMuXG4gICAgJi5tZGMtbGlzdC1pdGVtLS1kaXNhYmxlZCxcbiAgICAmLm1kYy1saXN0LWl0ZW0tLW5vbi1pbnRlcmFjdGl2ZSB7XG4gICAgICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy50YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgICBjdXJzb3I6IGF1dG87XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gRm9yIGNvbXBvbmVudHMgdXNpbmcgYXJpYS1hY3RpdmVkZXNjZW5kYW50LCB0aGUgZm9jdXMgcHNldWRvY2xhc3MgaXNcbiAgICAvLyBuZXZlciBhcHBsaWVkIGFuZCB1c2UgYC5tZGMtcmlwcGxlLXVwZ3JhZGVkLS1iYWNrZ3JvdW5kLWZvY3VzZWRgIGluc3RlYWQuXG4gICAgJjpub3QoLm1kYy1saXN0LWl0ZW0tLXNlbGVjdGVkKTpmb2N1czo6YmVmb3JlLCAvLyBsaW50LWRpc2FibGUtZm9jdXMtcHN1ZWRvLXNlbGVjdG9yXG4gICAgJi5tZGMtcmlwcGxlLXVwZ3JhZGVkLS1iYWNrZ3JvdW5kLWZvY3VzZWQ6OmJlZm9yZSB7XG4gICAgICBAaW5jbHVkZSBkb20tbWl4aW5zLnRyYW5zcGFyZW50LWJvcmRlcigkcXVlcnk6ICRxdWVyeSk7XG4gICAgfVxuXG4gICAgJi5tZGMtbGlzdC1pdGVtLS1zZWxlY3RlZDo6YmVmb3JlIHtcbiAgICAgIEBpbmNsdWRlIGRvbS1taXhpbnMudHJhbnNwYXJlbnQtYm9yZGVyKFxuICAgICAgICAkYm9yZGVyLXdpZHRoOiAzcHgsXG4gICAgICAgICRib3JkZXItc3R5bGU6IGRvdWJsZSxcbiAgICAgICAgJHF1ZXJ5OiAkcXVlcnlcbiAgICAgICk7XG4gICAgfVxuXG4gICAgLy8gbGludC1kaXNhYmxlLWZvY3VzLXBzdWVkby1zZWxlY3RvclxuICAgICYubWRjLWxpc3QtaXRlbS0tc2VsZWN0ZWQ6Zm9jdXM6OmJlZm9yZSB7XG4gICAgICBAaW5jbHVkZSBkb20tbWl4aW5zLnRyYW5zcGFyZW50LWJvcmRlcihcbiAgICAgICAgJGJvcmRlci13aWR0aDogM3B4LFxuICAgICAgICAkcXVlcnk6ICRxdWVyeVxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICAvLyBPdmVycmlkZSBhbmNob3IgdGFnIHN0eWxlcyBmb3IgdGhlIHVzZS1jYXNlIG9mIGEgbGlzdCBiZWluZyB1c2VkIGZvciBuYXZpZ2F0aW9uXG4gIC8vIHN0eWxlbGludC1kaXNhYmxlIHNlbGVjdG9yLW1heC10eXBlLHNlbGVjdG9yLW5vLXF1YWxpZnlpbmctdHlwZVxuICBhLm1kYy1saXN0LWl0ZW0ge1xuICAgIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLnRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICBjb2xvcjogaW5oZXJpdDtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICB9XG4gIH1cbiAgLy8gc3R5bGVsaW50LWVuYWJsZSBzZWxlY3Rvci1tYXgtdHlwZSxzZWxlY3Rvci1uby1xdWFsaWZ5aW5nLXR5cGVcblxuICAubWRjLWxpc3QtaXRlbV9fc3RhcnQge1xuICAgIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLnRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICBmaWxsOiBjdXJyZW50Q29sb3I7XG4gICAgICBmbGV4LXNocmluazogMDtcbiAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIH1cbiAgfVxuXG4gIC5tZGMtbGlzdC1pdGVtX19lbmQge1xuICAgIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLnRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICBmbGV4LXNocmluazogMDtcbiAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIH1cbiAgfVxuXG4gIC5tZGMtbGlzdC1pdGVtX19jb250ZW50IHtcbiAgICBAaW5jbHVkZSB0eXBvZ3JhcGh5Lm92ZXJmbG93LWVsbGlwc2lzKCRxdWVyeSk7XG4gICAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmcudGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIGFsaWduLXNlbGY6IGNlbnRlcjtcbiAgICAgIGZsZXg6IDE7XG4gICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICB9XG5cbiAgICAubWRjLWxpc3QtaXRlbS0td2l0aC10d28tbGluZXMgJixcbiAgICAubWRjLWxpc3QtaXRlbS0td2l0aC10aHJlZS1saW5lcyAmIHtcbiAgICAgIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLnRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICAgIGFsaWduLXNlbGY6IHN0cmV0Y2g7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gRGlzYWJsZSBpbnRlcmFjdGlvbiBvbiBsYWJlbCBlbGVtZW50cyB0aGF0IG1heSBhdXRvbWF0aWNhbGx5XG4gICAgLy8gdG9nZ2xlIGNvcnJlc3BvbmRpbmcgY2hlY2tib3ggLyByYWRpbyBpbnB1dC5cbiAgICAmW2Zvcl0ge1xuICAgICAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmcudGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLm1kYy1saXN0LWl0ZW1fX3ByaW1hcnktdGV4dCB7XG4gICAgQGluY2x1ZGUgdHlwb2dyYXBoeS50eXBvZ3JhcGh5KHN1YnRpdGxlMSwgJHF1ZXJ5KTtcbiAgICBAaW5jbHVkZSB0eXBvZ3JhcGh5Lm92ZXJmbG93LWVsbGlwc2lzKCRxdWVyeSk7XG5cbiAgICAubWRjLWxpc3QtaXRlbS0td2l0aC10d28tbGluZXMgJixcbiAgICAubWRjLWxpc3QtaXRlbS0td2l0aC10aHJlZS1saW5lcyAmIHtcbiAgICAgIEBpbmNsdWRlIHR5cG9ncmFwaHkudGV4dC1iYXNlbGluZShcbiAgICAgICAgJHRvcDogMjhweCxcbiAgICAgICAgJGJvdHRvbTogMjBweCxcbiAgICAgICAgJHF1ZXJ5OiAkcXVlcnlcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgLm1kYy1saXN0LWl0ZW1fX3NlY29uZGFyeS10ZXh0IHtcbiAgICBAaW5jbHVkZSB0eXBvZ3JhcGh5LnR5cG9ncmFwaHkoYm9keTIsICRxdWVyeSk7XG4gICAgQGluY2x1ZGUgdHlwb2dyYXBoeS5vdmVyZmxvdy1lbGxpcHNpcygkcXVlcnkpO1xuICAgIEBpbmNsdWRlIHR5cG9ncmFwaHkudGV4dC1iYXNlbGluZShcbiAgICAgICR0b3A6IDIwcHgsXG4gICAgICAkZGlzcGxheTogYmxvY2ssXG4gICAgICAkcXVlcnk6ICRxdWVyeVxuICAgICk7XG5cbiAgICAubWRjLWxpc3QtaXRlbS0td2l0aC10aHJlZS1saW5lcyAmIHtcbiAgICAgIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLnRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3JtYWw7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICAgICAgfVxuICAgIH1cblxuICAgIC5tZGMtbGlzdC1pdGVtLS13aXRoLW92ZXJsaW5lICYge1xuICAgICAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmcudGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IGF1dG87XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLm1kYy1saXN0LWl0ZW1fX292ZXJsaW5lLXRleHQge1xuICAgIEBpbmNsdWRlIHR5cG9ncmFwaHkudHlwb2dyYXBoeShvdmVybGluZSwgJHF1ZXJ5KTtcbiAgICBAaW5jbHVkZSB0eXBvZ3JhcGh5Lm92ZXJmbG93LWVsbGlwc2lzKCRxdWVyeSk7XG5cbiAgICAubWRjLWxpc3QtaXRlbS0td2l0aC10d28tbGluZXMgJiB7XG4gICAgICBAaW5jbHVkZSB0eXBvZ3JhcGh5LnRleHQtYmFzZWxpbmUoXG4gICAgICAgICR0b3A6IDI0cHgsXG4gICAgICAgICRib3R0b206IDIwcHgsXG4gICAgICAgICRxdWVyeTogJHF1ZXJ5XG4gICAgICApO1xuICAgIH1cblxuICAgIC5tZGMtbGlzdC1pdGVtLS13aXRoLXRocmVlLWxpbmVzICYge1xuICAgICAgQGluY2x1ZGUgdHlwb2dyYXBoeS50ZXh0LWJhc2VsaW5lKFxuICAgICAgICAkdG9wOiAyOHB4LFxuICAgICAgICAkYm90dG9tOiAyMHB4LFxuICAgICAgICAkcXVlcnk6ICRxdWVyeVxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICAubWRjLWxpc3QtaXRlbS0td2l0aC1sZWFkaW5nLWF2YXRhciB7XG4gICAgQGluY2x1ZGUgaXRlbS1zdGFydC1zcGFjaW5nKDE2cHgsICRxdWVyeTogJHF1ZXJ5KTtcbiAgICBAaW5jbHVkZSBpdGVtLXN0YXJ0LXNpemUoNDBweCwgJHF1ZXJ5OiAkcXVlcnkpO1xuICAgIEBpbmNsdWRlIF90d28tbGluZS1pdGVtLXByaW1hcnktYmFzZWxpbmUoMzJweCwgMjBweCwgJHF1ZXJ5OiAkcXVlcnkpO1xuICAgIEBpbmNsdWRlIF90d28tbGluZS1pdGVtLW92ZXJsaW5lLWJhc2VsaW5lKDI4cHgsIDIwcHgsICRxdWVyeTogJHF1ZXJ5KTtcbiAgICBAaW5jbHVkZSBfdHdvLWxpbmUtaXRlbS1tZXRhLWJhc2VsaW5lKCR0b3A6IDMycHgsICRxdWVyeTogJHF1ZXJ5KTtcbiAgICBAaW5jbHVkZSBfb25lLWxpbmUtaXRlbS10YWxsLWRlbnNpdHkoXG4gICAgICB2YXJpYWJsZXMuJG9uZS1saW5lLWl0ZW0tZGVuc2l0eS1zY2FsZSxcbiAgICAgICRxdWVyeTogJHF1ZXJ5XG4gICAgKTtcbiAgICBAaW5jbHVkZSBfdHdvLWxpbmUtaXRlbS10YWxsLWRlbnNpdHkoXG4gICAgICB2YXJpYWJsZXMuJHR3by1saW5lLWl0ZW0tZGVuc2l0eS1zY2FsZSxcbiAgICAgICRxdWVyeTogJHF1ZXJ5XG4gICAgKTtcblxuICAgIC5tZGMtbGlzdC1pdGVtX19zdGFydCB7XG4gICAgICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy50YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLm1kYy1saXN0LWl0ZW0tLXdpdGgtbGVhZGluZy1pY29uIHtcbiAgICBAaW5jbHVkZSBpdGVtLXN0YXJ0LXNpemUoMjRweCwgJHF1ZXJ5OiAkcXVlcnkpO1xuICAgIEBpbmNsdWRlIGl0ZW0tc3RhcnQtc3BhY2luZyhcbiAgICAgICRsZWFkaW5nOiAxNnB4LFxuICAgICAgJHRyYWlsaW5nOiAzMnB4LFxuICAgICAgJHF1ZXJ5OiAkcXVlcnlcbiAgICApO1xuICAgIEBpbmNsdWRlIF90d28tbGluZS1pdGVtLXByaW1hcnktYmFzZWxpbmUoMzJweCwgMjBweCwgJHF1ZXJ5OiAkcXVlcnkpO1xuICAgIEBpbmNsdWRlIF90d28tbGluZS1pdGVtLW92ZXJsaW5lLWJhc2VsaW5lKDI4cHgsIDIwcHgsICRxdWVyeTogJHF1ZXJ5KTtcbiAgICBAaW5jbHVkZSBfdHdvLWxpbmUtaXRlbS1tZXRhLWJhc2VsaW5lKCR0b3A6IDMycHgsICRxdWVyeTogJHF1ZXJ5KTtcbiAgICBAaW5jbHVkZSBfb25lLWxpbmUtaXRlbS10YWxsLWRlbnNpdHkoXG4gICAgICB2YXJpYWJsZXMuJG9uZS1saW5lLWl0ZW0tZGVuc2l0eS1zY2FsZSxcbiAgICAgICRxdWVyeTogJHF1ZXJ5XG4gICAgKTtcbiAgICBAaW5jbHVkZSBfdHdvLWxpbmUtaXRlbS10YWxsLWRlbnNpdHkoXG4gICAgICB2YXJpYWJsZXMuJHR3by1saW5lLWl0ZW0tZGVuc2l0eS1zY2FsZSxcbiAgICAgICRxdWVyeTogJHF1ZXJ5XG4gICAgKTtcbiAgfVxuXG4gIC5tZGMtbGlzdC1pdGVtLS13aXRoLWxlYWRpbmctdGh1bWJuYWlsIHtcbiAgICBAaW5jbHVkZSBpdGVtLXN0YXJ0LXNwYWNpbmcoMTZweCwgJHF1ZXJ5OiAkcXVlcnkpO1xuICAgIEBpbmNsdWRlIGl0ZW0tc3RhcnQtc2l6ZSg0MHB4LCAkcXVlcnk6ICRxdWVyeSk7XG4gICAgQGluY2x1ZGUgX3R3by1saW5lLWl0ZW0tcHJpbWFyeS1iYXNlbGluZSgzMnB4LCAyMHB4LCAkcXVlcnk6ICRxdWVyeSk7XG4gICAgQGluY2x1ZGUgX3R3by1saW5lLWl0ZW0tb3ZlcmxpbmUtYmFzZWxpbmUoMjhweCwgMjBweCwgJHF1ZXJ5OiAkcXVlcnkpO1xuICAgIEBpbmNsdWRlIF90d28tbGluZS1pdGVtLW1ldGEtYmFzZWxpbmUoJHRvcDogMzJweCwgJHF1ZXJ5OiAkcXVlcnkpO1xuICAgIEBpbmNsdWRlIF9vbmUtbGluZS1pdGVtLXRhbGwtZGVuc2l0eShcbiAgICAgIHZhcmlhYmxlcy4kb25lLWxpbmUtaXRlbS1kZW5zaXR5LXNjYWxlLFxuICAgICAgJHF1ZXJ5OiAkcXVlcnlcbiAgICApO1xuICAgIEBpbmNsdWRlIF90d28tbGluZS1pdGVtLXRhbGwtZGVuc2l0eShcbiAgICAgIHZhcmlhYmxlcy4kdHdvLWxpbmUtaXRlbS1kZW5zaXR5LXNjYWxlLFxuICAgICAgJHF1ZXJ5OiAkcXVlcnlcbiAgICApO1xuICB9XG5cbiAgLm1kYy1saXN0LWl0ZW0tLXdpdGgtbGVhZGluZy1pbWFnZSB7XG4gICAgQGluY2x1ZGUgaXRlbS1zdGFydC1zcGFjaW5nKDE2cHgsICRxdWVyeTogJHF1ZXJ5KTtcbiAgICBAaW5jbHVkZSBpdGVtLXN0YXJ0LXNpemUoNTZweCwgJHF1ZXJ5OiAkcXVlcnkpO1xuICAgIEBpbmNsdWRlIF90d28tbGluZS1pdGVtLXByaW1hcnktYmFzZWxpbmUoMzJweCwgMjBweCwgJHF1ZXJ5OiAkcXVlcnkpO1xuICAgIEBpbmNsdWRlIF90d28tbGluZS1pdGVtLW92ZXJsaW5lLWJhc2VsaW5lKDI4cHgsIDIwcHgsICRxdWVyeTogJHF1ZXJ5KTtcbiAgICBAaW5jbHVkZSBfdHdvLWxpbmUtaXRlbS1tZXRhLWJhc2VsaW5lKCR0b3A6IDMycHgsICRxdWVyeTogJHF1ZXJ5KTtcbiAgICBAaW5jbHVkZSBfb25lLWxpbmUtaXRlbS10YWxsZXItZGVuc2l0eShcbiAgICAgIHZhcmlhYmxlcy4kb25lLWxpbmUtaXRlbS1kZW5zaXR5LXNjYWxlLFxuICAgICAgJHF1ZXJ5OiAkcXVlcnlcbiAgICApO1xuICAgIEBpbmNsdWRlIF90d28tbGluZS1pdGVtLXRhbGwtZGVuc2l0eShcbiAgICAgIHZhcmlhYmxlcy4kdHdvLWxpbmUtaXRlbS1kZW5zaXR5LXNjYWxlLFxuICAgICAgJHF1ZXJ5OiAkcXVlcnlcbiAgICApO1xuICB9XG5cbiAgLm1kYy1saXN0LWl0ZW0tLXdpdGgtbGVhZGluZy12aWRlbyB7XG4gICAgQGluY2x1ZGUgdHdvLWxpbmUtaXRlbS1zdGFydC1hbGlnbm1lbnQoXG4gICAgICAkYWxpZ25tZW50OiBmbGV4LXN0YXJ0LFxuICAgICAgJG9mZnNldDogOHB4LFxuICAgICAgJHF1ZXJ5OiAkcXVlcnlcbiAgICApO1xuICAgIEBpbmNsdWRlIGl0ZW0tc3RhcnQtc3BhY2luZygkbGVhZGluZzogMCwgJHRyYWlsaW5nOiAxNnB4LCAkcXVlcnk6ICRxdWVyeSk7XG4gICAgQGluY2x1ZGUgaXRlbS1zdGFydC1zaXplKCR3aWR0aDogMTAwcHgsICRoZWlnaHQ6IDU2cHgsICRxdWVyeTogJHF1ZXJ5KTtcbiAgICBAaW5jbHVkZSBfdHdvLWxpbmUtaXRlbS1wcmltYXJ5LWJhc2VsaW5lKDMycHgsIDIwcHgsICRxdWVyeTogJHF1ZXJ5KTtcbiAgICBAaW5jbHVkZSBfdHdvLWxpbmUtaXRlbS1vdmVybGluZS1iYXNlbGluZSgyOHB4LCAyMHB4LCAkcXVlcnk6ICRxdWVyeSk7XG4gICAgQGluY2x1ZGUgX3R3by1saW5lLWl0ZW0tbWV0YS1iYXNlbGluZSgkdG9wOiAzMnB4LCAkcXVlcnk6ICRxdWVyeSk7XG4gICAgQGluY2x1ZGUgX29uZS1saW5lLWl0ZW0tdGFsbGVyLWRlbnNpdHkoXG4gICAgICB2YXJpYWJsZXMuJG9uZS1saW5lLWl0ZW0tZGVuc2l0eS1zY2FsZSxcbiAgICAgICRxdWVyeTogJHF1ZXJ5XG4gICAgKTtcbiAgICBAaW5jbHVkZSBfdHdvLWxpbmUtaXRlbS10YWxsLWRlbnNpdHkoXG4gICAgICB2YXJpYWJsZXMuJHR3by1saW5lLWl0ZW0tZGVuc2l0eS1zY2FsZSxcbiAgICAgICRxdWVyeTogJHF1ZXJ5XG4gICAgKTtcbiAgfVxuXG4gIC5tZGMtbGlzdC1pdGVtLS13aXRoLWxlYWRpbmctY2hlY2tib3gge1xuICAgICRsZWFkaW5nOiBhYnNvcmItb3ZlcmZsb3coMTZweCwgJGFjdHVhbDogNDBweCwgJGF2YWlsYWJsZTogMjRweCk7XG4gICAgJHRyYWlsaW5nOiBhYnNvcmItb3ZlcmZsb3coMzJweCwgJGFjdHVhbDogNDBweCwgJGF2YWlsYWJsZTogMjRweCk7XG4gICAgJHRvcDogYWJzb3JiLW92ZXJmbG93KDE2cHgsICRhY3R1YWw6IDQwcHgsICRhdmFpbGFibGU6IDI0cHgpO1xuXG4gICAgQGluY2x1ZGUgaXRlbS1zdGFydC1zcGFjaW5nKCRsZWFkaW5nLCAkdHJhaWxpbmcsICRxdWVyeTogJHF1ZXJ5KTtcbiAgICBAaW5jbHVkZSBpdGVtLXN0YXJ0LXNpemUoNDBweCwgJHF1ZXJ5OiAkcXVlcnkpO1xuICAgIEBpbmNsdWRlIHR3by1saW5lLWl0ZW0tc3RhcnQtYWxpZ25tZW50KFxuICAgICAgJGFsaWdubWVudDogZmxleC1zdGFydCxcbiAgICAgICRvZmZzZXQ6ICR0b3AsXG4gICAgICAkcXVlcnk6ICRxdWVyeVxuICAgICk7XG4gICAgQGluY2x1ZGUgX3R3by1saW5lLWl0ZW0tcHJpbWFyeS1iYXNlbGluZSgzMnB4LCAyMHB4LCAkcXVlcnk6ICRxdWVyeSk7XG4gICAgQGluY2x1ZGUgX3R3by1saW5lLWl0ZW0tb3ZlcmxpbmUtYmFzZWxpbmUoMjhweCwgMjBweCwgJHF1ZXJ5OiAkcXVlcnkpO1xuICAgIEBpbmNsdWRlIF90d28tbGluZS1pdGVtLW1ldGEtYmFzZWxpbmUoJHRvcDogMzJweCwgJHF1ZXJ5OiAkcXVlcnkpO1xuICAgIEBpbmNsdWRlIF9vbmUtbGluZS1pdGVtLXRhbGwtZGVuc2l0eShcbiAgICAgIHZhcmlhYmxlcy4kb25lLWxpbmUtaXRlbS1kZW5zaXR5LXNjYWxlLFxuICAgICAgJHF1ZXJ5OiAkcXVlcnlcbiAgICApO1xuICAgIEBpbmNsdWRlIF90d28tbGluZS1pdGVtLXRhbGwtZGVuc2l0eShcbiAgICAgIHZhcmlhYmxlcy4kdHdvLWxpbmUtaXRlbS1kZW5zaXR5LXNjYWxlLFxuICAgICAgJHF1ZXJ5OiAkcXVlcnlcbiAgICApO1xuICB9XG5cbiAgLm1kYy1saXN0LWl0ZW0tLXdpdGgtbGVhZGluZy1yYWRpbyB7XG4gICAgJGxlYWRpbmc6IGFic29yYi1vdmVyZmxvdygxNnB4LCAkYWN0dWFsOiA0MHB4LCAkYXZhaWxhYmxlOiAyNHB4KTtcbiAgICAkdHJhaWxpbmc6IGFic29yYi1vdmVyZmxvdygzMnB4LCAkYWN0dWFsOiA0MHB4LCAkYXZhaWxhYmxlOiAyNHB4KTtcbiAgICAkdG9wOiBhYnNvcmItb3ZlcmZsb3coMTZweCwgJGFjdHVhbDogNDBweCwgJGF2YWlsYWJsZTogMjRweCk7XG5cbiAgICBAaW5jbHVkZSBpdGVtLXN0YXJ0LXNwYWNpbmcoJGxlYWRpbmcsICR0cmFpbGluZywgJHF1ZXJ5OiAkcXVlcnkpO1xuICAgIEBpbmNsdWRlIGl0ZW0tc3RhcnQtc2l6ZSg0MHB4LCAkcXVlcnk6ICRxdWVyeSk7XG4gICAgQGluY2x1ZGUgdHdvLWxpbmUtaXRlbS1zdGFydC1hbGlnbm1lbnQoXG4gICAgICAkYWxpZ25tZW50OiBmbGV4LXN0YXJ0LFxuICAgICAgJG9mZnNldDogJHRvcCxcbiAgICAgICRxdWVyeTogJHF1ZXJ5XG4gICAgKTtcbiAgICBAaW5jbHVkZSBfdHdvLWxpbmUtaXRlbS1wcmltYXJ5LWJhc2VsaW5lKDMycHgsIDIwcHgsICRxdWVyeTogJHF1ZXJ5KTtcbiAgICBAaW5jbHVkZSBfdHdvLWxpbmUtaXRlbS1vdmVybGluZS1iYXNlbGluZSgyOHB4LCAyMHB4LCAkcXVlcnk6ICRxdWVyeSk7XG4gICAgQGluY2x1ZGUgX3R3by1saW5lLWl0ZW0tbWV0YS1iYXNlbGluZSgkdG9wOiAzMnB4LCAkcXVlcnk6ICRxdWVyeSk7XG4gICAgQGluY2x1ZGUgX29uZS1saW5lLWl0ZW0tdGFsbC1kZW5zaXR5KFxuICAgICAgdmFyaWFibGVzLiRvbmUtbGluZS1pdGVtLWRlbnNpdHktc2NhbGUsXG4gICAgICAkcXVlcnk6ICRxdWVyeVxuICAgICk7XG4gICAgQGluY2x1ZGUgX3R3by1saW5lLWl0ZW0tdGFsbC1kZW5zaXR5KFxuICAgICAgdmFyaWFibGVzLiR0d28tbGluZS1pdGVtLWRlbnNpdHktc2NhbGUsXG4gICAgICAkcXVlcnk6ICRxdWVyeVxuICAgICk7XG4gIH1cblxuICAubWRjLWxpc3QtaXRlbS0td2l0aC1sZWFkaW5nLXN3aXRjaCB7XG4gICAgQGluY2x1ZGUgaXRlbS1zdGFydC1zcGFjaW5nKDE2cHgsICRxdWVyeTogJHF1ZXJ5KTtcbiAgICBAaW5jbHVkZSBpdGVtLXN0YXJ0LXNpemUoJHdpZHRoOiAzNnB4LCAkaGVpZ2h0OiAyMHB4LCAkcXVlcnk6ICRxdWVyeSk7XG4gICAgQGluY2x1ZGUgdHdvLWxpbmUtaXRlbS1zdGFydC1hbGlnbm1lbnQoXG4gICAgICAkYWxpZ25tZW50OiBmbGV4LXN0YXJ0LFxuICAgICAgJG9mZnNldDogMTZweCxcbiAgICAgICRxdWVyeTogJHF1ZXJ5XG4gICAgKTtcbiAgICBAaW5jbHVkZSBfdHdvLWxpbmUtaXRlbS1wcmltYXJ5LWJhc2VsaW5lKDMycHgsIDIwcHgsICRxdWVyeTogJHF1ZXJ5KTtcbiAgICBAaW5jbHVkZSBfdHdvLWxpbmUtaXRlbS1vdmVybGluZS1iYXNlbGluZSgyOHB4LCAyMHB4LCAkcXVlcnk6ICRxdWVyeSk7XG4gICAgQGluY2x1ZGUgX3R3by1saW5lLWl0ZW0tbWV0YS1iYXNlbGluZSgkdG9wOiAzMnB4LCAkcXVlcnk6ICRxdWVyeSk7XG4gICAgQGluY2x1ZGUgX29uZS1saW5lLWl0ZW0tdGFsbC1kZW5zaXR5KFxuICAgICAgdmFyaWFibGVzLiRvbmUtbGluZS1pdGVtLWRlbnNpdHktc2NhbGUsXG4gICAgICAkcXVlcnk6ICRxdWVyeVxuICAgICk7XG4gICAgQGluY2x1ZGUgX3R3by1saW5lLWl0ZW0tdGFsbC1kZW5zaXR5KFxuICAgICAgdmFyaWFibGVzLiR0d28tbGluZS1pdGVtLWRlbnNpdHktc2NhbGUsXG4gICAgICAkcXVlcnk6ICRxdWVyeVxuICAgICk7XG4gIH1cblxuICAubWRjLWxpc3QtaXRlbS0td2l0aC10cmFpbGluZy1pY29uIHtcbiAgICBAaW5jbHVkZSBpdGVtLWVuZC1zcGFjaW5nKDE2cHgsICRxdWVyeTogJHF1ZXJ5KTtcbiAgICBAaW5jbHVkZSBpdGVtLWVuZC1zaXplKDI0cHgsICRxdWVyeTogJHF1ZXJ5KTtcbiAgfVxuXG4gIC5tZGMtbGlzdC1pdGVtLS13aXRoLXRyYWlsaW5nLW1ldGEge1xuICAgIEBpbmNsdWRlIHR3by1saW5lLWl0ZW0tZW5kLWFsaWdubWVudChmbGV4LXN0YXJ0LCAkcXVlcnk6ICRxdWVyeSk7XG4gICAgQGluY2x1ZGUgdGhyZWUtbGluZS1pdGVtLWVuZC1hbGlnbm1lbnQoZmxleC1zdGFydCwgJHF1ZXJ5OiAkcXVlcnkpO1xuICAgIEBpbmNsdWRlIGl0ZW0tZW5kLXNwYWNpbmcoJGxlYWRpbmc6IDI4cHgsICR0cmFpbGluZzogMTZweCwgJHF1ZXJ5OiAkcXVlcnkpO1xuICAgIEBpbmNsdWRlIF90d28tbGluZS1pdGVtLWVuZC1iYXNlbGluZSgkdG9wOiAyOHB4LCAkcXVlcnk6ICRxdWVyeSk7XG4gICAgQGluY2x1ZGUgX3RocmVlLWxpbmUtaXRlbS1lbmQtYmFzZWxpbmUoJHRvcDogMjhweCwgJHF1ZXJ5OiAkcXVlcnkpO1xuXG4gICAgLm1kYy1saXN0LWl0ZW1fX2VuZCB7XG4gICAgICBAaW5jbHVkZSB0eXBvZ3JhcGh5LnR5cG9ncmFwaHkoY2FwdGlvbiwgJHF1ZXJ5KTtcbiAgICB9XG4gIH1cblxuICAubWRjLWxpc3QtaXRlbS0td2l0aC10cmFpbGluZy1jaGVja2JveCB7XG4gICAgJGxlYWRpbmc6IGFic29yYi1vdmVyZmxvdygzMnB4LCAkYWN0dWFsOiA0MHB4LCAkYXZhaWxhYmxlOiAyNHB4KTtcbiAgICAkdHJhaWxpbmc6IGFic29yYi1vdmVyZmxvdygxNnB4LCAkYWN0dWFsOiA0MHB4LCAkYXZhaWxhYmxlOiAyNHB4KTtcbiAgICAkdG9wOiBhYnNvcmItb3ZlcmZsb3coMTZweCwgJGFjdHVhbDogNDBweCwgJGF2YWlsYWJsZTogMjRweCk7XG5cbiAgICBAaW5jbHVkZSBpdGVtLWVuZC1zcGFjaW5nKCRsZWFkaW5nLCAkdHJhaWxpbmcsICRxdWVyeTogJHF1ZXJ5KTtcbiAgICBAaW5jbHVkZSBpdGVtLWVuZC1zaXplKDQwcHgsICRxdWVyeTogJHF1ZXJ5KTtcbiAgICBAaW5jbHVkZSB0aHJlZS1saW5lLWl0ZW0tZW5kLWFsaWdubWVudChcbiAgICAgICRhbGlnbm1lbnQ6IGZsZXgtc3RhcnQsXG4gICAgICAkb2Zmc2V0OiAkdG9wLFxuICAgICAgJHF1ZXJ5OiAkcXVlcnlcbiAgICApO1xuICB9XG5cbiAgLm1kYy1saXN0LWl0ZW0tLXdpdGgtdHJhaWxpbmctcmFkaW8ge1xuICAgICRsZWFkaW5nOiBhYnNvcmItb3ZlcmZsb3coMzJweCwgJGFjdHVhbDogNDBweCwgJGF2YWlsYWJsZTogMjRweCk7XG4gICAgJHRyYWlsaW5nOiBhYnNvcmItb3ZlcmZsb3coMTZweCwgJGFjdHVhbDogNDBweCwgJGF2YWlsYWJsZTogMjRweCk7XG4gICAgJHRvcDogYWJzb3JiLW92ZXJmbG93KDE2cHgsICRhY3R1YWw6IDQwcHgsICRhdmFpbGFibGU6IDI0cHgpO1xuXG4gICAgQGluY2x1ZGUgaXRlbS1lbmQtc3BhY2luZygkbGVhZGluZywgJHRyYWlsaW5nLCAkcXVlcnk6ICRxdWVyeSk7XG4gICAgQGluY2x1ZGUgaXRlbS1lbmQtc2l6ZSg0MHB4LCAkcXVlcnk6ICRxdWVyeSk7XG4gICAgQGluY2x1ZGUgdGhyZWUtbGluZS1pdGVtLWVuZC1hbGlnbm1lbnQoXG4gICAgICAkYWxpZ25tZW50OiBmbGV4LXN0YXJ0LFxuICAgICAgJG9mZnNldDogJHRvcCxcbiAgICAgICRxdWVyeTogJHF1ZXJ5XG4gICAgKTtcbiAgfVxuXG4gIC5tZGMtbGlzdC1pdGVtLS13aXRoLXRyYWlsaW5nLXN3aXRjaCB7XG4gICAgQGluY2x1ZGUgaXRlbS1lbmQtc3BhY2luZygxNnB4LCAkcXVlcnk6ICRxdWVyeSk7XG4gICAgQGluY2x1ZGUgaXRlbS1lbmQtc2l6ZSgkd2lkdGg6IDM2cHgsICRoZWlnaHQ6IDIwcHgsICRxdWVyeTogJHF1ZXJ5KTtcbiAgICBAaW5jbHVkZSB0aHJlZS1saW5lLWl0ZW0tZW5kLWFsaWdubWVudChcbiAgICAgICRhbGlnbm1lbnQ6IGZsZXgtc3RhcnQsXG4gICAgICAkb2Zmc2V0OiAxNnB4LFxuICAgICAgJHF1ZXJ5OiAkcXVlcnlcbiAgICApO1xuICB9XG5cbiAgLm1kYy1saXN0LWl0ZW0tLXdpdGgtb3ZlcmxpbmUge1xuICAgIEBpbmNsdWRlIF90d28tbGluZS1pdGVtLXByaW1hcnktYmFzZWxpbmUoMjBweCwgMHB4LCAkcXVlcnk6ICRxdWVyeSk7XG4gICAgQGluY2x1ZGUgX3RocmVlLWxpbmUtaXRlbS1wcmltYXJ5LWJhc2VsaW5lKDIwcHgsIDBweCwgJHF1ZXJ5OiAkcXVlcnkpO1xuICB9XG5cbiAgLy8gVGhpcyBtdXN0IGJlIHNwZWNpZmllZCBsYXN0IHRvIGVuc3VyZSB0aGF0IFJUTCBwYWRkaW5nIHRha2VzIHByaW9yaXR5IG92ZXJcbiAgLy8gTFRSIHBhZGRpbmcgaW4gdGhlIGNhc2NhZGUuXG4gIC5tZGMtbGlzdC1pdGVtIHtcbiAgICBAaW5jbHVkZSBpdGVtLXNwYWNpbmcoMTZweCwgJHF1ZXJ5OiAkcXVlcnkpO1xuICB9XG5cbiAgLy9cbiAgLy8gR3JvdXBpbmdcbiAgLy9cblxuICAubWRjLWxpc3QtZ3JvdXAge1xuICAgIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLnRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICAvLyBDYW5jZWwgdG9wL2JvdHRvbSBwYWRkaW5nIG9uIGluZGl2aWR1YWwgbGlzdHMgd2l0aGluIGdyb3VwXG4gICAgICAubWRjLWRlcHJlY2F0ZWQtbGlzdCB7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLm1kYy1saXN0LWdyb3VwX19zdWJoZWFkZXIge1xuICAgICRtZGMtbGlzdC1zdWJoZWFkZXItdmlydHVhbC1oZWlnaHQ6IDNyZW07XG4gICAgJG1kYy1saXN0LXN1YmhlYWRlci1sZWFkaW5nOiBtYXAuZ2V0KFxuICAgICAgbWFwLmdldCh0eXBvZ3JhcGh5LiRzdHlsZXMsIGJvZHkxKSxcbiAgICAgIGxpbmUtaGVpZ2h0XG4gICAgKTtcbiAgICAkbWRjLWxpc3Qtc3ViaGVhZGVyLW1hcmdpbjogY2FsYyhcbiAgICAgICgjeyRtZGMtbGlzdC1zdWJoZWFkZXItdmlydHVhbC1oZWlnaHR9IC0gI3skbWRjLWxpc3Qtc3ViaGVhZGVyLWxlYWRpbmd9KSAvXG4gICAgICAgIDJcbiAgICApO1xuXG4gICAgQGluY2x1ZGUgdHlwb2dyYXBoeS50eXBvZ3JhcGh5KHN1YnRpdGxlMSwgJHF1ZXJ5KTtcbiAgICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy50YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgbWFyZ2luOiAkbWRjLWxpc3Qtc3ViaGVhZGVyLW1hcmdpbiB2YXJpYWJsZXMuJHNpZGUtcGFkZGluZztcbiAgICB9XG4gIH1cblxuICAvL1xuICAvLyBEaXZpZGVyc1xuICAvL1xuXG4gICRkaXZpZGVyLWNvbG9yOiBpZihcbiAgICB0aGVtZS1jb2xvci50b25lKHRoZW1lLWNvbG9yLiRiYWNrZ3JvdW5kKSA9PSAnZGFyaycsXG4gICAgdmFyaWFibGVzLiRkaXZpZGVyLWNvbG9yLW9uLWRhcmstYmcsXG4gICAgdmFyaWFibGVzLiRkaXZpZGVyLWNvbG9yLW9uLWxpZ2h0LWJnXG4gICk7XG5cbiAgQGluY2x1ZGUgZGl2aWRlci1jb2xvcigkZGl2aWRlci1jb2xvciwgJHF1ZXJ5OiAkcXVlcnkpO1xuICBAaW5jbHVkZSBkaXZpZGVyLWhlaWdodCgxcHgsICRxdWVyeTogJHF1ZXJ5KTtcblxuICAubWRjLWxpc3QtZGl2aWRlciB7XG4gICAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmcudGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIHBhZGRpbmc6IDA7XG5cbiAgICAgIC8vIEFsbG93cyB0aGUgdXNlIG9mIHBhZGRpbmcgdG8gc3BlY2lmeSBsZWFkaW5nIGFuZCB0cmFpbGluZyBpbnNldHNcbiAgICAgIC8vIGluZGVwZW5kZW50bHkuXG4gICAgICBiYWNrZ3JvdW5kLWNsaXA6IGNvbnRlbnQtYm94O1xuICAgIH1cbiAgfVxuXG4gIC8vIFRoZSBiYXNlIGluc2V0IHZhcmlhbnQgY29ycmVzcG9uZHMgdG8gdGhlIGl0ZW0ncyBwYWRkaW5nLlxuICAubWRjLWxpc3QtZGl2aWRlcixcbiAgLm1kYy1saXN0LWRpdmlkZXItLXdpdGgtbGVhZGluZy10ZXh0LFxuICAubWRjLWxpc3QtZGl2aWRlci0td2l0aC1sZWFkaW5nLWljb24sXG4gIC5tZGMtbGlzdC1kaXZpZGVyLS13aXRoLWxlYWRpbmctaW1hZ2UsXG4gIC5tZGMtbGlzdC1kaXZpZGVyLS13aXRoLWxlYWRpbmctdGh1bWJuYWlsLFxuICAubWRjLWxpc3QtZGl2aWRlci0td2l0aC1sZWFkaW5nLWF2YXRhcixcbiAgLm1kYy1saXN0LWRpdmlkZXItLXdpdGgtbGVhZGluZy1jaGVja2JveCxcbiAgLm1kYy1saXN0LWRpdmlkZXItLXdpdGgtbGVhZGluZy1zd2l0Y2gsXG4gIC5tZGMtbGlzdC1kaXZpZGVyLS13aXRoLWxlYWRpbmctcmFkaW8ge1xuICAgIEBpbmNsdWRlIGRpdmlkZXItbGVhZGluZy1pbnNldCgxNnB4LCAkcXVlcnk6ICRxdWVyeSk7XG4gICAgQGluY2x1ZGUgZGl2aWRlci10cmFpbGluZy1pbnNldCgxNnB4LCAkcXVlcnk6ICRxdWVyeSk7XG4gIH1cblxuICAubWRjLWxpc3QtZGl2aWRlci0td2l0aC1sZWFkaW5nLXZpZGVvIHtcbiAgICBAaW5jbHVkZSBkaXZpZGVyLWxlYWRpbmctaW5zZXQoMHB4LCAkcXVlcnk6ICRxdWVyeSk7XG4gIH1cblxuICAvLyBUaGlzIGlzIG5lZWRlZCB0byBlbnN1cmUgdGhhdCBkZWZhdWx0IHBhZGRpbmcgaXNuJ3QgYXBwbGllZCBpbiBSVEwgbG9jYWxlcy5cbiAgLm1kYy1saXN0LWRpdmlkZXIge1xuICAgIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLnRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICBAaW5jbHVkZSBydGwucnRsIHtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuQG1peGluIHdpdGgtcmlwcGxlKCRxdWVyeTogZmVhdHVyZS10YXJnZXRpbmcuYWxsKCkpIHtcbiAgQGluY2x1ZGUgcmlwcGxlLmNvbW1vbigkcXVlcnkpOyAvLyBDT1BZQkFSQV9DT01NRU5UX1RISVNfTElORVxuXG4gIDpub3QoLm1kYy1saXN0LWl0ZW0tLWRpc2FibGVkKS5tZGMtbGlzdC1pdGVtIHtcbiAgICBAaW5jbHVkZSBfaXRlbS1pbnRlcmFjdGl2ZS1yaXBwbGUoJHF1ZXJ5KTtcbiAgfVxuXG4gIC5tZGMtbGlzdC1pdGVtLS1kaXNhYmxlZCB7XG4gICAgQGluY2x1ZGUgcmlwcGxlLnN1cmZhY2UoXG4gICAgICAkcmlwcGxlLXRhcmdldDogdmFyaWFibGVzLiRyaXBwbGUtdGFyZ2V0LFxuICAgICAgJHF1ZXJ5OiAkcXVlcnlcbiAgICApO1xuICAgIEBpbmNsdWRlIHJpcHBsZS5yYWRpdXMtYm91bmRlZChcbiAgICAgICRyaXBwbGUtdGFyZ2V0OiB2YXJpYWJsZXMuJHJpcHBsZS10YXJnZXQsXG4gICAgICAkcXVlcnk6ICRxdWVyeVxuICAgICk7XG4gICAgQGluY2x1ZGUgcmlwcGxlLXRoZW1lLnN0YXRlcy1iYXNlLWNvbG9yKFxuICAgICAgdGhlbWUtY29sb3IucHJvcC12YWx1ZShvbi1zdXJmYWNlKSxcbiAgICAgICRyaXBwbGUtdGFyZ2V0OiB2YXJpYWJsZXMuJHJpcHBsZS10YXJnZXQsXG4gICAgICAkcXVlcnk6ICRxdWVyeVxuICAgICk7XG4gICAgQGluY2x1ZGUgcmlwcGxlLXRoZW1lLnN0YXRlcy1mb2N1cy1vcGFjaXR5KFxuICAgICAgcmlwcGxlLXRoZW1lLnN0YXRlcy1vcGFjaXR5KHByaW1hcnksIGZvY3VzKSxcbiAgICAgICRyaXBwbGUtdGFyZ2V0OiB2YXJpYWJsZXMuJHJpcHBsZS10YXJnZXQsXG4gICAgICAkcXVlcnk6ICRxdWVyeVxuICAgICk7XG5cbiAgICAje3ZhcmlhYmxlcy4kcmlwcGxlLXRhcmdldH0ge1xuICAgICAgQGluY2x1ZGUgcmlwcGxlLnRhcmdldC1jb21tb24oJHF1ZXJ5OiAkcXVlcnkpO1xuICAgIH1cbiAgfVxufVxuXG4vLy9cbi8vLyBBZGp1c3RzIGFuIG9mZnNldCAoaS5lLiwgbWFyZ2luKSB0byBhY2NvbW9kYXRlIGNvbnRlbnRzIHRoYXQgYXJlIGxhcmdlciB0aGFuXG4vLy8gdGhlIHNwYWNlIGFsbG9jYXRlZCBieSB0aGUgc3BlY2lmaWNhdGlvbi5cbi8vL1xuLy8vIEZvciBpbnN0YW5jZSwgdGhlIHNwZWNpZmljYXRpb24gcHJvdmlkZXMgMjR4MjRkcCBmb3IgYSBjaGVja2JveCB3aXRoIGEgMTZkcFxuLy8vIG1hcmdpbi4gSG93ZXZlciwgY2hlY2tib3hlcyBhcmUgYWN0dWFsbHkgNDB4NDBkcC4gVG8gZW5zdXJlIHRoYXQgdGhlXG4vLy8gY2hlY2tib3ggaXMgcG9zaXRpb25lZCBjb3JyZWN0bHksIHRoZSBtYXJnaW4gaXMgcmVkdWNlZCBieSA4ZHAgdG8gcmVmbGVjdFxuLy8vIHRoYXQgdGhlIG1hcmdpbiBpcyBhbHJlYWR5IFwiYmFrZWQgaW50b1wiIHRoZSBjaGVja2JveC5cbi8vL1xuLy8vIENvbmNyZXRlbHksIDQwZHAgLSAyNGRwID0gMTZkcC4gQXNzdW1pbmcgdGhhdCB0aGUgY29udHJvbCBpcyBzeW1tZXRyaWNhbCxcbi8vLyBoYWxmIG9mIHRoZSBvdmVyZmxvdyAoOGRwKSBpcyBvbiB0aGUgbGVhZGluZyBzaWRlIGFuZCBoYWxmIG9uIHRoZSB0cmFpbGluZ1xuLy8vIHNpZGUuIFRoZXJlZm9yZSwgdGhlIGxlYWRpbmcgYW5kIHRyYWlsaW5nIG1hcmdpbnMgYXJlIHJlZHVjZWQgYnkgOGRwLlxuLy8vXG4vLy8gTm90ZTogdGhpcyBtaWdodCBiZSBtb3JlIHVzZWZ1bCBpZiBpdCdzIGFkZGVkIGludG8gdGhlIGxlYWRpbmcvdHJhaWxpbmdcbi8vLyBtYXJnaW4gbWl4aW5zIGFzIGEgcGFyYW1ldGVyLlxuLy8vXG5AZnVuY3Rpb24gYWJzb3JiLW92ZXJmbG93KCRvZmZzZXQsICRhY3R1YWwsICRhdmFpbGFibGUsICRzeW1tZXRyaWM6IHRydWUpIHtcbiAgQGlmICRhY3R1YWwgPD0gJGF2YWlsYWJsZSB7XG4gICAgQHJldHVybiAkb2Zmc2V0O1xuICB9XG4gICRvdmVyZmxvdzogJGFjdHVhbCAtICRhdmFpbGFibGU7XG4gIEByZXR1cm4gJG9mZnNldCAtIG1hdGguZGl2KCRvdmVyZmxvdywgaWYoJHN5bW1ldHJpYywgMiwgMSkpO1xufVxuXG5AbWl4aW4gb25lLWxpbmUtaXRlbS1oZWlnaHQoJGhlaWdodCwgJHF1ZXJ5OiBmZWF0dXJlLXRhcmdldGluZy5hbGwoKSkge1xuICAkZmVhdC1zdHJ1Y3R1cmU6IGZlYXR1cmUtdGFyZ2V0aW5nLmNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBzdHJ1Y3R1cmUpO1xuICAmLm1kYy1saXN0LWl0ZW0tLXdpdGgtb25lLWxpbmUge1xuICAgIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLnRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICBoZWlnaHQ6ICRoZWlnaHQ7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiB0d28tbGluZS1pdGVtLWhlaWdodCgkaGVpZ2h0LCAkcXVlcnk6IGZlYXR1cmUtdGFyZ2V0aW5nLmFsbCgpKSB7XG4gICRmZWF0LXN0cnVjdHVyZTogZmVhdHVyZS10YXJnZXRpbmcuY3JlYXRlLXRhcmdldCgkcXVlcnksIHN0cnVjdHVyZSk7XG4gICYubWRjLWxpc3QtaXRlbS0td2l0aC10d28tbGluZXMge1xuICAgIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLnRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICBoZWlnaHQ6ICRoZWlnaHQ7XG4gICAgfVxuICB9XG59XG5AbWl4aW4gdGhyZWUtbGluZS1pdGVtLWhlaWdodCgkaGVpZ2h0LCAkcXVlcnk6IGZlYXR1cmUtdGFyZ2V0aW5nLmFsbCgpKSB7XG4gICRmZWF0LXN0cnVjdHVyZTogZmVhdHVyZS10YXJnZXRpbmcuY3JlYXRlLXRhcmdldCgkcXVlcnksIHN0cnVjdHVyZSk7XG4gICYubWRjLWxpc3QtaXRlbS0td2l0aC10aHJlZS1saW5lcyB7XG4gICAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmcudGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIGhlaWdodDogJGhlaWdodDtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIGxpc3QtaXRlbS1oZWlnaHQoJGhlaWdodCkge1xuICAmLm1kYy1saXN0LWl0ZW0tLXdpdGgtb25lLWxpbmUsXG4gICYubWRjLWxpc3QtaXRlbS0td2l0aC10d28tbGluZXMsXG4gICYubWRjLWxpc3QtaXRlbS0td2l0aC10aHJlZS1saW5lcyB7XG4gICAgaGVpZ2h0OiAkaGVpZ2h0O1xuICB9XG59XG5cbkBtaXhpbiBpdGVtLXNwYWNpbmcoXG4gICRsZWFkaW5nLFxuICAkdHJhaWxpbmc6ICRsZWFkaW5nLFxuICAkcXVlcnk6IGZlYXR1cmUtdGFyZ2V0aW5nLmFsbCgpXG4pIHtcbiAgJGZlYXQtc3RydWN0dXJlOiBmZWF0dXJlLXRhcmdldGluZy5jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgc3RydWN0dXJlKTtcbiAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmcudGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICBAaW5jbHVkZSBydGwucmVmbGV4aXZlLXByb3BlcnR5KHBhZGRpbmcsICRsZWFkaW5nLCAkdHJhaWxpbmcpO1xuICB9XG59XG5cbkBtaXhpbiBvbmUtbGluZS1pdGVtLXN0YXJ0LWFsaWdubWVudChcbiAgJGFsaWdubWVudCxcbiAgJG9mZnNldDogMCxcbiAgJHF1ZXJ5OiBmZWF0dXJlLXRhcmdldGluZy5hbGwoKVxuKSB7XG4gICRmZWF0LXN0cnVjdHVyZTogZmVhdHVyZS10YXJnZXRpbmcuY3JlYXRlLXRhcmdldCgkcXVlcnksIHN0cnVjdHVyZSk7XG4gICYubWRjLWxpc3QtaXRlbS0td2l0aC1vbmUtbGluZSB7XG4gICAgLm1kYy1saXN0LWl0ZW1fX3N0YXJ0IHtcbiAgICAgIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLnRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICAgIGFsaWduLXNlbGY6ICRhbGlnbm1lbnQ7XG4gICAgICAgIG1hcmdpbi10b3A6ICRvZmZzZXQ7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiB0d28tbGluZS1pdGVtLXN0YXJ0LWFsaWdubWVudChcbiAgJGFsaWdubWVudCxcbiAgJG9mZnNldDogMCxcbiAgJHF1ZXJ5OiBmZWF0dXJlLXRhcmdldGluZy5hbGwoKVxuKSB7XG4gICRmZWF0LXN0cnVjdHVyZTogZmVhdHVyZS10YXJnZXRpbmcuY3JlYXRlLXRhcmdldCgkcXVlcnksIHN0cnVjdHVyZSk7XG4gICYubWRjLWxpc3QtaXRlbS0td2l0aC10d28tbGluZXMge1xuICAgIC5tZGMtbGlzdC1pdGVtX19zdGFydCB7XG4gICAgICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy50YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgICBhbGlnbi1zZWxmOiAkYWxpZ25tZW50O1xuICAgICAgICBtYXJnaW4tdG9wOiAkb2Zmc2V0O1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gdGhyZWUtbGluZS1pdGVtLXN0YXJ0LWFsaWdubWVudChcbiAgJGFsaWdubWVudCxcbiAgJG9mZnNldDogMCxcbiAgJHF1ZXJ5OiBmZWF0dXJlLXRhcmdldGluZy5hbGwoKVxuKSB7XG4gICRmZWF0LXN0cnVjdHVyZTogZmVhdHVyZS10YXJnZXRpbmcuY3JlYXRlLXRhcmdldCgkcXVlcnksIHN0cnVjdHVyZSk7XG4gICYubWRjLWxpc3QtaXRlbS0td2l0aC10aHJlZS1saW5lcyB7XG4gICAgLm1kYy1saXN0LWl0ZW1fX3N0YXJ0IHtcbiAgICAgIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLnRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICAgIGFsaWduLXNlbGY6ICRhbGlnbm1lbnQ7XG4gICAgICAgIG1hcmdpbi10b3A6ICRvZmZzZXQ7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBvbmUtbGluZS1pdGVtLWVuZC1hbGlnbm1lbnQoXG4gICRhbGlnbm1lbnQsXG4gICRvZmZzZXQ6IDAsXG4gICRxdWVyeTogZmVhdHVyZS10YXJnZXRpbmcuYWxsKClcbikge1xuICAkZmVhdC1zdHJ1Y3R1cmU6IGZlYXR1cmUtdGFyZ2V0aW5nLmNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBzdHJ1Y3R1cmUpO1xuICAmLm1kYy1saXN0LWl0ZW0tLXdpdGgtb25lLWxpbmUge1xuICAgIC5tZGMtbGlzdC1pdGVtX19lbmQge1xuICAgICAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmcudGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgICAgYWxpZ24tc2VsZjogJGFsaWdubWVudDtcbiAgICAgICAgbWFyZ2luLXRvcDogJG9mZnNldDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuQG1peGluIHR3by1saW5lLWl0ZW0tZW5kLWFsaWdubWVudChcbiAgJGFsaWdubWVudCxcbiAgJG9mZnNldDogMCxcbiAgJHF1ZXJ5OiBmZWF0dXJlLXRhcmdldGluZy5hbGwoKVxuKSB7XG4gICRmZWF0LXN0cnVjdHVyZTogZmVhdHVyZS10YXJnZXRpbmcuY3JlYXRlLXRhcmdldCgkcXVlcnksIHN0cnVjdHVyZSk7XG4gICYubWRjLWxpc3QtaXRlbS0td2l0aC10d28tbGluZXMge1xuICAgIC5tZGMtbGlzdC1pdGVtX19lbmQge1xuICAgICAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmcudGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgICAgYWxpZ24tc2VsZjogJGFsaWdubWVudDtcbiAgICAgICAgbWFyZ2luLXRvcDogJG9mZnNldDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuQG1peGluIHRocmVlLWxpbmUtaXRlbS1lbmQtYWxpZ25tZW50KFxuICAkYWxpZ25tZW50LFxuICAkb2Zmc2V0OiAwLFxuICAkcXVlcnk6IGZlYXR1cmUtdGFyZ2V0aW5nLmFsbCgpXG4pIHtcbiAgJGZlYXQtc3RydWN0dXJlOiBmZWF0dXJlLXRhcmdldGluZy5jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgc3RydWN0dXJlKTtcbiAgJi5tZGMtbGlzdC1pdGVtLS13aXRoLXRocmVlLWxpbmVzIHtcbiAgICAubWRjLWxpc3QtaXRlbV9fZW5kIHtcbiAgICAgIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLnRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICAgIGFsaWduLXNlbGY6ICRhbGlnbm1lbnQ7XG4gICAgICAgIG1hcmdpbi10b3A6ICRvZmZzZXQ7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBpdGVtLXN0YXJ0LXNwYWNpbmcoXG4gICRsZWFkaW5nLFxuICAkdHJhaWxpbmc6ICRsZWFkaW5nLFxuICAkcXVlcnk6IGZlYXR1cmUtdGFyZ2V0aW5nLmFsbCgpXG4pIHtcbiAgJGZlYXQtc3RydWN0dXJlOiBmZWF0dXJlLXRhcmdldGluZy5jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgc3RydWN0dXJlKTtcbiAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmcudGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAvLyBFeHRyYSBzcGVjaWZpY2l0eSBuZWVkZWQgdG8gb3ZlcnJpZGUgZGVmYXVsdCBjdXN0b21pemF0aW9ucy5cbiAgICAmLm1kYy1saXN0LWl0ZW0ge1xuICAgICAgLy8gV2UgcmVseSBvbiBhdXRvIHRvIGF2b2lkIGNsb2JiZXJpbmcgdGhlIG9wcG9zaXRlIHBhZGRpbmcuXG4gICAgICBAaW5jbHVkZSBydGwucmVmbGV4aXZlLXByb3BlcnR5KHBhZGRpbmcsIDAsIGF1dG8pO1xuICAgIH1cblxuICAgIC5tZGMtbGlzdC1pdGVtX19zdGFydCB7XG4gICAgICBAaW5jbHVkZSBydGwucmVmbGV4aXZlLXByb3BlcnR5KG1hcmdpbiwgJGxlYWRpbmcsICR0cmFpbGluZyk7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBpdGVtLWVuZC1zcGFjaW5nKFxuICAkbGVhZGluZyxcbiAgJHRyYWlsaW5nOiAkbGVhZGluZyxcbiAgJHF1ZXJ5OiBmZWF0dXJlLXRhcmdldGluZy5hbGwoKVxuKSB7XG4gICRmZWF0LXN0cnVjdHVyZTogZmVhdHVyZS10YXJnZXRpbmcuY3JlYXRlLXRhcmdldCgkcXVlcnksIHN0cnVjdHVyZSk7XG4gIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLnRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgLy8gRXh0cmEgc3BlY2lmaWNpdHkgbmVlZGVkIHRvIG92ZXJyaWRlIGRlZmF1bHQgY3VzdG9taXphdGlvbnMuXG4gICAgJi5tZGMtbGlzdC1pdGVtIHtcbiAgICAgIC8vIFdlIHJlbHkgb24gYXV0byB0byBhdm9pZCBjbG9iYmVyaW5nIHRoZSBvcHBvc2l0ZSBwYWRkaW5nLlxuICAgICAgQGluY2x1ZGUgcnRsLnJlZmxleGl2ZS1wcm9wZXJ0eShwYWRkaW5nLCBhdXRvLCAwKTtcbiAgICB9XG5cbiAgICAubWRjLWxpc3QtaXRlbV9fZW5kIHtcbiAgICAgIEBpbmNsdWRlIHJ0bC5yZWZsZXhpdmUtcHJvcGVydHkobWFyZ2luLCAkbGVhZGluZywgJHRyYWlsaW5nKTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIGl0ZW0tc3RhcnQtc2l6ZShcbiAgJHdpZHRoLFxuICAkaGVpZ2h0OiAkd2lkdGgsXG4gICRxdWVyeTogZmVhdHVyZS10YXJnZXRpbmcuYWxsKClcbikge1xuICAkZmVhdC1zdHJ1Y3R1cmU6IGZlYXR1cmUtdGFyZ2V0aW5nLmNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBzdHJ1Y3R1cmUpO1xuICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy50YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgIC5tZGMtbGlzdC1pdGVtX19zdGFydCB7XG4gICAgICB3aWR0aDogJHdpZHRoO1xuICAgICAgaGVpZ2h0OiAkaGVpZ2h0O1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gaXRlbS1lbmQtc2l6ZSgkd2lkdGgsICRoZWlnaHQ6ICR3aWR0aCwgJHF1ZXJ5OiBmZWF0dXJlLXRhcmdldGluZy5hbGwoKSkge1xuICAkZmVhdC1zdHJ1Y3R1cmU6IGZlYXR1cmUtdGFyZ2V0aW5nLmNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBzdHJ1Y3R1cmUpO1xuICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy50YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgIC5tZGMtbGlzdC1pdGVtX19lbmQge1xuICAgICAgd2lkdGg6ICR3aWR0aDtcbiAgICAgIGhlaWdodDogJGhlaWdodDtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIGxpc3QtaXRlbS1zZWxlY3RlZC1jb250YWluZXItY29sb3IoJGNvbG9yKSB7XG4gICYubWRjLWxpc3QtaXRlbS5tZGMtbGlzdC1pdGVtLS1zZWxlY3RlZCB7XG4gICAgQGluY2x1ZGUgdGhlbWUucHJvcGVydHkoYmFja2dyb3VuZC1jb2xvciwgJGNvbG9yKTtcbiAgfVxufVxuXG5AbWl4aW4gbGlzdC1wcmltYXJ5LXRleHQtdHlwb2dyYXBoeSgkdHlwb2dyYXBoeS10aGVtZSkge1xuICAubWRjLWxpc3QtaXRlbV9fcHJpbWFyeS10ZXh0IHtcbiAgICBAaW5jbHVkZSB0eXBvZ3JhcGh5LnRoZW1lLXN0eWxlcygkdHlwb2dyYXBoeS10aGVtZSk7XG4gIH1cbn1cblxuQG1peGluIGxpc3QtcHJpbWFyeS10ZXh0LWluay1jb2xvcigkY29sb3IsICRxdWVyeTogZmVhdHVyZS10YXJnZXRpbmcuYWxsKCkpIHtcbiAgJGZlYXQtY29sb3I6IGZlYXR1cmUtdGFyZ2V0aW5nLmNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBjb2xvcik7XG5cbiAgLm1kYy1saXN0LWl0ZW1fX3ByaW1hcnktdGV4dCB7XG4gICAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmcudGFyZ2V0cygkZmVhdC1jb2xvcikge1xuICAgICAgQGluY2x1ZGUgdGhlbWUucHJvcGVydHkoY29sb3IsICRjb2xvcik7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBsaXN0LXNlY29uZGFyeS10ZXh0LWluay1jb2xvcigkY29sb3IsICRxdWVyeTogZmVhdHVyZS10YXJnZXRpbmcuYWxsKCkpIHtcbiAgJGZlYXQtY29sb3I6IGZlYXR1cmUtdGFyZ2V0aW5nLmNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBjb2xvcik7XG5cbiAgLm1kYy1saXN0LWl0ZW1fX3NlY29uZGFyeS10ZXh0IHtcbiAgICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy50YXJnZXRzKCRmZWF0LWNvbG9yKSB7XG4gICAgICBAaW5jbHVkZSB0aGVtZS5wcm9wZXJ0eShjb2xvciwgJGNvbG9yKTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIGxpc3Qtc2Vjb25kYXJ5LXRleHQtdHlwb2dyYXBoeSgkdHlwb2dyYXBoeS10aGVtZSkge1xuICAubWRjLWxpc3QtaXRlbV9fc2Vjb25kYXJ5LXRleHQge1xuICAgIEBpbmNsdWRlIHR5cG9ncmFwaHkudGhlbWUtc3R5bGVzKCR0eXBvZ3JhcGh5LXRoZW1lKTtcbiAgfVxufVxuXG5AbWl4aW4gbGlzdC1vdmVybGluZS10ZXh0LWluay1jb2xvcigkY29sb3IsICRxdWVyeTogZmVhdHVyZS10YXJnZXRpbmcuYWxsKCkpIHtcbiAgJGZlYXQtY29sb3I6IGZlYXR1cmUtdGFyZ2V0aW5nLmNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBjb2xvcik7XG5cbiAgLm1kYy1saXN0LWl0ZW1fX292ZXJsaW5lLXRleHQge1xuICAgIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLnRhcmdldHMoJGZlYXQtY29sb3IpIHtcbiAgICAgIEBpbmNsdWRlIHRoZW1lLnByb3BlcnR5KGNvbG9yLCAkY29sb3IpO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbGlzdC1tZXRhLXRleHQtaW5rLWNvbG9yKCRjb2xvciwgJHF1ZXJ5OiBmZWF0dXJlLXRhcmdldGluZy5hbGwoKSkge1xuICAkZmVhdC1jb2xvcjogZmVhdHVyZS10YXJnZXRpbmcuY3JlYXRlLXRhcmdldCgkcXVlcnksIGNvbG9yKTtcblxuICAubWRjLWxpc3QtaXRlbV9fZW5kIHtcbiAgICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy50YXJnZXRzKCRmZWF0LWNvbG9yKSB7XG4gICAgICBAaW5jbHVkZSB0aGVtZS5wcm9wZXJ0eShjb2xvciwgJGNvbG9yKTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIGxpc3QtaWNvbi1pbmstY29sb3IoJGNvbG9yLCAkcXVlcnk6IGZlYXR1cmUtdGFyZ2V0aW5nLmFsbCgpKSB7XG4gICRmZWF0LWNvbG9yOiBmZWF0dXJlLXRhcmdldGluZy5jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgY29sb3IpO1xuXG4gIC5tZGMtbGlzdC1pdGVtLS13aXRoLWxlYWRpbmctaWNvbiAubWRjLWxpc3QtaXRlbV9fc3RhcnQsXG4gIC5tZGMtbGlzdC1pdGVtLS13aXRoLXRyYWlsaW5nLWljb24gLm1kYy1saXN0LWl0ZW1fX2VuZCB7XG4gICAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmcudGFyZ2V0cygkZmVhdC1jb2xvcikge1xuICAgICAgQGluY2x1ZGUgdGhlbWUucHJvcGVydHkoY29sb3IsICRjb2xvcik7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBsaXN0LWljb24tZmlsbC1jb2xvcigkY29sb3IsICRxdWVyeTogZmVhdHVyZS10YXJnZXRpbmcuYWxsKCkpIHtcbiAgJGZlYXQtY29sb3I6IGZlYXR1cmUtdGFyZ2V0aW5nLmNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBjb2xvcik7XG5cbiAgLm1kYy1saXN0LWl0ZW0tLXdpdGgtbGVhZGluZy1pY29uIC5tZGMtbGlzdC1pdGVtX19zdGFydCxcbiAgLm1kYy1saXN0LWl0ZW0tLXdpdGgtdHJhaWxpbmctaWNvbiAubWRjLWxpc3QtaXRlbV9fZW5kIHtcbiAgICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy50YXJnZXRzKCRmZWF0LWNvbG9yKSB7XG4gICAgICBAaW5jbHVkZSB0aGVtZS5wcm9wZXJ0eShiYWNrZ3JvdW5kLWNvbG9yLCAkY29sb3IpO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbGlzdC1zZWxlY3RlZC1pbmstY29sb3IoJGNvbG9yLCAkcXVlcnk6IGZlYXR1cmUtdGFyZ2V0aW5nLmFsbCgpKSB7XG4gICRmZWF0LWNvbG9yOiBmZWF0dXJlLXRhcmdldGluZy5jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgY29sb3IpO1xuXG4gIC5tZGMtbGlzdC1pdGVtLS1zZWxlY3RlZCxcbiAgLm1kYy1saXN0LWl0ZW0tLWFjdGl2YXRlZCB7XG4gICAgQGluY2x1ZGUgbGlzdC1wcmltYXJ5LXRleHQtaW5rLWNvbG9yKCRjb2xvciwgJHF1ZXJ5KTtcbiAgICBAaW5jbHVkZSBfaXRlbS1pY29uLWluay1jb2xvcigkY29sb3IsICRsZWFkaW5nLW9ubHk6IHRydWUsICRxdWVyeTogJHF1ZXJ5KTtcbiAgfVxufVxuXG5AbWl4aW4gbGlzdC1zZWxlY3RlZC1tZXRhLXRleHQtaW5rLWNvbG9yKFxuICAkY29sb3IsXG4gICRxdWVyeTogZmVhdHVyZS10YXJnZXRpbmcuYWxsKClcbikge1xuICAkZmVhdC1jb2xvcjogZmVhdHVyZS10YXJnZXRpbmcuY3JlYXRlLXRhcmdldCgkcXVlcnksIGNvbG9yKTtcblxuICAubWRjLWxpc3QtaXRlbS0tc2VsZWN0ZWQsXG4gIC5tZGMtbGlzdC1pdGVtLS1hY3RpdmF0ZWQge1xuICAgIEBpbmNsdWRlIGxpc3QtbWV0YS10ZXh0LWluay1jb2xvcigkY29sb3IsICRxdWVyeSk7XG4gIH1cbn1cblxuQG1peGluIGxpc3QtZGlzYWJsZWQtaW5rLWNvbG9yKCRjb2xvciwgJHF1ZXJ5OiBmZWF0dXJlLXRhcmdldGluZy5hbGwoKSkge1xuICAkZmVhdC1jb2xvcjogZmVhdHVyZS10YXJnZXRpbmcuY3JlYXRlLXRhcmdldCgkcXVlcnksIGNvbG9yKTtcblxuICAubWRjLWxpc3QtaXRlbS0tZGlzYWJsZWQge1xuICAgIEBpbmNsdWRlIGxpc3QtcHJpbWFyeS10ZXh0LWluay1jb2xvcigkY29sb3IsICRxdWVyeSk7XG4gICAgQGluY2x1ZGUgbGlzdC1zZWNvbmRhcnktdGV4dC1pbmstY29sb3IoJGNvbG9yLCAkcXVlcnkpO1xuICAgIEBpbmNsdWRlIGxpc3Qtb3ZlcmxpbmUtdGV4dC1pbmstY29sb3IoJGNvbG9yLCAkcXVlcnkpO1xuICAgIEBpbmNsdWRlIF9pdGVtLWljb24taW5rLWNvbG9yKCRjb2xvciwgJHF1ZXJ5OiAkcXVlcnkpO1xuICAgIEBpbmNsdWRlIGl0ZW0tbWV0YS10ZXh0LWluay1jb2xvcigkY29sb3IsICRxdWVyeSk7XG4gIH1cbn1cblxuQG1peGluIGxpc3QtZGlzYWJsZWQtb3BhY2l0eSgkb3BhY2l0eSwgJHF1ZXJ5OiBmZWF0dXJlLXRhcmdldGluZy5hbGwoKSkge1xuICAkZmVhdC1jb2xvcjogZmVhdHVyZS10YXJnZXRpbmcuY3JlYXRlLXRhcmdldCgkcXVlcnksIGNvbG9yKTtcblxuICAubWRjLWxpc3QtaXRlbS0tZGlzYWJsZWQge1xuICAgIC5tZGMtbGlzdC1pdGVtX19zdGFydCxcbiAgICAubWRjLWxpc3QtaXRlbV9fY29udGVudCxcbiAgICAubWRjLWxpc3QtaXRlbV9fZW5kIHtcbiAgICAgIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLnRhcmdldHMoJGZlYXQtY29sb3IpIHtcbiAgICAgICAgb3BhY2l0eTogJG9wYWNpdHk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBncm91cC1zdWJoZWFkZXItaW5rLWNvbG9yKCRjb2xvciwgJHF1ZXJ5OiBmZWF0dXJlLXRhcmdldGluZy5hbGwoKSkge1xuICAkZmVhdC1jb2xvcjogZmVhdHVyZS10YXJnZXRpbmcuY3JlYXRlLXRhcmdldCgkcXVlcnksIGNvbG9yKTtcblxuICAubWRjLWRlcHJlY2F0ZWQtbGlzdC1ncm91cF9fc3ViaGVhZGVyIHtcbiAgICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy50YXJnZXRzKCRmZWF0LWNvbG9yKSB7XG4gICAgICBAaW5jbHVkZSB0aGVtZS5wcm9wZXJ0eShjb2xvciwgJGNvbG9yKTtcbiAgICB9XG4gIH1cbn1cblxuLy8vXG4vLy8gU2V0cyBzaGFwZSByYWRpdXMgKHJvdW5kZWQpIHRvIHNpbmdsZSBsaW5lIGxpc3QgdmFyaWFudC5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyIHwgTGlzdDxOdW1iZXI+fSAkcmFkaXVzIFJhZGl1cyBzaXplIGluIGBweGAgb3IgcGVyY2VudGFnZS4gSXQgY2FuIGJlIDQgdmFsdWUgY29ybmVyIG9yIHNpbmdsZSByYWRpdXMuXG4vLy8gICAgIFNldCB0byBgNTAlYCBmb3Igcm91bmRlZCBzaGFwZS5cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRydGwtcmVmbGV4aXZlIFNldCB0byB0cnVlIHRvIGZsaXAgYm9yZGVyIHJhZGl1cyBpbiBSVEwgY29udGV4dC4gRGVmYXVsdHMgdG8gYGZhbHNlYC5cbi8vLyBAcGFyYW0ge051bWJlcn0gJGRlbnNpdHktc2NhbGUgRGVuc2l0eSBzY2FsZSBvZiBzaW5nbGUgbGluZSBsaXN0LiBTZXQgdGhpcyBvbmx5IHdoZW4gY3VzdG9tIGRlbnNpdHkgaXMgYXBwbGllZC5cbi8vLyAgICAgRGVmYXVsdHMgdG8gYCRtZGMtZGVwcmVjYXRlZC1saXN0LXNpbmdsZS1saW5lLWRlbnNpdHktc2NhbGVgLlxuLy8vXG4vLy8gQGFjY2VzcyBwdWJsaWNcbi8vL1xuQG1peGluIG9uZS1saW5lLWxpc3QtcmFkaXVzKFxuICAkcmFkaXVzLFxuICAkcnRsLXJlZmxleGl2ZTogZmFsc2UsXG4gICRkZW5zaXR5LXNjYWxlOiB2YXJpYWJsZXMuJG9uZS1saW5lLWl0ZW0tZGVuc2l0eS1zY2FsZSxcbiAgJHF1ZXJ5OiBmZWF0dXJlLXRhcmdldGluZy5hbGwoKVxuKSB7XG4gIC5tZGMtbGlzdC1pdGVtLS13aXRoLW9uZS1saW5lIHtcbiAgICBAaW5jbHVkZSBzaGFwZS1taXhpbnMucmFkaXVzKFxuICAgICAgJHJhZGl1cyxcbiAgICAgICRydGwtcmVmbGV4aXZlLFxuICAgICAgJGNvbXBvbmVudC1oZWlnaHQ6XG4gICAgICAgIGRlbnNpdHktZnVuY3Rpb25zLnByb3AtdmFsdWUoXG4gICAgICAgICAgJGRlbnNpdHktY29uZmlnOiB2YXJpYWJsZXMuJG9uZS1saW5lLWl0ZW0tZGVuc2l0eS1jb25maWcsXG4gICAgICAgICAgJGRlbnNpdHktc2NhbGU6ICRkZW5zaXR5LXNjYWxlLFxuICAgICAgICAgICRwcm9wZXJ0eS1uYW1lOiBoZWlnaHRcbiAgICAgICAgKSxcbiAgICAgICRxdWVyeTogJHF1ZXJ5XG4gICAgKTtcblxuICAgICYubWRjLWxpc3QtaXRlbS0td2l0aC1sZWFkaW5nLWF2YXRhcixcbiAgICAmLm1kYy1saXN0LWl0ZW0tLXdpdGgtbGVhZGluZy1pY29uLFxuICAgICYubWRjLWxpc3QtaXRlbS0td2l0aC1sZWFkaW5nLXRodW1ibmFpbCxcbiAgICAmLm1kYy1saXN0LWl0ZW0tLXdpdGgtbGVhZGluZy1jaGVja2JveCxcbiAgICAmLm1kYy1saXN0LWl0ZW0tLXdpdGgtbGVhZGluZy1yYWRpbyxcbiAgICAmLm1kYy1saXN0LWl0ZW0tLXdpdGgtbGVhZGluZy1zd2l0Y2gge1xuICAgICAgQGluY2x1ZGUgc2hhcGUtbWl4aW5zLnJhZGl1cyhcbiAgICAgICAgJHJhZGl1cyxcbiAgICAgICAgJHJ0bC1yZWZsZXhpdmUsXG4gICAgICAgICRjb21wb25lbnQtaGVpZ2h0OlxuICAgICAgICAgIGRlbnNpdHktZnVuY3Rpb25zLnByb3AtdmFsdWUoXG4gICAgICAgICAgICAkZGVuc2l0eS1jb25maWc6IHZhcmlhYmxlcy4kb25lLWxpbmUtaXRlbS10YWxsLWRlbnNpdHktY29uZmlnLFxuICAgICAgICAgICAgJGRlbnNpdHktc2NhbGU6ICRkZW5zaXR5LXNjYWxlLFxuICAgICAgICAgICAgJHByb3BlcnR5LW5hbWU6IGhlaWdodFxuICAgICAgICAgICksXG4gICAgICAgICRxdWVyeTogJHF1ZXJ5XG4gICAgICApO1xuICAgIH1cblxuICAgICYubWRjLWxpc3QtaXRlbS0td2l0aC1sZWFkaW5nLWltYWdlLFxuICAgICYubWRjLWxpc3QtaXRlbS0td2l0aC1sZWFkaW5nLXZpZGVvIHtcbiAgICAgIEBpbmNsdWRlIHNoYXBlLW1peGlucy5yYWRpdXMoXG4gICAgICAgICRyYWRpdXMsXG4gICAgICAgICRydGwtcmVmbGV4aXZlLFxuICAgICAgICAkY29tcG9uZW50LWhlaWdodDpcbiAgICAgICAgICBkZW5zaXR5LWZ1bmN0aW9ucy5wcm9wLXZhbHVlKFxuICAgICAgICAgICAgJGRlbnNpdHktY29uZmlnOiB2YXJpYWJsZXMuJG9uZS1saW5lLWl0ZW0tdGFsbGVyLWRlbnNpdHktY29uZmlnLFxuICAgICAgICAgICAgJGRlbnNpdHktc2NhbGU6ICRkZW5zaXR5LXNjYWxlLFxuICAgICAgICAgICAgJHByb3BlcnR5LW5hbWU6IGhlaWdodFxuICAgICAgICAgICksXG4gICAgICAgICRxdWVyeTogJHF1ZXJ5XG4gICAgICApO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gdHdvLWxpbmUtbGlzdC1yYWRpdXMoXG4gICRyYWRpdXMsXG4gICRydGwtcmVmbGV4aXZlOiBmYWxzZSxcbiAgJGRlbnNpdHktc2NhbGU6IHZhcmlhYmxlcy4kdHdvLWxpbmUtaXRlbS1kZW5zaXR5LXNjYWxlLFxuICAkcXVlcnk6IGZlYXR1cmUtdGFyZ2V0aW5nLmFsbCgpXG4pIHtcbiAgLm1kYy1saXN0LWl0ZW0tLXdpdGgtdHdvLWxpbmVzIHtcbiAgICBAaW5jbHVkZSBzaGFwZS1taXhpbnMucmFkaXVzKFxuICAgICAgJHJhZGl1cyxcbiAgICAgICRydGwtcmVmbGV4aXZlLFxuICAgICAgJGNvbXBvbmVudC1oZWlnaHQ6XG4gICAgICAgIGRlbnNpdHktZnVuY3Rpb25zLnByb3AtdmFsdWUoXG4gICAgICAgICAgJGRlbnNpdHktY29uZmlnOiB2YXJpYWJsZXMuJHR3by1saW5lLWl0ZW0tZGVuc2l0eS1jb25maWcsXG4gICAgICAgICAgJGRlbnNpdHktc2NhbGU6ICRkZW5zaXR5LXNjYWxlLFxuICAgICAgICAgICRwcm9wZXJ0eS1uYW1lOiBoZWlnaHRcbiAgICAgICAgKSxcbiAgICAgICRxdWVyeTogJHF1ZXJ5XG4gICAgKTtcblxuICAgICYubWRjLWxpc3QtaXRlbS0td2l0aC1sZWFkaW5nLWF2YXRhcixcbiAgICAmLm1kYy1saXN0LWl0ZW0tLXdpdGgtbGVhZGluZy1pY29uLFxuICAgICYubWRjLWxpc3QtaXRlbS0td2l0aC1sZWFkaW5nLXRodW1ibmFpbCxcbiAgICAmLm1kYy1saXN0LWl0ZW0tLXdpdGgtbGVhZGluZy1jaGVja2JveCxcbiAgICAmLm1kYy1saXN0LWl0ZW0tLXdpdGgtbGVhZGluZy1yYWRpbyxcbiAgICAmLm1kYy1saXN0LWl0ZW0tLXdpdGgtbGVhZGluZy1zd2l0Y2gsXG4gICAgJi5tZGMtbGlzdC1pdGVtLS13aXRoLWxlYWRpbmctaW1hZ2UsXG4gICAgJi5tZGMtbGlzdC1pdGVtLS13aXRoLWxlYWRpbmctdmlkZW8ge1xuICAgICAgQGluY2x1ZGUgc2hhcGUtbWl4aW5zLnJhZGl1cyhcbiAgICAgICAgJHJhZGl1cyxcbiAgICAgICAgJHJ0bC1yZWZsZXhpdmUsXG4gICAgICAgICRjb21wb25lbnQtaGVpZ2h0OlxuICAgICAgICAgIGRlbnNpdHktZnVuY3Rpb25zLnByb3AtdmFsdWUoXG4gICAgICAgICAgICAkZGVuc2l0eS1jb25maWc6IHZhcmlhYmxlcy4kdHdvLWxpbmUtaXRlbS10YWxsLWRlbnNpdHktY29uZmlnLFxuICAgICAgICAgICAgJGRlbnNpdHktc2NhbGU6ICRkZW5zaXR5LXNjYWxlLFxuICAgICAgICAgICAgJHByb3BlcnR5LW5hbWU6IGhlaWdodFxuICAgICAgICAgICksXG4gICAgICAgICRxdWVyeTogJHF1ZXJ5XG4gICAgICApO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gdGhyZWUtbGluZS1saXN0LXJhZGl1cyhcbiAgJHJhZGl1cyxcbiAgJHJ0bC1yZWZsZXhpdmU6IGZhbHNlLFxuICAkZGVuc2l0eS1zY2FsZTogdmFyaWFibGVzLiR0aHJlZS1saW5lLWl0ZW0tZGVuc2l0eS1zY2FsZSxcbiAgJHF1ZXJ5OiBmZWF0dXJlLXRhcmdldGluZy5hbGwoKVxuKSB7XG4gIC5tZGMtbGlzdC1pdGVtLS13aXRoLXRocmVlLWxpbmVzIHtcbiAgICBAaW5jbHVkZSBzaGFwZS1taXhpbnMucmFkaXVzKFxuICAgICAgJHJhZGl1cyxcbiAgICAgICRydGwtcmVmbGV4aXZlLFxuICAgICAgJGNvbXBvbmVudC1oZWlnaHQ6XG4gICAgICAgIGRlbnNpdHktZnVuY3Rpb25zLnByb3AtdmFsdWUoXG4gICAgICAgICAgJGRlbnNpdHktY29uZmlnOiB2YXJpYWJsZXMuJHRocmVlLWxpbmUtaXRlbS1kZW5zaXR5LWNvbmZpZyxcbiAgICAgICAgICAkZGVuc2l0eS1zY2FsZTogJGRlbnNpdHktc2NhbGUsXG4gICAgICAgICAgJHByb3BlcnR5LW5hbWU6IGhlaWdodFxuICAgICAgICApLFxuICAgICAgJHF1ZXJ5OiAkcXVlcnlcbiAgICApO1xuICB9XG59XG5cbkBtaXhpbiBkaXZpZGVyLWNvbG9yKCRjb2xvciwgJHF1ZXJ5OiBmZWF0dXJlLXRhcmdldGluZy5hbGwoKSkge1xuICAkZmVhdC1jb2xvcjogZmVhdHVyZS10YXJnZXRpbmcuY3JlYXRlLXRhcmdldCgkcXVlcnksIGNvbG9yKTtcblxuICAubWRjLWxpc3QtZGl2aWRlciB7XG4gICAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmcudGFyZ2V0cygkZmVhdC1jb2xvcikge1xuICAgICAgQGluY2x1ZGUgdGhlbWUucHJvcGVydHkoYmFja2dyb3VuZC1jb2xvciwgJGNvbG9yKTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIGRpdmlkZXItaGVpZ2h0KCRoZWlnaHQsICRxdWVyeTogZmVhdHVyZS10YXJnZXRpbmcuYWxsKCkpIHtcbiAgJGZlYXQtc3RydWN0dXJlOiBmZWF0dXJlLXRhcmdldGluZy5jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgc3RydWN0dXJlKTtcblxuICAubWRjLWxpc3QtZGl2aWRlciB7XG4gICAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmcudGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIEBpbmNsdWRlIHRoZW1lLnByb3BlcnR5KGhlaWdodCwgJGhlaWdodCk7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBkaXZpZGVyLWxlYWRpbmctaW5zZXQoJGluc2V0LCAkcXVlcnk6IGZlYXR1cmUtdGFyZ2V0aW5nLmFsbCgpKSB7XG4gICRmZWF0LXN0cnVjdHVyZTogZmVhdHVyZS10YXJnZXRpbmcuY3JlYXRlLXRhcmdldCgkcXVlcnksIHN0cnVjdHVyZSk7XG4gICYubWRjLWxpc3QtZGl2aWRlci0td2l0aC1sZWFkaW5nLWluc2V0IHtcbiAgICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy50YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgLy8gV2UgcmVseSBvbiBhdXRvIHRvIGF2b2lkIGNsb2JiZXJpbmcgdGhlIG9wcG9zaXRlIHBhZGRpbmcuXG4gICAgICBAaW5jbHVkZSBydGwucmVmbGV4aXZlLXByb3BlcnR5KHBhZGRpbmcsICRpbnNldCwgYXV0byk7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBkaXZpZGVyLXRyYWlsaW5nLWluc2V0KCRpbnNldCwgJHF1ZXJ5OiBmZWF0dXJlLXRhcmdldGluZy5hbGwoKSkge1xuICAkZmVhdC1zdHJ1Y3R1cmU6IGZlYXR1cmUtdGFyZ2V0aW5nLmNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBzdHJ1Y3R1cmUpO1xuICAmLm1kYy1saXN0LWRpdmlkZXItLXdpdGgtdHJhaWxpbmctaW5zZXQge1xuICAgIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLnRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICAvLyBXZSByZWx5IG9uIGF1dG8gdG8gYXZvaWQgY2xvYmJlcmluZyB0aGUgb3Bwb3NpdGUgcGFkZGluZy5cbiAgICAgIEBpbmNsdWRlIHJ0bC5yZWZsZXhpdmUtcHJvcGVydHkocGFkZGluZywgYXV0bywgJGluc2V0KTtcbiAgICB9XG4gIH1cbn1cblxuLy8gVGhlIHB1YmxpYyBkZW5zaXR5IG1peGlucyBhcHBseSB0aGUgYXBwcm9wcmlhdGUgZGVuc2l0eSBzdHlsZXMgcmVnYXJkbGVzcyBvZlxuLy8gdGhlIGl0ZW0ncyBzdGFydCBjb250ZW50cy5cbkBtaXhpbiBvbmUtbGluZS1pdGVtLWRlbnNpdHkoXG4gICRkZW5zaXR5LXNjYWxlLFxuICAkZXhjbHVkZS12YXJpYW50czogZmFsc2UsXG4gICRxdWVyeTogZmVhdHVyZS10YXJnZXRpbmcuYWxsKClcbikge1xuICBAaW5jbHVkZSBfb25lLWxpbmUtaXRlbS1kZW5zaXR5KCRkZW5zaXR5LXNjYWxlLCAkcXVlcnk6ICRxdWVyeSk7XG5cbiAgQGlmIG5vdCAkZXhjbHVkZS12YXJpYW50cyB7XG4gICAgJi5tZGMtbGlzdC1pdGVtLS13aXRoLWxlYWRpbmctYXZhdGFyLFxuICAgICYubWRjLWxpc3QtaXRlbS0td2l0aC1sZWFkaW5nLWljb24sXG4gICAgJi5tZGMtbGlzdC1pdGVtLS13aXRoLWxlYWRpbmctdGh1bWJuYWlsLFxuICAgICYubWRjLWxpc3QtaXRlbS0td2l0aC1sZWFkaW5nLWNoZWNrYm94LFxuICAgICYubWRjLWxpc3QtaXRlbS0td2l0aC1sZWFkaW5nLXJhZGlvLFxuICAgICYubWRjLWxpc3QtaXRlbS0td2l0aC1sZWFkaW5nLXN3aXRjaCB7XG4gICAgICBAaW5jbHVkZSBfb25lLWxpbmUtaXRlbS10YWxsLWRlbnNpdHkoJGRlbnNpdHktc2NhbGUsICRxdWVyeTogJHF1ZXJ5KTtcbiAgICB9XG5cbiAgICAmLm1kYy1saXN0LWl0ZW0tLXdpdGgtbGVhZGluZy1pbWFnZSxcbiAgICAmLm1kYy1saXN0LWl0ZW0tLXdpdGgtbGVhZGluZy12aWRlbyB7XG4gICAgICBAaW5jbHVkZSBfb25lLWxpbmUtaXRlbS10YWxsZXItZGVuc2l0eSgkZGVuc2l0eS1zY2FsZSwgJHF1ZXJ5OiAkcXVlcnkpO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gdHdvLWxpbmUtaXRlbS1kZW5zaXR5KCRkZW5zaXR5LXNjYWxlLCAkcXVlcnk6IGZlYXR1cmUtdGFyZ2V0aW5nLmFsbCgpKSB7XG4gIEBpbmNsdWRlIF90d28tbGluZS1pdGVtLWRlbnNpdHkoJGRlbnNpdHktc2NhbGUsICRxdWVyeTogJHF1ZXJ5KTtcblxuICAmLm1kYy1saXN0LWl0ZW0tLXdpdGgtbGVhZGluZy1hdmF0YXIsXG4gICYubWRjLWxpc3QtaXRlbS0td2l0aC1sZWFkaW5nLWljb24sXG4gICYubWRjLWxpc3QtaXRlbS0td2l0aC1sZWFkaW5nLXRodW1ibmFpbCxcbiAgJi5tZGMtbGlzdC1pdGVtLS13aXRoLWxlYWRpbmctY2hlY2tib3gsXG4gICYubWRjLWxpc3QtaXRlbS0td2l0aC1sZWFkaW5nLXJhZGlvLFxuICAmLm1kYy1saXN0LWl0ZW0tLXdpdGgtbGVhZGluZy1zd2l0Y2gsXG4gICYubWRjLWxpc3QtaXRlbS0td2l0aC1sZWFkaW5nLWltYWdlLFxuICAmLm1kYy1saXN0LWl0ZW0tLXdpdGgtbGVhZGluZy12aWRlbyB7XG4gICAgQGluY2x1ZGUgX3R3by1saW5lLWl0ZW0tdGFsbC1kZW5zaXR5KCRkZW5zaXR5LXNjYWxlLCAkcXVlcnk6ICRxdWVyeSk7XG4gIH1cbn1cblxuQG1peGluIHRocmVlLWxpbmUtaXRlbS1kZW5zaXR5KFxuICAkZGVuc2l0eS1zY2FsZSxcbiAgJHF1ZXJ5OiBmZWF0dXJlLXRhcmdldGluZy5hbGwoKVxuKSB7XG4gIEBpbmNsdWRlIF90aHJlZS1saW5lLWl0ZW0tZGVuc2l0eSgkZGVuc2l0eS1zY2FsZSwgJHF1ZXJ5OiAkcXVlcnkpO1xufVxuXG4vL1xuLy8gUHJpdmF0ZVxuLy9cblxuLy8gVGhlIHByaXZhdGUgZGVuc2l0eSBtaXhpbnMgYWxsb3cgZGVuc2l0eSBwcm9wZXJ0aWVzIHRvIGJlIG92ZXJyaWRkZW5cbi8vIGluZGl2aWR1YWxseSB0byBhdm9pZCBpbmNyZWFzaW5nIHNwZWNpZmljaXR5LlxuQG1peGluIF9vbmUtbGluZS1pdGVtLWRlbnNpdHkoJGRlbnNpdHktc2NhbGUsICRxdWVyeTogZmVhdHVyZS10YXJnZXRpbmcuYWxsKCkpIHtcbiAgJGhlaWdodDogZGVuc2l0eS1mdW5jdGlvbnMucHJvcC12YWx1ZShcbiAgICAkZGVuc2l0eS1jb25maWc6IHZhcmlhYmxlcy4kb25lLWxpbmUtaXRlbS1kZW5zaXR5LWNvbmZpZyxcbiAgICAkZGVuc2l0eS1zY2FsZTogJGRlbnNpdHktc2NhbGUsXG4gICAgJHByb3BlcnR5LW5hbWU6IGhlaWdodCxcbiAgKTtcblxuICBAaW5jbHVkZSBvbmUtbGluZS1pdGVtLWhlaWdodCgkaGVpZ2h0LCAkcXVlcnk6ICRxdWVyeSk7XG59XG5cbkBtaXhpbiBfb25lLWxpbmUtaXRlbS10YWxsLWRlbnNpdHkoXG4gICRkZW5zaXR5LXNjYWxlLFxuICAkcXVlcnk6IGZlYXR1cmUtdGFyZ2V0aW5nLmFsbCgpXG4pIHtcbiAgJGhlaWdodDogZGVuc2l0eS1mdW5jdGlvbnMucHJvcC12YWx1ZShcbiAgICAkZGVuc2l0eS1jb25maWc6IHZhcmlhYmxlcy4kb25lLWxpbmUtaXRlbS10YWxsLWRlbnNpdHktY29uZmlnLFxuICAgICRkZW5zaXR5LXNjYWxlOiAkZGVuc2l0eS1zY2FsZSxcbiAgICAkcHJvcGVydHktbmFtZTogaGVpZ2h0LFxuICApO1xuXG4gIEBpbmNsdWRlIG9uZS1saW5lLWl0ZW0taGVpZ2h0KCRoZWlnaHQsICRxdWVyeTogJHF1ZXJ5KTtcbn1cblxuQG1peGluIF9vbmUtbGluZS1pdGVtLXRhbGxlci1kZW5zaXR5KFxuICAkZGVuc2l0eS1zY2FsZSxcbiAgJHF1ZXJ5OiBmZWF0dXJlLXRhcmdldGluZy5hbGwoKVxuKSB7XG4gICRoZWlnaHQ6IGRlbnNpdHktZnVuY3Rpb25zLnByb3AtdmFsdWUoXG4gICAgJGRlbnNpdHktY29uZmlnOiB2YXJpYWJsZXMuJG9uZS1saW5lLWl0ZW0tdGFsbGVyLWRlbnNpdHktY29uZmlnLFxuICAgICRkZW5zaXR5LXNjYWxlOiAkZGVuc2l0eS1zY2FsZSxcbiAgICAkcHJvcGVydHktbmFtZTogaGVpZ2h0LFxuICApO1xuXG4gIEBpbmNsdWRlIG9uZS1saW5lLWl0ZW0taGVpZ2h0KCRoZWlnaHQsICRxdWVyeTogJHF1ZXJ5KTtcbn1cblxuQG1peGluIF90d28tbGluZS1pdGVtLWRlbnNpdHkoJGRlbnNpdHktc2NhbGUsICRxdWVyeTogZmVhdHVyZS10YXJnZXRpbmcuYWxsKCkpIHtcbiAgJGZlYXQtc3RydWN0dXJlOiBmZWF0dXJlLXRhcmdldGluZy5jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgc3RydWN0dXJlKTtcbiAgJGhlaWdodDogZGVuc2l0eS1mdW5jdGlvbnMucHJvcC12YWx1ZShcbiAgICAkZGVuc2l0eS1jb25maWc6IHZhcmlhYmxlcy4kdHdvLWxpbmUtaXRlbS1kZW5zaXR5LWNvbmZpZyxcbiAgICAkZGVuc2l0eS1zY2FsZTogJGRlbnNpdHktc2NhbGUsXG4gICAgJHByb3BlcnR5LW5hbWU6IGhlaWdodCxcbiAgKTtcblxuICBAaW5jbHVkZSB0d28tbGluZS1pdGVtLWhlaWdodCgkaGVpZ2h0LCAkcXVlcnk6ICRxdWVyeSk7XG5cbiAgQGlmICgkZGVuc2l0eS1zY2FsZSBhbmQgJGRlbnNpdHktc2NhbGUgIT0gMCkge1xuICAgICYubWRjLWxpc3QtaXRlbS0td2l0aC10d28tbGluZXMge1xuICAgICAgLm1kYy1saXN0LWl0ZW1fX2NvbnRlbnQge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgIH1cbiAgICAgIC5tZGMtbGlzdC1pdGVtX19wcmltYXJ5LXRleHQsXG4gICAgICAubWRjLWxpc3QtaXRlbV9fc2Vjb25kYXJ5LXRleHQge1xuICAgICAgICBtYXJnaW4tdG9wOiAwcHg7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDBweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gX3R3by1saW5lLWl0ZW0tdGFsbC1kZW5zaXR5KFxuICAkZGVuc2l0eS1zY2FsZSxcbiAgJHF1ZXJ5OiBmZWF0dXJlLXRhcmdldGluZy5hbGwoKVxuKSB7XG4gICRoZWlnaHQ6IGRlbnNpdHktZnVuY3Rpb25zLnByb3AtdmFsdWUoXG4gICAgJGRlbnNpdHktY29uZmlnOiB2YXJpYWJsZXMuJHR3by1saW5lLWl0ZW0tdGFsbC1kZW5zaXR5LWNvbmZpZyxcbiAgICAkZGVuc2l0eS1zY2FsZTogJGRlbnNpdHktc2NhbGUsXG4gICAgJHByb3BlcnR5LW5hbWU6IGhlaWdodCxcbiAgKTtcblxuICBAaW5jbHVkZSB0d28tbGluZS1pdGVtLWhlaWdodCgkaGVpZ2h0LCAkcXVlcnk6ICRxdWVyeSk7XG59XG5cbkBtaXhpbiBfdGhyZWUtbGluZS1pdGVtLWRlbnNpdHkoXG4gICRkZW5zaXR5LXNjYWxlLFxuICAkcXVlcnk6IGZlYXR1cmUtdGFyZ2V0aW5nLmFsbCgpXG4pIHtcbiAgJGhlaWdodDogZGVuc2l0eS1mdW5jdGlvbnMucHJvcC12YWx1ZShcbiAgICAkZGVuc2l0eS1jb25maWc6IHZhcmlhYmxlcy4kdGhyZWUtbGluZS1pdGVtLWRlbnNpdHktY29uZmlnLFxuICAgICRkZW5zaXR5LXNjYWxlOiAkZGVuc2l0eS1zY2FsZSxcbiAgICAkcHJvcGVydHktbmFtZTogaGVpZ2h0LFxuICApO1xuXG4gIEBpbmNsdWRlIHRocmVlLWxpbmUtaXRlbS1oZWlnaHQoJGhlaWdodCwgJHF1ZXJ5OiAkcXVlcnkpO1xufVxuXG5AbWl4aW4gbGlzdC1iYXNlKCRxdWVyeTogZmVhdHVyZS10YXJnZXRpbmcuYWxsKCkpIHtcbiAgJGZlYXQtY29sb3I6IGZlYXR1cmUtdGFyZ2V0aW5nLmNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBjb2xvcik7XG4gICRmZWF0LXN0cnVjdHVyZTogZmVhdHVyZS10YXJnZXRpbmcuY3JlYXRlLXRhcmdldCgkcXVlcnksIHN0cnVjdHVyZSk7XG4gICRmZWF0LXR5cG9ncmFwaHk6IGZlYXR1cmUtdGFyZ2V0aW5nLmNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCB0eXBvZ3JhcGh5KTtcblxuICBAaW5jbHVkZSB0eXBvZ3JhcGh5LnR5cG9ncmFwaHkoc3VidGl0bGUxLCAkcXVlcnkpO1xuICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy50YXJnZXRzKCRmZWF0LXR5cG9ncmFwaHkpIHtcbiAgICAvLyBBY2NvcmRpbmcgdG8gdGhlIG1vY2tzIGFuZCBzdGlja2Vyc2hlZXQsIHRoZSBsaW5lLWhlaWdodCBpc1xuICAgIC8vIGFkanVzdGVkIHRvIDI0cHggZm9yIHRleHQgY29udGVudCwgc2FtZSBhcyBmb3IgYm9keTEuXG4gICAgLyogQGFsdGVybmF0ZSAqL1xuICAgIGxpbmUtaGVpZ2h0OiBtYXAuZ2V0KG1hcC5nZXQodHlwb2dyYXBoeS4kc3R5bGVzLCBib2R5MSksIGxpbmUtaGVpZ2h0KTtcbiAgfVxuICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy50YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiA4cHggMDtcbiAgICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG5cbiAgICAmOmZvY3VzIC8vIGxpbnQtZGlzYWJsZS1mb2N1cy1wc3VlZG8tc2VsZWN0b3JcbiAgICB7XG4gICAgICBvdXRsaW5lOiBub25lO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gaXRlbS1iYXNlKCRxdWVyeTogZmVhdHVyZS10YXJnZXRpbmcuYWxsKCkpIHtcbiAgJGZlYXQtc3RydWN0dXJlOiBmZWF0dXJlLXRhcmdldGluZy5jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgc3RydWN0dXJlKTtcbiAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmcudGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHBhZGRpbmc6IDA7XG5cbiAgICAmOmZvY3VzIC8vIGxpbnQtZGlzYWJsZS1mb2N1cy1wc3VlZG8tc2VsZWN0b3JcbiAgICB7XG4gICAgICBvdXRsaW5lOiBub25lO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gX2l0ZW0taW50ZXJhY3RpdmUtcmlwcGxlKCRxdWVyeTogZmVhdHVyZS10YXJnZXRpbmcuYWxsKCkpIHtcbiAgQGluY2x1ZGUgcmlwcGxlLnN1cmZhY2UoXG4gICAgJHJpcHBsZS10YXJnZXQ6IHZhcmlhYmxlcy4kcmlwcGxlLXRhcmdldCxcbiAgICAkcXVlcnk6ICRxdWVyeVxuICApO1xuICBAaW5jbHVkZSByaXBwbGUucmFkaXVzLWJvdW5kZWQoXG4gICAgJHJpcHBsZS10YXJnZXQ6IHZhcmlhYmxlcy4kcmlwcGxlLXRhcmdldCxcbiAgICAkcXVlcnk6ICRxdWVyeVxuICApO1xuICBAaW5jbHVkZSByaXBwbGUtdGhlbWUuc3RhdGVzKFxuICAgIHRoZW1lLWNvbG9yLnByb3AtdmFsdWUob24tc3VyZmFjZSksXG4gICAgZmFsc2UsXG4gICAgJHJpcHBsZS10YXJnZXQ6IHZhcmlhYmxlcy4kcmlwcGxlLXRhcmdldCxcbiAgICAkcXVlcnk6ICRxdWVyeVxuICApO1xuICBAaW5jbHVkZSByaXBwbGUtdGhlbWUuc3RhdGVzLWFjdGl2YXRlZChcbiAgICBwcmltYXJ5LFxuICAgIGZhbHNlLFxuICAgICRyaXBwbGUtdGFyZ2V0OiB2YXJpYWJsZXMuJHJpcHBsZS10YXJnZXQsXG4gICAgJHF1ZXJ5OiAkcXVlcnlcbiAgKTtcbiAgQGluY2x1ZGUgcmlwcGxlLXRoZW1lLnN0YXRlcy1zZWxlY3RlZChcbiAgICBwcmltYXJ5LFxuICAgIGZhbHNlLFxuICAgICRyaXBwbGUtdGFyZ2V0OiB2YXJpYWJsZXMuJHJpcHBsZS10YXJnZXQsXG4gICAgJHF1ZXJ5OiAkcXVlcnlcbiAgKTtcblxuICAje3ZhcmlhYmxlcy4kcmlwcGxlLXRhcmdldH0ge1xuICAgIEBpbmNsdWRlIHJpcHBsZS50YXJnZXQtY29tbW9uKCRxdWVyeTogJHF1ZXJ5KTtcbiAgfVxufVxuXG5AbWl4aW4gX3R3by1saW5lLWl0ZW0tcHJpbWFyeS1iYXNlbGluZShcbiAgJHRvcCxcbiAgJGJvdHRvbSxcbiAgJHF1ZXJ5OiBmZWF0dXJlLXRhcmdldGluZy5hbGwoKVxuKSB7XG4gICYubWRjLWxpc3QtaXRlbS0td2l0aC10d28tbGluZXMge1xuICAgIC5tZGMtbGlzdC1pdGVtX19wcmltYXJ5LXRleHQge1xuICAgICAgQGluY2x1ZGUgdHlwb2dyYXBoeS50ZXh0LWJhc2VsaW5lKFxuICAgICAgICAkdG9wOiAkdG9wLFxuICAgICAgICAkYm90dG9tOiAkYm90dG9tLFxuICAgICAgICAkcXVlcnk6ICRxdWVyeVxuICAgICAgKTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIF90aHJlZS1saW5lLWl0ZW0tcHJpbWFyeS1iYXNlbGluZShcbiAgJHRvcCxcbiAgJGJvdHRvbSxcbiAgJHF1ZXJ5OiBmZWF0dXJlLXRhcmdldGluZy5hbGwoKVxuKSB7XG4gICYubWRjLWxpc3QtaXRlbS0td2l0aC10aHJlZS1saW5lcyB7XG4gICAgLm1kYy1saXN0LWl0ZW1fX3ByaW1hcnktdGV4dCB7XG4gICAgICBAaW5jbHVkZSB0eXBvZ3JhcGh5LnRleHQtYmFzZWxpbmUoXG4gICAgICAgICR0b3A6ICR0b3AsXG4gICAgICAgICRib3R0b206ICRib3R0b20sXG4gICAgICAgICRxdWVyeTogJHF1ZXJ5XG4gICAgICApO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gX3R3by1saW5lLWl0ZW0tb3ZlcmxpbmUtYmFzZWxpbmUoXG4gICR0b3AsXG4gICRib3R0b20sXG4gICRxdWVyeTogZmVhdHVyZS10YXJnZXRpbmcuYWxsKClcbikge1xuICAmLm1kYy1saXN0LWl0ZW0tLXdpdGgtdHdvLWxpbmVzIHtcbiAgICAubWRjLWxpc3QtaXRlbV9fb3ZlcmxpbmUtdGV4dCB7XG4gICAgICBAaW5jbHVkZSB0eXBvZ3JhcGh5LnRleHQtYmFzZWxpbmUoXG4gICAgICAgICR0b3A6ICR0b3AsXG4gICAgICAgICRib3R0b206ICRib3R0b20sXG4gICAgICAgICRxdWVyeTogJHF1ZXJ5XG4gICAgICApO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gX3RocmVlLWxpbmUtaXRlbS1vdmVybGluZS1iYXNlbGluZShcbiAgJHRvcCxcbiAgJGJvdHRvbSxcbiAgJHF1ZXJ5OiBmZWF0dXJlLXRhcmdldGluZy5hbGwoKVxuKSB7XG4gICYubWRjLWxpc3QtaXRlbS0td2l0aC10aHJlZS1saW5lcyB7XG4gICAgLm1kYy1saXN0LWl0ZW1fX292ZXJsaW5lLXRleHQge1xuICAgICAgQGluY2x1ZGUgdHlwb2dyYXBoeS50ZXh0LWJhc2VsaW5lKFxuICAgICAgICAkdG9wOiAkdG9wLFxuICAgICAgICAkYm90dG9tOiAkYm90dG9tLFxuICAgICAgICAkcXVlcnk6ICRxdWVyeVxuICAgICAgKTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIF90d28tbGluZS1pdGVtLWVuZC1iYXNlbGluZSgkdG9wLCAkcXVlcnk6IGZlYXR1cmUtdGFyZ2V0aW5nLmFsbCgpKSB7XG4gICYubWRjLWxpc3QtaXRlbS0td2l0aC10d28tbGluZXMge1xuICAgIC5tZGMtbGlzdC1pdGVtX19lbmQge1xuICAgICAgQGluY2x1ZGUgdHlwb2dyYXBoeS50ZXh0LWJhc2VsaW5lKFxuICAgICAgICAkZGlzcGxheTogYmxvY2ssXG4gICAgICAgICR0b3A6ICR0b3AsXG4gICAgICAgICRxdWVyeTogJHF1ZXJ5XG4gICAgICApO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gX3RocmVlLWxpbmUtaXRlbS1lbmQtYmFzZWxpbmUoJHRvcCwgJHF1ZXJ5OiBmZWF0dXJlLXRhcmdldGluZy5hbGwoKSkge1xuICAmLm1kYy1saXN0LWl0ZW0tLXdpdGgtdGhyZWUtbGluZXMge1xuICAgIC5tZGMtbGlzdC1pdGVtX19lbmQge1xuICAgICAgQGluY2x1ZGUgdHlwb2dyYXBoeS50ZXh0LWJhc2VsaW5lKFxuICAgICAgICAkZGlzcGxheTogYmxvY2ssXG4gICAgICAgICR0b3A6ICR0b3AsXG4gICAgICAgICRxdWVyeTogJHF1ZXJ5XG4gICAgICApO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gX3R3by1saW5lLWl0ZW0tbWV0YS1iYXNlbGluZSgkdG9wLCAkcXVlcnk6IGZlYXR1cmUtdGFyZ2V0aW5nLmFsbCgpKSB7XG4gICYubWRjLWxpc3QtaXRlbS0td2l0aC10d28tbGluZXMge1xuICAgICYubWRjLWxpc3QtaXRlbS0td2l0aC10cmFpbGluZy1tZXRhIHtcbiAgICAgIC5tZGMtbGlzdC1pdGVtX19lbmQge1xuICAgICAgICBAaW5jbHVkZSB0eXBvZ3JhcGh5LnRleHQtYmFzZWxpbmUoXG4gICAgICAgICAgJGRpc3BsYXk6IGJsb2NrLFxuICAgICAgICAgICR0b3A6ICR0b3AsXG4gICAgICAgICAgJHF1ZXJ5OiAkcXVlcnlcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuQG1peGluIGl0ZW0tbWV0YS10ZXh0LWluay1jb2xvcigkY29sb3IsICRxdWVyeTogZmVhdHVyZS10YXJnZXRpbmcuYWxsKCkpIHtcbiAgJGZlYXQtY29sb3I6IGZlYXR1cmUtdGFyZ2V0aW5nLmNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBjb2xvcik7XG5cbiAgJi5tZGMtbGlzdC1pdGVtLS13aXRoLXRyYWlsaW5nLW1ldGEge1xuICAgIC5tZGMtbGlzdC1pdGVtX19lbmQge1xuICAgICAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmcudGFyZ2V0cygkZmVhdC1jb2xvcikge1xuICAgICAgICBAaW5jbHVkZSB0aGVtZS5wcm9wZXJ0eShjb2xvciwgJGNvbG9yKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuQG1peGluIF9pdGVtLWljb24taW5rLWNvbG9yKFxuICAkY29sb3IsXG4gICRsZWFkaW5nLW9ubHk6IGZhbHNlLFxuICAkcXVlcnk6IGZlYXR1cmUtdGFyZ2V0aW5nLmFsbCgpXG4pIHtcbiAgJGZlYXQtY29sb3I6IGZlYXR1cmUtdGFyZ2V0aW5nLmNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBjb2xvcik7XG5cbiAgJi5tZGMtbGlzdC1pdGVtLS13aXRoLWxlYWRpbmctaWNvbiB7XG4gICAgLm1kYy1saXN0LWl0ZW1fX3N0YXJ0IHtcbiAgICAgIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLnRhcmdldHMoJGZlYXQtY29sb3IpIHtcbiAgICAgICAgQGluY2x1ZGUgdGhlbWUucHJvcGVydHkoY29sb3IsICRjb2xvcik7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQGlmIChub3QgJGxlYWRpbmctb25seSkge1xuICAgICYubWRjLWxpc3QtaXRlbS0td2l0aC10cmFpbGluZy1pY29uIHtcbiAgICAgIC5tZGMtbGlzdC1pdGVtX19lbmQge1xuICAgICAgICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy50YXJnZXRzKCRmZWF0LWNvbG9yKSB7XG4gICAgICAgICAgQGluY2x1ZGUgdGhlbWUucHJvcGVydHkoY29sb3IsICRjb2xvcik7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuQG1peGluIF9oaWdoLWNvbnRyYXN0LW1vZGUoJHF1ZXJ5OiBmZWF0dXJlLXRhcmdldGluZy5hbGwoKSkge1xuICAkZmVhdC1zdHJ1Y3R1cmU6IGZlYXR1cmUtdGFyZ2V0aW5nLmNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBzdHJ1Y3R1cmUpO1xuICAkZmVhdC1jb2xvcjogZmVhdHVyZS10YXJnZXRpbmcuY3JlYXRlLXRhcmdldCgkcXVlcnksIGNvbG9yKTtcblxuICBAaW5jbHVkZSBkb20tbWl4aW5zLmZvcmNlZC1jb2xvcnMtbW9kZSB7XG4gICAgLm1kYy1saXN0LWRpdmlkZXI6OmFmdGVyIHtcbiAgICAgIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLnRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgYm9yZGVyLWJvdHRvbS13aWR0aDogMXB4O1xuICAgICAgICBib3JkZXItYm90dG9tLXN0eWxlOiBzb2xpZDtcbiAgICAgIH1cblxuICAgICAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmcudGFyZ2V0cygkZmVhdC1jb2xvcikge1xuICAgICAgICAvLyBDb2xvciBlbnN1cmVzIGJvcmRlciBpcyBzaG93biwgYnV0IHdpbGwgYmUgb3ZlcnJpZGRlbiBieSB0aGUgYnJvd3Nlci5cbiAgICAgICAgQGluY2x1ZGUgdGhlbWUucHJvcGVydHkoYm9yZGVyLWJvdHRvbS1jb2xvciwgd2hpdGUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiQHVzZSAnQG1hdGVyaWFsL3RoZW1lL3RoZW1lJyBhcyBtZGMtdGhlbWU7XG5cbkB1c2UgJy4uL3RoZW1pbmcvdGhlbWluZyc7XG5AdXNlICcuLi90eXBvZ3JhcGh5L3R5cG9ncmFwaHknO1xuQHVzZSAnLi4vbWRjLWhlbHBlcnMvbWRjLWhlbHBlcnMnO1xuXG5AbWl4aW4gY29sb3IoJGNvbmZpZy1vci10aGVtZSkge1xuICAkY29uZmlnOiB0aGVtaW5nLmdldC1jb2xvci1jb25maWcoJGNvbmZpZy1vci10aGVtZSk7XG5cbiAgQGluY2x1ZGUgbWRjLWhlbHBlcnMudXNpbmctbWRjLXRoZW1lKCRjb25maWcpIHtcbiAgICAubWF0LW1kYy1vcHRncm91cC1sYWJlbCB7XG4gICAgICAvLyBTaW5jZSB0aGlzIHdpbGwgdXN1YWxseSBiZSByZW5kZXJlZCBpbiBhbiBvdmVybGF5LFxuICAgICAgLy8gd2UgaGF2ZSB0byBleHBsaWNpdGx5IHNldCB0aGUgZGVmYXVsdCBjb2xvci5cbiAgICAgIEBpbmNsdWRlIG1kYy10aGVtZS5wcm9wKGNvbG9yLCB0ZXh0LXByaW1hcnktb24tYmFja2dyb3VuZCk7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiB0eXBvZ3JhcGh5KCRjb25maWctb3ItdGhlbWUpIHtcbiAgJGNvbmZpZzogdHlwb2dyYXBoeS5wcml2YXRlLXR5cG9ncmFwaHktdG8tMjAxOC1jb25maWcoXG4gICAgICB0aGVtaW5nLmdldC10eXBvZ3JhcGh5LWNvbmZpZygkY29uZmlnLW9yLXRoZW1lKSk7XG59XG5cbkBtaXhpbiBkZW5zaXR5KCRjb25maWctb3ItdGhlbWUpIHtcbiAgJGRlbnNpdHktc2NhbGU6IHRoZW1pbmcuZ2V0LWRlbnNpdHktY29uZmlnKCRjb25maWctb3ItdGhlbWUpO1xufVxuXG5AbWl4aW4gdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZykge1xuICAkdGhlbWU6IHRoZW1pbmcucHJpdmF0ZS1sZWdhY3ktZ2V0LXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpO1xuICBAaW5jbHVkZSB0aGVtaW5nLnByaXZhdGUtY2hlY2stZHVwbGljYXRlLXRoZW1lLXN0eWxlcygkdGhlbWUsICdtYXQtb3B0Z3JvdXAnKSB7XG4gICAgJGNvbG9yOiB0aGVtaW5nLmdldC1jb2xvci1jb25maWcoJHRoZW1lKTtcbiAgICAkZGVuc2l0eTogdGhlbWluZy5nZXQtZGVuc2l0eS1jb25maWcoJHRoZW1lKTtcbiAgICAkdHlwb2dyYXBoeTogdGhlbWluZy5nZXQtdHlwb2dyYXBoeS1jb25maWcoJHRoZW1lKTtcblxuICAgIEBpZiAkY29sb3IgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBjb2xvcigkY29sb3IpO1xuICAgIH1cbiAgICBAaWYgJGRlbnNpdHkgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBkZW5zaXR5KCRkZW5zaXR5KTtcbiAgICB9XG4gICAgQGlmICR0eXBvZ3JhcGh5ICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgdHlwb2dyYXBoeSgkdHlwb2dyYXBoeSk7XG4gICAgfVxuICB9XG59XG4iLCJAdXNlICdzYXNzOm1hcCc7XG5AdXNlICcuLi8uLi90aGVtaW5nL3RoZW1pbmcnO1xuXG5AbWl4aW4gY29sb3IoJGNvbmZpZy1vci10aGVtZSkge1xuICAkY29uZmlnOiB0aGVtaW5nLmdldC1jb2xvci1jb25maWcoJGNvbmZpZy1vci10aGVtZSk7XG4gICRpcy1kYXJrLXRoZW1lOiBtYXAuZ2V0KCRjb25maWcsIGlzLWRhcmspO1xuICAkcHJpbWFyeTogbWFwLmdldCgkY29uZmlnLCBwcmltYXJ5KTtcbiAgJGFjY2VudDogbWFwLmdldCgkY29uZmlnLCBhY2NlbnQpO1xuICAkd2FybjogbWFwLmdldCgkY29uZmlnLCB3YXJuKTtcbiAgJGJhY2tncm91bmQ6IG1hcC5nZXQoJGNvbmZpZywgYmFja2dyb3VuZCk7XG5cbiAgLy8gTk9URSh0cmF2aXNrYXVmbWFuKTogV2hpbGUgdGhlIHNwZWMgY2FsbHMgZm9yIHRyYW5zbHVjZW50IGJsYWNrcy93aGl0ZXMgZm9yIGRpc2FibGVkIGNvbG9ycyxcbiAgLy8gdGhpcyBkb2VzIG5vdCB3b3JrIHdlbGwgd2l0aCBlbGVtZW50cyBsYXllcmVkIG9uIHRvcCBvZiBvbmUgYW5vdGhlci4gVG8gZ2V0IGFyb3VuZCB0aGlzIHdlXG4gIC8vIGJsZW5kIHRoZSBjb2xvcnMgdG9nZXRoZXIgYmFzZWQgb24gdGhlIGJhc2UgY29sb3IgYW5kIHRoZSB0aGVtZSBiYWNrZ3JvdW5kLlxuICAkd2hpdGUtMzBwY3Qtb3BhY2l0eS1vbi1kYXJrOiAjNjg2ODY4O1xuICAkYmxhY2stMjZwY3Qtb3BhY2l0eS1vbi1saWdodDogI2IwYjBiMDtcbiAgJGRpc2FibGVkLWNvbG9yOiBpZigkaXMtZGFyay10aGVtZSwgJHdoaXRlLTMwcGN0LW9wYWNpdHktb24tZGFyaywgJGJsYWNrLTI2cGN0LW9wYWNpdHktb24tbGlnaHQpO1xuICAkY29sb3JlZC1ib3gtc2VsZWN0b3I6ICcubWF0LXBzZXVkby1jaGVja2JveC1jaGVja2VkLCAubWF0LXBzZXVkby1jaGVja2JveC1pbmRldGVybWluYXRlJztcblxuICAubWF0LXBzZXVkby1jaGVja2JveCB7XG4gICAgY29sb3I6IHRoZW1pbmcuZ2V0LWNvbG9yLWZyb20tcGFsZXR0ZShtYXAuZ2V0KCRjb25maWcsIGZvcmVncm91bmQpLCBzZWNvbmRhcnktdGV4dCk7XG5cbiAgICAmOjphZnRlciB7XG4gICAgICBjb2xvcjogdGhlbWluZy5nZXQtY29sb3ItZnJvbS1wYWxldHRlKCRiYWNrZ3JvdW5kLCBiYWNrZ3JvdW5kKTtcbiAgICB9XG4gIH1cblxuICAubWF0LXBzZXVkby1jaGVja2JveC1kaXNhYmxlZCB7XG4gICAgY29sb3I6ICRkaXNhYmxlZC1jb2xvcjtcbiAgfVxuXG4gIC5tYXQtcHJpbWFyeSAubWF0LXBzZXVkby1jaGVja2JveC1jaGVja2VkLFxuICAubWF0LXByaW1hcnkgLm1hdC1wc2V1ZG8tY2hlY2tib3gtaW5kZXRlcm1pbmF0ZSB7XG4gICAgYmFja2dyb3VuZDogdGhlbWluZy5nZXQtY29sb3ItZnJvbS1wYWxldHRlKG1hcC5nZXQoJGNvbmZpZywgcHJpbWFyeSkpO1xuICB9XG5cbiAgLy8gRGVmYXVsdCB0byB0aGUgYWNjZW50IGNvbG9yLiBOb3RlIHRoYXQgdGhlIHBzZXVkbyBjaGVja2JveGVzIGFyZSBtZWFudCB0byBpbmhlcml0IHRoZVxuICAvLyB0aGVtZSBmcm9tIHRoZWlyIHBhcmVudCwgcmF0aGVyIHRoYW4gaW1wbGVtZW50aW5nIHRoZWlyIG93biB0aGVtaW5nLCB3aGljaCBpcyB3aHkgd2VcbiAgLy8gZG9uJ3QgYXR0YWNoIHRvIHRoZSBgbWF0LSpgIGNsYXNzZXMuIEFsc28gbm90ZSB0aGF0IHRoaXMgbmVlZHMgdG8gYmUgYmVsb3cgYC5tYXQtcHJpbWFyeWBcbiAgLy8gaW4gb3JkZXIgdG8gYWxsb3cgZm9yIHRoZSBjb2xvciB0byBiZSBvdmVyd3JpdHRlbiBpZiB0aGUgY2hlY2tib3ggaXMgaW5zaWRlIGEgcGFyZW50IHRoYXRcbiAgLy8gaGFzIGBtYXQtYWNjZW50YCBhbmQgaXMgcGxhY2VkIGluc2lkZSBhbm90aGVyIHBhcmVudCB0aGF0IGhhcyBgbWF0LXByaW1hcnlgLlxuICAubWF0LXBzZXVkby1jaGVja2JveC1jaGVja2VkLFxuICAubWF0LXBzZXVkby1jaGVja2JveC1pbmRldGVybWluYXRlLFxuICAubWF0LWFjY2VudCAubWF0LXBzZXVkby1jaGVja2JveC1jaGVja2VkLFxuICAubWF0LWFjY2VudCAubWF0LXBzZXVkby1jaGVja2JveC1pbmRldGVybWluYXRlIHtcbiAgICBiYWNrZ3JvdW5kOiB0aGVtaW5nLmdldC1jb2xvci1mcm9tLXBhbGV0dGUobWFwLmdldCgkY29uZmlnLCBhY2NlbnQpKTtcbiAgfVxuXG4gIC5tYXQtd2FybiAubWF0LXBzZXVkby1jaGVja2JveC1jaGVja2VkLFxuICAubWF0LXdhcm4gLm1hdC1wc2V1ZG8tY2hlY2tib3gtaW5kZXRlcm1pbmF0ZSB7XG4gICAgYmFja2dyb3VuZDogdGhlbWluZy5nZXQtY29sb3ItZnJvbS1wYWxldHRlKG1hcC5nZXQoJGNvbmZpZywgd2FybikpO1xuICB9XG5cbiAgLm1hdC1wc2V1ZG8tY2hlY2tib3gtY2hlY2tlZCxcbiAgLm1hdC1wc2V1ZG8tY2hlY2tib3gtaW5kZXRlcm1pbmF0ZSB7XG4gICAgJi5tYXQtcHNldWRvLWNoZWNrYm94LWRpc2FibGVkIHtcbiAgICAgIGJhY2tncm91bmQ6ICRkaXNhYmxlZC1jb2xvcjtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIHR5cG9ncmFwaHkoJGNvbmZpZy1vci10aGVtZSkge31cblxuQG1peGluIF9kZW5zaXR5KCRjb25maWctb3ItdGhlbWUpIHt9XG5cbkBtaXhpbiB0aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKSB7XG4gICR0aGVtZTogdGhlbWluZy5wcml2YXRlLWxlZ2FjeS1nZXQtdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZyk7XG4gIEBpbmNsdWRlIHRoZW1pbmcucHJpdmF0ZS1jaGVjay1kdXBsaWNhdGUtdGhlbWUtc3R5bGVzKCR0aGVtZSwgJ21hdC1wc2V1ZG8tY2hlY2tib3gnKSB7XG4gICAgJGNvbG9yOiB0aGVtaW5nLmdldC1jb2xvci1jb25maWcoJHRoZW1lKTtcbiAgICAkZGVuc2l0eTogdGhlbWluZy5nZXQtZGVuc2l0eS1jb25maWcoJHRoZW1lKTtcbiAgICAkdHlwb2dyYXBoeTogdGhlbWluZy5nZXQtdHlwb2dyYXBoeS1jb25maWcoJHRoZW1lKTtcblxuICAgIEBpZiAkY29sb3IgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBjb2xvcigkY29sb3IpO1xuICAgIH1cbiAgICBAaWYgJGRlbnNpdHkgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBfZGVuc2l0eSgkZGVuc2l0eSk7XG4gICAgfVxuICAgIEBpZiAkdHlwb2dyYXBoeSAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIHR5cG9ncmFwaHkoJHR5cG9ncmFwaHkpO1xuICAgIH1cbiAgfVxufVxuIiwiQHVzZSAnc2FzczptYXAnO1xuQHVzZSAndGhlbWluZy90aGVtaW5nJztcbkB1c2UgJy4vc3R5bGUvcHJpdmF0ZSc7XG5AdXNlICcuL3JpcHBsZS9yaXBwbGUtdGhlbWUnO1xuQHVzZSAnLi9vcHRpb24vb3B0aW9uLXRoZW1lJztcbkB1c2UgJy4vb3B0aW9uL29wdGdyb3VwLXRoZW1lJztcbkB1c2UgJy4vc2VsZWN0aW9uL3BzZXVkby1jaGVja2JveC9wc2V1ZG8tY2hlY2tib3gtdGhlbWUnO1xuQHVzZSAnLi9zdHlsZS9lbGV2YXRpb24nO1xuQHVzZSAnLi90eXBvZ3JhcGh5L3R5cG9ncmFwaHknO1xuXG5AbWl4aW4gY29sb3IoJGNvbmZpZy1vci10aGVtZSkge1xuICAkY29uZmlnOiB0aGVtaW5nLmdldC1jb2xvci1jb25maWcoJGNvbmZpZy1vci10aGVtZSk7XG5cbiAgQGluY2x1ZGUgcmlwcGxlLXRoZW1lLmNvbG9yKCRjb25maWcpO1xuICBAaW5jbHVkZSBvcHRpb24tdGhlbWUuY29sb3IoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG9wdGdyb3VwLXRoZW1lLmNvbG9yKCRjb25maWcpO1xuICBAaW5jbHVkZSBwc2V1ZG8tY2hlY2tib3gtdGhlbWUuY29sb3IoJGNvbmZpZyk7XG5cbiAgLy8gV3JhcHBlciBlbGVtZW50IHRoYXQgcHJvdmlkZXMgdGhlIHRoZW1lIGJhY2tncm91bmQgd2hlbiB0aGUgdXNlcidzIGNvbnRlbnQgaXNuJ3RcbiAgLy8gaW5zaWRlIG9mIGEgYG1hdC1zaWRlbmF2LWNvbnRhaW5lcmAuIE5vdGUgdGhhdCB3ZSBuZWVkIHRvIGV4Y2x1ZGUgdGhlIGFtcGVyc2FuZFxuICAvLyBzZWxlY3RvciBpbiBjYXNlIHRoZSBtaXhpbiBpcyBpbmNsdWRlZCBhdCB0aGUgdG9wIGxldmVsLlxuICAubWF0LWFwcC1iYWNrZ3JvdW5kI3tpZigmLCAnLCAmLm1hdC1hcHAtYmFja2dyb3VuZCcsICcnKX0ge1xuICAgICRiYWNrZ3JvdW5kOiBtYXAuZ2V0KCRjb25maWcsIGJhY2tncm91bmQpO1xuICAgICRmb3JlZ3JvdW5kOiBtYXAuZ2V0KCRjb25maWcsIGZvcmVncm91bmQpO1xuXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdGhlbWluZy5nZXQtY29sb3ItZnJvbS1wYWxldHRlKCRiYWNrZ3JvdW5kLCBiYWNrZ3JvdW5kKTtcbiAgICBjb2xvcjogdGhlbWluZy5nZXQtY29sb3ItZnJvbS1wYWxldHRlKCRmb3JlZ3JvdW5kLCB0ZXh0KTtcbiAgfVxuXG4gIC8vIFByb3ZpZGVzIGV4dGVybmFsIENTUyBjbGFzc2VzIGZvciBlYWNoIGVsZXZhdGlvbiB2YWx1ZS4gRWFjaCBDU1MgY2xhc3MgaXMgZm9ybWF0dGVkIGFzXG4gIC8vIGBtYXQtZWxldmF0aW9uLXokelZhbHVlYCB3aGVyZSBgJHpWYWx1ZWAgY29ycmVzcG9uZHMgdG8gdGhlIHotc3BhY2UgdG8gd2hpY2ggdGhlIGVsZW1lbnQgaXNcbiAgLy8gZWxldmF0ZWQuXG4gIEBmb3IgJHpWYWx1ZSBmcm9tIDAgdGhyb3VnaCAyNCB7XG4gICAgJHNlbGVjdG9yOiBlbGV2YXRpb24uJHByZWZpeCArICR6VmFsdWU7XG4gICAgLy8gV2UgbmVlZCB0aGUgYG1hdC1tZGMtZWxldmF0aW9uLXNwZWNpZmljYCwgYmVjYXVzZSBzb21lIE1EQyBtaXhpbnNcbiAgICAvLyBjb21lIHdpdGggZWxldmF0aW9uIGJha2VkIGluIGFuZCB3ZSBkb24ndCBoYXZlIGEgd2F5IG9mIHJlbW92aW5nIGl0LlxuICAgIC4jeyRzZWxlY3Rvcn0sIC5tYXQtbWRjLWVsZXZhdGlvbi1zcGVjaWZpYy4jeyRzZWxlY3Rvcn0ge1xuICAgICAgQGluY2x1ZGUgcHJpdmF0ZS5wcml2YXRlLXRoZW1lLWVsZXZhdGlvbigkelZhbHVlLCAkY29uZmlnKTtcbiAgICB9XG4gIH1cblxuICAvLyBNYXJrZXIgdGhhdCBpcyB1c2VkIHRvIGRldGVybWluZSB3aGV0aGVyIHRoZSB1c2VyIGhhcyBhZGRlZCBhIHRoZW1lIHRvIHRoZWlyIHBhZ2UuXG4gIEBhdC1yb290IHtcbiAgICAubWF0LXRoZW1lLWxvYWRlZC1tYXJrZXIge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIHR5cG9ncmFwaHkoJGNvbmZpZy1vci10aGVtZSkge1xuICAkY29uZmlnOiB0eXBvZ3JhcGh5LnByaXZhdGUtdHlwb2dyYXBoeS10by0yMDE4LWNvbmZpZyhcbiAgICAgICAgICB0aGVtaW5nLmdldC10eXBvZ3JhcGh5LWNvbmZpZygkY29uZmlnLW9yLXRoZW1lKSk7XG5cbiAgQGluY2x1ZGUgb3B0aW9uLXRoZW1lLnR5cG9ncmFwaHkoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG9wdGdyb3VwLXRoZW1lLnR5cG9ncmFwaHkoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIHBzZXVkby1jaGVja2JveC10aGVtZS50eXBvZ3JhcGh5KCRjb25maWcpO1xuICAvLyBUT0RPKG1tYWxlcmJhKTogYWRkIHR5cG9ncmFwaHkgbWl4aW4gZm9yIHRoaXMuXG4gIC8vIEBpbmNsdWRlIHJpcHBsZS10aGVtZS50eXBvZ3JhcGh5KCRjb25maWcpO1xufVxuXG5AbWl4aW4gZGVuc2l0eSgkY29uZmlnLW9yLXRoZW1lKSB7XG4gICRkZW5zaXR5LXNjYWxlOiB0aGVtaW5nLmdldC1kZW5zaXR5LWNvbmZpZygkY29uZmlnLW9yLXRoZW1lKTtcblxuICBAaW5jbHVkZSBvcHRpb24tdGhlbWUuZGVuc2l0eSgkZGVuc2l0eS1zY2FsZSk7XG4gIEBpbmNsdWRlIG9wdGdyb3VwLXRoZW1lLmRlbnNpdHkoJGRlbnNpdHktc2NhbGUpO1xuICAvLyBUT0RPKG1tYWxlcmJhKTogYWRkIGRlbnNpdHkgbWl4aW5zIGZvciB0aGVzZS5cbiAgLy8gQGluY2x1ZGUgcmlwcGxlLXRoZW1lLmRlbnNpdHkoJGRlbnNpdHktc2NhbGUpO1xuICAvLyBAaW5jbHVkZSBwc2V1ZG8tY2hlY2tib3gtdGhlbWUuZGVuc2l0eSgkZGVuc2l0eS1zY2FsZSk7XG59XG5cbi8vIE1peGluIHRoYXQgcmVuZGVycyBhbGwgb2YgdGhlIGNvcmUgc3R5bGVzIHRoYXQgZGVwZW5kIG9uIHRoZSB0aGVtZS5cbkBtaXhpbiB0aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKSB7XG4gICR0aGVtZTogdGhlbWluZy5wcml2YXRlLWxlZ2FjeS1nZXQtdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZyk7XG4gIC8vIFdyYXAgdGhlIHN1Yi10aGVtZSBpbmNsdWRlcyBpbiB0aGUgZHVwbGljYXRlIHRoZW1lIHN0eWxlcyBtaXhpbi4gVGhpcyBlbnN1cmVzIHRoYXRcbiAgLy8gdGhlcmUgd29uJ3QgYmUgbXVsdGlwbGUgd2FybmluZ3MuIGUuZy4gaWYgYG1hdC1jb3JlLXRoZW1lYCByZXBvcnRzIGEgd2FybmluZywgdGhlblxuICAvLyB0aGUgaW1wb3J0ZWQgdGhlbWVzIChzdWNoIGFzIGBtYXQtcmlwcGxlLXRoZW1lYCkgc2hvdWxkIG5vdCByZXBvcnQgYWdhaW4uXG4gIEBpbmNsdWRlIHRoZW1pbmcucHJpdmF0ZS1jaGVjay1kdXBsaWNhdGUtdGhlbWUtc3R5bGVzKCR0aGVtZSwgJ21hdC1jb3JlJykge1xuICAgICRjb2xvcjogdGhlbWluZy5nZXQtY29sb3ItY29uZmlnKCR0aGVtZSk7XG4gICAgJGRlbnNpdHk6IHRoZW1pbmcuZ2V0LWRlbnNpdHktY29uZmlnKCR0aGVtZSk7XG4gICAgJHR5cG9ncmFwaHk6IHRoZW1pbmcuZ2V0LXR5cG9ncmFwaHktY29uZmlnKCR0aGVtZSk7XG5cbiAgICBAaWYgJGNvbG9yICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgY29sb3IoJGNvbG9yKTtcbiAgICB9XG4gICAgQGlmICRkZW5zaXR5ICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgZGVuc2l0eSgkZGVuc2l0eSk7XG4gICAgfVxuICAgIEBpZiAkdHlwb2dyYXBoeSAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIHR5cG9ncmFwaHkoJHR5cG9ncmFwaHkpO1xuICAgIH1cbiAgfVxufVxuIiwiLy9cbi8vIENvcHlyaWdodCAyMDE3IEdvb2dsZSBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cbi8vXG5cbi8vIHN0eWxlbGludC1kaXNhYmxlIHNlbGVjdG9yLWNsYXNzLXBhdHRlcm4gLS1cbi8vIFNlbGVjdG9yICcubWRjLSonIHNob3VsZCBvbmx5IGJlIHVzZWQgaW4gdGhpcyBwcm9qZWN0LlxuXG5AdXNlICdzYXNzOm1hcCc7XG5AdXNlICdzYXNzOm1hdGgnO1xuQHVzZSAnc2FzczptZXRhJztcbkB1c2UgJ0BtYXRlcmlhbC9hbmltYXRpb24vdmFyaWFibGVzJyBhcyBhbmltYXRpb24tdmFyaWFibGVzO1xuQHVzZSAnQG1hdGVyaWFsL3RoZW1lL2N1c3RvbS1wcm9wZXJ0aWVzJztcbkB1c2UgJ0BtYXRlcmlhbC9iYXNlL21peGlucycgYXMgYmFzZS1taXhpbnM7XG5AdXNlICdAbWF0ZXJpYWwvZmVhdHVyZS10YXJnZXRpbmcvZmVhdHVyZS10YXJnZXRpbmcnO1xuQHVzZSAnQG1hdGVyaWFsL3J0bC9ydGwnO1xuQHVzZSAnQG1hdGVyaWFsL3RoZW1lL2Nzcyc7XG5AdXNlICdAbWF0ZXJpYWwvdGhlbWUvdGhlbWUnO1xuQHVzZSAnQG1hdGVyaWFsL3RoZW1lL3RoZW1lLWNvbG9yJztcblxuJGJhc2VsaW5lLWNvbG9yOiBibGFjayAhZGVmYXVsdDtcbiR1bWJyYS1vcGFjaXR5OiAwLjIgIWRlZmF1bHQ7XG4kcGVudW1icmEtb3BhY2l0eTogMC4xNCAhZGVmYXVsdDtcbiRhbWJpZW50LW9wYWNpdHk6IDAuMTIgIWRlZmF1bHQ7XG5cbiR1bWJyYS1tYXA6IChcbiAgMDogJzBweCAwcHggMHB4IDBweCcsXG4gIDE6ICcwcHggMnB4IDFweCAtMXB4JyxcbiAgMjogJzBweCAzcHggMXB4IC0ycHgnLFxuICAzOiAnMHB4IDNweCAzcHggLTJweCcsXG4gIDQ6ICcwcHggMnB4IDRweCAtMXB4JyxcbiAgNTogJzBweCAzcHggNXB4IC0xcHgnLFxuICA2OiAnMHB4IDNweCA1cHggLTFweCcsXG4gIDc6ICcwcHggNHB4IDVweCAtMnB4JyxcbiAgODogJzBweCA1cHggNXB4IC0zcHgnLFxuICA5OiAnMHB4IDVweCA2cHggLTNweCcsXG4gIDEwOiAnMHB4IDZweCA2cHggLTNweCcsXG4gIDExOiAnMHB4IDZweCA3cHggLTRweCcsXG4gIDEyOiAnMHB4IDdweCA4cHggLTRweCcsXG4gIDEzOiAnMHB4IDdweCA4cHggLTRweCcsXG4gIDE0OiAnMHB4IDdweCA5cHggLTRweCcsXG4gIDE1OiAnMHB4IDhweCA5cHggLTVweCcsXG4gIDE2OiAnMHB4IDhweCAxMHB4IC01cHgnLFxuICAxNzogJzBweCA4cHggMTFweCAtNXB4JyxcbiAgMTg6ICcwcHggOXB4IDExcHggLTVweCcsXG4gIDE5OiAnMHB4IDlweCAxMnB4IC02cHgnLFxuICAyMDogJzBweCAxMHB4IDEzcHggLTZweCcsXG4gIDIxOiAnMHB4IDEwcHggMTNweCAtNnB4JyxcbiAgMjI6ICcwcHggMTBweCAxNHB4IC02cHgnLFxuICAyMzogJzBweCAxMXB4IDE0cHggLTdweCcsXG4gIDI0OiAnMHB4IDExcHggMTVweCAtN3B4JyxcbikgIWRlZmF1bHQ7XG5cbiRwZW51bWJyYS1tYXA6IChcbiAgMDogJzBweCAwcHggMHB4IDBweCcsXG4gIDE6ICcwcHggMXB4IDFweCAwcHgnLFxuICAyOiAnMHB4IDJweCAycHggMHB4JyxcbiAgMzogJzBweCAzcHggNHB4IDBweCcsXG4gIDQ6ICcwcHggNHB4IDVweCAwcHgnLFxuICA1OiAnMHB4IDVweCA4cHggMHB4JyxcbiAgNjogJzBweCA2cHggMTBweCAwcHgnLFxuICA3OiAnMHB4IDdweCAxMHB4IDFweCcsXG4gIDg6ICcwcHggOHB4IDEwcHggMXB4JyxcbiAgOTogJzBweCA5cHggMTJweCAxcHgnLFxuICAxMDogJzBweCAxMHB4IDE0cHggMXB4JyxcbiAgMTE6ICcwcHggMTFweCAxNXB4IDFweCcsXG4gIDEyOiAnMHB4IDEycHggMTdweCAycHgnLFxuICAxMzogJzBweCAxM3B4IDE5cHggMnB4JyxcbiAgMTQ6ICcwcHggMTRweCAyMXB4IDJweCcsXG4gIDE1OiAnMHB4IDE1cHggMjJweCAycHgnLFxuICAxNjogJzBweCAxNnB4IDI0cHggMnB4JyxcbiAgMTc6ICcwcHggMTdweCAyNnB4IDJweCcsXG4gIDE4OiAnMHB4IDE4cHggMjhweCAycHgnLFxuICAxOTogJzBweCAxOXB4IDI5cHggMnB4JyxcbiAgMjA6ICcwcHggMjBweCAzMXB4IDNweCcsXG4gIDIxOiAnMHB4IDIxcHggMzNweCAzcHgnLFxuICAyMjogJzBweCAyMnB4IDM1cHggM3B4JyxcbiAgMjM6ICcwcHggMjNweCAzNnB4IDNweCcsXG4gIDI0OiAnMHB4IDI0cHggMzhweCAzcHgnLFxuKSAhZGVmYXVsdDtcblxuJGFtYmllbnQtbWFwOiAoXG4gIDA6ICcwcHggMHB4IDBweCAwcHgnLFxuICAxOiAnMHB4IDFweCAzcHggMHB4JyxcbiAgMjogJzBweCAxcHggNXB4IDBweCcsXG4gIDM6ICcwcHggMXB4IDhweCAwcHgnLFxuICA0OiAnMHB4IDFweCAxMHB4IDBweCcsXG4gIDU6ICcwcHggMXB4IDE0cHggMHB4JyxcbiAgNjogJzBweCAxcHggMThweCAwcHgnLFxuICA3OiAnMHB4IDJweCAxNnB4IDFweCcsXG4gIDg6ICcwcHggM3B4IDE0cHggMnB4JyxcbiAgOTogJzBweCAzcHggMTZweCAycHgnLFxuICAxMDogJzBweCA0cHggMThweCAzcHgnLFxuICAxMTogJzBweCA0cHggMjBweCAzcHgnLFxuICAxMjogJzBweCA1cHggMjJweCA0cHgnLFxuICAxMzogJzBweCA1cHggMjRweCA0cHgnLFxuICAxNDogJzBweCA1cHggMjZweCA0cHgnLFxuICAxNTogJzBweCA2cHggMjhweCA1cHgnLFxuICAxNjogJzBweCA2cHggMzBweCA1cHgnLFxuICAxNzogJzBweCA2cHggMzJweCA1cHgnLFxuICAxODogJzBweCA3cHggMzRweCA2cHgnLFxuICAxOTogJzBweCA3cHggMzZweCA2cHgnLFxuICAyMDogJzBweCA4cHggMzhweCA3cHgnLFxuICAyMTogJzBweCA4cHggNDBweCA3cHgnLFxuICAyMjogJzBweCA4cHggNDJweCA3cHgnLFxuICAyMzogJzBweCA5cHggNDRweCA4cHgnLFxuICAyNDogJzBweCA5cHggNDZweCA4cHgnLFxuKSAhZGVmYXVsdDtcblxuLy8gVGhlIGNzcyBwcm9wZXJ0eSB1c2VkIGZvciBlbGV2YXRpb24uIEluIG1vc3QgY2FzZXMgdGhpcyBzaG91bGQgbm90IGJlIGNoYW5nZWQuIEl0IGlzIGV4cG9zZWRcbi8vIGFzIGEgdmFyaWFibGUgZm9yIGFic3RyYWN0aW9uIC8gZWFzeSB1c2Ugd2hlbiBuZWVkaW5nIHRvIHJlZmVyZW5jZSB0aGUgcHJvcGVydHkgZGlyZWN0bHksIGZvclxuLy8gZXhhbXBsZSBpbiBhIGB3aWxsLWNoYW5nZWAgcnVsZS5cbiRwcm9wZXJ0eTogYm94LXNoYWRvdyAhZGVmYXVsdDtcblxuLy8gVGhlIGRlZmF1bHQgY29sb3IgZm9yIHRoZSBlbGV2YXRpb24gb3ZlcmxheS5cbiRvdmVybGF5LWNvbG9yOiAjZmZmO1xuXG4vLyBUaGUgY3NzIHByb3BlcnR5IHVzZWQgZm9yIGVsZXZhdGlvbiBvdmVybGF5IHRyYW5zaXRpb25zLiBJbiBtb3N0IGNhc2VzIHRoaXMgc2hvdWxkIG5vdCBiZSBjaGFuZ2VkLiBJdCBpcyBleHBvc2VkXG4vLyBhcyBhIHZhcmlhYmxlIGZvciBhYnN0cmFjdGlvbiAvIGVhc3kgdXNlIHdoZW4gbmVlZGluZyB0byByZWZlcmVuY2UgdGhlIHByb3BlcnR5IGRpcmVjdGx5LCBmb3Jcbi8vIGV4YW1wbGUgaW4gYSBgd2lsbC1jaGFuZ2VgIHJ1bGUuXG4kb3ZlcmxheS1wcm9wZXJ0eTogb3BhY2l0eSAhZGVmYXVsdDtcblxuLy8gVGhlIGRlZmF1bHQgZHVyYXRpb24gdmFsdWUgZm9yIGVsZXZhdGlvbiB0cmFuc2l0aW9ucy5cbiR0cmFuc2l0aW9uLWR1cmF0aW9uOiAyODBtcyAhZGVmYXVsdDtcblxuLy8gVGhlIGRlZmF1bHQgZWFzaW5nIHZhbHVlIGZvciBlbGV2YXRpb24gdHJhbnNpdGlvbnMuXG4kdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGFuaW1hdGlvbi12YXJpYWJsZXMuJHN0YW5kYXJkLWN1cnZlLXRpbWluZy1mdW5jdGlvbiAhZGVmYXVsdDtcblxuLy8vXG4vLy8gU2V0cyB0aGUgZWxldmF0aW9uIHRyYW5zaXRpb24gdmFsdWUuXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGR1cmF0aW9uIC0gVGhlIGR1cmF0aW9uIG9mIHRoZSB0cmFuc2l0aW9uLlxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkZWFzaW5nIC0gVGhlIGVhc2luZyBmdW5jdGlvbiBmb3IgdGhlIHRyYW5zaXRpb24uXG4vLy8gQHJldHVybiB7U3RyaW5nfVxuLy8vXG5AZnVuY3Rpb24gdHJhbnNpdGlvbi12YWx1ZShcbiAgJGR1cmF0aW9uOiAkdHJhbnNpdGlvbi1kdXJhdGlvbixcbiAgJGVhc2luZzogJHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uXG4pIHtcbiAgQHJldHVybiAjeyRwcm9wZXJ0eX0gI3skZHVyYXRpb259ICN7JGVhc2luZ307XG59XG5cbi8vL1xuLy8vIFNldHMgdGhlIGVsZXZhdGlvbiBvdmVybGF5IHRyYW5zaXRpb24gdmFsdWUuXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGR1cmF0aW9uIC0gVGhlIGR1cmF0aW9uIG9mIHRoZSB0cmFuc2l0aW9uLlxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkZWFzaW5nIC0gVGhlIGVhc2luZyBmdW5jdGlvbiBmb3IgdGhlIHRyYW5zaXRpb24uXG4vLy8gQHJldHVybiB7U3RyaW5nfVxuLy8vXG5AZnVuY3Rpb24gb3ZlcmxheS10cmFuc2l0aW9uLXZhbHVlKFxuICAkZHVyYXRpb246ICR0cmFuc2l0aW9uLWR1cmF0aW9uLFxuICAkZWFzaW5nOiAkdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb25cbikge1xuICBAcmV0dXJuICN7JG92ZXJsYXktcHJvcGVydHl9ICN7JGR1cmF0aW9ufSAjeyRlYXNpbmd9O1xufVxuXG4vLy9cbi8vLyBDcmVhdGVzIGEgYm94LXNoYWRvdyBmcm9tIHRoZSBNYXRlcmlhbCBlbGV2YXRpb24gc3lzdGVtLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkbGV2ZWwgLSB0aGUgbGV2ZWwgb2YgdGhlIE1hdGVyaWFsIGVsZXZhdGlvbiBzeXN0ZW0uXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRjb2xvciAtIHRoZSBjb2xvciBvZiB0aGUgc2hhZG93LlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkb3BhY2l0eS1ib29zdCBbMF0gLSBvcHRpb25hbCBvcGFjaXR5IGJvb3N0IGZvciB0aGUgc2hhZG93LlxuLy8vIEByZXR1cm4ge0xpc3R9IHRoZSBjb21wbGV0ZSBib3ggc2hhZG93LlxuLy8vXG5AZnVuY3Rpb24gX2JveC1zaGFkb3coJGxldmVsLCAkY29sb3IsICRvcGFjaXR5LWJvb3N0OiAwKSB7XG4gICRjb2xvcjogdGhlbWUtY29sb3IucHJvcC12YWx1ZSgkY29sb3IpO1xuICAkdW1icmEtei12YWx1ZTogbWFwLmdldCgkdW1icmEtbWFwLCAkbGV2ZWwpO1xuICAkcGVudW1icmEtei12YWx1ZTogbWFwLmdldCgkcGVudW1icmEtbWFwLCAkbGV2ZWwpO1xuICAkYW1iaWVudC16LXZhbHVlOiBtYXAuZ2V0KCRhbWJpZW50LW1hcCwgJGxldmVsKTtcblxuICAkdW1icmEtY29sb3I6IHJnYmEoJGNvbG9yLCAkdW1icmEtb3BhY2l0eSArICRvcGFjaXR5LWJvb3N0KTtcbiAgJHBlbnVtYnJhLWNvbG9yOiByZ2JhKCRjb2xvciwgJHBlbnVtYnJhLW9wYWNpdHkgKyAkb3BhY2l0eS1ib29zdCk7XG4gICRhbWJpZW50LWNvbG9yOiByZ2JhKCRjb2xvciwgJGFtYmllbnQtb3BhY2l0eSArICRvcGFjaXR5LWJvb3N0KTtcblxuICBAcmV0dXJuIChcbiAgICAjeycjeyR1bWJyYS16LXZhbHVlfSAjeyR1bWJyYS1jb2xvcn0nfSxcbiAgICAjeycjeyRwZW51bWJyYS16LXZhbHVlfSAjeyRwZW51bWJyYS1jb2xvcn0nfSxcbiAgICAjeyRhbWJpZW50LXotdmFsdWV9ICRhbWJpZW50LWNvbG9yXG4gICk7XG59XG5cbi8vIFJldHVybnMgdGhlIGNvcnJlY3QgYm94LXNoYWRvdyBzcGVjaWZpZWQgYnkgJHotdmFsdWUuXG4vLyBUaGUgJHotdmFsdWUgbXVzdCBiZSBiZXR3ZWVuIDAgYW5kIDI0LlxuLy8gSWYgJGNvbG9yIGhhcyBhbiBhbHBoYSBjaGFubmVsLCBpdCB3aWxsIGJlIGlnbm9yZWQgYW5kIG92ZXJyaWRkZW4uIFRvIGluY3JlYXNlIHRoZSBvcGFjaXR5IG9mIHRoZSBzaGFkb3csIHVzZVxuLy8gJG9wYWNpdHktYm9vc3QuXG5AZnVuY3Rpb24gZWxldmF0aW9uLWJveC1zaGFkb3coXG4gICR6LXZhbHVlLFxuICAkY29sb3I6ICRiYXNlbGluZS1jb2xvcixcbiAgJG9wYWNpdHktYm9vc3Q6IDBcbikge1xuICBAaWYgbWV0YS50eXBlLW9mKCR6LXZhbHVlKSAhPSBudW1iZXIgb3Igbm90IG1hdGguaXMtdW5pdGxlc3MoJHotdmFsdWUpIHtcbiAgICBAZXJyb3IgXCIkei12YWx1ZSBtdXN0IGJlIGEgdW5pdGxlc3MgbnVtYmVyLCBidXQgcmVjZWl2ZWQgJyN7JHotdmFsdWV9J1wiO1xuICB9XG5cbiAgQGlmICR6LXZhbHVlIDwgMCBvciAkei12YWx1ZSA+IDI0IHtcbiAgICBAZXJyb3IgXCIkei12YWx1ZSBtdXN0IGJlIGJldHdlZW4gMCBhbmQgMjQsIGJ1dCByZWNlaXZlZCAnI3skei12YWx1ZX0nXCI7XG4gIH1cblxuICBAcmV0dXJuIF9ib3gtc2hhZG93KCR6LXZhbHVlLCAkY29sb3IsICRvcGFjaXR5LWJvb3N0KTtcbn1cblxuLy8vXG4vLy8gUmV0dXJucyBhIHNoYWRvdyBvciBudWxsIGlmIHBhcmFtcyBhcmUgaW52YWxpZC5cbi8vLyBAcGFyYW0ge051bWJlcn0gJGxldmVsIC0gdGhlIGxldmVsIG9mIHRoZSBNYXRlcmlhbCBlbGV2YXRpb24gc3lzdGVtLlxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkY29sb3IgLSB0aGUgY29sb3Igb2YgdGhlIHNoYWRvdy5cbi8vLyBAcmV0dXJuIHtMaXN0fG51bGx9IHRoZSBjb21wbGV0ZSBib3ggc2hhZG93IG9yIG51bGwuXG4vLy9cbkBmdW5jdGlvbiBfc2hhZG93KCRsZXZlbCwgJGNvbG9yKSB7XG4gIEBpZiAkbGV2ZWwgPT0gbnVsbCBhbmQgJGNvbG9yID09IG51bGwge1xuICAgIC8vIERvIG5vdCBlbWl0IGEgd2FybmluZyBpZiBib3RoIGFyZSBudWxsLCB3aGljaCBtZWFucyB0aGUgdXNlciBkaWQgbm90XG4gICAgLy8gcHJvdmlkZSB0b2tlbnMuXG4gICAgQHJldHVybiBudWxsO1xuICB9XG5cbiAgQGlmICRsZXZlbCA9PSBudWxsIG9yICRjb2xvciA9PSBudWxsIHtcbiAgICAvLyBJZiBvbmUgb2YgdGhlIHRva2VucyBpcyBudWxsLCBlbWl0IGEgd2FybmluZzogdGhlIHVzZXIgbWF5IG5vdCByZWFsaXplXG4gICAgLy8gdGhhdCBib3RoIGFyZSByZXF1aXJlZC5cbiAgICBAd2FybiBcImJvdGggJGxldmVsIGFuZCAkY29sb3IgYXJlIHJlcXVpcmVkOyByZWNlaXZlZCAkbGV2ZWw6ICcjeyRsZXZlbH0nLCAkY29sb3I6ICcjeyRjb2xvcn0nXCI7XG4gICAgQHJldHVybiBudWxsO1xuICB9XG5cbiAgQGlmICRsZXZlbCA8IDAgb3IgJGxldmVsID4gMjQge1xuICAgIEB3YXJuIFwiJGxldmVsIG11c3QgYmUgYmV0d2VlbiAwIGFuZCAyNDsgcmVjZWl2ZWQgJyN7JGxldmVsfSdcIjtcbiAgICBAcmV0dXJuIG51bGw7XG4gIH1cblxuICBAcmV0dXJuIF9ib3gtc2hhZG93KCRsZXZlbCwgJGNvbG9yKTtcbn1cblxuQGZ1bmN0aW9uIGdldC1lbGV2YXRpb24oJGxldmVsKSB7XG4gIEByZXR1cm4gKGJveC1zaGFkb3c6IGVsZXZhdGlvbi1ib3gtc2hhZG93KCRsZXZlbCkpO1xufVxuXG4vLy9cbi8vLyBTZXRzIHRoZSBzaGFkb3cgb2YgdGhlIGVsZW1lbnQuXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGJveC1zaGFkb3cgLSBUaGUgc2hhZG93IHRvIGFwcGx5IHRvIHRoZSBlbGVtZW50LlxuLy8vXG5AbWl4aW4gX2JveC1zaGFkb3coJHNoYWRvdywgJHF1ZXJ5OiBmZWF0dXJlLXRhcmdldGluZy5hbGwoKSkge1xuICAkZmVhdC1jb2xvcjogZmVhdHVyZS10YXJnZXRpbmcuY3JlYXRlLXRhcmdldCgkcXVlcnksIGNvbG9yKTtcblxuICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy50YXJnZXRzKCRmZWF0LWNvbG9yKSB7XG4gICAgQGluY2x1ZGUgdGhlbWUucHJvcGVydHkoYm94LXNoYWRvdywgJHNoYWRvdyk7XG4gIH1cbn1cblxuLy8vXG4vLy8gU2V0cyB0aGUgc2hhZG93IG9mIHRoZSBlbGVtZW50LlxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRib3gtc2hhZG93IC0gVGhlIHNoYWRvdyB0byBhcHBseSB0byB0aGUgZWxlbWVudC5cbi8vL1xuQG1peGluIHNoYWRvdygkYm94LXNoYWRvdywgJHF1ZXJ5OiBmZWF0dXJlLXRhcmdldGluZy5hbGwoKSkge1xuICAkZmVhdC1jb2xvcjogZmVhdHVyZS10YXJnZXRpbmcuY3JlYXRlLXRhcmdldCgkcXVlcnksIGNvbG9yKTtcblxuICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy50YXJnZXRzKCRmZWF0LWNvbG9yKSB7XG4gICAgQGlmIGN1c3RvbS1wcm9wZXJ0aWVzLmlzLWN1c3RvbS1wcm9wKCRib3gtc2hhZG93KSB7XG4gICAgICAvLyBUT0RPKGIvMTg1MTg4NDU4KTogVXNlIHRoZW1lLnByb3BlcnR5KCkgb25jZSByZXNvbHZlZC5cbiAgICAgICRmYWxsYmFjazogY3VzdG9tLXByb3BlcnRpZXMuZ2V0LWZhbGxiYWNrKCRib3gtc2hhZG93KTtcblxuICAgICAgLy8gdmFyKC0tPGJveC1zaGFkb3ctcHJvcD4sIHZhcigtLW0tZWxldmF0aW9uLWJveC1zaGFkb3ctZm9yLWdzcykpXG4gICAgICAkZ3NzLWN1c3RvbS1wcm9wOiBjdXN0b20tcHJvcGVydGllcy5jcmVhdGUoXG4gICAgICAgIGN1c3RvbS1wcm9wZXJ0aWVzLmdldC12YXJuYW1lKCRib3gtc2hhZG93KSxcbiAgICAgICAgY3VzdG9tLXByb3BlcnRpZXMuY3JlYXRlKGVsZXZhdGlvbi1ib3gtc2hhZG93LWZvci1nc3MpXG4gICAgICApO1xuXG4gICAgICAkdmFsdWU6IGN1c3RvbS1wcm9wZXJ0aWVzLmNyZWF0ZS12YXIoJGdzcy1jdXN0b20tcHJvcCk7XG4gICAgICBAaWYgJHZhbHVlID09IG51bGwge1xuICAgICAgICAvLyBDdXN0b20gcHJvcGVydGllcyBhcmUgZGlzYWJsZWQsIHNpbmNlICRnc3MtY3VzdG9tLXByb3BcbiAgICAgICAgLy8gZG9lcyBub3QgaGF2ZSBhIGZhbGxiYWNrLiBBdm9pZCBlbWl0dGluZyB0d28gbm9uLWN1c3RvbVxuICAgICAgICAvLyBwcm9wIGRlY2xhcmF0aW9ucyBieSBzZXR0aW5nICRmYWxsYmFjayB0byBudWxsLlxuICAgICAgICAkdmFsdWU6ICRmYWxsYmFjaztcbiAgICAgICAgJGZhbGxiYWNrOiBudWxsO1xuICAgICAgfVxuXG4gICAgICBAaW5jbHVkZSBjdXN0b20tcHJvcGVydGllcy5kZWNsYXJhdGlvbihcbiAgICAgICAgY3VzdG9tLXByb3BlcnRpZXMuY3JlYXRlKGVsZXZhdGlvbi1ib3gtc2hhZG93LWZvci1nc3MsICRmYWxsYmFjaylcbiAgICAgICk7XG4gICAgICBAaW5jbHVkZSBjc3MuZGVjbGFyYXRpb24oYm94LXNoYWRvdywgJHZhbHVlLCAkZmFsbGJhY2stdmFsdWU6ICRmYWxsYmFjayk7XG4gICAgfSBAZWxzZSB7XG4gICAgICAvKiBAYWx0ZXJuYXRlICovXG4gICAgICBib3gtc2hhZG93OiAkYm94LXNoYWRvdztcbiAgICB9XG4gIH1cbn1cblxuLy8vXG4vLy8gU2V0cyB0aGUgZWxldmF0aW9uIG92ZXJsYXkgc3VyZmFjZSByZXF1aXJlZCBwb3NpdGlvbmluZy5cbi8vL1xuQG1peGluIG92ZXJsYXktc3VyZmFjZS1wb3NpdGlvbigkcXVlcnk6IGZlYXR1cmUtdGFyZ2V0aW5nLmFsbCgpKSB7XG4gICRmZWF0LXN0cnVjdHVyZTogZmVhdHVyZS10YXJnZXRpbmcuY3JlYXRlLXRhcmdldCgkcXVlcnksIHN0cnVjdHVyZSk7XG5cbiAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmcudGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAvKiBAYWx0ZXJuYXRlICovXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB9XG59XG5cbi8vL1xuLy8vIFNldHMgdGhlIGRpbWVuc2lvbnMgb2YgdGhlIGVsZXZhdGlvbiBvdmVybGF5LCBpbmNsdWRpbmcgcG9zaXRpb25pbmcgYW5kIHNpemluZy5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkd2lkdGggLSBUaGUgd2lkdGggb2YgdGhlIGVsZXZhdGlvbiBvdmVybGF5XG4vLy8gQHBhcmFtIHtOdW1iZXJ9IFskaGVpZ2h0XSAtIFRoZSBoZWlnaHQgb2YgdGhlIGVsZXZhdGlvbiBvdmVybGF5XG4vLy8gQHBhcmFtIHtCb29sZWFufSBbJGhhcy1jb250ZW50LXNpemluZ10gLSBTZXQgdG8gZmFsc2UgaWYgdGhlIGNvbnRhaW5lciBoYXMgbm8gY29udGVudCBzaXppbmdcbi8vL1xuQG1peGluIG92ZXJsYXktZGltZW5zaW9ucyhcbiAgJHdpZHRoLFxuICAkaGVpZ2h0OiAkd2lkdGgsXG4gICRoYXMtY29udGVudC1zaXppbmc6IHRydWUsXG4gICRxdWVyeTogZmVhdHVyZS10YXJnZXRpbmcuYWxsKClcbikge1xuICAkZmVhdC1zdHJ1Y3R1cmU6IGZlYXR1cmUtdGFyZ2V0aW5nLmNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBzdHJ1Y3R1cmUpO1xuXG4gIC5tZGMtZWxldmF0aW9uLW92ZXJsYXkge1xuICAgIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLnRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICBAaW5jbHVkZSB0aGVtZS5wcm9wZXJ0eSh3aWR0aCwgJHdpZHRoKTtcbiAgICAgIEBpbmNsdWRlIHRoZW1lLnByb3BlcnR5KGhlaWdodCwgJGhlaWdodCk7XG5cbiAgICAgIEBpZiAkaGFzLWNvbnRlbnQtc2l6aW5nIHtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBAaW5jbHVkZSBydGwuaWdub3JlLW5leHQtbGluZSgpO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgfSBAZWxzZSB7XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBAaW5jbHVkZSBydGwuaWdub3JlLW5leHQtbGluZSgpO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLy9cbi8vLyBTZXRzIHRoZSBlbGV2YXRpb24gb3ZlcmxheSBmaWxsIGNvbG9yLlxuLy8vIEV4cGVjdGVkIHRvIGJlIGNhbGxlZCBkaXJlY3RseSBvbiB0aGUgZWxldmF0aW9uIG92ZXJsYXkgZWxlbWVudC5cbi8vL1xuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciAtIFRoZSBjb2xvciBvZiB0aGUgZWxldmF0aW9uIG92ZXJsYXkuXG4vLy9cbkBtaXhpbiBvdmVybGF5LWZpbGwtY29sb3IoJGNvbG9yLCAkcXVlcnk6IGZlYXR1cmUtdGFyZ2V0aW5nLmFsbCgpKSB7XG4gICRmZWF0LWNvbG9yOiBmZWF0dXJlLXRhcmdldGluZy5jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgY29sb3IpO1xuXG4gIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLnRhcmdldHMoJGZlYXQtY29sb3IpIHtcbiAgICBAaW5jbHVkZSB0aGVtZS5wcm9wZXJ0eShiYWNrZ3JvdW5kLWNvbG9yLCAkY29sb3IpO1xuICB9XG59XG5cbi8vL1xuLy8vIEFwcGxpZXMgdGhlIGdpdmVuIGNvbG9yIHRvIHRoZSBjb250YWluZXIgb2YgdGhlIG92ZXJsYXkuXG4vLy8gQHBhcmFtIHtjb2xvcn0gJGNvbG9yIC0gdGhlIGNvbG9yIG9mIHRoZSBvdmVybGF5IGNvbnRhaW5lclxuLy8vXG5AbWl4aW4gb3ZlcmxheS1jb250YWluZXItY29sb3IoJGNvbG9yLCAkcXVlcnk6IGZlYXR1cmUtdGFyZ2V0aW5nLmFsbCgpKSB7XG4gIC5tZGMtZWxldmF0aW9uLW92ZXJsYXkge1xuICAgIEBpbmNsdWRlIG92ZXJsYXktZmlsbC1jb2xvcigkY29sb3IsICRxdWVyeTogJHF1ZXJ5KTtcbiAgfVxufVxuXG4vLy9cbi8vLyBTZXRzIHRoZSBlbGV2YXRpb24gb3ZlcmxheSBvcGFjaXR5LlxuLy8vIEV4cGVjdGVkIHRvIGJlIGNhbGxlZCBmcm9tIGEgcGFyZW50IGVsZW1lbnQuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJG9wYWNpdHkgLSBUaGUgb3BhY2l0eSBvZiB0aGUgZWxldmF0aW9uIG92ZXJsYXkuXG4vLy9cbkBtaXhpbiBvdmVybGF5LW9wYWNpdHkoJG9wYWNpdHksICRxdWVyeTogZmVhdHVyZS10YXJnZXRpbmcuYWxsKCkpIHtcbiAgJGZlYXQtY29sb3I6IGZlYXR1cmUtdGFyZ2V0aW5nLmNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBjb2xvcik7XG5cbiAgLm1kYy1lbGV2YXRpb24tb3ZlcmxheSB7XG4gICAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmcudGFyZ2V0cygkZmVhdC1jb2xvcikge1xuICAgICAgQGluY2x1ZGUgdGhlbWUucHJvcGVydHkob3BhY2l0eSwgJG9wYWNpdHkpO1xuICAgIH1cbiAgfVxufVxuXG4vLyBBcHBsaWVzIHRoZSBjb3JyZWN0IENTUyBydWxlcyB0byBhbiBlbGVtZW50IHRvIGdpdmUgaXQgdGhlIGVsZXZhdGlvbiBzcGVjaWZpZWQgYnkgJHotdmFsdWUuXG4vLyBUaGUgJHotdmFsdWUgbXVzdCBiZSBiZXR3ZWVuIDAgYW5kIDI0LlxuLy8gSWYgJGNvbG9yIGhhcyBhbiBhbHBoYSBjaGFubmVsLCBpdCB3aWxsIGJlIGlnbm9yZWQgYW5kIG92ZXJyaWRkZW4uIFRvIGluY3JlYXNlIHRoZSBvcGFjaXR5IG9mIHRoZSBzaGFkb3csIHVzZVxuLy8gJG9wYWNpdHktYm9vc3QuXG5AbWl4aW4gZWxldmF0aW9uKFxuICAkei12YWx1ZSxcbiAgJGNvbG9yOiAkYmFzZWxpbmUtY29sb3IsXG4gICRvcGFjaXR5LWJvb3N0OiAwLFxuICAkcXVlcnk6IGZlYXR1cmUtdGFyZ2V0aW5nLmFsbCgpXG4pIHtcbiAgJGJveC1zaGFkb3c6IGVsZXZhdGlvbi1ib3gtc2hhZG93KFxuICAgICR6LXZhbHVlLFxuICAgICRjb2xvcjogJGNvbG9yLFxuICAgICRvcGFjaXR5LWJvb3N0OiAkb3BhY2l0eS1ib29zdFxuICApO1xuXG4gIEBpbmNsdWRlIHNoYWRvdygkYm94LXNoYWRvdywgJHF1ZXJ5OiAkcXVlcnkpO1xufVxuXG4vLy9cbi8vLyBSZXByZXNlbnRzIHRoZSBjb25maWd1cmFibGUgdmFsdWVzIG9mIHRoZSBlbGV2YXRpb24gdGhlbWUuXG4vLy9cbiRfdGhlbWUtdmFsdWVzOiAoXG4gIHNoYWRvdzogbnVsbCxcbiAgb3ZlcmxheS1vcGFjaXR5OiBudWxsLFxuICBvdmVybGF5LWNvbG9yOiBudWxsLFxuKTtcblxuLy8vXG4vLy8gQXBwbGllcyB0aGUgc2hhZG93IHRoZW1lIHdpdGggdGhlIGdpdmVuICRyZXNvbHZlciBmdW5jdGlvbi5cbi8vLyBAcGFyYW0ge0Z1bmN0aW9ufSAkcmVzb2x2ZXIgLSBhIGZ1bmN0aW9uIHRoYXQgcmV0dXJucyBhIHZhbGlkIHRoZW1lIGNvbmZpZy5cbi8vLyAgIEBzZWUgcmVzb2x2ZXIgZm9yIGFuIGV4YW1wbGUgYW5kIGV4cGVjdGVkIGFyZ3VtZW50cyBhbmQgcmV0dXJuIHZhbHVlLlxuLy8vIEFjY2VwdHMgdGhlIGZvbGxvd2luZyBvcHRpb25hbCBrZXl3b3JkIGFyZ3M6XG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRlbGV2YXRpb24gLSB0aGUgbGV2ZWwgaW4gdGhlIGVsZXZhdGlvbiBzeXN0ZW0uXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRzaGFkb3ctY29sb3IgLSB0aGUgY29sb3IgdXNlZCBmb3IgdGhlIHNoYWRvdy5cbi8vL1xuQG1peGluIHdpdGgtcmVzb2x2ZXIoJHJlc29sdmVyLCAkcXVlcnk6IGZlYXR1cmUtdGFyZ2V0aW5nLmFsbCgpLCAkYXJncy4uLikge1xuICBAaWYgJHJlc29sdmVyIHtcbiAgICBAaW5jbHVkZSBfdGhlbWUobWV0YS5jYWxsKCRyZXNvbHZlciwgJGFyZ3MuLi4pLCAkcXVlcnk6ICRxdWVyeSk7XG4gIH1cbn1cblxuLy8vXG4vLy8gQXBwbGllcyB0aGUgZ2l2ZW4gdGhlbWUgd2l0aCB2YWxpZGF0aW9uLlxuLy8vIEBwYXJhbSB7TWFwfSAkdGhlbWUgLSBAc2VlICRfdGhlbWUtdmFsdWVzIGZvciBhY2NlcHRlZCB0aGVtZSBwcm9wZXJ0aWVzLlxuLy8vXG5AbWl4aW4gdGhlbWUoJHRoZW1lOiAoKSwgJHF1ZXJ5OiBmZWF0dXJlLXRhcmdldGluZy5hbGwoKSkge1xuICBAaW5jbHVkZSB0aGVtZS52YWxpZGF0ZS10aGVtZSgkX3RoZW1lLXZhbHVlcywgJHRoZW1lKTtcbiAgQGluY2x1ZGUgX3RoZW1lKCR0aGVtZSwgJHF1ZXJ5OiAkcXVlcnkpO1xufVxuXG4vLy9cbi8vLyBBcHBsaWVzIHRoZSBnaXZlbiB0aGVtZS5cbi8vLyBAcGFyYW0ge01hcH0gJHRoZW1lIC0gQHNlZSAkX3RoZW1lLXZhbHVlcyBmb3IgYWNjZXB0ZWQgdGhlbWUgcHJvcGVydGllcy5cbi8vL1xuQG1peGluIF90aGVtZSgkdGhlbWU6ICgpLCAkcXVlcnk6IGZlYXR1cmUtdGFyZ2V0aW5nLmFsbCgpKSB7XG4gIEBpbmNsdWRlIHNoYWRvdyhtYXAuZ2V0KCR0aGVtZSwgc2hhZG93KSwgJHF1ZXJ5OiAkcXVlcnkpO1xuICBAaW5jbHVkZSBvdmVybGF5LW9wYWNpdHkobWFwLmdldCgkdGhlbWUsIG92ZXJsYXktb3BhY2l0eSksICRxdWVyeTogJHF1ZXJ5KTtcbiAgQGluY2x1ZGUgb3ZlcmxheS1jb250YWluZXItY29sb3IoXG4gICAgbWFwLmdldCgkdGhlbWUsIG92ZXJsYXktY29sb3IpLFxuICAgICRxdWVyeTogJHF1ZXJ5XG4gICk7XG59XG5cbi8vL1xuLy8vIFRyYW5zZm9ybXMgdGhlIGZvbGxvd2luZyBvcHRpb25hbCBwYXJhbWV0ZXJzIGludG8gYSB0aGVtZSBjb25maWcuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRlbGV2YXRpb24gLSB0aGUgbGV2ZWwgb2YgdGhlIGVsZXZhdGlvbiBzeXN0ZW0gaW4gTWF0ZXJpYWwuXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRzaGFkb3ctY29sb3IgLSB0aGUgY29sb3IgdG8gYmUgdXNlZCBieSB0aGUgc2hhZG93LlxuLy8vIEByZXR1cm4ge01hcH0gQHNlZSAkX3RoZW1lLXZhbHVlcyBmb3IgYWNjZXB0ZWQgdGhlbWUgcHJvcGVydGllcy5cbi8vL1xuQGZ1bmN0aW9uIHJlc29sdmVyKCRhcmdzLi4uKSB7XG4gICRvcHRzOiBtZXRhLmtleXdvcmRzKCRhcmdzKTtcbiAgJGVsZXZhdGlvbjogbWFwLmdldCgkb3B0cywgZWxldmF0aW9uKTtcbiAgJHNoYWRvdy1jb2xvcjogbWFwLmdldCgkb3B0cywgc2hhZG93LWNvbG9yKTtcbiAgQGlmIGN1c3RvbS1wcm9wZXJ0aWVzLmlzLWN1c3RvbS1wcm9wKCRlbGV2YXRpb24pIHtcbiAgICBAcmV0dXJuIF9yZXNvbHZlLWN1c3RvbS1wcm9wcygkZWxldmF0aW9uLCAkc2hhZG93LWNvbG9yKTtcbiAgfVxuXG4gIEByZXR1cm4gKHNoYWRvdzogX3NoYWRvdygkZWxldmF0aW9uLCAkc2hhZG93LWNvbG9yKSk7XG59XG5cbkBmdW5jdGlvbiBfcmVzb2x2ZS1jdXN0b20tcHJvcHMoJGVsZXZhdGlvbiwgJHNoYWRvdy1jb2xvcikge1xuICAkZmFsbGJhY2stZHA6IGN1c3RvbS1wcm9wZXJ0aWVzLmdldC1mYWxsYmFjaygkZWxldmF0aW9uKTtcbiAgJGZhbGxiYWNrLXNoYWRvdy1jb2xvcjogY3VzdG9tLXByb3BlcnRpZXMuZ2V0LWZhbGxiYWNrKCRzaGFkb3ctY29sb3IpO1xuICAkc2hhZG93OiBjdXN0b20tcHJvcGVydGllcy5zZXQtZmFsbGJhY2soXG4gICAgJGVsZXZhdGlvbixcbiAgICBfc2hhZG93KCRmYWxsYmFjay1kcCwgJGZhbGxiYWNrLXNoYWRvdy1jb2xvcilcbiAgKTtcbiAgQHJldHVybiAoc2hhZG93OiAkc2hhZG93KTtcbn1cbiIsIkB1c2UgJ3Nhc3M6Y29sb3InO1xuQHVzZSAnc2FzczptYXAnO1xuQHVzZSAnc2FzczptYXRoJztcbkB1c2UgJ3Nhc3M6bWV0YSc7XG5AdXNlICcuLi9jb3JlL3N0eWxlL3ByaXZhdGUnO1xuQHVzZSAnLi4vY29yZS90aGVtaW5nL3RoZW1pbmcnO1xuQHVzZSAnLi4vY29yZS90eXBvZ3JhcGh5L3R5cG9ncmFwaHknO1xuQHVzZSAnLi4vY29yZS90eXBvZ3JhcGh5L3R5cG9ncmFwaHktdXRpbHMnO1xuQHVzZSAnLi4vYnV0dG9uL2ljb24tYnV0dG9uLXRoZW1lJztcblxuJHNlbGVjdGVkLXRvZGF5LWJveC1zaGFkb3ctd2lkdGg6IDFweDtcbiRzZWxlY3RlZC1mYWRlLWFtb3VudDogMC42O1xuJHJhbmdlLWZhZGUtYW1vdW50OiAwLjI7XG4kdG9kYXktZmFkZS1hbW91bnQ6IDAuMjtcbiRjYWxlbmRhci1ib2R5LWZvbnQtc2l6ZTogMTNweCAhZGVmYXVsdDtcbiRjYWxlbmRhci13ZWVrZGF5LXRhYmxlLWZvbnQtc2l6ZTogMTFweCAhZGVmYXVsdDtcblxuQG1peGluIF9jb2xvcigkcGFsZXR0ZSkge1xuICBAaW5jbHVkZSBkYXRlLXJhbmdlLWNvbG9ycyhcbiAgICB0aGVtaW5nLmdldC1jb2xvci1mcm9tLXBhbGV0dGUoJHBhbGV0dGUsIGRlZmF1bHQsICRyYW5nZS1mYWRlLWFtb3VudCkpO1xuXG4gIC5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdGhlbWluZy5nZXQtY29sb3ItZnJvbS1wYWxldHRlKCRwYWxldHRlKTtcbiAgICBjb2xvcjogdGhlbWluZy5nZXQtY29sb3ItZnJvbS1wYWxldHRlKCRwYWxldHRlLCBkZWZhdWx0LWNvbnRyYXN0KTtcbiAgfVxuXG4gIC5tYXQtY2FsZW5kYXItYm9keS1kaXNhYmxlZCA+IC5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZCB7XG4gICAgJGJhY2tncm91bmQ6IHRoZW1pbmcuZ2V0LWNvbG9yLWZyb20tcGFsZXR0ZSgkcGFsZXR0ZSk7XG5cbiAgICBAaWYgKG1ldGEudHlwZS1vZigkYmFja2dyb3VuZCkgPT0gY29sb3IpIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IGNvbG9yLmFkanVzdCgkYmFja2dyb3VuZCwgJGFscGhhOiAtJHNlbGVjdGVkLWZhZGUtYW1vdW50KTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgLy8gSWYgd2UgY291bGRuJ3QgcmVzb2x2ZSB0byBiYWNrZ3JvdW5kIHRvIGEgY29sb3IgKGUuZy4gaXQncyBhIENTUyB2YXJpYWJsZSksXG4gICAgICAvLyBmYWxsIGJhY2sgdG8gZmFkaW5nIHRoZSBjb250ZW50IG91dCB2aWEgYG9wYWNpdHlgLlxuICAgICAgb3BhY2l0eTogJHRvZGF5LWZhZGUtYW1vdW50O1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtY2FsZW5kYXItYm9keS10b2RheS5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZCB7XG4gICAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgJHNlbGVjdGVkLXRvZGF5LWJveC1zaGFkb3ctd2lkdGhcbiAgICAgICAgICAgICAgICB0aGVtaW5nLmdldC1jb2xvci1mcm9tLXBhbGV0dGUoJHBhbGV0dGUsIGRlZmF1bHQtY29udHJhc3QpO1xuICB9XG5cbiAgLmNkay1rZXlib2FyZC1mb2N1c2VkIC5tYXQtY2FsZW5kYXItYm9keS1hY3RpdmUsXG4gIC5jZGstcHJvZ3JhbS1mb2N1c2VkIC5tYXQtY2FsZW5kYXItYm9keS1hY3RpdmUge1xuICAgIEBpbmNsdWRlIF9oaWdobGlnaHRlZC1jZWxsKCRwYWxldHRlKTtcbiAgfVxuXG4gIEBtZWRpYSAoaG92ZXI6IGhvdmVyKSB7XG4gICAgLm1hdC1jYWxlbmRhci1ib2R5LWNlbGw6bm90KC5tYXQtY2FsZW5kYXItYm9keS1kaXNhYmxlZCk6aG92ZXIge1xuICAgICAgQGluY2x1ZGUgX2hpZ2hsaWdodGVkLWNlbGwoJHBhbGV0dGUpO1xuICAgIH1cbiAgfVxufVxuXG4vLyBVdGlsaXR5IG1peGluIHRvIHRhcmdldCBjZWxscyB0aGF0IGFyZW4ndCBzZWxlY3RlZC4gVXNlZCB0byBtYWtlIHNlbGVjdG9yIGVhc2llciB0byBmb2xsb3cuXG5AbWl4aW4gX3Vuc2VsZWN0ZWQtY2VsbCB7XG4gICY6bm90KC5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZCk6bm90KC5tYXQtY2FsZW5kYXItYm9keS1jb21wYXJpc29uLWlkZW50aWNhbCkge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8vIFN0eWxlcyBmb3IgYSBoaWdobGlnaHRlZCBjYWxlbmRhciBjZWxsIChlLmcuIGhvdmVyZWQgb3IgZm9jdXNlZCkuXG5AbWl4aW4gX2hpZ2hsaWdodGVkLWNlbGwoJHBhbGV0dGUpIHtcbiAgJiA+IC5tYXQtY2FsZW5kYXItYm9keS1jZWxsLWNvbnRlbnQge1xuICAgIEBpbmNsdWRlIF91bnNlbGVjdGVkLWNlbGwge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdGhlbWluZy5nZXQtY29sb3ItZnJvbS1wYWxldHRlKCRwYWxldHRlLCAwLjMpO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gY29sb3IoJGNvbmZpZy1vci10aGVtZSkge1xuICAkY29uZmlnOiB0aGVtaW5nLmdldC1jb2xvci1jb25maWcoJGNvbmZpZy1vci10aGVtZSk7XG4gICRmb3JlZ3JvdW5kOiBtYXAuZ2V0KCRjb25maWcsIGZvcmVncm91bmQpO1xuICAkYmFja2dyb3VuZDogbWFwLmdldCgkY29uZmlnLCBiYWNrZ3JvdW5kKTtcbiAgJGRpc2FibGVkLWNvbG9yOiB0aGVtaW5nLmdldC1jb2xvci1mcm9tLXBhbGV0dGUoJGZvcmVncm91bmQsIGRpc2FibGVkLXRleHQpO1xuXG4gIC5tYXQtY2FsZW5kYXItYXJyb3cge1xuICAgIGZpbGw6IHRoZW1pbmcuZ2V0LWNvbG9yLWZyb20tcGFsZXR0ZSgkZm9yZWdyb3VuZCwgaWNvbik7XG4gIH1cblxuICAvLyBUaGUgcHJldi9uZXh0IGJ1dHRvbnMgbmVlZCBhIGJpdCBtb3JlIHNwZWNpZmljaXR5IHRvXG4gIC8vIGF2b2lkIGJlaW5nIG92ZXJ3cml0dGVuIGJ5IHRoZSAubWF0LWljb24tYnV0dG9uLlxuICAubWF0LWRhdGVwaWNrZXItdG9nZ2xlLFxuICAubWF0LWRhdGVwaWNrZXItY29udGVudCAubWF0LWNhbGVuZGFyLW5leHQtYnV0dG9uLFxuICAubWF0LWRhdGVwaWNrZXItY29udGVudCAubWF0LWNhbGVuZGFyLXByZXZpb3VzLWJ1dHRvbiB7XG4gICAgY29sb3I6IHRoZW1pbmcuZ2V0LWNvbG9yLWZyb20tcGFsZXR0ZSgkZm9yZWdyb3VuZCwgaWNvbik7XG4gIH1cblxuICAubWF0LWNhbGVuZGFyLXRhYmxlLWhlYWRlci1kaXZpZGVyOjphZnRlciB7XG4gICAgYmFja2dyb3VuZDogdGhlbWluZy5nZXQtY29sb3ItZnJvbS1wYWxldHRlKCRmb3JlZ3JvdW5kLCBkaXZpZGVyKTtcbiAgfVxuXG4gIC5tYXQtY2FsZW5kYXItdGFibGUtaGVhZGVyLFxuICAubWF0LWNhbGVuZGFyLWJvZHktbGFiZWwge1xuICAgIGNvbG9yOiB0aGVtaW5nLmdldC1jb2xvci1mcm9tLXBhbGV0dGUoJGZvcmVncm91bmQsIHNlY29uZGFyeS10ZXh0KTtcbiAgfVxuXG4gIC5tYXQtY2FsZW5kYXItYm9keS1jZWxsLWNvbnRlbnQsXG4gIC5tYXQtZGF0ZS1yYW5nZS1pbnB1dC1zZXBhcmF0b3Ige1xuICAgIGNvbG9yOiB0aGVtaW5nLmdldC1jb2xvci1mcm9tLXBhbGV0dGUoJGZvcmVncm91bmQsIHRleHQpO1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIH1cblxuICAubWF0LWNhbGVuZGFyLWJvZHktZGlzYWJsZWQgPiAubWF0LWNhbGVuZGFyLWJvZHktY2VsbC1jb250ZW50IHtcbiAgICBAaW5jbHVkZSBfdW5zZWxlY3RlZC1jZWxsIHtcbiAgICAgIGNvbG9yOiAkZGlzYWJsZWQtY29sb3I7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1mb3JtLWZpZWxkLWRpc2FibGVkIC5tYXQtZGF0ZS1yYW5nZS1pbnB1dC1zZXBhcmF0b3Ige1xuICAgIGNvbG9yOiAkZGlzYWJsZWQtY29sb3I7XG4gIH1cblxuICAubWF0LWNhbGVuZGFyLWJvZHktaW4tcHJldmlldyB7XG4gICAgJGRpdmlkZXItY29sb3I6IHRoZW1pbmcuZ2V0LWNvbG9yLWZyb20tcGFsZXR0ZSgkZm9yZWdyb3VuZCwgZGl2aWRlcik7XG5cbiAgICBAaWYgbWV0YS50eXBlLW9mKCRkaXZpZGVyLWNvbG9yKSA9PSBjb2xvciB7XG4gICAgICAvLyBUaGUgZGl2aWRlciBjb2xvciBpcyBzZXQgdW5kZXIgdGhlIGFzc3VtcHRpb24gdGhhdCBpdCdsbCBiZSB1c2VkXG4gICAgICAvLyBmb3IgYSBzb2xpZCBib3JkZXIsIGJ1dCBiZWNhdXNlIHdlJ3JlIHVzaW5nIGEgZGFzaGVkIGJvcmRlciBmb3IgdGhlXG4gICAgICAvLyBwcmV2aWV3IHJhbmdlLCB3ZSBuZWVkIHRvIGJ1bXAgaXRzIG9wYWNpdHkgdG8gZW5zdXJlIHRoYXQgaXQncyB2aXNpYmxlLlxuICAgICAgY29sb3I6IHJnYmEoJGRpdmlkZXItY29sb3IsIG1hdGgubWluKG9wYWNpdHkoJGRpdmlkZXItY29sb3IpICogMiwgMSkpO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBjb2xvcjogJGRpdmlkZXItY29sb3I7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1jYWxlbmRhci1ib2R5LXRvZGF5IHtcbiAgICBAaW5jbHVkZSBfdW5zZWxlY3RlZC1jZWxsIHtcbiAgICAgIC8vIE5vdGU6IHRob3VnaCBpdCdzIG5vdCB0ZXh0LCB0aGUgYm9yZGVyIGlzIGEgaGludCBhYm91dCB0aGUgZmFjdCB0aGF0IHRoaXMgaXMgdG9kYXkncyBkYXRlLFxuICAgICAgLy8gc28gd2UgdXNlIHRoZSBoaW50IGNvbG9yLlxuICAgICAgYm9yZGVyLWNvbG9yOiB0aGVtaW5nLmdldC1jb2xvci1mcm9tLXBhbGV0dGUoJGZvcmVncm91bmQsIGhpbnQtdGV4dCk7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1jYWxlbmRhci1ib2R5LWRpc2FibGVkID4gLm1hdC1jYWxlbmRhci1ib2R5LXRvZGF5IHtcbiAgICBAaW5jbHVkZSBfdW5zZWxlY3RlZC1jZWxsIHtcbiAgICAgICRjb2xvcjogdGhlbWluZy5nZXQtY29sb3ItZnJvbS1wYWxldHRlKCRmb3JlZ3JvdW5kLCBoaW50LXRleHQpO1xuXG4gICAgICBAaWYgKG1ldGEudHlwZS1vZigkY29sb3IpID09IGNvbG9yKSB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogY29sb3IuYWRqdXN0KCRjb2xvciwgJGFscGhhOiAtJHRvZGF5LWZhZGUtYW1vdW50KTtcbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgLy8gSWYgdGhlIGNvbG9yIGRpZG4ndCByZXNvbHZlIHRvIGEgY29sb3IgdmFsdWUsIGJ1dCBzb21ldGhpbmcgbGlrZSBhIENTUyB2YXJpYWJsZSwgd2UgY2FuJ3RcbiAgICAgICAgLy8gZmFkZSBpdCBvdXQgc28gd2UgZmFsbCBiYWNrIHRvIHJlZHVjaW5nIHRoZSBlbGVtZW50IG9wYWNpdHkuIE5vdGUgdGhhdCB3ZSBkb24ndCB1c2UgdGhlXG4gICAgICAgIC8vICRtYXQtZGF0ZXBpY2tlci10b2RheS1mYWRlLWFtb3VudCwgYmVjYXVzZSBoaW50IHRleHQgdXN1YWxseSBoYXMgc29tZSBvcGFjaXR5IGFwcGxpZWRcbiAgICAgICAgLy8gdG8gaXQgYWxyZWFkeSBhbmQgd2UgZG9uJ3Qgd2FudCB0aGVtIHRvIHN0YWNrIG9uIHRvcCBvZiBlYWNoIG90aGVyLlxuICAgICAgICBvcGFjaXR5OiAwLjU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgX2NvbG9yKG1hcC5nZXQoJGNvbmZpZywgcHJpbWFyeSkpO1xuXG4gIC5tYXQtZGF0ZXBpY2tlci1jb250ZW50IHtcbiAgICBAaW5jbHVkZSBwcml2YXRlLnByaXZhdGUtdGhlbWUtZWxldmF0aW9uKDQsICRjb25maWcpO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1pbmcuZ2V0LWNvbG9yLWZyb20tcGFsZXR0ZSgkYmFja2dyb3VuZCwgY2FyZCk7XG4gICAgY29sb3I6IHRoZW1pbmcuZ2V0LWNvbG9yLWZyb20tcGFsZXR0ZSgkZm9yZWdyb3VuZCwgdGV4dCk7XG5cbiAgICAmLm1hdC1hY2NlbnQge1xuICAgICAgQGluY2x1ZGUgX2NvbG9yKG1hcC5nZXQoJGNvbmZpZywgYWNjZW50KSk7XG4gICAgfVxuXG4gICAgJi5tYXQtd2FybiB7XG4gICAgICBAaW5jbHVkZSBfY29sb3IobWFwLmdldCgkY29uZmlnLCB3YXJuKSk7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQtdG91Y2gge1xuICAgIEBpbmNsdWRlIHByaXZhdGUucHJpdmF0ZS10aGVtZS1lbGV2YXRpb24oMjQsICRjb25maWcpO1xuICB9XG5cbiAgLm1hdC1kYXRlcGlja2VyLXRvZ2dsZS1hY3RpdmUge1xuICAgIGNvbG9yOiB0aGVtaW5nLmdldC1jb2xvci1mcm9tLXBhbGV0dGUobWFwLmdldCgkY29uZmlnLCBwcmltYXJ5KSwgdGV4dCk7XG5cbiAgICAmLm1hdC1hY2NlbnQge1xuICAgICAgY29sb3I6IHRoZW1pbmcuZ2V0LWNvbG9yLWZyb20tcGFsZXR0ZShtYXAuZ2V0KCRjb25maWcsIGFjY2VudCksIHRleHQpO1xuICAgIH1cblxuICAgICYubWF0LXdhcm4ge1xuICAgICAgY29sb3I6IHRoZW1pbmcuZ2V0LWNvbG9yLWZyb20tcGFsZXR0ZShtYXAuZ2V0KCRjb25maWcsIHdhcm4pLCB0ZXh0KTtcbiAgICB9XG4gIH1cblxuICAubWF0LWRhdGUtcmFuZ2UtaW5wdXQtaW5uZXJbZGlzYWJsZWRdIHtcbiAgICBjb2xvcjogdGhlbWluZy5nZXQtY29sb3ItZnJvbS1wYWxldHRlKCRmb3JlZ3JvdW5kLCBkaXNhYmxlZC10ZXh0KTtcbiAgfVxufVxuXG5AbWl4aW4gdHlwb2dyYXBoeSgkY29uZmlnLW9yLXRoZW1lKSB7XG4gICRjb25maWc6IHR5cG9ncmFwaHkucHJpdmF0ZS10eXBvZ3JhcGh5LXRvLTIwMTQtY29uZmlnKFxuICAgICAgdGhlbWluZy5nZXQtdHlwb2dyYXBoeS1jb25maWcoJGNvbmZpZy1vci10aGVtZSkpO1xuICAubWF0LWNhbGVuZGFyIHtcbiAgICBmb250LWZhbWlseTogdHlwb2dyYXBoeS11dGlscy5mb250LWZhbWlseSgkY29uZmlnKTtcbiAgfVxuXG4gIC5tYXQtY2FsZW5kYXItYm9keSB7XG4gICAgZm9udC1zaXplOiAkY2FsZW5kYXItYm9keS1mb250LXNpemU7XG4gIH1cblxuICAubWF0LWNhbGVuZGFyLWJvZHktbGFiZWwsXG4gIC5tYXQtY2FsZW5kYXItcGVyaW9kLWJ1dHRvbiB7XG4gICAgZm9udDoge1xuICAgICAgc2l6ZTogdHlwb2dyYXBoeS11dGlscy5mb250LXNpemUoJGNvbmZpZywgYnV0dG9uKTtcbiAgICAgIHdlaWdodDogdHlwb2dyYXBoeS11dGlscy5mb250LXdlaWdodCgkY29uZmlnLCBidXR0b24pO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtY2FsZW5kYXItdGFibGUtaGVhZGVyIHRoIHtcbiAgICBmb250OiB7XG4gICAgICBzaXplOiAkY2FsZW5kYXItd2Vla2RheS10YWJsZS1mb250LXNpemU7XG4gICAgICB3ZWlnaHQ6IHR5cG9ncmFwaHktdXRpbHMuZm9udC13ZWlnaHQoJGNvbmZpZywgYm9keS0xKTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIGRhdGUtcmFuZ2UtY29sb3JzKFxuICAkcmFuZ2UtY29sb3IsXG4gICRjb21wYXJpc29uLWNvbG9yOiByZ2JhKCNmOWFiMDAsICRyYW5nZS1mYWRlLWFtb3VudCksXG4gICRvdmVybGFwLWNvbG9yOiAjYThkYWI1LFxuICAkb3ZlcmxhcC1zZWxlY3RlZC1jb2xvcjogY29sb3IuYWRqdXN0KCRvdmVybGFwLWNvbG9yLCAkbGlnaHRuZXNzOiAtMzAlKSkge1xuXG4gIC5tYXQtY2FsZW5kYXItYm9keS1pbi1yYW5nZTo6YmVmb3JlIHtcbiAgICBiYWNrZ3JvdW5kOiAkcmFuZ2UtY29sb3I7XG4gIH1cblxuICAubWF0LWNhbGVuZGFyLWJvZHktY29tcGFyaXNvbi1pZGVudGljYWwsXG4gIC5tYXQtY2FsZW5kYXItYm9keS1pbi1jb21wYXJpc29uLXJhbmdlOjpiZWZvcmUge1xuICAgIGJhY2tncm91bmQ6ICRjb21wYXJpc29uLWNvbG9yO1xuICB9XG5cbiAgLm1hdC1jYWxlbmRhci1ib2R5LWNvbXBhcmlzb24tYnJpZGdlLXN0YXJ0OjpiZWZvcmUsXG4gIFtkaXI9J3J0bCddIC5tYXQtY2FsZW5kYXItYm9keS1jb21wYXJpc29uLWJyaWRnZS1lbmQ6OmJlZm9yZSB7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCAkcmFuZ2UtY29sb3IgNTAlLCAkY29tcGFyaXNvbi1jb2xvciA1MCUpO1xuICB9XG5cbiAgLm1hdC1jYWxlbmRhci1ib2R5LWNvbXBhcmlzb24tYnJpZGdlLWVuZDo6YmVmb3JlLFxuICBbZGlyPSdydGwnXSAubWF0LWNhbGVuZGFyLWJvZHktY29tcGFyaXNvbi1icmlkZ2Utc3RhcnQ6OmJlZm9yZSB7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIGxlZnQsICRyYW5nZS1jb2xvciA1MCUsICRjb21wYXJpc29uLWNvbG9yIDUwJSk7XG4gIH1cblxuICAubWF0LWNhbGVuZGFyLWJvZHktaW4tcmFuZ2UgPiAubWF0LWNhbGVuZGFyLWJvZHktY29tcGFyaXNvbi1pZGVudGljYWwsXG4gIC5tYXQtY2FsZW5kYXItYm9keS1pbi1jb21wYXJpc29uLXJhbmdlLm1hdC1jYWxlbmRhci1ib2R5LWluLXJhbmdlOjphZnRlciB7XG4gICAgYmFja2dyb3VuZDogJG92ZXJsYXAtY29sb3I7XG4gIH1cblxuICAubWF0LWNhbGVuZGFyLWJvZHktY29tcGFyaXNvbi1pZGVudGljYWwubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQsXG4gIC5tYXQtY2FsZW5kYXItYm9keS1pbi1jb21wYXJpc29uLXJhbmdlID4gLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkIHtcbiAgICBiYWNrZ3JvdW5kOiAkb3ZlcmxhcC1zZWxlY3RlZC1jb2xvcjtcbiAgfVxufVxuXG5AbWl4aW4gX2RlbnNpdHkoJGNvbmZpZy1vci10aGVtZSkge1xuICAvLyBSZWdhcmRsZXNzIG9mIHRoZSB1c2VyLXBhc3NlZCBkZW5zaXR5LCB3ZSB3YW50IHRoZSBjYWxlbmRhciBwcmV2aW91cy9uZXh0IGJ1dHRvbnMgdG8gcmVtYWluIGF0XG4gIC8vIGRlbnNpdHkgLTJcbiAgLm1hdC1jYWxlbmRhci1jb250cm9scyB7XG4gICAgQGluY2x1ZGUgaWNvbi1idXR0b24tdGhlbWUuZGVuc2l0eSgtMik7XG4gIH1cbn1cblxuQG1peGluIHRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpIHtcbiAgJHRoZW1lOiB0aGVtaW5nLnByaXZhdGUtbGVnYWN5LWdldC10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKTtcbiAgQGluY2x1ZGUgdGhlbWluZy5wcml2YXRlLWNoZWNrLWR1cGxpY2F0ZS10aGVtZS1zdHlsZXMoJHRoZW1lLCAnbWF0LWRhdGVwaWNrZXInKSB7XG4gICAgJGNvbG9yOiB0aGVtaW5nLmdldC1jb2xvci1jb25maWcoJHRoZW1lKTtcbiAgICAkZGVuc2l0eTogdGhlbWluZy5nZXQtZGVuc2l0eS1jb25maWcoJHRoZW1lKTtcbiAgICAkdHlwb2dyYXBoeTogdGhlbWluZy5nZXQtdHlwb2dyYXBoeS1jb25maWcoJHRoZW1lKTtcblxuICAgIEBpZiAkY29sb3IgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBjb2xvcigkY29sb3IpO1xuICAgIH1cbiAgICBAaWYgJGRlbnNpdHkgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBfZGVuc2l0eSgkZGVuc2l0eSk7XG4gICAgfVxuICAgIEBpZiAkdHlwb2dyYXBoeSAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIHR5cG9ncmFwaHkoJHR5cG9ncmFwaHkpO1xuICAgIH1cbiAgfVxufVxuIiwiLy9cbi8vIENvcHlyaWdodCAyMDE4IEdvb2dsZSBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cbi8vXG5cbi8vIHN0eWxlbGludC1kaXNhYmxlIHNlbGVjdG9yLWNsYXNzLXBhdHRlcm4gLS1cbi8vIFNlbGVjdG9yICcubWRjLSonIHNob3VsZCBvbmx5IGJlIHVzZWQgaW4gdGhpcyBwcm9qZWN0LlxuXG5AdXNlICdAbWF0ZXJpYWwvZmVhdHVyZS10YXJnZXRpbmcvZmVhdHVyZS10YXJnZXRpbmcnO1xuQHVzZSAnQG1hdGVyaWFsL3RoZW1lL3RoZW1lJztcbkB1c2UgJ0BtYXRlcmlhbC90aGVtZS9jdXN0b20tcHJvcGVydGllcyc7XG5AdXNlICdAbWF0ZXJpYWwvc2hhcGUvbWl4aW5zJyBhcyBzaGFwZS1taXhpbnM7XG5AdXNlICdAbWF0ZXJpYWwvYW5pbWF0aW9uL3ZhcmlhYmxlcycgYXMgYW5pbWF0aW9uLXZhcmlhYmxlcztcbkB1c2UgJ0BtYXRlcmlhbC9lbGV2YXRpb24vbWl4aW5zJyBhcyBlbGV2YXRpb24tbWl4aW5zO1xuQHVzZSAnQG1hdGVyaWFsL3J0bC9ydGwnO1xuQHVzZSAnLi92YXJpYWJsZXMnO1xuQHVzZSAnLi9tZW51LXN1cmZhY2UtY3VzdG9tLXByb3BlcnRpZXMnO1xuXG4vL1xuLy8gUHVibGljXG4vL1xuXG5AbWl4aW4gY29yZS1zdHlsZXMoJHF1ZXJ5OiBmZWF0dXJlLXRhcmdldGluZy5hbGwoKSkge1xuICAkZmVhdC1zdHJ1Y3R1cmU6IGZlYXR1cmUtdGFyZ2V0aW5nLmNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBzdHJ1Y3R1cmUpO1xuXG4gIC8vIHBvc3Rjc3MtYmVtLWxpbnRlcjogZGVmaW5lIG1lbnUtc3VyZmFjZVxuICAubWRjLW1lbnUtc3VyZmFjZSB7XG4gICAgQGluY2x1ZGUgYmFzZV8oJHF1ZXJ5KTtcbiAgICBAaW5jbHVkZSBlbGV2YXRpb24tbWl4aW5zLmVsZXZhdGlvbigkei12YWx1ZTogOCwgJHF1ZXJ5OiAkcXVlcnkpO1xuICAgIEBpbmNsdWRlIGZpbGwtY29sb3Ioc3VyZmFjZSwgJHF1ZXJ5KTtcbiAgICBAaW5jbHVkZSBpbmstY29sb3Iob24tc3VyZmFjZSwgJHF1ZXJ5KTtcbiAgICBAaW5jbHVkZSBzaGFwZS1yYWRpdXModmFyaWFibGVzLiRzaGFwZS1yYWRpdXMsIGZhbHNlLCAkcXVlcnkpO1xuXG4gICAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmcudGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIEBpbmNsdWRlIHJ0bC5yZWZsZXhpdmUtcHJvcGVydHkodHJhbnNmb3JtLW9yaWdpbiwgdG9wIGxlZnQsIHRvcCByaWdodCk7XG4gICAgfVxuICB9XG5cbiAgLm1kYy1tZW51LXN1cmZhY2UtLWFuY2hvciB7XG4gICAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmcudGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICAgIH1cbiAgfVxuXG4gIC5tZGMtbWVudS1zdXJmYWNlLS1maXhlZCB7XG4gICAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmcudGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB9XG4gIH1cblxuICAubWRjLW1lbnUtc3VyZmFjZS0tZnVsbHdpZHRoIHtcbiAgICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy50YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuICB9XG4gIC8vIHBvc3Rjc3MtYmVtLWxpbnRlcjogZW5kXG59XG5cbkBtaXhpbiBpbmstY29sb3IoJGNvbG9yLCAkcXVlcnk6IGZlYXR1cmUtdGFyZ2V0aW5nLmFsbCgpKSB7XG4gICRmZWF0LWNvbG9yOiBmZWF0dXJlLXRhcmdldGluZy5jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgY29sb3IpO1xuXG4gIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLnRhcmdldHMoJGZlYXQtY29sb3IpIHtcbiAgICBAaW5jbHVkZSB0aGVtZS5wcm9wZXJ0eShjb2xvciwgJGNvbG9yKTtcbiAgfVxufVxuXG5AbWl4aW4gZmlsbC1jb2xvcigkY29sb3IsICRxdWVyeTogZmVhdHVyZS10YXJnZXRpbmcuYWxsKCkpIHtcbiAgJGZlYXQtY29sb3I6IGZlYXR1cmUtdGFyZ2V0aW5nLmNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBjb2xvcik7XG5cbiAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmcudGFyZ2V0cygkZmVhdC1jb2xvcikge1xuICAgIEBpbmNsdWRlIHRoZW1lLnByb3BlcnR5KGJhY2tncm91bmQtY29sb3IsICRjb2xvcik7XG4gIH1cbn1cblxuQG1peGluIHNoYXBlLXJhZGl1cyhcbiAgJHJhZGl1cyxcbiAgJHJ0bC1yZWZsZXhpdmU6IGZhbHNlLFxuICAkcXVlcnk6IGZlYXR1cmUtdGFyZ2V0aW5nLmFsbCgpXG4pIHtcbiAgQGluY2x1ZGUgc2hhcGUtbWl4aW5zLnJhZGl1cygkcmFkaXVzLCAkcnRsLXJlZmxleGl2ZSwgJHF1ZXJ5OiAkcXVlcnkpO1xufVxuXG4vLyBVc2VkIGJ5IGZpbGxlZCB2YXJpYW50cyBvZiBHTSBjb21wb25lbnRzIHRvIGNvbmRpdGlvbmFsbHkgZmxhdHRlbiB0aGUgdG9wXG4vLyBjb3JuZXJzIG9mIHRoZSBtZW51LlxuQG1peGluIGZsYXR0ZW4tdG9wLXdoZW4tb3BlbmVkLWJlbG93KCRxdWVyeTogZmVhdHVyZS10YXJnZXRpbmcuYWxsKCkpIHtcbiAgLm1kYy1tZW51LXN1cmZhY2UtLWlzLW9wZW4tYmVsb3cge1xuICAgICRmZWF0LXN0cnVjdHVyZTogZmVhdHVyZS10YXJnZXRpbmcuY3JlYXRlLXRhcmdldCgkcXVlcnksIHN0cnVjdHVyZSk7XG5cbiAgICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy50YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMHB4O1xuICAgICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDBweDtcbiAgICB9XG4gIH1cbn1cblxuLy9cbi8vIFByaXZhdGVcbi8vXG5cbkBtaXhpbiBiYXNlXygkcXVlcnk6IGZlYXR1cmUtdGFyZ2V0aW5nLmFsbCgpKSB7XG4gICRmZWF0LXN0cnVjdHVyZTogZmVhdHVyZS10YXJnZXRpbmcuY3JlYXRlLXRhcmdldCgkcXVlcnksIHN0cnVjdHVyZSk7XG4gICRmZWF0LWFuaW1hdGlvbjogZmVhdHVyZS10YXJnZXRpbmcuY3JlYXRlLXRhcmdldCgkcXVlcnksIGFuaW1hdGlvbik7XG5cbiAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmcudGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXG4gICAgJG1heC13aWR0aDogY3VzdG9tLXByb3BlcnRpZXMuY3JlYXRlKFxuICAgICAgbWVudS1zdXJmYWNlLWN1c3RvbS1wcm9wZXJ0aWVzLiRtYXgtd2lkdGgsXG4gICAgICBjYWxjKDEwMHZ3IC0gI3t2YXJpYWJsZXMuJG1pbi1kaXN0YW5jZS1mcm9tLWVkZ2V9KVxuICAgICk7XG4gICAgQGluY2x1ZGUgdGhlbWUucHJvcGVydHkobWF4LXdpZHRoLCAkbWF4LXdpZHRoKTtcbiAgICAkbWF4LWhlaWdodDogY3VzdG9tLXByb3BlcnRpZXMuY3JlYXRlKFxuICAgICAgbWVudS1zdXJmYWNlLWN1c3RvbS1wcm9wZXJ0aWVzLiRtYXgtaGVpZ2h0LFxuICAgICAgY2FsYygxMDB2aCAtICN7dmFyaWFibGVzLiRtaW4tZGlzdGFuY2UtZnJvbS1lZGdlfSlcbiAgICApO1xuICAgIEBpbmNsdWRlIHRoZW1lLnByb3BlcnR5KG1heC1oZWlnaHQsICRtYXgtaGVpZ2h0KTtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IHRvcCBsZWZ0O1xuICAgIG9wYWNpdHk6IDA7XG4gICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgICB6LWluZGV4OiB2YXJpYWJsZXMuJHotaW5kZXg7XG4gIH1cblxuICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy50YXJnZXRzKCRmZWF0LWFuaW1hdGlvbikge1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgdmFyaWFibGVzLiRmYWRlLWluLWR1cmF0aW9uIGxpbmVhcixcbiAgICAgIHRyYW5zZm9ybSB2YXJpYWJsZXMuJHNjYWxlLWR1cmF0aW9uXG4gICAgICAgIGFuaW1hdGlvbi12YXJpYWJsZXMuJGRlY2VsZXJhdGlvbi1jdXJ2ZS10aW1pbmctZnVuY3Rpb24sXG4gICAgICBoZWlnaHQgMjUwbXMgYW5pbWF0aW9uLXZhcmlhYmxlcy4kZGVjZWxlcmF0aW9uLWN1cnZlLXRpbWluZy1mdW5jdGlvbjtcbiAgfVxuXG4gICY6Zm9jdXMge1xuICAgIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLnRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICBvdXRsaW5lOiBub25lO1xuICAgIH1cbiAgfVxuXG4gICYtLWFuaW1hdGluZy1vcGVuIHtcbiAgICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy50YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwLjgpO1xuICAgICAgb3BhY2l0eTogMDtcbiAgICB9XG4gIH1cblxuICAvLyBSZW5kZXIgdGhpcyBhZnRlciBgLS1hbmltYXRpbmctb3BlbmAgdG8gb3ZlcnJpZGUgYG9wYWNpdHlgICYgYHRyYW5zZm9ybWBcbiAgLy8gQ1NTIHByb3BlcnRpZXMuXG4gICYtLW9wZW4ge1xuICAgIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLnRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG4gIH1cblxuICAmLS1hbmltYXRpbmctY2xvc2VkIHtcbiAgICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy50YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgb3BhY2l0eTogMDtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy50YXJnZXRzKCRmZWF0LWFuaW1hdGlvbikge1xuICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSB2YXJpYWJsZXMuJGZhZGUtb3V0LWR1cmF0aW9uIGxpbmVhcjtcbiAgICB9XG4gIH1cbn1cbiIsIkB1c2UgJ0BtYXRlcmlhbC90aGVtZS90aGVtZS1jb2xvcic7XG5AdXNlICdAbWF0ZXJpYWwvZGVuc2l0eS92YXJpYWJsZXMnIGFzIGRlbnNpdHktdmFyaWFibGVzO1xuXG4kcmlwcGxlLXRhcmdldDogJy5tZGMtbGlzdC1pdGVtX19yaXBwbGUnO1xuJGRpdmlkZXItY29sb3Itb24tbGlnaHQtYmc6IHJnYmEoMCwgMCwgMCwgMC4xMikgIWRlZmF1bHQ7XG4kZGl2aWRlci1jb2xvci1vbi1kYXJrLWJnOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMikgIWRlZmF1bHQ7XG4kY29udGVudC1kaXNhYmxlZC1vcGFjaXR5OiB0aGVtZS1jb2xvci50ZXh0LWVtcGhhc2lzKGRpc2FibGVkKSAhZGVmYXVsdDtcbiRjb250ZW50LWRpc2FibGVkLWNvbG9yOiBvbi1zdXJmYWNlICFkZWZhdWx0O1xuJGNvbnRlbnQtc2VsZWN0ZWQtY29sb3I6IHByaW1hcnkgIWRlZmF1bHQ7XG4kc2lkZS1wYWRkaW5nOiAxNnB4ICFkZWZhdWx0O1xuXG4kb25lLWxpbmUtaXRlbS1kZW5zaXR5LXNjYWxlOiBkZW5zaXR5LXZhcmlhYmxlcy4kZGVmYXVsdC1zY2FsZSAhZGVmYXVsdDtcbiR0d28tbGluZS1pdGVtLWRlbnNpdHktc2NhbGU6IGRlbnNpdHktdmFyaWFibGVzLiRkZWZhdWx0LXNjYWxlICFkZWZhdWx0O1xuJHRocmVlLWxpbmUtaXRlbS1kZW5zaXR5LXNjYWxlOiBkZW5zaXR5LXZhcmlhYmxlcy4kZGVmYXVsdC1zY2FsZSAhZGVmYXVsdDtcbiRvbmUtbGluZS1pdGVtLWRlbnNpdHktY29uZmlnOiAoXG4gIGhlaWdodDogKFxuICAgIGRlZmF1bHQ6IDQ4cHgsXG4gICAgbWF4aW11bTogNDhweCxcbiAgICBtaW5pbXVtOiAyNHB4LFxuICApLFxuKSAhZGVmYXVsdDtcbiRvbmUtbGluZS1pdGVtLXRhbGwtZGVuc2l0eS1jb25maWc6IChcbiAgaGVpZ2h0OiAoXG4gICAgZGVmYXVsdDogNTZweCxcbiAgICBtYXhpbXVtOiA1NnB4LFxuICAgIG1pbmltdW06IDQwcHgsXG4gICksXG4pICFkZWZhdWx0O1xuJG9uZS1saW5lLWl0ZW0tdGFsbGVyLWRlbnNpdHktY29uZmlnOiAoXG4gIGhlaWdodDogKFxuICAgIGRlZmF1bHQ6IDcycHgsXG4gICAgbWF4aW11bTogNzJweCxcbiAgICBtaW5pbXVtOiA1NnB4LFxuICApLFxuKSAhZGVmYXVsdDtcbiR0d28tbGluZS1pdGVtLWRlbnNpdHktY29uZmlnOiAoXG4gIGhlaWdodDogKFxuICAgIGRlZmF1bHQ6IDY0cHgsXG4gICAgbWF4aW11bTogNjRweCxcbiAgICBtaW5pbXVtOiA0OHB4LFxuICApLFxuKSAhZGVmYXVsdDtcbiR0d28tbGluZS1pdGVtLXRhbGwtZGVuc2l0eS1jb25maWc6IChcbiAgaGVpZ2h0OiAoXG4gICAgZGVmYXVsdDogNzJweCxcbiAgICBtYXhpbXVtOiA3MnB4LFxuICAgIG1pbmltdW06IDU2cHgsXG4gICksXG4pICFkZWZhdWx0O1xuJHR3by1saW5lLWl0ZW0tdGFsbGVyLWRlbnNpdHktY29uZmlnOiAoXG4gIGhlaWdodDogKFxuICAgIGRlZmF1bHQ6IDg4cHgsXG4gICAgbWF4aW11bTogODhweCxcbiAgICBtaW5pbXVtOiA3MnB4LFxuICApLFxuKSAhZGVmYXVsdDtcbiR0aHJlZS1saW5lLWl0ZW0tZGVuc2l0eS1jb25maWc6IChcbiAgaGVpZ2h0OiAoXG4gICAgZGVmYXVsdDogODhweCxcbiAgICBtYXhpbXVtOiA4OHB4LFxuICAgIG1pbmltdW06IDU2cHgsXG4gICksXG4pICFkZWZhdWx0O1xuIiwiLy8gQ29weXJpZ2h0IDIwMjAgR29vZ2xlIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuXG5AdXNlICdAbWF0ZXJpYWwvZmVhdHVyZS10YXJnZXRpbmcvZmVhdHVyZS10YXJnZXRpbmcnO1xuLy8vXG4vLy8gRW1pdHMgbmVjZXNzYXJ5IGxheW91dCBzdHlsZXMgdG8gc2V0IGEgdHJhbnNwYXJlbnQgYm9yZGVyIGFyb3VuZCBhbiBlbGVtZW50XG4vLy8gd2l0aG91dCBpbnRlcmZlcmluZyB3aXRoIHRoZSByZXN0IG9mIGl0cyBjb21wb25lbnQgbGF5b3V0LiBUaGUgYm9yZGVyIGlzXG4vLy8gb25seSB2aXNpYmxlIGluIGhpZ2gtY29udHJhc3QgbW9kZS4gVGhlIHRhcmdldCBlbGVtZW50IHNob3VsZCBiZSBhIGNoaWxkIG9mXG4vLy8gYSByZWxhdGl2ZWx5IHBvc2l0aW9uZWQgdG9wLWxldmVsIGVsZW1lbnQgKGkuZS4gYSA6OmJlZm9yZSBwc2V1ZG8tZWxlbWVudCkuXG4vLy9cbi8vLyBAcGFyYW0ge251bWJlcn0gJGJvcmRlci13aWR0aCAtIFRoZSB3aWR0aCBvZiB0aGUgdHJhbnNwYXJlbnQgYm9yZGVyLlxuLy8vIEBwYXJhbSB7c3RyaW5nfSAkYm9yZGVyLXN0eWxlIC0gVGhlIHN0eWxlIG9mIHRoZSB0cmFuc3BhcmVudCBib3JkZXIuXG4vLy9cbkBtaXhpbiB0cmFuc3BhcmVudC1ib3JkZXIoXG4gICRib3JkZXItd2lkdGg6IDFweCxcbiAgJGJvcmRlci1zdHlsZTogc29saWQsXG4gICRxdWVyeTogZmVhdHVyZS10YXJnZXRpbmcuYWxsKClcbikge1xuICAkZmVhdC1zdHJ1Y3R1cmU6IGZlYXR1cmUtdGFyZ2V0aW5nLmNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBzdHJ1Y3R1cmUpO1xuXG4gIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLnRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIGJvcmRlcjogJGJvcmRlci13aWR0aCAkYm9yZGVyLXN0eWxlIHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci1yYWRpdXM6IGluaGVyaXQ7XG4gICAgY29udGVudDogJyc7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIH1cblxuICAvLyBVc2VkIHRvIHNhdGlzZnkgRmlyZWZveCB2OTQgd2hpY2ggZG9lcyBub3QgcmVuZGVyIHRyYW5zcGFyZW50IGJvcmRlcnMgaW4gSENNIChiLzIwNjQ0MDgzOCkuXG4gIEBpbmNsdWRlIGZvcmNlZC1jb2xvcnMtbW9kZSgkZXhjbHVkZS1pZTExOiB0cnVlKSB7XG4gICAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmcudGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIGJvcmRlci1jb2xvcjogQ2FudmFzVGV4dDtcbiAgICB9XG4gIH1cbn1cblxuLy8vXG4vLy8gVmlzdWFsbHkgaGlkZXMgdGV4dCBjb250ZW50IGZvciBhY2Nlc3NpYmlsaXR5LiBUaGlzIHRleHQgc2hvdWxkIG9ubHkgYmVcbi8vLyB2aXNpYmxlIHRvIHNjcmVlbiByZWFkZXIgdXNlcnMuXG4vLy8gU2VlIGh0dHBzOi8vYTExeXByb2plY3QuY29tL3Bvc3RzL2hvdy10by1oaWRlLWNvbnRlbnQvXG4vLy9cbkBtaXhpbiB2aXN1YWxseS1oaWRkZW4oJHF1ZXJ5OiBmZWF0dXJlLXRhcmdldGluZy5hbGwoKSkge1xuICAkZmVhdC1zdHJ1Y3R1cmU6IGZlYXR1cmUtdGFyZ2V0aW5nLmNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBzdHJ1Y3R1cmUpO1xuXG4gIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLnRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgY2xpcDogcmVjdCgxcHgsIDFweCwgMXB4LCAxcHgpO1xuICAgIGhlaWdodDogMXB4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7IC8qIGFkZGVkIGxpbmUgKi9cbiAgICB3aWR0aDogMXB4O1xuICB9XG59XG5cbi8vLyBTZWxlY3RzIGZvciBJRTExIHN1cHBvcnQuXG4vLy9cbi8vLyBAY29udGVudCBzdHlsZXMgdG8gZW1pdCBmb3IgSUUxMSBzdXBwb3J0XG5AbWl4aW4gaWUxMS1zdXBwb3J0IHtcbiAgQG1lZGlhIGFsbCBhbmQgKC1tcy1oaWdoLWNvbnRyYXN0OiBub25lKSwgKC1tcy1oaWdoLWNvbnRyYXN0OiBhY3RpdmUpIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG4vLy8gU2VsZWN0cyBmb3IgYGZvcmNlZC1jb2xvcnNgIGhpZ2ggY29udHJhc3QgbW9kZS5cbi8vL1xuLy8vIFdoaWxlIGluIGBmb3JjZWQtY29sb3JzYCBtb2RlLCBvbmx5IHN5c3RlbSBjb2xvcnMgc2hvdWxkIGJlIHVzZWQuXG4vLy9cbi8vLyBAbGluayBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9DU1MvY29sb3JfdmFsdWUjc3lzdGVtX2NvbG9yc1xuLy8vIEBsaW5rIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0NTUy9AbWVkaWEvZm9yY2VkLWNvbG9yc1xuLy8vIEBjb250ZW50IHN0eWxlcyB0byBlbWl0IGluIGBmb3JjZWQtY29sb3JzYCBtb2RlXG5AbWl4aW4gZm9yY2VkLWNvbG9ycy1tb2RlKCRleGNsdWRlLWllMTE6IGZhbHNlKSB7XG4gIEBpZiAkZXhjbHVkZS1pZTExIHtcbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAoZm9yY2VkLWNvbG9yczogYWN0aXZlKSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH0gQGVsc2Uge1xuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChmb3JjZWQtY29sb3JzOiBhY3RpdmUpLCAoLW1zLWhpZ2gtY29udHJhc3Q6IGFjdGl2ZSkge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG59XG4iLCIuY2RrLW92ZXJsYXktcGFuZSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG59XG5cbi8vIERpc2FibGUgZ2xvYmFsIHNjcm9sbGJhcnMgKHVzZWQgaW4gZnVsbCBzY3JlZW4gZXVpLWRpYWxvZyBmb3IgZXhhbXBsZSlcbi5jZGstZ2xvYmFsLXNjcm9sbGJsb2NrIHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgb3ZlcmZsb3cteTogc2Nyb2xsOyAgICAgLy8gTWF0ZXJpYWwgZGVmYXVsdFxuICAgIHdpZHRoOiAxMDAlO1xuICAgIEBpbmNsdWRlIGV1aS1zY3JvbGxiYXJzO1xufVxuQGluY2x1ZGUgbWVkaWEoJGV1aS1ia3AtbW9iaWxlKSB7XG4gICAgLmNkay1nbG9iYWwtc2Nyb2xsYmxvY2sge1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIG92ZXJmbG93OiBhdXRvO1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBAaW5jbHVkZSBldWktc2Nyb2xsYmFycztcbiAgICB9XG59XG4iLCJAbWl4aW4gZXVpLXNjcm9sbGJhcnMoICRzaXplOiA4cHgsICRmb3JlZ3JvdW5kLWNvbG9yOiB2KGV1aS1iYXNlLWNvbG9yLWdyZXktMjApLCAkYmFja2dyb3VuZC1jb2xvcjogdihldWktYmFzZS1jb2xvci1ncmV5LTEwKSwgJGJvcmRlci1yYWRpdXM6IDVyZW0sICRzdGF0ZTogYWN0aXZlICkge1xuICAgICY6Oi13ZWJraXQtc2Nyb2xsYmFyIHtcbiAgICAgICAgZGlzcGxheTogaW5oZXJpdDtcbiAgICAgICAgaGVpZ2h0OiAkc2l6ZTsgICAgICAvLyBob3Jpem9udGFsIHNjcm9sbFxuICAgICAgICB3aWR0aDogJHNpemU7ICAgICAgIC8vIHZlcnRpY2FsIHNjcm9sbFxuICAgICAgICAvLyB6LWluZGV4OiB2KGV1aS1iYXNlLXotaW5kZXgtaGlnaGxpZ2h0ZWQpOyAgICAgICAgLy8gc2hvdWxkIGJlIHdoZW4gaW4gZWRpdGlvbiBtb2RlXG4gICAgICAgIEBpZiAoJHN0YXRlID09IGFjdGl2ZSkge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQtY29sb3I7XG4gICAgICAgIH1cbiAgICAgICAgQGVsc2Uge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBUaGlzIGlzIHRoZSBzY3JvbGxpbmcgYmFyXG4gICAgJjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIge1xuICAgICAgICBAaWYgKCRzdGF0ZSA9PSBhY3RpdmUpIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRmb3JlZ3JvdW5kLWNvbG9yO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXM7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHYoZXVpLWJhc2UtY29sb3ItZ3JleS0yNSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgQGVsc2Uge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBUaGlzIGlzIHRoZSBzY3JvbGwgY29udGFpbmVyXG4gICAgJjo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2sge1xuICAgICAgICBAaWYgKCRzdGF0ZSA9PSBhY3RpdmUpIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgfVxuICAgICAgICBAZWxzZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgfVxuICAgIH1cbn1cbkBtaXhpbiBldWktc2Nyb2xsYmFycy1pbmFjdGl2ZSgkc2l6ZTogOHB4KSB7XG4gICAgJjo6LXdlYmtpdC1zY3JvbGxiYXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgZGlzcGxheTogaW5oZXJpdDtcbiAgICAgICAgaGVpZ2h0OiAkc2l6ZTsgICAgICAvLyBob3Jpem9udGFsIHNjcm9sbFxuICAgICAgICB3aWR0aDogJHNpemU7ICAgICAgIC8vIHZlcnRpY2FsIHNjcm9sbFxuICAgIH1cblxuICAgICY6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgfVxuXG4gICAgJjo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2sge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICB9XG59XG4iLCIkZGVmYXVsdC1mZWF0dXJlOiBcIm1pbi13aWR0aFwiO1xuQG1peGluIG1lZGlhKCRxdWVyeTogJGZlYXR1cmUgJHZhbHVlICRjb2x1bW5zKSB7XG4gICAgQGlmIGxlbmd0aCgkcXVlcnkpID09IDEge1xuICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAoJGRlZmF1bHQtZmVhdHVyZTogbnRoKCRxdWVyeSwgMSkpIHtcbiAgICAgICAgICAgIEBjb250ZW50O1xuICAgICAgICB9XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgICAgJGxvb3AtdG86IGxlbmd0aCgkcXVlcnkpO1xuICAgICAgICAkbWVkaWEtcXVlcnk6IFwic2NyZWVuIGFuZCBcIjtcbiAgICAgICAgQGlmIGlzLW5vdChpcy1ldmVuKGxlbmd0aCgkcXVlcnkpKSkge1xuICAgICAgICAgICAgJGxvb3AtdG86ICRsb29wLXRvIC0gMTtcbiAgICAgICAgfVxuICAgICAgICAkaTogMTtcbiAgICAgICAgQHdoaWxlICRpIDw9JGxvb3AtdG8ge1xuICAgICAgICAgICAgJG1lZGlhLXF1ZXJ5OiAkbWVkaWEtcXVlcnkgKyBcIihcIiArIG50aCgkcXVlcnksICRpKSArIFwiOiBcIiArIG50aCgkcXVlcnksICRpICsgMSkgKyBcIikgXCI7XG4gICAgICAgICAgICBAaWYgKCRpICsgMSkgIT0gJGxvb3AtdG8ge1xuICAgICAgICAgICAgICAgICRtZWRpYS1xdWVyeTogJG1lZGlhLXF1ZXJ5ICsgXCJhbmQgXCI7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAkaTogJGkrMjtcbiAgICAgICAgfVxuICAgICAgICBAbWVkaWEgI3skbWVkaWEtcXVlcnl9IHtcbiAgICAgICAgICAgIEBjb250ZW50O1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiLy8gVE9ETyB2MTUgcmVtb3ZlIC8gcmVwbGFjZSBpbiBzaG93Y3phc2VcblxuLmZsZXgtY29udGFpbmVyIHtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgd2lkdGg6IDEwMCU7XG59XG5cbi8vIHYgdiB2ICBJRTExIEZJWEVTIC0+IFRPIEJFIERFUFJFQ0FURUQgIHYgdiB2XG4vLyBGbGV4Ym94IC8gQm9vdHN0cmFwIG9idmlvdXMgb3ZlcnJpZGVzIGZvciBJRS9WZW5kb3JzXG4uZC1mbGV4IHtcbiAgICBkaXNwbGF5OiAtd2Via2l0LWJveCAhaW1wb3J0YW50O1xuICAgIGRpc3BsYXk6IC13ZWJraXQtZmxleCAhaW1wb3J0YW50O1xuICAgIGRpc3BsYXk6IC1tcy1mbGV4Ym94ICFpbXBvcnRhbnQ7XG4gICAgZGlzcGxheTogZmxleCAhaW1wb3J0YW50O1xufVxuXG4vLyBMaWtlIC5jb2wgZGVmaW5pdGlvbiB3aXRoIElFIGZpeFxuLnV4LWNvbCB7XG4gICAgLy8gQSBwcmVmZXJyZWQgc2l6ZSBvZiAwIG11c3QgaGF2ZSBhIHVuaXQgdG8gYXZvaWQgYmVpbmcgaW50ZXJwcmV0ZWQgYXMgYSBmbGV4aWJpbGl0eS5cbiAgICAvLyBEZWZhdWx0cyB0byAwJSB3aGVuIG9taXR0ZWQuXG4gICAgLy8gU291cmNlOiBNRE4gJiBNU0ROXG4gICAgZmxleDogMSAwIGF1dG87XG59XG4iLCIvLyBUT0RPIHYxNSB0cmFuc2ZlciB0byBzdHlsZXMgYmFzZSA/XG5cbi8vIEhFQURJTkdTXG5oMSxcbmgyLFxuaDMsXG5oNCxcbmg1LFxuaDYsXG4uaDEsXG4uaDIsXG4uaDMsXG4uaDQsXG4uaDUsXG4uaDYsXG4uaDcsXG4uaDgsXG4uaDkge1xuICAgIEBpbmNsdWRlIGV1aS1mb250LWZhbWlseSgpO1xuICAgIGNvbG9yOiBpbmhlcml0O1xuICAgIC8vIGZvbnQtZmFtaWx5OiB2KGV1aS1iYXNlLWZvbnQtZmFtaWx5KTtcbiAgICAvLyBmb250LXdlaWdodDogbm9ybWFsO1xufVxuXG5oMSxcbi5oMSB7XG4gICAgQGluY2x1ZGUgZXVpLWZvbnQoNHhsLCB1aSk7XG4gICAgbGluZS1oZWlnaHQ6IHYoZXVpLWJhc2UtbGluZS1oZWlnaHQpO1xufVxuXG5oMixcbi5oMiB7XG4gICAgQGluY2x1ZGUgZXVpLWZvbnQoM3hsLCB1aSk7XG4gICAgbGluZS1oZWlnaHQ6IHYoZXVpLWJhc2UtbGluZS1oZWlnaHQpO1xufVxuXG5oMyxcbi5oMyB7XG4gICAgQGluY2x1ZGUgZXVpLWZvbnQoMnhsLCB1aSk7XG4gICAgbGluZS1oZWlnaHQ6IHYoZXVpLWJhc2UtbGluZS1oZWlnaHQpO1xufVxuXG5oNCxcbi5oNCB7XG4gICAgQGluY2x1ZGUgZXVpLWZvbnQoeGwsIHVpKTtcbiAgICBsaW5lLWhlaWdodDogdihldWktYmFzZS1saW5lLWhlaWdodCk7XG59XG5cbmg1LFxuLmg1IHtcbiAgICBAaW5jbHVkZSBldWktZm9udChsLCB1aSk7XG4gICAgbGluZS1oZWlnaHQ6IHYoZXVpLWJhc2UtbGluZS1oZWlnaHQpO1xufVxuXG5oNixcbi5oNiB7XG4gICAgQGluY2x1ZGUgZXVpLWZvbnQobSwgdWkpO1xuICAgIGxpbmUtaGVpZ2h0OiB2KGV1aS1iYXNlLWxpbmUtaGVpZ2h0KTtcbn1cblxuLmg3LFxuLnNtYWxsIHtcbiAgICBAaW5jbHVkZSBldWktZm9udChzLCB1aSk7XG4gICAgbGluZS1oZWlnaHQ6IHYoZXVpLWJhc2UtbGluZS1oZWlnaHQpO1xufVxuXG4uaDgsXG4uc21hbGxlciB7XG4gICAgQGluY2x1ZGUgZXVpLWZvbnQoeHMsIHVpKTtcbiAgICBsaW5lLWhlaWdodDogdihldWktYmFzZS1saW5lLWhlaWdodCk7XG59XG5cbi5oOSxcbi5zbWFsbGVzdCxcbi50aW55IHtcbiAgICBAaW5jbHVkZSBldWktZm9udCgyeHMsIHVpKTtcbiAgICBsaW5lLWhlaWdodDogdihldWktYmFzZS1saW5lLWhlaWdodCk7XG59XG5cblxuYSxcbmE6bm90KFtocmVmXSk6bm90KFt0YWJpbmRleF0pIHtcbiAgICBjb2xvcjogdihldWktYmFzZS1jb2xvci1saW5rKTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAmOmhvdmVyLFxuICAgICY6Zm9jdXMge1xuICAgICAgICBjb2xvcjogdihldWktYmFzZS1jb2xvci1saW5rKTtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgfVxufVxuXG5hIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG5cbmE6Zm9jdXMge1xuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xufVxuXG5hYmJyW3RpdGxlXSB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyAgLy8gVE9ETzogdW5kZXJsaW5lIGRvdHRlZCBpcyB0aGUgZGVmYXVsdCBhbmQgcmVjb21tZW5kZWQgdXNhZ2Vcbn1cblxuLmxhYmVsLCBhYmJyLCBibG9ja3F1b3RlLCBkZWwsIGxhYmVsLCBtYXJrLCBwIHtcbiAgICBmb250LXNpemU6IHYoZXVpLWJhc2UtZm9udC1zaXplKTtcbn1cblxubGFiZWwge1xuICAgIG1hcmdpbi1ib3R0b206IHYoZXVpLWJhc2Utc3BhY2luZy14cyk7XG59XG4iLCJAbWl4aW4gZXVpLWZvbnQoJHNpemU6IG0sICRmYW1pbHk6IHVpKSB7XG4gICAgJHNlbGVjdGVkLWZhbWlseTogbWFwLWdldCgkZXVpLWJhc2UtdG9rZW5zLWZvbnRzLCAkZmFtaWx5KTtcbiAgICAkc2VsZWN0ZWQtZm9udC1kZWZpbml0aW9uOiBtYXAtZ2V0KCRzZWxlY3RlZC1mYW1pbHksICRzaXplKTtcblxuICAgIGZvbnQ6ICRzZWxlY3RlZC1mb250LWRlZmluaXRpb247XG59XG4iLCIvLyBlVUkgMTMrIG9ubHlcbi5ldWktaW5wdXQtbWF4bGVuZ3RoLXdyYXBwZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB3aWR0aDogMTAwJTtcblxuICAgIC5ldWktaW5wdXQtbWF4bGVuZ3RoIHtcbiAgICAgICAgQGluY2x1ZGUgZXVpLWZvbnQoeHMsIHVpKTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdihldWktYmFzZS1jb2xvci1ncmV5LTEwKTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdihldWktYmFzZS1jb2xvci1ncmV5LTUwKTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogdihldWktYmFzZS1ib3JkZXItcmFkaXVzKTtcbiAgICAgICAgY29sb3I6IHYoZXVpLWJhc2UtY29sb3ItYmxhY2spO1xuICAgICAgICBwYWRkaW5nOiAwIHYoZXVpLWJhc2Utc3BhY2luZy0yeHMpO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHJpZ2h0OiBjYWxjKC0xICogI3t2KGV1aS1iYXNlLXNwYWNpbmcteHMpfSk7XG4gICAgICAgIHRvcDogY2FsYygtMSAqICN7dihldWktYmFzZS1zcGFjaW5nLXhzKX0pO1xuICAgICAgICB6LWluZGV4OiB2KGV1aS1iYXNlLXotaW5kZXgtaW5wdXQtbWF4bGVuZ3RoKTtcblxuICAgICAgICAmLS1pbnZhbGlkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHYoZXVpLWJhc2UtY29sb3ItZGFuZ2VyLTEwMCk7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IHYoZXVpLWJhc2UtY29sb3ItZGFuZ2VyLTEwMCk7XG4gICAgICAgICAgICBjb2xvcjogdihldWktYmFzZS1jb2xvci13aGl0ZSk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCJodG1sIHtcbiAgICAvLyBFeHBvc2VkIENTUyB2YXJzXG4gICAgLS1ldWktaHRtbC1mb250LXNpemU6IHZhcigtLWV1aS1iYXNlLWZvbnQtc2l6ZSk7XG4gICAgLS1ldWktaHRtbC1saW5lLWhlaWdodDogdmFyKC0tZXVpLWJhc2UtbGluZS1oZWlnaHQpO1xuXG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGZvbnQtc2l6ZTogdihldWktaHRtbC1mb250LXNpemUpO1xuICAgIGxpbmUtaGVpZ2h0OiB2KGV1aS1odG1sLWxpbmUtaGVpZ2h0KTtcbn1cbiIsImJvZHkge1xuICAgIC8vIEV4cG9zZWQgQ1NTIHZhcnNcbiAgICAtLWV1aS1ib2R5LWJnLWNvbG9yOiB2YXIoLS1ldWktYXBwLWJvZHktYmctY29sb3IpO1xuICAgIC0tZXVpLWJvZHktY29sb3I6IHZhcigtLWV1aS1iYXNlLWNvbG9yKTtcbiAgICAtLWV1aS1ib2R5LWZvbnQtZmFtaWx5OiB2YXIoLS1ldWktYmFzZS1mb250LWZhbWlseSk7XG4gICAgLS1ldWktYm9keS1mb250LXNpemU6IHZhcigtLWV1aS1iYXNlLWZvbnQtc2l6ZSk7XG4gICAgLS1ldWktYm9keS1saW5lLWhlaWdodDogdmFyKC0tZXVpLWJhc2UtbGluZS1oZWlnaHQpO1xuXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdihldWktYm9keS1iZy1jb2xvcik7XG4gICAgY29sb3I6IHYoZXVpLWJvZHktY29sb3IpO1xuICAgIGZvbnQtZmFtaWx5OiB2KGV1aS1ib2R5LWZvbnQtZmFtaWx5KTtcbiAgICBmb250LWZlYXR1cmUtc2V0dGluZ3M6ICdsaWdhJztcbiAgICBmb250LXNpemU6IHYoZXVpLWJvZHktZm9udC1zaXplKTtcbiAgICAtbW96LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgbGluZS1oZWlnaHQ6IHYoZXVpLWJvZHktbGluZS1oZWlnaHQpO1xuICAgIG1hcmdpbjogMDtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIHRleHQtcmVuZGVyaW5nOiBvcHRpbWl6ZUxlZ2liaWxpdHk7XG59XG4iLCIvLyBNYWtlIHZpZXdwb3J0IHJlc3BvbnNpdmVcbi8vXG4vLyBAdmlld3BvcnQgaXMgbmVlZGVkIGJlY2F1c2UgSUUgMTArIGRvZXNuJ3QgaG9ub3IgPG1ldGEgbmFtZT1cInZpZXdwb3J0XCI+IGluXG4vLyBzb21lIGNhc2VzLiBTZWUgaHR0cHM6Ly90aW1rYWRsZWMuY29tLzIwMTIvMTAvaWUxMC1zbmFwLW1vZGUtYW5kLXJlc3BvbnNpdmUtZGVzaWduLy5cbi8vIEV2ZW50dWFsbHkgQHZpZXdwb3J0IHdpbGwgcmVwbGFjZSA8bWV0YSBuYW1lPVwidmlld3BvcnRcIj4uXG4vL1xuLy8gSG93ZXZlciwgYGRldmljZS13aWR0aGAgaXMgYnJva2VuIG9uIElFIDEwIG9uIFdpbmRvd3MgKFBob25lKSA4LFxuLy8gKHNlZSBodHRwczovL3RpbWthZGxlYy5jb20vMjAxMy8wMS93aW5kb3dzLXBob25lLTgtYW5kLWRldmljZS13aWR0aC8gYW5kIGh0dHBzOi8vZ2l0aHViLmNvbS90d2JzL2Jvb3RzdHJhcC9pc3N1ZXMvMTA0OTcpXG4vLyBhbmQgdGhlIGZpeCBmb3IgdGhhdCBpbnZvbHZlcyBhIHNuaXBwZXQgb2YgSmF2YVNjcmlwdCB0byBzbmlmZiB0aGUgdXNlciBhZ2VudFxuLy8gYW5kIGFwcGx5IHNvbWUgY29uZGl0aW9uYWwgQ1NTLlxuLy9cbi8vIFNlZSBodHRwczovL2dldGJvb3RzdHJhcC5jb20vZ2V0dGluZy1zdGFydGVkLyNzdXBwb3J0LWllMTAtd2lkdGggZm9yIHRoZSByZWxldmFudCBoYWNrLlxuLy9cbi8vIFdyYXAgYEB2aWV3cG9ydGAgd2l0aCBgQGF0LXJvb3RgIGZvciB3aGVuIGZvbGtzIGRvIGEgbmVzdGVkIGltcG9ydCAoZS5nLixcbi8vIGAuY2xhc3MtbmFtZSB7IEBpbXBvcnQgXCJib290c3RyYXBcIjsgfWApLlxuQGF0LXJvb3Qge1xuICAgIEAtbXMtdmlld3BvcnQge1xuICAgICAgICB3aWR0aDogZGV2aWNlLXdpZHRoO1xuICAgIH1cbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgICNCT1gtU0laSU5HXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIE1vcmUgc2Vuc2libGUgZGVmYXVsdCBib3gtc2l6aW5nOlxuICogY3NzLXRyaWNrcy5jb20vaW5oZXJpdGluZy1ib3gtc2l6aW5nLXByb2JhYmx5LXNsaWdodGx5LWJldHRlci1iZXN0LXByYWN0aWNlXG4gKi9cblxuaHRtbCB7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cblxuKiB7XG4gICAgJixcbiAgICAmOjpiZWZvcmUsXG4gICAgJjo6YWZ0ZXIge1xuICAgICAgICBib3gtc2l6aW5nOiBpbmhlcml0O1xuICAgIH1cbn1cblxuLy8gQXZvaWQgMzAwbXMgY2xpY2sgZGVsYXkgb24gdG91Y2ggZGV2aWNlcyB0aGF0IHN1cHBvcnQgdGhlIGB0b3VjaC1hY3Rpb25gIENTUyBwcm9wZXJ0eS5cbi8vXG4vLyBJbiBwYXJ0aWN1bGFyLCB1bmxpa2UgbW9zdCBvdGhlciBicm93c2VycywgSUUxMStFZGdlIG9uIFdpbmRvd3MgMTAgb24gdG91Y2ggZGV2aWNlcyBhbmQgSUUgTW9iaWxlIDEwLTExXG4vLyBET04nVCByZW1vdmUgdGhlIGNsaWNrIGRlbGF5IHdoZW4gYDxtZXRhIG5hbWU9XCJ2aWV3cG9ydFwiIGNvbnRlbnQ9XCJ3aWR0aD1kZXZpY2Utd2lkdGhcIj5gIGlzIHByZXNlbnQuXG4vLyBIb3dldmVyLCB0aGV5IERPIHN1cHBvcnQgcmVtb3ZpbmcgdGhlIGNsaWNrIGRlbGF5IHZpYSBgdG91Y2gtYWN0aW9uOiBtYW5pcHVsYXRpb25gLlxuLy8gU2VlOlxuLy8gKiBodHRwczovL3Y0LWFscGhhLmdldGJvb3RzdHJhcC5jb20vY29udGVudC9yZWJvb3QvI2NsaWNrLWRlbGF5LW9wdGltaXphdGlvbi1mb3ItdG91Y2hcbi8vICogaHR0cDovL2Nhbml1c2UuY29tLyNmZWF0PWNzcy10b3VjaC1hY3Rpb25cbi8vICogaHR0cHM6Ly9wYXRyaWNraGxhdWtlLmdpdGh1Yi5pby90b3VjaC90ZXN0cy9yZXN1bHRzLyNzdXBwcmVzc2luZy0zMDBtcy1kZWxheVxuXG5hLFxuYXJlYSxcbmJ1dHRvbixcbltyb2xlPVwiYnV0dG9uXCJdLFxuaW5wdXQsXG5sYWJlbCxcbnNlbGVjdCxcbnN1bW1hcnksXG50ZXh0YXJlYSB7XG4gICAgdG91Y2gtYWN0aW9uOiBtYW5pcHVsYXRpb247XG59XG5cbi8vIFN1cHByZXNzIHRoZSBmb2N1cyBvdXRsaW5lIG9uIGVsZW1lbnRzIHRoYXQgY2Fubm90IGJlIGFjY2Vzc2VkIHZpYSBrZXlib2FyZC5cbi8vIFRoaXMgcHJldmVudHMgYW4gdW53YW50ZWQgZm9jdXMgb3V0bGluZSBmcm9tIGFwcGVhcmluZyBhcm91bmQgZWxlbWVudHMgdGhhdFxuLy8gbWlnaHQgc3RpbGwgcmVzcG9uZCB0byBwb2ludGVyIGV2ZW50cy5cbi8vXG4vLyBDcmVkaXQ6IGh0dHBzOi8vZ2l0aHViLmNvbS9zdWl0Y3NzL2Jhc2Vcblt0YWJpbmRleD1cIi0xXCJdOmZvY3VzIHtcbiAgICBvdXRsaW5lOiBub25lICFpbXBvcnRhbnQ7XG59XG5cbi8vIEFsd2F5cyBoaWRlIGFuIGVsZW1lbnQgd2l0aCB0aGUgYGhpZGRlbmAgSFRNTCBhdHRyaWJ1dGUgKGZyb20gUHVyZUNTUykuXG5baGlkZGVuXSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xufVxuXG5wLFxubGFiZWwsXG4ubGFiZWwsXG5ibG9ja3F1b3RlLFxuYWJicixcbm1hcmssXG5kZWwge1xuICAgIGZvbnQtc2l6ZTogdihldWktYmFzZS1mb250LXNpemUpO1xufVxuXG4ubGFiZWwsXG5sYWJlbCB7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsgICAvLyBEbyBOT1QgY2hhbmdlIVxuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIHBhZGRpbmctcmlnaHQ6IHYoZXVpLWJhc2Utc3BhY2luZy1tKTsgIC8vIEZvciBpbmxpbmUgZGlzcGxheVxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgICAgIC8vIE1hbmRhdG9yeSEgRG8gTk9UIGNoYW5nZSFcbn1cblxuZW0ge1xuICAgIC8vZm9udC1mYW1pbHk6IHYoZXVpLWZvbnQtZmFtaWx5LWl0YWxpYyk7IC8vIGRvIE5PVCB1c2UgbWl4aW4gaGVyZSFcbiAgICBmb250LXN0eWxlOiBpdGFsaWM7XG59XG5cbm9wdGdyb3VwLFxuc3Ryb25nLFxuYiB7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG5cbiAgICAmIGksXG4gICAgJiBlbSB7XG4gICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICB9XG59XG5cbmNvZGUsXG5rYmQsXG5wcmUsXG5zYW1wIHtcbiAgICBmb250LXNpemU6IHYoZXVpLWJhc2UtZm9udC1zaXplKTtcbiAgICBAaW5jbHVkZSBldWktZm9udC1mYW1pbHktbW9ub3NwYWNlO1xufVxuXG5jb2RlIHtcbiAgICBjb2xvcjogI2NjMzY3YjsgICAgIC8vIFdDQUcyIEFBIGNvbnRyYXN0IHJhdGlvIGNvbXBsaWFudDogNC41OVxuICAgIGZvbnQtc2l6ZTogOTUlO1xuICAgIHdvcmQtd3JhcDogYnJlYWstd29yZDtcbn1cblxuc21hbGwge1xuICAgIGZvbnQtc2l6ZTogODAlO1xufVxuXG5rYmQge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHYoZXVpLWJhc2UtY29sb3ItZ3JleS03NSk7ICAgIC8vIFdDQUcyIEFBIGNvbXBsaWFudFxuICAgIGJvcmRlci1yYWRpdXM6IHYoZXVpLWJhc2UtYm9yZGVyLXJhZGl1cyk7XG4gICAgY29sb3I6IHYoZXVpLWJhc2UtY29sb3Itd2hpdGUpO1xuICAgIGZvbnQtc2l6ZTogdihldWktYmFzZS1mb250LXNpemUtcyk7XG4gICAgcGFkZGluZzogMXB4IHYoZXVpLWJhc2Utc3BhY2luZy0yeHMpO1xufVxuXG5wcmUge1xuICAgIGNvbG9yOiB2KGV1aS1iYXNlLWNvbG9yKTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmb250LXNpemU6IDg3LjUlO1xuICAgIG1hcmdpbi1ib3R0b206IHYoZXVpLWJhc2Utc3BhY2luZy1tKTtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICAgIG92ZXJmbG93OiBhdXRvO1xufVxuXG5ibG9ja3F1b3RlIHtcbiAgICBib3JkZXItbGVmdDogdihldWktYmFzZS1zcGFjaW5nLXhzKSBzb2xpZCB2KGV1aS1iYXNlLWNvbG9yLWdyZXktMjApO1xuICAgIHBhZGRpbmc6IHYoZXVpLWJhc2Utc3BhY2luZy14cykgdihldWktYmFzZS1zcGFjaW5nLW0pO1xufVxuXG5tYXJrLFxuLm1hcmsge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHYoZXVpLWJhc2UtY29sb3ItYWNjZW50LTI1KTtcbiAgICBwYWRkaW5nOiB2KGV1aS1iYXNlLXNwYWNpbmctMnhzKTtcbn1cbiIsIi8vIHN0eWxlbGludC1kaXNhYmxlIG5vLWRlc2NlbmRpbmctc3BlY2lmaWNpdHlcbnRhYmxlLmV1aS10YWJsZS1kZWZhdWx0IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuICAgIGJvcmRlci1zcGFjaW5nOiAwO1xuICAgIGNvbG9yOiB2KGV1aS1iYXNlLWNvbG9yLWZvbnQpO1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBvdmVyZmxvdzogYXV0bztcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAvLyBPdmVyYWxsIHNldHRpbmdzIChkZWZhdWx0KVxuICAgIHRoZWFkID4gdHIgPiB0aCxcbiAgICB0Ym9keSA+IHRyID4gdGQsXG4gICAgdGZvb3QgPiB0ciA+IHRkIHtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICB9XG5cbiAgICB0ciA+IHRoLFxuICAgIHRyID4gdGQge1xuICAgICAgICBwYWRkaW5nOiB2KGV1aS1iYXNlLXNwYWNpbmctcyk7XG4gICAgfVxuXG4gICAgdGhlYWQge1xuICAgICAgICB0aCB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdihldWktYmFzZS1jb2xvci1ncmV5LTEwKTtcbiAgICAgICAgICAgIGNvbG9yOiB2KGV1aS1iYXNlLWNvbG9yLWdyZXktNzUpO1xuICAgICAgICAgICAgZm9udC1zaXplOiB2KGV1aS1iYXNlLWZvbnQtc2l6ZSk7XG4gICAgICAgICAgICBwYWRkaW5nOiB2KGV1aS1iYXNlLXNwYWNpbmctbSkgdihldWktYmFzZS1zcGFjaW5nLXMpO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGV1aS1mb250LWZhbWlseS1ib2xkO1xuICAgICAgICB9XG5cbiAgICAgICAgdHIge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogdihldWktYmFzZS1jb2xvci1ncmV5LTUpO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIFN0cmlwZWQgJiBob3ZlcmVkIHRhYmxlcyBieSBkZWZhdWx0IChVWClcbiAgICB0Ym9keSB7XG4gICAgICAgIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDsgIC8vIG9wdGlvbmFsIC0gZW5hYmxlIGlPUyBtb21lbnR1bSBzY3JvbGxpbmdcblxuICAgICAgICB0cjpudGgtb2YtdHlwZShvZGQpIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHYoZXVpLWJhc2UtY29sb3Itd2hpdGUpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2KGV1aS1iYXNlLWNvbG9yLWdyZXktNSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0cjpudGgtb2YtdHlwZShldmVuKSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2KGV1aS1iYXNlLWNvbG9yLWdyZXktNSk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHYoZXVpLWJhc2UtY29sb3Itd2hpdGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgdHIge1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdihldWktYmFzZS1jb2xvci1ncmV5LTIwKTtcbiAgICAgICAgZGlzcGxheTogdGFibGUtcm93O1xuICAgIH1cblxuICAgIC8vIENvbXBhY3QgdGFibGVcbiAgICAmLS1jb21wYWN0IHtcbiAgICAgICAgdGhlYWQge1xuICAgICAgICAgICAgdGgge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IHYoZXVpLWJhc2Utc3BhY2luZy14cykgdihldWktYmFzZS1zcGFjaW5nLXMpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdHIgPiB0ZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiB2KGV1aS1iYXNlLXNwYWNpbmctMnhzKSB2KGV1aS1iYXNlLXNwYWNpbmctcyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBSZXNwb25zaXZlIHRhYmxlXG4gICAgJi0tcmVzcG9uc2l2ZSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmLS1ib3JkZXJlZCB7XG4gICAgICAgICAgICBib3JkZXI6IDA7ICAvLyBQcmV2ZW50IGRvdWJsZSBib3JkZXIgb24gaG9yaXpvbnRhbCBzY3JvbGwgZHVlIHRvIHVzZSBvZiBgZGlzcGxheTogYmxvY2s7YFxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gQm9yZGVyZWQgdGFibGVcbiAgICAmLS1ib3JkZXJlZCB7XG4gICAgICAgIHRoLFxuICAgICAgICB0ZCB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2KGV1aS1iYXNlLWNvbG9yLWdyZXktMjApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gU2hhZG93ZWQgdGFibGVcbiAgICAmLS1zaGFkb3dlZCB7XG4gICAgICAgIGJveC1zaGFkb3c6IHYoZXVpLWJhc2UtYmFzZS1zaGFkb3ctMSk7XG4gICAgfVxuXG4gICAgLy8gTm9XcmFwIHRhYmxlIGNvbnRlbnQgKGFsc28gZGlzYWJsZXMgZWxsaXBzaXMpXG4gICAgJi0tbm93cmFwIHtcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcblxuICAgICAgICB0aGVhZCA+IHRyID4gdGgsXG4gICAgICAgIHRib2R5ID4gdHIgPiB0ZCxcbiAgICAgICAgdGZvb3QgPiB0ciA+IHRkIHtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBDZW50ZXJlZCB0YWJsZVxuICAgICYtLWNlbnRlcmVkIHtcbiAgICAgICAgZGlzcGxheTogdGFibGU7XG4gICAgICAgIG1hcmdpbjogMCBhdXRvO1xuICAgICAgICB3aWR0aDogYXV0bztcbiAgICB9XG5cbiAgICAvLyBNaWRkbGUgYWxpZ25lZCBjZWxscyBjb250ZW50XG4gICAgJi0tYWxpZ24tbWlkZGxlIHtcbiAgICAgICAgdGhlYWQgPiB0ciA+IHRoLFxuICAgICAgICB0Ym9keSA+IHRyID4gdGQsXG4gICAgICAgIHRmb290ID4gdHIgPiB0ZCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4vLyAvLyBSRVNQT05TSVZFIExBWU9VVCAoUFJPVE8pXG4vLyBAaW5jbHVkZSBtZWRpYSgkZXVpLWJrcC1tb2JpbGUpIHtcbi8vICAgICB0YWJsZS51eC10YWJsZSB7XG4vLyAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4vLyAgICAgICAgICYudXgtdGFibGUtLXJlc3BvbnNpdmUge1xuLy8gICAgICAgICAgICAgZGlzcGxheTogY29udGVudHM7XG5cbi8vICAgICAgICAgICAgICYudXgtdGFibGUtLWJvcmRlcmVkIHtcbi8vICAgICAgICAgICAgICAgICB0ciB7XG4vLyAgICAgICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHYoZXVpLWJhc2UtY29sb3ItZ3JleS1saWdodCk7XG4vLyAgICAgICAgICAgICAgICAgfVxuLy8gICAgICAgICAgICAgfVxuXG4vLyAgICAgICAgICAgICAmLnV4LXRhYmxlLS1jb21wYWN0IHtcbi8vICAgICAgICAgICAgICAgICB0ZCB7XG4vLyAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiB2KGV1aS1iYXNlLXNwYWNpbmctM3hzKTtcbi8vICAgICAgICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IHYoZXVpLWJhc2Utc3BhY2luZy0yeHMpO1xuXG4vLyAgICAgICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4vLyAgICAgICAgICAgICAgICAgICAgICAgICB0b3A6IHYoZXVpLWJhc2Utc3BhY2luZy0yeHMpO1xuLy8gICAgICAgICAgICAgICAgICAgICB9XG4vLyAgICAgICAgICAgICAgICAgfVxuLy8gICAgICAgICAgICAgfVxuXG4vLyAgICAgICAgICAgICAvLyBGb3JjZSB0YWJsZSB0byBiZSBsaWtlIGNhcmRzXG4vLyAgICAgICAgICAgICB0aGVhZCxcbi8vICAgICAgICAgICAgIHRib2R5LFxuLy8gICAgICAgICAgICAgdGgsXG4vLyAgICAgICAgICAgICB0ZCxcbi8vICAgICAgICAgICAgIHRyIHtcbi8vICAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbi8vICAgICAgICAgICAgIH1cblxuLy8gICAgICAgICAgICAgLy8gSGlkZSB0YWJsZSBoZWFkZXJzIGJ1dCBub3QgZGlzcGxheTogbm9uZSBmb3IgYWNjZXNzaWJpbGl0eVxuLy8gICAgICAgICAgICAgdGhlYWQgdHIge1xuLy8gICAgICAgICAgICAgICAgIGxlZnQ6IC05OTk5cHg7XG4vLyAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuLy8gICAgICAgICAgICAgICAgIHRvcDogLTk5OTlweDtcbi8vICAgICAgICAgICAgIH1cblxuLy8gICAgICAgICAgICAgdHIge1xuLy8gICAgICAgICAgICAgICAgIGhlaWdodDogYXV0bztcbi8vICAgICAgICAgICAgIH1cblxuLy8gICAgICAgICAgICAgdGgsXG4vLyAgICAgICAgICAgICB0ZCB7XG4vLyAgICAgICAgICAgICAgICAgLy8gQmVoYXZlIGxpa2UgYSBcInJvd1wiXG4vLyAgICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuLy8gICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2KGV1aS1iYXNlLWNvbG9yLWdyZXktbGlnaHRlc3QpO1xuLy8gICAgICAgICAgICAgICAgIHBhZGRpbmc6IHYoZXVpLWJhc2Utc3BhY2luZy14cyk7XG4vLyAgICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiA1MCU7XG4vLyAgICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuLy8gICAgICAgICAgICAgfVxuXG4vLyAgICAgICAgICAgICB0ZDo6YmVmb3JlIHtcbi8vICAgICAgICAgICAgICAgICBjb2xvcjogdihldWktYmFzZS1jb2xvci1ncmV5LWRhcmspO1xuLy8gICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1jb2wpOyAgICAvLyBMaWtlIGEgdGFibGUgaGVhZGVyIGNvbHVtblxuLy8gICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuLy8gICAgICAgICAgICAgICAgIGxlZnQ6IHYoZXVpLWJhc2Utc3BhY2luZy14cyk7XG4vLyAgICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogdihldWktYmFzZS1zcGFjaW5nLXhzKTtcbi8vICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4vLyAgICAgICAgICAgICAgICAgLy8gTWltaWMgdG9wICYgbGVmdCBwYWRkaW5nc1xuLy8gICAgICAgICAgICAgICAgIHRvcDogdihldWktYmFzZS1zcGFjaW5nLXhzKTtcbi8vICAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuLy8gICAgICAgICAgICAgICAgIHdpZHRoOiA0NSU7XG4vLyAgICAgICAgICAgICB9XG4vLyAgICAgICAgIH1cbi8vICAgICB9XG4vLyB9XG4iLCIvLyBHTE9CQUwgQ09NUEFDVCBUSEVNRVxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbmh0bWwuZXVpLXQtY29tcGFjdCB7XG4gICAgLy8gRXhwb3NlZCBDU1MgdmFyaWFibGVzXG4gICAgLS1ldWktYmFzZS1mb250LXNpemU6IDE0cHg7ICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEZvbnQgc2l6ZSBiYXNlIGZvciBjb21wYWN0IHRoZW1lXG4gICAgLS1ldWktYmFzZS1saW5lLWhlaWdodDogMS4yNTsgICAgICAgICAgICAgICAgICAgICAgIC8vIFVuaXRsZXNzIG51bWJlciB2YWx1ZSBpcyBtdWx0aXBsaWVkIGJ5IHRoZSBlbGVtZW50J3MgZm9udCBzaXplXG4gICAgLy8gU2V0dXBcbiAgICBmb250LXNpemU6IHZhcigtLWV1aS1iYXNlLWZvbnQtc2l6ZSk7ICAgICAgICAgICAgICAgLy8gQXBwbGllcyB0aGUgZGVmaW5lZCBjdXN0b20gZm9udCBzaXplXG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLWV1aS1iYXNlLWxpbmUtaGVpZ2h0KTsgICAgICAgICAgIC8vIEFwcGxpZXMgdGhlIGRlZmluZWQgY3VzdG9tIGxpbmUgaGVpZ2h0IHJhdGlvXG59XG5cbi8vIEZPUk0gRUxFTUVOVFNcbi8vLy8vLy8vLy8vLy8vLy8vXG5mb3JtLmV1aS10LWZvcm0tY29tcGFjdCB7XG4gICAgLy8gRXhwb3NlZCBDU1MgdmFyaWFibGVzXG4gICAgLS1ldWktYmFzZS1mb250LXNpemU6IDE0cHg7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gRm9udCBzaXplIGJhc2UgZm9yIGNvbXBhY3QgdGhlbWVcbiAgICAtLWV1aS1iYXNlLWxpbmUtaGVpZ2h0OiAxLjI1OyAgICAgICAgICAgICAgICAgICAgICAgLy8gVW5pdGxlc3MgbnVtYmVyIHZhbHVlIGlzIG11bHRpcGxpZWQgYnkgdGhlIGVsZW1lbnQncyBmb250IHNpemVcbiAgICAtLWV1aS1pbnB1dC1ncm91cC1zcGFjaW5nOiB2YXIoLS1ldWktYmFzZS1zcGFjaW5nLXhzKTsgICAvLyBTcGFjaW5nIGJldHdlZW4gZm9ybSBncm91cHMgZWxlbWVudHNcbiAgICAvLyBJbnRlcm5hbHNcbiAgICAvLyBTZWU6IGV1aS1zdHlsZXMtYmFzZVxcc3JjXFxzdHlsZXNcXDAyLWJhc2VcXG1peGluc1xcdGhlbWluZ1xcX2NvbXBhY3QtdmFycy5zY3NzXG4gICAgQGluY2x1ZGUgZXVpLWNvbXBhY3QtZ2V0LXRva2VucygpO1xuICAgIC8vIFNldHVwXG4gICAgZm9udC1zaXplOiB2YXIoLS1ldWktYmFzZS1mb250LXNpemUpOyAgICAgICAgICAgICAgICAgICAgLy8gQXBwbGllcyB0aGUgZGVmaW5lZCBjdXN0b20gZm9udCBzaXplXG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLWV1aS1iYXNlLWxpbmUtaGVpZ2h0KTsgICAgICAgICAgIC8vIEFwcGxpZXMgdGhlIGRlZmluZWQgY3VzdG9tIGxpbmUgaGVpZ2h0IHJhdGlvXG5cbiAgICAvLyBJbnRlcm5hbHNcbiAgICAuZXVpLWlucHV0LWdyb3VwIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tZXVpLWlucHV0LWdyb3VwLXNwYWNpbmcpO1xuXG4gICAgICAgIGxhYmVsIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IHZhcigtLWV1aS1iYXNlLXNwYWNpbmctMnhzKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5ldWktaW5wdXQtZ3JvdXAtYWRkb24taXRlbSB7XG4gICAgICAgIG1pbi1oZWlnaHQ6IGNhbGMoMi41ICogI3t2KGV1aS1iYXNlLXNwYWNpbmcpfSk7XG4gICAgICAgIG1pbi13aWR0aDogY2FsYygyLjUgKiAje3YoZXVpLWJhc2Utc3BhY2luZyl9KTtcbiAgICAgICAgcGFkZGluZzogY2FsYygje3YoZXVpLWJhc2Utc3BhY2luZy14cyl9IC0gMXB4KTtcbiAgICB9XG59XG5cbi8vIFRBQkxFXG4vLy8vLy8vLy8vLy8vLy8vL1xuLmV1aS10YWJsZS5ldWktdC10YWJsZS1jb21wYWN0IHtcbiAgICAvLyBFeHBvc2VkIENTUyB2YXJpYWJsZXNcbiAgICAtLWV1aS1iYXNlLWZvbnQtc2l6ZTogMTRweDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBGb250IHNpemUgYmFzZSBmb3IgY29tcGFjdCB0aGVtZVxuICAgIC0tZXVpLWJhc2UtbGluZS1oZWlnaHQ6IDEuMjU7ICAgICAgICAgICAgICAgICAgICAgICAvLyBVbml0bGVzcyBudW1iZXIgdmFsdWUgaXMgbXVsdGlwbGllZCBieSB0aGUgZWxlbWVudCdzIGZvbnQgc2l6ZVxuICAgIC0tZXVpLXRhYmxlLWhlYWRlci1wYWRkaW5nOiB2YXIoLS1ldWktYmFzZS1zcGFjaW5nLXMpOyAgIC8vIFRhYmxlIGhlYWRlciBzcGFjZXIgc2V0IHRvIDAuNzVyZW1cbiAgICAtLWV1aS10YWJsZS1yb3ctcGFkZGluZzogdmFyKC0tZXVpLWJhc2Utc3BhY2luZy0yeHMpOyAgICAvLyBUYWJsZSBib2R5IHJvdyBzcGFjZXIgc2V0IHRvIDAuMjVyZW1cbiAgICAtLWV1aS10YWJsZS1mb290ZXItcGFkZGluZzogdmFyKC0tZXVpLWJhc2Utc3BhY2luZy1zKTsgICAvLyBUYWJsZSBmb290ZXIgc3BhY2VyIHNldCB0byAwLjc1cmVtXG4gICAgLy8gSW50ZXJuYWxzXG4gICAgQGluY2x1ZGUgZXVpLWNvbXBhY3QtZ2V0LXRva2VucygpO1xuICAgIC8vIFNldHVwXG4gICAgZm9udC1zaXplOiB2YXIoLS1ldWktYmFzZS1mb250LXNpemUpOyAgICAgICAgICAgICAgICAgICAgLy8gQXBwbGllcyB0aGUgZGVmaW5lZCBjdXN0b20gZm9udCBzaXplXG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLWV1aS1iYXNlLWxpbmUtaGVpZ2h0KTsgICAgICAgICAgIC8vIEFwcGxpZXMgdGhlIGRlZmluZWQgY3VzdG9tIGxpbmUgaGVpZ2h0IHJhdGlvXG5cbiAgICAvLyBJbnRlcm5hbHNcbiAgICB0aGVhZCB7XG4gICAgICAgIHRyIHtcbiAgICAgICAgICAgIGhlaWdodDogYXV0bztcblxuICAgICAgICAgICAgdGgge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IHZhcigtLWV1aS10YWJsZS1oZWFkZXItcGFkZGluZykgIHZhcigtLWV1aS1iYXNlLXNwYWNpbmctcyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB0Ym9keSB7XG4gICAgICAgIHRyIHtcbiAgICAgICAgICAgIGhlaWdodDogYXV0bztcblxuICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IHZhcigtLWV1aS10YWJsZS1yb3ctcGFkZGluZykgIHZhcigtLWV1aS1iYXNlLXNwYWNpbmctcyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB0Zm9vdCB7XG4gICAgICAgIHRyIHtcbiAgICAgICAgICAgIGhlaWdodDogYXV0bztcblxuICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IHZhcigtLWV1aS10YWJsZS1mb290ZXItcGFkZGluZykgIHZhcigtLWV1aS1iYXNlLXNwYWNpbmctcyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8vIENBUkRcbi8vLy8vLy8vLy8vLy8vLy8vXG4uZXVpLWNhcmQuZXVpLXQtY2FyZC1jb21wYWN0IHtcbiAgICAvLyBFeHBvc2VkIENTUyB2YXJpYWJsZXNcbiAgICAtLWV1aS1iYXNlLWZvbnQtc2l6ZTogMTRweDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBGb250IHNpemUgYmFzZSBmb3IgY29tcGFjdCB0aGVtZVxuICAgIC0tZXVpLWJhc2UtbGluZS1oZWlnaHQ6IDEuMjU7ICAgICAgICAgICAgICAgICAgICAgICAvLyBVbml0bGVzcyBudW1iZXIgdmFsdWUgaXMgbXVsdGlwbGllZCBieSB0aGUgZWxlbWVudCdzIGZvbnQgc2l6ZVxuICAgIC0tZXVpLWNhcmQtdGl0bGUtc2l6ZTogdmFyKC0tZXVpLWJhc2UtZm9udC1zaXplLW0pOyAgICAgIC8vIENhcmQgdGl0bGUgZm9udCBzaXplXG4gICAgLS1ldWktY2FyZC1zdWJ0aXRsZS1zaXplOiB2YXIoLS1ldWktYmFzZS1mb250LXNpemUtcyk7ICAgLy8gQ2FyZCBzdWJ0aXRsZSBmb250IHNpemVcbiAgICAvLyBJbnRlcm5hbHNcbiAgICBAaW5jbHVkZSBldWktY29tcGFjdC1nZXQtdG9rZW5zKCk7XG4gICAgLy8gU2V0dXBcbiAgICBmb250LXNpemU6IHZhcigtLWV1aS1iYXNlLWZvbnQtc2l6ZSk7ICAgICAgICAgICAgICAgICAgICAvLyBBcHBsaWVzIHRoZSBkZWZpbmVkIGN1c3RvbSBmb250IHNpemVcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tZXVpLWJhc2UtbGluZS1oZWlnaHQpOyAgICAgICAgICAgLy8gQXBwbGllcyB0aGUgZGVmaW5lZCBjdXN0b20gbGluZSBoZWlnaHQgcmF0aW9cblxuICAgIC8vIEludGVybmFsc1xuICAgIC5ldWktY2FyZCB7XG4gICAgICAgICYtaGVhZGVyIHtcbiAgICAgICAgICAgICZfX3RpdGxlLWNvbnRhaW5lciB7XG4gICAgICAgICAgICAgICAgJi10aXRsZSxcbiAgICAgICAgICAgICAgICAmLXRpdGxlIC5ldWktbGFiZWwge1xuICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IHZhcigtLWV1aS1jYXJkLXRpdGxlLXNpemUpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYtc3VidGl0bGUsXG4gICAgICAgICAgICAgICAgJi1zdWJ0aXRsZSAuZXVpLWxhYmVsIHtcbiAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiB2YXIoLS1ldWktY2FyZC1zdWJ0aXRsZS1zaXplKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICZfX3VyZ2VudC1pbmRpY2F0b3Ige1xuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiB2YXIoLS1ldWktYmFzZS1mb250LXNpemUtMnhsKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCJAbWl4aW4gZXVpLWNvbXBhY3QtZ2V0LXRva2VucygkcmF0aW86IDAuODc1KSB7XG4gICAgLS1ldWktY29tcGFjdC1yYXRpbzogI3skcmF0aW99O1xuICAgIEBlYWNoICRzcGFjaW5nLCAkdmFsdWUgaW4gJGV1aS1iYXNlLXRva2Vucy1zcGFjaW5ncyB7XG4gICAgICAgIC0tZXVpLWJhc2Utc3BhY2luZy0jeyRzcGFjaW5nfTogY2FsYyggI3t2YXIoLS1ldWktY29tcGFjdC1yYXRpbyl9ICogI3skdmFsdWV9ICk7XG4gICAgfVxufVxuIiwiLy8gSUUxMCsgU1ZHJ3MgYXNwZWN0IHJhdGlvcyBhbmQgc2l6ZXMgZml4XG5AbWVkaWEgc2NyZWVuIGFuZCAoLW1zLWhpZ2gtY29udHJhc3Q6IGFjdGl2ZSksICgtbXMtaGlnaC1jb250cmFzdDogbm9uZSkge1xuICAgIGltZ1tzcmMkPVwiLnN2Z1wiXSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cbn1cbkBtZWRpYSBzY3JlZW4ge1xuICAgIC8vIElFIEZpeDogQmljdWJpYyBTY2FsaW5nIGZvciBJbWFnZXMgJiBmdWxsIHdpZHRoIGJhY2tncm91bmQgKEVDIGxvZ28pXG4gICAgaW1nIHtcbiAgICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICAgICAgYmFja2dyb3VuZC1zaXplOiAxMDAlO1xuICAgICAgICAtbXMtaW50ZXJwb2xhdGlvbi1tb2RlOiBiaWN1YmljO1xuICAgIH1cbn1cbiIsIi8vIENPT0tJRSBDT05TRU5UXG4uY29va2llLWNvbnNlbnQtYmFubmVyIHtcbiAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICAgIG1pbi13aWR0aDogNTAlICFpbXBvcnRhbnQ7XG4gICAgcG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7XG4gICAgcmlnaHQ6IDUwJSAhaW1wb3J0YW50O1xuICAgIHRvcDogdihldWktYmFzZS1zcGFjaW5nLW0pICFpbXBvcnRhbnQ7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDUwJSkgIWltcG9ydGFudDtcbiAgICB6LWluZGV4OiB2KGV1aS1iYXNlLXotaW5kZXgtbWF4KSAhaW1wb3J0YW50O1xuICAgIGJveC1zaGFkb3c6IHYoZXVpLWJhc2Utc2hhZG93LTI0KSAhaW1wb3J0YW50O1xuICAgIGJhY2tncm91bmQ6IHYoZXVpLWJhc2UtY29sb3ItcHJpbWFyeSkgIWltcG9ydGFudDtcbiAgICBjb2xvcjogdmFyKGV1aS1iYXNlLWNvbG9yLXdoaXRlKSAhaW1wb3J0YW50O1xufVxuIiwiI2xvYWRlci13cmFwcGVyIHtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgbGVmdDogMDtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgdG9wOiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHotaW5kZXg6IDEwMDA7XG5cbiAgICAjbG9hZGVyIHtcbiAgICAgICAgLXdlYmtpdC1hbmltYXRpb246IHNwaW4gMnMgbGluZWFyIGluZmluaXRlOyAvKiBDaHJvbWUsIE9wZXJhIDE1KywgU2FmYXJpIDUrICovXG4gICAgICAgIGFuaW1hdGlvbjogc3BpbiAycyBsaW5lYXIgaW5maW5pdGU7IC8qIENocm9tZSwgRmlyZWZveCAxNissIElFIDEwKywgT3BlcmEgKi9cbiAgICAgICAgYW5pbWF0aW9uOiBob3VyZ2xhc3MgNXMgbGluZWFyIGluZmluaXRlO1xuICAgICAgICBib3JkZXI6IDEwcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogdihldWktYmFzZS1jb2xvci13YXJuaW5nLTEwMCk7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDIwMHB4O1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIG1hcmdpbjogLTEwMHB4IDAgMCAtMTAwcHg7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIHdpZHRoOiAyMDBweDtcblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgLXdlYmtpdC1hbmltYXRpb246IHNwaW4gMnMgbGluZWFyIGluZmluaXRlOyAvKiBDaHJvbWUsIE9wZXJhIDE1KywgU2FmYXJpIDUrICovXG4gICAgICAgICAgICBhbmltYXRpb246IHNwaW4gMnMgbGluZWFyIGluZmluaXRlOyAvKiBDaHJvbWUsIEZpcmVmb3ggMTYrLCBJRSAxMCssIE9wZXJhICovXG4gICAgICAgICAgICBhbmltYXRpb246IGhvdXJnbGFzcyA0cyBsaW5lYXIgaW5maW5pdGU7XG4gICAgICAgICAgICBib3JkZXI6IDEwcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiB2KGV1aS1iYXNlLWNvbG9yLWRhbmdlci0xMDApO1xuICAgICAgICAgICAgYm90dG9tOiA1cHg7XG4gICAgICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICAgICAgbGVmdDogNXB4O1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgcmlnaHQ6IDVweDtcbiAgICAgICAgICAgIHRvcDogNXB4O1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgLXdlYmtpdC1hbmltYXRpb246IHNwaW4gMXMgbGluZWFyIGluZmluaXRlOyAvKiBDaHJvbWUsIE9wZXJhIDE1KywgU2FmYXJpIDUrICovXG4gICAgICAgICAgICBhbmltYXRpb246IHNwaW4gMXMgbGluZWFyIGluZmluaXRlOyAvKiBDaHJvbWUsIEZpcmVmb3ggMTYrLCBJRSAxMCssIE9wZXJhICovXG4gICAgICAgICAgICBhbmltYXRpb246IGhvdXJnbGFzcyAzcyBsaW5lYXIgaW5maW5pdGU7XG4gICAgICAgICAgICBib3JkZXI6IDEwcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiB2KGV1aS1iYXNlLWNvbG9yLXByaW1hcnktMTAwKTtcbiAgICAgICAgICAgIGJvdHRvbTogMjBweDtcbiAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgICAgICBsZWZ0OiAyMHB4O1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgcmlnaHQ6IDIwcHg7XG4gICAgICAgICAgICB0b3A6IDIwcHg7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cbkAtd2Via2l0LWtleWZyYW1lcyBzcGluIHtcbiAgICAwJSB7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XG4gICAgICAgIC1tcy10cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XG4gICAgfVxuXG4gICAgMTAwJSB7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTtcbiAgICAgICAgLW1zLXRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7XG4gICAgfVxufVxuQGtleWZyYW1lcyBzcGluIHtcbiAgICAwJSB7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XG4gICAgICAgIC1tcy10cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XG4gICAgfVxuXG4gICAgMTAwJSB7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTtcbiAgICAgICAgLW1zLXRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7XG4gICAgfVxufVxuQC13ZWJraXQta2V5ZnJhbWVzIGhvdXJnbGFzcyAge1xuICAgIDAlIHtcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMCk7XG4gICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjU1LCAwLjA1NSwgMC42NzUsIDAuMTkpO1xuICAgIH1cbiAgICA1MCUge1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg5MDBkZWcpO1xuICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4yMTUsIDAuNjEsIDAuMzU1LCAxKTtcbiAgICB9XG4gICAgMTAwJSB7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDE4MDBkZWcpO1xuICAgIH1cbn1cbkBrZXlmcmFtZXMgaG91cmdsYXNzIHtcbiAgICAwJSB7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDApO1xuICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC41NSwgMC4wNTUsIDAuNjc1LCAwLjE5KTtcbiAgICB9XG4gICAgNTAlIHtcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoOTAwZGVnKTtcbiAgICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMjE1LCAwLjYxLCAwLjM1NSwgMSk7XG4gICAgfVxuICAgIDEwMCUge1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxODAwZGVnKTtcbiAgICB9XG59XG4iXX0= */",":root {\n // COLORS\n @each $color, $shades in $eui-base-tokens-colors {\n @each $shade, $value in $shades {\n --eui-base-color-#{$color + '-' + $shade}: #{$value};\n --eui-base-color-#{$color + '-' + $shade}-rgb: #{toRGB($value)};\n --eui-base-color-#{$color + '-' + $shade}-contrast: #{getContrast($value)};\n --eui-base-color-#{$color + '-' + $shade}-contrast-rgb: #{toRGB(getContrast($value))};\n }\n }\n\n // DEFAULTS 100s\n @each $color, $value in $eui-base-tokens-colors-100s {\n --eui-base-color-#{'' + $color}: #{$value};\n }\n\n // OTHER COLORS\n --eui-base-color-text: var(--eui-base-color-grey-100);\n --eui-base-color-link: var(--eui-base-color-primary-100);\n --eui-base-color-black: black;\n --eui-base-color-white: white;\n --eui-base-color: var(--eui-base-color-grey-100);\n\n // FONT-SIZES\n --eui-base-font-size: 16px;\n @each $font-size, $value in $eui-base-tokens-font-sizes {\n --eui-base-font-size-#{$font-size}: #{$value};\n }\n\n // // FONTS\n --eui-base-font-family: #{$eui-base-font-family};\n --eui-base-font-family-icons: #{$eui-base-font-family-icons};\n --eui-base-font-family-monospace: #{$eui-base-font-family-monospace};\n\n // ICON-SIZES\n --eui-base-icon-size: 1.5rem;\n @each $icon-size, $value in $eui-base-tokens-icon-sizes {\n --eui-base-icon-size-#{$icon-size}: #{$value};\n }\n\n @each $family, $sizes in $eui-base-tokens-fonts {\n $family-type: $family + '-';\n @if($family == ui) {\n $family-type: '';\n }\n\n @each $size, $definition in $sizes {\n --eui-base-font-#{$family-type}#{$size}: #{$definition};\n }\n }\n\n // SPACINGS\n @each $spacing, $value in $eui-base-tokens-spacings {\n --eui-base-spacing-#{$spacing}: #{$value};\n }\n\n // SHADOWS\n @each $shadow, $value in $eui-base-tokens-shadows {\n --eui-base-shadow-#{$shadow}: #{$value};\n }\n\n // Z-INDEXES\n @each $idx, $value in $eui-base-tokens-z-indexes {\n --eui-base-z-index-#{$idx}: #{$value};\n }\n}\n",":root {\n --eui-base-line-height: 1.25;\n --eui-base-scale-factor: 1;\n --eui-base-disabled-opacity: 0.45;\n\n --eui-base-border-radius: 3px;\n\n --eui-base-border: 1px solid var(--eui-color-grey-lighter);\n --eui-base-border-light: 1px solid var(--eui-color-grey-light);\n --eui-base-border-lighter: 1px solid var(--eui-color-grey-lighter);\n --eui-base-border-lightest: 1px solid var(--eui-color-grey-lightest);\n\n // Animations related\n --eui-base-animation-linear-out-slow-in-timing-function: cubic-bezier(0, 0, 0.2, 1);\n --eui-base-animation-fast-out-slow-in-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n --eui-base-animation-fast-out-linear-in-timing-function: cubic-bezier(0.4, 0, 1, 1);\n --eui-base-animation-ease-timing-function: cubic-bezier(0.25, 0.1, 0.25, 1); // ease\n --eui-base-animation-ease-in-out-timing-function: ease-in-out;\n\n --eui-base-animation-duration-fast: 0.25s;\n --eui-base-animation-duration-medium: 0.5s;\n --eui-base-animation-duration-slow: 1s;\n --eui-base-animation-duration-base: 500ms;\n --eui-base-animation-duration: var(--eui-base-animation-duration-base);\n\n --eui-base-animation-transition-base: all 0.2s #{var(--eui-base-animation-linear-out-slow-in-timing-function)};\n --eui-base-animation-transition-ease: all 0.2s #{var(--eui-base-animation-ease-timing-function)};\n --eui-base-animation-transition-ease-in-out: all 0.2s #{var(--eui-base-animation-ease-in-out-timing-function)};\n --eui-base-animation-transition-ease-in-out-1s: all 1s #{var(--eui-base-animation-ease-in-out-timing-function)};\n\n --eui-base-animation-delay: 0s;\n --eui-base-animation-direction: normal;\n --eui-base-animation-fill-mode: forwards; // this prevents the animation from restarting\n --eui-base-animation-background-color: var(--eui-base-color-primary-50); // #cfcfdf;\n\n // Extra colors\n --eui-base-color-accessible-focus: var(--eui-base-color-accent-110); // Carbon blue: #0f62fe;\n}\n",":root {\n // eUI APP\n --eui-app-header-height-default: 0px;\n --eui-app-header-height: 0px;\n --eui-app-header-height-active: 90px;\n --eui-app-header-height-shrink: 0px;\n\n --eui-app-top-message-height-default: 0px;\n --eui-app-top-message-height: 0px;\n --eui-app-top-message-height-active: 42px;\n\n --eui-app-toolbar-height-default: 0px;\n --eui-app-toolbar-height: 0px;\n --eui-app-toolbar-height-active: 55px;\n\n --eui-app-sidebar-width-default: 0px;\n --eui-app-sidebar-width: 0px;\n --eui-app-sidebar-width-active: 300px;\n --eui-app-sidebar-width-close-default: 0px;\n --eui-app-sidebar-width-close: 0px;\n --eui-app-sidebar-width-close-active: 64px;\n --eui-app-sidebar-header-height: 0px;\n --eui-app-sidebar-header-height-default: 0px;\n --eui-app-sidebar-header-height-active: 48px;\n --eui-app-sidebar-footer-height: 0px;\n --eui-app-sidebar-footer-height-default: 0px;\n --eui-app-sidebar-footer-height-active: 24px;\n\n // Page Layout\n --eui-page-header-with-subtitle-height: 4rem;\n --eui-page-header-without-subtitle-height: 2rem;\n\n --eui-page-column--size-s: 50px;\n --eui-page-column--size-m: 150px;\n --eui-page-column--size-l: 200px;\n --eui-page-column--size-xl: 250px;\n --eui-page-column--size-xxl: 300px;\n --eui-page-column--size-xxxl: 350px;\n --eui-page-column-footer-height: 3.5rem;\n\n // Misc\n --eui-border-state-width: 6px;\n\n // Colors\n // eUI App elements\n --eui-app-header-bg-color: var(--eui-base-color-white);\n --eui-app-header-title-color: var(--eui-base-color-grey-100);\n --eui-app-header-subtitle-color: var(--eui-base-color-grey-75);\n\n --eui-app-toolbar-color: var(--eui-base-color-white);\n --eui-app-toolbar-bg-color: var(--eui-base-color-primary-100);\n --eui-app-toolbar-border-bottom-color: var(--eui-base-color-primary-25);\n\n --eui-app-sidebar-bg-color: var(--eui-base-color-grey-2);\n --eui-app-sidebar-border-right-color: #f2f4f9;\n\n --eui-app-body-bg-color: var(--eui-base-color-grey-5);\n --eui-app-main-bg-color: var(--eui-base-color-grey-2);\n\n --eui-app-footer-color: var(--eui-base-color-font);\n --eui-app-footer-bg-color: var(--eui-base-color-grey-2);\n --eui-app-footer-border-top-color: #e8ebf1;\n}\n\n.xs, .sm {\n --eui-app-header-height: 0px;\n}\n",".eui-icon-svg {\n fill: currentColor;\n margin: 0;\n transform: scaleX(1) scaleY(1) rotateZ(0deg);\n transition: transform 300ms ease-in-out;\n}\n@each $size, $value in $eui-base-tokens-icon-sizes {\n .eui-icon-svg--size-#{$size} {\n height: #{$value};\n width: #{$value};\n };\n}\n@each $color, $shades in $eui-base-tokens-colors {\n @each $shade, $value in $shades {\n .eui-icon-svg--color-#{$color + '-' + $shade} {\n color: #{$value};\n fill: #{$value};\n };\n }\n}\n","@use '@angular/cdk';\n\n@mixin ripple() {\n // The host element of an mat-ripple directive should always have a position of \"absolute\" or\n // \"relative\" so that the ripples inside are correctly positioned relatively to the container.\n .mat-ripple {\n overflow: hidden;\n\n // By default, every ripple container should have position: relative in favor of creating an\n // easy API for developers using the MatRipple directive.\n position: relative;\n\n // Promote containers that have ripples to a new layer. We want to target `:not(:empty)`,\n // because we don't want all ripple containers to have their own layer since they're used in a\n // lot of places and the layer is only relevant while animating. Note that ideally we'd use\n // the `contain` property here (see #13175), because `:empty` can be broken by having extra\n // text inside the element, but it isn't very well supported yet.\n &:not(:empty) {\n transform: translateZ(0);\n }\n }\n\n .mat-ripple.mat-ripple-unbounded {\n overflow: visible;\n }\n\n .mat-ripple-element {\n position: absolute;\n border-radius: 50%;\n pointer-events: none;\n\n transition: opacity, transform 0ms cubic-bezier(0, 0, 0.2, 1);\n\n // We use a 3d transform here in order to avoid an issue in Safari where\n // the ripples aren't clipped when inside the shadow DOM (see #24028).\n transform: scale3d(0, 0, 0);\n\n // In high contrast mode the ripple is opaque, causing it to obstruct the content.\n @include cdk.high-contrast(active, off) {\n display: none;\n }\n }\n}\n","/// Emits a CSS class, `.cdk-visually-hidden`. This class can be applied to an element\n/// to make that element visually hidden while remaining available to assistive technology.\n@mixin a11y-visually-hidden() {\n .cdk-visually-hidden {\n border: 0;\n clip: rect(0 0 0 0);\n height: 1px;\n margin: -1px;\n overflow: hidden;\n padding: 0;\n position: absolute;\n width: 1px;\n\n // This works around a Chrome bug that can cause the tab to crash when large amounts of\n // non-English text get wrapped: https://bugs.chromium.org/p/chromium/issues/detail?id=1201444\n white-space: nowrap;\n\n // Avoid browsers rendering the focus ring in some cases.\n outline: 0;\n\n // Avoid some cases where the browser will still render the native controls (see #9049).\n -webkit-appearance: none;\n -moz-appearance: none;\n\n // We need at least one of top/bottom/left/right in order to prevent cases where the\n // absolute-positioned element is pushed down and can affect scrolling (see #24597).\n // `left` was chosen here, because it's the least likely to break overrides where the\n // element might have been positioned (e.g. `mat-checkbox`).\n left: 0;\n\n [dir='rtl'] & {\n left: auto;\n right: 0;\n }\n }\n}\n\n/// @deprecated Use `a11y-visually-hidden`.\n@mixin a11y() {\n @include a11y-visually-hidden;\n}\n\n/// Emits the mixin's content nested under `$selector-context` if `$selector-context`\n/// is non-empty.\n/// @param {String} selector-context The selector under which to nest the mixin's content.\n@mixin _optionally-nest-content($selector-context) {\n @if ($selector-context == '') {\n @content;\n }\n @else {\n #{$selector-context} {\n @content;\n }\n }\n}\n\n/// Applies styles for users in high contrast mode. Note that this only applies\n/// to Microsoft browsers. Chrome can be included by checking for the `html[hc]`\n/// attribute, however Chrome handles high contrast differently.\n///\n/// @param {String} target Type of high contrast setting to target. Defaults to `active`, can be\n/// `white-on-black` or `black-on-white`.\n/// @param {String} encapsulation Whether to emit styles for view encapsulation. Values are:\n/// * `on` - works for `Emulated`, `Native`, and `ShadowDom`\n/// * `off` - works for `None`\n/// * `any` - works for all encapsulation modes by emitting the CSS twice (default).\n@mixin high-contrast($target: active, $encapsulation: 'any') {\n @if ($target != 'active' and $target != 'black-on-white' and $target != 'white-on-black') {\n @error 'Unknown cdk-high-contrast value \"#{$target}\" provided. ' +\n 'Allowed values are \"active\", \"black-on-white\", and \"white-on-black\"';\n }\n\n @if ($encapsulation != 'on' and $encapsulation != 'off' and $encapsulation != 'any') {\n @error 'Unknown cdk-high-contrast encapsulation \"#{$encapsulation}\" provided. ' +\n 'Allowed values are \"on\", \"off\", and \"any\"';\n }\n\n // If the selector context has multiple parts, such as `.section, .region`, just doing\n // `.cdk-high-contrast-xxx #{&}` will only apply the parent selector to the first part of the\n // context. We address this by nesting the selector context under .cdk-high-contrast.\n @at-root {\n $selector-context: #{&};\n\n @if ($encapsulation != 'on') {\n // Note that if this selector is updated, the same change has to be made inside\n // `_overlay.scss` which can't depend on this mixin due to some infrastructure limitations.\n .cdk-high-contrast-#{$target} {\n @include _optionally-nest-content($selector-context) {\n @content;\n }\n }\n }\n\n @if ($encapsulation != 'off') {\n .cdk-high-contrast-#{$target} :host {\n @include _optionally-nest-content($selector-context) {\n @content;\n }\n }\n }\n }\n}\n","// We want overlays to always appear over user content, so set a baseline\n// very high z-index for the overlay container, which is where we create the new\n// stacking context for all overlays.\n$overlay-container-z-index: 1000 !default;\n$overlay-z-index: 1000 !default;\n$overlay-backdrop-z-index: 1000 !default;\n\n// Background color for all of the backdrops\n$overlay-backdrop-color: rgba(0, 0, 0, 0.32) !default;\n\n// Default backdrop animation is based on the Material Design swift-ease-out.\n$backdrop-animation-duration: 400ms !default;\n$backdrop-animation-timing-function: cubic-bezier(0.25, 0.8, 0.25, 1) !default;\n\n/// Emits structural styles required for cdk/overlay to function.\n@mixin overlay() {\n .cdk-overlay-container, .cdk-global-overlay-wrapper {\n // Disable events from being captured on the overlay container.\n pointer-events: none;\n\n // The container should be the size of the viewport.\n top: 0;\n left: 0;\n height: 100%;\n width: 100%;\n }\n\n // The overlay-container is an invisible element which contains all individual overlays.\n .cdk-overlay-container {\n position: fixed;\n z-index: $overlay-container-z-index;\n\n &:empty {\n // Hide the element when it doesn't have any child nodes. This doesn't\n // include overlays that have been detached, rather than disposed.\n display: none;\n }\n }\n\n // We use an extra wrapper element in order to use make the overlay itself a flex item.\n // This makes centering the overlay easy without running into the subpixel rendering\n // problems tied to using `transform` and without interfering with the other position\n // strategies.\n .cdk-global-overlay-wrapper {\n display: flex;\n position: absolute;\n z-index: $overlay-z-index;\n }\n\n // A single overlay pane.\n .cdk-overlay-pane {\n // Note: it's important for this one to start off `absolute`,\n // in order for us to be able to measure it correctly.\n position: absolute;\n pointer-events: auto;\n box-sizing: border-box;\n z-index: $overlay-z-index;\n\n // For connected-position overlays, we set `display: flex` in\n // order to force `max-width` and `max-height` to take effect.\n display: flex;\n max-width: 100%;\n max-height: 100%;\n }\n\n .cdk-overlay-backdrop {\n // TODO(jelbourn): reuse sidenav fullscreen mixin.\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n\n z-index: $overlay-backdrop-z-index;\n pointer-events: auto;\n -webkit-tap-highlight-color: transparent;\n transition: opacity $backdrop-animation-duration $backdrop-animation-timing-function;\n opacity: 0;\n\n &.cdk-overlay-backdrop-showing {\n opacity: 1;\n\n // Note that we can't import and use the `high-contrast` mixin from `_a11y.scss`, because\n // this file will be copied to the top-level `cdk` package when putting together the files\n // for npm. Any relative import paths we use here will become invalid once the file is copied.\n .cdk-high-contrast-active & {\n // In high contrast mode the rgba background will become solid\n // so we need to fall back to making it opaque using `opacity`.\n opacity: 0.6;\n }\n }\n }\n\n .cdk-overlay-dark-backdrop {\n background: $overlay-backdrop-color;\n }\n\n .cdk-overlay-transparent-backdrop {\n // Define a transition on the visibility so that the `transitionend` event can fire immediately.\n transition: visibility 1ms linear, opacity 1ms linear;\n visibility: hidden;\n opacity: 1;\n\n // Note: as of Firefox 57, having the backdrop be `background: none` will prevent it from\n // capturing the user's mouse scroll events. Since we also can't use something like\n // `rgba(0, 0, 0, 0)`, we work around the inconsistency by not setting the background at\n // all and using `opacity` to make the element transparent.\n &.cdk-overlay-backdrop-showing {\n opacity: 0;\n visibility: visible;\n }\n }\n\n .cdk-overlay-backdrop-noop-animation {\n transition: none;\n }\n\n // Overlay parent element used with the connected position strategy. Used to constrain the\n // overlay element's size to fit within the viewport.\n .cdk-overlay-connected-position-bounding-box {\n position: absolute;\n z-index: $overlay-z-index;\n\n // We use `display: flex` on this element exclusively for centering connected overlays.\n // When *not* centering, a top/left/bottom/right will be set which overrides the normal\n // flex layout.\n display: flex;\n\n // We use the `column` direction here to avoid some flexbox issues in Edge\n // when using the \"grow after open\" options.\n flex-direction: column;\n\n // Add some dimensions so the element has an `innerText` which some people depend on in tests.\n min-width: 1px;\n min-height: 1px;\n }\n\n // Used when disabling global scrolling.\n .cdk-global-scrollblock {\n position: fixed;\n\n // Necessary for the content not to lose its width. Note that we're using 100%, instead of\n // 100vw, because 100vw includes the width plus the scrollbar, whereas 100% is the width\n // that the element had before we made it `fixed`.\n width: 100%;\n\n // Note: this will always add a scrollbar to whatever element it is on, which can\n // potentially result in double scrollbars. It shouldn't be an issue, because we won't\n // block scrolling on a page that doesn't have a scrollbar in the first place.\n overflow-y: scroll;\n }\n}\n","// Structural styles for the autosize text fields.\n@mixin text-field-autosize() {\n // Remove the resize handle on autosizing textareas, because whatever height\n // the user resized to will be overwritten once they start typing again.\n textarea.cdk-textarea-autosize {\n resize: none;\n }\n\n // This class is temporarily applied to the textarea when it is being measured. It is immediately\n // removed when measuring is complete. We use `!important` rules here to make sure user-specified\n // rules do not interfere with the measurement.\n textarea.cdk-textarea-autosize-measuring {\n @include _autosize-measuring-base;\n height: auto !important;\n overflow: hidden !important;\n }\n\n // Similar to the `cdk-textarea-autosize-measuring` class, but only applied on Firefox. We need\n // to use this class, because Firefox has a bug where changing the `overflow` breaks the user's\n // ability to undo/redo what they were typing (see #16629). This class is only scoped to Firefox,\n // because the measurements there don't seem to be affected by the `height: 0`, whereas on other\n // browsers they are, e.g. Chrome detects longer text and IE does't resize back to normal.\n // Identical issue report: https://bugzilla.mozilla.org/show_bug.cgi?id=448784\n textarea.cdk-textarea-autosize-measuring-firefox {\n @include _autosize-measuring-base;\n height: 0 !important;\n }\n}\n\n// Core styles that enable monitoring autofill state of text fields.\n@mixin text-field-autofill() {\n // Keyframes that apply no styles, but allow us to monitor when an text field becomes autofilled\n // by watching for the animation events that are fired when they start. Note: the /*!*/ comment is\n // needed to prevent LibSass from stripping the keyframes out.\n // Based on: https://medium.com/@brunn/detecting-autofilled-fields-in-javascript-aed598d25da7\n @keyframes cdk-text-field-autofill-start {/*!*/}\n @keyframes cdk-text-field-autofill-end {/*!*/}\n\n .cdk-text-field-autofill-monitored:-webkit-autofill {\n // Since Chrome 80 we need a 1ms delay, or the animationstart event won't fire.\n animation: cdk-text-field-autofill-start 0s 1ms;\n }\n\n .cdk-text-field-autofill-monitored:not(:-webkit-autofill) {\n // Since Chrome 80 we need a 1ms delay, or the animationstart event won't fire.\n animation: cdk-text-field-autofill-end 0s 1ms;\n }\n}\n\n@mixin _autosize-measuring-base {\n // Having 2px top and bottom padding seems to fix a bug where Chrome gets an incorrect\n // measurement. We just have to account for it later and subtract it off the final result.\n padding: 2px 0 !important;\n box-sizing: content-box !important;\n}\n\n// Used to generate UIDs for keyframes used to change the text field autofill styles.\n$autofill-color-frame-count: 0;\n\n// Mixin used to apply custom background and foreground colors to an autofilled text field.\n// Based on: https://stackoverflow.com/questions/2781549/\n// removing-input-background-colour-for-chrome-autocomplete#answer-37432260\n@mixin text-field-autofill-color($background, $foreground:'') {\n @keyframes cdk-text-field-autofill-color-#{$autofill-color-frame-count} {\n to {\n background: $background;\n @if $foreground != '' { color: $foreground; }\n }\n }\n\n &:-webkit-autofill {\n animation: cdk-text-field-autofill-color-#{$autofill-color-frame-count} both;\n }\n\n &.cdk-text-field-autofill-monitored:-webkit-autofill {\n // Since Chrome 80 we need a 1ms delay for cdk-text-field-autofill-start, or the animationstart\n // event won't fire.\n animation: cdk-text-field-autofill-start 0s 1ms,\n cdk-text-field-autofill-color-#{$autofill-color-frame-count} both;\n }\n\n $autofill-color-frame-count: $autofill-color-frame-count + 1 !global;\n}\n\n// @deprecated Use `autosize` and `autofill` instead.\n@mixin text-field {\n @include text-field-autosize();\n @include text-field-autofill();\n}\n","@use 'sass:map';\n@use 'sass:meta';\n@use '@angular/cdk';\n@use '../style/layout-common';\n@use '../theming/theming';\n\n// Private sass variables that will be used as reference throughout component stylesheets.\n$default-border-width: 3px;\n$default-border-style: solid;\n$default-border-color: transparent;\n$default-border-radius: 4px;\n\n// Mixin that renders the focus indicator structural styles.\n@mixin structural-styling($prefix) {\n .#{$prefix}-focus-indicator {\n position: relative;\n\n &::before {\n @include layout-common.fill();\n box-sizing: border-box;\n pointer-events: none;\n display: var(--#{$prefix}-focus-indicator-display, none); // Hide the indicator by default.\n border: var(\n --#{$prefix}-focus-indicator-border-width,\n #{$default-border-width}\n )\n var(\n --#{$prefix}-focus-indicator-border-style,\n #{$default-border-style}\n )\n var(\n --#{$prefix}-focus-indicator-border-color,\n #{$default-border-color}\n );\n border-radius: var(\n --#{$prefix}-focus-indicator-border-radius,\n #{$default-border-radius}\n );\n }\n\n // By default, render the focus indicator when the focus indicator host element takes focus.\n // Defining a pseudo element's content will cause it to render.\n &:focus::before {\n content: '';\n }\n }\n\n // Enable the indicator in high contrast mode.\n @include cdk.high-contrast(active, off) {\n @include customize-focus-indicators((display: block), $prefix);\n }\n}\n\n// Generates CSS variable declarations from a map.\n@mixin _output-variables($map) {\n @each $key, $value in $map {\n @if ($value) {\n --#{$key}: #{$value};\n }\n }\n}\n\n// Mixin that dedups CSS variables for the strong-focus-indicators mixin.\n@mixin customize-focus-indicators($config, $prefix) {\n $border-style: map.get($config, border-style);\n $border-width: map.get($config, border-width);\n $border-radius: map.get($config, border-radius);\n $border-color: map.get($config, border-color);\n $display: map.get($config, display);\n $map: (\n '#{$prefix}-focus-indicator-border-style': $border-style,\n '#{$prefix}-focus-indicator-border-width': $border-width,\n '#{$prefix}-focus-indicator-border-radius': $border-radius,\n '#{$prefix}-focus-indicator-border-color': $border-color,\n '#{$prefix}-focus-indicator-display': $display,\n );\n\n @if (&) {\n @include _output-variables($map);\n }\n @else {\n // We use `html` here instead of `:root`, because the\n // latter causes some issues with internal tooling.\n html {\n @include _output-variables($map);\n }\n }\n}\n\n@mixin strong-focus-indicators($config: ()) {\n // Default focus indicator config.\n $default-config: (\n border-color: black,\n display: block,\n );\n\n // Merge default config with user config.\n $config: map.merge($default-config, $config);\n\n @include customize-focus-indicators($config, 'mat');\n}\n\n@mixin mdc-strong-focus-indicators($config: ()) {\n // Default focus indicator config.\n $default-config: (\n border-color: black,\n display: block,\n );\n\n // Merge default config with user config.\n $config: map.merge($default-config, $config);\n\n @include customize-focus-indicators($config, 'mat-mdc');\n}\n\n@mixin strong-focus-indicators-color($config-or-theme-or-color) {\n @if meta.type-of($config-or-theme-or-color) == 'color' {\n @include customize-focus-indicators((\n border-color: $config-or-theme-or-color\n ), 'mat');\n }\n @else {\n $config: theming.get-color-config($config-or-theme-or-color);\n $border-color: theming.get-color-from-palette(map.get($config, primary));\n @include customize-focus-indicators((\n border-color: $border-color\n ), 'mat');\n }\n}\n\n@mixin strong-focus-indicators-theme($theme-or-color-config-or-color) {\n @if meta.type-of($theme-or-color-config-or-color) == 'color' {\n @include customize-focus-indicators((\n border-color: $theme-or-color-config-or-color\n ), 'mat');\n }\n @else {\n $theme: theming.private-legacy-get-theme($theme-or-color-config-or-color);\n @include theming.private-check-duplicate-theme-styles($theme, 'mat-focus-indicators') {\n $color: theming.get-color-config($theme);\n @if $color != null {\n @include strong-focus-indicators-color($color);\n }\n }\n }\n}\n\n@mixin mdc-strong-focus-indicators-color($config-or-theme-or-color) {\n @if meta.type-of($config-or-theme-or-color) == 'color' {\n @include customize-focus-indicators((\n border-color: $config-or-theme-or-color\n ), 'mat-mdc');\n }\n @else {\n $config: theming.get-color-config($config-or-theme-or-color);\n $border-color: theming.get-color-from-palette(map.get($config, primary));\n @include customize-focus-indicators((\n border-color: $border-color\n ), 'mat-mdc');\n }\n}\n\n@mixin mdc-strong-focus-indicators-theme($theme-or-color-config-or-color) {\n @if meta.type-of($theme-or-color-config-or-color) == 'color' {\n @include customize-focus-indicators((\n border-color: $theme-or-color-config-or-color\n ), 'mat-mdc');\n }\n @else {\n $theme: theming.private-legacy-get-theme($theme-or-color-config-or-color);\n @include theming.private-check-duplicate-theme-styles($theme, 'mat-mdc-focus-indicators') {\n $color: theming.get-color-config($theme);\n @if $color != null {\n @include mdc-strong-focus-indicators-color($color);\n }\n }\n }\n}\n","// This mixin ensures an element spans to fill the nearest ancestor with defined positioning.\n@mixin fill {\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n position: absolute;\n}\n","@use 'sass:map';\n@use 'sass:meta';\n@use '../theming/theming';\n\n// Colors for the ripple elements.\n@mixin color($config-or-theme) {\n $config: theming.get-color-config($config-or-theme);\n $foreground: map.get($config, foreground);\n $foreground-base: map.get($foreground, base);\n $color-opacity: 0.1;\n\n .mat-ripple-element {\n // If the ripple color is resolves to a color *type*, we can use it directly, otherwise\n // (e.g. it resolves to a CSS variable) we fall back to using the color and setting an opacity.\n @if (meta.type-of($foreground-base) == color) {\n background-color: rgba($foreground-base, $color-opacity);\n }\n @else {\n background-color: $foreground-base;\n opacity: $color-opacity;\n }\n }\n}\n\n@mixin theme($theme-or-color-config) {\n $theme: theming.private-legacy-get-theme($theme-or-color-config);\n @include theming.private-check-duplicate-theme-styles($theme, 'mat-ripple') {\n $color: theming.get-color-config($theme);\n @if $color != null {\n @include color($color);\n }\n }\n}\n","@use '@material/theme/theme-color' as mdc-theme-color;\n@use '@material/theme/theme' as mdc-theme;\n@use '@material/list/evolution-mixins' as mdc-list-mixins;\n@use '@material/typography' as mdc-typography;\n@use '@material/ripple' as mdc-ripple;\n\n@use '../theming/theming';\n@use '../typography/typography';\n@use '../mdc-helpers/mdc-helpers';\n\n@mixin color($config-or-theme) {\n $config: theming.get-color-config($config-or-theme);\n\n @include mdc-helpers.using-mdc-theme($config) {\n .mat-mdc-option {\n // Since this will usually be rendered in an overlay,\n // we have explicitly set the default color.\n @include mdc-theme.prop(color, text-primary-on-background);\n\n &:hover:not(.mdc-list-item--disabled),\n &:focus:not(.mdc-list-item--disabled),\n &.mat-mdc-option-active,\n\n // In multiple mode there is a checkbox to show that the option is selected.\n &.mdc-list-item--selected:not(.mat-mdc-option-multiple):not(.mdc-list-item--disabled) {\n $color: mdc-theme-color.$on-surface;\n background: rgba($color, mdc-ripple.states-opacity($color, hover));\n }\n }\n\n .mat-primary {\n .mat-mdc-option.mdc-list-item--selected:not(.mdc-list-item--disabled) {\n @include mdc-list-mixins.list-primary-text-ink-color(primary,\n $query: mdc-helpers.$mdc-theme-styles-query);\n }\n }\n\n .mat-accent {\n .mat-mdc-option.mdc-list-item--selected:not(.mdc-list-item--disabled) {\n @include mdc-list-mixins.list-primary-text-ink-color(secondary,\n $query: mdc-helpers.$mdc-theme-styles-query);\n }\n }\n\n .mat-warn {\n .mat-mdc-option.mdc-list-item--selected:not(.mdc-list-item--disabled) {\n @include mdc-list-mixins.list-primary-text-ink-color(error,\n $query: mdc-helpers.$mdc-theme-styles-query);\n }\n }\n }\n}\n\n@mixin typography($config-or-theme) {\n $config: typography.private-typography-to-2018-config(\n theming.get-typography-config($config-or-theme));\n\n @include mdc-helpers.using-mdc-typography($config) {\n // MDC uses the `subtitle1` level for list items, but\n // the spec shows `body1` as the correct level.\n .mat-mdc-option {\n @include mdc-typography.typography(body1,\n $query: mdc-helpers.$mdc-typography-styles-query,\n // Exclude these properties, because they cause some build\n // issues internally and they aren't used for anything.\n $exclude-props: (text-decoration, text-transform)\n );\n }\n }\n}\n\n@mixin density($config-or-theme) {\n $density-scale: theming.get-density-config($config-or-theme);\n}\n\n@mixin theme($theme-or-color-config) {\n $theme: theming.private-legacy-get-theme($theme-or-color-config);\n @include theming.private-check-duplicate-theme-styles($theme, 'mat-option') {\n $color: theming.get-color-config($theme);\n $density: theming.get-density-config($theme);\n $typography: theming.get-typography-config($theme);\n\n @if $color != null {\n @include color($color);\n }\n @if $density != null {\n @include density($density);\n }\n @if $typography != null {\n @include typography($typography);\n }\n }\n}\n","//\n// Copyright 2020 Google Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n//\n\n@use 'sass:list';\n@use 'sass:map';\n@use 'sass:meta';\n@use './gss';\n\n/// When true, add an additional property/value declaration before declarations\n/// that use advanced features such as custom properties or CSS functions. This\n/// adds fallback support for older browsers such as IE11 that do not support\n/// these features at the cost of additional CSS. Set this variable to false to\n/// disable generating fallback declarations.\n$enable-fallback-declarations: true !default;\n\n/// Writes a CSS property/value declaration. This mixin is used throughout the\n/// theme package for consistency for dynamically setting CSS property values.\n///\n/// This mixin may optionally take a fallback value. For advanced features such\n/// as custom properties or CSS functions like min and max, a fallback value is\n/// recommended to support older browsers.\n///\n/// @param {String} $property - The CSS property of the declaration.\n/// @param {*} $value - The value of the CSS declaration. The value should be\n/// resolved by other theme functions first (i.e. custom property Maps and\n/// Material theme keys are not supported in this mixin). If the value is\n/// null, no declarations will be emitted.\n/// @param {*} $fallback - An optional fallback value for older browsers. If\n/// provided, a second property/value declaration will be added before the\n/// main property/value declaration.\n/// @param {Map} $gss - An optional Map of GSS annotations to add.\n/// @param {Bool} $important - If true, add `!important` to the declaration.\n@mixin declaration(\n $property,\n $value,\n $fallback-value: null,\n $gss: (),\n $important: false\n) {\n // Normally setting a null value to a property will not emit CSS, so mixins\n // wouldn't need to check this. However, Sass will throw an error if the\n // interpolated property is a custom property.\n @if $value != null {\n $important-rule: if($important, ' !important', '');\n\n @if $fallback-value and $enable-fallback-declarations {\n @include gss.annotate($gss);\n #{$property}: #{$fallback-value} #{$important-rule};\n\n // Add @alternate to annotations.\n $gss: map.merge(\n $gss,\n (\n alternate: true,\n )\n );\n }\n\n @include gss.annotate($gss);\n #{$property}: #{$value}#{$important-rule};\n }\n}\n\n/// Unpacks shorthand values for CSS properties (i.e. lists of 1-3 values).\n/// If a list of 4 values is given, it is returned as-is.\n///\n/// Examples:\n///\n/// unpack-value(4px) => 4px 4px 4px 4px\n/// unpack-value(4px 2px) => 4px 2px 4px 2px\n/// unpack-value(4px 2px 2px) => 4px 2px 2px 2px\n/// unpack-value(4px 2px 0 2px) => 4px 2px 0 2px\n///\n/// @param {Number | Map | List} $value - List of 1 to 4 value numbers.\n/// @return {List} a List of 4 value numbers.\n@function unpack-value($value) {\n @if meta.type-of($value) == 'map' or list.length($value) == 1 {\n @return $value $value $value $value;\n } @else if list.length($value) == 4 {\n @return $value;\n } @else if list.length($value) == 3 {\n @return list.nth($value, 1) list.nth($value, 2) list.nth($value, 3)\n list.nth($value, 2);\n } @else if list.length($value) == 2 {\n @return list.nth($value, 1) list.nth($value, 2) list.nth($value, 1)\n list.nth($value, 2);\n }\n\n @error \"Invalid CSS property value: '#{$value}' is more than 4 values\";\n}\n","// Selector '.mdc-*' should only be used in this project.\n// stylelint-disable selector-class-pattern --\n// NOTE: this is the implementation of the aforementioned classes.\n\n@use 'sass:math';\n@use 'sass:list';\n@use 'sass:map';\n@use '@material/theme/theme';\n@use '@material/ripple/ripple';\n@use '@material/ripple/ripple-theme';\n@use '@material/rtl/rtl';\n@use '@material/density/functions' as density-functions;\n@use '@material/dom/mixins' as dom-mixins;\n@use '@material/shape/mixins' as shape-mixins;\n@use '@material/typography/typography';\n@use '@material/feature-targeting/feature-targeting';\n@use '@material/theme/theme-color';\n@use './evolution-variables' as variables;\n\n$ripple-target: variables.$ripple-target;\n\n@mixin core-styles($query: feature-targeting.all()) {\n @include without-ripple($query);\n @include with-ripple($query);\n}\n\n@mixin without-ripple($query: feature-targeting.all()) {\n $feat-color: feature-targeting.create-target($query, color);\n $feat-structure: feature-targeting.create-target($query, structure);\n $feat-typography: feature-targeting.create-target($query, typography);\n\n //\n // Items\n //\n\n @include list-primary-text-ink-color(text-primary-on-background, $query);\n @include list-secondary-text-ink-color(text-secondary-on-background, $query);\n @include list-overline-text-ink-color(text-hint-on-background, $query);\n @include list-icon-fill-color(transparent, $query);\n @include list-icon-ink-color(text-icon-on-background, $query);\n @include list-meta-text-ink-color(text-hint-on-background, $query);\n @include list-disabled-opacity(variables.$content-disabled-opacity, $query);\n @include list-disabled-ink-color(variables.$content-disabled-color, $query);\n @include list-selected-ink-color(variables.$content-selected-color, $query);\n\n @include group-subheader-ink-color(text-primary-on-background, $query);\n\n @include _high-contrast-mode($query);\n\n .mdc-list {\n @include list-base($query: $query);\n }\n\n .mdc-list-item__wrapper {\n @include feature-targeting.targets($feat-structure) {\n display: block;\n }\n }\n\n .mdc-list-item {\n @include item-base($query: $query);\n\n @include _one-line-item-density(\n variables.$one-line-item-density-scale,\n $query: $query\n );\n @include _two-line-item-density(\n variables.$two-line-item-density-scale,\n $query: $query\n );\n @include _three-line-item-density(\n variables.$three-line-item-density-scale,\n $query: $query\n );\n\n @include one-line-item-start-alignment(center, $query: $query);\n @include two-line-item-start-alignment(\n $alignment: flex-start,\n $offset: 16px,\n $query: $query\n );\n @include three-line-item-start-alignment(\n $alignment: flex-start,\n $offset: 16px,\n $query: $query\n );\n\n @include one-line-item-end-alignment(center, $query: $query);\n @include two-line-item-end-alignment(center, $query: $query);\n @include three-line-item-end-alignment(\n $alignment: flex-start,\n $offset: 16px,\n $query: $query\n );\n\n @include feature-targeting.targets($feat-structure) {\n align-items: stretch;\n cursor: pointer;\n }\n\n // Reset mouse cursor for disabled and non-interactive items.\n &.mdc-list-item--disabled,\n &.mdc-list-item--non-interactive {\n @include feature-targeting.targets($feat-structure) {\n cursor: auto;\n }\n }\n\n // For components using aria-activedescendant, the focus pseudoclass is\n // never applied and use `.mdc-ripple-upgraded--background-focused` instead.\n &:not(.mdc-list-item--selected):focus::before, // lint-disable-focus-psuedo-selector\n &.mdc-ripple-upgraded--background-focused::before {\n @include dom-mixins.transparent-border($query: $query);\n }\n\n &.mdc-list-item--selected::before {\n @include dom-mixins.transparent-border(\n $border-width: 3px,\n $border-style: double,\n $query: $query\n );\n }\n\n // lint-disable-focus-psuedo-selector\n &.mdc-list-item--selected:focus::before {\n @include dom-mixins.transparent-border(\n $border-width: 3px,\n $query: $query\n );\n }\n }\n\n // Override anchor tag styles for the use-case of a list being used for navigation\n // stylelint-disable selector-max-type,selector-no-qualifying-type\n a.mdc-list-item {\n @include feature-targeting.targets($feat-structure) {\n color: inherit;\n text-decoration: none;\n }\n }\n // stylelint-enable selector-max-type,selector-no-qualifying-type\n\n .mdc-list-item__start {\n @include feature-targeting.targets($feat-structure) {\n fill: currentColor;\n flex-shrink: 0;\n pointer-events: none;\n }\n }\n\n .mdc-list-item__end {\n @include feature-targeting.targets($feat-structure) {\n flex-shrink: 0;\n pointer-events: none;\n }\n }\n\n .mdc-list-item__content {\n @include typography.overflow-ellipsis($query);\n @include feature-targeting.targets($feat-structure) {\n align-self: center;\n flex: 1;\n pointer-events: none;\n }\n\n .mdc-list-item--with-two-lines &,\n .mdc-list-item--with-three-lines & {\n @include feature-targeting.targets($feat-structure) {\n align-self: stretch;\n }\n }\n\n // Disable interaction on label elements that may automatically\n // toggle corresponding checkbox / radio input.\n &[for] {\n @include feature-targeting.targets($feat-structure) {\n pointer-events: none;\n }\n }\n }\n\n .mdc-list-item__primary-text {\n @include typography.typography(subtitle1, $query);\n @include typography.overflow-ellipsis($query);\n\n .mdc-list-item--with-two-lines &,\n .mdc-list-item--with-three-lines & {\n @include typography.text-baseline(\n $top: 28px,\n $bottom: 20px,\n $query: $query\n );\n }\n }\n\n .mdc-list-item__secondary-text {\n @include typography.typography(body2, $query);\n @include typography.overflow-ellipsis($query);\n @include typography.text-baseline(\n $top: 20px,\n $display: block,\n $query: $query\n );\n\n .mdc-list-item--with-three-lines & {\n @include feature-targeting.targets($feat-structure) {\n white-space: normal;\n line-height: 20px;\n }\n }\n\n .mdc-list-item--with-overline & {\n @include feature-targeting.targets($feat-structure) {\n white-space: nowrap;\n line-height: auto;\n }\n }\n }\n\n .mdc-list-item__overline-text {\n @include typography.typography(overline, $query);\n @include typography.overflow-ellipsis($query);\n\n .mdc-list-item--with-two-lines & {\n @include typography.text-baseline(\n $top: 24px,\n $bottom: 20px,\n $query: $query\n );\n }\n\n .mdc-list-item--with-three-lines & {\n @include typography.text-baseline(\n $top: 28px,\n $bottom: 20px,\n $query: $query\n );\n }\n }\n\n .mdc-list-item--with-leading-avatar {\n @include item-start-spacing(16px, $query: $query);\n @include item-start-size(40px, $query: $query);\n @include _two-line-item-primary-baseline(32px, 20px, $query: $query);\n @include _two-line-item-overline-baseline(28px, 20px, $query: $query);\n @include _two-line-item-meta-baseline($top: 32px, $query: $query);\n @include _one-line-item-tall-density(\n variables.$one-line-item-density-scale,\n $query: $query\n );\n @include _two-line-item-tall-density(\n variables.$two-line-item-density-scale,\n $query: $query\n );\n\n .mdc-list-item__start {\n @include feature-targeting.targets($feat-structure) {\n border-radius: 50%;\n }\n }\n }\n\n .mdc-list-item--with-leading-icon {\n @include item-start-size(24px, $query: $query);\n @include item-start-spacing(\n $leading: 16px,\n $trailing: 32px,\n $query: $query\n );\n @include _two-line-item-primary-baseline(32px, 20px, $query: $query);\n @include _two-line-item-overline-baseline(28px, 20px, $query: $query);\n @include _two-line-item-meta-baseline($top: 32px, $query: $query);\n @include _one-line-item-tall-density(\n variables.$one-line-item-density-scale,\n $query: $query\n );\n @include _two-line-item-tall-density(\n variables.$two-line-item-density-scale,\n $query: $query\n );\n }\n\n .mdc-list-item--with-leading-thumbnail {\n @include item-start-spacing(16px, $query: $query);\n @include item-start-size(40px, $query: $query);\n @include _two-line-item-primary-baseline(32px, 20px, $query: $query);\n @include _two-line-item-overline-baseline(28px, 20px, $query: $query);\n @include _two-line-item-meta-baseline($top: 32px, $query: $query);\n @include _one-line-item-tall-density(\n variables.$one-line-item-density-scale,\n $query: $query\n );\n @include _two-line-item-tall-density(\n variables.$two-line-item-density-scale,\n $query: $query\n );\n }\n\n .mdc-list-item--with-leading-image {\n @include item-start-spacing(16px, $query: $query);\n @include item-start-size(56px, $query: $query);\n @include _two-line-item-primary-baseline(32px, 20px, $query: $query);\n @include _two-line-item-overline-baseline(28px, 20px, $query: $query);\n @include _two-line-item-meta-baseline($top: 32px, $query: $query);\n @include _one-line-item-taller-density(\n variables.$one-line-item-density-scale,\n $query: $query\n );\n @include _two-line-item-tall-density(\n variables.$two-line-item-density-scale,\n $query: $query\n );\n }\n\n .mdc-list-item--with-leading-video {\n @include two-line-item-start-alignment(\n $alignment: flex-start,\n $offset: 8px,\n $query: $query\n );\n @include item-start-spacing($leading: 0, $trailing: 16px, $query: $query);\n @include item-start-size($width: 100px, $height: 56px, $query: $query);\n @include _two-line-item-primary-baseline(32px, 20px, $query: $query);\n @include _two-line-item-overline-baseline(28px, 20px, $query: $query);\n @include _two-line-item-meta-baseline($top: 32px, $query: $query);\n @include _one-line-item-taller-density(\n variables.$one-line-item-density-scale,\n $query: $query\n );\n @include _two-line-item-tall-density(\n variables.$two-line-item-density-scale,\n $query: $query\n );\n }\n\n .mdc-list-item--with-leading-checkbox {\n $leading: absorb-overflow(16px, $actual: 40px, $available: 24px);\n $trailing: absorb-overflow(32px, $actual: 40px, $available: 24px);\n $top: absorb-overflow(16px, $actual: 40px, $available: 24px);\n\n @include item-start-spacing($leading, $trailing, $query: $query);\n @include item-start-size(40px, $query: $query);\n @include two-line-item-start-alignment(\n $alignment: flex-start,\n $offset: $top,\n $query: $query\n );\n @include _two-line-item-primary-baseline(32px, 20px, $query: $query);\n @include _two-line-item-overline-baseline(28px, 20px, $query: $query);\n @include _two-line-item-meta-baseline($top: 32px, $query: $query);\n @include _one-line-item-tall-density(\n variables.$one-line-item-density-scale,\n $query: $query\n );\n @include _two-line-item-tall-density(\n variables.$two-line-item-density-scale,\n $query: $query\n );\n }\n\n .mdc-list-item--with-leading-radio {\n $leading: absorb-overflow(16px, $actual: 40px, $available: 24px);\n $trailing: absorb-overflow(32px, $actual: 40px, $available: 24px);\n $top: absorb-overflow(16px, $actual: 40px, $available: 24px);\n\n @include item-start-spacing($leading, $trailing, $query: $query);\n @include item-start-size(40px, $query: $query);\n @include two-line-item-start-alignment(\n $alignment: flex-start,\n $offset: $top,\n $query: $query\n );\n @include _two-line-item-primary-baseline(32px, 20px, $query: $query);\n @include _two-line-item-overline-baseline(28px, 20px, $query: $query);\n @include _two-line-item-meta-baseline($top: 32px, $query: $query);\n @include _one-line-item-tall-density(\n variables.$one-line-item-density-scale,\n $query: $query\n );\n @include _two-line-item-tall-density(\n variables.$two-line-item-density-scale,\n $query: $query\n );\n }\n\n .mdc-list-item--with-leading-switch {\n @include item-start-spacing(16px, $query: $query);\n @include item-start-size($width: 36px, $height: 20px, $query: $query);\n @include two-line-item-start-alignment(\n $alignment: flex-start,\n $offset: 16px,\n $query: $query\n );\n @include _two-line-item-primary-baseline(32px, 20px, $query: $query);\n @include _two-line-item-overline-baseline(28px, 20px, $query: $query);\n @include _two-line-item-meta-baseline($top: 32px, $query: $query);\n @include _one-line-item-tall-density(\n variables.$one-line-item-density-scale,\n $query: $query\n );\n @include _two-line-item-tall-density(\n variables.$two-line-item-density-scale,\n $query: $query\n );\n }\n\n .mdc-list-item--with-trailing-icon {\n @include item-end-spacing(16px, $query: $query);\n @include item-end-size(24px, $query: $query);\n }\n\n .mdc-list-item--with-trailing-meta {\n @include two-line-item-end-alignment(flex-start, $query: $query);\n @include three-line-item-end-alignment(flex-start, $query: $query);\n @include item-end-spacing($leading: 28px, $trailing: 16px, $query: $query);\n @include _two-line-item-end-baseline($top: 28px, $query: $query);\n @include _three-line-item-end-baseline($top: 28px, $query: $query);\n\n .mdc-list-item__end {\n @include typography.typography(caption, $query);\n }\n }\n\n .mdc-list-item--with-trailing-checkbox {\n $leading: absorb-overflow(32px, $actual: 40px, $available: 24px);\n $trailing: absorb-overflow(16px, $actual: 40px, $available: 24px);\n $top: absorb-overflow(16px, $actual: 40px, $available: 24px);\n\n @include item-end-spacing($leading, $trailing, $query: $query);\n @include item-end-size(40px, $query: $query);\n @include three-line-item-end-alignment(\n $alignment: flex-start,\n $offset: $top,\n $query: $query\n );\n }\n\n .mdc-list-item--with-trailing-radio {\n $leading: absorb-overflow(32px, $actual: 40px, $available: 24px);\n $trailing: absorb-overflow(16px, $actual: 40px, $available: 24px);\n $top: absorb-overflow(16px, $actual: 40px, $available: 24px);\n\n @include item-end-spacing($leading, $trailing, $query: $query);\n @include item-end-size(40px, $query: $query);\n @include three-line-item-end-alignment(\n $alignment: flex-start,\n $offset: $top,\n $query: $query\n );\n }\n\n .mdc-list-item--with-trailing-switch {\n @include item-end-spacing(16px, $query: $query);\n @include item-end-size($width: 36px, $height: 20px, $query: $query);\n @include three-line-item-end-alignment(\n $alignment: flex-start,\n $offset: 16px,\n $query: $query\n );\n }\n\n .mdc-list-item--with-overline {\n @include _two-line-item-primary-baseline(20px, 0px, $query: $query);\n @include _three-line-item-primary-baseline(20px, 0px, $query: $query);\n }\n\n // This must be specified last to ensure that RTL padding takes priority over\n // LTR padding in the cascade.\n .mdc-list-item {\n @include item-spacing(16px, $query: $query);\n }\n\n //\n // Grouping\n //\n\n .mdc-list-group {\n @include feature-targeting.targets($feat-structure) {\n // Cancel top/bottom padding on individual lists within group\n .mdc-deprecated-list {\n padding: 0;\n }\n }\n }\n\n .mdc-list-group__subheader {\n $mdc-list-subheader-virtual-height: 3rem;\n $mdc-list-subheader-leading: map.get(\n map.get(typography.$styles, body1),\n line-height\n );\n $mdc-list-subheader-margin: calc(\n (#{$mdc-list-subheader-virtual-height} - #{$mdc-list-subheader-leading}) /\n 2\n );\n\n @include typography.typography(subtitle1, $query);\n @include feature-targeting.targets($feat-structure) {\n margin: $mdc-list-subheader-margin variables.$side-padding;\n }\n }\n\n //\n // Dividers\n //\n\n $divider-color: if(\n theme-color.tone(theme-color.$background) == 'dark',\n variables.$divider-color-on-dark-bg,\n variables.$divider-color-on-light-bg\n );\n\n @include divider-color($divider-color, $query: $query);\n @include divider-height(1px, $query: $query);\n\n .mdc-list-divider {\n @include feature-targeting.targets($feat-structure) {\n padding: 0;\n\n // Allows the use of padding to specify leading and trailing insets\n // independently.\n background-clip: content-box;\n }\n }\n\n // The base inset variant corresponds to the item's padding.\n .mdc-list-divider,\n .mdc-list-divider--with-leading-text,\n .mdc-list-divider--with-leading-icon,\n .mdc-list-divider--with-leading-image,\n .mdc-list-divider--with-leading-thumbnail,\n .mdc-list-divider--with-leading-avatar,\n .mdc-list-divider--with-leading-checkbox,\n .mdc-list-divider--with-leading-switch,\n .mdc-list-divider--with-leading-radio {\n @include divider-leading-inset(16px, $query: $query);\n @include divider-trailing-inset(16px, $query: $query);\n }\n\n .mdc-list-divider--with-leading-video {\n @include divider-leading-inset(0px, $query: $query);\n }\n\n // This is needed to ensure that default padding isn't applied in RTL locales.\n .mdc-list-divider {\n @include feature-targeting.targets($feat-structure) {\n @include rtl.rtl {\n padding: 0;\n }\n }\n }\n}\n\n@mixin with-ripple($query: feature-targeting.all()) {\n @include ripple.common($query); // COPYBARA_COMMENT_THIS_LINE\n\n :not(.mdc-list-item--disabled).mdc-list-item {\n @include _item-interactive-ripple($query);\n }\n\n .mdc-list-item--disabled {\n @include ripple.surface(\n $ripple-target: variables.$ripple-target,\n $query: $query\n );\n @include ripple.radius-bounded(\n $ripple-target: variables.$ripple-target,\n $query: $query\n );\n @include ripple-theme.states-base-color(\n theme-color.prop-value(on-surface),\n $ripple-target: variables.$ripple-target,\n $query: $query\n );\n @include ripple-theme.states-focus-opacity(\n ripple-theme.states-opacity(primary, focus),\n $ripple-target: variables.$ripple-target,\n $query: $query\n );\n\n #{variables.$ripple-target} {\n @include ripple.target-common($query: $query);\n }\n }\n}\n\n///\n/// Adjusts an offset (i.e., margin) to accomodate contents that are larger than\n/// the space allocated by the specification.\n///\n/// For instance, the specification provides 24x24dp for a checkbox with a 16dp\n/// margin. However, checkboxes are actually 40x40dp. To ensure that the\n/// checkbox is positioned correctly, the margin is reduced by 8dp to reflect\n/// that the margin is already \"baked into\" the checkbox.\n///\n/// Concretely, 40dp - 24dp = 16dp. Assuming that the control is symmetrical,\n/// half of the overflow (8dp) is on the leading side and half on the trailing\n/// side. Therefore, the leading and trailing margins are reduced by 8dp.\n///\n/// Note: this might be more useful if it's added into the leading/trailing\n/// margin mixins as a parameter.\n///\n@function absorb-overflow($offset, $actual, $available, $symmetric: true) {\n @if $actual <= $available {\n @return $offset;\n }\n $overflow: $actual - $available;\n @return $offset - math.div($overflow, if($symmetric, 2, 1));\n}\n\n@mixin one-line-item-height($height, $query: feature-targeting.all()) {\n $feat-structure: feature-targeting.create-target($query, structure);\n &.mdc-list-item--with-one-line {\n @include feature-targeting.targets($feat-structure) {\n height: $height;\n }\n }\n}\n\n@mixin two-line-item-height($height, $query: feature-targeting.all()) {\n $feat-structure: feature-targeting.create-target($query, structure);\n &.mdc-list-item--with-two-lines {\n @include feature-targeting.targets($feat-structure) {\n height: $height;\n }\n }\n}\n@mixin three-line-item-height($height, $query: feature-targeting.all()) {\n $feat-structure: feature-targeting.create-target($query, structure);\n &.mdc-list-item--with-three-lines {\n @include feature-targeting.targets($feat-structure) {\n height: $height;\n }\n }\n}\n\n@mixin list-item-height($height) {\n &.mdc-list-item--with-one-line,\n &.mdc-list-item--with-two-lines,\n &.mdc-list-item--with-three-lines {\n height: $height;\n }\n}\n\n@mixin item-spacing(\n $leading,\n $trailing: $leading,\n $query: feature-targeting.all()\n) {\n $feat-structure: feature-targeting.create-target($query, structure);\n @include feature-targeting.targets($feat-structure) {\n @include rtl.reflexive-property(padding, $leading, $trailing);\n }\n}\n\n@mixin one-line-item-start-alignment(\n $alignment,\n $offset: 0,\n $query: feature-targeting.all()\n) {\n $feat-structure: feature-targeting.create-target($query, structure);\n &.mdc-list-item--with-one-line {\n .mdc-list-item__start {\n @include feature-targeting.targets($feat-structure) {\n align-self: $alignment;\n margin-top: $offset;\n }\n }\n }\n}\n\n@mixin two-line-item-start-alignment(\n $alignment,\n $offset: 0,\n $query: feature-targeting.all()\n) {\n $feat-structure: feature-targeting.create-target($query, structure);\n &.mdc-list-item--with-two-lines {\n .mdc-list-item__start {\n @include feature-targeting.targets($feat-structure) {\n align-self: $alignment;\n margin-top: $offset;\n }\n }\n }\n}\n\n@mixin three-line-item-start-alignment(\n $alignment,\n $offset: 0,\n $query: feature-targeting.all()\n) {\n $feat-structure: feature-targeting.create-target($query, structure);\n &.mdc-list-item--with-three-lines {\n .mdc-list-item__start {\n @include feature-targeting.targets($feat-structure) {\n align-self: $alignment;\n margin-top: $offset;\n }\n }\n }\n}\n\n@mixin one-line-item-end-alignment(\n $alignment,\n $offset: 0,\n $query: feature-targeting.all()\n) {\n $feat-structure: feature-targeting.create-target($query, structure);\n &.mdc-list-item--with-one-line {\n .mdc-list-item__end {\n @include feature-targeting.targets($feat-structure) {\n align-self: $alignment;\n margin-top: $offset;\n }\n }\n }\n}\n\n@mixin two-line-item-end-alignment(\n $alignment,\n $offset: 0,\n $query: feature-targeting.all()\n) {\n $feat-structure: feature-targeting.create-target($query, structure);\n &.mdc-list-item--with-two-lines {\n .mdc-list-item__end {\n @include feature-targeting.targets($feat-structure) {\n align-self: $alignment;\n margin-top: $offset;\n }\n }\n }\n}\n\n@mixin three-line-item-end-alignment(\n $alignment,\n $offset: 0,\n $query: feature-targeting.all()\n) {\n $feat-structure: feature-targeting.create-target($query, structure);\n &.mdc-list-item--with-three-lines {\n .mdc-list-item__end {\n @include feature-targeting.targets($feat-structure) {\n align-self: $alignment;\n margin-top: $offset;\n }\n }\n }\n}\n\n@mixin item-start-spacing(\n $leading,\n $trailing: $leading,\n $query: feature-targeting.all()\n) {\n $feat-structure: feature-targeting.create-target($query, structure);\n @include feature-targeting.targets($feat-structure) {\n // Extra specificity needed to override default customizations.\n &.mdc-list-item {\n // We rely on auto to avoid clobbering the opposite padding.\n @include rtl.reflexive-property(padding, 0, auto);\n }\n\n .mdc-list-item__start {\n @include rtl.reflexive-property(margin, $leading, $trailing);\n }\n }\n}\n\n@mixin item-end-spacing(\n $leading,\n $trailing: $leading,\n $query: feature-targeting.all()\n) {\n $feat-structure: feature-targeting.create-target($query, structure);\n @include feature-targeting.targets($feat-structure) {\n // Extra specificity needed to override default customizations.\n &.mdc-list-item {\n // We rely on auto to avoid clobbering the opposite padding.\n @include rtl.reflexive-property(padding, auto, 0);\n }\n\n .mdc-list-item__end {\n @include rtl.reflexive-property(margin, $leading, $trailing);\n }\n }\n}\n\n@mixin item-start-size(\n $width,\n $height: $width,\n $query: feature-targeting.all()\n) {\n $feat-structure: feature-targeting.create-target($query, structure);\n @include feature-targeting.targets($feat-structure) {\n .mdc-list-item__start {\n width: $width;\n height: $height;\n }\n }\n}\n\n@mixin item-end-size($width, $height: $width, $query: feature-targeting.all()) {\n $feat-structure: feature-targeting.create-target($query, structure);\n @include feature-targeting.targets($feat-structure) {\n .mdc-list-item__end {\n width: $width;\n height: $height;\n }\n }\n}\n\n@mixin list-item-selected-container-color($color) {\n &.mdc-list-item.mdc-list-item--selected {\n @include theme.property(background-color, $color);\n }\n}\n\n@mixin list-primary-text-typography($typography-theme) {\n .mdc-list-item__primary-text {\n @include typography.theme-styles($typography-theme);\n }\n}\n\n@mixin list-primary-text-ink-color($color, $query: feature-targeting.all()) {\n $feat-color: feature-targeting.create-target($query, color);\n\n .mdc-list-item__primary-text {\n @include feature-targeting.targets($feat-color) {\n @include theme.property(color, $color);\n }\n }\n}\n\n@mixin list-secondary-text-ink-color($color, $query: feature-targeting.all()) {\n $feat-color: feature-targeting.create-target($query, color);\n\n .mdc-list-item__secondary-text {\n @include feature-targeting.targets($feat-color) {\n @include theme.property(color, $color);\n }\n }\n}\n\n@mixin list-secondary-text-typography($typography-theme) {\n .mdc-list-item__secondary-text {\n @include typography.theme-styles($typography-theme);\n }\n}\n\n@mixin list-overline-text-ink-color($color, $query: feature-targeting.all()) {\n $feat-color: feature-targeting.create-target($query, color);\n\n .mdc-list-item__overline-text {\n @include feature-targeting.targets($feat-color) {\n @include theme.property(color, $color);\n }\n }\n}\n\n@mixin list-meta-text-ink-color($color, $query: feature-targeting.all()) {\n $feat-color: feature-targeting.create-target($query, color);\n\n .mdc-list-item__end {\n @include feature-targeting.targets($feat-color) {\n @include theme.property(color, $color);\n }\n }\n}\n\n@mixin list-icon-ink-color($color, $query: feature-targeting.all()) {\n $feat-color: feature-targeting.create-target($query, color);\n\n .mdc-list-item--with-leading-icon .mdc-list-item__start,\n .mdc-list-item--with-trailing-icon .mdc-list-item__end {\n @include feature-targeting.targets($feat-color) {\n @include theme.property(color, $color);\n }\n }\n}\n\n@mixin list-icon-fill-color($color, $query: feature-targeting.all()) {\n $feat-color: feature-targeting.create-target($query, color);\n\n .mdc-list-item--with-leading-icon .mdc-list-item__start,\n .mdc-list-item--with-trailing-icon .mdc-list-item__end {\n @include feature-targeting.targets($feat-color) {\n @include theme.property(background-color, $color);\n }\n }\n}\n\n@mixin list-selected-ink-color($color, $query: feature-targeting.all()) {\n $feat-color: feature-targeting.create-target($query, color);\n\n .mdc-list-item--selected,\n .mdc-list-item--activated {\n @include list-primary-text-ink-color($color, $query);\n @include _item-icon-ink-color($color, $leading-only: true, $query: $query);\n }\n}\n\n@mixin list-selected-meta-text-ink-color(\n $color,\n $query: feature-targeting.all()\n) {\n $feat-color: feature-targeting.create-target($query, color);\n\n .mdc-list-item--selected,\n .mdc-list-item--activated {\n @include list-meta-text-ink-color($color, $query);\n }\n}\n\n@mixin list-disabled-ink-color($color, $query: feature-targeting.all()) {\n $feat-color: feature-targeting.create-target($query, color);\n\n .mdc-list-item--disabled {\n @include list-primary-text-ink-color($color, $query);\n @include list-secondary-text-ink-color($color, $query);\n @include list-overline-text-ink-color($color, $query);\n @include _item-icon-ink-color($color, $query: $query);\n @include item-meta-text-ink-color($color, $query);\n }\n}\n\n@mixin list-disabled-opacity($opacity, $query: feature-targeting.all()) {\n $feat-color: feature-targeting.create-target($query, color);\n\n .mdc-list-item--disabled {\n .mdc-list-item__start,\n .mdc-list-item__content,\n .mdc-list-item__end {\n @include feature-targeting.targets($feat-color) {\n opacity: $opacity;\n }\n }\n }\n}\n\n@mixin group-subheader-ink-color($color, $query: feature-targeting.all()) {\n $feat-color: feature-targeting.create-target($query, color);\n\n .mdc-deprecated-list-group__subheader {\n @include feature-targeting.targets($feat-color) {\n @include theme.property(color, $color);\n }\n }\n}\n\n///\n/// Sets shape radius (rounded) to single line list variant.\n///\n/// @param {Number | List<Number>} $radius Radius size in `px` or percentage. It can be 4 value corner or single radius.\n/// Set to `50%` for rounded shape.\n/// @param {Boolean} $rtl-reflexive Set to true to flip border radius in RTL context. Defaults to `false`.\n/// @param {Number} $density-scale Density scale of single line list. Set this only when custom density is applied.\n/// Defaults to `$mdc-deprecated-list-single-line-density-scale`.\n///\n/// @access public\n///\n@mixin one-line-list-radius(\n $radius,\n $rtl-reflexive: false,\n $density-scale: variables.$one-line-item-density-scale,\n $query: feature-targeting.all()\n) {\n .mdc-list-item--with-one-line {\n @include shape-mixins.radius(\n $radius,\n $rtl-reflexive,\n $component-height:\n density-functions.prop-value(\n $density-config: variables.$one-line-item-density-config,\n $density-scale: $density-scale,\n $property-name: height\n ),\n $query: $query\n );\n\n &.mdc-list-item--with-leading-avatar,\n &.mdc-list-item--with-leading-icon,\n &.mdc-list-item--with-leading-thumbnail,\n &.mdc-list-item--with-leading-checkbox,\n &.mdc-list-item--with-leading-radio,\n &.mdc-list-item--with-leading-switch {\n @include shape-mixins.radius(\n $radius,\n $rtl-reflexive,\n $component-height:\n density-functions.prop-value(\n $density-config: variables.$one-line-item-tall-density-config,\n $density-scale: $density-scale,\n $property-name: height\n ),\n $query: $query\n );\n }\n\n &.mdc-list-item--with-leading-image,\n &.mdc-list-item--with-leading-video {\n @include shape-mixins.radius(\n $radius,\n $rtl-reflexive,\n $component-height:\n density-functions.prop-value(\n $density-config: variables.$one-line-item-taller-density-config,\n $density-scale: $density-scale,\n $property-name: height\n ),\n $query: $query\n );\n }\n }\n}\n\n@mixin two-line-list-radius(\n $radius,\n $rtl-reflexive: false,\n $density-scale: variables.$two-line-item-density-scale,\n $query: feature-targeting.all()\n) {\n .mdc-list-item--with-two-lines {\n @include shape-mixins.radius(\n $radius,\n $rtl-reflexive,\n $component-height:\n density-functions.prop-value(\n $density-config: variables.$two-line-item-density-config,\n $density-scale: $density-scale,\n $property-name: height\n ),\n $query: $query\n );\n\n &.mdc-list-item--with-leading-avatar,\n &.mdc-list-item--with-leading-icon,\n &.mdc-list-item--with-leading-thumbnail,\n &.mdc-list-item--with-leading-checkbox,\n &.mdc-list-item--with-leading-radio,\n &.mdc-list-item--with-leading-switch,\n &.mdc-list-item--with-leading-image,\n &.mdc-list-item--with-leading-video {\n @include shape-mixins.radius(\n $radius,\n $rtl-reflexive,\n $component-height:\n density-functions.prop-value(\n $density-config: variables.$two-line-item-tall-density-config,\n $density-scale: $density-scale,\n $property-name: height\n ),\n $query: $query\n );\n }\n }\n}\n\n@mixin three-line-list-radius(\n $radius,\n $rtl-reflexive: false,\n $density-scale: variables.$three-line-item-density-scale,\n $query: feature-targeting.all()\n) {\n .mdc-list-item--with-three-lines {\n @include shape-mixins.radius(\n $radius,\n $rtl-reflexive,\n $component-height:\n density-functions.prop-value(\n $density-config: variables.$three-line-item-density-config,\n $density-scale: $density-scale,\n $property-name: height\n ),\n $query: $query\n );\n }\n}\n\n@mixin divider-color($color, $query: feature-targeting.all()) {\n $feat-color: feature-targeting.create-target($query, color);\n\n .mdc-list-divider {\n @include feature-targeting.targets($feat-color) {\n @include theme.property(background-color, $color);\n }\n }\n}\n\n@mixin divider-height($height, $query: feature-targeting.all()) {\n $feat-structure: feature-targeting.create-target($query, structure);\n\n .mdc-list-divider {\n @include feature-targeting.targets($feat-structure) {\n @include theme.property(height, $height);\n }\n }\n}\n\n@mixin divider-leading-inset($inset, $query: feature-targeting.all()) {\n $feat-structure: feature-targeting.create-target($query, structure);\n &.mdc-list-divider--with-leading-inset {\n @include feature-targeting.targets($feat-structure) {\n // We rely on auto to avoid clobbering the opposite padding.\n @include rtl.reflexive-property(padding, $inset, auto);\n }\n }\n}\n\n@mixin divider-trailing-inset($inset, $query: feature-targeting.all()) {\n $feat-structure: feature-targeting.create-target($query, structure);\n &.mdc-list-divider--with-trailing-inset {\n @include feature-targeting.targets($feat-structure) {\n // We rely on auto to avoid clobbering the opposite padding.\n @include rtl.reflexive-property(padding, auto, $inset);\n }\n }\n}\n\n// The public density mixins apply the appropriate density styles regardless of\n// the item's start contents.\n@mixin one-line-item-density(\n $density-scale,\n $exclude-variants: false,\n $query: feature-targeting.all()\n) {\n @include _one-line-item-density($density-scale, $query: $query);\n\n @if not $exclude-variants {\n &.mdc-list-item--with-leading-avatar,\n &.mdc-list-item--with-leading-icon,\n &.mdc-list-item--with-leading-thumbnail,\n &.mdc-list-item--with-leading-checkbox,\n &.mdc-list-item--with-leading-radio,\n &.mdc-list-item--with-leading-switch {\n @include _one-line-item-tall-density($density-scale, $query: $query);\n }\n\n &.mdc-list-item--with-leading-image,\n &.mdc-list-item--with-leading-video {\n @include _one-line-item-taller-density($density-scale, $query: $query);\n }\n }\n}\n\n@mixin two-line-item-density($density-scale, $query: feature-targeting.all()) {\n @include _two-line-item-density($density-scale, $query: $query);\n\n &.mdc-list-item--with-leading-avatar,\n &.mdc-list-item--with-leading-icon,\n &.mdc-list-item--with-leading-thumbnail,\n &.mdc-list-item--with-leading-checkbox,\n &.mdc-list-item--with-leading-radio,\n &.mdc-list-item--with-leading-switch,\n &.mdc-list-item--with-leading-image,\n &.mdc-list-item--with-leading-video {\n @include _two-line-item-tall-density($density-scale, $query: $query);\n }\n}\n\n@mixin three-line-item-density(\n $density-scale,\n $query: feature-targeting.all()\n) {\n @include _three-line-item-density($density-scale, $query: $query);\n}\n\n//\n// Private\n//\n\n// The private density mixins allow density properties to be overridden\n// individually to avoid increasing specificity.\n@mixin _one-line-item-density($density-scale, $query: feature-targeting.all()) {\n $height: density-functions.prop-value(\n $density-config: variables.$one-line-item-density-config,\n $density-scale: $density-scale,\n $property-name: height,\n );\n\n @include one-line-item-height($height, $query: $query);\n}\n\n@mixin _one-line-item-tall-density(\n $density-scale,\n $query: feature-targeting.all()\n) {\n $height: density-functions.prop-value(\n $density-config: variables.$one-line-item-tall-density-config,\n $density-scale: $density-scale,\n $property-name: height,\n );\n\n @include one-line-item-height($height, $query: $query);\n}\n\n@mixin _one-line-item-taller-density(\n $density-scale,\n $query: feature-targeting.all()\n) {\n $height: density-functions.prop-value(\n $density-config: variables.$one-line-item-taller-density-config,\n $density-scale: $density-scale,\n $property-name: height,\n );\n\n @include one-line-item-height($height, $query: $query);\n}\n\n@mixin _two-line-item-density($density-scale, $query: feature-targeting.all()) {\n $feat-structure: feature-targeting.create-target($query, structure);\n $height: density-functions.prop-value(\n $density-config: variables.$two-line-item-density-config,\n $density-scale: $density-scale,\n $property-name: height,\n );\n\n @include two-line-item-height($height, $query: $query);\n\n @if ($density-scale and $density-scale != 0) {\n &.mdc-list-item--with-two-lines {\n .mdc-list-item__content {\n display: flex;\n flex-direction: column;\n justify-content: center;\n }\n .mdc-list-item__primary-text,\n .mdc-list-item__secondary-text {\n margin-top: 0px;\n margin-bottom: 0px;\n line-height: 1.4;\n &::before,\n &::after {\n display: none;\n }\n }\n }\n }\n}\n\n@mixin _two-line-item-tall-density(\n $density-scale,\n $query: feature-targeting.all()\n) {\n $height: density-functions.prop-value(\n $density-config: variables.$two-line-item-tall-density-config,\n $density-scale: $density-scale,\n $property-name: height,\n );\n\n @include two-line-item-height($height, $query: $query);\n}\n\n@mixin _three-line-item-density(\n $density-scale,\n $query: feature-targeting.all()\n) {\n $height: density-functions.prop-value(\n $density-config: variables.$three-line-item-density-config,\n $density-scale: $density-scale,\n $property-name: height,\n );\n\n @include three-line-item-height($height, $query: $query);\n}\n\n@mixin list-base($query: feature-targeting.all()) {\n $feat-color: feature-targeting.create-target($query, color);\n $feat-structure: feature-targeting.create-target($query, structure);\n $feat-typography: feature-targeting.create-target($query, typography);\n\n @include typography.typography(subtitle1, $query);\n @include feature-targeting.targets($feat-typography) {\n // According to the mocks and stickersheet, the line-height is\n // adjusted to 24px for text content, same as for body1.\n /* @alternate */\n line-height: map.get(map.get(typography.$styles, body1), line-height);\n }\n @include feature-targeting.targets($feat-structure) {\n margin: 0;\n padding: 8px 0;\n list-style-type: none;\n\n &:focus // lint-disable-focus-psuedo-selector\n {\n outline: none;\n }\n }\n}\n\n@mixin item-base($query: feature-targeting.all()) {\n $feat-structure: feature-targeting.create-target($query, structure);\n @include feature-targeting.targets($feat-structure) {\n display: flex;\n position: relative;\n align-items: center;\n justify-content: flex-start;\n overflow: hidden;\n padding: 0;\n\n &:focus // lint-disable-focus-psuedo-selector\n {\n outline: none;\n }\n }\n}\n\n@mixin _item-interactive-ripple($query: feature-targeting.all()) {\n @include ripple.surface(\n $ripple-target: variables.$ripple-target,\n $query: $query\n );\n @include ripple.radius-bounded(\n $ripple-target: variables.$ripple-target,\n $query: $query\n );\n @include ripple-theme.states(\n theme-color.prop-value(on-surface),\n false,\n $ripple-target: variables.$ripple-target,\n $query: $query\n );\n @include ripple-theme.states-activated(\n primary,\n false,\n $ripple-target: variables.$ripple-target,\n $query: $query\n );\n @include ripple-theme.states-selected(\n primary,\n false,\n $ripple-target: variables.$ripple-target,\n $query: $query\n );\n\n #{variables.$ripple-target} {\n @include ripple.target-common($query: $query);\n }\n}\n\n@mixin _two-line-item-primary-baseline(\n $top,\n $bottom,\n $query: feature-targeting.all()\n) {\n &.mdc-list-item--with-two-lines {\n .mdc-list-item__primary-text {\n @include typography.text-baseline(\n $top: $top,\n $bottom: $bottom,\n $query: $query\n );\n }\n }\n}\n\n@mixin _three-line-item-primary-baseline(\n $top,\n $bottom,\n $query: feature-targeting.all()\n) {\n &.mdc-list-item--with-three-lines {\n .mdc-list-item__primary-text {\n @include typography.text-baseline(\n $top: $top,\n $bottom: $bottom,\n $query: $query\n );\n }\n }\n}\n\n@mixin _two-line-item-overline-baseline(\n $top,\n $bottom,\n $query: feature-targeting.all()\n) {\n &.mdc-list-item--with-two-lines {\n .mdc-list-item__overline-text {\n @include typography.text-baseline(\n $top: $top,\n $bottom: $bottom,\n $query: $query\n );\n }\n }\n}\n\n@mixin _three-line-item-overline-baseline(\n $top,\n $bottom,\n $query: feature-targeting.all()\n) {\n &.mdc-list-item--with-three-lines {\n .mdc-list-item__overline-text {\n @include typography.text-baseline(\n $top: $top,\n $bottom: $bottom,\n $query: $query\n );\n }\n }\n}\n\n@mixin _two-line-item-end-baseline($top, $query: feature-targeting.all()) {\n &.mdc-list-item--with-two-lines {\n .mdc-list-item__end {\n @include typography.text-baseline(\n $display: block,\n $top: $top,\n $query: $query\n );\n }\n }\n}\n\n@mixin _three-line-item-end-baseline($top, $query: feature-targeting.all()) {\n &.mdc-list-item--with-three-lines {\n .mdc-list-item__end {\n @include typography.text-baseline(\n $display: block,\n $top: $top,\n $query: $query\n );\n }\n }\n}\n\n@mixin _two-line-item-meta-baseline($top, $query: feature-targeting.all()) {\n &.mdc-list-item--with-two-lines {\n &.mdc-list-item--with-trailing-meta {\n .mdc-list-item__end {\n @include typography.text-baseline(\n $display: block,\n $top: $top,\n $query: $query\n );\n }\n }\n }\n}\n\n@mixin item-meta-text-ink-color($color, $query: feature-targeting.all()) {\n $feat-color: feature-targeting.create-target($query, color);\n\n &.mdc-list-item--with-trailing-meta {\n .mdc-list-item__end {\n @include feature-targeting.targets($feat-color) {\n @include theme.property(color, $color);\n }\n }\n }\n}\n\n@mixin _item-icon-ink-color(\n $color,\n $leading-only: false,\n $query: feature-targeting.all()\n) {\n $feat-color: feature-targeting.create-target($query, color);\n\n &.mdc-list-item--with-leading-icon {\n .mdc-list-item__start {\n @include feature-targeting.targets($feat-color) {\n @include theme.property(color, $color);\n }\n }\n }\n\n @if (not $leading-only) {\n &.mdc-list-item--with-trailing-icon {\n .mdc-list-item__end {\n @include feature-targeting.targets($feat-color) {\n @include theme.property(color, $color);\n }\n }\n }\n }\n}\n\n@mixin _high-contrast-mode($query: feature-targeting.all()) {\n $feat-structure: feature-targeting.create-target($query, structure);\n $feat-color: feature-targeting.create-target($query, color);\n\n @include dom-mixins.forced-colors-mode {\n .mdc-list-divider::after {\n @include feature-targeting.targets($feat-structure) {\n content: '';\n display: block;\n border-bottom-width: 1px;\n border-bottom-style: solid;\n }\n\n @include feature-targeting.targets($feat-color) {\n // Color ensures border is shown, but will be overridden by the browser.\n @include theme.property(border-bottom-color, white);\n }\n }\n }\n}\n","@use '@material/theme/theme' as mdc-theme;\n\n@use '../theming/theming';\n@use '../typography/typography';\n@use '../mdc-helpers/mdc-helpers';\n\n@mixin color($config-or-theme) {\n $config: theming.get-color-config($config-or-theme);\n\n @include mdc-helpers.using-mdc-theme($config) {\n .mat-mdc-optgroup-label {\n // Since this will usually be rendered in an overlay,\n // we have to explicitly set the default color.\n @include mdc-theme.prop(color, text-primary-on-background);\n }\n }\n}\n\n@mixin typography($config-or-theme) {\n $config: typography.private-typography-to-2018-config(\n theming.get-typography-config($config-or-theme));\n}\n\n@mixin density($config-or-theme) {\n $density-scale: theming.get-density-config($config-or-theme);\n}\n\n@mixin theme($theme-or-color-config) {\n $theme: theming.private-legacy-get-theme($theme-or-color-config);\n @include theming.private-check-duplicate-theme-styles($theme, 'mat-optgroup') {\n $color: theming.get-color-config($theme);\n $density: theming.get-density-config($theme);\n $typography: theming.get-typography-config($theme);\n\n @if $color != null {\n @include color($color);\n }\n @if $density != null {\n @include density($density);\n }\n @if $typography != null {\n @include typography($typography);\n }\n }\n}\n","@use 'sass:map';\n@use '../../theming/theming';\n\n@mixin color($config-or-theme) {\n $config: theming.get-color-config($config-or-theme);\n $is-dark-theme: map.get($config, is-dark);\n $primary: map.get($config, primary);\n $accent: map.get($config, accent);\n $warn: map.get($config, warn);\n $background: map.get($config, background);\n\n // NOTE(traviskaufman): While the spec calls for translucent blacks/whites for disabled colors,\n // this does not work well with elements layered on top of one another. To get around this we\n // blend the colors together based on the base color and the theme background.\n $white-30pct-opacity-on-dark: #686868;\n $black-26pct-opacity-on-light: #b0b0b0;\n $disabled-color: if($is-dark-theme, $white-30pct-opacity-on-dark, $black-26pct-opacity-on-light);\n $colored-box-selector: '.mat-pseudo-checkbox-checked, .mat-pseudo-checkbox-indeterminate';\n\n .mat-pseudo-checkbox {\n color: theming.get-color-from-palette(map.get($config, foreground), secondary-text);\n\n &::after {\n color: theming.get-color-from-palette($background, background);\n }\n }\n\n .mat-pseudo-checkbox-disabled {\n color: $disabled-color;\n }\n\n .mat-primary .mat-pseudo-checkbox-checked,\n .mat-primary .mat-pseudo-checkbox-indeterminate {\n background: theming.get-color-from-palette(map.get($config, primary));\n }\n\n // Default to the accent color. Note that the pseudo checkboxes are meant to inherit the\n // theme from their parent, rather than implementing their own theming, which is why we\n // don't attach to the `mat-*` classes. Also note that this needs to be below `.mat-primary`\n // in order to allow for the color to be overwritten if the checkbox is inside a parent that\n // has `mat-accent` and is placed inside another parent that has `mat-primary`.\n .mat-pseudo-checkbox-checked,\n .mat-pseudo-checkbox-indeterminate,\n .mat-accent .mat-pseudo-checkbox-checked,\n .mat-accent .mat-pseudo-checkbox-indeterminate {\n background: theming.get-color-from-palette(map.get($config, accent));\n }\n\n .mat-warn .mat-pseudo-checkbox-checked,\n .mat-warn .mat-pseudo-checkbox-indeterminate {\n background: theming.get-color-from-palette(map.get($config, warn));\n }\n\n .mat-pseudo-checkbox-checked,\n .mat-pseudo-checkbox-indeterminate {\n &.mat-pseudo-checkbox-disabled {\n background: $disabled-color;\n }\n }\n}\n\n@mixin typography($config-or-theme) {}\n\n@mixin _density($config-or-theme) {}\n\n@mixin theme($theme-or-color-config) {\n $theme: theming.private-legacy-get-theme($theme-or-color-config);\n @include theming.private-check-duplicate-theme-styles($theme, 'mat-pseudo-checkbox') {\n $color: theming.get-color-config($theme);\n $density: theming.get-density-config($theme);\n $typography: theming.get-typography-config($theme);\n\n @if $color != null {\n @include color($color);\n }\n @if $density != null {\n @include _density($density);\n }\n @if $typography != null {\n @include typography($typography);\n }\n }\n}\n","@use 'sass:map';\n@use 'theming/theming';\n@use './style/private';\n@use './ripple/ripple-theme';\n@use './option/option-theme';\n@use './option/optgroup-theme';\n@use './selection/pseudo-checkbox/pseudo-checkbox-theme';\n@use './style/elevation';\n@use './typography/typography';\n\n@mixin color($config-or-theme) {\n $config: theming.get-color-config($config-or-theme);\n\n @include ripple-theme.color($config);\n @include option-theme.color($config);\n @include optgroup-theme.color($config);\n @include pseudo-checkbox-theme.color($config);\n\n // Wrapper element that provides the theme background when the user's content isn't\n // inside of a `mat-sidenav-container`. Note that we need to exclude the ampersand\n // selector in case the mixin is included at the top level.\n .mat-app-background#{if(&, ', &.mat-app-background', '')} {\n $background: map.get($config, background);\n $foreground: map.get($config, foreground);\n\n background-color: theming.get-color-from-palette($background, background);\n color: theming.get-color-from-palette($foreground, text);\n }\n\n // Provides external CSS classes for each elevation value. Each CSS class is formatted as\n // `mat-elevation-z$zValue` where `$zValue` corresponds to the z-space to which the element is\n // elevated.\n @for $zValue from 0 through 24 {\n $selector: elevation.$prefix + $zValue;\n // We need the `mat-mdc-elevation-specific`, because some MDC mixins\n // come with elevation baked in and we don't have a way of removing it.\n .#{$selector}, .mat-mdc-elevation-specific.#{$selector} {\n @include private.private-theme-elevation($zValue, $config);\n }\n }\n\n // Marker that is used to determine whether the user has added a theme to their page.\n @at-root {\n .mat-theme-loaded-marker {\n display: none;\n }\n }\n}\n\n@mixin typography($config-or-theme) {\n $config: typography.private-typography-to-2018-config(\n theming.get-typography-config($config-or-theme));\n\n @include option-theme.typography($config);\n @include optgroup-theme.typography($config);\n @include pseudo-checkbox-theme.typography($config);\n // TODO(mmalerba): add typography mixin for this.\n // @include ripple-theme.typography($config);\n}\n\n@mixin density($config-or-theme) {\n $density-scale: theming.get-density-config($config-or-theme);\n\n @include option-theme.density($density-scale);\n @include optgroup-theme.density($density-scale);\n // TODO(mmalerba): add density mixins for these.\n // @include ripple-theme.density($density-scale);\n // @include pseudo-checkbox-theme.density($density-scale);\n}\n\n// Mixin that renders all of the core styles that depend on the theme.\n@mixin theme($theme-or-color-config) {\n $theme: theming.private-legacy-get-theme($theme-or-color-config);\n // Wrap the sub-theme includes in the duplicate theme styles mixin. This ensures that\n // there won't be multiple warnings. e.g. if `mat-core-theme` reports a warning, then\n // the imported themes (such as `mat-ripple-theme`) should not report again.\n @include theming.private-check-duplicate-theme-styles($theme, 'mat-core') {\n $color: theming.get-color-config($theme);\n $density: theming.get-density-config($theme);\n $typography: theming.get-typography-config($theme);\n\n @if $color != null {\n @include color($color);\n }\n @if $density != null {\n @include density($density);\n }\n @if $typography != null {\n @include typography($typography);\n }\n }\n}\n","//\n// Copyright 2017 Google Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n//\n\n// stylelint-disable selector-class-pattern --\n// Selector '.mdc-*' should only be used in this project.\n\n@use 'sass:map';\n@use 'sass:math';\n@use 'sass:meta';\n@use '@material/animation/variables' as animation-variables;\n@use '@material/theme/custom-properties';\n@use '@material/base/mixins' as base-mixins;\n@use '@material/feature-targeting/feature-targeting';\n@use '@material/rtl/rtl';\n@use '@material/theme/css';\n@use '@material/theme/theme';\n@use '@material/theme/theme-color';\n\n$baseline-color: black !default;\n$umbra-opacity: 0.2 !default;\n$penumbra-opacity: 0.14 !default;\n$ambient-opacity: 0.12 !default;\n\n$umbra-map: (\n 0: '0px 0px 0px 0px',\n 1: '0px 2px 1px -1px',\n 2: '0px 3px 1px -2px',\n 3: '0px 3px 3px -2px',\n 4: '0px 2px 4px -1px',\n 5: '0px 3px 5px -1px',\n 6: '0px 3px 5px -1px',\n 7: '0px 4px 5px -2px',\n 8: '0px 5px 5px -3px',\n 9: '0px 5px 6px -3px',\n 10: '0px 6px 6px -3px',\n 11: '0px 6px 7px -4px',\n 12: '0px 7px 8px -4px',\n 13: '0px 7px 8px -4px',\n 14: '0px 7px 9px -4px',\n 15: '0px 8px 9px -5px',\n 16: '0px 8px 10px -5px',\n 17: '0px 8px 11px -5px',\n 18: '0px 9px 11px -5px',\n 19: '0px 9px 12px -6px',\n 20: '0px 10px 13px -6px',\n 21: '0px 10px 13px -6px',\n 22: '0px 10px 14px -6px',\n 23: '0px 11px 14px -7px',\n 24: '0px 11px 15px -7px',\n) !default;\n\n$penumbra-map: (\n 0: '0px 0px 0px 0px',\n 1: '0px 1px 1px 0px',\n 2: '0px 2px 2px 0px',\n 3: '0px 3px 4px 0px',\n 4: '0px 4px 5px 0px',\n 5: '0px 5px 8px 0px',\n 6: '0px 6px 10px 0px',\n 7: '0px 7px 10px 1px',\n 8: '0px 8px 10px 1px',\n 9: '0px 9px 12px 1px',\n 10: '0px 10px 14px 1px',\n 11: '0px 11px 15px 1px',\n 12: '0px 12px 17px 2px',\n 13: '0px 13px 19px 2px',\n 14: '0px 14px 21px 2px',\n 15: '0px 15px 22px 2px',\n 16: '0px 16px 24px 2px',\n 17: '0px 17px 26px 2px',\n 18: '0px 18px 28px 2px',\n 19: '0px 19px 29px 2px',\n 20: '0px 20px 31px 3px',\n 21: '0px 21px 33px 3px',\n 22: '0px 22px 35px 3px',\n 23: '0px 23px 36px 3px',\n 24: '0px 24px 38px 3px',\n) !default;\n\n$ambient-map: (\n 0: '0px 0px 0px 0px',\n 1: '0px 1px 3px 0px',\n 2: '0px 1px 5px 0px',\n 3: '0px 1px 8px 0px',\n 4: '0px 1px 10px 0px',\n 5: '0px 1px 14px 0px',\n 6: '0px 1px 18px 0px',\n 7: '0px 2px 16px 1px',\n 8: '0px 3px 14px 2px',\n 9: '0px 3px 16px 2px',\n 10: '0px 4px 18px 3px',\n 11: '0px 4px 20px 3px',\n 12: '0px 5px 22px 4px',\n 13: '0px 5px 24px 4px',\n 14: '0px 5px 26px 4px',\n 15: '0px 6px 28px 5px',\n 16: '0px 6px 30px 5px',\n 17: '0px 6px 32px 5px',\n 18: '0px 7px 34px 6px',\n 19: '0px 7px 36px 6px',\n 20: '0px 8px 38px 7px',\n 21: '0px 8px 40px 7px',\n 22: '0px 8px 42px 7px',\n 23: '0px 9px 44px 8px',\n 24: '0px 9px 46px 8px',\n) !default;\n\n// The css property used for elevation. In most cases this should not be changed. It is exposed\n// as a variable for abstraction / easy use when needing to reference the property directly, for\n// example in a `will-change` rule.\n$property: box-shadow !default;\n\n// The default color for the elevation overlay.\n$overlay-color: #fff;\n\n// The css property used for elevation overlay transitions. In most cases this should not be changed. It is exposed\n// as a variable for abstraction / easy use when needing to reference the property directly, for\n// example in a `will-change` rule.\n$overlay-property: opacity !default;\n\n// The default duration value for elevation transitions.\n$transition-duration: 280ms !default;\n\n// The default easing value for elevation transitions.\n$transition-timing-function: animation-variables.$standard-curve-timing-function !default;\n\n///\n/// Sets the elevation transition value.\n///\n/// @param {String} $duration - The duration of the transition.\n/// @param {String} $easing - The easing function for the transition.\n/// @return {String}\n///\n@function transition-value(\n $duration: $transition-duration,\n $easing: $transition-timing-function\n) {\n @return #{$property} #{$duration} #{$easing};\n}\n\n///\n/// Sets the elevation overlay transition value.\n///\n/// @param {String} $duration - The duration of the transition.\n/// @param {String} $easing - The easing function for the transition.\n/// @return {String}\n///\n@function overlay-transition-value(\n $duration: $transition-duration,\n $easing: $transition-timing-function\n) {\n @return #{$overlay-property} #{$duration} #{$easing};\n}\n\n///\n/// Creates a box-shadow from the Material elevation system.\n/// @param {Number} $level - the level of the Material elevation system.\n/// @param {String} $color - the color of the shadow.\n/// @param {Number} $opacity-boost [0] - optional opacity boost for the shadow.\n/// @return {List} the complete box shadow.\n///\n@function _box-shadow($level, $color, $opacity-boost: 0) {\n $color: theme-color.prop-value($color);\n $umbra-z-value: map.get($umbra-map, $level);\n $penumbra-z-value: map.get($penumbra-map, $level);\n $ambient-z-value: map.get($ambient-map, $level);\n\n $umbra-color: rgba($color, $umbra-opacity + $opacity-boost);\n $penumbra-color: rgba($color, $penumbra-opacity + $opacity-boost);\n $ambient-color: rgba($color, $ambient-opacity + $opacity-boost);\n\n @return (\n #{'#{$umbra-z-value} #{$umbra-color}'},\n #{'#{$penumbra-z-value} #{$penumbra-color}'},\n #{$ambient-z-value} $ambient-color\n );\n}\n\n// Returns the correct box-shadow specified by $z-value.\n// The $z-value must be between 0 and 24.\n// If $color has an alpha channel, it will be ignored and overridden. To increase the opacity of the shadow, use\n// $opacity-boost.\n@function elevation-box-shadow(\n $z-value,\n $color: $baseline-color,\n $opacity-boost: 0\n) {\n @if meta.type-of($z-value) != number or not math.is-unitless($z-value) {\n @error \"$z-value must be a unitless number, but received '#{$z-value}'\";\n }\n\n @if $z-value < 0 or $z-value > 24 {\n @error \"$z-value must be between 0 and 24, but received '#{$z-value}'\";\n }\n\n @return _box-shadow($z-value, $color, $opacity-boost);\n}\n\n///\n/// Returns a shadow or null if params are invalid.\n/// @param {Number} $level - the level of the Material elevation system.\n/// @param {String} $color - the color of the shadow.\n/// @return {List|null} the complete box shadow or null.\n///\n@function _shadow($level, $color) {\n @if $level == null and $color == null {\n // Do not emit a warning if both are null, which means the user did not\n // provide tokens.\n @return null;\n }\n\n @if $level == null or $color == null {\n // If one of the tokens is null, emit a warning: the user may not realize\n // that both are required.\n @warn \"both $level and $color are required; received $level: '#{$level}', $color: '#{$color}'\";\n @return null;\n }\n\n @if $level < 0 or $level > 24 {\n @warn \"$level must be between 0 and 24; received '#{$level}'\";\n @return null;\n }\n\n @return _box-shadow($level, $color);\n}\n\n@function get-elevation($level) {\n @return (box-shadow: elevation-box-shadow($level));\n}\n\n///\n/// Sets the shadow of the element.\n///\n/// @param {String} $box-shadow - The shadow to apply to the element.\n///\n@mixin _box-shadow($shadow, $query: feature-targeting.all()) {\n $feat-color: feature-targeting.create-target($query, color);\n\n @include feature-targeting.targets($feat-color) {\n @include theme.property(box-shadow, $shadow);\n }\n}\n\n///\n/// Sets the shadow of the element.\n///\n/// @param {String} $box-shadow - The shadow to apply to the element.\n///\n@mixin shadow($box-shadow, $query: feature-targeting.all()) {\n $feat-color: feature-targeting.create-target($query, color);\n\n @include feature-targeting.targets($feat-color) {\n @if custom-properties.is-custom-prop($box-shadow) {\n // TODO(b/185188458): Use theme.property() once resolved.\n $fallback: custom-properties.get-fallback($box-shadow);\n\n // var(--<box-shadow-prop>, var(--m-elevation-box-shadow-for-gss))\n $gss-custom-prop: custom-properties.create(\n custom-properties.get-varname($box-shadow),\n custom-properties.create(elevation-box-shadow-for-gss)\n );\n\n $value: custom-properties.create-var($gss-custom-prop);\n @if $value == null {\n // Custom properties are disabled, since $gss-custom-prop\n // does not have a fallback. Avoid emitting two non-custom\n // prop declarations by setting $fallback to null.\n $value: $fallback;\n $fallback: null;\n }\n\n @include custom-properties.declaration(\n custom-properties.create(elevation-box-shadow-for-gss, $fallback)\n );\n @include css.declaration(box-shadow, $value, $fallback-value: $fallback);\n } @else {\n /* @alternate */\n box-shadow: $box-shadow;\n }\n }\n}\n\n///\n/// Sets the elevation overlay surface required positioning.\n///\n@mixin overlay-surface-position($query: feature-targeting.all()) {\n $feat-structure: feature-targeting.create-target($query, structure);\n\n @include feature-targeting.targets($feat-structure) {\n /* @alternate */\n position: relative;\n }\n}\n\n///\n/// Sets the dimensions of the elevation overlay, including positioning and sizing.\n///\n/// @param {Number} $width - The width of the elevation overlay\n/// @param {Number} [$height] - The height of the elevation overlay\n/// @param {Boolean} [$has-content-sizing] - Set to false if the container has no content sizing\n///\n@mixin overlay-dimensions(\n $width,\n $height: $width,\n $has-content-sizing: true,\n $query: feature-targeting.all()\n) {\n $feat-structure: feature-targeting.create-target($query, structure);\n\n .mdc-elevation-overlay {\n @include feature-targeting.targets($feat-structure) {\n @include theme.property(width, $width);\n @include theme.property(height, $height);\n\n @if $has-content-sizing {\n top: 0;\n @include rtl.ignore-next-line();\n left: 0;\n } @else {\n top: 50%;\n @include rtl.ignore-next-line();\n left: 50%;\n transform: translate(-50%, -50%);\n }\n }\n }\n}\n\n///\n/// Sets the elevation overlay fill color.\n/// Expected to be called directly on the elevation overlay element.\n///\n/// @param {Color} $color - The color of the elevation overlay.\n///\n@mixin overlay-fill-color($color, $query: feature-targeting.all()) {\n $feat-color: feature-targeting.create-target($query, color);\n\n @include feature-targeting.targets($feat-color) {\n @include theme.property(background-color, $color);\n }\n}\n\n///\n/// Applies the given color to the container of the overlay.\n/// @param {color} $color - the color of the overlay container\n///\n@mixin overlay-container-color($color, $query: feature-targeting.all()) {\n .mdc-elevation-overlay {\n @include overlay-fill-color($color, $query: $query);\n }\n}\n\n///\n/// Sets the elevation overlay opacity.\n/// Expected to be called from a parent element.\n///\n/// @param {Number} $opacity - The opacity of the elevation overlay.\n///\n@mixin overlay-opacity($opacity, $query: feature-targeting.all()) {\n $feat-color: feature-targeting.create-target($query, color);\n\n .mdc-elevation-overlay {\n @include feature-targeting.targets($feat-color) {\n @include theme.property(opacity, $opacity);\n }\n }\n}\n\n// Applies the correct CSS rules to an element to give it the elevation specified by $z-value.\n// The $z-value must be between 0 and 24.\n// If $color has an alpha channel, it will be ignored and overridden. To increase the opacity of the shadow, use\n// $opacity-boost.\n@mixin elevation(\n $z-value,\n $color: $baseline-color,\n $opacity-boost: 0,\n $query: feature-targeting.all()\n) {\n $box-shadow: elevation-box-shadow(\n $z-value,\n $color: $color,\n $opacity-boost: $opacity-boost\n );\n\n @include shadow($box-shadow, $query: $query);\n}\n\n///\n/// Represents the configurable values of the elevation theme.\n///\n$_theme-values: (\n shadow: null,\n overlay-opacity: null,\n overlay-color: null,\n);\n\n///\n/// Applies the shadow theme with the given $resolver function.\n/// @param {Function} $resolver - a function that returns a valid theme config.\n/// @see resolver for an example and expected arguments and return value.\n/// Accepts the following optional keyword args:\n/// @param {Number} $elevation - the level in the elevation system.\n/// @param {String} $shadow-color - the color used for the shadow.\n///\n@mixin with-resolver($resolver, $query: feature-targeting.all(), $args...) {\n @if $resolver {\n @include _theme(meta.call($resolver, $args...), $query: $query);\n }\n}\n\n///\n/// Applies the given theme with validation.\n/// @param {Map} $theme - @see $_theme-values for accepted theme properties.\n///\n@mixin theme($theme: (), $query: feature-targeting.all()) {\n @include theme.validate-theme($_theme-values, $theme);\n @include _theme($theme, $query: $query);\n}\n\n///\n/// Applies the given theme.\n/// @param {Map} $theme - @see $_theme-values for accepted theme properties.\n///\n@mixin _theme($theme: (), $query: feature-targeting.all()) {\n @include shadow(map.get($theme, shadow), $query: $query);\n @include overlay-opacity(map.get($theme, overlay-opacity), $query: $query);\n @include overlay-container-color(\n map.get($theme, overlay-color),\n $query: $query\n );\n}\n\n///\n/// Transforms the following optional parameters into a theme config.\n/// @param {Number} $elevation - the level of the elevation system in Material.\n/// @param {String} $shadow-color - the color to be used by the shadow.\n/// @return {Map} @see $_theme-values for accepted theme properties.\n///\n@function resolver($args...) {\n $opts: meta.keywords($args);\n $elevation: map.get($opts, elevation);\n $shadow-color: map.get($opts, shadow-color);\n @if custom-properties.is-custom-prop($elevation) {\n @return _resolve-custom-props($elevation, $shadow-color);\n }\n\n @return (shadow: _shadow($elevation, $shadow-color));\n}\n\n@function _resolve-custom-props($elevation, $shadow-color) {\n $fallback-dp: custom-properties.get-fallback($elevation);\n $fallback-shadow-color: custom-properties.get-fallback($shadow-color);\n $shadow: custom-properties.set-fallback(\n $elevation,\n _shadow($fallback-dp, $fallback-shadow-color)\n );\n @return (shadow: $shadow);\n}\n","@use 'sass:color';\n@use 'sass:map';\n@use 'sass:math';\n@use 'sass:meta';\n@use '../core/style/private';\n@use '../core/theming/theming';\n@use '../core/typography/typography';\n@use '../core/typography/typography-utils';\n@use '../button/icon-button-theme';\n\n$selected-today-box-shadow-width: 1px;\n$selected-fade-amount: 0.6;\n$range-fade-amount: 0.2;\n$today-fade-amount: 0.2;\n$calendar-body-font-size: 13px !default;\n$calendar-weekday-table-font-size: 11px !default;\n\n@mixin _color($palette) {\n @include date-range-colors(\n theming.get-color-from-palette($palette, default, $range-fade-amount));\n\n .mat-calendar-body-selected {\n background-color: theming.get-color-from-palette($palette);\n color: theming.get-color-from-palette($palette, default-contrast);\n }\n\n .mat-calendar-body-disabled > .mat-calendar-body-selected {\n $background: theming.get-color-from-palette($palette);\n\n @if (meta.type-of($background) == color) {\n background-color: color.adjust($background, $alpha: -$selected-fade-amount);\n }\n @else {\n // If we couldn't resolve to background to a color (e.g. it's a CSS variable),\n // fall back to fading the content out via `opacity`.\n opacity: $today-fade-amount;\n }\n }\n\n .mat-calendar-body-today.mat-calendar-body-selected {\n box-shadow: inset 0 0 0 $selected-today-box-shadow-width\n theming.get-color-from-palette($palette, default-contrast);\n }\n\n .cdk-keyboard-focused .mat-calendar-body-active,\n .cdk-program-focused .mat-calendar-body-active {\n @include _highlighted-cell($palette);\n }\n\n @media (hover: hover) {\n .mat-calendar-body-cell:not(.mat-calendar-body-disabled):hover {\n @include _highlighted-cell($palette);\n }\n }\n}\n\n// Utility mixin to target cells that aren't selected. Used to make selector easier to follow.\n@mixin _unselected-cell {\n &:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical) {\n @content;\n }\n}\n\n// Styles for a highlighted calendar cell (e.g. hovered or focused).\n@mixin _highlighted-cell($palette) {\n & > .mat-calendar-body-cell-content {\n @include _unselected-cell {\n background-color: theming.get-color-from-palette($palette, 0.3);\n }\n }\n}\n\n@mixin color($config-or-theme) {\n $config: theming.get-color-config($config-or-theme);\n $foreground: map.get($config, foreground);\n $background: map.get($config, background);\n $disabled-color: theming.get-color-from-palette($foreground, disabled-text);\n\n .mat-calendar-arrow {\n fill: theming.get-color-from-palette($foreground, icon);\n }\n\n // The prev/next buttons need a bit more specificity to\n // avoid being overwritten by the .mat-icon-button.\n .mat-datepicker-toggle,\n .mat-datepicker-content .mat-calendar-next-button,\n .mat-datepicker-content .mat-calendar-previous-button {\n color: theming.get-color-from-palette($foreground, icon);\n }\n\n .mat-calendar-table-header-divider::after {\n background: theming.get-color-from-palette($foreground, divider);\n }\n\n .mat-calendar-table-header,\n .mat-calendar-body-label {\n color: theming.get-color-from-palette($foreground, secondary-text);\n }\n\n .mat-calendar-body-cell-content,\n .mat-date-range-input-separator {\n color: theming.get-color-from-palette($foreground, text);\n border-color: transparent;\n }\n\n .mat-calendar-body-disabled > .mat-calendar-body-cell-content {\n @include _unselected-cell {\n color: $disabled-color;\n }\n }\n\n .mat-form-field-disabled .mat-date-range-input-separator {\n color: $disabled-color;\n }\n\n .mat-calendar-body-in-preview {\n $divider-color: theming.get-color-from-palette($foreground, divider);\n\n @if meta.type-of($divider-color) == color {\n // The divider color is set under the assumption that it'll be used\n // for a solid border, but because we're using a dashed border for the\n // preview range, we need to bump its opacity to ensure that it's visible.\n color: rgba($divider-color, math.min(opacity($divider-color) * 2, 1));\n }\n @else {\n color: $divider-color;\n }\n }\n\n .mat-calendar-body-today {\n @include _unselected-cell {\n // Note: though it's not text, the border is a hint about the fact that this is today's date,\n // so we use the hint color.\n border-color: theming.get-color-from-palette($foreground, hint-text);\n }\n }\n\n .mat-calendar-body-disabled > .mat-calendar-body-today {\n @include _unselected-cell {\n $color: theming.get-color-from-palette($foreground, hint-text);\n\n @if (meta.type-of($color) == color) {\n border-color: color.adjust($color, $alpha: -$today-fade-amount);\n }\n @else {\n // If the color didn't resolve to a color value, but something like a CSS variable, we can't\n // fade it out so we fall back to reducing the element opacity. Note that we don't use the\n // $mat-datepicker-today-fade-amount, because hint text usually has some opacity applied\n // to it already and we don't want them to stack on top of each other.\n opacity: 0.5;\n }\n }\n }\n\n @include _color(map.get($config, primary));\n\n .mat-datepicker-content {\n @include private.private-theme-elevation(4, $config);\n background-color: theming.get-color-from-palette($background, card);\n color: theming.get-color-from-palette($foreground, text);\n\n &.mat-accent {\n @include _color(map.get($config, accent));\n }\n\n &.mat-warn {\n @include _color(map.get($config, warn));\n }\n }\n\n .mat-datepicker-content-touch {\n @include private.private-theme-elevation(24, $config);\n }\n\n .mat-datepicker-toggle-active {\n color: theming.get-color-from-palette(map.get($config, primary), text);\n\n &.mat-accent {\n color: theming.get-color-from-palette(map.get($config, accent), text);\n }\n\n &.mat-warn {\n color: theming.get-color-from-palette(map.get($config, warn), text);\n }\n }\n\n .mat-date-range-input-inner[disabled] {\n color: theming.get-color-from-palette($foreground, disabled-text);\n }\n}\n\n@mixin typography($config-or-theme) {\n $config: typography.private-typography-to-2014-config(\n theming.get-typography-config($config-or-theme));\n .mat-calendar {\n font-family: typography-utils.font-family($config);\n }\n\n .mat-calendar-body {\n font-size: $calendar-body-font-size;\n }\n\n .mat-calendar-body-label,\n .mat-calendar-period-button {\n font: {\n size: typography-utils.font-size($config, button);\n weight: typography-utils.font-weight($config, button);\n }\n }\n\n .mat-calendar-table-header th {\n font: {\n size: $calendar-weekday-table-font-size;\n weight: typography-utils.font-weight($config, body-1);\n }\n }\n}\n\n@mixin date-range-colors(\n $range-color,\n $comparison-color: rgba(#f9ab00, $range-fade-amount),\n $overlap-color: #a8dab5,\n $overlap-selected-color: color.adjust($overlap-color, $lightness: -30%)) {\n\n .mat-calendar-body-in-range::before {\n background: $range-color;\n }\n\n .mat-calendar-body-comparison-identical,\n .mat-calendar-body-in-comparison-range::before {\n background: $comparison-color;\n }\n\n .mat-calendar-body-comparison-bridge-start::before,\n [dir='rtl'] .mat-calendar-body-comparison-bridge-end::before {\n background: linear-gradient(to right, $range-color 50%, $comparison-color 50%);\n }\n\n .mat-calendar-body-comparison-bridge-end::before,\n [dir='rtl'] .mat-calendar-body-comparison-bridge-start::before {\n background: linear-gradient(to left, $range-color 50%, $comparison-color 50%);\n }\n\n .mat-calendar-body-in-range > .mat-calendar-body-comparison-identical,\n .mat-calendar-body-in-comparison-range.mat-calendar-body-in-range::after {\n background: $overlap-color;\n }\n\n .mat-calendar-body-comparison-identical.mat-calendar-body-selected,\n .mat-calendar-body-in-comparison-range > .mat-calendar-body-selected {\n background: $overlap-selected-color;\n }\n}\n\n@mixin _density($config-or-theme) {\n // Regardless of the user-passed density, we want the calendar previous/next buttons to remain at\n // density -2\n .mat-calendar-controls {\n @include icon-button-theme.density(-2);\n }\n}\n\n@mixin theme($theme-or-color-config) {\n $theme: theming.private-legacy-get-theme($theme-or-color-config);\n @include theming.private-check-duplicate-theme-styles($theme, 'mat-datepicker') {\n $color: theming.get-color-config($theme);\n $density: theming.get-density-config($theme);\n $typography: theming.get-typography-config($theme);\n\n @if $color != null {\n @include color($color);\n }\n @if $density != null {\n @include _density($density);\n }\n @if $typography != null {\n @include typography($typography);\n }\n }\n}\n","//\n// Copyright 2018 Google Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n//\n\n// stylelint-disable selector-class-pattern --\n// Selector '.mdc-*' should only be used in this project.\n\n@use '@material/feature-targeting/feature-targeting';\n@use '@material/theme/theme';\n@use '@material/theme/custom-properties';\n@use '@material/shape/mixins' as shape-mixins;\n@use '@material/animation/variables' as animation-variables;\n@use '@material/elevation/mixins' as elevation-mixins;\n@use '@material/rtl/rtl';\n@use './variables';\n@use './menu-surface-custom-properties';\n\n//\n// Public\n//\n\n@mixin core-styles($query: feature-targeting.all()) {\n $feat-structure: feature-targeting.create-target($query, structure);\n\n // postcss-bem-linter: define menu-surface\n .mdc-menu-surface {\n @include base_($query);\n @include elevation-mixins.elevation($z-value: 8, $query: $query);\n @include fill-color(surface, $query);\n @include ink-color(on-surface, $query);\n @include shape-radius(variables.$shape-radius, false, $query);\n\n @include feature-targeting.targets($feat-structure) {\n @include rtl.reflexive-property(transform-origin, top left, top right);\n }\n }\n\n .mdc-menu-surface--anchor {\n @include feature-targeting.targets($feat-structure) {\n position: relative;\n overflow: visible;\n }\n }\n\n .mdc-menu-surface--fixed {\n @include feature-targeting.targets($feat-structure) {\n position: fixed;\n }\n }\n\n .mdc-menu-surface--fullwidth {\n @include feature-targeting.targets($feat-structure) {\n width: 100%;\n }\n }\n // postcss-bem-linter: end\n}\n\n@mixin ink-color($color, $query: feature-targeting.all()) {\n $feat-color: feature-targeting.create-target($query, color);\n\n @include feature-targeting.targets($feat-color) {\n @include theme.property(color, $color);\n }\n}\n\n@mixin fill-color($color, $query: feature-targeting.all()) {\n $feat-color: feature-targeting.create-target($query, color);\n\n @include feature-targeting.targets($feat-color) {\n @include theme.property(background-color, $color);\n }\n}\n\n@mixin shape-radius(\n $radius,\n $rtl-reflexive: false,\n $query: feature-targeting.all()\n) {\n @include shape-mixins.radius($radius, $rtl-reflexive, $query: $query);\n}\n\n// Used by filled variants of GM components to conditionally flatten the top\n// corners of the menu.\n@mixin flatten-top-when-opened-below($query: feature-targeting.all()) {\n .mdc-menu-surface--is-open-below {\n $feat-structure: feature-targeting.create-target($query, structure);\n\n @include feature-targeting.targets($feat-structure) {\n border-top-left-radius: 0px;\n border-top-right-radius: 0px;\n }\n }\n}\n\n//\n// Private\n//\n\n@mixin base_($query: feature-targeting.all()) {\n $feat-structure: feature-targeting.create-target($query, structure);\n $feat-animation: feature-targeting.create-target($query, animation);\n\n @include feature-targeting.targets($feat-structure) {\n display: none;\n position: absolute;\n box-sizing: border-box;\n\n $max-width: custom-properties.create(\n menu-surface-custom-properties.$max-width,\n calc(100vw - #{variables.$min-distance-from-edge})\n );\n @include theme.property(max-width, $max-width);\n $max-height: custom-properties.create(\n menu-surface-custom-properties.$max-height,\n calc(100vh - #{variables.$min-distance-from-edge})\n );\n @include theme.property(max-height, $max-height);\n margin: 0;\n padding: 0;\n transform: scale(1);\n transform-origin: top left;\n opacity: 0;\n overflow: auto;\n will-change: transform, opacity;\n z-index: variables.$z-index;\n }\n\n @include feature-targeting.targets($feat-animation) {\n transition: opacity variables.$fade-in-duration linear,\n transform variables.$scale-duration\n animation-variables.$deceleration-curve-timing-function,\n height 250ms animation-variables.$deceleration-curve-timing-function;\n }\n\n &:focus {\n @include feature-targeting.targets($feat-structure) {\n outline: none;\n }\n }\n\n &--animating-open {\n @include feature-targeting.targets($feat-structure) {\n display: inline-block;\n transform: scale(0.8);\n opacity: 0;\n }\n }\n\n // Render this after `--animating-open` to override `opacity` & `transform`\n // CSS properties.\n &--open {\n @include feature-targeting.targets($feat-structure) {\n display: inline-block;\n transform: scale(1);\n opacity: 1;\n }\n }\n\n &--animating-closed {\n @include feature-targeting.targets($feat-structure) {\n display: inline-block;\n opacity: 0;\n }\n\n @include feature-targeting.targets($feat-animation) {\n transition: opacity variables.$fade-out-duration linear;\n }\n }\n}\n","// Copyright 2020 Google Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\n@use '@material/feature-targeting/feature-targeting';\n///\n/// Emits necessary layout styles to set a transparent border around an element\n/// without interfering with the rest of its component layout. The border is\n/// only visible in high-contrast mode. The target element should be a child of\n/// a relatively positioned top-level element (i.e. a ::before pseudo-element).\n///\n/// @param {number} $border-width - The width of the transparent border.\n/// @param {string} $border-style - The style of the transparent border.\n///\n@mixin transparent-border(\n $border-width: 1px,\n $border-style: solid,\n $query: feature-targeting.all()\n) {\n $feat-structure: feature-targeting.create-target($query, structure);\n\n @include feature-targeting.targets($feat-structure) {\n position: absolute;\n box-sizing: border-box;\n width: 100%;\n height: 100%;\n top: 0;\n left: 0;\n border: $border-width $border-style transparent;\n border-radius: inherit;\n content: '';\n pointer-events: none;\n }\n\n // Used to satisfy Firefox v94 which does not render transparent borders in HCM (b/206440838).\n @include forced-colors-mode($exclude-ie11: true) {\n @include feature-targeting.targets($feat-structure) {\n border-color: CanvasText;\n }\n }\n}\n\n///\n/// Visually hides text content for accessibility. This text should only be\n/// visible to screen reader users.\n/// See https://a11yproject.com/posts/how-to-hide-content/\n///\n@mixin visually-hidden($query: feature-targeting.all()) {\n $feat-structure: feature-targeting.create-target($query, structure);\n\n @include feature-targeting.targets($feat-structure) {\n clip: rect(1px, 1px, 1px, 1px);\n height: 1px;\n overflow: hidden;\n position: absolute;\n white-space: nowrap; /* added line */\n width: 1px;\n }\n}\n\n/// Selects for IE11 support.\n///\n/// @content styles to emit for IE11 support\n@mixin ie11-support {\n @media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n @content;\n }\n}\n\n/// Selects for `forced-colors` high contrast mode.\n///\n/// While in `forced-colors` mode, only system colors should be used.\n///\n/// @link https://developer.mozilla.org/en-US/docs/Web/CSS/color_value#system_colors\n/// @link https://developer.mozilla.org/en-US/docs/Web/CSS/@media/forced-colors\n/// @content styles to emit in `forced-colors` mode\n@mixin forced-colors-mode($exclude-ie11: false) {\n @if $exclude-ie11 {\n @media screen and (forced-colors: active) {\n @content;\n }\n } @else {\n @media screen and (forced-colors: active), (-ms-high-contrast: active) {\n @content;\n }\n }\n}\n",".cdk-overlay-pane {\n background-color: white;\n}\n\n// Disable global scrollbars (used in full screen eui-dialog for example)\n.cdk-global-scrollblock {\n position: fixed;\n overflow-y: scroll; // Material default\n width: 100%;\n @include eui-scrollbars;\n}\n@include media($eui-bkp-mobile) {\n .cdk-global-scrollblock {\n height: 100%;\n overflow: auto;\n position: fixed;\n width: 100%;\n @include eui-scrollbars;\n }\n}\n","@mixin eui-scrollbars( $size: 8px, $foreground-color: v(eui-base-color-grey-20), $background-color: v(eui-base-color-grey-10), $border-radius: 5rem, $state: active ) {\n &::-webkit-scrollbar {\n display: inherit;\n height: $size; // horizontal scroll\n width: $size; // vertical scroll\n // z-index: v(eui-base-z-index-highlighted); // should be when in edition mode\n @if ($state == active) {\n background-color: $background-color;\n }\n @else {\n background-color: transparent;\n }\n }\n\n // This is the scrolling bar\n &::-webkit-scrollbar-thumb {\n @if ($state == active) {\n background-color: $foreground-color;\n border-radius: $border-radius;\n\n &:hover {\n background-color: v(eui-base-color-grey-25);\n }\n }\n @else {\n background-color: transparent;\n }\n }\n\n // This is the scroll container\n &::-webkit-scrollbar-track {\n @if ($state == active) {\n background-color: $background-color;\n border-radius: 0;\n }\n @else {\n background-color: transparent;\n }\n }\n}\n@mixin eui-scrollbars-inactive($size: 8px) {\n &::-webkit-scrollbar {\n background-color: transparent;\n display: inherit;\n height: $size; // horizontal scroll\n width: $size; // vertical scroll\n }\n\n &::-webkit-scrollbar-thumb {\n background-color: transparent;\n }\n\n &::-webkit-scrollbar-track {\n background-color: transparent;\n }\n}\n","$default-feature: \"min-width\";\n@mixin media($query: $feature $value $columns) {\n @if length($query) == 1 {\n @media screen and ($default-feature: nth($query, 1)) {\n @content;\n }\n }\n @else {\n $loop-to: length($query);\n $media-query: \"screen and \";\n @if is-not(is-even(length($query))) {\n $loop-to: $loop-to - 1;\n }\n $i: 1;\n @while $i <=$loop-to {\n $media-query: $media-query + \"(\" + nth($query, $i) + \": \" + nth($query, $i + 1) + \") \";\n @if ($i + 1) != $loop-to {\n $media-query: $media-query + \"and \";\n }\n $i: $i+2;\n }\n @media #{$media-query} {\n @content;\n }\n }\n}\n","// TODO v15 remove / replace in showczase\n\n.flex-container {\n align-items: center;\n display: flex;\n width: 100%;\n}\n\n// v v v IE11 FIXES -> TO BE DEPRECATED v v v\n// Flexbox / Bootstrap obvious overrides for IE/Vendors\n.d-flex {\n display: -webkit-box !important;\n display: -webkit-flex !important;\n display: -ms-flexbox !important;\n display: flex !important;\n}\n\n// Like .col definition with IE fix\n.ux-col {\n // A preferred size of 0 must have a unit to avoid being interpreted as a flexibility.\n // Defaults to 0% when omitted.\n // Source: MDN & MSDN\n flex: 1 0 auto;\n}\n","// TODO v15 transfer to styles base ?\n\n// HEADINGS\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\n.h1,\n.h2,\n.h3,\n.h4,\n.h5,\n.h6,\n.h7,\n.h8,\n.h9 {\n @include eui-font-family();\n color: inherit;\n // font-family: v(eui-base-font-family);\n // font-weight: normal;\n}\n\nh1,\n.h1 {\n @include eui-font(4xl, ui);\n line-height: v(eui-base-line-height);\n}\n\nh2,\n.h2 {\n @include eui-font(3xl, ui);\n line-height: v(eui-base-line-height);\n}\n\nh3,\n.h3 {\n @include eui-font(2xl, ui);\n line-height: v(eui-base-line-height);\n}\n\nh4,\n.h4 {\n @include eui-font(xl, ui);\n line-height: v(eui-base-line-height);\n}\n\nh5,\n.h5 {\n @include eui-font(l, ui);\n line-height: v(eui-base-line-height);\n}\n\nh6,\n.h6 {\n @include eui-font(m, ui);\n line-height: v(eui-base-line-height);\n}\n\n.h7,\n.small {\n @include eui-font(s, ui);\n line-height: v(eui-base-line-height);\n}\n\n.h8,\n.smaller {\n @include eui-font(xs, ui);\n line-height: v(eui-base-line-height);\n}\n\n.h9,\n.smallest,\n.tiny {\n @include eui-font(2xs, ui);\n line-height: v(eui-base-line-height);\n}\n\n\na,\na:not([href]):not([tabindex]) {\n color: v(eui-base-color-link);\n cursor: pointer;\n\n &:hover,\n &:focus {\n color: v(eui-base-color-link);\n text-decoration: underline;\n }\n}\n\na {\n background-color: transparent;\n text-decoration: none;\n}\n\na:focus {\n text-decoration: underline;\n}\n\nabbr[title] {\n text-decoration: none; // TODO: underline dotted is the default and recommended usage\n}\n\n.label, abbr, blockquote, del, label, mark, p {\n font-size: v(eui-base-font-size);\n}\n\nlabel {\n margin-bottom: v(eui-base-spacing-xs);\n}\n","/** Common weight name mapping\n @See the OpenType specification:\n https://docs.microsoft.com/en-us/typography/opentype/spec/os2#usweightclass\n The numerical values 100 to 900 roughly correspond to the following common weight names:\n 100 Thin (Hairline)\n 200\t Extra Light (Ultra Light)\n 300\t Light\n 400\t Normal\n 500\t Medium\n 600\t Semi Bold (Demi Bold)\n 700\t Bold\n 800\t Extra Bold (Ultra Bold)\n 900\t Black (Heavy)\n**/\n@mixin eui-font-family() {\n font-family: v(eui-base-font-family);\n font-size: v(eui-base-font-size);\n font-style: normal;\n font-weight: 400;\n}\n@mixin eui-font-family-light() {\n font-style: normal;\n font-weight: 300;\n}\n@mixin eui-font-family-normal() {\n font-style: normal;\n font-weight: 400;\n}\n@mixin eui-font-family-italic() {\n font-style: italic;\n font-weight: 400;\n}\n@mixin eui-font-family-bold() {\n font-style: normal;\n font-weight: 700;\n}\n@mixin eui-font-family-bold-italic() {\n font-style: italic;\n font-weight: 700;\n}\n\n@mixin eui-font-family-monospace() {\n font-family: v(eui-base-font-family-monospace);\n font-style: normal;\n font-weight: 400;\n}\n","@mixin eui-font($size: m, $family: ui) {\n $selected-family: map-get($eui-base-tokens-fonts, $family);\n $selected-font-definition: map-get($selected-family, $size);\n\n font: $selected-font-definition;\n}\n","// eUI 13+ only\n.eui-input-maxlength-wrapper {\n position: relative;\n width: 100%;\n\n .eui-input-maxlength {\n @include eui-font(xs, ui);\n background-color: v(eui-base-color-grey-10);\n border: 1px solid v(eui-base-color-grey-50);\n border-radius: v(eui-base-border-radius);\n color: v(eui-base-color-black);\n padding: 0 v(eui-base-spacing-2xs);\n position: absolute;\n right: calc(-1 * #{v(eui-base-spacing-xs)});\n top: calc(-1 * #{v(eui-base-spacing-xs)});\n z-index: v(eui-base-z-index-input-maxlength);\n\n &--invalid {\n background-color: v(eui-base-color-danger-100);\n border-color: v(eui-base-color-danger-100);\n color: v(eui-base-color-white);\n }\n }\n}\n","html {\n // Exposed CSS vars\n --eui-html-font-size: var(--eui-base-font-size);\n --eui-html-line-height: var(--eui-base-line-height);\n\n display: block;\n height: 100%;\n font-size: v(eui-html-font-size);\n line-height: v(eui-html-line-height);\n}\n","body {\n // Exposed CSS vars\n --eui-body-bg-color: var(--eui-app-body-bg-color);\n --eui-body-color: var(--eui-base-color);\n --eui-body-font-family: var(--eui-base-font-family);\n --eui-body-font-size: var(--eui-base-font-size);\n --eui-body-line-height: var(--eui-base-line-height);\n\n background-color: v(eui-body-bg-color);\n color: v(eui-body-color);\n font-family: v(eui-body-font-family);\n font-feature-settings: 'liga';\n font-size: v(eui-body-font-size);\n -moz-font-smoothing: antialiased;\n -webkit-font-smoothing: antialiased;\n font-style: normal;\n font-weight: normal;\n height: 100%;\n line-height: v(eui-body-line-height);\n margin: 0;\n text-align: left;\n text-rendering: optimizeLegibility;\n}\n","// Make viewport responsive\n//\n// @viewport is needed because IE 10+ doesn't honor <meta name=\"viewport\"> in\n// some cases. See https://timkadlec.com/2012/10/ie10-snap-mode-and-responsive-design/.\n// Eventually @viewport will replace <meta name=\"viewport\">.\n//\n// However, `device-width` is broken on IE 10 on Windows (Phone) 8,\n// (see https://timkadlec.com/2013/01/windows-phone-8-and-device-width/ and https://github.com/twbs/bootstrap/issues/10497)\n// and the fix for that involves a snippet of JavaScript to sniff the user agent\n// and apply some conditional CSS.\n//\n// See https://getbootstrap.com/getting-started/#support-ie10-width for the relevant hack.\n//\n// Wrap `@viewport` with `@at-root` for when folks do a nested import (e.g.,\n// `.class-name { @import \"bootstrap\"; }`).\n@at-root {\n @-ms-viewport {\n width: device-width;\n }\n}\n\n/* ==========================================================================\n #BOX-SIZING\n ========================================================================== */\n\n/**\n * More sensible default box-sizing:\n * css-tricks.com/inheriting-box-sizing-probably-slightly-better-best-practice\n */\n\nhtml {\n box-sizing: border-box;\n}\n\n* {\n &,\n &::before,\n &::after {\n box-sizing: inherit;\n }\n}\n\n// Avoid 300ms click delay on touch devices that support the `touch-action` CSS property.\n//\n// In particular, unlike most other browsers, IE11+Edge on Windows 10 on touch devices and IE Mobile 10-11\n// DON'T remove the click delay when `<meta name=\"viewport\" content=\"width=device-width\">` is present.\n// However, they DO support removing the click delay via `touch-action: manipulation`.\n// See:\n// * https://v4-alpha.getbootstrap.com/content/reboot/#click-delay-optimization-for-touch\n// * http://caniuse.com/#feat=css-touch-action\n// * https://patrickhlauke.github.io/touch/tests/results/#suppressing-300ms-delay\n\na,\narea,\nbutton,\n[role=\"button\"],\ninput,\nlabel,\nselect,\nsummary,\ntextarea {\n touch-action: manipulation;\n}\n\n// Suppress the focus outline on elements that cannot be accessed via keyboard.\n// This prevents an unwanted focus outline from appearing around elements that\n// might still respond to pointer events.\n//\n// Credit: https://github.com/suitcss/base\n[tabindex=\"-1\"]:focus {\n outline: none !important;\n}\n\n// Always hide an element with the `hidden` HTML attribute (from PureCSS).\n[hidden] {\n display: none !important;\n}\n\np,\nlabel,\n.label,\nblockquote,\nabbr,\nmark,\ndel {\n font-size: v(eui-base-font-size);\n}\n\n.label,\nlabel {\n align-items: center;\n display: inline-flex; // Do NOT change!\n font-style: normal;\n font-weight: normal;\n padding-right: v(eui-base-spacing-m); // For inline display\n position: relative; // Mandatory! Do NOT change!\n}\n\nem {\n //font-family: v(eui-font-family-italic); // do NOT use mixin here!\n font-style: italic;\n}\n\noptgroup,\nstrong,\nb {\n font-weight: bold;\n\n & i,\n & em {\n font-style: italic;\n }\n}\n\ncode,\nkbd,\npre,\nsamp {\n font-size: v(eui-base-font-size);\n @include eui-font-family-monospace;\n}\n\ncode {\n color: #cc367b; // WCAG2 AA contrast ratio compliant: 4.59\n font-size: 95%;\n word-wrap: break-word;\n}\n\nsmall {\n font-size: 80%;\n}\n\nkbd {\n background-color: v(eui-base-color-grey-75); // WCAG2 AA compliant\n border-radius: v(eui-base-border-radius);\n color: v(eui-base-color-white);\n font-size: v(eui-base-font-size-s);\n padding: 1px v(eui-base-spacing-2xs);\n}\n\npre {\n color: v(eui-base-color);\n display: block;\n font-size: 87.5%;\n margin-bottom: v(eui-base-spacing-m);\n margin-top: 0;\n overflow: auto;\n}\n\nblockquote {\n border-left: v(eui-base-spacing-xs) solid v(eui-base-color-grey-20);\n padding: v(eui-base-spacing-xs) v(eui-base-spacing-m);\n}\n\nmark,\n.mark {\n background-color: v(eui-base-color-accent-25);\n padding: v(eui-base-spacing-2xs);\n}\n","// stylelint-disable no-descending-specificity\ntable.eui-table-default {\n background-color: transparent;\n border-collapse: collapse;\n border-spacing: 0;\n color: v(eui-base-color-font);\n max-width: 100%;\n overflow: auto;\n position: relative;\n\n // Overall settings (default)\n thead > tr > th,\n tbody > tr > td,\n tfoot > tr > td {\n vertical-align: top;\n }\n\n tr > th,\n tr > td {\n padding: v(eui-base-spacing-s);\n }\n\n thead {\n th {\n border-bottom: 1px solid v(eui-base-color-grey-10);\n color: v(eui-base-color-grey-75);\n font-size: v(eui-base-font-size);\n padding: v(eui-base-spacing-m) v(eui-base-spacing-s);\n vertical-align: middle;\n @include eui-font-family-bold;\n }\n\n tr {\n background: v(eui-base-color-grey-5);\n border-top: 0;\n }\n }\n\n // Striped & hovered tables by default (UX)\n tbody {\n -webkit-overflow-scrolling: touch; // optional - enable iOS momentum scrolling\n\n tr:nth-of-type(odd) {\n background-color: v(eui-base-color-white);\n\n &:hover {\n background-color: v(eui-base-color-grey-5);\n }\n }\n\n tr:nth-of-type(even) {\n background-color: v(eui-base-color-grey-5);\n\n &:hover {\n background-color: v(eui-base-color-white);\n }\n }\n }\n\n tr {\n border-bottom: 1px solid v(eui-base-color-grey-20);\n display: table-row;\n }\n\n // Compact table\n &--compact {\n thead {\n th {\n padding: v(eui-base-spacing-xs) v(eui-base-spacing-s);\n }\n }\n\n tr > td {\n padding: v(eui-base-spacing-2xs) v(eui-base-spacing-s);\n }\n }\n\n // Responsive table\n &--responsive {\n display: block;\n width: 100%;\n\n &--bordered {\n border: 0; // Prevent double border on horizontal scroll due to use of `display: block;`\n }\n }\n\n // Bordered table\n &--bordered {\n th,\n td {\n border: 1px solid v(eui-base-color-grey-20);\n }\n }\n\n // Shadowed table\n &--shadowed {\n box-shadow: v(eui-base-base-shadow-1);\n }\n\n // NoWrap table content (also disables ellipsis)\n &--nowrap {\n white-space: nowrap;\n\n thead > tr > th,\n tbody > tr > td,\n tfoot > tr > td {\n white-space: nowrap;\n }\n }\n\n // Centered table\n &--centered {\n display: table;\n margin: 0 auto;\n width: auto;\n }\n\n // Middle aligned cells content\n &--align-middle {\n thead > tr > th,\n tbody > tr > td,\n tfoot > tr > td {\n vertical-align: middle;\n }\n }\n}\n\n// // RESPONSIVE LAYOUT (PROTO)\n// @include media($eui-bkp-mobile) {\n// table.ux-table {\n// display: block;\n\n// &.ux-table--responsive {\n// display: contents;\n\n// &.ux-table--bordered {\n// tr {\n// border: 1px solid v(eui-base-color-grey-light);\n// }\n// }\n\n// &.ux-table--compact {\n// td {\n// padding-bottom: v(eui-base-spacing-3xs);\n// padding-top: v(eui-base-spacing-2xs);\n\n// &::before {\n// top: v(eui-base-spacing-2xs);\n// }\n// }\n// }\n\n// // Force table to be like cards\n// thead,\n// tbody,\n// th,\n// td,\n// tr {\n// display: block;\n// }\n\n// // Hide table headers but not display: none for accessibility\n// thead tr {\n// left: -9999px;\n// position: absolute;\n// top: -9999px;\n// }\n\n// tr {\n// height: auto;\n// }\n\n// th,\n// td {\n// // Behave like a \"row\"\n// border: none;\n// border-bottom: 1px solid v(eui-base-color-grey-lightest);\n// padding: v(eui-base-spacing-xs);\n// padding-left: 50%;\n// position: relative;\n// }\n\n// td::before {\n// color: v(eui-base-color-grey-dark);\n// content: attr(data-col); // Like a table header column\n// font-weight: bold;\n// left: v(eui-base-spacing-xs);\n// padding-right: v(eui-base-spacing-xs);\n// position: absolute;\n// // Mimic top & left paddings\n// top: v(eui-base-spacing-xs);\n// white-space: nowrap;\n// width: 45%;\n// }\n// }\n// }\n// }\n","// GLOBAL COMPACT THEME\n///////////////////////\nhtml.eui-t-compact {\n // Exposed CSS variables\n --eui-base-font-size: 14px; // Font size base for compact theme\n --eui-base-line-height: 1.25; // Unitless number value is multiplied by the element's font size\n // Setup\n font-size: var(--eui-base-font-size); // Applies the defined custom font size\n line-height: var(--eui-base-line-height); // Applies the defined custom line height ratio\n}\n\n// FORM ELEMENTS\n/////////////////\nform.eui-t-form-compact {\n // Exposed CSS variables\n --eui-base-font-size: 14px; // Font size base for compact theme\n --eui-base-line-height: 1.25; // Unitless number value is multiplied by the element's font size\n --eui-input-group-spacing: var(--eui-base-spacing-xs); // Spacing between form groups elements\n // Internals\n // See: eui-styles-base\\src\\styles\\02-base\\mixins\\theming\\_compact-vars.scss\n @include eui-compact-get-tokens();\n // Setup\n font-size: var(--eui-base-font-size); // Applies the defined custom font size\n line-height: var(--eui-base-line-height); // Applies the defined custom line height ratio\n\n // Internals\n .eui-input-group {\n margin-bottom: var(--eui-input-group-spacing);\n\n label {\n margin-bottom: var(--eui-base-spacing-2xs);\n }\n }\n\n .eui-input-group-addon-item {\n min-height: calc(2.5 * #{v(eui-base-spacing)});\n min-width: calc(2.5 * #{v(eui-base-spacing)});\n padding: calc(#{v(eui-base-spacing-xs)} - 1px);\n }\n}\n\n// TABLE\n/////////////////\n.eui-table.eui-t-table-compact {\n // Exposed CSS variables\n --eui-base-font-size: 14px; // Font size base for compact theme\n --eui-base-line-height: 1.25; // Unitless number value is multiplied by the element's font size\n --eui-table-header-padding: var(--eui-base-spacing-s); // Table header spacer set to 0.75rem\n --eui-table-row-padding: var(--eui-base-spacing-2xs); // Table body row spacer set to 0.25rem\n --eui-table-footer-padding: var(--eui-base-spacing-s); // Table footer spacer set to 0.75rem\n // Internals\n @include eui-compact-get-tokens();\n // Setup\n font-size: var(--eui-base-font-size); // Applies the defined custom font size\n line-height: var(--eui-base-line-height); // Applies the defined custom line height ratio\n\n // Internals\n thead {\n tr {\n height: auto;\n\n th {\n padding: var(--eui-table-header-padding) var(--eui-base-spacing-s);\n }\n }\n }\n\n tbody {\n tr {\n height: auto;\n\n td {\n padding: var(--eui-table-row-padding) var(--eui-base-spacing-s);\n }\n }\n }\n\n tfoot {\n tr {\n height: auto;\n\n td {\n padding: var(--eui-table-footer-padding) var(--eui-base-spacing-s);\n }\n }\n }\n}\n\n// CARD\n/////////////////\n.eui-card.eui-t-card-compact {\n // Exposed CSS variables\n --eui-base-font-size: 14px; // Font size base for compact theme\n --eui-base-line-height: 1.25; // Unitless number value is multiplied by the element's font size\n --eui-card-title-size: var(--eui-base-font-size-m); // Card title font size\n --eui-card-subtitle-size: var(--eui-base-font-size-s); // Card subtitle font size\n // Internals\n @include eui-compact-get-tokens();\n // Setup\n font-size: var(--eui-base-font-size); // Applies the defined custom font size\n line-height: var(--eui-base-line-height); // Applies the defined custom line height ratio\n\n // Internals\n .eui-card {\n &-header {\n &__title-container {\n &-title,\n &-title .eui-label {\n font-size: var(--eui-card-title-size);\n }\n\n &-subtitle,\n &-subtitle .eui-label {\n font-size: var(--eui-card-subtitle-size);\n }\n }\n\n &__urgent-indicator {\n &::after {\n font-size: var(--eui-base-font-size-2xl);\n }\n }\n }\n }\n}\n","@mixin eui-compact-get-tokens($ratio: 0.875) {\n --eui-compact-ratio: #{$ratio};\n @each $spacing, $value in $eui-base-tokens-spacings {\n --eui-base-spacing-#{$spacing}: calc( #{var(--eui-compact-ratio)} * #{$value} );\n }\n}\n","// IE10+ SVG's aspect ratios and sizes fix\n@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {\n img[src$=\".svg\"] {\n width: 100%;\n }\n}\n@media screen {\n // IE Fix: Bicubic Scaling for Images & full width background (EC logo)\n img {\n background-repeat: no-repeat;\n background-size: 100%;\n -ms-interpolation-mode: bicubic;\n }\n}\n","// COOKIE CONSENT\n.cookie-consent-banner {\n display: block !important;\n min-width: 50% !important;\n position: absolute !important;\n right: 50% !important;\n top: v(eui-base-spacing-m) !important;\n transform: translateX(50%) !important;\n z-index: v(eui-base-z-index-max) !important;\n box-shadow: v(eui-base-shadow-24) !important;\n background: v(eui-base-color-primary) !important;\n color: var(eui-base-color-white) !important;\n}\n","#loader-wrapper {\n height: 100%;\n left: 0;\n position: fixed;\n top: 0;\n width: 100%;\n z-index: 1000;\n\n #loader {\n -webkit-animation: spin 2s linear infinite; /* Chrome, Opera 15+, Safari 5+ */\n animation: spin 2s linear infinite; /* Chrome, Firefox 16+, IE 10+, Opera */\n animation: hourglass 5s linear infinite;\n border: 10px solid transparent;\n border-radius: 50%;\n border-top-color: v(eui-base-color-warning-100);\n display: block;\n height: 200px;\n left: 50%;\n margin: -100px 0 0 -100px;\n position: relative;\n top: 50%;\n width: 200px;\n\n &::before {\n -webkit-animation: spin 2s linear infinite; /* Chrome, Opera 15+, Safari 5+ */\n animation: spin 2s linear infinite; /* Chrome, Firefox 16+, IE 10+, Opera */\n animation: hourglass 4s linear infinite;\n border: 10px solid transparent;\n border-radius: 50%;\n border-top-color: v(eui-base-color-danger-100);\n bottom: 5px;\n content: \"\";\n left: 5px;\n position: absolute;\n right: 5px;\n top: 5px;\n }\n\n &::after {\n -webkit-animation: spin 1s linear infinite; /* Chrome, Opera 15+, Safari 5+ */\n animation: spin 1s linear infinite; /* Chrome, Firefox 16+, IE 10+, Opera */\n animation: hourglass 3s linear infinite;\n border: 10px solid transparent;\n border-radius: 50%;\n border-top-color: v(eui-base-color-primary-100);\n bottom: 20px;\n content: \"\";\n left: 20px;\n position: absolute;\n right: 20px;\n top: 20px;\n }\n }\n}\n\n/* stylelint-enable */\n@-webkit-keyframes spin {\n 0% {\n -webkit-transform: rotate(0deg);\n -ms-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n\n 100% {\n -webkit-transform: rotate(360deg);\n -ms-transform: rotate(360deg);\n transform: rotate(360deg);\n }\n}\n@keyframes spin {\n 0% {\n -webkit-transform: rotate(0deg);\n -ms-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n\n 100% {\n -webkit-transform: rotate(360deg);\n -ms-transform: rotate(360deg);\n transform: rotate(360deg);\n }\n}\n@-webkit-keyframes hourglass {\n 0% {\n transform: rotate(0);\n animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);\n }\n 50% {\n transform: rotate(900deg);\n animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\n }\n 100% {\n transform: rotate(1800deg);\n }\n}\n@keyframes hourglass {\n 0% {\n transform: rotate(0);\n animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);\n }\n 50% {\n transform: rotate(900deg);\n animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\n }\n 100% {\n transform: rotate(1800deg);\n }\n}\n"]}
|