.elementor-1182 .elementor-element.elementor-element-64f1974{margin-top:0px;margin-bottom:72px;padding:24px 0px 24px 0px;}.elementor-1182 .elementor-element.elementor-element-59409f5{margin-top:0px;margin-bottom:0px;padding:0% 10% 0% 10%;}.elementor-1182 .elementor-element.elementor-element-0ef6ae2.elementor-column > .elementor-widget-wrap{justify-content:center;}.elementor-1182 .elementor-element.elementor-element-0ef6ae2 > .elementor-element-populated{margin:0px 32px 0px 0px;--e-column-margin-right:32px;--e-column-margin-left:0px;padding:0px 0px 0px 0px;}.elementor-widget-icon-list .elementor-icon-list-item:not(:last-child):after{border-color:var( --e-global-color-text );}.elementor-widget-icon-list .elementor-icon-list-icon i{color:var( --e-global-color-primary );}.elementor-widget-icon-list .elementor-icon-list-icon svg{fill:var( --e-global-color-primary );}.elementor-widget-icon-list .elementor-icon-list-item > .elementor-icon-list-text, .elementor-widget-icon-list .elementor-icon-list-item > a{font-family:var( --e-global-typography-text-font-family ), Sans-serif;font-weight:var( --e-global-typography-text-font-weight );}.elementor-widget-icon-list .elementor-icon-list-text{color:var( --e-global-color-secondary );}.elementor-1182 .elementor-element.elementor-element-cf44bb6{width:100%;max-width:100%;--e-icon-list-icon-size:36px;--icon-vertical-offset:0px;}.elementor-1182 .elementor-element.elementor-element-cf44bb6 > .elementor-widget-container{margin:0px 0px 0px 0px;padding:0px 0px 0px 0px;}.elementor-1182 .elementor-element.elementor-element-cf44bb6 .elementor-icon-list-icon i{transition:color 0.3s;}.elementor-1182 .elementor-element.elementor-element-cf44bb6 .elementor-icon-list-icon svg{transition:fill 0.3s;}.elementor-1182 .elementor-element.elementor-element-cf44bb6 .elementor-icon-list-item > .elementor-icon-list-text, .elementor-1182 .elementor-element.elementor-element-cf44bb6 .elementor-icon-list-item > a{font-family:"Jost", Sans-serif;font-size:12px;font-weight:600;text-transform:uppercase;line-height:18px;}.elementor-1182 .elementor-element.elementor-element-cf44bb6 .elementor-icon-list-text{color:var( --e-global-color-primary );transition:color 0.3s;}.elementor-widget-heading .elementor-heading-title{font-family:var( --e-global-typography-primary-font-family ), Sans-serif;font-weight:var( --e-global-typography-primary-font-weight );color:var( --e-global-color-primary );}.elementor-1182 .elementor-element.elementor-element-ac8846f > .elementor-widget-container{margin:0px 0px 0px 0px;padding:0px 0px 0px 0px;}.elementor-1182 .elementor-element.elementor-element-ac8846f{text-align:center;}.elementor-1182 .elementor-element.elementor-element-ac8846f .elementor-heading-title{font-family:"Cormorant Garamond", Sans-serif;font-size:72px;line-height:78px;color:var( --e-global-color-text );}.elementor-widget-text-editor{font-family:var( --e-global-typography-text-font-family ), Sans-serif;font-weight:var( --e-global-typography-text-font-weight );color:var( --e-global-color-text );}.elementor-widget-text-editor.elementor-drop-cap-view-stacked .elementor-drop-cap{background-color:var( --e-global-color-primary );}.elementor-widget-text-editor.elementor-drop-cap-view-framed .elementor-drop-cap, .elementor-widget-text-editor.elementor-drop-cap-view-default .elementor-drop-cap{color:var( --e-global-color-primary );border-color:var( --e-global-color-primary );}.elementor-1182 .elementor-element.elementor-element-0e25d85 > .elementor-widget-container{margin:0px 12px 0px 0px;}.elementor-1182 .elementor-element.elementor-element-0e25d85{text-align:center;font-family:"Jost", Sans-serif;font-size:17px;font-weight:400;line-height:29px;}.elementor-widget-counter .elementor-counter-number-wrapper{color:var( --e-global-color-primary );font-family:var( --e-global-typography-primary-font-family ), Sans-serif;font-weight:var( --e-global-typography-primary-font-weight );}.elementor-widget-counter .elementor-counter-title{color:var( --e-global-color-secondary );font-family:var( --e-global-typography-secondary-font-family ), Sans-serif;font-weight:var( --e-global-typography-secondary-font-weight );}.elementor-1182 .elementor-element.elementor-element-be7529c{width:auto;max-width:auto;}.elementor-1182 .elementor-element.elementor-element-be7529c > .elementor-widget-container{margin:0px 12px 0px 12px;padding:0px 0px 0px 0px;}.elementor-1182 .elementor-element.elementor-element-be7529c .elementor-counter{flex-direction:column-reverse;gap:0px;}.elementor-1182 .elementor-element.elementor-element-be7529c .elementor-counter-title{justify-content:center;color:var( --e-global-color-text );font-family:"Jost", Sans-serif;font-size:12px;font-weight:400;text-transform:uppercase;}.elementor-1182 .elementor-element.elementor-element-be7529c .elementor-counter-number-wrapper{text-align:{{VALUE}};--counter-prefix-grow:1;--counter-suffix-grow:1;--counter-number-grow:0;font-family:"Cormorant Garamond", Sans-serif;font-size:48px;font-weight:600;}.elementor-1182 .elementor-element.elementor-element-98b205f{width:auto;max-width:auto;}.elementor-1182 .elementor-element.elementor-element-98b205f > .elementor-widget-container{margin:0px 12px 0px 12px;padding:0px 0px 0px 0px;}.elementor-1182 .elementor-element.elementor-element-98b205f .elementor-counter{flex-direction:column-reverse;gap:0px;}.elementor-1182 .elementor-element.elementor-element-98b205f .elementor-counter-title{justify-content:center;color:var( --e-global-color-text );font-family:"Jost", Sans-serif;font-size:12px;font-weight:400;text-transform:uppercase;}.elementor-1182 .elementor-element.elementor-element-98b205f .elementor-counter-number-wrapper{text-align:{{VALUE}};--counter-prefix-grow:1;--counter-suffix-grow:1;--counter-number-grow:0;font-family:"Cormorant Garamond", Sans-serif;font-size:48px;font-weight:600;}.elementor-1182 .elementor-element.elementor-element-7edb835{width:auto;max-width:auto;}.elementor-1182 .elementor-element.elementor-element-7edb835 > .elementor-widget-container{margin:0px 12px 0px 12px;padding:0px 0px 0px 0px;}.elementor-1182 .elementor-element.elementor-element-7edb835 .elementor-counter{flex-direction:column-reverse;gap:0px;}.elementor-1182 .elementor-element.elementor-element-7edb835 .elementor-counter-title{justify-content:center;color:var( --e-global-color-text );font-family:"Jost", Sans-serif;font-size:12px;font-weight:400;text-transform:uppercase;}.elementor-1182 .elementor-element.elementor-element-7edb835 .elementor-counter-number-wrapper{text-align:{{VALUE}};--counter-prefix-grow:1;--counter-suffix-grow:1;--counter-number-grow:0;font-family:"Cormorant Garamond", Sans-serif;font-size:48px;font-weight:600;}.elementor-1182 .elementor-element.elementor-element-304d882{margin-top:0px;margin-bottom:0px;padding:0px 0px 0px 0px;}.elementor-1182 .elementor-element.elementor-element-9f5c0e9{margin-top:0px;margin-bottom:7px;padding:0% 10% 0% 10%;}.elementor-1182 .elementor-element.elementor-element-5cd5aec:not(.elementor-motion-effects-element-type-background) > .elementor-widget-wrap, .elementor-1182 .elementor-element.elementor-element-5cd5aec > .elementor-widget-wrap > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:var( --e-global-color-7d2811a );}.elementor-1182 .elementor-element.elementor-element-5cd5aec:hover > .elementor-element-populated{background-color:#C8102E17;border-style:solid;border-width:1px 1px 1px 1px;border-color:var( --e-global-color-322f45e );}.elementor-1182 .elementor-element.elementor-element-5cd5aec > .elementor-element-populated{border-style:solid;border-width:1px 1px 1px 1px;border-color:var( --e-global-color-7d2811a );transition:background 0.3s, border 0.3s, border-radius 0.3s, box-shadow 0.3s;margin:0px 12px 0px 12px;--e-column-margin-right:12px;--e-column-margin-left:12px;padding:24px 24px 24px 24px;}.elementor-1182 .elementor-element.elementor-element-5cd5aec > .elementor-element-populated, .elementor-1182 .elementor-element.elementor-element-5cd5aec > .elementor-element-populated > .elementor-background-overlay, .elementor-1182 .elementor-element.elementor-element-5cd5aec > .elementor-background-slideshow{border-radius:23px 23px 23px 23px;}.elementor-1182 .elementor-element.elementor-element-5cd5aec > .elementor-element-populated > .elementor-background-overlay{transition:background 0.3s, border-radius 0.3s, opacity 0.3s;}.elementor-1182 .elementor-element.elementor-element-dd4e663{width:100%;max-width:100%;text-align:start;}.elementor-1182 .elementor-element.elementor-element-dd4e663 > .elementor-widget-container{margin:0px 12px 0px 0px;padding:0px 0px 0px 0px;}.elementor-1182 .elementor-element.elementor-element-dd4e663 .elementor-heading-title{font-family:"Jost", Sans-serif;font-size:12px;font-weight:400;text-transform:uppercase;line-height:20px;color:var( --e-global-color-primary );}.elementor-1182 .elementor-element.elementor-element-3e25c97 > .elementor-widget-container{margin:-18px 0px 0px 0px;padding:0px 0px 0px 0px;}.elementor-1182 .elementor-element.elementor-element-3e25c97{text-align:start;font-family:"Cormorant Garamond", Sans-serif;font-size:20px;font-weight:700;color:var( --e-global-color-text );}.elementor-1182 .elementor-element.elementor-element-3e25c97 p{margin-block-end:0px;}.elementor-1182 .elementor-element.elementor-element-3e25c97 a{color:var( --e-global-color-primary );}.elementor-1182 .elementor-element.elementor-element-cc97ea1 > .elementor-widget-container{margin:0px 0px 12px 0px;padding:0px 0px 0px 0px;}.elementor-1182 .elementor-element.elementor-element-cc97ea1{font-family:"Jost", Sans-serif;font-size:14px;font-weight:400;color:var( --e-global-color-cf25f2e );}.elementor-1182 .elementor-element.elementor-element-6881d01:not(.elementor-motion-effects-element-type-background) > .elementor-widget-wrap, .elementor-1182 .elementor-element.elementor-element-6881d01 > .elementor-widget-wrap > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:var( --e-global-color-7d2811a );}.elementor-1182 .elementor-element.elementor-element-6881d01:hover > .elementor-element-populated{background-color:#C8102E17;border-style:solid;border-width:1px 1px 1px 1px;border-color:var( --e-global-color-322f45e );}.elementor-1182 .elementor-element.elementor-element-6881d01 > .elementor-element-populated{border-style:solid;border-width:1px 1px 1px 1px;border-color:var( --e-global-color-7d2811a );transition:background 0.3s, border 0.3s, border-radius 0.3s, box-shadow 0.3s;margin:0px 12px 0px 12px;--e-column-margin-right:12px;--e-column-margin-left:12px;padding:24px 24px 24px 24px;}.elementor-1182 .elementor-element.elementor-element-6881d01 > .elementor-element-populated, .elementor-1182 .elementor-element.elementor-element-6881d01 > .elementor-element-populated > .elementor-background-overlay, .elementor-1182 .elementor-element.elementor-element-6881d01 > .elementor-background-slideshow{border-radius:23px 23px 23px 23px;}.elementor-1182 .elementor-element.elementor-element-6881d01 > .elementor-element-populated > .elementor-background-overlay{transition:background 0.3s, border-radius 0.3s, opacity 0.3s;}.elementor-1182 .elementor-element.elementor-element-db8953b{width:100%;max-width:100%;text-align:start;}.elementor-1182 .elementor-element.elementor-element-db8953b > .elementor-widget-container{margin:0px 12px 0px 0px;padding:0px 0px 0px 0px;}.elementor-1182 .elementor-element.elementor-element-db8953b .elementor-heading-title{font-family:"Jost", Sans-serif;font-size:12px;font-weight:400;text-transform:uppercase;line-height:20px;color:var( --e-global-color-primary );}.elementor-1182 .elementor-element.elementor-element-c27060d > .elementor-widget-container{margin:-18px 0px 0px 0px;padding:0px 0px 0px 0px;}.elementor-1182 .elementor-element.elementor-element-c27060d{text-align:start;font-family:"Cormorant Garamond", Sans-serif;font-size:20px;font-weight:700;color:var( --e-global-color-text );}.elementor-1182 .elementor-element.elementor-element-c27060d p{margin-block-end:0px;}.elementor-1182 .elementor-element.elementor-element-c27060d a{color:var( --e-global-color-primary );}.elementor-1182 .elementor-element.elementor-element-f4acbdd > .elementor-widget-container{margin:0px 0px 12px 0px;padding:0px 0px 0px 0px;}.elementor-1182 .elementor-element.elementor-element-f4acbdd{font-family:"Jost", Sans-serif;font-size:14px;font-weight:400;color:var( --e-global-color-cf25f2e );}.elementor-1182 .elementor-element.elementor-element-528d9e5:not(.elementor-motion-effects-element-type-background) > .elementor-widget-wrap, .elementor-1182 .elementor-element.elementor-element-528d9e5 > .elementor-widget-wrap > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:var( --e-global-color-7d2811a );}.elementor-1182 .elementor-element.elementor-element-528d9e5:hover > .elementor-element-populated{background-color:#C8102E17;border-style:solid;border-width:1px 1px 1px 1px;border-color:var( --e-global-color-322f45e );}.elementor-1182 .elementor-element.elementor-element-528d9e5 > .elementor-element-populated{border-style:solid;border-width:1px 1px 1px 1px;border-color:var( --e-global-color-7d2811a );transition:background 0.3s, border 0.3s, border-radius 0.3s, box-shadow 0.3s;margin:0px 12px 0px 12px;--e-column-margin-right:12px;--e-column-margin-left:12px;padding:24px 24px 24px 24px;}.elementor-1182 .elementor-element.elementor-element-528d9e5 > .elementor-element-populated, .elementor-1182 .elementor-element.elementor-element-528d9e5 > .elementor-element-populated > .elementor-background-overlay, .elementor-1182 .elementor-element.elementor-element-528d9e5 > .elementor-background-slideshow{border-radius:23px 23px 23px 23px;}.elementor-1182 .elementor-element.elementor-element-528d9e5 > .elementor-element-populated > .elementor-background-overlay{transition:background 0.3s, border-radius 0.3s, opacity 0.3s;}.elementor-1182 .elementor-element.elementor-element-68356d2{width:100%;max-width:100%;text-align:start;}.elementor-1182 .elementor-element.elementor-element-68356d2 > .elementor-widget-container{margin:0px 12px 0px 0px;padding:0px 0px 0px 0px;}.elementor-1182 .elementor-element.elementor-element-68356d2 .elementor-heading-title{font-family:"Jost", Sans-serif;font-size:12px;font-weight:400;text-transform:uppercase;line-height:20px;color:var( --e-global-color-primary );}.elementor-1182 .elementor-element.elementor-element-b2c5d52 > .elementor-widget-container{margin:-18px 0px 0px 0px;padding:0px 0px 0px 0px;}.elementor-1182 .elementor-element.elementor-element-b2c5d52{text-align:start;font-family:"Cormorant Garamond", Sans-serif;font-size:20px;font-weight:700;color:var( --e-global-color-text );}.elementor-1182 .elementor-element.elementor-element-b2c5d52 p{margin-block-end:0px;}.elementor-1182 .elementor-element.elementor-element-b2c5d52 a{color:var( --e-global-color-primary );}.elementor-1182 .elementor-element.elementor-element-a1c94f8 > .elementor-widget-container{margin:0px 0px 12px 0px;padding:0px 0px 0px 0px;}.elementor-1182 .elementor-element.elementor-element-a1c94f8{font-family:"Jost", Sans-serif;font-size:14px;font-weight:400;color:var( --e-global-color-cf25f2e );}.elementor-1182 .elementor-element.elementor-element-7f47d96{margin-top:24px;margin-bottom:24px;padding:0% 10% 0% 10%;}.elementor-1182 .elementor-element.elementor-element-83ea742:not(.elementor-motion-effects-element-type-background) > .elementor-widget-wrap, .elementor-1182 .elementor-element.elementor-element-83ea742 > .elementor-widget-wrap > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:var( --e-global-color-7d2811a );}.elementor-1182 .elementor-element.elementor-element-83ea742:hover > .elementor-element-populated{background-color:#C8102E17;border-style:solid;border-width:1px 1px 1px 1px;border-color:var( --e-global-color-322f45e );}.elementor-1182 .elementor-element.elementor-element-83ea742 > .elementor-element-populated{border-style:solid;border-width:1px 1px 1px 1px;border-color:var( --e-global-color-7d2811a );transition:background 0.3s, border 0.3s, border-radius 0.3s, box-shadow 0.3s;margin:0px 12px 0px 12px;--e-column-margin-right:12px;--e-column-margin-left:12px;padding:24px 24px 24px 24px;}.elementor-1182 .elementor-element.elementor-element-83ea742 > .elementor-element-populated, .elementor-1182 .elementor-element.elementor-element-83ea742 > .elementor-element-populated > .elementor-background-overlay, .elementor-1182 .elementor-element.elementor-element-83ea742 > .elementor-background-slideshow{border-radius:23px 23px 23px 23px;}.elementor-1182 .elementor-element.elementor-element-83ea742 > .elementor-element-populated > .elementor-background-overlay{transition:background 0.3s, border-radius 0.3s, opacity 0.3s;}.elementor-1182 .elementor-element.elementor-element-e7b017c{width:100%;max-width:100%;text-align:start;}.elementor-1182 .elementor-element.elementor-element-e7b017c > .elementor-widget-container{margin:0px 12px 0px 0px;padding:0px 0px 0px 0px;}.elementor-1182 .elementor-element.elementor-element-e7b017c .elementor-heading-title{font-family:"Jost", Sans-serif;font-size:12px;font-weight:400;text-transform:uppercase;line-height:20px;color:var( --e-global-color-primary );}.elementor-1182 .elementor-element.elementor-element-6eaa5da > .elementor-widget-container{margin:-18px 0px 0px 0px;padding:0px 0px 0px 0px;}.elementor-1182 .elementor-element.elementor-element-6eaa5da{text-align:start;font-family:"Cormorant Garamond", Sans-serif;font-size:20px;font-weight:700;color:var( --e-global-color-text );}.elementor-1182 .elementor-element.elementor-element-6eaa5da p{margin-block-end:0px;}.elementor-1182 .elementor-element.elementor-element-6eaa5da a{color:var( --e-global-color-primary );}.elementor-1182 .elementor-element.elementor-element-903f59b > .elementor-widget-container{margin:0px 0px 12px 0px;padding:0px 0px 0px 0px;}.elementor-1182 .elementor-element.elementor-element-903f59b{font-family:"Jost", Sans-serif;font-size:14px;font-weight:400;color:var( --e-global-color-cf25f2e );}.elementor-1182 .elementor-element.elementor-element-cdb7f16:not(.elementor-motion-effects-element-type-background) > .elementor-widget-wrap, .elementor-1182 .elementor-element.elementor-element-cdb7f16 > .elementor-widget-wrap > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:var( --e-global-color-7d2811a );}.elementor-1182 .elementor-element.elementor-element-cdb7f16:hover > .elementor-element-populated{background-color:#C8102E17;border-style:solid;border-width:1px 1px 1px 1px;border-color:var( --e-global-color-322f45e );}.elementor-1182 .elementor-element.elementor-element-cdb7f16 > .elementor-element-populated{border-style:solid;border-width:1px 1px 1px 1px;border-color:var( --e-global-color-7d2811a );transition:background 0.3s, border 0.3s, border-radius 0.3s, box-shadow 0.3s;margin:0px 12px 0px 12px;--e-column-margin-right:12px;--e-column-margin-left:12px;padding:24px 24px 24px 24px;}.elementor-1182 .elementor-element.elementor-element-cdb7f16 > .elementor-element-populated, .elementor-1182 .elementor-element.elementor-element-cdb7f16 > .elementor-element-populated > .elementor-background-overlay, .elementor-1182 .elementor-element.elementor-element-cdb7f16 > .elementor-background-slideshow{border-radius:23px 23px 23px 23px;}.elementor-1182 .elementor-element.elementor-element-cdb7f16 > .elementor-element-populated > .elementor-background-overlay{transition:background 0.3s, border-radius 0.3s, opacity 0.3s;}.elementor-1182 .elementor-element.elementor-element-8714a09{width:100%;max-width:100%;text-align:start;}.elementor-1182 .elementor-element.elementor-element-8714a09 > .elementor-widget-container{margin:0px 12px 0px 0px;padding:0px 0px 0px 0px;}.elementor-1182 .elementor-element.elementor-element-8714a09 .elementor-heading-title{font-family:"Jost", Sans-serif;font-size:12px;font-weight:400;text-transform:uppercase;line-height:20px;color:var( --e-global-color-primary );}.elementor-1182 .elementor-element.elementor-element-c229a61 > .elementor-widget-container{margin:-18px 0px 0px 0px;padding:0px 0px 0px 0px;}.elementor-1182 .elementor-element.elementor-element-c229a61{text-align:start;font-family:"Cormorant Garamond", Sans-serif;font-size:20px;font-weight:700;color:var( --e-global-color-text );}.elementor-1182 .elementor-element.elementor-element-c229a61 p{margin-block-end:0px;}.elementor-1182 .elementor-element.elementor-element-c229a61 a{color:var( --e-global-color-primary );}.elementor-1182 .elementor-element.elementor-element-56e2ef3 > .elementor-widget-container{margin:0px 0px 12px 0px;padding:0px 0px 0px 0px;}.elementor-1182 .elementor-element.elementor-element-56e2ef3{font-family:"Jost", Sans-serif;font-size:14px;font-weight:400;color:var( --e-global-color-cf25f2e );}.elementor-1182 .elementor-element.elementor-element-90dd3c0:not(.elementor-motion-effects-element-type-background) > .elementor-widget-wrap, .elementor-1182 .elementor-element.elementor-element-90dd3c0 > .elementor-widget-wrap > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:var( --e-global-color-7d2811a );}.elementor-1182 .elementor-element.elementor-element-90dd3c0:hover > .elementor-element-populated{background-color:#C8102E17;border-style:solid;border-width:1px 1px 1px 1px;border-color:var( --e-global-color-322f45e );}.elementor-1182 .elementor-element.elementor-element-90dd3c0 > .elementor-element-populated{border-style:solid;border-width:1px 1px 1px 1px;border-color:var( --e-global-color-7d2811a );transition:background 0.3s, border 0.3s, border-radius 0.3s, box-shadow 0.3s;margin:0px 12px 0px 12px;--e-column-margin-right:12px;--e-column-margin-left:12px;padding:24px 24px 24px 24px;}.elementor-1182 .elementor-element.elementor-element-90dd3c0 > .elementor-element-populated, .elementor-1182 .elementor-element.elementor-element-90dd3c0 > .elementor-element-populated > .elementor-background-overlay, .elementor-1182 .elementor-element.elementor-element-90dd3c0 > .elementor-background-slideshow{border-radius:23px 23px 23px 23px;}.elementor-1182 .elementor-element.elementor-element-90dd3c0 > .elementor-element-populated > .elementor-background-overlay{transition:background 0.3s, border-radius 0.3s, opacity 0.3s;}.elementor-1182 .elementor-element.elementor-element-a3ea30e{width:100%;max-width:100%;text-align:start;}.elementor-1182 .elementor-element.elementor-element-a3ea30e > .elementor-widget-container{margin:0px 12px 0px 0px;padding:0px 0px 0px 0px;}.elementor-1182 .elementor-element.elementor-element-a3ea30e .elementor-heading-title{font-family:"Jost", Sans-serif;font-size:12px;font-weight:400;text-transform:uppercase;line-height:20px;color:var( --e-global-color-primary );}.elementor-1182 .elementor-element.elementor-element-bc44e90 > .elementor-widget-container{margin:-18px 0px 0px 0px;padding:0px 0px 0px 0px;}.elementor-1182 .elementor-element.elementor-element-bc44e90{text-align:start;font-family:"Cormorant Garamond", Sans-serif;font-size:20px;font-weight:700;color:var( --e-global-color-text );}.elementor-1182 .elementor-element.elementor-element-bc44e90 p{margin-block-end:0px;}.elementor-1182 .elementor-element.elementor-element-bc44e90 a{color:var( --e-global-color-primary );}.elementor-1182 .elementor-element.elementor-element-6f30696 > .elementor-widget-container{margin:0px 0px 12px 0px;padding:0px 0px 0px 0px;}.elementor-1182 .elementor-element.elementor-element-6f30696{font-family:"Jost", Sans-serif;font-size:14px;font-weight:400;color:var( --e-global-color-cf25f2e );}.elementor-1182 .elementor-element.elementor-element-956f0f9{margin-top:0px;margin-bottom:24px;padding:0% 10% 0% 10%;}.elementor-1182 .elementor-element.elementor-element-dd52b60:not(.elementor-motion-effects-element-type-background) > .elementor-widget-wrap, .elementor-1182 .elementor-element.elementor-element-dd52b60 > .elementor-widget-wrap > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:var( --e-global-color-7d2811a );}.elementor-1182 .elementor-element.elementor-element-dd52b60:hover > .elementor-element-populated{background-color:#C8102E17;border-style:solid;border-width:1px 1px 1px 1px;border-color:var( --e-global-color-322f45e );}.elementor-1182 .elementor-element.elementor-element-dd52b60 > .elementor-element-populated{border-style:solid;border-width:1px 1px 1px 1px;border-color:var( --e-global-color-7d2811a );transition:background 0.3s, border 0.3s, border-radius 0.3s, box-shadow 0.3s;margin:0px 12px 0px 12px;--e-column-margin-right:12px;--e-column-margin-left:12px;padding:24px 24px 24px 24px;}.elementor-1182 .elementor-element.elementor-element-dd52b60 > .elementor-element-populated, .elementor-1182 .elementor-element.elementor-element-dd52b60 > .elementor-element-populated > .elementor-background-overlay, .elementor-1182 .elementor-element.elementor-element-dd52b60 > .elementor-background-slideshow{border-radius:23px 23px 23px 23px;}.elementor-1182 .elementor-element.elementor-element-dd52b60 > .elementor-element-populated > .elementor-background-overlay{transition:background 0.3s, border-radius 0.3s, opacity 0.3s;}.elementor-1182 .elementor-element.elementor-element-493d607{width:100%;max-width:100%;text-align:start;}.elementor-1182 .elementor-element.elementor-element-493d607 > .elementor-widget-container{margin:0px 12px 0px 0px;padding:0px 0px 0px 0px;}.elementor-1182 .elementor-element.elementor-element-493d607 .elementor-heading-title{font-family:"Jost", Sans-serif;font-size:12px;font-weight:400;text-transform:uppercase;line-height:20px;color:var( --e-global-color-primary );}.elementor-1182 .elementor-element.elementor-element-d67794f > .elementor-widget-container{margin:-18px 0px 0px 0px;padding:0px 0px 0px 0px;}.elementor-1182 .elementor-element.elementor-element-d67794f{text-align:start;font-family:"Cormorant Garamond", Sans-serif;font-size:20px;font-weight:700;color:var( --e-global-color-text );}.elementor-1182 .elementor-element.elementor-element-d67794f p{margin-block-end:0px;}.elementor-1182 .elementor-element.elementor-element-d67794f a{color:var( --e-global-color-primary );}.elementor-1182 .elementor-element.elementor-element-fae9471 > .elementor-widget-container{margin:0px 0px 12px 0px;padding:0px 0px 0px 0px;}.elementor-1182 .elementor-element.elementor-element-fae9471{font-family:"Jost", Sans-serif;font-size:14px;font-weight:400;color:var( --e-global-color-cf25f2e );}.elementor-1182 .elementor-element.elementor-element-772dcd2:not(.elementor-motion-effects-element-type-background) > .elementor-widget-wrap, .elementor-1182 .elementor-element.elementor-element-772dcd2 > .elementor-widget-wrap > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:var( --e-global-color-7d2811a );}.elementor-1182 .elementor-element.elementor-element-772dcd2:hover > .elementor-element-populated{background-color:#C8102E17;border-style:solid;border-width:1px 1px 1px 1px;border-color:var( --e-global-color-322f45e );}.elementor-1182 .elementor-element.elementor-element-772dcd2 > .elementor-element-populated{border-style:solid;border-width:1px 1px 1px 1px;border-color:var( --e-global-color-7d2811a );transition:background 0.3s, border 0.3s, border-radius 0.3s, box-shadow 0.3s;margin:0px 12px 0px 12px;--e-column-margin-right:12px;--e-column-margin-left:12px;padding:24px 24px 24px 24px;}.elementor-1182 .elementor-element.elementor-element-772dcd2 > .elementor-element-populated, .elementor-1182 .elementor-element.elementor-element-772dcd2 > .elementor-element-populated > .elementor-background-overlay, .elementor-1182 .elementor-element.elementor-element-772dcd2 > .elementor-background-slideshow{border-radius:23px 23px 23px 23px;}.elementor-1182 .elementor-element.elementor-element-772dcd2 > .elementor-element-populated > .elementor-background-overlay{transition:background 0.3s, border-radius 0.3s, opacity 0.3s;}.elementor-1182 .elementor-element.elementor-element-16009ea{width:100%;max-width:100%;text-align:start;}.elementor-1182 .elementor-element.elementor-element-16009ea > .elementor-widget-container{margin:0px 12px 0px 0px;padding:0px 0px 0px 0px;}.elementor-1182 .elementor-element.elementor-element-16009ea .elementor-heading-title{font-family:"Jost", Sans-serif;font-size:12px;font-weight:400;text-transform:uppercase;line-height:20px;color:var( --e-global-color-primary );}.elementor-1182 .elementor-element.elementor-element-11c1af1 > .elementor-widget-container{margin:-18px 0px 0px 0px;padding:0px 0px 0px 0px;}.elementor-1182 .elementor-element.elementor-element-11c1af1{text-align:start;font-family:"Cormorant Garamond", Sans-serif;font-size:20px;font-weight:700;color:var( --e-global-color-text );}.elementor-1182 .elementor-element.elementor-element-11c1af1 p{margin-block-end:0px;}.elementor-1182 .elementor-element.elementor-element-11c1af1 a{color:var( --e-global-color-primary );}.elementor-1182 .elementor-element.elementor-element-42a02ba > .elementor-widget-container{margin:0px 0px 12px 0px;padding:0px 0px 0px 0px;}.elementor-1182 .elementor-element.elementor-element-42a02ba{font-family:"Jost", Sans-serif;font-size:14px;font-weight:400;color:var( --e-global-color-cf25f2e );}.elementor-1182 .elementor-element.elementor-element-69ddf49:not(.elementor-motion-effects-element-type-background) > .elementor-widget-wrap, .elementor-1182 .elementor-element.elementor-element-69ddf49 > .elementor-widget-wrap > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:var( --e-global-color-7d2811a );}.elementor-1182 .elementor-element.elementor-element-69ddf49:hover > .elementor-element-populated{background-color:#C8102E17;border-style:solid;border-width:1px 1px 1px 1px;border-color:var( --e-global-color-322f45e );}.elementor-1182 .elementor-element.elementor-element-69ddf49 > .elementor-element-populated{border-style:solid;border-width:1px 1px 1px 1px;border-color:var( --e-global-color-7d2811a );transition:background 0.3s, border 0.3s, border-radius 0.3s, box-shadow 0.3s;margin:0px 12px 0px 12px;--e-column-margin-right:12px;--e-column-margin-left:12px;padding:24px 24px 24px 24px;}.elementor-1182 .elementor-element.elementor-element-69ddf49 > .elementor-element-populated, .elementor-1182 .elementor-element.elementor-element-69ddf49 > .elementor-element-populated > .elementor-background-overlay, .elementor-1182 .elementor-element.elementor-element-69ddf49 > .elementor-background-slideshow{border-radius:23px 23px 23px 23px;}.elementor-1182 .elementor-element.elementor-element-69ddf49 > .elementor-element-populated > .elementor-background-overlay{transition:background 0.3s, border-radius 0.3s, opacity 0.3s;}.elementor-1182 .elementor-element.elementor-element-a910d30{width:100%;max-width:100%;text-align:start;}.elementor-1182 .elementor-element.elementor-element-a910d30 > .elementor-widget-container{margin:0px 12px 0px 0px;padding:0px 0px 0px 0px;}.elementor-1182 .elementor-element.elementor-element-a910d30 .elementor-heading-title{font-family:"Jost", Sans-serif;font-size:12px;font-weight:400;text-transform:uppercase;line-height:20px;color:var( --e-global-color-primary );}.elementor-1182 .elementor-element.elementor-element-2f8227e > .elementor-widget-container{margin:-18px 0px 0px 0px;padding:0px 0px 0px 0px;}.elementor-1182 .elementor-element.elementor-element-2f8227e{text-align:start;font-family:"Cormorant Garamond", Sans-serif;font-size:20px;font-weight:700;color:var( --e-global-color-text );}.elementor-1182 .elementor-element.elementor-element-2f8227e p{margin-block-end:0px;}.elementor-1182 .elementor-element.elementor-element-2f8227e a{color:var( --e-global-color-primary );}.elementor-1182 .elementor-element.elementor-element-5e3bebd > .elementor-widget-container{margin:0px 0px 12px 0px;padding:0px 0px 0px 0px;}.elementor-1182 .elementor-element.elementor-element-5e3bebd{font-family:"Jost", Sans-serif;font-size:14px;font-weight:400;color:var( --e-global-color-cf25f2e );}.elementor-1182 .elementor-element.elementor-element-95662dc{margin-top:0px;margin-bottom:72px;padding:0% 10% 0% 10%;}.elementor-1182 .elementor-element.elementor-element-5014f71:not(.elementor-motion-effects-element-type-background) > .elementor-widget-wrap, .elementor-1182 .elementor-element.elementor-element-5014f71 > .elementor-widget-wrap > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:var( --e-global-color-7d2811a );}.elementor-1182 .elementor-element.elementor-element-5014f71:hover > .elementor-element-populated{background-color:#C8102E17;border-style:solid;border-width:1px 1px 1px 1px;border-color:var( --e-global-color-322f45e );}.elementor-1182 .elementor-element.elementor-element-5014f71 > .elementor-element-populated{border-style:solid;border-width:1px 1px 1px 1px;border-color:var( --e-global-color-7d2811a );transition:background 0.3s, border 0.3s, border-radius 0.3s, box-shadow 0.3s;margin:0px 12px 0px 12px;--e-column-margin-right:12px;--e-column-margin-left:12px;padding:24px 24px 24px 24px;}.elementor-1182 .elementor-element.elementor-element-5014f71 > .elementor-element-populated, .elementor-1182 .elementor-element.elementor-element-5014f71 > .elementor-element-populated > .elementor-background-overlay, .elementor-1182 .elementor-element.elementor-element-5014f71 > .elementor-background-slideshow{border-radius:23px 23px 23px 23px;}.elementor-1182 .elementor-element.elementor-element-5014f71 > .elementor-element-populated > .elementor-background-overlay{transition:background 0.3s, border-radius 0.3s, opacity 0.3s;}.elementor-1182 .elementor-element.elementor-element-17014b4{width:100%;max-width:100%;text-align:start;}.elementor-1182 .elementor-element.elementor-element-17014b4 > .elementor-widget-container{margin:0px 12px 0px 0px;padding:0px 0px 0px 0px;}.elementor-1182 .elementor-element.elementor-element-17014b4 .elementor-heading-title{font-family:"Jost", Sans-serif;font-size:12px;font-weight:400;text-transform:uppercase;line-height:20px;color:var( --e-global-color-primary );}.elementor-1182 .elementor-element.elementor-element-d8a783e > .elementor-widget-container{margin:-18px 0px 0px 0px;padding:0px 0px 0px 0px;}.elementor-1182 .elementor-element.elementor-element-d8a783e{text-align:start;font-family:"Cormorant Garamond", Sans-serif;font-size:20px;font-weight:700;color:var( --e-global-color-text );}.elementor-1182 .elementor-element.elementor-element-d8a783e p{margin-block-end:0px;}.elementor-1182 .elementor-element.elementor-element-d8a783e a{color:var( --e-global-color-primary );}.elementor-1182 .elementor-element.elementor-element-71148e1 > .elementor-widget-container{margin:0px 0px 12px 0px;padding:0px 0px 0px 0px;}.elementor-1182 .elementor-element.elementor-element-71148e1{font-family:"Jost", Sans-serif;font-size:14px;font-weight:400;color:var( --e-global-color-cf25f2e );}.elementor-1182 .elementor-element.elementor-element-3cee743:not(.elementor-motion-effects-element-type-background) > .elementor-widget-wrap, .elementor-1182 .elementor-element.elementor-element-3cee743 > .elementor-widget-wrap > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:#C2C2C200;}.elementor-1182 .elementor-element.elementor-element-3cee743:hover > .elementor-element-populated{background-color:#C8102E00;border-style:solid;border-width:1px 1px 1px 1px;border-color:var( --e-global-color-322f45e );}.elementor-1182 .elementor-element.elementor-element-3cee743 > .elementor-element-populated{border-style:solid;border-width:1px 1px 1px 1px;border-color:var( --e-global-color-7d2811a );transition:background 0.3s, border 0.3s, border-radius 0.3s, box-shadow 0.3s;margin:0px 12px 0px 12px;--e-column-margin-right:12px;--e-column-margin-left:12px;padding:24px 24px 24px 24px;}.elementor-1182 .elementor-element.elementor-element-3cee743 > .elementor-element-populated, .elementor-1182 .elementor-element.elementor-element-3cee743 > .elementor-element-populated > .elementor-background-overlay, .elementor-1182 .elementor-element.elementor-element-3cee743 > .elementor-background-slideshow{border-radius:23px 23px 23px 23px;}.elementor-1182 .elementor-element.elementor-element-3cee743 > .elementor-element-populated > .elementor-background-overlay{transition:background 0.3s, border-radius 0.3s, opacity 0.3s;}.elementor-1182 .elementor-element.elementor-element-6bd50ca:not(.elementor-motion-effects-element-type-background) > .elementor-widget-wrap, .elementor-1182 .elementor-element.elementor-element-6bd50ca > .elementor-widget-wrap > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:#C2C2C200;}.elementor-1182 .elementor-element.elementor-element-6bd50ca:hover > .elementor-element-populated{background-color:#C8102E00;border-style:solid;border-width:1px 1px 1px 1px;border-color:var( --e-global-color-322f45e );}.elementor-1182 .elementor-element.elementor-element-6bd50ca > .elementor-element-populated{border-style:solid;border-width:1px 1px 1px 1px;border-color:var( --e-global-color-7d2811a );transition:background 0.3s, border 0.3s, border-radius 0.3s, box-shadow 0.3s;margin:0px 12px 0px 12px;--e-column-margin-right:12px;--e-column-margin-left:12px;padding:24px 24px 24px 24px;}.elementor-1182 .elementor-element.elementor-element-6bd50ca > .elementor-element-populated, .elementor-1182 .elementor-element.elementor-element-6bd50ca > .elementor-element-populated > .elementor-background-overlay, .elementor-1182 .elementor-element.elementor-element-6bd50ca > .elementor-background-slideshow{border-radius:23px 23px 23px 23px;}.elementor-1182 .elementor-element.elementor-element-6bd50ca > .elementor-element-populated > .elementor-background-overlay{transition:background 0.3s, border-radius 0.3s, opacity 0.3s;}:root{--page-title-display:none;}@media(max-width:1024px){.elementor-1182 .elementor-element.elementor-element-64f1974{margin-top:48px;margin-bottom:48px;padding:0px 0px 0px 0px;}.elementor-1182 .elementor-element.elementor-element-59409f5{margin-top:0px;margin-bottom:0px;}.elementor-1182 .elementor-element.elementor-element-ac8846f .elementor-heading-title{font-size:48px;line-height:48px;}.elementor-1182 .elementor-element.elementor-element-0e25d85{font-size:17px;}.elementor-1182 .elementor-element.elementor-element-304d882{margin-top:0px;margin-bottom:0px;padding:0px 0px 0px 0px;}.elementor-1182 .elementor-element.elementor-element-6881d01 > .elementor-element-populated{margin:24px 12px 0px 12px;--e-column-margin-right:12px;--e-column-margin-left:12px;}.elementor-1182 .elementor-element.elementor-element-528d9e5 > .elementor-element-populated{margin:24px 12px 0px 12px;--e-column-margin-right:12px;--e-column-margin-left:12px;}.elementor-1182 .elementor-element.elementor-element-cdb7f16 > .elementor-element-populated{margin:24px 12px 0px 12px;--e-column-margin-right:12px;--e-column-margin-left:12px;}.elementor-1182 .elementor-element.elementor-element-90dd3c0 > .elementor-element-populated{margin:24px 12px 0px 12px;--e-column-margin-right:12px;--e-column-margin-left:12px;}.elementor-1182 .elementor-element.elementor-element-dd52b60 > .elementor-element-populated{margin:24px 12px 0px 12px;--e-column-margin-right:12px;--e-column-margin-left:12px;}.elementor-1182 .elementor-element.elementor-element-772dcd2 > .elementor-element-populated{margin:24px 12px 0px 12px;--e-column-margin-right:12px;--e-column-margin-left:12px;}.elementor-1182 .elementor-element.elementor-element-69ddf49 > .elementor-element-populated{margin:24px 12px 0px 12px;--e-column-margin-right:12px;--e-column-margin-left:12px;}.elementor-1182 .elementor-element.elementor-element-5014f71 > .elementor-element-populated{margin:24px 12px 0px 12px;--e-column-margin-right:12px;--e-column-margin-left:12px;}}@media(max-width:767px){.elementor-1182 .elementor-element.elementor-element-64f1974{margin-top:32px;margin-bottom:032px;padding:0px 0px 0px 0px;}.elementor-1182 .elementor-element.elementor-element-59409f5{margin-top:0px;margin-bottom:0px;padding:0% 5% 0% 5%;}.elementor-1182 .elementor-element.elementor-element-0ef6ae2 > .elementor-element-populated{margin:0px 0px 0px 0px;--e-column-margin-right:0px;--e-column-margin-left:0px;padding:0px 0px 0px 0px;}.elementor-1182 .elementor-element.elementor-element-ac8846f .elementor-heading-title{font-size:32px;line-height:32px;}.elementor-1182 .elementor-element.elementor-element-0e25d85{font-size:16px;}.elementor-1182 .elementor-element.elementor-element-be7529c > .elementor-widget-container{margin:0px 6px 0px 6px;}.elementor-1182 .elementor-element.elementor-element-98b205f > .elementor-widget-container{margin:0px 6px 0px 6px;}.elementor-1182 .elementor-element.elementor-element-7edb835 > .elementor-widget-container{margin:0px 6px 0px 6px;}.elementor-1182 .elementor-element.elementor-element-9f5c0e9{margin-top:0px;margin-bottom:0px;padding:05% 05% 05% 05%;}.elementor-1182 .elementor-element.elementor-element-7f47d96{margin-top:0px;margin-bottom:0px;padding:0% 05% 05% 05%;}.elementor-1182 .elementor-element.elementor-element-956f0f9{margin-top:0px;margin-bottom:0px;padding:0% 05% 05% 05%;}.elementor-1182 .elementor-element.elementor-element-dd52b60 > .elementor-element-populated{margin:14px 12px 0px 12px;--e-column-margin-right:12px;--e-column-margin-left:12px;padding:24px 24px 24px 24px;}.elementor-1182 .elementor-element.elementor-element-95662dc{margin-top:12px;margin-bottom:0px;padding:0% 05% 05% 05%;}.elementor-1182 .elementor-element.elementor-element-5014f71 > .elementor-element-populated{margin:0px 12px 0px 12px;--e-column-margin-right:12px;--e-column-margin-left:12px;padding:24px 24px 24px 24px;}}@media(min-width:768px){.elementor-1182 .elementor-element.elementor-element-1f3af52{width:100%;}}@media(max-width:1024px) and (min-width:768px){.elementor-1182 .elementor-element.elementor-element-5cd5aec{width:100%;}.elementor-1182 .elementor-element.elementor-element-6881d01{width:100%;}.elementor-1182 .elementor-element.elementor-element-528d9e5{width:100%;}.elementor-1182 .elementor-element.elementor-element-83ea742{width:100%;}.elementor-1182 .elementor-element.elementor-element-cdb7f16{width:100%;}.elementor-1182 .elementor-element.elementor-element-90dd3c0{width:100%;}.elementor-1182 .elementor-element.elementor-element-dd52b60{width:100%;}.elementor-1182 .elementor-element.elementor-element-772dcd2{width:100%;}.elementor-1182 .elementor-element.elementor-element-69ddf49{width:100%;}.elementor-1182 .elementor-element.elementor-element-5014f71{width:100%;}.elementor-1182 .elementor-element.elementor-element-3cee743{width:50%;}.elementor-1182 .elementor-element.elementor-element-6bd50ca{width:50%;}}/* Start custom CSS for heading, class: .elementor-element-ac8846f */.elementor-widget-heading .line-gold,
.elementor-widget-heading .gold {
  color: #C8102E !important;
  font-style: italic;
}/* End custom CSS */
/* Start custom CSS for section, class: .elementor-element-9f5c0e9 */<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Adjutant Showcase</title>
<link rel="preconnect" href="https://fonts.googleapis.com">
<link href="https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,400;0,600;1,400;1,600&family=Jost:wght@300;400;500&display=swap" rel="stylesheet">
<style>
*{box-sizing:border-box;margin:0;padding:0;}
:root{
  --bg:#F7F3ED; --acc:#C8102E; --txt:#161820; --mut:#888;
  --brd:rgba(22,24,32,.10); --tr:#9E7B3A; --grn:#1A8A4F;
}

/* ── LIGHTBOX ── */
.lb{display:none;position:fixed;inset:0;background:rgba(10,8,6,.7);z-index:99999;align-items:center;justify-content:center;padding:16px;}
.lb.open{display:flex;}
.lb-box{
  font-family:'Jost',sans-serif;
  background:var(--bg);border-radius:12px;
  width:100%;max-width:1100px;height:90vh;max-height:720px;
  display:flex;flex-direction:column;overflow:hidden;
  box-shadow:0 32px 96px rgba(0,0,0,.35);
}

/* topbar */
.lb-top{display:flex;align-items:center;gap:10px;padding:13px 20px;border-bottom:1px solid var(--brd);flex-shrink:0;}
.lb-scen{font-size:9px;font-weight:500;letter-spacing:.28em;color:var(--mut);text-transform:uppercase;}
.lb-name{font-family:'Cormorant Garamond',serif;font-size:17px;font-weight:600;flex:1;color:var(--txt);}
.lb-ctrls{display:flex;gap:6px;align-items:center;}

/* buttons — 1px gray stroke, no fill */
.btn{
  font-family:'Jost',sans-serif;font-size:9px;font-weight:400;letter-spacing:.1em;
  padding:6px 13px;border-radius:20px;cursor:pointer;
  border:1px solid rgba(22,24,32,.22);color:var(--txt);background:transparent;
  text-transform:uppercase;transition:border-color .15s,background .15s;white-space:nowrap;
}
.btn:hover{border-color:rgba(22,24,32,.5);background:rgba(22,24,32,.04);}
.btn.off{opacity:.25;pointer-events:none;}
.btn-close{
  font-size:15px;line-height:1;padding:4px 9px;border-radius:50%;cursor:pointer;
  border:1px solid rgba(22,24,32,.18);color:var(--mut);background:transparent;
  transition:border-color .15s,color .15s;
}
.btn-close:hover{border-color:rgba(22,24,32,.4);color:var(--txt);}
.step-cnt{font-size:9px;letter-spacing:.18em;color:var(--mut);text-transform:uppercase;margin-left:2px;}

/* progress bar */
.lb-prog{height:2px;background:var(--brd);flex-shrink:0;}
.lb-pf{height:100%;background:rgba(22,24,32,.2);width:0%;transition:width linear;}

/* body split */
.lb-body{flex:1;display:grid;grid-template-columns:42% 58%;min-height:0;transition:background .45s;}
.lb-body.ph-red  {background:linear-gradient(135deg,rgba(200,16,46,.04) 0%,transparent 55%);}
.lb-body.ph-gold {background:linear-gradient(135deg,rgba(200,16,46,.025) 0%,transparent 55%);}
.lb-body.ph-trans{background:linear-gradient(135deg,rgba(158,123,58,.04) 0%,transparent 55%);}
.lb-body.ph-green{background:linear-gradient(135deg,rgba(26,138,79,.03) 0%,transparent 55%);}

.lb-left{display:flex;flex-direction:column;justify-content:center;padding:36px 36px 28px 32px;border-right:1px solid var(--brd);overflow-y:auto;}
.lb-right{position:relative;overflow:hidden;}

/* phase pill */
.pill{display:inline-flex;align-items:center;gap:6px;font-size:9px;font-weight:500;letter-spacing:.18em;text-transform:uppercase;margin-bottom:18px;opacity:0;transform:translateY(4px);transition:opacity .3s,transform .3s;}
.pill.show{opacity:1;transform:none;}
.pill-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0;}
.pill.ph-red   {color:var(--acc);}  .pill.ph-red   .pill-dot{background:var(--acc);}
.pill.ph-trans {color:var(--tr);}   .pill.ph-trans .pill-dot{background:var(--tr);}
.pill.ph-gold  {color:var(--acc);}  .pill.ph-gold  .pill-dot{background:var(--acc);}
.pill.ph-green {color:var(--grn);}  .pill.ph-green .pill-dot{background:var(--grn);}

/* headline */
.hl{font-family:'Cormorant Garamond',serif;font-size:clamp(20px,2.6vw,36px);font-weight:600;line-height:1.12;margin-bottom:13px;opacity:0;transform:translateY(10px);transition:opacity .4s ease .04s,transform .4s ease .04s;}
.hl.show{opacity:1;transform:none;}
.hl em{font-style:italic;color:var(--acc);}

/* sub */
.st{font-family:'Cormorant Garamond',serif;font-size:clamp(14px,1.7vw,18px);font-style:italic;color:var(--mut);line-height:1.6;margin-bottom:26px;opacity:0;transform:translateY(6px);transition:opacity .38s ease .1s,transform .38s ease .1s;}
.st.show{opacity:1;transform:none;}

/* step dots */
.dots{display:flex;gap:5px;margin-bottom:20px;flex-wrap:wrap;opacity:0;transition:opacity .3s ease .16s;}
.dots.show{opacity:1;}
.dot{width:6px;height:6px;border-radius:50%;border:none;padding:0;cursor:pointer;transition:background .2s,transform .2s;}
.dot.chat {background:rgba(22,24,32,.15);}
.dot.trans{background:rgba(158,123,58,.4);}
.dot.adj  {background:rgba(22,24,32,.3);}
.dot.cur  {background:var(--txt);transform:scale(1.5);}

.ctrls{display:flex;align-items:center;gap:7px;flex-wrap:wrap;}

/* iframe */
.fr{position:absolute;inset:0;width:100%;height:100%;border:none;opacity:0;transition:opacity .5s;pointer-events:none;}
.fr.on{opacity:1;pointer-events:auto;}

@media(max-width:700px){
  .lb-body{grid-template-columns:1fr;grid-template-rows:auto 1fr;}
  .lb-right{min-height:260px;order:-1;}
  .lb-left{border-right:none;border-bottom:1px solid var(--brd);padding:20px;}
}
</style>
</head>
<body>

<!-- LIGHTBOX only — no card grid -->
<div class="lb" id="lb">
  <div class="lb-box">
    <div class="lb-top">
      <span class="lb-scen" id="lb-scen">Scenario 01</span>
      <span class="lb-name" id="lb-name"></span>
      <div class="lb-ctrls">
        <button class="btn off" id="b-psc">&#9664;&#9664;</button>
        <button class="btn off" id="b-pst">&#9664; Step</button>
        <button class="btn"     id="b-pause">&#9646;&#9646;</button>
        <button class="btn"     id="b-nst">Step &#9654;</button>
        <button class="btn"     id="b-nsc">&#9654;&#9654;</button>
        <span class="step-cnt"  id="s-cnt">1/1</span>
      </div>
      <button class="btn-close" id="b-close">&#10005;</button>
    </div>
    <div class="lb-prog"><div class="lb-pf" id="pf"></div></div>
    <div class="lb-body ph-red" id="lb-body">
      <div class="lb-left">
        <div class="pill ph-red" id="pill"><div class="pill-dot"></div><span id="pill-txt"></span></div>
        <h2 class="hl" id="hl"></h2>
        <p  class="st" id="st"></p>
        <div class="dots" id="dots"></div>
        <div class="ctrls">
          <button class="btn off" id="c-psc">&#9664;&#9664;</button>
          <button class="btn off" id="c-pst">&#9664; Step</button>
          <button class="btn"     id="c-pause">&#9646;&#9646;</button>
          <button class="btn"     id="c-nst">Step &#9654;</button>
          <button class="btn"     id="c-nsc">&#9654;&#9654;</button>
          <span class="step-cnt"  id="c-cnt">1/1</span>
        </div>
      </div>
      <div class="lb-right" id="lb-right"></div>
    </div>
  </div>
</div>

<script>
var SC=[{"num": "01", "title": "The Invoice Chase", "desc": "3 overdue invoices. The chatbot waits. The Adjutant chases them at 3 AM.", "steps": [{"phase": "red", "label": "AI Chatbot — Waits to be asked", "hl": "The chatbot has been sitting idle — <em>all morning.</em>", "sub": "It has no idea three invoices are overdue. It will not check. It will not act."}, {"phase": "red", "label": "AI Chatbot — Waits to be asked", "hl": "Your team finally notices. <em>Someone asks.</em>", "sub": "“Which of our invoices are overdue?”"}, {"phase": "red", "label": "AI Chatbot — Waits to be asked", "hl": "The chatbot lists them. <em>And stops.</em>", "sub": "“Invoice #4821 — Acme Corp — $8,240 — 47 days. Would you like me to draft a chase email?”"}, {"phase": "transition", "label": "Now — watch the Adjutant", "hl": "3 AM. <em>The Adjutant is already checking.</em>", "sub": "No one asked. No trigger needed. It runs on schedule."}, {"phase": "gold", "label": "Adjutant — Already on it", "hl": "Overdue invoice detected. <em>Acme Corp. $8,240.</em>", "sub": "47 days overdue. Flagged as priority. Chase sequence initiated automatically."}, {"phase": "gold", "label": "Adjutant — Already on it", "hl": "Professional chase email drafted. <em>Sent at 3:04 AM.</em>", "sub": "Tone-matched to your firm. Invoice number, amount, due date — all pulled from your system."}, {"phase": "gold", "label": "Adjutant — Already on it", "hl": "Invoice #5103 — Beta Systems. <em>$4,120. 31 days.</em>", "sub": "Second chase email drafted. Different tone — first reminder, not escalation."}, {"phase": "gold", "label": "Adjutant — Already on it", "hl": "Invoice #6089 — Delta Ltd. <em>$2,980. 22 days.</em>", "sub": "Third email sent. Friendly first-touch. Link to invoice included."}, {"phase": "green", "label": "Adjutant — Complete", "hl": "All three chased. <em>CRM updated. Log filed.</em>", "sub": "Each email logged. CRM records updated. Escalation flags set if no response in 5 days."}, {"phase": "green", "label": "Adjutant — Complete", "hl": "Acme Corp replies. <em>Payment confirmed.</em>", "sub": "“Sorry for the delay — payment processed today.” $8,240 received."}, {"phase": "green", "label": "Adjutant — Complete", "hl": "Morning briefing ready. <em>7:55 AM.</em>", "sub": "Summary report in your inbox. What was chased, who replied, what’s still outstanding."}]}, {"num": "02", "title": "New Client Intake", "desc": "A prospect submits at 11:42 PM. The chatbot sleeps. The Adjutant responds in 60 seconds.", "steps": [{"phase": "red", "label": "AI Chatbot — Waits to be asked", "hl": "An enquiry arrives at <em>11:42 PM.</em>", "sub": "Morrison & Co submitted a contact form. The chatbot has no idea."}, {"phase": "red", "label": "AI Chatbot — Waits to be asked", "hl": "The chatbot sits idle. <em>All night.</em>", "sub": "No notification. No acknowledgement. No follow-up. Morrison & Co waits."}, {"phase": "transition", "label": "Now — watch the Adjutant", "hl": "Same enquiry. <em>Same time.</em>", "sub": "11:42 PM. Morrison & Co submits the same contact form."}, {"phase": "gold", "label": "Adjutant — Already on it", "hl": "Enquiry received. <em>Classified in 4 seconds.</em>", "sub": "Adjutant reads the form, scores intent, identifies the firm type and likely need."}, {"phase": "gold", "label": "Adjutant — Already on it", "hl": "Personalised response sent. <em>11:43 PM.</em>", "sub": "Firm name, relevant services, specific next steps. Not a template — a tailored reply."}, {"phase": "gold", "label": "Adjutant — Already on it", "hl": "CRM record created. <em>Meeting link sent.</em>", "sub": "Morrison & Co added to CRM. Discovery call link sent. Follow-up sequence armed."}, {"phase": "green", "label": "Adjutant — Complete", "hl": "Call booked. File created. <em>11:44 PM.</em>", "sub": "Wednesday 10am confirmed. CRM record created. Matter code assigned."}, {"phase": "green", "label": "Adjutant — Complete", "hl": "Morning briefing ready. <em>7:55 AM.</em>", "sub": "New client summary in your inbox. Background, intent, booked call, prep notes."}]}, {"num": "03", "title": "Month-End Close", "desc": "2,847 transactions reconciled overnight. Board report in the CFO inbox by midnight.", "steps": [{"phase": "red", "label": "AI Chatbot — Waits to be asked", "hl": "2,847 transactions. <em>9am deadline.</em>", "sub": "The chatbot has no awareness of month-end. It will not act unless asked."}, {"phase": "red", "label": "AI Chatbot — Waits to be asked", "hl": "You ask for help. <em>It gives you a checklist.</em>", "sub": "“Export bank statement. Match transactions. Investigate discrepancies. Good luck!”"}, {"phase": "transition", "label": "Now — watch the Adjutant", "hl": "Midnight. <em>The Adjutant starts automatically.</em>", "sub": "Month-end detected. Reconciliation initiated. No one asked."}, {"phase": "gold", "label": "Adjutant — Already on it", "hl": "2,847 transactions matched. <em>12 flagged.</em>", "sub": "Bank vs ledger reconciliation complete. 12 anomalies identified with notes."}, {"phase": "green", "label": "Adjutant — Complete", "hl": "Board report generated. <em>Sent at 11:58 PM.</em>", "sub": "P&L, variance commentary, flagged items — formatted to your board template."}, {"phase": "green", "label": "Adjutant — Complete", "hl": "Anomalies resolved. <em>Audit trail filed.</em>", "sub": "Each flagged transaction documented with source data and resolution notes."}]}, {"num": "04", "title": "The NDA", "desc": "New deal created in CRM. NDA drafted, flagged, and filed in 4 minutes flat.", "steps": [{"phase": "red", "label": "AI Chatbot — Waits to be asked", "hl": "New deal. NDA needed. <em>You have to ask.</em>", "sub": "The Apex Partners deal was created an hour ago. The chatbot has no idea."}, {"phase": "transition", "label": "Now — watch the Adjutant", "hl": "Deal created. <em>Adjutant detects it in seconds.</em>", "sub": "New opportunity flagged in CRM. NDA workflow triggered automatically."}, {"phase": "gold", "label": "Adjutant — Already on it", "hl": "NDA template selected. <em>Parties identified.</em>", "sub": "Correct template matched to deal type. Counterparty details pulled from CRM."}, {"phase": "gold", "label": "Adjutant — Already on it", "hl": "NDA drafted. <em>Key clauses flagged for review.</em>", "sub": "Document ready in 90 seconds. Non-standard clauses highlighted for your lawyer."}, {"phase": "green", "label": "Adjutant — Complete", "hl": "Signed. Filed. CRM updated. <em>4 minutes flat.</em>", "sub": "DocuSign sent. Signed copy stored. Deal stage advanced. Reminder set for expiry."}]}, {"num": "05", "title": "The Calendar", "desc": "4 people, 3 time zones. Meeting booked in 3 minutes with zero emails.", "steps": [{"phase": "red", "label": "AI Chatbot — Waits to be asked", "hl": "4 people. 3 time zones. <em>You have to figure it out.</em>", "sub": "“When does everyone work? What’s the overlap? Can someone send a Doodle?”"}, {"phase": "transition", "label": "Now — watch the Adjutant", "hl": "Meeting requested. <em>Adjutant takes over.</em>", "sub": "4 attendees identified. Calendars accessed. Timezone logic applied."}, {"phase": "gold", "label": "Adjutant — Already on it", "hl": "All calendars scanned. <em>Overlaps found.</em>", "sub": "Working hours in EST, GMT, SGT cross-referenced. Conflicts filtered out."}, {"phase": "gold", "label": "Adjutant — Already on it", "hl": "Optimal slot found. <em>Thu 8am EST.</em>", "sub": "1pm GMT · 9pm SGT. Works for all four attendees. Conflict-free."}, {"phase": "green", "label": "Adjutant — Complete", "hl": "Booked. Agenda sent. <em>Reminders armed.</em>", "sub": "All confirmed. Structured agenda with background docs. 24hr and 1hr alerts for all parties."}]}, {"num": "06", "title": "Compliance Deadline", "desc": "47 matters audited every Sunday night. Filing deadline caught 7 days early.", "steps": [{"phase": "red", "label": "AI Chatbot — Waits to be asked", "hl": "Filing due in <em>7 days.</em> Has anyone noticed?", "sub": "You ask the chatbot when your next regulatory filing is due. It doesn’t know."}, {"phase": "transition", "label": "Now — watch the Adjutant", "hl": "Sunday night. <em>Adjutant runs its weekly audit.</em>", "sub": "47 active matters reviewed. Deadlines, renewals, and filings cross-checked."}, {"phase": "gold", "label": "Adjutant — Already on it", "hl": "Filing deadline detected. <em>7 days out.</em>", "sub": "Regulatory submission due Friday. Responsible party identified. Documents located."}, {"phase": "gold", "label": "Adjutant — Already on it", "hl": "Checklist generated. <em>Owner notified.</em>", "sub": "Step-by-step submission checklist created. Assigned to compliance lead with deadline flagged."}, {"phase": "green", "label": "Adjutant — Complete", "hl": "Filed 3 days early. <em>Confirmation logged.</em>", "sub": "Submission complete. Regulator acknowledgement stored. Next deadline already queued."}]}, {"num": "07", "title": "Prospect Follow-Up", "desc": "Cold lead at day 11. Adjutant nurtures it back. Call booked by day 14.", "steps": [{"phase": "red", "label": "AI Chatbot — Waits to be asked", "hl": "Day 11. <em>No reply. Lead going cold.</em>", "sub": "The prospect hasn’t responded since the initial enquiry. Your chatbot doesn’t know."}, {"phase": "transition", "label": "Now — watch the Adjutant", "hl": "Day 11. <em>Adjutant flags the cold lead.</em>", "sub": "CRM shows no activity for 11 days. Re-engagement sequence triggered."}, {"phase": "gold", "label": "Adjutant — Already on it", "hl": "Re-engagement email sent. <em>Day 11, 9am.</em>", "sub": "Relevant case study attached. Soft call-to-action. Tone: helpful, not pushy."}, {"phase": "gold", "label": "Adjutant — Already on it", "hl": "Prospect opens email. <em>Clicks case study.</em>", "sub": "Engagement detected. Adjutant upgrades lead status. Follow-up call suggested."}, {"phase": "green", "label": "Adjutant — Complete", "hl": "Call booked. <em>Day 14.</em>", "sub": "Discovery call confirmed for Tuesday 2pm. Background brief prepared for your team."}, {"phase": "green", "label": "Adjutant — Complete", "hl": "Brief ready. <em>Team notified.</em>", "sub": "Prospect background, previous touchpoints, and suggested talking points in one doc."}]}, {"num": "08", "title": "The Weekly Report", "desc": "7 data sources pulled, compiled, and in leadership inboxes by 4:05 PM every Friday.", "steps": [{"phase": "red", "label": "AI Chatbot — Waits to be asked", "hl": "Friday 3pm. <em>Report not started.</em>", "sub": "The chatbot can’t pull from your systems. Somebody has to do it manually."}, {"phase": "transition", "label": "Now — watch the Adjutant", "hl": "7 sources. Report delivered. <em>Friday 4:05 PM.</em>", "sub": "Every week. Same time. Without fail."}, {"phase": "gold", "label": "Adjutant — Already on it", "hl": "Data pull initiated. <em>4:00 PM. Automatic.</em>", "sub": "7 systems: billing, CRM, time tracking, headcount, finance — all pulled simultaneously."}, {"phase": "gold", "label": "Adjutant — Already on it", "hl": "Report compiled. <em>4:03 PM.</em> Variance analysed.", "sub": "Formatted to your board template. Week-on-week variances highlighted with commentary."}, {"phase": "green", "label": "Adjutant — Complete", "hl": "In leadership inboxes. <em>4:05 PM.</em>", "sub": "6 recipients. PDF and editable version. Summary slide included."}]}, {"num": "09", "title": "New Hire Onboarding", "desc": "23 tasks across 4 departments. All done by Thursday morning. Zero coordination.", "steps": [{"phase": "red", "label": "AI Chatbot — Waits to be asked", "hl": "New hire starts <em>Monday.</em> 23 tasks outstanding.", "sub": "IT, HR, Finance, Facilities — each department has tasks. Nobody is coordinating."}, {"phase": "transition", "label": "Now — watch the Adjutant", "hl": "Offer accepted. <em>Adjutant starts the clock.</em>", "sub": "23 onboarding tasks identified. Assigned to 4 departments. Timeline set."}, {"phase": "gold", "label": "Adjutant — Already on it", "hl": "IT provisioned. <em>Laptop ordered. Access set up.</em>", "sub": "Device shipped. Email created. System access configured for role."}, {"phase": "gold", "label": "Adjutant — Already on it", "hl": "HR pack sent. <em>Contracts signed digitally.</em>", "sub": "All HR documents sent via DocuSign. Signed copies stored and filed automatically."}, {"phase": "green", "label": "Adjutant — Complete", "hl": "All 23 tasks complete. <em>Thursday morning.</em>", "sub": "4 days before start. Every department confirmed. Welcome pack sent. Day 1 agenda ready."}]}, {"num": "10", "title": "The Sick Day", "desc": "34 tasks reassigned, 3 meetings rescheduled, zero client impact. By 8:30 AM.", "steps": [{"phase": "red", "label": "AI Chatbot — Waits to be asked", "hl": "Sarah is sick. <em>34 tasks. 3 meetings. No plan.</em>", "sub": "Her manager finds out at 8am. The chatbot can’t reassign tasks or reschedule meetings."}, {"phase": "transition", "label": "Now — watch the Adjutant", "hl": "Absence logged. <em>Adjutant begins redistribution.</em>", "sub": "8:02 AM. Sarah marks herself absent. The Adjutant starts immediately."}, {"phase": "gold", "label": "Adjutant — Already on it", "hl": "34 tasks assessed. <em>Reassigned by priority.</em>", "sub": "Urgent tasks to available team members. Non-urgent deferred with client notification."}, {"phase": "gold", "label": "Adjutant — Already on it", "hl": "3 meetings rescheduled. <em>Clients notified.</em>", "sub": "Professional apologies sent. New times proposed and confirmed within 20 minutes."}, {"phase": "green", "label": "Adjutant — Complete", "hl": "All clear. <em>8:30 AM.</em>", "sub": "Every task covered. Every meeting rescheduled. Every client informed. Log filed."}]}];
var AN=["PCFET0NUWVBFIGh0bWw+CjxodG1sPjxoZWFkPjxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KPHN0eWxlPgovKiDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZAKICAgdjgzIOKAlCAiVGhlIEludm9pY2UgQ2hhc2UiIChmaW5hbCBjb250aW51aXR5IHJlZmluZW1lbnRzKQoKICAgQ2hhbmdlcyBmcm9tIHY4MjoKICAg4oCiIEVudHJhbmNlIG9yZGVyIGZsaXBwZWQ6IGludm9pY2VzIGZhZGUgaW4gZmlyc3QgKGluIHBsYWNlLAogICAgIG5vIHNsaWRlKSwgdGhlbiBjbG9jayBhbmQgYm90IGVudGVyIFNJTVVMVEFORU9VU0xZIHdpdGggYQogICAgIHN1YnRsZSBkb3dud2FyZCBzbGlkZSBtb3Rpb24uCiAgIOKAoiBIYW5kIHJvdGF0aW9uIG5vdyBiZWdpbnMgYWZ0ZXIgY2xvY2sgaGFzIGVudGVyZWQgKG5vIGxvbmdlcgogICAgIHN0YXJ0cyBiZWZvcmUgdmlld2VyIGNhbiBzZWUgdGhlIGNsb2NrKS4KICAg4oCiIEJvdCBmaWxsIHRyYW5zaXRpb25zIGJsdWUg4oaSIEdSRUVOIGF0IHRoZSB3YWtlIG1vbWVudAogICAgICh3YXM6IGJsdWUgc3RheXMgKyBhY2NlbnRzIGdvIG9yYW5nZS9ncmVlbikuCiAgIOKAoiBCb3QgaGFzIGdlbnRsZSB2ZXJ0aWNhbCBmbG9hdGluZyBtb3Rpb24gYWZ0ZXIgd2FrZSAocmVwbGFjZXMKICAgICB0aGUgc2NhbGUtcHVsc2Utd2l0aC1zdGF0dXMtZG90IGZyb20gdjgyKS4gUHVzaC11cCBib3VuY2UKICAgICByZW1haW5zIGFzIHRoZSBhY3RpdmF0aW9uIGJlYXQuCiAgIOKAoiBPVkVSRFVFIGxhYmVsIHRleHQgaXMgbm93IHdoaXRlICh3YXMgZGFyayBibHVlKSBmb3IgaGlnaGVyCiAgICAgY29udHJhc3QgYWdhaW5zdCB0aGUgb3JhbmdlIGJhY2tncm91bmQuCiAgIOKAoiBCb3R0b20gIkFMTCBSRVNPTFZFRCIgdGV4dCByZW1vdmVkIGVudGlyZWx5LiBUaGUgUEFJRCBiYWRnZQogICAgIHNlcnZlcyBhcyB0aGUgcmVzb2x1dGlvbiBpbmRpY2F0b3I7IGZpbmFsIHN0YXRlIGlzIHF1aWV0ZXIuCgogICBSZXVzZWQgZnJvbSBlc3RhYmxpc2hlZCBzeXN0ZW06CiAgICAg4oCiIENvbG9yIHBhbGV0dGUgYW5kIGZsYXQgZGVzaWduIHJ1bGVzCiAgICAg4oCiIGxlcnAvZW8vZWlvL3NldE9wIGhlbHBlcnMKICAgICDigKIgdjM3LXN0eWxlIGZpbGxlZCBpbnZvaWNlIGRvY3VtZW50CiAgICAg4oCiIFNpbmdsZSBjdXJ2ZWQgYW50ZW5uYSB3aXRoIHN0YXR1cyBkb3QKICAgICDigKIgQ29ubmVjdG9yIGxpbmUgYmV0d2VlbiBjbG9jayBhbmQgYm90CiAgIOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkCAqLwoqe2JveC1zaXppbmc6Ym9yZGVyLWJveDttYXJnaW46MDtwYWRkaW5nOjB9CmJvZHl7YmFja2dyb3VuZDp0cmFuc3BhcmVudH0KLnN0b3J5ewogIGRpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47YWxpZ24taXRlbXM6Y2VudGVyOwogIHBhZGRpbmc6MnJlbSAxcmVtIDIuNXJlbTsKICBmb250LWZhbWlseTotYXBwbGUtc3lzdGVtLHN5c3RlbS11aSxzYW5zLXNlcmlmOwp9Ci5zY2VuZS13cmFwe3Bvc2l0aW9uOnJlbGF0aXZlO3dpZHRoOjM0MHB4O2hlaWdodDo0MzBweH0KPC9zdHlsZT4KPHN0eWxlPgpodG1sLGJvZHl7bWFyZ2luOjA7cGFkZGluZzowO2JhY2tncm91bmQ6I0Y3RjNFRCFpbXBvcnRhbnQ7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTtvdmVyZmxvdzpoaWRkZW47fQpib2R5e2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjt9Cjwvc3R5bGU+PC9oZWFkPjxib2R5PgoKPGRpdiBjbGFzcz0ic3RvcnkiPgo8ZGl2IGNsYXNzPSJzY2VuZS13cmFwIj4KICA8c3ZnIHdpZHRoPSIzNDAiIGhlaWdodD0iNDMwIiB2aWV3Qm94PSIwIDAgMzQwIDQzMCIKICAgICAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogICAgPCEtLSDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZAKICAgICAgICAgQ09OTkVDVE9SIOKAlCB0aGluIHRlYWwgbGluZSBiZXR3ZWVuIGNsb2NrIGFuZCBib3QKICAgICAgICAg4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQIC0tPgogICAgPGxpbmUgaWQ9ImNvbm5lY3RvciIgeDE9IjEwMCIgeTE9IjExMCIgeDI9IjI0MCIgeTI9IjExMCIKICAgICAgICAgIHN0cm9rZT0iI0M4MTAyRSIgc3Ryb2tlLXdpZHRoPSIuOCIKICAgICAgICAgIHN0cm9rZS1kYXNoYXJyYXk9IjMgMyIgb3BhY2l0eT0iMCIvPgoKICAgIDwhLS0g4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQCiAgICAgICAgIExFRlQg4oCUIENMT0NLCiAgICAgICAgIFNsaWRlcyBkb3duIGZyb20geT04MCB0byB5PTExMCBkdXJpbmcgZW50cnkuCiAgICAgICAgIE91dGxpbmUgYnkgZGVmYXVsdDsgaW5uZXIgZmlsbCByYW1wcyBhcyAzIEFNIGFwcHJvYWNoZXMuCiAgICAgICAgIOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkCAtLT4KICAgIDxnIGlkPSJjbG9jayIgb3BhY2l0eT0iMCIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoNzUsMTEwKSI+CiAgICAgIDxjaXJjbGUgaWQ9ImNsb2NrSW5uZXJGaWxsIiBjeD0iMCIgY3k9IjAiIHI9IjIyIgogICAgICAgICAgICAgIGZpbGw9IiNGMEUwRDkiIG9wYWNpdHk9IjAiLz4KICAgICAgPGNpcmNsZSBjeD0iMCIgY3k9IjAiIHI9IjI0IgogICAgICAgICAgICAgIGZpbGw9Im5vbmUiIHN0cm9rZT0iI0M4MTAyRSIgc3Ryb2tlLXdpZHRoPSIxLjYiLz4KICAgICAgPGcgaWQ9ImNsb2NrTWFya2VycyI+PC9nPgogICAgICA8bGluZSBpZD0iaG91ckhhbmQiIHgxPSIwIiB5MT0iMCIgeDI9IjAiIHkyPSItMTQiCiAgICAgICAgICAgIHN0cm9rZT0iI0M4MTAyRSIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiLz4KICAgICAgPGxpbmUgaWQ9Im1pbnV0ZUhhbmQiIHgxPSIwIiB5MT0iMCIgeDI9IjAiIHkyPSItMjAiCiAgICAgICAgICAgIHN0cm9rZT0iI0M4MTAyRSIgc3Ryb2tlLXdpZHRoPSIxLjQiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIvPgogICAgICA8Y2lyY2xlIGlkPSJwaXZvdCIgY3g9IjAiIGN5PSIwIiByPSIyIiBmaWxsPSIjQzgxMDJFIi8+CiAgICA8L2c+CgogICAgPCEtLSDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZAKICAgICAgICAgUklHSFQg4oCUIEJPVAogICAgICAgICBTbGlkZXMgZG93biBmcm9tIHk9ODAgdG8geT0xMTAgZHVyaW5nIGVudHJ5LgogICAgICAgICBPdXRsaW5lIGRlZmF1bHQ7IGZpbGxzIEJMVUUgYmVmb3JlIHdha2U7IHRyYW5zaXRpb25zIHRvCiAgICAgICAgIEdSRUVOIGF0IHdha2UuIEFmdGVyIHdha2U6IGdlbnRsZSB2ZXJ0aWNhbCBmbG9hdGluZy4KICAgICAgICAg4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQIC0tPgogICAgPGcgaWQ9ImJvdCIgb3BhY2l0eT0iMCIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMjY1LDExMCkiPgogICAgICA8cGF0aCBpZD0iYW50ZW5uYSIgZD0iTSAwLC0xNiBRIDgsLTI2IDE1LC0zMiIKICAgICAgICAgICAgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjQzJDMkMyIiBzdHJva2Utd2lkdGg9IjEuOCIKICAgICAgICAgICAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIi8+CiAgICAgIDxjaXJjbGUgaWQ9InN0YXR1c1B1bHNlIiBjeD0iMTUiIGN5PSItMzIiIHI9IjYiCiAgICAgICAgICAgICAgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjQzgxMDJFIiBzdHJva2Utd2lkdGg9IjEuMiIgb3BhY2l0eT0iMCIvPgogICAgICA8Y2lyY2xlIGlkPSJzdGF0dXNEb3QiIGN4PSIxNSIgY3k9Ii0zMiIgcj0iNiIgZmlsbD0iI0M4MTAyRSIvPgoKICAgICAgPCEtLSBJbm5lciBmaWxsOiBzdGFydHMgYmx1ZSAoI0YwRTBEOSksIHRyYW5zaXRpb25zIHRvIGdyZWVuCiAgICAgICAgICAgKCNDODEwMkUpIGF0IHdha2UuIEltcGxlbWVudGVkIGFzIHRoZSBTQU1FIHJlY3Qgd2l0aAogICAgICAgICAgIGNvbG9yIHVwZGF0ZWQgdmlhIEpTIGVhY2ggZnJhbWUuIC0tPgogICAgICA8cmVjdCBpZD0iYm90SW5uZXJGaWxsIiB4PSItMjAiIHk9Ii0xNiIgd2lkdGg9IjQwIiBoZWlnaHQ9IjMyIiByeD0iNiIKICAgICAgICAgICAgZmlsbD0iI0YwRTBEOSIgb3BhY2l0eT0iMCIvPgogICAgICA8cmVjdCBpZD0iYm90SGVhZCIgeD0iLTIwIiB5PSItMTYiIHdpZHRoPSI0MCIgaGVpZ2h0PSIzMiIgcng9IjYiCiAgICAgICAgICAgIGZpbGw9Im5vbmUiIHN0cm9rZT0iI0M4MTAyRSIgc3Ryb2tlLXdpZHRoPSIxLjYiLz4KICAgICAgPGcgaWQ9ImV5ZXNDbG9zZWQiIHN0cm9rZT0iI0M4MTAyRSIgc3Ryb2tlLXdpZHRoPSIxLjYiCiAgICAgICAgIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgZmlsbD0ibm9uZSI+CiAgICAgICAgPHBhdGggZD0iTSAtMTAsLTMgUSAtNywtMSAtNCwtMyIvPgogICAgICAgIDxwYXRoIGQ9Ik0gNCwtMyBRIDcsLTEgMTAsLTMiLz4KICAgICAgPC9nPgogICAgICA8ZyBpZD0iZXllc09wZW4iIGZpbGw9IiNDODEwMkUiIG9wYWNpdHk9IjAiPgogICAgICAgIDxjaXJjbGUgY3g9Ii03IiBjeT0iLTMiIHI9IjIiLz4KICAgICAgICA8Y2lyY2xlIGN4PSI3IiBjeT0iLTMiIHI9IjIiLz4KICAgICAgPC9nPgogICAgICA8cGF0aCBpZD0iYm90U21pbGUiIGQ9Ik0gLTcsNSBRIDAsOCA3LDUiIGZpbGw9Im5vbmUiCiAgICAgICAgICAgIHN0cm9rZT0iI0M4MTAyRSIgc3Ryb2tlLXdpZHRoPSIxLjYiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIvPgogICAgPC9nPgoKICAgIDwhLS0g4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQCiAgICAgICAgIENFTlRFUiDigJQgSU5WT0lDRSBST1cgKGFwcGVhcnMgZmlyc3QsIGluIHBsYWNlKQogICAgICAgICDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZAgLS0+CgogICAgPCEtLSBMRUZUIElOVk9JQ0UgKHVuZGVyIGNsb2NrKSAtLT4KICAgIDxnIGlkPSJpbnYxR3JvdXAiIG9wYWNpdHk9IjAiPgogICAgICA8ZyBpZD0iaW52MSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoNzUsMjE1KSI+CiAgICAgICAgPHJlY3QgaWQ9ImludjFCb2R5IiB4PSItMzAiIHk9Ii00MCIgd2lkdGg9IjYwIiBoZWlnaHQ9IjgwIiByeD0iNSIKICAgICAgICAgICAgICBmaWxsPSIjRjBFMEQ5IiBzdHJva2U9IiNDODEwMkUiIHN0cm9rZS13aWR0aD0iMS40Ii8+CiAgICAgICAgPGxpbmUgeDE9Ii0yMiIgeTE9Ii0yOSIgeDI9IjIyIiB5Mj0iLTI5IgogICAgICAgICAgICAgIHN0cm9rZT0iI0M4MTAyRSIgc3Ryb2tlLXdpZHRoPSIuNSIgb3BhY2l0eT0iLjUiLz4KICAgICAgICA8cmVjdCB4PSItMjIiIHk9Ii0yMCIgd2lkdGg9IjMyIiBoZWlnaHQ9IjIiIHJ4PSIxIgogICAgICAgICAgICAgIGZpbGw9IiNDMkMyQzIiIG9wYWNpdHk9Ii41Ii8+CiAgICAgICAgPHRleHQgeD0iMCIgeT0iOCIgdGV4dC1hbmNob3I9Im1pZGRsZSIKICAgICAgICAgICAgICBmb250LWZhbWlseT0iLWFwcGxlLXN5c3RlbSxzeXN0ZW0tdWksc2Fucy1zZXJpZiIKICAgICAgICAgICAgICBmb250LXNpemU9IjE0IiBmb250LXdlaWdodD0iODAwIiBsZXR0ZXItc3BhY2luZz0iLjMiCiAgICAgICAgICAgICAgZmlsbD0iI0M4MTAyRSI+JCA0LDIwMDwvdGV4dD4KICAgICAgICA8dGV4dCB4PSIwIiB5PSIyMiIgdGV4dC1hbmNob3I9Im1pZGRsZSIKICAgICAgICAgICAgICBmb250LWZhbWlseT0iLWFwcGxlLXN5c3RlbSxzeXN0ZW0tdWksc2Fucy1zZXJpZiIKICAgICAgICAgICAgICBmb250LXNpemU9IjYiIGZvbnQtd2VpZ2h0PSI2MDAiIGxldHRlci1zcGFjaW5nPSIxLjUiCiAgICAgICAgICAgICAgZmlsbD0iI0MyQzJDMiIgb3BhY2l0eT0iLjciPkFNT1VOVCBEVUU8L3RleHQ+CiAgICAgICAgPGcgaWQ9ImludjFDaGVjayIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTIyLC0zMikgc2NhbGUoMCkiPgogICAgICAgICAgPGNpcmNsZSByPSI2IiBmaWxsPSIjQzgxMDJFIi8+CiAgICAgICAgICA8cG9seWxpbmUgcG9pbnRzPSItMi41LDAgLS43LDEuNyAyLjUsLTEuNyIgZmlsbD0ibm9uZSIKICAgICAgICAgICAgICAgICAgICBzdHJva2U9IiMwRjNEM0UiIHN0cm9rZS13aWR0aD0iMS40IgogICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPgogICAgICAgIDwvZz4KICAgICAgPC9nPgogICAgICA8ZyBpZD0iaW52MUV4Y2wiPgogICAgICAgIDxjaXJjbGUgY3g9IjAiIGN5PSIwIiByPSIxMSIgZmlsbD0iI0M4MTAyRSIvPgogICAgICAgIDx0ZXh0IHg9IjAiIHk9IjUiIHRleHQtYW5jaG9yPSJtaWRkbGUiCiAgICAgICAgICAgICAgZm9udC1mYW1pbHk9Ii1hcHBsZS1zeXN0ZW0sc3lzdGVtLXVpLHNhbnMtc2VyaWYiCiAgICAgICAgICAgICAgZm9udC1zaXplPSIxNSIgZm9udC13ZWlnaHQ9IjgwMCIKICAgICAgICAgICAgICBmaWxsPSIjRjBFMEQ5Ij4hPC90ZXh0PgogICAgICA8L2c+CiAgICA8L2c+CgogICAgPCEtLSBDRU5URVIgSU5WT0lDRSAtLT4KICAgIDxnIGlkPSJpbnYyR3JvdXAiIG9wYWNpdHk9IjAiPgogICAgICA8ZyBpZD0iaW52MiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMTcwLDIxNSkiPgogICAgICAgIDxyZWN0IGlkPSJpbnYyQm9keSIgeD0iLTMwIiB5PSItNDAiIHdpZHRoPSI2MCIgaGVpZ2h0PSI4MCIgcng9IjUiCiAgICAgICAgICAgICAgZmlsbD0iI0YwRTBEOSIgc3Ryb2tlPSIjQzgxMDJFIiBzdHJva2Utd2lkdGg9IjEuNCIvPgogICAgICAgIDxsaW5lIHgxPSItMjIiIHkxPSItMjkiIHgyPSIyMiIgeTI9Ii0yOSIKICAgICAgICAgICAgICBzdHJva2U9IiNDODEwMkUiIHN0cm9rZS13aWR0aD0iLjUiIG9wYWNpdHk9Ii41Ii8+CiAgICAgICAgPHJlY3QgeD0iLTIyIiB5PSItMjAiIHdpZHRoPSIzNCIgaGVpZ2h0PSIyIiByeD0iMSIKICAgICAgICAgICAgICBmaWxsPSIjQzJDMkMyIiBvcGFjaXR5PSIuNSIvPgogICAgICAgIDx0ZXh0IHg9IjAiIHk9IjgiIHRleHQtYW5jaG9yPSJtaWRkbGUiCiAgICAgICAgICAgICAgZm9udC1mYW1pbHk9Ii1hcHBsZS1zeXN0ZW0sc3lzdGVtLXVpLHNhbnMtc2VyaWYiCiAgICAgICAgICAgICAgZm9udC1zaXplPSIxNCIgZm9udC13ZWlnaHQ9IjgwMCIgbGV0dGVyLXNwYWNpbmc9Ii4zIgogICAgICAgICAgICAgIGZpbGw9IiNDODEwMkUiPiQgNyw0MDA8L3RleHQ+CiAgICAgICAgPHRleHQgeD0iMCIgeT0iMjIiIHRleHQtYW5jaG9yPSJtaWRkbGUiCiAgICAgICAgICAgICAgZm9udC1mYW1pbHk9Ii1hcHBsZS1zeXN0ZW0sc3lzdGVtLXVpLHNhbnMtc2VyaWYiCiAgICAgICAgICAgICAgZm9udC1zaXplPSI2IiBmb250LXdlaWdodD0iNjAwIiBsZXR0ZXItc3BhY2luZz0iMS41IgogICAgICAgICAgICAgIGZpbGw9IiNDMkMyQzIiIG9wYWNpdHk9Ii43Ij5BTU9VTlQgRFVFPC90ZXh0PgogICAgICAgIDxnIGlkPSJpbnYyQ2hlY2siIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yMiwtMzIpIHNjYWxlKDApIj4KICAgICAgICAgIDxjaXJjbGUgcj0iNiIgZmlsbD0iI0M4MTAyRSIvPgogICAgICAgICAgPHBvbHlsaW5lIHBvaW50cz0iLTIuNSwwIC0uNywxLjcgMi41LC0xLjciIGZpbGw9Im5vbmUiCiAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPSIjMEYzRDNFIiBzdHJva2Utd2lkdGg9IjEuNCIKICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4KICAgICAgICA8L2c+CiAgICAgIDwvZz4KICAgICAgPGcgaWQ9ImludjJFeGNsIj4KICAgICAgICA8Y2lyY2xlIGN4PSIwIiBjeT0iMCIgcj0iMTEiIGZpbGw9IiNDODEwMkUiLz4KICAgICAgICA8dGV4dCB4PSIwIiB5PSI1IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIgogICAgICAgICAgICAgIGZvbnQtZmFtaWx5PSItYXBwbGUtc3lzdGVtLHN5c3RlbS11aSxzYW5zLXNlcmlmIgogICAgICAgICAgICAgIGZvbnQtc2l6ZT0iMTUiIGZvbnQtd2VpZ2h0PSI4MDAiCiAgICAgICAgICAgICAgZmlsbD0iI0YwRTBEOSI+ITwvdGV4dD4KICAgICAgPC9nPgogICAgPC9nPgoKICAgIDwhLS0gUklHSFQgSU5WT0lDRSAodW5kZXIgYm90KSAtLT4KICAgIDxnIGlkPSJpbnYzR3JvdXAiIG9wYWNpdHk9IjAiPgogICAgICA8ZyBpZD0iaW52MyIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMjY1LDIxNSkiPgogICAgICAgIDxyZWN0IGlkPSJpbnYzQm9keSIgeD0iLTMwIiB5PSItNDAiIHdpZHRoPSI2MCIgaGVpZ2h0PSI4MCIgcng9IjUiCiAgICAgICAgICAgICAgZmlsbD0iI0YwRTBEOSIgc3Ryb2tlPSIjQzgxMDJFIiBzdHJva2Utd2lkdGg9IjEuNCIvPgogICAgICAgIDxsaW5lIHgxPSItMjIiIHkxPSItMjkiIHgyPSIyMiIgeTI9Ii0yOSIKICAgICAgICAgICAgICBzdHJva2U9IiNDODEwMkUiIHN0cm9rZS13aWR0aD0iLjUiIG9wYWNpdHk9Ii41Ii8+CiAgICAgICAgPHJlY3QgeD0iLTIyIiB5PSItMjAiIHdpZHRoPSIzMCIgaGVpZ2h0PSIyIiByeD0iMSIKICAgICAgICAgICAgICBmaWxsPSIjQzJDMkMyIiBvcGFjaXR5PSIuNSIvPgogICAgICAgIDx0ZXh0IHg9IjAiIHk9IjgiIHRleHQtYW5jaG9yPSJtaWRkbGUiCiAgICAgICAgICAgICAgZm9udC1mYW1pbHk9Ii1hcHBsZS1zeXN0ZW0sc3lzdGVtLXVpLHNhbnMtc2VyaWYiCiAgICAgICAgICAgICAgZm9udC1zaXplPSIxNCIgZm9udC13ZWlnaHQ9IjgwMCIgbGV0dGVyLXNwYWNpbmc9Ii4zIgogICAgICAgICAgICAgIGZpbGw9IiNDODEwMkUiPiQgMSw4NTA8L3RleHQ+CiAgICAgICAgPHRleHQgeD0iMCIgeT0iMjIiIHRleHQtYW5jaG9yPSJtaWRkbGUiCiAgICAgICAgICAgICAgZm9udC1mYW1pbHk9Ii1hcHBsZS1zeXN0ZW0sc3lzdGVtLXVpLHNhbnMtc2VyaWYiCiAgICAgICAgICAgICAgZm9udC1zaXplPSI2IiBmb250LXdlaWdodD0iNjAwIiBsZXR0ZXItc3BhY2luZz0iMS41IgogICAgICAgICAgICAgIGZpbGw9IiNDMkMyQzIiIG9wYWNpdHk9Ii43Ij5BTU9VTlQgRFVFPC90ZXh0PgogICAgICAgIDxnIGlkPSJpbnYzQ2hlY2siIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yMiwtMzIpIHNjYWxlKDApIj4KICAgICAgICAgIDxjaXJjbGUgcj0iNiIgZmlsbD0iI0M4MTAyRSIvPgogICAgICAgICAgPHBvbHlsaW5lIHBvaW50cz0iLTIuNSwwIC0uNywxLjcgMi41LC0xLjciIGZpbGw9Im5vbmUiCiAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPSIjMEYzRDNFIiBzdHJva2Utd2lkdGg9IjEuNCIKICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4KICAgICAgICA8L2c+CiAgICAgIDwvZz4KICAgICAgPGcgaWQ9ImludjNFeGNsIj4KICAgICAgICA8Y2lyY2xlIGN4PSIwIiBjeT0iMCIgcj0iMTEiIGZpbGw9IiNDODEwMkUiLz4KICAgICAgICA8dGV4dCB4PSIwIiB5PSI1IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIgogICAgICAgICAgICAgIGZvbnQtZmFtaWx5PSItYXBwbGUtc3lzdGVtLHN5c3RlbS11aSxzYW5zLXNlcmlmIgogICAgICAgICAgICAgIGZvbnQtc2l6ZT0iMTUiIGZvbnQtd2VpZ2h0PSI4MDAiCiAgICAgICAgICAgICAgZmlsbD0iI0YwRTBEOSI+ITwvdGV4dD4KICAgICAgPC9nPgogICAgPC9nPgoKICAgIDwhLS0g4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQCiAgICAgICAgIE9WRVJEVUUgTEFCRUwgKGZpbGxlZCBvcmFuZ2UgKyBXSElURSB0ZXh0IGZvciBoaWdoIGNvbnRyYXN0KQogICAgICAgICDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZAgLS0+CiAgICA8ZyBpZD0ib3ZlcmR1ZUxhYmVsIiBvcGFjaXR5PSIwIj4KICAgICAgPHJlY3QgeD0iLTQ0IiB5PSItMTIiIHdpZHRoPSI4OCIgaGVpZ2h0PSIyNCIgcng9IjQiCiAgICAgICAgICAgIGZpbGw9IiNDODEwMkUiLz4KICAgICAgPHRleHQgeD0iMCIgeT0iNSIgdGV4dC1hbmNob3I9Im1pZGRsZSIKICAgICAgICAgICAgZm9udC1mYW1pbHk9Ii1hcHBsZS1zeXN0ZW0sc3lzdGVtLXVpLHNhbnMtc2VyaWYiCiAgICAgICAgICAgIGZvbnQtc2l6ZT0iMTAiIGZvbnQtd2VpZ2h0PSI4MDAiIGxldHRlci1zcGFjaW5nPSIzIgogICAgICAgICAgICBmaWxsPSIjRkZGRkZGIj5PVkVSRFVFPC90ZXh0PgogICAgPC9nPgoKICAgIDwhLS0g4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQCiAgICAgICAgIFBBSUQgTEFCRUwgKGZpbGxlZCBncmVlbiwgcG9wLWluKQogICAgICAgICDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZAgLS0+CiAgICA8ZyBpZD0icGFpZExhYmVsIiBvcGFjaXR5PSIwIj4KICAgICAgPHJlY3QgeD0iLTM2IiB5PSItMTIiIHdpZHRoPSI3MiIgaGVpZ2h0PSIyNCIgcng9IjQiCiAgICAgICAgICAgIGZpbGw9IiNDODEwMkUiLz4KICAgICAgPHRleHQgeD0iMCIgeT0iNSIgdGV4dC1hbmNob3I9Im1pZGRsZSIKICAgICAgICAgICAgZm9udC1mYW1pbHk9Ii1hcHBsZS1zeXN0ZW0sc3lzdGVtLXVpLHNhbnMtc2VyaWYiCiAgICAgICAgICAgIGZvbnQtc2l6ZT0iMTAiIGZvbnQtd2VpZ2h0PSI4MDAiIGxldHRlci1zcGFjaW5nPSIzIgogICAgICAgICAgICBmaWxsPSIjMEYzRDNFIj5QQUlEPC90ZXh0PgogICAgPC9nPgoKICAgIDwhLS0g4pSA4pSA4pSAIEFMTCBSRVNPTFZFRCB0ZXh0IHJlbW92ZWQgcGVyIHNwZWMg4pSA4pSA4pSAIC0tPgoKICA8L3N2Zz4KPC9kaXY+CjwvZGl2PgoKPHNjcmlwdD4KKGZ1bmN0aW9uKCl7CiAgLyog4pSA4pSA4pSAIEhlbHBlcnMg4pSA4pSA4pSAICovCiAgY29uc3QgbGVycCA9IChhLGIsdCkgPT4gYSArIChiLWEpKnQ7CiAgY29uc3QgY2xhbXAgPSAodixhLGIpID0+IHY8YT9hOih2PmI/Yjp2KTsKICBjb25zdCBub3JtID0gKHQsYSxiKSA9PiBjbGFtcCgodC1hKS8oYi1hKSwgMCwgMSk7CiAgY29uc3QgZW8gID0gdCA9PiAxIC0gTWF0aC5wb3coMS10LCAzKTsKICBjb25zdCBlaSAgPSB0ID0+IHQqdCp0OwogIGNvbnN0IGVpbyA9IHQgPT4gdDwuNSA/IDQqdCp0KnQgOiAxLU1hdGgucG93KC0yKnQrMiwzKS8yOwogIGNvbnN0IHNldE9wID0gKGVsLCB2KSA9PiBlbCAmJiBlbC5zZXRBdHRyaWJ1dGUoJ29wYWNpdHknLCBTdHJpbmcodikpOwogIGNvbnN0IHNldFRyYW5zZm9ybSA9IChlbCwgdCkgPT4gZWwgJiYgZWwuc2V0QXR0cmlidXRlKCd0cmFuc2Zvcm0nLCB0KTsKICBjb25zdCBzZXRBdHRyID0gKGVsLCBrLCB2KSA9PiBlbCAmJiBlbC5zZXRBdHRyaWJ1dGUoaywgU3RyaW5nKHYpKTsKCiAgLyog4pSA4pSA4pSAIEJ1aWxkIGNsb2NrIG1hcmtlcnMg4pSA4pSA4pSAICovCiAgY29uc3QgY2xvY2tNYXJrZXJzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2Nsb2NrTWFya2VycycpOwogIGNvbnN0IGNhcmRpbmFsQ29sb3JzID0gewogICAgMDogJyNDODEwMkUnLCAgLy8gMTI6IG9yYW5nZQogICAgMzogJyNDODEwMkUnLCAgLy8gMzogIHRlYWwKICAgIDY6ICcjQzgxMDJFJywgIC8vIDY6ICBncmVlbgogICAgOTogJyNDMkMyQzInICAgLy8gOTogIGRpbSB0ZWFsCiAgfTsKICBmb3IobGV0IGkgPSAwOyBpIDwgMTI7IGkrKyl7CiAgICBjb25zdCBhbmdsZSA9IChpICogMzAgLSA5MCkgKiBNYXRoLlBJIC8gMTgwOwogICAgaWYoY2FyZGluYWxDb2xvcnMuaGFzT3duUHJvcGVydHkoaSkpewogICAgICBjb25zdCBkb3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoCiAgICAgICAgJ2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJywgJ2NpcmNsZScpOwogICAgICBjb25zdCBkeCA9IE1hdGguY29zKGFuZ2xlKSAqIDE4OwogICAgICBjb25zdCBkeSA9IE1hdGguc2luKGFuZ2xlKSAqIDE4OwogICAgICBkb3Quc2V0QXR0cmlidXRlKCdjeCcsIGR4KTsKICAgICAgZG90LnNldEF0dHJpYnV0ZSgnY3knLCBkeSk7CiAgICAgIGRvdC5zZXRBdHRyaWJ1dGUoJ3InLCAyLjMpOwogICAgICBkb3Quc2V0QXR0cmlidXRlKCdmaWxsJywgY2FyZGluYWxDb2xvcnNbaV0pOwogICAgICBjbG9ja01hcmtlcnMuYXBwZW5kQ2hpbGQoZG90KTsKICAgIH0gZWxzZSB7CiAgICAgIGNvbnN0IHgxID0gTWF0aC5jb3MoYW5nbGUpICogMTc7CiAgICAgIGNvbnN0IHkxID0gTWF0aC5zaW4oYW5nbGUpICogMTc7CiAgICAgIGNvbnN0IHgyID0gTWF0aC5jb3MoYW5nbGUpICogMjA7CiAgICAgIGNvbnN0IHkyID0gTWF0aC5zaW4oYW5nbGUpICogMjA7CiAgICAgIGNvbnN0IHRpY2sgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoCiAgICAgICAgJ2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJywgJ2xpbmUnKTsKICAgICAgdGljay5zZXRBdHRyaWJ1dGUoJ3gxJywgeDEpOwogICAgICB0aWNrLnNldEF0dHJpYnV0ZSgneTEnLCB5MSk7CiAgICAgIHRpY2suc2V0QXR0cmlidXRlKCd4MicsIHgyKTsKICAgICAgdGljay5zZXRBdHRyaWJ1dGUoJ3kyJywgeTIpOwogICAgICB0aWNrLnNldEF0dHJpYnV0ZSgnc3Ryb2tlJywgJyNDMkMyQzInKTsKICAgICAgdGljay5zZXRBdHRyaWJ1dGUoJ3N0cm9rZS13aWR0aCcsICcxJyk7CiAgICAgIHRpY2suc2V0QXR0cmlidXRlKCdvcGFjaXR5JywgJy43Jyk7CiAgICAgIHRpY2suc2V0QXR0cmlidXRlKCdzdHJva2UtbGluZWNhcCcsICdyb3VuZCcpOwogICAgICBjbG9ja01hcmtlcnMuYXBwZW5kQ2hpbGQodGljayk7CiAgICB9CiAgfQoKICAvKiDilIDilIDilIAgUmVmcyDilIDilIDilIAgKi8KICBjb25zdCBjb25uZWN0b3IgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29ubmVjdG9yJyk7CiAgY29uc3QgY2xvY2sgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY2xvY2snKTsKICBjb25zdCBjbG9ja0lubmVyRmlsbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjbG9ja0lubmVyRmlsbCcpOwogIGNvbnN0IGhvdXJIYW5kID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2hvdXJIYW5kJyk7CiAgY29uc3QgbWludXRlSGFuZCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdtaW51dGVIYW5kJyk7CgogIGNvbnN0IGJvdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdib3QnKTsKICBjb25zdCBib3RJbm5lckZpbGwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYm90SW5uZXJGaWxsJyk7CiAgY29uc3QgYm90SGVhZCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdib3RIZWFkJyk7CiAgY29uc3QgYW50ZW5uYSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhbnRlbm5hJyk7CiAgY29uc3Qgc3RhdHVzUHVsc2UgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc3RhdHVzUHVsc2UnKTsKICBjb25zdCBzdGF0dXNEb3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc3RhdHVzRG90Jyk7CiAgY29uc3QgZXllc0Nsb3NlZCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleWVzQ2xvc2VkJyk7CiAgY29uc3QgZXllc09wZW4gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXllc09wZW4nKTsKICBjb25zdCBib3RTbWlsZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdib3RTbWlsZScpOwoKICBjb25zdCBpbnZzID0gWwogICAgewogICAgICBncm91cDogZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2ludjFHcm91cCcpLAogICAgICBnOiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW52MScpLAogICAgICBib2R5OiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW52MUJvZHknKSwKICAgICAgY2hlY2s6IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnYxQ2hlY2snKSwKICAgICAgZXhjbDogZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2ludjFFeGNsJyksCiAgICAgIGFuY2hvclg6IDc1LCBhbmNob3JZOiAyMTUsCiAgICAgIGNvcm5lck9mZnNldFg6IC0yNiwgY29ybmVyT2Zmc2V0WTogLTM2CiAgICB9LAogICAgewogICAgICBncm91cDogZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2ludjJHcm91cCcpLAogICAgICBnOiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW52MicpLAogICAgICBib2R5OiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW52MkJvZHknKSwKICAgICAgY2hlY2s6IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnYyQ2hlY2snKSwKICAgICAgZXhjbDogZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2ludjJFeGNsJyksCiAgICAgIGFuY2hvclg6IDE3MCwgYW5jaG9yWTogMjE1LAogICAgICBjb3JuZXJPZmZzZXRYOiAyNiwgY29ybmVyT2Zmc2V0WTogLTM2CiAgICB9LAogICAgewogICAgICBncm91cDogZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2ludjNHcm91cCcpLAogICAgICBnOiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW52MycpLAogICAgICBib2R5OiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW52M0JvZHknKSwKICAgICAgY2hlY2s6IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnYzQ2hlY2snKSwKICAgICAgZXhjbDogZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2ludjNFeGNsJyksCiAgICAgIGFuY2hvclg6IDI2NSwgYW5jaG9yWTogMjE1LAogICAgICBjb3JuZXJPZmZzZXRYOiAyNiwgY29ybmVyT2Zmc2V0WTogLTM2CiAgICB9CiAgXTsKCiAgY29uc3Qgb3ZlcmR1ZUxhYmVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ292ZXJkdWVMYWJlbCcpOwogIGNvbnN0IHBhaWRMYWJlbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwYWlkTGFiZWwnKTsKCiAgLyog4pSA4pSA4pSAIFRpbWVsaW5lIOKUgOKUgOKUgCAKICAgICBFbnRyeSBvcmRlciBDSEFOR0VEOiBpbnZvaWNlcyBmaXJzdCwgdGhlbiBjbG9jaytib3QgdG9nZXRoZXIuCiAgICovCiAgLy8gUGhhc2UgQTogaW52b2ljZXMgZmFkZSBpbiAoaW4gcGxhY2UsIHNpbXVsdGFuZW91c2x5KQogIGNvbnN0IFRfSU5WT0lDRV9JTl9TVEFSVCA9IDIwMDsKICBjb25zdCBUX0lOVk9JQ0VfSU5fRU5EID0gMTIwMDsKCiAgLy8gUGhhc2UgQjogY2xvY2sgKyBib3QgZW50ZXIgdG9nZXRoZXIgd2l0aCBkb3dud2FyZCBzbGlkZQogIGNvbnN0IFRfQ0xPQ0tCT1RfSU5fU1RBUlQgPSAxNTAwOwogIGNvbnN0IFRfQ0xPQ0tCT1RfSU5fRU5EID0gMjMwMDsKICAvLyBTbGlkZSBkaXN0YW5jZTogeSBzdGFydHMgYXQgODAgKGFib3ZlIHJlc3RpbmcpLCBlbmRzIGF0IDExMC4KICBjb25zdCBDTE9DS0JPVF9TTElERV9GUk9NX1kgPSA4MDsKICBjb25zdCBDTE9DS0JPVF9SRVNUX1kgPSAxMTA7CgogIC8vIFBoYXNlIEM6IGNvbm5lY3RvciArIE9WRVJEVUUgbGFiZWwgYXBwZWFyCiAgY29uc3QgVF9DT05ORUNUT1IgPSAyNDAwOwogIGNvbnN0IFRfT1ZFUkRVRSA9IDI3MDA7CgogIC8vIEhhbmQgcm90YXRpb24gYmVnaW5zIGFmdGVyIGNsb2NrIGhhcyBmdWxseSBlbnRlcmVkCiAgY29uc3QgVF9IQU5EU19TVEFSVCA9IFRfQ0xPQ0tCT1RfSU5fRU5EOwogIGNvbnN0IFRfQ0xPQ0tfTE9DSyA9IDgwMDA7CgogIC8vIENsb2NrIGZpbGwgcmFtcCAodG93YXJkIDMgQU0pCiAgY29uc3QgVF9DTE9DS19GSUxMX1NUQVJUID0gNDUwMDsKICBjb25zdCBUX0NMT0NLX0ZJTExfRU5EID0gVF9DTE9DS19MT0NLOwoKICAvLyBCb3QgZmlsbCByYW1wIChzbGlnaHRseSBsYXRlciB0aGFuIGNsb2NrLCBmaW5pc2hlcyBiZWZvcmUgd2FrZSkKICBjb25zdCBUX0JPVF9GSUxMX1NUQVJUID0gNTgwMDsKICBjb25zdCBUX0JPVF9GSUxMX0VORCA9IFRfQ0xPQ0tfTE9DSyArIDEwMDsKCiAgLy8gV2FrZSAvIHB1c2gtdXAgYm91bmNlICsgYm90IGZpbGwgY29sb3IgdHJhbnNpdGlvbiAoYmx1ZSDihpIgZ3JlZW4pCiAgY29uc3QgVF9XQUtFX1NUQVJUID0gODEwMDsKICBjb25zdCBUX0JPVU5DRV9FTkQgPSA4NTAwOwogIGNvbnN0IFRfV0FLRV9FTkQgPSA4ODAwOwogIC8vIEJvdCBmaWxsIGdyZWVuIHRyYW5zaXRpb24gd2luZG93IChzeW5jZWQgd2l0aCB3YWtlKQogIGNvbnN0IFRfQk9UX0dSRUVOX1NUQVJUID0gVF9XQUtFX1NUQVJUOwogIGNvbnN0IFRfQk9UX0dSRUVOX0VORCA9IFRfV0FLRV9FTkQ7CgogIC8vIFJlc29sdXRpb24KICBjb25zdCBUX1JFU19TVEFSVCA9IDk0MDA7CiAgY29uc3QgVF9SRVNfUEVSID0gODAwOwogIGNvbnN0IFRfUkVTX1NUQUdHRVIgPSA2MDA7CiAgY29uc3QgVF9SRVNfRU5EID0gVF9SRVNfU1RBUlQgKyBUX1JFU19TVEFHR0VSICogMiArIFRfUkVTX1BFUjsgLy8gMTE0MDAKICBjb25zdCBUX0ZJTkFMID0gMTE0MDA7CgogIC8vIFBBSUQgbGFiZWwgcG9wLWluCiAgY29uc3QgVF9QQUlEX1BPUF9TVEFSVCA9IFRfUkVTX0VORCAtIDIwMDsKICBjb25zdCBUX1BBSURfUE9QX0VORCA9IFRfUEFJRF9QT1BfU1RBUlQgKyA2MDA7CgogIGNvbnN0IFRfRU5EID0gMTY1MDA7CgogIC8qIOKUgOKUgOKUgCBDbG9jayByb3RhdGlvbiDilIDilIDilIAgKi8KICBjb25zdCBIT1VSX1NUQVJUID0gMzQ1OwogIGNvbnN0IEhPVVJfREVMVEEgPSAxMDU7CiAgY29uc3QgTUlOX1NUQVJUID0gMTgwOwogIGNvbnN0IE1JTl9ERUxUQSA9IDEyNjA7CgogIC8qIOKUgOKUgOKUgCBDb2xvciBoZWxwZXIgZm9yIGZpbGwgdHJhbnNpdGlvbiDilIDilIDilIAKICAgICBJbnRlcnBvbGF0ZSBiZXR3ZWVuIHR3byBoZXggY29sb3JzLiAqLwogIGZ1bmN0aW9uIGhleFRvUmdiKGhleCl7CiAgICBjb25zdCBuID0gcGFyc2VJbnQoaGV4LnNsaWNlKDEpLCAxNik7CiAgICByZXR1cm4gWyhuID4+IDE2KSAmIDI1NSwgKG4gPj4gOCkgJiAyNTUsIG4gJiAyNTVdOwogIH0KICBmdW5jdGlvbiByZ2JUb0hleChyLCBnLCBiKXsKICAgIHJldHVybiAnIycgKyBbciwgZywgYl0ubWFwKHYgPT4gTWF0aC5yb3VuZCh2KS50b1N0cmluZygxNikucGFkU3RhcnQoMiwgJzAnKSkuam9pbignJyk7CiAgfQogIGZ1bmN0aW9uIGxlcnBDb2xvcihjMSwgYzIsIHQpewogICAgY29uc3QgYSA9IGhleFRvUmdiKGMxKSwgYiA9IGhleFRvUmdiKGMyKTsKICAgIHJldHVybiByZ2JUb0hleChsZXJwKGFbMF0sIGJbMF0sIHQpLCBsZXJwKGFbMV0sIGJbMV0sIHQpLCBsZXJwKGFbMl0sIGJbMl0sIHQpKTsKICB9CiAgY29uc3QgQk9UX0ZJTExfQkxVRSA9ICcjRjBFMEQ5JzsKICBjb25zdCBCT1RfRklMTF9HUkVFTiA9ICcjQzgxMDJFJzsKCiAgbGV0IHQwID0gcGVyZm9ybWFuY2Uubm93KCk7CgogIGZ1bmN0aW9uIGZyYW1lKG5vdyl7CiAgICBjb25zdCB0ID0gKG5vdyAtIHQwKSAlIFRfRU5EOwoKICAgIC8qIOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkAogICAgICAgUEhBU0UgQSDigJQgSW52b2ljZXMgYXBwZWFyIGluIHBsYWNlIChmYWRlIGluIG9ubHkpCiAgICAgICDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZAgKi8KICAgIGludnMuZm9yRWFjaCgoaW52LCBpKSA9PiB7CiAgICAgIC8vIFNsaWdodCBzdGFnZ2VyIHBlciBpbnZvaWNlICgyMDBtcyBiZXR3ZWVuIHN0YXJ0cykKICAgICAgY29uc3Qgc3RhcnRUID0gVF9JTlZPSUNFX0lOX1NUQVJUICsgaSAqIDE1MDsKICAgICAgY29uc3QgZW5kVCA9IHN0YXJ0VCArIDgwMDsKICAgICAgY29uc3QgZmFkZUluID0gZW8obm9ybSh0LCBzdGFydFQsIGVuZFQpKTsKICAgICAgc2V0T3AoaW52Lmdyb3VwLCBmYWRlSW4pOwogICAgICAvLyBJbnZvaWNlIHN0YXlzIGF0IGl0cyBhbmNob3Ig4oCUIG5vIHNsaWRlIG1vdGlvbgogICAgICBzZXRUcmFuc2Zvcm0oaW52LmcsIGB0cmFuc2xhdGUoJHtpbnYuYW5jaG9yWH0sJHtpbnYuYW5jaG9yWX0pYCk7CiAgICB9KTsKCiAgICAvKiDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZAKICAgICAgIFBIQVNFIEIg4oCUIENsb2NrIGFuZCBib3QgZW50ZXIgdG9nZXRoZXIgKGRvd253YXJkIHNsaWRlKQogICAgICAg4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQICovCiAgICBjb25zdCBjbG9ja0JvdEZhZGUgPSBlbyhub3JtKHQsIFRfQ0xPQ0tCT1RfSU5fU1RBUlQsIFRfQ0xPQ0tCT1RfSU5fRU5EKSk7CiAgICBzZXRPcChjbG9jaywgY2xvY2tCb3RGYWRlKTsKICAgIHNldE9wKGJvdCwgY2xvY2tCb3RGYWRlKTsKCiAgICBsZXQgY2xvY2tCb3RZOwogICAgaWYodCA8IFRfQ0xPQ0tCT1RfSU5fU1RBUlQpewogICAgICBjbG9ja0JvdFkgPSBDTE9DS0JPVF9TTElERV9GUk9NX1k7CiAgICB9IGVsc2UgaWYodCA8IFRfQ0xPQ0tCT1RfSU5fRU5EKXsKICAgICAgY29uc3QgZXAgPSBlbyhub3JtKHQsIFRfQ0xPQ0tCT1RfSU5fU1RBUlQsIFRfQ0xPQ0tCT1RfSU5fRU5EKSk7CiAgICAgIGNsb2NrQm90WSA9IGxlcnAoQ0xPQ0tCT1RfU0xJREVfRlJPTV9ZLCBDTE9DS0JPVF9SRVNUX1ksIGVwKTsKICAgIH0gZWxzZSB7CiAgICAgIGNsb2NrQm90WSA9IENMT0NLQk9UX1JFU1RfWTsKICAgIH0KICAgIHNldEF0dHIoY2xvY2ssICd0cmFuc2Zvcm0nLCBgdHJhbnNsYXRlKDc1LCR7Y2xvY2tCb3RZfSlgKTsKICAgIC8vIEJvdCdzIHRyYW5zZm9ybSBhbHNvIGluY2x1ZGVzIHdha2UtYm91bmNlL2Zsb2F0aW5nLCBjb21wdXRlZCBiZWxvdwoKICAgIC8qIOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkAogICAgICAgQ29ubmVjdG9yIGZhZGUtaW4KICAgICAgIOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkCAqLwogICAgc2V0T3AoY29ubmVjdG9yLCBlbyhub3JtKHQsIFRfQ09OTkVDVE9SLCBUX0NPTk5FQ1RPUiArIDYwMCkpICogMC42KTsKCiAgICAvKiDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZAKICAgICAgIENsb2NrIGhhbmRzIGNvbnRpbnVvdXMgcHJvZ3Jlc3Npb24KICAgICAgIChiZWdpbnMgYWZ0ZXIgY2xvY2sgaGFzIGVudGVyZWQpCiAgICAgICDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZAgKi8KICAgIGxldCBwOwogICAgaWYodCA8IFRfSEFORFNfU1RBUlQpIHAgPSAwOwogICAgZWxzZSBpZih0IDwgVF9DTE9DS19MT0NLKSBwID0gbm9ybSh0LCBUX0hBTkRTX1NUQVJULCBUX0NMT0NLX0xPQ0spOwogICAgZWxzZSBwID0gMTsKICAgIGNvbnN0IHBlID0gZW8ocCk7CiAgICBjb25zdCBob3VyQW5nbGUgPSBIT1VSX1NUQVJUICsgSE9VUl9ERUxUQSAqIHBlOwogICAgY29uc3QgbWludXRlQW5nbGUgPSBNSU5fU1RBUlQgKyBNSU5fREVMVEEgKiBwZTsKICAgIHNldEF0dHIoaG91ckhhbmQsICd0cmFuc2Zvcm0nLCBgcm90YXRlKCR7aG91ckFuZ2xlfSlgKTsKICAgIHNldEF0dHIobWludXRlSGFuZCwgJ3RyYW5zZm9ybScsIGByb3RhdGUoJHttaW51dGVBbmdsZX0pYCk7CgogICAgLyog4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQCiAgICAgICBDbG9jayBpbm5lciBmaWxsIChncmFkdWFsIHJhbXAgdG93YXJkIDMgQU0pCiAgICAgICDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZAgKi8KICAgIGlmKHQgPCBUX0NMT0NLX0ZJTExfU1RBUlQpewogICAgICBzZXRPcChjbG9ja0lubmVyRmlsbCwgMCk7CiAgICB9IGVsc2UgaWYodCA8IFRfQ0xPQ0tfRklMTF9FTkQpewogICAgICBjb25zdCBmcCA9IG5vcm0odCwgVF9DTE9DS19GSUxMX1NUQVJULCBUX0NMT0NLX0ZJTExfRU5EKTsKICAgICAgc2V0T3AoY2xvY2tJbm5lckZpbGwsIGVpKGZwKSk7CiAgICB9IGVsc2UgewogICAgICBzZXRPcChjbG9ja0lubmVyRmlsbCwgMSk7CiAgICB9CgogICAgLyog4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQCiAgICAgICBCb3QgaW5uZXIgZmlsbCDigJQgb3BhY2l0eSByYW1wICsgY29sb3IgdHJhbnNpdGlvbgogICAgICAgT3BhY2l0eTogMCDihpIgMSBiZXR3ZWVuIFRfQk9UX0ZJTExfU1RBUlQgYW5kIFRfQk9UX0ZJTExfRU5ECiAgICAgICBDb2xvcjogICBibHVlIOKGkiBncmVlbiBiZXR3ZWVuIFRfV0FLRV9TVEFSVCBhbmQgVF9XQUtFX0VORAogICAgICAg4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQICovCiAgICBsZXQgYm90RmlsbE9wYWNpdHksIGJvdEZpbGxDb2xvcjsKICAgIGlmKHQgPCBUX0JPVF9GSUxMX1NUQVJUKXsKICAgICAgYm90RmlsbE9wYWNpdHkgPSAwOwogICAgfSBlbHNlIGlmKHQgPCBUX0JPVF9GSUxMX0VORCl7CiAgICAgIGJvdEZpbGxPcGFjaXR5ID0gZWkobm9ybSh0LCBUX0JPVF9GSUxMX1NUQVJULCBUX0JPVF9GSUxMX0VORCkpOwogICAgfSBlbHNlIHsKICAgICAgYm90RmlsbE9wYWNpdHkgPSAxOwogICAgfQogICAgaWYodCA8IFRfQk9UX0dSRUVOX1NUQVJUKXsKICAgICAgYm90RmlsbENvbG9yID0gQk9UX0ZJTExfQkxVRTsKICAgIH0gZWxzZSBpZih0IDwgVF9CT1RfR1JFRU5fRU5EKXsKICAgICAgYm90RmlsbENvbG9yID0gbGVycENvbG9yKEJPVF9GSUxMX0JMVUUsIEJPVF9GSUxMX0dSRUVOLAogICAgICAgIGVvKG5vcm0odCwgVF9CT1RfR1JFRU5fU1RBUlQsIFRfQk9UX0dSRUVOX0VORCkpKTsKICAgIH0gZWxzZSB7CiAgICAgIGJvdEZpbGxDb2xvciA9IEJPVF9GSUxMX0dSRUVOOwogICAgfQogICAgc2V0T3AoYm90SW5uZXJGaWxsLCBib3RGaWxsT3BhY2l0eSk7CiAgICBib3RJbm5lckZpbGwuc2V0QXR0cmlidXRlKCdmaWxsJywgYm90RmlsbENvbG9yKTsKCiAgICAvKiDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZAKICAgICAgIEJvdCB0cmFuc2Zvcm06IGVudHJ5IHNsaWRlICsgcHVzaC11cCBib3VuY2UgKyBmbG9hdGluZwogICAgICAg4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQICovCiAgICBsZXQgYm90WSA9IGNsb2NrQm90WTsgIC8vIGJhc2UgeSBmcm9tIGVudHJ5IHNsaWRlCiAgICAvLyBQdXNoLXVwIGJvdW5jZSBhdCB3YWtlCiAgICBpZih0ID49IFRfV0FLRV9TVEFSVCAmJiB0IDwgVF9CT1VOQ0VfRU5EKXsKICAgICAgY29uc3QgYnAgPSBub3JtKHQsIFRfV0FLRV9TVEFSVCwgVF9CT1VOQ0VfRU5EKTsKICAgICAgYm90WSA9IGNsb2NrQm90WSAtIE1hdGguc2luKGJwICogTWF0aC5QSSkgKiA4OwogICAgfSBlbHNlIGlmKHQgPj0gVF9CT1VOQ0VfRU5EKXsKICAgICAgLy8gR2VudGxlIHZlcnRpY2FsIGZsb2F0aW5nIG9uY2UgYWN0aXZlCiAgICAgIC8vIHNpbiBvc2NpbGxhdGlvbiwgcGVyaW9kIDI0MDBtcywgYW1wbGl0dWRlIDIuNXB4CiAgICAgIGNvbnN0IGZsb2F0VCA9IHQgLSBUX0JPVU5DRV9FTkQ7CiAgICAgIGJvdFkgPSBjbG9ja0JvdFkgKyBNYXRoLnNpbihmbG9hdFQgLyAyNDAwICogTWF0aC5QSSAqIDIpICogMi41OwogICAgfQogICAgc2V0QXR0cihib3QsICd0cmFuc2Zvcm0nLCBgdHJhbnNsYXRlKDI2NSwke2JvdFl9KWApOwoKICAgIC8qIOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkAogICAgICAgQm90IGV5ZXMgLyBzbWlsZSAvIGFjY2VudCBjb2xvcnMKICAgICAgIEV5ZXMtYW5kLXNtaWxlIHNoaWZ0IHRocm91Z2ggdGVhbCDihpIgY29wcGVyIChkdXJpbmcgd2FrZSkg4oaSCiAgICAgICBkZWVwIHRlYWwgKGZpbmFsLCBmb3IgY29udHJhc3QgYWdhaW5zdCBncmVlbiBmaWxsKS4KICAgICAgIOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkCAqLwogICAgaWYodCA8IFRfV0FLRV9TVEFSVCl7CiAgICAgIHNldE9wKGV5ZXNDbG9zZWQsIDEpOwogICAgICBzZXRPcChleWVzT3BlbiwgMCk7CiAgICAgIGJvdFNtaWxlLnNldEF0dHJpYnV0ZSgnZCcsICdNIC03LDUgUSAwLDggNyw1Jyk7CiAgICAgIGJvdFNtaWxlLnNldEF0dHJpYnV0ZSgnc3Ryb2tlJywgJyNDODEwMkUnKTsKICAgICAgZXllc0Nsb3NlZC5xdWVyeVNlbGVjdG9yQWxsKCdwYXRoJykuZm9yRWFjaChlbCA9PgogICAgICAgIGVsLnNldEF0dHJpYnV0ZSgnc3Ryb2tlJywgJyNDODEwMkUnKSk7CiAgICB9IGVsc2UgaWYodCA8IFRfV0FLRV9FTkQpewogICAgICBjb25zdCB3cCA9IG5vcm0odCwgVF9XQUtFX1NUQVJULCBUX1dBS0VfRU5EKTsKICAgICAgc2V0T3AoZXllc0Nsb3NlZCwgMSAtIGVvKHdwKSk7CiAgICAgIHNldE9wKGV5ZXNPcGVuLCBlbyh3cCkpOwogICAgICAvLyBFeWVzL3NtaWxlIHNoaWZ0IHRvIGRlZXAgdGVhbCAoIzBGM0QzRSkgZm9yIGNvbnRyYXN0CiAgICAgIC8vIGFnYWluc3QgdGhlIGdyZWVuIGZpbGwgdGhhdCdzIGdyb3dpbmcgaW4KICAgICAgY29uc3QgdENvbG9yID0gd3AgPiAwLjUgPyAnIzBGM0QzRScgOiAnI0M4MTAyRSc7CiAgICAgIGJvdFNtaWxlLnNldEF0dHJpYnV0ZSgnc3Ryb2tlJywgdENvbG9yKTsKICAgICAgZXllc09wZW4ucXVlcnlTZWxlY3RvckFsbCgnY2lyY2xlJykuZm9yRWFjaChjID0+CiAgICAgICAgYy5zZXRBdHRyaWJ1dGUoJ2ZpbGwnLCB0Q29sb3IpKTsKICAgICAgZXllc0Nsb3NlZC5xdWVyeVNlbGVjdG9yQWxsKCdwYXRoJykuZm9yRWFjaChlbCA9PgogICAgICAgIGVsLnNldEF0dHJpYnV0ZSgnc3Ryb2tlJywgdENvbG9yKSk7CiAgICAgIC8vIEJpZ2dlciBoYXBweSBzbWlsZSBieSBlbmQgb2Ygd2FrZQogICAgICBpZih3cCA+IDAuNikgYm90U21pbGUuc2V0QXR0cmlidXRlKCdkJywgJ00gLTgsNCBRIDAsOSA4LDQnKTsKICAgICAgLy8gQm90IGhlYWQgb3V0bGluZSBzaGlmdHMgdG8gZGVlcCB0ZWFsIHRvbyAoZm9yIGNvbnRyYXN0IG9uIGdyZWVuKQogICAgICBib3RIZWFkLnNldEF0dHJpYnV0ZSgnc3Ryb2tlJywKICAgICAgICB3cCA+IDAuNSA/ICcjMEYzRDNFJyA6ICcjQzgxMDJFJyk7CiAgICB9IGVsc2UgewogICAgICBzZXRPcChleWVzQ2xvc2VkLCAwKTsKICAgICAgc2V0T3AoZXllc09wZW4sIDEpOwogICAgICBib3RTbWlsZS5zZXRBdHRyaWJ1dGUoJ3N0cm9rZScsICcjMEYzRDNFJyk7CiAgICAgIGJvdFNtaWxlLnNldEF0dHJpYnV0ZSgnZCcsICdNIC04LDQgUSAwLDkgOCw0Jyk7CiAgICAgIGV5ZXNPcGVuLnF1ZXJ5U2VsZWN0b3JBbGwoJ2NpcmNsZScpLmZvckVhY2goYyA9PgogICAgICAgIGMuc2V0QXR0cmlidXRlKCdmaWxsJywgJyMwRjNEM0UnKSk7CiAgICAgIGJvdEhlYWQuc2V0QXR0cmlidXRlKCdzdHJva2UnLCAnIzBGM0QzRScpOwogICAgfQoKICAgIC8qIOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkAogICAgICAgU3RhdHVzIGRvdCBjb2xvciAmIHB1bHNlCiAgICAgICBEb3Qgc3RheXMgb3JhbmdlIHVudGlsIH5taWRwb2ludCBvZiByZXNvbHV0aW9uLCB0aGVuIGdyZWVuLgogICAgICAgUHVsc2UgcmluZyBleHBhbmRzIGNvbnRpbnVvdXNseS4KICAgICAgIOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkCAqLwogICAgbGV0IGRvdENvbG9yOwogICAgaWYodCA8IFRfUkVTX1NUQVJUKSBkb3RDb2xvciA9ICcjQzgxMDJFJzsKICAgIGVsc2UgaWYodCA8IFRfRklOQUwpewogICAgICBjb25zdCBvdmVyYWxsUCA9IG5vcm0odCwgVF9SRVNfU1RBUlQsIFRfRklOQUwpOwogICAgICBkb3RDb2xvciA9IG92ZXJhbGxQID4gMC41ID8gJyNDODEwMkUnIDogJyNDODEwMkUnOwogICAgfSBlbHNlIGRvdENvbG9yID0gJyNDODEwMkUnOwogICAgc3RhdHVzRG90LnNldEF0dHJpYnV0ZSgnZmlsbCcsIGRvdENvbG9yKTsKICAgIHN0YXR1c1B1bHNlLnNldEF0dHJpYnV0ZSgnc3Ryb2tlJywgZG90Q29sb3IpOwogICAgYW50ZW5uYS5zZXRBdHRyaWJ1dGUoJ3N0cm9rZScsCiAgICAgIGRvdENvbG9yID09PSAnI0M4MTAyRScgPyAnI0M4MTAyRScgOiAnI0MyQzJDMicpOwoKICAgIGlmKHQgPj0gVF9DTE9DS0JPVF9JTl9FTkQgKyAzMDApewogICAgICBjb25zdCBwdWxzZVQgPSAodCAtIFRfQ0xPQ0tCT1RfSU5fRU5EIC0gMzAwKSAlIDE0MDA7CiAgICAgIGNvbnN0IGN5Y2xlUCA9IHB1bHNlVCAvIDE0MDA7CiAgICAgIGNvbnN0IHIgPSBsZXJwKDYsIDE2LCBjeWNsZVApOwogICAgICBjb25zdCBvcCA9ICgxIC0gY3ljbGVQKSAqIDAuODsKICAgICAgc2V0QXR0cihzdGF0dXNQdWxzZSwgJ3InLCByKTsKICAgICAgc2V0T3Aoc3RhdHVzUHVsc2UsIG9wKTsKICAgIH0gZWxzZSB7CiAgICAgIHNldE9wKHN0YXR1c1B1bHNlLCAwKTsKICAgIH0KCiAgICAvKiDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZAKICAgICAgIEludm9pY2VzOiAhIG1hcmssIHJlc29sdXRpb24KICAgICAgIOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkCAqLwogICAgaW52cy5mb3JFYWNoKChpbnYsIGkpID0+IHsKICAgICAgY29uc3Qgc3RhcnRUID0gVF9JTlZPSUNFX0lOX1NUQVJUICsgaSAqIDE1MDsKICAgICAgY29uc3QgZW5kVCA9IHN0YXJ0VCArIDgwMDsKICAgICAgY29uc3QgZmFkZUluID0gZW8obm9ybSh0LCBzdGFydFQsIGVuZFQpKTsKCiAgICAgIGNvbnN0IGV4Y2xYID0gaW52LmFuY2hvclggKyBpbnYuY29ybmVyT2Zmc2V0WDsKICAgICAgY29uc3QgZXhjbFkgPSBpbnYuYW5jaG9yWSArIGludi5jb3JuZXJPZmZzZXRZOwoKICAgICAgY29uc3QgcmVzU3RhcnQgPSBUX1JFU19TVEFSVCArIGkgKiBUX1JFU19TVEFHR0VSOwogICAgICBjb25zdCByZXNFbmQgPSByZXNTdGFydCArIFRfUkVTX1BFUjsKCiAgICAgIC8vIFN1YnRsZSBidXp6IG9uICEgbWFyawogICAgICBsZXQgYnggPSAwLCBieSA9IDA7CiAgICAgIGlmKHQgPCByZXNTdGFydCAmJiB0ID49IGVuZFQpewogICAgICAgIGNvbnN0IGJ1enpUID0gdCAqIDAuMDI1ICsgaSAqIDEuNzsKICAgICAgICBieCA9IE1hdGguc2luKGJ1enpUICogNy41KSAqIDAuNzsKICAgICAgICBieSA9IE1hdGguY29zKGJ1enpUICogNi44KSAqIDAuNTsKICAgICAgfQoKICAgICAgbGV0IGV4Y2xTY2FsZSA9IDEsIGV4Y2xPcCA9IGZhZGVJbjsKICAgICAgaWYodCA+PSByZXNTdGFydCAmJiB0IDwgcmVzRW5kKXsKICAgICAgICBjb25zdCBycCA9IG5vcm0odCwgcmVzU3RhcnQsIHJlc0VuZCk7CiAgICAgICAgaWYocnAgPj0gMC40KXsKICAgICAgICAgIGNvbnN0IHhwID0gbm9ybShycCwgMC40LCAwLjcpOwogICAgICAgICAgZXhjbFNjYWxlID0gMSAtIGVvKHhwKTsKICAgICAgICAgIGV4Y2xPcCA9IGZhZGVJbiAqIGV4Y2xTY2FsZTsKICAgICAgICB9CiAgICAgIH0gZWxzZSBpZih0ID49IHJlc0VuZCl7CiAgICAgICAgZXhjbFNjYWxlID0gMDsKICAgICAgICBleGNsT3AgPSAwOwogICAgICB9CgogICAgICBzZXRUcmFuc2Zvcm0oaW52LmV4Y2wsCiAgICAgICAgYHRyYW5zbGF0ZSgke2V4Y2xYICsgYnh9LCR7ZXhjbFkgKyBieX0pIHNjYWxlKCR7ZXhjbFNjYWxlfSlgKTsKICAgICAgc2V0T3AoaW52LmV4Y2wsIGV4Y2xPcCk7CgogICAgICAvLyBSZXNvbHV0aW9uOiBzdHJva2UgcmVjb2xvciArIGNoZWNrIHBvcAogICAgICBpZih0IDwgcmVzU3RhcnQpewogICAgICAgIGludi5ib2R5LnNldEF0dHJpYnV0ZSgnc3Ryb2tlJywgJyNDODEwMkUnKTsKICAgICAgICBzZXRUcmFuc2Zvcm0oaW52LmNoZWNrLCAndHJhbnNsYXRlKC0yMiwtMzIpIHNjYWxlKDApJyk7CiAgICAgIH0gZWxzZSBpZih0IDwgcmVzRW5kKXsKICAgICAgICBjb25zdCBycCA9IG5vcm0odCwgcmVzU3RhcnQsIHJlc0VuZCk7CiAgICAgICAgY29uc3QgbmV3Q29sb3IgPSBycCA8IDAuNCA/ICcjQzgxMDJFJyA6ICcjQzgxMDJFJzsKICAgICAgICBpbnYuYm9keS5zZXRBdHRyaWJ1dGUoJ3N0cm9rZScsIG5ld0NvbG9yKTsKICAgICAgICBpZihycCA+PSAwLjMpewogICAgICAgICAgY29uc3QgY3AgPSBlbyhub3JtKHJwLCAwLjMsIDAuOCkpOwogICAgICAgICAgc2V0VHJhbnNmb3JtKGludi5jaGVjaywgYHRyYW5zbGF0ZSgtMjIsLTMyKSBzY2FsZSgke2NwfSlgKTsKICAgICAgICB9CiAgICAgIH0gZWxzZSB7CiAgICAgICAgaW52LmJvZHkuc2V0QXR0cmlidXRlKCdzdHJva2UnLCAnI0M4MTAyRScpOwogICAgICAgIHNldFRyYW5zZm9ybShpbnYuY2hlY2ssICd0cmFuc2xhdGUoLTIyLC0zMikgc2NhbGUoMSknKTsKICAgICAgfQogICAgfSk7CgogICAgLyog4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQCiAgICAgICBPVkVSRFVFIGxhYmVsIOKAlCBoaWdoIGNvbnRyYXN0ICh3aGl0ZSB0ZXh0IG9uIG9yYW5nZSksCiAgICAgICBzdWJ0bGUgcHVsc2UgKyBidXp6CiAgICAgICDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZAgKi8KICAgIGNvbnN0IG92ZXJkdWVGYWRlSW4gPSBlbyhub3JtKHQsIFRfT1ZFUkRVRSwgVF9PVkVSRFVFICsgNjAwKSk7CiAgICBjb25zdCBvdmVyZHVlRmFkZU91dCA9IGVvKG5vcm0odCwgVF9SRVNfU1RBUlQsIFRfUkVTX1NUQVJUICsgNTAwKSk7CiAgICBjb25zdCBvdmVyZHVlT3AgPSBvdmVyZHVlRmFkZUluICogKDEgLSBvdmVyZHVlRmFkZU91dCk7CiAgICBzZXRPcChvdmVyZHVlTGFiZWwsIG92ZXJkdWVPcCk7CgogICAgaWYob3ZlcmR1ZU9wID4gMC4wNSl7CiAgICAgIGNvbnN0IHB1bHNlVCA9ICh0IC0gVF9PVkVSRFVFKSAlIDEyMDA7CiAgICAgIGNvbnN0IHB1bHNlQyA9IHB1bHNlVCAvIDEyMDA7CiAgICAgIGNvbnN0IHNjYWxlID0gMSArIE1hdGguc2luKHB1bHNlQyAqIE1hdGguUEkgKiAyKSAqIDAuMDM7CiAgICAgIGNvbnN0IGJ1enpUID0gdCAqIDAuMDI1OwogICAgICBjb25zdCBvYnggPSBNYXRoLnNpbihidXp6VCAqIDcuNSkgKiAwLjU7CiAgICAgIGNvbnN0IG9ieSA9IE1hdGguY29zKGJ1enpUICogNi44KSAqIDAuNDsKICAgICAgc2V0VHJhbnNmb3JtKG92ZXJkdWVMYWJlbCwKICAgICAgICBgdHJhbnNsYXRlKCR7MTcwICsgb2J4fSwkezMwMCArIG9ieX0pIHNjYWxlKCR7c2NhbGV9KWApOwogICAgfQoKICAgIC8qIOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkAogICAgICAgUEFJRCBsYWJlbCBwb3AtaW4gKHNjYWxlIDAg4oaSIDEuMTUg4oaSIDEpCiAgICAgICDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZAgKi8KICAgIGlmKHQgPCBUX1BBSURfUE9QX1NUQVJUKXsKICAgICAgc2V0T3AocGFpZExhYmVsLCAwKTsKICAgICAgc2V0VHJhbnNmb3JtKHBhaWRMYWJlbCwgYHRyYW5zbGF0ZSgxNzAsMzAwKSBzY2FsZSgwKWApOwogICAgfSBlbHNlIGlmKHQgPCBUX1BBSURfUE9QX0VORCl7CiAgICAgIGNvbnN0IHBwID0gbm9ybSh0LCBUX1BBSURfUE9QX1NUQVJULCBUX1BBSURfUE9QX0VORCk7CiAgICAgIGxldCBzY2FsZTsKICAgICAgaWYocHAgPCAwLjUpewogICAgICAgIHNjYWxlID0gbGVycCgwLCAxLjE1LCBlbyhwcCAvIDAuNSkpOwogICAgICB9IGVsc2UgewogICAgICAgIHNjYWxlID0gbGVycCgxLjE1LCAxLCBlbygocHAgLSAwLjUpIC8gMC41KSk7CiAgICAgIH0KICAgICAgc2V0T3AocGFpZExhYmVsLAogICAgICAgIGVvKG5vcm0odCwgVF9QQUlEX1BPUF9TVEFSVCwgVF9QQUlEX1BPUF9TVEFSVCArIDIwMCkpKTsKICAgICAgc2V0VHJhbnNmb3JtKHBhaWRMYWJlbCwgYHRyYW5zbGF0ZSgxNzAsMzAwKSBzY2FsZSgke3NjYWxlfSlgKTsKICAgIH0gZWxzZSB7CiAgICAgIHNldE9wKHBhaWRMYWJlbCwgMSk7CiAgICAgIHNldFRyYW5zZm9ybShwYWlkTGFiZWwsIGB0cmFuc2xhdGUoMTcwLDMwMCkgc2NhbGUoMSlgKTsKICAgIH0KCiAgICAvKiDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZAKICAgICAgIExvb3AgcmVzZXQgcHJlcAogICAgICAg4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQICovCiAgICBpZih0IDwgNTApewogICAgICBpbnZzLmZvckVhY2goaW52ID0+IHsKICAgICAgICBpbnYuYm9keS5zZXRBdHRyaWJ1dGUoJ3N0cm9rZScsICcjQzgxMDJFJyk7CiAgICAgICAgc2V0VHJhbnNmb3JtKGludi5jaGVjaywgJ3RyYW5zbGF0ZSgtMjIsLTMyKSBzY2FsZSgwKScpOwogICAgICB9KTsKICAgICAgYm90SW5uZXJGaWxsLnNldEF0dHJpYnV0ZSgnZmlsbCcsIEJPVF9GSUxMX0JMVUUpOwogICAgICBib3RIZWFkLnNldEF0dHJpYnV0ZSgnc3Ryb2tlJywgJyNDODEwMkUnKTsKICAgIH0KCiAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZnJhbWUpOwogIH0KICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZnJhbWUpOwp9KSgpOwo8L3NjcmlwdD4KPC9ib2R5PjwvaHRtbD4K", "PCFET0NUWVBFIGh0bWw+CjxodG1sPjxoZWFkPjxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KPHRpdGxlPk5ldyBDbGllbnQgSW50YWtlIOKAlCBBZGp1dGFudDwvdGl0bGU+CjxzdHlsZT4KLyog4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQCiAgIFBSRVNFUlZFRCBGUk9NIE9SSUdJTkFMOiBjb2xvdXIgcGFsZXR0ZSwgZm9udCBzdGFjaywgYmFzZSByZXNldC4KICAgUGFsZXR0ZSB0b2tlbnMgKGtlcHQgaWRlbnRpY2FsIHRvIG9yaWdpbmFsIGZpbGUpOgogICAgICMwRjNEM0UgIGRlZXAgdGVhbCAgICAgIChjaGF0IHN1cmZhY2UpCiAgICAgI0YwRTBEOSAgbWlkIHRlYWwgICAgICAgKHBhbmVscykKICAgICAjMTYzRTQwICBwYW5lbCBib3JkZXIKICAgICAjQzJDMkMyICBhY2NlbnQgdGVhbCAgICAobGluZXMsIGRpbSB0ZXh0LCBzdGF0dXMpCiAgICAgI0M4MTAyRSAgYnJpZ2h0IHRlYWwgICAgKEFkanV0YW50IGFjY2VudCkKICAgICAjQzgxMDJFICBjb3BwZXIgICAgICAgICAodGltZXN0YW1wIC8gc2xlZXBpbmcgYWNjZW50KQogICAgICMxQTFBMUEgIGNyZWFtICAgICAgICAgIChwcmltYXJ5IHRleHQpCiAgICAgI0VGRTZERCAgd2FybSBvZmYtd2hpdGUgKHNlY29uZGFyeSB0ZXh0KQogICDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZAgKi8KKntib3gtc2l6aW5nOmJvcmRlci1ib3g7bWFyZ2luOjA7cGFkZGluZzowfQpib2R5ewogIGJhY2tncm91bmQ6dHJhbnNwYXJlbnQ7CiAgZm9udC1mYW1pbHk6LWFwcGxlLXN5c3RlbSxzeXN0ZW0tdWksc2Fucy1zZXJpZjsKICBtaW4taGVpZ2h0OjEwMHZoOwogIGRpc3BsYXk6ZmxleDsKICBhbGlnbi1pdGVtczpjZW50ZXI7CiAganVzdGlmeS1jb250ZW50OmNlbnRlcjsKICBwYWRkaW5nOjJyZW0gMXJlbTsKfQoKLyog4pSA4pSAIE9yaWdpbmFsIC5zdG9yeSBjb250YWluZXIsIHJldXNlZCDilIDilIAgKi8KLnN0b3J5ewogIGRpc3BsYXk6ZmxleDsKICBmbGV4LWRpcmVjdGlvbjpjb2x1bW47CiAgYWxpZ24taXRlbXM6Y2VudGVyOwogIGdhcDowOwp9CgovKiDilIDilIAgT3JpZ2luYWwgLnNjZW5lLWxhYmVsLCByZXVzZWQgZm9yIHRoZSBjaGF0IGhlYWRlciBjb250ZXh0IGxpbmUg4pSA4pSAICovCi5zY2VuZS1sYWJlbHsKICBmb250LXNpemU6MTFweDsKICBsZXR0ZXItc3BhY2luZzouMWVtOwogIGNvbG9yOiNDMkMyQzI7CiAgdGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlOwogIG1hcmdpbi1ib3R0b206MTRweDsKICBvcGFjaXR5OjA7CiAgdHJhbnNpdGlvbjpvcGFjaXR5IC41cyBlYXNlOwogIHRleHQtYWxpZ246Y2VudGVyOwogIG1pbi1oZWlnaHQ6MTZweDsKfQouc2NlbmUtbGFiZWwudmlze29wYWNpdHk6MX0KCi8qIOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkAogICBDSEFUIFdJTkRPVyDigJQgYnVpbHQgd2l0aCB0aGUgb3JpZ2luYWwgcGFsZXR0ZS4KICAgUmV1c2VzIHRoZSByb3VuZGVkLXBhbmVsLCBkYXJrLXRlYWwsIGNvcHBlci1hY2NlbnQgdm9jYWJ1bGFyeQogICBmcm9tIHRoZSBvcmlnaW5hbCBzY2VuZSBpbGx1c3RyYXRpb25zLgogICDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZAgKi8KLmNoYXQtd2luZG93ewogIHdpZHRoOjQyMHB4OwogIG1heC13aWR0aDoxMDAlOwogIGJhY2tncm91bmQ6IzBGM0QzRTsKICBib3JkZXI6MXB4IHNvbGlkICNGMEUwRDk7CiAgYm9yZGVyLXJhZGl1czoxNnB4OwogIGJveC1zaGFkb3c6MCAxMHB4IDQwcHggcmdiYSgwLDAsMCwuMzUpLCAwIDJweCA4cHggcmdiYSgwLDAsMCwuMik7CiAgb3ZlcmZsb3c6aGlkZGVuOwp9CgovKiBDaGF0IGhlYWRlciDigJQgdXNlcyBvcmlnaW5hbCBtaWQtdGVhbCBwYW5lbCArIGFjY2VudCB0ZWFsIHRleHQgKi8KLmNoYXQtaGVhZGVyewogIGJhY2tncm91bmQ6IzE2M0U0MDsKICBwYWRkaW5nOjE0cHggMThweDsKICBib3JkZXItYm90dG9tOjFweCBzb2xpZCAjRjBFMEQ5OwogIGRpc3BsYXk6ZmxleDsKICBhbGlnbi1pdGVtczpjZW50ZXI7CiAgZ2FwOjEwcHg7Cn0KLnN0YXR1cy1kb3R7CiAgd2lkdGg6OHB4OwogIGhlaWdodDo4cHg7CiAgYm9yZGVyLXJhZGl1czo1MCU7CiAgYmFja2dyb3VuZDojQzgxMDJFOwogIGJveC1zaGFkb3c6MCAwIDhweCAjQzgxMDJFOwogIHRyYW5zaXRpb246YmFja2dyb3VuZCAuNnMgZWFzZSwgYm94LXNoYWRvdyAuNnMgZWFzZTsKfQovKiBzbGVlcGluZyBzdGF0ZSDigJQgZGltIHRoZSBsaXZlIGluZGljYXRvciAqLwouc3RhdHVzLWRvdC5zbGVlcGluZ3sKICBiYWNrZ3JvdW5kOiNDODEwMkU7CiAgYm94LXNoYWRvdzowIDAgNnB4IHJnYmEoMTk2LDEwNiw2MCwuNCk7CiAgYW5pbWF0aW9uOmRpbVB1bHNlIDIuNHMgZWFzZS1pbi1vdXQgaW5maW5pdGU7Cn0KLnN0YXR1cy1kb3QuYWRqdXRhbnR7CiAgYmFja2dyb3VuZDojQzgxMDJFOwogIGJveC1zaGFkb3c6MCAwIDEwcHggI0M4MTAyRTsKfQpAa2V5ZnJhbWVzIGRpbVB1bHNlewogIDAlLDEwMCV7b3BhY2l0eTouNX0KICA1MCV7b3BhY2l0eToxfQp9Ci5jaGF0LXRpdGxlewogIGNvbG9yOiMxQTFBMUE7CiAgZm9udC1zaXplOjE0cHg7CiAgZm9udC13ZWlnaHQ6NjAwOwogIGxldHRlci1zcGFjaW5nOi4wMWVtOwp9Ci5jaGF0LXN1YnRpdGxlewogIGNvbG9yOiNDMkMyQzI7CiAgZm9udC1zaXplOjExcHg7CiAgbGV0dGVyLXNwYWNpbmc6LjA2ZW07CiAgdGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlOwogIG1hcmdpbi1sZWZ0OmF1dG87CiAgdHJhbnNpdGlvbjpjb2xvciAuNnMgZWFzZTsKfQouY2hhdC1zdWJ0aXRsZS5hZGp1dGFudHtjb2xvcjojQzgxMDJFfQoKLyogQ2hhdCBib2R5IOKAlCBzY3JvbGxhYmxlIGNvbnZlcnNhdGlvbiBhcmVhICovCi5jaGF0LWJvZHl7CiAgcGFkZGluZzoyMHB4IDE4cHg7CiAgbWluLWhlaWdodDozNDBweDsKICBkaXNwbGF5OmZsZXg7CiAgZmxleC1kaXJlY3Rpb246Y29sdW1uOwogIGdhcDoxNHB4OwogIGJhY2tncm91bmQ6CiAgICByYWRpYWwtZ3JhZGllbnQoY2lyY2xlIGF0IDMwJSAwJSwgcmdiYSg5NCwxNzMsMTc5LC4wNCksIHRyYW5zcGFyZW50IDYwJSksCiAgICAjMEYzRDNFOwp9CgovKiDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZAKICAgTUVTU0FHRSBCVUJCTEVTIOKAlCBhbGwgc3RhcnQgaGlkZGVuLCBhbmltYXRlZCBpbiB2aWEgSlMtdG9nZ2xlZCBjbGFzcwogICDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZAgKi8KLm1zZy1yb3d7CiAgZGlzcGxheTpmbGV4OwogIGZsZXgtZGlyZWN0aW9uOmNvbHVtbjsKICBvcGFjaXR5OjA7CiAgdHJhbnNmb3JtOnRyYW5zbGF0ZVkoOHB4KTsKICB0cmFuc2l0aW9uOm9wYWNpdHkgLjVzIGVhc2Utb3V0LCB0cmFuc2Zvcm0gLjVzIGVhc2Utb3V0Owp9Ci5tc2ctcm93LnNob3d7CiAgb3BhY2l0eToxOwogIHRyYW5zZm9ybTp0cmFuc2xhdGVZKDApOwp9Ci5tc2ctcm93LnVzZXJ7YWxpZ24taXRlbXM6ZmxleC1lbmR9Ci5tc2ctcm93LmJvdHthbGlnbi1pdGVtczpmbGV4LXN0YXJ0fQoKLmJ1YmJsZXsKICBtYXgtd2lkdGg6NzglOwogIHBhZGRpbmc6MTBweCAxNHB4OwogIGJvcmRlci1yYWRpdXM6MTRweDsKICBmb250LXNpemU6MTRweDsKICBsaW5lLWhlaWdodDoxLjQ1OwogIGxldHRlci1zcGFjaW5nOi4wMDVlbTsKfQovKiBVc2VyIGJ1YmJsZSDigJQgdXNlcyB0aGUgd2FybSBjcmVhbSB0b25lIGZyb20gb3JpZ2luYWwgcGFsZXR0ZSAqLwouYnViYmxlLnVzZXJ7CiAgYmFja2dyb3VuZDojRUZFNkREOwogIGNvbG9yOiMwRjNEM0U7CiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6NHB4Owp9Ci8qIEJvdC9BZGp1dGFudCBidWJibGUg4oCUIHVzZXMgbWlkLXRlYWwgcGFuZWwgZnJvbSBvcmlnaW5hbCAqLwouYnViYmxlLmJvdHsKICBiYWNrZ3JvdW5kOiNGMEUwRDk7CiAgY29sb3I6IzFBMUExQTsKICBib3JkZXI6MXB4IHNvbGlkICNDMkMyQzI7CiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czo0cHg7Cn0KCi8qIFNlbmRlciBsYWJlbCBhYm92ZSBBZGp1dGFudCBtZXNzYWdlICovCi5zZW5kZXItbGFiZWx7CiAgZm9udC1zaXplOjEwcHg7CiAgbGV0dGVyLXNwYWNpbmc6LjEyZW07CiAgdGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlOwogIGNvbG9yOiNDODEwMkU7CiAgbWFyZ2luLWJvdHRvbTo0cHg7CiAgbWFyZ2luLWxlZnQ6NHB4OwogIGRpc3BsYXk6ZmxleDsKICBhbGlnbi1pdGVtczpjZW50ZXI7CiAgZ2FwOjZweDsKfQouc2VuZGVyLWxhYmVsOjpiZWZvcmV7CiAgY29udGVudDonJzsKICB3aWR0aDo0cHg7CiAgaGVpZ2h0OjRweDsKICBib3JkZXItcmFkaXVzOjUwJTsKICBiYWNrZ3JvdW5kOiNDODEwMkU7CiAgYm94LXNoYWRvdzowIDAgNnB4ICNDODEwMkU7Cn0KCi8qIFRpbWVzdGFtcCDigJQgY29wcGVyIGFjY2VudCwgbWF0Y2hlcyBvcmlnaW5hbCAubDEtY2xvY2sgY29wcGVyIGRvdCAqLwoudGltZXN0YW1wewogIGZvbnQtc2l6ZToxMHB4OwogIGNvbG9yOiNDMkMyQzI7CiAgbWFyZ2luLXRvcDo0cHg7CiAgbGV0dGVyLXNwYWNpbmc6LjA0ZW07CiAgcGFkZGluZzowIDRweDsKfQoudGltZXN0YW1wLmxhdGV7Y29sb3I6I0M4MTAyRX0KCi8qIOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkAogICBUWVBJTkcgSU5ESUNBVE9SIOKAlCB0aHJlZSBkb3RzLCB0aGVuIGZhZGVzIHRvICJ6enoiIHNsZWVwIHN0YXRlCiAgIFJldXNlcyAuZG90IHN0eWxpbmcgY29uY2VwdCBmcm9tIHRoZSBvcmlnaW5hbCAuZG90cyBwcm9ncmVzcyBiYXIKICAg4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQICovCi50eXBpbmctcm93ewogIGRpc3BsYXk6ZmxleDsKICBhbGlnbi1pdGVtczpjZW50ZXI7CiAgZ2FwOjhweDsKICBwYWRkaW5nOjZweCAwOwogIG9wYWNpdHk6MDsKICB0cmFuc2Zvcm06dHJhbnNsYXRlWSg0cHgpOwogIHRyYW5zaXRpb246b3BhY2l0eSAuNHMgZWFzZSwgdHJhbnNmb3JtIC40cyBlYXNlOwp9Ci50eXBpbmctcm93LnNob3d7b3BhY2l0eToxO3RyYW5zZm9ybTp0cmFuc2xhdGVZKDApfQoKLnR5cGluZy1idWJibGV7CiAgYmFja2dyb3VuZDojRjBFMEQ5OwogIGJvcmRlcjoxcHggc29saWQgI0MyQzJDMjsKICBib3JkZXItcmFkaXVzOjE0cHg7CiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czo0cHg7CiAgcGFkZGluZzoxMHB4IDE0cHg7CiAgZGlzcGxheTpmbGV4OwogIGFsaWduLWl0ZW1zOmNlbnRlcjsKICBnYXA6NXB4Owp9Ci50eXBpbmctZG90ewogIHdpZHRoOjZweDsKICBoZWlnaHQ6NnB4OwogIGJvcmRlci1yYWRpdXM6NTAlOwogIGJhY2tncm91bmQ6I0MyQzJDMjsKICBhbmltYXRpb246dHlwaW5nQm91bmNlIDEuM3MgZWFzZS1pbi1vdXQgaW5maW5pdGU7Cn0KLnR5cGluZy1kb3Q6bnRoLWNoaWxkKDIpe2FuaW1hdGlvbi1kZWxheTouMThzfQoudHlwaW5nLWRvdDpudGgtY2hpbGQoMyl7YW5pbWF0aW9uLWRlbGF5Oi4zNnN9CkBrZXlmcmFtZXMgdHlwaW5nQm91bmNlewogIDAlLDYwJSwxMDAle3RyYW5zZm9ybTp0cmFuc2xhdGVZKDApO29wYWNpdHk6LjV9CiAgMzAle3RyYW5zZm9ybTp0cmFuc2xhdGVZKC00cHgpO29wYWNpdHk6MX0KfQoKLyogV2hlbiB0aGUgZG90cyBzdG9wIGFuZCB0aGUgYm90ICJmYWxscyBhc2xlZXAiICovCi50eXBpbmctcm93LnNsZWVwaW5nIC50eXBpbmctZG90ewogIGFuaW1hdGlvbjpub25lOwogIG9wYWNpdHk6LjI1OwogIGJhY2tncm91bmQ6I0MyQzJDMjsKfQouenp6ewogIGZvbnQtc2l6ZToxM3B4OwogIGNvbG9yOiNDODEwMkU7CiAgbGV0dGVyLXNwYWNpbmc6LjE1ZW07CiAgZm9udC13ZWlnaHQ6NTAwOwogIG9wYWNpdHk6MDsKICB0cmFuc2l0aW9uOm9wYWNpdHkgLjZzIGVhc2U7CiAgbWFyZ2luLWxlZnQ6NHB4Owp9Ci56enouc2hvd3tvcGFjaXR5Oi44NTthbmltYXRpb246enp6RmxvYXQgMi44cyBlYXNlLWluLW91dCBpbmZpbml0ZX0KQGtleWZyYW1lcyB6enpGbG9hdHsKICAwJSwxMDAle3RyYW5zZm9ybTp0cmFuc2xhdGVZKDApO29wYWNpdHk6LjV9CiAgNTAle3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0ycHgpO29wYWNpdHk6Ljg1fQp9CgovKiBSZXBsYXkgY29udHJvbCDigJQgc21hbGwsIHN1YnRsZSwgdXNlcyBhY2NlbnQgdGVhbCAqLwoucmVwbGF5ewogIG1hcmdpbi10b3A6MThweDsKICBiYWNrZ3JvdW5kOnRyYW5zcGFyZW50OwogIGJvcmRlcjoxcHggc29saWQgI0MyQzJDMjsKICBjb2xvcjojQzgxMDJFOwogIGZvbnQtc2l6ZToxMXB4OwogIGxldHRlci1zcGFjaW5nOi4xMmVtOwogIHRleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTsKICBwYWRkaW5nOjhweCAxNnB4OwogIGJvcmRlci1yYWRpdXM6MjBweDsKICBjdXJzb3I6cG9pbnRlcjsKICBmb250LWZhbWlseTppbmhlcml0OwogIHRyYW5zaXRpb246YmFja2dyb3VuZCAuMjVzIGVhc2UsIGNvbG9yIC4yNXMgZWFzZSwgYm9yZGVyLWNvbG9yIC4yNXMgZWFzZTsKICBvcGFjaXR5OjA7Cn0KLnJlcGxheS5zaG93e29wYWNpdHk6MX0KLnJlcGxheTpob3ZlcnsKICBiYWNrZ3JvdW5kOnJnYmEoOTQsMTczLDE3OSwuMSk7CiAgYm9yZGVyLWNvbG9yOiNDODEwMkU7CiAgY29sb3I6IzFBMUExQTsKfQo8L3N0eWxlPgo8c3R5bGU+Cmh0bWwsYm9keXttYXJnaW46MDtwYWRkaW5nOjA7YmFja2dyb3VuZDojRjdGM0VEIWltcG9ydGFudDt3aWR0aDoxMDAlO2hlaWdodDoxMDAlO292ZXJmbG93OmhpZGRlbjt9CmJvZHl7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO30KPC9zdHlsZT48L2hlYWQ+Cjxib2R5PgoKPGRpdiBjbGFzcz0ic3RvcnkiPgoKICA8IS0tIFJldXNlZCAuc2NlbmUtbGFiZWwgY2xhc3MgZnJvbSBvcmlnaW5hbCDigJQgc2V0cyB0aGUgY29udGV4dHVhbCBmcmFtZSAtLT4KICA8ZGl2IGNsYXNzPSJzY2VuZS1sYWJlbCIgaWQ9ImxibCI+bmV3IGNsaWVudCBpbnRha2U8L2Rpdj4KCiAgPCEtLSDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZAKICAgICAgIENIQVQgV0lORE9XCiAgICAgICDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZAgLS0+CiAgPGRpdiBjbGFzcz0iY2hhdC13aW5kb3ciPgoKICAgIDxkaXYgY2xhc3M9ImNoYXQtaGVhZGVyIj4KICAgICAgPGRpdiBjbGFzcz0ic3RhdHVzLWRvdCIgaWQ9InN0YXR1c0RvdCI+PC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9ImNoYXQtdGl0bGUiPlN1cHBvcnQgQ2hhdDwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJjaGF0LXN1YnRpdGxlIiBpZD0iY2hhdFN1YnRpdGxlIj5vbmxpbmU8L2Rpdj4KICAgIDwvZGl2PgoKICAgIDxkaXYgY2xhc3M9ImNoYXQtYm9keSIgaWQ9ImNoYXRCb2R5Ij4KCiAgICAgIDwhLS0g4pSA4pSAIFNDRU5FIDE6IFVzZXIgbWVzc2FnZSAobGF0ZSBuaWdodCBzdWJtaXNzaW9uKSDilIDilIAgLS0+CiAgICAgIDxkaXYgY2xhc3M9Im1zZy1yb3cgdXNlciIgaWQ9InVzZXJNc2ciPgogICAgICAgIDxkaXYgY2xhc3M9ImJ1YmJsZSB1c2VyIj5IaSwgSSdkIGxpa2UgdG8gZ2V0IHN0YXJ0ZWQ8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJ0aW1lc3RhbXAgbGF0ZSI+MTE6NDIgUE08L2Rpdj4KICAgICAgPC9kaXY+CgogICAgICA8IS0tIOKUgOKUgCBTQ0VORSAyOiBUeXBpbmcgZG90cyDihpIgc2xlZXBpbmcgc3RhdGUg4pSA4pSAIC0tPgogICAgICA8ZGl2IGNsYXNzPSJ0eXBpbmctcm93IiBpZD0idHlwaW5nUm93Ij4KICAgICAgICA8ZGl2IGNsYXNzPSJ0eXBpbmctYnViYmxlIj4KICAgICAgICAgIDxkaXYgY2xhc3M9InR5cGluZy1kb3QiPjwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0idHlwaW5nLWRvdCI+PC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJ0eXBpbmctZG90Ij48L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJ6enoiIGlkPSJ6enoiPnogeiB6PC9kaXY+CiAgICAgIDwvZGl2PgoKICAgICAgPCEtLSDilIDilIAgU0NFTkUgMzogQWRqdXRhbnQgcmVzcG9uc2Ug4pSA4pSAIC0tPgogICAgICA8ZGl2IGNsYXNzPSJtc2ctcm93IGJvdCIgaWQ9ImFkanV0YW50TXNnIj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZW5kZXItbGFiZWwiPkFkanV0YW50PC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iYnViYmxlIGJvdCI+VGhhbmtzIGZvciByZWFjaGluZyBvdXQg4oCUIHdlJ3ZlIHJlY2VpdmVkIHlvdXIgcmVxdWVzdCBhbmQgd2lsbCB0YWtlIGl0IGZyb20gaGVyZS48L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJ0aW1lc3RhbXAiPjExOjQzIFBNPC9kaXY+CiAgICAgIDwvZGl2PgoKICAgIDwvZGl2PgogIDwvZGl2PgoKICA8YnV0dG9uIGNsYXNzPSJyZXBsYXkiIGlkPSJyZXBsYXkiPlJlcGxheTwvYnV0dG9uPgoKPC9kaXY+Cgo8c2NyaXB0PgovKiDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZAKICAgQU5JTUFUSU9OIFNFUVVFTkNFUgogICBEcml2ZXMgdGhlIHRocmVlIHNjZW5lcyB3aXRoIHJlYWxpc3RpYy1idXQtZGVtby1wYWNlZCB0aW1pbmcuCiAgIEFsbCB2aXN1YWwgdHJhbnNpdGlvbnMgbGl2ZSBpbiBDU1M7IEpTIG9ubHkgdG9nZ2xlcyBjbGFzc2VzLgogICDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZAgKi8KKGZ1bmN0aW9uKCl7CiAgY29uc3QgbGJsICAgICAgICAgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGJsJyk7CiAgY29uc3Qgc3RhdHVzRG90ICAgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc3RhdHVzRG90Jyk7CiAgY29uc3QgY2hhdFN1YiAgICAgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY2hhdFN1YnRpdGxlJyk7CiAgY29uc3QgdXNlck1zZyAgICAgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndXNlck1zZycpOwogIGNvbnN0IHR5cGluZ1JvdyAgID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3R5cGluZ1JvdycpOwogIGNvbnN0IHp6eiAgICAgICAgID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3p6eicpOwogIGNvbnN0IGFkanV0YW50TXNnID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2FkanV0YW50TXNnJyk7CiAgY29uc3QgcmVwbGF5QnRuICAgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVwbGF5Jyk7CgogIC8vIFRpbWluZyAobXMpIOKAlCByZWFsaXN0aWMgZmVlbCwgc2xpZ2h0bHkgc3BlZCB1cCBmb3IgZGVtbwogIGNvbnN0IFQgPSB7CiAgICBsYWJlbEluICAgICAgIDogMjAwLCAgICAvLyBoZWFkZXIgbGFiZWwgZmFkZXMgaW4KICAgIHVzZXJJbiAgICAgICAgOiA5MDAsICAgIC8vIHVzZXIgbWVzc2FnZSBzbGlkZXMgaW4KICAgIHR5cGluZ0luICAgICAgOiAyMTAwLCAgIC8vIGNoYXRib3QgInN0YXJ0cyB0eXBpbmciCiAgICB0eXBpbmdTdG9wICAgIDogMzYwMCwgICAvLyBkb3RzIHN0b3AsIHNsZWVwIHN0YXRlIGJlZ2lucwogICAgc2xlZXBIb2xkICAgICA6IDI0MDAsICAgLy8gZHVyYXRpb24gb2YgZGVhZC1haXIgcGF1c2UKICAgIGFkanV0YW50SW4gICAgOiA2MDAwLCAgIC8vIEFkanV0YW50J3MgcmVwbHkgYXJyaXZlcyAofnNpbXVsYXRpbmcgfjYwcykKICAgIHJlcGxheVNob3cgICAgOiA3NjAwCiAgfTsKCiAgZnVuY3Rpb24gcmVzZXQoKXsKICAgIGxibC5jbGFzc0xpc3QucmVtb3ZlKCd2aXMnKTsKICAgIHVzZXJNc2cuY2xhc3NMaXN0LnJlbW92ZSgnc2hvdycpOwogICAgdHlwaW5nUm93LmNsYXNzTGlzdC5yZW1vdmUoJ3Nob3cnLCdzbGVlcGluZycpOwogICAgenp6LmNsYXNzTGlzdC5yZW1vdmUoJ3Nob3cnKTsKICAgIGFkanV0YW50TXNnLmNsYXNzTGlzdC5yZW1vdmUoJ3Nob3cnKTsKICAgIHJlcGxheUJ0bi5jbGFzc0xpc3QucmVtb3ZlKCdzaG93Jyk7CiAgICBzdGF0dXNEb3QuY2xhc3NMaXN0LnJlbW92ZSgnc2xlZXBpbmcnLCdhZGp1dGFudCcpOwogICAgY2hhdFN1Yi5jbGFzc0xpc3QucmVtb3ZlKCdhZGp1dGFudCcpOwogICAgY2hhdFN1Yi50ZXh0Q29udGVudCA9ICdvbmxpbmUnOwogIH0KCiAgZnVuY3Rpb24gcGxheSgpewogICAgcmVzZXQoKTsKCiAgICAvLyDilIDilIAgaGVhZGVyIGxhYmVsIGZhZGVzIGluIOKUgOKUgAogICAgc2V0VGltZW91dCgoKSA9PiBsYmwuY2xhc3NMaXN0LmFkZCgndmlzJyksIFQubGFiZWxJbik7CgogICAgLy8g4pSA4pSAIFNDRU5FIDE6IHVzZXIgbWVzc2FnZSBhcnJpdmVzIGF0IDExOjQyIFBNIOKUgOKUgAogICAgc2V0VGltZW91dCgoKSA9PiB7CiAgICAgIHVzZXJNc2cuY2xhc3NMaXN0LmFkZCgnc2hvdycpOwogICAgfSwgVC51c2VySW4pOwoKICAgIC8vIOKUgOKUgCBTQ0VORSAyYTogdHlwaW5nIGRvdHMgYXBwZWFyIGJyaWVmbHkg4pSA4pSACiAgICBzZXRUaW1lb3V0KCgpID0+IHsKICAgICAgdHlwaW5nUm93LmNsYXNzTGlzdC5hZGQoJ3Nob3cnKTsKICAgIH0sIFQudHlwaW5nSW4pOwoKICAgIC8vIOKUgOKUgCBTQ0VORSAyYjogZG90cyBzdG9wLCBzdGF0dXMgZmxpcHMgdG8gc2xlZXBpbmcsICJ6enoiIGFwcGVhcnMg4pSA4pSACiAgICBzZXRUaW1lb3V0KCgpID0+IHsKICAgICAgdHlwaW5nUm93LmNsYXNzTGlzdC5hZGQoJ3NsZWVwaW5nJyk7CiAgICAgIHp6ei5jbGFzc0xpc3QuYWRkKCdzaG93Jyk7CiAgICAgIHN0YXR1c0RvdC5jbGFzc0xpc3QuYWRkKCdzbGVlcGluZycpOwogICAgICBjaGF0U3ViLnRleHRDb250ZW50ID0gJ2F3YXknOwogICAgfSwgVC50eXBpbmdTdG9wKTsKCiAgICAvLyDilIDilIAgU0NFTkUgMzogQWRqdXRhbnQgdGFrZXMgb3ZlciDilIDilIAKICAgIC8vIFR5cGluZyByb3cgZmFkZXMgb3V0LCBzdGF0dXMgZmxpcHMgdG8gYnJpZ2h0IHRlYWwsIG1lc3NhZ2Ugc2xpZGVzIGluLgogICAgc2V0VGltZW91dCgoKSA9PiB7CiAgICAgIHR5cGluZ1Jvdy5jbGFzc0xpc3QucmVtb3ZlKCdzaG93Jywnc2xlZXBpbmcnKTsKICAgICAgenp6LmNsYXNzTGlzdC5yZW1vdmUoJ3Nob3cnKTsKICAgICAgc3RhdHVzRG90LmNsYXNzTGlzdC5yZW1vdmUoJ3NsZWVwaW5nJyk7CiAgICAgIHN0YXR1c0RvdC5jbGFzc0xpc3QuYWRkKCdhZGp1dGFudCcpOwogICAgICBjaGF0U3ViLmNsYXNzTGlzdC5hZGQoJ2FkanV0YW50Jyk7CiAgICAgIGNoYXRTdWIudGV4dENvbnRlbnQgPSAnQWRqdXRhbnQgwrcgYWN0aXZlJzsKICAgICAgLy8gc21hbGwgc3RhZ2dlciBzbyB0aGUgbWVzc2FnZSBsYW5kcyBhZnRlciB0aGUgdHlwaW5nIHJvdyBjb2xsYXBzZXMKICAgICAgc2V0VGltZW91dCgoKSA9PiBhZGp1dGFudE1zZy5jbGFzc0xpc3QuYWRkKCdzaG93JyksIDQ1MCk7CiAgICB9LCBULmFkanV0YW50SW4pOwoKICAgIC8vIOKUgOKUgCByZXBsYXkgYnV0dG9uIGFwcGVhcnMg4pSA4pSACiAgICBzZXRUaW1lb3V0KCgpID0+IHJlcGxheUJ0bi5jbGFzc0xpc3QuYWRkKCdzaG93JyksIFQucmVwbGF5U2hvdyk7CiAgfQoKICByZXBsYXlCdG4uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBwbGF5KTsKCiAgLy8gS2ljayBvZmYgb24gbG9hZAogIHBsYXkoKTsKfSkoKTsKPC9zY3JpcHQ+Cgo8L2JvZHk+PC9odG1sPgo=", "PCFET0NUWVBFIGh0bWw+CjxodG1sPjxoZWFkPjxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KPHN0eWxlPgovKiDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZAKICAgdjIxIOKAlCBVSSBoaWVyYXJjaHkgJiBzcGFjaW5nIHJlZmluZW1lbnRzCiAgIOKAoiBBcmMgcmFkaXVzIGVubGFyZ2VkICgxMjAg4oaSIDE0MCkgc28gaWNvbnMgc2l0IGZ1cnRoZXIgZnJvbSB0aGUKICAgICBjbG9jay1mYWNlIGV4dGVyaW9yIG51bWJlcnMg4oCUIG1vcmUgYnJlYXRoaW5nIHJvb20KICAg4oCiIEFyYyBlbmRwb2ludHMgcmFpc2VkIHNvIHRoZSBjdXJ2ZSBzdGFydHMvZW5kcyBBQk9WRSB0aGUgaWNvbnMsCiAgICAgbm90IHBhc3NpbmcgdGhyb3VnaCB0aGVtCiAgIOKAoiBIZWFkZXIgbGFiZWwgcmVtb3ZlZCDigJQgdGhlIGFuaW1hdGlvbiBjYXJyaWVzIHRoZSBuYXJyYXRpdmUKICAg4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQICovCip7Ym94LXNpemluZzpib3JkZXItYm94O21hcmdpbjowO3BhZGRpbmc6MH0KYm9keXtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50fQouc3Rvcnl7CiAgZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjthbGlnbi1pdGVtczpjZW50ZXI7CiAgcGFkZGluZzoycmVtIDFyZW0gMi41cmVtOwogIGZvbnQtZmFtaWx5Oi1hcHBsZS1zeXN0ZW0sc3lzdGVtLXVpLHNhbnMtc2VyaWY7Cn0KLnNjZW5lLXdyYXB7cG9zaXRpb246cmVsYXRpdmU7d2lkdGg6MzQwcHg7aGVpZ2h0OjQzMHB4fQoKLnN0ZXB7CiAgcG9zaXRpb246YWJzb2x1dGU7aW5zZXQ6MDsKICBvcGFjaXR5OjA7CiAgdHJhbnNpdGlvbjpvcGFjaXR5IC45cyBlYXNlLCB0cmFuc2Zvcm0gLjlzIGVhc2U7CiAgdHJhbnNmb3JtOnNjYWxlKC45Nik7CiAgcG9pbnRlci1ldmVudHM6bm9uZTsKfQouc3RlcC5hY3RpdmV7CiAgb3BhY2l0eToxOwogIHRyYW5zZm9ybTpzY2FsZSgxKTsKICBwb2ludGVyLWV2ZW50czphdXRvOwp9Cgouc3RlcC1pbm5lcnsKICBwb3NpdGlvbjphYnNvbHV0ZTtpbnNldDowOwogIGFuaW1hdGlvbjpicmVhdGhlIDZzIGVhc2UtaW4tb3V0IGluZmluaXRlOwp9CkBrZXlmcmFtZXMgYnJlYXRoZXsKICAwJSwxMDAle3RyYW5zZm9ybTpzY2FsZSgxKX0KICA1MCUgICAge3RyYW5zZm9ybTpzY2FsZSgxLjAxMil9Cn0KCi5pY29uLXNsb3R7CiAgcG9zaXRpb246YWJzb2x1dGU7CiAgd2lkdGg6MzZweDsgaGVpZ2h0OjM2cHg7Cn0KLmljb24tc2xvdCA+IHN2Z3sKICBwb3NpdGlvbjphYnNvbHV0ZTsKICBpbnNldDowOwogIHdpZHRoOjEwMCU7IGhlaWdodDoxMDAlOwp9Ci5pY29uLXNsb3QgLmZpbGxlZHsKICBvcGFjaXR5OjA7CiAgdHJhbnNpdGlvbjpub25lOwp9CgovKiDilIDilIDilIAgSWNvbiBwb3NpdGlvbnMg4pSA4pSA4pSACiAgIENvbmNlcHR1YWwgb3V0ZXIgcmluZyBhdCByYWRpdXMgMTQwIGZyb20gY2xvY2sgY2VudGVyICgxNzAsIDI1NikuCiAgIOKAoiBDbG9jayBpY29uIGNlbnRlcmVkIGF0IHRoZSA5IG8nY2xvY2sgcG9zaXRpb246ICgzMCwgMjU2KQogICDigKIgTW9vbiAgaWNvbiBjZW50ZXJlZCBhdCB0aGUgMyBvJ2Nsb2NrIHBvc2l0aW9uOiAoMzEwLCAyNTYpCiAgIFRoaXMgYWRkcyBjbGVhciBicmVhdGhpbmcgcm9vbSBiZXR3ZWVuIHRoZSBpY29ucyBhbmQgdGhlCiAgIGV4dGVyaW9yIGNsb2NrIG51bWJlcnMgKDkgc2l0cyBhdCB4PTc1OyBnYXAgZnJvbSBpY29uIGVkZ2UgPSAyN3B4KS4KKi8KI3N0YXJ0Q2xvY2tTbG90eyBsZWZ0OjEycHg7ICB0b3A6MjM4cHg7IH0KI2VuZE1vb25TbG90ICAgeyBsZWZ0OjI5MnB4OyB0b3A6MjM4cHg7IH0KPC9zdHlsZT4KPHN0eWxlPgpodG1sLGJvZHl7bWFyZ2luOjA7cGFkZGluZzowO2JhY2tncm91bmQ6I0Y3RjNFRCFpbXBvcnRhbnQ7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTtvdmVyZmxvdzpoaWRkZW47fQpib2R5e2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjt9Cjwvc3R5bGU+PC9oZWFkPjxib2R5PgoKPGRpdiBjbGFzcz0ic3RvcnkiPgo8ZGl2IGNsYXNzPSJzY2VuZS13cmFwIj4KCiAgPCEtLSDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZAKICAgICAgIFNURVAgMSDigJQgT1ZFUk5JR0hUCiAgICAgICDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZAgLS0+CiAgPGRpdiBjbGFzcz0ic3RlcCBhY3RpdmUiIGlkPSJzdGVwMSI+CiAgICA8ZGl2IGNsYXNzPSJzdGVwLWlubmVyIj4KCiAgICAgIDwhLS0g4pSA4pSA4pSAIEFSQyArIENFTlRSQUwgQ0xPQ0sgRkFDRSDilIDilIDilIAgLS0+CiAgICAgIDxzdmcgc3R5bGU9InBvc2l0aW9uOmFic29sdXRlO2luc2V0OjA7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTtwb2ludGVyLWV2ZW50czpub25lIgogICAgICAgICAgIHdpZHRoPSIzNDAiIGhlaWdodD0iNDMwIiB2aWV3Qm94PSIwIDAgMzQwIDQzMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KCiAgICAgICAgPCEtLSDilZDilZDilZAgVEhJTiBDT05DRU5UUklDIEFSQyDilZDilZDilZAKICAgICAgICAgICAgIEFyYyBjZW50ZXI6ICgxNzAsIDI1NikuIEFyYyByYWRpdXM6IDE0MC4KICAgICAgICAgICAgIEVuZHBvaW50cyByYWlzZWQgc28gdGhleSBzaXQgQUJPVkUgdGhlIGljb25zIChub3QgYXQKICAgICAgICAgICAgIGljb24tY2VudGVyIHk9MjU2LCBidXQgYXQgYW5nbGUgwrExNcKwIGFib3ZlIHRoZSA5LzMKICAgICAgICAgICAgIGNhcmRpbmFsIHBvc2l0aW9ucyk6CiAgICAgICAgICAgICAgIHN0YXJ0OiAxOTXCsCDihpIgKDE3MCArIDE0MMK3Y29zKDE5NcKwKSwgMjU2ICsgMTQwwrdzaW4oMTk1wrApKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAoMTcwIC0gMTM1LCAyNTYgLSAzNikgPSAoMzUsIDIyMCkKICAgICAgICAgICAgICAgZW5kOiAgIDM0NcKwIOKGkiAoMzA1LCAyMjApCiAgICAgICAgICAgICBUaGUgYXJjIHBhc3NlcyBvdmVyIHRoZSB0b3AgdGhyb3VnaCAoMTcwLCAxMTYpLgogICAgICAgICAgICAgQm90aCBlbmRwb2ludHMgc2l0IH4xOHB4IGFib3ZlIHRoZSBpY29uIHRvcCBlZGdlcyAoeT0yMzgpLgogICAgICAgIOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkCAtLT4KICAgICAgICA8cGF0aCBpZD0iZ3VpZGVBcmMiCiAgICAgICAgICAgICAgZD0iTSAzNSwyMjAgQSAxNDAsMTQwIDAgMCwxIDMwNSwyMjAiCiAgICAgICAgICAgICAgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjQzJDMkMyIiBzdHJva2Utd2lkdGg9IjEuNSIKICAgICAgICAgICAgICBzdHJva2UtbGluZWNhcD0icm91bmQiIG9wYWNpdHk9Ii4yNSIvPgoKICAgICAgICA8cGF0aCBpZD0icHJvZ3Jlc3NBcmMiCiAgICAgICAgICAgICAgZD0iTSAzNSwyMjAgQSAxNDAsMTQwIDAgMCwxIDMwNSwyMjAiCiAgICAgICAgICAgICAgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjQzgxMDJFIiBzdHJva2Utd2lkdGg9IjIiCiAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogICAgICAgICAgICAgIHBhdGhMZW5ndGg9IjEwMCIKICAgICAgICAgICAgICBzdHJva2UtZGFzaGFycmF5PSIxMDAiCiAgICAgICAgICAgICAgc3Ryb2tlLWRhc2hvZmZzZXQ9IjEwMCIvPgoKICAgICAgICA8IS0tIOKVkOKVkOKVkCBDRU5UUkFMIENMT0NLIEZBQ0Ug4oCUIGNlbnRlciAoMTcwLCAyNTYpLCByPTc4IOKVkOKVkOKVkCAtLT4KICAgICAgICA8ZyBpZD0iY2xvY2siPgogICAgICAgICAgPGNpcmNsZSBjeD0iMTcwIiBjeT0iMjU2IiByPSI3OCIgZmlsbD0iI0YwRTBEOSIvPgogICAgICAgICAgPGNpcmNsZSBjeD0iMTcwIiBjeT0iMjU2IiByPSI3OCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjQzJDMkMyIiBzdHJva2Utd2lkdGg9IjIiLz4KCiAgICAgICAgICA8bGluZSB4MT0iMTcwIiB5MT0iMTg2IiB4Mj0iMTcwIiB5Mj0iMTk0IiBzdHJva2U9IiNDODEwMkUiIHN0cm9rZS13aWR0aD0iMi41IiBzdHJva2UtbGluZWNhcD0icm91bmQiLz4KICAgICAgICAgIDxsaW5lIHgxPSIyNDAiIHkxPSIyNTYiIHgyPSIyMzIiIHkyPSIyNTYiIHN0cm9rZT0iI0M4MTAyRSIgc3Ryb2tlLXdpZHRoPSIyLjUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIvPgogICAgICAgICAgPGxpbmUgeDE9IjE3MCIgeTE9IjMyNiIgeDI9IjE3MCIgeTI9IjMxOCIgc3Ryb2tlPSIjQzgxMDJFIiBzdHJva2Utd2lkdGg9IjIuNSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIi8+CiAgICAgICAgICA8bGluZSB4MT0iMTAwIiB5MT0iMjU2IiB4Mj0iMTA4IiB5Mj0iMjU2IiBzdHJva2U9IiNDODEwMkUiIHN0cm9rZS13aWR0aD0iMi41IiBzdHJva2UtbGluZWNhcD0icm91bmQiLz4KCiAgICAgICAgICA8ZyBzdHJva2U9IiNDMkMyQzIiIHN0cm9rZS13aWR0aD0iMS41IiBzdHJva2UtbGluZWNhcD0icm91bmQiPgogICAgICAgICAgICA8bGluZSB4MT0iMjA1IiB5MT0iMTk1IiB4Mj0iMjAyIiB5Mj0iMjAyIi8+CiAgICAgICAgICAgIDxsaW5lIHgxPSIyMzEiIHkxPSIyMjEiIHgyPSIyMjQiIHkyPSIyMjQiLz4KICAgICAgICAgICAgPGxpbmUgeDE9IjIzMSIgeTE9IjI5MSIgeDI9IjIyNCIgeTI9IjI4OCIvPgogICAgICAgICAgICA8bGluZSB4MT0iMjA1IiB5MT0iMzE3IiB4Mj0iMjAyIiB5Mj0iMzEwIi8+CiAgICAgICAgICAgIDxsaW5lIHgxPSIxMzUiIHkxPSIzMTciIHgyPSIxMzgiIHkyPSIzMTAiLz4KICAgICAgICAgICAgPGxpbmUgeDE9IjEwOSIgeTE9IjI5MSIgeDI9IjExNiIgeTI9IjI4OCIvPgogICAgICAgICAgICA8bGluZSB4MT0iMTA5IiB5MT0iMjIxIiB4Mj0iMTE2IiB5Mj0iMjI0Ii8+CiAgICAgICAgICAgIDxsaW5lIHgxPSIxMzUiIHkxPSIxOTUiIHgyPSIxMzgiIHkyPSIyMDIiLz4KICAgICAgICAgIDwvZz4KCiAgICAgICAgICA8dGV4dCB4PSIxNzAiIHk9IjE2NiIgdGV4dC1hbmNob3I9Im1pZGRsZSIKICAgICAgICAgICAgICAgIGZvbnQtZmFtaWx5PSItYXBwbGUtc3lzdGVtLHN5c3RlbS11aSxzYW5zLXNlcmlmIgogICAgICAgICAgICAgICAgZm9udC1zaXplPSIxNSIgZm9udC13ZWlnaHQ9IjcwMCIKICAgICAgICAgICAgICAgIGZpbGw9IiNDODEwMkUiPjEyPC90ZXh0PgogICAgICAgICAgPHRleHQgeD0iMjY1IiB5PSIyNjEiIHRleHQtYW5jaG9yPSJtaWRkbGUiCiAgICAgICAgICAgICAgICBmb250LWZhbWlseT0iLWFwcGxlLXN5c3RlbSxzeXN0ZW0tdWksc2Fucy1zZXJpZiIKICAgICAgICAgICAgICAgIGZvbnQtc2l6ZT0iMTUiIGZvbnQtd2VpZ2h0PSI3MDAiCiAgICAgICAgICAgICAgICBmaWxsPSIjQzgxMDJFIj4zPC90ZXh0PgogICAgICAgICAgPHRleHQgeD0iMTcwIiB5PSIzNTciIHRleHQtYW5jaG9yPSJtaWRkbGUiCiAgICAgICAgICAgICAgICBmb250LWZhbWlseT0iLWFwcGxlLXN5c3RlbSxzeXN0ZW0tdWksc2Fucy1zZXJpZiIKICAgICAgICAgICAgICAgIGZvbnQtc2l6ZT0iMTUiIGZvbnQtd2VpZ2h0PSI3MDAiCiAgICAgICAgICAgICAgICBmaWxsPSIjQzgxMDJFIj42PC90ZXh0PgogICAgICAgICAgPHRleHQgeD0iNzUiIHk9IjI2MSIgdGV4dC1hbmNob3I9Im1pZGRsZSIKICAgICAgICAgICAgICAgIGZvbnQtZmFtaWx5PSItYXBwbGUtc3lzdGVtLHN5c3RlbS11aSxzYW5zLXNlcmlmIgogICAgICAgICAgICAgICAgZm9udC1zaXplPSIxNSIgZm9udC13ZWlnaHQ9IjcwMCIKICAgICAgICAgICAgICAgIGZpbGw9IiNDODEwMkUiPjk8L3RleHQ+CgogICAgICAgICAgPGcgaWQ9ImhvdXJIYW5kRyIgdHJhbnNmb3JtPSJyb3RhdGUoLTMwIDE3MCAyNTYpIj4KICAgICAgICAgICAgPGxpbmUgeDE9IjE3MCIgeTE9IjI1NiIgeDI9IjE3MCIgeTI9IjIxNCIKICAgICAgICAgICAgICAgICAgc3Ryb2tlPSIjMUExQTFBIiBzdHJva2Utd2lkdGg9IjMuNSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIi8+CiAgICAgICAgICA8L2c+CiAgICAgICAgICA8ZyBpZD0ibWluSGFuZEciIHRyYW5zZm9ybT0icm90YXRlKDAgMTcwIDI1NikiPgogICAgICAgICAgICA8bGluZSB4MT0iMTcwIiB5MT0iMjU2IiB4Mj0iMTcwIiB5Mj0iMTkyIgogICAgICAgICAgICAgICAgICBzdHJva2U9IiNDODEwMkUiIHN0cm9rZS13aWR0aD0iMi41IiBzdHJva2UtbGluZWNhcD0icm91bmQiLz4KICAgICAgICAgIDwvZz4KICAgICAgICAgIDxjaXJjbGUgY3g9IjE3MCIgY3k9IjI1NiIgcj0iNC41IiBmaWxsPSIjMEYzRDNFIiBzdHJva2U9IiNDODEwMkUiIHN0cm9rZS13aWR0aD0iMS41Ii8+CiAgICAgICAgICA8Y2lyY2xlIGN4PSIxNzAiIGN5PSIyNTYiIHI9IjEuNSIgZmlsbD0iI0M4MTAyRSIvPgogICAgICAgIDwvZz4KCiAgICAgICAgPGNpcmNsZSBpZD0ib3JiaXREb3QiIGN4PSIxNzAiIGN5PSIxNzgiIHI9IjMiIGZpbGw9IiNDODEwMkUiLz4KICAgICAgPC9zdmc+CgogICAgICA8IS0tIFNUQVJUIENMT0NLIElDT04g4oCUIG91dGxpbmUgb25seSAtLT4KICAgICAgPGRpdiBjbGFzcz0iaWNvbi1zbG90IiBpZD0ic3RhcnRDbG9ja1Nsb3QiPgogICAgICAgIDxzdmcgd2lkdGg9IjE5MnB4IiBoZWlnaHQ9IjIwOXB4IiB2aWV3Qm94PSIwIDAgMTkyIDIwOSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICAgICAgICAgIDxnIHN0cm9rZT0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIxIiBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPgogICAgICAgICAgICA8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMTA0LCAtOTYpIj4KICAgICAgICAgICAgICA8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxMDUuMzk3MywgOTcpIj4KICAgICAgICAgICAgICAgIDxjaXJjbGUgc3Ryb2tlPSIjMEYzRDNFIiBzdHJva2Utd2lkdGg9IjMiIGZpbGwtcnVsZT0ibm9uemVybyIgY3g9Ijk0Ljk5MzE1MDciIGN5PSIxMTIuMDA2ODQ5IiByPSI5NC45OTMxNTA3Ij48L2NpcmNsZT4KICAgICAgICAgICAgICAgIDxsaW5lIHgxPSI5NC45OTMxNTA3IiB5MT0iMzAuMTUyODk3NiIgeDI9Ijk0Ljk5MzE1MDciIHkyPSI1OC4yNDM5MjMiIHN0cm9rZT0iIzBGM0QzRSIgc3Ryb2tlLXdpZHRoPSIzIiBzdHJva2UtbGluZWNhcD0icm91bmQiIGZpbGwtcnVsZT0ibm9uemVybyI+PC9saW5lPgogICAgICAgICAgICAgICAgPGxpbmUgeDE9IjE3Ny4wOTM0NTgiIHkxPSIxMTIuMjUzMjA1IiB4Mj0iMTQ5LjAwMjQzMyIgeTI9IjExMi4yNTMyMDUiIHN0cm9rZT0iIzBGM0QzRSIgc3Ryb2tlLXdpZHRoPSIzIiBzdHJva2UtbGluZWNhcD0icm91bmQiIGZpbGwtcnVsZT0ibm9uemVybyI+PC9saW5lPgogICAgICAgICAgICAgICAgPGxpbmUgeDE9IjQwLjk4Mzg2ODkiIHkxPSIxMTIuMjUzMjA1IiB4Mj0iMTIuODkyODQzNSIgeTI9IjExMi4yNTMyMDUiIHN0cm9rZT0iIzBGM0QzRSIgc3Ryb2tlLXdpZHRoPSIzIiBzdHJva2UtbGluZWNhcD0icm91bmQiIGZpbGwtcnVsZT0ibm9uemVybyI+PC9saW5lPgogICAgICAgICAgICAgICAgPGxpbmUgeDE9Ijk0Ljk5MzE1MDciIHkxPSIxNjYuMjYyNDg3IiB4Mj0iOTQuOTkzMTUwNyIgeTI9IjE5NC4zNTM1MTIiIHN0cm9rZT0iIzBGM0QzRSIgc3Ryb2tlLXdpZHRoPSIzIiBzdHJva2UtbGluZWNhcD0icm91bmQiIGZpbGwtcnVsZT0ibm9uemVybyI+PC9saW5lPgogICAgICAgICAgICAgICAgPGNpcmNsZSBzdHJva2U9IiMwRjNEM0UiIHN0cm9rZS13aWR0aD0iMyIgZmlsbC1ydWxlPSJub256ZXJvIiBjeD0iOTYuNDEwOTU4OSIgY3k9IjExMy40MjQ2NTgiIHI9IjE0LjE3ODA4MjIiPjwvY2lyY2xlPgogICAgICAgICAgICAgICAgPHBhdGggZD0iTTk2LjE2MDAyNDIsNzIuNTUyODcwNSBDOTYuMzc5MDE0Myw3Mi41MjM3NzkxIDk2LjU4MDEyNCw3Mi42Nzc3MjI0IDk2LjYwOTIxNTQsNzIuODk2NzEyNSBMMTAxLjI2MTAyNSwxMDcuOTE4MzQxIEwxMzguNDk5NTMzLDExMy4wNTYxNDcgQzEzOC42NTIyNzksMTEzLjA3NzIyIDEzOC43NzY4NjIsMTEzLjE4MzQ3MSAxMzguODI0Mjk5LDExMy4zMjU2OTEgTDEzOC44NDEzNjMsMTEzLjM5OTU3MSBDMTM4Ljg3MDUzNiwxMTMuNjE4NTUgMTM4LjcxNjY2OCwxMTMuODE5NzE3IDEzOC40OTc2ODgsMTEzLjg0ODg5IEw5Mi4zMjYzOTU5LDEyMCBMOTIuMzU1MDI1NCwxMTkuODM2MzQxIEw5Mi4wNTMwMjU0LDExOS44ODA5MjkgTDk1LjgxMzk3NTMsNzIuOTE3NDU2MyBDOTUuODI5MDIxMiw3Mi43Mjk1NzYgOTUuOTczMTgzOCw3Mi41Nzc2OTEgOTYuMTYwMDI0Miw3Mi41NTI4NzA1IFoiIGZpbGw9IiNDMkMyQzIiPjwvcGF0aD4KICAgICAgICAgICAgICAgIDxyZWN0IHN0cm9rZT0iIzBGM0QzRSIgc3Ryb2tlLXdpZHRoPSIzIiBmaWxsLXJ1bGU9Im5vbnplcm8iIHg9IjczLjcyNjAyNzQiIHk9IjAiIHdpZHRoPSI0Mi41MzQyNDY2IiBoZWlnaHQ9IjE3LjAxMzY5ODYiPjwvcmVjdD4KICAgICAgICAgICAgICA8L2c+CiAgICAgICAgICAgIDwvZz4KICAgICAgICAgIDwvZz4KICAgICAgICA8L3N2Zz4KICAgICAgPC9kaXY+CgogICAgICA8IS0tIEVORCBNT09OIElDT04g4oCUIG91dGxpbmUgKyBmaWxsZWQgc3RhY2tlZCAtLT4KICAgICAgPGRpdiBjbGFzcz0iaWNvbi1zbG90IiBpZD0iZW5kTW9vblNsb3QiPgogICAgICAgIDxzdmcgY2xhc3M9Im91dGxpbmUiIHdpZHRoPSIyNTJweCIgaGVpZ2h0PSIyNjdweCIgdmlld0JveD0iMCAwIDI1MiAyNjciIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICAgICAgICA8ZyBzdHJva2U9Im5vbmUiIHN0cm9rZS13aWR0aD0iMSIgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIj4KICAgICAgICAgICAgPGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTU4LCAtNzMpIj4KICAgICAgICAgICAgICA8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSg1OS41NzM5LCA3NC43MzkpIj4KICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik0xNDYuNDI2MTAxLDI3LjI2MTAyMDcgQzE2OC44NzIwNCwyNy4yNjEwMjA3IDE4OS42NzI5ODIsMzQuMzA0MDkxNSAyMDYuNzM5NTE0LDQ2LjMwMDgyMDUgQzE2MC40ODQ4NjEsNDcuNzIyODEyMiAxMjMuNDI2MTAxLDg1LjY2NDE0NzkgMTIzLjQyNjEwMSwxMzIuMjYxMDIxIEMxMjMuNDI2MTAxLDE3OC44NTc4OTQgMTYwLjQ4NDg2MSwyMTYuNzk5MjI5IDIwNi43MzcxMzMsMjE4LjIxOTc4MiBDMTg5LjY3Mjk4MiwyMzAuMjE3OTUgMTY4Ljg3MjA0LDIzNy4yNjEwMjEgMTQ2LjQyNjEwMSwyMzcuMjYxMDIxIEM4OC40MzYyMDI0LDIzNy4yNjEwMjEgNDEuNDI2MTAxMSwxOTAuMjUwOTE5IDQxLjQyNjEwMTEsMTMyLjI2MTAyMSBDNDEuNDI2MTAxMSw3NC4yNzExMjIgODguNDM2MjAyNCwyNy4yNjEwMjA3IDE0Ni40MjYxMDEsMjcuMjYxMDIwNyBaIiBzdHJva2U9IiMwRjNEM0UiIHN0cm9rZS13aWR0aD0iMyIgZmlsbC1ydWxlPSJub256ZXJvIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxMjQuMDgyOCwgMTMyLjI2MSkgcm90YXRlKC0zMCkgdHJhbnNsYXRlKC0xMjQuMDgyOCwgLTEzMi4yNjEpIj48L3BhdGg+CiAgICAgICAgICAgICAgICA8cGF0aCBkPSJNMTUzLjA5OTM5NSwxNzIuOTg0MjQyIEwxNDYuMTcyMTE5LDE3Ni42MjYxMjcgQzE0My43Mjc4OTYsMTc3LjkxMTEzMSAxNDAuNzA0NzYsMTc2Ljk3MTM5OCAxMzkuNDE5NzU2LDE3NC41MjcxNzYgQzEzOC45MDgwNjEsMTczLjU1Mzg3MyAxMzguNzMxNDg4LDE3Mi40MzkwMzMgMTM4LjkxNzM3MiwxNzEuMzU1MjQ1IEwxNDAuMjQwMzY0LDE2My42NDE2MDkgQzE0MC41MTg1NTQsMTYyLjAxOTYzOSAxMzkuOTgwODExLDE2MC4zNjQ2MzggMTM4LjgwMjM4MSwxNTkuMjE1OTUyIEwxMzMuMTk4MDk2LDE1My43NTMxMjUgQzEzMS4yMjA2NzgsMTUxLjgyNTYxOSAxMzEuMTgwMjE3LDE0OC42NjAwNTIgMTMzLjEwNzcyMywxNDYuNjgyNjM0IEMxMzMuODc1MjY2LDE0NS44OTUyMTYgMTM0Ljg4MDk3OCwxNDUuMzgyNzggMTM1Ljk2OTE2MywxNDUuMjI0NjU4IEwxNDMuNzE0MDk0LDE0NC4wOTkyNTQgQzE0NS4zNDI2NDUsMTQzLjg2MjYxMSAxNDYuNzUwNDcyLDE0Mi44Mzk3NjQgMTQ3LjQ3ODc4MywxNDEuMzY0MDQ3IEwxNTAuOTQyNDIxLDEzNC4zNDU5NDkgQzE1Mi4xNjQ1MzIsMTMxLjg2OTY4MSAxNTUuMTYyNjYxLDEzMC44NTI5ODYgMTU3LjYzODkzLDEzMi4wNzUwOTggQzE1OC42MjQ5OTMsMTMyLjU2MTc0OSAxNTkuNDIzMTMsMTMzLjM1OTg4NiAxNTkuOTA5NzgxLDEzNC4zNDU5NDkgTDE2My4zNzM0MiwxNDEuMzY0MDQ3IEMxNjQuMTAxNzMsMTQyLjgzOTc2NCAxNjUuNTA5NTU4LDE0My44NjI2MTEgMTY3LjEzODEwOCwxNDQuMDk5MjU0IEwxNzQuODgzMDM5LDE0NS4yMjQ2NTggQzE3Ny42MTU3NjMsMTQ1LjYyMTc0NiAxNzkuNTA5MTcxLDE0OC4xNTg5NiAxNzkuMTEyMDgyLDE1MC44OTE2ODQgQzE3OC45NTM5NiwxNTEuOTc5ODcgMTc4LjQ0MTUyNCwxNTIuOTg1NTgyIDE3Ny42NTQxMDYsMTUzLjc1MzEyNSBMMTcyLjA0OTgyMiwxNTkuMjE1OTUyIEMxNzAuODcxMzkxLDE2MC4zNjQ2MzggMTcwLjMzMzY0OSwxNjIuMDE5NjM5IDE3MC42MTE4MzgsMTYzLjY0MTYwOSBMMTcxLjkzNDgzLDE3MS4zNTUyNDUgQzE3Mi40MDE2MzUsMTc0LjA3NjkyNyAxNzAuNTczNjk2LDE3Ni42NjE3MDYgMTY3Ljg1MjAxNCwxNzcuMTI4NTExIEMxNjYuNzY4MjI2LDE3Ny4zMTQzOTYgMTY1LjY1MzM4NiwxNzcuMTM3ODIyIDE2NC42ODAwODMsMTc2LjYyNjEyNyBMMTU3Ljc1MjgwNywxNzIuOTg0MjQyIEMxNTYuMjk2MTg3LDE3Mi4yMTg0NTIgMTU0LjU1NjAxNiwxNzIuMjE4NDUyIDE1My4wOTkzOTUsMTcyLjk4NDI0MiBaIiBmaWxsPSIjQzJDMkMyIj48L3BhdGg+CiAgICAgICAgICAgICAgPC9nPgogICAgICAgICAgICA8L2c+CiAgICAgICAgICA8L2c+CiAgICAgICAgPC9zdmc+CiAgICAgICAgPHN2ZyBpZD0iZW5kTW9vbkZpbGxlZCIgY2xhc3M9ImZpbGxlZCIgd2lkdGg9IjI0OXB4IiBoZWlnaHQ9IjI2NnB4IiB2aWV3Qm94PSIwIDAgMjQ5IDI2NiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICAgICAgICAgIDxnIHN0cm9rZT0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIxIiBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPgogICAgICAgICAgICA8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtNTksIC03NCkiPgogICAgICAgICAgICAgIDxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDU5LjU3MzksIDc0LjczOSkiPgogICAgICAgICAgICAgICAgPHBhdGggZD0iTTE0Ni40MjYxMDEsMjcuMjYxMDIwNyBDMTY4Ljg3MjA0LDI3LjI2MTAyMDcgMTg5LjY3Mjk4MiwzNC4zMDQwOTE1IDIwNi43Mzk1MTQsNDYuMzAwODIwNSBDMTYwLjQ4NDg2MSw0Ny43MjI4MTIyIDEyMy40MjYxMDEsODUuNjY0MTQ3OSAxMjMuNDI2MTAxLDEzMi4yNjEwMjEgQzEyMy40MjYxMDEsMTc4Ljg1Nzg5NCAxNjAuNDg0ODYxLDIxNi43OTkyMjkgMjA2LjczNzEzMywyMTguMjE5NzgyIEMxODkuNjcyOTgyLDIzMC4yMTc5NSAxNjguODcyMDQsMjM3LjI2MTAyMSAxNDYuNDI2MTAxLDIzNy4yNjEwMjEgQzg4LjQzNjIwMjQsMjM3LjI2MTAyMSA0MS40MjYxMDExLDE5MC4yNTA5MTkgNDEuNDI2MTAxMSwxMzIuMjYxMDIxIEM0MS40MjYxMDExLDc0LjI3MTEyMiA4OC40MzYyMDI0LDI3LjI2MTAyMDcgMTQ2LjQyNjEwMSwyNy4yNjEwMjA3IFoiIGZpbGw9IiMwRjNEM0UiIGZpbGwtcnVsZT0ibm9uemVybyIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMTI0LjA4MjgsIDEzMi4yNjEpIHJvdGF0ZSgtMzApIHRyYW5zbGF0ZSgtMTI0LjA4MjgsIC0xMzIuMjYxKSI+PC9wYXRoPgogICAgICAgICAgICAgICAgPHBhdGggZD0iTTE1My4wOTkzOTUsMTcyLjk4NDI0MiBMMTQ2LjE3MjExOSwxNzYuNjI2MTI3IEMxNDMuNzI3ODk2LDE3Ny45MTExMzEgMTQwLjcwNDc2LDE3Ni45NzEzOTggMTM5LjQxOTc1NiwxNzQuNTI3MTc2IEMxMzguOTA4MDYxLDE3My41NTM4NzMgMTM4LjczMTQ4OCwxNzIuNDM5MDMzIDEzOC45MTczNzIsMTcxLjM1NTI0NSBMMTQwLjI0MDM2NCwxNjMuNjQxNjA5IEMxNDAuNTE4NTU0LDE2Mi4wMTk2MzkgMTM5Ljk4MDgxMSwxNjAuMzY0NjM4IDEzOC44MDIzODEsMTU5LjIxNTk1MiBMMTMzLjE5ODA5NiwxNTMuNzUzMTI1IEMxMzEuMjIwNjc4LDE1MS44MjU2MTkgMTMxLjE4MDIxNywxNDguNjYwMDUyIDEzMy4xMDc3MjMsMTQ2LjY4MjYzNCBDMTMzLjg3NTI2NiwxNDUuODk1MjE2IDEzNC44ODA5NzgsMTQ1LjM4Mjc4IDEzNS45NjkxNjMsMTQ1LjIyNDY1OCBMMTQzLjcxNDA5NCwxNDQuMDk5MjU0IEMxNDUuMzQyNjQ1LDE0My44NjI2MTEgMTQ2Ljc1MDQ3MiwxNDIuODM5NzY0IDE0Ny40Nzg3ODMsMTQxLjM2NDA0NyBMMTUwLjk0MjQyMSwxMzQuMzQ1OTQ5IEMxNTIuMTY0NTMyLDEzMS44Njk2ODEgMTU1LjE2MjY2MSwxMzAuODUyOTg2IDE1Ny42Mzg5MywxMzIuMDc1MDk4IEMxNTguNjI0OTkzLDEzMi41NjE3NDkgMTU5LjQyMzEzLDEzMy4zNTk4ODYgMTU5LjkwOTc4MSwxMzQuMzQ1OTQ5IEwxNjMuMzczNDIsMTQxLjM2NDA0NyBDMTY0LjEwMTczLDE0Mi44Mzk3NjQgMTY1LjUwOTU1OCwxNDMuODYyNjExIDE2Ny4xMzgxMDgsMTQ0LjA5OTI1NCBMMTc0Ljg4MzAzOSwxNDUuMjI0NjU4IEMxNzcuNjE1NzYzLDE0NS42MjE3NDYgMTc5LjUwOTE3MSwxNDguMTU4OTYgMTc5LjExMjA4MiwxNTAuODkxNjg0IEMxNzguOTUzOTYsMTUxLjk3OTg3IDE3OC40NDE1MjQsMTUyLjk4NTU4MiAxNzcuNjU0MTA2LDE1My43NTMxMjUgTDE3Mi4wNDk4MjIsMTU5LjIxNTk1MiBDMTcwLjg3MTM5MSwxNjAuMzY0NjM4IDE3MC4zMzM2NDksMTYyLjAxOTYzOSAxNzAuNjExODM4LDE2My42NDE2MDkgTDE3MS45MzQ4MywxNzEuMzU1MjQ1IEMxNzIuNDAxNjM1LDE3NC4wNzY5MjcgMTcwLjU3MzY5NiwxNzYuNjYxNzA2IDE2Ny44NTIwMTQsMTc3LjEyODUxMSBDMTY2Ljc2ODIyNiwxNzcuMzE0Mzk2IDE2NS42NTMzODYsMTc3LjEzNzgyMiAxNjQuNjgwMDgzLDE3Ni42MjYxMjcgTDE1Ny43NTI4MDcsMTcyLjk4NDI0MiBDMTU2LjI5NjE4NywxNzIuMjE4NDUyIDE1NC41NTYwMTYsMTcyLjIxODQ1MiAxNTMuMDk5Mzk1LDE3Mi45ODQyNDIgWiIgZmlsbD0iI0MyQzJDMiI+PC9wYXRoPgogICAgICAgICAgICAgIDwvZz4KICAgICAgICAgICAgPC9nPgogICAgICAgICAgPC9nPgogICAgICAgIDwvc3ZnPgogICAgICA8L2Rpdj4KCiAgICA8L2Rpdj4KICA8L2Rpdj4KCiAgPCEtLSDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZAKICAgICAgIFNURVAgMiDigJQgQlkgTUlETklHSFQKICAgICAgIOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkCAtLT4KICA8ZGl2IGNsYXNzPSJzdGVwIiBpZD0ic3RlcDIiPgogICAgPGRpdiBjbGFzcz0ic3RlcC1pbm5lciI+CiAgICAgIDxzdmcgd2lkdGg9IjM0MCIgaGVpZ2h0PSI0MzAiIHZpZXdCb3g9IjAgMCAzNDAgNDMwIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgoKICAgICAgICA8ZyBpZD0ibm90aWYiIG9wYWNpdHk9IjAiPgogICAgICAgICAgPHJlY3QgeD0iNDAiIHk9IjE4MyIgd2lkdGg9IjI2MCIgaGVpZ2h0PSI5OCIgcng9IjE0IiBmaWxsPSIjMDAwIiBvcGFjaXR5PSIuMjIiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAsNCkiLz4KICAgICAgICAgIDxyZWN0IHg9IjQwIiB5PSIxODMiIHdpZHRoPSIyNjAiIGhlaWdodD0iOTgiIHJ4PSIxNCIgZmlsbD0iI0YwRTBEOSIvPgogICAgICAgICAgPHJlY3QgeD0iNDAiIHk9IjE4MyIgd2lkdGg9IjI2MCIgaGVpZ2h0PSI5OCIgcng9IjE0IiBmaWxsPSJub25lIiBzdHJva2U9IiMyQTRBNEEiIHN0cm9rZS13aWR0aD0iMSIvPgogICAgICAgICAgPGRlZnM+CiAgICAgICAgICAgIDxjbGlwUGF0aCBpZD0ibm90aWZDbGlwVjIxIj4KICAgICAgICAgICAgICA8cmVjdCB4PSI0MCIgeT0iMTgzIiB3aWR0aD0iMjYwIiBoZWlnaHQ9Ijk4IiByeD0iMTQiLz4KICAgICAgICAgICAgPC9jbGlwUGF0aD4KICAgICAgICAgIDwvZGVmcz4KICAgICAgICAgIDxnIGNsaXAtcGF0aD0idXJsKCNub3RpZkNsaXBWMjEpIj4KICAgICAgICAgICAgPHJlY3QgeD0iNDAiIHk9IjE4MyIgd2lkdGg9IjYiIGhlaWdodD0iOTgiIGZpbGw9IiNDODEwMkUiLz4KICAgICAgICAgIDwvZz4KICAgICAgICAgIDxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDY0LDIwMikiPgogICAgICAgICAgICA8cGF0aCBkPSJNLTcsLTMgTC03LDQgQy03LDYgLTYsNyAtNCw3IEw0LDcgQzYsNyA3LDYgNyw0IEw3LC0zIEwzLC0zIEwyLDAgTC0yLDAgTC0zLC0zIFoiIGZpbGw9IiNDODEwMkUiLz4KICAgICAgICAgIDwvZz4KICAgICAgICAgIDx0ZXh0IHg9IjgwIiB5PSIyMDciCiAgICAgICAgICAgICAgICBmb250LWZhbWlseT0iLWFwcGxlLXN5c3RlbSxzeXN0ZW0tdWksc2Fucy1zZXJpZiIKICAgICAgICAgICAgICAgIGZvbnQtc2l6ZT0iMTAiIGZvbnQtd2VpZ2h0PSI3MDAiIGxldHRlci1zcGFjaW5nPSIxLjIiIGZpbGw9IiMxQTFBMUEiPkNGTyBJTkJPWDwvdGV4dD4KICAgICAgICAgIDx0ZXh0IHg9IjI4NSIgeT0iMjA3IiB0ZXh0LWFuY2hvcj0iZW5kIgogICAgICAgICAgICAgICAgZm9udC1mYW1pbHk9Ii1hcHBsZS1zeXN0ZW0sc3lzdGVtLXVpLHNhbnMtc2VyaWYiCiAgICAgICAgICAgICAgICBmb250LXNpemU9IjEwIiBmb250LXdlaWdodD0iNjAwIiBsZXR0ZXItc3BhY2luZz0iLjUiIGZpbGw9IiNDODEwMkUiPjEyOjAwIEFNPC90ZXh0PgogICAgICAgICAgPGxpbmUgeDE9IjU2IiB5MT0iMjE3IiB4Mj0iMjkwIiB5Mj0iMjE3IiBzdHJva2U9IiMwRjNEM0UiIHN0cm9rZS13aWR0aD0iMSIvPgogICAgICAgICAgPGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoNzIsMjUxKSI+CiAgICAgICAgICAgIDxyZWN0IHg9Ii05IiB5PSItMTMiIHdpZHRoPSIxOCIgaGVpZ2h0PSIyMiIgcng9IjIuNSIgZmlsbD0iIzFBMUExQSIvPgogICAgICAgICAgICA8cGF0aCBkPSJNNSwtMTMgTDksLTkgTDUsLTkgWiIgZmlsbD0iI0VGRTZERCIvPgogICAgICAgICAgICA8cmVjdCB4PSItNiIgeT0iLTciIHdpZHRoPSI5IiBoZWlnaHQ9IjEuNiIgcng9Ii44IiBmaWxsPSIjQzJDMkMyIi8+CiAgICAgICAgICAgIDxyZWN0IHg9Ii02IiB5PSItMyIgd2lkdGg9IjExIiBoZWlnaHQ9IjEuNiIgcng9Ii44IiBmaWxsPSIjQzJDMkMyIiBvcGFjaXR5PSIuNTUiLz4KICAgICAgICAgICAgPHJlY3QgeD0iLTYiIHk9IjEiICB3aWR0aD0iNyIgIGhlaWdodD0iMS42IiByeD0iLjgiIGZpbGw9IiNDMkMyQzIiIG9wYWNpdHk9Ii41NSIvPgogICAgICAgICAgICA8cmVjdCB4PSItNiIgeT0iNiIgIHdpZHRoPSI2IiAgaGVpZ2h0PSIyIiAgIHJ4PSIxIiAgZmlsbD0iI0M4MTAyRSIvPgogICAgICAgICAgPC9nPgogICAgICAgICAgPHJlY3QgeD0iOTIiIHk9IjIzNSIgd2lkdGg9IjEyMCIgaGVpZ2h0PSI2IiByeD0iMyIgZmlsbD0iI0VGRTZERCIgb3BhY2l0eT0iLjg1Ii8+CiAgICAgICAgICA8cmVjdCB4PSI5MiIgeT0iMjQ3IiB3aWR0aD0iOTAiICBoZWlnaHQ9IjQiIHJ4PSIyIiBmaWxsPSIjQzgxMDJFIiBvcGFjaXR5PSIuNyIvPgogICAgICAgICAgPGcgaWQ9ImJhZGdlMSI+CiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjI3OCIgY3k9IjI1MyIgcj0iMTEiIGZpbGw9IiNDODEwMkUiLz4KICAgICAgICAgICAgPHRleHQgeD0iMjc4IiB5PSIyNTciIHRleHQtYW5jaG9yPSJtaWRkbGUiCiAgICAgICAgICAgICAgICAgIGZvbnQtZmFtaWx5PSItYXBwbGUtc3lzdGVtLHN5c3RlbS11aSxzYW5zLXNlcmlmIgogICAgICAgICAgICAgICAgICBmb250LXNpemU9IjEzIiBmb250LXdlaWdodD0iNzAwIiBmaWxsPSIjMEYzRDNFIj4xPC90ZXh0PgogICAgICAgICAgPC9nPgogICAgICAgIDwvZz4KICAgICAgPC9zdmc+CiAgICA8L2Rpdj4KICA8L2Rpdj4KCjwvZGl2PjwhLS0gc2NlbmUtd3JhcCAtLT4KCjwvZGl2PgoKPHNjcmlwdD4KKGZ1bmN0aW9uKCl7CiAgY29uc3QgbGVycCAgPSAoYSxiLHQpPT5hKyhiLWEpKnQ7CiAgY29uc3QgY2xhbXAgPSAodixsbyxoaSk9Pk1hdGgubWF4KGxvLE1hdGgubWluKGhpLHYpKTsKICBjb25zdCBub3JtICA9ICh2LGxvLGhpKT0+Y2xhbXAoKHYtbG8pLyhoaS1sbyksMCwxKTsKICBjb25zdCBlbyAgICA9IHQ9PjEtTWF0aC5wb3coMS10LDMpOwogIGNvbnN0IGVvNCAgID0gdD0+MS1NYXRoLnBvdygxLXQsNCk7CiAgY29uc3QgZWlvICAgPSB0PT50PC41PzQqdCp0KnQ6MS1NYXRoLnBvdygtMip0KzIsMykvMjsKCiAgY29uc3Qgc3RlcDEgICAgICAgICAgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc3RlcDEnKTsKICBjb25zdCBzdGVwMiAgICAgICAgICA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzdGVwMicpOwogIGNvbnN0IG1pbkhhbmQgICAgICAgID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ21pbkhhbmRHJyk7CiAgY29uc3QgaG91ckhhbmQgICAgICAgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaG91ckhhbmRHJyk7CiAgY29uc3Qgb3JiaXREb3QgICAgICAgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnb3JiaXREb3QnKTsKICBjb25zdCBwcm9ncmVzc0FyYyAgICA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwcm9ncmVzc0FyYycpOwogIGNvbnN0IGVuZE1vb25GaWxsZWQgID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2VuZE1vb25GaWxsZWQnKTsKICBjb25zdCBub3RpZiAgICAgICAgICA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdub3RpZicpOwogIGNvbnN0IGJhZGdlMSAgICAgICAgID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JhZGdlMScpOwoKICBjb25zdCBDWCA9IDE3MCwgQ1kgPSAyNTYsIE9SQklUX1IgPSA3ODsKICBmdW5jdGlvbiBwbGFjZU9yYml0KGFuZ2xlRGVnKXsKICAgIGNvbnN0IGEgPSAoYW5nbGVEZWcgLSA5MCkgKiBNYXRoLlBJIC8gMTgwOwogICAgb3JiaXREb3Quc2V0QXR0cmlidXRlKCdjeCcsIENYICsgT1JCSVRfUiAqIE1hdGguY29zKGEpKTsKICAgIG9yYml0RG90LnNldEF0dHJpYnV0ZSgnY3knLCBDWSArIE9SQklUX1IgKiBNYXRoLnNpbihhKSk7CiAgfQoKICBjb25zdCBUID0gewogICAgc3RlcDFfc3RhcnQgIDogMjAwLAogICAgc3RlcDFfZW5kICAgIDogNjIwMCwKICAgIHRyYW5zaXRpb25fZSA6IDcyMDAsCiAgICBub3RpZl9pbl9zICAgOiA3NDAwLAogICAgbm90aWZfaW5fZSAgIDogODIwMCwKICAgIGJhZGdlX2luICAgICA6IDgzMDAsCiAgICBsb29wICAgICAgICAgOiAxMjAwMAogIH07CgogIGNvbnN0IHQwID0gcGVyZm9ybWFuY2Uubm93KCk7CgogIGZ1bmN0aW9uIGZyYW1lKG5vdyl7CiAgICBjb25zdCBlID0gKG5vdyAtIHQwKSAlIFQubG9vcDsKCiAgICBpZihlIDwgVC5zdGVwMV9lbmQpewogICAgICBzdGVwMS5jbGFzc0xpc3QuYWRkKCdhY3RpdmUnKTsKICAgICAgc3RlcDIuY2xhc3NMaXN0LnJlbW92ZSgnYWN0aXZlJyk7CgogICAgICBjb25zdCBwID0gbm9ybShlLCBULnN0ZXAxX3N0YXJ0LCBULnN0ZXAxX2VuZCk7CiAgICAgIGNvbnN0IGVhc2VkID0gZW80KHApOwoKICAgICAgY29uc3QgbWluQW5nbGUgPSBlYXNlZCAqIDM2MDsKICAgICAgbWluSGFuZC5zZXRBdHRyaWJ1dGUoJ3RyYW5zZm9ybScsIGByb3RhdGUoJHttaW5BbmdsZX0gMTcwIDI1NilgKTsKICAgICAgaG91ckhhbmQuc2V0QXR0cmlidXRlKCd0cmFuc2Zvcm0nLCBgcm90YXRlKCR7bGVycCgtMzAsIDAsIGVhc2VkKX0gMTcwIDI1NilgKTsKICAgICAgcGxhY2VPcmJpdChtaW5BbmdsZSk7CgogICAgICBwcm9ncmVzc0FyYy5zZXRBdHRyaWJ1dGUoJ3N0cm9rZS1kYXNob2Zmc2V0JywgU3RyaW5nKDEwMCAtIGVhc2VkICogMTAwKSk7CgogICAgICBjb25zdCBtb29uRmlsbFAgPSBub3JtKGVhc2VkLCAwLjg4LCAxLjApOwogICAgICBlbmRNb29uRmlsbGVkLnN0eWxlLm9wYWNpdHkgPSBTdHJpbmcoZW8obW9vbkZpbGxQKSk7CiAgICB9CiAgICBlbHNlIGlmKGUgPCBULnRyYW5zaXRpb25fZSl7CiAgICAgIG1pbkhhbmQuc2V0QXR0cmlidXRlKCd0cmFuc2Zvcm0nLCAncm90YXRlKDAgMTcwIDI1NiknKTsKICAgICAgaG91ckhhbmQuc2V0QXR0cmlidXRlKCd0cmFuc2Zvcm0nLCAncm90YXRlKDAgMTcwIDI1NiknKTsKICAgICAgcGxhY2VPcmJpdCgwKTsKICAgICAgcHJvZ3Jlc3NBcmMuc2V0QXR0cmlidXRlKCdzdHJva2UtZGFzaG9mZnNldCcsICcwJyk7CiAgICAgIGVuZE1vb25GaWxsZWQuc3R5bGUub3BhY2l0eSA9ICcxJzsKCiAgICAgIHN0ZXAxLmNsYXNzTGlzdC5yZW1vdmUoJ2FjdGl2ZScpOwogICAgICBzdGVwMi5jbGFzc0xpc3QuYWRkKCdhY3RpdmUnKTsKCiAgICAgIG5vdGlmLnNldEF0dHJpYnV0ZSgnb3BhY2l0eScsICcwJyk7CiAgICAgIG5vdGlmLnNldEF0dHJpYnV0ZSgndHJhbnNmb3JtJywgJ3RyYW5zbGF0ZSg0MCwwKScpOwogICAgICBiYWRnZTEuc2V0QXR0cmlidXRlKCdvcGFjaXR5JywgJzAnKTsKICAgIH0KICAgIGVsc2UgewogICAgICBzdGVwMS5jbGFzc0xpc3QucmVtb3ZlKCdhY3RpdmUnKTsKICAgICAgc3RlcDIuY2xhc3NMaXN0LmFkZCgnYWN0aXZlJyk7CgogICAgICBjb25zdCBzbGlkZVAgPSBub3JtKGUsIFQubm90aWZfaW5fcywgVC5ub3RpZl9pbl9lKTsKICAgICAgY29uc3Qgc2xpZGVFID0gZWlvKHNsaWRlUCk7CiAgICAgIGNvbnN0IHR4ID0gbGVycCg0MCwgMCwgc2xpZGVFKTsKICAgICAgY29uc3Qgb3BhID0gZW8obm9ybShzbGlkZVAsIDAuMCwgMC42KSk7CiAgICAgIG5vdGlmLnNldEF0dHJpYnV0ZSgnb3BhY2l0eScsIFN0cmluZyhvcGEpKTsKICAgICAgbm90aWYuc2V0QXR0cmlidXRlKCd0cmFuc2Zvcm0nLCBgdHJhbnNsYXRlKCR7dHh9LDApYCk7CgogICAgICBjb25zdCBiYWRnZVAgPSBub3JtKGUsIFQuYmFkZ2VfaW4sIFQuYmFkZ2VfaW4gKyA0MDApOwogICAgICBjb25zdCBzYyA9IC4zICsgLjcgKiBlbyhiYWRnZVApOwogICAgICBiYWRnZTEuc2V0QXR0cmlidXRlKCdvcGFjaXR5JywgU3RyaW5nKGVvKGJhZGdlUCkpKTsKICAgICAgYmFkZ2UxLnNldEF0dHJpYnV0ZSgndHJhbnNmb3JtJywgYHRyYW5zbGF0ZSgyNzgsMjUzKSBzY2FsZSgke3NjfSkgdHJhbnNsYXRlKC0yNzgsLTI1MylgKTsKICAgIH0KCiAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZnJhbWUpOwogIH0KICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZnJhbWUpOwp9KSgpOwo8L3NjcmlwdD4KPC9ib2R5PjwvaHRtbD4K", "PCFET0NUWVBFIGh0bWw+CjxodG1sPjxoZWFkPjxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KPHN0eWxlPgovKiDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZAKICAgdjI2IOKAlCBUYXJnZXRlZCBmaXhlcyBvdmVyIHYyNToKICAgICDigKIgU2NlbmUgMTogZHJvcGRvd24g4oaSIHByb3BlciBDVEEgYnV0dG9uLiBUZXh0IGdsaXRjaCBmaXhlZC4KICAgICDigKIgU2NlbmUgMjogYWlyaWVyIHNwYWNpbmcsIGJsdWUgbGFiZWxzLCBhY3RpdmUgc2NhbGUtdXAsCiAgICAgICBkaXJlY3Rpb25hbCBjaGV2cm9ucywgY29tcGxldGlvbiBwb3AuIE1vcmUgZHluYW1pYy4KICAgICDigKIgU2NlbmUgMzogVU5DSEFOR0VEIChmaW5hbGl6ZWQpLgogICBTYW1lIHBhbGV0dGUsIGZvbnRzLCBzY2VuZSBzdHJ1Y3R1cmUgcHJlc2VydmVkLgogICDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZAgKi8KKntib3gtc2l6aW5nOmJvcmRlci1ib3g7bWFyZ2luOjA7cGFkZGluZzowfQpib2R5e2JhY2tncm91bmQ6dHJhbnNwYXJlbnR9Ci5zdG9yeXsKICBkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2FsaWduLWl0ZW1zOmNlbnRlcjsKICBwYWRkaW5nOjJyZW0gMXJlbSAyLjVyZW07CiAgZm9udC1mYW1pbHk6LWFwcGxlLXN5c3RlbSxzeXN0ZW0tdWksc2Fucy1zZXJpZjsKfQouc2NlbmUtd3JhcHtwb3NpdGlvbjpyZWxhdGl2ZTt3aWR0aDozNDBweDtoZWlnaHQ6NDMwcHh9Cgouc3RlcHsKICBwb3NpdGlvbjphYnNvbHV0ZTtpbnNldDowOwogIG9wYWNpdHk6MDsKICB0cmFuc2l0aW9uOm9wYWNpdHkgLjlzIGVhc2UsIHRyYW5zZm9ybSAuOXMgZWFzZTsKICB0cmFuc2Zvcm06c2NhbGUoLjk2KTsKICBwb2ludGVyLWV2ZW50czpub25lOwp9Ci5zdGVwLmFjdGl2ZXsKICBvcGFjaXR5OjE7CiAgdHJhbnNmb3JtOnNjYWxlKDEpOwogIHBvaW50ZXItZXZlbnRzOmF1dG87Cn0KCi5zdGVwLWlubmVyewogIHBvc2l0aW9uOmFic29sdXRlO2luc2V0OjA7CiAgYW5pbWF0aW9uOmJyZWF0aGUgNnMgZWFzZS1pbi1vdXQgaW5maW5pdGU7Cn0KQGtleWZyYW1lcyBicmVhdGhlewogIDAlLDEwMCV7dHJhbnNmb3JtOnNjYWxlKDEpfQogIDUwJSAgICB7dHJhbnNmb3JtOnNjYWxlKDEuMDEyKX0KfQo8L3N0eWxlPgo8c3R5bGU+Cmh0bWwsYm9keXttYXJnaW46MDtwYWRkaW5nOjA7YmFja2dyb3VuZDojRjdGM0VEIWltcG9ydGFudDt3aWR0aDoxMDAlO2hlaWdodDoxMDAlO292ZXJmbG93OmhpZGRlbjt9CmJvZHl7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO30KPC9zdHlsZT48L2hlYWQ+PGJvZHk+Cgo8ZGl2IGNsYXNzPSJzdG9yeSI+CjxkaXYgY2xhc3M9InNjZW5lLXdyYXAiPgoKICA8IS0tIOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkAogICAgICAgU0NFTkUgMSDigJQgQ1JNIFBSSU1BUlkgQUNUSU9OIEJVVFRPTgogICAgICAgUmVwbGFjZXMgdGhlIHByZXZpb3VzIGRyb3Bkb3duIHdpdGggYSBjbGVhbiBDVEEgYnV0dG9uLgogICAgICAgCiAgICAgICBGaXhlczoKICAgICAgIOKAoiBSZW1vdmVkIHNjYWxlIHB1bHNlIOKGkiB0ZXh0IG5vIGxvbmdlciBzbmFwcy4gQW5pbWF0aW9ucyBhcmUKICAgICAgICAgbm93IG9wYWNpdHktb25seSBvbiB0aGUgaGlnaGxpZ2h0ICsgYSBzaW5nbGUgc3RlYWR5IHRyYW5zZm9ybQogICAgICAgICBmb3IgdGhlIHNsaWRlLWluLgogICAgICAg4oCiIENoZXZyb24tZG93biByZXBsYWNlZCB3aXRoIGEgdGhpbiBmb3J3YXJkIGFycm93IOKGkiByZWFkcyBhcwogICAgICAgICAic3VibWl0L2dvIiwgbm90ICJvcGVuIGRyb3Bkb3duIi4KICAgICAgIOKAoiBCdXR0b24gc3R5bGVkIGFzIGEgcHJpbWFyeSBhY3Rpb246IGZpbGxlZCBhY2NlbnQgdHJlYXRtZW50LAogICAgICAgICBjbGVhciBoaWVyYXJjaHkgb2YgaWNvbiArIGxhYmVsICsgZm9yd2FyZCBpbmRpY2F0b3IuCiAgICAgICDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZAgLS0+CiAgPGRpdiBjbGFzcz0ic3RlcCBhY3RpdmUiIGlkPSJzY2VuZTEiPgogICAgPGRpdiBjbGFzcz0ic3RlcC1pbm5lciI+CiAgICAgIDxzdmcgd2lkdGg9IjM0MCIgaGVpZ2h0PSI0MzAiIHZpZXdCb3g9IjAgMCAzNDAgNDMwIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgoKICAgICAgICA8IS0tIFdyYXBwZXIgZ3JvdXAg4oCUIGhvbGRzIHNsaWRlLWluIHRyYW5zZm9ybS4gVGhlIGJ1dHRvbgogICAgICAgICAgICAgaW5zaWRlIGlzIGdlb21ldHJpY2FsbHkgZml4ZWQ7IG9ubHkgdHJhbnNsYXRlIGlzIGFwcGxpZWQuIC0tPgogICAgICAgIDxnIGlkPSJjdGFXcmFwcGVyIiBvcGFjaXR5PSIwIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwLDEyKSI+CgogICAgICAgICAgPCEtLSBTdWJ0bGUgZHJvcCBzaGFkb3cgLS0+CiAgICAgICAgICA8cmVjdCB4PSI3NCIgeT0iMjA2IiB3aWR0aD0iMTkyIiBoZWlnaHQ9IjQ0IiByeD0iMjIiCiAgICAgICAgICAgICAgICBmaWxsPSIjMDAwIiBvcGFjaXR5PSIuMjIiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAsNCkiLz4KCiAgICAgICAgICA8IS0tIEJ1dHRvbiBzdXJmYWNlIOKAlCBwcmltYXJ5IGFjdGlvbjogZGFyayB0ZWFsIGZpbGwgd2l0aAogICAgICAgICAgICAgICBjb3BwZXIgZWRnZSBhY2NlbnQgYXQgdGhlIGJvdHRvbSBmb3IgImFjdGlvbmFibGUiIGZlZWwgLS0+CiAgICAgICAgICA8cmVjdCB4PSI3NCIgeT0iMjA2IiB3aWR0aD0iMTkyIiBoZWlnaHQ9IjQ0IiByeD0iMjIiCiAgICAgICAgICAgICAgICBmaWxsPSIjRjBFMEQ5IiBzdHJva2U9IiNDMkMyQzIiIHN0cm9rZS13aWR0aD0iMSIvPgoKICAgICAgICAgIDwhLS0gQWN0aXZhdGlvbiBoaWdobGlnaHQgYm9yZGVyIChvbmx5IGZhZGVzIGluIG9uIGNsaWNrKSAtLT4KICAgICAgICAgIDxyZWN0IGlkPSJjdGFIaWdobGlnaHQiCiAgICAgICAgICAgICAgICB4PSI3NCIgeT0iMjA2IiB3aWR0aD0iMTkyIiBoZWlnaHQ9IjQ0IiByeD0iMjIiCiAgICAgICAgICAgICAgICBmaWxsPSJub25lIiBzdHJva2U9IiNDODEwMkUiIHN0cm9rZS13aWR0aD0iMS41IgogICAgICAgICAgICAgICAgb3BhY2l0eT0iMCIvPgoKICAgICAgICAgIDwhLS0gTGVmdDogc21hbGwgIisiIGRpc2MgaWNvbiAoY3JlYXRpb24pIC0tPgogICAgICAgICAgPGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoOTgsMjI4KSI+CiAgICAgICAgICAgIDxjaXJjbGUgcj0iMTEiIGZpbGw9IiNDODEwMkUiLz4KICAgICAgICAgICAgPGxpbmUgeDE9Ii00LjUiIHkxPSIwIiB4Mj0iNC41IiB5Mj0iMCIgc3Ryb2tlPSIjMEYzRDNFIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIvPgogICAgICAgICAgICA8bGluZSB4MT0iMCIgeTE9Ii00LjUiIHgyPSIwIiB5Mj0iNC41IiBzdHJva2U9IiMwRjNEM0UiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIi8+CiAgICAgICAgICA8L2c+CgogICAgICAgICAgPCEtLSBMYWJlbCDigJQgdGV4dCBlbGVtZW50IHdpdGggYSBkb21pbmFudC1iYXNlbGluZSBzbyBpdCBzaXRzCiAgICAgICAgICAgICAgIHZlcnRpY2FsbHkgY2VudGVyZWQgd2l0aG91dCBkZXBlbmRpbmcgb24gZm9udCBtZXRyaWNzIC0tPgogICAgICAgICAgPHRleHQgeD0iMTIwIiB5PSIyMjgiCiAgICAgICAgICAgICAgICBkb21pbmFudC1iYXNlbGluZT0ibWlkZGxlIgogICAgICAgICAgICAgICAgZm9udC1mYW1pbHk9Ii1hcHBsZS1zeXN0ZW0sc3lzdGVtLXVpLHNhbnMtc2VyaWYiCiAgICAgICAgICAgICAgICBmb250LXNpemU9IjEzIiBmb250LXdlaWdodD0iNjAwIgogICAgICAgICAgICAgICAgZmlsbD0iIzFBMUExQSI+Q3JlYXRlIE5ldyBEZWFsPC90ZXh0PgoKICAgICAgICAgIDwhLS0gUmlnaHQ6IHRoaW4gZm9yd2FyZCBhcnJvdyAocmVwbGFjZXMgY2hldnJvbi1kb3duKSAtLT4KICAgICAgICAgIDxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDIzOCwyMjgpIiBzdHJva2U9IiNDODEwMkUiIHN0cm9rZS13aWR0aD0iMS41IgogICAgICAgICAgICAgZmlsbD0ibm9uZSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIj4KICAgICAgICAgICAgPGxpbmUgeDE9Ii02IiB5MT0iMCIgeDI9IjYiIHkyPSIwIi8+CiAgICAgICAgICAgIDxwb2x5bGluZSBwb2ludHM9IjIsLTQgNiwwIDIsNCIvPgogICAgICAgICAgPC9nPgoKICAgICAgICA8L2c+CgogICAgICA8L3N2Zz4KICAgIDwvZGl2PgogIDwvZGl2PgoKICA8IS0tIOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkAogICAgICAgU0NFTkUgMiDigJQgTkRBIEFVVE9NQVRJT04gKHJlZmluZWQgZm9yIGVuZXJneSArIGNsYXJpdHkpCiAgICAgICAKICAgICAgIENoYW5nZXMgZnJvbSB2MjU6CiAgICAgICDigKIgU3RhdGlvbnMgc3ByZWFkIHdpZGVyOiB4PTUwIC8gMTcwIC8gMjkwICh3YXMgNjAvMTcwLzI4MCkKICAgICAgIOKAoiBMYWJlbHMgaW4gVEVBTCBCTFVFICgjQzgxMDJFKSDigJQgcmVhZGFibGUgaW4gYWxsIHN0YXRlcwogICAgICAg4oCiIEFjdGl2ZSBzdGF0aW9uIHNjYWxlcyB1cCB0byAxLjEyeCDigJQgY2xlYXIgZm9jdXMgZW1waGFzaXMKICAgICAgIOKAoiBCcmllZiAiY29tcGxldGlvbiBwb3AiIHdoZW4gYWN0aXZlIOKGkiBkb25lIChvdmVyc2hvb3Qgc2NhbGUpCiAgICAgICDigKIgU21hbGwgZGlyZWN0aW9uYWwgY2hldnJvbnMgYmV0d2VlbiBzdGF0aW9ucyAobGVmdCDihpIgcmlnaHQpCiAgICAgICAgIGluZGljYXRlIGZsb3cgZGlyZWN0aW9uCiAgICAgICDigKIgTGl2ZSBzdGF0dXMgY2FwdGlvbiBhYm92ZSAoIkRSQUZUSU5HIiAvICJGTEFHR0lORyIgLyAiRklMSU5HIikKICAgICAgICAgdXBkYXRlcyB3aXRoIHRoZSBhY3RpdmUgc3RlcCDihpIgYWRkcyBlbmVyZ3kgKyBzdG9yeXRlbGxpbmcKICAgICAgIOKAoiBNb3JlIHZlcnRpY2FsIGJyZWF0aGluZyByb29tOiBsYWJlbHMgbW92ZWQgdG8geT0yOTUKICAgICAgIOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkCAtLT4KICA8ZGl2IGNsYXNzPSJzdGVwIiBpZD0ic2NlbmUyIj4KICAgIDxkaXYgY2xhc3M9InN0ZXAtaW5uZXIiPgogICAgICA8c3ZnIHdpZHRoPSIzNDAiIGhlaWdodD0iNDMwIiB2aWV3Qm94PSIwIDAgMzQwIDQzMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KCiAgICAgICAgPCEtLSBIZWFkZXIgY2FwdGlvbiAtLT4KICAgICAgICA8dGV4dCBpZD0ic2NlbmUyQ2FwdGlvbiIgeD0iMTcwIiB5PSIxNTYiIHRleHQtYW5jaG9yPSJtaWRkbGUiCiAgICAgICAgICAgICAgZm9udC1mYW1pbHk9Ii1hcHBsZS1zeXN0ZW0sc3lzdGVtLXVpLHNhbnMtc2VyaWYiCiAgICAgICAgICAgICAgZm9udC1zaXplPSIxMCIgZm9udC13ZWlnaHQ9IjYwMCIgbGV0dGVyLXNwYWNpbmc9IjIiCiAgICAgICAgICAgICAgZmlsbD0iI0MyQzJDMiIgb3BhY2l0eT0iMCI+TkRBIMK3IEFVVE9NQVRJT048L3RleHQ+CgogICAgICAgIDwhLS0g4pSA4pSA4pSAIExJVkUgU1RBVFVTIExJTkUg4pSA4pSA4pSACiAgICAgICAgICAgICBTaW5nbGUgbGluZSBvZiB0ZXh0IHRoYXQgdXBkYXRlcyBhcyB0aGUgYWN0aXZlIHN0ZXAgY2hhbmdlcy4KICAgICAgICAgICAgIFNpdHMgYmV0d2VlbiB0aGUgY2FwdGlvbiBhbmQgdGhlIGljb25zLiBBbmltYXRlZCB0ZXh0CiAgICAgICAgICAgICBjb3VsZCBnbGl0Y2gsIHNvIHRoZSB2aXNpYmxlIHN0cmluZyBpcyBoZWxkIHN0ZWFkeSB3aXRoaW4KICAgICAgICAgICAgIGVhY2ggcGhhc2UuIC0tPgogICAgICAgIDx0ZXh0IGlkPSJsaXZlU3RhdHVzIiB4PSIxNzAiIHk9IjE4NCIgdGV4dC1hbmNob3I9Im1pZGRsZSIKICAgICAgICAgICAgICBmb250LWZhbWlseT0iLWFwcGxlLXN5c3RlbSxzeXN0ZW0tdWksc2Fucy1zZXJpZiIKICAgICAgICAgICAgICBmb250LXNpemU9IjEzIiBmb250LXdlaWdodD0iNTAwIgogICAgICAgICAgICAgIGZpbGw9IiMxQTFBMUEiIG9wYWNpdHk9IjAiPkRyYWZ0aW5nIE5EQTwvdGV4dD4KCiAgICAgICAgPCEtLSDilIDilIDilIAgQ29ubmVjdG9yIGJhc2UgdHJhY2tzIOKUgOKUgOKUgAogICAgICAgICAgICAgU3RhdGlvbnMgbm93IGF0IHg9NTAgLyAxNzAgLyAyOTAuIEVkZ2Ugb2Ygc3RhdGlvbiByaW5nCiAgICAgICAgICAgICAocj0yMikgaXMgYXQgwrEyMiBmcm9tIGNlbnRlci4gQ29ubmVjdG9ycyBydW4gc3RhdGlvbi1lZGdlCiAgICAgICAgICAgICB0byBzdGF0aW9uLWVkZ2Ugd2l0aCBhIHNtYWxsIGNoZXZyb24gaW4gdGhlIG1pZGRsZS4gLS0+CiAgICAgICAgPGxpbmUgeDE9Ijc4IiAgeTE9IjIzMiIgeDI9IjE0MiIgeTI9IjIzMiIKICAgICAgICAgICAgICBzdHJva2U9IiNDMkMyQzIiIHN0cm9rZS13aWR0aD0iMS41IiBzdHJva2UtbGluZWNhcD0icm91bmQiIG9wYWNpdHk9Ii4yNSIvPgogICAgICAgIDxsaW5lIHgxPSIxOTgiIHkxPSIyMzIiIHgyPSIyNjIiIHkyPSIyMzIiCiAgICAgICAgICAgICAgc3Ryb2tlPSIjQzJDMkMyIiBzdHJva2Utd2lkdGg9IjEuNSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBvcGFjaXR5PSIuMjUiLz4KCiAgICAgICAgPCEtLSBDb25uZWN0b3IgcHJvZ3Jlc3MgZmlsbHMgLS0+CiAgICAgICAgPGxpbmUgaWQ9ImxpbmUxMiIgeDE9Ijc4IiAgeTE9IjIzMiIgeDI9Ijc4IiAgeTI9IjIzMiIKICAgICAgICAgICAgICBzdHJva2U9IiNDODEwMkUiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIi8+CiAgICAgICAgPGxpbmUgaWQ9ImxpbmUyMyIgeDE9IjE5OCIgeTE9IjIzMiIgeDI9IjE5OCIgeTI9IjIzMiIKICAgICAgICAgICAgICBzdHJva2U9IiNDODEwMkUiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIi8+CgogICAgICAgIDwhLS0gRGlyZWN0aW9uYWwgY2hldnJvbnMgaW4gdGhlIGNvbm5lY3RvciBtaWRwb2ludHMKICAgICAgICAgICAgICh4PTExMCBiZXR3ZWVuIHN0YXRpb25zIDEtMiwgeD0yMzAgYmV0d2VlbiAyLTMpIC0tPgogICAgICAgIDxnIGlkPSJjaGV2cm9uMTIiIHN0cm9rZT0iI0MyQzJDMiIgc3Ryb2tlLXdpZHRoPSIxLjQiCiAgICAgICAgICAgZmlsbD0ibm9uZSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBvcGFjaXR5PSIuNCI+CiAgICAgICAgICA8cG9seWxpbmUgcG9pbnRzPSIxMDYsMjI4IDExMiwyMzIgMTA2LDIzNiIvPgogICAgICAgIDwvZz4KICAgICAgICA8ZyBpZD0iY2hldnJvbjIzIiBzdHJva2U9IiNDMkMyQzIiIHN0cm9rZS13aWR0aD0iMS40IgogICAgICAgICAgIGZpbGw9Im5vbmUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgb3BhY2l0eT0iLjQiPgogICAgICAgICAgPHBvbHlsaW5lIHBvaW50cz0iMjI2LDIyOCAyMzIsMjMyIDIyNiwyMzYiLz4KICAgICAgICA8L2c+CgogICAgICAgIDwhLS0g4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQIFNUQVRJT04gMSDigJQgRFJBRlQg4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQIC0tPgogICAgICAgIDxnIGlkPSJzdGF0aW9uMSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoNTAsMjMyKSI+CiAgICAgICAgICA8IS0tIEFjdGl2ZSBoYWxvIChwdWxzZXMgd2hlbiBhY3RpdmUpIC0tPgogICAgICAgICAgPGNpcmNsZSBpZD0iczFIYWxvIiByPSIzMiIgZmlsbD0ibm9uZSIKICAgICAgICAgICAgICAgICAgc3Ryb2tlPSIjQzgxMDJFIiBzdHJva2Utd2lkdGg9IjEuMiIgb3BhY2l0eT0iMCIvPgogICAgICAgICAgPCEtLSBTdGF0aW9uIGNpcmNsZTogc2NhbGVkIHVwIHdoZW4gYWN0aXZlIHZpYSBKUyAtLT4KICAgICAgICAgIDxnIGlkPSJzMUlubmVyIj4KICAgICAgICAgICAgPGNpcmNsZSBpZD0iczFSaW5nIiByPSIyMiIKICAgICAgICAgICAgICAgICAgICBmaWxsPSIjRjBFMEQ5IiBzdHJva2U9IiNDMkMyQzIiIHN0cm9rZS13aWR0aD0iMS41Ii8+CiAgICAgICAgICAgIDxnIGlkPSJzMUljb24iIHN0cm9rZT0iI0MyQzJDMiIgc3Ryb2tlLXdpZHRoPSIxLjYiCiAgICAgICAgICAgICAgIGZpbGw9Im5vbmUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCI+CiAgICAgICAgICAgICAgPHBhdGggZD0iTS03LDUgTC03LDggTC00LDggTDcsLTMgTDQsLTYgTC03LDUgWiIvPgogICAgICAgICAgICAgIDxsaW5lIHgxPSI0IiB5MT0iLTYiIHgyPSI3IiB5Mj0iLTMiLz4KICAgICAgICAgICAgPC9nPgogICAgICAgICAgICA8ZyBpZD0iczFTcGlubmVyIiBvcGFjaXR5PSIwIj4KICAgICAgICAgICAgICA8Y2lyY2xlIHI9IjIyIiBmaWxsPSJub25lIgogICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPSJyZ2JhKDk0LDE3MywxNzksLjI1KSIgc3Ryb2tlLXdpZHRoPSIxLjUiLz4KICAgICAgICAgICAgICA8cGF0aCBkPSJNMCwtMjIgQTIyLDIyIDAgMCAxIDIyLDAiIGZpbGw9Im5vbmUiCiAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPSIjQzgxMDJFIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCI+CiAgICAgICAgICAgICAgICA8YW5pbWF0ZVRyYW5zZm9ybSBhdHRyaWJ1dGVOYW1lPSJ0cmFuc2Zvcm0iIHR5cGU9InJvdGF0ZSIgZnJvbT0iMCIgdG89IjM2MCIgZHVyPSIxLjFzIiByZXBlYXRDb3VudD0iaW5kZWZpbml0ZSIvPgogICAgICAgICAgICAgIDwvcGF0aD4KICAgICAgICAgICAgPC9nPgogICAgICAgICAgICA8ZyBpZD0iczFDaGVjayIgb3BhY2l0eT0iMCI+CiAgICAgICAgICAgICAgPGNpcmNsZSByPSIyMiIgZmlsbD0iI0M4MTAyRSIvPgogICAgICAgICAgICAgIDxwb2x5bGluZSBwb2ludHM9Ii0xMCwwIC0zLDcgMTEsLTciCiAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzBGM0QzRSIgc3Ryb2tlLXdpZHRoPSIyLjQiCiAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPgogICAgICAgICAgICA8L2c+CiAgICAgICAgICA8L2c+CiAgICAgICAgICA8IS0tIExhYmVsIOKAlCBibHVlLCByZWFkYWJsZSBpbiBhbGwgc3RhdGVzIC0tPgogICAgICAgICAgPHRleHQgaWQ9InMxTGFiZWwiIHk9IjYzIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIgogICAgICAgICAgICAgICAgZm9udC1mYW1pbHk9Ii1hcHBsZS1zeXN0ZW0sc3lzdGVtLXVpLHNhbnMtc2VyaWYiCiAgICAgICAgICAgICAgICBmb250LXNpemU9IjEyIiBmb250LXdlaWdodD0iNjAwIgogICAgICAgICAgICAgICAgZmlsbD0iI0M4MTAyRSI+RHJhZnRpbmc8L3RleHQ+CiAgICAgICAgPC9nPgoKICAgICAgICA8IS0tIOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkCBTVEFUSU9OIDIg4oCUIEZMQUcg4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQIC0tPgogICAgICAgIDxnIGlkPSJzdGF0aW9uMiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMTcwLDIzMikiPgogICAgICAgICAgPGNpcmNsZSBpZD0iczJIYWxvIiByPSIzMiIgZmlsbD0ibm9uZSIKICAgICAgICAgICAgICAgICAgc3Ryb2tlPSIjQzgxMDJFIiBzdHJva2Utd2lkdGg9IjEuMiIgb3BhY2l0eT0iMCIvPgogICAgICAgICAgPGcgaWQ9InMySW5uZXIiPgogICAgICAgICAgICA8Y2lyY2xlIGlkPSJzMlJpbmciIHI9IjIyIgogICAgICAgICAgICAgICAgICAgIGZpbGw9IiNGMEUwRDkiIHN0cm9rZT0iI0MyQzJDMiIgc3Ryb2tlLXdpZHRoPSIxLjUiLz4KICAgICAgICAgICAgPGcgaWQ9InMySWNvbiIgc3Ryb2tlPSIjQzJDMkMyIiBzdHJva2Utd2lkdGg9IjEuNiIKICAgICAgICAgICAgICAgZmlsbD0ibm9uZSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIj4KICAgICAgICAgICAgICA8bGluZSB4MT0iLTUiIHkxPSItOSIgeDI9Ii01IiB5Mj0iOSIvPgogICAgICAgICAgICAgIDxwYXRoIGQ9Ik0tNSwtOSBMNywtOSBMNCwtNCBMNywxIEwtNSwxIi8+CiAgICAgICAgICAgIDwvZz4KICAgICAgICAgICAgPGcgaWQ9InMyU3Bpbm5lciIgb3BhY2l0eT0iMCI+CiAgICAgICAgICAgICAgPGNpcmNsZSByPSIyMiIgZmlsbD0ibm9uZSIKICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT0icmdiYSg5NCwxNzMsMTc5LC4yNSkiIHN0cm9rZS13aWR0aD0iMS41Ii8+CiAgICAgICAgICAgICAgPHBhdGggZD0iTTAsLTIyIEEyMiwyMiAwIDAgMSAyMiwwIiBmaWxsPSJub25lIgogICAgICAgICAgICAgICAgICAgIHN0cm9rZT0iI0M4MTAyRSIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiPgogICAgICAgICAgICAgICAgPGFuaW1hdGVUcmFuc2Zvcm0gYXR0cmlidXRlTmFtZT0idHJhbnNmb3JtIiB0eXBlPSJyb3RhdGUiIGZyb209IjAiIHRvPSIzNjAiIGR1cj0iMS4xcyIgcmVwZWF0Q291bnQ9ImluZGVmaW5pdGUiLz4KICAgICAgICAgICAgICA8L3BhdGg+CiAgICAgICAgICAgIDwvZz4KICAgICAgICAgICAgPGcgaWQ9InMyQ2hlY2siIG9wYWNpdHk9IjAiPgogICAgICAgICAgICAgIDxjaXJjbGUgcj0iMjIiIGZpbGw9IiNDODEwMkUiLz4KICAgICAgICAgICAgICA8cG9seWxpbmUgcG9pbnRzPSItMTAsMCAtMyw3IDExLC03IgogICAgICAgICAgICAgICAgICAgICAgICBmaWxsPSJub25lIiBzdHJva2U9IiMwRjNEM0UiIHN0cm9rZS13aWR0aD0iMi40IgogICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4KICAgICAgICAgICAgPC9nPgogICAgICAgICAgPC9nPgogICAgICAgICAgPHRleHQgaWQ9InMyTGFiZWwiIHk9IjYzIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIgogICAgICAgICAgICAgICAgZm9udC1mYW1pbHk9Ii1hcHBsZS1zeXN0ZW0sc3lzdGVtLXVpLHNhbnMtc2VyaWYiCiAgICAgICAgICAgICAgICBmb250LXNpemU9IjEyIiBmb250LXdlaWdodD0iNjAwIgogICAgICAgICAgICAgICAgZmlsbD0iI0M4MTAyRSI+RmxhZ2dpbmc8L3RleHQ+CiAgICAgICAgPC9nPgoKICAgICAgICA8IS0tIOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkCBTVEFUSU9OIDMg4oCUIEZJTEUg4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQIC0tPgogICAgICAgIDxnIGlkPSJzdGF0aW9uMyIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMjkwLDIzMikiPgogICAgICAgICAgPGNpcmNsZSBpZD0iczNIYWxvIiByPSIzMiIgZmlsbD0ibm9uZSIKICAgICAgICAgICAgICAgICAgc3Ryb2tlPSIjQzgxMDJFIiBzdHJva2Utd2lkdGg9IjEuMiIgb3BhY2l0eT0iMCIvPgogICAgICAgICAgPGcgaWQ9InMzSW5uZXIiPgogICAgICAgICAgICA8Y2lyY2xlIGlkPSJzM1JpbmciIHI9IjIyIgogICAgICAgICAgICAgICAgICAgIGZpbGw9IiNGMEUwRDkiIHN0cm9rZT0iI0MyQzJDMiIgc3Ryb2tlLXdpZHRoPSIxLjUiLz4KICAgICAgICAgICAgPGcgaWQ9InMzSWNvbiIgc3Ryb2tlPSIjQzJDMkMyIiBzdHJva2Utd2lkdGg9IjEuNiIKICAgICAgICAgICAgICAgZmlsbD0ibm9uZSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIj4KICAgICAgICAgICAgICA8cmVjdCB4PSItOSIgeT0iLTciIHdpZHRoPSIxOCIgaGVpZ2h0PSI0IiByeD0iLjgiLz4KICAgICAgICAgICAgICA8cGF0aCBkPSJNLTcsLTMgTC03LDkgTDcsOSBMNywtMyIvPgogICAgICAgICAgICAgIDxsaW5lIHgxPSItMyIgeTE9IjMiIHgyPSIzIiB5Mj0iMyIvPgogICAgICAgICAgICA8L2c+CiAgICAgICAgICAgIDxnIGlkPSJzM1NwaW5uZXIiIG9wYWNpdHk9IjAiPgogICAgICAgICAgICAgIDxjaXJjbGUgcj0iMjIiIGZpbGw9Im5vbmUiCiAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9InJnYmEoOTQsMTczLDE3OSwuMjUpIiBzdHJva2Utd2lkdGg9IjEuNSIvPgogICAgICAgICAgICAgIDxwYXRoIGQ9Ik0wLC0yMiBBMjIsMjIgMCAwIDEgMjIsMCIgZmlsbD0ibm9uZSIKICAgICAgICAgICAgICAgICAgICBzdHJva2U9IiNDODEwMkUiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIj4KICAgICAgICAgICAgICAgIDxhbmltYXRlVHJhbnNmb3JtIGF0dHJpYnV0ZU5hbWU9InRyYW5zZm9ybSIgdHlwZT0icm90YXRlIiBmcm9tPSIwIiB0bz0iMzYwIiBkdXI9IjEuMXMiIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIi8+CiAgICAgICAgICAgICAgPC9wYXRoPgogICAgICAgICAgICA8L2c+CiAgICAgICAgICAgIDxnIGlkPSJzM0NoZWNrIiBvcGFjaXR5PSIwIj4KICAgICAgICAgICAgICA8Y2lyY2xlIHI9IjIyIiBmaWxsPSIjQzgxMDJFIi8+CiAgICAgICAgICAgICAgPHBvbHlsaW5lIHBvaW50cz0iLTEwLDAgLTMsNyAxMSwtNyIKICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjMEYzRDNFIiBzdHJva2Utd2lkdGg9IjIuNCIKICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+CiAgICAgICAgICAgIDwvZz4KICAgICAgICAgIDwvZz4KICAgICAgICAgIDx0ZXh0IGlkPSJzM0xhYmVsIiB5PSI2MyIgdGV4dC1hbmNob3I9Im1pZGRsZSIKICAgICAgICAgICAgICAgIGZvbnQtZmFtaWx5PSItYXBwbGUtc3lzdGVtLHN5c3RlbS11aSxzYW5zLXNlcmlmIgogICAgICAgICAgICAgICAgZm9udC1zaXplPSIxMiIgZm9udC13ZWlnaHQ9IjYwMCIKICAgICAgICAgICAgICAgIGZpbGw9IiNDODEwMkUiPkZpbGluZzwvdGV4dD4KICAgICAgICA8L2c+CgogICAgICA8L3N2Zz4KICAgIDwvZGl2PgogIDwvZGl2PgoKICA8IS0tIOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkAogICAgICAgU0NFTkUgMyDigJQgRVhFQ1VUSU9OIFRJTUUgKFVOQ0hBTkdFRCwgZmluYWxpemVkIGluIHYyNSkKICAgICAgIOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkCAtLT4KICA8ZGl2IGNsYXNzPSJzdGVwIiBpZD0ic2NlbmUzIj4KICAgIDxkaXYgY2xhc3M9InN0ZXAtaW5uZXIiPgogICAgICA8c3ZnIHdpZHRoPSIzNDAiIGhlaWdodD0iNDMwIiB2aWV3Qm94PSIwIDAgMzQwIDQzMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KCiAgICAgICAgPHRleHQgaWQ9InNjZW5lM0NhcHRpb24iIHg9IjE3MCIgeT0iMTE2IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIgogICAgICAgICAgICAgIGZvbnQtZmFtaWx5PSItYXBwbGUtc3lzdGVtLHN5c3RlbS11aSxzYW5zLXNlcmlmIgogICAgICAgICAgICAgIGZvbnQtc2l6ZT0iMTAiIGZvbnQtd2VpZ2h0PSI2MDAiIGxldHRlci1zcGFjaW5nPSIyIgogICAgICAgICAgICAgIGZpbGw9IiNDMkMyQzIiIG9wYWNpdHk9IjAiPkVYRUNVVElPTiBUSU1FPC90ZXh0PgoKICAgICAgICA8Y2lyY2xlIGN4PSIxNzAiIGN5PSIyMzIiIHI9IjEwMCIKICAgICAgICAgICAgICAgIGZpbGw9Im5vbmUiIHN0cm9rZT0iI0MyQzJDMiIgc3Ryb2tlLXdpZHRoPSIxLjUiCiAgICAgICAgICAgICAgICBvcGFjaXR5PSIuMjIiLz4KICAgICAgICA8Y2lyY2xlIGlkPSJwcm9ncmVzc1JpbmciIGN4PSIxNzAiIGN5PSIyMzIiIHI9IjEwMCIKICAgICAgICAgICAgICAgIGZpbGw9Im5vbmUiIHN0cm9rZT0iI0M4MTAyRSIgc3Ryb2tlLXdpZHRoPSIyLjUiCiAgICAgICAgICAgICAgICBzdHJva2UtbGluZWNhcD0icm91bmQiCiAgICAgICAgICAgICAgICBwYXRoTGVuZ3RoPSIxMDAiCiAgICAgICAgICAgICAgICBzdHJva2UtZGFzaGFycmF5PSIxMDAiCiAgICAgICAgICAgICAgICBzdHJva2UtZGFzaG9mZnNldD0iMTAwIgogICAgICAgICAgICAgICAgdHJhbnNmb3JtPSJyb3RhdGUoLTkwIDE3MCAyMzIpIi8+CgogICAgICAgIDxnIGlkPSJjbG9jayI+CiAgICAgICAgICA8Y2lyY2xlIGN4PSIxNzAiIGN5PSIyMzIiIHI9Ijc4IiBmaWxsPSIjRjBFMEQ5Ii8+CiAgICAgICAgICA8Y2lyY2xlIGN4PSIxNzAiIGN5PSIyMzIiIHI9Ijc4IiBmaWxsPSJub25lIiBzdHJva2U9IiNDMkMyQzIiIHN0cm9rZS13aWR0aD0iMiIvPgogICAgICAgICAgPGxpbmUgeDE9IjE3MCIgeTE9IjE2MiIgeDI9IjE3MCIgeTI9IjE3MCIgc3Ryb2tlPSIjQzgxMDJFIiBzdHJva2Utd2lkdGg9IjIuNSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIi8+CiAgICAgICAgICA8bGluZSB4MT0iMjQwIiB5MT0iMjMyIiB4Mj0iMjMyIiB5Mj0iMjMyIiBzdHJva2U9IiNDODEwMkUiIHN0cm9rZS13aWR0aD0iMi41IiBzdHJva2UtbGluZWNhcD0icm91bmQiLz4KICAgICAgICAgIDxsaW5lIHgxPSIxNzAiIHkxPSIzMDIiIHgyPSIxNzAiIHkyPSIyOTQiIHN0cm9rZT0iI0M4MTAyRSIgc3Ryb2tlLXdpZHRoPSIyLjUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIvPgogICAgICAgICAgPGxpbmUgeDE9IjEwMCIgeTE9IjIzMiIgeDI9IjEwOCIgeTI9IjIzMiIgc3Ryb2tlPSIjQzgxMDJFIiBzdHJva2Utd2lkdGg9IjIuNSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIi8+CiAgICAgICAgICA8ZyBzdHJva2U9IiNDMkMyQzIiIHN0cm9rZS13aWR0aD0iMS41IiBzdHJva2UtbGluZWNhcD0icm91bmQiPgogICAgICAgICAgICA8bGluZSB4MT0iMjA1IiB5MT0iMTcxIiB4Mj0iMjAyIiB5Mj0iMTc4Ii8+CiAgICAgICAgICAgIDxsaW5lIHgxPSIyMzEiIHkxPSIxOTciIHgyPSIyMjQiIHkyPSIyMDAiLz4KICAgICAgICAgICAgPGxpbmUgeDE9IjIzMSIgeTE9IjI2NyIgeDI9IjIyNCIgeTI9IjI2NCIvPgogICAgICAgICAgICA8bGluZSB4MT0iMjA1IiB5MT0iMjkzIiB4Mj0iMjAyIiB5Mj0iMjg2Ii8+CiAgICAgICAgICAgIDxsaW5lIHgxPSIxMzUiIHkxPSIyOTMiIHgyPSIxMzgiIHkyPSIyODYiLz4KICAgICAgICAgICAgPGxpbmUgeDE9IjEwOSIgeTE9IjI2NyIgeDI9IjExNiIgeTI9IjI2NCIvPgogICAgICAgICAgICA8bGluZSB4MT0iMTA5IiB5MT0iMTk3IiB4Mj0iMTE2IiB5Mj0iMjAwIi8+CiAgICAgICAgICAgIDxsaW5lIHgxPSIxMzUiIHkxPSIxNzEiIHgyPSIxMzgiIHkyPSIxNzgiLz4KICAgICAgICAgIDwvZz4KICAgICAgICAgIDxnIGlkPSJob3VySGFuZEciIHRyYW5zZm9ybT0icm90YXRlKDAgMTcwIDIzMikiPgogICAgICAgICAgICA8bGluZSB4MT0iMTcwIiB5MT0iMjMyIiB4Mj0iMTcwIiB5Mj0iMTkwIgogICAgICAgICAgICAgICAgICBzdHJva2U9IiMxQTFBMUEiIHN0cm9rZS13aWR0aD0iMy41IiBzdHJva2UtbGluZWNhcD0icm91bmQiLz4KICAgICAgICAgIDwvZz4KICAgICAgICAgIDxnIGlkPSJtaW5IYW5kRyIgdHJhbnNmb3JtPSJyb3RhdGUoMCAxNzAgMjMyKSI+CiAgICAgICAgICAgIDxsaW5lIHgxPSIxNzAiIHkxPSIyMzIiIHgyPSIxNzAiIHkyPSIxNjgiCiAgICAgICAgICAgICAgICAgIHN0cm9rZT0iI0M4MTAyRSIgc3Ryb2tlLXdpZHRoPSIyLjUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIvPgogICAgICAgICAgPC9nPgogICAgICAgICAgPGNpcmNsZSBjeD0iMTcwIiBjeT0iMjMyIiByPSI0LjUiIGZpbGw9IiMwRjNEM0UiIHN0cm9rZT0iI0M4MTAyRSIgc3Ryb2tlLXdpZHRoPSIxLjUiLz4KICAgICAgICAgIDxjaXJjbGUgY3g9IjE3MCIgY3k9IjIzMiIgcj0iMS41IiBmaWxsPSIjQzgxMDJFIi8+CiAgICAgICAgPC9nPgoKICAgICAgICA8ZyBpZD0iY291bnRlck92ZXJsYXkiIG9wYWNpdHk9IjAiPgogICAgICAgICAgPGNpcmNsZSBjeD0iMTcwIiBjeT0iMjMyIiByPSI3OCIgZmlsbD0iIzBGM0QzRSIgb3BhY2l0eT0iLjgyIi8+CiAgICAgICAgICA8dGV4dCB4PSIxNzAiIHk9IjIzNCIgdGV4dC1hbmNob3I9Im1pZGRsZSIKICAgICAgICAgICAgICAgIGZvbnQtZmFtaWx5PSItYXBwbGUtc3lzdGVtLHN5c3RlbS11aSxzYW5zLXNlcmlmIgogICAgICAgICAgICAgICAgZm9udC1zaXplPSI0MiIgZm9udC13ZWlnaHQ9IjcwMCIKICAgICAgICAgICAgICAgIGZpbGw9IiNDODEwMkUiPjRoPC90ZXh0PgogICAgICAgICAgPHRleHQgeD0iMTcwIiB5PSIyNTgiIHRleHQtYW5jaG9yPSJtaWRkbGUiCiAgICAgICAgICAgICAgICBmb250LWZhbWlseT0iLWFwcGxlLXN5c3RlbSxzeXN0ZW0tdWksc2Fucy1zZXJpZiIKICAgICAgICAgICAgICAgIGZvbnQtc2l6ZT0iOSIgZm9udC13ZWlnaHQ9IjYwMCIgbGV0dGVyLXNwYWNpbmc9IjIiCiAgICAgICAgICAgICAgICBmaWxsPSIjQzgxMDJFIj5FWEVDVVRJT04gVElNRTwvdGV4dD4KICAgICAgICA8L2c+CgogICAgICAgIDxnIGlkPSJjb21wbGV0aW9uR3JvdXAiIG9wYWNpdHk9IjAiPgogICAgICAgICAgPHJlY3QgeD0iNjQiIHk9IjM1NCIgd2lkdGg9IjIxMiIgaGVpZ2h0PSI0OCIgcng9IjEwIgogICAgICAgICAgICAgICAgZmlsbD0iI0YwRTBEOSIgc3Ryb2tlPSIjMkE0QTRBIiBzdHJva2Utd2lkdGg9IjEiLz4KICAgICAgICAgIDxjaXJjbGUgY3g9Ijg2IiBjeT0iMzc4IiByPSIxMSIgZmlsbD0iI0M4MTAyRSIvPgogICAgICAgICAgPHBvbHlsaW5lIHBvaW50cz0iODAsMzc4IDg0LDM4MiA5MiwzNzIiCiAgICAgICAgICAgICAgICAgICAgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjMEYzRDNFIiBzdHJva2Utd2lkdGg9IjIuMiIKICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4KICAgICAgICAgIDx0ZXh0IHg9IjEwNiIgeT0iMzc1IgogICAgICAgICAgICAgICAgZm9udC1mYW1pbHk9Ii1hcHBsZS1zeXN0ZW0sc3lzdGVtLXVpLHNhbnMtc2VyaWYiCiAgICAgICAgICAgICAgICBmb250LXNpemU9IjE0IiBmb250LXdlaWdodD0iNjAwIgogICAgICAgICAgICAgICAgZmlsbD0iIzFBMUExQSI+TkRBIGNvbXBsZXRlZDwvdGV4dD4KICAgICAgICAgIDx0ZXh0IHg9IjEwNiIgeT0iMzkxIgogICAgICAgICAgICAgICAgZm9udC1mYW1pbHk9Ii1hcHBsZS1zeXN0ZW0sc3lzdGVtLXVpLHNhbnMtc2VyaWYiCiAgICAgICAgICAgICAgICBmb250LXNpemU9IjExIiBmb250LXdlaWdodD0iNTAwIgogICAgICAgICAgICAgICAgZmlsbD0iI0VGRTZERCIgb3BhY2l0eT0iLjciPkRyYWZ0ZWQgwrcgRmxhZ2dlZCDCtyBGaWxlZDwvdGV4dD4KICAgICAgICA8L2c+CiAgICAgIDwvc3ZnPgogICAgPC9kaXY+CiAgPC9kaXY+Cgo8L2Rpdj48IS0tIHNjZW5lLXdyYXAgLS0+Cgo8L2Rpdj4KCjxzY3JpcHQ+CihmdW5jdGlvbigpewogIGNvbnN0IGxlcnAgID0gKGEsYix0KT0+YSsoYi1hKSp0OwogIGNvbnN0IGNsYW1wID0gKHYsbG8saGkpPT5NYXRoLm1heChsbyxNYXRoLm1pbihoaSx2KSk7CiAgY29uc3Qgbm9ybSAgPSAodixsbyxoaSk9PmNsYW1wKCh2LWxvKS8oaGktbG8pLDAsMSk7CiAgY29uc3QgZW8gICAgPSB0PT4xLU1hdGgucG93KDEtdCwzKTsKICBjb25zdCBlaW8gICA9IHQ9PnQ8LjU/NCp0KnQqdDoxLU1hdGgucG93KC0yKnQrMiwzKS8yOwogIC8vIEVhc2luZyB3aXRoIGEgc21hbGwgb3ZlcnNob290IOKAlCB1c2VkIGZvciB0aGUgY29tcGxldGlvbiBwb3AKICBjb25zdCBlb0JhY2sgPSB0ID0+IHsKICAgIGNvbnN0IGMxID0gMS43MDE1OCwgYzMgPSBjMSArIDE7CiAgICByZXR1cm4gMSArIGMzICogTWF0aC5wb3codCAtIDEsIDMpICsgYzEgKiBNYXRoLnBvdyh0IC0gMSwgMik7CiAgfTsKCiAgY29uc3Qgc2NlbmUxID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3NjZW5lMScpOwogIGNvbnN0IHNjZW5lMiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzY2VuZTInKTsKICBjb25zdCBzY2VuZTMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc2NlbmUzJyk7CgogIC8vIFNjZW5lIDEgZWxlbWVudHMKICBjb25zdCBjdGFXcmFwcGVyICAgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY3RhV3JhcHBlcicpOwogIGNvbnN0IGN0YUhpZ2hsaWdodCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjdGFIaWdobGlnaHQnKTsKCiAgLy8gU2NlbmUgMiBlbGVtZW50cwogIGNvbnN0IHNjZW5lMkNhcHRpb24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc2NlbmUyQ2FwdGlvbicpOwogIGNvbnN0IGxpdmVTdGF0dXMgICAgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGl2ZVN0YXR1cycpOwogIGNvbnN0IGxpbmUxMiAgICAgICAgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGluZTEyJyk7CiAgY29uc3QgbGluZTIzICAgICAgICA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsaW5lMjMnKTsKICBjb25zdCBjaGV2cm9uMTIgICAgID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NoZXZyb24xMicpOwogIGNvbnN0IGNoZXZyb24yMyAgICAgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY2hldnJvbjIzJyk7CgogIGNvbnN0IHN0YXRpb25zID0gWzEsMiwzXS5tYXAoaSA9PiAoewogICAgaGFsbyAgICA6IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzJytpKydIYWxvJyksCiAgICBpbm5lciAgIDogZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3MnK2krJ0lubmVyJyksCiAgICByaW5nICAgIDogZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3MnK2krJ1JpbmcnKSwKICAgIGljb24gICAgOiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncycraSsnSWNvbicpLAogICAgc3Bpbm5lciA6IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzJytpKydTcGlubmVyJyksCiAgICBjaGVjayAgIDogZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3MnK2krJ0NoZWNrJyksCiAgICBsYWJlbCAgIDogZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3MnK2krJ0xhYmVsJyksCiAgICBncm91cCAgIDogZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3N0YXRpb24nK2kpLAogIH0pKTsKCiAgZnVuY3Rpb24gc2V0U3RhdGlvblN0YXRlKGksIHN0YXRlKXsKICAgIGNvbnN0IHMgPSBzdGF0aW9uc1tpXTsKICAgIGlmKHN0YXRlID09PSAncGVuZGluZycpewogICAgICBzLnJpbmcuc2V0QXR0cmlidXRlKCdzdHJva2UnLCAnI0MyQzJDMicpOwogICAgICBzLmljb24uc2V0QXR0cmlidXRlKCdzdHJva2UnLCAnI0MyQzJDMicpOwogICAgICBzLnNwaW5uZXIuc2V0QXR0cmlidXRlKCdvcGFjaXR5JywgJzAnKTsKICAgICAgcy5jaGVjay5zZXRBdHRyaWJ1dGUoJ29wYWNpdHknLCAnMCcpOwogICAgICBzLmhhbG8uc2V0QXR0cmlidXRlKCdvcGFjaXR5JywgJzAnKTsKICAgIH0gZWxzZSBpZihzdGF0ZSA9PT0gJ2FjdGl2ZScpewogICAgICBzLnJpbmcuc2V0QXR0cmlidXRlKCdzdHJva2UnLCAnI0M4MTAyRScpOwogICAgICBzLmljb24uc2V0QXR0cmlidXRlKCdzdHJva2UnLCAnI0M4MTAyRScpOwogICAgICBzLnNwaW5uZXIuc2V0QXR0cmlidXRlKCdvcGFjaXR5JywgJzEnKTsKICAgICAgcy5jaGVjay5zZXRBdHRyaWJ1dGUoJ29wYWNpdHknLCAnMCcpOwogICAgfSBlbHNlIHsgLy8gZG9uZQogICAgICBzLnJpbmcuc2V0QXR0cmlidXRlKCdzdHJva2UnLCAnI0M4MTAyRScpOwogICAgICBzLmljb24uc2V0QXR0cmlidXRlKCdzdHJva2UnLCAnI0M4MTAyRScpOwogICAgICBzLnNwaW5uZXIuc2V0QXR0cmlidXRlKCdvcGFjaXR5JywgJzAnKTsKICAgICAgcy5jaGVjay5zZXRBdHRyaWJ1dGUoJ29wYWNpdHknLCAnMScpOwogICAgICBzLmhhbG8uc2V0QXR0cmlidXRlKCdvcGFjaXR5JywgJzAnKTsKICAgIH0KICAgIC8vIExhYmVscyBzdGF5IHRlYWwtYmx1ZSBhY3Jvc3MgYWxsIHN0YXRlcyAocGVyIHNwZWMpCiAgICBzLmxhYmVsLnNldEF0dHJpYnV0ZSgnZmlsbCcsICcjQzgxMDJFJyk7CiAgfQoKICAvLyBTY2VuZSAzIGVsZW1lbnRzICh1bmNoYW5nZWQpCiAgY29uc3Qgc2NlbmUzQ2FwdGlvbiAgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc2NlbmUzQ2FwdGlvbicpOwogIGNvbnN0IHByb2dyZXNzUmluZyAgID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Byb2dyZXNzUmluZycpOwogIGNvbnN0IGNvdW50ZXJPdmVybGF5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvdW50ZXJPdmVybGF5Jyk7CiAgY29uc3QgY29tcGxldGlvbkdyb3VwPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29tcGxldGlvbkdyb3VwJyk7CiAgY29uc3QgbWluSGFuZCAgICAgICAgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbWluSGFuZEcnKTsKICBjb25zdCBob3VySGFuZCAgICAgICA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdob3VySGFuZEcnKTsKCiAgLyog4pSA4pSA4pSAIFBoYXNlIHRpbWluZ3MgKG1zKSDilIDilIDilIAgKi8KICBjb25zdCBUID0gewogICAgLy8gU2NlbmUgMSDigJQgc2ltcGxpZmllZCwgbm8gc2NhbGUgZGlwCiAgICBzMV9jdGFfaW5fcyAgIDogMjAwLAogICAgczFfY3RhX2luX2UgICA6IDEwMDAsCiAgICBzMV9oaWdobGlnaHRfczogMTcwMCwKICAgIHMxX2hpZ2hsaWdodF9lOiAyNTAwLAogICAgc2NlbmUyX2F0ICAgICA6IDQyMDAsCgogICAgLy8gU2NlbmUgMgogICAgczJfY2FwX2luICAgICA6IDQ0MDAsCiAgICBzMl9zdGF0dXNfaW4gIDogNDQwMCwKICAgIHMyX3N0YXRpb25zX2luOiA0NjAwLAogICAgczJfcm93MV9hY3RpdmU6IDU1MDAsCiAgICBzMl9yb3cxX2RvbmUgIDogNzYwMCwKICAgIHMyX2xpbmUxMl9zICAgOiA3NjAwLAogICAgczJfbGluZTEyX2UgICA6IDgxMDAsCiAgICBzMl9yb3cyX2FjdGl2ZTogODEwMCwKICAgIHMyX3JvdzJfZG9uZSAgOiAxMDIwMCwKICAgIHMyX2xpbmUyM19zICAgOiAxMDIwMCwKICAgIHMyX2xpbmUyM19lICAgOiAxMDcwMCwKICAgIHMyX3JvdzNfYWN0aXZlOiAxMDcwMCwKICAgIHMyX3JvdzNfZG9uZSAgOiAxMjgwMCwKCiAgICBzY2VuZTNfYXQgICAgIDogMTMyMDAsCgogICAgLy8gU2NlbmUgMwogICAgczNfY2FwX2luICAgICA6IDEzMjAwLAogICAgczNfc3dlZXBfcyAgICA6IDEzNzAwLAogICAgczNfc3dlZXBfZSAgICA6IDE3MDAwLAogICAgczNfY291bnRlcl9zICA6IDE3MDAwLAogICAgczNfbXNnX3MgICAgICA6IDE3NjAwLAogICAgbG9vcCAgICAgICAgICA6IDE5NTAwCiAgfTsKCiAgZnVuY3Rpb24gc2V0TGluZShlbCwgeDEsIHkxLCB4MiwgeTIsIGNvbG9yKXsKICAgIGVsLnNldEF0dHJpYnV0ZSgneDEnLCB4MSk7CiAgICBlbC5zZXRBdHRyaWJ1dGUoJ3kxJywgeTEpOwogICAgZWwuc2V0QXR0cmlidXRlKCd4MicsIHgyKTsKICAgIGVsLnNldEF0dHJpYnV0ZSgneTInLCB5Mik7CiAgICBpZihjb2xvcikgZWwuc2V0QXR0cmlidXRlKCdzdHJva2UnLCBjb2xvcik7CiAgfQoKICBjb25zdCB0MCA9IHBlcmZvcm1hbmNlLm5vdygpOwoKICBmdW5jdGlvbiBmcmFtZShub3cpewogICAgY29uc3QgZSA9IChub3cgLSB0MCkgJSBULmxvb3A7CgogICAgLyog4pSA4pSA4pSAIFNjZW5lIG1hbmFnZW1lbnQg4pSA4pSA4pSAICovCiAgICBpZihlIDwgVC5zY2VuZTJfYXQpewogICAgICBzY2VuZTEuY2xhc3NMaXN0LmFkZCgnYWN0aXZlJyk7CiAgICAgIHNjZW5lMi5jbGFzc0xpc3QucmVtb3ZlKCdhY3RpdmUnKTsKICAgICAgc2NlbmUzLmNsYXNzTGlzdC5yZW1vdmUoJ2FjdGl2ZScpOwogICAgfSBlbHNlIGlmKGUgPCBULnNjZW5lM19hdCl7CiAgICAgIHNjZW5lMS5jbGFzc0xpc3QucmVtb3ZlKCdhY3RpdmUnKTsKICAgICAgc2NlbmUyLmNsYXNzTGlzdC5hZGQoJ2FjdGl2ZScpOwogICAgICBzY2VuZTMuY2xhc3NMaXN0LnJlbW92ZSgnYWN0aXZlJyk7CiAgICB9IGVsc2UgewogICAgICBzY2VuZTEuY2xhc3NMaXN0LnJlbW92ZSgnYWN0aXZlJyk7CiAgICAgIHNjZW5lMi5jbGFzc0xpc3QucmVtb3ZlKCdhY3RpdmUnKTsKICAgICAgc2NlbmUzLmNsYXNzTGlzdC5hZGQoJ2FjdGl2ZScpOwogICAgfQoKICAgIC8qIOKUgOKUgOKUgCBTY2VuZSAxOiBDVEEgYnV0dG9uIOKUgOKUgOKUgAogICAgICAgRml4ZWQgdGV4dCBnbGl0Y2g6IG9ubHkgT05FIHRyYW5zZm9ybSBvbiB0aGUgd3JhcHBlciDigJQgYSBzdGVhZHkKICAgICAgIHRyYW5zbGF0ZSgwLCB0eSkuIE5vIHNjYWxlIGR1cmluZyBwdWxzZS4gVGhlIGFjdGl2YXRpb24gZmVlZGJhY2sKICAgICAgIGNvbWVzIHB1cmVseSBmcm9tIHRoZSBoaWdobGlnaHQgYm9yZGVyIG9wYWNpdHkuICovCiAgICBpZihlIDwgVC5zY2VuZTJfYXQpewogICAgICBjb25zdCBpblAgPSBub3JtKGUsIFQuczFfY3RhX2luX3MsIFQuczFfY3RhX2luX2UpOwogICAgICBjb25zdCBpbkUgPSBlaW8oaW5QKTsKICAgICAgY29uc3QgdHkgID0gbGVycCgxMiwgMCwgaW5FKTsKICAgICAgY29uc3Qgb3BhID0gZW8obm9ybShpblAsIDAuMCwgMC41KSk7CiAgICAgIGN0YVdyYXBwZXIuc2V0QXR0cmlidXRlKCdvcGFjaXR5JywgU3RyaW5nKG9wYSkpOwogICAgICBjdGFXcmFwcGVyLnNldEF0dHJpYnV0ZSgndHJhbnNmb3JtJywgYHRyYW5zbGF0ZSgwLCR7dHl9KWApOwoKICAgICAgLy8gQWN0aXZhdGlvbjogYSBjb3BwZXIgYm9yZGVyIGhpZ2hsaWdodCBibG9vbXMgYnJpZWZseSwKICAgICAgLy8gdGhlbiBmYWRlcyDigJQgZmVlbHMgbGlrZSBhICJjbGljayIgd2l0aG91dCBzY2FsaW5nIHRleHQuCiAgICAgIGlmKGUgPj0gVC5zMV9oaWdobGlnaHRfcyAmJiBlIDwgVC5zMV9oaWdobGlnaHRfZSl7CiAgICAgICAgY29uc3QgaFAgPSBub3JtKGUsIFQuczFfaGlnaGxpZ2h0X3MsIFQuczFfaGlnaGxpZ2h0X2UpOwogICAgICAgIGN0YUhpZ2hsaWdodC5zZXRBdHRyaWJ1dGUoJ29wYWNpdHknLCBTdHJpbmcoTWF0aC5zaW4oaFAgKiBNYXRoLlBJKSAqIDAuOSkpOwogICAgICB9IGVsc2UgewogICAgICAgIGN0YUhpZ2hsaWdodC5zZXRBdHRyaWJ1dGUoJ29wYWNpdHknLCAnMCcpOwogICAgICB9CiAgICB9IGVsc2UgewogICAgICBjdGFXcmFwcGVyLnNldEF0dHJpYnV0ZSgnb3BhY2l0eScsICcwJyk7CiAgICAgIGN0YUhpZ2hsaWdodC5zZXRBdHRyaWJ1dGUoJ29wYWNpdHknLCAnMCcpOwogICAgfQoKICAgIC8qIOKUgOKUgOKUgCBTY2VuZSAyOiBpY29uIGZsb3cgKyBkeW5hbWljIHN0YXRlIOKUgOKUgOKUgCAqLwogICAgaWYoZSA+PSBULnNjZW5lMl9hdCAmJiBlIDwgVC5zY2VuZTNfYXQpewogICAgICAvLyBjYXB0aW9uICsgbGl2ZSBzdGF0dXMgZmFkZSBpbiB0b2dldGhlcgogICAgICBjb25zdCBjUCA9IG5vcm0oZSwgVC5zMl9jYXBfaW4sIFQuczJfY2FwX2luICsgNDAwKTsKICAgICAgc2NlbmUyQ2FwdGlvbi5zZXRBdHRyaWJ1dGUoJ29wYWNpdHknLCBTdHJpbmcoZW8oY1ApKSk7CiAgICAgIGNvbnN0IHNQID0gbm9ybShlLCBULnMyX3N0YXR1c19pbiArIDQwMCwgVC5zMl9zdGF0dXNfaW4gKyA5MDApOwogICAgICBsaXZlU3RhdHVzLnNldEF0dHJpYnV0ZSgnb3BhY2l0eScsIFN0cmluZyhlbyhzUCkpKTsKCiAgICAgIC8vIHN0YXRpb25zIHN0YWdnZXItaW4KICAgICAgc3RhdGlvbnMuZm9yRWFjaCgocywgaSkgPT4gewogICAgICAgIGNvbnN0IGluUCA9IG5vcm0oZSwgVC5zMl9zdGF0aW9uc19pbiArIGkqMTIwLCBULnMyX3N0YXRpb25zX2luICsgaSoxMjAgKyA1MDApOwogICAgICAgIHMuZ3JvdXAuc2V0QXR0cmlidXRlKCdvcGFjaXR5JywgU3RyaW5nKGVvKGluUCkpKTsKICAgICAgfSk7CgogICAgICAvLyBzdGF0aW9uIHN0YXRlIG1hY2hpbmUKICAgICAgY29uc3Qgc2V0Um93ID0gKGksIGFjdGl2ZUF0LCBkb25lQXQpID0+IHsKICAgICAgICBpZihlIDwgYWN0aXZlQXQpICAgICAgc2V0U3RhdGlvblN0YXRlKGksICdwZW5kaW5nJyk7CiAgICAgICAgZWxzZSBpZihlIDwgZG9uZUF0KSAgIHNldFN0YXRpb25TdGF0ZShpLCAnYWN0aXZlJyk7CiAgICAgICAgZWxzZSAgICAgICAgICAgICAgICAgICBzZXRTdGF0aW9uU3RhdGUoaSwgJ2RvbmUnKTsKICAgICAgfTsKICAgICAgc2V0Um93KDAsIFQuczJfcm93MV9hY3RpdmUsIFQuczJfcm93MV9kb25lKTsKICAgICAgc2V0Um93KDEsIFQuczJfcm93Ml9hY3RpdmUsIFQuczJfcm93Ml9kb25lKTsKICAgICAgc2V0Um93KDIsIFQuczJfcm93M19hY3RpdmUsIFQuczJfcm93M19kb25lKTsKCiAgICAgIC8qIOKUgOKUgOKUgCBMaXZlIHN0YXR1cyB0ZXh0IGZvbGxvd3MgdGhlIGFjdGl2ZSBzdGVwIOKUgOKUgOKUgCAqLwogICAgICBpZihlIDwgVC5zMl9yb3cxX2FjdGl2ZSkgICAgICAgIGxpdmVTdGF0dXMudGV4dENvbnRlbnQgPSAnU3RhcnRpbmfigKYnOwogICAgICBlbHNlIGlmKGUgPCBULnMyX3JvdzFfZG9uZSkgICAgIGxpdmVTdGF0dXMudGV4dENvbnRlbnQgPSAnRHJhZnRpbmcgTkRBJzsKICAgICAgZWxzZSBpZihlIDwgVC5zMl9yb3cyX2FjdGl2ZSkgICBsaXZlU3RhdHVzLnRleHRDb250ZW50ID0gJ0RyYWZ0aW5nIE5EQSc7CiAgICAgIGVsc2UgaWYoZSA8IFQuczJfcm93Ml9kb25lKSAgICAgbGl2ZVN0YXR1cy50ZXh0Q29udGVudCA9ICdGbGFnZ2luZyBrZXkgdGVybXMnOwogICAgICBlbHNlIGlmKGUgPCBULnMyX3JvdzNfYWN0aXZlKSAgIGxpdmVTdGF0dXMudGV4dENvbnRlbnQgPSAnRmxhZ2dpbmcga2V5IHRlcm1zJzsKICAgICAgZWxzZSBpZihlIDwgVC5zMl9yb3czX2RvbmUpICAgICBsaXZlU3RhdHVzLnRleHRDb250ZW50ID0gJ0ZpbGluZyBkb2N1bWVudCc7CiAgICAgIGVsc2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpdmVTdGF0dXMudGV4dENvbnRlbnQgPSAnQ29tcGxldGUnOwoKICAgICAgLyog4pSA4pSA4pSAIEFjdGl2ZSBzdGF0aW9uIFNDQUxFLVVQICgxLjAg4oaSIDEuMTIpIOKUgOKUgOKUgAogICAgICAgICBQbHVzIGEgYnJpZWYgb3ZlcnNob290IHBvcCB3aGVuIHRyYW5zaXRpb25pbmcgdG8gZG9uZS4gKi8KICAgICAgY29uc3QgdXBkYXRlSW5uZXIgPSAoaSwgYWN0aXZlQXQsIGRvbmVBdCkgPT4gewogICAgICAgIGNvbnN0IGlubmVyID0gc3RhdGlvbnNbaV0uaW5uZXI7CiAgICAgICAgaWYoZSA8IGFjdGl2ZUF0KXsKICAgICAgICAgIGlubmVyLnNldEF0dHJpYnV0ZSgndHJhbnNmb3JtJywgJ3NjYWxlKDEpJyk7CiAgICAgICAgfSBlbHNlIGlmKGUgPCBkb25lQXQpewogICAgICAgICAgLy8gcmFtcCB1cCB0byAxLjEyIGluIHRoZSBmaXJzdCAyNTBtcyBvZiBhY3RpdmUgc3RhdGUKICAgICAgICAgIGNvbnN0IHVwUCA9IG5vcm0oZSwgYWN0aXZlQXQsIGFjdGl2ZUF0ICsgMjUwKTsKICAgICAgICAgIGNvbnN0IHNjID0gbGVycCgxLCAxLjEyLCBlbyh1cFApKTsKICAgICAgICAgIGlubmVyLnNldEF0dHJpYnV0ZSgndHJhbnNmb3JtJywgYHNjYWxlKCR7c2N9KWApOwogICAgICAgIH0gZWxzZSBpZihlIDwgZG9uZUF0ICsgMzUwKXsKICAgICAgICAgIC8vIGNvbXBsZXRpb24gcG9wOiBvdmVyc2hvb3QgZnJvbSAxLjEyIOKGkiAxLjIwIOKGkiAxLjAKICAgICAgICAgIGNvbnN0IHBvcFAgPSBub3JtKGUsIGRvbmVBdCwgZG9uZUF0ICsgMzUwKTsKICAgICAgICAgIGNvbnN0IHNjID0gMS4xMiArICgxLjIwIC0gMS4xMikgKiBNYXRoLnNpbihwb3BQICogTWF0aC5QSSk7CiAgICAgICAgICAvLyBlYXNlIGJhY2sgdG8gMS4wIGluIHRoZSBzZWNvbmQgaGFsZgogICAgICAgICAgY29uc3Qgc2V0dGxlID0gcG9wUCA+IDAuNSA/IGxlcnAoMS4yMCwgMS4wLCAocG9wUCAtIDAuNSkgLyAwLjUpIDogc2M7CiAgICAgICAgICBpbm5lci5zZXRBdHRyaWJ1dGUoJ3RyYW5zZm9ybScsIGBzY2FsZSgke3BvcFAgPiAwLjUgPyBzZXR0bGUgOiBzY30pYCk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIGlubmVyLnNldEF0dHJpYnV0ZSgndHJhbnNmb3JtJywgJ3NjYWxlKDEpJyk7CiAgICAgICAgfQogICAgICB9OwogICAgICB1cGRhdGVJbm5lcigwLCBULnMyX3JvdzFfYWN0aXZlLCBULnMyX3JvdzFfZG9uZSk7CiAgICAgIHVwZGF0ZUlubmVyKDEsIFQuczJfcm93Ml9hY3RpdmUsIFQuczJfcm93Ml9kb25lKTsKICAgICAgdXBkYXRlSW5uZXIoMiwgVC5zMl9yb3czX2FjdGl2ZSwgVC5zMl9yb3czX2RvbmUpOwoKICAgICAgLyog4pSA4pSA4pSAIEFjdGl2ZS1zdGF0aW9uIGhhbG8gcHVsc2Ug4pSA4pSA4pSAICovCiAgICAgIGNvbnN0IGhhbG9QdWxzZSA9IChpLCBhY3RpdmVBdCwgZG9uZUF0KSA9PiB7CiAgICAgICAgaWYoZSA+PSBhY3RpdmVBdCAmJiBlIDwgZG9uZUF0KXsKICAgICAgICAgIGNvbnN0IHBoYXNlID0gKChlIC0gYWN0aXZlQXQpIC8gMTUwMCkgKiBNYXRoLlBJICogMjsKICAgICAgICAgIGNvbnN0IG9wYSA9IDAuMyArIDAuNCAqICgwLjUgKyAwLjUgKiBNYXRoLnNpbihwaGFzZSkpOwogICAgICAgICAgc3RhdGlvbnNbaV0uaGFsby5zZXRBdHRyaWJ1dGUoJ29wYWNpdHknLCBTdHJpbmcob3BhKSk7CiAgICAgICAgfQogICAgICB9OwogICAgICBoYWxvUHVsc2UoMCwgVC5zMl9yb3cxX2FjdGl2ZSwgVC5zMl9yb3cxX2RvbmUpOwogICAgICBoYWxvUHVsc2UoMSwgVC5zMl9yb3cyX2FjdGl2ZSwgVC5zMl9yb3cyX2RvbmUpOwogICAgICBoYWxvUHVsc2UoMiwgVC5zMl9yb3czX2FjdGl2ZSwgVC5zMl9yb3czX2RvbmUpOwoKICAgICAgLy8gY29ubmVjdG9yIGxpbmVzIChub3cgc3BhbiB4PTc4IOKGkiAxNDIgYW5kIHg9MTk4IOKGkiAyNjIpCiAgICAgIGNvbnN0IGwxMlAgPSBlaW8obm9ybShlLCBULnMyX2xpbmUxMl9zLCBULnMyX2xpbmUxMl9lKSk7CiAgICAgIGNvbnN0IHgxMiA9IGxlcnAoNzgsIDE0MiwgbDEyUCk7CiAgICAgIGNvbnN0IGwxMkNvbCA9IGUgPj0gVC5zMl9yb3cyX2RvbmUgPyAnI0M4MTAyRScgOiAnI0M4MTAyRSc7CiAgICAgIHNldExpbmUobGluZTEyLCA3OCwgMjMyLCB4MTIsIDIzMiwgbDEyQ29sKTsKCiAgICAgIGNvbnN0IGwyM1AgPSBlaW8obm9ybShlLCBULnMyX2xpbmUyM19zLCBULnMyX2xpbmUyM19lKSk7CiAgICAgIGNvbnN0IHgyMyA9IGxlcnAoMTk4LCAyNjIsIGwyM1ApOwogICAgICBjb25zdCBsMjNDb2wgPSBlID49IFQuczJfcm93M19kb25lID8gJyNDODEwMkUnIDogJyNDODEwMkUnOwogICAgICBzZXRMaW5lKGxpbmUyMywgMTk4LCAyMzIsIHgyMywgMjMyLCBsMjNDb2wpOwoKICAgICAgLy8gQ2hldnJvbnMgYnJpZ2h0ZW4gYXMgdGhlaXIgY29ubmVjdG9ycyBjb21wbGV0ZQogICAgICBjaGV2cm9uMTIuc2V0QXR0cmlidXRlKCdvcGFjaXR5JywgZSA+PSBULnMyX3JvdzFfZG9uZSA/ICcuOCcgOiAnLjQnKTsKICAgICAgY2hldnJvbjEyLnF1ZXJ5U2VsZWN0b3IoJ3BvbHlsaW5lJykuc2V0QXR0cmlidXRlKCdzdHJva2UnLCBlID49IFQuczJfcm93Ml9kb25lID8gJyNDODEwMkUnIDogJyNDODEwMkUnKTsKICAgICAgY2hldnJvbjIzLnNldEF0dHJpYnV0ZSgnb3BhY2l0eScsIGUgPj0gVC5zMl9yb3cyX2RvbmUgPyAnLjgnIDogJy40Jyk7CiAgICAgIGNoZXZyb24yMy5xdWVyeVNlbGVjdG9yKCdwb2x5bGluZScpLnNldEF0dHJpYnV0ZSgnc3Ryb2tlJywgZSA+PSBULnMyX3JvdzNfZG9uZSA/ICcjQzgxMDJFJyA6ICcjQzgxMDJFJyk7CiAgICB9IGVsc2UgewogICAgICBzdGF0aW9ucy5mb3JFYWNoKChzKSA9PiB7CiAgICAgICAgcy5ncm91cC5zZXRBdHRyaWJ1dGUoJ29wYWNpdHknLCAnMCcpOwogICAgICAgIHMuaW5uZXIuc2V0QXR0cmlidXRlKCd0cmFuc2Zvcm0nLCAnc2NhbGUoMSknKTsKICAgICAgfSk7CiAgICAgIHNjZW5lMkNhcHRpb24uc2V0QXR0cmlidXRlKCdvcGFjaXR5JywgJzAnKTsKICAgICAgbGl2ZVN0YXR1cy5zZXRBdHRyaWJ1dGUoJ29wYWNpdHknLCAnMCcpOwogICAgICBzZXRMaW5lKGxpbmUxMiwgNzgsIDIzMiwgNzgsIDIzMiwgJyNDODEwMkUnKTsKICAgICAgc2V0TGluZShsaW5lMjMsIDE5OCwgMjMyLCAxOTgsIDIzMiwgJyNDODEwMkUnKTsKICAgICAgY2hldnJvbjEyLnNldEF0dHJpYnV0ZSgnb3BhY2l0eScsICcuNCcpOwogICAgICBjaGV2cm9uMjMuc2V0QXR0cmlidXRlKCdvcGFjaXR5JywgJy40Jyk7CiAgICAgIHN0YXRpb25zLmZvckVhY2goKF8sIGkpID0+IHNldFN0YXRpb25TdGF0ZShpLCAncGVuZGluZycpKTsKICAgIH0KCiAgICAvKiDilIDilIDilIAgU2NlbmUgMzogVU5DSEFOR0VEIOKUgOKUgOKUgCAqLwogICAgaWYoZSA+PSBULnNjZW5lM19hdCl7CiAgICAgIGNvbnN0IGNQID0gbm9ybShlLCBULnMzX2NhcF9pbiwgVC5zM19jYXBfaW4gKyA0MDApOwogICAgICBzY2VuZTNDYXB0aW9uLnNldEF0dHJpYnV0ZSgnb3BhY2l0eScsIFN0cmluZyhlbyhjUCkpKTsKCiAgICAgIGNvbnN0IHN3ZWVwUCA9IG5vcm0oZSwgVC5zM19zd2VlcF9zLCBULnMzX3N3ZWVwX2UpOwogICAgICBjb25zdCBtaW5BbmdsZSA9IHN3ZWVwUCAqIDM2MCAqIDU7CiAgICAgIGNvbnN0IGhvdXJBbmdsZSA9IHN3ZWVwUCAqIDM2MDsKICAgICAgbWluSGFuZC5zZXRBdHRyaWJ1dGUoJ3RyYW5zZm9ybScsIGByb3RhdGUoJHttaW5BbmdsZX0gMTcwIDIzMilgKTsKICAgICAgaG91ckhhbmQuc2V0QXR0cmlidXRlKCd0cmFuc2Zvcm0nLCBgcm90YXRlKCR7aG91ckFuZ2xlfSAxNzAgMjMyKWApOwoKICAgICAgcHJvZ3Jlc3NSaW5nLnNldEF0dHJpYnV0ZSgnc3Ryb2tlLWRhc2hvZmZzZXQnLCBTdHJpbmcoMTAwIC0gc3dlZXBQICogMTAwKSk7CiAgICAgIHByb2dyZXNzUmluZy5zZXRBdHRyaWJ1dGUoJ3N0cm9rZScsIHN3ZWVwUCA+IDAuOTIgPyAnI0M4MTAyRScgOiAnI0M4MTAyRScpOwoKICAgICAgY29uc3QgY291bnRlclAgPSBub3JtKGUsIFQuczNfY291bnRlcl9zLCBULnMzX2NvdW50ZXJfcyArIDUwMCk7CiAgICAgIGNvdW50ZXJPdmVybGF5LnNldEF0dHJpYnV0ZSgnb3BhY2l0eScsIFN0cmluZyhlbyhjb3VudGVyUCkpKTsKCiAgICAgIGNvbnN0IG1zZ1AgPSBub3JtKGUsIFQuczNfbXNnX3MsIFQuczNfbXNnX3MgKyA1MDApOwogICAgICBjb21wbGV0aW9uR3JvdXAuc2V0QXR0cmlidXRlKCdvcGFjaXR5JywgU3RyaW5nKGVvKG1zZ1ApKSk7CiAgICB9IGVsc2UgewogICAgICBwcm9ncmVzc1Jpbmcuc2V0QXR0cmlidXRlKCdzdHJva2UtZGFzaG9mZnNldCcsICcxMDAnKTsKICAgICAgY291bnRlck92ZXJsYXkuc2V0QXR0cmlidXRlKCdvcGFjaXR5JywgJzAnKTsKICAgICAgY29tcGxldGlvbkdyb3VwLnNldEF0dHJpYnV0ZSgnb3BhY2l0eScsICcwJyk7CiAgICAgIHNjZW5lM0NhcHRpb24uc2V0QXR0cmlidXRlKCdvcGFjaXR5JywgJzAnKTsKICAgICAgbWluSGFuZC5zZXRBdHRyaWJ1dGUoJ3RyYW5zZm9ybScsICdyb3RhdGUoMCAxNzAgMjMyKScpOwogICAgICBob3VySGFuZC5zZXRBdHRyaWJ1dGUoJ3RyYW5zZm9ybScsICdyb3RhdGUoMCAxNzAgMjMyKScpOwogICAgfQoKICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZShmcmFtZSk7CiAgfQogIHJlcXVlc3RBbmltYXRpb25GcmFtZShmcmFtZSk7Cn0pKCk7Cjwvc2NyaXB0Pgo8L2JvZHk+PC9odG1sPgo=", "PCFET0NUWVBFIGh0bWw+CjxodG1sPjxoZWFkPjxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KPHN0eWxlPgovKiDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZAKICAgdjMwIOKAlCByZWZpbmVtZW50cwogICDigKIgU2NlbmUgMTogZm9yd2FyZC1vbmx5IGNsb2NrIG1vdGlvbiArIGNvdW50cnkgbmFtZSBpbnNpZGUgdGhlCiAgICAgZmFjZSBvbiBncmVlbi1hY2NlbnQgY2hpcDsgIjMiIGxhYmVsIHBvc2l0aW9uIGZpeGVkCiAgIOKAoiBTY2VuZSAyOiBzdGF0aWMgZGFyay10ZWFsIGNpdHkgbGFiZWxzIChubyBjb2xvciB0cmFuc2l0aW9uKTsKICAgICB1c2VyIGJsb2NrcyBub3cgaWNvbi1hYm92ZS1jb3VudHJ5LCBsZWZ0LWFsaWduZWQKICAg4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQICovCip7Ym94LXNpemluZzpib3JkZXItYm94O21hcmdpbjowO3BhZGRpbmc6MH0KYm9keXtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50fQouc3Rvcnl7CiAgZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjthbGlnbi1pdGVtczpjZW50ZXI7CiAgcGFkZGluZzoycmVtIDFyZW0gMi41cmVtOwogIGZvbnQtZmFtaWx5Oi1hcHBsZS1zeXN0ZW0sc3lzdGVtLXVpLHNhbnMtc2VyaWY7Cn0KLnNjZW5lLXdyYXB7cG9zaXRpb246cmVsYXRpdmU7d2lkdGg6MzQwcHg7aGVpZ2h0OjQzMHB4fQoKLnN0ZXB7CiAgcG9zaXRpb246YWJzb2x1dGU7aW5zZXQ6MDsKICBvcGFjaXR5OjA7CiAgdHJhbnNpdGlvbjpvcGFjaXR5IC45cyBlYXNlLCB0cmFuc2Zvcm0gLjlzIGVhc2U7CiAgdHJhbnNmb3JtOnNjYWxlKC45Nik7CiAgcG9pbnRlci1ldmVudHM6bm9uZTsKfQouc3RlcC5hY3RpdmV7CiAgb3BhY2l0eToxOwogIHRyYW5zZm9ybTpzY2FsZSgxKTsKICBwb2ludGVyLWV2ZW50czphdXRvOwp9Cgouc3RlcC1pbm5lcnsKICBwb3NpdGlvbjphYnNvbHV0ZTtpbnNldDowOwogIGFuaW1hdGlvbjpicmVhdGhlIDZzIGVhc2UtaW4tb3V0IGluZmluaXRlOwp9CkBrZXlmcmFtZXMgYnJlYXRoZXsKICAwJSwxMDAle3RyYW5zZm9ybTpzY2FsZSgxKX0KICA1MCUgICAge3RyYW5zZm9ybTpzY2FsZSgxLjAxMil9Cn0KPC9zdHlsZT4KPHN0eWxlPgpodG1sLGJvZHl7bWFyZ2luOjA7cGFkZGluZzowO2JhY2tncm91bmQ6I0Y3RjNFRCFpbXBvcnRhbnQ7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTtvdmVyZmxvdzpoaWRkZW47fQpib2R5e2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjt9Cjwvc3R5bGU+PC9oZWFkPjxib2R5PgoKPGRpdiBjbGFzcz0ic3RvcnkiPgo8ZGl2IGNsYXNzPSJzY2VuZS13cmFwIj4KCiAgPCEtLSDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZAKICAgICAgIFNDRU5FIDEg4oCUIFRJTUUgWk9ORSBDTE9DSyAoZm9yd2FyZC1vbmx5KQogICAgICAgCiAgICAgICBDbG9jayBoYW5kIGFsd2F5cyByb3RhdGVzIGNsb2Nrd2lzZS4gU3RvcHMgYXJlIG9yZGVyZWQgYnkKICAgICAgIGNsb2NrLWZhY2UgcG9zaXRpb24gc28gdGhlIHBhdGggaXMgbmF0dXJhbGx5IG1vbm90b25pYzoKICAgICAgICAgc3RhcnQg4oaSIDYwwrAgKExvbmRvbikgIOKGkiAxODDCsCAoU2FuIEZyYW5jaXNjbykKICAgICAgICAgICAgICAgIOKGkiAyNzDCsCAoTmV3IFlvcmspIOKGkiAzMDDCsCAoU2luZ2Fwb3JlKQogICAgICAgQ3VtdWxhdGl2ZSB0cmF2ZWw6IDDCsCDihpIgMzAwwrAuIE5vIHJldmVyc2UgbW90aW9uLgogICAgICAgCiAgICAgICBDb3VudHJ5IG5hbWUgYXBwZWFycyBpbnNpZGUgdGhlIGNsb2NrIG9uIGEgZ3JlZW4tYWNjZW50CiAgICAgICBjaGlwIHdoaWxlIHRoZSBoYW5kIGlzIHBhdXNlZC4KICAgICAgIOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkCAtLT4KICA8ZGl2IGNsYXNzPSJzdGVwIGFjdGl2ZSIgaWQ9InNjZW5lMSI+CiAgICA8ZGl2IGNsYXNzPSJzdGVwLWlubmVyIj4KICAgICAgPHN2ZyB3aWR0aD0iMzQwIiBoZWlnaHQ9IjQzMCIgdmlld0JveD0iMCAwIDM0MCA0MzAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogICAgICAgIDx0ZXh0IGlkPSJzMUNhcHRpb24iIHg9IjE3MCIgeT0iMTE2IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIgogICAgICAgICAgICAgIGZvbnQtZmFtaWx5PSItYXBwbGUtc3lzdGVtLHN5c3RlbS11aSxzYW5zLXNlcmlmIgogICAgICAgICAgICAgIGZvbnQtc2l6ZT0iMTAiIGZvbnQtd2VpZ2h0PSI2MDAiIGxldHRlci1zcGFjaW5nPSIyIgogICAgICAgICAgICAgIGZpbGw9IiNDMkMyQzIiIG9wYWNpdHk9IjAiPkNPT1JESU5BVElORyBUSU1FIFpPTkVTPC90ZXh0PgoKICAgICAgICA8IS0tIFNvZnQgaGFsbyBiZWhpbmQgdGhlIGNsb2NrIChoaWdobGlnaHRzIHdoZW4gYXQgYSBzdG9wKSAtLT4KICAgICAgICA8Y2lyY2xlIGlkPSJjbG9ja0hhbG8iIGN4PSIxNzAiIGN5PSIyMzIiIHI9IjkyIgogICAgICAgICAgICAgICAgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjQzgxMDJFIiBzdHJva2Utd2lkdGg9IjIiIG9wYWNpdHk9IjAiLz4KCiAgICAgICAgPGcgaWQ9ImNsb2NrIiBvcGFjaXR5PSIwIj4KICAgICAgICAgIDxjaXJjbGUgY3g9IjE3MCIgY3k9IjIzMiIgcj0iNzgiIGZpbGw9IiNGMEUwRDkiLz4KICAgICAgICAgIDxjaXJjbGUgY3g9IjE3MCIgY3k9IjIzMiIgcj0iNzgiIGZpbGw9Im5vbmUiIHN0cm9rZT0iI0MyQzJDMiIgc3Ryb2tlLXdpZHRoPSIyIi8+CgogICAgICAgICAgPGxpbmUgeDE9IjE3MCIgeTE9IjE2MiIgeDI9IjE3MCIgeTI9IjE3MCIgc3Ryb2tlPSIjQzgxMDJFIiBzdHJva2Utd2lkdGg9IjIuNSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIi8+CiAgICAgICAgICA8bGluZSB4MT0iMjQwIiB5MT0iMjMyIiB4Mj0iMjMyIiB5Mj0iMjMyIiBzdHJva2U9IiNDODEwMkUiIHN0cm9rZS13aWR0aD0iMi41IiBzdHJva2UtbGluZWNhcD0icm91bmQiLz4KICAgICAgICAgIDxsaW5lIHgxPSIxNzAiIHkxPSIzMDIiIHgyPSIxNzAiIHkyPSIyOTQiIHN0cm9rZT0iI0M4MTAyRSIgc3Ryb2tlLXdpZHRoPSIyLjUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIvPgogICAgICAgICAgPGxpbmUgeDE9IjEwMCIgeTE9IjIzMiIgeDI9IjEwOCIgeTI9IjIzMiIgc3Ryb2tlPSIjQzgxMDJFIiBzdHJva2Utd2lkdGg9IjIuNSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIi8+CgogICAgICAgICAgPGcgc3Ryb2tlPSIjQzJDMkMyIiBzdHJva2Utd2lkdGg9IjEuNSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIj4KICAgICAgICAgICAgPGxpbmUgeDE9IjIwNSIgeTE9IjE3MSIgeDI9IjIwMiIgeTI9IjE3OCIvPgogICAgICAgICAgICA8bGluZSB4MT0iMjMxIiB5MT0iMTk3IiB4Mj0iMjI0IiB5Mj0iMjAwIi8+CiAgICAgICAgICAgIDxsaW5lIHgxPSIyMzEiIHkxPSIyNjciIHgyPSIyMjQiIHkyPSIyNjQiLz4KICAgICAgICAgICAgPGxpbmUgeDE9IjIwNSIgeTE9IjI5MyIgeDI9IjIwMiIgeTI9IjI4NiIvPgogICAgICAgICAgICA8bGluZSB4MT0iMTM1IiB5MT0iMjkzIiB4Mj0iMTM4IiB5Mj0iMjg2Ii8+CiAgICAgICAgICAgIDxsaW5lIHgxPSIxMDkiIHkxPSIyNjciIHgyPSIxMTYiIHkyPSIyNjQiLz4KICAgICAgICAgICAgPGxpbmUgeDE9IjEwOSIgeTE9IjE5NyIgeDI9IjExNiIgeTI9IjIwMCIvPgogICAgICAgICAgICA8bGluZSB4MT0iMTM1IiB5MT0iMTcxIiB4Mj0iMTM4IiB5Mj0iMTc4Ii8+CiAgICAgICAgICA8L2c+CgogICAgICAgICAgPCEtLSDilIDilIDilIAgRXh0ZXJpb3IgaG91ciBudW1iZXJzIOKUgOKUgOKUgAogICAgICAgICAgICAgICBBbGwgNCBudW1lcmFscyBwb3NpdGlvbmVkIHdpdGggZG9taW5hbnQtYmFzZWxpbmU9Im1pZGRsZSIKICAgICAgICAgICAgICAgc28gdmVydGljYWwgY2VudGVyaW5nIGlzIGJhc2VsaW5lLWluZGVwZW5kZW50LgogICAgICAgICAgICAgICBZIHZhbHVlcyBmb3IgMyAmIDkgc2V0IHRvIGNsb2NrIGVxdWF0b3IgKDIzMikg4oCUIHRoZQogICAgICAgICAgICAgICBwcmV2aW91cyB5PTIzNyBjYXVzZWQgdGhlICIzIiB0byBsb29rIHNsaWdodGx5IGNsaXBwZWQgLwogICAgICAgICAgICAgICBtaXNhbGlnbmVkIGF0IGNlcnRhaW4gcmVuZGVyaW5ncy4gLS0+CiAgICAgICAgICA8dGV4dCB4PSIxNzAiIHk9IjE0MiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZG9taW5hbnQtYmFzZWxpbmU9Im1pZGRsZSIKICAgICAgICAgICAgICAgIGZvbnQtZmFtaWx5PSItYXBwbGUtc3lzdGVtLHN5c3RlbS11aSxzYW5zLXNlcmlmIgogICAgICAgICAgICAgICAgZm9udC1zaXplPSIxNSIgZm9udC13ZWlnaHQ9IjcwMCIKICAgICAgICAgICAgICAgIGZpbGw9IiNDODEwMkUiPjEyPC90ZXh0PgogICAgICAgICAgPHRleHQgeD0iMjY1IiB5PSIyMzIiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGRvbWluYW50LWJhc2VsaW5lPSJtaWRkbGUiCiAgICAgICAgICAgICAgICBmb250LWZhbWlseT0iLWFwcGxlLXN5c3RlbSxzeXN0ZW0tdWksc2Fucy1zZXJpZiIKICAgICAgICAgICAgICAgIGZvbnQtc2l6ZT0iMTUiIGZvbnQtd2VpZ2h0PSI3MDAiCiAgICAgICAgICAgICAgICBmaWxsPSIjQzgxMDJFIj4zPC90ZXh0PgogICAgICAgICAgPHRleHQgeD0iMTcwIiB5PSIzMjIiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGRvbWluYW50LWJhc2VsaW5lPSJtaWRkbGUiCiAgICAgICAgICAgICAgICBmb250LWZhbWlseT0iLWFwcGxlLXN5c3RlbSxzeXN0ZW0tdWksc2Fucy1zZXJpZiIKICAgICAgICAgICAgICAgIGZvbnQtc2l6ZT0iMTUiIGZvbnQtd2VpZ2h0PSI3MDAiCiAgICAgICAgICAgICAgICBmaWxsPSIjQzgxMDJFIj42PC90ZXh0PgogICAgICAgICAgPHRleHQgeD0iNzUiIHk9IjIzMiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZG9taW5hbnQtYmFzZWxpbmU9Im1pZGRsZSIKICAgICAgICAgICAgICAgIGZvbnQtZmFtaWx5PSItYXBwbGUtc3lzdGVtLHN5c3RlbS11aSxzYW5zLXNlcmlmIgogICAgICAgICAgICAgICAgZm9udC1zaXplPSIxNSIgZm9udC13ZWlnaHQ9IjcwMCIKICAgICAgICAgICAgICAgIGZpbGw9IiNDODEwMkUiPjk8L3RleHQ+CgogICAgICAgICAgPCEtLSBIb3VyIGhhbmQgKHJvdGF0ZXMgYXJvdW5kIDE3MCwyMzIpIOKAlCBwcmltYXJ5IGFuaW1hdGlvbiB0YXJnZXQgLS0+CiAgICAgICAgICA8ZyBpZD0iaG91ckhhbmRHIiB0cmFuc2Zvcm09InJvdGF0ZSgwIDE3MCAyMzIpIj4KICAgICAgICAgICAgPGxpbmUgeDE9IjE3MCIgeTE9IjIzMiIgeDI9IjE3MCIgeTI9IjE4MCIKICAgICAgICAgICAgICAgICAgc3Ryb2tlPSIjMUExQTFBIiBzdHJva2Utd2lkdGg9IjMuNSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIi8+CiAgICAgICAgICA8L2c+CiAgICAgICAgICA8ZyBpZD0ibWluSGFuZEciIHRyYW5zZm9ybT0icm90YXRlKDAgMTcwIDIzMikiPgogICAgICAgICAgICA8bGluZSB4MT0iMTcwIiB5MT0iMjMyIiB4Mj0iMTcwIiB5Mj0iMTY4IgogICAgICAgICAgICAgICAgICBzdHJva2U9IiNDODEwMkUiIHN0cm9rZS13aWR0aD0iMi41IiBzdHJva2UtbGluZWNhcD0icm91bmQiLz4KICAgICAgICAgIDwvZz4KICAgICAgICAgIDxjaXJjbGUgY3g9IjE3MCIgY3k9IjIzMiIgcj0iNC41IiBmaWxsPSIjMEYzRDNFIiBzdHJva2U9IiNDODEwMkUiIHN0cm9rZS13aWR0aD0iMS41Ii8+CiAgICAgICAgICA8Y2lyY2xlIGN4PSIxNzAiIGN5PSIyMzIiIHI9IjEuNSIgZmlsbD0iI0M4MTAyRSIvPgoKICAgICAgICAgIDwhLS0g4pSA4pSA4pSAIENvdW50cnkgY2hpcCBpbnNpZGUgdGhlIGNsb2NrIGZhY2Ug4pSA4pSA4pSACiAgICAgICAgICAgICAgIFNpdHMgaW4gdGhlIGxvd2VyIGhhbGYgb2YgdGhlIGNsb2NrIChiZXR3ZWVuIHBpdm90IGFuZAogICAgICAgICAgICAgICAiNiIpLCB3aGVyZSB0aGUgaGFuZHMgcmFyZWx5IGxpbmdlci4gRGFyayBiYWNrZHJvcAogICAgICAgICAgICAgICBlbnN1cmVzIHJlYWRhYmlsaXR5IG92ZXIgYW55IGhhbmQgcG9zaXRpb247IGdyZWVuCiAgICAgICAgICAgICAgIGFjY2VudCB0ZXh0IG1hdGNoZXMgdGhlIHByb2plY3QncyBncmVlbiB0b2tlbnMuIC0tPgogICAgICAgICAgPGcgaWQ9ImNvdW50cnlDaGlwIiBvcGFjaXR5PSIwIj4KICAgICAgICAgICAgPHJlY3QgeD0iMTE4IiB5PSIyNTciIHdpZHRoPSIxMDQiIGhlaWdodD0iMjIiIHJ4PSIxMSIKICAgICAgICAgICAgICAgICAgZmlsbD0iIzBGM0QzRSIgc3Ryb2tlPSIjMkE0QTRBIiBzdHJva2Utd2lkdGg9IjEiLz4KICAgICAgICAgICAgPHRleHQgaWQ9ImNvdW50cnlOYW1lIiB4PSIxNzAiIHk9IjI2OCIKICAgICAgICAgICAgICAgICAgdGV4dC1hbmNob3I9Im1pZGRsZSIgZG9taW5hbnQtYmFzZWxpbmU9Im1pZGRsZSIKICAgICAgICAgICAgICAgICAgZm9udC1mYW1pbHk9Ii1hcHBsZS1zeXN0ZW0sc3lzdGVtLXVpLHNhbnMtc2VyaWYiCiAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZT0iMTEiIGZvbnQtd2VpZ2h0PSI2MDAiCiAgICAgICAgICAgICAgICAgIGZpbGw9IiNDODEwMkUiPkxvbmRvbjwvdGV4dD4KICAgICAgICAgIDwvZz4KICAgICAgICA8L2c+CgogICAgICA8L3N2Zz4KICAgIDwvZGl2PgogIDwvZGl2PgoKICA8IS0tIOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkAogICAgICAgU0NFTkUgMiDigJQgRklORElORyBDT01NT04gVElNRQogICAgICAgCiAgICAgICBDaGFuZ2VzIHZzIHYyOToKICAgICAgIOKAoiBDaXR5IGxhYmVscyBzdGF0aWMgaW4gZGFyayB0ZWFsICNDMkMyQzIgKG5vIGZhZGUgdHJhbnNpdGlvbikKICAgICAgIOKAoiBQZXItdXNlciBibG9ja3MgcmVzdHJ1Y3R1cmVkOiBpY29uIEFCT1ZFIGNvdW50cnkgbmFtZSwKICAgICAgICAgbGVmdC1hbGlnbmVkLiBSb3cgc3BhY2luZyBpbmNyZWFzZWQgdG8gNDBweCB0byBmaXQgdGhlCiAgICAgICAgIHZlcnRpY2FsIHN0YWNrIGNvbWZvcnRhYmx5LgogICAgICAg4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQIC0tPgogIDxkaXYgY2xhc3M9InN0ZXAiIGlkPSJzY2VuZTIiPgogICAgPGRpdiBjbGFzcz0ic3RlcC1pbm5lciI+CiAgICAgIDxzdmcgd2lkdGg9IjM0MCIgaGVpZ2h0PSI0MzAiIHZpZXdCb3g9IjAgMCAzNDAgNDMwIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgoKICAgICAgICA8dGV4dCBpZD0iczJDYXB0aW9uIiB4PSIxNzAiIHk9IjEzOCIgdGV4dC1hbmNob3I9Im1pZGRsZSIKICAgICAgICAgICAgICBmb250LWZhbWlseT0iLWFwcGxlLXN5c3RlbSxzeXN0ZW0tdWksc2Fucy1zZXJpZiIKICAgICAgICAgICAgICBmb250LXNpemU9IjEwIiBmb250LXdlaWdodD0iNjAwIiBsZXR0ZXItc3BhY2luZz0iMiIKICAgICAgICAgICAgICBmaWxsPSIjQzJDMkMyIiBvcGFjaXR5PSIwIj5GSU5ESU5HIENPTU1PTiBUSU1FPC90ZXh0PgoKICAgICAgICA8dGV4dCBpZD0iczJTdGF0dXMiIHg9IjE3MCIgeT0iMTYyIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIgogICAgICAgICAgICAgIGZvbnQtZmFtaWx5PSItYXBwbGUtc3lzdGVtLHN5c3RlbS11aSxzYW5zLXNlcmlmIgogICAgICAgICAgICAgIGZvbnQtc2l6ZT0iMTMiIGZvbnQtd2VpZ2h0PSI1MDAiCiAgICAgICAgICAgICAgZmlsbD0iIzFBMUExQSIgb3BhY2l0eT0iMCI+QWxpZ25pbmcgY2FsZW5kYXJz4oCmPC90ZXh0PgoKICAgICAgICA8IS0tIOKUgOKUgOKUgCBVc2VyIGJsb2NrczogaWNvbiBBQk9WRSBjb3VudHJ5LCBsZWZ0LWFsaWduZWQg4pSA4pSA4pSACiAgICAgICAgICAgICBSb3cgY2VudGVycyBhdCB5ID0gMTk2IC8gMjM2IC8gMjc2IC8gMzE2ICg0MHB4IHNwYWNpbmcpLgogICAgICAgICAgICAgUGVyIHJvdzoKICAgICAgICAgICAgICAg4oCiIGljb24gY2VudGVyZWQgYXQgKDMyLCB5IC0gMTApCiAgICAgICAgICAgICAgIOKAoiBjb3VudHJ5IHRleHQgbGVmdC1hbGlnbmVkIGF0ICgyMiwgeSArIDYpCiAgICAgICAgICAgICBCb3RoIHNoYXJlIHg9MjIgbGVmdCBlZGdlLgogICAgICAgIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgCAtLT4KICAgICAgICA8ZyBpZD0iczJBdmF0YXJzIiBvcGFjaXR5PSIwIj4KICAgICAgICAgIDwhLS0gUk9XIDEgwrcgTmV3IFlvcmsgLS0+CiAgICAgICAgICA8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgzMiwxODYpIiBzdHJva2U9IiNDODEwMkUiIHN0cm9rZS13aWR0aD0iMiIKICAgICAgICAgICAgIGZpbGw9Im5vbmUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCI+CiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjAiIGN5PSItMyIgcj0iMy41Ii8+CiAgICAgICAgICAgIDxwYXRoIGQ9Ik0tNiw2IEMtNiwyIC0zLjUsMCAwLDAgQzMuNSwwIDYsMiA2LDYiLz4KICAgICAgICAgIDwvZz4KICAgICAgICAgIDx0ZXh0IHg9IjIyIiB5PSIyMDgiCiAgICAgICAgICAgICAgICBmb250LWZhbWlseT0iLWFwcGxlLXN5c3RlbSxzeXN0ZW0tdWksc2Fucy1zZXJpZiIKICAgICAgICAgICAgICAgIGZvbnQtc2l6ZT0iMTAiIGZvbnQtd2VpZ2h0PSI2MDAiCiAgICAgICAgICAgICAgICBmaWxsPSIjQzJDMkMyIj5OZXcgWW9yazwvdGV4dD4KCiAgICAgICAgICA8IS0tIFJPVyAyIMK3IExvbmRvbiAtLT4KICAgICAgICAgIDxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDMyLDIyNikiIHN0cm9rZT0iI0M4MTAyRSIgc3Ryb2tlLXdpZHRoPSIyIgogICAgICAgICAgICAgZmlsbD0ibm9uZSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIj4KICAgICAgICAgICAgPGNpcmNsZSBjeD0iMCIgY3k9Ii0zIiByPSIzLjUiLz4KICAgICAgICAgICAgPHBhdGggZD0iTS02LDYgQy02LDIgLTMuNSwwIDAsMCBDMy41LDAgNiwyIDYsNiIvPgogICAgICAgICAgPC9nPgogICAgICAgICAgPHRleHQgeD0iMjIiIHk9IjI0OCIKICAgICAgICAgICAgICAgIGZvbnQtZmFtaWx5PSItYXBwbGUtc3lzdGVtLHN5c3RlbS11aSxzYW5zLXNlcmlmIgogICAgICAgICAgICAgICAgZm9udC1zaXplPSIxMCIgZm9udC13ZWlnaHQ9IjYwMCIKICAgICAgICAgICAgICAgIGZpbGw9IiNDMkMyQzIiPkxvbmRvbjwvdGV4dD4KCiAgICAgICAgICA8IS0tIFJPVyAzIMK3IFNpbmdhcG9yZSAtLT4KICAgICAgICAgIDxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDMyLDI2NikiIHN0cm9rZT0iI0M4MTAyRSIgc3Ryb2tlLXdpZHRoPSIyIgogICAgICAgICAgICAgZmlsbD0ibm9uZSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIj4KICAgICAgICAgICAgPGNpcmNsZSBjeD0iMCIgY3k9Ii0zIiByPSIzLjUiLz4KICAgICAgICAgICAgPHBhdGggZD0iTS02LDYgQy02LDIgLTMuNSwwIDAsMCBDMy41LDAgNiwyIDYsNiIvPgogICAgICAgICAgPC9nPgogICAgICAgICAgPHRleHQgeD0iMjIiIHk9IjI4OCIKICAgICAgICAgICAgICAgIGZvbnQtZmFtaWx5PSItYXBwbGUtc3lzdGVtLHN5c3RlbS11aSxzYW5zLXNlcmlmIgogICAgICAgICAgICAgICAgZm9udC1zaXplPSIxMCIgZm9udC13ZWlnaHQ9IjYwMCIKICAgICAgICAgICAgICAgIGZpbGw9IiNDMkMyQzIiPlNpbmdhcG9yZTwvdGV4dD4KCiAgICAgICAgICA8IS0tIFJPVyA0IMK3IFNhbiBGcmFuY2lzY28gLS0+CiAgICAgICAgICA8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgzMiwzMDYpIiBzdHJva2U9IiNDODEwMkUiIHN0cm9rZS13aWR0aD0iMiIKICAgICAgICAgICAgIGZpbGw9Im5vbmUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCI+CiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjAiIGN5PSItMyIgcj0iMy41Ii8+CiAgICAgICAgICAgIDxwYXRoIGQ9Ik0tNiw2IEMtNiwyIC0zLjUsMCAwLDAgQzMuNSwwIDYsMiA2LDYiLz4KICAgICAgICAgIDwvZz4KICAgICAgICAgIDx0ZXh0IHg9IjIyIiB5PSIzMjgiCiAgICAgICAgICAgICAgICBmb250LWZhbWlseT0iLWFwcGxlLXN5c3RlbSxzeXN0ZW0tdWksc2Fucy1zZXJpZiIKICAgICAgICAgICAgICAgIGZvbnQtc2l6ZT0iMTAiIGZvbnQtd2VpZ2h0PSI2MDAiCiAgICAgICAgICAgICAgICBmaWxsPSIjQzJDMkMyIj5TYW4gRnJhbmNpc2NvPC90ZXh0PgogICAgICAgIDwvZz4KCiAgICAgICAgPCEtLSDilIDilIDilIAgVGltZWxpbmUgdHJhY2tzIOKUgOKUgOKUgAogICAgICAgICAgICAgVHJhY2tzIGF0IHkgPSAxOTYsIDIzNiwgMjc2LCAzMTYgKG1hdGNoaW5nIHJvdyBjZW50ZXJzKS4KICAgICAgICAgICAgIFRyYWNrIHgtcmFuZ2Ugbm93IHN0YXJ0cyBhdCB4PTExMCAoc2hpZnRlZCBsZWZ0IGEgYml0CiAgICAgICAgICAgICBzaW5jZSB1c2VyIGJsb2NrcyBhcmUgc3RhY2tlZCB2ZXJ0aWNhbGx5IGFuZCBuZWVkIGxlc3MKICAgICAgICAgICAgIGhvcml6b250YWwgd2lkdGgpLiAtLT4KICAgICAgICA8ZyBpZD0iczJUaW1lbGluZSIgb3BhY2l0eT0iMCI+CiAgICAgICAgICA8cmVjdCB4PSIxMTAiIHk9IjE5MiIgd2lkdGg9IjE4NiIgaGVpZ2h0PSI4IiByeD0iNCIgZmlsbD0iIzBGM0QzRSIvPgogICAgICAgICAgPHJlY3QgeD0iMTEwIiB5PSIyMzIiIHdpZHRoPSIxODYiIGhlaWdodD0iOCIgcng9IjQiIGZpbGw9IiMwRjNEM0UiLz4KICAgICAgICAgIDxyZWN0IHg9IjExMCIgeT0iMjcyIiB3aWR0aD0iMTg2IiBoZWlnaHQ9IjgiIHJ4PSI0IiBmaWxsPSIjMEYzRDNFIi8+CiAgICAgICAgICA8cmVjdCB4PSIxMTAiIHk9IjMxMiIgd2lkdGg9IjE4NiIgaGVpZ2h0PSI4IiByeD0iNCIgZmlsbD0iIzBGM0QzRSIvPgoKICAgICAgICAgIDwhLS0gUm93IDEgKE5ZKSBidXN5IHNlZ21lbnRzIC0tPgogICAgICAgICAgPHJlY3QgeD0iMTE2IiB5PSIxOTIiIHdpZHRoPSIzNCIgaGVpZ2h0PSI4IiByeD0iNCIgZmlsbD0iI0MyQzJDMiIvPgogICAgICAgICAgPHJlY3QgeD0iMTcyIiB5PSIxOTIiIHdpZHRoPSI0MiIgaGVpZ2h0PSI4IiByeD0iNCIgZmlsbD0iI0MyQzJDMiIvPgogICAgICAgICAgPHJlY3QgeD0iMjQ0IiB5PSIxOTIiIHdpZHRoPSI0OCIgaGVpZ2h0PSI4IiByeD0iNCIgZmlsbD0iI0MyQzJDMiIvPgoKICAgICAgICAgIDwhLS0gUm93IDIgKExvbmRvbikgLS0+CiAgICAgICAgICA8cmVjdCB4PSIxMTIiIHk9IjIzMiIgd2lkdGg9IjQyIiBoZWlnaHQ9IjgiIHJ4PSI0IiBmaWxsPSIjQzJDMkMyIi8+CiAgICAgICAgICA8cmVjdCB4PSIxNzgiIHk9IjIzMiIgd2lkdGg9IjM2IiBoZWlnaHQ9IjgiIHJ4PSI0IiBmaWxsPSIjQzJDMkMyIi8+CiAgICAgICAgICA8cmVjdCB4PSIyNDQiIHk9IjIzMiIgd2lkdGg9IjM0IiBoZWlnaHQ9IjgiIHJ4PSI0IiBmaWxsPSIjQzJDMkMyIi8+CiAgICAgICAgICA8cmVjdCB4PSIyODQiIHk9IjIzMiIgd2lkdGg9IjEwIiBoZWlnaHQ9IjgiIHJ4PSI0IiBmaWxsPSIjQzJDMkMyIi8+CgogICAgICAgICAgPCEtLSBSb3cgMyAoU2luZ2Fwb3JlKSAtLT4KICAgICAgICAgIDxyZWN0IHg9IjExNiIgeT0iMjcyIiB3aWR0aD0iMjgiIGhlaWdodD0iOCIgcng9IjQiIGZpbGw9IiNDMkMyQzIiLz4KICAgICAgICAgIDxyZWN0IHg9IjE1OCIgeT0iMjcyIiB3aWR0aD0iNTIiIGhlaWdodD0iOCIgcng9IjQiIGZpbGw9IiNDMkMyQzIiLz4KICAgICAgICAgIDxyZWN0IHg9IjI0NCIgeT0iMjcyIiB3aWR0aD0iNDAiIGhlaWdodD0iOCIgcng9IjQiIGZpbGw9IiNDMkMyQzIiLz4KCiAgICAgICAgICA8IS0tIFJvdyA0IChTRikgLS0+CiAgICAgICAgICA8cmVjdCB4PSIxMTIiIHk9IjMxMiIgd2lkdGg9IjMyIiBoZWlnaHQ9IjgiIHJ4PSI0IiBmaWxsPSIjQzJDMkMyIi8+CiAgICAgICAgICA8cmVjdCB4PSIxNTYiIHk9IjMxMiIgd2lkdGg9IjQ2IiBoZWlnaHQ9IjgiIHJ4PSI0IiBmaWxsPSIjQzJDMkMyIi8+CiAgICAgICAgICA8cmVjdCB4PSIyNTIiIHk9IjMxMiIgd2lkdGg9IjM0IiBoZWlnaHQ9IjgiIHJ4PSI0IiBmaWxsPSIjQzJDMkMyIi8+CiAgICAgICAgPC9nPgoKICAgICAgICA8IS0tIFZlcnRpY2FsIHNjYW4gbGluZSDigJQgYWRqdXN0ZWQgZm9yIG5ldyB4LXJhbmdlIC0tPgogICAgICAgIDxnIGlkPSJzY2FuTGluZSIgb3BhY2l0eT0iMCI+CiAgICAgICAgICA8bGluZSBpZD0ic2NhbkxpbmVFbCIgeDE9IjExMCIgeTE9IjE4NiIgeDI9IjExMCIgeTI9IjMyOCIKICAgICAgICAgICAgICAgIHN0cm9rZT0iI0M4MTAyRSIgc3Ryb2tlLXdpZHRoPSIxLjUiCiAgICAgICAgICAgICAgICBzdHJva2UtZGFzaGFycmF5PSIyIDMiIG9wYWNpdHk9Ii43Ii8+CiAgICAgICAgPC9nPgoKICAgICAgICA8IS0tIE1hdGNoZWQgc2xvdCBjb2x1bW4gYXQgeCDiiYggMjE4LTI0MiAtLT4KICAgICAgICA8ZyBpZD0ibWF0Y2hlZFNsb3QiIG9wYWNpdHk9IjAiPgogICAgICAgICAgPHJlY3QgeD0iMjE4IiB5PSIxODYiIHdpZHRoPSIyNCIgaGVpZ2h0PSIxNDIiCiAgICAgICAgICAgICAgICBmaWxsPSIjQzgxMDJFIiBvcGFjaXR5PSIuMTIiIHJ4PSI0Ii8+CiAgICAgICAgICA8bGluZSB4MT0iMjE4IiB5MT0iMTg2IiB4Mj0iMjE4IiB5Mj0iMzI4IgogICAgICAgICAgICAgICAgc3Ryb2tlPSIjQzgxMDJFIiBzdHJva2Utd2lkdGg9IjEuNSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIi8+CiAgICAgICAgICA8bGluZSB4MT0iMjQyIiB5MT0iMTg2IiB4Mj0iMjQyIiB5Mj0iMzI4IgogICAgICAgICAgICAgICAgc3Ryb2tlPSIjQzgxMDJFIiBzdHJva2Utd2lkdGg9IjEuNSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIi8+CiAgICAgICAgICA8cmVjdCB4PSIyMjAiIHk9IjE5MyIgd2lkdGg9IjIwIiBoZWlnaHQ9IjYiIHJ4PSIzIiBmaWxsPSIjQzgxMDJFIi8+CiAgICAgICAgICA8cmVjdCB4PSIyMjAiIHk9IjIzMyIgd2lkdGg9IjIwIiBoZWlnaHQ9IjYiIHJ4PSIzIiBmaWxsPSIjQzgxMDJFIi8+CiAgICAgICAgICA8cmVjdCB4PSIyMjAiIHk9IjI3MyIgd2lkdGg9IjIwIiBoZWlnaHQ9IjYiIHJ4PSIzIiBmaWxsPSIjQzgxMDJFIi8+CiAgICAgICAgICA8cmVjdCB4PSIyMjAiIHk9IjMxMyIgd2lkdGg9IjIwIiBoZWlnaHQ9IjYiIHJ4PSIzIiBmaWxsPSIjQzgxMDJFIi8+CiAgICAgICAgPC9nPgoKICAgICAgICA8IS0tIENvbm5lY3RpbmcgbGluZXMg4oCUIHVwZGF0ZWQgdG8gbmV3IHRyYWNrIFkgcG9zaXRpb25zIC0tPgogICAgICAgIDxnIGlkPSJjb25uZWN0aW5nTGluZXMiIG9wYWNpdHk9IjAiPgogICAgICAgICAgPGxpbmUgeDE9IjEwNCIgeTE9IjE5NiIgeDI9IjIxOCIgeTI9IjE5NiIKICAgICAgICAgICAgICAgIHN0cm9rZT0iI0M4MTAyRSIgc3Ryb2tlLXdpZHRoPSIxIiBzdHJva2UtZGFzaGFycmF5PSIyIDMiIG9wYWNpdHk9Ii43Ii8+CiAgICAgICAgICA8bGluZSB4MT0iMTA0IiB5MT0iMjM2IiB4Mj0iMjE4IiB5Mj0iMjM2IgogICAgICAgICAgICAgICAgc3Ryb2tlPSIjQzgxMDJFIiBzdHJva2Utd2lkdGg9IjEiIHN0cm9rZS1kYXNoYXJyYXk9IjIgMyIgb3BhY2l0eT0iLjciLz4KICAgICAgICAgIDxsaW5lIHgxPSIxMDQiIHkxPSIyNzYiIHgyPSIyMTgiIHkyPSIyNzYiCiAgICAgICAgICAgICAgICBzdHJva2U9IiNDODEwMkUiIHN0cm9rZS13aWR0aD0iMSIgc3Ryb2tlLWRhc2hhcnJheT0iMiAzIiBvcGFjaXR5PSIuNyIvPgogICAgICAgICAgPGxpbmUgeDE9IjEwNCIgeTE9IjMxNiIgeDI9IjIxOCIgeTI9IjMxNiIKICAgICAgICAgICAgICAgIHN0cm9rZT0iI0M4MTAyRSIgc3Ryb2tlLXdpZHRoPSIxIiBzdHJva2UtZGFzaGFycmF5PSIyIDMiIG9wYWNpdHk9Ii43Ii8+CiAgICAgICAgPC9nPgogICAgICA8L3N2Zz4KICAgIDwvZGl2PgogIDwvZGl2PgoKICA8IS0tIOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkAogICAgICAgU0NFTkUgMyDigJQgVU5DSEFOR0VECiAgICAgICDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZAgLS0+CiAgPGRpdiBjbGFzcz0ic3RlcCIgaWQ9InNjZW5lMyI+CiAgICA8ZGl2IGNsYXNzPSJzdGVwLWlubmVyIj4KICAgICAgPHN2ZyB3aWR0aD0iMzQwIiBoZWlnaHQ9IjQzMCIgdmlld0JveD0iMCAwIDM0MCA0MzAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogICAgICAgIDxnIGlkPSJjb25maXJtQ2FyZCIgb3BhY2l0eT0iMCI+CiAgICAgICAgICA8cmVjdCB4PSI2NCIgeT0iMjA4IiB3aWR0aD0iMjEyIiBoZWlnaHQ9IjU4IiByeD0iMTQiCiAgICAgICAgICAgICAgICBmaWxsPSIjMDAwIiBvcGFjaXR5PSIuMjIiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAsNCkiLz4KICAgICAgICAgIDxyZWN0IHg9IjY0IiB5PSIyMDgiIHdpZHRoPSIyMTIiIGhlaWdodD0iNTgiIHJ4PSIxNCIKICAgICAgICAgICAgICAgIGZpbGw9IiNGMEUwRDkiIHN0cm9rZT0iIzJBNEE0QSIgc3Ryb2tlLXdpZHRoPSIxIi8+CgogICAgICAgICAgPHJlY3QgaWQ9ImNhcmRHbG93IiB4PSI2NCIgeT0iMjA4IiB3aWR0aD0iMjEyIiBoZWlnaHQ9IjU4IiByeD0iMTQiCiAgICAgICAgICAgICAgICBmaWxsPSJub25lIiBzdHJva2U9IiNDODEwMkUiIHN0cm9rZS13aWR0aD0iMiIgb3BhY2l0eT0iMCIvPgoKICAgICAgICAgIDxjaXJjbGUgY3g9Ijg2IiBjeT0iMjM3IiByPSIxMSIgZmlsbD0iI0M4MTAyRSIvPgogICAgICAgICAgPHBvbHlsaW5lIHBvaW50cz0iODAsMjM3IDg0LDI0MSA5MiwyMzEiCiAgICAgICAgICAgICAgICAgICAgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjMEYzRDNFIiBzdHJva2Utd2lkdGg9IjIuMiIKICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4KCiAgICAgICAgICA8dGV4dCB4PSIxMDYiIHk9IjIzNCIKICAgICAgICAgICAgICAgIGZvbnQtZmFtaWx5PSItYXBwbGUtc3lzdGVtLHN5c3RlbS11aSxzYW5zLXNlcmlmIgogICAgICAgICAgICAgICAgZm9udC1zaXplPSIxNCIgZm9udC13ZWlnaHQ9IjYwMCIKICAgICAgICAgICAgICAgIGZpbGw9IiMxQTFBMUEiPk1lZXRpbmcgc2NoZWR1bGVkPC90ZXh0PgoKICAgICAgICAgIDx0ZXh0IHg9IjEwNiIgeT0iMjUwIgogICAgICAgICAgICAgICAgZm9udC1mYW1pbHk9Ii1hcHBsZS1zeXN0ZW0sc3lzdGVtLXVpLHNhbnMtc2VyaWYiCiAgICAgICAgICAgICAgICBmb250LXNpemU9IjExIiBmb250LXdlaWdodD0iNTAwIgogICAgICAgICAgICAgICAgZmlsbD0iI0VGRTZERCIgb3BhY2l0eT0iLjciPlRodSAxNCDCtyAxMDowMCBBTTwvdGV4dD4KICAgICAgICA8L2c+CiAgICAgIDwvc3ZnPgogICAgPC9kaXY+CiAgPC9kaXY+Cgo8L2Rpdj48IS0tIHNjZW5lLXdyYXAgLS0+Cgo8L2Rpdj4KCjxzY3JpcHQ+CihmdW5jdGlvbigpewogIGNvbnN0IGxlcnAgID0gKGEsYix0KT0+YSsoYi1hKSp0OwogIGNvbnN0IGNsYW1wID0gKHYsbG8saGkpPT5NYXRoLm1heChsbyxNYXRoLm1pbihoaSx2KSk7CiAgY29uc3Qgbm9ybSAgPSAodixsbyxoaSk9PmNsYW1wKCh2LWxvKS8oaGktbG8pLDAsMSk7CiAgY29uc3QgZW8gICAgPSB0PT4xLU1hdGgucG93KDEtdCwzKTsKICBjb25zdCBlaW8gICA9IHQ9PnQ8LjU/NCp0KnQqdDoxLU1hdGgucG93KC0yKnQrMiwzKS8yOwoKICBjb25zdCBzY2VuZTEgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc2NlbmUxJyk7CiAgY29uc3Qgc2NlbmUyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3NjZW5lMicpOwogIGNvbnN0IHNjZW5lMyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzY2VuZTMnKTsKCiAgLy8gU2NlbmUgMQogIGNvbnN0IHMxQ2FwdGlvbiAgICA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzMUNhcHRpb24nKTsKICBjb25zdCBjbG9jayAgICAgICAgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY2xvY2snKTsKICBjb25zdCBjbG9ja0hhbG8gICAgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY2xvY2tIYWxvJyk7CiAgY29uc3QgaG91ckhhbmQgICAgID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2hvdXJIYW5kRycpOwogIGNvbnN0IGNvdW50cnlDaGlwICA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb3VudHJ5Q2hpcCcpOwogIGNvbnN0IGNvdW50cnlOYW1lICA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb3VudHJ5TmFtZScpOwoKICAvLyBTY2VuZSAyCiAgY29uc3QgczJDYXB0aW9uICAgICAgICA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzMkNhcHRpb24nKTsKICBjb25zdCBzMlN0YXR1cyAgICAgICAgID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3MyU3RhdHVzJyk7CiAgY29uc3QgczJBdmF0YXJzICAgICAgICA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzMkF2YXRhcnMnKTsKICBjb25zdCBzMlRpbWVsaW5lICAgICAgID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3MyVGltZWxpbmUnKTsKICBjb25zdCBzY2FuTGluZSAgICAgICAgID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3NjYW5MaW5lJyk7CiAgY29uc3Qgc2NhbkxpbmVFbCAgICAgICA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzY2FuTGluZUVsJyk7CiAgY29uc3QgbWF0Y2hlZFNsb3QgICAgICA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdtYXRjaGVkU2xvdCcpOwogIGNvbnN0IGNvbm5lY3RpbmdMaW5lcyAgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29ubmVjdGluZ0xpbmVzJyk7CgogIC8vIFNjZW5lIDMKICBjb25zdCBjb25maXJtQ2FyZCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb25maXJtQ2FyZCcpOwogIGNvbnN0IGNhcmRHbG93ICAgID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NhcmRHbG93Jyk7CgogIC8qIOKUgOKUgOKUgCBGb3J3YXJkLW9ubHkgdG91ciDilIDilIDilIAKICAgICBTdG9wcyBhcmUgb3JkZXJlZCBieSBjbG9jay1mYWNlIHBvc2l0aW9uIHNvIHRoZSBoYW5kIHJvdGF0ZXMKICAgICBtb25vdG9uaWNhbGx5IGNsb2Nrd2lzZTogMMKwIOKGkiA2MMKwIOKGkiAxODDCsCDihpIgMjcwwrAg4oaSIDMwMMKwLgogICAgIEN1bXVsYXRpdmUgdHJhdmVsIG5ldmVyIHJldmVyc2VzLgogICovCiAgY29uc3Qgc3RvcHMgPSBbCiAgICB7IGFuZ2xlOiAgNjAsIGNvdW50cnk6ICdMb25kb24nICAgICAgICB9LCAgLy8gMiBvJ2Nsb2NrCiAgICB7IGFuZ2xlOiAxODAsIGNvdW50cnk6ICdTYW4gRnJhbmNpc2NvJyB9LCAgLy8gNiBvJ2Nsb2NrCiAgICB7IGFuZ2xlOiAyNzAsIGNvdW50cnk6ICdOZXcgWW9yaycgICAgICB9LCAgLy8gOSBvJ2Nsb2NrCiAgICB7IGFuZ2xlOiAzMDAsIGNvdW50cnk6ICdTaW5nYXBvcmUnICAgICB9ICAgLy8gMTAgbydjbG9jawogIF07CgogIGNvbnN0IEFQUFJPQUNIX01TID0gMTEwMDsKICBjb25zdCBIT0xEX01TICAgICA9IDEwMDA7CiAgY29uc3QgU1RPUF9NUyAgICAgPSBBUFBST0FDSF9NUyArIEhPTERfTVM7CgogIGNvbnN0IFQgPSB7CiAgICBzMV9jYXBfaW4gICAgOiAyMDAsCiAgICBzMV9jbG9ja19pbiAgOiA2MDAsCiAgICBzMV90b3VyX3MgICAgOiAxNDAwLAogICAgczFfdG91cl9lICAgIDogMTQwMCArIFNUT1BfTVMgKiBzdG9wcy5sZW5ndGgsICAvLyAxNDAwICsgODQwMCA9IDk4MDAKICAgIHNjZW5lMl9hdCAgICA6IDEwMDAwLAoKICAgIHMyX2NhcF9pbiAgICA6IDEwMjAwLAogICAgczJfYXZfaW4gICAgIDogMTA0MDAsCiAgICBzMl90bF9pbiAgICAgOiAxMDgwMCwKICAgIHMyX3N0YXR1c19pbiA6IDExMDAwLAogICAgczJfc2Nhbl9zICAgIDogMTEzMDAsCiAgICBzMl9zY2FuX2UgICAgOiAxNDMwMCwKICAgIHMyX21hdGNoX2F0ICA6IDE0MzAwLAogICAgczJfbGluZXNfYXQgIDogMTQ3MDAsCiAgICBzY2VuZTNfYXQgICAgOiAxNjUwMCwKCiAgICBzM19jYXJkX2luX3MgOiAxNjcwMCwKICAgIHMzX2NhcmRfaW5fZSA6IDE3NDAwLAogICAgczNfZ2xvd19zICAgIDogMTc0MDAsCiAgICBzM19nbG93X2UgICAgOiAxODYwMCwKICAgIGxvb3AgICAgICAgICA6IDIyMDAwCiAgfTsKCiAgZnVuY3Rpb24gdG91clN0YXRlKGVsYXBzZWQpewogICAgY29uc3Qgc3RvcElkeCA9IE1hdGgubWluKE1hdGguZmxvb3IoZWxhcHNlZCAvIFNUT1BfTVMpLCBzdG9wcy5sZW5ndGggLSAxKTsKICAgIGNvbnN0IHdpdGhpbiAgPSBlbGFwc2VkIC0gc3RvcElkeCAqIFNUT1BfTVM7CgogICAgLy8gIkZyb20iIGFuZ2xlOiAwwrAgYmVmb3JlIHN0b3AgMDsgb3RoZXJ3aXNlIHByZXZpb3VzIHN0b3AncyBhbmdsZS4KICAgIC8vIEFsd2F5cyBsZXNzIHRoYW4gY3VycmVudCB0YXJnZXQg4oaSIG1vdGlvbiBpcyBhbHdheXMgZm9yd2FyZC4KICAgIGNvbnN0IGZyb21BbmdsZSA9IHN0b3BJZHggPT09IDAgPyAwIDogc3RvcHNbc3RvcElkeCAtIDFdLmFuZ2xlOwogICAgY29uc3QgdGFyZ2V0QW5nbGUgPSBzdG9wc1tzdG9wSWR4XS5hbmdsZTsKCiAgICBsZXQgYW5nbGUsIGNoaXBPcGFjaXR5OwogICAgaWYod2l0aGluIDwgQVBQUk9BQ0hfTVMpewogICAgICBjb25zdCBwID0gd2l0aGluIC8gQVBQUk9BQ0hfTVM7CiAgICAgIGFuZ2xlID0gbGVycChmcm9tQW5nbGUsIHRhcmdldEFuZ2xlLCBlaW8ocCkpOwogICAgICAvLyBDb3VudHJ5IGNoaXAgZmFkZXMgaW4gZHVyaW5nIHRoZSBsYXN0IDI1JSBvZiBhcHByb2FjaAogICAgICBjaGlwT3BhY2l0eSA9IGVvKG5vcm0ocCwgMC43NSwgMS4wKSk7CiAgICB9IGVsc2UgewogICAgICBhbmdsZSA9IHRhcmdldEFuZ2xlOwogICAgICBjb25zdCBob2xkTm9ybSA9ICh3aXRoaW4gLSBBUFBST0FDSF9NUykgLyBIT0xEX01TOwogICAgICAvLyBDaGlwIGZhZGVzIG91dCBpbiB0aGUgbGFzdCAxOCUgb2YgaG9sZAogICAgICBjaGlwT3BhY2l0eSA9IGhvbGROb3JtID4gMC44MiA/IDEgLSAoaG9sZE5vcm0gLSAwLjgyKSAvIDAuMTggOiAxOwogICAgfQoKICAgIHJldHVybiB7CiAgICAgIGFuZ2xlLAogICAgICBjb3VudHJ5OiBzdG9wc1tzdG9wSWR4XS5jb3VudHJ5LAogICAgICBjaGlwT3BhY2l0eTogY2xhbXAoY2hpcE9wYWNpdHksIDAsIDEpLAogICAgICBoYWxvT3BhY2l0eTogd2l0aGluID49IEFQUFJPQUNIX01TIC0gMjAwCiAgICAgICAgICAgICAgICAgICAgID8gTWF0aC5zaW4obm9ybSh3aXRoaW4gLSAoQVBQUk9BQ0hfTVMgLSAyMDApLCAwLCBIT0xEX01TICsgMjAwKSAqIE1hdGguUEkpICogMC41NQogICAgICAgICAgICAgICAgICAgICA6IDAKICAgIH07CiAgfQoKICBjb25zdCB0MCA9IHBlcmZvcm1hbmNlLm5vdygpOwoKICBmdW5jdGlvbiBmcmFtZShub3cpewogICAgY29uc3QgZSA9IChub3cgLSB0MCkgJSBULmxvb3A7CgogICAgLyog4pSA4pSA4pSAIFNjZW5lIG1hbmFnZW1lbnQg4pSA4pSA4pSAICovCiAgICBpZihlIDwgVC5zY2VuZTJfYXQpewogICAgICBzY2VuZTEuY2xhc3NMaXN0LmFkZCgnYWN0aXZlJyk7CiAgICAgIHNjZW5lMi5jbGFzc0xpc3QucmVtb3ZlKCdhY3RpdmUnKTsKICAgICAgc2NlbmUzLmNsYXNzTGlzdC5yZW1vdmUoJ2FjdGl2ZScpOwogICAgfSBlbHNlIGlmKGUgPCBULnNjZW5lM19hdCl7CiAgICAgIHNjZW5lMS5jbGFzc0xpc3QucmVtb3ZlKCdhY3RpdmUnKTsKICAgICAgc2NlbmUyLmNsYXNzTGlzdC5hZGQoJ2FjdGl2ZScpOwogICAgICBzY2VuZTMuY2xhc3NMaXN0LnJlbW92ZSgnYWN0aXZlJyk7CiAgICB9IGVsc2UgewogICAgICBzY2VuZTEuY2xhc3NMaXN0LnJlbW92ZSgnYWN0aXZlJyk7CiAgICAgIHNjZW5lMi5jbGFzc0xpc3QucmVtb3ZlKCdhY3RpdmUnKTsKICAgICAgc2NlbmUzLmNsYXNzTGlzdC5hZGQoJ2FjdGl2ZScpOwogICAgfQoKICAgIC8qIOKUgOKUgOKUgCBTY2VuZSAxOiBmb3J3YXJkLW9ubHkgdGltZXpvbmUgdG91ciDilIDilIDilIAgKi8KICAgIGlmKGUgPCBULnNjZW5lMl9hdCl7CiAgICAgIGNvbnN0IGNQID0gbm9ybShlLCBULnMxX2NhcF9pbiwgVC5zMV9jYXBfaW4gKyA1MDApOwogICAgICBzMUNhcHRpb24uc2V0QXR0cmlidXRlKCdvcGFjaXR5JywgU3RyaW5nKGVvKGNQKSkpOwoKICAgICAgY29uc3QgY2tQID0gbm9ybShlLCBULnMxX2Nsb2NrX2luLCBULnMxX2Nsb2NrX2luICsgNjAwKTsKICAgICAgY2xvY2suc2V0QXR0cmlidXRlKCdvcGFjaXR5JywgU3RyaW5nKGVvKGNrUCkpKTsKCiAgICAgIGlmKGUgPj0gVC5zMV90b3VyX3MgJiYgZSA8IFQuczFfdG91cl9lKXsKICAgICAgICBjb25zdCB0b3VyRWxhcHNlZCA9IGUgLSBULnMxX3RvdXJfczsKICAgICAgICBjb25zdCBzdGF0ZSA9IHRvdXJTdGF0ZSh0b3VyRWxhcHNlZCk7CgogICAgICAgIGhvdXJIYW5kLnNldEF0dHJpYnV0ZSgndHJhbnNmb3JtJywgYHJvdGF0ZSgke3N0YXRlLmFuZ2xlfSAxNzAgMjMyKWApOwogICAgICAgIGNvdW50cnlOYW1lLnRleHRDb250ZW50ID0gc3RhdGUuY291bnRyeTsKICAgICAgICBjb3VudHJ5Q2hpcC5zZXRBdHRyaWJ1dGUoJ29wYWNpdHknLCBTdHJpbmcoc3RhdGUuY2hpcE9wYWNpdHkpKTsKICAgICAgICBjbG9ja0hhbG8uc2V0QXR0cmlidXRlKCdvcGFjaXR5JywgU3RyaW5nKHN0YXRlLmhhbG9PcGFjaXR5KSk7CiAgICAgIH0gZWxzZSBpZihlID49IFQuczFfdG91cl9lKXsKICAgICAgICAvLyBIb2xkIGZpbmFsIHN0YXRlIGJyaWVmbHkgKHN0aWxsIGF0IGxhc3Qgc3RvcCdzIGFuZ2xlKQogICAgICAgIGNvbnN0IGxhc3QgPSBzdG9wc1tzdG9wcy5sZW5ndGggLSAxXTsKICAgICAgICBob3VySGFuZC5zZXRBdHRyaWJ1dGUoJ3RyYW5zZm9ybScsIGByb3RhdGUoJHtsYXN0LmFuZ2xlfSAxNzAgMjMyKWApOwogICAgICAgIGNvdW50cnlDaGlwLnNldEF0dHJpYnV0ZSgnb3BhY2l0eScsICcwJyk7CiAgICAgICAgY2xvY2tIYWxvLnNldEF0dHJpYnV0ZSgnb3BhY2l0eScsICcwJyk7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgLy8gUHJlLXRvdXI6IGhhbmQgYXQgMMKwLCBjaGlwIGhpZGRlbgogICAgICAgIGhvdXJIYW5kLnNldEF0dHJpYnV0ZSgndHJhbnNmb3JtJywgJ3JvdGF0ZSgwIDE3MCAyMzIpJyk7CiAgICAgICAgY291bnRyeUNoaXAuc2V0QXR0cmlidXRlKCdvcGFjaXR5JywgJzAnKTsKICAgICAgICBjbG9ja0hhbG8uc2V0QXR0cmlidXRlKCdvcGFjaXR5JywgJzAnKTsKICAgICAgfQogICAgfSBlbHNlIHsKICAgICAgczFDYXB0aW9uLnNldEF0dHJpYnV0ZSgnb3BhY2l0eScsICcwJyk7CiAgICAgIGNsb2NrLnNldEF0dHJpYnV0ZSgnb3BhY2l0eScsICcwJyk7CiAgICAgIGNvdW50cnlDaGlwLnNldEF0dHJpYnV0ZSgnb3BhY2l0eScsICcwJyk7CiAgICAgIGNsb2NrSGFsby5zZXRBdHRyaWJ1dGUoJ29wYWNpdHknLCAnMCcpOwogICAgfQoKICAgIC8qIOKUgOKUgOKUgCBTY2VuZSAyOiBmaW5kaW5nIGNvbW1vbiB0aW1lIOKUgOKUgOKUgCAqLwogICAgaWYoZSA+PSBULnNjZW5lMl9hdCAmJiBlIDwgVC5zY2VuZTNfYXQpewogICAgICBjb25zdCBjUCA9IG5vcm0oZSwgVC5zMl9jYXBfaW4sIFQuczJfY2FwX2luICsgNDAwKTsKICAgICAgczJDYXB0aW9uLnNldEF0dHJpYnV0ZSgnb3BhY2l0eScsIFN0cmluZyhlbyhjUCkpKTsKCiAgICAgIGNvbnN0IGFQID0gbm9ybShlLCBULnMyX2F2X2luLCBULnMyX2F2X2luICsgNTAwKTsKICAgICAgczJBdmF0YXJzLnNldEF0dHJpYnV0ZSgnb3BhY2l0eScsIFN0cmluZyhlbyhhUCkpKTsKCiAgICAgIGNvbnN0IHRQID0gbm9ybShlLCBULnMyX3RsX2luLCBULnMyX3RsX2luICsgNTAwKTsKICAgICAgczJUaW1lbGluZS5zZXRBdHRyaWJ1dGUoJ29wYWNpdHknLCBTdHJpbmcoZW8odFApKSk7CgogICAgICBjb25zdCBzdFAgPSBub3JtKGUsIFQuczJfc3RhdHVzX2luLCBULnMyX3N0YXR1c19pbiArIDUwMCk7CiAgICAgIHMyU3RhdHVzLnNldEF0dHJpYnV0ZSgnb3BhY2l0eScsIFN0cmluZyhlbyhzdFApKSk7CgogICAgICAvLyBTY2FuIGxpbmUgc3dlZXBzIHRpbWVsaW5lICh4OiAxMTAg4oaSIDI5NikKICAgICAgaWYoZSA+PSBULnMyX3NjYW5fcyAmJiBlIDwgVC5zMl9zY2FuX2UpewogICAgICAgIHNjYW5MaW5lLnNldEF0dHJpYnV0ZSgnb3BhY2l0eScsICcxJyk7CiAgICAgICAgY29uc3Qgc1AgPSBub3JtKGUsIFQuczJfc2Nhbl9zLCBULnMyX3NjYW5fZSk7CiAgICAgICAgY29uc3QgeCA9IGxlcnAoMTEwLCAyOTYsIGVpbyhzUCkpOwogICAgICAgIHNjYW5MaW5lRWwuc2V0QXR0cmlidXRlKCd4MScsIFN0cmluZyh4KSk7CiAgICAgICAgc2NhbkxpbmVFbC5zZXRBdHRyaWJ1dGUoJ3gyJywgU3RyaW5nKHgpKTsKICAgICAgfSBlbHNlIHsKICAgICAgICBzY2FuTGluZS5zZXRBdHRyaWJ1dGUoJ29wYWNpdHknLCAnMCcpOwogICAgICB9CgogICAgICBpZihlID49IFQuczJfbWF0Y2hfYXQpewogICAgICAgIGNvbnN0IG1QID0gbm9ybShlLCBULnMyX21hdGNoX2F0LCBULnMyX21hdGNoX2F0ICsgNTAwKTsKICAgICAgICBtYXRjaGVkU2xvdC5zZXRBdHRyaWJ1dGUoJ29wYWNpdHknLCBTdHJpbmcoZW8obVApKSk7CiAgICAgICAgczJTdGF0dXMudGV4dENvbnRlbnQgPSAnVGltZSBhbGlnbmVkIMK3IDEwOjAwIEFNIFBTVCc7CiAgICAgICAgczJTdGF0dXMuc2V0QXR0cmlidXRlKCdmaWxsJywgJyNDODEwMkUnKTsKICAgICAgfSBlbHNlIHsKICAgICAgICBtYXRjaGVkU2xvdC5zZXRBdHRyaWJ1dGUoJ29wYWNpdHknLCAnMCcpOwogICAgICAgIHMyU3RhdHVzLnRleHRDb250ZW50ID0gJ0FsaWduaW5nIGNhbGVuZGFyc+KApic7CiAgICAgICAgczJTdGF0dXMuc2V0QXR0cmlidXRlKCdmaWxsJywgJyMxQTFBMUEnKTsKICAgICAgfQoKICAgICAgaWYoZSA+PSBULnMyX2xpbmVzX2F0KXsKICAgICAgICBjb25zdCBsUCA9IG5vcm0oZSwgVC5zMl9saW5lc19hdCwgVC5zMl9saW5lc19hdCArIDUwMCk7CiAgICAgICAgY29ubmVjdGluZ0xpbmVzLnNldEF0dHJpYnV0ZSgnb3BhY2l0eScsIFN0cmluZyhlbyhsUCkpKTsKICAgICAgfSBlbHNlIHsKICAgICAgICBjb25uZWN0aW5nTGluZXMuc2V0QXR0cmlidXRlKCdvcGFjaXR5JywgJzAnKTsKICAgICAgfQogICAgfSBlbHNlIHsKICAgICAgczJDYXB0aW9uLnNldEF0dHJpYnV0ZSgnb3BhY2l0eScsICcwJyk7CiAgICAgIHMyU3RhdHVzLnNldEF0dHJpYnV0ZSgnb3BhY2l0eScsICcwJyk7CiAgICAgIHMyQXZhdGFycy5zZXRBdHRyaWJ1dGUoJ29wYWNpdHknLCAnMCcpOwogICAgICBzMlRpbWVsaW5lLnNldEF0dHJpYnV0ZSgnb3BhY2l0eScsICcwJyk7CiAgICAgIHNjYW5MaW5lLnNldEF0dHJpYnV0ZSgnb3BhY2l0eScsICcwJyk7CiAgICAgIG1hdGNoZWRTbG90LnNldEF0dHJpYnV0ZSgnb3BhY2l0eScsICcwJyk7CiAgICAgIGNvbm5lY3RpbmdMaW5lcy5zZXRBdHRyaWJ1dGUoJ29wYWNpdHknLCAnMCcpOwogICAgfQoKICAgIC8qIOKUgOKUgOKUgCBTY2VuZSAzOiBjb25maXJtYXRpb24gKHVuY2hhbmdlZCkg4pSA4pSA4pSAICovCiAgICBpZihlID49IFQuc2NlbmUzX2F0KXsKICAgICAgY29uc3QgaW5QID0gbm9ybShlLCBULnMzX2NhcmRfaW5fcywgVC5zM19jYXJkX2luX2UpOwogICAgICBjb25zdCBpbkUgPSBlaW8oaW5QKTsKICAgICAgY29uc3QgdHkgPSBsZXJwKDIwLCAwLCBpbkUpOwogICAgICBjb25zdCBvcGEgPSBlbyhub3JtKGluUCwgMC4wLCAwLjYpKTsKICAgICAgY29uZmlybUNhcmQuc2V0QXR0cmlidXRlKCdvcGFjaXR5JywgU3RyaW5nKG9wYSkpOwogICAgICBjb25maXJtQ2FyZC5zZXRBdHRyaWJ1dGUoJ3RyYW5zZm9ybScsIGB0cmFuc2xhdGUoMCwke3R5fSlgKTsKCiAgICAgIGNvbnN0IGdQID0gbm9ybShlLCBULnMzX2dsb3dfcywgVC5zM19nbG93X2UpOwogICAgICBsZXQgZ2xvd09wID0gMDsKICAgICAgaWYoZ1AgPiAwICYmIGdQIDwgMSl7CiAgICAgICAgZ2xvd09wID0gTWF0aC5zaW4oZ1AgKiBNYXRoLlBJKSAqIDAuNTU7CiAgICAgIH0KICAgICAgY2FyZEdsb3cuc2V0QXR0cmlidXRlKCdvcGFjaXR5JywgU3RyaW5nKGdsb3dPcCkpOwogICAgfSBlbHNlIHsKICAgICAgY29uZmlybUNhcmQuc2V0QXR0cmlidXRlKCdvcGFjaXR5JywgJzAnKTsKICAgICAgY2FyZEdsb3cuc2V0QXR0cmlidXRlKCdvcGFjaXR5JywgJzAnKTsKICAgIH0KCiAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZnJhbWUpOwogIH0KICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZnJhbWUpOwp9KSgpOwo8L3NjcmlwdD4KPC9ib2R5PjwvaHRtbD4K", "PCFET0NUWVBFIGh0bWw+CjxodG1sPjxoZWFkPjxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KPHN0eWxlPgovKiDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZAKICAgdjM3IOKAlCByZWZpbmVtZW50cwogICDigKIgU2NlbmUgMTogVFJVRSBzZXF1ZW50aWFsIHNjYW4g4oCUIHRvcCBmaWxlIHNjYW5uZWQgZmlyc3QsIHRoZW4KICAgICBsZWZ0IGJhY2sgZmlsZSBzbGlkZXMgb3V0ICsgc2NhbnMgKyBzbGlkZXMgYmFjaywgdGhlbiByaWdodAogICAgIGJhY2sgZmlsZSBzbGlkZXMgb3V0ICsgc2NhbnMgKyBzbGlkZXMgYmFjay4gRmlsZXMgZW50ZXIgZnJvbQogICAgIHRoZWlyIHJlc3BlY3RpdmUgc2lkZXMgYXQgc2NlbmUgc3RhcnQuIFN0YXR1cyBpbmRpY2F0b3IKICAgICAiQXVkaXRpbmfigKYiIGFwcGVhcnMgZHVyaW5nIHRoZSBzY2FuIHBoYXNlLiBUb3AgZmlsZSBoYXMgYQogICAgIHN1YnRsZSBjb250aW51b3VzIGNvcm5lci1mb2xkIGFuaW1hdGlvbi4KICAg4oCiIFNjZW5lIDI6IG1pbmltYWwgYWJzdHJhY3QgZGF0ZSBjaGlwcyByZXBsYWNlIHRoZSBjYWxlbmRhcgogICAgIHRpbGVzIOKAlCBjbGVhbiwgaWNvbmljLCBsb3RzIG9mIG5lZ2F0aXZlIHNwYWNlLiBBcnJvdyBzaG93cwogICAgIHRoZSBkZWFkbGluZSBzaGlmdGluZyBlYXJsaWVyLgogICDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZAgKi8KKntib3gtc2l6aW5nOmJvcmRlci1ib3g7bWFyZ2luOjA7cGFkZGluZzowfQpib2R5e2JhY2tncm91bmQ6dHJhbnNwYXJlbnR9Ci5zdG9yeXsKICBkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2FsaWduLWl0ZW1zOmNlbnRlcjsKICBwYWRkaW5nOjJyZW0gMXJlbSAyLjVyZW07CiAgZm9udC1mYW1pbHk6LWFwcGxlLXN5c3RlbSxzeXN0ZW0tdWksc2Fucy1zZXJpZjsKfQouc2NlbmUtd3JhcHtwb3NpdGlvbjpyZWxhdGl2ZTt3aWR0aDozNDBweDtoZWlnaHQ6NDMwcHh9Cgouc3RlcHsKICBwb3NpdGlvbjphYnNvbHV0ZTtpbnNldDowOwogIG9wYWNpdHk6MDsKICB0cmFuc2l0aW9uOm9wYWNpdHkgLjlzIGVhc2UsIHRyYW5zZm9ybSAuOXMgZWFzZTsKICB0cmFuc2Zvcm06c2NhbGUoLjk2KTsKICBwb2ludGVyLWV2ZW50czpub25lOwp9Ci5zdGVwLmFjdGl2ZXsKICBvcGFjaXR5OjE7CiAgdHJhbnNmb3JtOnNjYWxlKDEpOwogIHBvaW50ZXItZXZlbnRzOmF1dG87Cn0KCi5zdGVwLWlubmVyewogIHBvc2l0aW9uOmFic29sdXRlO2luc2V0OjA7CiAgYW5pbWF0aW9uOmJyZWF0aGUgNnMgZWFzZS1pbi1vdXQgaW5maW5pdGU7Cn0KQGtleWZyYW1lcyBicmVhdGhlewogIDAlLDEwMCV7dHJhbnNmb3JtOnNjYWxlKDEpfQogIDUwJSAgICB7dHJhbnNmb3JtOnNjYWxlKDEuMDEyKX0KfQo8L3N0eWxlPgo8c3R5bGU+Cmh0bWwsYm9keXttYXJnaW46MDtwYWRkaW5nOjA7YmFja2dyb3VuZDojRjdGM0VEIWltcG9ydGFudDt3aWR0aDoxMDAlO2hlaWdodDoxMDAlO292ZXJmbG93OmhpZGRlbjt9CmJvZHl7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO30KPC9zdHlsZT48L2hlYWQ+PGJvZHk+Cgo8ZGl2IGNsYXNzPSJzdG9yeSI+CjxkaXYgY2xhc3M9InNjZW5lLXdyYXAiPgoKICA8IS0tIOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkAogICAgICAgU0NFTkUgMSDigJQgV0VFS0xZIEFVRElUICh0cnVlIHNlcXVlbnRpYWwgc2Nhbm5pbmcpCiAgICAgICAKICAgICAgIFJlc3RpbmcgcG9zaXRpb25zOgogICAgICAgICDigKIgVG9wIGZpbGU6ICAgIHg9MTQwLTIwMCwgeT0yMTMtMjg1ICAoZmlsbGVkKQogICAgICAgICDigKIgTGVmdCBmaWxlOiAgIHg9MTIwLTE4MCwgeT0yMTktMjkxICAob3V0bGluZWQsIHBlZWtzIGxlZnQpCiAgICAgICAgIOKAoiBSaWdodCBmaWxlOiAgeD0xNjAtMjIwLCB5PTIxOS0yOTEgIChvdXRsaW5lZCwgcGVla3MgcmlnaHQpCiAgICAgICAKICAgICAgIFNlcXVlbmNlOgogICAgICAgICAxLiBUb3AgZmlsZSBmYWRlcyBpbiDihpIgbGVmdCBzbGlkZXMgaW4gZnJvbSAtNTAg4oaSIHJpZ2h0IHNsaWRlcyBpbiBmcm9tICs1MAogICAgICAgICAyLiAiQXVkaXRpbmfigKYiIHN0YXR1cyBhcHBlYXJzCiAgICAgICAgIDMuIFNjYW4gIzE6IHRvcCBmaWxlIHNjYW5uZWQgaW4gcGxhY2UKICAgICAgICAgNC4gU2NhbiAjMjogbGVmdCBmaWxlIHNsaWRlcyBvdXQgNDJweCwgc2Nhbm5lZCwgc2xpZGVzIGJhY2sKICAgICAgICAgNS4gU2NhbiAjMzogcmlnaHQgZmlsZSBzbGlkZXMgb3V0IDQycHgsIHNjYW5uZWQsIHNsaWRlcyBiYWNrCiAgICAgICAgIDYuIFN0YXR1cyBmYWRlcyBvdXQsIGNvdW50ZXIgdGlja3MgMOKGkjQ3LCBjaGVjayBhcHBlYXJzCiAgICAgICAgIDcuIENvbG9yIHNoaWZ0cyB0byBncmVlbiBmb3IgY29tcGxldGlvbgogICAgICAgCiAgICAgICBDb250aW51b3VzOiB0b3AgZmlsZSdzIGNvcm5lci1mb2xkIHN1YnRseSBsaWZ0cyBhbmQgc2V0dGxlcwogICAgICAgb24gYSBzbG93IH4zLjVzIGN5Y2xlLgogICAgICAg4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQIC0tPgogIDxkaXYgY2xhc3M9InN0ZXAgYWN0aXZlIiBpZD0ic2NlbmUxIj4KICAgIDxkaXYgY2xhc3M9InN0ZXAtaW5uZXIiPgogICAgICA8c3ZnIHdpZHRoPSIzNDAiIGhlaWdodD0iNDMwIiB2aWV3Qm94PSIwIDAgMzQwIDQzMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KCiAgICAgICAgPHRleHQgaWQ9InMxQ2FwdGlvbiIgeD0iMTcwIiB5PSIxMzAiIHRleHQtYW5jaG9yPSJtaWRkbGUiCiAgICAgICAgICAgICAgZm9udC1mYW1pbHk9Ii1hcHBsZS1zeXN0ZW0sc3lzdGVtLXVpLHNhbnMtc2VyaWYiCiAgICAgICAgICAgICAgZm9udC1zaXplPSIxMCIgZm9udC13ZWlnaHQ9IjYwMCIgbGV0dGVyLXNwYWNpbmc9IjIiCiAgICAgICAgICAgICAgZmlsbD0iI0MyQzJDMiIgb3BhY2l0eT0iMCI+V0VFS0xZIEFVRElUPC90ZXh0PgoKICAgICAgICA8IS0tIFN0YXR1cyBpbmRpY2F0b3IgKG9ubHkgZHVyaW5nIHNjYW4gcGhhc2UpIC0tPgogICAgICAgIDxnIGlkPSJzdGF0dXNJbmRpY2F0b3IiIG9wYWNpdHk9IjAiPgogICAgICAgICAgPGNpcmNsZSBpZD0ic3RhdHVzRG90IiBjeD0iMTQ4IiBjeT0iMTc4IiByPSIyLjUiIGZpbGw9IiNDODEwMkUiLz4KICAgICAgICAgIDx0ZXh0IHg9IjE1OCIgeT0iMTgxIgogICAgICAgICAgICAgICAgZm9udC1mYW1pbHk9Ii1hcHBsZS1zeXN0ZW0sc3lzdGVtLXVpLHNhbnMtc2VyaWYiCiAgICAgICAgICAgICAgICBmb250LXNpemU9IjEwIiBmb250LXdlaWdodD0iNTAwIiBsZXR0ZXItc3BhY2luZz0iMSIKICAgICAgICAgICAgICAgIGZpbGw9IiNDODEwMkUiPkF1ZGl0aW5n4oCmPC90ZXh0PgogICAgICAgIDwvZz4KCiAgICAgICAgPGcgaWQ9ImRvY1N0YWNrIiBvcGFjaXR5PSIwIj4KICAgICAgICAgIDwhLS0g4pSA4pSA4pSAIExlZnQgYmFjayBmaWxlIOKUgOKUgOKUgAogICAgICAgICAgICAgICBPdXRsaW5lZC1vbmx5IHN0eWxlLiBQZWVrcyAyMHB4IHRvIHRoZSBsZWZ0IG9mIHRoZQogICAgICAgICAgICAgICB0b3AgZmlsZS4gU2xpZGVzIGZ1cnRoZXIgbGVmdCBkdXJpbmcgc2NhbiAjMi4gLS0+CiAgICAgICAgICA8ZyBpZD0iZG9jTGVmdCI+CiAgICAgICAgICAgIDxyZWN0IHg9IjEyMCIgeT0iMjE5IiB3aWR0aD0iNjAiIGhlaWdodD0iNzIiIHJ4PSI0IgogICAgICAgICAgICAgICAgICBmaWxsPSIjMDAwIiBvcGFjaXR5PSIuMTUiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yLDIpIi8+CiAgICAgICAgICAgIDxyZWN0IGlkPSJkb2NMZWZ0UmVjdCIgeD0iMTIwIiB5PSIyMTkiIHdpZHRoPSI2MCIgaGVpZ2h0PSI3MiIgcng9IjQiCiAgICAgICAgICAgICAgICAgIGZpbGw9IiNGMEUwRDkiIHN0cm9rZT0iI0MyQzJDMiIgc3Ryb2tlLXdpZHRoPSIxLjQiLz4KICAgICAgICAgICAgPHBhdGggZD0iTTE2NCwyMTkgTDE4MCwyMzUgTDE2NCwyMzUgWiIgZmlsbD0iIzBGM0QzRSIvPgogICAgICAgICAgICA8bGluZSB4MT0iMTY0IiB5MT0iMjE5IiB4Mj0iMTY0IiB5Mj0iMjM1IiBzdHJva2U9IiNDMkMyQzIiIHN0cm9rZS13aWR0aD0iMS40Ii8+CiAgICAgICAgICAgIDxsaW5lIHgxPSIxNjQiIHkxPSIyMzUiIHgyPSIxODAiIHkyPSIyMzUiIHN0cm9rZT0iI0MyQzJDMiIgc3Ryb2tlLXdpZHRoPSIxLjQiLz4KICAgICAgICAgICAgPHJlY3QgeD0iMTI4IiB5PSIyNDUiIHdpZHRoPSIyOCIgaGVpZ2h0PSIxLjYiIHJ4PSIuOCIgZmlsbD0iI0MyQzJDMiIgb3BhY2l0eT0iLjUiLz4KICAgICAgICAgICAgPHJlY3QgeD0iMTI4IiB5PSIyNTEiIHdpZHRoPSIzNiIgaGVpZ2h0PSIxLjYiIHJ4PSIuOCIgZmlsbD0iI0MyQzJDMiIgb3BhY2l0eT0iLjUiLz4KICAgICAgICAgICAgPHJlY3QgeD0iMTI4IiB5PSIyNTciIHdpZHRoPSIzMiIgaGVpZ2h0PSIxLjYiIHJ4PSIuOCIgZmlsbD0iI0MyQzJDMiIgb3BhY2l0eT0iLjUiLz4KICAgICAgICAgIDwvZz4KCiAgICAgICAgICA8IS0tIOKUgOKUgOKUgCBSaWdodCBiYWNrIGZpbGUg4pSA4pSA4pSACiAgICAgICAgICAgICAgIE1pcnJvcnMgdGhlIGxlZnQ6IG91dGxpbmVkLCBwZWVrcyAyMHB4IHJpZ2h0LiAtLT4KICAgICAgICAgIDxnIGlkPSJkb2NSaWdodCI+CiAgICAgICAgICAgIDxyZWN0IHg9IjE2MCIgeT0iMjE5IiB3aWR0aD0iNjAiIGhlaWdodD0iNzIiIHJ4PSI0IgogICAgICAgICAgICAgICAgICBmaWxsPSIjMDAwIiBvcGFjaXR5PSIuMTUiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDIsMikiLz4KICAgICAgICAgICAgPHJlY3QgaWQ9ImRvY1JpZ2h0UmVjdCIgeD0iMTYwIiB5PSIyMTkiIHdpZHRoPSI2MCIgaGVpZ2h0PSI3MiIgcng9IjQiCiAgICAgICAgICAgICAgICAgIGZpbGw9IiNGMEUwRDkiIHN0cm9rZT0iI0MyQzJDMiIgc3Ryb2tlLXdpZHRoPSIxLjQiLz4KICAgICAgICAgICAgPHBhdGggZD0iTTIwNCwyMTkgTDIyMCwyMzUgTDIwNCwyMzUgWiIgZmlsbD0iIzBGM0QzRSIvPgogICAgICAgICAgICA8bGluZSB4MT0iMjA0IiB5MT0iMjE5IiB4Mj0iMjA0IiB5Mj0iMjM1IiBzdHJva2U9IiNDMkMyQzIiIHN0cm9rZS13aWR0aD0iMS40Ii8+CiAgICAgICAgICAgIDxsaW5lIHgxPSIyMDQiIHkxPSIyMzUiIHgyPSIyMjAiIHkyPSIyMzUiIHN0cm9rZT0iI0MyQzJDMiIgc3Ryb2tlLXdpZHRoPSIxLjQiLz4KICAgICAgICAgICAgPHJlY3QgeD0iMTY4IiB5PSIyNDUiIHdpZHRoPSIyOCIgaGVpZ2h0PSIxLjYiIHJ4PSIuOCIgZmlsbD0iI0MyQzJDMiIgb3BhY2l0eT0iLjUiLz4KICAgICAgICAgICAgPHJlY3QgeD0iMTY4IiB5PSIyNTEiIHdpZHRoPSIzNiIgaGVpZ2h0PSIxLjYiIHJ4PSIuOCIgZmlsbD0iI0MyQzJDMiIgb3BhY2l0eT0iLjUiLz4KICAgICAgICAgICAgPHJlY3QgeD0iMTY4IiB5PSIyNTciIHdpZHRoPSIzMiIgaGVpZ2h0PSIxLjYiIHJ4PSIuOCIgZmlsbD0iI0MyQzJDMiIgb3BhY2l0eT0iLjUiLz4KICAgICAgICAgIDwvZz4KCiAgICAgICAgICA8IS0tIOKUgOKUgOKUgCBUb3AgZmlsZSAoYWN0aXZlKSDilIDilIDilIAKICAgICAgICAgICAgICAgRmlsbGVkIHN0eWxlLiBDZW50ZXJlZC4gSGFzIGNvbnRpbnVvdXMgY29ybmVyLWZvbGQKICAgICAgICAgICAgICAgYW5pbWF0aW9uIGRyaXZlbiBieSBKUyAocGF0aHMgYW5pbWF0ZSBiYXNlZCBvbiBhCiAgICAgICAgICAgICAgIHNpbi1jdXJ2ZSAibGlmdCIgYW1vdW50KS4gLS0+CiAgICAgICAgICA8ZyBpZD0iZG9jVG9wIj4KICAgICAgICAgICAgPHJlY3QgeD0iMTQwIiB5PSIyMTMiIHdpZHRoPSI2MCIgaGVpZ2h0PSI3MiIgcng9IjQiCiAgICAgICAgICAgICAgICAgIGZpbGw9IiMwMDAiIG9wYWNpdHk9Ii4yNSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMCwzKSIvPgogICAgICAgICAgICA8cmVjdCBpZD0iZG9jVG9wUmVjdCIgeD0iMTQwIiB5PSIyMTMiIHdpZHRoPSI2MCIgaGVpZ2h0PSI3MiIgcng9IjQiCiAgICAgICAgICAgICAgICAgIGZpbGw9IiNGMEUwRDkiIHN0cm9rZT0iI0M4MTAyRSIgc3Ryb2tlLXdpZHRoPSIxLjIiLz4KCiAgICAgICAgICAgIDwhLS0gQW5pbWF0ZWQgZm9sZGVkIGNvcm5lciDigJQgcGF0aHMgdXBkYXRlZCBlYWNoIGZyYW1lIC0tPgogICAgICAgICAgICA8ZyBpZD0idG9wQ29ybmVyIj4KICAgICAgICAgICAgICA8cGF0aCBpZD0idG9wQ29ybmVyUGF0aCIgZD0iTTE4NCwyMTMgTDIwMCwyMjkgTDE4NCwyMjkgWiIgZmlsbD0iIzBGM0QzRSIvPgogICAgICAgICAgICAgIDxsaW5lIGlkPSJ0b3BDb3JuZXJMaW5lMSIgeDE9IjE4NCIgeTE9IjIxMyIgeDI9IjE4NCIgeTI9IjIyOSIgc3Ryb2tlPSIjQzgxMDJFIiBzdHJva2Utd2lkdGg9IjEuMiIvPgogICAgICAgICAgICAgIDxsaW5lIGlkPSJ0b3BDb3JuZXJMaW5lMiIgeDE9IjE4NCIgeTE9IjIyOSIgeDI9IjIwMCIgeTI9IjIyOSIgc3Ryb2tlPSIjQzgxMDJFIiBzdHJva2Utd2lkdGg9IjEuMiIvPgogICAgICAgICAgICA8L2c+CgogICAgICAgICAgICA8bGluZSB4MT0iMTQyIiB5MT0iMjE1IiB4Mj0iMTgyIiB5Mj0iMjE1IiBzdHJva2U9IiNDODEwMkUiIHN0cm9rZS13aWR0aD0iLjUiIG9wYWNpdHk9Ii41Ii8+CiAgICAgICAgICAgIDxyZWN0IHg9IjE0OCIgeT0iMjM3IiB3aWR0aD0iMzIiIGhlaWdodD0iMiIgcng9IjEiIGZpbGw9IiNDODEwMkUiIG9wYWNpdHk9Ii43Ii8+CiAgICAgICAgICAgIDxyZWN0IHg9IjE0OCIgeT0iMjQzIiB3aWR0aD0iNDAiIGhlaWdodD0iMiIgcng9IjEiIGZpbGw9IiNDMkMyQzIiIG9wYWNpdHk9Ii41NSIvPgogICAgICAgICAgICA8cmVjdCB4PSIxNDgiIHk9IjI0OSIgd2lkdGg9IjM2IiBoZWlnaHQ9IjIiIHJ4PSIxIiBmaWxsPSIjQzJDMkMyIiBvcGFjaXR5PSIuNTUiLz4KICAgICAgICAgICAgPHJlY3QgeD0iMTQ4IiB5PSIyNTUiIHdpZHRoPSIyOCIgaGVpZ2h0PSIyIiByeD0iMSIgZmlsbD0iI0MyQzJDMiIgb3BhY2l0eT0iLjU1Ii8+CgogICAgICAgICAgICA8ZyBpZD0iZG9jQ2hlY2siIG9wYWNpdHk9IjAiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDE5MCwyNzMpIj4KICAgICAgICAgICAgICA8Y2lyY2xlIHI9IjgiIGZpbGw9IiNDODEwMkUiLz4KICAgICAgICAgICAgICA8cG9seWxpbmUgcG9pbnRzPSItMy41LDAgLTEsMi41IDMuNSwtMi41IgogICAgICAgICAgICAgICAgICAgICAgICBmaWxsPSJub25lIiBzdHJva2U9IiMwRjNEM0UiIHN0cm9rZS13aWR0aD0iMS44IgogICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4KICAgICAgICAgICAgPC9nPgogICAgICAgICAgPC9nPgoKICAgICAgICAgIDwhLS0gU2Nhbm5lciDigJQgcG9zaXRpb24rd2lkdGggc2V0IHBlciBzY2FuIGJ5IEpTIC0tPgogICAgICAgICAgPGcgaWQ9InNjYW5uZXIiIG9wYWNpdHk9IjAiPgogICAgICAgICAgICA8cmVjdCBpZD0ic2Nhbm5lckdsb3ciIHg9IjE0MCIgeT0iMjEwIiB3aWR0aD0iNjAiIGhlaWdodD0iNiIKICAgICAgICAgICAgICAgICAgZmlsbD0iI0M4MTAyRSIgb3BhY2l0eT0iLjE1Ii8+CiAgICAgICAgICAgIDxyZWN0IGlkPSJzY2FubmVyTGluZSIgeD0iMTQwIiB5PSIyMTMiIHdpZHRoPSI2MCIgaGVpZ2h0PSIxLjUiCiAgICAgICAgICAgICAgICAgIGZpbGw9IiNDODEwMkUiIG9wYWNpdHk9Ii45Ii8+CiAgICAgICAgICA8L2c+CiAgICAgICAgPC9nPgoKICAgICAgICA8IS0tIENvdW50ZXIgLS0+CiAgICAgICAgPHRleHQgaWQ9ImNvdW50ZXJWYWx1ZSIgeD0iMTcwIiB5PSIzMzgiIHRleHQtYW5jaG9yPSJtaWRkbGUiCiAgICAgICAgICAgICAgZm9udC1mYW1pbHk9Ii1hcHBsZS1zeXN0ZW0sc3lzdGVtLXVpLHNhbnMtc2VyaWYiCiAgICAgICAgICAgICAgZm9udC1zaXplPSI0MCIgZm9udC13ZWlnaHQ9IjcwMCIKICAgICAgICAgICAgICBmaWxsPSIjQzgxMDJFIiBvcGFjaXR5PSIwIj4wPC90ZXh0PgogICAgICAgIDx0ZXh0IGlkPSJjb3VudGVyTGFiZWwiIHg9IjE3MCIgeT0iMzU4IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIgogICAgICAgICAgICAgIGZvbnQtZmFtaWx5PSItYXBwbGUtc3lzdGVtLHN5c3RlbS11aSxzYW5zLXNlcmlmIgogICAgICAgICAgICAgIGZvbnQtc2l6ZT0iMTEiIGZvbnQtd2VpZ2h0PSI2MDAiIGxldHRlci1zcGFjaW5nPSIyIgogICAgICAgICAgICAgIGZpbGw9IiNDMkMyQzIiIG9wYWNpdHk9IjAiPmF1ZGl0ZWQ8L3RleHQ+CgogICAgICA8L3N2Zz4KICAgIDwvZGl2PgogIDwvZGl2PgoKICA8IS0tIOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkAogICAgICAgU0NFTkUgMiDigJQgRklMSU5HIERFQURMSU5FIChtaW5pbWFsIGFic3RyYWN0IGNoaXBzKQogICAgICAgCiAgICAgICBUd28gc2ltcGxlIGRhdGUgY2hpcHMgY29ubmVjdGVkIGJ5IGEgZGlyZWN0aW9uYWwgYXJyb3cuCiAgICAgICBTdHJpcHBlZCBvZiBhbGwgY2FsZW5kYXIgVUkgY2x1dHRlciDigJQganVzdCB0aGUgZXNzZW50aWFsCiAgICAgICBzaGFwZXM6IG51bWJlciArIHRpbnkgbW9udGggKyBhY2NlbnQgZmlsbC4KICAgICAgIOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkCAtLT4KICA8ZGl2IGNsYXNzPSJzdGVwIiBpZD0ic2NlbmUyIj4KICAgIDxkaXYgY2xhc3M9InN0ZXAtaW5uZXIiPgogICAgICA8c3ZnIHdpZHRoPSIzNDAiIGhlaWdodD0iNDMwIiB2aWV3Qm94PSIwIDAgMzQwIDQzMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KCiAgICAgICAgPHRleHQgaWQ9InMyQ2FwdGlvbiIgeD0iMTcwIiB5PSIxNTYiIHRleHQtYW5jaG9yPSJtaWRkbGUiCiAgICAgICAgICAgICAgZm9udC1mYW1pbHk9Ii1hcHBsZS1zeXN0ZW0sc3lzdGVtLXVpLHNhbnMtc2VyaWYiCiAgICAgICAgICAgICAgZm9udC1zaXplPSIxMCIgZm9udC13ZWlnaHQ9IjYwMCIgbGV0dGVyLXNwYWNpbmc9IjIiCiAgICAgICAgICAgICAgZmlsbD0iI0MyQzJDMiIgb3BhY2l0eT0iMCI+RklMSU5HIERFQURMSU5FPC90ZXh0PgoKICAgICAgICA8dGV4dCBpZD0iczJTdGF0dXMiIHg9IjE3MCIgeT0iMTg2IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIgogICAgICAgICAgICAgIGZvbnQtZmFtaWx5PSItYXBwbGUtc3lzdGVtLHN5c3RlbS11aSxzYW5zLXNlcmlmIgogICAgICAgICAgICAgIGZvbnQtc2l6ZT0iMTMiIGZvbnQtd2VpZ2h0PSI1MDAiCiAgICAgICAgICAgICAgZmlsbD0iIzFBMUExQSIgb3BhY2l0eT0iMCI+RmlsaW5nIGRlYWRsaW5lIMK3IE9jdCAyNzwvdGV4dD4KCiAgICAgICAgPCEtLSBEZWFkbGluZSBjaGlwIChyaWdodCkg4oCUIGJyaWdodCB0ZWFsIC0tPgogICAgICAgIDxnIGlkPSJkZWFkbGluZUNoaXAiIG9wYWNpdHk9IjAiPgogICAgICAgICAgPHJlY3QgeD0iMTkyIiB5PSIyMjYiIHdpZHRoPSI1NiIgaGVpZ2h0PSI1NiIgcng9IjE0IgogICAgICAgICAgICAgICAgZmlsbD0iIzAwMCIgb3BhY2l0eT0iLjIyIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwLDMpIi8+CiAgICAgICAgICA8cmVjdCB4PSIxOTIiIHk9IjIyNiIgd2lkdGg9IjU2IiBoZWlnaHQ9IjU2IiByeD0iMTQiCiAgICAgICAgICAgICAgICBmaWxsPSIjQzgxMDJFIi8+CiAgICAgICAgICA8dGV4dCB4PSIyMjAiIHk9IjI1NCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZG9taW5hbnQtYmFzZWxpbmU9Im1pZGRsZSIKICAgICAgICAgICAgICAgIGZvbnQtZmFtaWx5PSItYXBwbGUtc3lzdGVtLHN5c3RlbS11aSxzYW5zLXNlcmlmIgogICAgICAgICAgICAgICAgZm9udC1zaXplPSIyMiIgZm9udC13ZWlnaHQ9IjcwMCIKICAgICAgICAgICAgICAgIGZpbGw9IiMwRjNEM0UiPjI3PC90ZXh0PgogICAgICAgICAgPHRleHQgeD0iMjIwIiB5PSIyNzAiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGRvbWluYW50LWJhc2VsaW5lPSJtaWRkbGUiCiAgICAgICAgICAgICAgICBmb250LWZhbWlseT0iLWFwcGxlLXN5c3RlbSxzeXN0ZW0tdWksc2Fucy1zZXJpZiIKICAgICAgICAgICAgICAgIGZvbnQtc2l6ZT0iNyIgZm9udC13ZWlnaHQ9IjcwMCIgbGV0dGVyLXNwYWNpbmc9IjIiCiAgICAgICAgICAgICAgICBmaWxsPSIjMEYzRDNFIiBvcGFjaXR5PSIuNzUiPk9DVDwvdGV4dD4KICAgICAgICA8L2c+CgogICAgICAgIDwhLS0gQXJyb3cgKGRlYWRsaW5lIOKGkiBjYXRjaCwgbGVmdHdhcmQpIC0tPgogICAgICAgIDxnIGlkPSJhcnJvdyIgb3BhY2l0eT0iMCI+CiAgICAgICAgICA8bGluZSBpZD0iYXJyb3dTaGFmdCIgeDE9IjE4NiIgeTE9IjI1NCIgeDI9IjE4NiIgeTI9IjI1NCIKICAgICAgICAgICAgICAgIHN0cm9rZT0iI0M4MTAyRSIgc3Ryb2tlLXdpZHRoPSIxLjUiCiAgICAgICAgICAgICAgICBzdHJva2UtbGluZWNhcD0icm91bmQiLz4KICAgICAgICAgIDxwb2x5bGluZSBpZD0iYXJyb3dIZWFkIiBwb2ludHM9IjAsMCAwLDAgMCwwIgogICAgICAgICAgICAgICAgICAgIGZpbGw9Im5vbmUiIHN0cm9rZT0iI0M4MTAyRSIgc3Ryb2tlLXdpZHRoPSIxLjUiCiAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+CiAgICAgICAgPC9nPgoKICAgICAgICA8IS0tIENhdGNoIGNoaXAgKGxlZnQpIOKAlCBncmVlbiAtLT4KICAgICAgICA8ZyBpZD0iY2F0Y2hDaGlwIiBvcGFjaXR5PSIwIj4KICAgICAgICAgIDxyZWN0IHg9IjkyIiB5PSIyMjYiIHdpZHRoPSI1NiIgaGVpZ2h0PSI1NiIgcng9IjE0IgogICAgICAgICAgICAgICAgZmlsbD0iIzAwMCIgb3BhY2l0eT0iLjIyIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwLDMpIi8+CiAgICAgICAgICA8cmVjdCB4PSI5MiIgeT0iMjI2IiB3aWR0aD0iNTYiIGhlaWdodD0iNTYiIHJ4PSIxNCIKICAgICAgICAgICAgICAgIGZpbGw9IiNDODEwMkUiLz4KICAgICAgICAgIDx0ZXh0IHg9IjEyMCIgeT0iMjU0IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBkb21pbmFudC1iYXNlbGluZT0ibWlkZGxlIgogICAgICAgICAgICAgICAgZm9udC1mYW1pbHk9Ii1hcHBsZS1zeXN0ZW0sc3lzdGVtLXVpLHNhbnMtc2VyaWYiCiAgICAgICAgICAgICAgICBmb250LXNpemU9IjIyIiBmb250LXdlaWdodD0iNzAwIgogICAgICAgICAgICAgICAgZmlsbD0iIzBGM0QzRSI+MjA8L3RleHQ+CiAgICAgICAgICA8dGV4dCB4PSIxMjAiIHk9IjI3MCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZG9taW5hbnQtYmFzZWxpbmU9Im1pZGRsZSIKICAgICAgICAgICAgICAgIGZvbnQtZmFtaWx5PSItYXBwbGUtc3lzdGVtLHN5c3RlbS11aSxzYW5zLXNlcmlmIgogICAgICAgICAgICAgICAgZm9udC1zaXplPSI3IiBmb250LXdlaWdodD0iNzAwIiBsZXR0ZXItc3BhY2luZz0iMiIKICAgICAgICAgICAgICAgIGZpbGw9IiMwRjNEM0UiIG9wYWNpdHk9Ii43NSI+T0NUPC90ZXh0PgogICAgICAgIDwvZz4KCiAgICAgICAgPCEtLSAiNyBEQVlTIEVBUkxZIiBsYWJlbCAtLT4KICAgICAgICA8dGV4dCBpZD0iYnJhY2tldExhYmVsIiB4PSIxNzAiIHk9IjMxNiIgdGV4dC1hbmNob3I9Im1pZGRsZSIKICAgICAgICAgICAgICBmb250LWZhbWlseT0iLWFwcGxlLXN5c3RlbSxzeXN0ZW0tdWksc2Fucy1zZXJpZiIKICAgICAgICAgICAgICBmb250LXNpemU9IjExIiBmb250LXdlaWdodD0iNzAwIiBsZXR0ZXItc3BhY2luZz0iMSIKICAgICAgICAgICAgICBmaWxsPSIjQzgxMDJFIiBvcGFjaXR5PSIwIj43IERBWVMgRUFSTFk8L3RleHQ+CgogICAgICA8L3N2Zz4KICAgIDwvZGl2PgogIDwvZGl2PgoKPC9kaXY+PCEtLSBzY2VuZS13cmFwIC0tPgoKPC9kaXY+Cgo8c2NyaXB0PgooZnVuY3Rpb24oKXsKICBjb25zdCBsZXJwICA9IChhLGIsdCk9PmErKGItYSkqdDsKICBjb25zdCBjbGFtcCA9ICh2LGxvLGhpKT0+TWF0aC5tYXgobG8sTWF0aC5taW4oaGksdikpOwogIGNvbnN0IG5vcm0gID0gKHYsbG8saGkpPT5jbGFtcCgodi1sbykvKGhpLWxvKSwwLDEpOwogIGNvbnN0IGVvICAgID0gdD0+MS1NYXRoLnBvdygxLXQsMyk7CiAgY29uc3QgZWlvICAgPSB0PT50PC41PzQqdCp0KnQ6MS1NYXRoLnBvdygtMip0KzIsMykvMjsKCiAgY29uc3Qgc2NlbmUxID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3NjZW5lMScpOwogIGNvbnN0IHNjZW5lMiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzY2VuZTInKTsKCiAgLy8gU2NlbmUgMSBlbGVtZW50cwogIGNvbnN0IHMxQ2FwdGlvbiAgICAgICA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzMUNhcHRpb24nKTsKICBjb25zdCBzdGF0dXNJbmRpY2F0b3IgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc3RhdHVzSW5kaWNhdG9yJyk7CiAgY29uc3Qgc3RhdHVzRG90ICAgICAgID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3N0YXR1c0RvdCcpOwogIGNvbnN0IGRvY1N0YWNrICAgICAgICA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkb2NTdGFjaycpOwogIGNvbnN0IGRvY0xlZnQgICAgICAgICA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkb2NMZWZ0Jyk7CiAgY29uc3QgZG9jTGVmdFJlY3QgICAgID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2RvY0xlZnRSZWN0Jyk7CiAgY29uc3QgZG9jUmlnaHQgICAgICAgID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2RvY1JpZ2h0Jyk7CiAgY29uc3QgZG9jUmlnaHRSZWN0ICAgID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2RvY1JpZ2h0UmVjdCcpOwogIGNvbnN0IGRvY1RvcCAgICAgICAgICA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkb2NUb3AnKTsKICBjb25zdCBkb2NUb3BSZWN0ICAgICAgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZG9jVG9wUmVjdCcpOwogIGNvbnN0IHRvcENvcm5lclBhdGggICA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b3BDb3JuZXJQYXRoJyk7CiAgY29uc3QgdG9wQ29ybmVyTGluZTEgID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RvcENvcm5lckxpbmUxJyk7CiAgY29uc3QgdG9wQ29ybmVyTGluZTIgID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RvcENvcm5lckxpbmUyJyk7CiAgY29uc3QgZG9jQ2hlY2sgICAgICAgID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2RvY0NoZWNrJyk7CiAgY29uc3Qgc2Nhbm5lciAgICAgICAgID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3NjYW5uZXInKTsKICBjb25zdCBzY2FubmVyTGluZSAgICAgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc2Nhbm5lckxpbmUnKTsKICBjb25zdCBzY2FubmVyR2xvdyAgICAgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc2Nhbm5lckdsb3cnKTsKICBjb25zdCBjb3VudGVyVmFsdWUgICAgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY291bnRlclZhbHVlJyk7CiAgY29uc3QgY291bnRlckxhYmVsICAgID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvdW50ZXJMYWJlbCcpOwoKICAvLyBTY2VuZSAyIGVsZW1lbnRzCiAgY29uc3QgczJDYXB0aW9uICAgID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3MyQ2FwdGlvbicpOwogIGNvbnN0IHMyU3RhdHVzICAgICA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzMlN0YXR1cycpOwogIGNvbnN0IGRlYWRsaW5lQ2hpcCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkZWFkbGluZUNoaXAnKTsKICBjb25zdCBjYXRjaENoaXAgICAgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY2F0Y2hDaGlwJyk7CiAgY29uc3QgYXJyb3cgICAgICAgID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2Fycm93Jyk7CiAgY29uc3QgYXJyb3dTaGFmdCAgID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2Fycm93U2hhZnQnKTsKICBjb25zdCBhcnJvd0hlYWQgICAgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYXJyb3dIZWFkJyk7CiAgY29uc3QgYnJhY2tldExhYmVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JyYWNrZXRMYWJlbCcpOwoKICAvKiDilIDilIDilIAgUGhhc2UgdGltaW5ncyAobXMpIOKUgOKUgOKUgCAqLwogIGNvbnN0IFQgPSB7CiAgICBzMV9jYXBfaW4gICAgIDogMjAwLAogICAgczFfdG9wX2luX3MgICA6IDYwMCwKICAgIHMxX3RvcF9pbl9lICAgOiAxMzAwLAogICAgczFfbGVmdF9pbl9zICA6IDExMDAsCiAgICBzMV9sZWZ0X2luX2UgIDogMTkwMCwKICAgIHMxX3JpZ2h0X2luX3MgOiAxMzAwLAogICAgczFfcmlnaHRfaW5fZSA6IDIxMDAsCgogICAgczFfc3RhdHVzX3MgICA6IDIzMDAsCgogICAgczFfc2NhbjFfcyAgICA6IDI0MDAsCiAgICBzMV9zY2FuMV9lICAgIDogMzQwMCwKCiAgICBzMV9sZWZ0X291dF9zIDogMzUwMCwKICAgIHMxX2xlZnRfb3V0X2UgOiAzOTAwLAogICAgczFfc2NhbjJfcyAgICA6IDM5MDAsCiAgICBzMV9zY2FuMl9lICAgIDogNDkwMCwKICAgIHMxX2xlZnRfYmFja19zOiA0OTAwLAogICAgczFfbGVmdF9iYWNrX2U6IDUzMDAsCgogICAgczFfcmlnaHRfb3V0X3M6IDU0MDAsCiAgICBzMV9yaWdodF9vdXRfZTogNTgwMCwKICAgIHMxX3NjYW4zX3MgICAgOiA1ODAwLAogICAgczFfc2NhbjNfZSAgICA6IDY4MDAsCiAgICBzMV9yaWdodF9iYWNrX3M6IDY4MDAsCiAgICBzMV9yaWdodF9iYWNrX2U6IDcyMDAsCgogICAgczFfc3RhdHVzX2UgICA6IDczMDAsCgogICAgczFfY291bnRfcyAgICA6IDc0MDAsCiAgICBzMV9jb3VudF9lICAgIDogOTAwMCwKICAgIHMxX2NoZWNrX3MgICAgOiA4NTAwLAogICAgczFfY2hlY2tfZSAgICA6IDkxMDAsCgogICAgc2NlbmUyX2F0ICAgICA6IDEwMjAwLAoKICAgIHMyX2NhcF9pbiAgICAgOiAxMDQwMCwKICAgIHMyX3N0YXR1c19pbiAgOiAxMDYwMCwKICAgIHMyX2RlYWRsaW5lX3MgOiAxMDcwMCwKICAgIHMyX2RlYWRsaW5lX2UgOiAxMTQwMCwKICAgIHMyX2NhdGNoX3MgICAgOiAxMjcwMCwKICAgIHMyX2NhdGNoX2UgICAgOiAxMzQwMCwKICAgIHMyX2Fycm93X3MgICAgOiAxMzAwMCwKICAgIHMyX2Fycm93X2UgICAgOiAxMzcwMCwKICAgIHMyX2xhYmVsX3MgICAgOiAxMzcwMCwKICAgIHMyX3N0YXR1c19zd2FwOiAxMzQwMCwKCiAgICBsb29wICAgICAgICAgIDogMTc1MDAKICB9OwoKICBmdW5jdGlvbiBjb25maWd1cmVTY2FubmVyRm9yRmlsZShmaWxlSWR4KXsKICAgIGlmKGZpbGVJZHggPT09IDEpewogICAgICAvLyB0b3AgZmlsZSBhdCB4PTE0MCwgd2lkdGggNjAKICAgICAgc2Nhbm5lckxpbmUuc2V0QXR0cmlidXRlKCd4JywgJzE0MCcpOwogICAgICBzY2FubmVyTGluZS5zZXRBdHRyaWJ1dGUoJ3dpZHRoJywgJzYwJyk7CiAgICAgIHNjYW5uZXJHbG93LnNldEF0dHJpYnV0ZSgneCcsICcxNDAnKTsKICAgICAgc2Nhbm5lckdsb3cuc2V0QXR0cmlidXRlKCd3aWR0aCcsICc2MCcpOwogICAgfSBlbHNlIGlmKGZpbGVJZHggPT09IDIpewogICAgICAvLyBsZWZ0IGZpbGUgc2xpZCBvdXQ6IHJlc3RpbmcgeD0xMjAsICtlbnRyeSBvZmZzZXQgMCwgLTQyIHNsaWRlCiAgICAgIC8vID0geD03OCwgd2lkdGggNjAKICAgICAgc2Nhbm5lckxpbmUuc2V0QXR0cmlidXRlKCd4JywgJzc4Jyk7CiAgICAgIHNjYW5uZXJMaW5lLnNldEF0dHJpYnV0ZSgnd2lkdGgnLCAnNjAnKTsKICAgICAgc2Nhbm5lckdsb3cuc2V0QXR0cmlidXRlKCd4JywgJzc4Jyk7CiAgICAgIHNjYW5uZXJHbG93LnNldEF0dHJpYnV0ZSgnd2lkdGgnLCAnNjAnKTsKICAgIH0gZWxzZSBpZihmaWxlSWR4ID09PSAzKXsKICAgICAgLy8gcmlnaHQgZmlsZSBzbGlkIG91dDogcmVzdGluZyB4PTE2MCwgKzQyIHNsaWRlID0gMjAyCiAgICAgIHNjYW5uZXJMaW5lLnNldEF0dHJpYnV0ZSgneCcsICcyMDInKTsKICAgICAgc2Nhbm5lckxpbmUuc2V0QXR0cmlidXRlKCd3aWR0aCcsICc2MCcpOwogICAgICBzY2FubmVyR2xvdy5zZXRBdHRyaWJ1dGUoJ3gnLCAnMjAyJyk7CiAgICAgIHNjYW5uZXJHbG93LnNldEF0dHJpYnV0ZSgnd2lkdGgnLCAnNjAnKTsKICAgIH0KICB9CgogIGZ1bmN0aW9uIHNldFNjYW5uZXJZKHkpewogICAgc2Nhbm5lckxpbmUuc2V0QXR0cmlidXRlKCd5JywgU3RyaW5nKHkpKTsKICAgIHNjYW5uZXJHbG93LnNldEF0dHJpYnV0ZSgneScsIFN0cmluZyh5IC0gMykpOwogIH0KCiAgZnVuY3Rpb24gaGlnaGxpZ2h0RmlsZShyZWN0RWwsIG9uLCBraW5kKXsKICAgIGlmKG9uKXsKICAgICAgcmVjdEVsLnNldEF0dHJpYnV0ZSgnc3Ryb2tlJywgJyNDODEwMkUnKTsKICAgICAgcmVjdEVsLnNldEF0dHJpYnV0ZSgnc3Ryb2tlLXdpZHRoJywgJzEuOCcpOwogICAgfSBlbHNlIHsKICAgICAgaWYoa2luZCA9PT0gJ291dGxpbmVkJyl7CiAgICAgICAgcmVjdEVsLnNldEF0dHJpYnV0ZSgnc3Ryb2tlJywgJyNDMkMyQzInKTsKICAgICAgICByZWN0RWwuc2V0QXR0cmlidXRlKCdzdHJva2Utd2lkdGgnLCAnMS40Jyk7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgcmVjdEVsLnNldEF0dHJpYnV0ZSgnc3Ryb2tlJywgJyNDODEwMkUnKTsKICAgICAgICByZWN0RWwuc2V0QXR0cmlidXRlKCdzdHJva2Utd2lkdGgnLCAnMS4yJyk7CiAgICAgIH0KICAgIH0KICB9CgogIGNvbnN0IHQwID0gcGVyZm9ybWFuY2Uubm93KCk7CgogIGZ1bmN0aW9uIGZyYW1lKG5vdyl7CiAgICBjb25zdCBlID0gKG5vdyAtIHQwKSAlIFQubG9vcDsKCiAgICBpZihlIDwgVC5zY2VuZTJfYXQpewogICAgICBzY2VuZTEuY2xhc3NMaXN0LmFkZCgnYWN0aXZlJyk7CiAgICAgIHNjZW5lMi5jbGFzc0xpc3QucmVtb3ZlKCdhY3RpdmUnKTsKICAgIH0gZWxzZSB7CiAgICAgIHNjZW5lMS5jbGFzc0xpc3QucmVtb3ZlKCdhY3RpdmUnKTsKICAgICAgc2NlbmUyLmNsYXNzTGlzdC5hZGQoJ2FjdGl2ZScpOwogICAgfQoKICAgIC8qIOKUgOKUgOKUgCBTY2VuZSAxIOKUgOKUgOKUgCAqLwogICAgaWYoZSA8IFQuc2NlbmUyX2F0KXsKICAgICAgY29uc3QgY1AgPSBub3JtKGUsIFQuczFfY2FwX2luLCBULnMxX2NhcF9pbiArIDUwMCk7CiAgICAgIHMxQ2FwdGlvbi5zZXRBdHRyaWJ1dGUoJ29wYWNpdHknLCBTdHJpbmcoZW8oY1ApKSk7CgogICAgICBkb2NTdGFjay5zZXRBdHRyaWJ1dGUoJ29wYWNpdHknLCAnMScpOwoKICAgICAgLy8gRW50cnk6IHRvcCBmaWxlIGZhZGUtaW47IGJhY2sgZmlsZXMgc2xpZGUgaW4gZnJvbSBzaWRlcwogICAgICBjb25zdCB0b3BJblAgPSBub3JtKGUsIFQuczFfdG9wX2luX3MsIFQuczFfdG9wX2luX2UpOwogICAgICBkb2NUb3Auc2V0QXR0cmlidXRlKCdvcGFjaXR5JywgU3RyaW5nKGVvKHRvcEluUCkpKTsKCiAgICAgIGNvbnN0IGxlZnRJblAgPSBub3JtKGUsIFQuczFfbGVmdF9pbl9zLCBULnMxX2xlZnRfaW5fZSk7CiAgICAgIGNvbnN0IGxlZnRFbnRyeVggPSBsZXJwKC01MCwgMCwgZWlvKGxlZnRJblApKTsKCiAgICAgIGNvbnN0IHJpZ2h0SW5QID0gbm9ybShlLCBULnMxX3JpZ2h0X2luX3MsIFQuczFfcmlnaHRfaW5fZSk7CiAgICAgIGNvbnN0IHJpZ2h0RW50cnlYID0gbGVycCg1MCwgMCwgZWlvKHJpZ2h0SW5QKSk7CgogICAgICBkb2NMZWZ0LnNldEF0dHJpYnV0ZSgnb3BhY2l0eScsIFN0cmluZyhlbyhsZWZ0SW5QKSkpOwogICAgICBkb2NSaWdodC5zZXRBdHRyaWJ1dGUoJ29wYWNpdHknLCBTdHJpbmcoZW8ocmlnaHRJblApKSk7CgogICAgICAvKiDilIDilIDilIAgQ29udGludW91cyBjb3JuZXItZm9sZCBhbmltYXRpb24gb24gdG9wIGZpbGUg4pSA4pSA4pSACiAgICAgICAgIFNsb3cgfjMuNXMgY3ljbGUuIFRoZSBjb3JuZXIgdHJpYW5nbGUncyBzaXplIG9zY2lsbGF0ZXMKICAgICAgICAgYmV0d2VlbiAxNnB4IChyZXN0aW5nLCBmdWxseSBmb2xkZWQpIGFuZCAxMnB4IChsaWZ0ZWQsCiAgICAgICAgIHBhcnRpYWxseSB1bmZvbGRlZCkuIFRoZSBwYXRoL2xpbmVzIHVwZGF0ZSBlYWNoIGZyYW1lLiAqLwogICAgICBjb25zdCBjb3JuZXJDeWNsZSA9IChlIC8gMzUwMCkgKiBNYXRoLlBJICogMjsKICAgICAgY29uc3QgY29ybmVyTGlmdCA9IChNYXRoLnNpbihjb3JuZXJDeWNsZSkgKiAwLjUgKyAwLjUpOwogICAgICBjb25zdCBmb2xkU2l6ZSA9IGxlcnAoMTYsIDEyLCBjb3JuZXJMaWZ0KTsKICAgICAgY29uc3QgZnhTdGFydCA9IDIwMCAtIGZvbGRTaXplOwogICAgICBjb25zdCBmeUVuZCAgID0gMjEzICsgZm9sZFNpemU7CiAgICAgIHRvcENvcm5lclBhdGguc2V0QXR0cmlidXRlKCdkJywKICAgICAgICBgTSR7ZnhTdGFydH0sMjEzIEwyMDAsJHtmeUVuZH0gTCR7ZnhTdGFydH0sJHtmeUVuZH0gWmApOwogICAgICB0b3BDb3JuZXJMaW5lMS5zZXRBdHRyaWJ1dGUoJ3gxJywgU3RyaW5nKGZ4U3RhcnQpKTsKICAgICAgdG9wQ29ybmVyTGluZTEuc2V0QXR0cmlidXRlKCd4MicsIFN0cmluZyhmeFN0YXJ0KSk7CiAgICAgIHRvcENvcm5lckxpbmUxLnNldEF0dHJpYnV0ZSgneTInLCBTdHJpbmcoZnlFbmQpKTsKICAgICAgdG9wQ29ybmVyTGluZTIuc2V0QXR0cmlidXRlKCd4MScsIFN0cmluZyhmeFN0YXJ0KSk7CiAgICAgIHRvcENvcm5lckxpbmUyLnNldEF0dHJpYnV0ZSgneTEnLCBTdHJpbmcoZnlFbmQpKTsKICAgICAgdG9wQ29ybmVyTGluZTIuc2V0QXR0cmlidXRlKCd5MicsIFN0cmluZyhmeUVuZCkpOwoKICAgICAgLyog4pSA4pSA4pSAIFNlcXVlbnRpYWwgc2Nhbm5lciDilIDilIDilIAgKi8KICAgICAgbGV0IHNjYW5uZXJWaXNpYmxlID0gZmFsc2U7CiAgICAgIGxldCBoaWdobGlnaHRUb3AgPSBmYWxzZSwgaGlnaGxpZ2h0TGVmdCA9IGZhbHNlLCBoaWdobGlnaHRSaWdodCA9IGZhbHNlOwogICAgICBsZXQgbGVmdE91dE9mZnNldCA9IDAsIHJpZ2h0T3V0T2Zmc2V0ID0gMDsKCiAgICAgIC8vIFNjYW4gMTogdG9wIGZpbGUgKGluIHBsYWNlKQogICAgICBpZihlID49IFQuczFfc2NhbjFfcyAmJiBlIDwgVC5zMV9zY2FuMV9lKXsKICAgICAgICBzY2FubmVyVmlzaWJsZSA9IHRydWU7CiAgICAgICAgaGlnaGxpZ2h0VG9wID0gdHJ1ZTsKICAgICAgICBjb25maWd1cmVTY2FubmVyRm9yRmlsZSgxKTsKICAgICAgICBjb25zdCBzUCA9IG5vcm0oZSwgVC5zMV9zY2FuMV9zLCBULnMxX3NjYW4xX2UpOwogICAgICAgIHNldFNjYW5uZXJZKGxlcnAoMjEzLCAyODUsIGVpbyhzUCkpKTsKICAgICAgfQoKICAgICAgLy8gTGVmdCBzbGlkZSBvdXQgKyBzY2FuICsgc2xpZGUgYmFjawogICAgICBpZihlID49IFQuczFfbGVmdF9vdXRfcyAmJiBlIDwgVC5zMV9sZWZ0X291dF9lKXsKICAgICAgICBjb25zdCBvUCA9IG5vcm0oZSwgVC5zMV9sZWZ0X291dF9zLCBULnMxX2xlZnRfb3V0X2UpOwogICAgICAgIGxlZnRPdXRPZmZzZXQgPSBsZXJwKDAsIC00MiwgZWlvKG9QKSk7CiAgICAgIH0gZWxzZSBpZihlID49IFQuczFfbGVmdF9vdXRfZSAmJiBlIDwgVC5zMV9sZWZ0X2JhY2tfcyl7CiAgICAgICAgbGVmdE91dE9mZnNldCA9IC00MjsKICAgICAgfSBlbHNlIGlmKGUgPj0gVC5zMV9sZWZ0X2JhY2tfcyAmJiBlIDwgVC5zMV9sZWZ0X2JhY2tfZSl7CiAgICAgICAgY29uc3QgYlAgPSBub3JtKGUsIFQuczFfbGVmdF9iYWNrX3MsIFQuczFfbGVmdF9iYWNrX2UpOwogICAgICAgIGxlZnRPdXRPZmZzZXQgPSBsZXJwKC00MiwgMCwgZWlvKGJQKSk7CiAgICAgIH0KICAgICAgaWYoZSA+PSBULnMxX3NjYW4yX3MgJiYgZSA8IFQuczFfc2NhbjJfZSl7CiAgICAgICAgc2Nhbm5lclZpc2libGUgPSB0cnVlOwogICAgICAgIGhpZ2hsaWdodExlZnQgPSB0cnVlOwogICAgICAgIGNvbmZpZ3VyZVNjYW5uZXJGb3JGaWxlKDIpOwogICAgICAgIGNvbnN0IHNQID0gbm9ybShlLCBULnMxX3NjYW4yX3MsIFQuczFfc2NhbjJfZSk7CiAgICAgICAgc2V0U2Nhbm5lclkobGVycCgyMTksIDI5MSwgZWlvKHNQKSkpOwogICAgICB9CgogICAgICAvLyBSaWdodCBzbGlkZSBvdXQgKyBzY2FuICsgc2xpZGUgYmFjawogICAgICBpZihlID49IFQuczFfcmlnaHRfb3V0X3MgJiYgZSA8IFQuczFfcmlnaHRfb3V0X2UpewogICAgICAgIGNvbnN0IG9QID0gbm9ybShlLCBULnMxX3JpZ2h0X291dF9zLCBULnMxX3JpZ2h0X291dF9lKTsKICAgICAgICByaWdodE91dE9mZnNldCA9IGxlcnAoMCwgNDIsIGVpbyhvUCkpOwogICAgICB9IGVsc2UgaWYoZSA+PSBULnMxX3JpZ2h0X291dF9lICYmIGUgPCBULnMxX3JpZ2h0X2JhY2tfcyl7CiAgICAgICAgcmlnaHRPdXRPZmZzZXQgPSA0MjsKICAgICAgfSBlbHNlIGlmKGUgPj0gVC5zMV9yaWdodF9iYWNrX3MgJiYgZSA8IFQuczFfcmlnaHRfYmFja19lKXsKICAgICAgICBjb25zdCBiUCA9IG5vcm0oZSwgVC5zMV9yaWdodF9iYWNrX3MsIFQuczFfcmlnaHRfYmFja19lKTsKICAgICAgICByaWdodE91dE9mZnNldCA9IGxlcnAoNDIsIDAsIGVpbyhiUCkpOwogICAgICB9CiAgICAgIGlmKGUgPj0gVC5zMV9zY2FuM19zICYmIGUgPCBULnMxX3NjYW4zX2UpewogICAgICAgIHNjYW5uZXJWaXNpYmxlID0gdHJ1ZTsKICAgICAgICBoaWdobGlnaHRSaWdodCA9IHRydWU7CiAgICAgICAgY29uZmlndXJlU2Nhbm5lckZvckZpbGUoMyk7CiAgICAgICAgY29uc3Qgc1AgPSBub3JtKGUsIFQuczFfc2NhbjNfcywgVC5zMV9zY2FuM19lKTsKICAgICAgICBzZXRTY2FubmVyWShsZXJwKDIxOSwgMjkxLCBlaW8oc1ApKSk7CiAgICAgIH0KCiAgICAgIC8vIENvbWJpbmUgZW50cnkgb2Zmc2V0ICsgc2NhbiBvZmZzZXQgZm9yIGJhY2sgZmlsZXMKICAgICAgZG9jTGVmdC5zZXRBdHRyaWJ1dGUoJ3RyYW5zZm9ybScsCiAgICAgICAgYHRyYW5zbGF0ZSgke2xlZnRFbnRyeVggKyBsZWZ0T3V0T2Zmc2V0fSwwKWApOwogICAgICBkb2NSaWdodC5zZXRBdHRyaWJ1dGUoJ3RyYW5zZm9ybScsCiAgICAgICAgYHRyYW5zbGF0ZSgke3JpZ2h0RW50cnlYICsgcmlnaHRPdXRPZmZzZXR9LDApYCk7CgogICAgICAvLyBQZXItZmlsZSBoaWdobGlnaHRzCiAgICAgIGhpZ2hsaWdodEZpbGUoZG9jVG9wUmVjdCwgaGlnaGxpZ2h0VG9wLCAnZmlsbGVkJyk7CiAgICAgIGhpZ2hsaWdodEZpbGUoZG9jTGVmdFJlY3QsIGhpZ2hsaWdodExlZnQsICdvdXRsaW5lZCcpOwogICAgICBoaWdobGlnaHRGaWxlKGRvY1JpZ2h0UmVjdCwgaGlnaGxpZ2h0UmlnaHQsICdvdXRsaW5lZCcpOwoKICAgICAgLy8gVG9wIGZpbGUgbGlmdHMgc2xpZ2h0bHkgd2hlbiBiZWluZyBzY2FubmVkCiAgICAgIGlmKGhpZ2hsaWdodFRvcCl7CiAgICAgICAgZG9jVG9wLnNldEF0dHJpYnV0ZSgndHJhbnNmb3JtJywgJ3RyYW5zbGF0ZSgwLC0xLjUpJyk7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgZG9jVG9wLnNldEF0dHJpYnV0ZSgndHJhbnNmb3JtJywgJ3RyYW5zbGF0ZSgwLDApJyk7CiAgICAgIH0KCiAgICAgIHNjYW5uZXIuc2V0QXR0cmlidXRlKCdvcGFjaXR5Jywgc2Nhbm5lclZpc2libGUgPyAnMScgOiAnMCcpOwoKICAgICAgLyog4pSA4pSA4pSAIFN0YXR1cyBpbmRpY2F0b3Ig4pSA4pSA4pSAICovCiAgICAgIGxldCBzdGF0dXNPcGEgPSAwOwogICAgICBpZihlID49IFQuczFfc3RhdHVzX3MgJiYgZSA8IFQuczFfc3RhdHVzX2UpewogICAgICAgIHN0YXR1c09wYSA9IDE7CiAgICAgICAgY29uc3QgcHVsc2VQaGFzZSA9ICgoZSAtIFQuczFfc3RhdHVzX3MpIC8gODAwKSAqIE1hdGguUEkgKiAyOwogICAgICAgIGNvbnN0IGRvdE9wID0gMC40ICsgMC41ICogKDAuNSArIDAuNSAqIE1hdGguc2luKHB1bHNlUGhhc2UpKTsKICAgICAgICBzdGF0dXNEb3Quc2V0QXR0cmlidXRlKCdvcGFjaXR5JywgU3RyaW5nKGRvdE9wKSk7CiAgICAgIH0gZWxzZSBpZihlID49IFQuczFfc3RhdHVzX3MgLSAzMDAgJiYgZSA8IFQuczFfc3RhdHVzX3MpewogICAgICAgIHN0YXR1c09wYSA9IG5vcm0oZSwgVC5zMV9zdGF0dXNfcyAtIDMwMCwgVC5zMV9zdGF0dXNfcyk7CiAgICAgIH0gZWxzZSBpZihlID49IFQuczFfc3RhdHVzX2UgJiYgZSA8IFQuczFfc3RhdHVzX2UgKyAzMDApewogICAgICAgIHN0YXR1c09wYSA9IDEgLSBub3JtKGUsIFQuczFfc3RhdHVzX2UsIFQuczFfc3RhdHVzX2UgKyAzMDApOwogICAgICB9CiAgICAgIHN0YXR1c0luZGljYXRvci5zZXRBdHRyaWJ1dGUoJ29wYWNpdHknLCBTdHJpbmcoc3RhdHVzT3BhKSk7CgogICAgICAvKiDilIDilIDilIAgQ291bnRlciAmIGNoZWNrIOKUgOKUgOKUgCAqLwogICAgICBjb25zdCBjb3VudGVyRmFkZVAgPSBub3JtKGUsIFQuczFfY291bnRfcyAtIDIwMCwgVC5zMV9jb3VudF9zICsgMTAwKTsKICAgICAgY291bnRlclZhbHVlLnNldEF0dHJpYnV0ZSgnb3BhY2l0eScsIFN0cmluZyhlbyhjb3VudGVyRmFkZVApKSk7CiAgICAgIGNvdW50ZXJMYWJlbC5zZXRBdHRyaWJ1dGUoJ29wYWNpdHknLCBTdHJpbmcoZW8oY291bnRlckZhZGVQKSkpOwoKICAgICAgaWYoZSA8IFQuczFfY291bnRfcyl7CiAgICAgICAgY291bnRlclZhbHVlLnRleHRDb250ZW50ID0gJzAnOwogICAgICB9IGVsc2UgewogICAgICAgIGNvbnN0IGNvdW50UCA9IG5vcm0oZSwgVC5zMV9jb3VudF9zLCBULnMxX2NvdW50X2UpOwogICAgICAgIGNvdW50ZXJWYWx1ZS50ZXh0Q29udGVudCA9IFN0cmluZyhNYXRoLnJvdW5kKGxlcnAoMCwgNDcsIGVpbyhjb3VudFApKSkpOwogICAgICB9CgogICAgICBjb25zdCBjaGVja1AgPSBub3JtKGUsIFQuczFfY2hlY2tfcywgVC5zMV9jaGVja19lKTsKICAgICAgY29uc3Qgc2MgPSAuMyArIC43ICogZW8oY2hlY2tQKTsKICAgICAgZG9jQ2hlY2suc2V0QXR0cmlidXRlKCdvcGFjaXR5JywgU3RyaW5nKGVvKGNoZWNrUCkpKTsKICAgICAgZG9jQ2hlY2suc2V0QXR0cmlidXRlKCd0cmFuc2Zvcm0nLCBgdHJhbnNsYXRlKDE5MCwyNzMpIHNjYWxlKCR7c2N9KWApOwoKICAgICAgaWYoZSA+PSBULnMxX2NvdW50X2UpewogICAgICAgIGNvdW50ZXJWYWx1ZS5zZXRBdHRyaWJ1dGUoJ2ZpbGwnLCAnI0M4MTAyRScpOwogICAgICAgIGRvY0NoZWNrLnF1ZXJ5U2VsZWN0b3IoJ2NpcmNsZScpLnNldEF0dHJpYnV0ZSgnZmlsbCcsICcjQzgxMDJFJyk7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgY291bnRlclZhbHVlLnNldEF0dHJpYnV0ZSgnZmlsbCcsICcjQzgxMDJFJyk7CiAgICAgICAgZG9jQ2hlY2sucXVlcnlTZWxlY3RvcignY2lyY2xlJykuc2V0QXR0cmlidXRlKCdmaWxsJywgJyNDODEwMkUnKTsKICAgICAgfQogICAgfSBlbHNlIHsKICAgICAgLy8gT3V0c2lkZSBzY2VuZSAxOiBoaWRlIGFuZCByZXNldAogICAgICBzMUNhcHRpb24uc2V0QXR0cmlidXRlKCdvcGFjaXR5JywgJzAnKTsKICAgICAgc3RhdHVzSW5kaWNhdG9yLnNldEF0dHJpYnV0ZSgnb3BhY2l0eScsICcwJyk7CiAgICAgIGRvY1N0YWNrLnNldEF0dHJpYnV0ZSgnb3BhY2l0eScsICcwJyk7CiAgICAgIGRvY0NoZWNrLnNldEF0dHJpYnV0ZSgnb3BhY2l0eScsICcwJyk7CiAgICAgIHNjYW5uZXIuc2V0QXR0cmlidXRlKCdvcGFjaXR5JywgJzAnKTsKICAgICAgY291bnRlclZhbHVlLnNldEF0dHJpYnV0ZSgnb3BhY2l0eScsICcwJyk7CiAgICAgIGNvdW50ZXJMYWJlbC5zZXRBdHRyaWJ1dGUoJ29wYWNpdHknLCAnMCcpOwogICAgICBjb3VudGVyVmFsdWUudGV4dENvbnRlbnQgPSAnMCc7CiAgICAgIGNvdW50ZXJWYWx1ZS5zZXRBdHRyaWJ1dGUoJ2ZpbGwnLCAnI0M4MTAyRScpOwogICAgICBkb2NDaGVjay5xdWVyeVNlbGVjdG9yKCdjaXJjbGUnKS5zZXRBdHRyaWJ1dGUoJ2ZpbGwnLCAnI0M4MTAyRScpOwogICAgICBkb2NMZWZ0LnNldEF0dHJpYnV0ZSgndHJhbnNmb3JtJywgJ3RyYW5zbGF0ZSgtNTAsMCknKTsKICAgICAgZG9jUmlnaHQuc2V0QXR0cmlidXRlKCd0cmFuc2Zvcm0nLCAndHJhbnNsYXRlKDUwLDApJyk7CiAgICAgIGRvY1RvcC5zZXRBdHRyaWJ1dGUoJ3RyYW5zZm9ybScsICd0cmFuc2xhdGUoMCwwKScpOwogICAgICBkb2NMZWZ0LnNldEF0dHJpYnV0ZSgnb3BhY2l0eScsICcwJyk7CiAgICAgIGRvY1JpZ2h0LnNldEF0dHJpYnV0ZSgnb3BhY2l0eScsICcwJyk7CiAgICAgIGRvY1RvcC5zZXRBdHRyaWJ1dGUoJ29wYWNpdHknLCAnMCcpOwogICAgfQoKICAgIC8qIOKUgOKUgOKUgCBTY2VuZSAyOiBtaW5pbWFsIGNoaXBzIOKUgOKUgOKUgCAqLwogICAgaWYoZSA+PSBULnNjZW5lMl9hdCl7CiAgICAgIGNvbnN0IGNQID0gbm9ybShlLCBULnMyX2NhcF9pbiwgVC5zMl9jYXBfaW4gKyA0MDApOwogICAgICBzMkNhcHRpb24uc2V0QXR0cmlidXRlKCdvcGFjaXR5JywgU3RyaW5nKGVvKGNQKSkpOwoKICAgICAgY29uc3Qgc3RQID0gbm9ybShlLCBULnMyX3N0YXR1c19pbiwgVC5zMl9zdGF0dXNfaW4gKyA0MDApOwogICAgICBzMlN0YXR1cy5zZXRBdHRyaWJ1dGUoJ29wYWNpdHknLCBTdHJpbmcoZW8oc3RQKSkpOwoKICAgICAgLy8gRGVhZGxpbmUgY2hpcAogICAgICBjb25zdCBkUCA9IG5vcm0oZSwgVC5zMl9kZWFkbGluZV9zLCBULnMyX2RlYWRsaW5lX2UpOwogICAgICBkZWFkbGluZUNoaXAuc2V0QXR0cmlidXRlKCdvcGFjaXR5JywgU3RyaW5nKGVvKGRQKSkpOwoKICAgICAgLy8gQ2F0Y2ggY2hpcCBzbGlkZXMgaW4gZnJvbSBsZWZ0CiAgICAgIGlmKGUgPj0gVC5zMl9jYXRjaF9zKXsKICAgICAgICBjb25zdCBjdFAgPSBub3JtKGUsIFQuczJfY2F0Y2hfcywgVC5zMl9jYXRjaF9lKTsKICAgICAgICBjb25zdCBjdEUgPSBlaW8oY3RQKTsKICAgICAgICBjb25zdCB0eCA9IGxlcnAoLTIwLCAwLCBjdEUpOwogICAgICAgIGNhdGNoQ2hpcC5zZXRBdHRyaWJ1dGUoJ3RyYW5zZm9ybScsIGB0cmFuc2xhdGUoJHt0eH0sMClgKTsKICAgICAgICBjYXRjaENoaXAuc2V0QXR0cmlidXRlKCdvcGFjaXR5JywgU3RyaW5nKGVvKGN0UCkpKTsKICAgICAgfSBlbHNlIHsKICAgICAgICBjYXRjaENoaXAuc2V0QXR0cmlidXRlKCdvcGFjaXR5JywgJzAnKTsKICAgICAgICBjYXRjaENoaXAuc2V0QXR0cmlidXRlKCd0cmFuc2Zvcm0nLCAndHJhbnNsYXRlKC0yMCwwKScpOwogICAgICB9CgogICAgICAvLyBBcnJvdyBkcmF3cyByaWdodOKGkmxlZnQgZnJvbSB4PTE4NiB0byB4PTE1NAogICAgICBpZihlID49IFQuczJfYXJyb3dfcyl7CiAgICAgICAgYXJyb3cuc2V0QXR0cmlidXRlKCdvcGFjaXR5JywgJzEnKTsKICAgICAgICBjb25zdCBhUCA9IG5vcm0oZSwgVC5zMl9hcnJvd19zLCBULnMyX2Fycm93X2UpOwogICAgICAgIGNvbnN0IGFFID0gZWlvKGFQKTsKICAgICAgICBjb25zdCB4MiA9IGxlcnAoMTg2LCAxNTQsIGFFKTsKICAgICAgICBhcnJvd1NoYWZ0LnNldEF0dHJpYnV0ZSgneDInLCBTdHJpbmcoeDIpKTsKICAgICAgICBpZihhUCA+IDAuNyl7CiAgICAgICAgICBhcnJvd0hlYWQuc2V0QXR0cmlidXRlKCdwb2ludHMnLAogICAgICAgICAgICBgJHt4MiArIDR9LDI1MCAke3gyfSwyNTQgJHt4MiArIDR9LDI1OGApOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICBhcnJvd0hlYWQuc2V0QXR0cmlidXRlKCdwb2ludHMnLCBgJHt4Mn0sMjU0ICR7eDJ9LDI1NCAke3gyfSwyNTRgKTsKICAgICAgICB9CiAgICAgIH0gZWxzZSB7CiAgICAgICAgYXJyb3cuc2V0QXR0cmlidXRlKCdvcGFjaXR5JywgJzAnKTsKICAgICAgfQoKICAgICAgLy8gU3RhdHVzIHN3YXAKICAgICAgaWYoZSA+PSBULnMyX3N0YXR1c19zd2FwKXsKICAgICAgICBzMlN0YXR1cy50ZXh0Q29udGVudCA9ICdDYXVnaHQgNyBkYXlzIGVhcmx5JzsKICAgICAgICBzMlN0YXR1cy5zZXRBdHRyaWJ1dGUoJ2ZpbGwnLCAnI0M4MTAyRScpOwogICAgICB9IGVsc2UgewogICAgICAgIHMyU3RhdHVzLnRleHRDb250ZW50ID0gJ0ZpbGluZyBkZWFkbGluZSDCtyBPY3QgMjcnOwogICAgICAgIHMyU3RhdHVzLnNldEF0dHJpYnV0ZSgnZmlsbCcsICcjMUExQTFBJyk7CiAgICAgIH0KCiAgICAgIC8vIExhYmVsCiAgICAgIGlmKGUgPj0gVC5zMl9sYWJlbF9zKXsKICAgICAgICBjb25zdCBsUCA9IG5vcm0oZSwgVC5zMl9sYWJlbF9zLCBULnMyX2xhYmVsX3MgKyA1MDApOwogICAgICAgIGJyYWNrZXRMYWJlbC5zZXRBdHRyaWJ1dGUoJ29wYWNpdHknLCBTdHJpbmcoZW8obFApKSk7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgYnJhY2tldExhYmVsLnNldEF0dHJpYnV0ZSgnb3BhY2l0eScsICcwJyk7CiAgICAgIH0KICAgIH0gZWxzZSB7CiAgICAgIHMyQ2FwdGlvbi5zZXRBdHRyaWJ1dGUoJ29wYWNpdHknLCAnMCcpOwogICAgICBzMlN0YXR1cy5zZXRBdHRyaWJ1dGUoJ29wYWNpdHknLCAnMCcpOwogICAgICBkZWFkbGluZUNoaXAuc2V0QXR0cmlidXRlKCdvcGFjaXR5JywgJzAnKTsKICAgICAgY2F0Y2hDaGlwLnNldEF0dHJpYnV0ZSgnb3BhY2l0eScsICcwJyk7CiAgICAgIGFycm93LnNldEF0dHJpYnV0ZSgnb3BhY2l0eScsICcwJyk7CiAgICAgIGJyYWNrZXRMYWJlbC5zZXRBdHRyaWJ1dGUoJ29wYWNpdHknLCAnMCcpOwogICAgfQoKICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZShmcmFtZSk7CiAgfQogIHJlcXVlc3RBbmltYXRpb25GcmFtZShmcmFtZSk7Cn0pKCk7Cjwvc2NyaXB0Pgo8L2JvZHk+PC9odG1sPgo=", "PCFET0NUWVBFIGh0bWw+CjxodG1sPjxoZWFkPjxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KPHN0eWxlPgovKiDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZAKICAgdjUwIOKAlCBIZWF0IFJldml2YWwgVGltZWxpbmUKICAgCiAgIFR3byBsYXllcnMgdmlzaWJsZSBzaW11bHRhbmVvdXNseToKICAgICDigKIgTEVBRCBDQVJEICh0b3ApIOKAlCB0aGUgcHJvc3BlY3QncyBzdGF0ZSwgc2hpZnRzIGNvbGTihpJ3YXJtCiAgICAgICB0aHJvdWdoIGZpbGwgY29sb3IsIGJvcmRlciBhY2NlbnQsIHN0YXR1cyBpY29uLCBzdGF0dXMgdGV4dCwKICAgICAgIGFuZCBhIGhvcml6b250YWwgdGVtcGVyYXR1cmUgYmFyIGluc2lkZSB0aGUgY2FyZAogICAgIOKAoiBBREpVVEFOVCBTVFJJUCAoYmVsb3cpIOKAlCBzeXN0ZW0gYWN0aXZpdHkgZmVlZCBzaG93aW5nCiAgICAgICBzZXF1ZW50aWFsIG1pY3JvLWFjdGlvbnMgKCJDaGVja2luZyBjb250ZXh04oCmIiAvICJTZW5kaW5nCiAgICAgICB2YWx1ZSBtZXNzYWdl4oCmIiAvICJSZS1lbmdhZ2luZyBsZWFk4oCmIikgd2l0aCBhIDMtc3RlcCBwcm9ncmVzcwogICAgICAgZG90IHJvdwogICAKICAgVGVtcGVyYXR1cmUgcHJvZ3Jlc3Npb24gYXMgQWRqdXRhbnQgd29ya3M6CiAgICAgMCUgIGNvbGQgICAgIHRlYWwgI0M4MTAyRQogICAgIDM1JSB3YXJtaW5nICBibGVuZCB0b3dhcmQgY29wcGVyCiAgICAgNjAlIGFjdGl2ZSAgIGNvcHBlciAjQzgxMDJFCiAgICAgMTAwJSBib29rZWQgIGdyZWVuICNDODEwMkUKICAgCiAgIERheSBtZXRhZGF0YSB0aWNrcyBEYXkgMTEg4oaSIDEyIOKGkiAxMyDihpIgMTQgYWxvbmdzaWRlIHRoZSBhY3Rpb25zLgogICDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZAgKi8KKntib3gtc2l6aW5nOmJvcmRlci1ib3g7bWFyZ2luOjA7cGFkZGluZzowfQpib2R5e2JhY2tncm91bmQ6dHJhbnNwYXJlbnR9Ci5zdG9yeXsKICBkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2FsaWduLWl0ZW1zOmNlbnRlcjsKICBwYWRkaW5nOjJyZW0gMXJlbSAyLjVyZW07CiAgZm9udC1mYW1pbHk6LWFwcGxlLXN5c3RlbSxzeXN0ZW0tdWksc2Fucy1zZXJpZjsKfQouc2NlbmUtd3JhcHtwb3NpdGlvbjpyZWxhdGl2ZTt3aWR0aDozNDBweDtoZWlnaHQ6NDMwcHh9Ci5zdGVwLWlubmVyewogIHBvc2l0aW9uOmFic29sdXRlO2luc2V0OjA7CiAgYW5pbWF0aW9uOmJyZWF0aGUgNnMgZWFzZS1pbi1vdXQgaW5maW5pdGU7Cn0KQGtleWZyYW1lcyBicmVhdGhlewogIDAlLDEwMCV7dHJhbnNmb3JtOnNjYWxlKDEpfQogIDUwJSAgICB7dHJhbnNmb3JtOnNjYWxlKDEuMDEyKX0KfQo8L3N0eWxlPgo8c3R5bGU+Cmh0bWwsYm9keXttYXJnaW46MDtwYWRkaW5nOjA7YmFja2dyb3VuZDojRjdGM0VEIWltcG9ydGFudDt3aWR0aDoxMDAlO2hlaWdodDoxMDAlO292ZXJmbG93OmhpZGRlbjt9CmJvZHl7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO30KPC9zdHlsZT48L2hlYWQ+PGJvZHk+Cgo8ZGl2IGNsYXNzPSJzdG9yeSI+CjxkaXYgY2xhc3M9InNjZW5lLXdyYXAiPgogIDxkaXYgY2xhc3M9InN0ZXAtaW5uZXIiPgogICAgPHN2ZyB3aWR0aD0iMzQwIiBoZWlnaHQ9IjQzMCIgdmlld0JveD0iMCAwIDM0MCA0MzAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogICAgICA8IS0tIOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkAogICAgICAgICAgIExFQUQgQ0FSRCDigJQgcHJpbWFyeSBwZXJzaXN0ZW50IGVsZW1lbnQuCiAgICAgICAgICAgCiAgICAgICAgICAgTGF5b3V0OgogICAgICAgICAgICAg4oCiIHNoYWRvdyArIGJvZHkgKHJvdW5kZWQgI0YwRTBEOSB3aXRoIGJvcmRlciB0aGF0IHNoaWZ0cwogICAgICAgICAgICAgICB0ZWFs4oaSY29wcGVy4oaSZ3JlZW4gcGVyIHN0YXRlKQogICAgICAgICAgICAg4oCiIFRvcCByb3c6IHN0YXR1cyBpY29uIChsZWZ0KSArIHN0YXR1cyB0ZXh0IChsZWZ0IG9mIGNlbnRlcikKICAgICAgICAgICAgICAgICAgICAgICAgKyBkYXkgbGFiZWwgKHJpZ2h0KQogICAgICAgICAgICAg4oCiIFRlbXBlcmF0dXJlIGJhciAoY2VudGVyZWQgaG9yaXpvbnRhbGx5LCBtaWQtY2FyZCkKICAgICAgICAgICAgIOKAoiBCb3R0b206IHNtYWxsIHN1YnN0YXR1cyAvIGNvbnRleHQgbGluZQogICAgICAgICAgIAogICAgICAgICAgIENhcmQgeT0xMjAgdG8gMjgwICgxNjAgdGFsbCksIHg9MzAgdG8gMzEwICgyODAgd2lkZSkuCiAgICAgICAgICAg4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQIC0tPgogICAgICA8ZyBpZD0ibGVhZENhcmQiIG9wYWNpdHk9IjAiPgogICAgICAgIDwhLS0gc2hhZG93IC0tPgogICAgICAgIDxyZWN0IHg9IjMwIiB5PSIxMjAiIHdpZHRoPSIyODAiIGhlaWdodD0iMTYwIiByeD0iMTQiCiAgICAgICAgICAgICAgZmlsbD0iIzAwMCIgb3BhY2l0eT0iLjI0IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwLDQpIi8+CiAgICAgICAgPCEtLSBnbG93IHJpbmcgKGFuaW1hdGVkIGR1cmluZyBzdGF0dXMgdHJhbnNpdGlvbnMpIC0tPgogICAgICAgIDxyZWN0IGlkPSJjYXJkR2xvdyIgeD0iMzAiIHk9IjEyMCIgd2lkdGg9IjI4MCIgaGVpZ2h0PSIxNjAiIHJ4PSIxNCIKICAgICAgICAgICAgICBmaWxsPSJub25lIiBzdHJva2U9IiNDODEwMkUiIHN0cm9rZS13aWR0aD0iMiIgb3BhY2l0eT0iMCIvPgogICAgICAgIDwhLS0gYm9keSDigJQgZmlsbCBhbmltYXRlZCAtLT4KICAgICAgICA8cmVjdCBpZD0iY2FyZEJvZHkiIHg9IjMwIiB5PSIxMjAiIHdpZHRoPSIyODAiIGhlaWdodD0iMTYwIiByeD0iMTQiCiAgICAgICAgICAgICAgZmlsbD0iI0YwRTBEOSIgc3Ryb2tlPSIjMkE0QTRBIiBzdHJva2Utd2lkdGg9IjEiLz4KCiAgICAgICAgPCEtLSDilIDilIDilIAgU3RhdHVzIGljb24gY29udGFpbmVyICh0b3AtbGVmdCkg4pSA4pSA4pSACiAgICAgICAgICAgICBTbWFsbCBkaXNjIGF0ICg2MCwgMTUyKSByPTE4IGhvbGRpbmcgdGhlIGN1cnJlbnQgc3RhdGUKICAgICAgICAgICAgIGljb24gKHNub3dmbGFrZSAvIHNwaW5uZXIgLyBjaGVjaykuIC0tPgogICAgICAgIDxjaXJjbGUgaWQ9InN0YXR1c0Rpc2MiIGN4PSI2MCIgY3k9IjE1MiIgcj0iMTgiCiAgICAgICAgICAgICAgICBmaWxsPSIjMEYzRDNFIiBzdHJva2U9IiMyQTRBNEEiIHN0cm9rZS13aWR0aD0iMSIvPgoKICAgICAgICA8IS0tIFNub3dmbGFrZSAodXBsb2FkZWQgYXNzZXQsIHNjYWxlZCBzbWFsbCBmb3IgdGhlIGRpc2MpIC0tPgogICAgICAgIDxnIGlkPSJzbm93R2x5cGgiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDYwLDE1MikiPgogICAgICAgICAgPGcgaWQ9InNub3dHbHlwaFNjYWxlIiB0cmFuc2Zvcm09InNjYWxlKDAuMDg1KSI+CiAgICAgICAgICAgIDxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0xNDguOSwtMTQ4LjkpIj4KICAgICAgICAgICAgICA8cG9seWdvbiBmaWxsPSIjMEYzRDNFIgogICAgICAgICAgICAgICAgcG9pbnRzPSIxNDguOSwyMTUuNCA5MS4yLDI2OC43IDk2LjksMTkwLjQgMTkuMiwxNzguNSA4NC4xLDEzNC4xIDQ0LjksNjYuMCAxMjAuMCw4OS4wIDE0OC45LDE1LjkgMTc3LjgsODkuMCAyNTIuOSw2Ni4wIDIxMy43LDEzNC4xIDI3OC42LDE3OC41IDIwMC45LDE5MC40IDIwNi42LDI2OC43Ii8+CiAgICAgICAgICAgICAgPHBvbHlnb24gZmlsbD0iI0MyQzJDMiIKICAgICAgICAgICAgICAgIHRyYW5zZm9ybT0icm90YXRlKC0zMzAgMTQ4LjkgMTQ4LjkpIgogICAgICAgICAgICAgICAgcG9pbnRzPSIxNDguOSwyMDMuNCAxMDEuNiwyNDcuMSAxMDYuMywxODIuOSA0Mi42LDE3My4yIDk1LjgsMTM2LjggNjMuNyw4MC45IDEyNS4zLDk5LjggMTQ4LjksMzkuOSAxNzIuNSw5OS44IDIzNC4xLDgwLjkgMjAyLjAsMTM2LjggMjU1LjIsMTczLjIgMTkxLjUsMTgyLjkgMTk2LjIsMjQ3LjEiLz4KICAgICAgICAgICAgICA8cG9seWdvbiBmaWxsPSIjRUZFNkREIgogICAgICAgICAgICAgICAgcG9pbnRzPSIxNDguOSwxODEuNCAxMjAuNywyMDcuNSAxMjMuNSwxNjkuMiA4NS41LDE2My40IDExNy4yLDE0MS43IDk4LjEsMTA4LjQgMTM0LjgsMTE5LjYgMTQ4LjksODMuOSAxNjMuMCwxMTkuNiAxOTkuNywxMDguNCAxODAuNiwxNDEuNyAyMTIuMywxNjMuNCAxNzQuMywxNjkuMiAxNzcuMSwyMDcuNSIvPgogICAgICAgICAgICA8L2c+CiAgICAgICAgICA8L2c+CiAgICAgICAgPC9nPgoKICAgICAgICA8IS0tIFNwaW5uZXIgKHZpc2libGUgZHVyaW5nIGFjdGl2ZSBudXJ0dXJpbmcpIC0tPgogICAgICAgIDxnIGlkPSJzcGlubmVyR2x5cGgiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDYwLDE1MikiIG9wYWNpdHk9IjAiPgogICAgICAgICAgPGcgaWQ9InNwaW5uZXJSb3RhdGUiPgogICAgICAgICAgICA8Y2lyY2xlIHI9IjgiIGZpbGw9Im5vbmUiIHN0cm9rZT0iI0MyQzJDMiIgc3Ryb2tlLXdpZHRoPSIxLjYiLz4KICAgICAgICAgICAgPHBhdGggZD0iTSA4LDAgQSA4LDggMCAwIDAgLTIsLTcuNyIKICAgICAgICAgICAgICAgICAgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjQzgxMDJFIiBzdHJva2Utd2lkdGg9IjEuOCIKICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIi8+CiAgICAgICAgICA8L2c+CiAgICAgICAgPC9nPgoKICAgICAgICA8IS0tIENhbGVuZGFyK2NoZWNrICh2aXNpYmxlIHdoZW4gYm9va2VkKSAtLT4KICAgICAgICA8ZyBpZD0iY2FsZW5kYXJHbHlwaCIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoNjAsMTUyKSBzY2FsZSgwKSI+CiAgICAgICAgICA8bGluZSB4MT0iLTQiIHkxPSItMTEiIHgyPSItNCIgeTI9Ii03IgogICAgICAgICAgICAgICAgc3Ryb2tlPSIjQzgxMDJFIiBzdHJva2Utd2lkdGg9IjEuNCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIi8+CiAgICAgICAgICA8bGluZSB4MT0iNCIgeTE9Ii0xMSIgeDI9IjQiIHkyPSItNyIKICAgICAgICAgICAgICAgIHN0cm9rZT0iI0M4MTAyRSIgc3Ryb2tlLXdpZHRoPSIxLjQiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIvPgogICAgICAgICAgPHJlY3QgeD0iLTkiIHk9Ii04IiB3aWR0aD0iMTgiIGhlaWdodD0iMTYiIHJ4PSIxLjUiCiAgICAgICAgICAgICAgICBmaWxsPSIjRjBFMEQ5IiBzdHJva2U9IiNDODEwMkUiIHN0cm9rZS13aWR0aD0iMS40Ii8+CiAgICAgICAgICA8bGluZSB4MT0iLTkiIHkxPSItMyIgeDI9IjkiIHkyPSItMyIKICAgICAgICAgICAgICAgIHN0cm9rZT0iI0M4MTAyRSIgc3Ryb2tlLXdpZHRoPSIxLjIiLz4KICAgICAgICAgIDxyZWN0IHg9IjEuNSIgeT0iLjUiIHdpZHRoPSI2IiBoZWlnaHQ9IjYiIHJ4PSIxIiBmaWxsPSIjQzgxMDJFIi8+CiAgICAgICAgICA8cG9seWxpbmUgaWQ9ImNhbENoZWNrIiBwb2ludHM9IjMsMy41IDQuNSw1IDYuNSwyIgogICAgICAgICAgICAgICAgICAgIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzBGM0QzRSIgc3Ryb2tlLXdpZHRoPSIxLjQiCiAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIgogICAgICAgICAgICAgICAgICAgIHBhdGhMZW5ndGg9IjEwMCIgc3Ryb2tlLWRhc2hhcnJheT0iMTAwIiBzdHJva2UtZGFzaG9mZnNldD0iMTAwIi8+CiAgICAgICAgPC9nPgoKICAgICAgICA8IS0tIOKUgOKUgOKUgCBTdGF0dXMgbGFiZWwgKHJpZ2h0IG9mIGljb24pIOKUgOKUgOKUgCAtLT4KICAgICAgICA8dGV4dCBpZD0ic3RhdHVzTGFiZWwiIHg9Ijg2IiB5PSIxNDgiCiAgICAgICAgICAgICAgZm9udC1mYW1pbHk9Ii1hcHBsZS1zeXN0ZW0sc3lzdGVtLXVpLHNhbnMtc2VyaWYiCiAgICAgICAgICAgICAgZm9udC1zaXplPSIxNCIgZm9udC13ZWlnaHQ9IjYwMCIKICAgICAgICAgICAgICBmaWxsPSIjMUExQTFBIj5Db2xkIGxlYWQ8L3RleHQ+CiAgICAgICAgPCEtLSBTdWJzdGF0dXMgbGluZSAoc21hbGwsIGJlbG93KSAtLT4KICAgICAgICA8dGV4dCBpZD0ic3Vic3RhdHVzIiB4PSI4NiIgeT0iMTY0IgogICAgICAgICAgICAgIGZvbnQtZmFtaWx5PSItYXBwbGUtc3lzdGVtLHN5c3RlbS11aSxzYW5zLXNlcmlmIgogICAgICAgICAgICAgIGZvbnQtc2l6ZT0iMTAiIGZvbnQtd2VpZ2h0PSI1MDAiCiAgICAgICAgICAgICAgZmlsbD0iI0MyQzJDMiI+Tm8gZW5nYWdlbWVudCDCtyAxMSBkYXlzPC90ZXh0PgoKICAgICAgICA8IS0tIOKUgOKUgOKUgCBEYXkgbGFiZWwgKHJpZ2h0IHNpZGUgb2YgdG9wIHJvdykg4pSA4pSA4pSAIC0tPgogICAgICAgIDx0ZXh0IGlkPSJkYXlMYWJlbCIgeD0iMjgwIiB5PSIxNDgiIHRleHQtYW5jaG9yPSJlbmQiCiAgICAgICAgICAgICAgZm9udC1mYW1pbHk9Ii1hcHBsZS1zeXN0ZW0sc3lzdGVtLXVpLHNhbnMtc2VyaWYiCiAgICAgICAgICAgICAgZm9udC1zaXplPSIxMSIgZm9udC13ZWlnaHQ9IjcwMCIgbGV0dGVyLXNwYWNpbmc9IjEuMiIKICAgICAgICAgICAgICBmaWxsPSIjQzJDMkMyIj5EQVkgMTE8L3RleHQ+CgogICAgICAgIDwhLS0g4pSA4pSA4pSAIFRlbXBlcmF0dXJlIGJhciDilIDilIDilIAKICAgICAgICAgICAgIFRyYWNrIGF0IHk9MjAwLCB4PTUwIOKGkiAyOTAgKDI0MCB3aWRlIMOXIDggdGFsbCkuCiAgICAgICAgICAgICBCYWNrZ3JvdW5kOiBkYXJrIHRlYWwgdHJhY2suIEZpbGw6IGFuaW1hdGVkIGNvbG9yZWQgYmFyLgogICAgICAgIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgCAtLT4KICAgICAgICA8IS0tIHRyYWNrIGJhY2tncm91bmQgLS0+CiAgICAgICAgPHJlY3QgeD0iNTAiIHk9IjIwMCIgd2lkdGg9IjI0MCIgaGVpZ2h0PSI4IiByeD0iNCIKICAgICAgICAgICAgICBmaWxsPSIjMEYzRDNFIiBzdHJva2U9IiMyQTRBNEEiIHN0cm9rZS13aWR0aD0iMSIvPgogICAgICAgIDwhLS0gdGVtcGVyYXR1cmUgZmlsbCAoY2xpcHBlZCB2aWEgd2lkdGggYW5pbWF0aW9uKSAtLT4KICAgICAgICA8cmVjdCBpZD0idGVtcEZpbGwiIHg9IjUwIiB5PSIyMDAiIHdpZHRoPSIwIiBoZWlnaHQ9IjgiIHJ4PSI0IgogICAgICAgICAgICAgIGZpbGw9IiNDODEwMkUiLz4KICAgICAgICA8IS0tIHRlbXBlcmF0dXJlIGxhYmVscyBsZWZ0L3JpZ2h0IG9mIGJhciAtLT4KICAgICAgICA8dGV4dCB4PSI1MCIgeT0iMjIyIgogICAgICAgICAgICAgIGZvbnQtZmFtaWx5PSItYXBwbGUtc3lzdGVtLHN5c3RlbS11aSxzYW5zLXNlcmlmIgogICAgICAgICAgICAgIGZvbnQtc2l6ZT0iOCIgZm9udC13ZWlnaHQ9IjYwMCIgbGV0dGVyLXNwYWNpbmc9IjEuNSIKICAgICAgICAgICAgICBmaWxsPSIjQzJDMkMyIj5DT0xEPC90ZXh0PgogICAgICAgIDx0ZXh0IHg9IjI5MCIgeT0iMjIyIiB0ZXh0LWFuY2hvcj0iZW5kIgogICAgICAgICAgICAgIGZvbnQtZmFtaWx5PSItYXBwbGUtc3lzdGVtLHN5c3RlbS11aSxzYW5zLXNlcmlmIgogICAgICAgICAgICAgIGZvbnQtc2l6ZT0iOCIgZm9udC13ZWlnaHQ9IjYwMCIgbGV0dGVyLXNwYWNpbmc9IjEuNSIKICAgICAgICAgICAgICBmaWxsPSIjQzJDMkMyIj5XQVJNPC90ZXh0PgoKICAgICAgICA8IS0tIOKUgOKUgOKUgCBCb3R0b20gcm93OiBjb250ZXh0dWFsIGRldGFpbCAodmFyaWVzIGJ5IHN0YXRlKSDilIDilIDilIAgLS0+CiAgICAgICAgPHRleHQgaWQ9ImNvbnRleHRMaW5lIiB4PSIxNzAiIHk9IjI1OCIgdGV4dC1hbmNob3I9Im1pZGRsZSIKICAgICAgICAgICAgICBmb250LWZhbWlseT0iLWFwcGxlLXN5c3RlbSxzeXN0ZW0tdWksc2Fucy1zZXJpZiIKICAgICAgICAgICAgICBmb250LXNpemU9IjEwIiBmb250LXdlaWdodD0iNTAwIgogICAgICAgICAgICAgIGZpbGw9IiNDMkMyQzIiIG9wYWNpdHk9Ii43NSI+TGFzdCBjb250YWN0OiBPY3QgMjc8L3RleHQ+CiAgICAgIDwvZz4KCiAgICAgIDwhLS0g4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQCiAgICAgICAgICAgQURKVVRBTlQgQUNUSVZJVFkgU1RSSVAg4oCUIHNlY29uZGFyeSBzeXN0ZW0gZmVlZC4KICAgICAgICAgICAKICAgICAgICAgICBCZWxvdyB0aGUgbGVhZCBjYXJkLiBTaG93cyB0aGUgY3VycmVudCBtaWNyby1hY3Rpb24gd2l0aAogICAgICAgICAgIGEgc21hbGwgc3lzdGVtIGxhYmVsLCBhbmltYXRlZCBzcGlubmVyLWRvdCwgYW5kIGEgMy1zdGVwCiAgICAgICAgICAgcHJvZ3Jlc3MgaW5kaWNhdG9yLgogICAgICAgICAgIAogICAgICAgICAgIFN0cmlwIHk9MzAwIHRvIDM2NiAoNjYgdGFsbCksIHNhbWUgd2lkdGggYXMgY2FyZC4KICAgICAgICAgICDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZAgLS0+CiAgICAgIDxnIGlkPSJhZGpTdHJpcCIgb3BhY2l0eT0iMCI+CiAgICAgICAgPHJlY3QgeD0iMzAiIHk9IjMwMCIgd2lkdGg9IjI4MCIgaGVpZ2h0PSI2NiIgcng9IjEyIgogICAgICAgICAgICAgIGZpbGw9IiMwMDAiIG9wYWNpdHk9Ii4yMiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMCwzKSIvPgogICAgICAgIDxyZWN0IHg9IjMwIiB5PSIzMDAiIHdpZHRoPSIyODAiIGhlaWdodD0iNjYiIHJ4PSIxMiIKICAgICAgICAgICAgICBmaWxsPSIjRjBFMEQ5IiBzdHJva2U9IiMyQTRBNEEiIHN0cm9rZS13aWR0aD0iMSIvPgoKICAgICAgICA8IS0tIOKUgOKUgOKUgCBBZGp1dGFudCBoZWFkZXIgbGFiZWwgKHRvcCBvZiBzdHJpcCkg4pSA4pSA4pSAIC0tPgogICAgICAgIDx0ZXh0IHg9IjQ2IiB5PSIzMTgiCiAgICAgICAgICAgICAgZm9udC1mYW1pbHk9Ii1hcHBsZS1zeXN0ZW0sc3lzdGVtLXVpLHNhbnMtc2VyaWYiCiAgICAgICAgICAgICAgZm9udC1zaXplPSI4IiBmb250LXdlaWdodD0iNzAwIiBsZXR0ZXItc3BhY2luZz0iMiIKICAgICAgICAgICAgICBmaWxsPSIjQzgxMDJFIj5BREpVVEFOVDwvdGV4dD4KCiAgICAgICAgPCEtLSBQdWxzaW5nIHN5c3RlbSBkb3QgaW5kaWNhdGluZyBhY3Rpdml0eSAtLT4KICAgICAgICA8Y2lyY2xlIGlkPSJhZGpBY3Rpdml0eURvdCIgY3g9IjEwMCIgY3k9IjMxNiIgcj0iMi41IiBmaWxsPSIjQzgxMDJFIiBvcGFjaXR5PSIwIi8+CgogICAgICAgIDwhLS0g4pSA4pSA4pSAIEN1cnJlbnQgYWN0aW9uIGxpbmUg4pSA4pSA4pSAIC0tPgogICAgICAgIDx0ZXh0IGlkPSJhY3Rpb25MaW5lIiB4PSI0NiIgeT0iMzQyIgogICAgICAgICAgICAgIGZvbnQtZmFtaWx5PSItYXBwbGUtc3lzdGVtLHN5c3RlbS11aSxzYW5zLXNlcmlmIgogICAgICAgICAgICAgIGZvbnQtc2l6ZT0iMTIiIGZvbnQtd2VpZ2h0PSI1MDAiCiAgICAgICAgICAgICAgZmlsbD0iIzFBMUExQSI+SWRsZTwvdGV4dD4KICAgICAgICA8IS0tIFNtYWxsIHR5cGluZy93b3JraW5nIGRvdCBhdCBlbmQgb2YgYWN0aW9uIGxpbmUgLS0+CiAgICAgICAgPGNpcmNsZSBpZD0iYWN0aW9uV29ya0RvdCIgY3g9IjAiIGN5PSIzMzgiIHI9IjIiIGZpbGw9IiNDODEwMkUiIG9wYWNpdHk9IjAiLz4KCiAgICAgICAgPCEtLSDilIDilIDilIAgMy1zdGVwIHByb2dyZXNzIGRvdHMgKHJpZ2h0IHNpZGUgb2Ygc3RyaXApIOKUgOKUgOKUgCAtLT4KICAgICAgICA8ZyBpZD0icHJvZ3Jlc3NEb3RzIj4KICAgICAgICAgIDxjaXJjbGUgaWQ9InBkMSIgY3g9IjI0NCIgY3k9IjM0MiIgcj0iMy41IiBmaWxsPSIjQzJDMkMyIiBvcGFjaXR5PSIuNSIvPgogICAgICAgICAgPGNpcmNsZSBpZD0icGQyIiBjeD0iMjYyIiBjeT0iMzQyIiByPSIzLjUiIGZpbGw9IiNDMkMyQzIiIG9wYWNpdHk9Ii41Ii8+CiAgICAgICAgICA8Y2lyY2xlIGlkPSJwZDMiIGN4PSIyODAiIGN5PSIzNDIiIHI9IjMuNSIgZmlsbD0iI0MyQzJDMiIgb3BhY2l0eT0iLjUiLz4KICAgICAgICA8L2c+CiAgICAgIDwvZz4KCiAgICA8L3N2Zz4KICA8L2Rpdj4KPC9kaXY+PCEtLSBzY2VuZS13cmFwIC0tPgoKPC9kaXY+Cgo8c2NyaXB0PgooZnVuY3Rpb24oKXsKICBjb25zdCBsZXJwICA9IChhLGIsdCk9PmErKGItYSkqdDsKICBjb25zdCBjbGFtcCA9ICh2LGxvLGhpKT0+TWF0aC5tYXgobG8sTWF0aC5taW4oaGksdikpOwogIGNvbnN0IG5vcm0gID0gKHYsbG8saGkpPT5jbGFtcCgodi1sbykvKGhpLWxvKSwwLDEpOwogIGNvbnN0IGVvICAgID0gdD0+MS1NYXRoLnBvdygxLXQsMyk7CiAgY29uc3QgZWlvICAgPSB0PT50PC41PzQqdCp0KnQ6MS1NYXRoLnBvdygtMip0KzIsMykvMjsKCiAgZnVuY3Rpb24gaGV4VG9SZ2IoaCl7Y29uc3Qgbj1wYXJzZUludChoLnNsaWNlKDEpLDE2KTtyZXR1cm4gWyhuPj4xNikmMjU1LChuPj44KSYyNTUsbiYyNTVdO30KICBmdW5jdGlvbiByZ2JUb0hleChyLGcsYil7Y29uc3Qgcz12PT5NYXRoLnJvdW5kKHYpLnRvU3RyaW5nKDE2KS5wYWRTdGFydCgyLCcwJyk7cmV0dXJuICcjJytzKHIpK3MoZykrcyhiKTt9CiAgZnVuY3Rpb24gYmxlbmRIZXgoYSxiLHQpe2NvbnN0IFtyMSxnMSxiMV09aGV4VG9SZ2IoYSksW3IyLGcyLGIyXT1oZXhUb1JnYihiKTtyZXR1cm4gcmdiVG9IZXgobGVycChyMSxyMix0KSxsZXJwKGcxLGcyLHQpLGxlcnAoYjEsYjIsdCkpO30KCiAgY29uc3QgbGVhZENhcmQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGVhZENhcmQnKTsKICBjb25zdCBjYXJkQm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjYXJkQm9keScpOwogIGNvbnN0IGNhcmRHbG93ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NhcmRHbG93Jyk7CiAgY29uc3Qgc3RhdHVzRGlzYyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzdGF0dXNEaXNjJyk7CiAgY29uc3Qgc25vd0dseXBoID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Nub3dHbHlwaCcpOwogIGNvbnN0IHNwaW5uZXJHbHlwaCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzcGlubmVyR2x5cGgnKTsKICBjb25zdCBzcGlubmVyUm90YXRlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3NwaW5uZXJSb3RhdGUnKTsKICBjb25zdCBjYWxlbmRhckdseXBoID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NhbGVuZGFyR2x5cGgnKTsKICBjb25zdCBjYWxDaGVjayA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjYWxDaGVjaycpOwogIGNvbnN0IHN0YXR1c0xhYmVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3N0YXR1c0xhYmVsJyk7CiAgY29uc3Qgc3Vic3RhdHVzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3N1YnN0YXR1cycpOwogIGNvbnN0IGRheUxhYmVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2RheUxhYmVsJyk7CiAgY29uc3QgdGVtcEZpbGwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVtcEZpbGwnKTsKICBjb25zdCBjb250ZXh0TGluZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb250ZXh0TGluZScpOwoKICBjb25zdCBhZGpTdHJpcCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhZGpTdHJpcCcpOwogIGNvbnN0IGFkakFjdGl2aXR5RG90ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2FkakFjdGl2aXR5RG90Jyk7CiAgY29uc3QgYWN0aW9uTGluZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhY3Rpb25MaW5lJyk7CiAgY29uc3QgYWN0aW9uV29ya0RvdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhY3Rpb25Xb3JrRG90Jyk7CiAgY29uc3QgcGQxID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3BkMScpOwogIGNvbnN0IHBkMiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwZDInKTsKICBjb25zdCBwZDMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncGQzJyk7CgogIC8qIOKUgOKUgOKUgCBQaGFzZSB0aW1pbmdzIChtcykg4pSA4pSA4pSAICovCiAgY29uc3QgVCA9IHsKICAgIC8vIDEuIENvbGQgbGVhZCBlc3RhYmxpc2hlcwogICAgcDFfY2FyZF9pbl9zIDogMjAwLAogICAgcDFfY2FyZF9pbl9lIDogMTEwMCwKICAgIHAxX3RlbXBfdG9fY29sZF9zOiAxMTAwLAogICAgcDFfdGVtcF90b19jb2xkX2U6IDE3MDAsCgogICAgLy8gMi4gQWRqdXRhbnQgbnVydHVyaW5nIOKAlCAzIHNlcXVlbnRpYWwgbWljcm8tYWN0aW9ucwogICAgYWRqX3N0cmlwX2luICAgOiAzMjAwLAogICAgLy8gQWN0aW9uIDE6ICJDaGVja2luZyBjb250ZXh04oCmIgogICAgYTFfaW4gICAgICAgICAgOiAzNzAwLAogICAgYTFfb3V0ICAgICAgICAgOiA1NDAwLAogICAgLy8gQWN0aW9uIDI6ICJTZW5kaW5nIHZhbHVlIG1lc3NhZ2XigKYiCiAgICBhMl9pbiAgICAgICAgICA6IDU0MDAsCiAgICBhMl9vdXQgICAgICAgICA6IDcxMDAsCiAgICAvLyBBY3Rpb24gMzogIlJlLWVuZ2FnaW5nIGxlYWTigKYiCiAgICBhM19pbiAgICAgICAgICA6IDcxMDAsCiAgICBhM19vdXQgICAgICAgICA6IDg4MDAsCiAgICAvLyBEYXkgdGlja3MgKG9uZSBwZXIgYWN0aW9uIGNvbXBsZXRpbmcpCiAgICBkYXkxMl9hdCAgICAgICA6IDU0MDAsCiAgICBkYXkxM19hdCAgICAgICA6IDcxMDAsCiAgICBkYXkxNF9hdCAgICAgICA6IDk3MDAsCiAgICAvLyBUZW1wZXJhdHVyZSB0YXJnZXRzIHBlciBhY3Rpb24gKCUgb2YgYmFyIGZpbGxlZCkKICAgIC8vIEFmdGVyIGNvbGQgZXN0YWJsaXNoOiA4JQogICAgLy8gQWZ0ZXIgYWN0aW9uIDE6IDM1JQogICAgLy8gQWZ0ZXIgYWN0aW9uIDI6IDYwJQogICAgLy8gQWZ0ZXIgYWN0aW9uIDMgKGVuZ2FnZWQpOiA4NSUKICAgIC8vIEFmdGVyIGJvb2tlZDogMTAwJQoKICAgIC8vIDMuIEVuZ2FnZWQgaG9sZCAoYWZ0ZXIgYWN0aW9uIDMpCiAgICBwM19lbmdhZ2VkX3MgICA6IDg4MDAsCiAgICBwM19lbmdhZ2VkX2UgICA6IDk2MDAsCgogICAgLy8gNC4gQm9va2VkCiAgICBwNF9ib29rZWRfcyAgICA6IDk3MDAsCiAgICBwNF9ib29rZWRfZSAgICA6IDEwNTAwLAogICAgcDRfY2hlY2tfcyAgICAgOiAxMDUwMCwKICAgIHA0X2NoZWNrX2UgICAgIDogMTEyMDAsCiAgICBwNF9nbG93X3MgICAgICA6IDEwNDAwLAogICAgcDRfZ2xvd19lICAgICAgOiAxMjIwMCwKCiAgICBsb29wICAgICAgICAgICA6IDE0NTAwCiAgfTsKCiAgLy8gQWN0aW9uIHRleHRzCiAgY29uc3QgQUNUSU9OUyA9IHsKICAgIGExOiAnQ2hlY2tpbmcgY29udGV4dOKApicsCiAgICBhMjogJ1NlbmRpbmcgdmFsdWUgbWVzc2FnZeKApicsCiAgICBhMzogJ1JlLWVuZ2FnaW5nIGxlYWTigKYnCiAgfTsKCiAgY29uc3QgdDAgPSBwZXJmb3JtYW5jZS5ub3coKTsKCiAgLy8gSGVscGVyOiBzbW9vdGggdGVtcGVyYXR1cmUgdGFyZ2V0IHByb2dyZXNzaW9uCiAgLy8gUmV0dXJucyB0aGUgdGVtcCBbMC4uMV0gZm9yIGEgZ2l2ZW4gdGltZXN0YW1wCiAgZnVuY3Rpb24gZ2V0VGVtcChlKXsKICAgIC8vIENvbGQgZXN0YWJsaXNoOiByYW1wIDAg4oaSIDAuMDgKICAgIGlmKGUgPCBULnAxX3RlbXBfdG9fY29sZF9lKXsKICAgICAgcmV0dXJuIGxlcnAoMCwgMC4wOCwgZW8obm9ybShlLCBULnAxX3RlbXBfdG9fY29sZF9zLCBULnAxX3RlbXBfdG9fY29sZF9lKSkpOwogICAgfQogICAgLy8gSG9sZCBjb2xkIHVudGlsIGFjdGlvbiAxIHN0YXJ0cwogICAgaWYoZSA8IFQuYTFfaW4pIHJldHVybiAwLjA4OwogICAgLy8gQWN0aW9uIDE6IDAuMDgg4oaSIDAuMzUKICAgIGlmKGUgPCBULmExX291dCkgcmV0dXJuIGxlcnAoMC4wOCwgMC4zNSwgZWlvKG5vcm0oZSwgVC5hMV9pbiwgVC5hMV9vdXQpKSk7CiAgICAvLyBBY3Rpb24gMjogMC4zNSDihpIgMC42MAogICAgaWYoZSA8IFQuYTJfb3V0KSByZXR1cm4gbGVycCgwLjM1LCAwLjYwLCBlaW8obm9ybShlLCBULmEyX2luLCBULmEyX291dCkpKTsKICAgIC8vIEFjdGlvbiAzOiAwLjYwIOKGkiAwLjg1CiAgICBpZihlIDwgVC5hM19vdXQpIHJldHVybiBsZXJwKDAuNjAsIDAuODUsIGVpbyhub3JtKGUsIFQuYTNfaW4sIFQuYTNfb3V0KSkpOwogICAgLy8gRW5nYWdlZCBob2xkIGF0IDAuODUKICAgIGlmKGUgPCBULnA0X2Jvb2tlZF9zKSByZXR1cm4gMC44NTsKICAgIC8vIEJvb2tlZDogMC44NSDihpIgMS4wCiAgICBpZihlIDwgVC5wNF9ib29rZWRfZSkgcmV0dXJuIGxlcnAoMC44NSwgMS4wLCBlaW8obm9ybShlLCBULnA0X2Jvb2tlZF9zLCBULnA0X2Jvb2tlZF9lKSkpOwogICAgcmV0dXJuIDEuMDsKICB9CgogIC8vIEhlbHBlcjogdGVtcGVyYXR1cmUg4oaSIGNvbG9yIGFsb25nIHRoZSBjb2xkLXdhcm0gZ3JhZGllbnQKICBmdW5jdGlvbiB0ZW1wQ29sb3IodCl7CiAgICAvLyAwLi4wLjU6IGNvbGQgdGVhbCAjQzgxMDJFIOKGkiBjb3BwZXIgdHJhbnNpdGlvbgogICAgLy8gMC41Li4wLjg1OiBjb3BwZXIgI0M4MTAyRQogICAgLy8gMC44NS4uMTogZ3JlZW4gI0M4MTAyRQogICAgaWYodCA8IDAuNSl7CiAgICAgIHJldHVybiBibGVuZEhleCgnI0M4MTAyRScsICcjQzgxMDJFJywgdCAvIDAuNSk7CiAgICB9IGVsc2UgaWYodCA8IDAuODUpewogICAgICByZXR1cm4gJyNDODEwMkUnOwogICAgfSBlbHNlIHsKICAgICAgcmV0dXJuIGJsZW5kSGV4KCcjQzgxMDJFJywgJyNDODEwMkUnLCAodCAtIDAuODUpIC8gMC4xNSk7CiAgICB9CiAgfQoKICBmdW5jdGlvbiBmcmFtZShub3cpewogICAgY29uc3QgZSA9IChub3cgLSB0MCkgJSBULmxvb3A7CgogICAgLyog4pWQ4pWQ4pWQ4pWQ4pWQIExFQUQgQ0FSRCBGQURFLUlOIOKVkOKVkOKVkOKVkOKVkCAqLwogICAgY29uc3QgY2FyZFAgPSBub3JtKGUsIFQucDFfY2FyZF9pbl9zLCBULnAxX2NhcmRfaW5fZSk7CiAgICBsZWFkQ2FyZC5zZXRBdHRyaWJ1dGUoJ29wYWNpdHknLCBTdHJpbmcoZW8oY2FyZFApKSk7CgogICAgLyog4pWQ4pWQ4pWQ4pWQ4pWQIFRFTVBFUkFUVVJFIEJBUiDilZDilZDilZDilZDilZAgKi8KICAgIGNvbnN0IHRlbXAgPSBnZXRUZW1wKGUpOwogICAgdGVtcEZpbGwuc2V0QXR0cmlidXRlKCd3aWR0aCcsIFN0cmluZygyNDAgKiB0ZW1wKSk7CiAgICB0ZW1wRmlsbC5zZXRBdHRyaWJ1dGUoJ2ZpbGwnLCB0ZW1wQ29sb3IodGVtcCkpOwoKICAgIC8qIOKVkOKVkOKVkOKVkOKVkCBDQVJEIEJPUkRFUiArIEdMT1cgQ09MT1IgKGZvbGxvd3MgdGVtcGVyYXR1cmUpIOKVkOKVkOKVkOKVkOKVkCAqLwogICAgY29uc3QgdENvbG9yID0gdGVtcENvbG9yKHRlbXApOwogICAgY2FyZEJvZHkuc2V0QXR0cmlidXRlKCdzdHJva2UnLCBibGVuZEhleCgnIzJBNEE0QScsIHRDb2xvciwgTWF0aC5taW4odGVtcCAqIDIsIDAuNikpKTsKCiAgICAvKiDilZDilZDilZDilZDilZAgQ0FSRCBCT0RZIEZJTEwg4oCUIHNsaWdodGx5IHdhcm1zIHdpdGggdGVtcGVyYXR1cmUg4pWQ4pWQ4pWQ4pWQ4pWQCiAgICAgICBTdGF5cyBtb3N0bHkgI0YwRTBEOSAoZGFyaykgYnV0IGJsZW5kcyBzbGlnaHRseSB0b3dhcmQKICAgICAgICNGMEUwRDkgKGxpZ2h0ZXIgYWN0aXZlIHN1cmZhY2UpIHBhc3QgNTAlIHRlbXAuICovCiAgICBsZXQgYm9keUZpbGwgPSAnI0YwRTBEOSc7CiAgICBpZih0ZW1wID49IDAuNSl7CiAgICAgIGJvZHlGaWxsID0gYmxlbmRIZXgoJyNGMEUwRDknLCAnI0YwRTBEOScsIGNsYW1wKCh0ZW1wIC0gMC41KSAvIDAuNCwgMCwgMSkpOwogICAgfQogICAgY2FyZEJvZHkuc2V0QXR0cmlidXRlKCdmaWxsJywgYm9keUZpbGwpOwoKICAgIC8qIOKVkOKVkOKVkOKVkOKVkCBTVEFUVVMgRElTQyBGSUxMIOKVkOKVkOKVkOKVkOKVkCAqLwogICAgbGV0IHN0YXR1c0Rpc2NGaWxsID0gJyMwRjNEM0UnOwogICAgaWYodGVtcCA+PSAwLjg1KSBzdGF0dXNEaXNjRmlsbCA9ICcjMEYzRDNFJzsgIC8vIGJhY2sgdG8gZGFyayBmb3IgY2FsZW5kYXIgY29udHJhc3QKICAgIHN0YXR1c0Rpc2Muc2V0QXR0cmlidXRlKCdmaWxsJywgc3RhdHVzRGlzY0ZpbGwpOwoKICAgIC8qIOKVkOKVkOKVkOKVkOKVkCBEQVkgTEFCRUwg4pWQ4pWQ4pWQ4pWQ4pWQICovCiAgICBsZXQgZGF5ID0gMTE7CiAgICBsZXQgZGF5Q29sb3IgPSAnI0MyQzJDMic7CiAgICBpZihlID49IFQuZGF5MTRfYXQpeyBkYXkgPSAxNDsgZGF5Q29sb3IgPSAnI0M4MTAyRSc7IH0KICAgIGVsc2UgaWYoZSA+PSBULmRheTEzX2F0KXsgZGF5ID0gMTM7IGRheUNvbG9yID0gJyNDODEwMkUnOyB9CiAgICBlbHNlIGlmKGUgPj0gVC5kYXkxMl9hdCl7IGRheSA9IDEyOyBkYXlDb2xvciA9ICcjQzgxMDJFJzsgfQogICAgZGF5TGFiZWwudGV4dENvbnRlbnQgPSBgREFZICR7ZGF5fWA7CiAgICBkYXlMYWJlbC5zZXRBdHRyaWJ1dGUoJ2ZpbGwnLCBkYXlDb2xvcik7CgogICAgLyog4pWQ4pWQ4pWQ4pWQ4pWQIFNUQVRVUyBMQUJFTCArIFNVQlNUQVRVUyArIElDT04g4pWQ4pWQ4pWQ4pWQ4pWQCiAgICAgICBQaGFzZXM6CiAgICAgICAgIGUgPCBhMV9pbiAgICAgICAgOiAiQ29sZCBsZWFkIiAvIHNub3dmbGFrZSAvICJObyBlbmdhZ2VtZW50IMK3IDExIGRheXMiCiAgICAgICAgIGExX2luLi5hM19vdXQgICAgOiAiTnVydHVyaW5nIiAvIHNwaW5uZXIgLyBjdXJyZW50IGFjdGlvbiBzdWJ0ZXh0CiAgICAgICAgIGEzX291dC4uYm9va2VkX3MgOiAiRW5nYWdlZCIgLyBzcGlubmVyIChzbG93aW5nKSAvICJMZWFkIHJlLWFjdGl2YXRlZCIKICAgICAgICAgYm9va2VkX3MuLiAgICAgICA6ICJDYWxsIGJvb2tlZCIgLyBjYWxlbmRhcitjaGVjayAvICJUb21vcnJvdyDCtyAyOjAwIFBNIgogICAgKi8KICAgIGxldCBsYWJlbFRleHQsIHN1YlRleHQsIGxhYmVsQ29sb3I7CiAgICBsZXQgc25vd09wID0gMCwgc3Bpbm5lck9wID0gMCwgY2FsT3AgPSAwOwogICAgbGV0IGNvbnRleHRUZXh0ID0gJyc7CgogICAgaWYoZSA8IFQuYTFfaW4pewogICAgICBsYWJlbFRleHQgPSAnQ29sZCBsZWFkJzsKICAgICAgc3ViVGV4dCA9ICdObyBlbmdhZ2VtZW50IMK3IDExIGRheXMnOwogICAgICBsYWJlbENvbG9yID0gJyMxQTFBMUEnOwogICAgICBzbm93T3AgPSAxOwogICAgICBjb250ZXh0VGV4dCA9ICdMYXN0IGNvbnRhY3Q6IE9jdCAyNyc7CiAgICB9IGVsc2UgaWYoZSA8IFQuYTNfb3V0KXsKICAgICAgbGFiZWxUZXh0ID0gJ051cnR1cmluZyc7CiAgICAgIGxhYmVsQ29sb3IgPSAnIzFBMUExQSc7CiAgICAgIC8vIHN1YnRleHQgaXMgdGhlIGN1cnJlbnQgYWN0aW9uCiAgICAgIGlmKGUgPCBULmExX291dCkgICAgICBzdWJUZXh0ID0gQUNUSU9OUy5hMTsKICAgICAgZWxzZSBpZihlIDwgVC5hMl9vdXQpIHN1YlRleHQgPSBBQ1RJT05TLmEyOwogICAgICBlbHNlICAgICAgICAgICAgICAgICAgc3ViVGV4dCA9IEFDVElPTlMuYTM7CiAgICAgIHNwaW5uZXJPcCA9IDE7CiAgICAgIGNvbnRleHRUZXh0ID0gJ1N5c3RlbSBhY3RpdmUgwrcgYXV0b21hdGVkJzsKICAgIH0gZWxzZSBpZihlIDwgVC5wNF9ib29rZWRfcyl7CiAgICAgIGxhYmVsVGV4dCA9ICdFbmdhZ2VkJzsKICAgICAgc3ViVGV4dCA9ICdMZWFkIHJlLWFjdGl2YXRlZCc7CiAgICAgIGxhYmVsQ29sb3IgPSAnIzFBMUExQSc7CiAgICAgIHNwaW5uZXJPcCA9IDE7CiAgICAgIGNvbnRleHRUZXh0ID0gJ0F3YWl0aW5nIGNvbmZpcm1hdGlvbic7CiAgICB9IGVsc2UgewogICAgICBsYWJlbFRleHQgPSAnQ2FsbCBib29rZWQnOwogICAgICBzdWJUZXh0ID0gJ1RvbW9ycm93IMK3IDI6MDAgUE0nOwogICAgICBsYWJlbENvbG9yID0gJyMxQTFBMUEnOwogICAgICBjYWxPcCA9IDE7CiAgICAgIGNvbnRleHRUZXh0ID0gJ0NvbmZpcm1lZCc7CiAgICB9CiAgICBzdGF0dXNMYWJlbC50ZXh0Q29udGVudCA9IGxhYmVsVGV4dDsKICAgIHN0YXR1c0xhYmVsLnNldEF0dHJpYnV0ZSgnZmlsbCcsIGxhYmVsQ29sb3IpOwogICAgc3Vic3RhdHVzLnRleHRDb250ZW50ID0gc3ViVGV4dDsKICAgIHN1YnN0YXR1cy5zZXRBdHRyaWJ1dGUoJ2ZpbGwnLCBlID49IFQucDRfYm9va2VkX3MgPyAnI0M4MTAyRScgOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlID49IFQuYTFfaW4gPyAnI0M4MTAyRScgOiAnI0MyQzJDMicpKTsKICAgIGNvbnRleHRMaW5lLnRleHRDb250ZW50ID0gY29udGV4dFRleHQ7CgogICAgc25vd0dseXBoLnNldEF0dHJpYnV0ZSgnb3BhY2l0eScsIFN0cmluZyhzbm93T3ApKTsKICAgIHNwaW5uZXJHbHlwaC5zZXRBdHRyaWJ1dGUoJ29wYWNpdHknLCBTdHJpbmcoc3Bpbm5lck9wKSk7CgogICAgLy8gQ2FsZW5kYXIgc2NhbGUtaW4gYW5pbWF0aW9uCiAgICBpZihjYWxPcCA+IDApewogICAgICBjb25zdCBjYWxQID0gbm9ybShlLCBULnA0X2Jvb2tlZF9zLCBULnA0X2Jvb2tlZF9lKTsKICAgICAgY2FsZW5kYXJHbHlwaC5zZXRBdHRyaWJ1dGUoJ3RyYW5zZm9ybScsIGB0cmFuc2xhdGUoNjAsMTUyKSBzY2FsZSgke2VvKGNhbFApfSlgKTsKICAgIH0gZWxzZSB7CiAgICAgIGNhbGVuZGFyR2x5cGguc2V0QXR0cmlidXRlKCd0cmFuc2Zvcm0nLCAndHJhbnNsYXRlKDYwLDE1Mikgc2NhbGUoMCknKTsKICAgIH0KCiAgICAvLyBTcGlubmVyIHJvdGF0aW9uCiAgICBpZihzcGlubmVyT3AgPiAwKXsKICAgICAgY29uc3Qgcm90ID0gKGUgLyAxLjUpICUgMzYwOyAgLy8gc21vb3RoIGNvbnRpbnVvdXMgcm90YXRpb24KICAgICAgc3Bpbm5lclJvdGF0ZS5zZXRBdHRyaWJ1dGUoJ3RyYW5zZm9ybScsIGByb3RhdGUoJHtyb3R9KWApOwogICAgfQoKICAgIC8qIOKVkOKVkOKVkOKVkOKVkCBDSEVDSyBUSUNLIERSQVctSU4g4pWQ4pWQ4pWQ4pWQ4pWQICovCiAgICBpZihlID49IFQucDRfY2hlY2tfcyAmJiBlIDwgVC5wNF9jaGVja19lKXsKICAgICAgY29uc3QgY3AgPSBub3JtKGUsIFQucDRfY2hlY2tfcywgVC5wNF9jaGVja19lKTsKICAgICAgY2FsQ2hlY2suc2V0QXR0cmlidXRlKCdzdHJva2UtZGFzaG9mZnNldCcsIFN0cmluZyhsZXJwKDEwMCwgMCwgZWlvKGNwKSkpKTsKICAgIH0gZWxzZSBpZihlID49IFQucDRfY2hlY2tfZSl7CiAgICAgIGNhbENoZWNrLnNldEF0dHJpYnV0ZSgnc3Ryb2tlLWRhc2hvZmZzZXQnLCAnMCcpOwogICAgfSBlbHNlIHsKICAgICAgY2FsQ2hlY2suc2V0QXR0cmlidXRlKCdzdHJva2UtZGFzaG9mZnNldCcsICcxMDAnKTsKICAgIH0KCiAgICAvKiDilZDilZDilZDilZDilZAgQ0FSRCBHTE9XIChkdXJpbmcgdHJhbnNpdGlvbnMgYW5kIGJvb2tlZCkg4pWQ4pWQ4pWQ4pWQ4pWQICovCiAgICBsZXQgZ2xvd09wID0gMCwgZ2xvd0NvbG9yID0gJyNDODEwMkUnOwogICAgaWYoZSA+PSBULnA0X2dsb3dfcyAmJiBlIDwgVC5wNF9nbG93X2UpewogICAgICBjb25zdCBncCA9IG5vcm0oZSwgVC5wNF9nbG93X3MsIFQucDRfZ2xvd19lKTsKICAgICAgZ2xvd09wID0gTWF0aC5zaW4oZ3AgKiBNYXRoLlBJKSAqIDAuNjsKICAgICAgZ2xvd0NvbG9yID0gJyNDODEwMkUnOwogICAgfSBlbHNlIGlmKGUgPj0gVC5wM19lbmdhZ2VkX3MgJiYgZSA8IFQucDNfZW5nYWdlZF9lKXsKICAgICAgY29uc3QgZ3AgPSBub3JtKGUsIFQucDNfZW5nYWdlZF9zLCBULnAzX2VuZ2FnZWRfZSk7CiAgICAgIGdsb3dPcCA9IE1hdGguc2luKGdwICogTWF0aC5QSSkgKiAwLjQ7CiAgICAgIGdsb3dDb2xvciA9ICcjQzgxMDJFJzsKICAgIH0KICAgIGNhcmRHbG93LnNldEF0dHJpYnV0ZSgnb3BhY2l0eScsIFN0cmluZyhnbG93T3ApKTsKICAgIGNhcmRHbG93LnNldEF0dHJpYnV0ZSgnc3Ryb2tlJywgZ2xvd0NvbG9yKTsKCiAgICAvKiDilZDilZDilZDilZDilZAgQURKVVRBTlQgU1RSSVAg4pWQ4pWQ4pWQ4pWQ4pWQICovCiAgICBjb25zdCBzdHJpcFAgPSBub3JtKGUsIFQuYWRqX3N0cmlwX2luLCBULmFkal9zdHJpcF9pbiArIDUwMCk7CiAgICBhZGpTdHJpcC5zZXRBdHRyaWJ1dGUoJ29wYWNpdHknLCBTdHJpbmcoZW8oc3RyaXBQKSkpOwoKICAgIC8qIOKVkOKVkOKVkOKVkOKVkCBBREpVVEFOVCBBQ1RJVklUWSBET1QgKHB1bHNlcyB3aGlsZSBzeXN0ZW0gaXMgd29ya2luZykg4pWQ4pWQ4pWQ4pWQ4pWQICovCiAgICBpZihlID49IFQuYTFfaW4gJiYgZSA8IFQucDNfZW5nYWdlZF9lKXsKICAgICAgLy8gUHVsc2luZyBkb3Qgd2hpbGUgQWRqdXRhbnQgaXMgYWN0aXZlCiAgICAgIGNvbnN0IHB1bHNlID0gMC41ICsgMC41ICogTWF0aC5zaW4oKGUgLyAzNTApICogTWF0aC5QSSk7CiAgICAgIGFkakFjdGl2aXR5RG90LnNldEF0dHJpYnV0ZSgnb3BhY2l0eScsIFN0cmluZyhwdWxzZSkpOwogICAgfSBlbHNlIGlmKGUgPj0gVC5wM19lbmdhZ2VkX2UpewogICAgICBhZGpBY3Rpdml0eURvdC5zZXRBdHRyaWJ1dGUoJ29wYWNpdHknLCAnMC40Jyk7CiAgICB9IGVsc2UgewogICAgICBhZGpBY3Rpdml0eURvdC5zZXRBdHRyaWJ1dGUoJ29wYWNpdHknLCAnMCcpOwogICAgfQoKICAgIC8qIOKVkOKVkOKVkOKVkOKVkCBBQ1RJT04gTElORSAod2l0aGluIEFkanV0YW50IHN0cmlwKSDilZDilZDilZDilZDilZAgKi8KICAgIGxldCBzdHJpcEFjdGlvblRleHQsIHN0cmlwQ29sb3I7CiAgICBpZihlIDwgVC5hMV9pbil7CiAgICAgIHN0cmlwQWN0aW9uVGV4dCA9ICdJZGxlJzsKICAgICAgc3RyaXBDb2xvciA9ICcjQzJDMkMyJzsKICAgIH0gZWxzZSBpZihlIDwgVC5hMV9vdXQpewogICAgICBzdHJpcEFjdGlvblRleHQgPSBBQ1RJT05TLmExOwogICAgICBzdHJpcENvbG9yID0gJyMxQTFBMUEnOwogICAgfSBlbHNlIGlmKGUgPCBULmEyX291dCl7CiAgICAgIHN0cmlwQWN0aW9uVGV4dCA9IEFDVElPTlMuYTI7CiAgICAgIHN0cmlwQ29sb3IgPSAnIzFBMUExQSc7CiAgICB9IGVsc2UgaWYoZSA8IFQuYTNfb3V0KXsKICAgICAgc3RyaXBBY3Rpb25UZXh0ID0gQUNUSU9OUy5hMzsKICAgICAgc3RyaXBDb2xvciA9ICcjMUExQTFBJzsKICAgIH0gZWxzZSBpZihlIDwgVC5wNF9ib29rZWRfcyl7CiAgICAgIHN0cmlwQWN0aW9uVGV4dCA9ICdMZWFkIGVuZ2FnZWQnOwogICAgICBzdHJpcENvbG9yID0gJyNDODEwMkUnOwogICAgfSBlbHNlIHsKICAgICAgc3RyaXBBY3Rpb25UZXh0ID0gJ0NhbGwgYm9va2VkJzsKICAgICAgc3RyaXBDb2xvciA9ICcjQzgxMDJFJzsKICAgIH0KICAgIGFjdGlvbkxpbmUudGV4dENvbnRlbnQgPSBzdHJpcEFjdGlvblRleHQ7CiAgICBhY3Rpb25MaW5lLnNldEF0dHJpYnV0ZSgnZmlsbCcsIHN0cmlwQ29sb3IpOwoKICAgIC8qIOKVkOKVkOKVkOKVkOKVkCBBQ1RJT04gV09SSyBET1Qg4oCUIHNtYWxsIGRvdCBiZXNpZGUgdGhlIGFjdGlvbiB0ZXh0CiAgICAgICB0aGF0IHB1bHNlcyB3aGlsZSBhbiBhY3Rpb24gaXMgaW4gcHJvZ3Jlc3Mg4pWQ4pWQ4pWQ4pWQ4pWQICovCiAgICBpZihlID49IFQuYTFfaW4gJiYgZSA8IFQuYTNfb3V0KXsKICAgICAgLy8gUG9zaXRpb24gZG90IHRvIHRoZSByaWdodCBvZiB0aGUgYWN0aW9uIHRleHQgKGFwcHJveGltYXRlKQogICAgICAvLyBGb3Igc2ltcGxpY2l0eSwgcG9zaXRpb24gYmFzZWQgb24gYWN0aW9uIHRleHQgbGVuZ3RoCiAgICAgIGxldCBkb3RYID0gNDY7CiAgICAgIGlmKGUgPCBULmExX291dCkgICAgICAgZG90WCA9IDQ2ICsgNyAqICdDaGVja2luZyBjb250ZXh04oCmJy5sZW5ndGggKiAwLjM1OwogICAgICBlbHNlIGlmKGUgPCBULmEyX291dCkgIGRvdFggPSA0NiArIDcgKiAnU2VuZGluZyB2YWx1ZSBtZXNzYWdl4oCmJy5sZW5ndGggKiAwLjM1OwogICAgICBlbHNlICAgICAgICAgICAgICAgICAgIGRvdFggPSA0NiArIDcgKiAnUmUtZW5nYWdpbmcgbGVhZOKApicubGVuZ3RoICogMC4zNTsKICAgICAgLy8gc2ltcGxlcjoganVzdCBwbGFjZSBpdCBhdCBhIGZpeGVkIG9mZnNldCB0aGF0IHN1aXRzIHRoZSBsb25nZXN0IHRleHQKICAgICAgYWN0aW9uV29ya0RvdC5zZXRBdHRyaWJ1dGUoJ2N4JywgJzE4OCcpOwogICAgICBjb25zdCBwdWxzZSA9IDAuNCArIDAuNiAqIE1hdGgubWF4KDAsIE1hdGguc2luKChlIC8gMjUwKSAqIE1hdGguUEkpKTsKICAgICAgYWN0aW9uV29ya0RvdC5zZXRBdHRyaWJ1dGUoJ29wYWNpdHknLCBTdHJpbmcocHVsc2UpKTsKICAgIH0gZWxzZSB7CiAgICAgIGFjdGlvbldvcmtEb3Quc2V0QXR0cmlidXRlKCdvcGFjaXR5JywgJzAnKTsKICAgIH0KCiAgICAvKiDilZDilZDilZDilZDilZAgUFJPR1JFU1MgRE9UUyDigJQgbGlnaHQgdXAgc2VxdWVudGlhbGx5IOKVkOKVkOKVkOKVkOKVkCAqLwogICAgLy8gcGQxIGxpZ2h0cyB3aGVuIGFjdGlvbiAxIHN0YXJ0czsgZmlsbHMgYnJpZ2h0IGF0IGFjdGlvbiAxIGNvbXBsZXRlOyBldGMuCiAgICBjb25zdCBsaWdodERvdCA9IChkb3QsIHN0YXJ0QXQsIGNvbXBsZXRlQXQpID0+IHsKICAgICAgaWYoZSA8IHN0YXJ0QXQpewogICAgICAgIGRvdC5zZXRBdHRyaWJ1dGUoJ2ZpbGwnLCAnI0MyQzJDMicpOwogICAgICAgIGRvdC5zZXRBdHRyaWJ1dGUoJ29wYWNpdHknLCAnMC41Jyk7CiAgICAgIH0gZWxzZSBpZihlIDwgY29tcGxldGVBdCl7CiAgICAgICAgLy8gcHVsc2luZyBkdXJpbmcgYWN0aW9uCiAgICAgICAgY29uc3QgcHVsc2UgPSAwLjUgKyAwLjUgKiBNYXRoLnNpbigoZSAvIDM1MCkgKiBNYXRoLlBJKTsKICAgICAgICBkb3Quc2V0QXR0cmlidXRlKCdmaWxsJywgJyNDODEwMkUnKTsKICAgICAgICBkb3Quc2V0QXR0cmlidXRlKCdvcGFjaXR5JywgU3RyaW5nKDAuNyArIDAuMyAqIHB1bHNlKSk7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgZG90LnNldEF0dHJpYnV0ZSgnZmlsbCcsIGUgPj0gVC5wNF9ib29rZWRfcyA/ICcjQzgxMDJFJyA6ICcjQzgxMDJFJyk7CiAgICAgICAgZG90LnNldEF0dHJpYnV0ZSgnb3BhY2l0eScsICcxJyk7CiAgICAgIH0KICAgIH07CiAgICBsaWdodERvdChwZDEsIFQuYTFfaW4sIFQuYTFfb3V0KTsKICAgIGxpZ2h0RG90KHBkMiwgVC5hMl9pbiwgVC5hMl9vdXQpOwogICAgbGlnaHREb3QocGQzLCBULmEzX2luLCBULmEzX291dCk7CgogICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZyYW1lKTsKICB9CiAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZyYW1lKTsKfSkoKTsKPC9zY3JpcHQ+CjwvYm9keT48L2h0bWw+Cg==", "PCFET0NUWVBFIGh0bWw+CjxodG1sPjxoZWFkPjxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KPHN0eWxlPgovKiDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZAKICAgdjYxIOKAlCAiTmV3IEhpcmUgT25ib2FyZGluZyIKICAgCiAgIFRocmVlLXNjZW5lIGNvbXBvc2l0aW9uIG1hdGNoaW5nIFRoZV9DYWxlbmRhciByZWZlcmVuY2Ugc3R5bGU6CiAgICAg4oCiIFNjZW5lIDEg4oCUIDIzIFRBU0tTIGFjcm9zcyA0IERFUEFSVE1FTlRTCiAgICAgICAgICAgICAgICAgKDQgY29sb3JlZCBjb2x1bW5zIG9mIHNtYWxsIHRhc2sgdGlsZXMsIGVhY2gKICAgICAgICAgICAgICAgICAgZGVwYXJ0bWVudCBhIGRpc3RpbmN0IGh1ZSBmcm9tIHRoZSBwYWxldHRlKQogICAgIOKAoiBTY2VuZSAyIOKAlCBDTE9DSyBzd2VlcGluZyB0byBUSFUgwrcgODowMCBBTQogICAgICAgICAgICAgICAgIChyZXVzZXMgVGhlX0NhbGVuZGFyJ3MgY2xvY2sgZGVzaWduOiByYWRpdXMgNzgsCiAgICAgICAgICAgICAgICAgIG51bWVyYWxzIDEyLzMvNi85LCBkdWFsIGhhbmRzLCBkYXkvdGltZSBjaGlwKQogICAgIOKAoiBTY2VuZSAzIOKAlCBaRVJPIENPT1JESU5BVElPTgogICAgICAgICAgICAgICAgICg0IGF1dG9ub21vdXMgbGFuZXMgY2FycnlpbmcgYWN0b3JzIEzihpJSLCBwYXJhbGxlbAogICAgICAgICAgICAgICAgICBwYXRocyBuZXZlciBpbnRlcnNlY3RpbmcsIGFsbCBjb21wbGV0aW5nIGluCiAgICAgICAgICAgICAgICAgIHBlcmZlY3Qgc3luYykKICAgCiAgIFJldXNlcyAuc3RlcCAvIC5zdGVwLmFjdGl2ZSBmYWRlLWFuZC1zY2FsZSBwYXR0ZXJuICsgYnJlYXRoZQogICBhbmltYXRpb24gKyBjYXB0aW9uIHN0eWxpbmcgKyBjaGlwIHN0eWxpbmcgZnJvbSByZWZlcmVuY2UuCiAgIENvbnRpbnVpdHkgcHJlc2VydmVkIGFjcm9zcyBzY2VuZSB0cmFuc2l0aW9ucyB0aHJvdWdoIHRoZQogICBjZW50ZXIgcG9pbnQgKDE3MCwgMjMyLzI0MCkuCiAgIOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkCAqLwoqe2JveC1zaXppbmc6Ym9yZGVyLWJveDttYXJnaW46MDtwYWRkaW5nOjB9CmJvZHl7YmFja2dyb3VuZDp0cmFuc3BhcmVudH0KLnN0b3J5ewogIGRpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47YWxpZ24taXRlbXM6Y2VudGVyOwogIHBhZGRpbmc6MnJlbSAxcmVtIDIuNXJlbTsKICBmb250LWZhbWlseTotYXBwbGUtc3lzdGVtLHN5c3RlbS11aSxzYW5zLXNlcmlmOwp9Ci5zY2VuZS13cmFwe3Bvc2l0aW9uOnJlbGF0aXZlO3dpZHRoOjM0MHB4O2hlaWdodDo0MzBweH0KCi5zdGVwewogIHBvc2l0aW9uOmFic29sdXRlO2luc2V0OjA7CiAgb3BhY2l0eTowOwogIHRyYW5zaXRpb246b3BhY2l0eSAuOXMgZWFzZSwgdHJhbnNmb3JtIC45cyBlYXNlOwogIHRyYW5zZm9ybTpzY2FsZSguOTYpOwogIHBvaW50ZXItZXZlbnRzOm5vbmU7Cn0KLnN0ZXAuYWN0aXZlewogIG9wYWNpdHk6MTsKICB0cmFuc2Zvcm06c2NhbGUoMSk7CiAgcG9pbnRlci1ldmVudHM6YXV0bzsKfQoKLnN0ZXAtaW5uZXJ7CiAgcG9zaXRpb246YWJzb2x1dGU7aW5zZXQ6MDsKICBhbmltYXRpb246YnJlYXRoZSA2cyBlYXNlLWluLW91dCBpbmZpbml0ZTsKfQpAa2V5ZnJhbWVzIGJyZWF0aGV7CiAgMCUsMTAwJXt0cmFuc2Zvcm06c2NhbGUoMSl9CiAgNTAlICAgIHt0cmFuc2Zvcm06c2NhbGUoMS4wMTIpfQp9Cjwvc3R5bGU+CjxzdHlsZT4KaHRtbCxib2R5e21hcmdpbjowO3BhZGRpbmc6MDtiYWNrZ3JvdW5kOiNGN0YzRUQhaW1wb3J0YW50O3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7b3ZlcmZsb3c6aGlkZGVuO30KYm9keXtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7fQo8L3N0eWxlPjwvaGVhZD48Ym9keT4KCjxkaXYgY2xhc3M9InN0b3J5Ij4KPGRpdiBjbGFzcz0ic2NlbmUtd3JhcCI+CgogIDwhLS0g4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQCiAgICAgICBTQ0VORSAxIOKAlCAyMyBUQVNLUyBBQ1JPU1MgNCBERVBBUlRNRU5UUwogICAgICAgCiAgICAgICA0IGNvbHVtbnMsIG9uZSBwZXIgZGVwYXJ0bWVudCwgZWFjaCBpbiBhIGRpc3RpbmN0IGh1ZToKICAgICAgICAgRU5HICAgICh0ZWFsICNDODEwMkUpICAg4oCUIDYgdGFza3MKICAgICAgICAgREVTSUdOIChjb3BwZXIgI0M4MTAyRSkg4oCUIDUgdGFza3MKICAgICAgICAgSFIgICAgIChncmVlbiAjQzgxMDJFKSAg4oCUIDcgdGFza3MKICAgICAgICAgT1BTICAgIChjcmVhbSAjRUZFNkREKSAg4oCUIDUgdGFza3MKICAgICAgIFRvdGFsOiA2KzUrNys1ID0gMjMgdGFza3MKICAgICAgIAogICAgICAgTGF5b3V0OiBjb2x1bW5zIGF0IHg9MTEwLCAxNTAsIDE5MCwgMjMwICg0MHB4IHN0cmlkZSkuCiAgICAgICBFYWNoIHRhc2sgaXMgYW4gOMOXOCByb3VuZGVkIHNxdWFyZTsgdGFza3Mgd2l0aGluIGEgY29sdW1uCiAgICAgICBzdGFjayB2ZXJ0aWNhbGx5IHdpdGggYSAxMnB4IHN0cmlkZS4KICAgICAgIAogICAgICAgQ29sdW1uIGhlaWdodHMgdmFyeSAoc2luY2UgdGFzayBjb3VudHMgZGlmZmVyKSwgZ2l2aW5nCiAgICAgICB0aGUgY29tcG9zaXRpb24gYSBuYXR1cmFsICJyZWFsIGRhdGEiIGZlZWwgcmF0aGVyIHRoYW4KICAgICAgIGFydGlmaWNpYWwgdW5pZm9ybWl0eS4KICAgICAgIOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkCAtLT4KICA8ZGl2IGNsYXNzPSJzdGVwIGFjdGl2ZSIgaWQ9InNjZW5lMSI+CiAgICA8ZGl2IGNsYXNzPSJzdGVwLWlubmVyIj4KICAgICAgPHN2ZyB3aWR0aD0iMzQwIiBoZWlnaHQ9IjQzMCIgdmlld0JveD0iMCAwIDM0MCA0MzAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogICAgICAgIDx0ZXh0IGlkPSJzMUNhcHRpb24iIHg9IjE3MCIgeT0iMTE2IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIgogICAgICAgICAgICAgIGZvbnQtZmFtaWx5PSItYXBwbGUtc3lzdGVtLHN5c3RlbS11aSxzYW5zLXNlcmlmIgogICAgICAgICAgICAgIGZvbnQtc2l6ZT0iMTAiIGZvbnQtd2VpZ2h0PSI2MDAiIGxldHRlci1zcGFjaW5nPSIyIgogICAgICAgICAgICAgIGZpbGw9IiNDMkMyQzIiIG9wYWNpdHk9IjAiPjIzIFRBU0tTIMK3IDQgREVQQVJUTUVOVFM8L3RleHQ+CgogICAgICAgIDwhLS0gRGVwYXJ0bWVudCBsYWJlbHMgKGFib3ZlIGVhY2ggY29sdW1uKSAtLT4KICAgICAgICA8ZyBpZD0iczFMYWJlbHMiIG9wYWNpdHk9IjAiPgogICAgICAgICAgPHRleHQgeD0iMTEwIiB5PSIxNzAiIHRleHQtYW5jaG9yPSJtaWRkbGUiCiAgICAgICAgICAgICAgICBmb250LWZhbWlseT0iLWFwcGxlLXN5c3RlbSxzeXN0ZW0tdWksc2Fucy1zZXJpZiIKICAgICAgICAgICAgICAgIGZvbnQtc2l6ZT0iOCIgZm9udC13ZWlnaHQ9IjcwMCIgbGV0dGVyLXNwYWNpbmc9IjEuNSIKICAgICAgICAgICAgICAgIGZpbGw9IiNDODEwMkUiPkVORzwvdGV4dD4KICAgICAgICAgIDx0ZXh0IHg9IjE1MCIgeT0iMTcwIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIgogICAgICAgICAgICAgICAgZm9udC1mYW1pbHk9Ii1hcHBsZS1zeXN0ZW0sc3lzdGVtLXVpLHNhbnMtc2VyaWYiCiAgICAgICAgICAgICAgICBmb250LXNpemU9IjgiIGZvbnQtd2VpZ2h0PSI3MDAiIGxldHRlci1zcGFjaW5nPSIxLjUiCiAgICAgICAgICAgICAgICBmaWxsPSIjQzgxMDJFIj5ERVNJR048L3RleHQ+CiAgICAgICAgICA8dGV4dCB4PSIxOTAiIHk9IjE3MCIgdGV4dC1hbmNob3I9Im1pZGRsZSIKICAgICAgICAgICAgICAgIGZvbnQtZmFtaWx5PSItYXBwbGUtc3lzdGVtLHN5c3RlbS11aSxzYW5zLXNlcmlmIgogICAgICAgICAgICAgICAgZm9udC1zaXplPSI4IiBmb250LXdlaWdodD0iNzAwIiBsZXR0ZXItc3BhY2luZz0iMS41IgogICAgICAgICAgICAgICAgZmlsbD0iI0M4MTAyRSI+SFI8L3RleHQ+CiAgICAgICAgICA8dGV4dCB4PSIyMzAiIHk9IjE3MCIgdGV4dC1hbmNob3I9Im1pZGRsZSIKICAgICAgICAgICAgICAgIGZvbnQtZmFtaWx5PSItYXBwbGUtc3lzdGVtLHN5c3RlbS11aSxzYW5zLXNlcmlmIgogICAgICAgICAgICAgICAgZm9udC1zaXplPSI4IiBmb250LXdlaWdodD0iNzAwIiBsZXR0ZXItc3BhY2luZz0iMS41IgogICAgICAgICAgICAgICAgZmlsbD0iI0VGRTZERCI+T1BTPC90ZXh0PgogICAgICAgIDwvZz4KCiAgICAgICAgPCEtLSDilIDilIDilIAgQ29sdW1uIDE6IEVORyAodGVhbCwgNiB0YXNrcykg4pSA4pSA4pSAIC0tPgogICAgICAgIDxnIGlkPSJjb2wxIiBjbGFzcz0idGFzay1jb2wiPgogICAgICAgICAgPHJlY3QgY2xhc3M9InRhc2siIGRhdGEtaT0iMCIgeD0iMTA2IiB5PSIxODYiIHdpZHRoPSI4IiBoZWlnaHQ9IjgiIHJ4PSIxLjUiIGZpbGw9IiNDODEwMkUiIG9wYWNpdHk9IjAiLz4KICAgICAgICAgIDxyZWN0IGNsYXNzPSJ0YXNrIiBkYXRhLWk9IjEiIHg9IjEwNiIgeT0iMTk4IiB3aWR0aD0iOCIgaGVpZ2h0PSI4IiByeD0iMS41IiBmaWxsPSIjQzgxMDJFIiBvcGFjaXR5PSIwIi8+CiAgICAgICAgICA8cmVjdCBjbGFzcz0idGFzayIgZGF0YS1pPSIyIiB4PSIxMDYiIHk9IjIxMCIgd2lkdGg9IjgiIGhlaWdodD0iOCIgcng9IjEuNSIgZmlsbD0iI0M4MTAyRSIgb3BhY2l0eT0iMCIvPgogICAgICAgICAgPHJlY3QgY2xhc3M9InRhc2siIGRhdGEtaT0iMyIgeD0iMTA2IiB5PSIyMjIiIHdpZHRoPSI4IiBoZWlnaHQ9IjgiIHJ4PSIxLjUiIGZpbGw9IiNDODEwMkUiIG9wYWNpdHk9IjAiLz4KICAgICAgICAgIDxyZWN0IGNsYXNzPSJ0YXNrIiBkYXRhLWk9IjQiIHg9IjEwNiIgeT0iMjM0IiB3aWR0aD0iOCIgaGVpZ2h0PSI4IiByeD0iMS41IiBmaWxsPSIjQzgxMDJFIiBvcGFjaXR5PSIwIi8+CiAgICAgICAgICA8cmVjdCBjbGFzcz0idGFzayIgZGF0YS1pPSI1IiB4PSIxMDYiIHk9IjI0NiIgd2lkdGg9IjgiIGhlaWdodD0iOCIgcng9IjEuNSIgZmlsbD0iI0M4MTAyRSIgb3BhY2l0eT0iMCIvPgogICAgICAgIDwvZz4KCiAgICAgICAgPCEtLSDilIDilIDilIAgQ29sdW1uIDI6IERFU0lHTiAoY29wcGVyLCA1IHRhc2tzKSDilIDilIDilIAgLS0+CiAgICAgICAgPGcgaWQ9ImNvbDIiIGNsYXNzPSJ0YXNrLWNvbCI+CiAgICAgICAgICA8cmVjdCBjbGFzcz0idGFzayIgZGF0YS1pPSI2IiAgeD0iMTQ2IiB5PSIxOTIiIHdpZHRoPSI4IiBoZWlnaHQ9IjgiIHJ4PSIxLjUiIGZpbGw9IiNDODEwMkUiIG9wYWNpdHk9IjAiLz4KICAgICAgICAgIDxyZWN0IGNsYXNzPSJ0YXNrIiBkYXRhLWk9IjciICB4PSIxNDYiIHk9IjIwNCIgd2lkdGg9IjgiIGhlaWdodD0iOCIgcng9IjEuNSIgZmlsbD0iI0M4MTAyRSIgb3BhY2l0eT0iMCIvPgogICAgICAgICAgPHJlY3QgY2xhc3M9InRhc2siIGRhdGEtaT0iOCIgIHg9IjE0NiIgeT0iMjE2IiB3aWR0aD0iOCIgaGVpZ2h0PSI4IiByeD0iMS41IiBmaWxsPSIjQzgxMDJFIiBvcGFjaXR5PSIwIi8+CiAgICAgICAgICA8cmVjdCBjbGFzcz0idGFzayIgZGF0YS1pPSI5IiAgeD0iMTQ2IiB5PSIyMjgiIHdpZHRoPSI4IiBoZWlnaHQ9IjgiIHJ4PSIxLjUiIGZpbGw9IiNDODEwMkUiIG9wYWNpdHk9IjAiLz4KICAgICAgICAgIDxyZWN0IGNsYXNzPSJ0YXNrIiBkYXRhLWk9IjEwIiB4PSIxNDYiIHk9IjI0MCIgd2lkdGg9IjgiIGhlaWdodD0iOCIgcng9IjEuNSIgZmlsbD0iI0M4MTAyRSIgb3BhY2l0eT0iMCIvPgogICAgICAgIDwvZz4KCiAgICAgICAgPCEtLSDilIDilIDilIAgQ29sdW1uIDM6IEhSIChncmVlbiwgNyB0YXNrcykg4pSA4pSA4pSAIC0tPgogICAgICAgIDxnIGlkPSJjb2wzIiBjbGFzcz0idGFzay1jb2wiPgogICAgICAgICAgPHJlY3QgY2xhc3M9InRhc2siIGRhdGEtaT0iMTEiIHg9IjE4NiIgeT0iMTgwIiB3aWR0aD0iOCIgaGVpZ2h0PSI4IiByeD0iMS41IiBmaWxsPSIjQzgxMDJFIiBvcGFjaXR5PSIwIi8+CiAgICAgICAgICA8cmVjdCBjbGFzcz0idGFzayIgZGF0YS1pPSIxMiIgeD0iMTg2IiB5PSIxOTIiIHdpZHRoPSI4IiBoZWlnaHQ9IjgiIHJ4PSIxLjUiIGZpbGw9IiNDODEwMkUiIG9wYWNpdHk9IjAiLz4KICAgICAgICAgIDxyZWN0IGNsYXNzPSJ0YXNrIiBkYXRhLWk9IjEzIiB4PSIxODYiIHk9IjIwNCIgd2lkdGg9IjgiIGhlaWdodD0iOCIgcng9IjEuNSIgZmlsbD0iI0M4MTAyRSIgb3BhY2l0eT0iMCIvPgogICAgICAgICAgPHJlY3QgY2xhc3M9InRhc2siIGRhdGEtaT0iMTQiIHg9IjE4NiIgeT0iMjE2IiB3aWR0aD0iOCIgaGVpZ2h0PSI4IiByeD0iMS41IiBmaWxsPSIjQzgxMDJFIiBvcGFjaXR5PSIwIi8+CiAgICAgICAgICA8cmVjdCBjbGFzcz0idGFzayIgZGF0YS1pPSIxNSIgeD0iMTg2IiB5PSIyMjgiIHdpZHRoPSI4IiBoZWlnaHQ9IjgiIHJ4PSIxLjUiIGZpbGw9IiNDODEwMkUiIG9wYWNpdHk9IjAiLz4KICAgICAgICAgIDxyZWN0IGNsYXNzPSJ0YXNrIiBkYXRhLWk9IjE2IiB4PSIxODYiIHk9IjI0MCIgd2lkdGg9IjgiIGhlaWdodD0iOCIgcng9IjEuNSIgZmlsbD0iI0M4MTAyRSIgb3BhY2l0eT0iMCIvPgogICAgICAgICAgPHJlY3QgY2xhc3M9InRhc2siIGRhdGEtaT0iMTciIHg9IjE4NiIgeT0iMjUyIiB3aWR0aD0iOCIgaGVpZ2h0PSI4IiByeD0iMS41IiBmaWxsPSIjQzgxMDJFIiBvcGFjaXR5PSIwIi8+CiAgICAgICAgPC9nPgoKICAgICAgICA8IS0tIOKUgOKUgOKUgCBDb2x1bW4gNDogT1BTIChjcmVhbSwgNSB0YXNrcykg4pSA4pSA4pSAIC0tPgogICAgICAgIDxnIGlkPSJjb2w0IiBjbGFzcz0idGFzay1jb2wiPgogICAgICAgICAgPHJlY3QgY2xhc3M9InRhc2siIGRhdGEtaT0iMTgiIHg9IjIyNiIgeT0iMTkyIiB3aWR0aD0iOCIgaGVpZ2h0PSI4IiByeD0iMS41IiBmaWxsPSIjRUZFNkREIiBvcGFjaXR5PSIwIi8+CiAgICAgICAgICA8cmVjdCBjbGFzcz0idGFzayIgZGF0YS1pPSIxOSIgeD0iMjI2IiB5PSIyMDQiIHdpZHRoPSI4IiBoZWlnaHQ9IjgiIHJ4PSIxLjUiIGZpbGw9IiNFRkU2REQiIG9wYWNpdHk9IjAiLz4KICAgICAgICAgIDxyZWN0IGNsYXNzPSJ0YXNrIiBkYXRhLWk9IjIwIiB4PSIyMjYiIHk9IjIxNiIgd2lkdGg9IjgiIGhlaWdodD0iOCIgcng9IjEuNSIgZmlsbD0iI0VGRTZERCIgb3BhY2l0eT0iMCIvPgogICAgICAgICAgPHJlY3QgY2xhc3M9InRhc2siIGRhdGEtaT0iMjEiIHg9IjIyNiIgeT0iMjI4IiB3aWR0aD0iOCIgaGVpZ2h0PSI4IiByeD0iMS41IiBmaWxsPSIjRUZFNkREIiBvcGFjaXR5PSIwIi8+CiAgICAgICAgICA8cmVjdCBjbGFzcz0idGFzayIgZGF0YS1pPSIyMiIgeD0iMjI2IiB5PSIyNDAiIHdpZHRoPSI4IiBoZWlnaHQ9IjgiIHJ4PSIxLjUiIGZpbGw9IiNFRkU2REQiIG9wYWNpdHk9IjAiLz4KICAgICAgICA8L2c+CgogICAgICAgIDwhLS0gVGFzayBjb3VudCB0ZXh0IChiZWxvdyB0aGUgY29sdW1ucykgLS0+CiAgICAgICAgPHRleHQgaWQ9InMxVG90YWwiIHg9IjE3MCIgeT0iMzA0IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIgogICAgICAgICAgICAgIGZvbnQtZmFtaWx5PSItYXBwbGUtc3lzdGVtLHN5c3RlbS11aSxzYW5zLXNlcmlmIgogICAgICAgICAgICAgIGZvbnQtc2l6ZT0iMTMiIGZvbnQtd2VpZ2h0PSI1MDAiCiAgICAgICAgICAgICAgZmlsbD0iIzFBMUExQSIgb3BhY2l0eT0iMCI+MjMgb25ib2FyZGluZyB0YXNrczwvdGV4dD4KCiAgICAgIDwvc3ZnPgogICAgPC9kaXY+CiAgPC9kaXY+CgogIDwhLS0g4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQCiAgICAgICBTQ0VORSAyIOKAlCBDTE9DSyBTV0VFUFMgVE8gVEhVIMK3IDg6MDAgQU0KICAgICAgIAogICAgICAgUmV1c2VzIFRoZV9DYWxlbmRhcidzIGNsb2NrIGRlc2lnbiBhdCB0aGUgc2FtZSBjb29yZGluYXRlcwogICAgICAgKGNlbnRlciAxNzAsMjMyLCByPTc4KS4gSG91ciBoYW5kIHN3ZWVwcyBmb3J3YXJkIHRocm91Z2gKICAgICAgIG11bHRpcGxlIHJvdGF0aW9ucyByZXByZXNlbnRpbmcgZGF5cyBwYXNzaW5nLiBEYXkgY2hpcAogICAgICAgdXBkYXRlcyBNb24g4oaSIFR1ZSDihpIgV2VkIOKGkiBUaHUsIHdpdGggZmluYWwgc3RhdGUgc2hvd2luZwogICAgICAgIlRodSDCtyA4OjAwIEFNIiBpbiBncmVlbi4KICAgICAgIOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkCAtLT4KICA8ZGl2IGNsYXNzPSJzdGVwIiBpZD0ic2NlbmUyIj4KICAgIDxkaXYgY2xhc3M9InN0ZXAtaW5uZXIiPgogICAgICA8c3ZnIHdpZHRoPSIzNDAiIGhlaWdodD0iNDMwIiB2aWV3Qm94PSIwIDAgMzQwIDQzMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KCiAgICAgICAgPHRleHQgaWQ9InMyQ2FwdGlvbiIgeD0iMTcwIiB5PSIxMTYiIHRleHQtYW5jaG9yPSJtaWRkbGUiCiAgICAgICAgICAgICAgZm9udC1mYW1pbHk9Ii1hcHBsZS1zeXN0ZW0sc3lzdGVtLXVpLHNhbnMtc2VyaWYiCiAgICAgICAgICAgICAgZm9udC1zaXplPSIxMCIgZm9udC13ZWlnaHQ9IjYwMCIgbGV0dGVyLXNwYWNpbmc9IjIiCiAgICAgICAgICAgICAgZmlsbD0iI0MyQzJDMiIgb3BhY2l0eT0iMCI+QUxMIERPTkUgQlkgVEhVUlNEQVkgTU9STklORzwvdGV4dD4KCiAgICAgICAgPGNpcmNsZSBpZD0iY2xvY2tIYWxvIiBjeD0iMTcwIiBjeT0iMjMyIiByPSI5MiIKICAgICAgICAgICAgICAgIGZpbGw9Im5vbmUiIHN0cm9rZT0iI0M4MTAyRSIgc3Ryb2tlLXdpZHRoPSIyIiBvcGFjaXR5PSIwIi8+CgogICAgICAgIDxnIGlkPSJjbG9jayIgb3BhY2l0eT0iMCI+CiAgICAgICAgICA8Y2lyY2xlIGN4PSIxNzAiIGN5PSIyMzIiIHI9Ijc4IiBmaWxsPSIjRjBFMEQ5Ii8+CiAgICAgICAgICA8Y2lyY2xlIGN4PSIxNzAiIGN5PSIyMzIiIHI9Ijc4IiBmaWxsPSJub25lIiBzdHJva2U9IiNDMkMyQzIiIHN0cm9rZS13aWR0aD0iMiIvPgoKICAgICAgICAgIDwhLS0gTWFqb3IgdGljayBzdHVicyBhdCAxMiwgMywgNiwgOSAtLT4KICAgICAgICAgIDxsaW5lIHgxPSIxNzAiIHkxPSIxNjIiIHgyPSIxNzAiIHkyPSIxNzAiIHN0cm9rZT0iI0M4MTAyRSIgc3Ryb2tlLXdpZHRoPSIyLjUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIvPgogICAgICAgICAgPGxpbmUgeDE9IjI0MCIgeTE9IjIzMiIgeDI9IjIzMiIgeTI9IjIzMiIgc3Ryb2tlPSIjQzgxMDJFIiBzdHJva2Utd2lkdGg9IjIuNSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIi8+CiAgICAgICAgICA8bGluZSB4MT0iMTcwIiB5MT0iMzAyIiB4Mj0iMTcwIiB5Mj0iMjk0IiBzdHJva2U9IiNDODEwMkUiIHN0cm9rZS13aWR0aD0iMi41IiBzdHJva2UtbGluZWNhcD0icm91bmQiLz4KICAgICAgICAgIDxsaW5lIHgxPSIxMDAiIHkxPSIyMzIiIHgyPSIxMDgiIHkyPSIyMzIiIHN0cm9rZT0iI0M4MTAyRSIgc3Ryb2tlLXdpZHRoPSIyLjUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIvPgoKICAgICAgICAgIDwhLS0gTWlub3IgdGljayBtYXJrcyBhdCAxLDIsNCw1LDcsOCwxMCwxMSAtLT4KICAgICAgICAgIDxnIHN0cm9rZT0iI0MyQzJDMiIgc3Ryb2tlLXdpZHRoPSIxLjUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCI+CiAgICAgICAgICAgIDxsaW5lIHgxPSIyMDUiIHkxPSIxNzEiIHgyPSIyMDIiIHkyPSIxNzgiLz4KICAgICAgICAgICAgPGxpbmUgeDE9IjIzMSIgeTE9IjE5NyIgeDI9IjIyNCIgeTI9IjIwMCIvPgogICAgICAgICAgICA8bGluZSB4MT0iMjMxIiB5MT0iMjY3IiB4Mj0iMjI0IiB5Mj0iMjY0Ii8+CiAgICAgICAgICAgIDxsaW5lIHgxPSIyMDUiIHkxPSIyOTMiIHgyPSIyMDIiIHkyPSIyODYiLz4KICAgICAgICAgICAgPGxpbmUgeDE9IjEzNSIgeTE9IjI5MyIgeDI9IjEzOCIgeTI9IjI4NiIvPgogICAgICAgICAgICA8bGluZSB4MT0iMTA5IiB5MT0iMjY3IiB4Mj0iMTE2IiB5Mj0iMjY0Ii8+CiAgICAgICAgICAgIDxsaW5lIHgxPSIxMDkiIHkxPSIxOTciIHgyPSIxMTYiIHkyPSIyMDAiLz4KICAgICAgICAgICAgPGxpbmUgeDE9IjEzNSIgeTE9IjE3MSIgeDI9IjEzOCIgeTI9IjE3OCIvPgogICAgICAgICAgPC9nPgoKICAgICAgICAgIDwhLS0gSG91ciBudW1lcmFscyAxMi8zLzYvOSBpbiBjb3BwZXIgLS0+CiAgICAgICAgICA8dGV4dCB4PSIxNzAiIHk9IjE0MiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZG9taW5hbnQtYmFzZWxpbmU9Im1pZGRsZSIKICAgICAgICAgICAgICAgIGZvbnQtZmFtaWx5PSItYXBwbGUtc3lzdGVtLHN5c3RlbS11aSxzYW5zLXNlcmlmIgogICAgICAgICAgICAgICAgZm9udC1zaXplPSIxNSIgZm9udC13ZWlnaHQ9IjcwMCIKICAgICAgICAgICAgICAgIGZpbGw9IiNDODEwMkUiPjEyPC90ZXh0PgogICAgICAgICAgPHRleHQgeD0iMjY1IiB5PSIyMzIiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGRvbWluYW50LWJhc2VsaW5lPSJtaWRkbGUiCiAgICAgICAgICAgICAgICBmb250LWZhbWlseT0iLWFwcGxlLXN5c3RlbSxzeXN0ZW0tdWksc2Fucy1zZXJpZiIKICAgICAgICAgICAgICAgIGZvbnQtc2l6ZT0iMTUiIGZvbnQtd2VpZ2h0PSI3MDAiCiAgICAgICAgICAgICAgICBmaWxsPSIjQzgxMDJFIj4zPC90ZXh0PgogICAgICAgICAgPHRleHQgeD0iMTcwIiB5PSIzMjIiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGRvbWluYW50LWJhc2VsaW5lPSJtaWRkbGUiCiAgICAgICAgICAgICAgICBmb250LWZhbWlseT0iLWFwcGxlLXN5c3RlbSxzeXN0ZW0tdWksc2Fucy1zZXJpZiIKICAgICAgICAgICAgICAgIGZvbnQtc2l6ZT0iMTUiIGZvbnQtd2VpZ2h0PSI3MDAiCiAgICAgICAgICAgICAgICBmaWxsPSIjQzgxMDJFIj42PC90ZXh0PgogICAgICAgICAgPHRleHQgeD0iNzUiIHk9IjIzMiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZG9taW5hbnQtYmFzZWxpbmU9Im1pZGRsZSIKICAgICAgICAgICAgICAgIGZvbnQtZmFtaWx5PSItYXBwbGUtc3lzdGVtLHN5c3RlbS11aSxzYW5zLXNlcmlmIgogICAgICAgICAgICAgICAgZm9udC1zaXplPSIxNSIgZm9udC13ZWlnaHQ9IjcwMCIKICAgICAgICAgICAgICAgIGZpbGw9IiNDODEwMkUiPjk8L3RleHQ+CgogICAgICAgICAgPCEtLSBIb3VyIGhhbmQgKHJvdGF0ZXMpIC0tPgogICAgICAgICAgPGcgaWQ9ImhvdXJIYW5kRyIgdHJhbnNmb3JtPSJyb3RhdGUoLTkwIDE3MCAyMzIpIj4KICAgICAgICAgICAgPGxpbmUgeDE9IjE3MCIgeTE9IjIzMiIgeDI9IjE3MCIgeTI9IjE4MCIKICAgICAgICAgICAgICAgICAgc3Ryb2tlPSIjMUExQTFBIiBzdHJva2Utd2lkdGg9IjMuNSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIi8+CiAgICAgICAgICA8L2c+CiAgICAgICAgICA8IS0tIE1pbnV0ZSBoYW5kIChyb3RhdGVzIDEyw5cgZmFzdGVyKSAtLT4KICAgICAgICAgIDxnIGlkPSJtaW5IYW5kRyIgdHJhbnNmb3JtPSJyb3RhdGUoMCAxNzAgMjMyKSI+CiAgICAgICAgICAgIDxsaW5lIHgxPSIxNzAiIHkxPSIyMzIiIHgyPSIxNzAiIHkyPSIxNjgiCiAgICAgICAgICAgICAgICAgIHN0cm9rZT0iI0M4MTAyRSIgc3Ryb2tlLXdpZHRoPSIyLjUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIvPgogICAgICAgICAgPC9nPgogICAgICAgICAgPGNpcmNsZSBjeD0iMTcwIiBjeT0iMjMyIiByPSI0LjUiIGZpbGw9IiMwRjNEM0UiIHN0cm9rZT0iI0M4MTAyRSIgc3Ryb2tlLXdpZHRoPSIxLjUiLz4KICAgICAgICAgIDxjaXJjbGUgY3g9IjE3MCIgY3k9IjIzMiIgcj0iMS41IiBmaWxsPSIjQzgxMDJFIi8+CgogICAgICAgICAgPCEtLSBEYXkvdGltZSBjaGlwIGluIGxvd2VyIGhhbGYgb2YgY2xvY2sgLS0+CiAgICAgICAgICA8ZyBpZD0iZGF5Q2hpcCIgb3BhY2l0eT0iMCI+CiAgICAgICAgICAgIDxyZWN0IHg9IjExOCIgeT0iMjU3IiB3aWR0aD0iMTA0IiBoZWlnaHQ9IjIyIiByeD0iMTEiCiAgICAgICAgICAgICAgICAgIGZpbGw9IiMwRjNEM0UiIHN0cm9rZT0iIzJBNEE0QSIgc3Ryb2tlLXdpZHRoPSIxIi8+CiAgICAgICAgICAgIDx0ZXh0IGlkPSJkYXlOYW1lIiB4PSIxNzAiIHk9IjI2OCIKICAgICAgICAgICAgICAgICAgdGV4dC1hbmNob3I9Im1pZGRsZSIgZG9taW5hbnQtYmFzZWxpbmU9Im1pZGRsZSIKICAgICAgICAgICAgICAgICAgZm9udC1mYW1pbHk9Ii1hcHBsZS1zeXN0ZW0sc3lzdGVtLXVpLHNhbnMtc2VyaWYiCiAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZT0iMTEiIGZvbnQtd2VpZ2h0PSI2MDAiCiAgICAgICAgICAgICAgICAgIGZpbGw9IiNDODEwMkUiPk1vbjwvdGV4dD4KICAgICAgICAgIDwvZz4KICAgICAgICA8L2c+CgogICAgICA8L3N2Zz4KICAgIDwvZGl2PgogIDwvZGl2PgoKICA8IS0tIOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkAogICAgICAgU0NFTkUgMyDigJQgWkVSTyBDT09SRElOQVRJT04gKGF1dG9ub21vdXMgcGFyYWxsZWwgbGFuZXMpCiAgICAgICAKICAgICAgIDQgaG9yaXpvbnRhbCBsYW5lcywgZWFjaCBjYXJyeWluZyBhbiBhY3RvciBpbiBhIGRlcGFydG1lbnQKICAgICAgIGNvbG9yLiBFYWNoIGFjdG9yIG1vdmVzIGxlZnQg4oaSIHJpZ2h0IGF0IGl0cyBvd24gc2xpZ2h0bHkKICAgICAgIHZhcmllZCBwYWNlLCBidXQgYWxsIHJlYWNoIGNvbXBsZXRpb24gc2ltdWx0YW5lb3VzbHkuCiAgICAgICBQYXRocyBuZXZlciBpbnRlcnNlY3QgKHBhcmFsbGVsIGJ5IGRlc2lnbikuCiAgICAgICAKICAgICAgIExhbmUgeTogMTk2LCAyMjAsIDI0NCwgMjY4ICgyNHB4IHN0cmlkZSkKICAgICAgIExhbmUgeCByYW5nZTogODAg4oaSIDI2MCAoMTgwcHggdHJhdmVsKQogICAgICAgQWN0b3IgcmFkaXVzOiA2CiAgICAgICBFYWNoIGxhbmUgZW5kcyB3aXRoIGEgZ3JlZW4gY2hlY2sgdGhhdCBsaWdodHMgdXAgb24gYXJyaXZhbAogICAgICAg4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQIC0tPgogIDxkaXYgY2xhc3M9InN0ZXAiIGlkPSJzY2VuZTMiPgogICAgPGRpdiBjbGFzcz0ic3RlcC1pbm5lciI+CiAgICAgIDxzdmcgd2lkdGg9IjM0MCIgaGVpZ2h0PSI0MzAiIHZpZXdCb3g9IjAgMCAzNDAgNDMwIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgoKICAgICAgICA8dGV4dCBpZD0iczNDYXB0aW9uIiB4PSIxNzAiIHk9IjExNiIgdGV4dC1hbmNob3I9Im1pZGRsZSIKICAgICAgICAgICAgICBmb250LWZhbWlseT0iLWFwcGxlLXN5c3RlbSxzeXN0ZW0tdWksc2Fucy1zZXJpZiIKICAgICAgICAgICAgICBmb250LXNpemU9IjEwIiBmb250LXdlaWdodD0iNjAwIiBsZXR0ZXItc3BhY2luZz0iMiIKICAgICAgICAgICAgICBmaWxsPSIjQzJDMkMyIiBvcGFjaXR5PSIwIj5aRVJPIENPT1JESU5BVElPTjwvdGV4dD4KCiAgICAgICAgPHRleHQgaWQ9InMzU3RhdHVzIiB4PSIxNzAiIHk9IjE0MiIgdGV4dC1hbmNob3I9Im1pZGRsZSIKICAgICAgICAgICAgICBmb250LWZhbWlseT0iLWFwcGxlLXN5c3RlbSxzeXN0ZW0tdWksc2Fucy1zZXJpZiIKICAgICAgICAgICAgICBmb250LXNpemU9IjEzIiBmb250LXdlaWdodD0iNTAwIgogICAgICAgICAgICAgIGZpbGw9IiMxQTFBMUEiIG9wYWNpdHk9IjAiPkRlcGFydG1lbnRzIHJ1bm5pbmcgaW5kZXBlbmRlbnRseTwvdGV4dD4KCiAgICAgICAgPCEtLSDilIDilIDilIAgTGFuZSBsYWJlbHMgKGxlZnQgc2lkZSwgZGltIHRlYWwpIOKUgOKUgOKUgCAtLT4KICAgICAgICA8ZyBpZD0iczNMYWJlbHMiIG9wYWNpdHk9IjAiPgogICAgICAgICAgPHRleHQgeD0iNTAiIHk9IjIwMCIgdGV4dC1hbmNob3I9ImVuZCIKICAgICAgICAgICAgICAgIGZvbnQtZmFtaWx5PSItYXBwbGUtc3lzdGVtLHN5c3RlbS11aSxzYW5zLXNlcmlmIgogICAgICAgICAgICAgICAgZm9udC1zaXplPSI4IiBmb250LXdlaWdodD0iNzAwIiBsZXR0ZXItc3BhY2luZz0iMS41IgogICAgICAgICAgICAgICAgZmlsbD0iI0M4MTAyRSI+RU5HPC90ZXh0PgogICAgICAgICAgPHRleHQgeD0iNTAiIHk9IjIyNCIgdGV4dC1hbmNob3I9ImVuZCIKICAgICAgICAgICAgICAgIGZvbnQtZmFtaWx5PSItYXBwbGUtc3lzdGVtLHN5c3RlbS11aSxzYW5zLXNlcmlmIgogICAgICAgICAgICAgICAgZm9udC1zaXplPSI4IiBmb250LXdlaWdodD0iNzAwIiBsZXR0ZXItc3BhY2luZz0iMS41IgogICAgICAgICAgICAgICAgZmlsbD0iI0M4MTAyRSI+REVTSUdOPC90ZXh0PgogICAgICAgICAgPHRleHQgeD0iNTAiIHk9IjI0OCIgdGV4dC1hbmNob3I9ImVuZCIKICAgICAgICAgICAgICAgIGZvbnQtZmFtaWx5PSItYXBwbGUtc3lzdGVtLHN5c3RlbS11aSxzYW5zLXNlcmlmIgogICAgICAgICAgICAgICAgZm9udC1zaXplPSI4IiBmb250LXdlaWdodD0iNzAwIiBsZXR0ZXItc3BhY2luZz0iMS41IgogICAgICAgICAgICAgICAgZmlsbD0iI0M4MTAyRSI+SFI8L3RleHQ+CiAgICAgICAgICA8dGV4dCB4PSI1MCIgeT0iMjcyIiB0ZXh0LWFuY2hvcj0iZW5kIgogICAgICAgICAgICAgICAgZm9udC1mYW1pbHk9Ii1hcHBsZS1zeXN0ZW0sc3lzdGVtLXVpLHNhbnMtc2VyaWYiCiAgICAgICAgICAgICAgICBmb250LXNpemU9IjgiIGZvbnQtd2VpZ2h0PSI3MDAiIGxldHRlci1zcGFjaW5nPSIxLjUiCiAgICAgICAgICAgICAgICBmaWxsPSIjRUZFNkREIj5PUFM8L3RleHQ+CiAgICAgICAgPC9nPgoKICAgICAgICA8IS0tIOKUgOKUgOKUgCBMYW5lIHRyYWNrcyDilIDilIDilIAgLS0+CiAgICAgICAgPGcgaWQ9InMzTGFuZXMiIG9wYWNpdHk9IjAiPgogICAgICAgICAgPGxpbmUgeDE9IjYyIiB5MT0iMTk2IiB4Mj0iMjYyIiB5Mj0iMTk2IiBzdHJva2U9IiMwRjNEM0UiIHN0cm9rZS13aWR0aD0iMyIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIi8+CiAgICAgICAgICA8bGluZSB4MT0iNjIiIHkxPSIyMjAiIHgyPSIyNjIiIHkyPSIyMjAiIHN0cm9rZT0iIzBGM0QzRSIgc3Ryb2tlLXdpZHRoPSIzIiBzdHJva2UtbGluZWNhcD0icm91bmQiLz4KICAgICAgICAgIDxsaW5lIHgxPSI2MiIgeTE9IjI0NCIgeDI9IjI2MiIgeTI9IjI0NCIgc3Ryb2tlPSIjMEYzRDNFIiBzdHJva2Utd2lkdGg9IjMiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIvPgogICAgICAgICAgPGxpbmUgeDE9IjYyIiB5MT0iMjY4IiB4Mj0iMjYyIiB5Mj0iMjY4IiBzdHJva2U9IiMwRjNEM0UiIHN0cm9rZS13aWR0aD0iMyIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIi8+CgogICAgICAgICAgPCEtLSBUcmFpbGluZy9hY3RpdmUgcG9ydGlvbnMgKGRyYXduIGJlaGluZCBhY3RvcnMgdmlhIEpTKSAtLT4KICAgICAgICAgIDxsaW5lIGlkPSJ0cmFpbDAiIHgxPSI2MiIgeTE9IjE5NiIgeDI9IjYyIiB5Mj0iMTk2IgogICAgICAgICAgICAgICAgc3Ryb2tlPSIjQzgxMDJFIiBzdHJva2Utd2lkdGg9IjMiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgb3BhY2l0eT0iLjciLz4KICAgICAgICAgIDxsaW5lIGlkPSJ0cmFpbDEiIHgxPSI2MiIgeTE9IjIyMCIgeDI9IjYyIiB5Mj0iMjIwIgogICAgICAgICAgICAgICAgc3Ryb2tlPSIjQzgxMDJFIiBzdHJva2Utd2lkdGg9IjMiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgb3BhY2l0eT0iLjciLz4KICAgICAgICAgIDxsaW5lIGlkPSJ0cmFpbDIiIHgxPSI2MiIgeTE9IjI0NCIgeDI9IjYyIiB5Mj0iMjQ0IgogICAgICAgICAgICAgICAgc3Ryb2tlPSIjQzgxMDJFIiBzdHJva2Utd2lkdGg9IjMiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgb3BhY2l0eT0iLjciLz4KICAgICAgICAgIDxsaW5lIGlkPSJ0cmFpbDMiIHgxPSI2MiIgeTE9IjI2OCIgeDI9IjYyIiB5Mj0iMjY4IgogICAgICAgICAgICAgICAgc3Ryb2tlPSIjRUZFNkREIiBzdHJva2Utd2lkdGg9IjMiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgb3BhY2l0eT0iLjciLz4KICAgICAgICA8L2c+CgogICAgICAgIDwhLS0g4pSA4pSA4pSAIEFjdG9ycyAob25lIHBlciBsYW5lKSDilIDilIDilIAgLS0+CiAgICAgICAgPGcgaWQ9InMzQWN0b3JzIiBvcGFjaXR5PSIwIj4KICAgICAgICAgIDxjaXJjbGUgaWQ9ImFjdG9yMCIgY3g9IjYyIiBjeT0iMTk2IiByPSI2IiBmaWxsPSIjQzgxMDJFIi8+CiAgICAgICAgICA8Y2lyY2xlIGlkPSJhY3RvcjEiIGN4PSI2MiIgY3k9IjIyMCIgcj0iNiIgZmlsbD0iI0M4MTAyRSIvPgogICAgICAgICAgPGNpcmNsZSBpZD0iYWN0b3IyIiBjeD0iNjIiIGN5PSIyNDQiIHI9IjYiIGZpbGw9IiNDODEwMkUiLz4KICAgICAgICAgIDxjaXJjbGUgaWQ9ImFjdG9yMyIgY3g9IjYyIiBjeT0iMjY4IiByPSI2IiBmaWxsPSIjRUZFNkREIi8+CiAgICAgICAgPC9nPgoKICAgICAgICA8IS0tIOKUgOKUgOKUgCBDb21wbGV0aW9uIGNoZWNrbWFya3MgKHJpZ2h0IGVuZCBvZiBlYWNoIGxhbmUpIOKUgOKUgOKUgCAtLT4KICAgICAgICA8ZyBpZD0iczNDaGVja3MiIG9wYWNpdHk9IjAiPgogICAgICAgICAgPGcgaWQ9ImNoZWNrMCIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMjgwLDE5Nikgc2NhbGUoMCkiPgogICAgICAgICAgICA8Y2lyY2xlIHI9IjkiIGZpbGw9IiNDODEwMkUiLz4KICAgICAgICAgICAgPHBvbHlsaW5lIHBvaW50cz0iLTQsMCAtMSwzIDQsLTMiCiAgICAgICAgICAgICAgICAgICAgICBmaWxsPSJub25lIiBzdHJva2U9IiMwRjNEM0UiIHN0cm9rZS13aWR0aD0iMS44IgogICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+CiAgICAgICAgICA8L2c+CiAgICAgICAgICA8ZyBpZD0iY2hlY2sxIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgyODAsMjIwKSBzY2FsZSgwKSI+CiAgICAgICAgICAgIDxjaXJjbGUgcj0iOSIgZmlsbD0iI0M4MTAyRSIvPgogICAgICAgICAgICA8cG9seWxpbmUgcG9pbnRzPSItNCwwIC0xLDMgNCwtMyIKICAgICAgICAgICAgICAgICAgICAgIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzBGM0QzRSIgc3Ryb2tlLXdpZHRoPSIxLjgiCiAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4KICAgICAgICAgIDwvZz4KICAgICAgICAgIDxnIGlkPSJjaGVjazIiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDI4MCwyNDQpIHNjYWxlKDApIj4KICAgICAgICAgICAgPGNpcmNsZSByPSI5IiBmaWxsPSIjQzgxMDJFIi8+CiAgICAgICAgICAgIDxwb2x5bGluZSBwb2ludHM9Ii00LDAgLTEsMyA0LC0zIgogICAgICAgICAgICAgICAgICAgICAgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjMEYzRDNFIiBzdHJva2Utd2lkdGg9IjEuOCIKICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPgogICAgICAgICAgPC9nPgogICAgICAgICAgPGcgaWQ9ImNoZWNrMyIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMjgwLDI2OCkgc2NhbGUoMCkiPgogICAgICAgICAgICA8Y2lyY2xlIHI9IjkiIGZpbGw9IiNDODEwMkUiLz4KICAgICAgICAgICAgPHBvbHlsaW5lIHBvaW50cz0iLTQsMCAtMSwzIDQsLTMiCiAgICAgICAgICAgICAgICAgICAgICBmaWxsPSJub25lIiBzdHJva2U9IiMwRjNEM0UiIHN0cm9rZS13aWR0aD0iMS44IgogICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+CiAgICAgICAgICA8L2c+CiAgICAgICAgPC9nPgoKICAgICAgICA8IS0tIOKUgOKUgOKUgCBGaW5hbCB1bmlmaWVkIGdsb3cgKHdoZW4gYWxsIDQgYWN0b3JzIGFycml2ZSB0b2dldGhlcikg4pSA4pSA4pSAIC0tPgogICAgICAgIDxyZWN0IGlkPSJzeW5jR2xvdyIgeD0iNDQiIHk9IjE4MCIgd2lkdGg9IjI1MiIgaGVpZ2h0PSIxMDQiIHJ4PSIxNCIKICAgICAgICAgICAgICBmaWxsPSJub25lIiBzdHJva2U9IiNDODEwMkUiIHN0cm9rZS13aWR0aD0iMiIgb3BhY2l0eT0iMCIvPgoKICAgICAgPC9zdmc+CiAgICA8L2Rpdj4KICA8L2Rpdj4KCjwvZGl2PgoKPC9kaXY+Cgo8c2NyaXB0PgooZnVuY3Rpb24oKXsKICBjb25zdCBsZXJwICA9IChhLGIsdCk9PmErKGItYSkqdDsKICBjb25zdCBjbGFtcCA9ICh2LGxvLGhpKT0+TWF0aC5tYXgobG8sTWF0aC5taW4oaGksdikpOwogIGNvbnN0IG5vcm0gID0gKHYsbG8saGkpPT5jbGFtcCgodi1sbykvKGhpLWxvKSwwLDEpOwogIGNvbnN0IGVvICAgID0gdD0+MS1NYXRoLnBvdygxLXQsMyk7CiAgY29uc3QgZWlvICAgPSB0PT50PC41PzQqdCp0KnQ6MS1NYXRoLnBvdygtMip0KzIsMykvMjsKICBjb25zdCBlaSAgICA9IHQ9PnQqdCp0OwoKICAvLyBTY2VuZSByZWZzCiAgY29uc3Qgc2NlbmUxID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3NjZW5lMScpOwogIGNvbnN0IHNjZW5lMiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzY2VuZTInKTsKICBjb25zdCBzY2VuZTMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc2NlbmUzJyk7CgogIC8vIFNjZW5lIDEKICBjb25zdCBzMUNhcHRpb24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnczFDYXB0aW9uJyk7CiAgY29uc3QgczFMYWJlbHMgID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3MxTGFiZWxzJyk7CiAgY29uc3QgczFUb3RhbCAgID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3MxVG90YWwnKTsKICBjb25zdCB0YXNrcyAgICAgPSBBcnJheS5mcm9tKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy50YXNrJykpOwoKICAvLyBTY2VuZSAyCiAgY29uc3QgczJDYXB0aW9uICA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzMkNhcHRpb24nKTsKICBjb25zdCBjbG9jayAgICAgID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2Nsb2NrJyk7CiAgY29uc3QgY2xvY2tIYWxvICA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjbG9ja0hhbG8nKTsKICBjb25zdCBob3VySGFuZCAgID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2hvdXJIYW5kRycpOwogIGNvbnN0IG1pbkhhbmQgICAgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbWluSGFuZEcnKTsKICBjb25zdCBkYXlDaGlwICAgID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2RheUNoaXAnKTsKICBjb25zdCBkYXlOYW1lICAgID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2RheU5hbWUnKTsKCiAgLy8gU2NlbmUgMwogIGNvbnN0IHMzQ2FwdGlvbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzM0NhcHRpb24nKTsKICBjb25zdCBzM1N0YXR1cyAgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnczNTdGF0dXMnKTsKICBjb25zdCBzM0xhYmVscyAgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnczNMYWJlbHMnKTsKICBjb25zdCBzM0xhbmVzICAgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnczNMYW5lcycpOwogIGNvbnN0IHMzQWN0b3JzICA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzM0FjdG9ycycpOwogIGNvbnN0IHMzQ2hlY2tzICA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzM0NoZWNrcycpOwogIGNvbnN0IHN5bmNHbG93ICA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzeW5jR2xvdycpOwogIGNvbnN0IGFjdG9ycyAgICA9IFsKICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhY3RvcjAnKSwKICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhY3RvcjEnKSwKICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhY3RvcjInKSwKICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhY3RvcjMnKQogIF07CiAgY29uc3QgdHJhaWxzID0gWwogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RyYWlsMCcpLAogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RyYWlsMScpLAogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RyYWlsMicpLAogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RyYWlsMycpCiAgXTsKICBjb25zdCBjaGVja3MgPSBbCiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY2hlY2swJyksCiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY2hlY2sxJyksCiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY2hlY2syJyksCiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY2hlY2szJykKICBdOwoKICAvKiDilIDilIDilIAgUGhhc2UgdGltaW5ncyAobXMpIOKUgOKUgOKUgCAqLwogIGNvbnN0IFQgPSB7CiAgICAvLyBTQ0VORSAxIOKAlCB0YXNrcyBhY3Jvc3MgZGVwYXJ0bWVudHMKICAgIHMxX2NhcF9pbl9zICAgIDogMjAwLAogICAgczFfY2FwX2luX2UgICAgOiAxMTAwLAogICAgczFfbGFiZWxzX2luX3MgOiA2MDAsCiAgICBzMV9sYWJlbHNfaW5fZSA6IDE1MDAsCiAgICBzMV90YXNrc19pbl9zICA6IDkwMCwKICAgIHMxX3Rhc2tzX2luX2UgIDogMzUwMCwgICAgLy8gc3RhZ2dlcmVkIGZhZGUtaW4gb3ZlciAyLjZzICgyMyB0YXNrcykKICAgIHMxX3RvdGFsX2luX3MgIDogMzMwMCwKICAgIHMxX3RvdGFsX2luX2UgIDogNDAwMCwKICAgIC8vIEhvbGQgY29tcGxldGUgc3RhdGUgfjEuNXMKICAgIHMxX2NvbnNvbGlkYXRlX3M6IDU1MDAsCiAgICBzMV9jb25zb2xpZGF0ZV9lOiA2NTAwLAogICAgc2NlbmUyX2F0ICAgICAgOiA2ODAwLAoKICAgIC8vIFNDRU5FIDIg4oCUIGNsb2NrIHN3ZWVwIHRvIFRodSA4IEFNCiAgICBzMl9jYXBfaW4gICAgICA6IDcwMDAsCiAgICBzMl9jbG9ja19pbiAgICA6IDc0MDAsCiAgICBzMl9jaGlwX2luICAgICA6IDc5MDAsCiAgICBzMl9zd2VlcF9zICAgICA6IDgzMDAsCiAgICBzMl9zd2VlcF9lICAgICA6IDEyNTAwLCAgICAvLyA0LjJzIHN3ZWVwCiAgICBzMl9zZXR0bGVfZSAgICA6IDEzMjAwLAogICAgc2NlbmUzX2F0ICAgICAgOiAxMzgwMCwKCiAgICAvLyBTQ0VORSAzIOKAlCB6ZXJvIGNvb3JkaW5hdGlvbgogICAgczNfY2FwX2luICAgICAgOiAxNDAwMCwKICAgIHMzX3N0YXR1c19pbiAgIDogMTQzMDAsCiAgICBzM19sYWJlbHNfaW4gICA6IDE0NTAwLAogICAgczNfbGFuZXNfaW4gICAgOiAxNDcwMCwKICAgIHMzX2FjdG9yc19pbiAgIDogMTUwMDAsCiAgICBzM190cmF2ZWxfcyAgICA6IDE1NTAwLAogICAgczNfdHJhdmVsX2UgICAgOiAxOTIwMCwgICAgLy8gMy43cyB0cmF2ZWwKICAgIHMzX2NvbXBsZXRlX2F0IDogMTkyMDAsCiAgICBzM19nbG93X3MgICAgICA6IDE5MjAwLAogICAgczNfZ2xvd19lICAgICAgOiAyMDgwMCwKCiAgICBsb29wICAgICAgICAgICA6IDIzMDAwCiAgfTsKCiAgLyog4pSA4pSA4pSAIERheSBsYWJlbHMgZm9yIGNsb2NrIGNoaXAg4pSA4pSA4pSAICovCiAgY29uc3QgREFZUyA9IFsKICAgIHsgbmFtZTogJ01vbicsICAgICAgICAgICB1bnRpbEZyYWN0aW9uOiAwLjIwIH0sCiAgICB7IG5hbWU6ICdUdWUnLCAgICAgICAgICAgdW50aWxGcmFjdGlvbjogMC40NSB9LAogICAgeyBuYW1lOiAnV2VkJywgICAgICAgICAgIHVudGlsRnJhY3Rpb246IDAuNzUgfSwKICAgIHsgbmFtZTogJ1RodSDCtyA4OjAwIEFNJywgdW50aWxGcmFjdGlvbjogMS4wMSB9CiAgXTsKCiAgLyogUGVyLWxhbmUgYWN0b3IgY29uZmlndXJhdGlvbnMKICAgICBFYWNoIGFjdG9yOiBsYW5lIHksIGNvbG9yLCBwYWNlIHZhcmlhdGlvbiwgZWFzaW5nLgogICAgIEFsbCBjb21wbGV0ZSBhdCBzYW1lIGZpbmFsIHRpbWUgYnV0IGdldCB0aGVyZSB3aXRoIHNsaWdodAogICAgIHZhcmlhdGlvbiDigJQgZmVlbHMgYXV0b25vbW91cywgbm90IHN5bmNocm9uaXplZC1ieS1jb250cm9sLiAqLwogIGNvbnN0IExBTkVTID0gWwogICAgeyB5OiAxOTYsIGNvbG9yOiAnI0M4MTAyRScsIGRlbGF5OiAwLCAgICBkdXJhdGlvbjogMzcwMCB9LAogICAgeyB5OiAyMjAsIGNvbG9yOiAnI0M4MTAyRScsIGRlbGF5OiAyMDAsICBkdXJhdGlvbjogMzUwMCB9LAogICAgeyB5OiAyNDQsIGNvbG9yOiAnI0M4MTAyRScsIGRlbGF5OiAxMDAsICBkdXJhdGlvbjogMzYwMCB9LAogICAgeyB5OiAyNjgsIGNvbG9yOiAnI0VGRTZERCcsIGRlbGF5OiAzMDAsICBkdXJhdGlvbjogMzQwMCB9CiAgXTsKICAvLyBFYXNpbmcgdmFyaWF0aW9uIHBlciBsYW5lIChzdWJ0bGUpCiAgY29uc3QgTEFORV9FQVNJTkdTID0gW2VpbywgZW8sIGVpbywgZW9dOwoKICBjb25zdCB0MCA9IHBlcmZvcm1hbmNlLm5vdygpOwoKICBmdW5jdGlvbiBmcmFtZShub3cpewogICAgY29uc3QgZSA9IChub3cgLSB0MCkgJSBULmxvb3A7CgogICAgLyog4pWQ4pWQ4pWQ4pWQ4pWQIFNDRU5FIE1BTkFHRU1FTlQg4pWQ4pWQ4pWQ4pWQ4pWQICovCiAgICBpZihlIDwgVC5zY2VuZTJfYXQpewogICAgICBzY2VuZTEuY2xhc3NMaXN0LmFkZCgnYWN0aXZlJyk7CiAgICAgIHNjZW5lMi5jbGFzc0xpc3QucmVtb3ZlKCdhY3RpdmUnKTsKICAgICAgc2NlbmUzLmNsYXNzTGlzdC5yZW1vdmUoJ2FjdGl2ZScpOwogICAgfSBlbHNlIGlmKGUgPCBULnNjZW5lM19hdCl7CiAgICAgIHNjZW5lMS5jbGFzc0xpc3QucmVtb3ZlKCdhY3RpdmUnKTsKICAgICAgc2NlbmUyLmNsYXNzTGlzdC5hZGQoJ2FjdGl2ZScpOwogICAgICBzY2VuZTMuY2xhc3NMaXN0LnJlbW92ZSgnYWN0aXZlJyk7CiAgICB9IGVsc2UgewogICAgICBzY2VuZTEuY2xhc3NMaXN0LnJlbW92ZSgnYWN0aXZlJyk7CiAgICAgIHNjZW5lMi5jbGFzc0xpc3QucmVtb3ZlKCdhY3RpdmUnKTsKICAgICAgc2NlbmUzLmNsYXNzTGlzdC5hZGQoJ2FjdGl2ZScpOwogICAgfQoKICAgIC8qIOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkAogICAgICAgU0NFTkUgMSDigJQgMjMgVEFTS1MKICAgICAgIOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkCAqLwogICAgaWYoZSA8IFQuc2NlbmUyX2F0KXsKICAgICAgLy8gQ2FwdGlvbiArIGxhYmVscyBmYWRlIGluCiAgICAgIGNvbnN0IGNQID0gbm9ybShlLCBULnMxX2NhcF9pbl9zLCBULnMxX2NhcF9pbl9lKTsKICAgICAgczFDYXB0aW9uLnNldEF0dHJpYnV0ZSgnb3BhY2l0eScsIFN0cmluZyhlbyhjUCkpKTsKCiAgICAgIGNvbnN0IGxQID0gbm9ybShlLCBULnMxX2xhYmVsc19pbl9zLCBULnMxX2xhYmVsc19pbl9lKTsKICAgICAgczFMYWJlbHMuc2V0QXR0cmlidXRlKCdvcGFjaXR5JywgU3RyaW5nKGVvKGxQKSkpOwoKICAgICAgLy8gVGFza3MgZmFkZSBpbiBzdGFnZ2VyZWQgKGFib3V0IDEwMG1zIHBlciB0YXNrIGFjcm9zcyAyMyB0YXNrcykKICAgICAgY29uc3QgdGFza1dpbmRvdyA9IFQuczFfdGFza3NfaW5fZSAtIFQuczFfdGFza3NfaW5fczsKICAgICAgY29uc3QgcGVyVGFzayA9IHRhc2tXaW5kb3cgLyAyMzsKICAgICAgdGFza3MuZm9yRWFjaCgodGFzaywgaSkgPT4gewogICAgICAgIGNvbnN0IHRhc2tTdGFydCA9IFQuczFfdGFza3NfaW5fcyArIGkgKiAocGVyVGFzayAqIDAuNSk7IC8vIG92ZXJsYXAKICAgICAgICBjb25zdCB0YXNrRW5kID0gdGFza1N0YXJ0ICsgNDAwOwogICAgICAgIGNvbnN0IHRQID0gbm9ybShlLCB0YXNrU3RhcnQsIHRhc2tFbmQpOwoKICAgICAgICAvLyBEZWZhdWx0OiBzY2FsZSAxLCBwb3NpdGlvbiBmcm9tIGF0dHJpYnV0ZQogICAgICAgIGxldCBzY2FsZSA9IDE7CiAgICAgICAgbGV0IG9wYWNpdHkgPSBlbyh0UCk7CiAgICAgICAgbGV0IGR4ID0gMCwgZHkgPSAwOwoKICAgICAgICAvLyBDT05TT0xJREFUSU9OIHBoYXNlOiB0YXNrcyBzbGlkZSB0b3dhcmQgY2VudGVyICgxNzAsIDIzMikKICAgICAgICAvLyBhbmQgc2NhbGUgZG93bi4gVGhpcyBpcyB0aGUgYnJpZGdlIGludG8gc2NlbmUgMiDigJQgdGhlCiAgICAgICAgLy8gdGFza3MgdmFuaXNoIGludG8gdGhlIHNwb3Qgd2hlcmUgdGhlIGNsb2NrIHdpbGwgYXBwZWFyLgogICAgICAgIGlmKGUgPj0gVC5zMV9jb25zb2xpZGF0ZV9zKXsKICAgICAgICAgIGNvbnN0IGNvblAgPSBub3JtKGUsIFQuczFfY29uc29saWRhdGVfcywgVC5zMV9jb25zb2xpZGF0ZV9lKTsKICAgICAgICAgIGNvbnN0IGNvbkUgPSBlaW8oY29uUCk7CgogICAgICAgICAgLy8gR2V0IHRoZSB0YXNrJ3Mgb3JpZ2luYWwgY3gsIGN5IGZyb20gaXRzIGF0dHJpYnV0ZXMKICAgICAgICAgIC8vIChyZWN0J3MgY2VudGVyID0geCArIDQsIHkgKyA0IHNpbmNlIHdpZHRoL2hlaWdodCA9IDgpCiAgICAgICAgICBjb25zdCBiYXNlWCA9IHBhcnNlRmxvYXQodGFzay5nZXRBdHRyaWJ1dGUoJ3gnKSkgKyA0OwogICAgICAgICAgY29uc3QgYmFzZVkgPSBwYXJzZUZsb2F0KHRhc2suZ2V0QXR0cmlidXRlKCd5JykpICsgNDsKICAgICAgICAgIGR4ID0gKDE3MCAtIGJhc2VYKSAqIGNvbkU7CiAgICAgICAgICBkeSA9ICgyMzIgLSBiYXNlWSkgKiBjb25FOwogICAgICAgICAgc2NhbGUgPSAxIC0gY29uRTsKICAgICAgICAgIG9wYWNpdHkgPSBlbyh0UCkgKiAoMSAtIGVvKGNvblApKTsKICAgICAgICB9CgogICAgICAgIC8vIEFwcGx5IHRyYW5zZm9ybSBhcm91bmQgdGhlIHRhc2sncyBvd24gY2VudGVyCiAgICAgICAgY29uc3QgYmFzZVggPSBwYXJzZUZsb2F0KHRhc2suZ2V0QXR0cmlidXRlKCd4JykpICsgNDsKICAgICAgICBjb25zdCBiYXNlWSA9IHBhcnNlRmxvYXQodGFzay5nZXRBdHRyaWJ1dGUoJ3knKSkgKyA0OwogICAgICAgIHRhc2suc2V0QXR0cmlidXRlKCd0cmFuc2Zvcm0nLAogICAgICAgICAgYHRyYW5zbGF0ZSgke2R4fSwke2R5fSkgdHJhbnNsYXRlKCR7YmFzZVh9LCR7YmFzZVl9KSBzY2FsZSgke3NjYWxlfSkgdHJhbnNsYXRlKCR7LWJhc2VYfSwkey1iYXNlWX0pYCk7CiAgICAgICAgdGFzay5zZXRBdHRyaWJ1dGUoJ29wYWNpdHknLCBTdHJpbmcob3BhY2l0eSkpOwogICAgICB9KTsKCiAgICAgIC8vIFRvdGFsIGNvdW50IHRleHQKICAgICAgY29uc3QgdG90UCA9IG5vcm0oZSwgVC5zMV90b3RhbF9pbl9zLCBULnMxX3RvdGFsX2luX2UpOwogICAgICBsZXQgdG90T3AgPSBlbyh0b3RQKTsKICAgICAgLy8gRmFkZSBvdXQgZHVyaW5nIGNvbnNvbGlkYXRpb24KICAgICAgaWYoZSA+PSBULnMxX2NvbnNvbGlkYXRlX3MpewogICAgICAgIGNvbnN0IGNvblAgPSBub3JtKGUsIFQuczFfY29uc29saWRhdGVfcywgVC5zMV9jb25zb2xpZGF0ZV9zICsgNjAwKTsKICAgICAgICB0b3RPcCAqPSAoMSAtIGVvKGNvblApKTsKICAgICAgfQogICAgICBzMVRvdGFsLnNldEF0dHJpYnV0ZSgnb3BhY2l0eScsIFN0cmluZyh0b3RPcCkpOwoKICAgICAgLy8gRGVwYXJ0bWVudCBsYWJlbHMgYWxzbyBmYWRlIG91dCBkdXJpbmcgY29uc29saWRhdGlvbgogICAgICBpZihlID49IFQuczFfY29uc29saWRhdGVfcyl7CiAgICAgICAgY29uc3QgY29uUCA9IG5vcm0oZSwgVC5zMV9jb25zb2xpZGF0ZV9zLCBULnMxX2NvbnNvbGlkYXRlX3MgKyA2MDApOwogICAgICAgIHMxTGFiZWxzLnNldEF0dHJpYnV0ZSgnb3BhY2l0eScsIFN0cmluZyhlbyhsUCkgKiAoMSAtIGVvKGNvblApKSkpOwogICAgICB9CiAgICB9CgogICAgLyog4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQCiAgICAgICBTQ0VORSAyIOKAlCBDTE9DSyBTV0VFUFMgVE8gVEhVIDggQU0KICAgICAgIOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkCAqLwogICAgaWYoZSA+PSBULnNjZW5lMl9hdCAmJiBlIDwgVC5zY2VuZTNfYXQpewogICAgICBjb25zdCBjUCA9IG5vcm0oZSwgVC5zMl9jYXBfaW4sIFQuczJfY2FwX2luICsgNTAwKTsKICAgICAgczJDYXB0aW9uLnNldEF0dHJpYnV0ZSgnb3BhY2l0eScsIFN0cmluZyhlbyhjUCkpKTsKCiAgICAgIC8vIENsb2NrIGZhZGVzIGluIGZyb20gYSBzbWFsbCBzY2FsZSAoY29udGludWl0eSB3aXRoIHNjZW5lIDEKICAgICAgLy8gdGFza3MgY29uc29saWRhdGluZyBpbnRvIGEgcG9pbnQgYXQgdGhlIHNhbWUgY2VudGVyKQogICAgICBjb25zdCBja1AgPSBub3JtKGUsIFQuczJfY2xvY2tfaW4sIFQuczJfY2xvY2tfaW4gKyA4MDApOwogICAgICBjb25zdCBja0UgPSBlbyhja1ApOwogICAgICBjbG9jay5zZXRBdHRyaWJ1dGUoJ29wYWNpdHknLCBTdHJpbmcoY2tFKSk7CiAgICAgIGNvbnN0IGNrU2NhbGUgPSBsZXJwKDAuMywgMSwgZWlvKGNrUCkpOwogICAgICBjbG9jay5zZXRBdHRyaWJ1dGUoJ3RyYW5zZm9ybScsCiAgICAgICAgYHRyYW5zbGF0ZSgxNzAsMjMyKSBzY2FsZSgke2NrU2NhbGV9KSB0cmFuc2xhdGUoLTE3MCwtMjMyKWApOwoKICAgICAgLy8gRGF5IGNoaXAgZmFkZXMgaW4KICAgICAgY29uc3QgZGNQID0gbm9ybShlLCBULnMyX2NoaXBfaW4sIFQuczJfY2hpcF9pbiArIDUwMCk7CiAgICAgIGRheUNoaXAuc2V0QXR0cmlidXRlKCdvcGFjaXR5JywgU3RyaW5nKGVvKGRjUCkpKTsKCiAgICAgIC8vIEhvdXIgaGFuZCBzd2VlcDoKICAgICAgLy8gU3RhcnQgYW5nbGU6IC05MCAoMTIgbydjbG9jayBwb3NpdGlvbiwgYnV0IHdlIHdhbnQgdG8gc3RhcnQgYXQgOSBBTSkKICAgICAgLy8gQWN0dWFsbHksIHRoZSByb3RhdGlvbiBpbiBTVkc6IDDCsCA9IHBvaW50aW5nIHVwIChzaW5jZSB0aGUgbGluZQogICAgICAvLyBnb2VzIGZyb20gKDE3MCwyMzIpIHRvICgxNzAsMTgwKSDigJQgaS5lLiwgdXB3YXJkIGJ5IGRlZmF1bHQpLgogICAgICAvLyBGb3IgY2xvY2sgZmFjZTogMMKwID0gMTIgbydjbG9jaywgOTDCsCA9IDMgbydjbG9jaywgMTgwwrAgPSA2LCAyNzDCsCA9IDkuCiAgICAgIC8vCiAgICAgIC8vIFdlIHdhbnQ6IHN0YXJ0IGF0IE1vbiA5IEFNICgyNzDCsCksIGVuZCBhdCBUaHUgOCBBTSAoMjQwwrApLgogICAgICAvLyBUaGF0J3MgMyBkYXlzID0gNzIgcmVhbCBob3VycyA9IDYgZnVsbCBjbG9jayByZXZvbHV0aW9ucwogICAgICAvLyAoMSBjbG9jayByZXYgPSAxMiBob3VycyksIHNvIDYgw5cgMzYwwrAgPSAyMTYwwrAgb2YgaG91ciBoYW5kIHJvdGF0aW9uLgogICAgICAvLyBQbHVzIHRoZSAyNDAtMjcwID0gLTMwwrAgb2Zmc2V0LCBzbyB0b3RhbCA9IDIxNjAgLSAzMCA9IDIxMzDCsC4KICAgICAgLy8gTmV0OiBob3VyIGhhbmQgcm90YXRlcyAyMTMwwrAgZm9yd2FyZC4KICAgICAgLy8KICAgICAgLy8gVmlzdWFsbHkgd2UncmUgc2hvd2luZyB0aGUgdGltZS1wcm9ncmVzc2lvbiBlZmZlY3QsIG5vdCBsaXRlcmFsIGhvdXJzLgoKICAgICAgY29uc3Qgc3RhcnRBbmdsZSA9IDI3MDsgIC8vIDkgbydjbG9jawogICAgICBjb25zdCB0b3RhbFN3ZWVwID0gMjEzMDsgLy8gMyBkYXlzIG1pbnVzIGEgZmV3IGhvdXJzCgogICAgICBsZXQgaG91ckFuZ2xlID0gc3RhcnRBbmdsZTsKICAgICAgbGV0IG1pbkFuZ2xlID0gMDsKICAgICAgbGV0IGRheUlkeCA9IDA7CiAgICAgIGxldCBjaGlwQ29sb3IgPSAnI0M4MTAyRSc7CgogICAgICBpZihlIDwgVC5zMl9zd2VlcF9zKXsKICAgICAgICBob3VyQW5nbGUgPSBzdGFydEFuZ2xlOwogICAgICAgIG1pbkFuZ2xlID0gMDsKICAgICAgICBkYXlJZHggPSAwOwogICAgICB9IGVsc2UgaWYoZSA8IFQuczJfc3dlZXBfZSl7CiAgICAgICAgY29uc3Qgc1AgPSBub3JtKGUsIFQuczJfc3dlZXBfcywgVC5zMl9zd2VlcF9lKTsKICAgICAgICAvLyBVc2UgYSBzbGlnaHQgZWFzZS1vdXQgc28gaXQgc2xvd3MgYXMgaXQgYXJyaXZlcwogICAgICAgIGNvbnN0IHNFID0gZW8oc1ApOwogICAgICAgIGhvdXJBbmdsZSA9IHN0YXJ0QW5nbGUgKyB0b3RhbFN3ZWVwICogc0U7CiAgICAgICAgbWluQW5nbGUgPSB0b3RhbFN3ZWVwICogc0UgKiAxMjsgIC8vIDEyw5cgaG91ciBoYW5kCgogICAgICAgIC8vIERheSBuYW1lIGJhc2VkIG9uIHByb2dyZXNzCiAgICAgICAgZm9yKGxldCBpID0gMDsgaSA8IERBWVMubGVuZ3RoOyBpKyspewogICAgICAgICAgaWYoc1AgPD0gREFZU1tpXS51bnRpbEZyYWN0aW9uKXsKICAgICAgICAgICAgZGF5SWR4ID0gaTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGNoaXBDb2xvciA9IGRheUlkeCA9PT0gREFZUy5sZW5ndGggLSAxID8gJyNDODEwMkUnIDogJyNDODEwMkUnOwogICAgICB9IGVsc2UgewogICAgICAgIC8vIFNldHRsZWQgYXQgVGh1IDggQU0KICAgICAgICBob3VyQW5nbGUgPSBzdGFydEFuZ2xlICsgdG90YWxTd2VlcDsKICAgICAgICBtaW5BbmdsZSA9IHRvdGFsU3dlZXAgKiAxMjsKICAgICAgICBkYXlJZHggPSBEQVlTLmxlbmd0aCAtIDE7CiAgICAgICAgY2hpcENvbG9yID0gJyNDODEwMkUnOwogICAgICB9CgogICAgICBob3VySGFuZC5zZXRBdHRyaWJ1dGUoJ3RyYW5zZm9ybScsIGByb3RhdGUoJHtob3VyQW5nbGV9IDE3MCAyMzIpYCk7CiAgICAgIG1pbkhhbmQuc2V0QXR0cmlidXRlKCd0cmFuc2Zvcm0nLCBgcm90YXRlKCR7bWluQW5nbGV9IDE3MCAyMzIpYCk7CiAgICAgIGRheU5hbWUudGV4dENvbnRlbnQgPSBEQVlTW2RheUlkeF0ubmFtZTsKICAgICAgZGF5TmFtZS5zZXRBdHRyaWJ1dGUoJ2ZpbGwnLCBjaGlwQ29sb3IpOwoKICAgICAgLy8gSGFsbyBnbG93IHdoZW4gc2V0dGxlZAogICAgICBpZihlID49IFQuczJfc3dlZXBfZSl7CiAgICAgICAgY29uc3QgaGFsb1AgPSBub3JtKGUsIFQuczJfc3dlZXBfZSwgVC5zMl9zZXR0bGVfZSk7CiAgICAgICAgY2xvY2tIYWxvLnNldEF0dHJpYnV0ZSgnb3BhY2l0eScsIFN0cmluZyhNYXRoLnNpbihoYWxvUCAqIE1hdGguUEkpICogMC42KSk7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgY2xvY2tIYWxvLnNldEF0dHJpYnV0ZSgnb3BhY2l0eScsICcwJyk7CiAgICAgIH0KICAgIH0KCiAgICAvKiDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZAKICAgICAgIFNDRU5FIDMg4oCUIFpFUk8gQ09PUkRJTkFUSU9OCiAgICAgICDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZAgKi8KICAgIGlmKGUgPj0gVC5zY2VuZTNfYXQpewogICAgICBjb25zdCBjUCA9IG5vcm0oZSwgVC5zM19jYXBfaW4sIFQuczNfY2FwX2luICsgNTAwKTsKICAgICAgczNDYXB0aW9uLnNldEF0dHJpYnV0ZSgnb3BhY2l0eScsIFN0cmluZyhlbyhjUCkpKTsKCiAgICAgIGNvbnN0IHN0UCA9IG5vcm0oZSwgVC5zM19zdGF0dXNfaW4sIFQuczNfc3RhdHVzX2luICsgNTAwKTsKICAgICAgczNTdGF0dXMuc2V0QXR0cmlidXRlKCdvcGFjaXR5JywgU3RyaW5nKGVvKHN0UCkpKTsKCiAgICAgIGNvbnN0IGxQID0gbm9ybShlLCBULnMzX2xhYmVsc19pbiwgVC5zM19sYWJlbHNfaW4gKyA1MDApOwogICAgICBzM0xhYmVscy5zZXRBdHRyaWJ1dGUoJ29wYWNpdHknLCBTdHJpbmcoZW8obFApKSk7CgogICAgICBjb25zdCBsblAgPSBub3JtKGUsIFQuczNfbGFuZXNfaW4sIFQuczNfbGFuZXNfaW4gKyA1MDApOwogICAgICBzM0xhbmVzLnNldEF0dHJpYnV0ZSgnb3BhY2l0eScsIFN0cmluZyhlbyhsblApKSk7CgogICAgICBjb25zdCBhUCA9IG5vcm0oZSwgVC5zM19hY3RvcnNfaW4sIFQuczNfYWN0b3JzX2luICsgNTAwKTsKICAgICAgczNBY3RvcnMuc2V0QXR0cmlidXRlKCdvcGFjaXR5JywgU3RyaW5nKGVvKGFQKSkpOwogICAgICBzM0NoZWNrcy5zZXRBdHRyaWJ1dGUoJ29wYWNpdHknLCAnMScpOwoKICAgICAgLy8gVHJhdmVsIOKAlCBlYWNoIGFjdG9yIGFsb25nIGl0cyBsYW5lCiAgICAgIExBTkVTLmZvckVhY2goKGxhbmUsIGkpID0+IHsKICAgICAgICBjb25zdCBzdGFydFQgPSBULnMzX3RyYXZlbF9zICsgbGFuZS5kZWxheTsKICAgICAgICBjb25zdCBlbmRUID0gVC5zM190cmF2ZWxfcyArIGxhbmUuZHVyYXRpb24gKyBsYW5lLmRlbGF5OwogICAgICAgIC8vIEFkanVzdCBlbmRUIHNvIGFsbCBhY3RvcnMgY29tcGxldGUgYXQgVC5zM19jb21wbGV0ZV9hdAogICAgICAgIGNvbnN0IGZpbmFsRW5kVCA9IFQuczNfY29tcGxldGVfYXQ7CiAgICAgICAgY29uc3QgYWRqdXN0ZWREdXJhdGlvbiA9IGZpbmFsRW5kVCAtIHN0YXJ0VDsKCiAgICAgICAgbGV0IHByb2dyZXNzID0gMDsKICAgICAgICBpZihlIDwgc3RhcnRUKXsKICAgICAgICAgIHByb2dyZXNzID0gMDsKICAgICAgICB9IGVsc2UgaWYoZSA8IGZpbmFsRW5kVCl7CiAgICAgICAgICBjb25zdCBwID0gbm9ybShlLCBzdGFydFQsIGZpbmFsRW5kVCk7CiAgICAgICAgICBwcm9ncmVzcyA9IExBTkVfRUFTSU5HU1tpXShwKTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgcHJvZ3Jlc3MgPSAxOwogICAgICAgIH0KCiAgICAgICAgLy8gUG9zaXRpb246IHN0YXJ0IHg9NjIsIGVuZCB4PTI3NCAoanVzdCBiZWZvcmUgY2hlY2ttYXJrIGF0IDI4MCkKICAgICAgICBjb25zdCB4ID0gbGVycCg2MiwgMjc0LCBwcm9ncmVzcyk7CiAgICAgICAgYWN0b3JzW2ldLnNldEF0dHJpYnV0ZSgnY3gnLCBTdHJpbmcoeCkpOwoKICAgICAgICAvLyBUcmFpbCBsaW5lIGZvbGxvd3MgdGhlIGFjdG9yCiAgICAgICAgdHJhaWxzW2ldLnNldEF0dHJpYnV0ZSgneDInLCBTdHJpbmcoeCkpOwoKICAgICAgICAvLyBDaGVja21hcmsgc2NhbGVzIGluIHdoZW4gYWN0b3IgYXJyaXZlcwogICAgICAgIGlmKGUgPj0gZmluYWxFbmRUKXsKICAgICAgICAgIGNvbnN0IGNrUCA9IG5vcm0oZSwgZmluYWxFbmRULCBmaW5hbEVuZFQgKyA1MDApOwogICAgICAgICAgY2hlY2tzW2ldLnNldEF0dHJpYnV0ZSgndHJhbnNmb3JtJywKICAgICAgICAgICAgYHRyYW5zbGF0ZSgyODAsJHtsYW5lLnl9KSBzY2FsZSgke2VvKGNrUCl9KWApOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICBjaGVja3NbaV0uc2V0QXR0cmlidXRlKCd0cmFuc2Zvcm0nLAogICAgICAgICAgICBgdHJhbnNsYXRlKDI4MCwke2xhbmUueX0pIHNjYWxlKDApYCk7CiAgICAgICAgfQogICAgICB9KTsKCiAgICAgIC8vIFN0YXR1cyB0ZXh0IGNoYW5nZXMgd2hlbiBhbGwgYWN0b3JzIGNvbXBsZXRlCiAgICAgIGlmKGUgPj0gVC5zM19jb21wbGV0ZV9hdCl7CiAgICAgICAgczNTdGF0dXMudGV4dENvbnRlbnQgPSAnQ29tcGxldGUgwrcgVGh1IDg6MDAgQU0nOwogICAgICAgIHMzU3RhdHVzLnNldEF0dHJpYnV0ZSgnZmlsbCcsICcjQzgxMDJFJyk7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgczNTdGF0dXMudGV4dENvbnRlbnQgPSAnRGVwYXJ0bWVudHMgcnVubmluZyBpbmRlcGVuZGVudGx5JzsKICAgICAgICBzM1N0YXR1cy5zZXRBdHRyaWJ1dGUoJ2ZpbGwnLCAnIzFBMUExQScpOwogICAgICB9CgogICAgICAvLyBTeW5jIGdsb3cgcmluZyBhcm91bmQgd2hvbGUgY29tcG9zaXRpb24gd2hlbiBhbGwgY29tcGxldGUKICAgICAgaWYoZSA+PSBULnMzX2dsb3dfcyAmJiBlIDwgVC5zM19nbG93X2UpewogICAgICAgIGNvbnN0IGdQID0gbm9ybShlLCBULnMzX2dsb3dfcywgVC5zM19nbG93X2UpOwogICAgICAgIHN5bmNHbG93LnNldEF0dHJpYnV0ZSgnb3BhY2l0eScsIFN0cmluZyhNYXRoLnNpbihnUCAqIE1hdGguUEkpICogMC41KSk7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgc3luY0dsb3cuc2V0QXR0cmlidXRlKCdvcGFjaXR5JywgJzAnKTsKICAgICAgfQogICAgfQoKICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZShmcmFtZSk7CiAgfQogIHJlcXVlc3RBbmltYXRpb25GcmFtZShmcmFtZSk7Cn0pKCk7Cjwvc2NyaXB0Pgo8L2JvZHk+PC9odG1sPgo=", "PCFET0NUWVBFIGh0bWw+CjxodG1sPjxoZWFkPjxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KPHN0eWxlPgovKiDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZAKICAgdjY1IOKAlCBSZWZpbmVtZW50cyB0byB2NjQKICAgCiAgIFMxOiByZXBsYWNlZCBhYnN0cmFjdCAiQUkiIGRpc2Mgd2l0aCBjaGF0Ym90IGNoYXJhY3RlciBpY29uCiAgICAgICAocm91bmRlZCBoZWFkICsgYW50ZW5uYWUgd2l0aCBkb3QgdGlwcyArIGV5ZXMgKyBzbWlsZSk7CiAgICAgICBtb3ZlZCBjbG9zZXIgdG8gY2FudmFzIGNlbnRlciAoeD0yNzApIGZvciBjbGVhcmVyCiAgICAgICBpbnRlcmFjdGlvbiB3aXRoIHRoZSB1c2VyIHF1ZXJ5IGJ1YmJsZS4gQWN0aXZhdGlvbiBjcm9zc2ZhZGUKICAgICAgIG5vdyByZWNvbG9ycyBhbGwgY2hhcmFjdGVyIHBhcnRzIChoZWFkLCBhbnRlbm5hZSwgZXllcywgc21pbGUpLgogICBTMjogcmVkZXNpZ25lZCBsaXN0IHJvd3Mgd2l0aCBncmVlbiBjaGVjayBkaXNjcyAoaW5zdGVhZCBvZiBlbXB0eQogICAgICAgY2lyY2xlcykgKyBwZXItcm93IGRlcGFydG1lbnQgY29sb3JzIGN5Y2xpbmcgdGhyb3VnaCBwYWxldHRlCiAgICAgICAoRU5HL0RFU0lHTi9IUi9PUFMvRU5HKTsgdmFyaWVkIHN0cm9rZSBsZW5ndGhzIGZvciByaHl0aG07CiAgICAgICBpcnJlZ3VsYXIgZW50cnkgc3RhZ2dlciAoMTEwMCwgMTM4MCwgMTYyMCwgMTkwMCwgMjE2MCBtcyk7CiAgICAgICBzdWJ0bGUgc2xpZGUtdXAgZW50cnkgKGVhY2ggcm93IHNldHRsZXMgZnJvbSArNnB4IFkpLgogICBTNjogcmVwbGFjZWQgIlJFQURZIiB0ZXh0IGNhcHRpb24gd2l0aCBncmVlbiBwdWxzaW5nIGRvdAogICAgICAgaW5kaWNhdG9yIChhbHdheXMtb24gc3RhdHVzIGxpZ2h0IHdpdGggZXhwYW5kaW5nIHB1bHNlIHJpbmcpOwogICAgICAgbW92ZWQgV0VFSyAxIHRpdGxlIGFib3ZlIHRoZSBjYWxlbmRhciBzaGVsbCB0byBhdm9pZCBjb25mbGljdAogICAgICAgd2l0aCBjb2x1bW4gZGl2aWRlcnM7IHRyaW1tZWQgVEhVIGNvbHVtbiBoZWlnaHQgKyByZXBvc2l0aW9uZWQKICAgICAgIGF2YXRhciBsb3dlciBzbyBXRUxDT01FIGxhYmVsIGhhcyBjbGVhciBzZXBhcmF0aW9uOyB3cmFwcGVkCiAgICAgICBUSFUgKyBhdmF0YXIgKyBnbG93IGluIGEgZm9jYWwtc2hpZnQgZ3JvdXAgdGhhdCB0cmFuc2xhdGVzCiAgICAgICAtMzJweCBhZnRlciBmYWRlLW91dCwgY2VudGVyaW5nIFRIVSBvbiBjYW52YXMgKHg9MTcwKS4KICAg4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQICovCip7Ym94LXNpemluZzpib3JkZXItYm94O21hcmdpbjowO3BhZGRpbmc6MH0KYm9keXtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50fQouc3Rvcnl7CiAgZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjthbGlnbi1pdGVtczpjZW50ZXI7CiAgcGFkZGluZzoycmVtIDFyZW0gMi41cmVtOwogIGZvbnQtZmFtaWx5Oi1hcHBsZS1zeXN0ZW0sc3lzdGVtLXVpLHNhbnMtc2VyaWY7Cn0KLnNjZW5lLXdyYXB7cG9zaXRpb246cmVsYXRpdmU7d2lkdGg6MzQwcHg7aGVpZ2h0OjQzMHB4fQoKLnN0ZXB7CiAgcG9zaXRpb246YWJzb2x1dGU7aW5zZXQ6MDsKICBvcGFjaXR5OjA7CiAgdHJhbnNpdGlvbjpvcGFjaXR5IC44cyBlYXNlLCB0cmFuc2Zvcm0gLjhzIGVhc2U7CiAgdHJhbnNmb3JtOnNjYWxlKC45Nik7CiAgcG9pbnRlci1ldmVudHM6bm9uZTsKfQouc3RlcC5hY3RpdmV7CiAgb3BhY2l0eToxOwogIHRyYW5zZm9ybTpzY2FsZSgxKTsKICBwb2ludGVyLWV2ZW50czphdXRvOwp9Cgouc3RlcC1pbm5lcnsKICBwb3NpdGlvbjphYnNvbHV0ZTtpbnNldDowOwogIGFuaW1hdGlvbjpicmVhdGhlIDZzIGVhc2UtaW4tb3V0IGluZmluaXRlOwp9CkBrZXlmcmFtZXMgYnJlYXRoZXsKICAwJSwxMDAle3RyYW5zZm9ybTpzY2FsZSgxKX0KICA1MCUgICAge3RyYW5zZm9ybTpzY2FsZSgxLjAxMil9Cn0KPC9zdHlsZT4KPHN0eWxlPgpodG1sLGJvZHl7bWFyZ2luOjA7cGFkZGluZzowO2JhY2tncm91bmQ6I0Y3RjNFRCFpbXBvcnRhbnQ7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTtvdmVyZmxvdzpoaWRkZW47fQpib2R5e2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjt9Cjwvc3R5bGU+PC9oZWFkPjxib2R5PgoKPGRpdiBjbGFzcz0ic3RvcnkiPgo8ZGl2IGNsYXNzPSJzY2VuZS13cmFwIj4KCiAgPCEtLSDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZAKICAgICAgIFNDRU5FIDEg4oCUIENIQVRCT1QgUkVBQ1RJVkUgKHJlZmluZWQpCiAgICAgICAKICAgICAgIFRpZ2h0ZXIgaG9yaXpvbnRhbCBjb21wb3NpdGlvbjoKICAgICAgICAg4oCiIENhcHRpb24gdG9wCiAgICAgICAgIOKAoiBMRUZUOiBhdmF0YXIKICAgICAgICAg4oCiIENFTlRFUjogMjMgdGFzayBjbHVzdGVyIChmb2NhbCBwb2ludCwgbGFyZ2VyIHRpbGVzKQogICAgICAgICDigKIgUklHSFQ6IG1pbmltYWwgQUkgZ2x5cGggKHNtYWxsIGRpc2MgKyAzIGlkbGUgZG90cywgbm8gY2hyb21lKQogICAgICAgICDigKIgUXVlcnkgYnViYmxlIGFwcGVhcnMgY2VudGVyZWQgYWJvdmUgdGFza3Mgd2hlbiBwcm9tcHRlZCwKICAgICAgICAgICBicmlkZ2luZyBhdmF0YXIg4oaSIEFJCiAgICAgICDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZAgLS0+CiAgPGRpdiBjbGFzcz0ic3RlcCBhY3RpdmUiIGlkPSJzY2VuZTEiPgogICAgPGRpdiBjbGFzcz0ic3RlcC1pbm5lciI+CiAgICAgIDxzdmcgd2lkdGg9IjM0MCIgaGVpZ2h0PSI0MzAiIHZpZXdCb3g9IjAgMCAzNDAgNDMwIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgoKICAgICAgICA8dGV4dCBpZD0iczFDYXB0aW9uIiB4PSIxNzAiIHk9IjExNiIgdGV4dC1hbmNob3I9Im1pZGRsZSIKICAgICAgICAgICAgICBmb250LWZhbWlseT0iLWFwcGxlLXN5c3RlbSxzeXN0ZW0tdWksc2Fucy1zZXJpZiIKICAgICAgICAgICAgICBmb250LXNpemU9IjEwIiBmb250LXdlaWdodD0iNjAwIiBsZXR0ZXItc3BhY2luZz0iMiIKICAgICAgICAgICAgICBmaWxsPSIjQzJDMkMyIiBvcGFjaXR5PSIwIj5BSSBDSEFUQk9UIMK3IFJFQUNUSVZFPC90ZXh0PgoKICAgICAgICA8IS0tIOKUgOKUgOKUgCBBdmF0YXIgKGxlZnQpIOKUgOKUgOKUgCAtLT4KICAgICAgICA8ZyBpZD0iczFBdmF0YXIiIG9wYWNpdHk9IjAiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0zMCwyMzIpIj4KICAgICAgICAgIDxnIHN0cm9rZT0iI0M4MTAyRSIgc3Ryb2tlLXdpZHRoPSIyIiBmaWxsPSJub25lIgogICAgICAgICAgICAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIj4KICAgICAgICAgICAgPGNpcmNsZSBjeD0iMCIgY3k9Ii02IiByPSI2Ii8+CiAgICAgICAgICAgIDxwYXRoIGQ9Ik0tMTAsMTAgQy0xMCwzIC01LDAgMCwwIEM1LDAgMTAsMyAxMCwxMCIvPgogICAgICAgICAgPC9nPgogICAgICAgICAgPHRleHQgeD0iMCIgeT0iMzIiIHRleHQtYW5jaG9yPSJtaWRkbGUiCiAgICAgICAgICAgICAgICBmb250LWZhbWlseT0iLWFwcGxlLXN5c3RlbSxzeXN0ZW0tdWksc2Fucy1zZXJpZiIKICAgICAgICAgICAgICAgIGZvbnQtc2l6ZT0iOSIgZm9udC13ZWlnaHQ9IjYwMCIKICAgICAgICAgICAgICAgIGZpbGw9IiNDMkMyQzIiPk5ldyBoaXJlPC90ZXh0PgogICAgICAgIDwvZz4KCiAgICAgICAgPCEtLSDilIDilIDilIAgVGFzayBjbHVzdGVyIChmb2NhbCDigJQgY2VudGVyKSDilIDilIDilIAKICAgICAgICAgICAgIFRpbGVzIGVubGFyZ2VkIDEww5cxMCAod2FzIDbDlzYpIHdpdGggMTRweCBzdHJpZGUuCiAgICAgICAgICAgICBMYXlvdXQ6IDYgY29scyDDlyA0IHJvd3MgKGxhc3Qgcm93IDUgdGlsZXMpID0gMjMgdGlsZXMuCiAgICAgICAgICAgICBDbHVzdGVyIHNwYW5zIHg9MTI4LTE5NCAoNjZweCB3aWRlKSwgeT0yMDQtMjQ2ICg0MnB4IHRhbGwpLgogICAgICAgICAgICAgQ2VudGVyZWQgYXJvdW5kICgxNjAsIDIyNCkuIC0tPgogICAgICAgIDxnIGlkPSJzMVRhc2tzIiBvcGFjaXR5PSIwIj4KICAgICAgICAgIDwhLS0gUm93IDAgLS0+CiAgICAgICAgICA8cmVjdCB4PSIxMjgiIHk9IjIwNCIgd2lkdGg9IjEwIiBoZWlnaHQ9IjEwIiByeD0iMiIgZmlsbD0iI0MyQzJDMiIvPgogICAgICAgICAgPHJlY3QgeD0iMTQyIiB5PSIyMDQiIHdpZHRoPSIxMCIgaGVpZ2h0PSIxMCIgcng9IjIiIGZpbGw9IiNDMkMyQzIiLz4KICAgICAgICAgIDxyZWN0IHg9IjE1NiIgeT0iMjA0IiB3aWR0aD0iMTAiIGhlaWdodD0iMTAiIHJ4PSIyIiBmaWxsPSIjQzJDMkMyIi8+CiAgICAgICAgICA8cmVjdCB4PSIxNzAiIHk9IjIwNCIgd2lkdGg9IjEwIiBoZWlnaHQ9IjEwIiByeD0iMiIgZmlsbD0iI0MyQzJDMiIvPgogICAgICAgICAgPHJlY3QgeD0iMTg0IiB5PSIyMDQiIHdpZHRoPSIxMCIgaGVpZ2h0PSIxMCIgcng9IjIiIGZpbGw9IiNDMkMyQzIiLz4KICAgICAgICAgIDxyZWN0IHg9IjE5OCIgeT0iMjA0IiB3aWR0aD0iMTAiIGhlaWdodD0iMTAiIHJ4PSIyIiBmaWxsPSIjQzJDMkMyIi8+CiAgICAgICAgICA8IS0tIFJvdyAxIC0tPgogICAgICAgICAgPHJlY3QgeD0iMTI4IiB5PSIyMTgiIHdpZHRoPSIxMCIgaGVpZ2h0PSIxMCIgcng9IjIiIGZpbGw9IiNDMkMyQzIiLz4KICAgICAgICAgIDxyZWN0IHg9IjE0MiIgeT0iMjE4IiB3aWR0aD0iMTAiIGhlaWdodD0iMTAiIHJ4PSIyIiBmaWxsPSIjQzJDMkMyIi8+CiAgICAgICAgICA8cmVjdCB4PSIxNTYiIHk9IjIxOCIgd2lkdGg9IjEwIiBoZWlnaHQ9IjEwIiByeD0iMiIgZmlsbD0iI0MyQzJDMiIvPgogICAgICAgICAgPHJlY3QgeD0iMTcwIiB5PSIyMTgiIHdpZHRoPSIxMCIgaGVpZ2h0PSIxMCIgcng9IjIiIGZpbGw9IiNDMkMyQzIiLz4KICAgICAgICAgIDxyZWN0IHg9IjE4NCIgeT0iMjE4IiB3aWR0aD0iMTAiIGhlaWdodD0iMTAiIHJ4PSIyIiBmaWxsPSIjQzJDMkMyIi8+CiAgICAgICAgICA8cmVjdCB4PSIxOTgiIHk9IjIxOCIgd2lkdGg9IjEwIiBoZWlnaHQ9IjEwIiByeD0iMiIgZmlsbD0iI0MyQzJDMiIvPgogICAgICAgICAgPCEtLSBSb3cgMiAtLT4KICAgICAgICAgIDxyZWN0IHg9IjEyOCIgeT0iMjMyIiB3aWR0aD0iMTAiIGhlaWdodD0iMTAiIHJ4PSIyIiBmaWxsPSIjQzJDMkMyIi8+CiAgICAgICAgICA8cmVjdCB4PSIxNDIiIHk9IjIzMiIgd2lkdGg9IjEwIiBoZWlnaHQ9IjEwIiByeD0iMiIgZmlsbD0iI0MyQzJDMiIvPgogICAgICAgICAgPHJlY3QgeD0iMTU2IiB5PSIyMzIiIHdpZHRoPSIxMCIgaGVpZ2h0PSIxMCIgcng9IjIiIGZpbGw9IiNDMkMyQzIiLz4KICAgICAgICAgIDxyZWN0IHg9IjE3MCIgeT0iMjMyIiB3aWR0aD0iMTAiIGhlaWdodD0iMTAiIHJ4PSIyIiBmaWxsPSIjQzJDMkMyIi8+CiAgICAgICAgICA8cmVjdCB4PSIxODQiIHk9IjIzMiIgd2lkdGg9IjEwIiBoZWlnaHQ9IjEwIiByeD0iMiIgZmlsbD0iI0MyQzJDMiIvPgogICAgICAgICAgPHJlY3QgeD0iMTk4IiB5PSIyMzIiIHdpZHRoPSIxMCIgaGVpZ2h0PSIxMCIgcng9IjIiIGZpbGw9IiNDMkMyQzIiLz4KICAgICAgICAgIDwhLS0gUm93IDMgKDUgdGlsZXMpIC0tPgogICAgICAgICAgPHJlY3QgeD0iMTI4IiB5PSIyNDYiIHdpZHRoPSIxMCIgaGVpZ2h0PSIxMCIgcng9IjIiIGZpbGw9IiNDMkMyQzIiLz4KICAgICAgICAgIDxyZWN0IHg9IjE0MiIgeT0iMjQ2IiB3aWR0aD0iMTAiIGhlaWdodD0iMTAiIHJ4PSIyIiBmaWxsPSIjQzJDMkMyIi8+CiAgICAgICAgICA8cmVjdCB4PSIxNTYiIHk9IjI0NiIgd2lkdGg9IjEwIiBoZWlnaHQ9IjEwIiByeD0iMiIgZmlsbD0iI0MyQzJDMiIvPgogICAgICAgICAgPHJlY3QgeD0iMTcwIiB5PSIyNDYiIHdpZHRoPSIxMCIgaGVpZ2h0PSIxMCIgcng9IjIiIGZpbGw9IiNDMkMyQzIiLz4KICAgICAgICAgIDxyZWN0IHg9IjE4NCIgeT0iMjQ2IiB3aWR0aD0iMTAiIGhlaWdodD0iMTAiIHJ4PSIyIiBmaWxsPSIjQzJDMkMyIi8+CgogICAgICAgICAgPCEtLSAiMjMgdGFza3MiIGxhYmVsIGJlbG93IGNsdXN0ZXIgLS0+CiAgICAgICAgICA8dGV4dCB4PSIxNjMiIHk9IjI3OCIgdGV4dC1hbmNob3I9Im1pZGRsZSIKICAgICAgICAgICAgICAgIGZvbnQtZmFtaWx5PSItYXBwbGUtc3lzdGVtLHN5c3RlbS11aSxzYW5zLXNlcmlmIgogICAgICAgICAgICAgICAgZm9udC1zaXplPSI5IiBmb250LXdlaWdodD0iNTAwIiBsZXR0ZXItc3BhY2luZz0iMSIKICAgICAgICAgICAgICAgIGZpbGw9IiNDMkMyQzIiPjIzIHRhc2tzPC90ZXh0PgogICAgICAgIDwvZz4KCiAgICAgICAgPCEtLSDilIDilIDilIAgTWluaW1hbCBBSSBnbHlwaCAocmlnaHQpIOKUgOKUgOKUgAogICAgICAgICAgICAgQSBzbWFsbCBkYXJrIHRlYWwgZGlzYyB3aXRoICJBSSIgY2FwcyArIDMgZGltIGlkbGUgZG90cwogICAgICAgICAgICAgYmVuZWF0aC4gTm8gYmFja2dyb3VuZCByZWN0LCBubyBsYXJnZSBjaHJvbWUg4oCUIHB1cmVseQogICAgICAgICAgICAgaWNvbm9ncmFwaGljLiAtLT4KICAgICAgICA8IS0tIOKUgOKUgOKUgCBDaGF0Ym90IGNoYXJhY3RlciBpY29uIChyaWdodCBzaWRlKSDilIDilIDilIAKICAgICAgICAgICAgIFJlcGxhY2VzIHRoZSBhYnN0cmFjdCAiQUkiIGRpc2Mgd2l0aCBhIHJlY29nbml6YWJsZQogICAgICAgICAgICAgY2hhdGJvdCBjaGFyYWN0ZXI6IHJvdW5kZWQgaGVhZCArIHR3byBhbnRlbm5hZSB3aXRoCiAgICAgICAgICAgICBkb3QgdGlwcyArIHR3byBleWVzICsgc21pbGUuIFBvc2l0aW9uZWQgYXQgeD0yNzAgdG8KICAgICAgICAgICAgIGZlZWwgY2xvc2VyIHRvIHRoZSBxdWVyeSBidWJibGUgZm9yIGNsZWFyZXIgaW50ZXJhY3Rpb24uCiAgICAgICAgICAgICAKICAgICAgICAgICAgIExvY2FsIGNvb3JkcyAoY2VudGVyZWQgYXQgdHJhbnNsYXRlKDI3MCwyMjQpKToKICAgICAgICAgICAgICAgLSBBbnRlbm5hZTogbGluZXMgZnJvbSB5PS0xMyB0byB5PS0xOSwgZG90cyBhdCB5PS0yMQogICAgICAgICAgICAgICAtIEhlYWQ6IHJvdW5kZWQgcmVjdCAoLTEzLC0xMykgdG8gKDEzLDkpLCByeD00CiAgICAgICAgICAgICAgIC0gRXllczogZmlsbGVkIGNpcmNsZXMgYXQgKC01LC0zKSBhbmQgKDUsLTMpCiAgICAgICAgICAgICAgIC0gU21pbGU6IGN1cnZlZCBwYXRoIGZyb20gKC01LDIpIHRvICg1LDIpIC0tPgogICAgICAgIDxnIGlkPSJzMUFJIiBvcGFjaXR5PSIwIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgyNzAsMjI0KSI+CiAgICAgICAgICA8IS0tIElkbGUgZG90cyBiZW5lYXRoIGNoYXRib3QgKGtlcHQgZm9yICJ0aGlua2luZyIgaW5kaWNhdG9yKSAtLT4KICAgICAgICAgIDxnIGlkPSJzMUlkbGVEb3RzIj4KICAgICAgICAgICAgPGNpcmNsZSBjeD0iLTYiIGN5PSIyMiIgcj0iMS42IiBmaWxsPSIjQzJDMkMyIiBvcGFjaXR5PSIuNiIvPgogICAgICAgICAgICA8Y2lyY2xlIGN4PSIwIiBjeT0iMjIiIHI9IjEuNiIgZmlsbD0iI0MyQzJDMiIgb3BhY2l0eT0iLjYiLz4KICAgICAgICAgICAgPGNpcmNsZSBjeD0iNiIgY3k9IjIyIiByPSIxLjYiIGZpbGw9IiNDMkMyQzIiIG9wYWNpdHk9Ii42Ii8+CiAgICAgICAgICA8L2c+CgogICAgICAgICAgPCEtLSBBbnRlbm5hZSAobGluZXMgKyBkb3QgdGlwcykgLS0+CiAgICAgICAgICA8ZyBpZD0iczFBSUFudGVubmFlIiBzdHJva2U9IiNDMkMyQzIiIHN0cm9rZS13aWR0aD0iMS41IgogICAgICAgICAgICAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBmaWxsPSIjQzJDMkMyIj4KICAgICAgICAgICAgPGxpbmUgeDE9Ii01IiB5MT0iLTEzIiB4Mj0iLTUiIHkyPSItMTkiLz4KICAgICAgICAgICAgPGxpbmUgeDE9IjUiIHkxPSItMTMiIHgyPSI1IiB5Mj0iLTE5Ii8+CiAgICAgICAgICAgIDxjaXJjbGUgY3g9Ii01IiBjeT0iLTIxIiByPSIxLjYiLz4KICAgICAgICAgICAgPGNpcmNsZSBjeD0iNSIgY3k9Ii0yMSIgcj0iMS42Ii8+CiAgICAgICAgICA8L2c+CgogICAgICAgICAgPCEtLSBIZWFkIChyb3VuZGVkIHJlY3QpIOKAlCBzdHJva2UgY3Jvc3NmYWRlcyBkaW0gdGVhbCDihpIgYnJpZ2h0IHRlYWwgb24gYWN0aXZhdGlvbiAtLT4KICAgICAgICAgIDxyZWN0IGlkPSJzMUFJSGVhZCIgeD0iLTEzIiB5PSItMTMiIHdpZHRoPSIyNiIgaGVpZ2h0PSIyMiIgcng9IjQiCiAgICAgICAgICAgICAgICBmaWxsPSIjRjBFMEQ5IiBzdHJva2U9IiNDMkMyQzIiIHN0cm9rZS13aWR0aD0iMS42Ii8+CgogICAgICAgICAgPCEtLSBFeWVzIC0tPgogICAgICAgICAgPGcgaWQ9InMxQUlFeWVzIiBmaWxsPSIjQzJDMkMyIj4KICAgICAgICAgICAgPGNpcmNsZSBjeD0iLTUiIGN5PSItMyIgcj0iMS42Ii8+CiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjUiIGN5PSItMyIgcj0iMS42Ii8+CiAgICAgICAgICA8L2c+CgogICAgICAgICAgPCEtLSBTbWlsZSAtLT4KICAgICAgICAgIDxwYXRoIGlkPSJzMUFJU21pbGUiIGQ9Ik0gLTUsMiBRIDAsNSA1LDIiCiAgICAgICAgICAgICAgICBmaWxsPSJub25lIiBzdHJva2U9IiNDMkMyQzIiIHN0cm9rZS13aWR0aD0iMS40IgogICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIi8+CiAgICAgICAgPC9nPgoKICAgICAgICA8IS0tIOKUgOKUgOKUgCBRdWVyeSBidWJibGUgKGJldHdlZW4gYXZhdGFyIGFuZCBBSSBnbHlwaCkg4pSA4pSA4pSAIC0tPgogICAgICAgIDxnIGlkPSJzMVF1ZXJ5QnViYmxlIiBvcGFjaXR5PSIwIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSg4NSwxNzYpIj4KICAgICAgICAgIDxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSI2MCIgaGVpZ2h0PSIyMiIgcng9IjgiCiAgICAgICAgICAgICAgICBmaWxsPSIjRjBFMEQ5IiBzdHJva2U9IiNDODEwMkUiIHN0cm9rZS13aWR0aD0iMSIvPgogICAgICAgICAgPGNpcmNsZSBpZD0iczFRRG90MSIgY3g9IjE0IiBjeT0iMTEiIHI9IjEuNiIgZmlsbD0iI0M4MTAyRSIvPgogICAgICAgICAgPGNpcmNsZSBpZD0iczFRRG90MiIgY3g9IjIyIiBjeT0iMTEiIHI9IjEuNiIgZmlsbD0iI0M4MTAyRSIvPgogICAgICAgICAgPGNpcmNsZSBpZD0iczFRRG90MyIgY3g9IjMwIiBjeT0iMTEiIHI9IjEuNiIgZmlsbD0iI0M4MTAyRSIvPgogICAgICAgICAgPHRleHQgeD0iNDYiIHk9IjE0IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIgogICAgICAgICAgICAgICAgZm9udC1mYW1pbHk9Ii1hcHBsZS1zeXN0ZW0sc3lzdGVtLXVpLHNhbnMtc2VyaWYiCiAgICAgICAgICAgICAgICBmb250LXNpemU9IjciIGZvbnQtd2VpZ2h0PSI1MDAiCiAgICAgICAgICAgICAgICBmaWxsPSIjRUZFNkREIj4/PC90ZXh0PgogICAgICAgIDwvZz4KCiAgICAgICAgPCEtLSDilIDilIDilIAgQXJyb3cgZnJvbSBxdWVyeSBidWJibGUgdG8gY2hhdGJvdCBjaGFyYWN0ZXIg4pSA4pSA4pSAIC0tPgogICAgICAgIDxsaW5lIGlkPSJzMUFycm93IiB4MT0iMTQ4IiB5MT0iMTg3IiB4Mj0iMjU2IiB5Mj0iMjE4IgogICAgICAgICAgICAgIHN0cm9rZT0iI0MyQzJDMiIgc3Ryb2tlLXdpZHRoPSIxIiBzdHJva2UtZGFzaGFycmF5PSIyIDMiCiAgICAgICAgICAgICAgb3BhY2l0eT0iMCIvPgoKICAgICAgPC9zdmc+CiAgICA8L2Rpdj4KICA8L2Rpdj4KCiAgPCEtLSDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZAKICAgICAgIFNDRU5FIDIg4oCUIFNUQVRJQyBPVVRQVVQgKHVuY2hhbmdlZCBmcm9tIHY2MikKICAgICAgIOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkCAtLT4KICA8IS0tIOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkAogICAgICAgU0NFTkUgMiDigJQgU1RBVElDIE9VVFBVVCAocmVmaW5lZCB2NjQpCiAgICAgICAKICAgICAgIFJlZGVzaWduZWQgdG8gZmVlbCBsaWdodGVyIGFuZCBleHBsaWNpdGx5ICJtYW51YWwvc3RhdGljIjoKICAgICAgIG5vIGRhcmsgcGFuZWwgY29udGFpbmVyLCBqdXN0IHBsYWluIGZsb2F0aW5nIGl0ZW1zIHdpdGgKICAgICAgIGVtcHR5IGNoZWNrYm94IGNpcmNsZXMgKyB0ZXh0IHN0cm9rZXMuIExlc3MgdmlzdWFsIGhlYXZpbmVzcwogICAgICAgcmVpbmZvcmNlcyB0aGUgY2hhdGJvdCdzIHBhc3NpdmUgbmF0dXJlLgogICAgICAg4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQIC0tPgogIDxkaXYgY2xhc3M9InN0ZXAiIGlkPSJzY2VuZTIiPgogICAgPGRpdiBjbGFzcz0ic3RlcC1pbm5lciI+CiAgICAgIDxzdmcgd2lkdGg9IjM0MCIgaGVpZ2h0PSI0MzAiIHZpZXdCb3g9IjAgMCAzNDAgNDMwIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgoKICAgICAgICA8dGV4dCBpZD0iczJDYXB0aW9uIiB4PSIxNzAiIHk9IjExNiIgdGV4dC1hbmNob3I9Im1pZGRsZSIKICAgICAgICAgICAgICBmb250LWZhbWlseT0iLWFwcGxlLXN5c3RlbSxzeXN0ZW0tdWksc2Fucy1zZXJpZiIKICAgICAgICAgICAgICBmb250LXNpemU9IjEwIiBmb250LXdlaWdodD0iNjAwIiBsZXR0ZXItc3BhY2luZz0iMiIKICAgICAgICAgICAgICBmaWxsPSIjQzJDMkMyIiBvcGFjaXR5PSIwIj5TVEFUSUMgT1VUUFVUPC90ZXh0PgoKICAgICAgICA8dGV4dCBpZD0iczJTdWJDYXB0aW9uIiB4PSIxNzAiIHk9IjEzOCIgdGV4dC1hbmNob3I9Im1pZGRsZSIKICAgICAgICAgICAgICBmb250LWZhbWlseT0iLWFwcGxlLXN5c3RlbSxzeXN0ZW0tdWksc2Fucy1zZXJpZiIKICAgICAgICAgICAgICBmb250LXNpemU9IjkiIGZvbnQtd2VpZ2h0PSI1MDAiIGxldHRlci1zcGFjaW5nPSIxIgogICAgICAgICAgICAgIGZpbGw9IiNDMkMyQzIiIG9wYWNpdHk9IjAiPkEgbGlzdC4gVGhhdCdzIGl0LjwvdGV4dD4KCiAgICAgICAgPGcgaWQ9InMyQXZhdGFyIiBvcGFjaXR5PSIwIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSg1MCwyMjQpIj4KICAgICAgICAgIDxnIHN0cm9rZT0iI0MyQzJDMiIgc3Ryb2tlLXdpZHRoPSIyIiBmaWxsPSJub25lIgogICAgICAgICAgICAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIj4KICAgICAgICAgICAgPGNpcmNsZSBjeD0iMCIgY3k9Ii02IiByPSI2Ii8+CiAgICAgICAgICAgIDxwYXRoIGQ9Ik0tMTAsMTAgQy0xMCwzIC01LDAgMCwwIEM1LDAgMTAsMyAxMCwxMCIvPgogICAgICAgICAgPC9nPgogICAgICAgIDwvZz4KCiAgICAgICAgPCEtLSDilIDilIDilIAgQ2hlY2tsaXN0IGl0ZW1zIChubyBjb250YWluZXIpIOKUgOKUgOKUgAogICAgICAgICAgICAgRWFjaCByb3c6IHNtYWxsIGdyZWVuIGNoZWNrIGRpc2MgKyBjb2xvcmVkIHRhc2sgc3Ryb2tlLgogICAgICAgICAgICAgQ29sb3JzIGN5Y2xlIHRocm91Z2ggZGVwYXJ0bWVudCBwYWxldHRlIChFTkcvREVTSUdOLwogICAgICAgICAgICAgSFIvT1BTL0VORyksIGNyZWF0aW5nIHN1YnRsZSByaHl0aG0uIFN0cm9rZSBsZW5ndGhzCiAgICAgICAgICAgICB2YXJ5IHRvIHN1Z2dlc3QgZGlmZmVyZW50IHRhc2sgY29tcGxleGl0aWVzLiAtLT4KICAgICAgICA8ZyBpZD0iczJMaXN0Ij4KICAgICAgICAgIDwhLS0gSXRlbSAwIOKAlCBFTkcgKHRlYWwpLCBzaG9ydCAtLT4KICAgICAgICAgIDxnIGlkPSJzMkl0ZW0wIiBvcGFjaXR5PSIwIj4KICAgICAgICAgICAgPGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMTAwLDE5NCkiPgogICAgICAgICAgICAgIDxjaXJjbGUgcj0iNCIgZmlsbD0iI0M4MTAyRSIvPgogICAgICAgICAgICAgIDxwb2x5bGluZSBwb2ludHM9Ii0yLDAgLS41LDEuNSAyLC0xLjUiCiAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzBGM0QzRSIgc3Ryb2tlLXdpZHRoPSIxLjIiCiAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPgogICAgICAgICAgICA8L2c+CiAgICAgICAgICAgIDxsaW5lIHgxPSIxMTAiIHkxPSIxOTQiIHgyPSIyMTgiIHkyPSIxOTQiCiAgICAgICAgICAgICAgICAgIHN0cm9rZT0iI0M4MTAyRSIgc3Ryb2tlLXdpZHRoPSIxLjYiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgb3BhY2l0eT0iLjc1Ii8+CiAgICAgICAgICA8L2c+CiAgICAgICAgICA8IS0tIEl0ZW0gMSDigJQgREVTSUdOIChjb3BwZXIpLCBtZWRpdW0gLS0+CiAgICAgICAgICA8ZyBpZD0iczJJdGVtMSIgb3BhY2l0eT0iMCI+CiAgICAgICAgICAgIDxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDEwMCwyMTgpIj4KICAgICAgICAgICAgICA8Y2lyY2xlIHI9IjQiIGZpbGw9IiNDODEwMkUiLz4KICAgICAgICAgICAgICA8cG9seWxpbmUgcG9pbnRzPSItMiwwIC0uNSwxLjUgMiwtMS41IgogICAgICAgICAgICAgICAgICAgICAgICBmaWxsPSJub25lIiBzdHJva2U9IiMwRjNEM0UiIHN0cm9rZS13aWR0aD0iMS4yIgogICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4KICAgICAgICAgICAgPC9nPgogICAgICAgICAgICA8bGluZSB4MT0iMTEwIiB5MT0iMjE4IiB4Mj0iMjQwIiB5Mj0iMjE4IgogICAgICAgICAgICAgICAgICBzdHJva2U9IiNDODEwMkUiIHN0cm9rZS13aWR0aD0iMS42IiBzdHJva2UtbGluZWNhcD0icm91bmQiIG9wYWNpdHk9Ii43NSIvPgogICAgICAgICAgPC9nPgogICAgICAgICAgPCEtLSBJdGVtIDIg4oCUIEhSIChncmVlbiksIGxvbmcgLS0+CiAgICAgICAgICA8ZyBpZD0iczJJdGVtMiIgb3BhY2l0eT0iMCI+CiAgICAgICAgICAgIDxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDEwMCwyNDIpIj4KICAgICAgICAgICAgICA8Y2lyY2xlIHI9IjQiIGZpbGw9IiNDODEwMkUiLz4KICAgICAgICAgICAgICA8cG9seWxpbmUgcG9pbnRzPSItMiwwIC0uNSwxLjUgMiwtMS41IgogICAgICAgICAgICAgICAgICAgICAgICBmaWxsPSJub25lIiBzdHJva2U9IiMwRjNEM0UiIHN0cm9rZS13aWR0aD0iMS4yIgogICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4KICAgICAgICAgICAgPC9nPgogICAgICAgICAgICA8bGluZSB4MT0iMTEwIiB5MT0iMjQyIiB4Mj0iMjUyIiB5Mj0iMjQyIgogICAgICAgICAgICAgICAgICBzdHJva2U9IiNDODEwMkUiIHN0cm9rZS13aWR0aD0iMS42IiBzdHJva2UtbGluZWNhcD0icm91bmQiIG9wYWNpdHk9Ii43NSIvPgogICAgICAgICAgPC9nPgogICAgICAgICAgPCEtLSBJdGVtIDMg4oCUIE9QUyAod2FybSBhbWJlciksIG1lZGl1bSAtLT4KICAgICAgICAgIDxnIGlkPSJzMkl0ZW0zIiBvcGFjaXR5PSIwIj4KICAgICAgICAgICAgPGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMTAwLDI2NikiPgogICAgICAgICAgICAgIDxjaXJjbGUgcj0iNCIgZmlsbD0iI0M4MTAyRSIvPgogICAgICAgICAgICAgIDxwb2x5bGluZSBwb2ludHM9Ii0yLDAgLS41LDEuNSAyLC0xLjUiCiAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzBGM0QzRSIgc3Ryb2tlLXdpZHRoPSIxLjIiCiAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPgogICAgICAgICAgICA8L2c+CiAgICAgICAgICAgIDxsaW5lIHgxPSIxMTAiIHkxPSIyNjYiIHgyPSIyMzIiIHkyPSIyNjYiCiAgICAgICAgICAgICAgICAgIHN0cm9rZT0iI0Q0QTU3NCIgc3Ryb2tlLXdpZHRoPSIxLjYiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgb3BhY2l0eT0iLjc1Ii8+CiAgICAgICAgICA8L2c+CiAgICAgICAgICA8IS0tIEl0ZW0gNCDigJQgRU5HICh0ZWFsKSwgc2hvcnQtbWVkaXVtIC0tPgogICAgICAgICAgPGcgaWQ9InMySXRlbTQiIG9wYWNpdHk9IjAiPgogICAgICAgICAgICA8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxMDAsMjkwKSI+CiAgICAgICAgICAgICAgPGNpcmNsZSByPSI0IiBmaWxsPSIjQzgxMDJFIi8+CiAgICAgICAgICAgICAgPHBvbHlsaW5lIHBvaW50cz0iLTIsMCAtLjUsMS41IDIsLTEuNSIKICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjMEYzRDNFIiBzdHJva2Utd2lkdGg9IjEuMiIKICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+CiAgICAgICAgICAgIDwvZz4KICAgICAgICAgICAgPGxpbmUgeDE9IjExMCIgeTE9IjI5MCIgeDI9IjIwNiIgeTI9IjI5MCIKICAgICAgICAgICAgICAgICAgc3Ryb2tlPSIjQzgxMDJFIiBzdHJva2Utd2lkdGg9IjEuNiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBvcGFjaXR5PSIuNzUiLz4KICAgICAgICAgIDwvZz4KICAgICAgICA8L2c+CgogICAgICAgIDwhLS0gIisxOCBtb3Jl4oCmIiBzdWdnZXN0aW9uICh0aGUgcmVzdCBhcmUgbm90IHNob3duKSAtLT4KICAgICAgICA8dGV4dCBpZD0iczJNb3JlIiB4PSIxNzAiIHk9IjMyMCIgdGV4dC1hbmNob3I9Im1pZGRsZSIKICAgICAgICAgICAgICBmb250LWZhbWlseT0iLWFwcGxlLXN5c3RlbSxzeXN0ZW0tdWksc2Fucy1zZXJpZiIKICAgICAgICAgICAgICBmb250LXNpemU9IjEwIiBmb250LXdlaWdodD0iNTAwIiBsZXR0ZXItc3BhY2luZz0iMSIKICAgICAgICAgICAgICBmaWxsPSIjQzJDMkMyIiBvcGFjaXR5PSIwIj4rMTggbW9yZeKApjwvdGV4dD4KCiAgICAgICAgPCEtLSBGb290ZXIgaW5kaWNhdGluZyBubyBhdXRvbWF0aW9uIC0tPgogICAgICAgIDx0ZXh0IGlkPSJzMkZvb3RlciIgeD0iMTcwIiB5PSIzNTYiIHRleHQtYW5jaG9yPSJtaWRkbGUiCiAgICAgICAgICAgICAgZm9udC1mYW1pbHk9Ii1hcHBsZS1zeXN0ZW0sc3lzdGVtLXVpLHNhbnMtc2VyaWYiCiAgICAgICAgICAgICAgZm9udC1zaXplPSI5IiBmb250LXdlaWdodD0iNjAwIiBsZXR0ZXItc3BhY2luZz0iMiIKICAgICAgICAgICAgICBmaWxsPSIjQzJDMkMyIiBvcGFjaXR5PSIwIj5OTyBBVVRPTUFUSU9OIMK3IE1BTlVBTCBPTkxZPC90ZXh0PgoKICAgICAgPC9zdmc+CiAgICA8L2Rpdj4KICA8L2Rpdj4KCiAgPCEtLSDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZAKICAgICAgIFNDRU5FIDMg4oCUIE5PVyDCtyBBREpVVEFOVCAodW5jaGFuZ2VkIGZyb20gdjYyKQogICAgICAg4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQIC0tPgogIDxkaXYgY2xhc3M9InN0ZXAiIGlkPSJzY2VuZTMiPgogICAgPGRpdiBjbGFzcz0ic3RlcC1pbm5lciI+CiAgICAgIDxzdmcgd2lkdGg9IjM0MCIgaGVpZ2h0PSI0MzAiIHZpZXdCb3g9IjAgMCAzNDAgNDMwIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgoKICAgICAgICA8dGV4dCBpZD0iczNDYXB0aW9uIiB4PSIxNzAiIHk9IjExNiIgdGV4dC1hbmNob3I9Im1pZGRsZSIKICAgICAgICAgICAgICBmb250LWZhbWlseT0iLWFwcGxlLXN5c3RlbSxzeXN0ZW0tdWksc2Fucy1zZXJpZiIKICAgICAgICAgICAgICBmb250LXNpemU9IjEwIiBmb250LXdlaWdodD0iNjAwIiBsZXR0ZXItc3BhY2luZz0iMiIKICAgICAgICAgICAgICBmaWxsPSIjQzgxMDJFIiBvcGFjaXR5PSIwIj5OT1cgwrcgQURKVVRBTlQ8L3RleHQ+CgogICAgICAgIDxnIGlkPSJzM1RpbWVTdHJpcCIgb3BhY2l0eT0iMCI+CiAgICAgICAgICA8ZyBpZD0iczNEYXlNb24iIHRyYW5zZm9ybT0idHJhbnNsYXRlKDc3LDE0MCkiPgogICAgICAgICAgICA8cmVjdCB4PSIwIiB5PSIwIiB3aWR0aD0iNDIiIGhlaWdodD0iMjAiIHJ4PSIxMCIKICAgICAgICAgICAgICAgICAgZmlsbD0iI0YwRTBEOSIgc3Ryb2tlPSIjMkE0QTRBIiBzdHJva2Utd2lkdGg9IjEiLz4KICAgICAgICAgICAgPHRleHQgeD0iMjEiIHk9IjEwIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBkb21pbmFudC1iYXNlbGluZT0ibWlkZGxlIgogICAgICAgICAgICAgICAgICBmb250LWZhbWlseT0iLWFwcGxlLXN5c3RlbSxzeXN0ZW0tdWksc2Fucy1zZXJpZiIKICAgICAgICAgICAgICAgICAgZm9udC1zaXplPSI5IiBmb250LXdlaWdodD0iNzAwIiBsZXR0ZXItc3BhY2luZz0iMS4yIgogICAgICAgICAgICAgICAgICBmaWxsPSIjQzgxMDJFIj5NT048L3RleHQ+CiAgICAgICAgICA8L2c+CiAgICAgICAgICA8ZyBpZD0iczNEYXlUdWUiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDEyNSwxNDApIj4KICAgICAgICAgICAgPHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjQyIiBoZWlnaHQ9IjIwIiByeD0iMTAiCiAgICAgICAgICAgICAgICAgIGZpbGw9IiNGMEUwRDkiIHN0cm9rZT0iIzJBNEE0QSIgc3Ryb2tlLXdpZHRoPSIxIi8+CiAgICAgICAgICAgIDx0ZXh0IHg9IjIxIiB5PSIxMCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZG9taW5hbnQtYmFzZWxpbmU9Im1pZGRsZSIKICAgICAgICAgICAgICAgICAgZm9udC1mYW1pbHk9Ii1hcHBsZS1zeXN0ZW0sc3lzdGVtLXVpLHNhbnMtc2VyaWYiCiAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZT0iOSIgZm9udC13ZWlnaHQ9IjcwMCIgbGV0dGVyLXNwYWNpbmc9IjEuMiIKICAgICAgICAgICAgICAgICAgZmlsbD0iI0MyQzJDMiI+VFVFPC90ZXh0PgogICAgICAgICAgPC9nPgogICAgICAgICAgPGcgaWQ9InMzRGF5V2VkIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxNzMsMTQwKSI+CiAgICAgICAgICAgIDxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSI0MiIgaGVpZ2h0PSIyMCIgcng9IjEwIgogICAgICAgICAgICAgICAgICBmaWxsPSIjRjBFMEQ5IiBzdHJva2U9IiMyQTRBNEEiIHN0cm9rZS13aWR0aD0iMSIvPgogICAgICAgICAgICA8dGV4dCB4PSIyMSIgeT0iMTAiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGRvbWluYW50LWJhc2VsaW5lPSJtaWRkbGUiCiAgICAgICAgICAgICAgICAgIGZvbnQtZmFtaWx5PSItYXBwbGUtc3lzdGVtLHN5c3RlbS11aSxzYW5zLXNlcmlmIgogICAgICAgICAgICAgICAgICBmb250LXNpemU9IjkiIGZvbnQtd2VpZ2h0PSI3MDAiIGxldHRlci1zcGFjaW5nPSIxLjIiCiAgICAgICAgICAgICAgICAgIGZpbGw9IiNDMkMyQzIiPldFRDwvdGV4dD4KICAgICAgICAgIDwvZz4KICAgICAgICAgIDxnIGlkPSJzM0RheVRodSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMjIxLDE0MCkiPgogICAgICAgICAgICA8cmVjdCB4PSIwIiB5PSIwIiB3aWR0aD0iNDIiIGhlaWdodD0iMjAiIHJ4PSIxMCIKICAgICAgICAgICAgICAgICAgZmlsbD0iI0YwRTBEOSIgc3Ryb2tlPSIjMkE0QTRBIiBzdHJva2Utd2lkdGg9IjEiLz4KICAgICAgICAgICAgPHRleHQgeD0iMjEiIHk9IjEwIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBkb21pbmFudC1iYXNlbGluZT0ibWlkZGxlIgogICAgICAgICAgICAgICAgICBmb250LWZhbWlseT0iLWFwcGxlLXN5c3RlbSxzeXN0ZW0tdWksc2Fucy1zZXJpZiIKICAgICAgICAgICAgICAgICAgZm9udC1zaXplPSI5IiBmb250LXdlaWdodD0iNzAwIiBsZXR0ZXItc3BhY2luZz0iMS4yIgogICAgICAgICAgICAgICAgICBmaWxsPSIjQzJDMkMyIj5USFU8L3RleHQ+CiAgICAgICAgICA8L2c+CiAgICAgICAgPC9nPgoKICAgICAgICA8ZyBpZD0iczNMYW5lcyIgb3BhY2l0eT0iMCI+CiAgICAgICAgICA8bGluZSB4MT0iNjIiIHkxPSIyMDAiIHgyPSIyNzgiIHkyPSIyMDAiIHN0cm9rZT0iIzBGM0QzRSIgc3Ryb2tlLXdpZHRoPSIzIiBzdHJva2UtbGluZWNhcD0icm91bmQiLz4KICAgICAgICAgIDxsaW5lIHgxPSI2MiIgeTE9IjIyNiIgeDI9IjI3OCIgeTI9IjIyNiIgc3Ryb2tlPSIjMEYzRDNFIiBzdHJva2Utd2lkdGg9IjMiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIvPgogICAgICAgICAgPGxpbmUgeDE9IjYyIiB5MT0iMjUyIiB4Mj0iMjc4IiB5Mj0iMjUyIiBzdHJva2U9IiMwRjNEM0UiIHN0cm9rZS13aWR0aD0iMyIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIi8+CiAgICAgICAgICA8bGluZSB4MT0iNjIiIHkxPSIyNzgiIHgyPSIyNzgiIHkyPSIyNzgiIHN0cm9rZT0iIzBGM0QzRSIgc3Ryb2tlLXdpZHRoPSIzIiBzdHJva2UtbGluZWNhcD0icm91bmQiLz4KCiAgICAgICAgICA8dGV4dCB4PSI1MCIgeT0iMjA0IiB0ZXh0LWFuY2hvcj0iZW5kIgogICAgICAgICAgICAgICAgZm9udC1mYW1pbHk9Ii1hcHBsZS1zeXN0ZW0sc3lzdGVtLXVpLHNhbnMtc2VyaWYiCiAgICAgICAgICAgICAgICBmb250LXNpemU9IjgiIGZvbnQtd2VpZ2h0PSI3MDAiIGxldHRlci1zcGFjaW5nPSIxLjIiCiAgICAgICAgICAgICAgICBmaWxsPSIjQzgxMDJFIj5FTkc8L3RleHQ+CiAgICAgICAgICA8dGV4dCB4PSI1MCIgeT0iMjMwIiB0ZXh0LWFuY2hvcj0iZW5kIgogICAgICAgICAgICAgICAgZm9udC1mYW1pbHk9Ii1hcHBsZS1zeXN0ZW0sc3lzdGVtLXVpLHNhbnMtc2VyaWYiCiAgICAgICAgICAgICAgICBmb250LXNpemU9IjgiIGZvbnQtd2VpZ2h0PSI3MDAiIGxldHRlci1zcGFjaW5nPSIxLjIiCiAgICAgICAgICAgICAgICBmaWxsPSIjQzgxMDJFIj5ERVNJR048L3RleHQ+CiAgICAgICAgICA8dGV4dCB4PSI1MCIgeT0iMjU2IiB0ZXh0LWFuY2hvcj0iZW5kIgogICAgICAgICAgICAgICAgZm9udC1mYW1pbHk9Ii1hcHBsZS1zeXN0ZW0sc3lzdGVtLXVpLHNhbnMtc2VyaWYiCiAgICAgICAgICAgICAgICBmb250LXNpemU9IjgiIGZvbnQtd2VpZ2h0PSI3MDAiIGxldHRlci1zcGFjaW5nPSIxLjIiCiAgICAgICAgICAgICAgICBmaWxsPSIjQzgxMDJFIj5IUjwvdGV4dD4KICAgICAgICAgIDx0ZXh0IHg9IjUwIiB5PSIyODIiIHRleHQtYW5jaG9yPSJlbmQiCiAgICAgICAgICAgICAgICBmb250LWZhbWlseT0iLWFwcGxlLXN5c3RlbSxzeXN0ZW0tdWksc2Fucy1zZXJpZiIKICAgICAgICAgICAgICAgIGZvbnQtc2l6ZT0iOCIgZm9udC13ZWlnaHQ9IjcwMCIgbGV0dGVyLXNwYWNpbmc9IjEuMiIKICAgICAgICAgICAgICAgIGZpbGw9IiNENEE1NzQiPk9QUzwvdGV4dD4KICAgICAgICA8L2c+CgogICAgICAgIDxnIGlkPSJzM1Rhc2tzIj48L2c+CgogICAgICAgIDxnIGlkPSJzM0NoZWNrcyIgb3BhY2l0eT0iMCI+CiAgICAgICAgICA8ZyBpZD0iczNDaGVjazAiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDI5MCwyMDApIHNjYWxlKDApIj4KICAgICAgICAgICAgPGNpcmNsZSByPSI4IiBmaWxsPSIjQzgxMDJFIi8+CiAgICAgICAgICAgIDxwb2x5bGluZSBwb2ludHM9Ii0zLjUsMCAtMSwyLjUgMy41LC0yLjUiCiAgICAgICAgICAgICAgICAgICAgICBmaWxsPSJub25lIiBzdHJva2U9IiMwRjNEM0UiIHN0cm9rZS13aWR0aD0iMS42IgogICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+CiAgICAgICAgICA8L2c+CiAgICAgICAgICA8ZyBpZD0iczNDaGVjazEiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDI5MCwyMjYpIHNjYWxlKDApIj4KICAgICAgICAgICAgPGNpcmNsZSByPSI4IiBmaWxsPSIjQzgxMDJFIi8+CiAgICAgICAgICAgIDxwb2x5bGluZSBwb2ludHM9Ii0zLjUsMCAtMSwyLjUgMy41LC0yLjUiCiAgICAgICAgICAgICAgICAgICAgICBmaWxsPSJub25lIiBzdHJva2U9IiMwRjNEM0UiIHN0cm9rZS13aWR0aD0iMS42IgogICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+CiAgICAgICAgICA8L2c+CiAgICAgICAgICA8ZyBpZD0iczNDaGVjazIiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDI5MCwyNTIpIHNjYWxlKDApIj4KICAgICAgICAgICAgPGNpcmNsZSByPSI4IiBmaWxsPSIjQzgxMDJFIi8+CiAgICAgICAgICAgIDxwb2x5bGluZSBwb2ludHM9Ii0zLjUsMCAtMSwyLjUgMy41LC0yLjUiCiAgICAgICAgICAgICAgICAgICAgICBmaWxsPSJub25lIiBzdHJva2U9IiMwRjNEM0UiIHN0cm9rZS13aWR0aD0iMS42IgogICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+CiAgICAgICAgICA8L2c+CiAgICAgICAgICA8ZyBpZD0iczNDaGVjazMiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDI5MCwyNzgpIHNjYWxlKDApIj4KICAgICAgICAgICAgPGNpcmNsZSByPSI4IiBmaWxsPSIjQzgxMDJFIi8+CiAgICAgICAgICAgIDxwb2x5bGluZSBwb2ludHM9Ii0zLjUsMCAtMSwyLjUgMy41LC0yLjUiCiAgICAgICAgICAgICAgICAgICAgICBmaWxsPSJub25lIiBzdHJva2U9IiMwRjNEM0UiIHN0cm9rZS13aWR0aD0iMS42IgogICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+CiAgICAgICAgICA8L2c+CiAgICAgICAgPC9nPgoKICAgICAgPC9zdmc+CiAgICA8L2Rpdj4KICA8L2Rpdj4KCiAgPCEtLSDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZAKICAgICAgIFNDRU5FIDQg4oCUIENPTU1TICYgQUNDRVNTIChSRUZJTkVEIOKAlCBzZXF1ZW50aWFsIGNvbnZleW9yKQogICAgICAgCiAgICAgICA0IHN0YXRpb25zIGFsb25nIGEgaG9yaXpvbnRhbCB0cmFjay4gQSB0cmF2ZWxpbmcgcHVsc2UKICAgICAgIGFkdmFuY2VzIEzihpJSLCBhY3RpdmF0aW5nIGVhY2ggc3RhdGlvbiBhcyBpdCBhcnJpdmVzLgogICAgICAgU3RhdGlvbnMgc3RheSBsaXQgY3VtdWxhdGl2ZWx5LgogICAgICAgCiAgICAgICBTdGF0aW9uczogZG9jIOKGkiBlbWFpbCDihpIgU2xhY2sg4oaSIGJhZGdlCiAgICAgICBUcmFjayB5PTI0MCwgc3RhdGlvbnMgYXQgeD03MCwgMTQwLCAyMTAsIDI4MC4KICAgICAgIOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkCAtLT4KICA8ZGl2IGNsYXNzPSJzdGVwIiBpZD0ic2NlbmU0Ij4KICAgIDxkaXYgY2xhc3M9InN0ZXAtaW5uZXIiPgogICAgICA8c3ZnIHdpZHRoPSIzNDAiIGhlaWdodD0iNDMwIiB2aWV3Qm94PSIwIDAgMzQwIDQzMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KCiAgICAgICAgPHRleHQgaWQ9InM0Q2FwdGlvbiIgeD0iMTcwIiB5PSIxMTYiIHRleHQtYW5jaG9yPSJtaWRkbGUiCiAgICAgICAgICAgICAgZm9udC1mYW1pbHk9Ii1hcHBsZS1zeXN0ZW0sc3lzdGVtLXVpLHNhbnMtc2VyaWYiCiAgICAgICAgICAgICAgZm9udC1zaXplPSIxMCIgZm9udC13ZWlnaHQ9IjYwMCIgbGV0dGVyLXNwYWNpbmc9IjIiCiAgICAgICAgICAgICAgZmlsbD0iI0MyQzJDMiIgb3BhY2l0eT0iMCI+QUxSRUFEWSBPTiBJVCDCtyBDT01NUyAmYW1wOyBBQ0NFU1M8L3RleHQ+CgogICAgICAgIDx0ZXh0IGlkPSJzNFRpbWUiIHg9IjE3MCIgeT0iMTM4IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIgogICAgICAgICAgICAgIGZvbnQtZmFtaWx5PSItYXBwbGUtc3lzdGVtLHN5c3RlbS11aSxzYW5zLXNlcmlmIgogICAgICAgICAgICAgIGZvbnQtc2l6ZT0iOSIgZm9udC13ZWlnaHQ9IjYwMCIgbGV0dGVyLXNwYWNpbmc9IjEuNSIKICAgICAgICAgICAgICBmaWxsPSIjQzgxMDJFIiBvcGFjaXR5PSIwIj5UVUUgwrcgMTA6MDAgQU08L3RleHQ+CgogICAgICAgIDwhLS0g4pSA4pSA4pSAIENvbnZleW9yIHRyYWNrIOKUgOKUgOKUgCAtLT4KICAgICAgICA8ZyBpZD0iczRUcmFjayIgb3BhY2l0eT0iMCI+CiAgICAgICAgICA8bGluZSB4MT0iNzAiIHkxPSIyNDAiIHgyPSIyODAiIHkyPSIyNDAiCiAgICAgICAgICAgICAgICBzdHJva2U9IiMwRjNEM0UiIHN0cm9rZS13aWR0aD0iMyIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIi8+CiAgICAgICAgICA8IS0tIEFjdGl2ZSBvdmVybGF5IChsaXQgcG9ydGlvbiBncm93cyB3aXRoIHRoZSBwdWxzZSkgLS0+CiAgICAgICAgICA8bGluZSBpZD0iczRUcmFja0FjdGl2ZSIgeDE9IjcwIiB5MT0iMjQwIiB4Mj0iNzAiIHkyPSIyNDAiCiAgICAgICAgICAgICAgICBzdHJva2U9IiNDODEwMkUiIHN0cm9rZS13aWR0aD0iMyIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIi8+CiAgICAgICAgPC9nPgoKICAgICAgICA8IS0tIOKUgOKUgOKUgCBQdWxzZSB0cmF2ZWxlciBkb3Qg4pSA4pSA4pSAIC0tPgogICAgICAgIDxjaXJjbGUgaWQ9InM0UHVsc2UiIGN4PSI3MCIgY3k9IjI0MCIgcj0iNSIKICAgICAgICAgICAgICAgIGZpbGw9IiNDODEwMkUiIG9wYWNpdHk9IjAiLz4KCiAgICAgICAgPCEtLSDilIDilIDilIAgU1RBVElPTiAxOiBET0MgKyBTSUdOQVRVUkUg4pSA4pSA4pSAIC0tPgogICAgICAgIDxnIGlkPSJzNFN0YXRpb24xIiBvcGFjaXR5PSIwIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSg3MCwyNDApIj4KICAgICAgICAgIDwhLS0gYmFja2Ryb3AgZGlzYyAtLT4KICAgICAgICAgIDxjaXJjbGUgaWQ9InM0UzFEaXNjIiByPSIyMiIgZmlsbD0iIzBGM0QzRSIgc3Ryb2tlPSIjQzJDMkMyIiBzdHJva2Utd2lkdGg9IjEuNCIvPgogICAgICAgICAgPCEtLSBkb2MgaWNvbiAtLT4KICAgICAgICAgIDxnIGlkPSJzNFMxSWNvbiI+CiAgICAgICAgICAgIDxyZWN0IHg9Ii05IiB5PSItMTIiIHdpZHRoPSIxOCIgaGVpZ2h0PSIyMiIgcng9IjIiCiAgICAgICAgICAgICAgICAgIGZpbGw9IiNGMEUwRDkiIHN0cm9rZT0iI0M4MTAyRSIgc3Ryb2tlLXdpZHRoPSIxLjMiLz4KICAgICAgICAgICAgPGxpbmUgeDE9Ii01IiB5MT0iLTciIHgyPSI1IiB5Mj0iLTciIHN0cm9rZT0iI0MyQzJDMiIgc3Ryb2tlLXdpZHRoPSIuOCIvPgogICAgICAgICAgICA8bGluZSB4MT0iLTUiIHkxPSItMyIgeDI9IjUiIHkyPSItMyIgc3Ryb2tlPSIjQzJDMkMyIiBzdHJva2Utd2lkdGg9Ii44Ii8+CiAgICAgICAgICAgIDxsaW5lIHgxPSItNSIgeTE9IjEiIHgyPSIyIiB5Mj0iMSIgc3Ryb2tlPSIjQzJDMkMyIiBzdHJva2Utd2lkdGg9Ii44Ii8+CiAgICAgICAgICAgIDwhLS0gc2lnbmF0dXJlIHBhdGggKGRyYXduIGFuaW1hdGVkKSAtLT4KICAgICAgICAgICAgPHBhdGggaWQ9InM0U2lnUGF0aCIgZD0iTSAtNiw2IFEgLTMsMyAwLDUgUSAzLDcgNiw0IgogICAgICAgICAgICAgICAgICBmaWxsPSJub25lIiBzdHJva2U9IiNDODEwMkUiIHN0cm9rZS13aWR0aD0iMS40IgogICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWNhcD0icm91bmQiCiAgICAgICAgICAgICAgICAgIHBhdGhMZW5ndGg9IjEwMCIgc3Ryb2tlLWRhc2hhcnJheT0iMTAwIiBzdHJva2UtZGFzaG9mZnNldD0iMTAwIi8+CiAgICAgICAgICA8L2c+CiAgICAgICAgICA8IS0tIHN0ZXAgbGFiZWwgYmVsb3cgLS0+CiAgICAgICAgICA8dGV4dCB4PSIwIiB5PSI0MCIgdGV4dC1hbmNob3I9Im1pZGRsZSIKICAgICAgICAgICAgICAgIGZvbnQtZmFtaWx5PSItYXBwbGUtc3lzdGVtLHN5c3RlbS11aSxzYW5zLXNlcmlmIgogICAgICAgICAgICAgICAgZm9udC1zaXplPSI4IiBmb250LXdlaWdodD0iNjAwIiBsZXR0ZXItc3BhY2luZz0iMSIKICAgICAgICAgICAgICAgIGZpbGw9IiNDMkMyQzIiPlNpZ25lZDwvdGV4dD4KICAgICAgICAgIDwhLS0gcmluZyAobGl0IHdoZW4gYWN0aXZhdGVkKSAtLT4KICAgICAgICAgIDxjaXJjbGUgaWQ9InM0UzFSaW5nIiByPSIyNiIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjQzgxMDJFIgogICAgICAgICAgICAgICAgICBzdHJva2Utd2lkdGg9IjEuMiIgb3BhY2l0eT0iMCIvPgogICAgICAgIDwvZz4KCiAgICAgICAgPCEtLSDilIDilIDilIAgU1RBVElPTiAyOiBFTUFJTCDilIDilIDilIAgLS0+CiAgICAgICAgPGcgaWQ9InM0U3RhdGlvbjIiIG9wYWNpdHk9IjAiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDE0MCwyNDApIj4KICAgICAgICAgIDxjaXJjbGUgaWQ9InM0UzJEaXNjIiByPSIyMiIgZmlsbD0iIzBGM0QzRSIgc3Ryb2tlPSIjQzJDMkMyIiBzdHJva2Utd2lkdGg9IjEuNCIvPgogICAgICAgICAgPGcgaWQ9InM0UzJJY29uIj4KICAgICAgICAgICAgPHJlY3QgeD0iLTEyIiB5PSItNyIgd2lkdGg9IjI0IiBoZWlnaHQ9IjE2IiByeD0iMiIKICAgICAgICAgICAgICAgICAgZmlsbD0iI0YwRTBEOSIgc3Ryb2tlPSIjQzgxMDJFIiBzdHJva2Utd2lkdGg9IjEuMyIvPgogICAgICAgICAgICA8cG9seWxpbmUgcG9pbnRzPSItMTIsLTcgMCwyIDEyLC03IgogICAgICAgICAgICAgICAgICAgICAgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjQzgxMDJFIiBzdHJva2Utd2lkdGg9IjEuMyIKICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPgogICAgICAgICAgPC9nPgogICAgICAgICAgPHRleHQgeD0iMCIgeT0iNDAiIHRleHQtYW5jaG9yPSJtaWRkbGUiCiAgICAgICAgICAgICAgICBmb250LWZhbWlseT0iLWFwcGxlLXN5c3RlbSxzeXN0ZW0tdWksc2Fucy1zZXJpZiIKICAgICAgICAgICAgICAgIGZvbnQtc2l6ZT0iOCIgZm9udC13ZWlnaHQ9IjYwMCIgbGV0dGVyLXNwYWNpbmc9IjEiCiAgICAgICAgICAgICAgICBmaWxsPSIjQzJDMkMyIj5FbWFpbCBzZW50PC90ZXh0PgogICAgICAgICAgPGNpcmNsZSBpZD0iczRTMlJpbmciIHI9IjI2IiBmaWxsPSJub25lIiBzdHJva2U9IiNDODEwMkUiCiAgICAgICAgICAgICAgICAgIHN0cm9rZS13aWR0aD0iMS4yIiBvcGFjaXR5PSIwIi8+CiAgICAgICAgPC9nPgoKICAgICAgICA8IS0tIOKUgOKUgOKUgCBTVEFUSU9OIDM6IFNMQUNLIC8gQ0hBVCDilIDilIDilIAgLS0+CiAgICAgICAgPGcgaWQ9InM0U3RhdGlvbjMiIG9wYWNpdHk9IjAiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDIxMCwyNDApIj4KICAgICAgICAgIDxjaXJjbGUgaWQ9InM0UzNEaXNjIiByPSIyMiIgZmlsbD0iIzBGM0QzRSIgc3Ryb2tlPSIjQzJDMkMyIiBzdHJva2Utd2lkdGg9IjEuNCIvPgogICAgICAgICAgPGcgaWQ9InM0UzNJY29uIj4KICAgICAgICAgICAgPCEtLSBjaGF0IGJ1YmJsZSAtLT4KICAgICAgICAgICAgPHBhdGggZD0iTSAtMTEsLTcgTCA5LC03IFEgMTMsLTcgMTMsLTMgTCAxMyw1IFEgMTMsOSA5LDkgTCAtMyw5IEwgLTksMTMgTCAtOCw5IEwgLTExLDkgUSAtMTUsOSAtMTUsNSBMIC0xNSwtMyBRIC0xNSwtNyAtMTEsLTcgWiIKICAgICAgICAgICAgICAgICAgZmlsbD0iI0YwRTBEOSIgc3Ryb2tlPSIjQzgxMDJFIiBzdHJva2Utd2lkdGg9IjEuMyIvPgogICAgICAgICAgICA8IS0tIGNoYXQgZG90cyAtLT4KICAgICAgICAgICAgPGNpcmNsZSBpZD0iczRTM0RvdDEiIGN4PSItNyIgY3k9IjEiIHI9IjEuNCIgZmlsbD0iI0M4MTAyRSIgb3BhY2l0eT0iMCIvPgogICAgICAgICAgICA8Y2lyY2xlIGlkPSJzNFMzRG90MiIgY3g9Ii0xIiBjeT0iMSIgcj0iMS40IiBmaWxsPSIjQzgxMDJFIiBvcGFjaXR5PSIwIi8+CiAgICAgICAgICAgIDxjaXJjbGUgaWQ9InM0UzNEb3QzIiBjeD0iNSIgY3k9IjEiIHI9IjEuNCIgZmlsbD0iI0M4MTAyRSIgb3BhY2l0eT0iMCIvPgogICAgICAgICAgPC9nPgogICAgICAgICAgPHRleHQgeD0iMCIgeT0iNDAiIHRleHQtYW5jaG9yPSJtaWRkbGUiCiAgICAgICAgICAgICAgICBmb250LWZhbWlseT0iLWFwcGxlLXN5c3RlbSxzeXN0ZW0tdWksc2Fucy1zZXJpZiIKICAgICAgICAgICAgICAgIGZvbnQtc2l6ZT0iOCIgZm9udC13ZWlnaHQ9IjYwMCIgbGV0dGVyLXNwYWNpbmc9IjEiCiAgICAgICAgICAgICAgICBmaWxsPSIjQzJDMkMyIj5TbGFjayBpbnZpdGVkPC90ZXh0PgogICAgICAgICAgPGNpcmNsZSBpZD0iczRTM1JpbmciIHI9IjI2IiBmaWxsPSJub25lIiBzdHJva2U9IiNDODEwMkUiCiAgICAgICAgICAgICAgICAgIHN0cm9rZS13aWR0aD0iMS4yIiBvcGFjaXR5PSIwIi8+CiAgICAgICAgPC9nPgoKICAgICAgICA8IS0tIOKUgOKUgOKUgCBTVEFUSU9OIDQ6IEJBREdFIOKUgOKUgOKUgCAtLT4KICAgICAgICA8ZyBpZD0iczRTdGF0aW9uNCIgb3BhY2l0eT0iMCIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMjgwLDI0MCkiPgogICAgICAgICAgPGNpcmNsZSBpZD0iczRTNERpc2MiIHI9IjIyIiBmaWxsPSIjMEYzRDNFIiBzdHJva2U9IiNDMkMyQzIiIHN0cm9rZS13aWR0aD0iMS40Ii8+CiAgICAgICAgICA8ZyBpZD0iczRTNEljb24iPgogICAgICAgICAgICA8cmVjdCB4PSItMTIiIHk9Ii04IiB3aWR0aD0iMjQiIGhlaWdodD0iMTYiIHJ4PSIyIgogICAgICAgICAgICAgICAgICBmaWxsPSIjRjBFMEQ5IiBzdHJva2U9IiNDODEwMkUiIHN0cm9rZS13aWR0aD0iMS4zIi8+CiAgICAgICAgICAgIDxyZWN0IHg9Ii0xMiIgeT0iLTQiIHdpZHRoPSIyNCIgaGVpZ2h0PSIzIiBmaWxsPSIjMEYzRDNFIi8+CiAgICAgICAgICAgIDxyZWN0IHg9Ii05IiB5PSIyIiB3aWR0aD0iMyIgaGVpZ2h0PSIzIiByeD0iLjUiIGZpbGw9IiNDODEwMkUiLz4KICAgICAgICAgICAgPGxpbmUgeDE9Ii0zIiB5MT0iMyIgeDI9IjkiIHkyPSIzIiBzdHJva2U9IiNDMkMyQzIiIHN0cm9rZS13aWR0aD0iLjciLz4KICAgICAgICAgICAgPGxpbmUgeDE9Ii0zIiB5MT0iNiIgeDI9IjYiIHkyPSI2IiBzdHJva2U9IiNDMkMyQzIiIHN0cm9rZS13aWR0aD0iLjciLz4KICAgICAgICAgICAgPCEtLSBjaGVjayBkaXNjIGJhZGdlIGFwcGVhcnMgb24gYWN0aXZhdGlvbiAtLT4KICAgICAgICAgICAgPGcgaWQ9InM0UzRDaGVjayIgb3BhY2l0eT0iMCIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMTEsLTkpIHNjYWxlKDApIj4KICAgICAgICAgICAgICA8Y2lyY2xlIHI9IjMuNSIgZmlsbD0iI0M4MTAyRSIvPgogICAgICAgICAgICAgIDxwb2x5bGluZSBwb2ludHM9Ii0xLjUsMCAtLjMsMS4yIDEuNSwtMS4yIgogICAgICAgICAgICAgICAgICAgICAgICBmaWxsPSJub25lIiBzdHJva2U9IiMwRjNEM0UiIHN0cm9rZS13aWR0aD0iMSIKICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+CiAgICAgICAgICAgIDwvZz4KICAgICAgICAgIDwvZz4KICAgICAgICAgIDx0ZXh0IHg9IjAiIHk9IjQwIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIgogICAgICAgICAgICAgICAgZm9udC1mYW1pbHk9Ii1hcHBsZS1zeXN0ZW0sc3lzdGVtLXVpLHNhbnMtc2VyaWYiCiAgICAgICAgICAgICAgICBmb250LXNpemU9IjgiIGZvbnQtd2VpZ2h0PSI2MDAiIGxldHRlci1zcGFjaW5nPSIxIgogICAgICAgICAgICAgICAgZmlsbD0iI0MyQzJDMiI+QmFkZ2UgcmVhZHk8L3RleHQ+CiAgICAgICAgICA8Y2lyY2xlIGlkPSJzNFM0UmluZyIgcj0iMjYiIGZpbGw9Im5vbmUiIHN0cm9rZT0iI0M4MTAyRSIKICAgICAgICAgICAgICAgICAgc3Ryb2tlLXdpZHRoPSIxLjIiIG9wYWNpdHk9IjAiLz4KICAgICAgICA8L2c+CgogICAgICA8L3N2Zz4KICAgIDwvZGl2PgogIDwvZGl2PgoKICA8IS0tIOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkAogICAgICAgU0NFTkUgNSDigJQgRVFVSVBNRU5UIChSRUZJTkVEIOKAlCBpdGVtcyByb3V0ZSBpbnRvIGFsaWdubWVudCkKICAgICAgIAogICAgICAgMyBlcXVpcG1lbnQgaXRlbXMgc2xpZGUgSU4gZnJvbSB0aGUgbGVmdCBhbG9uZyBhIGhvcml6b250YWwKICAgICAgIGRlbGl2ZXJ5IHJhaWwsIGFsaWduaW5nIGludG8gYSBuZWF0IHJvdyBhdCB0aGUgY2VudGVyLgogICAgICAgQWZ0ZXIgYWxsIDMgYWxpZ24sIGEgIkRlbGl2ZXJlZCIgaW5kaWNhdG9yIGFwcGVhcnMuCiAgICAgICAKICAgICAgIFJhaWwgYXQgeT0yNDAuIEl0ZW1zIHRhcmdldCBwb3NpdGlvbnM6CiAgICAgICAgIGxhcHRvcCAoeD0xMjApLCBoZWFkc2V0ICh4PTE3MCksIGtpdCAoeD0yMjApLgogICAgICAg4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQIC0tPgogIDxkaXYgY2xhc3M9InN0ZXAiIGlkPSJzY2VuZTUiPgogICAgPGRpdiBjbGFzcz0ic3RlcC1pbm5lciI+CiAgICAgIDxzdmcgd2lkdGg9IjM0MCIgaGVpZ2h0PSI0MzAiIHZpZXdCb3g9IjAgMCAzNDAgNDMwIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgoKICAgICAgICA8dGV4dCBpZD0iczVDYXB0aW9uIiB4PSIxNzAiIHk9IjExNiIgdGV4dC1hbmNob3I9Im1pZGRsZSIKICAgICAgICAgICAgICBmb250LWZhbWlseT0iLWFwcGxlLXN5c3RlbSxzeXN0ZW0tdWksc2Fucy1zZXJpZiIKICAgICAgICAgICAgICBmb250LXNpemU9IjEwIiBmb250LXdlaWdodD0iNjAwIiBsZXR0ZXItc3BhY2luZz0iMiIKICAgICAgICAgICAgICBmaWxsPSIjQzJDMkMyIiBvcGFjaXR5PSIwIj5BTFJFQURZIE9OIElUIMK3IEVRVUlQTUVOVDwvdGV4dD4KCiAgICAgICAgPHRleHQgaWQ9InM1VGltZSIgeD0iMTcwIiB5PSIxMzgiIHRleHQtYW5jaG9yPSJtaWRkbGUiCiAgICAgICAgICAgICAgZm9udC1mYW1pbHk9Ii1hcHBsZS1zeXN0ZW0sc3lzdGVtLXVpLHNhbnMtc2VyaWYiCiAgICAgICAgICAgICAgZm9udC1zaXplPSI5IiBmb250LXdlaWdodD0iNjAwIiBsZXR0ZXItc3BhY2luZz0iMS41IgogICAgICAgICAgICAgIGZpbGw9IiNDODEwMkUiIG9wYWNpdHk9IjAiPldFRCDCtyAyOjMwIFBNPC90ZXh0PgoKICAgICAgICA8IS0tIChyYWlsIHJlbW92ZWQgaW4gdjY0IHRvIGVsaW1pbmF0ZSB2aXN1YWwgdGVuc2lvbiB3aXRoIGl0ZW0gbGFiZWxzKSAtLT4KCiAgICAgICAgPCEtLSDilIDilIDilIAgSXRlbSAxOiBMQVBUT1Ag4pSA4pSA4pSAIC0tPgogICAgICAgIDxnIGlkPSJzNUxhcHRvcCIgb3BhY2l0eT0iMCIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTQwLDI0MCkiPgogICAgICAgICAgPCEtLSBzY3JlZW4gLS0+CiAgICAgICAgICA8cmVjdCB4PSItMTgiIHk9Ii0xNCIgd2lkdGg9IjM2IiBoZWlnaHQ9IjIyIiByeD0iMS41IgogICAgICAgICAgICAgICAgZmlsbD0iI0YwRTBEOSIgc3Ryb2tlPSIjQzgxMDJFIiBzdHJva2Utd2lkdGg9IjEuNCIvPgogICAgICAgICAgPGxpbmUgeDE9Ii0xMyIgeTE9Ii05IiB4Mj0iOCIgeTI9Ii05IiBzdHJva2U9IiNDMkMyQzIiIHN0cm9rZS13aWR0aD0iLjkiLz4KICAgICAgICAgIDxsaW5lIHgxPSItMTMiIHkxPSItNSIgeDI9IjEyIiB5Mj0iLTUiIHN0cm9rZT0iI0MyQzJDMiIgc3Ryb2tlLXdpZHRoPSIuOSIvPgogICAgICAgICAgPGxpbmUgeDE9Ii0xMyIgeTE9Ii0xIiB4Mj0iNiIgeTI9Ii0xIiBzdHJva2U9IiNDMkMyQzIiIHN0cm9rZS13aWR0aD0iLjkiLz4KICAgICAgICAgIDwhLS0gYmFzZSAtLT4KICAgICAgICAgIDxyZWN0IHg9Ii0yMiIgeT0iOCIgd2lkdGg9IjQ0IiBoZWlnaHQ9IjMuNSIgcng9IjEuNSIgZmlsbD0iI0M4MTAyRSIvPgogICAgICAgICAgPHRleHQgeD0iMCIgeT0iMzIiIHRleHQtYW5jaG9yPSJtaWRkbGUiCiAgICAgICAgICAgICAgICBmb250LWZhbWlseT0iLWFwcGxlLXN5c3RlbSxzeXN0ZW0tdWksc2Fucy1zZXJpZiIKICAgICAgICAgICAgICAgIGZvbnQtc2l6ZT0iOCIgZm9udC13ZWlnaHQ9IjYwMCIgbGV0dGVyLXNwYWNpbmc9IjEiCiAgICAgICAgICAgICAgICBmaWxsPSIjQzJDMkMyIj5MYXB0b3A8L3RleHQ+CiAgICAgICAgPC9nPgoKICAgICAgICA8IS0tIOKUgOKUgOKUgCBJdGVtIDI6IEhFQURTRVQg4pSA4pSA4pSAIC0tPgogICAgICAgIDxnIGlkPSJzNUhlYWRzZXQiIG9wYWNpdHk9IjAiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC00MCwyNDApIj4KICAgICAgICAgIDxwYXRoIGQ9Ik0gLTE2LDQgUSAtMTYsLTEzIDAsLTEzIFEgMTYsLTEzIDE2LDQiCiAgICAgICAgICAgICAgICBmaWxsPSJub25lIiBzdHJva2U9IiNDODEwMkUiIHN0cm9rZS13aWR0aD0iMiIKICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIvPgogICAgICAgICAgPHJlY3QgeD0iLTIwIiB5PSIwIiB3aWR0aD0iOSIgaGVpZ2h0PSIxMyIgcng9IjIiCiAgICAgICAgICAgICAgICBmaWxsPSIjRjBFMEQ5IiBzdHJva2U9IiNDODEwMkUiIHN0cm9rZS13aWR0aD0iMS4zIi8+CiAgICAgICAgICA8cmVjdCB4PSIxMSIgeT0iMCIgd2lkdGg9IjkiIGhlaWdodD0iMTMiIHJ4PSIyIgogICAgICAgICAgICAgICAgZmlsbD0iI0YwRTBEOSIgc3Ryb2tlPSIjQzgxMDJFIiBzdHJva2Utd2lkdGg9IjEuMyIvPgogICAgICAgICAgPGxpbmUgeDE9Ii0xNSIgeTE9IjExIiB4Mj0iLTExIiB5Mj0iMTciCiAgICAgICAgICAgICAgICBzdHJva2U9IiNDODEwMkUiIHN0cm9rZS13aWR0aD0iMS40IiBzdHJva2UtbGluZWNhcD0icm91bmQiLz4KICAgICAgICAgIDx0ZXh0IHg9IjAiIHk9IjMyIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIgogICAgICAgICAgICAgICAgZm9udC1mYW1pbHk9Ii1hcHBsZS1zeXN0ZW0sc3lzdGVtLXVpLHNhbnMtc2VyaWYiCiAgICAgICAgICAgICAgICBmb250LXNpemU9IjgiIGZvbnQtd2VpZ2h0PSI2MDAiIGxldHRlci1zcGFjaW5nPSIxIgogICAgICAgICAgICAgICAgZmlsbD0iI0MyQzJDMiI+SGVhZHNldDwvdGV4dD4KICAgICAgICA8L2c+CgogICAgICAgIDwhLS0g4pSA4pSA4pSAIEl0ZW0gMzogV0VMQ09NRSBLSVQgKG11Zykg4pSA4pSA4pSAIC0tPgogICAgICAgIDxnIGlkPSJzNUtpdCIgb3BhY2l0eT0iMCIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTQwLDI0MCkiPgogICAgICAgICAgPHJlY3QgeD0iLTEyIiB5PSItMTAiIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMiIgcng9IjIiCiAgICAgICAgICAgICAgICBmaWxsPSIjRjBFMEQ5IiBzdHJva2U9IiNDODEwMkUiIHN0cm9rZS13aWR0aD0iMS4zIi8+CiAgICAgICAgICA8cGF0aCBkPSJNIDgsLTQgUSAxNCwtNCAxNCwyIFEgMTQsOCA4LDgiCiAgICAgICAgICAgICAgICBmaWxsPSJub25lIiBzdHJva2U9IiNDODEwMkUiIHN0cm9rZS13aWR0aD0iMS4zIi8+CiAgICAgICAgICA8bGluZSB4MT0iLTYiIHkxPSItOCIgeDI9Ii02IiB5Mj0iLTEyIgogICAgICAgICAgICAgICAgc3Ryb2tlPSIjQzgxMDJFIiBzdHJva2Utd2lkdGg9IjEiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIvPgogICAgICAgICAgPGxpbmUgeDE9IjAiIHkxPSItOCIgeDI9IjAiIHkyPSItMTQiCiAgICAgICAgICAgICAgICBzdHJva2U9IiNDODEwMkUiIHN0cm9rZS13aWR0aD0iMSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIi8+CiAgICAgICAgICA8bGluZSB4MT0iNCIgeTE9Ii04IiB4Mj0iNCIgeTI9Ii0xMiIKICAgICAgICAgICAgICAgIHN0cm9rZT0iI0M4MTAyRSIgc3Ryb2tlLXdpZHRoPSIxIiBzdHJva2UtbGluZWNhcD0icm91bmQiLz4KICAgICAgICAgIDx0ZXh0IHg9IjAiIHk9IjMyIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIgogICAgICAgICAgICAgICAgZm9udC1mYW1pbHk9Ii1hcHBsZS1zeXN0ZW0sc3lzdGVtLXVpLHNhbnMtc2VyaWYiCiAgICAgICAgICAgICAgICBmb250LXNpemU9IjgiIGZvbnQtd2VpZ2h0PSI2MDAiIGxldHRlci1zcGFjaW5nPSIxIgogICAgICAgICAgICAgICAgZmlsbD0iI0MyQzJDMiI+V2VsY29tZSBraXQ8L3RleHQ+CiAgICAgICAgPC9nPgoKICAgICAgICA8IS0tIOKUgOKUgOKUgCAiRGVsaXZlcmVkIiBpbmRpY2F0b3IgKGNlbnRlcmVkIHJlbGF0aXZlIHRvIHdob2xlIGNvbXBvc2l0aW9uKSDilIDilIDilIAgLS0+CiAgICAgICAgPGcgaWQ9InM1RGVsaXZlcmVkIiBvcGFjaXR5PSIwIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxNzAsMzEwKSI+CiAgICAgICAgICA8cmVjdCB4PSItNTUiIHk9Ii0xMyIgd2lkdGg9IjExMCIgaGVpZ2h0PSIyNiIgcng9IjEzIgogICAgICAgICAgICAgICAgZmlsbD0iI0YwRTBEOSIgc3Ryb2tlPSIjQzgxMDJFIiBzdHJva2Utd2lkdGg9IjEuMiIvPgogICAgICAgICAgPCEtLSBjaGVjayArIHRleHQgcG9zaXRpb25lZCBhcyBhIGJhbGFuY2VkIHVuaXQgY2VudGVyZWQgYXQgeD0wIC0tPgogICAgICAgICAgPGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTI2LDApIj4KICAgICAgICAgICAgPGNpcmNsZSByPSI2IiBmaWxsPSIjQzgxMDJFIi8+CiAgICAgICAgICAgIDxwb2x5bGluZSBwb2ludHM9Ii0yLjUsMCAtLjUsMiAyLjUsLTIiCiAgICAgICAgICAgICAgICAgICAgICBmaWxsPSJub25lIiBzdHJva2U9IiMwRjNEM0UiIHN0cm9rZS13aWR0aD0iMS40IgogICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+CiAgICAgICAgICA8L2c+CiAgICAgICAgICA8dGV4dCB4PSIxMCIgeT0iMyIgdGV4dC1hbmNob3I9Im1pZGRsZSIKICAgICAgICAgICAgICAgIGZvbnQtZmFtaWx5PSItYXBwbGUtc3lzdGVtLHN5c3RlbS11aSxzYW5zLXNlcmlmIgogICAgICAgICAgICAgICAgZm9udC1zaXplPSIxMCIgZm9udC13ZWlnaHQ9IjYwMCIgbGV0dGVyLXNwYWNpbmc9IjEiCiAgICAgICAgICAgICAgICBmaWxsPSIjQzgxMDJFIj5EZWxpdmVyZWQ8L3RleHQ+CiAgICAgICAgPC9nPgoKICAgICAgPC9zdmc+CiAgICA8L2Rpdj4KICA8L2Rpdj4KCiAgPCEtLSDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZAKICAgICAgIFNDRU5FIDYg4oCUIFJFQURZIChSRUZJTkVEIOKAlCBUaHVyc2RheSBmb2NhbCwgb3RoZXJzIGZhZGVkKQogICAgICAgCiAgICAgICBDYWxlbmRhciB3ZWVrIHdpdGggVGh1cnNkYXkgYXMgdGhlIHByb21pbmVudCBjb2x1bW4uCiAgICAgICBNb24vVHVlL1dlZC9GcmkgZmFkZWQgdG8gYmFja2dyb3VuZCBvcGFjaXR5LgogICAgICAgVGh1cnNkYXk6IGZ1bGwgb3BhY2l0eSwgaGlnaGxpZ2h0ZWQgYmFja2dyb3VuZCwgbGFyZ2VyIGl0ZW1zLgogICAgICAgQXZhdGFyIGFycml2ZXMgYXQgVGh1cnNkYXksIGdsb3cgcmluZyBjZW50ZXJlZCB0aGVyZS4KICAgICAgIERlcGFydG1lbnQgc3RhdHVzIHJvdyByZW1vdmVkIChyZXBsYWNlZCBieSBzaW5nbGUgIkFsbCByZWFkeSIpLgogICAgICAg4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQIC0tPgogIDxkaXYgY2xhc3M9InN0ZXAiIGlkPSJzY2VuZTYiPgogICAgPGRpdiBjbGFzcz0ic3RlcC1pbm5lciI+CiAgICAgIDxzdmcgd2lkdGg9IjM0MCIgaGVpZ2h0PSI0MzAiIHZpZXdCb3g9IjAgMCAzNDAgNDMwIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgoKICAgICAgICA8IS0tIOKUgOKUgOKUgCBSRUFEWSBzdGF0dXMgaW5kaWNhdG9yIChwdWxzaW5nIGRvdCArIHNtYWxsIGxhYmVsKSDilIDilIDilIAKICAgICAgICAgICAgIFJlcGxhY2VzIHRoZSBzdGF0aWMgIlJFQURZIiB0ZXh0LiBUaGUgZG90IHB1bHNlcwogICAgICAgICAgICAgZ2VudGx5IHRvIGNvbW11bmljYXRlICJhY3RpdmUvY29tcGxldGUgc3RhdGUuIiAtLT4KICAgICAgICA8ZyBpZD0iczZSZWFkeURvdCIgb3BhY2l0eT0iMCI+CiAgICAgICAgICA8IS0tIFB1bHNlIHJpbmcgKGV4cGFuZHMgKyBmYWRlcywgbG9vcGluZykgLS0+CiAgICAgICAgICA8Y2lyY2xlIGlkPSJzNlB1bHNlUmluZyIgY3g9IjU2IiBjeT0iMTEzIiByPSI0IgogICAgICAgICAgICAgICAgICBmaWxsPSJub25lIiBzdHJva2U9IiNDODEwMkUiIHN0cm9rZS13aWR0aD0iMS4yIiBvcGFjaXR5PSIwIi8+CiAgICAgICAgICA8IS0tIFNvbGlkIGdyZWVuIGRvdCAtLT4KICAgICAgICAgIDxjaXJjbGUgaWQ9InM2RG90IiBjeD0iNTYiIGN5PSIxMTMiIHI9IjQiIGZpbGw9IiNDODEwMkUiLz4KICAgICAgICAgIDwhLS0gU21hbGwgbGFiZWwgLS0+CiAgICAgICAgICA8dGV4dCB4PSI2OCIgeT0iMTE2IgogICAgICAgICAgICAgICAgZm9udC1mYW1pbHk9Ii1hcHBsZS1zeXN0ZW0sc3lzdGVtLXVpLHNhbnMtc2VyaWYiCiAgICAgICAgICAgICAgICBmb250LXNpemU9IjkiIGZvbnQtd2VpZ2h0PSI3MDAiIGxldHRlci1zcGFjaW5nPSIyIgogICAgICAgICAgICAgICAgZmlsbD0iI0M4MTAyRSI+UkVBRFk8L3RleHQ+CiAgICAgICAgPC9nPgogICAgICAgIDx0ZXh0IGlkPSJzNkNhcFJpZ2h0IiB4PSIyODAiIHk9IjExNiIgdGV4dC1hbmNob3I9ImVuZCIKICAgICAgICAgICAgICBmb250LWZhbWlseT0iLWFwcGxlLXN5c3RlbSxzeXN0ZW0tdWksc2Fucy1zZXJpZiIKICAgICAgICAgICAgICBmb250LXNpemU9IjkiIGZvbnQtd2VpZ2h0PSI2MDAiIGxldHRlci1zcGFjaW5nPSIxLjgiCiAgICAgICAgICAgICAgZmlsbD0iI0MyQzJDMiIgb3BhY2l0eT0iMCI+WkVSTyBDT09SRElOQVRJT048L3RleHQ+CgogICAgICAgIDwhLS0g4pSA4pSA4pSAIENhbGVuZGFyIHNoZWxsIChhbHdheXMgbmV1dHJhbCwgZmFkZXMgb3V0IGFmdGVyIFRIVSBlc3RhYmxpc2hlZCkg4pSA4pSA4pSAIC0tPgogICAgICAgIDxnIGlkPSJzNkNhbFNoZWxsIiBvcGFjaXR5PSIwIj4KICAgICAgICAgIDxyZWN0IHg9IjQwIiB5PSIxNjAiIHdpZHRoPSIyNjAiIGhlaWdodD0iMTYwIiByeD0iOCIKICAgICAgICAgICAgICAgIGZpbGw9IiNGMEUwRDkiIHN0cm9rZT0iIzJBNEE0QSIgc3Ryb2tlLXdpZHRoPSIxIi8+CiAgICAgICAgICA8IS0tIGhlYWRlciBkaXZpZGVyIGxpbmUgLS0+CiAgICAgICAgICA8bGluZSB4MT0iNDAiIHkxPSIxODQiIHgyPSIzMDAiIHkyPSIxODQiCiAgICAgICAgICAgICAgICBzdHJva2U9IiNDMkMyQzIiIHN0cm9rZS13aWR0aD0iMSIgb3BhY2l0eT0iLjUiLz4KCiAgICAgICAgICA8IS0tIGNvbHVtbiBkaXZpZGVycyAtLT4KICAgICAgICAgIDxsaW5lIHgxPSI4NiIgeTE9IjE4NCIgeDI9Ijg2IiB5Mj0iMzIwIiBzdHJva2U9IiMwRjNEM0UiIHN0cm9rZS13aWR0aD0iLjgiLz4KICAgICAgICAgIDxsaW5lIHgxPSIxMzIiIHkxPSIxODQiIHgyPSIxMzIiIHkyPSIzMjAiIHN0cm9rZT0iIzBGM0QzRSIgc3Ryb2tlLXdpZHRoPSIuOCIvPgogICAgICAgICAgPGxpbmUgeDE9IjE3OCIgeTE9IjE4NCIgeDI9IjE3OCIgeTI9IjMyMCIgc3Ryb2tlPSIjMEYzRDNFIiBzdHJva2Utd2lkdGg9Ii44Ii8+CiAgICAgICAgICA8bGluZSB4MT0iMjI0IiB5MT0iMTg0IiB4Mj0iMjI0IiB5Mj0iMzIwIiBzdHJva2U9IiMwRjNEM0UiIHN0cm9rZS13aWR0aD0iLjgiLz4KICAgICAgICA8L2c+CgogICAgICAgIDwhLS0g4pSA4pSA4pSAIFdFRUsgMSB0aXRsZSAoYWJvdmUgdGhlIGNhbGVuZGFyIHNoZWxsLCBubyBsb25nZXIKICAgICAgICAgICAgIGNvbGxpZGluZyB3aXRoIHRoZSBoZWFkZXIgbGluZSAvIGNvbHVtbiBkaXZpZGVycykg4pSA4pSA4pSAIC0tPgogICAgICAgIDx0ZXh0IGlkPSJzNldlZWtUaXRsZSIgeD0iMTcwIiB5PSIxNDgiIHRleHQtYW5jaG9yPSJtaWRkbGUiCiAgICAgICAgICAgICAgZm9udC1mYW1pbHk9Ii1hcHBsZS1zeXN0ZW0sc3lzdGVtLXVpLHNhbnMtc2VyaWYiCiAgICAgICAgICAgICAgZm9udC1zaXplPSI5IiBmb250LXdlaWdodD0iNzAwIiBsZXR0ZXItc3BhY2luZz0iMi41IgogICAgICAgICAgICAgIGZpbGw9IiMxQTFBMUEiIG9wYWNpdHk9IjAiPldFRUsgMTwvdGV4dD4KCiAgICAgICAgPCEtLSDilIDilIDilIAgRmFkZWQgZGF5cyAoTW9uL1R1ZS9XZWQvRnJpKSDilIDilIDilIAgLS0+CiAgICAgICAgPGcgaWQ9InM2RmFkZWREYXlzIiBvcGFjaXR5PSIwIj4KICAgICAgICAgIDwhLS0gRGF5IGhlYWRlcnMgLS0+CiAgICAgICAgICA8dGV4dCB4PSI2NCIgeT0iMjAwIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIgogICAgICAgICAgICAgICAgZm9udC1mYW1pbHk9Ii1hcHBsZS1zeXN0ZW0sc3lzdGVtLXVpLHNhbnMtc2VyaWYiCiAgICAgICAgICAgICAgICBmb250LXNpemU9IjgiIGZvbnQtd2VpZ2h0PSI3MDAiIGxldHRlci1zcGFjaW5nPSIxIgogICAgICAgICAgICAgICAgZmlsbD0iI0MyQzJDMiI+TU9OPC90ZXh0PgogICAgICAgICAgPHRleHQgeD0iMTEwIiB5PSIyMDAiIHRleHQtYW5jaG9yPSJtaWRkbGUiCiAgICAgICAgICAgICAgICBmb250LWZhbWlseT0iLWFwcGxlLXN5c3RlbSxzeXN0ZW0tdWksc2Fucy1zZXJpZiIKICAgICAgICAgICAgICAgIGZvbnQtc2l6ZT0iOCIgZm9udC13ZWlnaHQ9IjcwMCIgbGV0dGVyLXNwYWNpbmc9IjEiCiAgICAgICAgICAgICAgICBmaWxsPSIjQzJDMkMyIj5UVUU8L3RleHQ+CiAgICAgICAgICA8dGV4dCB4PSIxNTYiIHk9IjIwMCIgdGV4dC1hbmNob3I9Im1pZGRsZSIKICAgICAgICAgICAgICAgIGZvbnQtZmFtaWx5PSItYXBwbGUtc3lzdGVtLHN5c3RlbS11aSxzYW5zLXNlcmlmIgogICAgICAgICAgICAgICAgZm9udC1zaXplPSI4IiBmb250LXdlaWdodD0iNzAwIiBsZXR0ZXItc3BhY2luZz0iMSIKICAgICAgICAgICAgICAgIGZpbGw9IiNDMkMyQzIiPldFRDwvdGV4dD4KICAgICAgICAgIDx0ZXh0IHg9IjI0OCIgeT0iMjAwIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIgogICAgICAgICAgICAgICAgZm9udC1mYW1pbHk9Ii1hcHBsZS1zeXN0ZW0sc3lzdGVtLXVpLHNhbnMtc2VyaWYiCiAgICAgICAgICAgICAgICBmb250LXNpemU9IjgiIGZvbnQtd2VpZ2h0PSI3MDAiIGxldHRlci1zcGFjaW5nPSIxIgogICAgICAgICAgICAgICAgZmlsbD0iI0MyQzJDMiI+RlJJPC90ZXh0PgoKICAgICAgICAgIDwhLS0gRmFkZWQgaXRlbXMgaW4gTW9uL1R1ZS9XZWQvRnJpIChqdXN0IGEgY291cGxlIHBlciBkYXkpIC0tPgogICAgICAgICAgPHJlY3QgeD0iNDgiIHk9IjIxNiIgd2lkdGg9IjMyIiBoZWlnaHQ9IjUiIHJ4PSIxLjUiIGZpbGw9IiNDMkMyQzIiLz4KICAgICAgICAgIDxyZWN0IHg9IjQ4IiB5PSIyMjgiIHdpZHRoPSIyOCIgaGVpZ2h0PSI1IiByeD0iMS41IiBmaWxsPSIjQzJDMkMyIi8+CiAgICAgICAgICA8cmVjdCB4PSI0OCIgeT0iMjQ0IiB3aWR0aD0iMzIiIGhlaWdodD0iNSIgcng9IjEuNSIgZmlsbD0iI0MyQzJDMiIvPgoKICAgICAgICAgIDxyZWN0IHg9Ijk0IiB5PSIyMTYiIHdpZHRoPSIzMCIgaGVpZ2h0PSI1IiByeD0iMS41IiBmaWxsPSIjQzJDMkMyIi8+CiAgICAgICAgICA8cmVjdCB4PSI5NCIgeT0iMjI4IiB3aWR0aD0iMzIiIGhlaWdodD0iNSIgcng9IjEuNSIgZmlsbD0iI0MyQzJDMiIvPgogICAgICAgICAgPHJlY3QgeD0iOTQiIHk9IjI0NCIgd2lkdGg9IjI4IiBoZWlnaHQ9IjUiIHJ4PSIxLjUiIGZpbGw9IiNDMkMyQzIiLz4KCiAgICAgICAgICA8cmVjdCB4PSIxNDAiIHk9IjIxNiIgd2lkdGg9IjMyIiBoZWlnaHQ9IjUiIHJ4PSIxLjUiIGZpbGw9IiNDMkMyQzIiLz4KICAgICAgICAgIDxyZWN0IHg9IjE0MCIgeT0iMjMyIiB3aWR0aD0iMjgiIGhlaWdodD0iNSIgcng9IjEuNSIgZmlsbD0iI0MyQzJDMiIvPgoKICAgICAgICAgIDxyZWN0IHg9IjIzMiIgeT0iMjE2IiB3aWR0aD0iMzAiIGhlaWdodD0iNSIgcng9IjEuNSIgZmlsbD0iI0MyQzJDMiIvPgogICAgICAgICAgPHJlY3QgeD0iMjMyIiB5PSIyMzIiIHdpZHRoPSIzMiIgaGVpZ2h0PSI1IiByeD0iMS41IiBmaWxsPSIjQzJDMkMyIi8+CiAgICAgICAgPC9nPgoKICAgICAgICA8IS0tIOKUgOKUgOKUgCBGb2NhbCBncm91cCAoVEhVIGNvbHVtbiArIGF2YXRhciArIGdsb3cpIOKUgOKUgOKUgAogICAgICAgICAgICAgV3JhcHBlZCB0b2dldGhlciBzbyB0aGV5IGNhbiBiZSB0cmFuc2xhdGVkIGFzIGEgdW5pdAogICAgICAgICAgICAgYWZ0ZXIgdGhlIGNhbGVuZGFyIHNoZWxsIGZhZGVzLiBFbmQgc3RhdGU6IGZvY2FsIGdyb3VwCiAgICAgICAgICAgICBzaGlmdHMgLTMycHggc28gVEhVIGlzIHZpc3VhbGx5IGNlbnRlcmVkIG9uIHRoZSBjYW52YXMuIC0tPgogICAgICAgIDxnIGlkPSJzNkZvY2FsIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwLDApIj4KICAgICAgICAgIDwhLS0g4pSA4pSA4pSAIFRodXJzZGF5IGZvY2FsIGNvbHVtbiDilIDilIDilIAgLS0+CiAgICAgICAgICA8ZyBpZD0iczZUaHVyc2RheSIgb3BhY2l0eT0iMCI+CiAgICAgICAgICAgIDwhLS0gaGlnaGxpZ2h0IGJhY2tkcm9wIChzbGlnaHRseSBzaG9ydGVyIHRoYW4gY2FsZW5kYXIgdG8gbGVhdmUgYnJlYXRoaW5nIHJvb20gYmVsb3cpIC0tPgogICAgICAgICAgICA8cmVjdCB4PSIxODAiIHk9IjE4NiIgd2lkdGg9IjQ0IiBoZWlnaHQ9IjExOCIgcng9IjMiCiAgICAgICAgICAgICAgICAgIGZpbGw9IiNDODEwMkUiIG9wYWNpdHk9Ii4xMCIvPgogICAgICAgICAgICA8IS0tIGNvbHVtbiBib3JkZXJzIChoaWdobGlnaHRlZCwgZW5kIGF0IHk9MzA0KSAtLT4KICAgICAgICAgICAgPGxpbmUgeDE9IjE4MCIgeTE9IjE4NiIgeDI9IjE4MCIgeTI9IjMwNCIKICAgICAgICAgICAgICAgICAgc3Ryb2tlPSIjQzgxMDJFIiBzdHJva2Utd2lkdGg9IjEuMiIgb3BhY2l0eT0iLjciLz4KICAgICAgICAgICAgPGxpbmUgeDE9IjIyNCIgeTE9IjE4NiIgeDI9IjIyNCIgeTI9IjMwNCIKICAgICAgICAgICAgICAgICAgc3Ryb2tlPSIjQzgxMDJFIiBzdHJva2Utd2lkdGg9IjEuMiIgb3BhY2l0eT0iLjciLz4KICAgICAgICAgICAgPCEtLSBUSFUgaGVhZGVyIC0tPgogICAgICAgICAgICA8dGV4dCB4PSIyMDIiIHk9IjIwMCIgdGV4dC1hbmNob3I9Im1pZGRsZSIKICAgICAgICAgICAgICAgICAgZm9udC1mYW1pbHk9Ii1hcHBsZS1zeXN0ZW0sc3lzdGVtLXVpLHNhbnMtc2VyaWYiCiAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZT0iMTAiIGZvbnQtd2VpZ2h0PSI3MDAiIGxldHRlci1zcGFjaW5nPSIxLjUiCiAgICAgICAgICAgICAgICAgIGZpbGw9IiNDODEwMkUiPlRIVTwvdGV4dD4KICAgICAgICAgICAgPCEtLSAiREFZIDEiIHN1YnRpdGxlIGJlbG93IGhlYWRlciAtLT4KICAgICAgICAgICAgPHRleHQgeD0iMjAyIiB5PSIyMTIiIHRleHQtYW5jaG9yPSJtaWRkbGUiCiAgICAgICAgICAgICAgICAgIGZvbnQtZmFtaWx5PSItYXBwbGUtc3lzdGVtLHN5c3RlbS11aSxzYW5zLXNlcmlmIgogICAgICAgICAgICAgICAgICBmb250LXNpemU9IjciIGZvbnQtd2VpZ2h0PSI2MDAiIGxldHRlci1zcGFjaW5nPSIxIgogICAgICAgICAgICAgICAgICBmaWxsPSIjQzgxMDJFIiBvcGFjaXR5PSIuNyI+REFZIDE8L3RleHQ+CgogICAgICAgICAgICA8IS0tIFNjaGVkdWxlZCBpdGVtcyBpbiBUaHVyc2RheSAoZnVsbCBjb2xvcikgLS0+CiAgICAgICAgICAgIDxnIGlkPSJzNlRodUl0ZW1zIj4KICAgICAgICAgICAgICA8cmVjdCB4PSIxODQiIHk9IjIyMiIgd2lkdGg9IjM2IiBoZWlnaHQ9IjYiIHJ4PSIxLjUiIGZpbGw9IiNDODEwMkUiLz4KICAgICAgICAgICAgICA8cmVjdCB4PSIxODQiIHk9IjIzNCIgd2lkdGg9IjM2IiBoZWlnaHQ9IjYiIHJ4PSIxLjUiIGZpbGw9IiNDODEwMkUiLz4KICAgICAgICAgICAgICA8cmVjdCB4PSIxODQiIHk9IjI0NiIgd2lkdGg9IjM2IiBoZWlnaHQ9IjYiIHJ4PSIxLjUiIGZpbGw9IiNDODEwMkUiLz4KICAgICAgICAgICAgICA8cmVjdCB4PSIxODQiIHk9IjI1OCIgd2lkdGg9IjM2IiBoZWlnaHQ9IjYiIHJ4PSIxLjUiIGZpbGw9IiNENEE1NzQiLz4KICAgICAgICAgICAgICA8cmVjdCB4PSIxODQiIHk9IjI3NCIgd2lkdGg9IjM2IiBoZWlnaHQ9IjYiIHJ4PSIxLjUiIGZpbGw9IiNDODEwMkUiIG9wYWNpdHk9Ii43NSIvPgogICAgICAgICAgICAgIDxyZWN0IHg9IjE4NCIgeT0iMjg2IiB3aWR0aD0iMzYiIGhlaWdodD0iNiIgcng9IjEuNSIgZmlsbD0iI0M4MTAyRSIgb3BhY2l0eT0iLjc1Ii8+CiAgICAgICAgICAgIDwvZz4KICAgICAgICAgIDwvZz4KCiAgICAgICAgICA8IS0tIOKUgOKUgOKUgCBBdmF0YXIgYXJyaXZlcyBiZWxvdyBUSFUgY29sdW1uIOKUgOKUgOKUgAogICAgICAgICAgICAgICBBdmF0YXIgbm93IGF0IHk9MzU4ICh3YXMgMzQ1KSwgZ2l2aW5nIFdFTENPTUUgbGFiZWwKICAgICAgICAgICAgICAgYXQgeT0zMzYgY2xlYXIgc2VwYXJhdGlvbiBmcm9tIHRoZSB0cmltbWVkIGNvbHVtbgogICAgICAgICAgICAgICAod2hpY2ggZW5kcyBhdCB5PTMwNCkuIDMycHggYnJlYXRoaW5nIHJvb20uIC0tPgogICAgICAgICAgPGcgaWQ9InM2QXZhdGFyIiBvcGFjaXR5PSIwIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgyMDIsNDAwKSI+CiAgICAgICAgICAgIDwhLS0gV2VsY29tZSBsYWJlbCBhYm92ZSBhdmF0YXIgLS0+CiAgICAgICAgICAgIDx0ZXh0IHg9IjAiIHk9Ii0yMiIgdGV4dC1hbmNob3I9Im1pZGRsZSIKICAgICAgICAgICAgICAgICAgZm9udC1mYW1pbHk9Ii1hcHBsZS1zeXN0ZW0sc3lzdGVtLXVpLHNhbnMtc2VyaWYiCiAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZT0iOSIgZm9udC13ZWlnaHQ9IjYwMCIgbGV0dGVyLXNwYWNpbmc9IjEuNSIKICAgICAgICAgICAgICAgICAgZmlsbD0iI0M4MTAyRSI+V0VMQ09NRTwvdGV4dD4KICAgICAgICAgICAgPCEtLSBhdmF0YXIgZ2x5cGggLS0+CiAgICAgICAgICAgIDxnIHN0cm9rZT0iI0M4MTAyRSIgc3Ryb2tlLXdpZHRoPSIyIiBmaWxsPSJub25lIgogICAgICAgICAgICAgICBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPgogICAgICAgICAgICAgIDxjaXJjbGUgY3g9IjAiIGN5PSItNiIgcj0iNiIvPgogICAgICAgICAgICAgIDxwYXRoIGQ9Ik0tMTAsMTAgQy0xMCwzIC01LDAgMCwwIEM1LDAgMTAsMyAxMCwxMCIvPgogICAgICAgICAgICA8L2c+CiAgICAgICAgICA8L2c+CgogICAgICAgICAgPCEtLSDilIDilIDilIAgR2xvdyByaW5nIChjZW50ZXJlZCBvbiBUSFUgY29sdW1uLCBtYXRjaGVkIHRvIG5ldyBjb2x1bW4gaGVpZ2h0KSDilIDilIDilIAgLS0+CiAgICAgICAgICA8cmVjdCBpZD0iczZHbG93IiB4PSIxNzgiIHk9IjE4NCIgd2lkdGg9IjQ4IiBoZWlnaHQ9IjEyMiIgcng9IjQiCiAgICAgICAgICAgICAgICBmaWxsPSJub25lIiBzdHJva2U9IiNDODEwMkUiIHN0cm9rZS13aWR0aD0iMiIgb3BhY2l0eT0iMCIvPgogICAgICAgIDwvZz4KCiAgICAgIDwvc3ZnPgogICAgPC9kaXY+CiAgPC9kaXY+Cgo8L2Rpdj4KCjwvZGl2PgoKPHNjcmlwdD4KKGZ1bmN0aW9uKCl7CiAgY29uc3QgbGVycCAgPSAoYSxiLHQpPT5hKyhiLWEpKnQ7CiAgY29uc3QgY2xhbXAgPSAodixsbyxoaSk9Pk1hdGgubWF4KGxvLE1hdGgubWluKGhpLHYpKTsKICBjb25zdCBub3JtICA9ICh2LGxvLGhpKT0+Y2xhbXAoKHYtbG8pLyhoaS1sbyksMCwxKTsKICBjb25zdCBlbyAgICA9IHQ9PjEtTWF0aC5wb3coMS10LDMpOwogIGNvbnN0IGVpbyAgID0gdD0+dDwuNT80KnQqdCp0OjEtTWF0aC5wb3coLTIqdCsyLDMpLzI7CgogIGZ1bmN0aW9uIHNldE9wKGVsLCBvcCl7IGlmKGVsKSBlbC5zZXRBdHRyaWJ1dGUoJ29wYWNpdHknLCBTdHJpbmcob3ApKTsgfQogIGZ1bmN0aW9uIHNldFRyYW5zZm9ybShlbCwgdHIpeyBpZihlbCkgZWwuc2V0QXR0cmlidXRlKCd0cmFuc2Zvcm0nLCB0cik7IH0KICBmdW5jdGlvbiBibGVuZEMoYzEsIGMyLCB0KXsKICAgIGNvbnN0IGggPSBoID0+IHBhcnNlSW50KGguc2xpY2UoMSksIDE2KTsKICAgIGNvbnN0IHIxID0gKGgoYzEpID4+IDE2KSAmIDI1NSwgZzEgPSAoaChjMSkgPj4gOCkgJiAyNTUsIGIxID0gaChjMSkgJiAyNTU7CiAgICBjb25zdCByMiA9IChoKGMyKSA+PiAxNikgJiAyNTUsIGcyID0gKGgoYzIpID4+IDgpICYgMjU1LCBiMiA9IGgoYzIpICYgMjU1OwogICAgY29uc3QgciA9IE1hdGgucm91bmQobGVycChyMSwgcjIsIHQpKTsKICAgIGNvbnN0IGcgPSBNYXRoLnJvdW5kKGxlcnAoZzEsIGcyLCB0KSk7CiAgICBjb25zdCBiID0gTWF0aC5yb3VuZChsZXJwKGIxLCBiMiwgdCkpOwogICAgcmV0dXJuIGByZ2IoJHtyfSwke2d9LCR7Yn0pYDsKICB9CgogIC8vIFNjZW5lIHJlZnMKICBjb25zdCBzY2VuZXMgPSBbCiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc2NlbmUxJyksCiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc2NlbmUyJyksCiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc2NlbmUzJyksCiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc2NlbmU0JyksCiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc2NlbmU1JyksCiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc2NlbmU2JykKICBdOwoKICAvLyBTMQogIGNvbnN0IHMxQ2FwdGlvbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzMUNhcHRpb24nKTsKICBjb25zdCBzMUF2YXRhciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzMUF2YXRhcicpOwogIGNvbnN0IHMxVGFza3MgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnczFUYXNrcycpOwogIGNvbnN0IHMxQUkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnczFBSScpOwogIGNvbnN0IHMxQUlIZWFkID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3MxQUlIZWFkJyk7CiAgY29uc3QgczFBSUFudGVubmFlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3MxQUlBbnRlbm5hZScpOwogIGNvbnN0IHMxQUlFeWVzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3MxQUlFeWVzJyk7CiAgY29uc3QgczFBSVNtaWxlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3MxQUlTbWlsZScpOwogIGNvbnN0IHMxSWRsZURvdHMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnczFJZGxlRG90cycpOwogIGNvbnN0IHMxUXVlcnlCdWJibGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnczFRdWVyeUJ1YmJsZScpOwogIGNvbnN0IHMxUURvdDEgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnczFRRG90MScpOwogIGNvbnN0IHMxUURvdDIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnczFRRG90MicpOwogIGNvbnN0IHMxUURvdDMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnczFRRG90MycpOwogIGNvbnN0IHMxQXJyb3cgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnczFBcnJvdycpOwoKICAvLyBTMgogIGNvbnN0IHMyQ2FwdGlvbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzMkNhcHRpb24nKTsKICBjb25zdCBzMlN1YkNhcHRpb24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnczJTdWJDYXB0aW9uJyk7CiAgY29uc3QgczJBdmF0YXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnczJBdmF0YXInKTsKICBjb25zdCBzMkl0ZW1zID0gWwogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3MySXRlbTAnKSwKICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzMkl0ZW0xJyksCiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnczJJdGVtMicpLAogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3MySXRlbTMnKSwKICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzMkl0ZW00JykKICBdOwogIGNvbnN0IHMyTW9yZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzMk1vcmUnKTsKICBjb25zdCBzMkZvb3RlciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzMkZvb3RlcicpOwoKICAvLyBTMwogIGNvbnN0IHMzQ2FwdGlvbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzM0NhcHRpb24nKTsKICBjb25zdCBzM1RpbWVTdHJpcCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzM1RpbWVTdHJpcCcpOwogIGNvbnN0IHMzRGF5TW9uID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3MzRGF5TW9uJyk7CiAgY29uc3QgczNEYXlUdWUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnczNEYXlUdWUnKTsKICBjb25zdCBzM0RheVdlZCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzM0RheVdlZCcpOwogIGNvbnN0IHMzRGF5VGh1ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3MzRGF5VGh1Jyk7CiAgY29uc3QgczNMYW5lcyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzM0xhbmVzJyk7CiAgY29uc3QgczNUYXNrcyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzM1Rhc2tzJyk7CiAgY29uc3QgczNDaGVja3MgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnczNDaGVja3MnKTsKICBjb25zdCBzM0NoZWNrRWxzID0gWwogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3MzQ2hlY2swJyksCiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnczNDaGVjazEnKSwKICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzM0NoZWNrMicpLAogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3MzQ2hlY2szJykKICBdOwoKICAvLyBTNCAocmVmaW5lZCkKICBjb25zdCBzNENhcHRpb24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnczRDYXB0aW9uJyk7CiAgY29uc3QgczRUaW1lID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3M0VGltZScpOwogIGNvbnN0IHM0VHJhY2sgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnczRUcmFjaycpOwogIGNvbnN0IHM0VHJhY2tBY3RpdmUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnczRUcmFja0FjdGl2ZScpOwogIGNvbnN0IHM0UHVsc2UgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnczRQdWxzZScpOwogIGNvbnN0IHM0U3RhdGlvbnMgPSBbCiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnczRTdGF0aW9uMScpLAogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3M0U3RhdGlvbjInKSwKICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzNFN0YXRpb24zJyksCiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnczRTdGF0aW9uNCcpCiAgXTsKICBjb25zdCBzNERpc2NzID0gWwogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3M0UzFEaXNjJyksCiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnczRTMkRpc2MnKSwKICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzNFMzRGlzYycpLAogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3M0UzREaXNjJykKICBdOwogIGNvbnN0IHM0UmluZ3MgPSBbCiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnczRTMVJpbmcnKSwKICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzNFMyUmluZycpLAogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3M0UzNSaW5nJyksCiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnczRTNFJpbmcnKQogIF07CiAgY29uc3QgczRTaWdQYXRoID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3M0U2lnUGF0aCcpOwogIGNvbnN0IHM0UzNEb3QxID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3M0UzNEb3QxJyk7CiAgY29uc3QgczRTM0RvdDIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnczRTM0RvdDInKTsKICBjb25zdCBzNFMzRG90MyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzNFMzRG90MycpOwogIGNvbnN0IHM0UzRDaGVjayA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzNFM0Q2hlY2snKTsKCiAgLy8gUzUgKHJlZmluZWQpCiAgY29uc3QgczVDYXB0aW9uID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3M1Q2FwdGlvbicpOwogIGNvbnN0IHM1VGltZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzNVRpbWUnKTsKICBjb25zdCBzNUxhcHRvcCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzNUxhcHRvcCcpOwogIGNvbnN0IHM1SGVhZHNldCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzNUhlYWRzZXQnKTsKICBjb25zdCBzNUtpdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzNUtpdCcpOwogIGNvbnN0IHM1RGVsaXZlcmVkID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3M1RGVsaXZlcmVkJyk7CgogIC8vIFM2IChyZWZpbmVkIHY2NSkKICBjb25zdCBzNlJlYWR5RG90ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3M2UmVhZHlEb3QnKTsKICBjb25zdCBzNlB1bHNlUmluZyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzNlB1bHNlUmluZycpOwogIGNvbnN0IHM2Q2FwUmlnaHQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnczZDYXBSaWdodCcpOwogIGNvbnN0IHM2V2Vla1RpdGxlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3M2V2Vla1RpdGxlJyk7CiAgY29uc3QgczZDYWxTaGVsbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzNkNhbFNoZWxsJyk7CiAgY29uc3QgczZGYWRlZERheXMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnczZGYWRlZERheXMnKTsKICBjb25zdCBzNkZvY2FsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3M2Rm9jYWwnKTsKICBjb25zdCBzNlRodXJzZGF5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3M2VGh1cnNkYXknKTsKICBjb25zdCBzNkF2YXRhciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzNkF2YXRhcicpOwogIGNvbnN0IHM2R2xvdyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzNkdsb3cnKTsKCiAgLyog4pSA4pSA4pSAIFNjZW5lIHRpbWVsaW5lIChtcykg4pSA4pSA4pSAICovCiAgY29uc3QgU0MgPSB7CiAgICBzMTogMCwKICAgIHMyOiA1NTAwLAogICAgczM6IDEwMDAwLAogICAgczQ6IDE2NTAwLAogICAgczU6IDIyMDAwLAogICAgczY6IDI2NTAwLAogICAgZW5kOiAzMjAwMAogIH07CgogIGZ1bmN0aW9uIGFjdGl2ZVNjZW5lKGUpewogICAgaWYoZSA8IFNDLnMyKSByZXR1cm4gMDsKICAgIGlmKGUgPCBTQy5zMykgcmV0dXJuIDE7CiAgICBpZihlIDwgU0MuczQpIHJldHVybiAyOwogICAgaWYoZSA8IFNDLnM1KSByZXR1cm4gMzsKICAgIGlmKGUgPCBTQy5zNikgcmV0dXJuIDQ7CiAgICByZXR1cm4gNTsKICB9CgogIC8vIFMzIHRhc2sgdGlsZSBnZW5lcmF0aW9uCiAgY29uc3QgUzNfVEFTS1MgPSBbXTsKICBjb25zdCBTM19MQU5FUyA9IFsKICAgIHsgeTogMjAwLCBjb2xvcjogJyNDODEwMkUnLCBjb3VudDogNiB9LAogICAgeyB5OiAyMjYsIGNvbG9yOiAnI0M4MTAyRScsIGNvdW50OiA1IH0sCiAgICB7IHk6IDI1MiwgY29sb3I6ICcjQzgxMDJFJywgY291bnQ6IDcgfSwKICAgIHsgeTogMjc4LCBjb2xvcjogJyNENEE1NzQnLCBjb3VudDogNSB9CiAgXTsKICBTM19MQU5FUy5mb3JFYWNoKChsYW5lLCBsYW5lSWR4KSA9PiB7CiAgICBmb3IobGV0IGkgPSAwOyBpIDwgbGFuZS5jb3VudDsgaSsrKXsKICAgICAgY29uc3QgdGlsZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUygnaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnLCAncmVjdCcpOwogICAgICB0aWxlLnNldEF0dHJpYnV0ZSgnd2lkdGgnLCAnNicpOwogICAgICB0aWxlLnNldEF0dHJpYnV0ZSgnaGVpZ2h0JywgJzYnKTsKICAgICAgdGlsZS5zZXRBdHRyaWJ1dGUoJ3J4JywgJzEuNScpOwogICAgICB0aWxlLnNldEF0dHJpYnV0ZSgnZmlsbCcsIGxhbmUuY29sb3IpOwogICAgICB0aWxlLnNldEF0dHJpYnV0ZSgneCcsICcwJyk7CiAgICAgIHRpbGUuc2V0QXR0cmlidXRlKCd5JywgU3RyaW5nKGxhbmUueSAtIDMpKTsKICAgICAgdGlsZS5zZXRBdHRyaWJ1dGUoJ29wYWNpdHknLCAnMCcpOwogICAgICBzM1Rhc2tzLmFwcGVuZENoaWxkKHRpbGUpOwogICAgICBTM19UQVNLUy5wdXNoKHsKICAgICAgICBlbDogdGlsZSwKICAgICAgICBsYW5lOiBsYW5lSWR4LAogICAgICAgIGluZGV4OiBpLAogICAgICAgIHk6IGxhbmUueSwKICAgICAgICBkZWxheTogaSAqIDE4MCArIGxhbmVJZHggKiA4MAogICAgICB9KTsKICAgIH0KICB9KTsKCiAgLy8g4pSA4pSA4pSAIFM0IGNvbnZleW9yIGNvbmZpZ3VyYXRpb24g4pSA4pSA4pSACiAgLy8gU3RhdGlvbnMgYXQgeCA9IDcwLCAxNDAsIDIxMCwgMjgwLiBUcmFjayB0b3RhbCBsZW5ndGg6IDI4MC03MCA9IDIxMC4KICBjb25zdCBTNF9TVEFUSU9OX1ggPSBbNzAsIDE0MCwgMjEwLCAyODBdOwoKICBjb25zdCB0MCA9IHBlcmZvcm1hbmNlLm5vdygpOwoKICBmdW5jdGlvbiBmcmFtZShub3cpewogICAgY29uc3QgZSA9IChub3cgLSB0MCkgJSBTQy5lbmQ7CiAgICBjb25zdCBzSWR4ID0gYWN0aXZlU2NlbmUoZSk7CgogICAgc2NlbmVzLmZvckVhY2goKHNjLCBpKSA9PiB7CiAgICAgIGlmKGkgPT09IHNJZHgpIHNjLmNsYXNzTGlzdC5hZGQoJ2FjdGl2ZScpOwogICAgICBlbHNlIHNjLmNsYXNzTGlzdC5yZW1vdmUoJ2FjdGl2ZScpOwogICAgfSk7CgogICAgLyog4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQCiAgICAgICBTQ0VORSAxIOKAlCBDSEFUQk9UIFJFQUNUSVZFIChyZWZpbmVkKQogICAgICAg4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQICovCiAgICBpZihzSWR4ID09PSAwKXsKICAgICAgY29uc3QgdCA9IGU7CiAgICAgIHNldE9wKHMxQ2FwdGlvbiwgZW8obm9ybSh0LCAyMDAsIDExMDApKSk7CgogICAgICAvLyBBdmF0YXIgc2xpZGVzIGluIGZyb20gbGVmdCAoLTMwIOKGkiAzMCkgb3ZlciA2MDAtMTUwMAogICAgICBjb25zdCBhdlAgPSBub3JtKHQsIDYwMCwgMTUwMCk7CiAgICAgIGNvbnN0IGF2WCA9IGxlcnAoLTMwLCAzMCwgZWlvKGF2UCkpOwogICAgICBzZXRUcmFuc2Zvcm0oczFBdmF0YXIsIGB0cmFuc2xhdGUoJHthdlh9LDIzMilgKTsKICAgICAgc2V0T3AoczFBdmF0YXIsIGVvKGF2UCkpOwoKICAgICAgLy8gVGFza3MgZmFkZSBpbiAxNTAwLTI0MDAgKGZvY2FsIHBvaW50KQogICAgICBzZXRPcChzMVRhc2tzLCBlbyhub3JtKHQsIDE1MDAsIDI0MDApKSk7CgogICAgICAvLyBBSSBnbHlwaCAyNDAwLTMxMDAKICAgICAgc2V0T3AoczFBSSwgZW8obm9ybSh0LCAyNDAwLCAzMTAwKSkpOwoKICAgICAgLy8gSWRsZSBkb3RzIHN1YnRseSBwdWxzZQogICAgICBjb25zdCBkb3RQdWxzZSA9IChNYXRoLnNpbigodCAvIDYwMCkgKiBNYXRoLlBJICogMikgKyAxKSAvIDI7CiAgICAgIHNldE9wKHMxSWRsZURvdHMsIDAuNCArIDAuNCAqIGRvdFB1bHNlKTsKCiAgICAgIC8vIFF1ZXJ5IGJ1YmJsZSAzMzAwLTM4MDAKICAgICAgc2V0T3AoczFRdWVyeUJ1YmJsZSwgZW8obm9ybSh0LCAzMzAwLCAzODAwKSkpOwoKICAgICAgLy8gVHlwaW5nIGRvdHMgY2FzY2FkZQogICAgICBjb25zdCB0eXBlVCA9IHQgLSAzNTAwOwogICAgICBpZih0eXBlVCA+IDApewogICAgICAgIGNvbnN0IHAxID0gTWF0aC5tYXgoMCwgTWF0aC5zaW4oKHR5cGVUIC8gMjgwKSAqIE1hdGguUEkgLSAwKSk7CiAgICAgICAgY29uc3QgcDIgPSBNYXRoLm1heCgwLCBNYXRoLnNpbigodHlwZVQgLyAyODApICogTWF0aC5QSSAtIDAuNykpOwogICAgICAgIGNvbnN0IHAzID0gTWF0aC5tYXgoMCwgTWF0aC5zaW4oKHR5cGVUIC8gMjgwKSAqIE1hdGguUEkgLSAxLjQpKTsKICAgICAgICBzZXRPcChzMVFEb3QxLCAwLjQgKyAwLjYgKiBwMSk7CiAgICAgICAgc2V0T3AoczFRRG90MiwgMC40ICsgMC42ICogcDIpOwogICAgICAgIHNldE9wKHMxUURvdDMsIDAuNCArIDAuNiAqIHAzKTsKICAgICAgfQoKICAgICAgLy8gQXJyb3cgKyBjaGF0Ym90IGNoYXJhY3RlciBsaWdodHMgdXAgYXQgNDIwMC00NzAwCiAgICAgIGNvbnN0IGFyUCA9IG5vcm0odCwgNDIwMCwgNDcwMCk7CiAgICAgIHNldE9wKHMxQXJyb3csIGVvKGFyUCkgKiAwLjcpOwoKICAgICAgLy8gQ2hhdGJvdCBjaGFyYWN0ZXIgcmVjb2xvcnMgb24gYWN0aXZhdGlvbjogZGltIHRlYWwg4oaSIGJyaWdodCB0ZWFsCiAgICAgIC8vIEhlYWQgc3Ryb2tlICsgYW50ZW5uYWUgc3Ryb2tlICsgZXllcyBmaWxsICsgc21pbGUgc3Ryb2tlIGFsbCBjcm9zc2ZhZGUKICAgICAgaWYodCA+PSA0MjAwKXsKICAgICAgICBjb25zdCBjb2xvck1peCA9IG5vcm0odCwgNDIwMCwgNDcwMCk7CiAgICAgICAgY29uc3QgbmV3Q29sb3IgPSBibGVuZEMoJyNDMkMyQzInLCAnI0M4MTAyRScsIGVvKGNvbG9yTWl4KSk7CiAgICAgICAgczFBSUhlYWQuc2V0QXR0cmlidXRlKCdzdHJva2UnLCBuZXdDb2xvcik7CiAgICAgICAgczFBSUFudGVubmFlLnNldEF0dHJpYnV0ZSgnc3Ryb2tlJywgbmV3Q29sb3IpOwogICAgICAgIHMxQUlBbnRlbm5hZS5zZXRBdHRyaWJ1dGUoJ2ZpbGwnLCBuZXdDb2xvcik7CiAgICAgICAgLy8gRXllcyBjaGlsZHJlbgogICAgICAgIHMxQUlFeWVzLnF1ZXJ5U2VsZWN0b3JBbGwoJ2NpcmNsZScpLmZvckVhY2goYyA9PiBjLnNldEF0dHJpYnV0ZSgnZmlsbCcsIG5ld0NvbG9yKSk7CiAgICAgICAgczFBSVNtaWxlLnNldEF0dHJpYnV0ZSgnc3Ryb2tlJywgbmV3Q29sb3IpOwogICAgICB9IGVsc2UgewogICAgICAgIHMxQUlIZWFkLnNldEF0dHJpYnV0ZSgnc3Ryb2tlJywgJyNDMkMyQzInKTsKICAgICAgICBzMUFJQW50ZW5uYWUuc2V0QXR0cmlidXRlKCdzdHJva2UnLCAnI0MyQzJDMicpOwogICAgICAgIHMxQUlBbnRlbm5hZS5zZXRBdHRyaWJ1dGUoJ2ZpbGwnLCAnI0MyQzJDMicpOwogICAgICAgIHMxQUlFeWVzLnF1ZXJ5U2VsZWN0b3JBbGwoJ2NpcmNsZScpLmZvckVhY2goYyA9PiBjLnNldEF0dHJpYnV0ZSgnZmlsbCcsICcjQzJDMkMyJykpOwogICAgICAgIHMxQUlTbWlsZS5zZXRBdHRyaWJ1dGUoJ3N0cm9rZScsICcjQzJDMkMyJyk7CiAgICAgIH0KICAgIH0KCiAgICAvKiDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZAKICAgICAgIFNDRU5FIDIg4oCUIFNUQVRJQyBPVVRQVVQKICAgICAgIOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkCAqLwogICAgaWYoc0lkeCA9PT0gMSl7CiAgICAgIGNvbnN0IHQgPSBlIC0gU0MuczI7CiAgICAgIHNldE9wKHMyQ2FwdGlvbiwgZW8obm9ybSh0LCAyMDAsIDgwMCkpKTsKICAgICAgc2V0T3AoczJTdWJDYXB0aW9uLCBlbyhub3JtKHQsIDUwMCwgMTEwMCkpKTsKICAgICAgc2V0T3AoczJBdmF0YXIsIGVvKG5vcm0odCwgMzAwLCA5MDApKSk7CgogICAgICAvLyBJdGVtcyBhcHBlYXIgd2l0aCBpcnJlZ3VsYXIgc3RhZ2dlciArIHN1YnRsZSBzbGlkZS11cCBlbnRyeQogICAgICAvLyAoZWFjaCBpdGVtIGJyaWVmbHkgdHJhbnNsYXRlcyArNnB4IG9uIFksIHNldHRsZXMgdG8gMCkuCiAgICAgIC8vIFN0YWdnZXIgdGltZXM6IG5vdCB1bmlmb3JtIOKAlCBnaXZlcyBvcmdhbmljIHJoeXRobS4KICAgICAgY29uc3QgaXRlbVN0YXJ0cyA9IFsxMTAwLCAxMzgwLCAxNjIwLCAxOTAwLCAyMTYwXTsKICAgICAgczJJdGVtcy5mb3JFYWNoKChpdGVtLCBpKSA9PiB7CiAgICAgICAgY29uc3Qgc3RhcnRUID0gaXRlbVN0YXJ0c1tpXTsKICAgICAgICBjb25zdCBlbmRUID0gc3RhcnRUICsgNTAwOwogICAgICAgIGNvbnN0IGl0ZW1QID0gbm9ybSh0LCBzdGFydFQsIGVuZFQpOwogICAgICAgIHNldE9wKGl0ZW0sIGVvKGl0ZW1QKSk7CiAgICAgICAgLy8gU2xpZGUtdXA6IHkgb2Zmc2V0IDYg4oaSIDAgKGFwcGVhcnMgdG8gc2V0dGxlIGludG8gcGxhY2UpCiAgICAgICAgY29uc3QgZHkgPSBsZXJwKDYsIDAsIGVpbyhpdGVtUCkpOwogICAgICAgIGl0ZW0uc2V0QXR0cmlidXRlKCd0cmFuc2Zvcm0nLCBgdHJhbnNsYXRlKDAsJHtkeX0pYCk7CiAgICAgIH0pOwoKICAgICAgc2V0T3AoczJNb3JlLCBlbyhub3JtKHQsIDI3MDAsIDMyMDApKSk7CiAgICAgIHNldE9wKHMyRm9vdGVyLCBlbyhub3JtKHQsIDMxMDAsIDM2MDApKSk7CiAgICB9CgogICAgLyog4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQCiAgICAgICBTQ0VORSAzIOKAlCBBREpVVEFOVCBBTElWRQogICAgICAg4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQICovCiAgICBpZihzSWR4ID09PSAyKXsKICAgICAgY29uc3QgdCA9IGUgLSBTQy5zMzsKICAgICAgc2V0T3AoczNDYXB0aW9uLCBlbyhub3JtKHQsIDIwMCwgODAwKSkpOwogICAgICBzZXRPcChzM1RpbWVTdHJpcCwgZW8obm9ybSh0LCA0MDAsIDEwMDApKSk7CiAgICAgIHNldE9wKHMzTGFuZXMsIGVvKG5vcm0odCwgNzAwLCAxMzAwKSkpOwoKICAgICAgY29uc3QgVFJBVkVMX1MgPSAxNTAwOwogICAgICBjb25zdCBUUkFWRUxfRSA9IDQ1MDA7CgogICAgICBTM19UQVNLUy5mb3JFYWNoKHRhc2sgPT4gewogICAgICAgIGNvbnN0IHN0YXJ0VCA9IFRSQVZFTF9TICsgdGFzay5kZWxheTsKICAgICAgICBjb25zdCBlbmRUID0gVFJBVkVMX0U7CiAgICAgICAgY29uc3QgaW5QID0gbm9ybSh0LCBzdGFydFQsIHN0YXJ0VCArIDMwMCk7CiAgICAgICAgc2V0T3AodGFzay5lbCwgZW8oaW5QKSk7CgogICAgICAgIGlmKHQgPCBzdGFydFQpewogICAgICAgICAgdGFzay5lbC5zZXRBdHRyaWJ1dGUoJ3gnLCBTdHJpbmcoNjIgLSAzKSk7CiAgICAgICAgfSBlbHNlIGlmKHQgPCBlbmRUKXsKICAgICAgICAgIGNvbnN0IHAgPSBub3JtKHQsIHN0YXJ0VCwgZW5kVCk7CiAgICAgICAgICBjb25zdCB4ID0gbGVycCg2MiwgMjc0LCBlaW8ocCkpOwogICAgICAgICAgdGFzay5lbC5zZXRBdHRyaWJ1dGUoJ3gnLCBTdHJpbmcoeCAtIDMpKTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgdGFzay5lbC5zZXRBdHRyaWJ1dGUoJ3gnLCBTdHJpbmcoMjc0IC0gMykpOwogICAgICAgICAgY29uc3QgZmFkZVAgPSBub3JtKHQsIGVuZFQsIGVuZFQgKyA0MDApOwogICAgICAgICAgc2V0T3AodGFzay5lbCwgMSAtIGVvKGZhZGVQKSk7CiAgICAgICAgfQogICAgICB9KTsKCiAgICAgIGNvbnN0IGRheXNMaWdodGluZyA9IFsKICAgICAgICB7IGVsOiBzM0RheU1vbiwgYXQ6IDE1MDAgfSwKICAgICAgICB7IGVsOiBzM0RheVR1ZSwgYXQ6IDI0MDAgfSwKICAgICAgICB7IGVsOiBzM0RheVdlZCwgYXQ6IDMzMDAgfSwKICAgICAgICB7IGVsOiBzM0RheVRodSwgYXQ6IDQzMDAgfQogICAgICBdOwogICAgICBkYXlzTGlnaHRpbmcuZm9yRWFjaCgoZCwgaSkgPT4gewogICAgICAgIGNvbnN0IHR4dCA9IGQuZWwucXVlcnlTZWxlY3RvcigndGV4dCcpOwogICAgICAgIGNvbnN0IGlzQWN0aXZlID0gdCA+PSBkLmF0OwogICAgICAgIGlmKGlzQWN0aXZlKXsKICAgICAgICAgIHR4dC5zZXRBdHRyaWJ1dGUoJ2ZpbGwnLCBpID09PSAzID8gJyNDODEwMkUnIDogJyNDODEwMkUnKTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgdHh0LnNldEF0dHJpYnV0ZSgnZmlsbCcsIGkgPT09IDAgPyAnI0M4MTAyRScgOiAnI0MyQzJDMicpOwogICAgICAgIH0KICAgICAgfSk7CgogICAgICBzZXRPcChzM0NoZWNrcywgJzEnKTsKICAgICAgczNDaGVja0Vscy5mb3JFYWNoKChjaywgaSkgPT4gewogICAgICAgIGNvbnN0IGNoZWNrVCA9IFRSQVZFTF9FICsgaSAqIDgwOwogICAgICAgIGNvbnN0IGNrUCA9IG5vcm0odCwgY2hlY2tULCBjaGVja1QgKyA0MDApOwogICAgICAgIGNvbnN0IHlQb3MgPSBbMjAwLCAyMjYsIDI1MiwgMjc4XVtpXTsKICAgICAgICBzZXRUcmFuc2Zvcm0oY2ssIGB0cmFuc2xhdGUoMjkwLCR7eVBvc30pIHNjYWxlKCR7ZW8oY2tQKX0pYCk7CiAgICAgIH0pOwogICAgfQoKICAgIC8qIOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkAogICAgICAgU0NFTkUgNCDigJQgQ09NTVMgJiBBQ0NFU1MgKFJFRklORUQg4oCUIHNlcXVlbnRpYWwgY29udmV5b3IpCiAgICAgICAKICAgICAgIFB1bHNlIHRyYXZlbHMgTOKGklIgb3ZlciB0aGUgdHJhY2suIEFzIGl0IHJlYWNoZXMgZWFjaCBzdGF0aW9uLAogICAgICAgdGhhdCBzdGF0aW9uIGFjdGl2YXRlczogcmluZyBmYWRlcyBpbiwgc3RhdGlvbi1zcGVjaWZpYyBtaWNybwogICAgICAgYW5pbWF0aW9uIHBsYXlzLCBzdGF0aW9uIHN0YXlzIGxpdCBjdW11bGF0aXZlbHkuCiAgICAgICDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZAgKi8KICAgIGlmKHNJZHggPT09IDMpewogICAgICBjb25zdCB0ID0gZSAtIFNDLnM0OwogICAgICBzZXRPcChzNENhcHRpb24sIGVvKG5vcm0odCwgMjAwLCA4MDApKSk7CiAgICAgIHNldE9wKHM0VGltZSwgZW8obm9ybSh0LCA0MDAsIDkwMCkpKTsKCiAgICAgIC8vIFN0YXRpb25zIGZhZGUgaW4gKGFsbCBhdCBvbmNlLCBkaW0vaW5hY3RpdmUgbG9vaykKICAgICAgY29uc3Qgc3RQID0gZW8obm9ybSh0LCA4MDAsIDE1MDApKTsKICAgICAgczRTdGF0aW9ucy5mb3JFYWNoKHN0ID0+IHNldE9wKHN0LCBzdFApKTsKICAgICAgc2V0T3AoczRUcmFjaywgc3RQKTsKCiAgICAgIC8vIFB1bHNlIHRyYXZlbHMgeD03MCDihpIgMjgwIGJldHdlZW4gdD0xNzAwIGFuZCB0PTQ3MDAgKDMgc2Vjb25kcykKICAgICAgY29uc3QgcHVsc2VTdGFydCA9IDE3MDA7CiAgICAgIGNvbnN0IHB1bHNlRW5kID0gNDcwMDsKICAgICAgY29uc3Qgc3RhdGlvblN0b3BzID0gWwogICAgICAgIHsgeDogNzAsICB2aXNpdFQ6IDE5MDAgfSwgICAvLyBzdGF0aW9uIDEgKERvYykg4oCUIHB1bHNlIHN0YXJ0cyBoZXJlCiAgICAgICAgeyB4OiAxNDAsIHZpc2l0VDogMjcwMCB9LAogICAgICAgIHsgeDogMjEwLCB2aXNpdFQ6IDM1MDAgfSwKICAgICAgICB7IHg6IDI4MCwgdmlzaXRUOiA0NDAwIH0KICAgICAgXTsKCiAgICAgIC8vIENvbXB1dGUgcHVsc2UgcG9zaXRpb24gYnkgbGluZWFyLXRoZW4tc21vb3RoZWQgdHJhdmVsIGJldHdlZW4gc3RvcHMKICAgICAgbGV0IHB1bHNlWCA9IDcwOwogICAgICBsZXQgcHVsc2VWaXNpYmxlID0gZmFsc2U7CiAgICAgIGlmKHQgPj0gcHVsc2VTdGFydCAmJiB0IDwgcHVsc2VFbmQpewogICAgICAgIHB1bHNlVmlzaWJsZSA9IHRydWU7CiAgICAgICAgLy8gRGV0ZXJtaW5lIHdoaWNoIHNlZ21lbnQgd2UncmUgaW4KICAgICAgICAvLyBTZWdtZW50czogW3N0b3AwIOKGkiBzdG9wMV0sIFtzdG9wMSDihpIgc3RvcDJdLCBbc3RvcDIg4oaSIHN0b3AzXSwgW3Bhc3Qgc3RvcDNdCiAgICAgICAgZm9yKGxldCBpID0gMDsgaSA8IHN0YXRpb25TdG9wcy5sZW5ndGggLSAxOyBpKyspewogICAgICAgICAgaWYodCA+PSBzdGF0aW9uU3RvcHNbaV0udmlzaXRUICYmIHQgPCBzdGF0aW9uU3RvcHNbaSArIDFdLnZpc2l0VCl7CiAgICAgICAgICAgIGNvbnN0IHNlZ1AgPSBub3JtKHQsIHN0YXRpb25TdG9wc1tpXS52aXNpdFQsIHN0YXRpb25TdG9wc1tpICsgMV0udmlzaXRUKTsKICAgICAgICAgICAgcHVsc2VYID0gbGVycChzdGF0aW9uU3RvcHNbaV0ueCwgc3RhdGlvblN0b3BzW2kgKyAxXS54LCBlaW8oc2VnUCkpOwogICAgICAgICAgICBicmVhazsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgLy8gQmVmb3JlIHN0b3AwLCBwdWxzZSBhdCBzdGFydAogICAgICAgIGlmKHQgPCBzdGF0aW9uU3RvcHNbMF0udmlzaXRUKSBwdWxzZVggPSBzdGF0aW9uU3RvcHNbMF0ueDsKICAgICAgICBpZih0ID49IHN0YXRpb25TdG9wc1tzdGF0aW9uU3RvcHMubGVuZ3RoIC0gMV0udmlzaXRUKSBwdWxzZVggPSBzdGF0aW9uU3RvcHNbc3RhdGlvblN0b3BzLmxlbmd0aCAtIDFdLng7CiAgICAgIH0gZWxzZSBpZih0ID49IHB1bHNlRW5kKXsKICAgICAgICBwdWxzZVggPSAyODA7CiAgICAgIH0KCiAgICAgIC8vIFVwZGF0ZSBhY3RpdmUgdHJhY2sgKGxpdCBwb3J0aW9uIGdyb3dzIHdpdGggcHVsc2UpCiAgICAgIGlmKHQgPj0gcHVsc2VTdGFydCl7CiAgICAgICAgczRUcmFja0FjdGl2ZS5zZXRBdHRyaWJ1dGUoJ3gyJywgU3RyaW5nKHB1bHNlWCkpOwogICAgICAgIC8vIENvbG9yIHNoaWZ0cyB0ZWFsIOKGkiBncmVlbiBhcyBwdWxzZSBhZHZhbmNlcwogICAgICAgIGNvbnN0IHB1bHNlUHJvZ3Jlc3MgPSBub3JtKHB1bHNlWCwgNzAsIDI4MCk7CiAgICAgICAgY29uc3QgdENvbG9yID0gcHVsc2VQcm9ncmVzcyA8IDAuNQogICAgICAgICAgPyBibGVuZEMoJyNDODEwMkUnLCAnI0M4MTAyRScsIHB1bHNlUHJvZ3Jlc3MgLyAwLjUpCiAgICAgICAgICA6IGJsZW5kQygnI0M4MTAyRScsICcjQzgxMDJFJywgKHB1bHNlUHJvZ3Jlc3MgLSAwLjUpIC8gMC41KTsKICAgICAgICBzNFRyYWNrQWN0aXZlLnNldEF0dHJpYnV0ZSgnc3Ryb2tlJywgdENvbG9yKTsKICAgICAgICBzNFRyYWNrQWN0aXZlLnNldEF0dHJpYnV0ZSgnb3BhY2l0eScsICcxJyk7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgczRUcmFja0FjdGl2ZS5zZXRBdHRyaWJ1dGUoJ29wYWNpdHknLCAnMCcpOwogICAgICB9CgogICAgICAvLyBQdWxzZSB0cmF2ZWxlciBkb3QKICAgICAgaWYocHVsc2VWaXNpYmxlKXsKICAgICAgICBzNFB1bHNlLnNldEF0dHJpYnV0ZSgnY3gnLCBTdHJpbmcocHVsc2VYKSk7CiAgICAgICAgY29uc3QgcHVsc2VQcm9ncmVzcyA9IG5vcm0ocHVsc2VYLCA3MCwgMjgwKTsKICAgICAgICBjb25zdCBwQ29sb3IgPSBwdWxzZVByb2dyZXNzIDwgMC41CiAgICAgICAgICA/IGJsZW5kQygnI0M4MTAyRScsICcjQzgxMDJFJywgcHVsc2VQcm9ncmVzcyAvIDAuNSkKICAgICAgICAgIDogYmxlbmRDKCcjQzgxMDJFJywgJyNDODEwMkUnLCAocHVsc2VQcm9ncmVzcyAtIDAuNSkgLyAwLjUpOwogICAgICAgIHM0UHVsc2Uuc2V0QXR0cmlidXRlKCdmaWxsJywgcENvbG9yKTsKICAgICAgICBzZXRPcChzNFB1bHNlLCAnMScpOwogICAgICB9IGVsc2UgewogICAgICAgIHNldE9wKHM0UHVsc2UsICcwJyk7CiAgICAgIH0KCiAgICAgIC8vIFN0YXRpb25zIGFjdGl2YXRlIHdoZW4gcHVsc2UgYXJyaXZlcwogICAgICBzdGF0aW9uU3RvcHMuZm9yRWFjaCgoc3RvcCwgaSkgPT4gewogICAgICAgIGNvbnN0IGFycml2ZVQgPSBzdG9wLnZpc2l0VDsKICAgICAgICBjb25zdCBzZXR0bGVkVCA9IGFycml2ZVQgKyA2MDA7CgogICAgICAgIGlmKHQgPj0gYXJyaXZlVCl7CiAgICAgICAgICAvLyBEaXNjIGJyaWdodGVucwogICAgICAgICAgY29uc3QgbGl0UCA9IG5vcm0odCwgYXJyaXZlVCwgc2V0dGxlZFQpOwogICAgICAgICAgczREaXNjc1tpXS5zZXRBdHRyaWJ1dGUoJ3N0cm9rZScsIGJsZW5kQygnI0MyQzJDMicsICcjQzgxMDJFJywgZW8obGl0UCkpKTsKICAgICAgICAgIC8vIFJpbmcgZmFkZXMgaW4KICAgICAgICAgIHNldE9wKHM0UmluZ3NbaV0sIFN0cmluZyhlbyhsaXRQKSAqIDAuNykpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICBzNERpc2NzW2ldLnNldEF0dHJpYnV0ZSgnc3Ryb2tlJywgJyNDMkMyQzInKTsKICAgICAgICAgIHNldE9wKHM0UmluZ3NbaV0sICcwJyk7CiAgICAgICAgfQogICAgICB9KTsKCiAgICAgIC8vIFN0YXRpb24tc3BlY2lmaWMgbWljcm8gYW5pbWF0aW9ucwogICAgICAvLyBTdGF0aW9uIDE6IHNpZ25hdHVyZSBkcmF3cyBpbgogICAgICBjb25zdCBzMUFycml2ZVQgPSBzdGF0aW9uU3RvcHNbMF0udmlzaXRUOwogICAgICBpZih0ID49IHMxQXJyaXZlVCl7CiAgICAgICAgY29uc3Qgc2lnUCA9IG5vcm0odCwgczFBcnJpdmVUICsgMTAwLCBzMUFycml2ZVQgKyA2MDApOwogICAgICAgIHM0U2lnUGF0aC5zZXRBdHRyaWJ1dGUoJ3N0cm9rZS1kYXNob2Zmc2V0JywKICAgICAgICAgIFN0cmluZyhsZXJwKDEwMCwgMCwgZWlvKHNpZ1ApKSkpOwogICAgICB9IGVsc2UgewogICAgICAgIHM0U2lnUGF0aC5zZXRBdHRyaWJ1dGUoJ3N0cm9rZS1kYXNob2Zmc2V0JywgJzEwMCcpOwogICAgICB9CgogICAgICAvLyBTdGF0aW9uIDM6IGNoYXQgZG90cyBjYXNjYWRlCiAgICAgIGNvbnN0IHMzQXJyaXZlVCA9IHN0YXRpb25TdG9wc1syXS52aXNpdFQ7CiAgICAgIGlmKHQgPj0gczNBcnJpdmVUKXsKICAgICAgICBjb25zdCBjdCA9IHQgLSBzM0Fycml2ZVQ7CiAgICAgICAgY29uc3QgcDEgPSBNYXRoLm1heCgwLCBNYXRoLnNpbigoY3QgLyAyODApICogTWF0aC5QSSAtIDApKTsKICAgICAgICBjb25zdCBwMiA9IE1hdGgubWF4KDAsIE1hdGguc2luKChjdCAvIDI4MCkgKiBNYXRoLlBJIC0gMC43KSk7CiAgICAgICAgY29uc3QgcDMgPSBNYXRoLm1heCgwLCBNYXRoLnNpbigoY3QgLyAyODApICogTWF0aC5QSSAtIDEuNCkpOwogICAgICAgIHNldE9wKHM0UzNEb3QxLCAwLjQgKyAwLjYgKiBwMSk7CiAgICAgICAgc2V0T3AoczRTM0RvdDIsIDAuNCArIDAuNiAqIHAyKTsKICAgICAgICBzZXRPcChzNFMzRG90MywgMC40ICsgMC42ICogcDMpOwogICAgICB9IGVsc2UgewogICAgICAgIHNldE9wKHM0UzNEb3QxLCAnMCcpOwogICAgICAgIHNldE9wKHM0UzNEb3QyLCAnMCcpOwogICAgICAgIHNldE9wKHM0UzNEb3QzLCAnMCcpOwogICAgICB9CgogICAgICAvLyBTdGF0aW9uIDQ6IGJhZGdlIGNoZWNrIGFwcGVhcnMKICAgICAgY29uc3QgczRBcnJpdmVUID0gc3RhdGlvblN0b3BzWzNdLnZpc2l0VDsKICAgICAgaWYodCA+PSBzNEFycml2ZVQpewogICAgICAgIGNvbnN0IGNrUCA9IG5vcm0odCwgczRBcnJpdmVUICsgMTAwLCBzNEFycml2ZVQgKyA1MDApOwogICAgICAgIHNldE9wKHM0UzRDaGVjaywgJzEnKTsKICAgICAgICBzZXRUcmFuc2Zvcm0oczRTNENoZWNrLCBgdHJhbnNsYXRlKDExLC05KSBzY2FsZSgke2VvKGNrUCl9KWApOwogICAgICB9IGVsc2UgewogICAgICAgIHNldE9wKHM0UzRDaGVjaywgJzAnKTsKICAgICAgfQogICAgfQoKICAgIC8qIOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkAogICAgICAgU0NFTkUgNSDigJQgRVFVSVBNRU5UIChSRUZJTkVEIOKAlCBpdGVtcyByb3V0ZSBpbnRvIGFsaWdubWVudCkKICAgICAgIAogICAgICAgSXRlbXMgc2xpZGUgaW4gZnJvbSB0aGUgbGVmdCAob2ZmLWNhbnZhcykgYW5kIGFsaWduIGF0IHRoZWlyCiAgICAgICB0YXJnZXQgeCBwb3NpdGlvbnMuIFNtb290aCBlYXNlZCBtb3Rpb24sIG5vIGRyb3BwaW5nLgogICAgICAg4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQICovCiAgICBpZihzSWR4ID09PSA0KXsKICAgICAgY29uc3QgdCA9IGUgLSBTQy5zNTsKICAgICAgc2V0T3AoczVDYXB0aW9uLCBlbyhub3JtKHQsIDIwMCwgODAwKSkpOwogICAgICBzZXRPcChzNVRpbWUsIGVvKG5vcm0odCwgNDAwLCA5MDApKSk7CgogICAgICAvLyBJdGVtcyBzbGlkZSBpbiBmcm9tIHg9LTQwIOKGkiB0YXJnZXQgeCwgYWxsIG9uIHJhaWwgeT0yNDAKICAgICAgLy8gU3RhZ2dlcjogZmlyc3QgYXQgMTIwMCwgc2Vjb25kIGF0IDE1MDAsIHRoaXJkIGF0IDE4MDAKICAgICAgLy8gRWFjaCB0YWtlcyAxMjAwbXMgdG8gc2V0dGxlIGludG8gcGxhY2UKICAgICAgY29uc3Qgc2xpZGVJdGVtID0gKGVsLCBzdGFydFQsIHRhcmdldFgpID0+IHsKICAgICAgICBjb25zdCBzbGlkZUVuZCA9IHN0YXJ0VCArIDEyMDA7CiAgICAgICAgaWYodCA8IHN0YXJ0VCl7CiAgICAgICAgICBzZXRPcChlbCwgJzAnKTsKICAgICAgICAgIHNldFRyYW5zZm9ybShlbCwgYHRyYW5zbGF0ZSgtNDAsMjQwKWApOwogICAgICAgIH0gZWxzZSBpZih0IDwgc2xpZGVFbmQpewogICAgICAgICAgY29uc3QgcCA9IG5vcm0odCwgc3RhcnRULCBzbGlkZUVuZCk7CiAgICAgICAgICBjb25zdCB4ID0gbGVycCgtNDAsIHRhcmdldFgsIGVpbyhwKSk7CiAgICAgICAgICBzZXRUcmFuc2Zvcm0oZWwsIGB0cmFuc2xhdGUoJHt4fSwyNDApYCk7CiAgICAgICAgICBzZXRPcChlbCwgZW8ocCkpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICBzZXRUcmFuc2Zvcm0oZWwsIGB0cmFuc2xhdGUoJHt0YXJnZXRYfSwyNDApYCk7CiAgICAgICAgICBzZXRPcChlbCwgJzEnKTsKICAgICAgICB9CiAgICAgIH07CgogICAgICBzbGlkZUl0ZW0oczVMYXB0b3AsIDEyMDAsIDExMCk7CiAgICAgIHNsaWRlSXRlbShzNUhlYWRzZXQsIDE1MDAsIDE3MCk7CiAgICAgIHNsaWRlSXRlbShzNUtpdCwgMTgwMCwgMjMwKTsKCiAgICAgIC8vICJEZWxpdmVyZWQiIGluZGljYXRvciBhcHBlYXJzIGFmdGVyIGFsbCBpdGVtcyBhcmUgYWxpZ25lZAogICAgICBjb25zdCBkZWxUID0gMzMwMDsKICAgICAgaWYodCA+PSBkZWxUKXsKICAgICAgICBjb25zdCBkUCA9IG5vcm0odCwgZGVsVCwgZGVsVCArIDcwMCk7CiAgICAgICAgc2V0T3AoczVEZWxpdmVyZWQsIGVvKGRQKSk7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgc2V0T3AoczVEZWxpdmVyZWQsICcwJyk7CiAgICAgIH0KICAgIH0KCiAgICAvKiDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZAKICAgICAgIFNDRU5FIDYg4oCUIFJFQURZIChSRUZJTkVEIHY2NSkKICAgICAgIAogICAgICAgU2VxdWVuY2U6CiAgICAgICAgIDEuIFRvcCBzdGF0dXM6IGdyZWVuIHB1bHNpbmcgUkVBRFkgZG90IChsZWZ0KSArCiAgICAgICAgICAgIFpFUk8gQ09PUkRJTkFUSU9OIGNhcHRpb24gKHJpZ2h0KQogICAgICAgICAyLiBXRUVLIDEgdGl0bGUgZmFkZXMgaW4gYWJvdmUgY2FsZW5kYXIKICAgICAgICAgMy4gQ2FsZW5kYXIgc2hlbGwgKyBmYWRlZCBkYXlzIGZhZGUgaW4KICAgICAgICAgNC4gVEhVIGNvbHVtbiBmYWRlcyBpbiAoZm9jYWwpCiAgICAgICAgIDUuIENhbGVuZGFyIHNoZWxsICsgZmFkZWQgZGF5cyArIFdFRUsgMSB0aXRsZSBmYWRlIHRvIDAKICAgICAgICAgNi4gRm9jYWwgZ3JvdXAgKFRIVSArIGF2YXRhciArIGdsb3cpIHNoaWZ0cyAtMzJweCB0bwogICAgICAgICAgICB2aXN1YWxseSBjZW50ZXIgb24gY2FudmFzICh4PTE3MCkKICAgICAgICAgNy4gQXZhdGFyIHNsaWRlcyB1cCArIFdFTENPTUUgbGFiZWwgYXBwZWFycwogICAgICAgICA4LiBHbG93IHB1bHNlcyBhcm91bmQgVEhVIGNvbHVtbgogICAgICAgCiAgICAgICBUaHJvdWdob3V0OiBncmVlbiBSRUFEWSBkb3QgcHVsc2VzIGdlbnRseSAoc2luIG9wYWNpdHkgKwogICAgICAgZXhwYW5kaW5nIHB1bHNlIHJpbmcpIOKAlCBsaWdodHdlaWdodCBhbHdheXMtb24gc3RhdHVzIGluZGljYXRvci4KICAgICAgIOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkCAqLwogICAgaWYoc0lkeCA9PT0gNSl7CiAgICAgIGNvbnN0IHQgPSBlIC0gU0MuczY7CgogICAgICAvLyBSZWFkeSBkb3QgKyBsYWJlbCBmYWRlIGluCiAgICAgIHNldE9wKHM2UmVhZHlEb3QsIGVvKG5vcm0odCwgMjAwLCA4MDApKSk7CiAgICAgIHNldE9wKHM2Q2FwUmlnaHQsIGVvKG5vcm0odCwgNDAwLCAxMTAwKSkpOwoKICAgICAgLy8gUHVsc2UgcmluZyBhbmltYXRpb24gKGNvbnRpbnVvdXMsIGxvb3BpbmcgZXZlcnkgMS42cykKICAgICAgLy8gUmluZyByYWRpdXM6IDQg4oaSIDExLCBvcGFjaXR5OiAwLjcg4oaSIDAKICAgICAgaWYodCA+PSAyMDApewogICAgICAgIGNvbnN0IHB1bHNlVCA9ICgodCAtIDIwMCkgJSAxNjAwKSAvIDE2MDA7CiAgICAgICAgY29uc3QgcHVsc2VSID0gbGVycCg0LCAxMSwgcHVsc2VUKTsKICAgICAgICBjb25zdCBwdWxzZU8gPSAoMSAtIHB1bHNlVCkgKiAwLjc7CiAgICAgICAgczZQdWxzZVJpbmcuc2V0QXR0cmlidXRlKCdyJywgU3RyaW5nKHB1bHNlUikpOwogICAgICAgIHM2UHVsc2VSaW5nLnNldEF0dHJpYnV0ZSgnb3BhY2l0eScsIFN0cmluZyhwdWxzZU8pKTsKICAgICAgfQoKICAgICAgLy8gV0VFSyAxIHRpdGxlIGZhZGVzIGluIGVhcmx5LCBmYWRlcyBvdXQgYXMgY2FsZW5kYXIgZmFkZXMKICAgICAgY29uc3Qgd2tJblAgPSBlbyhub3JtKHQsIDYwMCwgMTMwMCkpOwogICAgICBjb25zdCB3a091dFAgPSBlbyhub3JtKHQsIDI1MDAsIDM0MDApKTsKICAgICAgc2V0T3AoczZXZWVrVGl0bGUsIHdrSW5QICogKDEgLSB3a091dFApKTsKCiAgICAgIC8vIENhbGVuZGFyIHNoZWxsIGZhZGVzIGluIGVhcmx5LCBmYWRlcyB0byAwIGFmdGVyIFRIVSBlc3RhYmxpc2hlZAogICAgICBjb25zdCBzaGVsbEluUCA9IGVvKG5vcm0odCwgNDAwLCAxMzAwKSk7CiAgICAgIGNvbnN0IHNoZWxsT3V0UCA9IGVvKG5vcm0odCwgMjUwMCwgMzQwMCkpOwogICAgICBzZXRPcChzNkNhbFNoZWxsLCBzaGVsbEluUCAqICgxIC0gc2hlbGxPdXRQKSk7CgogICAgICAvLyBGYWRlZCBkYXlzIGZhZGUgaW4gdG8gfjI4JSwgdGhlbiB0byAwCiAgICAgIGNvbnN0IGZkSW5QID0gZW8obm9ybSh0LCA4MDAsIDE3MDApKTsKICAgICAgY29uc3QgZmRPdXRQID0gZW8obm9ybSh0LCAyNTAwLCAzNDAwKSk7CiAgICAgIHNldE9wKHM2RmFkZWREYXlzLCBmZEluUCAqIDAuMjggKiAoMSAtIGZkT3V0UCkpOwoKICAgICAgLy8gVGh1cnNkYXkgY29sdW1uIGZhZGVzIGluIGZ1bGx5IChmb2NhbCkgYW5kIHN0YXlzIGF0IDEKICAgICAgc2V0T3AoczZUaHVyc2RheSwgZW8obm9ybSh0LCAxNDAwLCAyMzAwKSkpOwoKICAgICAgLy8gRk9DQUwgU0hJRlQg4oCUIG9uY2UgY2FsZW5kYXIgZmFkZXMsIHRoZSBlbnRpcmUgZm9jYWwgZ3JvdXAKICAgICAgLy8gKFRIVSArIGF2YXRhciArIGdsb3cpIHNoaWZ0cyAtMzJweCBzbyBUSFUgaXMgY2FudmFzLWNlbnRlcmVkLgogICAgICAvLyBUSFUgY29sdW1uIGNlbnRlciB4PTIwMiDihpIgc2hpZnRzIHRvIHg9MTcwLgogICAgICBjb25zdCBzaGlmdFAgPSBlbyhub3JtKHQsIDI3MDAsIDM1MDApKTsKICAgICAgY29uc3Qgc2hpZnREeCA9IGxlcnAoMCwgLTMyLCBzaGlmdFApOwogICAgICBzZXRUcmFuc2Zvcm0oczZGb2NhbCwgYHRyYW5zbGF0ZSgke3NoaWZ0RHh9LDApYCk7CgogICAgICAvLyBBdmF0YXIgc2xpZGVzIHVwICh5PTQwMCDihpIgeT0zNTgpLCBXRUxDT01FIGxhYmVsIGFwcGVhcnMKICAgICAgY29uc3QgYXZQID0gbm9ybSh0LCAyODAwLCAzODAwKTsKICAgICAgY29uc3QgYXZZID0gbGVycCg0MDAsIDM1OCwgZWlvKGF2UCkpOwogICAgICBzZXRUcmFuc2Zvcm0oczZBdmF0YXIsIGB0cmFuc2xhdGUoMjAyLCR7YXZZfSlgKTsKICAgICAgc2V0T3AoczZBdmF0YXIsIGVvKGF2UCkpOwoKICAgICAgLy8gR2xvdyByaW5nIHB1bHNlcyBhcm91bmQgVEhVIGNvbHVtbiAoaW4gZm9jYWwtc2hpZnRlZCBjb29yZHMpCiAgICAgIGlmKHQgPj0gMzUwMCl7CiAgICAgICAgY29uc3QgZ1AgPSBub3JtKHQsIDM1MDAsIDUwMDApOwogICAgICAgIHNldE9wKHM2R2xvdywgTWF0aC5zaW4oZ1AgKiBNYXRoLlBJKSAqIDAuNik7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgc2V0T3AoczZHbG93LCAnMCcpOwogICAgICB9CiAgICB9CgogICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZyYW1lKTsKICB9CiAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZyYW1lKTsKfSkoKTsKPC9zY3JpcHQ+CjwvYm9keT48L2h0bWw+Cg==", "PCFET0NUWVBFIGh0bWw+CjxodG1sPjxoZWFkPjxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KPHN0eWxlPgovKiDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZAKICAgdjY5IOKAlCAiVGhlIFNpY2sgRGF5IiAoY2xhcml0eSByZWZpbmVtZW50cykKICAgCiAgIFRhcmdldGVkIHJlZmluZW1lbnRzIHRvIHY2OCDigJQga2VlcGluZyB0aGUgc2FtZSB2aXN1YWwgc3lzdGVtLAogICBvbmx5IGFkanVzdGluZyBzdHJ1Y3R1cmUgYW5kIGRpZmZlcmVudGlhdGlvbiBiZXR3ZWVuIHNjZW5lcy4KICAgCiAgIEdsb2JhbCB0ZXh0IGZpeDoKICAgICBBbGwgImJlaWdlIiBjcmVhbSB0ZXh0ICgjMUExQTFBKSBvbiB0cmFuc3BhcmVudCBiYWNrZ3JvdW5kcwogICAgIHJlcGxhY2VkIHdpdGggcHJpbWFyeSBibHVlICgjQzgxMDJFKSBwZXIgZXN0YWJsaXNoZWQgYmx1ZQogICAgIHRleHQgaGllcmFyY2h5LiBDcmVhbSByZXRhaW5lZCBPTkxZIG9uIGNvbG9yZWQgZmlsbHMgd2hlcmUKICAgICBjb250cmFzdCByZXF1aXJlcyBpdCAobWVldGluZyBibG9jayB0aW1lcyBpbiBTNCDigJQgcmVwbGFjZWQKICAgICB3aXRoIGRhcmsgdGVhbCAjMEYzRDNFIGZvciBwcm9wZXIgY29udHJhc3Qgb24gYnJpZ2h0IGZpbGxzKS4KICAgCiAgIFMxIOKAlCBEaXNydXB0aW9uIChjaGF0IGljb24gc2VjdGlvbik6CiAgICAgQWRkZWQgc3RydWN0dXJhbCBidWZmZXIgYmVsb3cgdGhlIGNoYXRib3Q6IHNtYWxsICJBU1NJU1RBTlQiCiAgICAgaWRlbnRpZmllciBsYWJlbCBhYm92ZSB0aGUgYm90LCB2ZXJ0aWNhbCBkYXNoZWQgY29ubmVjdG9yCiAgICAgZnJvbSBjaGF0Ym90IGRvd24gdG8gYSBob3Jpem9udGFsIGRpdmlkZXIgbGluZSBhdCB5PTMzOCwKICAgICBhbmQgdGhlIHJlc3BvbnNlIGJ1YmJsZSByZXBvc2l0aW9uZWQgYXQgeT0zNjYgKGNsb3Nlciwgd2l0aAogICAgIHByb3BlciBzcGFjaW5nKS4gVGhlIGNoYXRib3Qgc2VjdGlvbiBub3cgZmVlbHMgZ3JvdW5kZWQgYXMKICAgICBwYXJ0IG9mIHRoZSBzeXN0ZW0gcmF0aGVyIHRoYW4gZGV0YWNoZWQuCiAgIAogICBTMiDigJQgQW5hbHl6aW5nIChyZWRlc2lnbmVkIGZvciBkaWZmZXJlbnRpYXRpb24gZnJvbSBTMyk6CiAgICAgUmVwbGFjZWQgaG9yaXpvbnRhbCBzY2FuIHJvd3Mgd2l0aCBjb25jZW50cmljIGxheWVyZWQKICAgICBpbnNpZ2h0IHJpbmdzLiBDaGF0Ym90IG5vdyBhdCBjZW50ZXIgKDE3MCwgMjYwKS4gVGhyZWUKICAgICB1bmRlcnN0YW5kaW5nIHJpbmdzIGZvcm0gc2VxdWVudGlhbGx5IGFyb3VuZCBpdDoKICAgICAgIFJpbmcgMSAocj00MCk6ICBUQVNLUyAgICDigJQgOCBub2RlcyBwb3AgaW4gYXJvdW5kIHBlcmltZXRlcgogICAgICAgUmluZyAyIChyPTcwKTogIE1FRVRJTkdTIOKAlCAzIG5vZGVzCiAgICAgICBSaW5nIDMgKHI9MTAwKTogQ0xJRU5UUyAg4oCUIDUgbm9kZXMKICAgICBFYWNoIHJpbmcgb3V0bGluZSBkcmF3cyB2aWEgc3Ryb2tlLWRhc2hvZmZzZXQsIHRoZW4gbm9kZXMKICAgICBwb3B1bGF0ZSB0aGUgcGVyaW1ldGVyLCB0aGVuIHRoZSBsYWJlbCBmYWRlcyBpbi4KICAgICBNb3Rpb24gaXMgUkFESUFMIChmb3JtYXRpb24gYXJvdW5kIGNlbnRlciksIGRpc3RpbmN0IGZyb20KICAgICBTMydzIHBhcmFsbGVsIGxhbmUgbW92ZW1lbnQg4oCUIGNsZWFybHkgY29udmV5cwogICAgICJpbnRlcnByZXRhdGlvbi9ldmFsdWF0aW9uL2ludGVybmFsIHByb2Nlc3NpbmciIHJhdGhlciB0aGFuCiAgICAgImV4ZWN1dGlvbi4iIFRocmVlIHJpbmcgbGFiZWxzIGxpc3RlZCBhdCB0b3A6IFRBU0tTIMK3IDM0IHwKICAgICBNRUVUSU5HUyDCtyAzIHwgQ0xJRU5UUyDCtyA1LgogICAKICAgUzMg4oCUIE9yY2hlc3RyYXRpbmcgKGNlbnRyYWxpemVkIGNvbnRyb2wgZW1waGFzaXMpOgogICAgIEFkZGVkIGFuIEFkanV0YW50IGNvbnRyb2wgaHViIGF0IHRoZSBsZWZ0IG9mIHRoZSBsYW5lcyDigJQKICAgICBzbWFsbCBjb3BwZXIgZGlzYyBhdCAoMjAsIDIzNikgd2l0aCBjb250aW51b3VzIHB1bHNlIHJpbmcsCiAgICAgcGx1cyA0IGRhc2hlZCBjb25uZWN0b3JzIHJhZGlhdGluZyB0byBlYWNoIGxhbmUgc3RhcnQuCiAgICAgVGhlIGh1YiBhcHBlYXJzIEJFRk9SRSB0aGUgbGFuZXMvdGFza3MsIHNpZ25hbGluZyB0aGUKICAgICBjZW50cmFsaXplZCBjb250cm9sbGVyLiBTdHJlbmd0aGVucyAiY29vcmRpbmF0ZWQgY29udHJvbCIKICAgICByZWFkaW5nIHdpdGhvdXQgY2hhbmdpbmcgdGhlIGV4aXN0aW5nIHRpbGUgZmxvdyBsb2dpYy4KICAgCiAgIFM3IOKAlCBDb21wbGV0ZSAodGV4dCBjb250cmFzdCk6CiAgICAgU3VtbWFyeSBjYXJkIHRpdGxlIGFuZCBzdGF0IHJvdyBsYWJlbHMgY2hhbmdlZCBmcm9tIGNyZWFtCiAgICAgIzFBMUExQSB0byBwcmltYXJ5IGJsdWUgI0M4MTAyRSDigJQgc3Ryb25nIGNvbnRyYXN0IG9uIHRoZQogICAgIHRyYW5zcGFyZW50IGNhcmQgYmFja2dyb3VuZC4gIlplcm8gY2xpZW50IGltcGFjdCIgc3RheXMKICAgICBncmVlbiBmb3IgZW1waGFzaXMuCiAgIOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkCAqLwoqe2JveC1zaXppbmc6Ym9yZGVyLWJveDttYXJnaW46MDtwYWRkaW5nOjB9CmJvZHl7YmFja2dyb3VuZDp0cmFuc3BhcmVudH0KLnN0b3J5ewogIGRpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47YWxpZ24taXRlbXM6Y2VudGVyOwogIHBhZGRpbmc6MnJlbSAxcmVtIDIuNXJlbTsKICBmb250LWZhbWlseTotYXBwbGUtc3lzdGVtLHN5c3RlbS11aSxzYW5zLXNlcmlmOwp9Ci5zY2VuZS13cmFwe3Bvc2l0aW9uOnJlbGF0aXZlO3dpZHRoOjM0MHB4O2hlaWdodDo0MzBweH0KCi5zdGVwewogIHBvc2l0aW9uOmFic29sdXRlO2luc2V0OjA7CiAgb3BhY2l0eTowOwogIHRyYW5zaXRpb246b3BhY2l0eSAuOHMgZWFzZSwgdHJhbnNmb3JtIC44cyBlYXNlOwogIHRyYW5zZm9ybTpzY2FsZSguOTYpOwogIHBvaW50ZXItZXZlbnRzOm5vbmU7Cn0KLnN0ZXAuYWN0aXZlewogIG9wYWNpdHk6MTsKICB0cmFuc2Zvcm06c2NhbGUoMSk7CiAgcG9pbnRlci1ldmVudHM6YXV0bzsKfQoKLnN0ZXAtaW5uZXJ7CiAgcG9zaXRpb246YWJzb2x1dGU7aW5zZXQ6MDsKICBhbmltYXRpb246YnJlYXRoZSA2cyBlYXNlLWluLW91dCBpbmZpbml0ZTsKfQpAa2V5ZnJhbWVzIGJyZWF0aGV7CiAgMCUsMTAwJXt0cmFuc2Zvcm06c2NhbGUoMSl9CiAgNTAlICAgIHt0cmFuc2Zvcm06c2NhbGUoMS4wMTIpfQp9Cjwvc3R5bGU+CjxzdHlsZT4KaHRtbCxib2R5e21hcmdpbjowO3BhZGRpbmc6MDtiYWNrZ3JvdW5kOiNGN0YzRUQhaW1wb3J0YW50O3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7b3ZlcmZsb3c6aGlkZGVuO30KYm9keXtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7fQo8L3N0eWxlPjwvaGVhZD48Ym9keT4KCjxkaXYgY2xhc3M9InN0b3J5Ij4KPGRpdiBjbGFzcz0ic2NlbmUtd3JhcCI+CgogIDwhLS0g4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQCiAgICAgICBTQ0VORSAxIOKAlCBSRUQgwrcgRElTUlVQVElPTiDCtyBTQVJBSCBTSUNLCiAgICAgICAKICAgICAgIExheW91dCAoc3lzdGVtIGJhbmQgYXQgeT0yNzAgY29ubmVjdHMgYWxsIGVsZW1lbnRzKToKICAgICAgICAgW1NhcmFoIGF2YXRhcl0g4pSA4pSAIHN5c3RlbSBiYW5kIOKUgOKUgCBbY2FyZCBzdGFja10g4pSA4pSAIFtjaGF0Ym90XQogICAgICAgCiAgICAgICBDYXJkIHN0YWNrOiA2IGNhcmRzIHN0YWNrZWQgd2l0aCBzdWJ0bGUgcm90YXRpb24vb2Zmc2V0CiAgICAgICAodmlzdWFsIHJlcHJlc2VudGF0aW9uIG9mICJ1bnN0YWJsZSB3b3JrbG9hZCIpLCB3aXRoCiAgICAgICBzdWJ0bGUgb3NjaWxsYXRpb24uICIzNCB0YXNrcyIgY291bnQgYmVsb3cuCiAgICAgICDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZAgLS0+CiAgPGRpdiBjbGFzcz0ic3RlcCBhY3RpdmUiIGlkPSJzY2VuZTEiPgogICAgPGRpdiBjbGFzcz0ic3RlcC1pbm5lciI+CiAgICAgIDxzdmcgd2lkdGg9IjM0MCIgaGVpZ2h0PSI0MzAiIHZpZXdCb3g9IjAgMCAzNDAgNDMwIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgoKICAgICAgICA8IS0tIOKUgOKUgOKUgCBTdGF0dXMgaW5kaWNhdG9yIChSRUQpIOKUgOKUgOKUgCAtLT4KICAgICAgICA8ZyBpZD0iczFTdGF0dXMiIG9wYWNpdHk9IjAiPgogICAgICAgICAgPGNpcmNsZSBpZD0iczFQdWxzZVJpbmciIGN4PSI1NiIgY3k9IjExMyIgcj0iNCIKICAgICAgICAgICAgICAgICAgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjRDQ1NjRGIiBzdHJva2Utd2lkdGg9IjEuMiIgb3BhY2l0eT0iMCIvPgogICAgICAgICAgPGNpcmNsZSBjeD0iNTYiIGN5PSIxMTMiIHI9IjQiIGZpbGw9IiNENDU2NEYiLz4KICAgICAgICAgIDx0ZXh0IHg9IjY4IiB5PSIxMTYiCiAgICAgICAgICAgICAgICBmb250LWZhbWlseT0iLWFwcGxlLXN5c3RlbSxzeXN0ZW0tdWksc2Fucy1zZXJpZiIKICAgICAgICAgICAgICAgIGZvbnQtc2l6ZT0iOSIgZm9udC13ZWlnaHQ9IjcwMCIgbGV0dGVyLXNwYWNpbmc9IjIiCiAgICAgICAgICAgICAgICBmaWxsPSIjRDQ1NjRGIj5ESVNSVVBUSU9OPC90ZXh0PgogICAgICAgIDwvZz4KCiAgICAgICAgPCEtLSDilIDilIDilIAgVGltZSBjaGlwICh0b3AtcmlnaHQsIGZpeGVkIHNpemluZyDigJQgd2lkZXIsIHBhZGRlZCwgYmx1ZSB0b25lcykg4pSA4pSA4pSAIC0tPgogICAgICAgIDxnIGlkPSJzMVRpbWUiIG9wYWNpdHk9IjAiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDIxNywxMDMpIj4KICAgICAgICAgIDxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSI5NSIgaGVpZ2h0PSIyMiIgcng9IjYiCiAgICAgICAgICAgICAgICBmaWxsPSJub25lIiBzdHJva2U9IiNDMkMyQzIiIHN0cm9rZS13aWR0aD0iMSIvPgogICAgICAgICAgPHRleHQgeD0iNDcuNSIgeT0iMTQiIHRleHQtYW5jaG9yPSJtaWRkbGUiCiAgICAgICAgICAgICAgICBmb250LWZhbWlseT0iLWFwcGxlLXN5c3RlbSxzeXN0ZW0tdWksc2Fucy1zZXJpZiIKICAgICAgICAgICAgICAgIGZvbnQtc2l6ZT0iOSIgZm9udC13ZWlnaHQ9IjYwMCIgbGV0dGVyLXNwYWNpbmc9IjEuMiIKICAgICAgICAgICAgICAgIGZpbGw9IiNDODEwMkUiPk1PTiDCtyA4OjAwIEFNPC90ZXh0PgogICAgICAgIDwvZz4KCiAgICAgICAgPCEtLSDilIDilIDilIAgU3lzdGVtIGJhbmQg4oCUIGhvcml6b250YWwgYWxpZ25tZW50IGd1aWRlIGNvbm5lY3RpbmcgZWxlbWVudHMg4pSA4pSA4pSAIC0tPgogICAgICAgIDxsaW5lIGlkPSJzMUJhbmQiIHgxPSI0MCIgeTE9IjI3MCIgeDI9IjMwMCIgeTI9IjI3MCIKICAgICAgICAgICAgICBzdHJva2U9IiNDMkMyQzIiIHN0cm9rZS13aWR0aD0iLjgiIHN0cm9rZS1kYXNoYXJyYXk9IjIgNCIgb3BhY2l0eT0iMCIvPgoKICAgICAgICA8IS0tIOKUgOKUgOKUgCBTYXJhaCBhdmF0YXIgKGxlZnQsIGFuY2hvcmVkIHRvIGJhbmQpIOKUgOKUgOKUgAogICAgICAgICAgICAgQXZhdGFyIGluIERJTSBURUFMIChub3QgcmVkKSDigJQgdGhlIGRpc3J1cHRpb24gaXMgc2lnbmFsZWQKICAgICAgICAgICAgIG9ubHkgYnkgdGhlIHNtYWxsIHJlZCAieiIgc3ltYm9sIGFuZCB0aGUgdG9wLWxlZnQgc3RhdHVzCiAgICAgICAgICAgICBkb3QuIFBlciBicmllZjogIm5vbi1pbnRydXNpdmUsIG5vIGhhcnNoIHJlZCBVSS4iIC0tPgogICAgICAgIDxnIGlkPSJzMVNhcmFoIiBvcGFjaXR5PSIwIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSg1MCwyNjApIj4KICAgICAgICAgIDxnIHN0cm9rZT0iI0MyQzJDMiIgc3Ryb2tlLXdpZHRoPSIxLjgiIGZpbGw9Im5vbmUiCiAgICAgICAgICAgICBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIG9wYWNpdHk9Ii43NSI+CiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjAiIGN5PSItNiIgcj0iNiIvPgogICAgICAgICAgICA8cGF0aCBkPSJNLTEwLDEwIEMtMTAsMyAtNSwwIDAsMCBDNSwwIDEwLDMgMTAsMTAiLz4KICAgICAgICAgIDwvZz4KICAgICAgICAgIDwhLS0gInoiIHNsZWVwIG1hcmtlciBiZXNpZGUgYXZhdGFyIGhlYWQg4oCUIHNtYWxsIGFjY2VudCBvZiByZWQgLS0+CiAgICAgICAgICA8dGV4dCB4PSIxNCIgeT0iLTgiIHRleHQtYW5jaG9yPSJtaWRkbGUiCiAgICAgICAgICAgICAgICBmb250LWZhbWlseT0iLWFwcGxlLXN5c3RlbSxzeXN0ZW0tdWksc2Fucy1zZXJpZiIKICAgICAgICAgICAgICAgIGZvbnQtc2l6ZT0iMTAiIGZvbnQtd2VpZ2h0PSI3MDAiCiAgICAgICAgICAgICAgICBmaWxsPSIjRDQ1NjRGIj56PC90ZXh0PgogICAgICAgICAgPHRleHQgeD0iMCIgeT0iMzIiIHRleHQtYW5jaG9yPSJtaWRkbGUiCiAgICAgICAgICAgICAgICBmb250LWZhbWlseT0iLWFwcGxlLXN5c3RlbSxzeXN0ZW0tdWksc2Fucy1zZXJpZiIKICAgICAgICAgICAgICAgIGZvbnQtc2l6ZT0iOSIgZm9udC13ZWlnaHQ9IjYwMCIKICAgICAgICAgICAgICAgIGZpbGw9IiNDODEwMkUiPlNhcmFoIMK3IHNpY2s8L3RleHQ+CiAgICAgICAgPC9nPgoKICAgICAgICA8IS0tIOKUgOKUgOKUgCAzNCB0YXNrcyBhcyBhYnN0cmFjdCBub2RlIGdyYXBoIOKUgOKUgOKUgAogICAgICAgICAgICAgR2VuZXJhdGVkIHZpYSBKUzogMzQgc21hbGwgZmlsbGVkIG5vZGVzIChyYWRpdXMgMi41KQogICAgICAgICAgICAgcG9zaXRpb25lZCBpbiBhIHNvZnQgY2x1c3Rlciwgd2l0aCBsaWdodCBjb25uZWN0aW5nCiAgICAgICAgICAgICBsaW5lcyBiZXR3ZWVuIG5lYXJieSBub2RlcyAobmV0d29yayBtZXRhcGhvcikuIEVhY2gKICAgICAgICAgICAgIG5vZGUgb3NjaWxsYXRlcyBzdWJ0bHkuIFRoZSBjbHVzdGVyIGlzIGNlbnRlcmVkIGF0CiAgICAgICAgICAgICAoMTYwLCAyNjApLiBHcm91cCBnI3MxTm9kZXMgY29udGFpbnMgbm9kZXM7IGdyb3VwCiAgICAgICAgICAgICBnI3MxRWRnZXMgY29udGFpbnMgdGhlIGNvbm5lY3RpbmcgbGluZXMuIC0tPgogICAgICAgIDxnIGlkPSJzMUVkZ2VzIiBvcGFjaXR5PSIwIj48L2c+CiAgICAgICAgPGcgaWQ9InMxTm9kZXMiIG9wYWNpdHk9IjAiPjwvZz4KCiAgICAgICAgPCEtLSBDb3VudCBsYWJlbCBiZWxvdyBub2RlIGNsdXN0ZXIgLS0+CiAgICAgICAgPGcgaWQ9InMxQ291bnQiIG9wYWNpdHk9IjAiPgogICAgICAgICAgPHRleHQgeD0iMTYwIiB5PSIzMTYiIHRleHQtYW5jaG9yPSJtaWRkbGUiCiAgICAgICAgICAgICAgICBmb250LWZhbWlseT0iLWFwcGxlLXN5c3RlbSxzeXN0ZW0tdWksc2Fucy1zZXJpZiIKICAgICAgICAgICAgICAgIGZvbnQtc2l6ZT0iMTEiIGZvbnQtd2VpZ2h0PSI3MDAiIGxldHRlci1zcGFjaW5nPSIuNSIKICAgICAgICAgICAgICAgIGZpbGw9IiNDODEwMkUiPjM0IHRhc2tzPC90ZXh0PgogICAgICAgICAgPHRleHQgeD0iMTYwIiB5PSIzMzAiIHRleHQtYW5jaG9yPSJtaWRkbGUiCiAgICAgICAgICAgICAgICBmb250LWZhbWlseT0iLWFwcGxlLXN5c3RlbSxzeXN0ZW0tdWksc2Fucy1zZXJpZiIKICAgICAgICAgICAgICAgIGZvbnQtc2l6ZT0iOSIgZm9udC13ZWlnaHQ9IjUwMCIgbGV0dGVyLXNwYWNpbmc9IjEiCiAgICAgICAgICAgICAgICBmaWxsPSIjQzJDMkMyIj5hd2FpdGluZyByZWRpc3RyaWJ1dGlvbjwvdGV4dD4KICAgICAgICA8L2c+CgogICAgICAgIDwhLS0g4pSA4pSA4pSAIENoYXRib3QgY2hhcmFjdGVyIChyaWdodCwgYW5jaG9yZWQgdG8gYmFuZCkg4pSA4pSA4pSACiAgICAgICAgICAgICBDaGF0Ym90IGluIGRpbSB0ZWFsIChpZGxlL3Byb2Nlc3Npbmcgc3RhdGUpLiBDb2xvcgogICAgICAgICAgICAgc2hpZnRzIHRvIGJyaWdodCBibHVlIHdoZW4gaXQgdHJhbnNpdGlvbnMgaW50bwogICAgICAgICAgICAgcHJvY2Vzc2luZyBtb2RlIGF0IHNjZW5lJ3MgZW5kLiAtLT4KICAgICAgICA8ZyBpZD0iczFCb3QiIG9wYWNpdHk9IjAiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDI2NSwyNjApIj4KICAgICAgICAgIDwhLS0gQW50ZW5uYWUgLS0+CiAgICAgICAgICA8ZyBpZD0iczFCb3RBbnRlbm5hZSIgc3Ryb2tlPSIjQzJDMkMyIiBzdHJva2Utd2lkdGg9IjEuNSIKICAgICAgICAgICAgIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgZmlsbD0iI0MyQzJDMiI+CiAgICAgICAgICAgIDxsaW5lIHgxPSItNSIgeTE9Ii0xMyIgeDI9Ii01IiB5Mj0iLTE5Ii8+CiAgICAgICAgICAgIDxsaW5lIHgxPSI1IiB5MT0iLTEzIiB4Mj0iNSIgeTI9Ii0xOSIvPgogICAgICAgICAgICA8Y2lyY2xlIGN4PSItNSIgY3k9Ii0yMSIgcj0iMS42Ii8+CiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjUiIGN5PSItMjEiIHI9IjEuNiIvPgogICAgICAgICAgPC9nPgogICAgICAgICAgPCEtLSBIZWFkIC0tPgogICAgICAgICAgPHJlY3QgaWQ9InMxQm90SGVhZCIgeD0iLTEzIiB5PSItMTMiIHdpZHRoPSIyNiIgaGVpZ2h0PSIyMiIgcng9IjQiCiAgICAgICAgICAgICAgICBmaWxsPSJub25lIiBzdHJva2U9IiNDMkMyQzIiIHN0cm9rZS13aWR0aD0iMS42Ii8+CiAgICAgICAgICA8IS0tIEV5ZXMgLS0+CiAgICAgICAgICA8ZyBpZD0iczFCb3RFeWVzIiBmaWxsPSIjQzJDMkMyIj4KICAgICAgICAgICAgPGNpcmNsZSBjeD0iLTUiIGN5PSItMyIgcj0iMS42Ii8+CiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjUiIGN5PSItMyIgcj0iMS42Ii8+CiAgICAgICAgICA8L2c+CiAgICAgICAgICA8IS0tIFNtaWxlIC0tPgogICAgICAgICAgPHBhdGggaWQ9InMxQm90U21pbGUiIGQ9Ik0gLTUsNCBRIDAsNSA1LDQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iI0MyQzJDMiIKICAgICAgICAgICAgICAgIHN0cm9rZS13aWR0aD0iMS40IiBzdHJva2UtbGluZWNhcD0icm91bmQiLz4KICAgICAgICA8L2c+CgogICAgICAgIDwhLS0g4pSA4pSA4pSAIEFzc2lzdGFudCBpZGVudGlmaWVyIChzbWFsbCBsYWJlbCBhYm92ZSBjaGF0Ym90KSDilIDilIDilIAgLS0+CiAgICAgICAgPHRleHQgaWQ9InMxQm90TGFiZWwiIHg9IjI2NSIgeT0iMjI2IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIgogICAgICAgICAgICAgIGZvbnQtZmFtaWx5PSItYXBwbGUtc3lzdGVtLHN5c3RlbS11aSxzYW5zLXNlcmlmIgogICAgICAgICAgICAgIGZvbnQtc2l6ZT0iOCIgZm9udC13ZWlnaHQ9IjcwMCIgbGV0dGVyLXNwYWNpbmc9IjEuNSIKICAgICAgICAgICAgICBmaWxsPSIjQzJDMkMyIiBvcGFjaXR5PSIwIj5BU1NJU1RBTlQ8L3RleHQ+CgogICAgICAgIDwhLS0g4pSA4pSA4pSAIFZlcnRpY2FsIGNvbm5lY3RvcjogY2hhdGJvdCB0byByZXNwb25zZSBhcmVhIOKUgOKUgOKUgCAtLT4KICAgICAgICA8bGluZSBpZD0iczFCb3RDb25uIiB4MT0iMjY1IiB5MT0iMjc2IiB4Mj0iMjY1IiB5Mj0iMzI0IgogICAgICAgICAgICAgIHN0cm9rZT0iI0MyQzJDMiIgc3Ryb2tlLXdpZHRoPSIuOCIgc3Ryb2tlLWRhc2hhcnJheT0iMiAzIiBvcGFjaXR5PSIwIi8+CgogICAgICAgIDwhLS0g4pSA4pSA4pSAIEhvcml6b250YWwgZGl2aWRlcjogc2VwYXJhdGVzIGNoYXQgaWNvbiBzZWN0aW9uIGZyb20KICAgICAgICAgICAgIHJlc3BvbnNlIGNvbnRlbnQuIFNwYW5zIG1vc3Qgb2YgY2FudmFzLCB3aXRoIHByb3BlciBidWZmZXIuIC0tPgogICAgICAgIDxsaW5lIGlkPSJzMURpdmlkZXIiIHgxPSI1MCIgeTE9IjMzOCIgeDI9IjI5MCIgeTI9IjMzOCIKICAgICAgICAgICAgICBzdHJva2U9IiNDMkMyQzIiIHN0cm9rZS13aWR0aD0iLjgiIG9wYWNpdHk9IjAiLz4KCiAgICAgICAgPCEtLSDilIDilIDilIAgQm90IHJlc3BvbnNlIGJ1YmJsZSAoYW5jaG9yZWQgYmVsb3cgZGl2aWRlciB3aXRoIHByb3BlciBidWZmZXIpIOKUgOKUgOKUgCAtLT4KICAgICAgICA8ZyBpZD0iczFCb3RSZXNwb25zZSIgb3BhY2l0eT0iMCIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMTcwLDM2NikiPgogICAgICAgICAgPHJlY3QgeD0iLTExMCIgeT0iLTE0IiB3aWR0aD0iMjIwIiBoZWlnaHQ9IjI4IiByeD0iNiIKICAgICAgICAgICAgICAgIGZpbGw9Im5vbmUiIHN0cm9rZT0iI0M4MTAyRSIgc3Ryb2tlLXdpZHRoPSIxIi8+CiAgICAgICAgICA8dGV4dCB4PSIwIiB5PSIzIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIgogICAgICAgICAgICAgICAgZm9udC1mYW1pbHk9Ii1hcHBsZS1zeXN0ZW0sc3lzdGVtLXVpLHNhbnMtc2VyaWYiCiAgICAgICAgICAgICAgICBmb250LXNpemU9IjkiIGZvbnQtd2VpZ2h0PSI1MDAiCiAgICAgICAgICAgICAgICBmaWxsPSIjQzgxMDJFIj5BbmFseXppbmcgMzQgdGFza3MgwrcgMyBtZWV0aW5ncyDCtyBjbGllbnRzPC90ZXh0PgogICAgICAgIDwvZz4KCiAgICAgIDwvc3ZnPgogICAgPC9kaXY+CiAgPC9kaXY+CgogIDwhLS0g4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQCiAgICAgICBTQ0VORSAyIOKAlCBTWVNURU0gVU5ERVJTVEFORElORyAoY29uY2VudHJpYyBsYXllcmVkIGluc2lnaHQpCiAgICAgICAKICAgICAgIERpc3RpbmN0IGZyb20gUzMncyBwYXJhbGxlbCBsYW5lczogdGhpcyBpcyBSQURJQUwgbW90aW9uLAogICAgICAgbGF5ZXJlZCBpbnNpZ2h0IGJ1aWxkaW5nIGZyb20gdGhlIGNlbnRlciBvdXR3YXJkLgogICAgICAgCiAgICAgICBDaGF0Ym90IGF0IGNlbnRlciAoMTcwLCAyNjApLiBUaHJlZSBjb25jZW50cmljIHVuZGVyc3RhbmRpbmcKICAgICAgIHJpbmdzIGZvcm0gc2VxdWVudGlhbGx5IGFyb3VuZCBpdDoKICAgICAgICAgUmluZyAxIChyPTQwKTogIFRBU0tTICAgIOKAlCA4IG5vZGVzIGFwcGVhciBvbiB0aGUgcmluZwogICAgICAgICBSaW5nIDIgKHI9NzApOiAgTUVFVElOR1Mg4oCUIDMgbm9kZXMgYXBwZWFyIG9uIHRoZSByaW5nCiAgICAgICAgIFJpbmcgMyAocj0xMDApOiBDTElFTlRTICDigJQgNSBub2RlcyBhcHBlYXIgb24gdGhlIHJpbmcKICAgICAgIAogICAgICAgRWFjaCByaW5nOiBvdXRsaW5lIGRyYXdzIHZpYSBzdHJva2UtZGFzaG9mZnNldCwgdGhlbiBub2RlcwogICAgICAgcG9wIGludG8gcG9zaXRpb24gYWxvbmcgdGhlIHJpbmcgcGVyaW1ldGVyLCB0aGVuIHRoZSBsYWJlbAogICAgICAgZmFkZXMgaW4uIFRoZSBncm93aW5nIGNvbmNlbnRyaWMgc3RydWN0dXJlIHZpc3VhbGx5IGNvbnZleXMKICAgICAgICJ1bmRlcnN0YW5kaW5nIGJlaW5nIGJ1aWx0IGxheWVyIGJ5IGxheWVyLiIKICAgICAgIOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkCAtLT4KICA8ZGl2IGNsYXNzPSJzdGVwIiBpZD0ic2NlbmUyIj4KICAgIDxkaXYgY2xhc3M9InN0ZXAtaW5uZXIiPgogICAgICA8c3ZnIHdpZHRoPSIzNDAiIGhlaWdodD0iNDMwIiB2aWV3Qm94PSIwIDAgMzQwIDQzMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KCiAgICAgICAgPCEtLSBTdGF0dXMgaW5kaWNhdG9yIChPUkFOR0Ug4oCUIGFuYWx5emluZykgLS0+CiAgICAgICAgPGcgaWQ9InMyU3RhdHVzIiBvcGFjaXR5PSIwIj4KICAgICAgICAgIDxjaXJjbGUgaWQ9InMyUHVsc2VSaW5nIiBjeD0iNTYiIGN5PSIxMTMiIHI9IjQiCiAgICAgICAgICAgICAgICAgIGZpbGw9Im5vbmUiIHN0cm9rZT0iI0M4MTAyRSIgc3Ryb2tlLXdpZHRoPSIxLjIiIG9wYWNpdHk9IjAiLz4KICAgICAgICAgIDxjaXJjbGUgY3g9IjU2IiBjeT0iMTEzIiByPSI0IiBmaWxsPSIjQzgxMDJFIi8+CiAgICAgICAgICA8dGV4dCB4PSI2OCIgeT0iMTE2IgogICAgICAgICAgICAgICAgZm9udC1mYW1pbHk9Ii1hcHBsZS1zeXN0ZW0sc3lzdGVtLXVpLHNhbnMtc2VyaWYiCiAgICAgICAgICAgICAgICBmb250LXNpemU9IjkiIGZvbnQtd2VpZ2h0PSI3MDAiIGxldHRlci1zcGFjaW5nPSIyIgogICAgICAgICAgICAgICAgZmlsbD0iI0M4MTAyRSI+QU5BTFlaSU5HPC90ZXh0PgogICAgICAgIDwvZz4KCiAgICAgICAgPCEtLSBUaW1lIGNoaXAgLS0+CiAgICAgICAgPGcgaWQ9InMyVGltZSIgb3BhY2l0eT0iMCIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMjE3LDEwMykiPgogICAgICAgICAgPHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9Ijk1IiBoZWlnaHQ9IjIyIiByeD0iNiIKICAgICAgICAgICAgICAgIGZpbGw9Im5vbmUiIHN0cm9rZT0iI0MyQzJDMiIgc3Ryb2tlLXdpZHRoPSIxIi8+CiAgICAgICAgICA8dGV4dCB4PSI0Ny41IiB5PSIxNCIgdGV4dC1hbmNob3I9Im1pZGRsZSIKICAgICAgICAgICAgICAgIGZvbnQtZmFtaWx5PSItYXBwbGUtc3lzdGVtLHN5c3RlbS11aSxzYW5zLXNlcmlmIgogICAgICAgICAgICAgICAgZm9udC1zaXplPSI5IiBmb250LXdlaWdodD0iNjAwIiBsZXR0ZXItc3BhY2luZz0iMS4yIgogICAgICAgICAgICAgICAgZmlsbD0iI0M4MTAyRSI+TU9OIMK3IDg6MDUgQU08L3RleHQ+CiAgICAgICAgPC9nPgoKICAgICAgICA8IS0tIOKUgOKUgOKUgCBDb25jZW50cmljIHVuZGVyc3RhbmRpbmcgcmluZ3MgKGNlbnRlcmVkIGF0IDE3MCwgMjYwKSDilIDilIDilIAKICAgICAgICAgICAgIERyYXduIHZpYSBzdHJva2UtZGFzaG9mZnNldCBhbmltYXRpb24uIEVhY2ggcmluZyBoYXMKICAgICAgICAgICAgIHBhdGhMZW5ndGg9MzE0LjE2ICg9IDLPgCDDlyByYWRpdXMgZm9yIHI9NTAsIGJ1dCB3ZSB1c2UKICAgICAgICAgICAgIHBhdGhMZW5ndGg9IjEwMCIgZm9yIG5vcm1hbGl6ZWQgYW5pbWF0aW9uKS4KICAgICAgICDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIAgLS0+CgogICAgICAgIDwhLS0gUmluZyAzIChvdXRlcm1vc3Qg4oCUIENMSUVOVFMsIHI9MTAwKSAtLT4KICAgICAgICA8Y2lyY2xlIGlkPSJzMlJpbmczIiBjeD0iMTcwIiBjeT0iMjYwIiByPSIxMDAiCiAgICAgICAgICAgICAgICBmaWxsPSJub25lIiBzdHJva2U9IiNDMkMyQzIiIHN0cm9rZS13aWR0aD0iMSIKICAgICAgICAgICAgICAgIHN0cm9rZS1kYXNoYXJyYXk9IjEwMCIgc3Ryb2tlLWRhc2hvZmZzZXQ9IjEwMCIKICAgICAgICAgICAgICAgIHBhdGhMZW5ndGg9IjEwMCIgb3BhY2l0eT0iLjU1Ii8+CgogICAgICAgIDwhLS0gUmluZyAyIChtaWRkbGUg4oCUIE1FRVRJTkdTLCByPTcwKSAtLT4KICAgICAgICA8Y2lyY2xlIGlkPSJzMlJpbmcyIiBjeD0iMTcwIiBjeT0iMjYwIiByPSI3MCIKICAgICAgICAgICAgICAgIGZpbGw9Im5vbmUiIHN0cm9rZT0iI0MyQzJDMiIgc3Ryb2tlLXdpZHRoPSIxIgogICAgICAgICAgICAgICAgc3Ryb2tlLWRhc2hhcnJheT0iMTAwIiBzdHJva2UtZGFzaG9mZnNldD0iMTAwIgogICAgICAgICAgICAgICAgcGF0aExlbmd0aD0iMTAwIiBvcGFjaXR5PSIuNTUiLz4KCiAgICAgICAgPCEtLSBSaW5nIDEgKGlubmVybW9zdCDigJQgVEFTS1MsIHI9NDApIC0tPgogICAgICAgIDxjaXJjbGUgaWQ9InMyUmluZzEiIGN4PSIxNzAiIGN5PSIyNjAiIHI9IjQwIgogICAgICAgICAgICAgICAgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjQzJDMkMyIiBzdHJva2Utd2lkdGg9IjEiCiAgICAgICAgICAgICAgICBzdHJva2UtZGFzaGFycmF5PSIxMDAiIHN0cm9rZS1kYXNob2Zmc2V0PSIxMDAiCiAgICAgICAgICAgICAgICBwYXRoTGVuZ3RoPSIxMDAiIG9wYWNpdHk9Ii41NSIvPgoKICAgICAgICA8IS0tIOKUgOKUgOKUgCBDaGF0Ym90IGNoYXJhY3RlciAoY2VudGVyLCBpbiBhY3RpdmUgc3RhdGUpIOKUgOKUgOKUgCAtLT4KICAgICAgICA8ZyBpZD0iczJCb3QiIG9wYWNpdHk9IjAiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDE3MCwyNjApIj4KICAgICAgICAgIDxnIHN0cm9rZT0iI0M4MTAyRSIgc3Ryb2tlLXdpZHRoPSIxLjUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgZmlsbD0iI0M4MTAyRSI+CiAgICAgICAgICAgIDxsaW5lIHgxPSItNSIgeTE9Ii0xMyIgeDI9Ii01IiB5Mj0iLTE5Ii8+CiAgICAgICAgICAgIDxsaW5lIHgxPSI1IiB5MT0iLTEzIiB4Mj0iNSIgeTI9Ii0xOSIvPgogICAgICAgICAgICA8Y2lyY2xlIGN4PSItNSIgY3k9Ii0yMSIgcj0iMS42Ii8+CiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjUiIGN5PSItMjEiIHI9IjEuNiIvPgogICAgICAgICAgPC9nPgogICAgICAgICAgPHJlY3QgeD0iLTEzIiB5PSItMTMiIHdpZHRoPSIyNiIgaGVpZ2h0PSIyMiIgcng9IjQiCiAgICAgICAgICAgICAgICBmaWxsPSJub25lIiBzdHJva2U9IiNDODEwMkUiIHN0cm9rZS13aWR0aD0iMS42Ii8+CiAgICAgICAgICA8ZyBmaWxsPSIjQzgxMDJFIj4KICAgICAgICAgICAgPGNpcmNsZSBjeD0iLTUiIGN5PSItMyIgcj0iMS42Ii8+CiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjUiIGN5PSItMyIgcj0iMS42Ii8+CiAgICAgICAgICA8L2c+CiAgICAgICAgICA8cGF0aCBkPSJNIC01LDQgUSAwLDUgNSw0IiBmaWxsPSJub25lIiBzdHJva2U9IiNDODEwMkUiCiAgICAgICAgICAgICAgICBzdHJva2Utd2lkdGg9IjEuNCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIi8+CiAgICAgICAgPC9nPgoKICAgICAgICA8IS0tIOKUgOKUgOKUgCBSaW5nIDEgbm9kZXMgKFRBU0tTLCA4IGFyb3VuZCByPTQwKSDilIDilIDilIAKICAgICAgICAgICAgIFBvc2l0aW9ucyBjb21wdXRlZDogOCBldmVubHkgYXJvdW5kIGEgY2lyY2xlLgogICAgICAgICAgICAgYW5nbGVfaSA9IChpIC8gOCkgKiAyz4AsIHggPSAxNzAgKyA0MMK3Y29zKGFuZ2xlKSwgeSA9IDI2MCArIDQwwrdzaW4oYW5nbGUpCiAgICAgICAgICAgICBVc2luZyBkZWdyZWVzIGZvciBTVkcgcm90YXRpb24gc2ltdWxhdGlvbi4KICAgICAgICDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIAgLS0+CiAgICAgICAgPGcgaWQ9InMyUjFOb2RlcyI+CiAgICAgICAgICA8IS0tIDggbm9kZXMsIGdlbmVyYXRlZCBiZWxvdyBmb3IgY29uc2lzdGVuY3kuIFBvc2l0aW9uczoKICAgICAgICAgICAgICAgaT0wOiAoIDE3MCArIDQwLCAyNjAgKSA9ICgyMTAsIDI2MCkKICAgICAgICAgICAgICAgaT0xOiAoIDE3MCArIDI4LjI4LCAyNjAgKyAyOC4yOCApIOKJiCAoMTk4LjI4LCAyODguMjgpCiAgICAgICAgICAgICAgIGk9MjogKCAxNzAsIDI2MCArIDQwICkgPSAoMTcwLCAzMDApCiAgICAgICAgICAgICAgIGk9MzogKCAxNzAgLSAyOC4yOCwgMjYwICsgMjguMjggKSDiiYggKDE0MS43MiwgMjg4LjI4KQogICAgICAgICAgICAgICBpPTQ6ICggMTcwIC0gNDAsIDI2MCApID0gKDEzMCwgMjYwKQogICAgICAgICAgICAgICBpPTU6ICggMTcwIC0gMjguMjgsIDI2MCAtIDI4LjI4ICkg4omIICgxNDEuNzIsIDIzMS43MikKICAgICAgICAgICAgICAgaT02OiAoIDE3MCwgMjYwIC0gNDAgKSA9ICgxNzAsIDIyMCkKICAgICAgICAgICAgICAgaT03OiAoIDE3MCArIDI4LjI4LCAyNjAgLSAyOC4yOCApIOKJiCAoMTk4LjI4LCAyMzEuNzIpIC0tPgogICAgICAgICAgPGNpcmNsZSBjbGFzcz0iczJSMU5vZGUiIGN4PSIyMTAiIGN5PSIyNjAiIHI9IjIuNSIgZmlsbD0iI0M4MTAyRSIgb3BhY2l0eT0iMCIvPgogICAgICAgICAgPGNpcmNsZSBjbGFzcz0iczJSMU5vZGUiIGN4PSIxOTguMjgiIGN5PSIyODguMjgiIHI9IjIuNSIgZmlsbD0iI0M4MTAyRSIgb3BhY2l0eT0iMCIvPgogICAgICAgICAgPGNpcmNsZSBjbGFzcz0iczJSMU5vZGUiIGN4PSIxNzAiIGN5PSIzMDAiIHI9IjIuNSIgZmlsbD0iI0M4MTAyRSIgb3BhY2l0eT0iMCIvPgogICAgICAgICAgPGNpcmNsZSBjbGFzcz0iczJSMU5vZGUiIGN4PSIxNDEuNzIiIGN5PSIyODguMjgiIHI9IjIuNSIgZmlsbD0iI0M4MTAyRSIgb3BhY2l0eT0iMCIvPgogICAgICAgICAgPGNpcmNsZSBjbGFzcz0iczJSMU5vZGUiIGN4PSIxMzAiIGN5PSIyNjAiIHI9IjIuNSIgZmlsbD0iI0M4MTAyRSIgb3BhY2l0eT0iMCIvPgogICAgICAgICAgPGNpcmNsZSBjbGFzcz0iczJSMU5vZGUiIGN4PSIxNDEuNzIiIGN5PSIyMzEuNzIiIHI9IjIuNSIgZmlsbD0iI0M4MTAyRSIgb3BhY2l0eT0iMCIvPgogICAgICAgICAgPGNpcmNsZSBjbGFzcz0iczJSMU5vZGUiIGN4PSIxNzAiIGN5PSIyMjAiIHI9IjIuNSIgZmlsbD0iI0M4MTAyRSIgb3BhY2l0eT0iMCIvPgogICAgICAgICAgPGNpcmNsZSBjbGFzcz0iczJSMU5vZGUiIGN4PSIxOTguMjgiIGN5PSIyMzEuNzIiIHI9IjIuNSIgZmlsbD0iI0M4MTAyRSIgb3BhY2l0eT0iMCIvPgogICAgICAgIDwvZz4KCiAgICAgICAgPCEtLSDilIDilIDilIAgUmluZyAyIG5vZGVzIChNRUVUSU5HUywgMyBhcm91bmQgcj03MCkg4pSA4pSA4pSACiAgICAgICAgICAgICAzIG5vZGVzIGV2ZW5seTogaT0wIOKGkiAoMjQwLDI2MCksIGk9MSDihpIgKDEzNSwzMjAuNjIpLCBpPTIg4oaSICgxMzUsMTk5LjM4KQogICAgICAgICAgICAgQWN0dWFsbHk6IGFuZ2xlcyAwLCAyz4AvMywgNM+ALzMKICAgICAgICAgICAgIGk9MDogMTcwKzcwwrdjb3MoMCk9MjQwLCAyNjArNzDCt3NpbigwKT0yNjAKICAgICAgICAgICAgIGk9MTogMTcwKzcwwrdjb3MoMTIwwrApPTE3MC0zNT0xMzUsIDI2MCs3MMK3c2luKDEyMMKwKT0yNjArNjAuNjI9MzIwLjYyCiAgICAgICAgICAgICBpPTI6IDE3MCs3MMK3Y29zKDI0MMKwKT0xNzAtMzU9MTM1LCAyNjArNzDCt3NpbigyNDDCsCk9MjYwLTYwLjYyPTE5OS4zOAogICAgICAgIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgCAtLT4KICAgICAgICA8ZyBpZD0iczJSMk5vZGVzIj4KICAgICAgICAgIDxjaXJjbGUgY2xhc3M9InMyUjJOb2RlIiBjeD0iMjQwIiBjeT0iMjYwIiByPSIzIiBmaWxsPSIjQzgxMDJFIiBvcGFjaXR5PSIwIi8+CiAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJzMlIyTm9kZSIgY3g9IjEzNSIgY3k9IjMyMC42MiIgcj0iMyIgZmlsbD0iI0M4MTAyRSIgb3BhY2l0eT0iMCIvPgogICAgICAgICAgPGNpcmNsZSBjbGFzcz0iczJSMk5vZGUiIGN4PSIxMzUiIGN5PSIxOTkuMzgiIHI9IjMiIGZpbGw9IiNDODEwMkUiIG9wYWNpdHk9IjAiLz4KICAgICAgICA8L2c+CgogICAgICAgIDwhLS0g4pSA4pSA4pSAIFJpbmcgMyBub2RlcyAoQ0xJRU5UUywgNSBhcm91bmQgcj0xMDApIOKUgOKUgOKUgAogICAgICAgICAgICAgNSBub2RlcyBldmVubHk6IGkgaW4gMC4uNCwgYW5nbGUgPSBpwrc3MsKwCiAgICAgICAgICAgICBpPTA6IDE3MCsxMDA9MjcwLCAyNjAKICAgICAgICAgICAgIGk9MTogMTcwKzEwMMK3Y29zKDcywrApPTE3MCszMC45PTIwMC45LCAyNjArMTAwwrdzaW4oNzLCsCk9MjYwKzk1LjE9MzU1LjEg4oCUIGJ1dCB0aGF0J3MgYmV5b25kIGNhbnZhcyBoZWlnaHQgKDQzMCksIHN0aWxsIGZpdHMgYnV0IHB1c2hlcyBsYXlvdXQKICAgICAgICAgICAgIEJldHRlcjogU3RhcnQgYXQgLTkwwrAgdG8gcHV0IGZpcnN0IG5vZGUgYXQgdG9wLCBtb3JlIGJhbGFuY2VkCiAgICAgICAgICAgICBhbmdsZV9pID0gLTkwwrAgKyBpwrc3MsKwCiAgICAgICAgICAgICBpPTA6IC05MMKwIOKGkiAoMTcwLCAxNjApCiAgICAgICAgICAgICBpPTE6IC0xOMKwIOKGkiAoMTcwKzk1LjEsIDI2MC0zMC45KT0oMjY1LjEsIDIyOS4xKQogICAgICAgICAgICAgaT0yOiA1NMKwIOKGkiAoMTcwKzU4Ljc4LCAyNjArODAuOSk9KDIyOC43OCwgMzQwLjkpCiAgICAgICAgICAgICBpPTM6IDEyNsKwIOKGkiAoMTcwLTU4Ljc4LCAyNjArODAuOSk9KDExMS4yMiwgMzQwLjkpCiAgICAgICAgICAgICBpPTQ6IDE5OMKwIOKGkiAoMTcwLTk1LjEsIDI2MC0zMC45KT0oNzQuOSwgMjI5LjEpCiAgICAgICAg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAIC0tPgogICAgICAgIDxnIGlkPSJzMlIzTm9kZXMiPgogICAgICAgICAgPGNpcmNsZSBjbGFzcz0iczJSM05vZGUiIGN4PSIxNzAiIGN5PSIxNjAiIHI9IjMuMiIgZmlsbD0iI0M4MTAyRSIgb3BhY2l0eT0iMCIvPgogICAgICAgICAgPGNpcmNsZSBjbGFzcz0iczJSM05vZGUiIGN4PSIyNjUuMSIgY3k9IjIyOS4xIiByPSIzLjIiIGZpbGw9IiNDODEwMkUiIG9wYWNpdHk9IjAiLz4KICAgICAgICAgIDxjaXJjbGUgY2xhc3M9InMyUjNOb2RlIiBjeD0iMjI4Ljc4IiBjeT0iMzQwLjkiIHI9IjMuMiIgZmlsbD0iI0M4MTAyRSIgb3BhY2l0eT0iMCIvPgogICAgICAgICAgPGNpcmNsZSBjbGFzcz0iczJSM05vZGUiIGN4PSIxMTEuMjIiIGN5PSIzNDAuOSIgcj0iMy4yIiBmaWxsPSIjQzgxMDJFIiBvcGFjaXR5PSIwIi8+CiAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJzMlIzTm9kZSIgY3g9Ijc0LjkiIGN5PSIyMjkuMSIgcj0iMy4yIiBmaWxsPSIjQzgxMDJFIiBvcGFjaXR5PSIwIi8+CiAgICAgICAgPC9nPgoKICAgICAgICA8IS0tIOKUgOKUgOKUgCBSaW5nIGxhYmVscyAocG9zaXRpb25lZCBpbiB0b3AgY2FwdGlvbiBhcmVhLCBzaWRlLWJ5LXNpZGUpIOKUgOKUgOKUgCAtLT4KICAgICAgICA8ZyBpZD0iczJMYWJlbHMiIG9wYWNpdHk9IjAiPgogICAgICAgICAgPCEtLSBUQVNLUyBsYWJlbCAtLT4KICAgICAgICAgIDx0ZXh0IGlkPSJzMkxhYjEiIHg9IjgwIiB5PSIxNDgiIHRleHQtYW5jaG9yPSJtaWRkbGUiCiAgICAgICAgICAgICAgICBmb250LWZhbWlseT0iLWFwcGxlLXN5c3RlbSxzeXN0ZW0tdWksc2Fucy1zZXJpZiIKICAgICAgICAgICAgICAgIGZvbnQtc2l6ZT0iOSIgZm9udC13ZWlnaHQ9IjcwMCIgbGV0dGVyLXNwYWNpbmc9IjEuMiIKICAgICAgICAgICAgICAgIGZpbGw9IiNDODEwMkUiIG9wYWNpdHk9IjAiPlRBU0tTIMK3IDM0PC90ZXh0PgogICAgICAgICAgPCEtLSBNRUVUSU5HUyBsYWJlbCAtLT4KICAgICAgICAgIDx0ZXh0IGlkPSJzMkxhYjIiIHg9IjE3MCIgeT0iMTQ4IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIgogICAgICAgICAgICAgICAgZm9udC1mYW1pbHk9Ii1hcHBsZS1zeXN0ZW0sc3lzdGVtLXVpLHNhbnMtc2VyaWYiCiAgICAgICAgICAgICAgICBmb250LXNpemU9IjkiIGZvbnQtd2VpZ2h0PSI3MDAiIGxldHRlci1zcGFjaW5nPSIxLjIiCiAgICAgICAgICAgICAgICBmaWxsPSIjQzgxMDJFIiBvcGFjaXR5PSIwIj5NRUVUSU5HUyDCtyAzPC90ZXh0PgogICAgICAgICAgPCEtLSBDTElFTlRTIGxhYmVsIC0tPgogICAgICAgICAgPHRleHQgaWQ9InMyTGFiMyIgeD0iMjYyIiB5PSIxNDgiIHRleHQtYW5jaG9yPSJtaWRkbGUiCiAgICAgICAgICAgICAgICBmb250LWZhbWlseT0iLWFwcGxlLXN5c3RlbSxzeXN0ZW0tdWksc2Fucy1zZXJpZiIKICAgICAgICAgICAgICAgIGZvbnQtc2l6ZT0iOSIgZm9udC13ZWlnaHQ9IjcwMCIgbGV0dGVyLXNwYWNpbmc9IjEuMiIKICAgICAgICAgICAgICAgIGZpbGw9IiNDODEwMkUiIG9wYWNpdHk9IjAiPkNMSUVOVFMgwrcgNTwvdGV4dD4KICAgICAgICA8L2c+CgogICAgICAgIDwhLS0gRm9vdGVyIHN0YXR1cyAtLT4KICAgICAgICA8dGV4dCBpZD0iczJGb290ZXIiIHg9IjE3MCIgeT0iMzk1IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIgogICAgICAgICAgICAgIGZvbnQtZmFtaWx5PSItYXBwbGUtc3lzdGVtLHN5c3RlbS11aSxzYW5zLXNlcmlmIgogICAgICAgICAgICAgIGZvbnQtc2l6ZT0iOSIgZm9udC13ZWlnaHQ9IjUwMCIgbGV0dGVyLXNwYWNpbmc9IjEiCiAgICAgICAgICAgICAgZmlsbD0iI0M4MTAyRSIgb3BhY2l0eT0iMCI+TWFwcGVkIMK3IHJlYWR5IHRvIGRlbGVnYXRlPC90ZXh0PgoKICAgICAgPC9zdmc+CiAgICA8L2Rpdj4KICA8L2Rpdj4KCiAgPCEtLSDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZAKICAgICAgIFNDRU5FIDMg4oCUIE9SQU5HRSDCtyBBREpVVEFOVCBUQUtFUyBPVkVSIMK3IFRBU0tTIERJU1RSSUJVVEUKICAgICAgIOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkCAtLT4KICA8ZGl2IGNsYXNzPSJzdGVwIiBpZD0ic2NlbmUzIj4KICAgIDxkaXYgY2xhc3M9InN0ZXAtaW5uZXIiPgogICAgICA8c3ZnIHdpZHRoPSIzNDAiIGhlaWdodD0iNDMwIiB2aWV3Qm94PSIwIDAgMzQwIDQzMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KCiAgICAgICAgPGcgaWQ9InMzU3RhdHVzIiBvcGFjaXR5PSIwIj4KICAgICAgICAgIDxjaXJjbGUgaWQ9InMzUHVsc2VSaW5nIiBjeD0iNTYiIGN5PSIxMTMiIHI9IjQiCiAgICAgICAgICAgICAgICAgIGZpbGw9Im5vbmUiIHN0cm9rZT0iI0M4MTAyRSIgc3Ryb2tlLXdpZHRoPSIxLjIiIG9wYWNpdHk9IjAiLz4KICAgICAgICAgIDxjaXJjbGUgY3g9IjU2IiBjeT0iMTEzIiByPSI0IiBmaWxsPSIjQzgxMDJFIi8+CiAgICAgICAgICA8dGV4dCB4PSI2OCIgeT0iMTE2IgogICAgICAgICAgICAgICAgZm9udC1mYW1pbHk9Ii1hcHBsZS1zeXN0ZW0sc3lzdGVtLXVpLHNhbnMtc2VyaWYiCiAgICAgICAgICAgICAgICBmb250LXNpemU9IjkiIGZvbnQtd2VpZ2h0PSI3MDAiIGxldHRlci1zcGFjaW5nPSIyIgogICAgICAgICAgICAgICAgZmlsbD0iI0M4MTAyRSI+T1JDSEVTVFJBVElORzwvdGV4dD4KICAgICAgICA8L2c+CgogICAgICAgIDxnIGlkPSJzM1RpbWUiIG9wYWNpdHk9IjAiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDIxNywxMDMpIj4KICAgICAgICAgIDxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSI5NSIgaGVpZ2h0PSIyMiIgcng9IjYiCiAgICAgICAgICAgICAgICBmaWxsPSJub25lIiBzdHJva2U9IiNDMkMyQzIiIHN0cm9rZS13aWR0aD0iMSIvPgogICAgICAgICAgPHRleHQgeD0iNDcuNSIgeT0iMTQiIHRleHQtYW5jaG9yPSJtaWRkbGUiCiAgICAgICAgICAgICAgICBmb250LWZhbWlseT0iLWFwcGxlLXN5c3RlbSxzeXN0ZW0tdWksc2Fucy1zZXJpZiIKICAgICAgICAgICAgICAgIGZvbnQtc2l6ZT0iOSIgZm9udC13ZWlnaHQ9IjYwMCIgbGV0dGVyLXNwYWNpbmc9IjEuMiIKICAgICAgICAgICAgICAgIGZpbGw9IiNDODEwMkUiPk1PTiDCtyA4OjMwIEFNPC90ZXh0PgogICAgICAgIDwvZz4KCiAgICAgICAgPHRleHQgaWQ9InMzQ2FwdGlvbiIgeD0iMTcwIiB5PSIxNDgiIHRleHQtYW5jaG9yPSJtaWRkbGUiCiAgICAgICAgICAgICAgZm9udC1mYW1pbHk9Ii1hcHBsZS1zeXN0ZW0sc3lzdGVtLXVpLHNhbnMtc2VyaWYiCiAgICAgICAgICAgICAgZm9udC1zaXplPSIxMSIgZm9udC13ZWlnaHQ9IjcwMCIgbGV0dGVyLXNwYWNpbmc9IjIiCiAgICAgICAgICAgICAgZmlsbD0iI0M4MTAyRSIgb3BhY2l0eT0iMCI+Tk9XIMK3IFdBVENIIEFESlVUQU5UPC90ZXh0PgoKICAgICAgICA8IS0tIDQgbGFuZXMgYXQgeT0yMDAsMjI0LDI0OCwyNzIgd2l0aCBkZXBhcnRtZW50IGxhYmVscyAtLT4KICAgICAgICA8ZyBpZD0iczNMYW5lcyIgb3BhY2l0eT0iMCI+CiAgICAgICAgICA8bGluZSB4MT0iNjIiIHkxPSIyMDAiIHgyPSIyNzgiIHkyPSIyMDAiIHN0cm9rZT0iIzBGM0QzRSIgc3Ryb2tlLXdpZHRoPSIzIiBzdHJva2UtbGluZWNhcD0icm91bmQiLz4KICAgICAgICAgIDxsaW5lIHgxPSI2MiIgeTE9IjIyNCIgeDI9IjI3OCIgeTI9IjIyNCIgc3Ryb2tlPSIjMEYzRDNFIiBzdHJva2Utd2lkdGg9IjMiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIvPgogICAgICAgICAgPGxpbmUgeDE9IjYyIiB5MT0iMjQ4IiB4Mj0iMjc4IiB5Mj0iMjQ4IiBzdHJva2U9IiMwRjNEM0UiIHN0cm9rZS13aWR0aD0iMyIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIi8+CiAgICAgICAgICA8bGluZSB4MT0iNjIiIHkxPSIyNzIiIHgyPSIyNzgiIHkyPSIyNzIiIHN0cm9rZT0iIzBGM0QzRSIgc3Ryb2tlLXdpZHRoPSIzIiBzdHJva2UtbGluZWNhcD0icm91bmQiLz4KCiAgICAgICAgICA8dGV4dCB4PSI1MCIgeT0iMjA0IiB0ZXh0LWFuY2hvcj0iZW5kIgogICAgICAgICAgICAgICAgZm9udC1mYW1pbHk9Ii1hcHBsZS1zeXN0ZW0sc3lzdGVtLXVpLHNhbnMtc2VyaWYiCiAgICAgICAgICAgICAgICBmb250LXNpemU9IjgiIGZvbnQtd2VpZ2h0PSI3MDAiIGxldHRlci1zcGFjaW5nPSIxLjIiCiAgICAgICAgICAgICAgICBmaWxsPSIjQzgxMDJFIj5FTkc8L3RleHQ+CiAgICAgICAgICA8dGV4dCB4PSI1MCIgeT0iMjI4IiB0ZXh0LWFuY2hvcj0iZW5kIgogICAgICAgICAgICAgICAgZm9udC1mYW1pbHk9Ii1hcHBsZS1zeXN0ZW0sc3lzdGVtLXVpLHNhbnMtc2VyaWYiCiAgICAgICAgICAgICAgICBmb250LXNpemU9IjgiIGZvbnQtd2VpZ2h0PSI3MDAiIGxldHRlci1zcGFjaW5nPSIxLjIiCiAgICAgICAgICAgICAgICBmaWxsPSIjQzgxMDJFIj5ERVNJR048L3RleHQ+CiAgICAgICAgICA8dGV4dCB4PSI1MCIgeT0iMjUyIiB0ZXh0LWFuY2hvcj0iZW5kIgogICAgICAgICAgICAgICAgZm9udC1mYW1pbHk9Ii1hcHBsZS1zeXN0ZW0sc3lzdGVtLXVpLHNhbnMtc2VyaWYiCiAgICAgICAgICAgICAgICBmb250LXNpemU9IjgiIGZvbnQtd2VpZ2h0PSI3MDAiIGxldHRlci1zcGFjaW5nPSIxLjIiCiAgICAgICAgICAgICAgICBmaWxsPSIjQzgxMDJFIj5IUjwvdGV4dD4KICAgICAgICAgIDx0ZXh0IHg9IjUwIiB5PSIyNzYiIHRleHQtYW5jaG9yPSJlbmQiCiAgICAgICAgICAgICAgICBmb250LWZhbWlseT0iLWFwcGxlLXN5c3RlbSxzeXN0ZW0tdWksc2Fucy1zZXJpZiIKICAgICAgICAgICAgICAgIGZvbnQtc2l6ZT0iOCIgZm9udC13ZWlnaHQ9IjcwMCIgbGV0dGVyLXNwYWNpbmc9IjEuMiIKICAgICAgICAgICAgICAgIGZpbGw9IiNENEE1NzQiPk9QUzwvdGV4dD4KICAgICAgICA8L2c+CgogICAgICAgIDwhLS0g4pSA4pSA4pSAIEFkanV0YW50IGNvbnRyb2wgaHViIChsZWZ0IG9mIGxhbmVzKSDilIDilIDilIAKICAgICAgICAgICAgIFNtYWxsIGNvcHBlciBkaXNjIGF0IHRoZSBjb252ZXJnaW5nIHBvaW50IG9mIGFsbCA0IGxhbmVzLAogICAgICAgICAgICAgd2l0aCByYWRpYXRpbmcgZGFzaGVkIGNvbm5lY3RvcnMgZmFubmluZyBvdXQgdG8gZWFjaAogICAgICAgICAgICAgbGFuZSBzdGFydC4gVmlzdWFsbHkgY29udmV5cyAiY2VudHJhbGl6ZWQgbG9naWMKICAgICAgICAgICAgIGRpc3RyaWJ1dGluZyBhY3Rpb25zIiDigJQgb3JjaGVzdHJhdGlvbiBub3QganVzdCBwYXJhbGxlbGlzbS4gLS0+CiAgICAgICAgPGcgaWQ9InMzSHViIiBvcGFjaXR5PSIwIj4KICAgICAgICAgIDwhLS0gUmFkaWF0aW5nIGNvbm5lY3RvcnMgZnJvbSBodWIgKDE0LCAyMzYpIHRvIGVhY2ggbGFuZSBzdGFydCAtLT4KICAgICAgICAgIDxsaW5lIHgxPSIyMCIgeTE9IjIzNiIgeDI9IjU4IiB5Mj0iMjAwIgogICAgICAgICAgICAgICAgc3Ryb2tlPSIjQzgxMDJFIiBzdHJva2Utd2lkdGg9IjEiIHN0cm9rZS1kYXNoYXJyYXk9IjIgMyIgb3BhY2l0eT0iLjU1Ii8+CiAgICAgICAgICA8bGluZSB4MT0iMjAiIHkxPSIyMzYiIHgyPSI1OCIgeTI9IjIyNCIKICAgICAgICAgICAgICAgIHN0cm9rZT0iI0M4MTAyRSIgc3Ryb2tlLXdpZHRoPSIxIiBzdHJva2UtZGFzaGFycmF5PSIyIDMiIG9wYWNpdHk9Ii41NSIvPgogICAgICAgICAgPGxpbmUgeDE9IjIwIiB5MT0iMjM2IiB4Mj0iNTgiIHkyPSIyNDgiCiAgICAgICAgICAgICAgICBzdHJva2U9IiNDODEwMkUiIHN0cm9rZS13aWR0aD0iMSIgc3Ryb2tlLWRhc2hhcnJheT0iMiAzIiBvcGFjaXR5PSIuNTUiLz4KICAgICAgICAgIDxsaW5lIHgxPSIyMCIgeTE9IjIzNiIgeDI9IjU4IiB5Mj0iMjcyIgogICAgICAgICAgICAgICAgc3Ryb2tlPSIjQzgxMDJFIiBzdHJva2Utd2lkdGg9IjEiIHN0cm9rZS1kYXNoYXJyYXk9IjIgMyIgb3BhY2l0eT0iLjU1Ii8+CiAgICAgICAgICA8IS0tIEh1YiBwdWxzZSByaW5nIC0tPgogICAgICAgICAgPGNpcmNsZSBpZD0iczNIdWJQdWxzZSIgY3g9IjIwIiBjeT0iMjM2IiByPSI1IgogICAgICAgICAgICAgICAgICBmaWxsPSJub25lIiBzdHJva2U9IiNDODEwMkUiIHN0cm9rZS13aWR0aD0iMS4yIiBvcGFjaXR5PSIwIi8+CiAgICAgICAgICA8IS0tIEh1YiBkaXNjIC0tPgogICAgICAgICAgPGNpcmNsZSBjeD0iMjAiIGN5PSIyMzYiIHI9IjUiIGZpbGw9IiNDODEwMkUiLz4KICAgICAgICAgIDwhLS0gSHViIGxhYmVsIC0tPgogICAgICAgICAgPHRleHQgeD0iMjAiIHk9IjE5MCIgdGV4dC1hbmNob3I9Im1pZGRsZSIKICAgICAgICAgICAgICAgIGZvbnQtZmFtaWx5PSItYXBwbGUtc3lzdGVtLHN5c3RlbS11aSxzYW5zLXNlcmlmIgogICAgICAgICAgICAgICAgZm9udC1zaXplPSI3IiBmb250LXdlaWdodD0iNzAwIiBsZXR0ZXItc3BhY2luZz0iMS4yIgogICAgICAgICAgICAgICAgZmlsbD0iI0M4MTAyRSI+QURKVVRBTlQ8L3RleHQ+CiAgICAgICAgPC9nPgoKICAgICAgICA8IS0tIFRhc2tzIGdlbmVyYXRlZCBieSBKUyAoMzQgdGlsZXMgZGlzdHJpYnV0ZWQgYWNyb3NzIDQgbGFuZXMpIC0tPgogICAgICAgIDxnIGlkPSJzM1Rhc2tzIj48L2c+CgogICAgICAgIDwhLS0gQ29tcGxldGlvbiBjaGVja3MgLS0+CiAgICAgICAgPGcgaWQ9InMzQ2hlY2tzIiBvcGFjaXR5PSIwIj4KICAgICAgICAgIDxnIGlkPSJzM0NoZWNrMCIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMjkwLDIwMCkgc2NhbGUoMCkiPgogICAgICAgICAgICA8Y2lyY2xlIHI9IjgiIGZpbGw9IiNDODEwMkUiLz4KICAgICAgICAgICAgPHBvbHlsaW5lIHBvaW50cz0iLTMuNSwwIC0xLDIuNSAzLjUsLTIuNSIKICAgICAgICAgICAgICAgICAgICAgIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzBGM0QzRSIgc3Ryb2tlLXdpZHRoPSIxLjYiCiAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4KICAgICAgICAgIDwvZz4KICAgICAgICAgIDxnIGlkPSJzM0NoZWNrMSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMjkwLDIyNCkgc2NhbGUoMCkiPgogICAgICAgICAgICA8Y2lyY2xlIHI9IjgiIGZpbGw9IiNDODEwMkUiLz4KICAgICAgICAgICAgPHBvbHlsaW5lIHBvaW50cz0iLTMuNSwwIC0xLDIuNSAzLjUsLTIuNSIKICAgICAgICAgICAgICAgICAgICAgIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzBGM0QzRSIgc3Ryb2tlLXdpZHRoPSIxLjYiCiAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4KICAgICAgICAgIDwvZz4KICAgICAgICAgIDxnIGlkPSJzM0NoZWNrMiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMjkwLDI0OCkgc2NhbGUoMCkiPgogICAgICAgICAgICA8Y2lyY2xlIHI9IjgiIGZpbGw9IiNDODEwMkUiLz4KICAgICAgICAgICAgPHBvbHlsaW5lIHBvaW50cz0iLTMuNSwwIC0xLDIuNSAzLjUsLTIuNSIKICAgICAgICAgICAgICAgICAgICAgIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzBGM0QzRSIgc3Ryb2tlLXdpZHRoPSIxLjYiCiAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4KICAgICAgICAgIDwvZz4KICAgICAgICAgIDxnIGlkPSJzM0NoZWNrMyIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMjkwLDI3Mikgc2NhbGUoMCkiPgogICAgICAgICAgICA8Y2lyY2xlIHI9IjgiIGZpbGw9IiNDODEwMkUiLz4KICAgICAgICAgICAgPHBvbHlsaW5lIHBvaW50cz0iLTMuNSwwIC0xLDIuNSAzLjUsLTIuNSIKICAgICAgICAgICAgICAgICAgICAgIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzBGM0QzRSIgc3Ryb2tlLXdpZHRoPSIxLjYiCiAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4KICAgICAgICAgIDwvZz4KICAgICAgICA8L2c+CgogICAgICAgIDwhLS0gVG90YWwgcHJvY2Vzc2VkIGNvdW50ZXIgLS0+CiAgICAgICAgPHRleHQgaWQ9InMzQ291bnRlciIgeD0iMTcwIiB5PSIzMjAiIHRleHQtYW5jaG9yPSJtaWRkbGUiCiAgICAgICAgICAgICAgZm9udC1mYW1pbHk9Ii1hcHBsZS1zeXN0ZW0sc3lzdGVtLXVpLHNhbnMtc2VyaWYiCiAgICAgICAgICAgICAgZm9udC1zaXplPSIxMSIgZm9udC13ZWlnaHQ9IjUwMCIKICAgICAgICAgICAgICBmaWxsPSIjQzgxMDJFIiBvcGFjaXR5PSIwIj4wIC8gMzQgZGlzdHJpYnV0aW5n4oCmPC90ZXh0PgoKICAgICAgPC9zdmc+CiAgICA8L2Rpdj4KICA8L2Rpdj4KCiAgPCEtLSDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZAKICAgICAgIFNDRU5FIDQg4oCUIE9SQU5HRSDCtyAzIE1FRVRJTkdTIFJFU0NIRURVTEVEIMK3IDg6MDEgQU0KICAgICAgIAogICAgICAgSG9yaXpvbnRhbCB0aW1lbGluZSB3aXRoIDMgbWVldGluZyBibG9ja3MuIEluaXRpYWwgc3RhdGU6CiAgICAgICBibG9ja3MgaGF2ZSBjb25mbGljdHMgKG92ZXJsYXBwaW5nIG9yIGFkamFjZW50KS4gQW5pbWF0aW9uOgogICAgICAgZWFjaCBibG9jayBzaGlmdHMgdG8gYSBuZXcgcG9zaXRpb24sIGNvbmZsaWN0cyByZXNvbHZlLgogICAgICAgTm90aWZpY2F0aW9uIGRvdHMgcmFkaWF0ZSBvdXR3YXJkIHdoZW4gZWFjaCBpcyByZXNjaGVkdWxlZC4KICAgICAgIOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkCAtLT4KICA8ZGl2IGNsYXNzPSJzdGVwIiBpZD0ic2NlbmU0Ij4KICAgIDxkaXYgY2xhc3M9InN0ZXAtaW5uZXIiPgogICAgICA8c3ZnIHdpZHRoPSIzNDAiIGhlaWdodD0iNDMwIiB2aWV3Qm94PSIwIDAgMzQwIDQzMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KCiAgICAgICAgPGcgaWQ9InM0U3RhdHVzIiBvcGFjaXR5PSIwIj4KICAgICAgICAgIDxjaXJjbGUgaWQ9InM0UHVsc2VSaW5nIiBjeD0iNTYiIGN5PSIxMTMiIHI9IjQiCiAgICAgICAgICAgICAgICAgIGZpbGw9Im5vbmUiIHN0cm9rZT0iI0M4MTAyRSIgc3Ryb2tlLXdpZHRoPSIxLjIiIG9wYWNpdHk9IjAiLz4KICAgICAgICAgIDxjaXJjbGUgY3g9IjU2IiBjeT0iMTEzIiByPSI0IiBmaWxsPSIjQzgxMDJFIi8+CiAgICAgICAgICA8dGV4dCB4PSI2OCIgeT0iMTE2IgogICAgICAgICAgICAgICAgZm9udC1mYW1pbHk9Ii1hcHBsZS1zeXN0ZW0sc3lzdGVtLXVpLHNhbnMtc2VyaWYiCiAgICAgICAgICAgICAgICBmb250LXNpemU9IjkiIGZvbnQtd2VpZ2h0PSI3MDAiIGxldHRlci1zcGFjaW5nPSIyIgogICAgICAgICAgICAgICAgZmlsbD0iI0M4MTAyRSI+QUxSRUFEWSBPTiBJVDwvdGV4dD4KICAgICAgICA8L2c+CgogICAgICAgIDxnIGlkPSJzNFRpbWUiIG9wYWNpdHk9IjAiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDIxNywxMDMpIj4KICAgICAgICAgIDxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSI5NSIgaGVpZ2h0PSIyMiIgcng9IjYiCiAgICAgICAgICAgICAgICBmaWxsPSJub25lIiBzdHJva2U9IiNDMkMyQzIiIHN0cm9rZS13aWR0aD0iMSIvPgogICAgICAgICAgPHRleHQgeD0iNDcuNSIgeT0iMTQiIHRleHQtYW5jaG9yPSJtaWRkbGUiCiAgICAgICAgICAgICAgICBmb250LWZhbWlseT0iLWFwcGxlLXN5c3RlbSxzeXN0ZW0tdWksc2Fucy1zZXJpZiIKICAgICAgICAgICAgICAgIGZvbnQtc2l6ZT0iOSIgZm9udC13ZWlnaHQ9IjYwMCIgbGV0dGVyLXNwYWNpbmc9IjEuMiIKICAgICAgICAgICAgICAgIGZpbGw9IiNDODEwMkUiPk1PTiDCtyA4OjAxIEFNPC90ZXh0PgogICAgICAgIDwvZz4KCiAgICAgICAgPHRleHQgaWQ9InM0Q2FwdGlvbiIgeD0iMTcwIiB5PSIxNTYiIHRleHQtYW5jaG9yPSJtaWRkbGUiCiAgICAgICAgICAgICAgZm9udC1mYW1pbHk9Ii1hcHBsZS1zeXN0ZW0sc3lzdGVtLXVpLHNhbnMtc2VyaWYiCiAgICAgICAgICAgICAgZm9udC1zaXplPSIxMCIgZm9udC13ZWlnaHQ9IjYwMCIgbGV0dGVyLXNwYWNpbmc9IjEuNSIKICAgICAgICAgICAgICBmaWxsPSIjQzgxMDJFIiBvcGFjaXR5PSIwIj4zIE1FRVRJTkdTIFJFU0NIRURVTEVEPC90ZXh0PgoKICAgICAgICA8IS0tIOKUgOKUgOKUgCBUaW1lbGluZSDilIDilIDilIAgLS0+CiAgICAgICAgPGcgaWQ9InM0VGltZWxpbmUiIG9wYWNpdHk9IjAiPgogICAgICAgICAgPCEtLSBUaW1lIGxhYmVscyBhdCB0b3AgLS0+CiAgICAgICAgICA8dGV4dCB4PSI2MCIgeT0iMjAwIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIgogICAgICAgICAgICAgICAgZm9udC1mYW1pbHk9Ii1hcHBsZS1zeXN0ZW0sc3lzdGVtLXVpLHNhbnMtc2VyaWYiCiAgICAgICAgICAgICAgICBmb250LXNpemU9IjgiIGZvbnQtd2VpZ2h0PSI3MDAiCiAgICAgICAgICAgICAgICBmaWxsPSIjQzJDMkMyIj45PC90ZXh0PgogICAgICAgICAgPHRleHQgeD0iMTIwIiB5PSIyMDAiIHRleHQtYW5jaG9yPSJtaWRkbGUiCiAgICAgICAgICAgICAgICBmb250LWZhbWlseT0iLWFwcGxlLXN5c3RlbSxzeXN0ZW0tdWksc2Fucy1zZXJpZiIKICAgICAgICAgICAgICAgIGZvbnQtc2l6ZT0iOCIgZm9udC13ZWlnaHQ9IjcwMCIKICAgICAgICAgICAgICAgIGZpbGw9IiNDMkMyQzIiPjEwPC90ZXh0PgogICAgICAgICAgPHRleHQgeD0iMTgwIiB5PSIyMDAiIHRleHQtYW5jaG9yPSJtaWRkbGUiCiAgICAgICAgICAgICAgICBmb250LWZhbWlseT0iLWFwcGxlLXN5c3RlbSxzeXN0ZW0tdWksc2Fucy1zZXJpZiIKICAgICAgICAgICAgICAgIGZvbnQtc2l6ZT0iOCIgZm9udC13ZWlnaHQ9IjcwMCIKICAgICAgICAgICAgICAgIGZpbGw9IiNDMkMyQzIiPjExPC90ZXh0PgogICAgICAgICAgPHRleHQgeD0iMjQwIiB5PSIyMDAiIHRleHQtYW5jaG9yPSJtaWRkbGUiCiAgICAgICAgICAgICAgICBmb250LWZhbWlseT0iLWFwcGxlLXN5c3RlbSxzeXN0ZW0tdWksc2Fucy1zZXJpZiIKICAgICAgICAgICAgICAgIGZvbnQtc2l6ZT0iOCIgZm9udC13ZWlnaHQ9IjcwMCIKICAgICAgICAgICAgICAgIGZpbGw9IiNDMkMyQzIiPjEyPC90ZXh0PgogICAgICAgICAgPHRleHQgeD0iMzAwIiB5PSIyMDAiIHRleHQtYW5jaG9yPSJtaWRkbGUiCiAgICAgICAgICAgICAgICBmb250LWZhbWlseT0iLWFwcGxlLXN5c3RlbSxzeXN0ZW0tdWksc2Fucy1zZXJpZiIKICAgICAgICAgICAgICAgIGZvbnQtc2l6ZT0iOCIgZm9udC13ZWlnaHQ9IjcwMCIKICAgICAgICAgICAgICAgIGZpbGw9IiNDMkMyQzIiPjE8L3RleHQ+CgogICAgICAgICAgPCEtLSBUaW1lIGF4aXMgLS0+CiAgICAgICAgICA8bGluZSB4MT0iNTAiIHkxPSIyMTAiIHgyPSIzMTAiIHkyPSIyMTAiCiAgICAgICAgICAgICAgICBzdHJva2U9IiNDMkMyQzIiIHN0cm9rZS13aWR0aD0iMSIgb3BhY2l0eT0iLjUiLz4KICAgICAgICAgIDwhLS0gSG91ciB0aWNrcyAtLT4KICAgICAgICAgIDxsaW5lIHgxPSI2MCIgeTE9IjIwOCIgeDI9IjYwIiB5Mj0iMjEyIiBzdHJva2U9IiNDMkMyQzIiIHN0cm9rZS13aWR0aD0iMSIvPgogICAgICAgICAgPGxpbmUgeDE9IjEyMCIgeTE9IjIwOCIgeDI9IjEyMCIgeTI9IjIxMiIgc3Ryb2tlPSIjQzJDMkMyIiBzdHJva2Utd2lkdGg9IjEiLz4KICAgICAgICAgIDxsaW5lIHgxPSIxODAiIHkxPSIyMDgiIHgyPSIxODAiIHkyPSIyMTIiIHN0cm9rZT0iI0MyQzJDMiIgc3Ryb2tlLXdpZHRoPSIxIi8+CiAgICAgICAgICA8bGluZSB4MT0iMjQwIiB5MT0iMjA4IiB4Mj0iMjQwIiB5Mj0iMjEyIiBzdHJva2U9IiNDMkMyQzIiIHN0cm9rZS13aWR0aD0iMSIvPgogICAgICAgICAgPGxpbmUgeDE9IjMwMCIgeTE9IjIwOCIgeDI9IjMwMCIgeTI9IjIxMiIgc3Ryb2tlPSIjQzJDMkMyIiBzdHJva2Utd2lkdGg9IjEiLz4KICAgICAgICA8L2c+CgogICAgICAgIDwhLS0g4pSA4pSA4pSAIDMgbWVldGluZyBibG9ja3Mgd2l0aCBleHBsaWNpdCB0aW1lIGxhYmVscyDilIDilIDilIAKICAgICAgICAgICAgIEZpbmFsIHBvc2l0aW9ucy93aWR0aHMgbWF0Y2ggY2xlYW5lciB0aW1lczoKICAgICAgICAgICAgICAgOTozMCAoMzAgbWluKSwgMTA6MzAgKDYwIG1pbiksIDEyOjAwICgzMCBtaW4pCiAgICAgICAg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAIC0tPgogICAgICAgIDxnIGlkPSJzNE0xIiBvcGFjaXR5PSIwIj4KICAgICAgICAgIDxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIzMCIgaGVpZ2h0PSIyMCIgcng9IjQiCiAgICAgICAgICAgICAgICBmaWxsPSIjQzgxMDJFIiBvcGFjaXR5PSIuODUiLz4KICAgICAgICAgIDx0ZXh0IHg9IjE1IiB5PSIxMyIgdGV4dC1hbmNob3I9Im1pZGRsZSIKICAgICAgICAgICAgICAgIGZvbnQtZmFtaWx5PSItYXBwbGUtc3lzdGVtLHN5c3RlbS11aSxzYW5zLXNlcmlmIgogICAgICAgICAgICAgICAgZm9udC1zaXplPSI4IiBmb250LXdlaWdodD0iNzAwIiBsZXR0ZXItc3BhY2luZz0iLjUiCiAgICAgICAgICAgICAgICBmaWxsPSIjMEYzRDNFIj45OjMwPC90ZXh0PgogICAgICAgIDwvZz4KICAgICAgICA8ZyBpZD0iczRNMiIgb3BhY2l0eT0iMCI+CiAgICAgICAgICA8cmVjdCB4PSIwIiB5PSIwIiB3aWR0aD0iNjAiIGhlaWdodD0iMjAiIHJ4PSI0IgogICAgICAgICAgICAgICAgZmlsbD0iI0M4MTAyRSIgb3BhY2l0eT0iLjg1Ii8+CiAgICAgICAgICA8dGV4dCB4PSIzMCIgeT0iMTMiIHRleHQtYW5jaG9yPSJtaWRkbGUiCiAgICAgICAgICAgICAgICBmb250LWZhbWlseT0iLWFwcGxlLXN5c3RlbSxzeXN0ZW0tdWksc2Fucy1zZXJpZiIKICAgICAgICAgICAgICAgIGZvbnQtc2l6ZT0iOCIgZm9udC13ZWlnaHQ9IjcwMCIgbGV0dGVyLXNwYWNpbmc9Ii41IgogICAgICAgICAgICAgICAgZmlsbD0iIzBGM0QzRSI+MTA6MzA8L3RleHQ+CiAgICAgICAgPC9nPgogICAgICAgIDxnIGlkPSJzNE0zIiBvcGFjaXR5PSIwIj4KICAgICAgICAgIDxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIzMCIgaGVpZ2h0PSIyMCIgcng9IjQiCiAgICAgICAgICAgICAgICBmaWxsPSIjQzgxMDJFIiBvcGFjaXR5PSIuODUiLz4KICAgICAgICAgIDx0ZXh0IHg9IjE1IiB5PSIxMyIgdGV4dC1hbmNob3I9Im1pZGRsZSIKICAgICAgICAgICAgICAgIGZvbnQtZmFtaWx5PSItYXBwbGUtc3lzdGVtLHN5c3RlbS11aSxzYW5zLXNlcmlmIgogICAgICAgICAgICAgICAgZm9udC1zaXplPSI4IiBmb250LXdlaWdodD0iNzAwIiBsZXR0ZXItc3BhY2luZz0iLjUiCiAgICAgICAgICAgICAgICBmaWxsPSIjMEYzRDNFIj4xMjowMDwvdGV4dD4KICAgICAgICA8L2c+CgogICAgICAgIDwhLS0gTm90aWZpY2F0aW9uIGljb25zIChyYWRpYXRlIG91dHdhcmQgd2hlbiBlYWNoIG1lZXRpbmcgcmVzY2hlZHVsZXMpIC0tPgogICAgICAgIDxnIGlkPSJzNE5vdGlmMSIgb3BhY2l0eT0iMCI+CiAgICAgICAgICA8Y2lyY2xlIHI9IjgiIGZpbGw9Im5vbmUiIHN0cm9rZT0iI0M4MTAyRSIgc3Ryb2tlLXdpZHRoPSIxLjQiLz4KICAgICAgICAgIDxjaXJjbGUgcj0iMi41IiBmaWxsPSIjQzgxMDJFIi8+CiAgICAgICAgPC9nPgogICAgICAgIDxnIGlkPSJzNE5vdGlmMiIgb3BhY2l0eT0iMCI+CiAgICAgICAgICA8Y2lyY2xlIHI9IjgiIGZpbGw9Im5vbmUiIHN0cm9rZT0iI0M4MTAyRSIgc3Ryb2tlLXdpZHRoPSIxLjQiLz4KICAgICAgICAgIDxjaXJjbGUgcj0iMi41IiBmaWxsPSIjQzgxMDJFIi8+CiAgICAgICAgPC9nPgogICAgICAgIDxnIGlkPSJzNE5vdGlmMyIgb3BhY2l0eT0iMCI+CiAgICAgICAgICA8Y2lyY2xlIHI9IjgiIGZpbGw9Im5vbmUiIHN0cm9rZT0iI0M4MTAyRSIgc3Ryb2tlLXdpZHRoPSIxLjQiLz4KICAgICAgICAgIDxjaXJjbGUgcj0iMi41IiBmaWxsPSIjQzgxMDJFIi8+CiAgICAgICAgPC9nPgoKICAgICAgICA8IS0tIFN0YXR1cyB0ZXh0IGJlbG93IC0tPgogICAgICAgIDx0ZXh0IGlkPSJzNFN0YXR1czIiIHg9IjE3MCIgeT0iMzIwIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIgogICAgICAgICAgICAgIGZvbnQtZmFtaWx5PSItYXBwbGUtc3lzdGVtLHN5c3RlbS11aSxzYW5zLXNlcmlmIgogICAgICAgICAgICAgIGZvbnQtc2l6ZT0iMTEiIGZvbnQtd2VpZ2h0PSI1MDAiCiAgICAgICAgICAgICAgZmlsbD0iI0M4MTAyRSIgb3BhY2l0eT0iMCI+Q29uZmxpY3RzIHJlc29sdmVkPC90ZXh0PgoKICAgICAgPC9zdmc+CiAgICA8L2Rpdj4KICA8L2Rpdj4KCiAgPCEtLSDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZAKICAgICAgIFNDRU5FIDUg4oCUIEdSRUVOIMK3IEVNQUlMUyArIEFETUlOIFBST0NFU1NJTkcgUElQRUxJTkUgwrcgODoxNSBBTQogICAgICAg4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQIC0tPgogIDxkaXYgY2xhc3M9InN0ZXAiIGlkPSJzY2VuZTUiPgogICAgPGRpdiBjbGFzcz0ic3RlcC1pbm5lciI+CiAgICAgIDxzdmcgd2lkdGg9IjM0MCIgaGVpZ2h0PSI0MzAiIHZpZXdCb3g9IjAgMCAzNDAgNDMwIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgoKICAgICAgICA8ZyBpZD0iczVTdGF0dXMiIG9wYWNpdHk9IjAiPgogICAgICAgICAgPGNpcmNsZSBpZD0iczVQdWxzZVJpbmciIGN4PSI1NiIgY3k9IjExMyIgcj0iNCIKICAgICAgICAgICAgICAgICAgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjQzgxMDJFIiBzdHJva2Utd2lkdGg9IjEuMiIgb3BhY2l0eT0iMCIvPgogICAgICAgICAgPGNpcmNsZSBjeD0iNTYiIGN5PSIxMTMiIHI9IjQiIGZpbGw9IiNDODEwMkUiLz4KICAgICAgICAgIDx0ZXh0IHg9IjY4IiB5PSIxMTYiCiAgICAgICAgICAgICAgICBmb250LWZhbWlseT0iLWFwcGxlLXN5c3RlbSxzeXN0ZW0tdWksc2Fucy1zZXJpZiIKICAgICAgICAgICAgICAgIGZvbnQtc2l6ZT0iOSIgZm9udC13ZWlnaHQ9IjcwMCIgbGV0dGVyLXNwYWNpbmc9IjIiCiAgICAgICAgICAgICAgICBmaWxsPSIjQzgxMDJFIj5QUk9DRVNTSU5HPC90ZXh0PgogICAgICAgIDwvZz4KCiAgICAgICAgPGcgaWQ9InM1VGltZSIgb3BhY2l0eT0iMCIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMjE3LDEwMykiPgogICAgICAgICAgPHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9Ijk1IiBoZWlnaHQ9IjIyIiByeD0iNiIKICAgICAgICAgICAgICAgIGZpbGw9Im5vbmUiIHN0cm9rZT0iI0MyQzJDMiIgc3Ryb2tlLXdpZHRoPSIxIi8+CiAgICAgICAgICA8dGV4dCB4PSI0Ny41IiB5PSIxNCIgdGV4dC1hbmNob3I9Im1pZGRsZSIKICAgICAgICAgICAgICAgIGZvbnQtZmFtaWx5PSItYXBwbGUtc3lzdGVtLHN5c3RlbS11aSxzYW5zLXNlcmlmIgogICAgICAgICAgICAgICAgZm9udC1zaXplPSI5IiBmb250LXdlaWdodD0iNjAwIiBsZXR0ZXItc3BhY2luZz0iMS4yIgogICAgICAgICAgICAgICAgZmlsbD0iI0M4MTAyRSI+TU9OIMK3IDg6MTUgQU08L3RleHQ+CiAgICAgICAgPC9nPgoKICAgICAgICA8dGV4dCBpZD0iczVDYXB0aW9uIiB4PSIxNzAiIHk9IjE0OCIgdGV4dC1hbmNob3I9Im1pZGRsZSIKICAgICAgICAgICAgICBmb250LWZhbWlseT0iLWFwcGxlLXN5c3RlbSxzeXN0ZW0tdWksc2Fucy1zZXJpZiIKICAgICAgICAgICAgICBmb250LXNpemU9IjEwIiBmb250LXdlaWdodD0iNjAwIiBsZXR0ZXItc3BhY2luZz0iMS41IgogICAgICAgICAgICAgIGZpbGw9IiNDODEwMkUiIG9wYWNpdHk9IjAiPkVYRUNVVElORyBJTiBQQVJBTExFTDwvdGV4dD4KCiAgICAgICAgPCEtLSDilIDilIDilIAgUGlwZWxpbmUgKDUgc3RhZ2VzKSDilIDilIDilIAgLS0+CiAgICAgICAgPGcgaWQ9InM1UGlwZWxpbmUiIG9wYWNpdHk9IjAiPgogICAgICAgICAgPCEtLSBTdGFnZSBsYWJlbHMgLS0+CiAgICAgICAgICA8dGV4dCB4PSI2MCIgeT0iMTkwIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIgogICAgICAgICAgICAgICAgZm9udC1mYW1pbHk9Ii1hcHBsZS1zeXN0ZW0sc3lzdGVtLXVpLHNhbnMtc2VyaWYiCiAgICAgICAgICAgICAgICBmb250LXNpemU9IjciIGZvbnQtd2VpZ2h0PSI3MDAiIGxldHRlci1zcGFjaW5nPSIxIgogICAgICAgICAgICAgICAgZmlsbD0iI0MyQzJDMiI+UkVQTElFRDwvdGV4dD4KICAgICAgICAgIDx0ZXh0IHg9IjExOCIgeT0iMTkwIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIgogICAgICAgICAgICAgICAgZm9udC1mYW1pbHk9Ii1hcHBsZS1zeXN0ZW0sc3lzdGVtLXVpLHNhbnMtc2VyaWYiCiAgICAgICAgICAgICAgICBmb250LXNpemU9IjciIGZvbnQtd2VpZ2h0PSI3MDAiIGxldHRlci1zcGFjaW5nPSIxIgogICAgICAgICAgICAgICAgZmlsbD0iI0MyQzJDMiI+RVNDQUxBVEVEPC90ZXh0PgogICAgICAgICAgPHRleHQgeD0iMTcwIiB5PSIxOTAiIHRleHQtYW5jaG9yPSJtaWRkbGUiCiAgICAgICAgICAgICAgICBmb250LWZhbWlseT0iLWFwcGxlLXN5c3RlbSxzeXN0ZW0tdWksc2Fucy1zZXJpZiIKICAgICAgICAgICAgICAgIGZvbnQtc2l6ZT0iNyIgZm9udC13ZWlnaHQ9IjcwMCIgbGV0dGVyLXNwYWNpbmc9IjEiCiAgICAgICAgICAgICAgICBmaWxsPSIjQzJDMkMyIj5ST1VURUQ8L3RleHQ+CiAgICAgICAgICA8dGV4dCB4PSIyMjIiIHk9IjE5MCIgdGV4dC1hbmNob3I9Im1pZGRsZSIKICAgICAgICAgICAgICAgIGZvbnQtZmFtaWx5PSItYXBwbGUtc3lzdGVtLHN5c3RlbS11aSxzYW5zLXNlcmlmIgogICAgICAgICAgICAgICAgZm9udC1zaXplPSI3IiBmb250LXdlaWdodD0iNzAwIiBsZXR0ZXItc3BhY2luZz0iMSIKICAgICAgICAgICAgICAgIGZpbGw9IiNDMkMyQzIiPkZJTEVEPC90ZXh0PgogICAgICAgICAgPHRleHQgeD0iMjgwIiB5PSIxOTAiIHRleHQtYW5jaG9yPSJtaWRkbGUiCiAgICAgICAgICAgICAgICBmb250LWZhbWlseT0iLWFwcGxlLXN5c3RlbSxzeXN0ZW0tdWksc2Fucy1zZXJpZiIKICAgICAgICAgICAgICAgIGZvbnQtc2l6ZT0iNyIgZm9udC13ZWlnaHQ9IjcwMCIgbGV0dGVyLXNwYWNpbmc9IjEiCiAgICAgICAgICAgICAgICBmaWxsPSIjQzJDMkMyIj5JTlZPSUNFRDwvdGV4dD4KCiAgICAgICAgICA8IS0tIFN0YWdlIGJhY2tkcm9wIGRpc2NzIC0tPgogICAgICAgICAgPGNpcmNsZSBjeD0iNjAiIGN5PSIyMjYiIHI9IjIyIiBmaWxsPSJub25lIiBzdHJva2U9IiNDMkMyQzIiIHN0cm9rZS13aWR0aD0iMS40Ii8+CiAgICAgICAgICA8Y2lyY2xlIGN4PSIxMTgiIGN5PSIyMjYiIHI9IjIyIiBmaWxsPSJub25lIiBzdHJva2U9IiNDMkMyQzIiIHN0cm9rZS13aWR0aD0iMS40Ii8+CiAgICAgICAgICA8Y2lyY2xlIGN4PSIxNzAiIGN5PSIyMjYiIHI9IjIyIiBmaWxsPSJub25lIiBzdHJva2U9IiNDMkMyQzIiIHN0cm9rZS13aWR0aD0iMS40Ii8+CiAgICAgICAgICA8Y2lyY2xlIGN4PSIyMjIiIGN5PSIyMjYiIHI9IjIyIiBmaWxsPSJub25lIiBzdHJva2U9IiNDMkMyQzIiIHN0cm9rZS13aWR0aD0iMS40Ii8+CiAgICAgICAgICA8Y2lyY2xlIGN4PSIyODAiIGN5PSIyMjYiIHI9IjIyIiBmaWxsPSJub25lIiBzdHJva2U9IiNDMkMyQzIiIHN0cm9rZS13aWR0aD0iMS40Ii8+CgogICAgICAgICAgPCEtLSBTdGFnZSBpY29ucyDigJQgY2xlYXJlciwgYWN0aW9uLXJlcHJlc2VudGF0aXZlIHZpc3VhbHMgLS0+CgogICAgICAgICAgPCEtLSBSRVBMSUVEOiBwYXBlciBhaXJwbGFuZSAoc2VudCByZXBseSkgLS0+CiAgICAgICAgICA8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSg2MCwyMjYpIj4KICAgICAgICAgICAgPHBhdGggZD0iTSAtOCwtNCBMIDgsMCBMIC04LDQgTCAtNSwwIFoiCiAgICAgICAgICAgICAgICAgIGZpbGw9Im5vbmUiIHN0cm9rZT0iI0M4MTAyRSIgc3Ryb2tlLXdpZHRoPSIxLjQiCiAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPgogICAgICAgICAgICA8bGluZSB4MT0iLTUiIHkxPSIwIiB4Mj0iMyIgeTI9IjAiCiAgICAgICAgICAgICAgICAgIHN0cm9rZT0iI0M4MTAyRSIgc3Ryb2tlLXdpZHRoPSIxLjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIvPgogICAgICAgICAgPC9nPgoKICAgICAgICAgIDwhLS0gRVNDQUxBVEVEOiB1cC1hcnJvdyB3aXRoIGV4Y2xhbWF0aW9uICh1cmdlbnQgZXNjYWxhdGlvbikgLS0+CiAgICAgICAgICA8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxMTgsMjI2KSI+CiAgICAgICAgICAgIDwhLS0gYXJyb3cgc2hhZnQgLS0+CiAgICAgICAgICAgIDxsaW5lIHgxPSItNCIgeTE9Ii03IiB4Mj0iLTQiIHkyPSI2IgogICAgICAgICAgICAgICAgICBzdHJva2U9IiNDODEwMkUiIHN0cm9rZS13aWR0aD0iMS40IiBzdHJva2UtbGluZWNhcD0icm91bmQiLz4KICAgICAgICAgICAgPHBvbHlsaW5lIHBvaW50cz0iLTcsLTQgLTQsLTcgLTEsLTQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iI0M4MTAyRSIKICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS13aWR0aD0iMS40IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4KICAgICAgICAgICAgPCEtLSBleGNsYW1hdGlvbiAtLT4KICAgICAgICAgICAgPGxpbmUgeDE9IjUiIHkxPSItNiIgeDI9IjUiIHkyPSIyIgogICAgICAgICAgICAgICAgICBzdHJva2U9IiNDODEwMkUiIHN0cm9rZS13aWR0aD0iMS42IiBzdHJva2UtbGluZWNhcD0icm91bmQiLz4KICAgICAgICAgICAgPGNpcmNsZSBjeD0iNSIgY3k9IjYiIHI9IjEuMiIgZmlsbD0iI0M4MTAyRSIvPgogICAgICAgICAgPC9nPgoKICAgICAgICAgIDwhLS0gUk9VVEVEOiBkaXJlY3Rpb25hbCBmb3JrIChhcnJvd3Mgc3BsaXR0aW5nIHR3byB3YXlzKSAtLT4KICAgICAgICAgIDxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDE3MCwyMjYpIj4KICAgICAgICAgICAgPCEtLSBpbnB1dCBsaW5lIC0tPgogICAgICAgICAgICA8bGluZSB4MT0iLTkiIHkxPSIwIiB4Mj0iLTIiIHkyPSIwIgogICAgICAgICAgICAgICAgICBzdHJva2U9IiNDODEwMkUiIHN0cm9rZS13aWR0aD0iMS40IiBzdHJva2UtbGluZWNhcD0icm91bmQiLz4KICAgICAgICAgICAgPCEtLSB0b3AgYnJhbmNoIC0tPgogICAgICAgICAgICA8cGF0aCBkPSJNIC0yLDAgTCA0LC01IgogICAgICAgICAgICAgICAgICBmaWxsPSJub25lIiBzdHJva2U9IiNDODEwMkUiIHN0cm9rZS13aWR0aD0iMS40IiBzdHJva2UtbGluZWNhcD0icm91bmQiLz4KICAgICAgICAgICAgPHBvbHlsaW5lIHBvaW50cz0iMiwtNyA0LC01IDIsLTMiCiAgICAgICAgICAgICAgICAgICAgICBmaWxsPSJub25lIiBzdHJva2U9IiNDODEwMkUiIHN0cm9rZS13aWR0aD0iMS40IgogICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+CiAgICAgICAgICAgIDwhLS0gYm90dG9tIGJyYW5jaCAtLT4KICAgICAgICAgICAgPHBhdGggZD0iTSAtMiwwIEwgNCw1IgogICAgICAgICAgICAgICAgICBmaWxsPSJub25lIiBzdHJva2U9IiNDODEwMkUiIHN0cm9rZS13aWR0aD0iMS40IiBzdHJva2UtbGluZWNhcD0icm91bmQiLz4KICAgICAgICAgICAgPHBvbHlsaW5lIHBvaW50cz0iMiw3IDQsNSAyLDMiCiAgICAgICAgICAgICAgICAgICAgICBmaWxsPSJub25lIiBzdHJva2U9IiNDODEwMkUiIHN0cm9rZS13aWR0aD0iMS40IgogICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+CiAgICAgICAgICA8L2c+CgogICAgICAgICAgPCEtLSBGSUxFRDogZm9sZGVyIHdpdGggdGFiICsgY29udGVudCBsaW5lcyAtLT4KICAgICAgICAgIDxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDIyMiwyMjYpIj4KICAgICAgICAgICAgPCEtLSBmb2xkZXIgdGFiIC0tPgogICAgICAgICAgICA8cGF0aCBkPSJNIC04LC01IEwgLTMsLTUgTCAtMSwtMyBMIDgsLTMiCiAgICAgICAgICAgICAgICAgIGZpbGw9Im5vbmUiIHN0cm9rZT0iI0Q0QTU3NCIgc3Ryb2tlLXdpZHRoPSIxLjQiCiAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPgogICAgICAgICAgICA8IS0tIGZvbGRlciBib2R5IC0tPgogICAgICAgICAgICA8cmVjdCB4PSItOCIgeT0iLTMiIHdpZHRoPSIxNiIgaGVpZ2h0PSIxMCIgcng9IjEiCiAgICAgICAgICAgICAgICAgIGZpbGw9Im5vbmUiIHN0cm9rZT0iI0Q0QTU3NCIgc3Ryb2tlLXdpZHRoPSIxLjQiLz4KICAgICAgICAgICAgPCEtLSBjb250ZW50IGxpbmVzIGluc2lkZSBmb2xkZXIgLS0+CiAgICAgICAgICAgIDxsaW5lIHgxPSItNSIgeTE9IjAiIHgyPSI1IiB5Mj0iMCIgc3Ryb2tlPSIjRDRBNTc0IiBzdHJva2Utd2lkdGg9Ii44IiBvcGFjaXR5PSIuNyIvPgogICAgICAgICAgICA8bGluZSB4MT0iLTUiIHkxPSIzIiB4Mj0iMyIgeTI9IjMiIHN0cm9rZT0iI0Q0QTU3NCIgc3Ryb2tlLXdpZHRoPSIuOCIgb3BhY2l0eT0iLjciLz4KICAgICAgICAgIDwvZz4KCiAgICAgICAgICA8IS0tIElOVk9JQ0VEOiByZWNlaXB0IHdpdGggZG9sbGFyIHNpZ24gLS0+CiAgICAgICAgICA8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgyODAsMjI2KSI+CiAgICAgICAgICAgIDwhLS0gcmVjZWlwdCBib2R5IC0tPgogICAgICAgICAgICA8cGF0aCBkPSJNIC02LC03IEwgNiwtNyBMIDYsNSBMIDQsNyBMIDIsNSBMIDAsNyBMIC0yLDUgTCAtNCw3IEwgLTYsNSBaIgogICAgICAgICAgICAgICAgICBmaWxsPSJub25lIiBzdHJva2U9IiNDODEwMkUiIHN0cm9rZS13aWR0aD0iMS40IgogICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4KICAgICAgICAgICAgPCEtLSAkIHNpZ24gLS0+CiAgICAgICAgICAgIDx0ZXh0IHg9IjAiIHk9IjAiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGRvbWluYW50LWJhc2VsaW5lPSJtaWRkbGUiCiAgICAgICAgICAgICAgICAgIGZvbnQtZmFtaWx5PSItYXBwbGUtc3lzdGVtLHN5c3RlbS11aSxzYW5zLXNlcmlmIgogICAgICAgICAgICAgICAgICBmb250LXNpemU9IjgiIGZvbnQtd2VpZ2h0PSI3MDAiCiAgICAgICAgICAgICAgICAgIGZpbGw9IiNDODEwMkUiPiQ8L3RleHQ+CiAgICAgICAgICA8L2c+CgogICAgICAgICAgPCEtLSBDb3VudHMgYmVuZWF0aCBlYWNoIHN0YWdlIC0tPgogICAgICAgICAgPHRleHQgaWQ9InM1Q291bnQwIiB4PSI2MCIgeT0iMjcwIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIgogICAgICAgICAgICAgICAgZm9udC1mYW1pbHk9Ii1hcHBsZS1zeXN0ZW0sc3lzdGVtLXVpLHNhbnMtc2VyaWYiCiAgICAgICAgICAgICAgICBmb250LXNpemU9IjkiIGZvbnQtd2VpZ2h0PSI3MDAiCiAgICAgICAgICAgICAgICBmaWxsPSIjQzgxMDJFIj4wPC90ZXh0PgogICAgICAgICAgPHRleHQgaWQ9InM1Q291bnQxIiB4PSIxMTgiIHk9IjI3MCIgdGV4dC1hbmNob3I9Im1pZGRsZSIKICAgICAgICAgICAgICAgIGZvbnQtZmFtaWx5PSItYXBwbGUtc3lzdGVtLHN5c3RlbS11aSxzYW5zLXNlcmlmIgogICAgICAgICAgICAgICAgZm9udC1zaXplPSI5IiBmb250LXdlaWdodD0iNzAwIgogICAgICAgICAgICAgICAgZmlsbD0iI0M4MTAyRSI+MDwvdGV4dD4KICAgICAgICAgIDx0ZXh0IGlkPSJzNUNvdW50MiIgeD0iMTcwIiB5PSIyNzAiIHRleHQtYW5jaG9yPSJtaWRkbGUiCiAgICAgICAgICAgICAgICBmb250LWZhbWlseT0iLWFwcGxlLXN5c3RlbSxzeXN0ZW0tdWksc2Fucy1zZXJpZiIKICAgICAgICAgICAgICAgIGZvbnQtc2l6ZT0iOSIgZm9udC13ZWlnaHQ9IjcwMCIKICAgICAgICAgICAgICAgIGZpbGw9IiNDODEwMkUiPjA8L3RleHQ+CiAgICAgICAgICA8dGV4dCBpZD0iczVDb3VudDMiIHg9IjIyMiIgeT0iMjcwIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIgogICAgICAgICAgICAgICAgZm9udC1mYW1pbHk9Ii1hcHBsZS1zeXN0ZW0sc3lzdGVtLXVpLHNhbnMtc2VyaWYiCiAgICAgICAgICAgICAgICBmb250LXNpemU9IjkiIGZvbnQtd2VpZ2h0PSI3MDAiCiAgICAgICAgICAgICAgICBmaWxsPSIjRDRBNTc0Ij4wPC90ZXh0PgogICAgICAgICAgPHRleHQgaWQ9InM1Q291bnQ0IiB4PSIyODAiIHk9IjI3MCIgdGV4dC1hbmNob3I9Im1pZGRsZSIKICAgICAgICAgICAgICAgIGZvbnQtZmFtaWx5PSItYXBwbGUtc3lzdGVtLHN5c3RlbS11aSxzYW5zLXNlcmlmIgogICAgICAgICAgICAgICAgZm9udC1zaXplPSI5IiBmb250LXdlaWdodD0iNzAwIgogICAgICAgICAgICAgICAgZmlsbD0iI0M4MTAyRSI+MDwvdGV4dD4KICAgICAgICA8L2c+CgogICAgICAgIDwhLS0gSXRlbXMgZmxvd2luZyBpbnRvIHBpcGVsaW5lIChzbWFsbCBkb3RzIHRoYXQgdHJhdmVsKSAtLT4KICAgICAgICA8ZyBpZD0iczVGbG93Ij48L2c+CgogICAgICAgIDwhLS0gVG90YWwgcHJvY2Vzc2VkIGluZGljYXRvciAtLT4KICAgICAgICA8dGV4dCBpZD0iczVUb3RhbCIgeD0iMTcwIiB5PSIzMjQiIHRleHQtYW5jaG9yPSJtaWRkbGUiCiAgICAgICAgICAgICAgZm9udC1mYW1pbHk9Ii1hcHBsZS1zeXN0ZW0sc3lzdGVtLXVpLHNhbnMtc2VyaWYiCiAgICAgICAgICAgICAgZm9udC1zaXplPSIxMSIgZm9udC13ZWlnaHQ9IjUwMCIKICAgICAgICAgICAgICBmaWxsPSIjQzgxMDJFIiBvcGFjaXR5PSIwIj5Qcm9jZXNzaW5n4oCmPC90ZXh0PgoKICAgICAgPC9zdmc+CiAgICA8L2Rpdj4KICA8L2Rpdj4KCiAgPCEtLSDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZAKICAgICAgIFNDRU5FIDYg4oCUIFpFUk8gQ0xJRU5UIElNUEFDVAogICAgICAgCiAgICAgICBDYWxtLCBiYWxhbmNlZCBjb21wb3NpdGlvbi4gSW50ZXJuYWwvZXh0ZXJuYWwgZGljaG90b215OgogICAgICAgICBMRUZUICAoSU5URVJOQUwpOiAgc21hbGwgdGFzayB0aWxlcyBhbGwgY29tcGxldGUgKGdyZWVuKQogICAgICAgICBDRU5URVI6ICAgICAgICAgICAgc29mdCB2ZXJ0aWNhbCBzZXBhcmF0b3IKICAgICAgICAgUklHSFQgKEVYVEVSTkFMKTogIGNsaWVudCBhdmF0YXJzIGluIGNhbG0vZ3JlZW4gc3RhdGUKICAgICAgIAogICAgICAgU3RhdHVzOiBncmVlbiBkb3QsICJaRVJPIENMSUVOVCBJTVBBQ1QiIGxhYmVsLgogICAgICAgUmVkdWNlIG1vdGlvbiBpbnRlbnNpdHkg4oCUIG9ubHkgc3VidGxlIGJyZWF0aGluZyBvbiB0aGUgZ3JlZW4KICAgICAgIGVsZW1lbnRzIHRvIHNpZ25hbCBzdGFibGUgY29tcGxldGlvbi4KICAgICAgIOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkCAtLT4KICA8ZGl2IGNsYXNzPSJzdGVwIiBpZD0ic2NlbmU2Ij4KICAgIDxkaXYgY2xhc3M9InN0ZXAtaW5uZXIiPgogICAgICA8c3ZnIHdpZHRoPSIzNDAiIGhlaWdodD0iNDMwIiB2aWV3Qm94PSIwIDAgMzQwIDQzMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KCiAgICAgICAgPGcgaWQ9InM2U3RhdHVzIiBvcGFjaXR5PSIwIj4KICAgICAgICAgIDxjaXJjbGUgaWQ9InM2UHVsc2VSaW5nIiBjeD0iNTYiIGN5PSIxMTMiIHI9IjQiCiAgICAgICAgICAgICAgICAgIGZpbGw9Im5vbmUiIHN0cm9rZT0iI0M4MTAyRSIgc3Ryb2tlLXdpZHRoPSIxLjIiIG9wYWNpdHk9IjAiLz4KICAgICAgICAgIDxjaXJjbGUgY3g9IjU2IiBjeT0iMTEzIiByPSI0IiBmaWxsPSIjQzgxMDJFIi8+CiAgICAgICAgICA8dGV4dCB4PSI2OCIgeT0iMTE2IgogICAgICAgICAgICAgICAgZm9udC1mYW1pbHk9Ii1hcHBsZS1zeXN0ZW0sc3lzdGVtLXVpLHNhbnMtc2VyaWYiCiAgICAgICAgICAgICAgICBmb250LXNpemU9IjkiIGZvbnQtd2VpZ2h0PSI3MDAiIGxldHRlci1zcGFjaW5nPSIyIgogICAgICAgICAgICAgICAgZmlsbD0iI0M4MTAyRSI+WkVSTyBJTVBBQ1Q8L3RleHQ+CiAgICAgICAgPC9nPgoKICAgICAgICA8ZyBpZD0iczZUaW1lIiBvcGFjaXR5PSIwIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgyMTcsMTAzKSI+CiAgICAgICAgICA8cmVjdCB4PSIwIiB5PSIwIiB3aWR0aD0iOTUiIGhlaWdodD0iMjIiIHJ4PSI2IgogICAgICAgICAgICAgICAgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjQzJDMkMyIiBzdHJva2Utd2lkdGg9IjEiLz4KICAgICAgICAgIDx0ZXh0IHg9IjQ3LjUiIHk9IjE0IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIgogICAgICAgICAgICAgICAgZm9udC1mYW1pbHk9Ii1hcHBsZS1zeXN0ZW0sc3lzdGVtLXVpLHNhbnMtc2VyaWYiCiAgICAgICAgICAgICAgICBmb250LXNpemU9IjkiIGZvbnQtd2VpZ2h0PSI2MDAiIGxldHRlci1zcGFjaW5nPSIxLjIiCiAgICAgICAgICAgICAgICBmaWxsPSIjQzgxMDJFIj5NT04gwrcgODoyNSBBTTwvdGV4dD4KICAgICAgICA8L2c+CgogICAgICAgIDwhLS0g4pSA4pSA4pSAIFNlY3Rpb24gbGFiZWxzIOKUgOKUgOKUgCAtLT4KICAgICAgICA8dGV4dCBpZD0iczZMYWJlbEludCIgeD0iMTAwIiB5PSIxNzAiIHRleHQtYW5jaG9yPSJtaWRkbGUiCiAgICAgICAgICAgICAgZm9udC1mYW1pbHk9Ii1hcHBsZS1zeXN0ZW0sc3lzdGVtLXVpLHNhbnMtc2VyaWYiCiAgICAgICAgICAgICAgZm9udC1zaXplPSI5IiBmb250LXdlaWdodD0iNzAwIiBsZXR0ZXItc3BhY2luZz0iMiIKICAgICAgICAgICAgICBmaWxsPSIjQzJDMkMyIiBvcGFjaXR5PSIwIj5JTlRFUk5BTDwvdGV4dD4KICAgICAgICA8dGV4dCBpZD0iczZMYWJlbEV4dCIgeD0iMjQwIiB5PSIxNzAiIHRleHQtYW5jaG9yPSJtaWRkbGUiCiAgICAgICAgICAgICAgZm9udC1mYW1pbHk9Ii1hcHBsZS1zeXN0ZW0sc3lzdGVtLXVpLHNhbnMtc2VyaWYiCiAgICAgICAgICAgICAgZm9udC1zaXplPSI5IiBmb250LXdlaWdodD0iNzAwIiBsZXR0ZXItc3BhY2luZz0iMiIKICAgICAgICAgICAgICBmaWxsPSIjQzJDMkMyIiBvcGFjaXR5PSIwIj5FWFRFUk5BTDwvdGV4dD4KCiAgICAgICAgPCEtLSDilIDilIDilIAgVmVydGljYWwgc2VwYXJhdG9yIChib3VuZGFyeSBiZXR3ZWVuIGludGVybmFsL2V4dGVybmFsKSDilIDilIDilIAgLS0+CiAgICAgICAgPGxpbmUgaWQ9InM2U2VwIiB4MT0iMTcwIiB5MT0iMTgwIiB4Mj0iMTcwIiB5Mj0iMzQwIgogICAgICAgICAgICAgIHN0cm9rZT0iI0MyQzJDMiIgc3Ryb2tlLXdpZHRoPSIuOCIgc3Ryb2tlLWRhc2hhcnJheT0iMiA0IiBvcGFjaXR5PSIwIi8+CgogICAgICAgIDwhLS0g4pSA4pSA4pSAIElOVEVSTkFMIHNpZGU6IDE2IHNtYWxsIHRhc2sgdGlsZXMsIGFsbCBjb21wbGV0ZWQgKGdyZWVuKSDilIDilIDilIAKICAgICAgICAgICAgIDTDlzQgZ3JpZCBvZiBzbWFsbCBncmVlbiBkb3RzIHJlcHJlc2VudGluZyB0YXNrcyBhbGwgZG9uZS4gLS0+CiAgICAgICAgPGcgaWQ9InM2SW50ZXJuYWwiIG9wYWNpdHk9IjAiPgogICAgICAgICAgPCEtLSBSb3cgMCAtLT4KICAgICAgICAgIDxjaXJjbGUgY3g9IjYwIiBjeT0iMjAwIiByPSIzIiBmaWxsPSIjQzgxMDJFIi8+CiAgICAgICAgICA8Y2lyY2xlIGN4PSI4MCIgY3k9IjIwMCIgcj0iMyIgZmlsbD0iI0M4MTAyRSIvPgogICAgICAgICAgPGNpcmNsZSBjeD0iMTAwIiBjeT0iMjAwIiByPSIzIiBmaWxsPSIjQzgxMDJFIi8+CiAgICAgICAgICA8Y2lyY2xlIGN4PSIxMjAiIGN5PSIyMDAiIHI9IjMiIGZpbGw9IiNDODEwMkUiLz4KICAgICAgICAgIDxjaXJjbGUgY3g9IjE0MCIgY3k9IjIwMCIgcj0iMyIgZmlsbD0iI0M4MTAyRSIvPgogICAgICAgICAgPCEtLSBSb3cgMSAtLT4KICAgICAgICAgIDxjaXJjbGUgY3g9IjYwIiBjeT0iMjIwIiByPSIzIiBmaWxsPSIjQzgxMDJFIi8+CiAgICAgICAgICA8Y2lyY2xlIGN4PSI4MCIgY3k9IjIyMCIgcj0iMyIgZmlsbD0iI0M4MTAyRSIvPgogICAgICAgICAgPGNpcmNsZSBjeD0iMTAwIiBjeT0iMjIwIiByPSIzIiBmaWxsPSIjQzgxMDJFIi8+CiAgICAgICAgICA8Y2lyY2xlIGN4PSIxMjAiIGN5PSIyMjAiIHI9IjMiIGZpbGw9IiNDODEwMkUiLz4KICAgICAgICAgIDxjaXJjbGUgY3g9IjE0MCIgY3k9IjIyMCIgcj0iMyIgZmlsbD0iI0M4MTAyRSIvPgogICAgICAgICAgPCEtLSBSb3cgMiAtLT4KICAgICAgICAgIDxjaXJjbGUgY3g9IjYwIiBjeT0iMjQwIiByPSIzIiBmaWxsPSIjQzgxMDJFIi8+CiAgICAgICAgICA8Y2lyY2xlIGN4PSI4MCIgY3k9IjI0MCIgcj0iMyIgZmlsbD0iI0M4MTAyRSIvPgogICAgICAgICAgPGNpcmNsZSBjeD0iMTAwIiBjeT0iMjQwIiByPSIzIiBmaWxsPSIjQzgxMDJFIi8+CiAgICAgICAgICA8Y2lyY2xlIGN4PSIxMjAiIGN5PSIyNDAiIHI9IjMiIGZpbGw9IiNDODEwMkUiLz4KICAgICAgICAgIDxjaXJjbGUgY3g9IjE0MCIgY3k9IjI0MCIgcj0iMyIgZmlsbD0iI0M4MTAyRSIvPgogICAgICAgICAgPCEtLSBSb3cgMyAtLT4KICAgICAgICAgIDxjaXJjbGUgY3g9IjYwIiBjeT0iMjYwIiByPSIzIiBmaWxsPSIjQzgxMDJFIi8+CiAgICAgICAgICA8Y2lyY2xlIGN4PSI4MCIgY3k9IjI2MCIgcj0iMyIgZmlsbD0iI0M4MTAyRSIvPgogICAgICAgICAgPGNpcmNsZSBjeD0iMTAwIiBjeT0iMjYwIiByPSIzIiBmaWxsPSIjQzgxMDJFIi8+CiAgICAgICAgICA8Y2lyY2xlIGN4PSIxMjAiIGN5PSIyNjAiIHI9IjMiIGZpbGw9IiNDODEwMkUiLz4KICAgICAgICAgIDxjaXJjbGUgY3g9IjE0MCIgY3k9IjI2MCIgcj0iMyIgZmlsbD0iI0M4MTAyRSIvPgogICAgICAgICAgPCEtLSBSb3cgNCAtLT4KICAgICAgICAgIDxjaXJjbGUgY3g9IjYwIiBjeT0iMjgwIiByPSIzIiBmaWxsPSIjQzgxMDJFIi8+CiAgICAgICAgICA8Y2lyY2xlIGN4PSI4MCIgY3k9IjI4MCIgcj0iMyIgZmlsbD0iI0M4MTAyRSIvPgogICAgICAgICAgPGNpcmNsZSBjeD0iMTAwIiBjeT0iMjgwIiByPSIzIiBmaWxsPSIjQzgxMDJFIi8+CiAgICAgICAgICA8Y2lyY2xlIGN4PSIxMjAiIGN5PSIyODAiIHI9IjMiIGZpbGw9IiNDODEwMkUiLz4KICAgICAgICAgIDxjaXJjbGUgY3g9IjE0MCIgY3k9IjI4MCIgcj0iMyIgZmlsbD0iI0M4MTAyRSIvPgogICAgICAgICAgPCEtLSBSb3cgNSAtLT4KICAgICAgICAgIDxjaXJjbGUgY3g9IjYwIiBjeT0iMzAwIiByPSIzIiBmaWxsPSIjQzgxMDJFIi8+CiAgICAgICAgICA8Y2lyY2xlIGN4PSI4MCIgY3k9IjMwMCIgcj0iMyIgZmlsbD0iI0M4MTAyRSIvPgogICAgICAgICAgPGNpcmNsZSBjeD0iMTAwIiBjeT0iMzAwIiByPSIzIiBmaWxsPSIjQzgxMDJFIi8+CiAgICAgICAgICA8Y2lyY2xlIGN4PSIxMjAiIGN5PSIzMDAiIHI9IjMiIGZpbGw9IiNDODEwMkUiLz4KICAgICAgICAgIDxjaXJjbGUgY3g9IjE0MCIgY3k9IjMwMCIgcj0iMyIgZmlsbD0iI0M4MTAyRSIvPgogICAgICAgICAgPCEtLSBSb3cgNiAtLT4KICAgICAgICAgIDxjaXJjbGUgY3g9IjYwIiBjeT0iMzIwIiByPSIzIiBmaWxsPSIjQzgxMDJFIi8+CiAgICAgICAgICA8Y2lyY2xlIGN4PSI4MCIgY3k9IjMyMCIgcj0iMyIgZmlsbD0iI0M4MTAyRSIvPgogICAgICAgICAgPGNpcmNsZSBjeD0iMTAwIiBjeT0iMzIwIiByPSIzIiBmaWxsPSIjQzgxMDJFIi8+CiAgICAgICAgICA8Y2lyY2xlIGN4PSIxMjAiIGN5PSIzMjAiIHI9IjMiIGZpbGw9IiNDODEwMkUiLz4KICAgICAgICAgIDwhLS0gQ2FwdGlvbiBiZW5lYXRoIGludGVybmFsIC0tPgogICAgICAgICAgPHRleHQgeD0iMTAwIiB5PSIzNDYiIHRleHQtYW5jaG9yPSJtaWRkbGUiCiAgICAgICAgICAgICAgICBmb250LWZhbWlseT0iLWFwcGxlLXN5c3RlbSxzeXN0ZW0tdWksc2Fucy1zZXJpZiIKICAgICAgICAgICAgICAgIGZvbnQtc2l6ZT0iOSIgZm9udC13ZWlnaHQ9IjUwMCIKICAgICAgICAgICAgICAgIGZpbGw9IiNDODEwMkUiPkFsbCByZXNvbHZlZDwvdGV4dD4KICAgICAgICA8L2c+CgogICAgICAgIDwhLS0g4pSA4pSA4pSAIEVYVEVSTkFMIHNpZGU6IDUgY2xpZW50IGF2YXRhcnMsIGFsbCBjYWxtIChubyBhbGVydHMpIOKUgOKUgOKUgAogICAgICAgICAgICAgQXZhdGFycyBpbiBhIDItY29sdW1uIGxheW91dCwgYWxsIGluIGdyZWVuIHN0cm9rZSAoY2FsbSBzdGF0ZSkuIC0tPgogICAgICAgIDxnIGlkPSJzNkV4dGVybmFsIiBvcGFjaXR5PSIwIj4KICAgICAgICAgIDwhLS0gQ2xpZW50IDEgLS0+CiAgICAgICAgICA8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgyMDAsMjEwKSI+CiAgICAgICAgICAgIDxnIHN0cm9rZT0iI0M4MTAyRSIgc3Ryb2tlLXdpZHRoPSIxLjYiIGZpbGw9Im5vbmUiCiAgICAgICAgICAgICAgIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCI+CiAgICAgICAgICAgICAgPGNpcmNsZSBjeD0iMCIgY3k9Ii01IiByPSI1Ii8+CiAgICAgICAgICAgICAgPHBhdGggZD0iTS04LDggQy04LDMgLTQsMCAwLDAgQzQsMCA4LDMgOCw4Ii8+CiAgICAgICAgICAgIDwvZz4KICAgICAgICAgIDwvZz4KICAgICAgICAgIDwhLS0gQ2xpZW50IDIgLS0+CiAgICAgICAgICA8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgyNDAsMjEwKSI+CiAgICAgICAgICAgIDxnIHN0cm9rZT0iI0M4MTAyRSIgc3Ryb2tlLXdpZHRoPSIxLjYiIGZpbGw9Im5vbmUiCiAgICAgICAgICAgICAgIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCI+CiAgICAgICAgICAgICAgPGNpcmNsZSBjeD0iMCIgY3k9Ii01IiByPSI1Ii8+CiAgICAgICAgICAgICAgPHBhdGggZD0iTS04LDggQy04LDMgLTQsMCAwLDAgQzQsMCA4LDMgOCw4Ii8+CiAgICAgICAgICAgIDwvZz4KICAgICAgICAgIDwvZz4KICAgICAgICAgIDwhLS0gQ2xpZW50IDMgLS0+CiAgICAgICAgICA8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgyODAsMjEwKSI+CiAgICAgICAgICAgIDxnIHN0cm9rZT0iI0M4MTAyRSIgc3Ryb2tlLXdpZHRoPSIxLjYiIGZpbGw9Im5vbmUiCiAgICAgICAgICAgICAgIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCI+CiAgICAgICAgICAgICAgPGNpcmNsZSBjeD0iMCIgY3k9Ii01IiByPSI1Ii8+CiAgICAgICAgICAgICAgPHBhdGggZD0iTS04LDggQy04LDMgLTQsMCAwLDAgQzQsMCA4LDMgOCw4Ii8+CiAgICAgICAgICAgIDwvZz4KICAgICAgICAgIDwvZz4KICAgICAgICAgIDwhLS0gQ2xpZW50IDQgLS0+CiAgICAgICAgICA8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgyMjAsMjYwKSI+CiAgICAgICAgICAgIDxnIHN0cm9rZT0iI0M4MTAyRSIgc3Ryb2tlLXdpZHRoPSIxLjYiIGZpbGw9Im5vbmUiCiAgICAgICAgICAgICAgIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCI+CiAgICAgICAgICAgICAgPGNpcmNsZSBjeD0iMCIgY3k9Ii01IiByPSI1Ii8+CiAgICAgICAgICAgICAgPHBhdGggZD0iTS04LDggQy04LDMgLTQsMCAwLDAgQzQsMCA4LDMgOCw4Ii8+CiAgICAgICAgICAgIDwvZz4KICAgICAgICAgIDwvZz4KICAgICAgICAgIDwhLS0gQ2xpZW50IDUgLS0+CiAgICAgICAgICA8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgyNjAsMjYwKSI+CiAgICAgICAgICAgIDxnIHN0cm9rZT0iI0M4MTAyRSIgc3Ryb2tlLXdpZHRoPSIxLjYiIGZpbGw9Im5vbmUiCiAgICAgICAgICAgICAgIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCI+CiAgICAgICAgICAgICAgPGNpcmNsZSBjeD0iMCIgY3k9Ii01IiByPSI1Ii8+CiAgICAgICAgICAgICAgPHBhdGggZD0iTS04LDggQy04LDMgLTQsMCAwLDAgQzQsMCA4LDMgOCw4Ii8+CiAgICAgICAgICAgIDwvZz4KICAgICAgICAgIDwvZz4KCiAgICAgICAgICA8IS0tIENhbG0gaW5kaWNhdG9yIGRvdHMgKHNtYWxsIGdyZWVuIGRvdHMgYWJvdmUgZWFjaCBhdmF0YXIpIC0tPgogICAgICAgICAgPGNpcmNsZSBjeD0iMjAwIiBjeT0iMjAwIiByPSIyIiBmaWxsPSIjQzgxMDJFIi8+CiAgICAgICAgICA8Y2lyY2xlIGN4PSIyNDAiIGN5PSIyMDAiIHI9IjIiIGZpbGw9IiNDODEwMkUiLz4KICAgICAgICAgIDxjaXJjbGUgY3g9IjI4MCIgY3k9IjIwMCIgcj0iMiIgZmlsbD0iI0M4MTAyRSIvPgogICAgICAgICAgPGNpcmNsZSBjeD0iMjIwIiBjeT0iMjUwIiByPSIyIiBmaWxsPSIjQzgxMDJFIi8+CiAgICAgICAgICA8Y2lyY2xlIGN4PSIyNjAiIGN5PSIyNTAiIHI9IjIiIGZpbGw9IiNDODEwMkUiLz4KCiAgICAgICAgICA8IS0tIENhcHRpb24gYmVuZWF0aCBleHRlcm5hbCAtLT4KICAgICAgICAgIDx0ZXh0IHg9IjI0MCIgeT0iMzEwIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIgogICAgICAgICAgICAgICAgZm9udC1mYW1pbHk9Ii1hcHBsZS1zeXN0ZW0sc3lzdGVtLXVpLHNhbnMtc2VyaWYiCiAgICAgICAgICAgICAgICBmb250LXNpemU9IjkiIGZvbnQtd2VpZ2h0PSI1MDAiCiAgICAgICAgICAgICAgICBmaWxsPSIjQzgxMDJFIj5ObyBhbGVydHM8L3RleHQ+CiAgICAgICAgICA8dGV4dCB4PSIyNDAiIHk9IjMyNCIgdGV4dC1hbmNob3I9Im1pZGRsZSIKICAgICAgICAgICAgICAgIGZvbnQtZmFtaWx5PSItYXBwbGUtc3lzdGVtLHN5c3RlbS11aSxzYW5zLXNlcmlmIgogICAgICAgICAgICAgICAgZm9udC1zaXplPSI5IiBmb250LXdlaWdodD0iNTAwIgogICAgICAgICAgICAgICAgZmlsbD0iI0M4MTAyRSI+Tm8gdGlja2V0czwvdGV4dD4KICAgICAgICAgIDx0ZXh0IHg9IjI0MCIgeT0iMzM4IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIgogICAgICAgICAgICAgICAgZm9udC1mYW1pbHk9Ii1hcHBsZS1zeXN0ZW0sc3lzdGVtLXVpLHNhbnMtc2VyaWYiCiAgICAgICAgICAgICAgICBmb250LXNpemU9IjkiIGZvbnQtd2VpZ2h0PSI1MDAiCiAgICAgICAgICAgICAgICBmaWxsPSIjQzgxMDJFIj5ObyBlc2NhbGF0aW9uczwvdGV4dD4KICAgICAgICA8L2c+CgogICAgICAgIDwhLS0gU3RhdHVzIGZvb3RlciAtLT4KICAgICAgICA8dGV4dCBpZD0iczZGb290ZXIiIHg9IjE3MCIgeT0iMzc4IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIgogICAgICAgICAgICAgIGZvbnQtZmFtaWx5PSItYXBwbGUtc3lzdGVtLHN5c3RlbS11aSxzYW5zLXNlcmlmIgogICAgICAgICAgICAgIGZvbnQtc2l6ZT0iOSIgZm9udC13ZWlnaHQ9IjUwMCIgbGV0dGVyLXNwYWNpbmc9IjEiCiAgICAgICAgICAgICAgZmlsbD0iI0MyQzJDMiIgb3BhY2l0eT0iMCI+U2FyYWgncyBhYnNlbmNlIMK3IGludmlzaWJsZSBleHRlcm5hbGx5PC90ZXh0PgoKICAgICAgPC9zdmc+CiAgICA8L2Rpdj4KICA8L2Rpdj4KCiAgPCEtLSDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZAKICAgICAgIFNDRU5FIDcg4oCUIEdSRUVOIMK3IENPTVBMRVRFIMK3IDg6MzAgQU0KICAgICAgIOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkCAtLT4KICA8ZGl2IGNsYXNzPSJzdGVwIiBpZD0ic2NlbmU3Ij4KICAgIDxkaXYgY2xhc3M9InN0ZXAtaW5uZXIiPgogICAgICA8c3ZnIHdpZHRoPSIzNDAiIGhlaWdodD0iNDMwIiB2aWV3Qm94PSIwIDAgMzQwIDQzMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KCiAgICAgICAgPGcgaWQ9InM3U3RhdHVzIiBvcGFjaXR5PSIwIj4KICAgICAgICAgIDxjaXJjbGUgaWQ9InM3UHVsc2VSaW5nIiBjeD0iNTYiIGN5PSIxMTMiIHI9IjQiCiAgICAgICAgICAgICAgICAgIGZpbGw9Im5vbmUiIHN0cm9rZT0iI0M4MTAyRSIgc3Ryb2tlLXdpZHRoPSIxLjIiIG9wYWNpdHk9IjAiLz4KICAgICAgICAgIDxjaXJjbGUgY3g9IjU2IiBjeT0iMTEzIiByPSI0IiBmaWxsPSIjQzgxMDJFIi8+CiAgICAgICAgICA8dGV4dCB4PSI2OCIgeT0iMTE2IgogICAgICAgICAgICAgICAgZm9udC1mYW1pbHk9Ii1hcHBsZS1zeXN0ZW0sc3lzdGVtLXVpLHNhbnMtc2VyaWYiCiAgICAgICAgICAgICAgICBmb250LXNpemU9IjkiIGZvbnQtd2VpZ2h0PSI3MDAiIGxldHRlci1zcGFjaW5nPSIyIgogICAgICAgICAgICAgICAgZmlsbD0iI0M4MTAyRSI+Q09NUExFVEU8L3RleHQ+CiAgICAgICAgPC9nPgoKICAgICAgICA8ZyBpZD0iczdUaW1lIiBvcGFjaXR5PSIwIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgyMTcsMTAzKSI+CiAgICAgICAgICA8cmVjdCB4PSIwIiB5PSIwIiB3aWR0aD0iOTUiIGhlaWdodD0iMjIiIHJ4PSI2IgogICAgICAgICAgICAgICAgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjQzJDMkMyIiBzdHJva2Utd2lkdGg9IjEiLz4KICAgICAgICAgIDx0ZXh0IHg9IjQ3LjUiIHk9IjE0IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIgogICAgICAgICAgICAgICAgZm9udC1mYW1pbHk9Ii1hcHBsZS1zeXN0ZW0sc3lzdGVtLXVpLHNhbnMtc2VyaWYiCiAgICAgICAgICAgICAgICBmb250LXNpemU9IjkiIGZvbnQtd2VpZ2h0PSI2MDAiIGxldHRlci1zcGFjaW5nPSIxLjIiCiAgICAgICAgICAgICAgICBmaWxsPSIjQzgxMDJFIj5NT04gwrcgODozMCBBTTwvdGV4dD4KICAgICAgICA8L2c+CgogICAgICAgIDwhLS0g4pSA4pSA4pSAIEZpbmFsIHN1bW1hcnkgY2FyZCDilIDilIDilIAgLS0+CiAgICAgICAgPGcgaWQ9InM3Q2FyZCIgb3BhY2l0eT0iMCIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMTcwLDI2MCkiPgogICAgICAgICAgPCEtLSAoc2hhZG93IHJlbW92ZWQgaW4gdjY3IOKAlCBmbGF0IGRlc2lnbiwgbm8gaGVhdnkgYmFja2dyb3VuZHMpIC0tPgogICAgICAgICAgPCEtLSBnbG93IHJpbmcgLS0+CiAgICAgICAgICA8cmVjdCBpZD0iczdHbG93IiB4PSItMTEwIiB5PSItOTAiIHdpZHRoPSIyMjAiIGhlaWdodD0iMTgwIiByeD0iMTIiCiAgICAgICAgICAgICAgICBmaWxsPSJub25lIiBzdHJva2U9IiNDODEwMkUiIHN0cm9rZS13aWR0aD0iMiIgb3BhY2l0eT0iMCIvPgogICAgICAgICAgPCEtLSBib2R5IChmbGF0IOKAlCB0cmFuc3BhcmVudCBmaWxsLCBibHVlIHN0cm9rZSkgLS0+CiAgICAgICAgICA8cmVjdCB4PSItMTEwIiB5PSItOTAiIHdpZHRoPSIyMjAiIGhlaWdodD0iMTgwIiByeD0iMTIiCiAgICAgICAgICAgICAgICBmaWxsPSJub25lIiBzdHJva2U9IiNDMkMyQzIiIHN0cm9rZS13aWR0aD0iMSIvPgoKICAgICAgICAgIDwhLS0gVGl0bGUgLS0+CiAgICAgICAgICA8dGV4dCB4PSIwIiB5PSItNjYiIHRleHQtYW5jaG9yPSJtaWRkbGUiCiAgICAgICAgICAgICAgICBmb250LWZhbWlseT0iLWFwcGxlLXN5c3RlbSxzeXN0ZW0tdWksc2Fucy1zZXJpZiIKICAgICAgICAgICAgICAgIGZvbnQtc2l6ZT0iMTEiIGZvbnQtd2VpZ2h0PSI3MDAiIGxldHRlci1zcGFjaW5nPSIyIgogICAgICAgICAgICAgICAgZmlsbD0iI0M4MTAyRSI+U0FSQUgnUyBEQVkgwrcgSEFORExFRDwvdGV4dD4KICAgICAgICAgIDxsaW5lIHgxPSItOTAiIHkxPSItNTgiIHgyPSI5MCIgeTI9Ii01OCIKICAgICAgICAgICAgICAgIHN0cm9rZT0iI0MyQzJDMiIgc3Ryb2tlLXdpZHRoPSIuOCIgb3BhY2l0eT0iLjciLz4KCiAgICAgICAgICA8IS0tIFN0YXRzIHJvd3MgLS0+CiAgICAgICAgICA8ZyBpZD0iczdTdGF0MSIgb3BhY2l0eT0iMCI+CiAgICAgICAgICAgIDxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKC04NiwtMzIpIj4KICAgICAgICAgICAgICA8Y2lyY2xlIHI9IjciIGZpbGw9IiNDODEwMkUiLz4KICAgICAgICAgICAgICA8cG9seWxpbmUgcG9pbnRzPSItMywwIC0uOCwyIDMsLTIiCiAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzBGM0QzRSIgc3Ryb2tlLXdpZHRoPSIxLjQiCiAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPgogICAgICAgICAgICA8L2c+CiAgICAgICAgICAgIDx0ZXh0IHg9Ii03MiIgeT0iLTMwIgogICAgICAgICAgICAgICAgICBmb250LWZhbWlseT0iLWFwcGxlLXN5c3RlbSxzeXN0ZW0tdWksc2Fucy1zZXJpZiIKICAgICAgICAgICAgICAgICAgZm9udC1zaXplPSIxMSIgZm9udC13ZWlnaHQ9IjYwMCIKICAgICAgICAgICAgICAgICAgZmlsbD0iI0M4MTAyRSI+MzQgdGFza3MgY29tcGxldGVkPC90ZXh0PgogICAgICAgICAgPC9nPgoKICAgICAgICAgIDxnIGlkPSJzN1N0YXQyIiBvcGFjaXR5PSIwIj4KICAgICAgICAgICAgPGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTg2LC04KSI+CiAgICAgICAgICAgICAgPGNpcmNsZSByPSI3IiBmaWxsPSIjQzgxMDJFIi8+CiAgICAgICAgICAgICAgPHBvbHlsaW5lIHBvaW50cz0iLTMsMCAtLjgsMiAzLC0yIgogICAgICAgICAgICAgICAgICAgICAgICBmaWxsPSJub25lIiBzdHJva2U9IiMwRjNEM0UiIHN0cm9rZS13aWR0aD0iMS40IgogICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4KICAgICAgICAgICAgPC9nPgogICAgICAgICAgICA8dGV4dCB4PSItNzIiIHk9Ii02IgogICAgICAgICAgICAgICAgICBmb250LWZhbWlseT0iLWFwcGxlLXN5c3RlbSxzeXN0ZW0tdWksc2Fucy1zZXJpZiIKICAgICAgICAgICAgICAgICAgZm9udC1zaXplPSIxMSIgZm9udC13ZWlnaHQ9IjYwMCIKICAgICAgICAgICAgICAgICAgZmlsbD0iI0M4MTAyRSI+MyBtZWV0aW5ncyByZXNjaGVkdWxlZDwvdGV4dD4KICAgICAgICAgIDwvZz4KCiAgICAgICAgICA8ZyBpZD0iczdTdGF0MyIgb3BhY2l0eT0iMCI+CiAgICAgICAgICAgIDxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKC04NiwxNikiPgogICAgICAgICAgICAgIDxjaXJjbGUgcj0iNyIgZmlsbD0iI0M4MTAyRSIvPgogICAgICAgICAgICAgIDxwb2x5bGluZSBwb2ludHM9Ii0zLDAgLS44LDIgMywtMiIKICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjMEYzRDNFIiBzdHJva2Utd2lkdGg9IjEuNCIKICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+CiAgICAgICAgICAgIDwvZz4KICAgICAgICAgICAgPHRleHQgeD0iLTcyIiB5PSIxOCIKICAgICAgICAgICAgICAgICAgZm9udC1mYW1pbHk9Ii1hcHBsZS1zeXN0ZW0sc3lzdGVtLXVpLHNhbnMtc2VyaWYiCiAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZT0iMTEiIGZvbnQtd2VpZ2h0PSI2MDAiCiAgICAgICAgICAgICAgICAgIGZpbGw9IiNDODEwMkUiPjI1IGNvbW11bmljYXRpb25zIGhhbmRsZWQ8L3RleHQ+CiAgICAgICAgICA8L2c+CgogICAgICAgICAgPGcgaWQ9InM3U3RhdDQiIG9wYWNpdHk9IjAiPgogICAgICAgICAgICA8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtODYsNDApIj4KICAgICAgICAgICAgICA8Y2lyY2xlIHI9IjciIGZpbGw9IiNDODEwMkUiLz4KICAgICAgICAgICAgICA8cG9seWxpbmUgcG9pbnRzPSItMywwIC0uOCwyIDMsLTIiCiAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzBGM0QzRSIgc3Ryb2tlLXdpZHRoPSIxLjQiCiAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPgogICAgICAgICAgICA8L2c+CiAgICAgICAgICAgIDx0ZXh0IHg9Ii03MiIgeT0iNDIiCiAgICAgICAgICAgICAgICAgIGZvbnQtZmFtaWx5PSItYXBwbGUtc3lzdGVtLHN5c3RlbS11aSxzYW5zLXNlcmlmIgogICAgICAgICAgICAgICAgICBmb250LXNpemU9IjExIiBmb250LXdlaWdodD0iNjAwIgogICAgICAgICAgICAgICAgICBmaWxsPSIjQzgxMDJFIj5aZXJvIGNsaWVudCBpbXBhY3Q8L3RleHQ+CiAgICAgICAgICA8L2c+CgogICAgICAgICAgPCEtLSBGb290ZXIgc3VidGl0bGUgLS0+CiAgICAgICAgICA8dGV4dCB4PSIwIiB5PSI3NCIgdGV4dC1hbmNob3I9Im1pZGRsZSIKICAgICAgICAgICAgICAgIGZvbnQtZmFtaWx5PSItYXBwbGUtc3lzdGVtLHN5c3RlbS11aSxzYW5zLXNlcmlmIgogICAgICAgICAgICAgICAgZm9udC1zaXplPSI5IiBmb250LXdlaWdodD0iNTAwIiBsZXR0ZXItc3BhY2luZz0iMS41IgogICAgICAgICAgICAgICAgZmlsbD0iI0MyQzJDMiIgb3BhY2l0eT0iLjgiPlNhcmFoJ3MgYWJzZW5jZSDCtyBpbnZpc2libGU8L3RleHQ+CiAgICAgICAgPC9nPgoKICAgICAgPC9zdmc+CiAgICA8L2Rpdj4KICA8L2Rpdj4KCjwvZGl2PgoKPC9kaXY+Cgo8c2NyaXB0PgooZnVuY3Rpb24oKXsKICBjb25zdCBsZXJwICA9IChhLGIsdCk9PmErKGItYSkqdDsKICBjb25zdCBjbGFtcCA9ICh2LGxvLGhpKT0+TWF0aC5tYXgobG8sTWF0aC5taW4oaGksdikpOwogIGNvbnN0IG5vcm0gID0gKHYsbG8saGkpPT5jbGFtcCgodi1sbykvKGhpLWxvKSwwLDEpOwogIGNvbnN0IGVvICAgID0gdD0+MS1NYXRoLnBvdygxLXQsMyk7CiAgY29uc3QgZWlvICAgPSB0PT50PC41PzQqdCp0KnQ6MS1NYXRoLnBvdygtMip0KzIsMykvMjsKCiAgZnVuY3Rpb24gc2V0T3AoZWwsIG9wKXsgaWYoZWwpIGVsLnNldEF0dHJpYnV0ZSgnb3BhY2l0eScsIFN0cmluZyhvcCkpOyB9CiAgZnVuY3Rpb24gc2V0VHJhbnNmb3JtKGVsLCB0cil7IGlmKGVsKSBlbC5zZXRBdHRyaWJ1dGUoJ3RyYW5zZm9ybScsIHRyKTsgfQoKICAvLyBIZWxwZXIgZm9yIHRoZSB1bml2ZXJzYWwgcHVsc2luZyBkb3QgaW5kaWNhdG9yCiAgZnVuY3Rpb24gdXBkYXRlUHVsc2VSaW5nKHJpbmcsIHQsIHN0YXJ0VCwgck1pbiA9IDQsIHJNYXggPSAxMSl7CiAgICBpZighcmluZykgcmV0dXJuOwogICAgaWYodCA8IHN0YXJ0VCl7IHJpbmcuc2V0QXR0cmlidXRlKCdvcGFjaXR5JywgJzAnKTsgcmV0dXJuOyB9CiAgICBjb25zdCBjeWNsZVQgPSAoKHQgLSBzdGFydFQpICUgMTYwMCkgLyAxNjAwOwogICAgY29uc3QgciA9IGxlcnAock1pbiwgck1heCwgY3ljbGVUKTsKICAgIGNvbnN0IG9wID0gKDEgLSBjeWNsZVQpICogMC43OwogICAgcmluZy5zZXRBdHRyaWJ1dGUoJ3InLCBTdHJpbmcocikpOwogICAgcmluZy5zZXRBdHRyaWJ1dGUoJ29wYWNpdHknLCBTdHJpbmcob3ApKTsKICB9CgogIC8vIFNjZW5lIHJlZnMKICBjb25zdCBzY2VuZXMgPSBbCiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc2NlbmUxJyksCiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc2NlbmUyJyksCiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc2NlbmUzJyksCiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc2NlbmU0JyksCiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc2NlbmU1JyksCiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc2NlbmU2JyksCiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc2NlbmU3JykKICBdOwoKICAvLyBTMSByZWZzCiAgY29uc3QgczFTdGF0dXMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnczFTdGF0dXMnKTsKICBjb25zdCBzMVB1bHNlUmluZyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzMVB1bHNlUmluZycpOwogIGNvbnN0IHMxVGltZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzMVRpbWUnKTsKICBjb25zdCBzMUJhbmQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnczFCYW5kJyk7CiAgY29uc3QgczFTYXJhaCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzMVNhcmFoJyk7CiAgY29uc3QgczFOb2RlcyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzMU5vZGVzJyk7CiAgY29uc3QgczFFZGdlcyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzMUVkZ2VzJyk7CiAgY29uc3QgczFDb3VudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzMUNvdW50Jyk7CiAgY29uc3QgczFCb3RIZWFkID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3MxQm90SGVhZCcpOwogIGNvbnN0IHMxQm90QW50ZW5uYWUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnczFCb3RBbnRlbm5hZScpOwogIGNvbnN0IHMxQm90RXllcyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzMUJvdEV5ZXMnKTsKICBjb25zdCBzMUJvdFNtaWxlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3MxQm90U21pbGUnKTsKICBjb25zdCBzMUJvdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzMUJvdCcpOwogIGNvbnN0IHMxQm90TGFiZWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnczFCb3RMYWJlbCcpOwogIGNvbnN0IHMxQm90Q29ubiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzMUJvdENvbm4nKTsKICBjb25zdCBzMURpdmlkZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnczFEaXZpZGVyJyk7CiAgY29uc3QgczFCb3RSZXNwb25zZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzMUJvdFJlc3BvbnNlJyk7CgogIC8vIFMyIHJlZnMKICBjb25zdCBzMlN0YXR1cyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzMlN0YXR1cycpOwogIGNvbnN0IHMyUHVsc2VSaW5nID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3MyUHVsc2VSaW5nJyk7CiAgY29uc3QgczJUaW1lID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3MyVGltZScpOwogIGNvbnN0IHMyQm90ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3MyQm90Jyk7CiAgY29uc3QgczJSaW5nMSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzMlJpbmcxJyk7CiAgY29uc3QgczJSaW5nMiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzMlJpbmcyJyk7CiAgY29uc3QgczJSaW5nMyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzMlJpbmczJyk7CiAgY29uc3QgczJSMU5vZGVzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnLnMyUjFOb2RlJyk7CiAgY29uc3QgczJSMk5vZGVzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnLnMyUjJOb2RlJyk7CiAgY29uc3QgczJSM05vZGVzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnLnMyUjNOb2RlJyk7CiAgY29uc3QgczJMYWJlbHMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnczJMYWJlbHMnKTsKICBjb25zdCBzMkxhYjEgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnczJMYWIxJyk7CiAgY29uc3QgczJMYWIyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3MyTGFiMicpOwogIGNvbnN0IHMyTGFiMyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzMkxhYjMnKTsKICBjb25zdCBzMkZvb3RlciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzMkZvb3RlcicpOwoKICAvLyBTMyByZWZzCiAgY29uc3QgczNTdGF0dXMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnczNTdGF0dXMnKTsKICBjb25zdCBzM1B1bHNlUmluZyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzM1B1bHNlUmluZycpOwogIGNvbnN0IHMzVGltZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzM1RpbWUnKTsKICBjb25zdCBzM0NhcHRpb24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnczNDYXB0aW9uJyk7CiAgY29uc3QgczNMYW5lcyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzM0xhbmVzJyk7CiAgY29uc3QgczNIdWIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnczNIdWInKTsKICBjb25zdCBzM0h1YlB1bHNlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3MzSHViUHVsc2UnKTsKICBjb25zdCBzM1Rhc2tzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3MzVGFza3MnKTsKICBjb25zdCBzM0NoZWNrcyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzM0NoZWNrcycpOwogIGNvbnN0IHMzQ291bnRlciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzM0NvdW50ZXInKTsKICBjb25zdCBzM0NoZWNrRWxzID0gWwogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3MzQ2hlY2swJyksCiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnczNDaGVjazEnKSwKICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzM0NoZWNrMicpLAogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3MzQ2hlY2szJykKICBdOwoKICAvLyBTNCByZWZzCiAgY29uc3QgczRTdGF0dXMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnczRTdGF0dXMnKTsKICBjb25zdCBzNFB1bHNlUmluZyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzNFB1bHNlUmluZycpOwogIGNvbnN0IHM0VGltZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzNFRpbWUnKTsKICBjb25zdCBzNENhcHRpb24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnczRDYXB0aW9uJyk7CiAgY29uc3QgczRUaW1lbGluZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzNFRpbWVsaW5lJyk7CiAgY29uc3QgczRNMSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzNE0xJyk7CiAgY29uc3QgczRNMiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzNE0yJyk7CiAgY29uc3QgczRNMyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzNE0zJyk7CiAgY29uc3QgczROb3RpZjEgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnczROb3RpZjEnKTsKICBjb25zdCBzNE5vdGlmMiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzNE5vdGlmMicpOwogIGNvbnN0IHM0Tm90aWYzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3M0Tm90aWYzJyk7CiAgY29uc3QgczRTdGF0dXMyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3M0U3RhdHVzMicpOwoKICAvLyBTNSByZWZzCiAgY29uc3QgczVTdGF0dXMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnczVTdGF0dXMnKTsKICBjb25zdCBzNVB1bHNlUmluZyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzNVB1bHNlUmluZycpOwogIGNvbnN0IHM1VGltZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzNVRpbWUnKTsKICBjb25zdCBzNUNhcHRpb24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnczVDYXB0aW9uJyk7CiAgY29uc3QgczVQaXBlbGluZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzNVBpcGVsaW5lJyk7CiAgY29uc3QgczVGbG93ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3M1RmxvdycpOwogIGNvbnN0IHM1VG90YWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnczVUb3RhbCcpOwogIGNvbnN0IHM1Q291bnRzID0gWwogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3M1Q291bnQwJyksCiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnczVDb3VudDEnKSwKICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzNUNvdW50MicpLAogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3M1Q291bnQzJyksCiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnczVDb3VudDQnKQogIF07CgogIC8vIFM2IHJlZnMKICBjb25zdCBzNlN0YXR1cyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzNlN0YXR1cycpOwogIGNvbnN0IHM2UHVsc2VSaW5nID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3M2UHVsc2VSaW5nJyk7CiAgY29uc3QgczZUaW1lID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3M2VGltZScpOwogIGNvbnN0IHM2TGFiZWxJbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnczZMYWJlbEludCcpOwogIGNvbnN0IHM2TGFiZWxFeHQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnczZMYWJlbEV4dCcpOwogIGNvbnN0IHM2U2VwID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3M2U2VwJyk7CiAgY29uc3QgczZJbnRlcm5hbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzNkludGVybmFsJyk7CiAgY29uc3QgczZFeHRlcm5hbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzNkV4dGVybmFsJyk7CiAgY29uc3QgczZGb290ZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnczZGb290ZXInKTsKCiAgLy8gUzcgcmVmcwogIGNvbnN0IHM3U3RhdHVzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3M3U3RhdHVzJyk7CiAgY29uc3QgczdQdWxzZVJpbmcgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnczdQdWxzZVJpbmcnKTsKICBjb25zdCBzN1RpbWUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnczdUaW1lJyk7CiAgY29uc3QgczdDYXJkID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3M3Q2FyZCcpOwogIGNvbnN0IHM3R2xvdyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzN0dsb3cnKTsKICBjb25zdCBzN1N0YXQxID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3M3U3RhdDEnKTsKICBjb25zdCBzN1N0YXQyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3M3U3RhdDInKTsKICBjb25zdCBzN1N0YXQzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3M3U3RhdDMnKTsKICBjb25zdCBzN1N0YXQ0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3M3U3RhdDQnKTsKCiAgLyog4pSA4pSA4pSAIFNjZW5lIHRpbWVsaW5lIChtcykg4pSA4pSA4pSAICovCiAgY29uc3QgU0MgPSB7CiAgICBzMTogMCwKICAgIHMyOiA1MDAwLCAgICAvLyBkaXNydXB0aW9uIHNldHVwCiAgICBzMzogMTA1MDAsICAgLy8gc3lzdGVtIHVuZGVyc3RhbmRpbmcgdGFrZXMgfjUuNXMgZm9yIHNlcXVlbnRpYWwgc2NhbnMKICAgIHM0OiAxNjAwMCwgICAvLyBhZGp1dGFudCB0YWtlb3ZlcgogICAgczU6IDIwNTAwLCAgIC8vIHJlc2NoZWR1bGluZwogICAgczY6IDI1MDAwLCAgIC8vIGV4ZWN1dGlvbiBwaXBlbGluZQogICAgczc6IDI5MDAwLCAgIC8vIHplcm8gaW1wYWN0CiAgICBlbmQ6IDM1MDAwICAgLy8gZmluYWwgc3RhdGUKICB9OwoKICBmdW5jdGlvbiBhY3RpdmVTY2VuZShlKXsKICAgIGlmKGUgPCBTQy5zMikgcmV0dXJuIDA7CiAgICBpZihlIDwgU0MuczMpIHJldHVybiAxOwogICAgaWYoZSA8IFNDLnM0KSByZXR1cm4gMjsKICAgIGlmKGUgPCBTQy5zNSkgcmV0dXJuIDM7CiAgICBpZihlIDwgU0MuczYpIHJldHVybiA0OwogICAgaWYoZSA8IFNDLnM3KSByZXR1cm4gNTsKICAgIHJldHVybiA2OwogIH0KCiAgLy8g4pSA4pSA4pSAIFMxIG5vZGUgZ3JhcGggZ2VuZXJhdGlvbiDilIDilIDilIAKICAvLyAzNCBub2RlcyBkaXN0cmlidXRlZCBpbiBhIHNvZnQgY2x1c3RlciBhcm91bmQgKDE2MCwgMjYwKS4KICAvLyBFYWNoIG5vZGUgaGFzIGEgYmFzZSBwb3NpdGlvbiB3aXRoIHN1YnRsZSByYW5kb20gb2Zmc2V0LgogIC8vIEVkZ2VzIGNvbm5lY3QgbmVhcmJ5IG5vZGVzIChkaXN0YW5jZSA8IHRocmVzaG9sZCkuCiAgY29uc3QgUzFfTk9ERV9DRU5URVIgPSB7IHg6IDE2MCwgeTogMjYwIH07CiAgY29uc3QgUzFfTk9ERVMgPSBbXTsKICBjb25zdCBTMV9FREdFUyA9IFtdOwogIC8vIEdlbmVyYXRlIDM0IG5vZGVzIGluIGEgcm91Z2hseSBjaXJjdWxhciBjbHVzdGVyCiAgLy8gVXNpbmcgYSBkZXRlcm1pbmlzdGljIHBzZXVkby1yYW5kb20gc28gbGF5b3V0IGlzIHN0YWJsZQogIGxldCBzMVNlZWQgPSA0MjsKICBmdW5jdGlvbiBzMVJhbmQoKXsKICAgIHMxU2VlZCA9IChzMVNlZWQgKiAxMTAzNTE1MjQ1ICsgMTIzNDUpICYgMHg3ZmZmZmZmZjsKICAgIHJldHVybiBzMVNlZWQgLyAweDdmZmZmZmZmOwogIH0KICBmb3IobGV0IGkgPSAwOyBpIDwgMzQ7IGkrKyl7CiAgICAvLyBEaXN0cmlidXRlIGluIGNvbmNlbnRyaWMgcmluZ3MgZm9yIG9yZ2FuaWMgbG9vawogICAgY29uc3QgYW5nbGUgPSBpICogMi4zOTk5NjsgLy8gZ29sZGVuIGFuZ2xlIGZvciBldmVuIGRpc3RyaWJ1dGlvbgogICAgY29uc3QgcmFkaXVzID0gNiArIE1hdGguc3FydChpKSAqIDUuMjsKICAgIGNvbnN0IGJhc2VYID0gUzFfTk9ERV9DRU5URVIueCArIE1hdGguY29zKGFuZ2xlKSAqIHJhZGl1czsKICAgIGNvbnN0IGJhc2VZID0gUzFfTk9ERV9DRU5URVIueSArIE1hdGguc2luKGFuZ2xlKSAqIHJhZGl1cyAqIDAuNzsgLy8gZWxsaXBzZQogICAgLy8gU21hbGwgaml0dGVyIGZvciBvcmdhbmljIGZlZWwKICAgIGNvbnN0IGp4ID0gKHMxUmFuZCgpIC0gMC41KSAqIDM7CiAgICBjb25zdCBqeSA9IChzMVJhbmQoKSAtIDAuNSkgKiAzOwogICAgY29uc3Qgbm9kZSA9IHsKICAgICAgYmFzZVg6IGJhc2VYICsgangsCiAgICAgIGJhc2VZOiBiYXNlWSArIGp5LAogICAgICBwaGFzZTogczFSYW5kKCkgKiBNYXRoLlBJICogMiwKICAgICAgZWw6IG51bGwKICAgIH07CiAgICBTMV9OT0RFUy5wdXNoKG5vZGUpOwogIH0KICAvLyBDb21wdXRlIGVkZ2VzOiBjb25uZWN0IG5vZGVzIHdpdGhpbiBkaXN0YW5jZSB0aHJlc2hvbGQgKG9ubHkgbmVhcmVzdCBmZXcpCiAgZm9yKGxldCBpID0gMDsgaSA8IFMxX05PREVTLmxlbmd0aDsgaSsrKXsKICAgIGNvbnN0IGEgPSBTMV9OT0RFU1tpXTsKICAgIGNvbnN0IGRpc3RzID0gW107CiAgICBmb3IobGV0IGogPSAwOyBqIDwgUzFfTk9ERVMubGVuZ3RoOyBqKyspewogICAgICBpZihpID09PSBqKSBjb250aW51ZTsKICAgICAgY29uc3QgYiA9IFMxX05PREVTW2pdOwogICAgICBjb25zdCBkeCA9IGEuYmFzZVggLSBiLmJhc2VYOwogICAgICBjb25zdCBkeSA9IGEuYmFzZVkgLSBiLmJhc2VZOwogICAgICBjb25zdCBkID0gTWF0aC5zcXJ0KGR4KmR4ICsgZHkqZHkpOwogICAgICBkaXN0cy5wdXNoKHsgaWR4OiBqLCBkIH0pOwogICAgfQogICAgZGlzdHMuc29ydCgoeCwgeSkgPT4geC5kIC0geS5kKTsKICAgIC8vIENvbm5lY3QgdG8gMiBuZWFyZXN0IChhdm9pZGluZyBkdXBsaWNhdGVzKQogICAgZm9yKGxldCBrID0gMDsgayA8IDI7IGsrKyl7CiAgICAgIGNvbnN0IGogPSBkaXN0c1trXS5pZHg7CiAgICAgIGlmKGogPiBpKXsKICAgICAgICBTMV9FREdFUy5wdXNoKHsgYTogaSwgYjogaiB9KTsKICAgICAgfQogICAgfQogIH0KICAvLyBDcmVhdGUgbm9kZSArIGVkZ2UgU1ZHIGVsZW1lbnRzCiAgUzFfTk9ERVMuZm9yRWFjaChub2RlID0+IHsKICAgIGNvbnN0IGVsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKCdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycsICdjaXJjbGUnKTsKICAgIGVsLnNldEF0dHJpYnV0ZSgncicsICcyLjInKTsKICAgIGVsLnNldEF0dHJpYnV0ZSgnZmlsbCcsICcjQzgxMDJFJyk7CiAgICBlbC5zZXRBdHRyaWJ1dGUoJ2N4JywgU3RyaW5nKG5vZGUuYmFzZVgpKTsKICAgIGVsLnNldEF0dHJpYnV0ZSgnY3knLCBTdHJpbmcobm9kZS5iYXNlWSkpOwogICAgczFOb2Rlcy5hcHBlbmRDaGlsZChlbCk7CiAgICBub2RlLmVsID0gZWw7CiAgfSk7CiAgUzFfRURHRVMuZm9yRWFjaChlZGdlID0+IHsKICAgIGNvbnN0IGVsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKCdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycsICdsaW5lJyk7CiAgICBjb25zdCBhID0gUzFfTk9ERVNbZWRnZS5hXTsKICAgIGNvbnN0IGIgPSBTMV9OT0RFU1tlZGdlLmJdOwogICAgZWwuc2V0QXR0cmlidXRlKCd4MScsIFN0cmluZyhhLmJhc2VYKSk7CiAgICBlbC5zZXRBdHRyaWJ1dGUoJ3kxJywgU3RyaW5nKGEuYmFzZVkpKTsKICAgIGVsLnNldEF0dHJpYnV0ZSgneDInLCBTdHJpbmcoYi5iYXNlWCkpOwogICAgZWwuc2V0QXR0cmlidXRlKCd5MicsIFN0cmluZyhiLmJhc2VZKSk7CiAgICBlbC5zZXRBdHRyaWJ1dGUoJ3N0cm9rZScsICcjQzJDMkMyJyk7CiAgICBlbC5zZXRBdHRyaWJ1dGUoJ3N0cm9rZS13aWR0aCcsICcwLjgnKTsKICAgIGVsLnNldEF0dHJpYnV0ZSgnb3BhY2l0eScsICcwLjUnKTsKICAgIHMxRWRnZXMuYXBwZW5kQ2hpbGQoZWwpOwogICAgZWRnZS5lbCA9IGVsOwogIH0pOwoKICAvLyDilIDilIDilIAgUzMgdGFzayBnZW5lcmF0aW9uIOKUgOKUgOKUgAogIC8vIDM0IHRhc2tzIGRpc3RyaWJ1dGVkIGFjcm9zcyA0IGxhbmVzOiA4KzkrOSs4ID0gMzQKICBjb25zdCBTM19UQVNLUyA9IFtdOwogIGNvbnN0IFMzX0xBTkVTID0gWwogICAgeyB5OiAyMDAsIGNvbG9yOiAnI0M4MTAyRScsIGNvdW50OiA4IH0sCiAgICB7IHk6IDIyNCwgY29sb3I6ICcjQzgxMDJFJywgY291bnQ6IDkgfSwKICAgIHsgeTogMjQ4LCBjb2xvcjogJyNDODEwMkUnLCBjb3VudDogOSB9LAogICAgeyB5OiAyNzIsIGNvbG9yOiAnI0Q0QTU3NCcsIGNvdW50OiA4IH0KICBdOwogIFMzX0xBTkVTLmZvckVhY2goKGxhbmUsIGxhbmVJZHgpID0+IHsKICAgIGZvcihsZXQgaSA9IDA7IGkgPCBsYW5lLmNvdW50OyBpKyspewogICAgICBjb25zdCB0aWxlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKCdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycsICdyZWN0Jyk7CiAgICAgIHRpbGUuc2V0QXR0cmlidXRlKCd3aWR0aCcsICc1Jyk7CiAgICAgIHRpbGUuc2V0QXR0cmlidXRlKCdoZWlnaHQnLCAnNScpOwogICAgICB0aWxlLnNldEF0dHJpYnV0ZSgncngnLCAnMScpOwogICAgICB0aWxlLnNldEF0dHJpYnV0ZSgnZmlsbCcsIGxhbmUuY29sb3IpOwogICAgICB0aWxlLnNldEF0dHJpYnV0ZSgneCcsICcwJyk7CiAgICAgIHRpbGUuc2V0QXR0cmlidXRlKCd5JywgU3RyaW5nKGxhbmUueSAtIDIuNSkpOwogICAgICB0aWxlLnNldEF0dHJpYnV0ZSgnb3BhY2l0eScsICcwJyk7CiAgICAgIHMzVGFza3MuYXBwZW5kQ2hpbGQodGlsZSk7CiAgICAgIFMzX1RBU0tTLnB1c2goewogICAgICAgIGVsOiB0aWxlLAogICAgICAgIGxhbmU6IGxhbmVJZHgsCiAgICAgICAgaW5kZXg6IGksCiAgICAgICAgeTogbGFuZS55LAogICAgICAgIGRlbGF5OiBpICogMTAwICsgbGFuZUlkeCAqIDUwCiAgICAgIH0pOwogICAgfQogIH0pOwoKICAvLyDilIDilIDilIAgUzUgZmxvdyBpdGVtIGdlbmVyYXRpb24g4pSA4pSA4pSACiAgLy8gMjUgaXRlbXMgKDE0IGVtYWlscyArIDExIGFkbWluKSBmbG93IHRocm91Z2ggcGlwZWxpbmUsIGRpc3RyaWJ1dGVkIGFtb25nIDUgc3RhZ2VzLgogIC8vIERpc3RyaWJ1dGlvbjogOCByZXBsaWVkLCAzIGVzY2FsYXRlZCwgNSByb3V0ZWQsIDUgZmlsZWQsIDQgaW52b2ljZWQgKHRvdGFsID0gMjUpCiAgY29uc3QgUzVfRElTVFJJQlVUSU9OID0gWzgsIDMsIDUsIDUsIDRdOwogIGNvbnN0IFM1X1NUQUdFX1ggPSBbNjAsIDExOCwgMTcwLCAyMjIsIDI4MF07CiAgY29uc3QgUzVfRkxPV19JVEVNUyA9IFtdOwogIGxldCBzNUl0ZW1JZHggPSAwOwogIFM1X0RJU1RSSUJVVElPTi5mb3JFYWNoKChjbnQsIHN0YWdlSWR4KSA9PiB7CiAgICBmb3IobGV0IGkgPSAwOyBpIDwgY250OyBpKyspewogICAgICBjb25zdCB0aWxlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKCdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycsICdjaXJjbGUnKTsKICAgICAgdGlsZS5zZXRBdHRyaWJ1dGUoJ3InLCAnMi41Jyk7CiAgICAgIHRpbGUuc2V0QXR0cmlidXRlKCdjeCcsICc0MCcpOwogICAgICB0aWxlLnNldEF0dHJpYnV0ZSgnY3knLCAnMjI2Jyk7CiAgICAgIHRpbGUuc2V0QXR0cmlidXRlKCdmaWxsJywgJyNDODEwMkUnKTsKICAgICAgdGlsZS5zZXRBdHRyaWJ1dGUoJ29wYWNpdHknLCAnMCcpOwogICAgICBzNUZsb3cuYXBwZW5kQ2hpbGQodGlsZSk7CiAgICAgIFM1X0ZMT1dfSVRFTVMucHVzaCh7CiAgICAgICAgZWw6IHRpbGUsCiAgICAgICAgc3RhZ2U6IHN0YWdlSWR4LAogICAgICAgIGRlbGF5OiBzNUl0ZW1JZHggKiAxMDAsCiAgICAgICAgdGFyZ2V0WDogUzVfU1RBR0VfWFtzdGFnZUlkeF0KICAgICAgfSk7CiAgICAgIHM1SXRlbUlkeCsrOwogICAgfQogIH0pOwoKICBjb25zdCB0MCA9IHBlcmZvcm1hbmNlLm5vdygpOwoKICBmdW5jdGlvbiBmcmFtZShub3cpewogICAgY29uc3QgZSA9IChub3cgLSB0MCkgJSBTQy5lbmQ7CiAgICBjb25zdCBzSWR4ID0gYWN0aXZlU2NlbmUoZSk7CgogICAgc2NlbmVzLmZvckVhY2goKHNjLCBpKSA9PiB7CiAgICAgIGlmKGkgPT09IHNJZHgpIHNjLmNsYXNzTGlzdC5hZGQoJ2FjdGl2ZScpOwogICAgICBlbHNlIHNjLmNsYXNzTGlzdC5yZW1vdmUoJ2FjdGl2ZScpOwogICAgfSk7CgogICAgLyog4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQCiAgICAgICBTQ0VORSAxIOKAlCBESVNSVVBUSU9OIEVOVFJZCiAgICAgICAKICAgICAgIFNlcXVlbmNlOgogICAgICAgICAw4oCTODAwbXM6ICAgIHN0YXR1cyBpbmRpY2F0b3IgKHJlZCBkb3QgcHVsc2UpIGFwcGVhcnMKICAgICAgICAgNDAw4oCTMTAwMG1zOiB0aW1lIGNoaXAKICAgICAgICAgNjAw4oCTMTQwMG1zOiBzeXN0ZW0gYmFuZCAoYWxpZ25tZW50IGd1aWRlKQogICAgICAgICA3MDDigJMxNTAwbXM6IFNhcmFoIGF2YXRhciAoZGltIHRlYWwgKyBzbWFsbCByZWQgJ3onKQogICAgICAgICAxMTAw4oCTMjAwMG1zOiBub2RlIGdyYXBoIChlZGdlcyBmYWRlIGZpcnN0LCB0aGVuIG5vZGVzKQogICAgICAgICAyMDAw4oCTMjcwMG1zOiBjb3VudCBsYWJlbAogICAgICAgICAyMjAw4oCTMjkwMG1zOiBjaGF0Ym90IGNoYXJhY3RlciAoaW5pdGlhbGx5IGRpbSkKICAgICAgICAgMzAwMOKAkzM3MDBtczogYm90IHRyYW5zaXRpb25zIHRvICJwcm9jZXNzaW5nIiDigJQgY29sb3IKICAgICAgICAgICAgICAgICAgICAgIHNoaWZ0cyBkaW0gdGVhbCDihpIgYnJpZ2h0IHRlYWw7IG5vZGVzIGJlZ2luCiAgICAgICAgICAgICAgICAgICAgICB0byBkcmlmdCBzbGlnaHRseSB0b3dhcmQgY2hhdGJvdAogICAgICAgICAzMzAw4oCTNDAwMG1zOiBib3QgcmVzcG9uc2UgYnViYmxlIGFwcGVhcnMKICAgICAgIAogICAgICAgTm9kZSBncmFwaDogMzQgbm9kZXMgb3NjaWxsYXRlIGdlbnRseSB3aXRoIHNpbi9jb3MgcGhhc2UKICAgICAgIG9mZnNldHMuIEVkZ2VzIGNvbm5lY3QgbmVhcmVzdCBuZWlnaGJvcnMuIFN1YnRsZSBtb3Rpb24KICAgICAgIHN1Z2dlc3RzICJhY3RpdmUgd29ya2xvYWQiIHdpdGhvdXQgaGFyc2ggcmVkIFVJLgogICAgICAg4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQICovCiAgICBpZihzSWR4ID09PSAwKXsKICAgICAgY29uc3QgdCA9IGU7CiAgICAgIHNldE9wKHMxU3RhdHVzLCBlbyhub3JtKHQsIDIwMCwgODAwKSkpOwogICAgICB1cGRhdGVQdWxzZVJpbmcoczFQdWxzZVJpbmcsIHQsIDIwMCk7CiAgICAgIHNldE9wKHMxVGltZSwgZW8obm9ybSh0LCA0MDAsIDEwMDApKSk7CgogICAgICAvLyBTeXN0ZW0gYmFuZCBmYWRlcyBpbgogICAgICBzZXRPcChzMUJhbmQsIGVvKG5vcm0odCwgNjAwLCAxNDAwKSkgKiAwLjYpOwoKICAgICAgLy8gU2FyYWggYXZhdGFyCiAgICAgIHNldE9wKHMxU2FyYWgsIGVvKG5vcm0odCwgNzAwLCAxNTAwKSkpOwoKICAgICAgLy8gTm9kZSBncmFwaDogZWRnZXMgZmFkZSBpbiBmaXJzdCwgdGhlbiBub2RlcwogICAgICBzZXRPcChzMUVkZ2VzLCBlbyhub3JtKHQsIDExMDAsIDE4MDApKSAqIDAuNSk7CiAgICAgIHNldE9wKHMxTm9kZXMsIGVvKG5vcm0odCwgMTMwMCwgMjAwMCkpKTsKCiAgICAgIC8vIENvdW50IGxhYmVsCiAgICAgIHNldE9wKHMxQ291bnQsIGVvKG5vcm0odCwgMjAwMCwgMjcwMCkpKTsKCiAgICAgIC8vIFN1YnRsZSBub2RlIG9zY2lsbGF0aW9uICsgc2xpZ2h0IGRyaWZ0IHRvd2FyZCBjaGF0Ym90IHN0YXJ0aW5nIGF0IHQ9MzAwMAogICAgICBjb25zdCBvc2NUID0gTWF0aC5tYXgoMCwgdCAtIDE1MDApOwogICAgICBjb25zdCBkcmlmdFAgPSBub3JtKHQsIDMwMDAsIDQ1MDApOyAvLyAwIOKGkiAxIG92ZXIgdGhlIGRyaWZ0IHBoYXNlCiAgICAgIFMxX05PREVTLmZvckVhY2goKG5vZGUsIGkpID0+IHsKICAgICAgICAvLyBQZXItbm9kZSBwaGFzZSBvZmZzZXQgZm9yIG9yZ2FuaWMgbW90aW9uCiAgICAgICAgY29uc3QgZHggPSBNYXRoLnNpbihvc2NUIC8gODAwICsgbm9kZS5waGFzZSkgKiAxLjI7CiAgICAgICAgY29uc3QgZHkgPSBNYXRoLmNvcyhvc2NUIC8gNzAwICsgbm9kZS5waGFzZSAqIDEuMykgKiAwLjg7CiAgICAgICAgLy8gU2xpZ2h0IGRyaWZ0IHRvIHRoZSByaWdodCAodG93YXJkIGNoYXRib3QgYXQgeD0yNjUpCiAgICAgICAgY29uc3QgZHJpZnRYID0gKDI2NSAtIG5vZGUuYmFzZVgpICogZHJpZnRQICogMC4wODsKICAgICAgICBjb25zdCB4ID0gbm9kZS5iYXNlWCArIGR4ICsgZHJpZnRYOwogICAgICAgIGNvbnN0IHkgPSBub2RlLmJhc2VZICsgZHk7CiAgICAgICAgbm9kZS5lbC5zZXRBdHRyaWJ1dGUoJ2N4JywgU3RyaW5nKHgpKTsKICAgICAgICBub2RlLmVsLnNldEF0dHJpYnV0ZSgnY3knLCBTdHJpbmcoeSkpOwogICAgICB9KTsKICAgICAgLy8gVXBkYXRlIGVkZ2VzIHRvIGZvbGxvdyBub2RlcwogICAgICBTMV9FREdFUy5mb3JFYWNoKGVkZ2UgPT4gewogICAgICAgIGNvbnN0IGEgPSBTMV9OT0RFU1tlZGdlLmFdOwogICAgICAgIGNvbnN0IGIgPSBTMV9OT0RFU1tlZGdlLmJdOwogICAgICAgIGVkZ2UuZWwuc2V0QXR0cmlidXRlKCd4MScsIGEuZWwuZ2V0QXR0cmlidXRlKCdjeCcpKTsKICAgICAgICBlZGdlLmVsLnNldEF0dHJpYnV0ZSgneTEnLCBhLmVsLmdldEF0dHJpYnV0ZSgnY3knKSk7CiAgICAgICAgZWRnZS5lbC5zZXRBdHRyaWJ1dGUoJ3gyJywgYi5lbC5nZXRBdHRyaWJ1dGUoJ2N4JykpOwogICAgICAgIGVkZ2UuZWwuc2V0QXR0cmlidXRlKCd5MicsIGIuZWwuZ2V0QXR0cmlidXRlKCdjeScpKTsKICAgICAgfSk7CgogICAgICAvLyBDaGF0Ym90IGZhZGVzIGluCiAgICAgIHNldE9wKHMxQm90LCBlbyhub3JtKHQsIDIyMDAsIDI5MDApKSk7CgogICAgICAvLyBDaGF0Ym90IHRyYW5zaXRpb25zIHRvICJwcm9jZXNzaW5nIiBtb2RlIGF0IHQ9MzAwMDoKICAgICAgLy8gY29sb3Igc2hpZnRzIGRpbSB0ZWFsICNDMkMyQzIg4oaSIGJyaWdodCB0ZWFsICNDODEwMkUKICAgICAgLy8gKFNpbXBsZSBjcm9zc292ZXIg4oCUIG9uY2Ugc2hpZnRlZCBwYXN0IDUwJSwgc3dpdGNoIGNvbG9yIHN0cmluZykKICAgICAgY29uc3QgY29sb3JTaGlmdCA9IG5vcm0odCwgMzAwMCwgMzcwMCk7CiAgICAgIGNvbnN0IHNoaWZ0ZWRDb2xvciA9IGNvbG9yU2hpZnQgPiAwLjUgPyAnI0M4MTAyRScgOiAnI0MyQzJDMic7CiAgICAgIHMxQm90SGVhZC5zZXRBdHRyaWJ1dGUoJ3N0cm9rZScsIHNoaWZ0ZWRDb2xvcik7CiAgICAgIHMxQm90QW50ZW5uYWUuc2V0QXR0cmlidXRlKCdzdHJva2UnLCBzaGlmdGVkQ29sb3IpOwogICAgICBzMUJvdEFudGVubmFlLnNldEF0dHJpYnV0ZSgnZmlsbCcsIHNoaWZ0ZWRDb2xvcik7CiAgICAgIHMxQm90RXllcy5xdWVyeVNlbGVjdG9yQWxsKCdjaXJjbGUnKS5mb3JFYWNoKGMgPT4gYy5zZXRBdHRyaWJ1dGUoJ2ZpbGwnLCBzaGlmdGVkQ29sb3IpKTsKICAgICAgczFCb3RTbWlsZS5zZXRBdHRyaWJ1dGUoJ3N0cm9rZScsIHNoaWZ0ZWRDb2xvcik7CiAgICAgIHMxQm90TGFiZWwuc2V0QXR0cmlidXRlKCdmaWxsJywgc2hpZnRlZENvbG9yKTsKCiAgICAgIC8vIEJvdCByZXNwb25zZSBidWJibGUgKyBzdHJ1Y3R1cmFsIGVsZW1lbnRzCiAgICAgIHNldE9wKHMxQm90TGFiZWwsIGVvKG5vcm0odCwgMjUwMCwgMzEwMCkpKTsKICAgICAgc2V0T3AoczFCb3RDb25uLCBlbyhub3JtKHQsIDI5MDAsIDM1MDApKSAqIDAuNyk7CiAgICAgIHNldE9wKHMxRGl2aWRlciwgZW8obm9ybSh0LCAzMDAwLCAzNjAwKSkgKiAwLjcpOwogICAgICBzZXRPcChzMUJvdFJlc3BvbnNlLCBlbyhub3JtKHQsIDMzMDAsIDQwMDApKSk7CiAgICB9CgogICAgLyog4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQCiAgICAgICBTQ0VORSAyIOKAlCBTWVNURU0gVU5ERVJTVEFORElORyAoY29uY2VudHJpYyByaW5nIGZvcm1hdGlvbikKICAgICAgIAogICAgICAgU2VxdWVuY2U6CiAgICAgICAgIDDigJM4MDBtczogICAgc3RhdHVzIChvcmFuZ2UgIkFOQUxZWklORyIpICsgdGltZSBjaGlwCiAgICAgICAgIDQwMOKAkzExMDBtczogY2hhdGJvdCBjZW50ZXIKICAgICAgICAgODAwbXMrOiAgICAgUmluZyAxIChUQVNLUykgZHJhd3MgdmlhIHN0cm9rZS1kYXNob2Zmc2V0CiAgICAgICAgICAgICAgICAgICAgIDEzMDBtcys6IDggcmluZy0xIG5vZGVzIHBvcCBpbiBhcm91bmQgcmluZwogICAgICAgICAgICAgICAgICAgICAxOTAwbXM6ICBUQVNLUyDCtyAzNCBsYWJlbCBmYWRlcyBpbgogICAgICAgICAyMjAwbXMrOiAgICBSaW5nIDIgKE1FRVRJTkdTKSBkcmF3cwogICAgICAgICAgICAgICAgICAgICAyNjAwbXMrOiAzIHJpbmctMiBub2RlcyBwb3AgaW4KICAgICAgICAgICAgICAgICAgICAgMzAwMG1zOiAgTUVFVElOR1MgwrcgMyBsYWJlbAogICAgICAgICAzMzAwbXMrOiAgICBSaW5nIDMgKENMSUVOVFMpIGRyYXdzCiAgICAgICAgICAgICAgICAgICAgIDM3MDBtcys6IDUgcmluZy0zIG5vZGVzIHBvcCBpbgogICAgICAgICAgICAgICAgICAgICA0MTAwbXM6ICBDTElFTlRTIMK3IDUgbGFiZWwKICAgICAgICAgNDQwMG1zOiAgICAgZm9vdGVyICJNYXBwZWQgwrcgcmVhZHkgdG8gZGVsZWdhdGUiCiAgICAgICAKICAgICAgIE1vdGlvbiBsb2dpYyBpcyBSQURJQUwgKGZvcm1hdGlvbiBhcm91bmQgY2VudGVyKSwgZGlzdGluY3QKICAgICAgIGZyb20gUzMncyBwYXJhbGxlbCBsYW5lIG1vdmVtZW50LgogICAgICAg4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQICovCiAgICBpZihzSWR4ID09PSAxKXsKICAgICAgY29uc3QgdCA9IGUgLSBTQy5zMjsKICAgICAgc2V0T3AoczJTdGF0dXMsIGVvKG5vcm0odCwgMjAwLCA4MDApKSk7CiAgICAgIHVwZGF0ZVB1bHNlUmluZyhzMlB1bHNlUmluZywgdCwgMjAwKTsKICAgICAgc2V0T3AoczJUaW1lLCBlbyhub3JtKHQsIDQwMCwgMTAwMCkpKTsKICAgICAgc2V0T3AoczJCb3QsIGVvKG5vcm0odCwgNDAwLCAxMTAwKSkpOwogICAgICBzZXRPcChzMkxhYmVscywgJzEnKTsKCiAgICAgIC8vIFJpbmcgMSAoVEFTS1MpIOKAlCBkcmF3cyBiZXR3ZWVuIHQ9OTAwIGFuZCB0PTE3MDAKICAgICAgY29uc3QgcjFEcmF3UCA9IGVvKG5vcm0odCwgOTAwLCAxNzAwKSk7CiAgICAgIHMyUmluZzEuc2V0QXR0cmlidXRlKCdzdHJva2UtZGFzaG9mZnNldCcsIFN0cmluZyhsZXJwKDEwMCwgMCwgcjFEcmF3UCkpKTsKICAgICAgLy8gUmluZyAxIG5vZGVzIHBvcCBpbiBzZXF1ZW50aWFsbHkgYWZ0ZXIgcmluZyBpcyBtb3N0bHkgZHJhd24KICAgICAgczJSMU5vZGVzLmZvckVhY2goKG5vZGUsIGkpID0+IHsKICAgICAgICBjb25zdCBzdGFydFQgPSAxMzAwICsgaSAqIDgwOwogICAgICAgIGNvbnN0IGNrUCA9IG5vcm0odCwgc3RhcnRULCBzdGFydFQgKyAzMDApOwogICAgICAgIG5vZGUuc2V0QXR0cmlidXRlKCdvcGFjaXR5JywgU3RyaW5nKGVvKGNrUCkpKTsKICAgICAgfSk7CiAgICAgIC8vIFJpbmcgMSBsYWJlbAogICAgICBzZXRPcChzMkxhYjEsIGVvKG5vcm0odCwgMTkwMCwgMjQwMCkpKTsKCiAgICAgIC8vIFJpbmcgMiAoTUVFVElOR1MpIOKAlCBkcmF3cyBiZXR3ZWVuIHQ9MjIwMCBhbmQgdD0yOTAwCiAgICAgIGNvbnN0IHIyRHJhd1AgPSBlbyhub3JtKHQsIDIyMDAsIDI5MDApKTsKICAgICAgczJSaW5nMi5zZXRBdHRyaWJ1dGUoJ3N0cm9rZS1kYXNob2Zmc2V0JywgU3RyaW5nKGxlcnAoMTAwLCAwLCByMkRyYXdQKSkpOwogICAgICBzMlIyTm9kZXMuZm9yRWFjaCgobm9kZSwgaSkgPT4gewogICAgICAgIGNvbnN0IHN0YXJ0VCA9IDI2MDAgKyBpICogMTAwOwogICAgICAgIGNvbnN0IGNrUCA9IG5vcm0odCwgc3RhcnRULCBzdGFydFQgKyAzMDApOwogICAgICAgIG5vZGUuc2V0QXR0cmlidXRlKCdvcGFjaXR5JywgU3RyaW5nKGVvKGNrUCkpKTsKICAgICAgfSk7CiAgICAgIHNldE9wKHMyTGFiMiwgZW8obm9ybSh0LCAzMDAwLCAzNTAwKSkpOwoKICAgICAgLy8gUmluZyAzIChDTElFTlRTKSDigJQgZHJhd3MgYmV0d2VlbiB0PTMzMDAgYW5kIHQ9NDAwMAogICAgICBjb25zdCByM0RyYXdQID0gZW8obm9ybSh0LCAzMzAwLCA0MDAwKSk7CiAgICAgIHMyUmluZzMuc2V0QXR0cmlidXRlKCdzdHJva2UtZGFzaG9mZnNldCcsIFN0cmluZyhsZXJwKDEwMCwgMCwgcjNEcmF3UCkpKTsKICAgICAgczJSM05vZGVzLmZvckVhY2goKG5vZGUsIGkpID0+IHsKICAgICAgICBjb25zdCBzdGFydFQgPSAzNzAwICsgaSAqIDgwOwogICAgICAgIGNvbnN0IGNrUCA9IG5vcm0odCwgc3RhcnRULCBzdGFydFQgKyAzMDApOwogICAgICAgIG5vZGUuc2V0QXR0cmlidXRlKCdvcGFjaXR5JywgU3RyaW5nKGVvKGNrUCkpKTsKICAgICAgfSk7CiAgICAgIHNldE9wKHMyTGFiMywgZW8obm9ybSh0LCA0MTAwLCA0NjAwKSkpOwoKICAgICAgc2V0T3AoczJGb290ZXIsIGVvKG5vcm0odCwgNDQwMCwgNDkwMCkpKTsKICAgIH0KCiAgICAvKiDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZAKICAgICAgIFNDRU5FIDMg4oCUIE9SQU5HRSDCtyBBREpVVEFOVCBUQUtFUyBPVkVSIMK3IFRBU0tTIERJU1RSSUJVVEUKICAgICAgIOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkCAqLwogICAgaWYoc0lkeCA9PT0gMil7CiAgICAgIGNvbnN0IHQgPSBlIC0gU0MuczM7CiAgICAgIHNldE9wKHMzU3RhdHVzLCBlbyhub3JtKHQsIDIwMCwgODAwKSkpOwogICAgICB1cGRhdGVQdWxzZVJpbmcoczNQdWxzZVJpbmcsIHQsIDIwMCk7CiAgICAgIHNldE9wKHMzVGltZSwgZW8obm9ybSh0LCA0MDAsIDEwMDApKSk7CiAgICAgIHNldE9wKHMzQ2FwdGlvbiwgZW8obm9ybSh0LCA2MDAsIDEyMDApKSk7CiAgICAgIHNldE9wKHMzTGFuZXMsIGVvKG5vcm0odCwgODAwLCAxNDAwKSkpOwogICAgICAvLyBBZGp1dGFudCBodWIgYXBwZWFycyBmaXJzdCAoc2lnbmFsaW5nIHRoZSBjb250cm9sbGVyKSwKICAgICAgLy8gdGhlbiBsYW5lcywgdGhlbiB0YXNrcyBlbWVyZ2UgZnJvbSBodWIKICAgICAgc2V0T3AoczNIdWIsIGVvKG5vcm0odCwgNjAwLCAxMjAwKSkpOwogICAgICAvLyBIdWIgcHVsc2Ug4oCUIGNvbnRpbnVvdXMsIGV4cGFuZGVkIHJhZGlpIHRvIG1hdGNoIGh1YiBkaXNjCiAgICAgIHVwZGF0ZVB1bHNlUmluZyhzM0h1YlB1bHNlLCB0LCA2MDAsIDUsIDE0KTsKCiAgICAgIGNvbnN0IFRSQVZFTF9TID0gMTQwMDsKICAgICAgY29uc3QgVFJBVkVMX0UgPSA0NDAwOwoKICAgICAgLy8gTGl2ZSBjb3VudGVyIHVwZGF0ZQogICAgICBsZXQgdG90YWxBY3RpdmUgPSAwOwoKICAgICAgUzNfVEFTS1MuZm9yRWFjaCh0YXNrID0+IHsKICAgICAgICBjb25zdCBzdGFydFQgPSBUUkFWRUxfUyArIHRhc2suZGVsYXk7CiAgICAgICAgY29uc3QgZW5kVCA9IFRSQVZFTF9FOwogICAgICAgIGNvbnN0IGluUCA9IG5vcm0odCwgc3RhcnRULCBzdGFydFQgKyAyMDApOwogICAgICAgIHNldE9wKHRhc2suZWwsIGVvKGluUCkpOwoKICAgICAgICBpZih0IDwgc3RhcnRUKXsKICAgICAgICAgIHRhc2suZWwuc2V0QXR0cmlidXRlKCd4JywgU3RyaW5nKDYyIC0gMi41KSk7CiAgICAgICAgfSBlbHNlIGlmKHQgPCBlbmRUKXsKICAgICAgICAgIGNvbnN0IHAgPSBub3JtKHQsIHN0YXJ0VCwgZW5kVCk7CiAgICAgICAgICBjb25zdCB4ID0gbGVycCg2MiwgMjc0LCBlaW8ocCkpOwogICAgICAgICAgdGFzay5lbC5zZXRBdHRyaWJ1dGUoJ3gnLCBTdHJpbmcoeCAtIDIuNSkpOwogICAgICAgICAgaWYocCA+IDAuNSkgdG90YWxBY3RpdmUrKzsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgdGFzay5lbC5zZXRBdHRyaWJ1dGUoJ3gnLCBTdHJpbmcoMjc0IC0gMi41KSk7CiAgICAgICAgICBjb25zdCBmYWRlUCA9IG5vcm0odCwgZW5kVCwgZW5kVCArIDQwMCk7CiAgICAgICAgICBzZXRPcCh0YXNrLmVsLCAxIC0gZW8oZmFkZVApKTsKICAgICAgICAgIHRvdGFsQWN0aXZlKys7CiAgICAgICAgfQogICAgICB9KTsKCiAgICAgIC8vIFVwZGF0ZSBjb3VudGVyIHRleHQKICAgICAgc2V0T3AoczNDb3VudGVyLCBlbyhub3JtKHQsIDE0MDAsIDE4MDApKSk7CiAgICAgIGNvbnN0IGNvbXBsZXRlZENvdW50ID0gTWF0aC5taW4oMzQsIE1hdGguZmxvb3Iobm9ybSh0LCBUUkFWRUxfUywgVFJBVkVMX0UpICogMzQpKTsKICAgICAgaWYodCA+PSBUUkFWRUxfRSl7CiAgICAgICAgczNDb3VudGVyLnRleHRDb250ZW50ID0gJzM0IC8gMzQgZGlzdHJpYnV0ZWQnOwogICAgICAgIHMzQ291bnRlci5zZXRBdHRyaWJ1dGUoJ2ZpbGwnLCAnI0M4MTAyRScpOwogICAgICB9IGVsc2UgewogICAgICAgIHMzQ291bnRlci50ZXh0Q29udGVudCA9IGAke2NvbXBsZXRlZENvdW50fSAvIDM0IGRpc3RyaWJ1dGluZ+KApmA7CiAgICAgICAgczNDb3VudGVyLnNldEF0dHJpYnV0ZSgnZmlsbCcsICcjQzgxMDJFJyk7CiAgICAgIH0KCiAgICAgIC8vIENoZWNrbWFya3MgcG9wIGluIHdoZW4gYWxsIGRpc3RyaWJ1dGVkCiAgICAgIHNldE9wKHMzQ2hlY2tzLCAnMScpOwogICAgICBzM0NoZWNrRWxzLmZvckVhY2goKGNrLCBpKSA9PiB7CiAgICAgICAgY29uc3QgY2hlY2tUID0gVFJBVkVMX0UgKyBpICogODA7CiAgICAgICAgY29uc3QgY2tQID0gbm9ybSh0LCBjaGVja1QsIGNoZWNrVCArIDQwMCk7CiAgICAgICAgY29uc3QgeVBvcyA9IFsyMDAsIDIyNCwgMjQ4LCAyNzJdW2ldOwogICAgICAgIHNldFRyYW5zZm9ybShjaywgYHRyYW5zbGF0ZSgyOTAsJHt5UG9zfSkgc2NhbGUoJHtlbyhja1ApfSlgKTsKICAgICAgfSk7CiAgICB9CgogICAgLyog4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQCiAgICAgICBTQ0VORSA0IOKAlCBPUkFOR0UgwrcgMyBNRUVUSU5HUyBSRVNDSEVEVUxFRAogICAgICAg4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQICovCiAgICBpZihzSWR4ID09PSAzKXsKICAgICAgY29uc3QgdCA9IGUgLSBTQy5zNDsKICAgICAgc2V0T3AoczRTdGF0dXMsIGVvKG5vcm0odCwgMjAwLCA4MDApKSk7CiAgICAgIHVwZGF0ZVB1bHNlUmluZyhzNFB1bHNlUmluZywgdCwgMjAwKTsKICAgICAgc2V0T3AoczRUaW1lLCBlbyhub3JtKHQsIDQwMCwgMTAwMCkpKTsKICAgICAgc2V0T3AoczRDYXB0aW9uLCBlbyhub3JtKHQsIDYwMCwgMTIwMCkpKTsKICAgICAgc2V0T3AoczRUaW1lbGluZSwgZW8obm9ybSh0LCA4MDAsIDE0MDApKSk7CgogICAgICAvLyBNZWV0aW5nIGJsb2NrcyBoYXZlIGluaXRpYWwgY29uZmxpY3QgcG9zaXRpb25zLCB0aGVuIHNoaWZ0IHRvIGNsZWFuIHBvc2l0aW9ucwogICAgICAvLyBNMSBpbml0aWFsOiB4PTcwLCB5PTIyNCAob3ZlcmxhcHMgd2l0aCBNMikKICAgICAgLy8gTTEgZmluYWw6IHg9NjgsIHk9MjI0CiAgICAgIC8vIE0yIGluaXRpYWw6IHg9MTEwIChvdmVybGFwKSwgeT0yMjQKICAgICAgLy8gTTIgZmluYWw6IHg9MTQ0LCB5PTIyNAogICAgICAvLyBNMyBpbml0aWFsOiB4PTE2MCwgeT0yMjQgKG92ZXJsYXAgd2l0aCBNMikKICAgICAgLy8gTTMgZmluYWw6IHg9MjMyLCB5PTIyNAoKICAgICAgLy8gTWVldGluZ3MgYXBwZWFyIGF0IGluaXRpYWwgcG9zaXRpb25zCiAgICAgIGNvbnN0IG0xSW5QID0gZW8obm9ybSh0LCAxMzAwLCAxOTAwKSk7CiAgICAgIGNvbnN0IG0ySW5QID0gZW8obm9ybSh0LCAxNTAwLCAyMTAwKSk7CiAgICAgIGNvbnN0IG0zSW5QID0gZW8obm9ybSh0LCAxNzAwLCAyMzAwKSk7CgogICAgICAvLyBJbml0aWFsIHBvc2l0aW9ucyAoY2x1c3RlcmVkIHdpdGggb3ZlcmxhcHMg4oCUIGNvbmZsaWN0IHN0YXRlKQogICAgICBjb25zdCBtMUluaXRpYWwgPSB7IHg6IDcwLCB5OiAyNDAgfTsKICAgICAgY29uc3QgbTJJbml0aWFsID0geyB4OiAxMDAsIHk6IDIyNCB9OwogICAgICBjb25zdCBtM0luaXRpYWwgPSB7IHg6IDEzMCwgeTogMjQwIH07CgogICAgICAvLyBGaW5hbCBwb3NpdGlvbnMgKGNsZWFuLCBhbGlnbmVkIHRvIGNsZWFuIGhvdXIgdGltZXMpCiAgICAgIC8vIE0xIDk6MzAgKHdpZHRoIDMwKSDihpIgeD05MDsgTTIgMTA6MzAgKHdpZHRoIDYwKSDihpIgeD0xNTA7IE0zIDEyOjAwICh3aWR0aCAzMCkg4oaSIHg9MjQwCiAgICAgIGNvbnN0IG0xRmluYWwgPSB7IHg6IDkwLCB5OiAyMzIgfTsKICAgICAgY29uc3QgbTJGaW5hbCA9IHsgeDogMTUwLCB5OiAyMzIgfTsKICAgICAgY29uc3QgbTNGaW5hbCA9IHsgeDogMjQwLCB5OiAyMzIgfTsKCiAgICAgIC8vIFJlb3JkZXIgcGhhc2U6IHQ9MjMwMC0zNTAwCiAgICAgIGNvbnN0IHJlb3JkZXJQID0gZW8obm9ybSh0LCAyMzAwLCAzNTAwKSk7CgogICAgICBjb25zdCBtMVggPSBsZXJwKG0xSW5pdGlhbC54LCBtMUZpbmFsLngsIHJlb3JkZXJQKTsKICAgICAgY29uc3QgbTFZID0gbGVycChtMUluaXRpYWwueSwgbTFGaW5hbC55LCByZW9yZGVyUCk7CiAgICAgIGNvbnN0IG0yWCA9IGxlcnAobTJJbml0aWFsLngsIG0yRmluYWwueCwgcmVvcmRlclApOwogICAgICBjb25zdCBtMlkgPSBsZXJwKG0ySW5pdGlhbC55LCBtMkZpbmFsLnksIHJlb3JkZXJQKTsKICAgICAgY29uc3QgbTNYID0gbGVycChtM0luaXRpYWwueCwgbTNGaW5hbC54LCByZW9yZGVyUCk7CiAgICAgIGNvbnN0IG0zWSA9IGxlcnAobTNJbml0aWFsLnksIG0zRmluYWwueSwgcmVvcmRlclApOwoKICAgICAgc2V0VHJhbnNmb3JtKHM0TTEsIGB0cmFuc2xhdGUoJHttMVh9LCR7bTFZfSlgKTsKICAgICAgc2V0VHJhbnNmb3JtKHM0TTIsIGB0cmFuc2xhdGUoJHttMlh9LCR7bTJZfSlgKTsKICAgICAgc2V0VHJhbnNmb3JtKHM0TTMsIGB0cmFuc2xhdGUoJHttM1h9LCR7bTNZfSlgKTsKCiAgICAgIHNldE9wKHM0TTEsIG0xSW5QKTsKICAgICAgc2V0T3AoczRNMiwgbTJJblApOwogICAgICBzZXRPcChzNE0zLCBtM0luUCk7CgogICAgICAvLyBOb3RpZmljYXRpb24gZG90cyByYWRpYXRlIG91dHdhcmQgZnJvbSBlYWNoIG1lZXRpbmcgYWZ0ZXIgcmVvcmRlcgogICAgICAvLyBOb3RpZmljYXRpb24gYmFzZSB4ID0gbWVldGluZyBibG9jayBjZW50ZXIKICAgICAgY29uc3Qgbm90aWYxQXBwZWFyVCA9IDMyMDA7CiAgICAgIGNvbnN0IG5vdGlmMkFwcGVhclQgPSAzNDAwOwogICAgICBjb25zdCBub3RpZjNBcHBlYXJUID0gMzYwMDsKCiAgICAgIFsKICAgICAgICB7IGVsOiBzNE5vdGlmMSwgYXBwZWFyVDogbm90aWYxQXBwZWFyVCwgYmFzZVBvczogeyB4OiBtMUZpbmFsLnggKyAxNSwgeTogbTFGaW5hbC55ICsgOCB9IH0sCiAgICAgICAgeyBlbDogczROb3RpZjIsIGFwcGVhclQ6IG5vdGlmMkFwcGVhclQsIGJhc2VQb3M6IHsgeDogbTJGaW5hbC54ICsgMzAsIHk6IG0yRmluYWwueSArIDggfSB9LAogICAgICAgIHsgZWw6IHM0Tm90aWYzLCBhcHBlYXJUOiBub3RpZjNBcHBlYXJULCBiYXNlUG9zOiB7IHg6IG0zRmluYWwueCArIDE1LCB5OiBtM0ZpbmFsLnkgKyA4IH0gfQogICAgICBdLmZvckVhY2goKG5vdGlmLCBpKSA9PiB7CiAgICAgICAgaWYodCA8IG5vdGlmLmFwcGVhclQpewogICAgICAgICAgc2V0T3Aobm90aWYuZWwsIDApOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICBjb25zdCBucCA9IG5vcm0odCwgbm90aWYuYXBwZWFyVCwgbm90aWYuYXBwZWFyVCArIDYwMCk7CiAgICAgICAgICBjb25zdCBueSA9IG5vdGlmLmJhc2VQb3MueSAtIGVvKG5wKSAqIDI0OwogICAgICAgICAgc2V0VHJhbnNmb3JtKG5vdGlmLmVsLCBgdHJhbnNsYXRlKCR7bm90aWYuYmFzZVBvcy54fSwke255fSlgKTsKICAgICAgICAgIC8vIEZhZGUgaW4gdGhlbiBvdXQgKG5vdGlmaWNhdGlvbiAicHVmZiIpCiAgICAgICAgICBsZXQgbm9wOwogICAgICAgICAgaWYobnAgPCAwLjQpIG5vcCA9IG5wIC8gMC40OwogICAgICAgICAgZWxzZSBub3AgPSAxIC0gKG5wIC0gMC40KSAvIDAuNjsKICAgICAgICAgIHNldE9wKG5vdGlmLmVsLCBub3ApOwogICAgICAgIH0KICAgICAgfSk7CgogICAgICAvLyBTdGF0dXMgdGV4dAogICAgICBzZXRPcChzNFN0YXR1czIsIGVvKG5vcm0odCwgMzcwMCwgNDIwMCkpKTsKICAgIH0KCiAgICAvKiDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZAKICAgICAgIFNDRU5FIDUg4oCUIEdSRUVOIMK3IFBJUEVMSU5FIFBST0NFU1NJTkcKICAgICAgIOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkCAqLwogICAgaWYoc0lkeCA9PT0gNCl7CiAgICAgIGNvbnN0IHQgPSBlIC0gU0MuczU7CiAgICAgIHNldE9wKHM1U3RhdHVzLCBlbyhub3JtKHQsIDIwMCwgODAwKSkpOwogICAgICB1cGRhdGVQdWxzZVJpbmcoczVQdWxzZVJpbmcsIHQsIDIwMCk7CiAgICAgIHNldE9wKHM1VGltZSwgZW8obm9ybSh0LCA0MDAsIDEwMDApKSk7CiAgICAgIHNldE9wKHM1Q2FwdGlvbiwgZW8obm9ybSh0LCA2MDAsIDEyMDApKSk7CiAgICAgIHNldE9wKHM1UGlwZWxpbmUsIGVvKG5vcm0odCwgODAwLCAxNDAwKSkpOwoKICAgICAgLy8gSXRlbXMgZmxvdyBpbiBjb250aW51b3VzbHksIGVhY2ggdHJhdmVscyBmcm9tIHg9NDAg4oaSIGl0cyB0YXJnZXQgc3RhZ2UKICAgICAgY29uc3QgRkxPV19TID0gMTIwMDsKICAgICAgY29uc3QgRkxPV19EVVIgPSA4MDA7CgogICAgICAvLyBUcmFjayBwZXItc3RhZ2UgY291bnRzCiAgICAgIGNvbnN0IHN0YWdlQ291bnRzID0gWzAsIDAsIDAsIDAsIDBdOwoKICAgICAgUzVfRkxPV19JVEVNUy5mb3JFYWNoKGl0ZW0gPT4gewogICAgICAgIGNvbnN0IHN0YXJ0VCA9IEZMT1dfUyArIGl0ZW0uZGVsYXk7CiAgICAgICAgY29uc3QgZW5kVCA9IHN0YXJ0VCArIEZMT1dfRFVSOwoKICAgICAgICBpZih0IDwgc3RhcnRUKXsKICAgICAgICAgIHNldE9wKGl0ZW0uZWwsIDApOwogICAgICAgIH0gZWxzZSBpZih0IDwgZW5kVCl7CiAgICAgICAgICBjb25zdCBwID0gbm9ybSh0LCBzdGFydFQsIGVuZFQpOwogICAgICAgICAgLy8gTGluZWFyIHRyYXZlbCBmcm9tIHg9NDAgdG8gdGFyZ2V0WCwgd2l0aCBzdWJ0bGUgYm93CiAgICAgICAgICBjb25zdCB4ID0gbGVycCg0MCwgaXRlbS50YXJnZXRYLCBlaW8ocCkpOwogICAgICAgICAgaXRlbS5lbC5zZXRBdHRyaWJ1dGUoJ2N4JywgU3RyaW5nKHgpKTsKICAgICAgICAgIC8vIENvbG9yIHNoaWZ0cyBiYXNlZCBvbiB0YXJnZXQgc3RhZ2UKICAgICAgICAgIGNvbnN0IHN0YWdlQ29sb3JzID0gWycjQzgxMDJFJywgJyNDODEwMkUnLCAnI0M4MTAyRScsICcjRDRBNTc0JywgJyNDODEwMkUnXTsKICAgICAgICAgIGl0ZW0uZWwuc2V0QXR0cmlidXRlKCdmaWxsJywgc3RhZ2VDb2xvcnNbaXRlbS5zdGFnZV0pOwogICAgICAgICAgLy8gRmFkZSBpbi9vdXQKICAgICAgICAgIGxldCBvcDsKICAgICAgICAgIGlmKHAgPCAwLjEpIG9wID0gcCAvIDAuMTsKICAgICAgICAgIGVsc2UgaWYocCA8IDAuODUpIG9wID0gMTsKICAgICAgICAgIGVsc2Ugb3AgPSAxIC0gKHAgLSAwLjg1KSAvIDAuMTU7CiAgICAgICAgICBzZXRPcChpdGVtLmVsLCBvcCk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIHNldE9wKGl0ZW0uZWwsIDApOwogICAgICAgICAgc3RhZ2VDb3VudHNbaXRlbS5zdGFnZV0rKzsKICAgICAgICB9CiAgICAgIH0pOwoKICAgICAgLy8gVXBkYXRlIGNvdW50IGRpc3BsYXlzCiAgICAgIHM1Q291bnRzLmZvckVhY2goKGNvdW50RWwsIGkpID0+IHsKICAgICAgICBjb3VudEVsLnRleHRDb250ZW50ID0gU3RyaW5nKHN0YWdlQ291bnRzW2ldKTsKICAgICAgfSk7CgogICAgICAvLyBUb3RhbCBwcm9jZXNzZWQKICAgICAgc2V0T3AoczVUb3RhbCwgZW8obm9ybSh0LCAxNDAwLCAxOTAwKSkpOwogICAgICBjb25zdCB0b3RhbERvbmUgPSBzdGFnZUNvdW50cy5yZWR1Y2UoKGEsIGIpID0+IGEgKyBiLCAwKTsKICAgICAgaWYodG90YWxEb25lID49IDI1KXsKICAgICAgICBzNVRvdGFsLnRleHRDb250ZW50ID0gJzI1IC8gMjUgcHJvY2Vzc2VkJzsKICAgICAgICBzNVRvdGFsLnNldEF0dHJpYnV0ZSgnZmlsbCcsICcjQzgxMDJFJyk7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgczVUb3RhbC50ZXh0Q29udGVudCA9IGAke3RvdGFsRG9uZX0gLyAyNSBwcm9jZXNzaW5n4oCmYDsKICAgICAgICBzNVRvdGFsLnNldEF0dHJpYnV0ZSgnZmlsbCcsICcjQzgxMDJFJyk7CiAgICAgIH0KICAgIH0KCiAgICAvKiDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZAKICAgICAgIFNDRU5FIDYg4oCUIFpFUk8gQ0xJRU5UIElNUEFDVAogICAgICAgCiAgICAgICBTZXF1ZW5jZToKICAgICAgICAgMOKAkzgwMG1zOiAgICBzdGF0dXMgKGdyZWVuICJaRVJPIElNUEFDVCIpICsgdGltZSBjaGlwCiAgICAgICAgIDYwMOKAkzEyMDBtczogc2VjdGlvbiBsYWJlbHMgSU5URVJOQUwgLyBFWFRFUk5BTAogICAgICAgICA4MDDigJMxNDAwbXM6IHZlcnRpY2FsIHNlcGFyYXRvcgogICAgICAgICAxMjAw4oCTMjAwMG1zOiBpbnRlcm5hbCB0YXNrIHRpbGVzIGZhZGUgaW4gKGFsbCBncmVlbiBkb3RzKQogICAgICAgICAyMDAw4oCTMjgwMG1zOiBleHRlcm5hbCBjbGllbnQgYXZhdGFycyBmYWRlIGluIChjYWxtIHN0YXRlKQogICAgICAgICAzMDAw4oCTMzYwMG1zOiBmb290ZXIgIlNhcmFoJ3MgYWJzZW5jZSDCtyBpbnZpc2libGUgZXh0ZXJuYWxseSIKICAgICAgIAogICAgICAgUmVkdWNlZCBtb3Rpb24gaW50ZW5zaXR5IOKAlCBvbmx5IHN1YnRsZSBicmVhdGhpbmcgb24gdGhlCiAgICAgICBjb21wb3NpdGlvbiAobm8gc2NhbiBsaW5lcyBvciBtb3ZpbmcgaXRlbXMpLgogICAgICAg4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQICovCiAgICBpZihzSWR4ID09PSA1KXsKICAgICAgY29uc3QgdCA9IGUgLSBTQy5zNjsKICAgICAgc2V0T3AoczZTdGF0dXMsIGVvKG5vcm0odCwgMjAwLCA4MDApKSk7CiAgICAgIHVwZGF0ZVB1bHNlUmluZyhzNlB1bHNlUmluZywgdCwgMjAwKTsKICAgICAgc2V0T3AoczZUaW1lLCBlbyhub3JtKHQsIDQwMCwgMTAwMCkpKTsKCiAgICAgIHNldE9wKHM2TGFiZWxJbnQsIGVvKG5vcm0odCwgNjAwLCAxMjAwKSkpOwogICAgICBzZXRPcChzNkxhYmVsRXh0LCBlbyhub3JtKHQsIDcwMCwgMTMwMCkpKTsKICAgICAgc2V0T3AoczZTZXAsIGVvKG5vcm0odCwgODAwLCAxNDAwKSkgKiAwLjYpOwoKICAgICAgc2V0T3AoczZJbnRlcm5hbCwgZW8obm9ybSh0LCAxMjAwLCAyMDAwKSkpOwogICAgICBzZXRPcChzNkV4dGVybmFsLCBlbyhub3JtKHQsIDIwMDAsIDI4MDApKSk7CgogICAgICBzZXRPcChzNkZvb3RlciwgZW8obm9ybSh0LCAzMDAwLCAzNjAwKSkpOwogICAgfQoKICAgIC8qIOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkAogICAgICAgU0NFTkUgNyDigJQgR1JFRU4gwrcgQ09NUExFVEUKICAgICAgIOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkCAqLwogICAgaWYoc0lkeCA9PT0gNil7CiAgICAgIGNvbnN0IHQgPSBlIC0gU0Muczc7CiAgICAgIHNldE9wKHM3U3RhdHVzLCBlbyhub3JtKHQsIDIwMCwgODAwKSkpOwogICAgICB1cGRhdGVQdWxzZVJpbmcoczdQdWxzZVJpbmcsIHQsIDIwMCk7CiAgICAgIHNldE9wKHM3VGltZSwgZW8obm9ybSh0LCA0MDAsIDEwMDApKSk7CgogICAgICAvLyBDYXJkIGZhZGVzIGluCiAgICAgIGNvbnN0IGNhcmRQID0gZW8obm9ybSh0LCA2MDAsIDE1MDApKTsKICAgICAgc2V0T3AoczdDYXJkLCBjYXJkUCk7CgogICAgICAvLyBTdGF0cyBhcHBlYXIgc2VxdWVudGlhbGx5CiAgICAgIHNldE9wKHM3U3RhdDEsIGVvKG5vcm0odCwgMTUwMCwgMjEwMCkpKTsKICAgICAgc2V0T3AoczdTdGF0MiwgZW8obm9ybSh0LCAxOTAwLCAyNTAwKSkpOwogICAgICBzZXRPcChzN1N0YXQzLCBlbyhub3JtKHQsIDIzMDAsIDI5MDApKSk7CiAgICAgIHNldE9wKHM3U3RhdDQsIGVvKG5vcm0odCwgMjcwMCwgMzMwMCkpKTsKCiAgICAgIC8vIEdsb3cgcmluZyBwdWxzZQogICAgICBpZih0ID49IDMwMDApewogICAgICAgIGNvbnN0IGdQID0gbm9ybSh0LCAzMDAwLCA1NTAwKTsKICAgICAgICBzZXRPcChzN0dsb3csIE1hdGguc2luKGdQICogTWF0aC5QSSkgKiAwLjU1KTsKICAgICAgfSBlbHNlIHsKICAgICAgICBzZXRPcChzN0dsb3csIDApOwogICAgICB9CiAgICB9CgogICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZyYW1lKTsKICB9CiAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZyYW1lKTsKfSkoKTsKPC9zY3JpcHQ+CjwvYm9keT48L2h0bWw+Cg=="];
var curSc=0,curSt=0,playing=true,timer=null,STEP=5500;
var loaded={};

function dec(b64){
  var bin=atob(b64),by=new Uint8Array(bin.length);
  for(var i=0;i<bin.length;i++) by[i]=bin.charCodeAt(i);
  return new TextDecoder('utf-8').decode(by);
}

var PH={red:'ph-red',transition:'ph-trans',gold:'ph-gold',green:'ph-green'};

// Build iframes once on load
var lbRight=document.getElementById('lb-right');
SC.forEach(function(_,i){
  var f=document.createElement('iframe');
  f.className='fr';f.id='fr-'+i;f.title='Scenario '+(i+1);
  lbRight.appendChild(f);
});
function loadAnim(i){
  if(loaded[i]) return; loaded[i]=1;
  var f=document.getElementById('fr-'+i);
  if(f) f.srcdoc=dec(AN[i]);
}
function showAnim(i){
  document.querySelectorAll('#lb-right .fr').forEach(function(f){f.classList.remove('on');});
  loadAnim(i);
  if(i+1<AN.length) loadAnim(i+1);
  var f=document.getElementById('fr-'+i);
  if(f) f.classList.add('on');
}

function el(id){return document.getElementById(id);}
var lbBody=el('lb-body'),pill=el('pill'),pillTxt=el('pill-txt'),
    hlEl=el('hl'),stEl=el('st'),dotsEl=el('dots'),pf=el('pf'),
    lbScen=el('lb-scen'),lbName=el('lb-name'),sCnt=el('s-cnt'),cCnt=el('c-cnt'),
    bPsc=el('b-psc'),bPst=el('b-pst'),bNst=el('b-nst'),bNsc=el('b-nsc'),bPause=el('b-pause'),
    cPsc=el('c-psc'),cPst=el('c-pst'),cNst=el('c-nst'),cNsc=el('c-nsc'),cPause=el('c-pause');

function render(si,sti,anim){
  var sc=SC[si],st=sc.steps[sti],pc=PH[st.phase]||'ph-red';
  function apply(){
    lbScen.textContent='Scenario '+sc.num;
    lbName.textContent=sc.title;
    lbBody.className='lb-body '+pc;
    pill.className='pill '+pc; pillTxt.textContent=st.label;
    setTimeout(function(){pill.classList.add('show');},10);
    hlEl.innerHTML=st.hl;
    setTimeout(function(){hlEl.classList.add('show');},10);
    stEl.textContent=st.sub||'';
    setTimeout(function(){stEl.classList.add('show');},10);
    dotsEl.innerHTML='';
    sc.steps.forEach(function(s2,j){
      var d=document.createElement('button'),ph2=s2.phase||'red';
      d.className=j===sti?'dot cur':ph2==='transition'?'dot trans':(ph2==='gold'||ph2==='green')?'dot adj':'dot chat';
      d.addEventListener('click',function(){goto(si,j);});
      dotsEl.appendChild(d);
    });
    setTimeout(function(){dotsEl.classList.add('show');},10);
    var cnt=(sti+1)+'/'+sc.steps.length;
    sCnt.textContent=cnt; cCnt.textContent=cnt;
    [bPsc,cPsc].forEach(function(b){b.classList.toggle('off',si===0);});
    [bNsc,cNsc].forEach(function(b){b.classList.toggle('off',si===SC.length-1);});
    [bPst,cPst].forEach(function(b){b.classList.toggle('off',sti===0);});
    [bNst,cNst].forEach(function(b){b.classList.toggle('off',sti===sc.steps.length-1);});
  }
  if(anim){[pill,hlEl,stEl,dotsEl].forEach(function(e){e.classList.remove('show');});setTimeout(apply,200);}
  else{apply();}
}

function goto(si,sti){curSc=si;curSt=sti;render(si,sti,true);showAnim(si);startProg();sched();}

// PUBLIC: called by Elementor card buttons — window.adjOpen(index)
window.adjOpen=function(i){
  i=parseInt(i,10)||0;
  curSc=i;curSt=0;
  if(!playing){playing=true;[bPause,cPause].forEach(function(b){b.textContent='\u258e\u258e';});}
  render(i,0,false);showAnim(i);
  el('lb').classList.add('open');
  document.body.style.overflow='hidden';
  startProg();sched();
};

function closeLb(){el('lb').classList.remove('open');document.body.style.overflow='';stop();}
function sched(){stop();if(!playing)return;timer=setTimeout(function(){var sc=SC[curSc];if(curSt<sc.steps.length-1)goto(curSc,curSt+1);else if(curSc<SC.length-1)goto(curSc+1,0);else goto(0,0);},STEP);}
function stop(){if(timer){clearTimeout(timer);timer=null;}}
function startProg(){pf.style.transition='none';pf.style.width='0%';requestAnimationFrame(function(){requestAnimationFrame(function(){pf.style.transition='width '+STEP+'ms linear';pf.style.width='100%';});});}
function togglePlay(){playing=!playing;var i=playing?'\u258e\u258e':'\u25b6';[bPause,cPause].forEach(function(b){b.textContent=i;});if(playing){startProg();sched();}else{stop();pf.style.transition='none';}}

el('b-close').addEventListener('click',closeLb);
el('lb').addEventListener('click',function(e){if(e.target===el('lb'))closeLb();});
[bPst,cPst].forEach(function(b){b.addEventListener('click',function(){if(curSt>0)goto(curSc,curSt-1);});});
[bNst,cNst].forEach(function(b){b.addEventListener('click',function(){if(curSt<SC[curSc].steps.length-1)goto(curSc,curSt+1);});});
[bPsc,cPsc].forEach(function(b){b.addEventListener('click',function(){if(curSc>0)goto(curSc-1,0);});});
[bNsc,cNsc].forEach(function(b){b.addEventListener('click',function(){if(curSc<SC.length-1)goto(curSc+1,0);});});
[bPause,cPause].forEach(function(b){b.addEventListener('click',togglePlay);});
document.addEventListener('keydown',function(e){
  if(!el('lb').classList.contains('open'))return;
  if(e.key==='Escape')closeLb();
  if(e.key==='ArrowRight'){e.preventDefault();if(curSt<SC[curSc].steps.length-1)goto(curSc,curSt+1);}
  if(e.key==='ArrowLeft'){e.preventDefault();if(curSt>0)goto(curSc,curSt-1);}
  if(e.key===' '){e.preventDefault();togglePlay();}
});
</script>

<script>
// Auto-wire Elementor scenario cards → adjOpen()
// Finds headings matching "Scenario 01 →" through "Scenario 10 →"
// and makes their parent card section clickable
(function wire(){
  function attach(){
    var headings = Array.from(document.querySelectorAll('.elementor-heading-title'));
    var wired = 0;
    headings.forEach(function(h){
      var m = h.textContent.trim().match(/Scenario\s+(\d+)/i);
      if(!m) return;
      var idx = parseInt(m[1], 10) - 1; // 0-based index
      // Walk up 6 levels to the inner-section container (the card)
      var card = h;
      for(var i=0;i<6;i++) card = card.parentElement;
      if(card && !card._adjWired){
        card._adjWired = true;
        card.style.cursor = 'pointer';
        card.addEventListener('click', function(e){
          e.preventDefault();
          if(typeof window.adjOpen === 'function') window.adjOpen(idx);
        });
        wired++;
      }
    });
    return wired;
  }

  // Try immediately, then on DOMContentLoaded, then after a short delay
  // (Elementor sometimes renders widgets late)
  if(document.readyState === 'loading'){
    document.addEventListener('DOMContentLoaded', function(){ attach(); setTimeout(attach, 800); });
  } else {
    attach();
    setTimeout(attach, 800);
  }
})();
</script>

</body>
</html>/* End custom CSS */
/* Start custom CSS for section, class: .elementor-element-304d882 */.elementor-column.elementor-col-50, .elementor-column[data-col="50"] {
        width: 50%;
        margin: 0px 12px 0px 12px;
    }/* End custom CSS */