@import url(https://fonts.googleapis.com/css?family=Exo+2:300,700|Lobster&display=swap&subset=latin-ext);
/*!
 * # Semantic UI - Reset
 * http://github.com/semantic-org/semantic-ui/
 *
 *
 * Released under the MIT license
 * http://opensource.org/licenses/MIT
 *
 */
*,
*:before,
*:after{
  box-sizing:inherit;
}
html{
  box-sizing:border-box;
}
input[type="text"],
input[type="email"],
input[type="search"],
input[type="password"]{
  -webkit-appearance:none;
  -moz-appearance:none;
}
/*! normalize.css v7.0.0 | MIT License | github.com/necolas/normalize.css */
html{
  line-height:1.15;
  -ms-text-size-adjust:100%;
  -webkit-text-size-adjust:100%;
}
body{
  margin:0;
}
article,
aside,
footer,
header,
nav,
section{
  display:block;
}
h1{
  font-size:2em;
  margin:0.67em 0;
}
figcaption,
figure,
main{
  display:block;
}
figure{
  margin:1em 40px;
}
hr{
  box-sizing:content-box;
  height:0;
  overflow:visible;
}
pre{
  font-family:monospace, monospace;
  font-size:1em;
}
a{
  background-color:transparent;
  -webkit-text-decoration-skip:objects;
}
abbr[title]{
  border-bottom:none;
  text-decoration:underline;
  -webkit-text-decoration:underline dotted;
          text-decoration:underline dotted;
}
b,
strong{
  font-weight:inherit;
}
b,
strong{
  font-weight:bolder;
}
code,
kbd,
samp{
  font-family:monospace, monospace;
  font-size:1em;
}
dfn{
  font-style:italic;
}
mark{
  background-color:#ff0;
  color:#000;
}
small{
  font-size:80%;
}
sub,
sup{
  font-size:75%;
  line-height:0;
  position:relative;
  vertical-align:baseline;
}
sub{
  bottom:-0.25em;
}
sup{
  top:-0.5em;
}
audio,
video{
  display:inline-block;
}
audio:not([controls]){
  display:none;
  height:0;
}
img{
  border-style:none;
}
svg:not(:root){
  overflow:hidden;
}
button,
input,
optgroup,
select,
textarea{
  font-family:sans-serif;
  font-size:100%;
  line-height:1.15;
  margin:0;
}
button,
input{
  overflow:visible;
}
button,
select{
  text-transform:none;
}
button,
html [type="button"],
[type="reset"],
[type="submit"]{
  -webkit-appearance:button;
}
button::-moz-focus-inner,
[type="button"]::-moz-focus-inner,
[type="reset"]::-moz-focus-inner,
[type="submit"]::-moz-focus-inner{
  border-style:none;
  padding:0;
}
button:-moz-focusring,
[type="button"]:-moz-focusring,
[type="reset"]:-moz-focusring,
[type="submit"]:-moz-focusring{
  outline:1px dotted ButtonText;
}
fieldset{
  padding:0.35em 0.75em 0.625em;
}
legend{
  box-sizing:border-box;
  color:inherit;
  display:table;
  max-width:100%;
  padding:0;
  white-space:normal;
}
progress{
  display:inline-block;
  vertical-align:baseline;
}
textarea{
  overflow:auto;
}
[type="checkbox"],
[type="radio"]{
  box-sizing:border-box;
  padding:0;
}
[type="number"]::-webkit-inner-spin-button,
[type="number"]::-webkit-outer-spin-button{
  height:auto;
}
[type="search"]{
  -webkit-appearance:textfield;
  outline-offset:-2px;
}
[type="search"]::-webkit-search-cancel-button,
[type="search"]::-webkit-search-decoration{
  -webkit-appearance:none;
}
::-webkit-file-upload-button{
  -webkit-appearance:button;
  font:inherit;
}
details,
menu{
  display:block;
}
summary{
  display:list-item;
}
canvas{
  display:inline-block;
}
template{
  display:none;
}
[hidden]{
  display:none;
}
/*!
 * # Semantic UI - Site
 * http://github.com/semantic-org/semantic-ui/
 *
 *
 * Released under the MIT license
 * http://opensource.org/licenses/MIT
 *
 */
html,
body{
  height:100%;
}
html{
  font-size:10px;
}
body{
  margin:0px;
  padding:0px;
  overflow-x:hidden;
  min-width:320px;
  background:#FFFFFF;
  font-family:'Exo 2', 'Lato', Arial, Helvetica, sans-serif;
  font-size:16px;
  line-height:1.4285em;
  color:#333333;
  font-smoothing:antialiased;
}
h1,
h2,
h3,
h4,
h5{
  font-family:'Exo 2', 'Lato', Arial, Helvetica, sans-serif;
  line-height:1.28571429em;
  margin:calc(2rem - 0.1428571428571429em) 0em 1rem;
  font-weight:bold;
  padding:0em;
}
h1{
  min-height:1rem;
  font-size:3rem;
}
h2{
  font-size:2.5rem;
}
h3{
  font-size:2rem;
}
h4{
  font-size:1.6rem;
}
h5{
  font-size:1.4rem;
}
h1:first-child,
h2:first-child,
h3:first-child,
h4:first-child,
h5:first-child{
  margin-top:0em;
}
h1:last-child,
h2:last-child,
h3:last-child,
h4:last-child,
h5:last-child{
  margin-bottom:0em;
}
p{
  margin:0em 0em 1em;
  line-height:1.4285em;
}
p:first-child{
  margin-top:0em;
}
p:last-child{
  margin-bottom:0em;
}
a{
  color:#4183C4;
  text-decoration:none;
}
a:hover{
  color:#1e70bf;
  text-decoration:none;
}
::-webkit-selection{
  background-color:#CCE2FF;
  color:#333333;
}
::-moz-selection{
  background-color:#CCE2FF;
  color:#333333;
}
::selection{
  background-color:#CCE2FF;
  color:#333333;
}
textarea::-webkit-selection,
input::-webkit-selection{
  background-color:rgba(100, 100, 100, 0.4);
  color:#333333;
}
textarea::-moz-selection,
input::-moz-selection{
  background-color:rgba(100, 100, 100, 0.4);
  color:#333333;
}
textarea::-moz-selection, input::-moz-selection{
  background-color:rgba(100, 100, 100, 0.4);
  color:#333333;
}
textarea::selection,
input::selection{
  background-color:rgba(100, 100, 100, 0.4);
  color:#333333;
}
/*!
 * # Semantic UI - Button
 * http://github.com/semantic-org/semantic-ui/
 *
 *
 * Released under the MIT license
 * http://opensource.org/licenses/MIT
 *
 */
.ui.button{
  cursor:pointer;
  display:inline-block;
  min-height:1em;
  outline:none;
  border:none;
  vertical-align:baseline;
  background:#E0E1E2 none;
  color:rgba(0, 0, 0, 0.6);
  font-family:'Exo 2', 'Lato', Arial, Helvetica, sans-serif;
  margin:0em 0.25em 0em 0em;
  padding:1.1em 1.5em 1.1em;
  text-transform:none;
  text-shadow:none;
  font-weight:bold;
  line-height:1em;
  font-style:normal;
  text-align:center;
  text-decoration:none;
  border-radius:0.4rem;
  box-shadow:0px 0px 0px 1px transparent inset, 0px 0em 0px 0px rgba(34, 36, 38, 0.15) inset;
  -webkit-user-select:none;
     -moz-user-select:none;
      -ms-user-select:none;
          user-select:none;
  transition:opacity 0.1s ease, background-color 0.1s ease, color 0.1s ease, box-shadow 0.1s ease, background 0.1s ease;
  will-change:'';
  -webkit-tap-highlight-color:transparent;
}
.ui.button:hover{
  background-color:#CACBCD;
  background-image:none;
  box-shadow:0px 0px 0px 1px transparent inset, 0px 0em 0px 0px rgba(34, 36, 38, 0.15) inset;
  color:rgba(0, 0, 0, 0.8);
}
.ui.button:hover .icon{
  opacity:0.85;
}
.ui.button:focus{
  background-color:#CACBCD;
  color:rgba(0, 0, 0, 0.8);
  background-image:'' !important;
  box-shadow:'' !important;
}
.ui.button:focus .icon{
  opacity:0.85;
}
.ui.button:active,
.ui.active.button:active{
  background-color:#BABBBC;
  background-image:'';
  color:rgba(0, 0, 0, 0.9);
  box-shadow:0px 0px 0px 1px transparent inset, none;
}
.ui.active.button{
  background-color:#C0C1C2;
  background-image:none;
  box-shadow:0px 0px 0px 1px transparent inset;
  color:rgba(0, 0, 0, 0.95);
}
.ui.active.button:hover{
  background-color:#C0C1C2;
  background-image:none;
  color:rgba(0, 0, 0, 0.95);
}
.ui.active.button:active{
  background-color:#C0C1C2;
  background-image:none;
}
.ui.loading.loading.loading.loading.loading.loading.button{
  position:relative;
  cursor:default;
  text-shadow:none !important;
  color:transparent !important;
  opacity:1;
  pointer-events:auto;
  transition:all 0s linear, opacity 0.1s ease;
}
.ui.loading.button:before{
  position:absolute;
  content:'';
  top:50%;
  left:50%;
  margin:-0.65em 0em 0em -0.65em;
  width:1.3em;
  height:1.3em;
  border-radius:500rem;
  border:0.2em solid rgba(0, 0, 0, 0.15);
}
.ui.loading.button:after{
  position:absolute;
  content:'';
  top:50%;
  left:50%;
  margin:-0.65em 0em 0em -0.65em;
  width:1.3em;
  height:1.3em;
  animation:button-spin 0.6s linear;
  animation-iteration-count:infinite;
  border-radius:500rem;
  border-color:#ffffff transparent transparent;
  border-style:solid;
  border-width:0.2em;
  box-shadow:0px 0px 0px 1px transparent;
}
.ui.labeled.icon.loading.button .icon{
  background-color:transparent;
  box-shadow:none;
}
@keyframes button-spin{
  from{
    transform:rotate(0deg);
  }
  to{
    transform:rotate(360deg);
  }
}
.ui.basic.loading.button:not(.inverted):before{
  border-color:rgba(0, 0, 0, 0.1);
}
.ui.basic.loading.button:not(.inverted):after{
  border-top-color:#767676;
}
.ui.buttons .disabled.button,
.ui.disabled.button,
.ui.button:disabled,
.ui.disabled.button:hover,
.ui.disabled.active.button{
  cursor:default;
  opacity:0.45 !important;
  background-image:none !important;
  box-shadow:none !important;
  pointer-events:none !important;
}
.ui.basic.buttons .ui.disabled.button{
  border-color:rgba(34, 36, 38, 0.5);
}
.ui.animated.button{
  position:relative;
  overflow:hidden;
  padding-right:0em !important;
  vertical-align:middle;
  z-index:1;
}
.ui.animated.button .content{
  will-change:transform, opacity;
}
.ui.animated.button .visible.content{
  position:relative;
  margin-right:1.5em;
}
.ui.animated.button .hidden.content{
  position:absolute;
  width:100%;
}
.ui.animated.button .visible.content,
.ui.animated.button .hidden.content{
  transition:right 0.3s ease 0s;
}
.ui.animated.button .visible.content{
  left:auto;
  right:0%;
}
.ui.animated.button .hidden.content{
  top:50%;
  left:auto;
  right:-100%;
  margin-top:-0.5em;
}
.ui.animated.button:focus .visible.content,
.ui.animated.button:hover .visible.content{
  left:auto;
  right:200%;
}
.ui.animated.button:focus .hidden.content,
.ui.animated.button:hover .hidden.content{
  left:auto;
  right:0%;
}
.ui.vertical.animated.button .visible.content,
.ui.vertical.animated.button .hidden.content{
  transition:top 0.3s ease, transform 0.3s ease;
}
.ui.vertical.animated.button .visible.content{
  transform:translateY(0%);
  right:auto;
}
.ui.vertical.animated.button .hidden.content{
  top:-50%;
  left:0%;
  right:auto;
}
.ui.vertical.animated.button:focus .visible.content,
.ui.vertical.animated.button:hover .visible.content{
  transform:translateY(200%);
  right:auto;
}
.ui.vertical.animated.button:focus .hidden.content,
.ui.vertical.animated.button:hover .hidden.content{
  top:50%;
  right:auto;
}
.ui.fade.animated.button .visible.content,
.ui.fade.animated.button .hidden.content{
  transition:opacity 0.3s ease, transform 0.3s ease;
}
.ui.fade.animated.button .visible.content{
  left:auto;
  right:auto;
  opacity:1;
  transform:scale(1);
}
.ui.fade.animated.button .hidden.content{
  opacity:0;
  left:0%;
  right:auto;
  transform:scale(1.5);
}
.ui.fade.animated.button:focus .visible.content,
.ui.fade.animated.button:hover .visible.content{
  left:auto;
  right:auto;
  opacity:0;
  transform:scale(0.75);
}
.ui.fade.animated.button:focus .hidden.content,
.ui.fade.animated.button:hover .hidden.content{
  left:0%;
  right:auto;
  opacity:1;
  transform:scale(1);
}
.ui.inverted.button{
  box-shadow:0px 0px 0px 2px #ffffff inset !important;
  background:transparent none;
  color:#ffffff;
  text-shadow:none !important;
}
.ui.inverted.buttons .button{
  margin:0px 0px 0px -2px;
}
.ui.inverted.buttons .button:first-child{
  margin-left:0em;
}
.ui.inverted.vertical.buttons .button{
  margin:0px 0px -2px 0px;
}
.ui.inverted.vertical.buttons .button:first-child{
  margin-top:0em;
}
.ui.inverted.button:hover{
  background:#ffffff;
  box-shadow:0px 0px 0px 2px #ffffff inset !important;
  color:rgba(0, 0, 0, 0.8);
}
.ui.inverted.button:focus,
.ui.inverted.button.active{
  background:#ffffff;
  box-shadow:0px 0px 0px 2px #ffffff inset !important;
  color:rgba(0, 0, 0, 0.8);
}
.ui.inverted.button.active:focus{
  background:#DCDDDE;
  box-shadow:0px 0px 0px 2px #DCDDDE inset !important;
  color:rgba(0, 0, 0, 0.8);
}
.ui.labeled.button:not(.icon){
  display:inline-flex;
  flex-direction:row;
  background:none !important;
  padding:0px !important;
  border:none !important;
  box-shadow:none !important;
}
.ui.labeled.button > .button{
  margin:0px;
}
.ui.labeled.button > .label{
  display:flex;
  align-items:center;
  margin:0px 0px 0px -1px !important;
  padding:'';
  font-size:1em;
  border-color:rgba(34, 36, 38, 0.15);
}
.ui.labeled.button > .tag.label:before{
  width:1.85em;
  height:1.85em;
}
.ui.labeled.button:not([class*="left labeled"]) > .button{
  border-top-right-radius:0px;
  border-bottom-right-radius:0px;
}
.ui.labeled.button:not([class*="left labeled"]) > .label{
  border-top-left-radius:0px;
  border-bottom-left-radius:0px;
}
.ui[class*="left labeled"].button > .button{
  border-top-left-radius:0px;
  border-bottom-left-radius:0px;
}
.ui[class*="left labeled"].button > .label{
  border-top-right-radius:0px;
  border-bottom-right-radius:0px;
}
.ui.facebook.button{
  background-color:#3B5998;
  color:#ffffff;
  text-shadow:none;
  background-image:none;
  box-shadow:0px 0em 0px 0px rgba(34, 36, 38, 0.15) inset;
}
.ui.facebook.button:hover{
  background-color:#304d8a;
  color:#ffffff;
  text-shadow:none;
}
.ui.facebook.button:active{
  background-color:#2d4373;
  color:#ffffff;
  text-shadow:none;
}
.ui.twitter.button{
  background-color:#55ACEE;
  color:#ffffff;
  text-shadow:none;
  background-image:none;
  box-shadow:0px 0em 0px 0px rgba(34, 36, 38, 0.15) inset;
}
.ui.twitter.button:hover{
  background-color:#35a2f4;
  color:#ffffff;
  text-shadow:none;
}
.ui.twitter.button:active{
  background-color:#2795e9;
  color:#ffffff;
  text-shadow:none;
}
.ui.google.plus.button{
  background-color:#DD4B39;
  color:#ffffff;
  text-shadow:none;
  background-image:none;
  box-shadow:0px 0em 0px 0px rgba(34, 36, 38, 0.15) inset;
}
.ui.google.plus.button:hover{
  background-color:#e0321c;
  color:#ffffff;
  text-shadow:none;
}
.ui.google.plus.button:active{
  background-color:#c23321;
  color:#ffffff;
  text-shadow:none;
}
.ui.linkedin.button{
  background-color:#1F88BE;
  color:#ffffff;
  text-shadow:none;
}
.ui.linkedin.button:hover{
  background-color:#147baf;
  color:#ffffff;
  text-shadow:none;
}
.ui.linkedin.button:active{
  background-color:#186992;
  color:#ffffff;
  text-shadow:none;
}
.ui.youtube.button{
  background-color:#FF0000;
  color:#ffffff;
  text-shadow:none;
  background-image:none;
  box-shadow:0px 0em 0px 0px rgba(34, 36, 38, 0.15) inset;
}
.ui.youtube.button:hover{
  background-color:#e60000;
  color:#ffffff;
  text-shadow:none;
}
.ui.youtube.button:active{
  background-color:#cc0000;
  color:#ffffff;
  text-shadow:none;
}
.ui.instagram.button{
  background-color:#49769C;
  color:#ffffff;
  text-shadow:none;
  background-image:none;
  box-shadow:0px 0em 0px 0px rgba(34, 36, 38, 0.15) inset;
}
.ui.instagram.button:hover{
  background-color:#3d698e;
  color:#ffffff;
  text-shadow:none;
}
.ui.instagram.button:active{
  background-color:#395c79;
  color:#ffffff;
  text-shadow:none;
}
.ui.pinterest.button{
  background-color:#BD081C;
  color:#ffffff;
  text-shadow:none;
  background-image:none;
  box-shadow:0px 0em 0px 0px rgba(34, 36, 38, 0.15) inset;
}
.ui.pinterest.button:hover{
  background-color:#ac0013;
  color:#ffffff;
  text-shadow:none;
}
.ui.pinterest.button:active{
  background-color:#8c0615;
  color:#ffffff;
  text-shadow:none;
}
.ui.vk.button{
  background-color:#4D7198;
  color:#ffffff;
  background-image:none;
  box-shadow:0px 0em 0px 0px rgba(34, 36, 38, 0.15) inset;
}
.ui.vk.button:hover{
  background-color:#41648a;
  color:#ffffff;
}
.ui.vk.button:active{
  background-color:#3c5876;
  color:#ffffff;
}
.ui.button > .icon:not(.button){
  height:0.9em;
  opacity:0.8;
  margin:0em 0.6em 0em -0.3em;
  transition:opacity 0.1s ease;
  vertical-align:'';
  color:'';
}
.ui.button:not(.icon) > .icon:not(.button):not(.dropdown){
  margin:0em 0.6em 0em -0.3em;
}
.ui.button:not(.icon) > .right.icon:not(.button):not(.dropdown){
  margin:0em -0.3em 0em 0.6em;
}
.ui[class*="left floated"].buttons,
.ui[class*="left floated"].button{
  float:left;
  margin-left:0em;
  margin-right:0.25em;
}
.ui[class*="right floated"].buttons,
.ui[class*="right floated"].button{
  float:right;
  margin-right:0em;
  margin-left:0.25em;
}
.ui.compact.buttons .button,
.ui.compact.button{
  padding:0.825em 1.125em 0.825em;
}
.ui.compact.icon.buttons .button,
.ui.compact.icon.button{
  padding:0.825em 0.825em 0.825em;
}
.ui.compact.labeled.icon.buttons .button,
.ui.compact.labeled.icon.button{
  padding:0.825em 4.325em 0.825em;
}
.ui.mini.buttons .button,
.ui.mini.buttons .or,
.ui.mini.button{
  font-size:0.8rem;
}
.ui.tiny.buttons .button,
.ui.tiny.buttons .or,
.ui.tiny.button{
  font-size:0.9rem;
}
.ui.small.buttons .button,
.ui.small.buttons .or,
.ui.small.button{
  font-size:0.9rem;
}
.ui.buttons .button,
.ui.buttons .or,
.ui.button{
  font-size:1rem;
}
.ui.large.buttons .button,
.ui.large.buttons .or,
.ui.large.button{
  font-size:1.1rem;
}
.ui.big.buttons .button,
.ui.big.buttons .or,
.ui.big.button{
  font-size:1.3rem;
}
.ui.huge.buttons .button,
.ui.huge.buttons .or,
.ui.huge.button{
  font-size:1.4rem;
}
.ui.massive.buttons .button,
.ui.massive.buttons .or,
.ui.massive.button{
  font-size:1.7rem;
}
.ui.icon.buttons .button,
.ui.icon.button{
  padding:1.1em 1.1em 1.1em;
}
.ui.icon.buttons .button > .icon,
.ui.icon.button > .icon{
  opacity:0.9;
  margin:0em;
  vertical-align:top;
}
.ui.basic.buttons .button,
.ui.basic.button{
  background:transparent none !important;
  color:rgba(0, 0, 0, 0.6) !important;
  font-weight:normal;
  border-radius:0.4rem;
  text-transform:none;
  text-shadow:none !important;
  box-shadow:0px 0px 0px 1px rgba(34, 36, 38, 0.15) inset;
}
.ui.basic.buttons{
  box-shadow:none;
  border:1px solid rgba(34, 36, 38, 0.15);
  border-radius:0.4rem;
}
.ui.basic.buttons .button{
  border-radius:0em;
}
.ui.basic.buttons .button:hover,
.ui.basic.button:hover{
  background:#FFFFFF !important;
  color:rgba(0, 0, 0, 0.8) !important;
  box-shadow:0px 0px 0px 1px rgba(34, 36, 38, 0.35) inset, 0px 0px 0px 0px rgba(34, 36, 38, 0.15) inset;
}
.ui.basic.buttons .button:focus,
.ui.basic.button:focus{
  background:#FFFFFF !important;
  color:rgba(0, 0, 0, 0.8) !important;
  box-shadow:0px 0px 0px 1px rgba(34, 36, 38, 0.35) inset, 0px 0px 0px 0px rgba(34, 36, 38, 0.15) inset;
}
.ui.basic.buttons .button:active,
.ui.basic.button:active{
  background:#F8F8F8 !important;
  color:rgba(0, 0, 0, 0.9) !important;
  box-shadow:0px 0px 0px 1px rgba(0, 0, 0, 0.15) inset, 0px 1px 4px 0px rgba(34, 36, 38, 0.15) inset;
}
.ui.basic.buttons .active.button,
.ui.basic.active.button{
  background:rgba(0, 0, 0, 0.05) !important;
  box-shadow:'' !important;
  color:rgba(0, 0, 0, 0.95);
  box-shadow:rgba(34, 36, 38, 0.35);
}
.ui.basic.buttons .active.button:hover,
.ui.basic.active.button:hover{
  background-color:rgba(0, 0, 0, 0.05);
}
.ui.basic.buttons .button:hover{
  box-shadow:0px 0px 0px 1px rgba(34, 36, 38, 0.35) inset, 0px 0px 0px 0px rgba(34, 36, 38, 0.15) inset inset;
}
.ui.basic.buttons .button:active{
  box-shadow:0px 0px 0px 1px rgba(0, 0, 0, 0.15) inset, 0px 1px 4px 0px rgba(34, 36, 38, 0.15) inset inset;
}
.ui.basic.buttons .active.button{
  box-shadow:rgba(34, 36, 38, 0.35) inset;
}
.ui.basic.inverted.buttons .button,
.ui.basic.inverted.button{
  background-color:transparent !important;
  color:#F9FAFB !important;
  box-shadow:0px 0px 0px 2px rgba(255, 255, 255, 0.5) inset !important;
}
.ui.basic.inverted.buttons .button:hover,
.ui.basic.inverted.button:hover{
  color:#ffffff !important;
  box-shadow:0px 0px 0px 2px #ffffff inset !important;
}
.ui.basic.inverted.buttons .button:focus,
.ui.basic.inverted.button:focus{
  color:#ffffff !important;
  box-shadow:0px 0px 0px 2px #ffffff inset !important;
}
.ui.basic.inverted.buttons .button:active,
.ui.basic.inverted.button:active{
  background-color:rgba(255, 255, 255, 0.08) !important;
  color:#ffffff !important;
  box-shadow:0px 0px 0px 2px rgba(255, 255, 255, 0.9) inset !important;
}
.ui.basic.inverted.buttons .active.button,
.ui.basic.inverted.active.button{
  background-color:rgba(255, 255, 255, 0.08);
  color:#ffffff;
  text-shadow:none;
  box-shadow:0px 0px 0px 2px rgba(255, 255, 255, 0.7) inset;
}
.ui.basic.inverted.buttons .active.button:hover,
.ui.basic.inverted.active.button:hover{
  background-color:rgba(255, 255, 255, 0.15);
  box-shadow:0px 0px 0px 2px #ffffff inset !important;
}
.ui.basic.buttons .button{
  border-left:1px solid rgba(34, 36, 38, 0.15);
  box-shadow:none;
}
.ui.basic.vertical.buttons .button{
  border-left:none;
}
.ui.basic.vertical.buttons .button{
  border-left-width:0px;
  border-top:1px solid rgba(34, 36, 38, 0.15);
}
.ui.basic.vertical.buttons .button:first-child{
  border-top-width:0px;
}
.ui.labeled.icon.buttons .button,
.ui.labeled.icon.button{
  position:relative;
  padding-left:4.7em !important;
  padding-right:1.5em !important;
}
.ui.labeled.icon.buttons > .button > .icon,
.ui.labeled.icon.button > .icon{
  position:absolute;
  height:100%;
  line-height:1;
  border-radius:0px;
  border-top-left-radius:inherit;
  border-bottom-left-radius:inherit;
  text-align:center;
  margin:0em;
  width:3.2em;
  background-color:rgba(0, 0, 0, 0.05);
  color:'';
  box-shadow:-1px 0px 0px 0px transparent inset;
}
.ui.labeled.icon.buttons > .button > .icon,
.ui.labeled.icon.button > .icon{
  top:0em;
  left:0em;
}
.ui[class*="right labeled"].icon.button{
  padding-right:4.7em !important;
  padding-left:1.5em !important;
}
.ui[class*="right labeled"].icon.button > .icon{
  left:auto;
  right:0em;
  border-radius:0px;
  border-top-right-radius:inherit;
  border-bottom-right-radius:inherit;
  box-shadow:1px 0px 0px 0px transparent inset;
}
.ui.labeled.icon.buttons > .button > .icon:before,
.ui.labeled.icon.button > .icon:before,
.ui.labeled.icon.buttons > .button > .icon:after,
.ui.labeled.icon.button > .icon:after{
  display:block;
  position:absolute;
  width:100%;
  top:50%;
  text-align:center;
  transform:translateY(-50%);
}
.ui.labeled.icon.buttons .button > .icon{
  border-radius:0em;
}
.ui.labeled.icon.buttons .button:first-child > .icon{
  border-top-left-radius:0.4rem;
  border-bottom-left-radius:0.4rem;
}
.ui.labeled.icon.buttons .button:last-child > .icon{
  border-top-right-radius:0.4rem;
  border-bottom-right-radius:0.4rem;
}
.ui.vertical.labeled.icon.buttons .button:first-child > .icon{
  border-radius:0em;
  border-top-left-radius:0.4rem;
}
.ui.vertical.labeled.icon.buttons .button:last-child > .icon{
  border-radius:0em;
  border-bottom-left-radius:0.4rem;
}
.ui.fluid[class*="left labeled"].icon.button,
.ui.fluid[class*="right labeled"].icon.button{
  padding-left:1.5em !important;
  padding-right:1.5em !important;
}
.ui.toggle.buttons .active.button,
.ui.buttons .button.toggle.active,
.ui.button.toggle.active{
  background-color:#19a531 !important;
  box-shadow:none !important;
  text-shadow:none;
  color:#ffffff !important;
}
.ui.button.toggle.active:hover{
  background-color:#109526 !important;
  text-shadow:none;
  color:#ffffff !important;
}
.ui.circular.button{
  border-radius:10em;
}
.ui.circular.button > .icon{
  width:1em;
  vertical-align:baseline;
}
.ui.buttons .or{
  position:relative;
  width:0.3em;
  height:3.2em;
  z-index:3;
}
.ui.buttons .or:before{
  position:absolute;
  text-align:center;
  border-radius:500rem;
  content:'or';
  top:50%;
  left:50%;
  background-color:#ffffff;
  text-shadow:none;
  margin-top:-1.05em;
  margin-left:-1.05em;
  width:2.1em;
  height:2.1em;
  line-height:2.1em;
  color:rgba(0, 0, 0, 0.4);
  font-style:normal;
  font-weight:bold;
  box-shadow:0px 0px 0px 1px transparent inset;
}
.ui.buttons .or[data-text]:before{
  content:attr(data-text);
}
.ui.fluid.buttons .or{
  width:0em !important;
}
.ui.fluid.buttons .or:after{
  display:none;
}
.ui.attached.button{
  position:relative;
  display:block;
  margin:0em;
  border-radius:0em;
  box-shadow:0px 0px 0px 1px rgba(34, 36, 38, 0.15) !important;
}
.ui.attached.top.button{
  border-radius:0.4rem 0.4rem 0em 0em;
}
.ui.attached.bottom.button{
  border-radius:0em 0em 0.4rem 0.4rem;
}
.ui.left.attached.button{
  display:inline-block;
  border-left:none;
  text-align:right;
  padding-right:0.75em;
  border-radius:0.4rem 0em 0em 0.4rem;
}
.ui.right.attached.button{
  display:inline-block;
  text-align:left;
  padding-left:0.75em;
  border-radius:0em 0.4rem 0.4rem 0em;
}
.ui.attached.buttons{
  position:relative;
  display:flex;
  border-radius:0em;
  width:auto !important;
  z-index:2;
  margin-left:-1px;
  margin-right:-1px;
}
.ui.attached.buttons .button{
  margin:0em;
}
.ui.attached.buttons .button:first-child{
  border-radius:0em;
}
.ui.attached.buttons .button:last-child{
  border-radius:0em;
}
.ui[class*="top attached"].buttons{
  margin-bottom:-1px;
  border-radius:0.4rem 0.4rem 0em 0em;
}
.ui[class*="top attached"].buttons .button:first-child{
  border-radius:0.4rem 0em 0em 0em;
}
.ui[class*="top attached"].buttons .button:last-child{
  border-radius:0em 0.4rem 0em 0em;
}
.ui[class*="bottom attached"].buttons{
  margin-top:-1px;
  border-radius:0em 0em 0.4rem 0.4rem;
}
.ui[class*="bottom attached"].buttons .button:first-child{
  border-radius:0em 0em 0em 0.4rem;
}
.ui[class*="bottom attached"].buttons .button:last-child{
  border-radius:0em 0em 0.4rem 0em;
}
.ui[class*="left attached"].buttons{
  display:inline-flex;
  margin-right:0em;
  margin-left:-1px;
  border-radius:0em 0.4rem 0.4rem 0em;
}
.ui[class*="left attached"].buttons .button:first-child{
  margin-left:-1px;
  border-radius:0em 0.4rem 0em 0em;
}
.ui[class*="left attached"].buttons .button:last-child{
  margin-left:-1px;
  border-radius:0em 0em 0.4rem 0em;
}
.ui[class*="right attached"].buttons{
  display:inline-flex;
  margin-left:0em;
  margin-right:-1px;
  border-radius:0.4rem 0em 0em 0.4rem;
}
.ui[class*="right attached"].buttons .button:first-child{
  margin-left:-1px;
  border-radius:0.4rem 0em 0em 0em;
}
.ui[class*="right attached"].buttons .button:last-child{
  margin-left:-1px;
  border-radius:0em 0em 0em 0.4rem;
}
.ui.fluid.buttons,
.ui.fluid.button{
  width:100%;
}
.ui.fluid.button{
  display:block;
}
.ui.two.buttons{
  width:100%;
}
.ui.two.buttons > .button{
  width:50%;
}
.ui.three.buttons{
  width:100%;
}
.ui.three.buttons > .button{
  width:33.333%;
}
.ui.four.buttons{
  width:100%;
}
.ui.four.buttons > .button{
  width:25%;
}
.ui.five.buttons{
  width:100%;
}
.ui.five.buttons > .button{
  width:20%;
}
.ui.six.buttons{
  width:100%;
}
.ui.six.buttons > .button{
  width:16.666%;
}
.ui.seven.buttons{
  width:100%;
}
.ui.seven.buttons > .button{
  width:14.285%;
}
.ui.eight.buttons{
  width:100%;
}
.ui.eight.buttons > .button{
  width:12.5%;
}
.ui.nine.buttons{
  width:100%;
}
.ui.nine.buttons > .button{
  width:11.11%;
}
.ui.ten.buttons{
  width:100%;
}
.ui.ten.buttons > .button{
  width:10%;
}
.ui.eleven.buttons{
  width:100%;
}
.ui.eleven.buttons > .button{
  width:9.09%;
}
.ui.twelve.buttons{
  width:100%;
}
.ui.twelve.buttons > .button{
  width:8.3333%;
}
.ui.fluid.vertical.buttons,
.ui.fluid.vertical.buttons > .button{
  display:flex;
  width:auto;
}
.ui.two.vertical.buttons > .button{
  height:50%;
}
.ui.three.vertical.buttons > .button{
  height:33.333%;
}
.ui.four.vertical.buttons > .button{
  height:25%;
}
.ui.five.vertical.buttons > .button{
  height:20%;
}
.ui.six.vertical.buttons > .button{
  height:16.666%;
}
.ui.seven.vertical.buttons > .button{
  height:14.285%;
}
.ui.eight.vertical.buttons > .button{
  height:12.5%;
}
.ui.nine.vertical.buttons > .button{
  height:11.11%;
}
.ui.ten.vertical.buttons > .button{
  height:10%;
}
.ui.eleven.vertical.buttons > .button{
  height:9.09%;
}
.ui.twelve.vertical.buttons > .button{
  height:8.3333%;
}
.ui.black.buttons .button,
.ui.black.button{
  background-color:#000000;
  color:#ffffff;
  text-shadow:none;
  background-image:none;
}
.ui.black.button{
  box-shadow:0px 0em 0px 0px rgba(34, 36, 38, 0.15) inset;
}
.ui.black.buttons .button:hover,
.ui.black.button:hover{
  background-color:#0d0d0d;
  color:#ffffff;
  text-shadow:none;
}
.ui.black.buttons .button:focus,
.ui.black.button:focus{
  background-color:#141414;
  color:#ffffff;
  text-shadow:none;
}
.ui.black.buttons .button:active,
.ui.black.button:active{
  background-color:#1a1a1a;
  color:#ffffff;
  text-shadow:none;
}
.ui.black.buttons .active.button,
.ui.black.buttons .active.button:active,
.ui.black.active.button,
.ui.black.button .active.button:active{
  background-color:#000000;
  color:#ffffff;
  text-shadow:none;
}
.ui.basic.black.buttons .button,
.ui.basic.black.button{
  box-shadow:0px 0px 0px 1px #000000 inset !important;
  color:#000000 !important;
}
.ui.basic.black.buttons .button:hover,
.ui.basic.black.button:hover{
  background:transparent !important;
  box-shadow:0px 0px 0px 1px #0d0d0d inset !important;
  color:#0d0d0d !important;
}
.ui.basic.black.buttons .button:focus,
.ui.basic.black.button:focus{
  background:transparent !important;
  box-shadow:0px 0px 0px 1px #141414 inset !important;
  color:#0d0d0d !important;
}
.ui.basic.black.buttons .active.button,
.ui.basic.black.active.button{
  background:transparent !important;
  box-shadow:0px 0px 0px 1px #000000 inset !important;
  color:#1a1a1a !important;
}
.ui.basic.black.buttons .button:active,
.ui.basic.black.button:active{
  box-shadow:0px 0px 0px 1px #1a1a1a inset !important;
  color:#1a1a1a !important;
}
.ui.buttons:not(.vertical) > .basic.black.button:not(:first-child){
  margin-left:-1px;
}
.ui.inverted.black.buttons .button,
.ui.inverted.black.button{
  background-color:transparent;
  box-shadow:0px 0px 0px 2px #D4D4D5 inset !important;
  color:#ffffff;
}
.ui.inverted.black.buttons .button:hover,
.ui.inverted.black.button:hover,
.ui.inverted.black.buttons .button:focus,
.ui.inverted.black.button:focus,
.ui.inverted.black.buttons .button.active,
.ui.inverted.black.button.active,
.ui.inverted.black.buttons .button:active,
.ui.inverted.black.button:active{
  box-shadow:none !important;
  color:#ffffff;
}
.ui.inverted.black.buttons .button:hover,
.ui.inverted.black.button:hover{
  background-color:#000000;
}
.ui.inverted.black.buttons .button:focus,
.ui.inverted.black.button:focus{
  background-color:#000000;
}
.ui.inverted.black.buttons .active.button,
.ui.inverted.black.active.button{
  background-color:#000000;
}
.ui.inverted.black.buttons .button:active,
.ui.inverted.black.button:active{
  background-color:#000000;
}
.ui.inverted.black.basic.buttons .button,
.ui.inverted.black.buttons .basic.button,
.ui.inverted.black.basic.button{
  background-color:transparent;
  box-shadow:0px 0px 0px 2px rgba(255, 255, 255, 0.5) inset !important;
  color:#ffffff !important;
}
.ui.inverted.black.basic.buttons .button:hover,
.ui.inverted.black.buttons .basic.button:hover,
.ui.inverted.black.basic.button:hover{
  box-shadow:0px 0px 0px 2px #000000 inset !important;
  color:#ffffff !important;
}
.ui.inverted.black.basic.buttons .button:focus,
.ui.inverted.black.basic.buttons .button:focus,
.ui.inverted.black.basic.button:focus{
  box-shadow:0px 0px 0px 2px #000000 inset !important;
  color:#545454 !important;
}
.ui.inverted.black.basic.buttons .active.button,
.ui.inverted.black.buttons .basic.active.button,
.ui.inverted.black.basic.active.button{
  box-shadow:0px 0px 0px 2px #000000 inset !important;
  color:#ffffff !important;
}
.ui.inverted.black.basic.buttons .button:active,
.ui.inverted.black.buttons .basic.button:active,
.ui.inverted.black.basic.button:active{
  box-shadow:0px 0px 0px 2px #000000 inset !important;
  color:#ffffff !important;
}
.ui.grey.buttons .button,
.ui.grey.button{
  background-color:#767676;
  color:#ffffff;
  text-shadow:none;
  background-image:none;
}
.ui.grey.button{
  box-shadow:0px 0em 0px 0px rgba(34, 36, 38, 0.15) inset;
}
.ui.grey.buttons .button:hover,
.ui.grey.button:hover{
  background-color:#838383;
  color:#ffffff;
  text-shadow:none;
}
.ui.grey.buttons .button:focus,
.ui.grey.button:focus{
  background-color:#8a8a8a;
  color:#ffffff;
  text-shadow:none;
}
.ui.grey.buttons .button:active,
.ui.grey.button:active{
  background-color:#909090;
  color:#ffffff;
  text-shadow:none;
}
.ui.grey.buttons .active.button,
.ui.grey.buttons .active.button:active,
.ui.grey.active.button,
.ui.grey.button .active.button:active{
  background-color:#696969;
  color:#ffffff;
  text-shadow:none;
}
.ui.basic.grey.buttons .button,
.ui.basic.grey.button{
  box-shadow:0px 0px 0px 1px #767676 inset !important;
  color:#767676 !important;
}
.ui.basic.grey.buttons .button:hover,
.ui.basic.grey.button:hover{
  background:transparent !important;
  box-shadow:0px 0px 0px 1px #838383 inset !important;
  color:#838383 !important;
}
.ui.basic.grey.buttons .button:focus,
.ui.basic.grey.button:focus{
  background:transparent !important;
  box-shadow:0px 0px 0px 1px #8a8a8a inset !important;
  color:#838383 !important;
}
.ui.basic.grey.buttons .active.button,
.ui.basic.grey.active.button{
  background:transparent !important;
  box-shadow:0px 0px 0px 1px #696969 inset !important;
  color:#909090 !important;
}
.ui.basic.grey.buttons .button:active,
.ui.basic.grey.button:active{
  box-shadow:0px 0px 0px 1px #909090 inset !important;
  color:#909090 !important;
}
.ui.buttons:not(.vertical) > .basic.grey.button:not(:first-child){
  margin-left:-1px;
}
.ui.inverted.grey.buttons .button,
.ui.inverted.grey.button{
  background-color:transparent;
  box-shadow:0px 0px 0px 2px #D4D4D5 inset !important;
  color:#ffffff;
}
.ui.inverted.grey.buttons .button:hover,
.ui.inverted.grey.button:hover,
.ui.inverted.grey.buttons .button:focus,
.ui.inverted.grey.button:focus,
.ui.inverted.grey.buttons .button.active,
.ui.inverted.grey.button.active,
.ui.inverted.grey.buttons .button:active,
.ui.inverted.grey.button:active{
  box-shadow:none !important;
  color:rgba(0, 0, 0, 0.6);
}
.ui.inverted.grey.buttons .button:hover,
.ui.inverted.grey.button:hover{
  background-color:#cfd0d2;
}
.ui.inverted.grey.buttons .button:focus,
.ui.inverted.grey.button:focus{
  background-color:#c7c9cb;
}
.ui.inverted.grey.buttons .active.button,
.ui.inverted.grey.active.button{
  background-color:#cfd0d2;
}
.ui.inverted.grey.buttons .button:active,
.ui.inverted.grey.button:active{
  background-color:#c2c4c5;
}
.ui.inverted.grey.basic.buttons .button,
.ui.inverted.grey.buttons .basic.button,
.ui.inverted.grey.basic.button{
  background-color:transparent;
  box-shadow:0px 0px 0px 2px rgba(255, 255, 255, 0.5) inset !important;
  color:#ffffff !important;
}
.ui.inverted.grey.basic.buttons .button:hover,
.ui.inverted.grey.buttons .basic.button:hover,
.ui.inverted.grey.basic.button:hover{
  box-shadow:0px 0px 0px 2px #cfd0d2 inset !important;
  color:#ffffff !important;
}
.ui.inverted.grey.basic.buttons .button:focus,
.ui.inverted.grey.basic.buttons .button:focus,
.ui.inverted.grey.basic.button:focus{
  box-shadow:0px 0px 0px 2px #c7c9cb inset !important;
  color:#DCDDDE !important;
}
.ui.inverted.grey.basic.buttons .active.button,
.ui.inverted.grey.buttons .basic.active.button,
.ui.inverted.grey.basic.active.button{
  box-shadow:0px 0px 0px 2px #cfd0d2 inset !important;
  color:#ffffff !important;
}
.ui.inverted.grey.basic.buttons .button:active,
.ui.inverted.grey.buttons .basic.button:active,
.ui.inverted.grey.basic.button:active{
  box-shadow:0px 0px 0px 2px #c2c4c5 inset !important;
  color:#ffffff !important;
}
.ui.brown.buttons .button,
.ui.brown.button{
  background-color:#A5673F;
  color:#ffffff;
  text-shadow:none;
  background-image:none;
}
.ui.brown.button{
  box-shadow:0px 0em 0px 0px rgba(34, 36, 38, 0.15) inset;
}
.ui.brown.buttons .button:hover,
.ui.brown.button:hover{
  background-color:#975b33;
  color:#ffffff;
  text-shadow:none;
}
.ui.brown.buttons .button:focus,
.ui.brown.button:focus{
  background-color:#90532b;
  color:#ffffff;
  text-shadow:none;
}
.ui.brown.buttons .button:active,
.ui.brown.button:active{
  background-color:#805031;
  color:#ffffff;
  text-shadow:none;
}
.ui.brown.buttons .active.button,
.ui.brown.buttons .active.button:active,
.ui.brown.active.button,
.ui.brown.button .active.button:active{
  background-color:#995a31;
  color:#ffffff;
  text-shadow:none;
}
.ui.basic.brown.buttons .button,
.ui.basic.brown.button{
  box-shadow:0px 0px 0px 1px #A5673F inset !important;
  color:#A5673F !important;
}
.ui.basic.brown.buttons .button:hover,
.ui.basic.brown.button:hover{
  background:transparent !important;
  box-shadow:0px 0px 0px 1px #975b33 inset !important;
  color:#975b33 !important;
}
.ui.basic.brown.buttons .button:focus,
.ui.basic.brown.button:focus{
  background:transparent !important;
  box-shadow:0px 0px 0px 1px #90532b inset !important;
  color:#975b33 !important;
}
.ui.basic.brown.buttons .active.button,
.ui.basic.brown.active.button{
  background:transparent !important;
  box-shadow:0px 0px 0px 1px #995a31 inset !important;
  color:#805031 !important;
}
.ui.basic.brown.buttons .button:active,
.ui.basic.brown.button:active{
  box-shadow:0px 0px 0px 1px #805031 inset !important;
  color:#805031 !important;
}
.ui.buttons:not(.vertical) > .basic.brown.button:not(:first-child){
  margin-left:-1px;
}
.ui.inverted.brown.buttons .button,
.ui.inverted.brown.button{
  background-color:transparent;
  box-shadow:0px 0px 0px 2px #D67C1C inset !important;
  color:#D67C1C;
}
.ui.inverted.brown.buttons .button:hover,
.ui.inverted.brown.button:hover,
.ui.inverted.brown.buttons .button:focus,
.ui.inverted.brown.button:focus,
.ui.inverted.brown.buttons .button.active,
.ui.inverted.brown.button.active,
.ui.inverted.brown.buttons .button:active,
.ui.inverted.brown.button:active{
  box-shadow:none !important;
  color:#ffffff;
}
.ui.inverted.brown.buttons .button:hover,
.ui.inverted.brown.button:hover{
  background-color:#c86f11;
}
.ui.inverted.brown.buttons .button:focus,
.ui.inverted.brown.button:focus{
  background-color:#c16808;
}
.ui.inverted.brown.buttons .active.button,
.ui.inverted.brown.active.button{
  background-color:#cc6f0d;
}
.ui.inverted.brown.buttons .button:active,
.ui.inverted.brown.button:active{
  background-color:#a96216;
}
.ui.inverted.brown.basic.buttons .button,
.ui.inverted.brown.buttons .basic.button,
.ui.inverted.brown.basic.button{
  background-color:transparent;
  box-shadow:0px 0px 0px 2px rgba(255, 255, 255, 0.5) inset !important;
  color:#ffffff !important;
}
.ui.inverted.brown.basic.buttons .button:hover,
.ui.inverted.brown.buttons .basic.button:hover,
.ui.inverted.brown.basic.button:hover{
  box-shadow:0px 0px 0px 2px #c86f11 inset !important;
  color:#D67C1C !important;
}
.ui.inverted.brown.basic.buttons .button:focus,
.ui.inverted.brown.basic.buttons .button:focus,
.ui.inverted.brown.basic.button:focus{
  box-shadow:0px 0px 0px 2px #c16808 inset !important;
  color:#D67C1C !important;
}
.ui.inverted.brown.basic.buttons .active.button,
.ui.inverted.brown.buttons .basic.active.button,
.ui.inverted.brown.basic.active.button{
  box-shadow:0px 0px 0px 2px #cc6f0d inset !important;
  color:#D67C1C !important;
}
.ui.inverted.brown.basic.buttons .button:active,
.ui.inverted.brown.buttons .basic.button:active,
.ui.inverted.brown.basic.button:active{
  box-shadow:0px 0px 0px 2px #a96216 inset !important;
  color:#D67C1C !important;
}
.ui.blue.buttons .button,
.ui.blue.button{
  background-color:#3f51b5;
  color:#ffffff;
  text-shadow:none;
  background-image:none;
}
.ui.blue.button{
  box-shadow:0px 0em 0px 0px rgba(34, 36, 38, 0.15) inset;
}
.ui.blue.buttons .button:hover,
.ui.blue.button:hover{
  background-color:#3345a7;
  color:#ffffff;
  text-shadow:none;
}
.ui.blue.buttons .button:focus,
.ui.blue.button:focus{
  background-color:#2b3da1;
  color:#ffffff;
  text-shadow:none;
}
.ui.blue.buttons .button:active,
.ui.blue.button:active{
  background-color:#32408f;
  color:#ffffff;
  text-shadow:none;
}
.ui.blue.buttons .active.button,
.ui.blue.buttons .active.button:active,
.ui.blue.active.button,
.ui.blue.button .active.button:active{
  background-color:#3043aa;
  color:#ffffff;
  text-shadow:none;
}
.ui.basic.blue.buttons .button,
.ui.basic.blue.button{
  box-shadow:0px 0px 0px 1px #3f51b5 inset !important;
  color:#3f51b5 !important;
}
.ui.basic.blue.buttons .button:hover,
.ui.basic.blue.button:hover{
  background:transparent !important;
  box-shadow:0px 0px 0px 1px #3345a7 inset !important;
  color:#3345a7 !important;
}
.ui.basic.blue.buttons .button:focus,
.ui.basic.blue.button:focus{
  background:transparent !important;
  box-shadow:0px 0px 0px 1px #2b3da1 inset !important;
  color:#3345a7 !important;
}
.ui.basic.blue.buttons .active.button,
.ui.basic.blue.active.button{
  background:transparent !important;
  box-shadow:0px 0px 0px 1px #3043aa inset !important;
  color:#32408f !important;
}
.ui.basic.blue.buttons .button:active,
.ui.basic.blue.button:active{
  box-shadow:0px 0px 0px 1px #32408f inset !important;
  color:#32408f !important;
}
.ui.buttons:not(.vertical) > .basic.blue.button:not(:first-child){
  margin-left:-1px;
}
.ui.inverted.blue.buttons .button,
.ui.inverted.blue.button{
  background-color:transparent;
  box-shadow:0px 0px 0px 2px #54C8FF inset !important;
  color:#54C8FF;
}
.ui.inverted.blue.buttons .button:hover,
.ui.inverted.blue.button:hover,
.ui.inverted.blue.buttons .button:focus,
.ui.inverted.blue.button:focus,
.ui.inverted.blue.buttons .button.active,
.ui.inverted.blue.button.active,
.ui.inverted.blue.buttons .button:active,
.ui.inverted.blue.button:active{
  box-shadow:none !important;
  color:#ffffff;
}
.ui.inverted.blue.buttons .button:hover,
.ui.inverted.blue.button:hover{
  background-color:#3ac0ff;
}
.ui.inverted.blue.buttons .button:focus,
.ui.inverted.blue.button:focus{
  background-color:#2bbbff;
}
.ui.inverted.blue.buttons .active.button,
.ui.inverted.blue.active.button{
  background-color:#3ac0ff;
}
.ui.inverted.blue.buttons .button:active,
.ui.inverted.blue.button:active{
  background-color:#21b8ff;
}
.ui.inverted.blue.basic.buttons .button,
.ui.inverted.blue.buttons .basic.button,
.ui.inverted.blue.basic.button{
  background-color:transparent;
  box-shadow:0px 0px 0px 2px rgba(255, 255, 255, 0.5) inset !important;
  color:#ffffff !important;
}
.ui.inverted.blue.basic.buttons .button:hover,
.ui.inverted.blue.buttons .basic.button:hover,
.ui.inverted.blue.basic.button:hover{
  box-shadow:0px 0px 0px 2px #3ac0ff inset !important;
  color:#54C8FF !important;
}
.ui.inverted.blue.basic.buttons .button:focus,
.ui.inverted.blue.basic.buttons .button:focus,
.ui.inverted.blue.basic.button:focus{
  box-shadow:0px 0px 0px 2px #2bbbff inset !important;
  color:#54C8FF !important;
}
.ui.inverted.blue.basic.buttons .active.button,
.ui.inverted.blue.buttons .basic.active.button,
.ui.inverted.blue.basic.active.button{
  box-shadow:0px 0px 0px 2px #3ac0ff inset !important;
  color:#54C8FF !important;
}
.ui.inverted.blue.basic.buttons .button:active,
.ui.inverted.blue.buttons .basic.button:active,
.ui.inverted.blue.basic.button:active{
  box-shadow:0px 0px 0px 2px #21b8ff inset !important;
  color:#54C8FF !important;
}
.ui.green.buttons .button,
.ui.green.button{
  background-color:#19a531;
  color:#ffffff;
  text-shadow:none;
  background-image:none;
}
.ui.green.button{
  box-shadow:0px 0em 0px 0px rgba(34, 36, 38, 0.15) inset;
}
.ui.green.buttons .button:hover,
.ui.green.button:hover{
  background-color:#109526;
  color:#ffffff;
  text-shadow:none;
}
.ui.green.buttons .button:focus,
.ui.green.button:focus{
  background-color:#098d1f;
  color:#ffffff;
  text-shadow:none;
}
.ui.green.buttons .button:active,
.ui.green.button:active{
  background-color:#127924;
  color:#ffffff;
  text-shadow:none;
}
.ui.green.buttons .active.button,
.ui.green.buttons .active.button:active,
.ui.green.active.button,
.ui.green.button .active.button:active{
  background-color:#0d9824;
  color:#ffffff;
  text-shadow:none;
}
.ui.basic.green.buttons .button,
.ui.basic.green.button{
  box-shadow:0px 0px 0px 1px #19a531 inset !important;
  color:#19a531 !important;
}
.ui.basic.green.buttons .button:hover,
.ui.basic.green.button:hover{
  background:transparent !important;
  box-shadow:0px 0px 0px 1px #109526 inset !important;
  color:#109526 !important;
}
.ui.basic.green.buttons .button:focus,
.ui.basic.green.button:focus{
  background:transparent !important;
  box-shadow:0px 0px 0px 1px #098d1f inset !important;
  color:#109526 !important;
}
.ui.basic.green.buttons .active.button,
.ui.basic.green.active.button{
  background:transparent !important;
  box-shadow:0px 0px 0px 1px #0d9824 inset !important;
  color:#127924 !important;
}
.ui.basic.green.buttons .button:active,
.ui.basic.green.button:active{
  box-shadow:0px 0px 0px 1px #127924 inset !important;
  color:#127924 !important;
}
.ui.buttons:not(.vertical) > .basic.green.button:not(:first-child){
  margin-left:-1px;
}
.ui.inverted.green.buttons .button,
.ui.inverted.green.button{
  background-color:transparent;
  box-shadow:0px 0px 0px 2px #2ECC40 inset !important;
  color:#2ECC40;
}
.ui.inverted.green.buttons .button:hover,
.ui.inverted.green.button:hover,
.ui.inverted.green.buttons .button:focus,
.ui.inverted.green.button:focus,
.ui.inverted.green.buttons .button.active,
.ui.inverted.green.button.active,
.ui.inverted.green.buttons .button:active,
.ui.inverted.green.button:active{
  box-shadow:none !important;
  color:#ffffff;
}
.ui.inverted.green.buttons .button:hover,
.ui.inverted.green.button:hover{
  background-color:#22be34;
}
.ui.inverted.green.buttons .button:focus,
.ui.inverted.green.button:focus{
  background-color:#19b82b;
}
.ui.inverted.green.buttons .active.button,
.ui.inverted.green.active.button{
  background-color:#1fc231;
}
.ui.inverted.green.buttons .button:active,
.ui.inverted.green.button:active{
  background-color:#25a233;
}
.ui.inverted.green.basic.buttons .button,
.ui.inverted.green.buttons .basic.button,
.ui.inverted.green.basic.button{
  background-color:transparent;
  box-shadow:0px 0px 0px 2px rgba(255, 255, 255, 0.5) inset !important;
  color:#ffffff !important;
}
.ui.inverted.green.basic.buttons .button:hover,
.ui.inverted.green.buttons .basic.button:hover,
.ui.inverted.green.basic.button:hover{
  box-shadow:0px 0px 0px 2px #22be34 inset !important;
  color:#2ECC40 !important;
}
.ui.inverted.green.basic.buttons .button:focus,
.ui.inverted.green.basic.buttons .button:focus,
.ui.inverted.green.basic.button:focus{
  box-shadow:0px 0px 0px 2px #19b82b inset !important;
  color:#2ECC40 !important;
}
.ui.inverted.green.basic.buttons .active.button,
.ui.inverted.green.buttons .basic.active.button,
.ui.inverted.green.basic.active.button{
  box-shadow:0px 0px 0px 2px #1fc231 inset !important;
  color:#2ECC40 !important;
}
.ui.inverted.green.basic.buttons .button:active,
.ui.inverted.green.buttons .basic.button:active,
.ui.inverted.green.basic.button:active{
  box-shadow:0px 0px 0px 2px #25a233 inset !important;
  color:#2ECC40 !important;
}
.ui.orange.buttons .button,
.ui.orange.button{
  background-color:#ff9533;
  color:#ffffff;
  text-shadow:none;
  background-image:none;
}
.ui.orange.button{
  box-shadow:0px 0em 0px 0px rgba(34, 36, 38, 0.15) inset;
}
.ui.orange.buttons .button:hover,
.ui.orange.button:hover{
  background-color:#ff8819;
  color:#ffffff;
  text-shadow:none;
}
.ui.orange.buttons .button:focus,
.ui.orange.button:focus{
  background-color:#ff800a;
  color:#ffffff;
  text-shadow:none;
}
.ui.orange.buttons .button:active,
.ui.orange.button:active{
  background-color:#ff7b00;
  color:#ffffff;
  text-shadow:none;
}
.ui.orange.buttons .active.button,
.ui.orange.buttons .active.button:active,
.ui.orange.active.button,
.ui.orange.button .active.button:active{
  background-color:#ff8819;
  color:#ffffff;
  text-shadow:none;
}
.ui.basic.orange.buttons .button,
.ui.basic.orange.button{
  box-shadow:0px 0px 0px 1px #ff9533 inset !important;
  color:#ff9533 !important;
}
.ui.basic.orange.buttons .button:hover,
.ui.basic.orange.button:hover{
  background:transparent !important;
  box-shadow:0px 0px 0px 1px #ff8819 inset !important;
  color:#ff8819 !important;
}
.ui.basic.orange.buttons .button:focus,
.ui.basic.orange.button:focus{
  background:transparent !important;
  box-shadow:0px 0px 0px 1px #ff800a inset !important;
  color:#ff8819 !important;
}
.ui.basic.orange.buttons .active.button,
.ui.basic.orange.active.button{
  background:transparent !important;
  box-shadow:0px 0px 0px 1px #ff8819 inset !important;
  color:#ff7b00 !important;
}
.ui.basic.orange.buttons .button:active,
.ui.basic.orange.button:active{
  box-shadow:0px 0px 0px 1px #ff7b00 inset !important;
  color:#ff7b00 !important;
}
.ui.buttons:not(.vertical) > .basic.orange.button:not(:first-child){
  margin-left:-1px;
}
.ui.inverted.orange.buttons .button,
.ui.inverted.orange.button{
  background-color:transparent;
  box-shadow:0px 0px 0px 2px #FF851B inset !important;
  color:#FF851B;
}
.ui.inverted.orange.buttons .button:hover,
.ui.inverted.orange.button:hover,
.ui.inverted.orange.buttons .button:focus,
.ui.inverted.orange.button:focus,
.ui.inverted.orange.buttons .button.active,
.ui.inverted.orange.button.active,
.ui.inverted.orange.buttons .button:active,
.ui.inverted.orange.button:active{
  box-shadow:none !important;
  color:#ffffff;
}
.ui.inverted.orange.buttons .button:hover,
.ui.inverted.orange.button:hover{
  background-color:#ff7701;
}
.ui.inverted.orange.buttons .button:focus,
.ui.inverted.orange.button:focus{
  background-color:#f17000;
}
.ui.inverted.orange.buttons .active.button,
.ui.inverted.orange.active.button{
  background-color:#ff7701;
}
.ui.inverted.orange.buttons .button:active,
.ui.inverted.orange.button:active{
  background-color:#e76b00;
}
.ui.inverted.orange.basic.buttons .button,
.ui.inverted.orange.buttons .basic.button,
.ui.inverted.orange.basic.button{
  background-color:transparent;
  box-shadow:0px 0px 0px 2px rgba(255, 255, 255, 0.5) inset !important;
  color:#ffffff !important;
}
.ui.inverted.orange.basic.buttons .button:hover,
.ui.inverted.orange.buttons .basic.button:hover,
.ui.inverted.orange.basic.button:hover{
  box-shadow:0px 0px 0px 2px #ff7701 inset !important;
  color:#FF851B !important;
}
.ui.inverted.orange.basic.buttons .button:focus,
.ui.inverted.orange.basic.buttons .button:focus,
.ui.inverted.orange.basic.button:focus{
  box-shadow:0px 0px 0px 2px #f17000 inset !important;
  color:#FF851B !important;
}
.ui.inverted.orange.basic.buttons .active.button,
.ui.inverted.orange.buttons .basic.active.button,
.ui.inverted.orange.basic.active.button{
  box-shadow:0px 0px 0px 2px #ff7701 inset !important;
  color:#FF851B !important;
}
.ui.inverted.orange.basic.buttons .button:active,
.ui.inverted.orange.buttons .basic.button:active,
.ui.inverted.orange.basic.button:active{
  box-shadow:0px 0px 0px 2px #e76b00 inset !important;
  color:#FF851B !important;
}
.ui.pink.buttons .button,
.ui.pink.button{
  background-color:#E03997;
  color:#ffffff;
  text-shadow:none;
  background-image:none;
}
.ui.pink.button{
  box-shadow:0px 0em 0px 0px rgba(34, 36, 38, 0.15) inset;
}
.ui.pink.buttons .button:hover,
.ui.pink.button:hover{
  background-color:#e61a8d;
  color:#ffffff;
  text-shadow:none;
}
.ui.pink.buttons .button:focus,
.ui.pink.button:focus{
  background-color:#e10f85;
  color:#ffffff;
  text-shadow:none;
}
.ui.pink.buttons .button:active,
.ui.pink.button:active{
  background-color:#c71f7e;
  color:#ffffff;
  text-shadow:none;
}
.ui.pink.buttons .active.button,
.ui.pink.buttons .active.button:active,
.ui.pink.active.button,
.ui.pink.button .active.button:active{
  background-color:#ea158d;
  color:#ffffff;
  text-shadow:none;
}
.ui.basic.pink.buttons .button,
.ui.basic.pink.button{
  box-shadow:0px 0px 0px 1px #E03997 inset !important;
  color:#E03997 !important;
}
.ui.basic.pink.buttons .button:hover,
.ui.basic.pink.button:hover{
  background:transparent !important;
  box-shadow:0px 0px 0px 1px #e61a8d inset !important;
  color:#e61a8d !important;
}
.ui.basic.pink.buttons .button:focus,
.ui.basic.pink.button:focus{
  background:transparent !important;
  box-shadow:0px 0px 0px 1px #e10f85 inset !important;
  color:#e61a8d !important;
}
.ui.basic.pink.buttons .active.button,
.ui.basic.pink.active.button{
  background:transparent !important;
  box-shadow:0px 0px 0px 1px #ea158d inset !important;
  color:#c71f7e !important;
}
.ui.basic.pink.buttons .button:active,
.ui.basic.pink.button:active{
  box-shadow:0px 0px 0px 1px #c71f7e inset !important;
  color:#c71f7e !important;
}
.ui.buttons:not(.vertical) > .basic.pink.button:not(:first-child){
  margin-left:-1px;
}
.ui.inverted.pink.buttons .button,
.ui.inverted.pink.button{
  background-color:transparent;
  box-shadow:0px 0px 0px 2px #FF8EDF inset !important;
  color:#FF8EDF;
}
.ui.inverted.pink.buttons .button:hover,
.ui.inverted.pink.button:hover,
.ui.inverted.pink.buttons .button:focus,
.ui.inverted.pink.button:focus,
.ui.inverted.pink.buttons .button.active,
.ui.inverted.pink.button.active,
.ui.inverted.pink.buttons .button:active,
.ui.inverted.pink.button:active{
  box-shadow:none !important;
  color:#ffffff;
}
.ui.inverted.pink.buttons .button:hover,
.ui.inverted.pink.button:hover{
  background-color:#ff74d8;
}
.ui.inverted.pink.buttons .button:focus,
.ui.inverted.pink.button:focus{
  background-color:#ff65d3;
}
.ui.inverted.pink.buttons .active.button,
.ui.inverted.pink.active.button{
  background-color:#ff74d8;
}
.ui.inverted.pink.buttons .button:active,
.ui.inverted.pink.button:active{
  background-color:#ff5bd1;
}
.ui.inverted.pink.basic.buttons .button,
.ui.inverted.pink.buttons .basic.button,
.ui.inverted.pink.basic.button{
  background-color:transparent;
  box-shadow:0px 0px 0px 2px rgba(255, 255, 255, 0.5) inset !important;
  color:#ffffff !important;
}
.ui.inverted.pink.basic.buttons .button:hover,
.ui.inverted.pink.buttons .basic.button:hover,
.ui.inverted.pink.basic.button:hover{
  box-shadow:0px 0px 0px 2px #ff74d8 inset !important;
  color:#FF8EDF !important;
}
.ui.inverted.pink.basic.buttons .button:focus,
.ui.inverted.pink.basic.buttons .button:focus,
.ui.inverted.pink.basic.button:focus{
  box-shadow:0px 0px 0px 2px #ff65d3 inset !important;
  color:#FF8EDF !important;
}
.ui.inverted.pink.basic.buttons .active.button,
.ui.inverted.pink.buttons .basic.active.button,
.ui.inverted.pink.basic.active.button{
  box-shadow:0px 0px 0px 2px #ff74d8 inset !important;
  color:#FF8EDF !important;
}
.ui.inverted.pink.basic.buttons .button:active,
.ui.inverted.pink.buttons .basic.button:active,
.ui.inverted.pink.basic.button:active{
  box-shadow:0px 0px 0px 2px #ff5bd1 inset !important;
  color:#FF8EDF !important;
}
.ui.violet.buttons .button,
.ui.violet.button{
  background-color:#6435C9;
  color:#ffffff;
  text-shadow:none;
  background-image:none;
}
.ui.violet.button{
  box-shadow:0px 0em 0px 0px rgba(34, 36, 38, 0.15) inset;
}
.ui.violet.buttons .button:hover,
.ui.violet.button:hover{
  background-color:#5829bb;
  color:#ffffff;
  text-shadow:none;
}
.ui.violet.buttons .button:focus,
.ui.violet.button:focus{
  background-color:#4f20b5;
  color:#ffffff;
  text-shadow:none;
}
.ui.violet.buttons .button:active,
.ui.violet.button:active{
  background-color:#502aa1;
  color:#ffffff;
  text-shadow:none;
}
.ui.violet.buttons .active.button,
.ui.violet.buttons .active.button:active,
.ui.violet.active.button,
.ui.violet.button .active.button:active{
  background-color:#5626bf;
  color:#ffffff;
  text-shadow:none;
}
.ui.basic.violet.buttons .button,
.ui.basic.violet.button{
  box-shadow:0px 0px 0px 1px #6435C9 inset !important;
  color:#6435C9 !important;
}
.ui.basic.violet.buttons .button:hover,
.ui.basic.violet.button:hover{
  background:transparent !important;
  box-shadow:0px 0px 0px 1px #5829bb inset !important;
  color:#5829bb !important;
}
.ui.basic.violet.buttons .button:focus,
.ui.basic.violet.button:focus{
  background:transparent !important;
  box-shadow:0px 0px 0px 1px #4f20b5 inset !important;
  color:#5829bb !important;
}
.ui.basic.violet.buttons .active.button,
.ui.basic.violet.active.button{
  background:transparent !important;
  box-shadow:0px 0px 0px 1px #5626bf inset !important;
  color:#502aa1 !important;
}
.ui.basic.violet.buttons .button:active,
.ui.basic.violet.button:active{
  box-shadow:0px 0px 0px 1px #502aa1 inset !important;
  color:#502aa1 !important;
}
.ui.buttons:not(.vertical) > .basic.violet.button:not(:first-child){
  margin-left:-1px;
}
.ui.inverted.violet.buttons .button,
.ui.inverted.violet.button{
  background-color:transparent;
  box-shadow:0px 0px 0px 2px #A291FB inset !important;
  color:#A291FB;
}
.ui.inverted.violet.buttons .button:hover,
.ui.inverted.violet.button:hover,
.ui.inverted.violet.buttons .button:focus,
.ui.inverted.violet.button:focus,
.ui.inverted.violet.buttons .button.active,
.ui.inverted.violet.button.active,
.ui.inverted.violet.buttons .button:active,
.ui.inverted.violet.button:active{
  box-shadow:none !important;
  color:#ffffff;
}
.ui.inverted.violet.buttons .button:hover,
.ui.inverted.violet.button:hover{
  background-color:#8a73ff;
}
.ui.inverted.violet.buttons .button:focus,
.ui.inverted.violet.button:focus{
  background-color:#7d64ff;
}
.ui.inverted.violet.buttons .active.button,
.ui.inverted.violet.active.button{
  background-color:#8a73ff;
}
.ui.inverted.violet.buttons .button:active,
.ui.inverted.violet.button:active{
  background-color:#7860f9;
}
.ui.inverted.violet.basic.buttons .button,
.ui.inverted.violet.buttons .basic.button,
.ui.inverted.violet.basic.button{
  background-color:transparent;
  box-shadow:0px 0px 0px 2px rgba(255, 255, 255, 0.5) inset !important;
  color:#ffffff !important;
}
.ui.inverted.violet.basic.buttons .button:hover,
.ui.inverted.violet.buttons .basic.button:hover,
.ui.inverted.violet.basic.button:hover{
  box-shadow:0px 0px 0px 2px #8a73ff inset !important;
  color:#A291FB !important;
}
.ui.inverted.violet.basic.buttons .button:focus,
.ui.inverted.violet.basic.buttons .button:focus,
.ui.inverted.violet.basic.button:focus{
  box-shadow:0px 0px 0px 2px #7d64ff inset !important;
  color:#A291FB !important;
}
.ui.inverted.violet.basic.buttons .active.button,
.ui.inverted.violet.buttons .basic.active.button,
.ui.inverted.violet.basic.active.button{
  box-shadow:0px 0px 0px 2px #8a73ff inset !important;
  color:#A291FB !important;
}
.ui.inverted.violet.basic.buttons .button:active,
.ui.inverted.violet.buttons .basic.button:active,
.ui.inverted.violet.basic.button:active{
  box-shadow:0px 0px 0px 2px #7860f9 inset !important;
  color:#A291FB !important;
}
.ui.purple.buttons .button,
.ui.purple.button{
  background-color:#A333C8;
  color:#ffffff;
  text-shadow:none;
  background-image:none;
}
.ui.purple.button{
  box-shadow:0px 0em 0px 0px rgba(34, 36, 38, 0.15) inset;
}
.ui.purple.buttons .button:hover,
.ui.purple.button:hover{
  background-color:#9627ba;
  color:#ffffff;
  text-shadow:none;
}
.ui.purple.buttons .button:focus,
.ui.purple.button:focus{
  background-color:#8f1eb4;
  color:#ffffff;
  text-shadow:none;
}
.ui.purple.buttons .button:active,
.ui.purple.button:active{
  background-color:#82299f;
  color:#ffffff;
  text-shadow:none;
}
.ui.purple.buttons .active.button,
.ui.purple.buttons .active.button:active,
.ui.purple.active.button,
.ui.purple.button .active.button:active{
  background-color:#9724be;
  color:#ffffff;
  text-shadow:none;
}
.ui.basic.purple.buttons .button,
.ui.basic.purple.button{
  box-shadow:0px 0px 0px 1px #A333C8 inset !important;
  color:#A333C8 !important;
}
.ui.basic.purple.buttons .button:hover,
.ui.basic.purple.button:hover{
  background:transparent !important;
  box-shadow:0px 0px 0px 1px #9627ba inset !important;
  color:#9627ba !important;
}
.ui.basic.purple.buttons .button:focus,
.ui.basic.purple.button:focus{
  background:transparent !important;
  box-shadow:0px 0px 0px 1px #8f1eb4 inset !important;
  color:#9627ba !important;
}
.ui.basic.purple.buttons .active.button,
.ui.basic.purple.active.button{
  background:transparent !important;
  box-shadow:0px 0px 0px 1px #9724be inset !important;
  color:#82299f !important;
}
.ui.basic.purple.buttons .button:active,
.ui.basic.purple.button:active{
  box-shadow:0px 0px 0px 1px #82299f inset !important;
  color:#82299f !important;
}
.ui.buttons:not(.vertical) > .basic.purple.button:not(:first-child){
  margin-left:-1px;
}
.ui.inverted.purple.buttons .button,
.ui.inverted.purple.button{
  background-color:transparent;
  box-shadow:0px 0px 0px 2px #DC73FF inset !important;
  color:#DC73FF;
}
.ui.inverted.purple.buttons .button:hover,
.ui.inverted.purple.button:hover,
.ui.inverted.purple.buttons .button:focus,
.ui.inverted.purple.button:focus,
.ui.inverted.purple.buttons .button.active,
.ui.inverted.purple.button.active,
.ui.inverted.purple.buttons .button:active,
.ui.inverted.purple.button:active{
  box-shadow:none !important;
  color:#ffffff;
}
.ui.inverted.purple.buttons .button:hover,
.ui.inverted.purple.button:hover{
  background-color:#d65aff;
}
.ui.inverted.purple.buttons .button:focus,
.ui.inverted.purple.button:focus{
  background-color:#d24aff;
}
.ui.inverted.purple.buttons .active.button,
.ui.inverted.purple.active.button{
  background-color:#d65aff;
}
.ui.inverted.purple.buttons .button:active,
.ui.inverted.purple.button:active{
  background-color:#cf40ff;
}
.ui.inverted.purple.basic.buttons .button,
.ui.inverted.purple.buttons .basic.button,
.ui.inverted.purple.basic.button{
  background-color:transparent;
  box-shadow:0px 0px 0px 2px rgba(255, 255, 255, 0.5) inset !important;
  color:#ffffff !important;
}
.ui.inverted.purple.basic.buttons .button:hover,
.ui.inverted.purple.buttons .basic.button:hover,
.ui.inverted.purple.basic.button:hover{
  box-shadow:0px 0px 0px 2px #d65aff inset !important;
  color:#DC73FF !important;
}
.ui.inverted.purple.basic.buttons .button:focus,
.ui.inverted.purple.basic.buttons .button:focus,
.ui.inverted.purple.basic.button:focus{
  box-shadow:0px 0px 0px 2px #d24aff inset !important;
  color:#DC73FF !important;
}
.ui.inverted.purple.basic.buttons .active.button,
.ui.inverted.purple.buttons .basic.active.button,
.ui.inverted.purple.basic.active.button{
  box-shadow:0px 0px 0px 2px #d65aff inset !important;
  color:#DC73FF !important;
}
.ui.inverted.purple.basic.buttons .button:active,
.ui.inverted.purple.buttons .basic.button:active,
.ui.inverted.purple.basic.button:active{
  box-shadow:0px 0px 0px 2px #cf40ff inset !important;
  color:#DC73FF !important;
}
.ui.red.buttons .button,
.ui.red.button{
  background-color:#de3a3e;
  color:#ffffff;
  text-shadow:none;
  background-image:none;
}
.ui.red.button{
  box-shadow:0px 0em 0px 0px rgba(34, 36, 38, 0.15) inset;
}
.ui.red.buttons .button:hover,
.ui.red.button:hover{
  background-color:#e31b20;
  color:#ffffff;
  text-shadow:none;
}
.ui.red.buttons .button:focus,
.ui.red.button:focus{
  background-color:#de1116;
  color:#ffffff;
  text-shadow:none;
}
.ui.red.buttons .button:active,
.ui.red.button:active{
  background-color:#c42125;
  color:#ffffff;
  text-shadow:none;
}
.ui.red.buttons .active.button,
.ui.red.buttons .active.button:active,
.ui.red.active.button,
.ui.red.button .active.button:active{
  background-color:#e8171c;
  color:#ffffff;
  text-shadow:none;
}
.ui.basic.red.buttons .button,
.ui.basic.red.button{
  box-shadow:0px 0px 0px 1px #de3a3e inset !important;
  color:#de3a3e !important;
}
.ui.basic.red.buttons .button:hover,
.ui.basic.red.button:hover{
  background:transparent !important;
  box-shadow:0px 0px 0px 1px #e31b20 inset !important;
  color:#e31b20 !important;
}
.ui.basic.red.buttons .button:focus,
.ui.basic.red.button:focus{
  background:transparent !important;
  box-shadow:0px 0px 0px 1px #de1116 inset !important;
  color:#e31b20 !important;
}
.ui.basic.red.buttons .active.button,
.ui.basic.red.active.button{
  background:transparent !important;
  box-shadow:0px 0px 0px 1px #e8171c inset !important;
  color:#c42125 !important;
}
.ui.basic.red.buttons .button:active,
.ui.basic.red.button:active{
  box-shadow:0px 0px 0px 1px #c42125 inset !important;
  color:#c42125 !important;
}
.ui.buttons:not(.vertical) > .basic.red.button:not(:first-child){
  margin-left:-1px;
}
.ui.inverted.red.buttons .button,
.ui.inverted.red.button{
  background-color:transparent;
  box-shadow:0px 0px 0px 2px #FF695E inset !important;
  color:#FF695E;
}
.ui.inverted.red.buttons .button:hover,
.ui.inverted.red.button:hover,
.ui.inverted.red.buttons .button:focus,
.ui.inverted.red.button:focus,
.ui.inverted.red.buttons .button.active,
.ui.inverted.red.button.active,
.ui.inverted.red.buttons .button:active,
.ui.inverted.red.button:active{
  box-shadow:none !important;
  color:#ffffff;
}
.ui.inverted.red.buttons .button:hover,
.ui.inverted.red.button:hover{
  background-color:#ff5144;
}
.ui.inverted.red.buttons .button:focus,
.ui.inverted.red.button:focus{
  background-color:#ff4335;
}
.ui.inverted.red.buttons .active.button,
.ui.inverted.red.active.button{
  background-color:#ff5144;
}
.ui.inverted.red.buttons .button:active,
.ui.inverted.red.button:active{
  background-color:#ff392b;
}
.ui.inverted.red.basic.buttons .button,
.ui.inverted.red.buttons .basic.button,
.ui.inverted.red.basic.button{
  background-color:transparent;
  box-shadow:0px 0px 0px 2px rgba(255, 255, 255, 0.5) inset !important;
  color:#ffffff !important;
}
.ui.inverted.red.basic.buttons .button:hover,
.ui.inverted.red.buttons .basic.button:hover,
.ui.inverted.red.basic.button:hover{
  box-shadow:0px 0px 0px 2px #ff5144 inset !important;
  color:#FF695E !important;
}
.ui.inverted.red.basic.buttons .button:focus,
.ui.inverted.red.basic.buttons .button:focus,
.ui.inverted.red.basic.button:focus{
  box-shadow:0px 0px 0px 2px #ff4335 inset !important;
  color:#FF695E !important;
}
.ui.inverted.red.basic.buttons .active.button,
.ui.inverted.red.buttons .basic.active.button,
.ui.inverted.red.basic.active.button{
  box-shadow:0px 0px 0px 2px #ff5144 inset !important;
  color:#FF695E !important;
}
.ui.inverted.red.basic.buttons .button:active,
.ui.inverted.red.buttons .basic.button:active,
.ui.inverted.red.basic.button:active{
  box-shadow:0px 0px 0px 2px #ff392b inset !important;
  color:#FF695E !important;
}
.ui.teal.buttons .button,
.ui.teal.button{
  background-color:#00B5AD;
  color:#ffffff;
  text-shadow:none;
  background-image:none;
}
.ui.teal.button{
  box-shadow:0px 0em 0px 0px rgba(34, 36, 38, 0.15) inset;
}
.ui.teal.buttons .button:hover,
.ui.teal.button:hover{
  background-color:#009c95;
  color:#ffffff;
  text-shadow:none;
}
.ui.teal.buttons .button:focus,
.ui.teal.button:focus{
  background-color:#008c86;
  color:#ffffff;
  text-shadow:none;
}
.ui.teal.buttons .button:active,
.ui.teal.button:active{
  background-color:#00827c;
  color:#ffffff;
  text-shadow:none;
}
.ui.teal.buttons .active.button,
.ui.teal.buttons .active.button:active,
.ui.teal.active.button,
.ui.teal.button .active.button:active{
  background-color:#009c95;
  color:#ffffff;
  text-shadow:none;
}
.ui.basic.teal.buttons .button,
.ui.basic.teal.button{
  box-shadow:0px 0px 0px 1px #00B5AD inset !important;
  color:#00B5AD !important;
}
.ui.basic.teal.buttons .button:hover,
.ui.basic.teal.button:hover{
  background:transparent !important;
  box-shadow:0px 0px 0px 1px #009c95 inset !important;
  color:#009c95 !important;
}
.ui.basic.teal.buttons .button:focus,
.ui.basic.teal.button:focus{
  background:transparent !important;
  box-shadow:0px 0px 0px 1px #008c86 inset !important;
  color:#009c95 !important;
}
.ui.basic.teal.buttons .active.button,
.ui.basic.teal.active.button{
  background:transparent !important;
  box-shadow:0px 0px 0px 1px #009c95 inset !important;
  color:#00827c !important;
}
.ui.basic.teal.buttons .button:active,
.ui.basic.teal.button:active{
  box-shadow:0px 0px 0px 1px #00827c inset !important;
  color:#00827c !important;
}
.ui.buttons:not(.vertical) > .basic.teal.button:not(:first-child){
  margin-left:-1px;
}
.ui.inverted.teal.buttons .button,
.ui.inverted.teal.button{
  background-color:transparent;
  box-shadow:0px 0px 0px 2px #6DFFFF inset !important;
  color:#6DFFFF;
}
.ui.inverted.teal.buttons .button:hover,
.ui.inverted.teal.button:hover,
.ui.inverted.teal.buttons .button:focus,
.ui.inverted.teal.button:focus,
.ui.inverted.teal.buttons .button.active,
.ui.inverted.teal.button.active,
.ui.inverted.teal.buttons .button:active,
.ui.inverted.teal.button:active{
  box-shadow:none !important;
  color:rgba(0, 0, 0, 0.6);
}
.ui.inverted.teal.buttons .button:hover,
.ui.inverted.teal.button:hover{
  background-color:#54ffff;
}
.ui.inverted.teal.buttons .button:focus,
.ui.inverted.teal.button:focus{
  background-color:#44ffff;
}
.ui.inverted.teal.buttons .active.button,
.ui.inverted.teal.active.button{
  background-color:#54ffff;
}
.ui.inverted.teal.buttons .button:active,
.ui.inverted.teal.button:active{
  background-color:#3affff;
}
.ui.inverted.teal.basic.buttons .button,
.ui.inverted.teal.buttons .basic.button,
.ui.inverted.teal.basic.button{
  background-color:transparent;
  box-shadow:0px 0px 0px 2px rgba(255, 255, 255, 0.5) inset !important;
  color:#ffffff !important;
}
.ui.inverted.teal.basic.buttons .button:hover,
.ui.inverted.teal.buttons .basic.button:hover,
.ui.inverted.teal.basic.button:hover{
  box-shadow:0px 0px 0px 2px #54ffff inset !important;
  color:#6DFFFF !important;
}
.ui.inverted.teal.basic.buttons .button:focus,
.ui.inverted.teal.basic.buttons .button:focus,
.ui.inverted.teal.basic.button:focus{
  box-shadow:0px 0px 0px 2px #44ffff inset !important;
  color:#6DFFFF !important;
}
.ui.inverted.teal.basic.buttons .active.button,
.ui.inverted.teal.buttons .basic.active.button,
.ui.inverted.teal.basic.active.button{
  box-shadow:0px 0px 0px 2px #54ffff inset !important;
  color:#6DFFFF !important;
}
.ui.inverted.teal.basic.buttons .button:active,
.ui.inverted.teal.buttons .basic.button:active,
.ui.inverted.teal.basic.button:active{
  box-shadow:0px 0px 0px 2px #3affff inset !important;
  color:#6DFFFF !important;
}
.ui.olive.buttons .button,
.ui.olive.button{
  background-color:#B5CC18;
  color:#ffffff;
  text-shadow:none;
  background-image:none;
}
.ui.olive.button{
  box-shadow:0px 0em 0px 0px rgba(34, 36, 38, 0.15) inset;
}
.ui.olive.buttons .button:hover,
.ui.olive.button:hover{
  background-color:#a7bd0d;
  color:#ffffff;
  text-shadow:none;
}
.ui.olive.buttons .button:focus,
.ui.olive.button:focus{
  background-color:#a0b605;
  color:#ffffff;
  text-shadow:none;
}
.ui.olive.buttons .button:active,
.ui.olive.button:active{
  background-color:#8d9e13;
  color:#ffffff;
  text-shadow:none;
}
.ui.olive.buttons .active.button,
.ui.olive.buttons .active.button:active,
.ui.olive.active.button,
.ui.olive.button .active.button:active{
  background-color:#aac109;
  color:#ffffff;
  text-shadow:none;
}
.ui.basic.olive.buttons .button,
.ui.basic.olive.button{
  box-shadow:0px 0px 0px 1px #B5CC18 inset !important;
  color:#B5CC18 !important;
}
.ui.basic.olive.buttons .button:hover,
.ui.basic.olive.button:hover{
  background:transparent !important;
  box-shadow:0px 0px 0px 1px #a7bd0d inset !important;
  color:#a7bd0d !important;
}
.ui.basic.olive.buttons .button:focus,
.ui.basic.olive.button:focus{
  background:transparent !important;
  box-shadow:0px 0px 0px 1px #a0b605 inset !important;
  color:#a7bd0d !important;
}
.ui.basic.olive.buttons .active.button,
.ui.basic.olive.active.button{
  background:transparent !important;
  box-shadow:0px 0px 0px 1px #aac109 inset !important;
  color:#8d9e13 !important;
}
.ui.basic.olive.buttons .button:active,
.ui.basic.olive.button:active{
  box-shadow:0px 0px 0px 1px #8d9e13 inset !important;
  color:#8d9e13 !important;
}
.ui.buttons:not(.vertical) > .basic.olive.button:not(:first-child){
  margin-left:-1px;
}
.ui.inverted.olive.buttons .button,
.ui.inverted.olive.button{
  background-color:transparent;
  box-shadow:0px 0px 0px 2px #D9E778 inset !important;
  color:#D9E778;
}
.ui.inverted.olive.buttons .button:hover,
.ui.inverted.olive.button:hover,
.ui.inverted.olive.buttons .button:focus,
.ui.inverted.olive.button:focus,
.ui.inverted.olive.buttons .button.active,
.ui.inverted.olive.button.active,
.ui.inverted.olive.buttons .button:active,
.ui.inverted.olive.button:active{
  box-shadow:none !important;
  color:rgba(0, 0, 0, 0.6);
}
.ui.inverted.olive.buttons .button:hover,
.ui.inverted.olive.button:hover{
  background-color:#d8ea5c;
}
.ui.inverted.olive.buttons .button:focus,
.ui.inverted.olive.button:focus{
  background-color:#daef47;
}
.ui.inverted.olive.buttons .active.button,
.ui.inverted.olive.active.button{
  background-color:#daed59;
}
.ui.inverted.olive.buttons .button:active,
.ui.inverted.olive.button:active{
  background-color:#cddf4d;
}
.ui.inverted.olive.basic.buttons .button,
.ui.inverted.olive.buttons .basic.button,
.ui.inverted.olive.basic.button{
  background-color:transparent;
  box-shadow:0px 0px 0px 2px rgba(255, 255, 255, 0.5) inset !important;
  color:#ffffff !important;
}
.ui.inverted.olive.basic.buttons .button:hover,
.ui.inverted.olive.buttons .basic.button:hover,
.ui.inverted.olive.basic.button:hover{
  box-shadow:0px 0px 0px 2px #d8ea5c inset !important;
  color:#D9E778 !important;
}
.ui.inverted.olive.basic.buttons .button:focus,
.ui.inverted.olive.basic.buttons .button:focus,
.ui.inverted.olive.basic.button:focus{
  box-shadow:0px 0px 0px 2px #daef47 inset !important;
  color:#D9E778 !important;
}
.ui.inverted.olive.basic.buttons .active.button,
.ui.inverted.olive.buttons .basic.active.button,
.ui.inverted.olive.basic.active.button{
  box-shadow:0px 0px 0px 2px #daed59 inset !important;
  color:#D9E778 !important;
}
.ui.inverted.olive.basic.buttons .button:active,
.ui.inverted.olive.buttons .basic.button:active,
.ui.inverted.olive.basic.button:active{
  box-shadow:0px 0px 0px 2px #cddf4d inset !important;
  color:#D9E778 !important;
}
.ui.yellow.buttons .button,
.ui.yellow.button{
  background-color:#FBBD08;
  color:#ffffff;
  text-shadow:none;
  background-image:none;
}
.ui.yellow.button{
  box-shadow:0px 0em 0px 0px rgba(34, 36, 38, 0.15) inset;
}
.ui.yellow.buttons .button:hover,
.ui.yellow.button:hover{
  background-color:#eaae00;
  color:#ffffff;
  text-shadow:none;
}
.ui.yellow.buttons .button:focus,
.ui.yellow.button:focus{
  background-color:#daa300;
  color:#ffffff;
  text-shadow:none;
}
.ui.yellow.buttons .button:active,
.ui.yellow.button:active{
  background-color:#cd9903;
  color:#ffffff;
  text-shadow:none;
}
.ui.yellow.buttons .active.button,
.ui.yellow.buttons .active.button:active,
.ui.yellow.active.button,
.ui.yellow.button .active.button:active{
  background-color:#eaae00;
  color:#ffffff;
  text-shadow:none;
}
.ui.basic.yellow.buttons .button,
.ui.basic.yellow.button{
  box-shadow:0px 0px 0px 1px #FBBD08 inset !important;
  color:#FBBD08 !important;
}
.ui.basic.yellow.buttons .button:hover,
.ui.basic.yellow.button:hover{
  background:transparent !important;
  box-shadow:0px 0px 0px 1px #eaae00 inset !important;
  color:#eaae00 !important;
}
.ui.basic.yellow.buttons .button:focus,
.ui.basic.yellow.button:focus{
  background:transparent !important;
  box-shadow:0px 0px 0px 1px #daa300 inset !important;
  color:#eaae00 !important;
}
.ui.basic.yellow.buttons .active.button,
.ui.basic.yellow.active.button{
  background:transparent !important;
  box-shadow:0px 0px 0px 1px #eaae00 inset !important;
  color:#cd9903 !important;
}
.ui.basic.yellow.buttons .button:active,
.ui.basic.yellow.button:active{
  box-shadow:0px 0px 0px 1px #cd9903 inset !important;
  color:#cd9903 !important;
}
.ui.buttons:not(.vertical) > .basic.yellow.button:not(:first-child){
  margin-left:-1px;
}
.ui.inverted.yellow.buttons .button,
.ui.inverted.yellow.button{
  background-color:transparent;
  box-shadow:0px 0px 0px 2px #FFE21F inset !important;
  color:#FFE21F;
}
.ui.inverted.yellow.buttons .button:hover,
.ui.inverted.yellow.button:hover,
.ui.inverted.yellow.buttons .button:focus,
.ui.inverted.yellow.button:focus,
.ui.inverted.yellow.buttons .button.active,
.ui.inverted.yellow.button.active,
.ui.inverted.yellow.buttons .button:active,
.ui.inverted.yellow.button:active{
  box-shadow:none !important;
  color:rgba(0, 0, 0, 0.6);
}
.ui.inverted.yellow.buttons .button:hover,
.ui.inverted.yellow.button:hover{
  background-color:#ffdf05;
}
.ui.inverted.yellow.buttons .button:focus,
.ui.inverted.yellow.button:focus{
  background-color:#f5d500;
}
.ui.inverted.yellow.buttons .active.button,
.ui.inverted.yellow.active.button{
  background-color:#ffdf05;
}
.ui.inverted.yellow.buttons .button:active,
.ui.inverted.yellow.button:active{
  background-color:#ebcd00;
}
.ui.inverted.yellow.basic.buttons .button,
.ui.inverted.yellow.buttons .basic.button,
.ui.inverted.yellow.basic.button{
  background-color:transparent;
  box-shadow:0px 0px 0px 2px rgba(255, 255, 255, 0.5) inset !important;
  color:#ffffff !important;
}
.ui.inverted.yellow.basic.buttons .button:hover,
.ui.inverted.yellow.buttons .basic.button:hover,
.ui.inverted.yellow.basic.button:hover{
  box-shadow:0px 0px 0px 2px #ffdf05 inset !important;
  color:#FFE21F !important;
}
.ui.inverted.yellow.basic.buttons .button:focus,
.ui.inverted.yellow.basic.buttons .button:focus,
.ui.inverted.yellow.basic.button:focus{
  box-shadow:0px 0px 0px 2px #f5d500 inset !important;
  color:#FFE21F !important;
}
.ui.inverted.yellow.basic.buttons .active.button,
.ui.inverted.yellow.buttons .basic.active.button,
.ui.inverted.yellow.basic.active.button{
  box-shadow:0px 0px 0px 2px #ffdf05 inset !important;
  color:#FFE21F !important;
}
.ui.inverted.yellow.basic.buttons .button:active,
.ui.inverted.yellow.buttons .basic.button:active,
.ui.inverted.yellow.basic.button:active{
  box-shadow:0px 0px 0px 2px #ebcd00 inset !important;
  color:#FFE21F !important;
}
.ui.primary.buttons .button,
.ui.primary.button{
  background-color:#de3a3e;
  color:#ffffff;
  text-shadow:none;
  background-image:none;
}
.ui.primary.button{
  box-shadow:0px 0em 0px 0px rgba(34, 36, 38, 0.15) inset;
}
.ui.primary.buttons .button:hover,
.ui.primary.button:hover{
  background-color:#e31b20;
  color:#ffffff;
  text-shadow:none;
}
.ui.primary.buttons .button:focus,
.ui.primary.button:focus{
  background-color:#de1116;
  color:#ffffff;
  text-shadow:none;
}
.ui.primary.buttons .button:active,
.ui.primary.button:active{
  background-color:#c42125;
  color:#ffffff;
  text-shadow:none;
}
.ui.primary.buttons .active.button,
.ui.primary.buttons .active.button:active,
.ui.primary.active.button,
.ui.primary.button .active.button:active{
  background-color:#e8171c;
  color:#ffffff;
  text-shadow:none;
}
.ui.basic.primary.buttons .button,
.ui.basic.primary.button{
  box-shadow:0px 0px 0px 1px #de3a3e inset !important;
  color:#de3a3e !important;
}
.ui.basic.primary.buttons .button:hover,
.ui.basic.primary.button:hover{
  background:transparent !important;
  box-shadow:0px 0px 0px 1px #e31b20 inset !important;
  color:#e31b20 !important;
}
.ui.basic.primary.buttons .button:focus,
.ui.basic.primary.button:focus{
  background:transparent !important;
  box-shadow:0px 0px 0px 1px #de1116 inset !important;
  color:#e31b20 !important;
}
.ui.basic.primary.buttons .active.button,
.ui.basic.primary.active.button{
  background:transparent !important;
  box-shadow:0px 0px 0px 1px #e8171c inset !important;
  color:#c42125 !important;
}
.ui.basic.primary.buttons .button:active,
.ui.basic.primary.button:active{
  box-shadow:0px 0px 0px 1px #c42125 inset !important;
  color:#c42125 !important;
}
.ui.buttons:not(.vertical) > .basic.primary.button:not(:first-child){
  margin-left:-1px;
}
.ui.secondary.buttons .button,
.ui.secondary.button{
  background-color:#000000;
  color:#ffffff;
  text-shadow:none;
  background-image:none;
}
.ui.secondary.button{
  box-shadow:0px 0em 0px 0px rgba(34, 36, 38, 0.15) inset;
}
.ui.secondary.buttons .button:hover,
.ui.secondary.button:hover{
  background-color:#0d0d0d;
  color:#ffffff;
  text-shadow:none;
}
.ui.secondary.buttons .button:focus,
.ui.secondary.button:focus{
  background-color:#141414;
  color:#ffffff;
  text-shadow:none;
}
.ui.secondary.buttons .button:active,
.ui.secondary.button:active{
  background-color:#1a1a1a;
  color:#ffffff;
  text-shadow:none;
}
.ui.secondary.buttons .active.button,
.ui.secondary.buttons .active.button:active,
.ui.secondary.active.button,
.ui.secondary.button .active.button:active{
  background-color:#0d0d0d;
  color:#ffffff;
  text-shadow:none;
}
.ui.basic.secondary.buttons .button,
.ui.basic.secondary.button{
  box-shadow:0px 0px 0px 1px #000000 inset !important;
  color:#000000 !important;
}
.ui.basic.secondary.buttons .button:hover,
.ui.basic.secondary.button:hover{
  background:transparent !important;
  box-shadow:0px 0px 0px 1px #0d0d0d inset !important;
  color:#0d0d0d !important;
}
.ui.basic.secondary.buttons .button:focus,
.ui.basic.secondary.button:focus{
  background:transparent !important;
  box-shadow:0px 0px 0px 1px #141414 inset !important;
  color:#0d0d0d !important;
}
.ui.basic.secondary.buttons .active.button,
.ui.basic.secondary.active.button{
  background:transparent !important;
  box-shadow:0px 0px 0px 1px #0d0d0d inset !important;
  color:#1a1a1a !important;
}
.ui.basic.secondary.buttons .button:active,
.ui.basic.secondary.button:active{
  box-shadow:0px 0px 0px 1px #1a1a1a inset !important;
  color:#1a1a1a !important;
}
.ui.buttons:not(.vertical) > .basic.primary.button:not(:first-child){
  margin-left:-1px;
}
.ui.positive.buttons .button,
.ui.positive.button{
  background-color:#19a531;
  color:#ffffff;
  text-shadow:none;
  background-image:none;
}
.ui.positive.button{
  box-shadow:0px 0em 0px 0px rgba(34, 36, 38, 0.15) inset;
}
.ui.positive.buttons .button:hover,
.ui.positive.button:hover{
  background-color:#109526;
  color:#ffffff;
  text-shadow:none;
}
.ui.positive.buttons .button:focus,
.ui.positive.button:focus{
  background-color:#098d1f;
  color:#ffffff;
  text-shadow:none;
}
.ui.positive.buttons .button:active,
.ui.positive.button:active{
  background-color:#127924;
  color:#ffffff;
  text-shadow:none;
}
.ui.positive.buttons .active.button,
.ui.positive.buttons .active.button:active,
.ui.positive.active.button,
.ui.positive.button .active.button:active{
  background-color:#0d9824;
  color:#ffffff;
  text-shadow:none;
}
.ui.basic.positive.buttons .button,
.ui.basic.positive.button{
  box-shadow:0px 0px 0px 1px #19a531 inset !important;
  color:#19a531 !important;
}
.ui.basic.positive.buttons .button:hover,
.ui.basic.positive.button:hover{
  background:transparent !important;
  box-shadow:0px 0px 0px 1px #109526 inset !important;
  color:#109526 !important;
}
.ui.basic.positive.buttons .button:focus,
.ui.basic.positive.button:focus{
  background:transparent !important;
  box-shadow:0px 0px 0px 1px #098d1f inset !important;
  color:#109526 !important;
}
.ui.basic.positive.buttons .active.button,
.ui.basic.positive.active.button{
  background:transparent !important;
  box-shadow:0px 0px 0px 1px #0d9824 inset !important;
  color:#127924 !important;
}
.ui.basic.positive.buttons .button:active,
.ui.basic.positive.button:active{
  box-shadow:0px 0px 0px 1px #127924 inset !important;
  color:#127924 !important;
}
.ui.buttons:not(.vertical) > .basic.primary.button:not(:first-child){
  margin-left:-1px;
}
.ui.negative.buttons .button,
.ui.negative.button{
  background-color:#de3a3e;
  color:#ffffff;
  text-shadow:none;
  background-image:none;
}
.ui.negative.button{
  box-shadow:0px 0em 0px 0px rgba(34, 36, 38, 0.15) inset;
}
.ui.negative.buttons .button:hover,
.ui.negative.button:hover{
  background-color:#e31b20;
  color:#ffffff;
  text-shadow:none;
}
.ui.negative.buttons .button:focus,
.ui.negative.button:focus{
  background-color:#de1116;
  color:#ffffff;
  text-shadow:none;
}
.ui.negative.buttons .button:active,
.ui.negative.button:active{
  background-color:#c42125;
  color:#ffffff;
  text-shadow:none;
}
.ui.negative.buttons .active.button,
.ui.negative.buttons .active.button:active,
.ui.negative.active.button,
.ui.negative.button .active.button:active{
  background-color:#e8171c;
  color:#ffffff;
  text-shadow:none;
}
.ui.basic.negative.buttons .button,
.ui.basic.negative.button{
  box-shadow:0px 0px 0px 1px #de3a3e inset !important;
  color:#de3a3e !important;
}
.ui.basic.negative.buttons .button:hover,
.ui.basic.negative.button:hover{
  background:transparent !important;
  box-shadow:0px 0px 0px 1px #e31b20 inset !important;
  color:#e31b20 !important;
}
.ui.basic.negative.buttons .button:focus,
.ui.basic.negative.button:focus{
  background:transparent !important;
  box-shadow:0px 0px 0px 1px #de1116 inset !important;
  color:#e31b20 !important;
}
.ui.basic.negative.buttons .active.button,
.ui.basic.negative.active.button{
  background:transparent !important;
  box-shadow:0px 0px 0px 1px #e8171c inset !important;
  color:#c42125 !important;
}
.ui.basic.negative.buttons .button:active,
.ui.basic.negative.button:active{
  box-shadow:0px 0px 0px 1px #c42125 inset !important;
  color:#c42125 !important;
}
.ui.buttons:not(.vertical) > .basic.primary.button:not(:first-child){
  margin-left:-1px;
}
.ui.buttons{
  display:inline-flex;
  flex-direction:row;
  font-size:0em;
  vertical-align:baseline;
  margin:0em 0.25em 0em 0em;
}
.ui.buttons:not(.basic):not(.inverted){
  box-shadow:none;
}
.ui.buttons:after{
  content:".";
  display:block;
  height:0;
  clear:both;
  visibility:hidden;
}
.ui.buttons .button{
  flex:1 0 auto;
  margin:0em;
  border-radius:0em;
  margin:0px 0px 0px 0px;
}
.ui.buttons > .ui.button:not(.basic):not(.inverted),
.ui.buttons:not(.basic):not(.inverted) > .button{
  box-shadow:0px 0px 0px 1px transparent inset, 0px 0em 0px 0px rgba(34, 36, 38, 0.15) inset;
}
.ui.buttons .button:first-child{
  border-left:none;
  margin-left:0em;
  border-top-left-radius:0.4rem;
  border-bottom-left-radius:0.4rem;
}
.ui.buttons .button:last-child{
  border-top-right-radius:0.4rem;
  border-bottom-right-radius:0.4rem;
}
.ui.vertical.buttons{
  display:inline-flex;
  flex-direction:column;
}
.ui.vertical.buttons .button{
  display:block;
  float:none;
  width:100%;
  margin:0px 0px 0px 0px;
  box-shadow:none;
  border-radius:0em;
}
.ui.vertical.buttons .button:first-child{
  border-top-left-radius:0.4rem;
  border-top-right-radius:0.4rem;
}
.ui.vertical.buttons .button:last-child{
  margin-bottom:0px;
  border-bottom-left-radius:0.4rem;
  border-bottom-right-radius:0.4rem;
}
.ui.vertical.buttons .button:only-child{
  border-radius:0.4rem;
}
/*!
 * # Semantic UI - Container
 * http://github.com/semantic-org/semantic-ui/
 *
 *
 * Released under the MIT license
 * http://opensource.org/licenses/MIT
 *
 */
.ui.container{
  display:block;
  max-width:100% !important;
}
@media only screen and (max-width: 767px){
  .ui.container{
    width:auto !important;
    margin-left:1em !important;
    margin-right:1em !important;
  }
  .ui.grid.container{
    width:auto !important;
  }
  .ui.relaxed.grid.container{
    width:auto !important;
  }
  .ui.very.relaxed.grid.container{
    width:auto !important;
  }
}
@media only screen and (min-width: 768px) and (max-width: 991px){
  .ui.container{
    width:731px;
    margin-left:auto !important;
    margin-right:auto !important;
  }
  .ui.grid.container{
    width:calc(731px + 2rem) !important;
  }
  .ui.relaxed.grid.container{
    width:calc(731px + 3rem) !important;
  }
  .ui.very.relaxed.grid.container{
    width:calc(731px + 5rem) !important;
  }
}
@media only screen and (min-width: 992px) and (max-width: 1199px){
  .ui.container{
    width:945px;
    margin-left:auto !important;
    margin-right:auto !important;
  }
  .ui.grid.container{
    width:calc(945px + 2rem) !important;
  }
  .ui.relaxed.grid.container{
    width:calc(945px + 3rem) !important;
  }
  .ui.very.relaxed.grid.container{
    width:calc(945px + 5rem) !important;
  }
}
@media only screen and (min-width: 1200px){
  .ui.container{
    width:1143px;
    margin-left:auto !important;
    margin-right:auto !important;
  }
  .ui.grid.container{
    width:calc(1143px + 2rem) !important;
  }
  .ui.relaxed.grid.container{
    width:calc(1143px + 3rem) !important;
  }
  .ui.very.relaxed.grid.container{
    width:calc(1143px + 5rem) !important;
  }
}
.ui.text.container{
  font-family:'Exo 2', 'Lato', Arial, Helvetica, sans-serif;
  max-width:700px !important;
  line-height:1.5;
}
.ui.text.container{
  font-size:1.1rem;
}
.ui.fluid.container{
  width:100%;
}
.ui[class*="left aligned"].container{
  text-align:left;
}
.ui[class*="center aligned"].container{
  text-align:center;
}
.ui[class*="right aligned"].container{
  text-align:right;
}
.ui.justified.container{
  text-align:justify;
  -webkit-hyphens:auto;
      -ms-hyphens:auto;
          hyphens:auto;
}
/*!
 * # Semantic UI - Divider
 * http://github.com/semantic-org/semantic-ui/
 *
 *
 * Released under the MIT license
 * http://opensource.org/licenses/MIT
 *
 */
.ui.divider{
  margin:1rem 0rem;
  line-height:1;
  height:0em;
  font-weight:bold;
  text-transform:uppercase;
  letter-spacing:0.05em;
  color:rgba(0, 0, 0, 0.85);
  -webkit-user-select:none;
     -moz-user-select:none;
      -ms-user-select:none;
          user-select:none;
  -webkit-tap-highlight-color:rgba(0, 0, 0, 0);
}
.ui.divider:not(.vertical):not(.horizontal){
  border-top:1px solid rgba(34, 36, 38, 0.15);
  border-bottom:1px solid rgba(255, 255, 255, 0.1);
}
.ui.grid > .column + .divider,
.ui.grid > .row > .column + .divider{
  left:auto;
}
.ui.horizontal.divider{
  display:table;
  white-space:nowrap;
  height:auto;
  margin:'';
  line-height:1;
  text-align:center;
}
.ui.horizontal.divider:before,
.ui.horizontal.divider:after{
  content:'';
  display:table-cell;
  position:relative;
  top:50%;
  width:50%;
  background-repeat:no-repeat;
}
.ui.horizontal.divider:before{
  background-position:right 1em top 50%;
}
.ui.horizontal.divider:after{
  background-position:left 1em top 50%;
}
.ui.vertical.divider{
  position:absolute;
  z-index:2;
  top:50%;
  left:50%;
  margin:0rem;
  padding:0em;
  width:auto;
  height:50%;
  line-height:0em;
  text-align:center;
  transform:translateX(-50%);
}
.ui.vertical.divider:before,
.ui.vertical.divider:after{
  position:absolute;
  left:50%;
  content:'';
  z-index:3;
  border-left:1px solid rgba(34, 36, 38, 0.15);
  border-right:1px solid rgba(255, 255, 255, 0.1);
  width:0%;
  height:calc(100% - 1rem);
}
.ui.vertical.divider:before{
  top:-100%;
}
.ui.vertical.divider:after{
  top:auto;
  bottom:0px;
}
@media only screen and (max-width: 767px){
  .ui.stackable.grid .ui.vertical.divider,
  .ui.grid .stackable.row .ui.vertical.divider{
    display:table;
    white-space:nowrap;
    height:auto;
    margin:'';
    overflow:hidden;
    line-height:1;
    text-align:center;
    position:static;
    top:0;
    left:0;
    transform:none;
  }
  .ui.stackable.grid .ui.vertical.divider:before,
  .ui.grid .stackable.row .ui.vertical.divider:before,
  .ui.stackable.grid .ui.vertical.divider:after,
  .ui.grid .stackable.row .ui.vertical.divider:after{
    position:static;
    left:0;
    border-left:none;
    border-right:none;
    content:'';
    display:table-cell;
    position:relative;
    top:50%;
    width:50%;
    background-repeat:no-repeat;
  }
  .ui.stackable.grid .ui.vertical.divider:before,
  .ui.grid .stackable.row .ui.vertical.divider:before{
    background-position:right 1em top 50%;
  }
  .ui.stackable.grid .ui.vertical.divider:after,
  .ui.grid .stackable.row .ui.vertical.divider:after{
    background-position:left 1em top 50%;
  }
}
.ui.divider > .icon{
  margin:0rem;
  font-size:1rem;
  height:1em;
  vertical-align:middle;
}
.ui.hidden.divider{
  border-color:transparent !important;
}
.ui.hidden.divider:before,
.ui.hidden.divider:after{
  display:none;
}
.ui.divider.inverted,
.ui.vertical.inverted.divider,
.ui.horizontal.inverted.divider{
  color:#ffffff;
}
.ui.divider.inverted,
.ui.divider.inverted:after,
.ui.divider.inverted:before{
  border-top-color:rgba(34, 36, 38, 0.15) !important;
  border-left-color:rgba(34, 36, 38, 0.15) !important;
  border-bottom-color:rgba(255, 255, 255, 0.15) !important;
  border-right-color:rgba(255, 255, 255, 0.15) !important;
}
.ui.fitted.divider{
  margin:0em;
}
.ui.clearing.divider{
  clear:both;
}
.ui.section.divider{
  margin-top:2rem;
  margin-bottom:2rem;
}
.ui.divider{
  font-size:1rem;
}
.ui.horizontal.divider:before,
.ui.horizontal.divider:after{
  background-image:url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABaAAAAACCAYAAACuTHuKAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNS1jMDE0IDc5LjE1MTQ4MSwgMjAxMy8wMy8xMy0xMjowOToxNSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo1OThBRDY4OUNDMTYxMUU0OUE3NUVGOEJDMzMzMjE2NyIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo1OThBRDY4QUNDMTYxMUU0OUE3NUVGOEJDMzMzMjE2NyI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjU5OEFENjg3Q0MxNjExRTQ5QTc1RUY4QkMzMzMyMTY3IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjU5OEFENjg4Q0MxNjExRTQ5QTc1RUY4QkMzMzMyMTY3Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+VU513gAAADVJREFUeNrs0DENACAQBDBIWLGBJQby/mUcJn5sJXQmOQMAAAAAAJqt+2prAAAAAACg2xdgANk6BEVuJgyMAAAAAElFTkSuQmCC');
}
@media only screen and (max-width: 767px){
  .ui.stackable.grid .ui.vertical.divider:before,
  .ui.grid .stackable.row .ui.vertical.divider:before,
  .ui.stackable.grid .ui.vertical.divider:after,
  .ui.grid .stackable.row .ui.vertical.divider:after{
    background-image:url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABaAAAAACCAYAAACuTHuKAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNS1jMDE0IDc5LjE1MTQ4MSwgMjAxMy8wMy8xMy0xMjowOToxNSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo1OThBRDY4OUNDMTYxMUU0OUE3NUVGOEJDMzMzMjE2NyIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo1OThBRDY4QUNDMTYxMUU0OUE3NUVGOEJDMzMzMjE2NyI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjU5OEFENjg3Q0MxNjExRTQ5QTc1RUY4QkMzMzMyMTY3IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjU5OEFENjg4Q0MxNjExRTQ5QTc1RUY4QkMzMzMyMTY3Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+VU513gAAADVJREFUeNrs0DENACAQBDBIWLGBJQby/mUcJn5sJXQmOQMAAAAAAJqt+2prAAAAAACg2xdgANk6BEVuJgyMAAAAAElFTkSuQmCC');
  }
}
/*!
 * # Semantic UI - Flag
 * http://github.com/semantic-org/semantic-ui/
 *
 *
 * Released under the MIT license
 * http://opensource.org/licenses/MIT
 *
 */
i.flag:not(.icon){
  display:inline-block;
  width:16px;
  height:11px;
  line-height:11px;
  vertical-align:baseline;
  margin:0em 0.5em 0em 0em;
  text-decoration:inherit;
  speak:none;
  font-smoothing:antialiased;
  -webkit-backface-visibility:hidden;
          backface-visibility:hidden;
}
i.flag:not(.icon):before{
  display:inline-block;
  content:'';
  background:url(/dev-build/images/flags.99f63ae7.png) no-repeat -108px -1976px;
  width:16px;
  height:11px;
}
i.flag.ad:before,
i.flag.andorra:before{
  background-position:0px 0px;
}
i.flag.ae:before,
i.flag.united.arab.emirates:before,
i.flag.uae:before{
  background-position:0px -26px;
}
i.flag.af:before,
i.flag.afghanistan:before{
  background-position:0px -52px;
}
i.flag.ag:before,
i.flag.antigua:before{
  background-position:0px -78px;
}
i.flag.ai:before,
i.flag.anguilla:before{
  background-position:0px -104px;
}
i.flag.al:before,
i.flag.albania:before{
  background-position:0px -130px;
}
i.flag.am:before,
i.flag.armenia:before{
  background-position:0px -156px;
}
i.flag.an:before,
i.flag.netherlands.antilles:before{
  background-position:0px -182px;
}
i.flag.ao:before,
i.flag.angola:before{
  background-position:0px -208px;
}
i.flag.ar:before,
i.flag.argentina:before{
  background-position:0px -234px;
}
i.flag.as:before,
i.flag.american.samoa:before{
  background-position:0px -260px;
}
i.flag.at:before,
i.flag.austria:before{
  background-position:0px -286px;
}
i.flag.au:before,
i.flag.australia:before{
  background-position:0px -312px;
}
i.flag.aw:before,
i.flag.aruba:before{
  background-position:0px -338px;
}
i.flag.ax:before,
i.flag.aland.islands:before{
  background-position:0px -364px;
}
i.flag.az:before,
i.flag.azerbaijan:before{
  background-position:0px -390px;
}
i.flag.ba:before,
i.flag.bosnia:before{
  background-position:0px -416px;
}
i.flag.bb:before,
i.flag.barbados:before{
  background-position:0px -442px;
}
i.flag.bd:before,
i.flag.bangladesh:before{
  background-position:0px -468px;
}
i.flag.be:before,
i.flag.belgium:before{
  background-position:0px -494px;
}
i.flag.bf:before,
i.flag.burkina.faso:before{
  background-position:0px -520px;
}
i.flag.bg:before,
i.flag.bulgaria:before{
  background-position:0px -546px;
}
i.flag.bh:before,
i.flag.bahrain:before{
  background-position:0px -572px;
}
i.flag.bi:before,
i.flag.burundi:before{
  background-position:0px -598px;
}
i.flag.bj:before,
i.flag.benin:before{
  background-position:0px -624px;
}
i.flag.bm:before,
i.flag.bermuda:before{
  background-position:0px -650px;
}
i.flag.bn:before,
i.flag.brunei:before{
  background-position:0px -676px;
}
i.flag.bo:before,
i.flag.bolivia:before{
  background-position:0px -702px;
}
i.flag.br:before,
i.flag.brazil:before{
  background-position:0px -728px;
}
i.flag.bs:before,
i.flag.bahamas:before{
  background-position:0px -754px;
}
i.flag.bt:before,
i.flag.bhutan:before{
  background-position:0px -780px;
}
i.flag.bv:before,
i.flag.bouvet.island:before{
  background-position:0px -806px;
}
i.flag.bw:before,
i.flag.botswana:before{
  background-position:0px -832px;
}
i.flag.by:before,
i.flag.belarus:before{
  background-position:0px -858px;
}
i.flag.bz:before,
i.flag.belize:before{
  background-position:0px -884px;
}
i.flag.ca:before,
i.flag.canada:before{
  background-position:0px -910px;
}
i.flag.cc:before,
i.flag.cocos.islands:before{
  background-position:0px -962px;
}
i.flag.cd:before,
i.flag.congo:before{
  background-position:0px -988px;
}
i.flag.cf:before,
i.flag.central.african.republic:before{
  background-position:0px -1014px;
}
i.flag.cg:before,
i.flag.congo.brazzaville:before{
  background-position:0px -1040px;
}
i.flag.ch:before,
i.flag.switzerland:before{
  background-position:0px -1066px;
}
i.flag.ci:before,
i.flag.cote.divoire:before{
  background-position:0px -1092px;
}
i.flag.ck:before,
i.flag.cook.islands:before{
  background-position:0px -1118px;
}
i.flag.cl:before,
i.flag.chile:before{
  background-position:0px -1144px;
}
i.flag.cm:before,
i.flag.cameroon:before{
  background-position:0px -1170px;
}
i.flag.cn:before,
i.flag.china:before{
  background-position:0px -1196px;
}
i.flag.co:before,
i.flag.colombia:before{
  background-position:0px -1222px;
}
i.flag.cr:before,
i.flag.costa.rica:before{
  background-position:0px -1248px;
}
i.flag.cs:before,
i.flag.serbia:before{
  background-position:0px -1274px;
}
i.flag.cu:before,
i.flag.cuba:before{
  background-position:0px -1300px;
}
i.flag.cv:before,
i.flag.cape.verde:before{
  background-position:0px -1326px;
}
i.flag.cx:before,
i.flag.christmas.island:before{
  background-position:0px -1352px;
}
i.flag.cy:before,
i.flag.cyprus:before{
  background-position:0px -1378px;
}
i.flag.cz:before,
i.flag.czech.republic:before{
  background-position:0px -1404px;
}
i.flag.de:before,
i.flag.germany:before{
  background-position:0px -1430px;
}
i.flag.dj:before,
i.flag.djibouti:before{
  background-position:0px -1456px;
}
i.flag.dk:before,
i.flag.denmark:before{
  background-position:0px -1482px;
}
i.flag.dm:before,
i.flag.dominica:before{
  background-position:0px -1508px;
}
i.flag.do:before,
i.flag.dominican.republic:before{
  background-position:0px -1534px;
}
i.flag.dz:before,
i.flag.algeria:before{
  background-position:0px -1560px;
}
i.flag.ec:before,
i.flag.ecuador:before{
  background-position:0px -1586px;
}
i.flag.ee:before,
i.flag.estonia:before{
  background-position:0px -1612px;
}
i.flag.eg:before,
i.flag.egypt:before{
  background-position:0px -1638px;
}
i.flag.eh:before,
i.flag.western.sahara:before{
  background-position:0px -1664px;
}
i.flag.er:before,
i.flag.eritrea:before{
  background-position:0px -1716px;
}
i.flag.es:before,
i.flag.spain:before{
  background-position:0px -1742px;
}
i.flag.et:before,
i.flag.ethiopia:before{
  background-position:0px -1768px;
}
i.flag.eu:before,
i.flag.european.union:before{
  background-position:0px -1794px;
}
i.flag.fi:before,
i.flag.finland:before{
  background-position:0px -1846px;
}
i.flag.fj:before,
i.flag.fiji:before{
  background-position:0px -1872px;
}
i.flag.fk:before,
i.flag.falkland.islands:before{
  background-position:0px -1898px;
}
i.flag.fm:before,
i.flag.micronesia:before{
  background-position:0px -1924px;
}
i.flag.fo:before,
i.flag.faroe.islands:before{
  background-position:0px -1950px;
}
i.flag.fr:before,
i.flag.france:before{
  background-position:0px -1976px;
}
i.flag.ga:before,
i.flag.gabon:before{
  background-position:-36px 0px;
}
i.flag.gb:before,
i.flag.united.kingdom:before{
  background-position:-36px -26px;
}
i.flag.gd:before,
i.flag.grenada:before{
  background-position:-36px -52px;
}
i.flag.ge:before,
i.flag.georgia:before{
  background-position:-36px -78px;
}
i.flag.gf:before,
i.flag.french.guiana:before{
  background-position:-36px -104px;
}
i.flag.gh:before,
i.flag.ghana:before{
  background-position:-36px -130px;
}
i.flag.gi:before,
i.flag.gibraltar:before{
  background-position:-36px -156px;
}
i.flag.gl:before,
i.flag.greenland:before{
  background-position:-36px -182px;
}
i.flag.gm:before,
i.flag.gambia:before{
  background-position:-36px -208px;
}
i.flag.gn:before,
i.flag.guinea:before{
  background-position:-36px -234px;
}
i.flag.gp:before,
i.flag.guadeloupe:before{
  background-position:-36px -260px;
}
i.flag.gq:before,
i.flag.equatorial.guinea:before{
  background-position:-36px -286px;
}
i.flag.gr:before,
i.flag.greece:before{
  background-position:-36px -312px;
}
i.flag.gs:before,
i.flag.sandwich.islands:before{
  background-position:-36px -338px;
}
i.flag.gt:before,
i.flag.guatemala:before{
  background-position:-36px -364px;
}
i.flag.gu:before,
i.flag.guam:before{
  background-position:-36px -390px;
}
i.flag.gw:before,
i.flag.guinea-bissau:before{
  background-position:-36px -416px;
}
i.flag.gy:before,
i.flag.guyana:before{
  background-position:-36px -442px;
}
i.flag.hk:before,
i.flag.hong.kong:before{
  background-position:-36px -468px;
}
i.flag.hm:before,
i.flag.heard.island:before{
  background-position:-36px -494px;
}
i.flag.hn:before,
i.flag.honduras:before{
  background-position:-36px -520px;
}
i.flag.hr:before,
i.flag.croatia:before{
  background-position:-36px -546px;
}
i.flag.ht:before,
i.flag.haiti:before{
  background-position:-36px -572px;
}
i.flag.hu:before,
i.flag.hungary:before{
  background-position:-36px -598px;
}
i.flag.id:before,
i.flag.indonesia:before{
  background-position:-36px -624px;
}
i.flag.ie:before,
i.flag.ireland:before{
  background-position:-36px -650px;
}
i.flag.il:before,
i.flag.israel:before{
  background-position:-36px -676px;
}
i.flag.in:before,
i.flag.india:before{
  background-position:-36px -702px;
}
i.flag.io:before,
i.flag.indian.ocean.territory:before{
  background-position:-36px -728px;
}
i.flag.iq:before,
i.flag.iraq:before{
  background-position:-36px -754px;
}
i.flag.ir:before,
i.flag.iran:before{
  background-position:-36px -780px;
}
i.flag.is:before,
i.flag.iceland:before{
  background-position:-36px -806px;
}
i.flag.it:before,
i.flag.italy:before{
  background-position:-36px -832px;
}
i.flag.jm:before,
i.flag.jamaica:before{
  background-position:-36px -858px;
}
i.flag.jo:before,
i.flag.jordan:before{
  background-position:-36px -884px;
}
i.flag.jp:before,
i.flag.japan:before{
  background-position:-36px -910px;
}
i.flag.ke:before,
i.flag.kenya:before{
  background-position:-36px -936px;
}
i.flag.kg:before,
i.flag.kyrgyzstan:before{
  background-position:-36px -962px;
}
i.flag.kh:before,
i.flag.cambodia:before{
  background-position:-36px -988px;
}
i.flag.ki:before,
i.flag.kiribati:before{
  background-position:-36px -1014px;
}
i.flag.km:before,
i.flag.comoros:before{
  background-position:-36px -1040px;
}
i.flag.kn:before,
i.flag.saint.kitts.and.nevis:before{
  background-position:-36px -1066px;
}
i.flag.kp:before,
i.flag.north.korea:before{
  background-position:-36px -1092px;
}
i.flag.kr:before,
i.flag.south.korea:before{
  background-position:-36px -1118px;
}
i.flag.kw:before,
i.flag.kuwait:before{
  background-position:-36px -1144px;
}
i.flag.ky:before,
i.flag.cayman.islands:before{
  background-position:-36px -1170px;
}
i.flag.kz:before,
i.flag.kazakhstan:before{
  background-position:-36px -1196px;
}
i.flag.la:before,
i.flag.laos:before{
  background-position:-36px -1222px;
}
i.flag.lb:before,
i.flag.lebanon:before{
  background-position:-36px -1248px;
}
i.flag.lc:before,
i.flag.saint.lucia:before{
  background-position:-36px -1274px;
}
i.flag.li:before,
i.flag.liechtenstein:before{
  background-position:-36px -1300px;
}
i.flag.lk:before,
i.flag.sri.lanka:before{
  background-position:-36px -1326px;
}
i.flag.lr:before,
i.flag.liberia:before{
  background-position:-36px -1352px;
}
i.flag.ls:before,
i.flag.lesotho:before{
  background-position:-36px -1378px;
}
i.flag.lt:before,
i.flag.lithuania:before{
  background-position:-36px -1404px;
}
i.flag.lu:before,
i.flag.luxembourg:before{
  background-position:-36px -1430px;
}
i.flag.lv:before,
i.flag.latvia:before{
  background-position:-36px -1456px;
}
i.flag.ly:before,
i.flag.libya:before{
  background-position:-36px -1482px;
}
i.flag.ma:before,
i.flag.morocco:before{
  background-position:-36px -1508px;
}
i.flag.mc:before,
i.flag.monaco:before{
  background-position:-36px -1534px;
}
i.flag.md:before,
i.flag.moldova:before{
  background-position:-36px -1560px;
}
i.flag.me:before,
i.flag.montenegro:before{
  background-position:-36px -1586px;
}
i.flag.mg:before,
i.flag.madagascar:before{
  background-position:-36px -1613px;
}
i.flag.mh:before,
i.flag.marshall.islands:before{
  background-position:-36px -1639px;
}
i.flag.mk:before,
i.flag.macedonia:before{
  background-position:-36px -1665px;
}
i.flag.ml:before,
i.flag.mali:before{
  background-position:-36px -1691px;
}
i.flag.mm:before,
i.flag.myanmar:before,
i.flag.burma:before{
  background-position:-36px -1717px;
}
i.flag.mn:before,
i.flag.mongolia:before{
  background-position:-36px -1743px;
}
i.flag.mo:before,
i.flag.macau:before{
  background-position:-36px -1769px;
}
i.flag.mp:before,
i.flag.northern.mariana.islands:before{
  background-position:-36px -1795px;
}
i.flag.mq:before,
i.flag.martinique:before{
  background-position:-36px -1821px;
}
i.flag.mr:before,
i.flag.mauritania:before{
  background-position:-36px -1847px;
}
i.flag.ms:before,
i.flag.montserrat:before{
  background-position:-36px -1873px;
}
i.flag.mt:before,
i.flag.malta:before{
  background-position:-36px -1899px;
}
i.flag.mu:before,
i.flag.mauritius:before{
  background-position:-36px -1925px;
}
i.flag.mv:before,
i.flag.maldives:before{
  background-position:-36px -1951px;
}
i.flag.mw:before,
i.flag.malawi:before{
  background-position:-36px -1977px;
}
i.flag.mx:before,
i.flag.mexico:before{
  background-position:-72px 0px;
}
i.flag.my:before,
i.flag.malaysia:before{
  background-position:-72px -26px;
}
i.flag.mz:before,
i.flag.mozambique:before{
  background-position:-72px -52px;
}
i.flag.na:before,
i.flag.namibia:before{
  background-position:-72px -78px;
}
i.flag.nc:before,
i.flag.new.caledonia:before{
  background-position:-72px -104px;
}
i.flag.ne:before,
i.flag.niger:before{
  background-position:-72px -130px;
}
i.flag.nf:before,
i.flag.norfolk.island:before{
  background-position:-72px -156px;
}
i.flag.ng:before,
i.flag.nigeria:before{
  background-position:-72px -182px;
}
i.flag.ni:before,
i.flag.nicaragua:before{
  background-position:-72px -208px;
}
i.flag.nl:before,
i.flag.netherlands:before{
  background-position:-72px -234px;
}
i.flag.no:before,
i.flag.norway:before{
  background-position:-72px -260px;
}
i.flag.np:before,
i.flag.nepal:before{
  background-position:-72px -286px;
}
i.flag.nr:before,
i.flag.nauru:before{
  background-position:-72px -312px;
}
i.flag.nu:before,
i.flag.niue:before{
  background-position:-72px -338px;
}
i.flag.nz:before,
i.flag.new.zealand:before{
  background-position:-72px -364px;
}
i.flag.om:before,
i.flag.oman:before{
  background-position:-72px -390px;
}
i.flag.pa:before,
i.flag.panama:before{
  background-position:-72px -416px;
}
i.flag.pe:before,
i.flag.peru:before{
  background-position:-72px -442px;
}
i.flag.pf:before,
i.flag.french.polynesia:before{
  background-position:-72px -468px;
}
i.flag.pg:before,
i.flag.new.guinea:before{
  background-position:-72px -494px;
}
i.flag.ph:before,
i.flag.philippines:before{
  background-position:-72px -520px;
}
i.flag.pk:before,
i.flag.pakistan:before{
  background-position:-72px -546px;
}
i.flag.pl:before,
i.flag.poland:before{
  background-position:-72px -572px;
}
i.flag.pm:before,
i.flag.saint.pierre:before{
  background-position:-72px -598px;
}
i.flag.pn:before,
i.flag.pitcairn.islands:before{
  background-position:-72px -624px;
}
i.flag.pr:before,
i.flag.puerto.rico:before{
  background-position:-72px -650px;
}
i.flag.ps:before,
i.flag.palestine:before{
  background-position:-72px -676px;
}
i.flag.pt:before,
i.flag.portugal:before{
  background-position:-72px -702px;
}
i.flag.pw:before,
i.flag.palau:before{
  background-position:-72px -728px;
}
i.flag.py:before,
i.flag.paraguay:before{
  background-position:-72px -754px;
}
i.flag.qa:before,
i.flag.qatar:before{
  background-position:-72px -780px;
}
i.flag.re:before,
i.flag.reunion:before{
  background-position:-72px -806px;
}
i.flag.ro:before,
i.flag.romania:before{
  background-position:-72px -832px;
}
i.flag.rs:before,
i.flag.serbia:before{
  background-position:-72px -858px;
}
i.flag.ru:before,
i.flag.russia:before{
  background-position:-72px -884px;
}
i.flag.rw:before,
i.flag.rwanda:before{
  background-position:-72px -910px;
}
i.flag.sa:before,
i.flag.saudi.arabia:before{
  background-position:-72px -936px;
}
i.flag.sb:before,
i.flag.solomon.islands:before{
  background-position:-72px -962px;
}
i.flag.sc:before,
i.flag.seychelles:before{
  background-position:-72px -988px;
}
i.flag.gb.sct:before,
i.flag.scotland:before{
  background-position:-72px -1014px;
}
i.flag.sd:before,
i.flag.sudan:before{
  background-position:-72px -1040px;
}
i.flag.se:before,
i.flag.sweden:before{
  background-position:-72px -1066px;
}
i.flag.sg:before,
i.flag.singapore:before{
  background-position:-72px -1092px;
}
i.flag.sh:before,
i.flag.saint.helena:before{
  background-position:-72px -1118px;
}
i.flag.si:before,
i.flag.slovenia:before{
  background-position:-72px -1144px;
}
i.flag.sj:before,
i.flag.svalbard:before,
i.flag.jan.mayen:before{
  background-position:-72px -1170px;
}
i.flag.sk:before,
i.flag.slovakia:before{
  background-position:-72px -1196px;
}
i.flag.sl:before,
i.flag.sierra.leone:before{
  background-position:-72px -1222px;
}
i.flag.sm:before,
i.flag.san.marino:before{
  background-position:-72px -1248px;
}
i.flag.sn:before,
i.flag.senegal:before{
  background-position:-72px -1274px;
}
i.flag.so:before,
i.flag.somalia:before{
  background-position:-72px -1300px;
}
i.flag.sr:before,
i.flag.suriname:before{
  background-position:-72px -1326px;
}
i.flag.st:before,
i.flag.sao.tome:before{
  background-position:-72px -1352px;
}
i.flag.sv:before,
i.flag.el.salvador:before{
  background-position:-72px -1378px;
}
i.flag.sy:before,
i.flag.syria:before{
  background-position:-72px -1404px;
}
i.flag.sz:before,
i.flag.swaziland:before{
  background-position:-72px -1430px;
}
i.flag.tc:before,
i.flag.caicos.islands:before{
  background-position:-72px -1456px;
}
i.flag.td:before,
i.flag.chad:before{
  background-position:-72px -1482px;
}
i.flag.tf:before,
i.flag.french.territories:before{
  background-position:-72px -1508px;
}
i.flag.tg:before,
i.flag.togo:before{
  background-position:-72px -1534px;
}
i.flag.th:before,
i.flag.thailand:before{
  background-position:-72px -1560px;
}
i.flag.tj:before,
i.flag.tajikistan:before{
  background-position:-72px -1586px;
}
i.flag.tk:before,
i.flag.tokelau:before{
  background-position:-72px -1612px;
}
i.flag.tl:before,
i.flag.timorleste:before{
  background-position:-72px -1638px;
}
i.flag.tm:before,
i.flag.turkmenistan:before{
  background-position:-72px -1664px;
}
i.flag.tn:before,
i.flag.tunisia:before{
  background-position:-72px -1690px;
}
i.flag.to:before,
i.flag.tonga:before{
  background-position:-72px -1716px;
}
i.flag.tr:before,
i.flag.turkey:before{
  background-position:-72px -1742px;
}
i.flag.tt:before,
i.flag.trinidad:before{
  background-position:-72px -1768px;
}
i.flag.tv:before,
i.flag.tuvalu:before{
  background-position:-72px -1794px;
}
i.flag.tw:before,
i.flag.taiwan:before{
  background-position:-72px -1820px;
}
i.flag.tz:before,
i.flag.tanzania:before{
  background-position:-72px -1846px;
}
i.flag.ua:before,
i.flag.ukraine:before{
  background-position:-72px -1872px;
}
i.flag.ug:before,
i.flag.uganda:before{
  background-position:-72px -1898px;
}
i.flag.um:before,
i.flag.us.minor.islands:before{
  background-position:-72px -1924px;
}
i.flag.us:before,
i.flag.america:before,
i.flag.united.states:before{
  background-position:-72px -1950px;
}
i.flag.uy:before,
i.flag.uruguay:before{
  background-position:-72px -1976px;
}
i.flag.uz:before,
i.flag.uzbekistan:before{
  background-position:-108px 0px;
}
i.flag.va:before,
i.flag.vatican.city:before{
  background-position:-108px -26px;
}
i.flag.vc:before,
i.flag.saint.vincent:before{
  background-position:-108px -52px;
}
i.flag.ve:before,
i.flag.venezuela:before{
  background-position:-108px -78px;
}
i.flag.vg:before,
i.flag.british.virgin.islands:before{
  background-position:-108px -104px;
}
i.flag.vi:before,
i.flag.us.virgin.islands:before{
  background-position:-108px -130px;
}
i.flag.vn:before,
i.flag.vietnam:before{
  background-position:-108px -156px;
}
i.flag.vu:before,
i.flag.vanuatu:before{
  background-position:-108px -182px;
}
i.flag.gb.wls:before,
i.flag.wales:before{
  background-position:-108px -208px;
}
i.flag.wf:before,
i.flag.wallis.and.futuna:before{
  background-position:-108px -234px;
}
i.flag.ws:before,
i.flag.samoa:before{
  background-position:-108px -260px;
}
i.flag.ye:before,
i.flag.yemen:before{
  background-position:-108px -286px;
}
i.flag.yt:before,
i.flag.mayotte:before{
  background-position:-108px -312px;
}
i.flag.za:before,
i.flag.south.africa:before{
  background-position:-108px -338px;
}
i.flag.zm:before,
i.flag.zambia:before{
  background-position:-108px -364px;
}
i.flag.zw:before,
i.flag.zimbabwe:before{
  background-position:-108px -390px;
}
/*!
 * # Semantic UI - Header
 * http://github.com/semantic-org/semantic-ui/
 *
 *
 * Released under the MIT license
 * http://opensource.org/licenses/MIT
 *
 */
.ui.header{
  border:none;
  margin:calc(2rem - 0.1428571428571429em) 0em 1rem;
  padding:0em 0em;
  font-family:'Exo 2', 'Lato', Arial, Helvetica, sans-serif;
  font-weight:bold;
  line-height:1.28571429em;
  text-transform:none;
  color:#333333;
}
.ui.header:first-child{
  margin-top:-0.14285714em;
}
.ui.header:last-child{
  margin-bottom:0em;
}
.ui.header .sub.header{
  display:block;
  font-weight:normal;
  padding:0em;
  margin:0em;
  font-size:1rem;
  line-height:1.2em;
  color:rgba(0, 0, 0, 0.6);
}
.ui.header > .icon{
  display:table-cell;
  opacity:1;
  font-size:1.5em;
  padding-top:0.14285714em;
  vertical-align:middle;
}
.ui.header .icon:only-child{
  display:inline-block;
  padding:0em;
  margin-right:0.75rem;
}
.ui.header > .image,
.ui.header > img{
  display:inline-block;
  margin-top:0.14285714em;
  width:2.5em;
  height:auto;
  vertical-align:middle;
}
.ui.header > .image:only-child,
.ui.header > img:only-child{
  margin-right:0.75rem;
}
.ui.header .content{
  display:inline-block;
  vertical-align:top;
}
.ui.header > img + .content,
.ui.header > .image + .content{
  padding-left:0.75rem;
  vertical-align:middle;
}
.ui.header > .icon + .content{
  padding-left:0.75rem;
  display:table-cell;
  vertical-align:middle;
}
.ui.header .ui.label{
  font-size:'';
  margin-left:0.5rem;
  vertical-align:middle;
}
.ui.header + p{
  margin-top:0em;
}
h1.ui.header{
  font-size:3rem;
}
h2.ui.header{
  font-size:2.5rem;
}
h3.ui.header{
  font-size:2rem;
}
h4.ui.header{
  font-size:1.6rem;
}
h5.ui.header{
  font-size:1.4rem;
}
h1.ui.header .sub.header{
  font-size:1.1rem;
}
h2.ui.header .sub.header{
  font-size:1.1rem;
}
h3.ui.header .sub.header{
  font-size:1rem;
}
h4.ui.header .sub.header{
  font-size:1rem;
}
h5.ui.header .sub.header{
  font-size:0.9rem;
}
.ui.huge.header{
  min-height:1em;
  font-size:3em;
}
.ui.large.header{
  font-size:2.5em;
}
.ui.medium.header{
  font-size:2em;
}
.ui.small.header{
  font-size:1.6em;
}
.ui.tiny.header{
  font-size:1.4em;
}
.ui.huge.header .sub.header{
  font-size:1.1rem;
}
.ui.large.header .sub.header{
  font-size:1.1rem;
}
.ui.header .sub.header{
  font-size:1rem;
}
.ui.small.header .sub.header{
  font-size:1rem;
}
.ui.tiny.header .sub.header{
  font-size:0.9rem;
}
.ui.sub.header{
  padding:0em;
  margin-bottom:0.2rem;
  font-weight:bold;
  font-size:0.9em;
  text-transform:uppercase;
  color:'';
}
.ui.small.sub.header{
  font-size:0.8em;
}
.ui.sub.header{
  font-size:0.9em;
}
.ui.large.sub.header{
  font-size:0.9em;
}
.ui.huge.sub.header{
  font-size:1em;
}
.ui.icon.header{
  display:inline-block;
  text-align:center;
  margin:2rem 0em 1rem;
}
.ui.icon.header:after{
  content:'';
  display:block;
  height:0px;
  clear:both;
  visibility:hidden;
}
.ui.icon.header:first-child{
  margin-top:0em;
}
.ui.icon.header .icon{
  float:none;
  display:block;
  width:auto;
  height:auto;
  line-height:1;
  padding:0em;
  font-size:3em;
  margin:0em auto 0.5rem;
  opacity:1;
}
.ui.icon.header .content{
  display:block;
  padding:0em;
}
.ui.icon.header .circular.icon{
  font-size:2em;
}
.ui.icon.header .square.icon{
  font-size:2em;
}
.ui.block.icon.header .icon{
  margin-bottom:0em;
}
.ui.icon.header.aligned{
  margin-left:auto;
  margin-right:auto;
  display:block;
}
.ui.disabled.header{
  opacity:0.45;
}
.ui.inverted.header{
  color:#ffffff;
}
.ui.inverted.header .sub.header{
  color:rgba(255, 255, 255, 0.8);
}
.ui.inverted.attached.header{
  background:#545454 linear-gradient(transparent, rgba(0, 0, 0, 0.05));
  box-shadow:none;
  border-color:transparent;
}
.ui.inverted.block.header{
  background:#545454 linear-gradient(transparent, rgba(0, 0, 0, 0.05));
  box-shadow:none;
}
.ui.inverted.block.header{
  border-bottom:none;
}
.ui.red.header{
  color:#de3a3e !important;
}
a.ui.red.header:hover{
  color:#e31b20 !important;
}
.ui.red.dividing.header{
  border-bottom:2px solid #de3a3e;
}
.ui.inverted.red.header{
  color:#FF695E !important;
}
a.ui.inverted.red.header:hover{
  color:#ff5144 !important;
}
.ui.orange.header{
  color:#ff9533 !important;
}
a.ui.orange.header:hover{
  color:#ff8819 !important;
}
.ui.orange.dividing.header{
  border-bottom:2px solid #ff9533;
}
.ui.inverted.orange.header{
  color:#FF851B !important;
}
a.ui.inverted.orange.header:hover{
  color:#ff7701 !important;
}
.ui.olive.header{
  color:#B5CC18 !important;
}
a.ui.olive.header:hover{
  color:#a7bd0d !important;
}
.ui.olive.dividing.header{
  border-bottom:2px solid #B5CC18;
}
.ui.inverted.olive.header{
  color:#D9E778 !important;
}
a.ui.inverted.olive.header:hover{
  color:#d8ea5c !important;
}
.ui.yellow.header{
  color:#FBBD08 !important;
}
a.ui.yellow.header:hover{
  color:#eaae00 !important;
}
.ui.yellow.dividing.header{
  border-bottom:2px solid #FBBD08;
}
.ui.inverted.yellow.header{
  color:#FFE21F !important;
}
a.ui.inverted.yellow.header:hover{
  color:#ffdf05 !important;
}
.ui.green.header{
  color:#19a531 !important;
}
a.ui.green.header:hover{
  color:#109526 !important;
}
.ui.green.dividing.header{
  border-bottom:2px solid #19a531;
}
.ui.inverted.green.header{
  color:#2ECC40 !important;
}
a.ui.inverted.green.header:hover{
  color:#22be34 !important;
}
.ui.teal.header{
  color:#00B5AD !important;
}
a.ui.teal.header:hover{
  color:#009c95 !important;
}
.ui.teal.dividing.header{
  border-bottom:2px solid #00B5AD;
}
.ui.inverted.teal.header{
  color:#6DFFFF !important;
}
a.ui.inverted.teal.header:hover{
  color:#54ffff !important;
}
.ui.blue.header{
  color:#3f51b5 !important;
}
a.ui.blue.header:hover{
  color:#3345a7 !important;
}
.ui.blue.dividing.header{
  border-bottom:2px solid #3f51b5;
}
.ui.inverted.blue.header{
  color:#54C8FF !important;
}
a.ui.inverted.blue.header:hover{
  color:#3ac0ff !important;
}
.ui.violet.header{
  color:#6435C9 !important;
}
a.ui.violet.header:hover{
  color:#5829bb !important;
}
.ui.violet.dividing.header{
  border-bottom:2px solid #6435C9;
}
.ui.inverted.violet.header{
  color:#A291FB !important;
}
a.ui.inverted.violet.header:hover{
  color:#8a73ff !important;
}
.ui.purple.header{
  color:#A333C8 !important;
}
a.ui.purple.header:hover{
  color:#9627ba !important;
}
.ui.purple.dividing.header{
  border-bottom:2px solid #A333C8;
}
.ui.inverted.purple.header{
  color:#DC73FF !important;
}
a.ui.inverted.purple.header:hover{
  color:#d65aff !important;
}
.ui.pink.header{
  color:#E03997 !important;
}
a.ui.pink.header:hover{
  color:#e61a8d !important;
}
.ui.pink.dividing.header{
  border-bottom:2px solid #E03997;
}
.ui.inverted.pink.header{
  color:#FF8EDF !important;
}
a.ui.inverted.pink.header:hover{
  color:#ff74d8 !important;
}
.ui.brown.header{
  color:#A5673F !important;
}
a.ui.brown.header:hover{
  color:#975b33 !important;
}
.ui.brown.dividing.header{
  border-bottom:2px solid #A5673F;
}
.ui.inverted.brown.header{
  color:#D67C1C !important;
}
a.ui.inverted.brown.header:hover{
  color:#c86f11 !important;
}
.ui.grey.header{
  color:#767676 !important;
}
a.ui.grey.header:hover{
  color:#838383 !important;
}
.ui.grey.dividing.header{
  border-bottom:2px solid #767676;
}
.ui.inverted.grey.header{
  color:#DCDDDE !important;
}
a.ui.inverted.grey.header:hover{
  color:#cfd0d2 !important;
}
.ui.left.aligned.header{
  text-align:left;
}
.ui.right.aligned.header{
  text-align:right;
}
.ui.centered.header,
.ui.center.aligned.header{
  text-align:center;
}
.ui.justified.header{
  text-align:justify;
}
.ui.justified.header:after{
  display:inline-block;
  content:'';
  width:100%;
}
.ui.floated.header,
.ui[class*="left floated"].header{
  float:left;
  margin-top:0em;
  margin-right:0.5em;
}
.ui[class*="right floated"].header{
  float:right;
  margin-top:0em;
  margin-left:0.5em;
}
.ui.fitted.header{
  padding:0em;
}
.ui.dividing.header{
  padding-bottom:0.3rem;
  border-bottom:1px solid rgba(34, 36, 38, 0.15);
}
.ui.dividing.header .sub.header{
  padding-bottom:0.3rem;
}
.ui.dividing.header .icon{
  margin-bottom:0em;
}
.ui.inverted.dividing.header{
  border-bottom-color:rgba(255, 255, 255, 0.1);
}
.ui.block.header{
  background:#F3F4F5;
  padding:0.8rem 1rem;
  box-shadow:none;
  border:1px solid #D4D4D5;
  border-radius:0.4rem;
}
.ui.tiny.block.header{
  font-size:0.9rem;
}
.ui.small.block.header{
  font-size:0.9rem;
}
.ui.block.header:not(h1):not(h2):not(h3):not(h4):not(h5):not(h6){
  font-size:1rem;
}
.ui.large.block.header{
  font-size:1.1rem;
}
.ui.huge.block.header{
  font-size:1.4rem;
}
.ui.attached.header{
  background:#ffffff;
  padding:0.8rem 1rem;
  margin-left:-1px;
  margin-right:-1px;
  box-shadow:none;
  border:1px solid #D4D4D5;
}
.ui.attached.block.header{
  background:#F3F4F5;
}
.ui.attached:not(.top):not(.bottom).header{
  margin-top:0em;
  margin-bottom:0em;
  border-top:none;
  border-radius:0em;
}
.ui.top.attached.header{
  margin-bottom:0em;
  border-radius:0.4rem 0.4rem 0em 0em;
}
.ui.bottom.attached.header{
  margin-top:0em;
  border-top:none;
  border-radius:0em 0em 0.4rem 0.4rem;
}
.ui.tiny.attached.header{
  font-size:0.9em;
}
.ui.small.attached.header{
  font-size:0.9em;
}
.ui.attached.header:not(h1):not(h2):not(h3):not(h4):not(h5):not(h6){
  font-size:1em;
}
.ui.large.attached.header{
  font-size:1.1em;
}
.ui.huge.attached.header{
  font-size:1.4em;
}
.ui.header:not(h1):not(h2):not(h3):not(h4):not(h5):not(h6){
  font-size:2em;
}
/*!
 * # Semantic UI - Icon
 * http://github.com/semantic-org/semantic-ui/
 *
 *
 * Released under the MIT license
 * http://opensource.org/licenses/MIT
 *
 */
@font-face{
  font-family:'Icons';
  src:url(/dev-build/fonts/icons.09b9015b.eot);
  src:url(/dev-build/fonts/icons.09b9015b.eot?#iefix) format('embedded-opentype'), url(/dev-build/fonts/icons.0317d582.woff2) format('woff2'), url(/dev-build/fonts/icons.f7f1738c.woff) format('woff'), url(/dev-build/fonts/icons.f0af1680.ttf) format('truetype'), url(/dev-build/images/icons.ed629890.svg#icons) format('svg');
  font-style:normal;
  font-weight:normal;
  font-variant:normal;
  text-decoration:inherit;
  text-transform:none;
  font-display:swap;
}
i.icon{
  display:inline-block;
  opacity:1;
  margin:0em 0.25rem 0em 0em;
  width:1.18em;
  height:1em;
  font-family:'Icons';
  font-style:normal;
  font-weight:normal;
  text-decoration:inherit;
  text-align:center;
  speak:none;
  font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  -webkit-font-smoothing:antialiased;
  -webkit-backface-visibility:hidden;
          backface-visibility:hidden;
}
i.icon:before{
  background:none !important;
}
i.icon.loading{
  height:1em;
  line-height:1;
  animation:icon-loading 2s linear infinite;
}
@keyframes icon-loading{
  from{
    transform:rotate(0deg);
  }
  to{
    transform:rotate(360deg);
  }
}
i.icon.hover{
  opacity:1 !important;
}
i.icon.active{
  opacity:1 !important;
}
i.emphasized.icon{
  opacity:1 !important;
}
i.disabled.icon{
  opacity:0.45 !important;
}
i.fitted.icon{
  width:auto;
  margin:0em;
}
i.link.icon,
i.link.icons{
  cursor:pointer;
  opacity:0.8;
  transition:opacity 0.1s ease;
}
i.link.icon:hover,
i.link.icons:hover{
  opacity:1 !important;
}
i.circular.icon{
  border-radius:500em !important;
  line-height:1 !important;
  padding:0.5em 0.5em !important;
  box-shadow:0em 0em 0em 0.1em rgba(0, 0, 0, 0.1) inset;
  width:2em !important;
  height:2em !important;
}
i.circular.inverted.icon{
  border:none;
  box-shadow:none;
}
i.flipped.icon,
i.horizontally.flipped.icon{
  transform:scale(-1, 1);
}
i.vertically.flipped.icon{
  transform:scale(1, -1);
}
i.rotated.icon,
i.right.rotated.icon,
i.clockwise.rotated.icon{
  transform:rotate(90deg);
}
i.left.rotated.icon,
i.counterclockwise.rotated.icon{
  transform:rotate(-90deg);
}
i.bordered.icon{
  line-height:1;
  vertical-align:baseline;
  width:2em;
  height:2em;
  padding:0.5em 0.41em !important;
  box-shadow:0em 0em 0em 0.1em rgba(0, 0, 0, 0.1) inset;
}
i.bordered.inverted.icon{
  border:none;
  box-shadow:none;
}
i.inverted.bordered.icon,
i.inverted.circular.icon{
  background-color:#000000 !important;
  color:#ffffff !important;
}
i.inverted.icon{
  color:#ffffff;
}
i.red.icon{
  color:#de3a3e !important;
}
i.inverted.red.icon{
  color:#FF695E !important;
}
i.inverted.bordered.red.icon,
i.inverted.circular.red.icon{
  background-color:#de3a3e !important;
  color:#ffffff !important;
}
i.orange.icon{
  color:#ff9533 !important;
}
i.inverted.orange.icon{
  color:#FF851B !important;
}
i.inverted.bordered.orange.icon,
i.inverted.circular.orange.icon{
  background-color:#ff9533 !important;
  color:#ffffff !important;
}
i.yellow.icon{
  color:#FBBD08 !important;
}
i.inverted.yellow.icon{
  color:#FFE21F !important;
}
i.inverted.bordered.yellow.icon,
i.inverted.circular.yellow.icon{
  background-color:#FBBD08 !important;
  color:#ffffff !important;
}
i.olive.icon{
  color:#B5CC18 !important;
}
i.inverted.olive.icon{
  color:#D9E778 !important;
}
i.inverted.bordered.olive.icon,
i.inverted.circular.olive.icon{
  background-color:#B5CC18 !important;
  color:#ffffff !important;
}
i.green.icon{
  color:#19a531 !important;
}
i.inverted.green.icon{
  color:#2ECC40 !important;
}
i.inverted.bordered.green.icon,
i.inverted.circular.green.icon{
  background-color:#19a531 !important;
  color:#ffffff !important;
}
i.teal.icon{
  color:#00B5AD !important;
}
i.inverted.teal.icon{
  color:#6DFFFF !important;
}
i.inverted.bordered.teal.icon,
i.inverted.circular.teal.icon{
  background-color:#00B5AD !important;
  color:#ffffff !important;
}
i.blue.icon{
  color:#3f51b5 !important;
}
i.inverted.blue.icon{
  color:#54C8FF !important;
}
i.inverted.bordered.blue.icon,
i.inverted.circular.blue.icon{
  background-color:#3f51b5 !important;
  color:#ffffff !important;
}
i.violet.icon{
  color:#6435C9 !important;
}
i.inverted.violet.icon{
  color:#A291FB !important;
}
i.inverted.bordered.violet.icon,
i.inverted.circular.violet.icon{
  background-color:#6435C9 !important;
  color:#ffffff !important;
}
i.purple.icon{
  color:#A333C8 !important;
}
i.inverted.purple.icon{
  color:#DC73FF !important;
}
i.inverted.bordered.purple.icon,
i.inverted.circular.purple.icon{
  background-color:#A333C8 !important;
  color:#ffffff !important;
}
i.pink.icon{
  color:#E03997 !important;
}
i.inverted.pink.icon{
  color:#FF8EDF !important;
}
i.inverted.bordered.pink.icon,
i.inverted.circular.pink.icon{
  background-color:#E03997 !important;
  color:#ffffff !important;
}
i.brown.icon{
  color:#A5673F !important;
}
i.inverted.brown.icon{
  color:#D67C1C !important;
}
i.inverted.bordered.brown.icon,
i.inverted.circular.brown.icon{
  background-color:#A5673F !important;
  color:#ffffff !important;
}
i.grey.icon{
  color:#767676 !important;
}
i.inverted.grey.icon{
  color:#DCDDDE !important;
}
i.inverted.bordered.grey.icon,
i.inverted.circular.grey.icon{
  background-color:#767676 !important;
  color:#ffffff !important;
}
i.black.icon{
  color:#000000 !important;
}
i.inverted.black.icon{
  color:#545454 !important;
}
i.inverted.bordered.black.icon,
i.inverted.circular.black.icon{
  background-color:#000000 !important;
  color:#ffffff !important;
}
i.mini.icon,
i.mini.icons{
  line-height:1;
  font-size:0.4em;
}
i.tiny.icon,
i.tiny.icons{
  line-height:1;
  font-size:0.5em;
}
i.small.icon,
i.small.icons{
  line-height:1;
  font-size:0.75em;
}
i.icon,
i.icons{
  font-size:1em;
}
i.large.icon,
i.large.icons{
  line-height:1;
  vertical-align:middle;
  font-size:1.5em;
}
i.big.icon,
i.big.icons{
  line-height:1;
  vertical-align:middle;
  font-size:2em;
}
i.huge.icon,
i.huge.icons{
  line-height:1;
  vertical-align:middle;
  font-size:4em;
}
i.massive.icon,
i.massive.icons{
  line-height:1;
  vertical-align:middle;
  font-size:8em;
}
i.icons{
  display:inline-block;
  position:relative;
  line-height:1;
}
i.icons .icon{
  position:absolute;
  top:50%;
  left:50%;
  transform:translateX(-50%) translateY(-50%);
  margin:0em;
  margin:0;
}
i.icons .icon:first-child{
  position:static;
  width:auto;
  height:auto;
  vertical-align:top;
  transform:none;
  margin-right:0.25rem;
}
i.icons .corner.icon{
  top:auto;
  left:auto;
  right:0;
  bottom:0;
  transform:none;
  font-size:0.45em;
  text-shadow:-1px -1px 0 #ffffff, 1px -1px 0 #ffffff, -1px 1px 0 #ffffff, 1px 1px 0 #ffffff;
}
i.icons .inverted.corner.icon{
  text-shadow:-1px -1px 0 #000000, 1px -1px 0 #000000, -1px 1px 0 #000000, 1px 1px 0 #000000;
}
i.icon.american.sign.language.interpreting:before{
  content:"\f2a3";
}
i.icon.assistive.listening.systems:before{
  content:"\f2a2";
}
i.icon.audio.description:before{
  content:"\f29e";
}
i.icon.blind:before{
  content:"\f29d";
}
i.icon.braille:before{
  content:"\f2a1";
}
i.icon.closed.captioning.outline:before{
  content:"\f327";
}
i.icon.closed.captioning:before{
  content:"\f20a";
}
i.icon.deaf:before{
  content:"\f2a4";
}
i.icon.low.vision:before{
  content:"\f2a8";
}
i.icon.phone.volume:before{
  content:"\f2a0";
}
i.icon.question.circle.outline:before{
  content:"\f628";
}
i.icon.question.circle:before{
  content:"\f059";
}
i.icon.sign.language:before{
  content:"\f2a7";
}
i.icon.tty:before{
  content:"\f1e4";
}
i.icon.universal.access:before{
  content:"\f29a";
}
i.icon.wheelchair:before{
  content:"\f193";
}
i.icon.angle.double.down:before{
  content:"\f103";
}
i.icon.angle.double.left:before{
  content:"\f100";
}
i.icon.angle.double.right:before{
  content:"\f101";
}
i.icon.angle.double.up:before{
  content:"\f102";
}
i.icon.angle.down:before{
  content:"\f107";
}
i.icon.angle.left:before{
  content:"\f104";
}
i.icon.angle.right:before{
  content:"\f105";
}
i.icon.angle.up:before{
  content:"\f106";
}
i.icon.arrow.alternate.circle.down.outline:before{
  content:"\f608";
}
i.icon.arrow.alternate.circle.down:before{
  content:"\f358";
}
i.icon.arrow.alternate.circle.left.outline:before{
  content:"\f605";
}
i.icon.arrow.alternate.circle.left:before{
  content:"\f359";
}
i.icon.arrow.alternate.circle.right.outline:before{
  content:"\f304";
}
i.icon.arrow.alternate.circle.right:before{
  content:"\f35a";
}
i.icon.arrow.alternate.circle.up.outline:before{
  content:"\f305";
}
i.icon.arrow.alternate.circle.up:before{
  content:"\f35b";
}
i.icon.arrow.circle.down:before{
  content:"\f0ab";
}
i.icon.arrow.circle.left:before{
  content:"\f0a8";
}
i.icon.arrow.circle.right:before{
  content:"\f0a9";
}
i.icon.arrow.circle.up:before{
  content:"\f0aa";
}
i.icon.arrow.down:before{
  content:"\f063";
}
i.icon.arrow.left:before{
  content:"\f060";
}
i.icon.arrow.right:before{
  content:"\f061";
}
i.icon.arrow.up:before{
  content:"\f062";
}
i.icon.arrows.alternate.horizontal:before{
  content:"\f337";
}
i.icon.arrows.alternate.vertical:before{
  content:"\f338";
}
i.icon.arrows.alternate:before{
  content:"\f0b2";
}
i.icon.caret.down:before{
  content:"\f0d7";
}
i.icon.caret.left:before{
  content:"\f0d9";
}
i.icon.caret.right:before{
  content:"\f0da";
}
i.icon.caret.square.down.outline:before{
  content:"\f316";
}
i.icon.caret.square.down:before{
  content:"\f150";
}
i.icon.caret.square.left.outline:before{
  content:"\f317";
}
i.icon.caret.square.left:before{
  content:"\f191";
}
i.icon.caret.square.right.outline:before{
  content:"\f318";
}
i.icon.caret.square.right:before{
  content:"\f152";
}
i.icon.caret.square.up.outline:before{
  content:"\f319";
}
i.icon.caret.square.up:before{
  content:"\f151";
}
i.icon.caret.up:before{
  content:"\f0d8";
}
i.icon.cart.arrow.down:before{
  content:"\f218";
}
i.icon.chart.line:before{
  content:"\f201";
}
i.icon.chevron.circle.down:before{
  content:"\f13a";
}
i.icon.chevron.circle.left:before{
  content:"\f137";
}
i.icon.chevron.circle.right:before{
  content:"\f138";
}
i.icon.chevron.circle.up:before{
  content:"\f139";
}
i.icon.chevron.down:before{
  content:"\f078";
}
i.icon.chevron.left:before{
  content:"\f053";
}
i.icon.chevron.right:before{
  content:"\f054";
}
i.icon.chevron.up:before{
  content:"\f077";
}
i.icon.cloud.download.alternate:before{
  content:"\f600";
}
i.icon.cloud.upload.alternate:before{
  content:"\f601";
}
i.icon.download:before{
  content:"\f019";
}
i.icon.exchange.alternate:before{
  content:"\f362";
}
i.icon.expand.arrows.alternate:before{
  content:"\f31e";
}
i.icon.external.link.alternate:before{
  content:"\f35d";
}
i.icon.external.link.square.alternate:before{
  content:"\f360";
}
i.icon.hand.point.down.outline:before{
  content:"\f602";
}
i.icon.hand.point.down:before{
  content:"\f0a7";
}
i.icon.hand.point.left.outline:before{
  content:"\f361";
}
i.icon.hand.point.left:before{
  content:"\f0a5";
}
i.icon.hand.point.right.outline:before{
  content:"\f362";
}
i.icon.hand.point.right:before{
  content:"\f0a4";
}
i.icon.hand.point.up.outline:before{
  content:"\f363";
}
i.icon.hand.point.up:before{
  content:"\f0a6";
}
i.icon.hand.pointer.outline:before{
  content:"\f364";
}
i.icon.hand.pointer:before{
  content:"\f25a";
}
i.icon.history:before{
  content:"\f1da";
}
i.icon.level.down.alternate:before{
  content:"\f3be";
}
i.icon.level.up.alternate:before{
  content:"\f3bf";
}
i.icon.location.arrow:before{
  content:"\f124";
}
i.icon.long.arrow.alternate.down:before{
  content:"\f309";
}
i.icon.long.arrow.alternate.left:before{
  content:"\f30a";
}
i.icon.long.arrow.alternate.right:before{
  content:"\f30b";
}
i.icon.long.arrow.alternate.up:before{
  content:"\f30c";
}
i.icon.mouse.pointer:before{
  content:"\f245";
}
i.icon.play:before{
  content:"\f04b";
}
i.icon.random:before{
  content:"\f074";
}
i.icon.recycle:before{
  content:"\f1b8";
}
i.icon.redo.alternate:before{
  content:"\f2f9";
}
i.icon.redo:before{
  content:"\f01e";
}
i.icon.reply.all:before{
  content:"\f122";
}
i.icon.reply:before{
  content:"\f3e5";
}
i.icon.retweet:before{
  content:"\f079";
}
i.icon.share.square.outline:before{
  content:"\f631";
}
i.icon.share.square:before{
  content:"\f14d";
}
i.icon.share:before{
  content:"\f064";
}
i.icon.sign.in.alternate:before{
  content:"\f2f6";
}
i.icon.sign.out.alternate:before{
  content:"\f2f5";
}
i.icon.sort.alphabet.down:before{
  content:"\f15d";
}
i.icon.sort.alphabet.up:before{
  content:"\f15e";
}
i.icon.sort.amount.down:before{
  content:"\f160";
}
i.icon.sort.amount.up:before{
  content:"\f161";
}
i.icon.sort.down:before{
  content:"\f0dd";
}
i.icon.sort.numeric.down:before{
  content:"\f162";
}
i.icon.sort.numeric.up:before{
  content:"\f163";
}
i.icon.sort.up:before{
  content:"\f0de";
}
i.icon.sort:before{
  content:"\f0dc";
}
i.icon.sync.alternate:before{
  content:"\f2f1";
}
i.icon.sync:before{
  content:"\f021";
}
i.icon.text.height:before{
  content:"\f034";
}
i.icon.text.width:before{
  content:"\f035";
}
i.icon.undo.alternate:before{
  content:"\f2ea";
}
i.icon.undo:before{
  content:"\f0e2";
}
i.icon.upload:before{
  content:"\f093";
}
i.icon.backward:before{
  content:"\f04a";
}
i.icon.circle.outline:before{
  content:"\f323";
}
i.icon.circle:before{
  content:"\f111";
}
i.icon.compress:before{
  content:"\f066";
}
i.icon.eject:before{
  content:"\f052";
}
i.icon.expand:before{
  content:"\f065";
}
i.icon.fast.backward:before{
  content:"\f049";
}
i.icon.fast.forward:before{
  content:"\f050";
}
i.icon.file.audio.outline:before{
  content:"\f342";
}
i.icon.file.audio:before{
  content:"\f1c7";
}
i.icon.file.video.outline:before{
  content:"\f348";
}
i.icon.file.video:before{
  content:"\f1c8";
}
i.icon.film:before{
  content:"\f008";
}
i.icon.forward:before{
  content:"\f04e";
}
i.icon.headphones:before{
  content:"\f025";
}
i.icon.microphone.slash:before{
  content:"\f131";
}
i.icon.microphone:before{
  content:"\f130";
}
i.icon.music:before{
  content:"\f001";
}
i.icon.pause.circle.outline:before{
  content:"\f625";
}
i.icon.pause.circle:before{
  content:"\f28b";
}
i.icon.pause:before{
  content:"\f04c";
}
i.icon.play.circle.outline:before{
  content:"\f626";
}
i.icon.play.circle:before{
  content:"\f144";
}
i.icon.podcast:before{
  content:"\f2ce";
}
i.icon.rss.square:before{
  content:"\f143";
}
i.icon.rss:before{
  content:"\f09e";
}
i.icon.step.backward:before{
  content:"\f048";
}
i.icon.step.forward:before{
  content:"\f051";
}
i.icon.stop.circle.outline:before{
  content:"\f636";
}
i.icon.stop.circle:before{
  content:"\f28d";
}
i.icon.stop:before{
  content:"\f04d";
}
i.icon.video:before{
  content:"\f03d";
}
i.icon.volume.down:before{
  content:"\f027";
}
i.icon.volume.off:before{
  content:"\f026";
}
i.icon.volume.up:before{
  content:"\f028";
}
i.icon.address.book.outline:before{
  content:"\f300";
}
i.icon.address.book:before{
  content:"\f2b9";
}
i.icon.address.card.outline:before{
  content:"\f301";
}
i.icon.address.card:before{
  content:"\f2bb";
}
i.icon.archive:before{
  content:"\f187";
}
i.icon.balance.scale:before{
  content:"\f24e";
}
i.icon.birthday.cake:before{
  content:"\f1fd";
}
i.icon.book:before{
  content:"\f02d";
}
i.icon.briefcase:before{
  content:"\f0b1";
}
i.icon.building.outline:before{
  content:"\f603";
}
i.icon.building:before{
  content:"\f1ad";
}
i.icon.bullhorn:before{
  content:"\f0a1";
}
i.icon.calculator:before{
  content:"\f1ec";
}
i.icon.calendar.alternate.outline:before{
  content:"\f310";
}
i.icon.calendar.alternate:before{
  content:"\f073";
}
i.icon.calendar.outline:before{
  content:"\f315";
}
i.icon.calendar:before{
  content:"\f133";
}
i.icon.certificate:before{
  content:"\f0a3";
}
i.icon.chart.area:before{
  content:"\f1fe";
}
i.icon.chart.bar.outline:before{
  content:"\f320";
}
i.icon.chart.bar:before{
  content:"\f080";
}
i.icon.chart.pie:before{
  content:"\f200";
}
i.icon.clipboard.outline:before{
  content:"\f324";
}
i.icon.clipboard:before{
  content:"\f328";
}
i.icon.coffee:before{
  content:"\f0f4";
}
i.icon.columns:before{
  content:"\f0db";
}
i.icon.compass.outline:before{
  content:"\f331";
}
i.icon.compass:before{
  content:"\f14e";
}
i.icon.copy.outline:before{
  content:"\f332";
}
i.icon.copy:before{
  content:"\f0c5";
}
i.icon.copyright.outline:before{
  content:"\f333";
}
i.icon.copyright:before{
  content:"\f1f9";
}
i.icon.cut:before{
  content:"\f0c4";
}
i.icon.edit.outline:before{
  content:"\f336";
}
i.icon.edit:before{
  content:"\f044";
}
i.icon.envelope.open.outline:before{
  content:"\f337";
}
i.icon.envelope.open:before{
  content:"\f2b6";
}
i.icon.envelope.outline:before{
  content:"\f338";
}
i.icon.envelope.square:before{
  content:"\f199";
}
i.icon.envelope:before{
  content:"\f0e0";
}
i.icon.eraser:before{
  content:"\f12d";
}
i.icon.fax:before{
  content:"\f1ac";
}
i.icon.file.alternate.outline:before{
  content:"\f340";
}
i.icon.file.alternate:before{
  content:"\f15c";
}
i.icon.file.outline:before{
  content:"\f350";
}
i.icon.file:before{
  content:"\f15b";
}
i.icon.folder.open.outline:before{
  content:"\f352";
}
i.icon.folder.open:before{
  content:"\f07c";
}
i.icon.folder.outline:before{
  content:"\f353";
}
i.icon.folder:before{
  content:"\f07b";
}
i.icon.globe:before{
  content:"\f0ac";
}
i.icon.industry:before{
  content:"\f275";
}
i.icon.paperclip:before{
  content:"\f0c6";
}
i.icon.paste:before{
  content:"\f0ea";
}
i.icon.pen.square:before{
  content:"\f14b";
}
i.icon.pencil.alternate:before{
  content:"\f303";
}
i.icon.percent:before{
  content:"\f295";
}
i.icon.phone.square:before{
  content:"\f098";
}
i.icon.phone:before{
  content:"\f095";
}
i.icon.registered.outline:before{
  content:"\f629";
}
i.icon.registered:before{
  content:"\f25d";
}
i.icon.save.outline:before{
  content:"\f630";
}
i.icon.save:before{
  content:"\f0c7";
}
i.icon.sitemap:before{
  content:"\f0e8";
}
i.icon.sticky.note.outline:before{
  content:"\f635";
}
i.icon.sticky.note:before{
  content:"\f249";
}
i.icon.suitcase:before{
  content:"\f0f2";
}
i.icon.table:before{
  content:"\f0ce";
}
i.icon.tag:before{
  content:"\f02b";
}
i.icon.tags:before{
  content:"\f02c";
}
i.icon.tasks:before{
  content:"\f0ae";
}
i.icon.thumbtack:before{
  content:"\f08d";
}
i.icon.trademark:before{
  content:"\f25c";
}
i.icon.chess:before{
  content:"\f439";
}
i.icon.chess.bishop:before{
  content:"\f43a";
}
i.icon.chess.board:before{
  content:"\f43c";
}
i.icon.chess.king:before{
  content:"\f43f";
}
i.icon.chess.knight:before{
  content:"\f441";
}
i.icon.chess.pawn:before{
  content:"\f443";
}
i.icon.chess.queen:before{
  content:"\f445";
}
i.icon.chess.rock:before{
  content:"\f447";
}
i.icon.square.full:before{
  content:"\f45c";
}
i.icon.barcode:before{
  content:"\f02a";
}
i.icon.bath:before{
  content:"\f2cd";
}
i.icon.bug:before{
  content:"\f188";
}
i.icon.code:before{
  content:"\f121";
}
i.icon.code.branch:before{
  content:"\f126";
}
i.icon.file.code.outline:before{
  content:"\f343";
}
i.icon.file.code:before{
  content:"\f1c9";
}
i.icon.filter:before{
  content:"\f0b0";
}
i.icon.fire.extinguisher:before{
  content:"\f134";
}
i.icon.keyboard.outline:before{
  content:"\f377";
}
i.icon.keyboard:before{
  content:"\f11c";
}
i.icon.microchip:before{
  content:"\f2db";
}
i.icon.qrcode:before{
  content:"\f029";
}
i.icon.shield.alternate:before{
  content:"\f3ed";
}
i.icon.terminal:before{
  content:"\f120";
}
i.icon.user.secret:before{
  content:"\f21b";
}
i.icon.window.close.outline:before{
  content:"\f642";
}
i.icon.window.close:before{
  content:"\f410";
}
i.icon.window.maximize.outline:before{
  content:"\f644";
}
i.icon.window.maximize:before{
  content:"\f2d0";
}
i.icon.window.minimize.outline:before{
  content:"\f643";
}
i.icon.window.minimize:before{
  content:"\f2d1";
}
i.icon.window.restore.outline:before{
  content:"\f416";
}
i.icon.window.restore:before{
  content:"\f2d2";
}
i.icon.at:before{
  content:"\f1fa";
}
i.icon.bell.outline:before{
  content:"\f307";
}
i.icon.bell.slash.outline:before{
  content:"\f306";
}
i.icon.bell.slash:before{
  content:"\f1f6";
}
i.icon.bell:before{
  content:"\f0f3";
}
i.icon.comment.alternate.outline:before{
  content:"\f604";
}
i.icon.comment.alternate:before{
  content:"\f27a";
}
i.icon.comment.outline:before{
  content:"\f329";
}
i.icon.comment:before{
  content:"\f075";
}
i.icon.comments.outline:before{
  content:"\f330";
}
i.icon.comments:before{
  content:"\f086";
}
i.icon.inbox:before{
  content:"\f01c";
}
i.icon.language:before{
  content:"\f1ab";
}
i.icon.mobile.alternate:before{
  content:"\f3cd";
}
i.icon.mobile:before{
  content:"\f10b";
}
i.icon.paper.plane.outline:before{
  content:"\f390";
}
i.icon.paper.plane:before{
  content:"\f1d8";
}
i.icon.wifi:before{
  content:"\f1eb";
}
i.icon.desktop:before{
  content:"\f108";
}
i.icon.hdd.outline:before{
  content:"\f611";
}
i.icon.hdd:before{
  content:"\f0a0";
}
i.icon.laptop:before{
  content:"\f109";
}
i.icon.plug:before{
  content:"\f1e6";
}
i.icon.power.off:before{
  content:"\f011";
}
i.icon.print:before{
  content:"\f02f";
}
i.icon.server:before{
  content:"\f233";
}
i.icon.tablet.alternate:before{
  content:"\f3fa";
}
i.icon.tablet:before{
  content:"\f10a";
}
i.icon.tv:before{
  content:"\f26c";
}
i.icon.dollar.sign:before{
  content:"\f155";
}
i.icon.euro.sign:before{
  content:"\f153";
}
i.icon.lira.sign:before{
  content:"\f195";
}
i.icon.money.bill.alternate.outline:before{
  content:"\f623";
}
i.icon.money.bill.alternate:before{
  content:"\f3d1";
}
i.icon.pound.sign:before{
  content:"\f154";
}
i.icon.ruble.sign:before{
  content:"\f158";
}
i.icon.rupee.sign:before{
  content:"\f156";
}
i.icon.shekel.sign:before{
  content:"\f20b";
}
i.icon.won.sign:before{
  content:"\f159";
}
i.icon.yen.sign:before{
  content:"\f157";
}
i.icon.calendar.check.outline:before{
  content:"\f311";
}
i.icon.calendar.check:before{
  content:"\f274";
}
i.icon.calendar.minus.outline:before{
  content:"\f312";
}
i.icon.calendar.minus:before{
  content:"\f272";
}
i.icon.calendar.plus.outline:before{
  content:"\f313";
}
i.icon.calendar.plus:before{
  content:"\f271";
}
i.icon.calendar.times.outline:before{
  content:"\f314";
}
i.icon.calendar.times:before{
  content:"\f273";
}
i.icon.clock.outline:before{
  content:"\f325";
}
i.icon.clock:before{
  content:"\f017";
}
i.icon.hourglass.end:before{
  content:"\f253";
}
i.icon.hourglass.half:before{
  content:"\f252";
}
i.icon.hourglass.outline:before{
  content:"\f614";
}
i.icon.hourglass.start:before{
  content:"\f251";
}
i.icon.hourglass:before{
  content:"\f254";
}
i.icon.stopwatch:before{
  content:"\f2f2";
}
i.icon.adjust:before{
  content:"\f042";
}
i.icon.clone.outline:before{
  content:"\f326";
}
i.icon.clone:before{
  content:"\f24d";
}
i.icon.crop:before{
  content:"\f125";
}
i.icon.crosshairs:before{
  content:"\f05b";
}
i.icon.eye.dropper:before{
  content:"\f1fb";
}
i.icon.eye.slash.outline:before{
  content:"\f339";
}
i.icon.eye.slash:before{
  content:"\f070";
}
i.icon.eye:before{
  content:"\f06e";
}
i.icon.object.group.outline:before{
  content:"\f624";
}
i.icon.object.group:before{
  content:"\f247";
}
i.icon.object.ungroup.outline:before{
  content:"\f389";
}
i.icon.object.ungroup:before{
  content:"\f248";
}
i.icon.paint.brush:before{
  content:"\f1fc";
}
i.icon.tint:before{
  content:"\f043";
}
i.icon.align.center:before{
  content:"\f037";
}
i.icon.align.justify:before{
  content:"\f039";
}
i.icon.align.left:before{
  content:"\f036";
}
i.icon.align.right:before{
  content:"\f038";
}
i.icon.bold:before{
  content:"\f032";
}
i.icon.font:before{
  content:"\f031";
}
i.icon.heading:before{
  content:"\f1dc";
}
i.icon.i.cursor:before{
  content:"\f246";
}
i.icon.indent:before{
  content:"\f03c";
}
i.icon.italic:before{
  content:"\f033";
}
i.icon.link:before{
  content:"\f0c1";
}
i.icon.list.alternate.outline:before{
  content:"\f381";
}
i.icon.list.alternate:before{
  content:"\f022";
}
i.icon.ordered.list:before{
  content:"\f0cb";
}
i.icon.unordered.list:before{
  content:"\f0ca";
}
i.icon.list:before{
  content:"\f03a";
}
i.icon.outdent:before{
  content:"\f03b";
}
i.icon.paragraph:before{
  content:"\f1dd";
}
i.icon.quote.left:before{
  content:"\f10d";
}
i.icon.quote.right:before{
  content:"\f10e";
}
i.icon.strikethrough:before{
  content:"\f0cc";
}
i.icon.subscript:before{
  content:"\f12c";
}
i.icon.superscript:before{
  content:"\f12b";
}
i.icon.th.large:before{
  content:"\f009";
}
i.icon.th.list:before{
  content:"\f00b";
}
i.icon.th:before{
  content:"\f00a";
}
i.icon.trash.alternate.outline:before{
  content:"\f640";
}
i.icon.trash.alternate:before{
  content:"\f2ed";
}
i.icon.trash:before{
  content:"\f1f8";
}
i.icon.underline:before{
  content:"\f0cd";
}
i.icon.unlink:before{
  content:"\f127";
}
i.icon.file.archive.outline:before{
  content:"\f341";
}
i.icon.file.archive:before{
  content:"\f1c6";
}
i.icon.file.excel.outline:before{
  content:"\f344";
}
i.icon.file.excel:before{
  content:"\f1c3";
}
i.icon.file.image.outline:before{
  content:"\f617";
}
i.icon.file.image:before{
  content:"\f1c5";
}
i.icon.file.pdf.outline:before{
  content:"\f346";
}
i.icon.file.pdf:before{
  content:"\f1c1";
}
i.icon.file.powerpoint.outline:before{
  content:"\f347";
}
i.icon.file.powerpoint:before{
  content:"\f1c4";
}
i.icon.file.word.outline:before{
  content:"\f349";
}
i.icon.file.word:before{
  content:"\f1c2";
}
i.icon.genderless:before{
  content:"\f22d";
}
i.icon.mars.double:before{
  content:"\f227";
}
i.icon.mars.stroke.horizontal:before{
  content:"\f22b";
}
i.icon.mars.stroke.vertical:before{
  content:"\f22a";
}
i.icon.mars.stroke:before{
  content:"\f229";
}
i.icon.mars:before{
  content:"\f222";
}
i.icon.mercury:before{
  content:"\f223";
}
i.icon.neuter:before{
  content:"\f22c";
}
i.icon.transgender.alternate:before{
  content:"\f225";
}
i.icon.transgender:before{
  content:"\f224";
}
i.icon.venus.double:before{
  content:"\f226";
}
i.icon.venus.mars:before{
  content:"\f228";
}
i.icon.venus:before{
  content:"\f221";
}
i.icon.hand.lizard.outline:before{
  content:"\f357";
}
i.icon.hand.lizard:before{
  content:"\f258";
}
i.icon.hand.paper.outline:before{
  content:"\f358";
}
i.icon.hand.paper:before{
  content:"\f256";
}
i.icon.hand.peace.outline:before{
  content:"\f359";
}
i.icon.hand.peace:before{
  content:"\f25b";
}
i.icon.hand.rock.outline:before{
  content:"\f365";
}
i.icon.hand.rock:before{
  content:"\f255";
}
i.icon.hand.scissors.outline:before{
  content:"\f366";
}
i.icon.hand.scissors:before{
  content:"\f257";
}
i.icon.hand.spock.outline:before{
  content:"\f367";
}
i.icon.hand.spock:before{
  content:"\f259";
}
i.icon.handshake.outline:before{
  content:"\f610";
}
i.icon.handshake:before{
  content:"\f2b5";
}
i.icon.thumbs.down.outline:before{
  content:"\f406";
}
i.icon.thumbs.down:before{
  content:"\f165";
}
i.icon.thumbs.up.outline:before{
  content:"\f638";
}
i.icon.thumbs.up:before{
  content:"\f164";
}
i.icon.ambulance:before{
  content:"\f0f9";
}
i.icon.h.square:before{
  content:"\f0fd";
}
i.icon.heart.outline:before{
  content:"\f612";
}
i.icon.heart:before{
  content:"\f004";
}
i.icon.heartbeat:before{
  content:"\f21e";
}
i.icon.hospital.outline:before{
  content:"\f613";
}
i.icon.hospital:before{
  content:"\f0f8";
}
i.icon.medkit:before{
  content:"\f0fa";
}
i.icon.plus.square.outline:before{
  content:"\f627";
}
i.icon.plus.square:before{
  content:"\f0fe";
}
i.icon.stethoscope:before{
  content:"\f0f1";
}
i.icon.user.doctor:before{
  content:"\f0f0";
}
i.icon.bolt:before{
  content:"\f0e7";
}
i.icon.camera.retro:before{
  content:"\f083";
}
i.icon.camera:before{
  content:"\f030";
}
i.icon.id.badge.outline:before{
  content:"\f615";
}
i.icon.id.badge:before{
  content:"\f2c1";
}
i.icon.id.card.outline:before{
  content:"\f616";
}
i.icon.id.card:before{
  content:"\f2c2";
}
i.icon.image.outline:before{
  content:"\f617";
}
i.icon.image:before{
  content:"\f03e";
}
i.icon.images.outline:before{
  content:"\f376";
}
i.icon.images:before{
  content:"\f302";
}
i.icon.sliders.horizontal:before{
  content:"\f1de";
}
i.icon.ban:before{
  content:"\f05e";
}
i.icon.bars:before{
  content:"\f0c9";
}
i.icon.beer:before{
  content:"\f0fc";
}
i.icon.bullseye:before{
  content:"\f140";
}
i.icon.check.circle.outline:before{
  content:"\f321";
}
i.icon.check.circle:before{
  content:"\f058";
}
i.icon.check.square.outline:before{
  content:"\f322";
}
i.icon.check.square:before{
  content:"\f14a";
}
i.icon.check:before{
  content:"\f00c";
}
i.icon.cloud:before{
  content:"\f0c2";
}
i.icon.cog:before{
  content:"\f013";
}
i.icon.cogs:before{
  content:"\f085";
}
i.icon.database:before{
  content:"\f1c0";
}
i.icon.dot.circle.outline:before{
  content:"\f335";
}
i.icon.dot.circle:before{
  content:"\f192";
}
i.icon.ellipsis.horizontal:before{
  content:"\f141";
}
i.icon.ellipsis.vertical:before{
  content:"\f142";
}
i.icon.exclamation.circle:before{
  content:"\f06a";
}
i.icon.exclamation.triangle:before{
  content:"\f071";
}
i.icon.exclamation:before{
  content:"\f12a";
}
i.icon.flag.checkered:before{
  content:"\f11e";
}
i.icon.flag.outline:before{
  content:"\f351";
}
i.icon.flag:before{
  content:"\f024";
}
i.icon.frown.outline:before{
  content:"\f354";
}
i.icon.frown:before{
  content:"\f119";
}
i.icon.hashtag:before{
  content:"\f292";
}
i.icon.home:before{
  content:"\f015";
}
i.icon.info.circle:before{
  content:"\f05a";
}
i.icon.info:before{
  content:"\f129";
}
i.icon.magic:before{
  content:"\f0d0";
}
i.icon.meh.outline:before{
  content:"\f621";
}
i.icon.meh:before{
  content:"\f11a";
}
i.icon.minus.circle:before{
  content:"\f056";
}
i.icon.minus.square.outline:before{
  content:"\f622";
}
i.icon.minus.square:before{
  content:"\f146";
}
i.icon.minus:before{
  content:"\f068";
}
i.icon.plus.circle:before{
  content:"\f055";
}
i.icon.plus:before{
  content:"\f067";
}
i.icon.question:before{
  content:"\f128";
}
i.icon.search.minus:before{
  content:"\f010";
}
i.icon.search.plus:before{
  content:"\f00e";
}
i.icon.search:before{
  content:"\f002";
}
i.icon.share.alternate.square:before{
  content:"\f1e1";
}
i.icon.share.alternate:before{
  content:"\f1e0";
}
i.icon.shield:before{
  content:"\f3ed";
}
i.icon.signal:before{
  content:"\f012";
}
i.icon.smile.outline:before{
  content:"\f398";
}
i.icon.smile:before{
  content:"\f118";
}
i.icon.star.half.outline:before{
  content:"\f401";
}
i.icon.star.half:before{
  content:"\f089";
}
i.icon.star.outline:before{
  content:"\f634";
}
i.icon.star:before{
  content:"\f005";
}
i.icon.times.circle.outline:before{
  content:"\f639";
}
i.icon.times.circle:before{
  content:"\f057";
}
i.icon.times:before{
  content:"\f00d";
}
i.icon.toggle.off:before{
  content:"\f204";
}
i.icon.toggle.on:before{
  content:"\f205";
}
i.icon.trophy:before{
  content:"\f091";
}
i.icon.user.circle.outline:before{
  content:"\f606";
}
i.icon.user.circle:before{
  content:"\f2bd";
}
i.icon.user.outline:before{
  content:"\f641";
}
i.icon.user:before{
  content:"\f007";
}
i.icon.anchor:before{
  content:"\f13d";
}
i.icon.bed:before{
  content:"\f236";
}
i.icon.bicycle:before{
  content:"\f206";
}
i.icon.binoculars:before{
  content:"\f1e5";
}
i.icon.bomb:before{
  content:"\f1e2";
}
i.icon.bookmark.outline:before{
  content:"\f308";
}
i.icon.bookmark:before{
  content:"\f02e";
}
i.icon.car:before{
  content:"\f1b9";
}
i.icon.fighter.jet:before{
  content:"\f0fb";
}
i.icon.fire:before{
  content:"\f06d";
}
i.icon.flask:before{
  content:"\f0c3";
}
i.icon.gamepad:before{
  content:"\f11b";
}
i.icon.gavel:before{
  content:"\f0e3";
}
i.icon.gift:before{
  content:"\f06b";
}
i.icon.glass.martini:before{
  content:"\f000";
}
i.icon.graduation.cap:before{
  content:"\f19d";
}
i.icon.key:before{
  content:"\f084";
}
i.icon.leaf:before{
  content:"\f06c";
}
i.icon.lemon.outline:before{
  content:"\f618";
}
i.icon.lemon:before{
  content:"\f094";
}
i.icon.life.ring.outline:before{
  content:"\f619";
}
i.icon.life.ring:before{
  content:"\f1cd";
}
i.icon.lightbulb.outline:before{
  content:"\f620";
}
i.icon.lightbulb:before{
  content:"\f0eb";
}
i.icon.magnet:before{
  content:"\f076";
}
i.icon.male:before{
  content:"\f183";
}
i.icon.map.marker.alternate:before{
  content:"\f3c5";
}
i.icon.map.marker:before{
  content:"\f041";
}
i.icon.map.outline:before{
  content:"\f382";
}
i.icon.map.pin:before{
  content:"\f276";
}
i.icon.map.signs:before{
  content:"\f277";
}
i.icon.map:before{
  content:"\f279";
}
i.icon.motorcycle:before{
  content:"\f21c";
}
i.icon.newspaper.outline:before{
  content:"\f387";
}
i.icon.newspaper:before{
  content:"\f1ea";
}
i.icon.paw:before{
  content:"\f1b0";
}
i.icon.plane:before{
  content:"\f072";
}
i.icon.road:before{
  content:"\f018";
}
i.icon.rocket:before{
  content:"\f135";
}
i.icon.ship:before{
  content:"\f21a";
}
i.icon.shopping.bag:before{
  content:"\f290";
}
i.icon.shopping.basket:before{
  content:"\f291";
}
i.icon.shopping.cart:before{
  content:"\f07a";
}
i.icon.shower:before{
  content:"\f2cc";
}
i.icon.street.view:before{
  content:"\f21d";
}
i.icon.subway:before{
  content:"\f239";
}
i.icon.taxi:before{
  content:"\f1ba";
}
i.icon.ticket.alternate:before{
  content:"\f3ff";
}
i.icon.train:before{
  content:"\f238";
}
i.icon.tree:before{
  content:"\f1bb";
}
i.icon.truck:before{
  content:"\f0d1";
}
i.icon.umbrella:before{
  content:"\f0e9";
}
i.icon.university:before{
  content:"\f19c";
}
i.icon.utensil.spoon:before{
  content:"\f2e5";
}
i.icon.utensils:before{
  content:"\f2e7";
}
i.icon.wrench:before{
  content:"\f0ad";
}
i.icon.bus:before{
  content:"\f207";
}
i.icon.cube:before{
  content:"\f1b2";
}
i.icon.cubes:before{
  content:"\f1b3";
}
i.icon.futbol.outline:before{
  content:"\f633";
}
i.icon.futbol:before{
  content:"\f1e3";
}
i.icon.gem.outline:before{
  content:"\f356";
}
i.icon.gem:before{
  content:"\f3a5";
}
i.icon.lock.open:before{
  content:"\f3c1";
}
i.icon.lock:before{
  content:"\f023";
}
i.icon.moon.outline:before{
  content:"\f386";
}
i.icon.moon:before{
  content:"\f186";
}
i.icon.puzzle:before{
  content:"\f12e";
}
i.icon.snowflake.outline:before{
  content:"\f632";
}
i.icon.snowflake:before{
  content:"\f2dc";
}
i.icon.space.shuttle:before{
  content:"\f197";
}
i.icon.sun.outline:before{
  content:"\f637";
}
i.icon.sun:before{
  content:"\f185";
}
i.icon.tachometer.alternate:before{
  content:"\f3fd";
}
i.icon.unlock.alternate:before{
  content:"\f13e";
}
i.icon.unlock:before{
  content:"\f09c";
}
i.icon.cart.plus:before{
  content:"\f217";
}
i.icon.credit.card.outline:before{
  content:"\f334";
}
i.icon.credit.card:before{
  content:"\f09d";
}
i.icon.square.outline:before{
  content:"\f400";
}
i.icon.square:before{
  content:"\f0c8";
}
i.icon.asterisk:before{
  content:"\f069";
}
i.icon.circle.notch:before{
  content:"\f1ce";
}
i.icon.spinner:before{
  content:"\f110";
}
i.icon.baseball.ball:before{
  content:"\f433";
}
i.icon.basketball.ball:before{
  content:"\f434";
}
i.icon.bowling.ball:before{
  content:"\f436";
}
i.icon.football.ball:before{
  content:"\f44e";
}
i.icon.golf.ball:before{
  content:"\f450";
}
i.icon.hockey.puck:before{
  content:"\f453";
}
i.icon.quidditch:before{
  content:"\f458";
}
i.icon.table.tennis:before{
  content:"\f45d";
}
i.icon.volleyball.ball:before{
  content:"\f45f";
}
i.icon.battery.empty:before{
  content:"\f244";
}
i.icon.battery.full:before{
  content:"\f240";
}
i.icon.battery.half:before{
  content:"\f242";
}
i.icon.battery.quarter:before{
  content:"\f243";
}
i.icon.battery.three.quarters:before{
  content:"\f241";
}
i.icon.thermometer.empty:before{
  content:"\f2cb";
}
i.icon.thermometer.full:before{
  content:"\f2c7";
}
i.icon.thermometer.half:before{
  content:"\f2c9";
}
i.icon.thermometer.quarter:before{
  content:"\f2ca";
}
i.icon.thermometer.three.quarters:before{
  content:"\f2c8";
}
i.icon.child:before{
  content:"\f1ae";
}
i.icon.female:before{
  content:"\f182";
}
i.icon.user.circle.outline:before{
  content:"\f410";
}
i.icon.user.plus:before{
  content:"\f234";
}
i.icon.user.times:before{
  content:"\f235";
}
i.icon.users:before{
  content:"\f0c0";
}
i.icon.\35 00px:before{
  content:"\f26e";
}
i.icon.accessible.icon:before{
  content:"\f368";
}
i.icon.accusoft:before{
  content:"\f369";
}
i.icon.adn:before{
  content:"\f170";
}
i.icon.adversal:before{
  content:"\f36a";
}
i.icon.affiliatetheme:before{
  content:"\f36b";
}
i.icon.algolia:before{
  content:"\f36c";
}
i.icon.amazon.pay:before{
  content:"\f42c";
}
i.icon.amazon:before{
  content:"\f270";
}
i.icon.amilia:before{
  content:"\f36d";
}
i.icon.android:before{
  content:"\f17b";
}
i.icon.angellist:before{
  content:"\f209";
}
i.icon.angrycreative:before{
  content:"\f36e";
}
i.icon.angular:before{
  content:"\f420";
}
i.icon.app.store.ios:before{
  content:"\f370";
}
i.icon.app.store:before{
  content:"\f36f";
}
i.icon.apper:before{
  content:"\f371";
}
i.icon.apple.pay:before{
  content:"\f609";
}
i.icon.apple:before{
  content:"\f179";
}
i.icon.asymmetrik:before{
  content:"\f372";
}
i.icon.audible:before{
  content:"\f373";
}
i.icon.autoprefixer:before{
  content:"\f41c";
}
i.icon.avianex:before{
  content:"\f374";
}
i.icon.aviato:before{
  content:"\f421";
}
i.icon.aws:before{
  content:"\f375";
}
i.icon.bandcamp:before{
  content:"\f2d5";
}
i.icon.behance.square:before{
  content:"\f1b5";
}
i.icon.behance:before{
  content:"\f1b4";
}
i.icon.bimobject:before{
  content:"\f378";
}
i.icon.bitbucket:before{
  content:"\f171";
}
i.icon.bitcoin:before{
  content:"\f379";
}
i.icon.bity:before{
  content:"\f37a";
}
i.icon.black.tie:before{
  content:"\f27e";
}
i.icon.blackberry:before{
  content:"\f37b";
}
i.icon.blogger.b:before{
  content:"\f37d";
}
i.icon.blogger:before{
  content:"\f37c";
}
i.icon.bluetooth.b:before{
  content:"\f294";
}
i.icon.bluetooth:before{
  content:"\f293";
}
i.icon.btc:before{
  content:"\f15a";
}
i.icon.buromobelexperte:before{
  content:"\f37f";
}
i.icon.buysellads:before{
  content:"\f20d";
}
i.icon.credit.card.amazon.pay:before{
  content:"\f42d";
}
i.icon.credit.card.american.express:before{
  content:"\f1f3";
}
i.icon.credit.card.apple.pay:before{
  content:"\f607";
}
i.icon.credit.card.diners.club:before{
  content:"\f24c";
}
i.icon.credit.card.discover:before{
  content:"\f1f2";
}
i.icon.credit.card.jcb:before{
  content:"\f24b";
}
i.icon.credit.card.mastercard:before{
  content:"\f1f1";
}
i.icon.credit.card.paypal:before{
  content:"\f1f4";
}
i.icon.credit.card.stripe:before{
  content:"\f1f5";
}
i.icon.credit.card.visa:before{
  content:"\f1f0";
}
i.icon.centercode:before{
  content:"\f380";
}
i.icon.chrome:before{
  content:"\f268";
}
i.icon.cloudscale:before{
  content:"\f383";
}
i.icon.cloudsmith:before{
  content:"\f384";
}
i.icon.cloudversify:before{
  content:"\f385";
}
i.icon.codepen:before{
  content:"\f1cb";
}
i.icon.codiepie:before{
  content:"\f284";
}
i.icon.connectdevelop:before{
  content:"\f20e";
}
i.icon.contao:before{
  content:"\f26d";
}
i.icon.cpanel:before{
  content:"\f388";
}
i.icon.creative.commons:before{
  content:"\f25e";
}
i.icon.css3.alternate:before{
  content:"\f38b";
}
i.icon.css3:before{
  content:"\f13c";
}
i.icon.cuttlefish:before{
  content:"\f38c";
}
i.icon.d.and.d:before{
  content:"\f38d";
}
i.icon.dashcube:before{
  content:"\f210";
}
i.icon.delicious:before{
  content:"\f1a5";
}
i.icon.deploydog:before{
  content:"\f38e";
}
i.icon.deskpro:before{
  content:"\f38f";
}
i.icon.deviantart:before{
  content:"\f1bd";
}
i.icon.digg:before{
  content:"\f1a6";
}
i.icon.digital.ocean:before{
  content:"\f391";
}
i.icon.discord:before{
  content:"\f392";
}
i.icon.discourse:before{
  content:"\f393";
}
i.icon.dochub:before{
  content:"\f394";
}
i.icon.docker:before{
  content:"\f395";
}
i.icon.draft2digital:before{
  content:"\f396";
}
i.icon.dribbble.square:before{
  content:"\f397";
}
i.icon.dribbble:before{
  content:"\f17d";
}
i.icon.dropbox:before{
  content:"\f16b";
}
i.icon.drupal:before{
  content:"\f1a9";
}
i.icon.dyalog:before{
  content:"\f399";
}
i.icon.earlybirds:before{
  content:"\f39a";
}
i.icon.edge:before{
  content:"\f282";
}
i.icon.elementor:before{
  content:"\f430";
}
i.icon.ember:before{
  content:"\f423";
}
i.icon.empire:before{
  content:"\f1d1";
}
i.icon.envira:before{
  content:"\f299";
}
i.icon.erlang:before{
  content:"\f39d";
}
i.icon.ethereum:before{
  content:"\f42e";
}
i.icon.etsy:before{
  content:"\f2d7";
}
i.icon.expeditedssl:before{
  content:"\f23e";
}
i.icon.facebook.f:before{
  content:"\f39e";
}
i.icon.facebook.messenger:before{
  content:"\f39f";
}
i.icon.facebook.square:before{
  content:"\f082";
}
i.icon.facebook:before{
  content:"\f09a";
}
i.icon.firefox:before{
  content:"\f269";
}
i.icon.first.order:before{
  content:"\f2b0";
}
i.icon.firstdraft:before{
  content:"\f3a1";
}
i.icon.flickr:before{
  content:"\f16e";
}
i.icon.flipboard:before{
  content:"\f44d";
}
i.icon.fly:before{
  content:"\f417";
}
i.icon.font.awesome.alternate:before{
  content:"\f35c";
}
i.icon.font.awesome.flag:before{
  content:"\f425";
}
i.icon.font.awesome:before{
  content:"\f2b4";
}
i.icon.fonticons.fi:before{
  content:"\f3a2";
}
i.icon.fonticons:before{
  content:"\f280";
}
i.icon.fort.awesome.alternate:before{
  content:"\f3a3";
}
i.icon.fort.awesome:before{
  content:"\f286";
}
i.icon.forumbee:before{
  content:"\f211";
}
i.icon.foursquare:before{
  content:"\f180";
}
i.icon.free.code.camp:before{
  content:"\f2c5";
}
i.icon.freebsd:before{
  content:"\f3a4";
}
i.icon.get.pocket:before{
  content:"\f265";
}
i.icon.gg.circle:before{
  content:"\f261";
}
i.icon.gg:before{
  content:"\f260";
}
i.icon.git.square:before{
  content:"\f1d2";
}
i.icon.git:before{
  content:"\f1d3";
}
i.icon.github.alternate:before{
  content:"\f113";
}
i.icon.github.square:before{
  content:"\f092";
}
i.icon.github:before{
  content:"\f09b";
}
i.icon.gitkraken:before{
  content:"\f3a6";
}
i.icon.gitlab:before{
  content:"\f296";
}
i.icon.gitter:before{
  content:"\f426";
}
i.icon.glide.g:before{
  content:"\f2a6";
}
i.icon.glide:before{
  content:"\f2a5";
}
i.icon.gofore:before{
  content:"\f3a7";
}
i.icon.goodreads.g:before{
  content:"\f3a9";
}
i.icon.goodreads:before{
  content:"\f3a8";
}
i.icon.google.drive:before{
  content:"\f3aa";
}
i.icon.google.play:before{
  content:"\f3ab";
}
i.icon.google.plus.g:before{
  content:"\f0d5";
}
i.icon.google.plus.square:before{
  content:"\f0d4";
}
i.icon.google.plus:before{
  content:"\f2b3";
}
i.icon.google.wallet:before{
  content:"\f1ee";
}
i.icon.google:before{
  content:"\f1a0";
}
i.icon.gratipay:before{
  content:"\f184";
}
i.icon.grav:before{
  content:"\f2d6";
}
i.icon.gripfire:before{
  content:"\f3ac";
}
i.icon.grunt:before{
  content:"\f3ad";
}
i.icon.gulp:before{
  content:"\f3ae";
}
i.icon.hacker.news.square:before{
  content:"\f3af";
}
i.icon.hacker.news:before{
  content:"\f1d4";
}
i.icon.hips:before{
  content:"\f452";
}
i.icon.hire.a.helper:before{
  content:"\f3b0";
}
i.icon.hooli:before{
  content:"\f427";
}
i.icon.hotjar:before{
  content:"\f3b1";
}
i.icon.houzz:before{
  content:"\f27c";
}
i.icon.html5:before{
  content:"\f13b";
}
i.icon.hubspot:before{
  content:"\f3b2";
}
i.icon.imdb:before{
  content:"\f2d8";
}
i.icon.instagram:before{
  content:"\f16d";
}
i.icon.internet.explorer:before{
  content:"\f26b";
}
i.icon.ioxhost:before{
  content:"\f208";
}
i.icon.itunes.note:before{
  content:"\f3b5";
}
i.icon.itunes:before{
  content:"\f3b4";
}
i.icon.jenkins:before{
  content:"\f3b6";
}
i.icon.joget:before{
  content:"\f3b7";
}
i.icon.joomla:before{
  content:"\f1aa";
}
i.icon.js.square:before{
  content:"\f3b9";
}
i.icon.js:before{
  content:"\f3b8";
}
i.icon.jsfiddle:before{
  content:"\f1cc";
}
i.icon.keycdn:before{
  content:"\f3ba";
}
i.icon.kickstarter.k:before{
  content:"\f3bc";
}
i.icon.kickstarter:before{
  content:"\f3bb";
}
i.icon.korvue:before{
  content:"\f42f";
}
i.icon.laravel:before{
  content:"\f3bd";
}
i.icon.lastfm.square:before{
  content:"\f203";
}
i.icon.lastfm:before{
  content:"\f202";
}
i.icon.leanpub:before{
  content:"\f212";
}
i.icon.less:before{
  content:"\f41d";
}
i.icon.line:before{
  content:"\f3c0";
}
i.icon.linkedin.in:before{
  content:"\f0e1";
}
i.icon.linkedin:before{
  content:"\f08c";
}
i.icon.linode:before{
  content:"\f2b8";
}
i.icon.linux:before{
  content:"\f17c";
}
i.icon.lyft:before{
  content:"\f3c3";
}
i.icon.magento:before{
  content:"\f3c4";
}
i.icon.maxcdn:before{
  content:"\f136";
}
i.icon.medapps:before{
  content:"\f3c6";
}
i.icon.medium.m:before{
  content:"\f3c7";
}
i.icon.medium:before{
  content:"\f23a";
}
i.icon.medrt:before{
  content:"\f3c8";
}
i.icon.meetup:before{
  content:"\f2e0";
}
i.icon.microsoft:before{
  content:"\f3ca";
}
i.icon.mix:before{
  content:"\f3cb";
}
i.icon.mixcloud:before{
  content:"\f289";
}
i.icon.mizuni:before{
  content:"\f3cc";
}
i.icon.modx:before{
  content:"\f285";
}
i.icon.monero:before{
  content:"\f3d0";
}
i.icon.napster:before{
  content:"\f3d2";
}
i.icon.nintendo.switch:before{
  content:"\f418";
}
i.icon.node.js:before{
  content:"\f3d3";
}
i.icon.node:before{
  content:"\f419";
}
i.icon.npm:before{
  content:"\f3d4";
}
i.icon.ns8:before{
  content:"\f3d5";
}
i.icon.nutritionix:before{
  content:"\f3d6";
}
i.icon.odnoklassniki.square:before{
  content:"\f264";
}
i.icon.odnoklassniki:before{
  content:"\f263";
}
i.icon.opencart:before{
  content:"\f23d";
}
i.icon.openid:before{
  content:"\f19b";
}
i.icon.opera:before{
  content:"\f26a";
}
i.icon.optin.monster:before{
  content:"\f23c";
}
i.icon.osi:before{
  content:"\f41a";
}
i.icon.page4:before{
  content:"\f3d7";
}
i.icon.pagelines:before{
  content:"\f18c";
}
i.icon.palfed:before{
  content:"\f3d8";
}
i.icon.patreon:before{
  content:"\f3d9";
}
i.icon.paypal:before{
  content:"\f1ed";
}
i.icon.periscope:before{
  content:"\f3da";
}
i.icon.phabricator:before{
  content:"\f3db";
}
i.icon.phoenix.framework:before{
  content:"\f3dc";
}
i.icon.php:before{
  content:"\f457";
}
i.icon.pied.piper.alternate:before{
  content:"\f1a8";
}
i.icon.pied.piper.pp:before{
  content:"\f1a7";
}
i.icon.pied.piper:before{
  content:"\f2ae";
}
i.icon.pinterest.p:before{
  content:"\f231";
}
i.icon.pinterest.square:before{
  content:"\f0d3";
}
i.icon.pinterest:before{
  content:"\f0d2";
}
i.icon.playstation:before{
  content:"\f3df";
}
i.icon.product.hunt:before{
  content:"\f288";
}
i.icon.pushed:before{
  content:"\f3e1";
}
i.icon.python:before{
  content:"\f3e2";
}
i.icon.qq:before{
  content:"\f1d6";
}
i.icon.quinscape:before{
  content:"\f459";
}
i.icon.quora:before{
  content:"\f2c4";
}
i.icon.ravelry:before{
  content:"\f2d9";
}
i.icon.react:before{
  content:"\f41b";
}
i.icon.rebel:before{
  content:"\f1d0";
}
i.icon.redriver:before{
  content:"\f3e3";
}
i.icon.reddit.alien:before{
  content:"\f281";
}
i.icon.reddit.square:before{
  content:"\f1a2";
}
i.icon.reddit:before{
  content:"\f1a1";
}
i.icon.rendact:before{
  content:"\f3e4";
}
i.icon.renren:before{
  content:"\f18b";
}
i.icon.replyd:before{
  content:"\f3e6";
}
i.icon.resolving:before{
  content:"\f3e7";
}
i.icon.rocketchat:before{
  content:"\f3e8";
}
i.icon.rockrms:before{
  content:"\f3e9";
}
i.icon.safari:before{
  content:"\f267";
}
i.icon.sass:before{
  content:"\f41e";
}
i.icon.schlix:before{
  content:"\f3ea";
}
i.icon.scribd:before{
  content:"\f28a";
}
i.icon.searchengin:before{
  content:"\f3eb";
}
i.icon.sellcast:before{
  content:"\f2da";
}
i.icon.sellsy:before{
  content:"\f213";
}
i.icon.servicestack:before{
  content:"\f3ec";
}
i.icon.shirtsinbulk:before{
  content:"\f214";
}
i.icon.simplybuilt:before{
  content:"\f215";
}
i.icon.sistrix:before{
  content:"\f3ee";
}
i.icon.skyatlas:before{
  content:"\f216";
}
i.icon.skype:before{
  content:"\f17e";
}
i.icon.slack.hash:before{
  content:"\f3ef";
}
i.icon.slack:before{
  content:"\f198";
}
i.icon.slideshare:before{
  content:"\f1e7";
}
i.icon.snapchat.ghost:before{
  content:"\f2ac";
}
i.icon.snapchat.square:before{
  content:"\f2ad";
}
i.icon.snapchat:before{
  content:"\f2ab";
}
i.icon.soundcloud:before{
  content:"\f1be";
}
i.icon.speakap:before{
  content:"\f3f3";
}
i.icon.spotify:before{
  content:"\f1bc";
}
i.icon.stack.exchange:before{
  content:"\f18d";
}
i.icon.stack.overflow:before{
  content:"\f16c";
}
i.icon.staylinked:before{
  content:"\f3f5";
}
i.icon.steam.square:before{
  content:"\f1b7";
}
i.icon.steam.symbol:before{
  content:"\f3f6";
}
i.icon.steam:before{
  content:"\f1b6";
}
i.icon.sticker.mule:before{
  content:"\f3f7";
}
i.icon.strava:before{
  content:"\f428";
}
i.icon.stripe.s:before{
  content:"\f42a";
}
i.icon.stripe:before{
  content:"\f429";
}
i.icon.studiovinari:before{
  content:"\f3f8";
}
i.icon.stumbleupon.circle:before{
  content:"\f1a3";
}
i.icon.stumbleupon:before{
  content:"\f1a4";
}
i.icon.superpowers:before{
  content:"\f2dd";
}
i.icon.supple:before{
  content:"\f3f9";
}
i.icon.telegram.plane:before{
  content:"\f3fe";
}
i.icon.telegram:before{
  content:"\f2c6";
}
i.icon.tencent.weibo:before{
  content:"\f1d5";
}
i.icon.themeisle:before{
  content:"\f2b2";
}
i.icon.trello:before{
  content:"\f181";
}
i.icon.tripadvisor:before{
  content:"\f262";
}
i.icon.tumblr.square:before{
  content:"\f174";
}
i.icon.tumblr:before{
  content:"\f173";
}
i.icon.twitch:before{
  content:"\f1e8";
}
i.icon.twitter.square:before{
  content:"\f081";
}
i.icon.twitter:before{
  content:"\f099";
}
i.icon.typo3:before{
  content:"\f42b";
}
i.icon.uber:before{
  content:"\f402";
}
i.icon.uikit:before{
  content:"\f403";
}
i.icon.uniregistry:before{
  content:"\f404";
}
i.icon.untappd:before{
  content:"\f405";
}
i.icon.usb:before{
  content:"\f287";
}
i.icon.ussunnah:before{
  content:"\f407";
}
i.icon.vaadin:before{
  content:"\f408";
}
i.icon.viacoin:before{
  content:"\f237";
}
i.icon.viadeo.square:before{
  content:"\f2aa";
}
i.icon.viadeo:before{
  content:"\f2a9";
}
i.icon.viber:before{
  content:"\f409";
}
i.icon.vimeo.square:before{
  content:"\f194";
}
i.icon.vimeo.v:before{
  content:"\f27d";
}
i.icon.vimeo:before{
  content:"\f40a";
}
i.icon.vine:before{
  content:"\f1ca";
}
i.icon.vk:before{
  content:"\f189";
}
i.icon.vnv:before{
  content:"\f40b";
}
i.icon.vuejs:before{
  content:"\f41f";
}
i.icon.weibo:before{
  content:"\f18a";
}
i.icon.weixin:before{
  content:"\f1d7";
}
i.icon.whatsapp.square:before{
  content:"\f40c";
}
i.icon.whatsapp:before{
  content:"\f232";
}
i.icon.whmcs:before{
  content:"\f40d";
}
i.icon.wikipedia.w:before{
  content:"\f266";
}
i.icon.windows:before{
  content:"\f17a";
}
i.icon.wordpress.simple:before{
  content:"\f411";
}
i.icon.wordpress:before{
  content:"\f19a";
}
i.icon.wpbeginner:before{
  content:"\f297";
}
i.icon.wpexplorer:before{
  content:"\f2de";
}
i.icon.wpforms:before{
  content:"\f298";
}
i.icon.xbox:before{
  content:"\f412";
}
i.icon.xing.square:before{
  content:"\f169";
}
i.icon.xing:before{
  content:"\f168";
}
i.icon.y.combinator:before{
  content:"\f23b";
}
i.icon.yahoo:before{
  content:"\f19e";
}
i.icon.yandex.international:before{
  content:"\f414";
}
i.icon.yandex:before{
  content:"\f413";
}
i.icon.yelp:before{
  content:"\f1e9";
}
i.icon.yoast:before{
  content:"\f2b1";
}
i.icon.youtube.square:before{
  content:"\f431";
}
i.icon.youtube:before{
  content:"\f167";
}
i.icon.add.circle:before{
  content:"\f055";
}
i.icon.add.square:before{
  content:"\f0fe";
}
i.icon.add.to.calendar:before{
  content:"\f271";
}
i.icon.add.to.cart:before{
  content:"\f217";
}
i.icon.add.user:before{
  content:"\f234";
}
i.icon.add:before{
  content:"\f067";
}
i.icon.alarm.mute:before{
  content:"\f1f6";
}
i.icon.alarm:before{
  content:"\f0f3";
}
i.icon.ald:before{
  content:"\f2a2";
}
i.icon.als:before{
  content:"\f2a2";
}
i.icon.american.express.card:before{
  content:"\f1f3";
}
i.icon.american.express:before{
  content:"\f1f3";
}
i.icon.amex:before{
  content:"\f1f3";
}
i.icon.announcement:before{
  content:"\f0a1";
}
i.icon.area.chart:before{
  content:"\f1fe";
}
i.icon.area.graph:before{
  content:"\f1fe";
}
i.icon.arrow.down.cart:before{
  content:"\f218";
}
i.icon.asexual:before{
  content:"\f22d";
}
i.icon.asl.interpreting:before{
  content:"\f2a3";
}
i.icon.asl:before{
  content:"\f2a3";
}
i.icon.assistive.listening.devices:before{
  content:"\f2a2";
}
i.icon.attach:before{
  content:"\f0c6";
}
i.icon.attention:before{
  content:"\f06a";
}
i.icon.balance:before{
  content:"\f24e";
}
i.icon.bar.chart:before{
  content:"\f080";
}
i.icon.bar.graph:before{
  content:"\f080";
}
i.icon.bar:before{
  content:"\f0fc";
}
i.icon.bathtub:before{
  content:"\f2cd";
}
i.icon.battery.four:before{
  content:"\f240";
}
i.icon.battery.high:before{
  content:"\f241";
}
i.icon.battery.low:before{
  content:"\f243";
}
i.icon.battery.medium:before{
  content:"\f242";
}
i.icon.battery.one:before{
  content:"\f243";
}
i.icon.battery.three:before{
  content:"\f241";
}
i.icon.battery.two:before{
  content:"\f242";
}
i.icon.battery.zero:before{
  content:"\f244";
}
i.icon.birthday:before{
  content:"\f1fd";
}
i.icon.block.layout:before{
  content:"\f009";
}
i.icon.bluetooth.alternative:before{
  content:"\f294";
}
i.icon.broken.chain:before{
  content:"\f127";
}
i.icon.browser:before{
  content:"\f022";
}
i.icon.call.square:before{
  content:"\f098";
}
i.icon.call:before{
  content:"\f095";
}
i.icon.cancel:before{
  content:"\f00d";
}
i.icon.cart:before{
  content:"\f07a";
}
i.icon.cc:before{
  content:"\f20a";
}
i.icon.chain:before{
  content:"\f0c1";
}
i.icon.chat:before{
  content:"\f075";
}
i.icon.checked.calendar:before{
  content:"\f274";
}
i.icon.checkmark:before{
  content:"\f00c";
}
i.icon.circle.notched:before{
  content:"\f1ce";
}
i.icon.close:before{
  content:"\f00d";
}
i.icon.cny:before{
  content:"\f157";
}
i.icon.cocktail:before{
  content:"\f000";
}
i.icon.commenting:before{
  content:"\f27a";
}
i.icon.computer:before{
  content:"\f108";
}
i.icon.configure:before{
  content:"\f0ad";
}
i.icon.content:before{
  content:"\f0c9";
}
i.icon.deafness:before{
  content:"\f2a4";
}
i.icon.delete.calendar:before{
  content:"\f273";
}
i.icon.delete:before{
  content:"\f00d";
}
i.icon.detective:before{
  content:"\f21b";
}
i.icon.diners.club.card:before{
  content:"\f24c";
}
i.icon.diners.club:before{
  content:"\f24c";
}
i.icon.discover.card:before{
  content:"\f1f2";
}
i.icon.discover:before{
  content:"\f1f2";
}
i.icon.discussions:before{
  content:"\f086";
}
i.icon.doctor:before{
  content:"\f0f0";
}
i.icon.dollar:before{
  content:"\f155";
}
i.icon.dont:before{
  content:"\f05e";
}
i.icon.dribble:before{
  content:"\f17d";
}
i.icon.drivers.license:before{
  content:"\f2c2";
}
i.icon.dropdown:before{
  content:"\f0d7";
}
i.icon.eercast:before{
  content:"\f2da";
}
i.icon.emergency:before{
  content:"\f0f9";
}
i.icon.envira.gallery:before{
  content:"\f299";
}
i.icon.erase:before{
  content:"\f12d";
}
i.icon.eur:before{
  content:"\f153";
}
i.icon.euro:before{
  content:"\f153";
}
i.icon.eyedropper:before{
  content:"\f1fb";
}
i.icon.fa:before{
  content:"\f2b4";
}
i.icon.factory:before{
  content:"\f275";
}
i.icon.favorite:before{
  content:"\f005";
}
i.icon.feed:before{
  content:"\f09e";
}
i.icon.female.homosexual:before{
  content:"\f226";
}
i.icon.file.text:before{
  content:"\f15c";
}
i.icon.find:before{
  content:"\f1e5";
}
i.icon.first.aid:before{
  content:"\f0fa";
}
i.icon.five.hundred.pixels:before{
  content:"\f26e";
}
i.icon.fork:before{
  content:"\f126";
}
i.icon.game:before{
  content:"\f11b";
}
i.icon.gay:before{
  content:"\f227";
}
i.icon.gbp:before{
  content:"\f154";
}
i.icon.gittip:before{
  content:"\f184";
}
i.icon.google.plus.circle:before{
  content:"\f2b3";
}
i.icon.google.plus.official:before{
  content:"\f2b3";
}
i.icon.grab:before{
  content:"\f255";
}
i.icon.graduation:before{
  content:"\f19d";
}
i.icon.grid.layout:before{
  content:"\f00a";
}
i.icon.group:before{
  content:"\f0c0";
}
i.icon.h:before{
  content:"\f0fd";
}
i.icon.hand.victory:before{
  content:"\f25b";
}
i.icon.handicap:before{
  content:"\f193";
}
i.icon.hard.of.hearing:before{
  content:"\f2a4";
}
i.icon.header:before{
  content:"\f1dc";
}
i.icon.help.circle:before{
  content:"\f059";
}
i.icon.help:before{
  content:"\f128";
}
i.icon.heterosexual:before{
  content:"\f228";
}
i.icon.hide:before{
  content:"\f070";
}
i.icon.hotel:before{
  content:"\f236";
}
i.icon.hourglass.four:before{
  content:"\f254";
}
i.icon.hourglass.full:before{
  content:"\f254";
}
i.icon.hourglass.one:before{
  content:"\f251";
}
i.icon.hourglass.three:before{
  content:"\f253";
}
i.icon.hourglass.two:before{
  content:"\f252";
}
i.icon.idea:before{
  content:"\f0eb";
}
i.icon.ils:before{
  content:"\f20b";
}
i.icon.in.cart:before{
  content:"\f218";
}
i.icon.inr:before{
  content:"\f156";
}
i.icon.intergender:before{
  content:"\f224";
}
i.icon.intersex:before{
  content:"\f224";
}
i.icon.japan.credit.bureau.card:before{
  content:"\f24b";
}
i.icon.japan.credit.bureau:before{
  content:"\f24b";
}
i.icon.jcb:before{
  content:"\f24b";
}
i.icon.jpy:before{
  content:"\f157";
}
i.icon.krw:before{
  content:"\f159";
}
i.icon.lab:before{
  content:"\f0c3";
}
i.icon.law:before{
  content:"\f24e";
}
i.icon.legal:before{
  content:"\f0e3";
}
i.icon.lesbian:before{
  content:"\f226";
}
i.icon.lightning:before{
  content:"\f0e7";
}
i.icon.like:before{
  content:"\f004";
}
i.icon.line.chart:before{
  content:"\f201";
}
i.icon.line.graph:before{
  content:"\f201";
}
i.icon.linkedin.square:before{
  content:"\f08c";
}
i.icon.linkify:before{
  content:"\f0c1";
}
i.icon.lira:before{
  content:"\f195";
}
i.icon.list.layout:before{
  content:"\f00b";
}
i.icon.magnify:before{
  content:"\f00e";
}
i.icon.mail.forward:before{
  content:"\f064";
}
i.icon.mail.square:before{
  content:"\f199";
}
i.icon.mail:before{
  content:"\f0e0";
}
i.icon.male.homosexual:before{
  content:"\f227";
}
i.icon.man:before{
  content:"\f222";
}
i.icon.marker:before{
  content:"\f041";
}
i.icon.mars.alternate:before{
  content:"\f229";
}
i.icon.mars.horizontal:before{
  content:"\f22b";
}
i.icon.mars.vertical:before{
  content:"\f22a";
}
i.icon.mastercard.card:before{
  content:"\f1f1";
}
i.icon.mastercard:before{
  content:"\f1f1";
}
i.icon.maximize:before{
  content:"\f0b2";
}
i.icon.microsoft.edge:before{
  content:"\f282";
}
i.icon.military:before{
  content:"\f0fb";
}
i.icon.minimize:before{
  content:"\f066";
}
i.icon.ms.edge:before{
  content:"\f282";
}
i.icon.mute:before{
  content:"\f131";
}
i.icon.new.pied.piper:before{
  content:"\f2ae";
}
i.icon.non.binary.transgender:before{
  content:"\f223";
}
i.icon.numbered.list:before{
  content:"\f0cb";
}
i.icon.optinmonster:before{
  content:"\f23c";
}
i.icon.options:before{
  content:"\f1de";
}
i.icon.other.gender.horizontal:before{
  content:"\f22b";
}
i.icon.other.gender.vertical:before{
  content:"\f22a";
}
i.icon.other.gender:before{
  content:"\f229";
}
i.icon.payment:before{
  content:"\f09d";
}
i.icon.paypal.card:before{
  content:"\f1f4";
}
i.icon.pencil.square:before{
  content:"\f14b";
}
i.icon.photo:before{
  content:"\f030";
}
i.icon.picture:before{
  content:"\f03e";
}
i.icon.pie.chart:before{
  content:"\f200";
}
i.icon.pie.graph:before{
  content:"\f200";
}
i.icon.pied.piper.hat:before{
  content:"\f2ae";
}
i.icon.pin:before{
  content:"\f08d";
}
i.icon.plus.cart:before{
  content:"\f217";
}
i.icon.pocket:before{
  content:"\f265";
}
i.icon.point:before{
  content:"\f041";
}
i.icon.pointing.down:before{
  content:"\f0a7";
}
i.icon.pointing.left:before{
  content:"\f0a5";
}
i.icon.pointing.right:before{
  content:"\f0a4";
}
i.icon.pointing.up:before{
  content:"\f0a6";
}
i.icon.pound:before{
  content:"\f154";
}
i.icon.power.cord:before{
  content:"\f1e6";
}
i.icon.power:before{
  content:"\f011";
}
i.icon.privacy:before{
  content:"\f084";
}
i.icon.r.circle:before{
  content:"\f25d";
}
i.icon.rain:before{
  content:"\f0e9";
}
i.icon.record:before{
  content:"\f03d";
}
i.icon.refresh:before{
  content:"\f021";
}
i.icon.remove.circle:before{
  content:"\f057";
}
i.icon.remove.from.calendar:before{
  content:"\f272";
}
i.icon.remove.user:before{
  content:"\f235";
}
i.icon.remove:before{
  content:"\f00d";
}
i.icon.repeat:before{
  content:"\f01e";
}
i.icon.rmb:before{
  content:"\f157";
}
i.icon.rouble:before{
  content:"\f158";
}
i.icon.rub:before{
  content:"\f158";
}
i.icon.ruble:before{
  content:"\f158";
}
i.icon.rupee:before{
  content:"\f156";
}
i.icon.s15:before{
  content:"\f2cd";
}
i.icon.selected.radio:before{
  content:"\f192";
}
i.icon.send:before{
  content:"\f1d8";
}
i.icon.setting:before{
  content:"\f013";
}
i.icon.settings:before{
  content:"\f085";
}
i.icon.shekel:before{
  content:"\f20b";
}
i.icon.sheqel:before{
  content:"\f20b";
}
i.icon.shipping:before{
  content:"\f0d1";
}
i.icon.shop:before{
  content:"\f07a";
}
i.icon.shuffle:before{
  content:"\f074";
}
i.icon.shutdown:before{
  content:"\f011";
}
i.icon.sidebar:before{
  content:"\f0c9";
}
i.icon.signing:before{
  content:"\f2a7";
}
i.icon.signup:before{
  content:"\f044";
}
i.icon.sliders:before{
  content:"\f1de";
}
i.icon.soccer:before{
  content:"\f1e3";
}
i.icon.sort.alphabet.ascending:before{
  content:"\f15d";
}
i.icon.sort.alphabet.descending:before{
  content:"\f15e";
}
i.icon.sort.ascending:before{
  content:"\f0de";
}
i.icon.sort.content.ascending:before{
  content:"\f160";
}
i.icon.sort.content.descending:before{
  content:"\f161";
}
i.icon.sort.descending:before{
  content:"\f0dd";
}
i.icon.sort.numeric.ascending:before{
  content:"\f162";
}
i.icon.sort.numeric.descending:before{
  content:"\f163";
}
i.icon.sound:before{
  content:"\f025";
}
i.icon.spy:before{
  content:"\f21b";
}
i.icon.stripe.card:before{
  content:"\f1f5";
}
i.icon.student:before{
  content:"\f19d";
}
i.icon.talk:before{
  content:"\f27a";
}
i.icon.target:before{
  content:"\f140";
}
i.icon.teletype:before{
  content:"\f1e4";
}
i.icon.television:before{
  content:"\f26c";
}
i.icon.text.cursor:before{
  content:"\f246";
}
i.icon.text.telephone:before{
  content:"\f1e4";
}
i.icon.theme.isle:before{
  content:"\f2b2";
}
i.icon.theme:before{
  content:"\f043";
}
i.icon.thermometer:before{
  content:"\f2c7";
}
i.icon.thumb.tack:before{
  content:"\f08d";
}
i.icon.time:before{
  content:"\f017";
}
i.icon.tm:before{
  content:"\f25c";
}
i.icon.toggle.down:before{
  content:"\f150";
}
i.icon.toggle.left:before{
  content:"\f191";
}
i.icon.toggle.right:before{
  content:"\f152";
}
i.icon.toggle.up:before{
  content:"\f151";
}
i.icon.translate:before{
  content:"\f1ab";
}
i.icon.travel:before{
  content:"\f0b1";
}
i.icon.treatment:before{
  content:"\f0f1";
}
i.icon.triangle.down:before{
  content:"\f0d7";
}
i.icon.triangle.left:before{
  content:"\f0d9";
}
i.icon.triangle.right:before{
  content:"\f0da";
}
i.icon.triangle.up:before{
  content:"\f0d8";
}
i.icon.try:before{
  content:"\f195";
}
i.icon.unhide:before{
  content:"\f06e";
}
i.icon.unlinkify:before{
  content:"\f127";
}
i.icon.unmute:before{
  content:"\f130";
}
i.icon.usd:before{
  content:"\f155";
}
i.icon.user.cancel:before{
  content:"\f235";
}
i.icon.user.close:before{
  content:"\f235";
}
i.icon.user.delete:before{
  content:"\f235";
}
i.icon.user.x:before{
  content:"\f235";
}
i.icon.vcard:before{
  content:"\f2bb";
}
i.icon.video.camera:before{
  content:"\f03d";
}
i.icon.video.play:before{
  content:"\f144";
}
i.icon.visa.card:before{
  content:"\f1f0";
}
i.icon.visa:before{
  content:"\f1f0";
}
i.icon.volume.control.phone:before{
  content:"\f2a0";
}
i.icon.wait:before{
  content:"\f017";
}
i.icon.warning.circle:before{
  content:"\f06a";
}
i.icon.warning.sign:before{
  content:"\f071";
}
i.icon.warning:before{
  content:"\f12a";
}
i.icon.wechat:before{
  content:"\f1d7";
}
i.icon.wi-fi:before{
  content:"\f1eb";
}
i.icon.wikipedia:before{
  content:"\f266";
}
i.icon.winner:before{
  content:"\f091";
}
i.icon.wizard:before{
  content:"\f0d0";
}
i.icon.woman:before{
  content:"\f221";
}
i.icon.won:before{
  content:"\f159";
}
i.icon.wordpress.beginner:before{
  content:"\f297";
}
i.icon.wordpress.forms:before{
  content:"\f298";
}
i.icon.world:before{
  content:"\f0ac";
}
i.icon.write.square:before{
  content:"\f14b";
}
i.icon.x:before{
  content:"\f00d";
}
i.icon.yc:before{
  content:"\f23b";
}
i.icon.ycombinator:before{
  content:"\f23b";
}
i.icon.yen:before{
  content:"\f157";
}
i.icon.zip:before{
  content:"\f187";
}
i.icon.zoom.in:before{
  content:"\f00e";
}
i.icon.zoom.out:before{
  content:"\f010";
}
i.icon.zoom:before{
  content:"\f00e";
}
i.icon.bitbucket.square:before{
  content:"\f171";
}
i.icon.checkmark.box:before{
  content:"\f14a";
}
i.icon.circle.thin:before{
  content:"\f111";
}
i.icon.cloud.download:before{
  content:"\f381";
}
i.icon.cloud.upload:before{
  content:"\f382";
}
i.icon.compose:before{
  content:"\f303";
}
i.icon.conversation:before{
  content:"\f086";
}
i.icon.credit.card.alternative:before{
  content:"\f09d";
}
i.icon.currency:before{
  content:"\f3d1";
}
i.icon.dashboard:before{
  content:"\f3fd";
}
i.icon.diamond:before{
  content:"\f3a5";
}
i.icon.disk.outline:before{
  content:"\f369";
}
i.icon.disk:before{
  content:"\f0a0";
}
i.icon.exchange:before{
  content:"\f362";
}
i.icon.external.share:before{
  content:"\f14d";
}
i.icon.external.square:before{
  content:"\f360";
}
i.icon.external:before{
  content:"\f35d";
}
i.icon.facebook.official:before{
  content:"\f082";
}
i.icon.food:before{
  content:"\f2e7";
}
i.icon.heart.empty:before{
  content:"\f004";
}
i.icon.hourglass.zero:before{
  content:"\f253";
}
i.icon.level.down:before{
  content:"\f3be";
}
i.icon.level.up:before{
  content:"\f3bf";
}
i.icon.log.out:before{
  content:"\f2f5";
}
i.icon.meanpath:before{
  content:"\f0c8";
}
i.icon.money:before{
  content:"\f3d1";
}
i.icon.move:before{
  content:"\f0b2";
}
i.icon.pencil:before{
  content:"\f303";
}
i.icon.protect:before{
  content:"\f023";
}
i.icon.radio:before{
  content:"\f192";
}
i.icon.remove.bookmark:before{
  content:"\f02e";
}
i.icon.resize.horizontal:before{
  content:"\f337";
}
i.icon.resize.vertical:before{
  content:"\f338";
}
i.icon.sign.in:before{
  content:"\f2f6";
}
i.icon.sign.out:before{
  content:"\f2f5";
}
i.icon.spoon:before{
  content:"\f2e5";
}
i.icon.star.empty:before{
  content:"\f089";
}
i.icon.star.half.empty:before{
  content:"\f089";
}
i.icon.star.half.full:before{
  content:"\f089";
}
i.icon.ticket:before{
  content:"\f3ff";
}
i.icon.times.rectangle:before{
  content:"\f410";
}
i.icon.write:before{
  content:"\f303";
}
i.icon.youtube.play:before{
  content:"\f167";
}
/*!
 * # Semantic UI - Image
 * http://github.com/semantic-org/semantic-ui/
 *
 *
 * Released under the MIT license
 * http://opensource.org/licenses/MIT
 *
 */
.ui.image{
  position:relative;
  display:inline-block;
  vertical-align:middle;
  max-width:100%;
  background-color:transparent;
}
img.ui.image{
  display:block;
}
.ui.image svg,
.ui.image img{
  display:block;
  max-width:100%;
  height:auto;
}
.ui.hidden.images,
.ui.hidden.image{
  display:none;
}
.ui.hidden.transition.images,
.ui.hidden.transition.image{
  display:block;
  visibility:hidden;
}
.ui.disabled.images,
.ui.disabled.image{
  cursor:default;
  opacity:0.45;
}
.ui.inline.image,
.ui.inline.image svg,
.ui.inline.image img{
  display:inline-block;
}
.ui.top.aligned.images .image,
.ui.top.aligned.image,
.ui.top.aligned.image svg,
.ui.top.aligned.image img{
  display:inline-block;
  vertical-align:top;
}
.ui.middle.aligned.images .image,
.ui.middle.aligned.image,
.ui.middle.aligned.image svg,
.ui.middle.aligned.image img{
  display:inline-block;
  vertical-align:middle;
}
.ui.bottom.aligned.images .image,
.ui.bottom.aligned.image,
.ui.bottom.aligned.image svg,
.ui.bottom.aligned.image img{
  display:inline-block;
  vertical-align:bottom;
}
.ui.rounded.images .image,
.ui.rounded.image,
.ui.rounded.images .image > *,
.ui.rounded.image > *{
  border-radius:0.3125em;
}
.ui.bordered.images .image,
.ui.bordered.images img,
.ui.bordered.images svg,
.ui.bordered.image img,
.ui.bordered.image svg,
img.ui.bordered.image{
  border:1px solid rgba(0, 0, 0, 0.1);
}
.ui.circular.images,
.ui.circular.image{
  overflow:hidden;
}
.ui.circular.images .image,
.ui.circular.image,
.ui.circular.images .image > *,
.ui.circular.image > *{
  border-radius:500rem;
}
.ui.fluid.images,
.ui.fluid.image,
.ui.fluid.images img,
.ui.fluid.images svg,
.ui.fluid.image svg,
.ui.fluid.image img{
  display:block;
  width:100%;
  height:auto;
}
.ui.avatar.images .image,
.ui.avatar.images img,
.ui.avatar.images svg,
.ui.avatar.image img,
.ui.avatar.image svg,
.ui.avatar.image{
  margin-right:0.25em;
  display:inline-block;
  width:2em;
  height:2em;
  border-radius:500rem;
}
.ui.spaced.image{
  display:inline-block !important;
  margin-left:0.5em;
  margin-right:0.5em;
}
.ui[class*="left spaced"].image{
  margin-left:0.5em;
  margin-right:0em;
}
.ui[class*="right spaced"].image{
  margin-left:0em;
  margin-right:0.5em;
}
.ui.floated.image,
.ui.floated.images{
  float:left;
  margin-right:1em;
  margin-bottom:1em;
}
.ui.right.floated.images,
.ui.right.floated.image{
  float:right;
  margin-right:0em;
  margin-bottom:1em;
  margin-left:1em;
}
.ui.floated.images:last-child,
.ui.floated.image:last-child{
  margin-bottom:0em;
}
.ui.centered.images,
.ui.centered.image{
  margin-left:auto;
  margin-right:auto;
}
.ui.mini.images .image,
.ui.mini.images img,
.ui.mini.images svg,
.ui.mini.image{
  width:35px;
  height:auto;
  font-size:0.8rem;
}
.ui.tiny.images .image,
.ui.tiny.images img,
.ui.tiny.images svg,
.ui.tiny.image{
  width:80px;
  height:auto;
  font-size:0.9rem;
}
.ui.small.images .image,
.ui.small.images img,
.ui.small.images svg,
.ui.small.image{
  width:150px;
  height:auto;
  font-size:0.9rem;
}
.ui.medium.images .image,
.ui.medium.images img,
.ui.medium.images svg,
.ui.medium.image{
  width:300px;
  height:auto;
  font-size:1rem;
}
.ui.large.images .image,
.ui.large.images img,
.ui.large.images svg,
.ui.large.image{
  width:450px;
  height:auto;
  font-size:1.1rem;
}
.ui.big.images .image,
.ui.big.images img,
.ui.big.images svg,
.ui.big.image{
  width:600px;
  height:auto;
  font-size:1.3rem;
}
.ui.huge.images .image,
.ui.huge.images img,
.ui.huge.images svg,
.ui.huge.image{
  width:800px;
  height:auto;
  font-size:1.4rem;
}
.ui.massive.images .image,
.ui.massive.images img,
.ui.massive.images svg,
.ui.massive.image{
  width:960px;
  height:auto;
  font-size:1.7rem;
}
.ui.images{
  font-size:0em;
  margin:0em -0.25rem 0rem;
}
.ui.images .image,
.ui.images img,
.ui.images svg{
  display:inline-block;
  margin:0em 0.25rem 0.5rem;
}
/*!
 * # Semantic UI - Input
 * http://github.com/semantic-org/semantic-ui/
 *
 *
 * Released under the MIT license
 * http://opensource.org/licenses/MIT
 *
 */
.ui.input{
  position:relative;
  font-weight:normal;
  font-style:normal;
  display:inline-flex;
  color:#333333;
}
.ui.input input{
  margin:0em;
  max-width:100%;
  flex:1 0 auto;
  outline:none;
  -webkit-tap-highlight-color:rgba(255, 255, 255, 0);
  text-align:left;
  line-height:1.21428571em;
  font-family:'Exo 2', 'Lato', Arial, Helvetica, sans-serif;
  padding:0.99285714em 1.4em;
  background:#ffffff;
  border:1px solid rgba(34, 36, 38, 0.15);
  color:#333333;
  border-radius:0.4rem;
  transition:box-shadow 0.1s ease, border-color 0.1s ease;
  box-shadow:none;
}
.ui.input input::-webkit-input-placeholder{
  color:#f2f2f2;
}
.ui.input input::-moz-placeholder{
  color:#f2f2f2;
}
.ui.input input:-ms-input-placeholder{
  color:#f2f2f2;
}
.ui.disabled.input,
.ui.input input[disabled]{
  opacity:0.45;
}
.ui.disabled.input input,
.ui.input input[disabled]{
  pointer-events:none;
}
.ui.input input:active,
.ui.input.down input{
  border-color:rgba(0, 0, 0, 0.3);
  background:#FAFAFA;
  color:#333333;
  box-shadow:none;
}
.ui.loading.loading.input > i.icon:before{
  position:absolute;
  content:'';
  top:50%;
  left:50%;
  margin:-0.65em 0em 0em -0.65em;
  width:1.3em;
  height:1.3em;
  border-radius:500rem;
  border:0.2em solid rgba(0, 0, 0, 0.1);
}
.ui.loading.loading.input > i.icon:after{
  position:absolute;
  content:'';
  top:50%;
  left:50%;
  margin:-0.65em 0em 0em -0.65em;
  width:1.3em;
  height:1.3em;
  animation:button-spin 0.6s linear;
  animation-iteration-count:infinite;
  border-radius:500rem;
  border-color:#767676 transparent transparent;
  border-style:solid;
  border-width:0.2em;
  box-shadow:0px 0px 0px 1px transparent;
}
.ui.input.focus input,
.ui.input input:focus{
  border-color:#85B7D9;
  background:#ffffff;
  color:rgba(0, 0, 0, 0.8);
  box-shadow:none;
}
.ui.input.focus input::-webkit-input-placeholder,
.ui.input input:focus::-webkit-input-placeholder{
  color:#a6a6a6;
}
.ui.input.focus input::-moz-placeholder,
.ui.input input:focus::-moz-placeholder{
  color:#a6a6a6;
}
.ui.input.focus input:-ms-input-placeholder,
.ui.input input:focus:-ms-input-placeholder{
  color:#a6a6a6;
}
.ui.input.error input{
  background-color:#FFF6F6;
  border-color:#E0B4B4;
  color:#9F3A38;
  box-shadow:none;
}
.ui.input.error input::-webkit-input-placeholder{
  color:#e7bdbc;
}
.ui.input.error input::-moz-placeholder{
  color:#e7bdbc;
}
.ui.input.error input:-ms-input-placeholder{
  color:#e7bdbc !important;
}
.ui.input.error input:focus::-webkit-input-placeholder{
  color:#da9796;
}
.ui.input.error input:focus::-moz-placeholder{
  color:#da9796;
}
.ui.input.error input:focus:-ms-input-placeholder{
  color:#da9796 !important;
}
.ui.transparent.input input{
  border-color:transparent !important;
  background-color:transparent !important;
  padding:0em !important;
  box-shadow:none !important;
}
.ui.transparent.icon.input > i.icon{
  width:1.1em;
}
.ui.transparent.icon.input > input{
  padding-left:0em !important;
  padding-right:2em !important;
}
.ui.transparent[class*="left icon"].input > input{
  padding-left:2em !important;
  padding-right:0em !important;
}
.ui.transparent.inverted.input{
  color:#ffffff;
}
.ui.transparent.inverted.input input{
  color:inherit;
}
.ui.transparent.inverted.input input::-webkit-input-placeholder{
  color:rgba(255, 255, 255, 0.5);
}
.ui.transparent.inverted.input input::-moz-placeholder{
  color:rgba(255, 255, 255, 0.5);
}
.ui.transparent.inverted.input input:-ms-input-placeholder{
  color:rgba(255, 255, 255, 0.5);
}
.ui.icon.input > i.icon{
  cursor:default;
  position:absolute;
  line-height:1;
  text-align:center;
  top:0px;
  right:0px;
  margin:0em;
  height:100%;
  width:3.3em;
  opacity:0.5;
  border-radius:0em 0.4rem 0.4rem 0em;
  transition:opacity 0.3s ease;
}
.ui.icon.input > i.icon:not(.link){
  pointer-events:none;
}
.ui.icon.input input{
  padding-right:3.3em !important;
}
.ui.icon.input > i.icon:before,
.ui.icon.input > i.icon:after{
  left:0;
  position:absolute;
  text-align:center;
  top:50%;
  width:100%;
  margin-top:-0.5em;
}
.ui.icon.input > i.link.icon{
  cursor:pointer;
}
.ui.icon.input > i.circular.icon{
  top:0.35em;
  right:0.5em;
}
.ui[class*="left icon"].input > i.icon{
  right:auto;
  left:1px;
  border-radius:0.4rem 0em 0em 0.4rem;
}
.ui[class*="left icon"].input > i.circular.icon{
  right:auto;
  left:0.5em;
}
.ui[class*="left icon"].input > input{
  padding-left:3.3em !important;
  padding-right:1.4em !important;
}
.ui.icon.input > input:focus ~ i.icon{
  opacity:1;
}
.ui.labeled.input > .label{
  flex:0 0 auto;
  margin:0;
  font-size:1em;
}
.ui.labeled.input > .label:not(.corner){
  padding-top:1.1em;
  padding-bottom:1.1em;
}
.ui.labeled.input:not([class*="corner labeled"]) .label:first-child{
  border-top-right-radius:0px;
  border-bottom-right-radius:0px;
}
.ui.labeled.input:not([class*="corner labeled"]) .label:first-child + input{
  border-top-left-radius:0px;
  border-bottom-left-radius:0px;
  border-left-color:transparent;
}
.ui.labeled.input:not([class*="corner labeled"]) .label:first-child + input:focus{
  border-left-color:#85B7D9;
}
.ui[class*="right labeled"].input input{
  border-top-right-radius:0px !important;
  border-bottom-right-radius:0px !important;
  border-right-color:transparent !important;
}
.ui[class*="right labeled"].input input + .label{
  border-top-left-radius:0px;
  border-bottom-left-radius:0px;
}
.ui[class*="right labeled"].input input:focus{
  border-right-color:#85B7D9 !important;
}
.ui.labeled.input .corner.label{
  top:1px;
  right:1px;
  font-size:0.9em;
  border-radius:0em 0.4rem 0em 0em;
}
.ui[class*="corner labeled"]:not([class*="left corner labeled"]).labeled.input input{
  padding-right:2.5em !important;
}
.ui[class*="corner labeled"].icon.input:not([class*="left corner labeled"]) > input{
  padding-right:3.25em !important;
}
.ui[class*="corner labeled"].icon.input:not([class*="left corner labeled"]) > .icon{
  margin-right:1.25em;
}
.ui[class*="left corner labeled"].labeled.input input{
  padding-left:2.5em !important;
}
.ui[class*="left corner labeled"].icon.input > input{
  padding-left:3.25em !important;
}
.ui[class*="left corner labeled"].icon.input > .icon{
  margin-left:1.25em;
}
.ui.input > .ui.corner.label{
  top:1px;
  right:1px;
}
.ui.input > .ui.left.corner.label{
  right:auto;
  left:1px;
}
.ui.action.input > .button,
.ui.action.input > .buttons{
  display:flex;
  align-items:center;
  flex:0 0 auto;
}
.ui.action.input > .button,
.ui.action.input > .buttons > .button{
  padding-top:1.1em;
  padding-bottom:1.1em;
  margin:0;
}
.ui.action.input:not([class*="left action"]) > input{
  border-top-right-radius:0px !important;
  border-bottom-right-radius:0px !important;
  border-right-color:transparent !important;
}
.ui.action.input:not([class*="left action"]) > .dropdown:not(:first-child),
.ui.action.input:not([class*="left action"]) > .button:not(:first-child),
.ui.action.input:not([class*="left action"]) > .buttons:not(:first-child) > .button{
  border-radius:0px;
}
.ui.action.input:not([class*="left action"]) > .dropdown:last-child,
.ui.action.input:not([class*="left action"]) > .button:last-child,
.ui.action.input:not([class*="left action"]) > .buttons:last-child > .button{
  border-radius:0px 0.4rem 0.4rem 0px;
}
.ui.action.input:not([class*="left action"]) input:focus{
  border-right-color:#85B7D9 !important;
}
.ui[class*="left action"].input > input{
  border-top-left-radius:0px !important;
  border-bottom-left-radius:0px !important;
  border-left-color:transparent !important;
}
.ui[class*="left action"].input > .dropdown,
.ui[class*="left action"].input > .button,
.ui[class*="left action"].input > .buttons > .button{
  border-radius:0px;
}
.ui[class*="left action"].input > .dropdown:first-child,
.ui[class*="left action"].input > .button:first-child,
.ui[class*="left action"].input > .buttons:first-child > .button{
  border-radius:0.4rem 0px 0px 0.4rem;
}
.ui[class*="left action"].input > input:focus{
  border-left-color:#85B7D9 !important;
}
.ui.inverted.input input{
  border:none;
}
.ui.fluid.input{
  display:flex;
}
.ui.fluid.input > input{
  width:0px !important;
}
.ui.mini.input{
  font-size:0.8em;
}
.ui.small.input{
  font-size:0.9em;
}
.ui.input{
  font-size:1em;
}
.ui.large.input{
  font-size:1.1em;
}
.ui.big.input{
  font-size:1.3em;
}
.ui.huge.input{
  font-size:1.4em;
}
.ui.massive.input{
  font-size:1.7em;
}
/*!
 * # Semantic UI - Label
 * http://github.com/semantic-org/semantic-ui/
 *
 *
 * Released under the MIT license
 * http://opensource.org/licenses/MIT
 *
 */
.ui.label{
  display:inline-block;
  line-height:1;
  vertical-align:baseline;
  margin:0em 0.2em;
  background-color:#E8E8E8;
  background-image:none;
  padding:0.5833em 0.833em;
  color:rgba(0, 0, 0, 0.6);
  text-transform:none;
  font-weight:bold;
  border:0px solid transparent;
  border-radius:0.4rem;
  transition:background 0.1s ease;
}
.ui.label:first-child{
  margin-left:0em;
}
.ui.label:last-child{
  margin-right:0em;
}
a.ui.label{
  cursor:pointer;
}
.ui.label > a{
  cursor:pointer;
  color:inherit;
  opacity:0.5;
  transition:0.1s opacity ease;
}
.ui.label > a:hover{
  opacity:1;
}
.ui.label > img{
  width:auto !important;
  vertical-align:middle;
  height:2.1666em !important;
}
.ui.label > .icon{
  width:auto;
  margin:0em 0.75em 0em 0em;
}
.ui.label > .detail{
  display:inline-block;
  vertical-align:top;
  font-weight:bold;
  margin-left:1em;
  opacity:0.8;
}
.ui.label > .detail .icon{
  margin:0em 0.25em 0em 0em;
}
.ui.label > .close.icon,
.ui.label > .delete.icon{
  cursor:pointer;
  margin-right:0em;
  margin-left:0.5em;
  font-size:0.9em;
  opacity:0.5;
  transition:background 0.1s ease;
}
.ui.label > .delete.icon:hover{
  opacity:1;
}
.ui.labels > .label{
  margin:0em 0.5em 0.5em 0em;
}
.ui.header > .ui.label{
  margin-top:-0.29165em;
}
.ui.attached.segment > .ui.top.left.attached.label,
.ui.bottom.attached.segment > .ui.top.left.attached.label{
  border-top-left-radius:0;
}
.ui.attached.segment > .ui.top.right.attached.label,
.ui.bottom.attached.segment > .ui.top.right.attached.label{
  border-top-right-radius:0;
}
.ui.top.attached.segment > .ui.bottom.left.attached.label{
  border-bottom-left-radius:0;
}
.ui.top.attached.segment > .ui.bottom.right.attached.label{
  border-bottom-right-radius:0;
}
.ui.top.attached.label:first-child + :not(.attached),
.ui.top.attached.label + [class*="right floated"] + *{
  margin-top:2rem !important;
}
.ui.bottom.attached.label:first-child ~ :last-child:not(.attached){
  margin-top:0em;
  margin-bottom:2rem !important;
}
.ui.image.label{
  width:auto !important;
  margin-top:0em;
  margin-bottom:0em;
  max-width:9999px;
  vertical-align:baseline;
  text-transform:none;
  background:#E8E8E8;
  padding:0.5833em 0.833em 0.5833em 0.5em;
  border-radius:0.4rem;
  box-shadow:none;
}
.ui.image.label img{
  display:inline-block;
  vertical-align:top;
  height:2.1666em;
  margin:-0.5833em 0.5em -0.5833em -0.5em;
  border-radius:0.4rem 0em 0em 0.4rem;
}
.ui.image.label .detail{
  background:rgba(0, 0, 0, 0.1);
  margin:-0.5833em -0.833em -0.5833em 0.5em;
  padding:0.5833em 0.833em;
  border-radius:0em 0.4rem 0.4rem 0em;
}
.ui.tag.labels .label,
.ui.tag.label{
  margin-left:1em;
  position:relative;
  padding-left:1.5em;
  padding-right:1.5em;
  border-radius:0em 0.4rem 0.4rem 0em;
  transition:none;
}
.ui.tag.labels .label:before,
.ui.tag.label:before{
  position:absolute;
  transform:translateY(-50%) translateX(50%) rotate(-45deg);
  top:50%;
  right:100%;
  content:'';
  background-color:inherit;
  background-image:none;
  width:1.56em;
  height:1.56em;
  transition:none;
}
.ui.tag.labels .label:after,
.ui.tag.label:after{
  position:absolute;
  content:'';
  top:50%;
  left:-0.25em;
  margin-top:-0.25em;
  background-color:#ffffff !important;
  width:0.5em;
  height:0.5em;
  box-shadow:0 -1px 1px 0 rgba(0, 0, 0, 0.3);
  border-radius:500rem;
}
.ui.corner.label{
  position:absolute;
  top:0em;
  right:0em;
  margin:0em;
  padding:0em;
  text-align:center;
  border-color:#E8E8E8;
  width:4em;
  height:4em;
  z-index:1;
  transition:border-color 0.1s ease;
}
.ui.corner.label{
  background-color:transparent !important;
}
.ui.corner.label:after{
  position:absolute;
  content:"";
  right:0em;
  top:0em;
  z-index:-1;
  width:0em;
  height:0em;
  background-color:transparent !important;
  border-top:0em solid transparent;
  border-right:4em solid transparent;
  border-bottom:4em solid transparent;
  border-left:0em solid transparent;
  border-right-color:inherit;
  transition:border-color 0.1s ease;
}
.ui.corner.label .icon{
  cursor:default;
  position:relative;
  top:0.9em;
  left:1.1em;
  font-size:1.1em;
  margin:0em;
}
.ui.left.corner.label,
.ui.left.corner.label:after{
  right:auto;
  left:0em;
}
.ui.left.corner.label:after{
  border-top:4em solid transparent;
  border-right:4em solid transparent;
  border-bottom:0em solid transparent;
  border-left:0em solid transparent;
  border-top-color:inherit;
}
.ui.left.corner.label .icon{
  left:-1.1em;
}
.ui.segment > .ui.corner.label{
  top:-1px;
  right:-1px;
}
.ui.segment > .ui.left.corner.label{
  right:auto;
  left:-1px;
}
.ui.ribbon.label{
  position:relative;
  margin:0em;
  min-width:-webkit-max-content;
  min-width:-moz-max-content;
  min-width:max-content;
  border-radius:0em 0.4rem 0.4rem 0em;
  border-color:rgba(0, 0, 0, 0.15);
}
.ui.ribbon.label:after{
  position:absolute;
  content:'';
  top:100%;
  left:0%;
  background-color:transparent !important;
  border-style:solid;
  border-width:0em 1.2em 1.2em 0em;
  border-color:transparent;
  border-right-color:inherit;
  width:0em;
  height:0em;
}
.ui.ribbon.label{
  left:calc(-1rem - 1.2em);
  margin-right:-1.2em;
  padding-left:calc(1rem + 1.2em);
  padding-right:1.2em;
}
.ui[class*="right ribbon"].label{
  left:calc(100% + 1rem + 1.2em);
  padding-left:1.2em;
  padding-right:calc(1rem + 1.2em);
}
.ui[class*="right ribbon"].label{
  text-align:left;
  transform:translateX(-100%);
  border-radius:0.4rem 0em 0em 0.4rem;
}
.ui[class*="right ribbon"].label:after{
  left:auto;
  right:0%;
  border-style:solid;
  border-width:1.2em 1.2em 0em 0em;
  border-color:transparent;
  border-top-color:inherit;
}
.ui.image > .ribbon.label,
.ui.card .image > .ribbon.label{
  position:absolute;
  top:1rem;
}
.ui.card .image > .ui.ribbon.label,
.ui.image > .ui.ribbon.label{
  left:calc(0.05rem - 1.2em);
}
.ui.card .image > .ui[class*="right ribbon"].label,
.ui.image > .ui[class*="right ribbon"].label{
  left:calc(100% + -0.05rem + 1.2em);
  padding-left:0.833em;
}
.ui.table td > .ui.ribbon.label{
  left:calc(-0.8em - 1.2em);
}
.ui.table td > .ui[class*="right ribbon"].label{
  left:calc(100% + 0.8em + 1.2em);
  padding-left:0.833em;
}
.ui[class*="top attached"].label,
.ui.attached.label{
  width:100%;
  position:absolute;
  margin:0em;
  top:0em;
  left:0em;
  padding:0.75em 1em;
  border-radius:0.3rem 0.3rem 0em 0em;
}
.ui[class*="bottom attached"].label{
  top:auto;
  bottom:0em;
  border-radius:0em 0em 0.3rem 0.3rem;
}
.ui[class*="top left attached"].label{
  width:auto;
  margin-top:0em !important;
  border-radius:0.3rem 0em 0.4rem 0em;
}
.ui[class*="top right attached"].label{
  width:auto;
  left:auto;
  right:0em;
  border-radius:0em 0.3rem 0em 0.4rem;
}
.ui[class*="bottom left attached"].label{
  width:auto;
  top:auto;
  bottom:0em;
  border-radius:0em 0.4rem 0em 0.3rem;
}
.ui[class*="bottom right attached"].label{
  top:auto;
  bottom:0em;
  left:auto;
  right:0em;
  width:auto;
  border-radius:0.4rem 0em 0.3rem 0em;
}
.ui.label.disabled{
  opacity:0.5;
}
a.ui.labels .label:hover,
a.ui.label:hover{
  background-color:#E0E0E0;
  border-color:#E0E0E0;
  background-image:none;
  color:rgba(0, 0, 0, 0.8);
}
.ui.labels a.label:hover:before,
a.ui.label:hover:before{
  color:rgba(0, 0, 0, 0.8);
}
.ui.active.label{
  background-color:#D0D0D0;
  border-color:#D0D0D0;
  background-image:none;
  color:rgba(0, 0, 0, 0.95);
}
.ui.active.label:before{
  background-color:#D0D0D0;
  background-image:none;
  color:rgba(0, 0, 0, 0.95);
}
a.ui.labels .active.label:hover,
a.ui.active.label:hover{
  background-color:#C8C8C8;
  border-color:#C8C8C8;
  background-image:none;
  color:rgba(0, 0, 0, 0.95);
}
.ui.labels a.active.label:ActiveHover:before,
a.ui.active.label:ActiveHover:before{
  background-color:#C8C8C8;
  background-image:none;
  color:rgba(0, 0, 0, 0.95);
}
.ui.labels.visible .label,
.ui.label.visible:not(.dropdown){
  display:inline-block !important;
}
.ui.labels.hidden .label,
.ui.label.hidden{
  display:none !important;
}
.ui.red.labels .label,
.ui.red.label{
  background-color:#de3a3e !important;
  border-color:#de3a3e !important;
  color:#ffffff !important;
}
.ui.red.labels .label:hover,
a.ui.red.label:hover{
  background-color:#e31b20 !important;
  border-color:#e31b20 !important;
  color:#ffffff !important;
}
.ui.red.corner.label,
.ui.red.corner.label:hover{
  background-color:transparent !important;
}
.ui.red.ribbon.label{
  border-color:#c42125 !important;
}
.ui.basic.red.label{
  background-color:#ffffff !important;
  color:#de3a3e !important;
  border-color:#de3a3e !important;
}
.ui.basic.red.labels a.label:hover,
a.ui.basic.red.label:hover{
  background-color:#ffffff !important;
  color:#e31b20 !important;
  border-color:#e31b20 !important;
}
.ui.orange.labels .label,
.ui.orange.label{
  background-color:#ff9533 !important;
  border-color:#ff9533 !important;
  color:#ffffff !important;
}
.ui.orange.labels .label:hover,
a.ui.orange.label:hover{
  background-color:#ff8819 !important;
  border-color:#ff8819 !important;
  color:#ffffff !important;
}
.ui.orange.corner.label,
.ui.orange.corner.label:hover{
  background-color:transparent !important;
}
.ui.orange.ribbon.label{
  border-color:#ff7b00 !important;
}
.ui.basic.orange.label{
  background-color:#ffffff !important;
  color:#ff9533 !important;
  border-color:#ff9533 !important;
}
.ui.basic.orange.labels a.label:hover,
a.ui.basic.orange.label:hover{
  background-color:#ffffff !important;
  color:#ff8819 !important;
  border-color:#ff8819 !important;
}
.ui.yellow.labels .label,
.ui.yellow.label{
  background-color:#FBBD08 !important;
  border-color:#FBBD08 !important;
  color:#ffffff !important;
}
.ui.yellow.labels .label:hover,
a.ui.yellow.label:hover{
  background-color:#eaae00 !important;
  border-color:#eaae00 !important;
  color:#ffffff !important;
}
.ui.yellow.corner.label,
.ui.yellow.corner.label:hover{
  background-color:transparent !important;
}
.ui.yellow.ribbon.label{
  border-color:#cd9903 !important;
}
.ui.basic.yellow.label{
  background-color:#ffffff !important;
  color:#FBBD08 !important;
  border-color:#FBBD08 !important;
}
.ui.basic.yellow.labels a.label:hover,
a.ui.basic.yellow.label:hover{
  background-color:#ffffff !important;
  color:#eaae00 !important;
  border-color:#eaae00 !important;
}
.ui.olive.labels .label,
.ui.olive.label{
  background-color:#B5CC18 !important;
  border-color:#B5CC18 !important;
  color:#ffffff !important;
}
.ui.olive.labels .label:hover,
a.ui.olive.label:hover{
  background-color:#a7bd0d !important;
  border-color:#a7bd0d !important;
  color:#ffffff !important;
}
.ui.olive.corner.label,
.ui.olive.corner.label:hover{
  background-color:transparent !important;
}
.ui.olive.ribbon.label{
  border-color:#127924 !important;
}
.ui.basic.olive.label{
  background-color:#ffffff !important;
  color:#B5CC18 !important;
  border-color:#B5CC18 !important;
}
.ui.basic.olive.labels a.label:hover,
a.ui.basic.olive.label:hover{
  background-color:#ffffff !important;
  color:#a7bd0d !important;
  border-color:#a7bd0d !important;
}
.ui.green.labels .label,
.ui.green.label{
  background-color:#19a531 !important;
  border-color:#19a531 !important;
  color:#ffffff !important;
}
.ui.green.labels .label:hover,
a.ui.green.label:hover{
  background-color:#109526 !important;
  border-color:#109526 !important;
  color:#ffffff !important;
}
.ui.green.corner.label,
.ui.green.corner.label:hover{
  background-color:transparent !important;
}
.ui.green.ribbon.label{
  border-color:#127924 !important;
}
.ui.basic.green.label{
  background-color:#ffffff !important;
  color:#19a531 !important;
  border-color:#19a531 !important;
}
.ui.basic.green.labels a.label:hover,
a.ui.basic.green.label:hover{
  background-color:#ffffff !important;
  color:#109526 !important;
  border-color:#109526 !important;
}
.ui.teal.labels .label,
.ui.teal.label{
  background-color:#00B5AD !important;
  border-color:#00B5AD !important;
  color:#ffffff !important;
}
.ui.teal.labels .label:hover,
a.ui.teal.label:hover{
  background-color:#009c95 !important;
  border-color:#009c95 !important;
  color:#ffffff !important;
}
.ui.teal.corner.label,
.ui.teal.corner.label:hover{
  background-color:transparent !important;
}
.ui.teal.ribbon.label{
  border-color:#00827c !important;
}
.ui.basic.teal.label{
  background-color:#ffffff !important;
  color:#00B5AD !important;
  border-color:#00B5AD !important;
}
.ui.basic.teal.labels a.label:hover,
a.ui.basic.teal.label:hover{
  background-color:#ffffff !important;
  color:#009c95 !important;
  border-color:#009c95 !important;
}
.ui.blue.labels .label,
.ui.blue.label{
  background-color:#3f51b5 !important;
  border-color:#3f51b5 !important;
  color:#ffffff !important;
}
.ui.blue.labels .label:hover,
a.ui.blue.label:hover{
  background-color:#3345a7 !important;
  border-color:#3345a7 !important;
  color:#ffffff !important;
}
.ui.blue.corner.label,
.ui.blue.corner.label:hover{
  background-color:transparent !important;
}
.ui.blue.ribbon.label{
  border-color:#32408f !important;
}
.ui.basic.blue.label{
  background-color:#ffffff !important;
  color:#3f51b5 !important;
  border-color:#3f51b5 !important;
}
.ui.basic.blue.labels a.label:hover,
a.ui.basic.blue.label:hover{
  background-color:#ffffff !important;
  color:#3345a7 !important;
  border-color:#3345a7 !important;
}
.ui.violet.labels .label,
.ui.violet.label{
  background-color:#6435C9 !important;
  border-color:#6435C9 !important;
  color:#ffffff !important;
}
.ui.violet.labels .label:hover,
a.ui.violet.label:hover{
  background-color:#5829bb !important;
  border-color:#5829bb !important;
  color:#ffffff !important;
}
.ui.violet.corner.label,
.ui.violet.corner.label:hover{
  background-color:transparent !important;
}
.ui.violet.ribbon.label{
  border-color:#502aa1 !important;
}
.ui.basic.violet.label{
  background-color:#ffffff !important;
  color:#6435C9 !important;
  border-color:#6435C9 !important;
}
.ui.basic.violet.labels a.label:hover,
a.ui.basic.violet.label:hover{
  background-color:#ffffff !important;
  color:#5829bb !important;
  border-color:#5829bb !important;
}
.ui.purple.labels .label,
.ui.purple.label{
  background-color:#A333C8 !important;
  border-color:#A333C8 !important;
  color:#ffffff !important;
}
.ui.purple.labels .label:hover,
a.ui.purple.label:hover{
  background-color:#9627ba !important;
  border-color:#9627ba !important;
  color:#ffffff !important;
}
.ui.purple.corner.label,
.ui.purple.corner.label:hover{
  background-color:transparent !important;
}
.ui.purple.ribbon.label{
  border-color:#82299f !important;
}
.ui.basic.purple.label{
  background-color:#ffffff !important;
  color:#A333C8 !important;
  border-color:#A333C8 !important;
}
.ui.basic.purple.labels a.label:hover,
a.ui.basic.purple.label:hover{
  background-color:#ffffff !important;
  color:#9627ba !important;
  border-color:#9627ba !important;
}
.ui.pink.labels .label,
.ui.pink.label{
  background-color:#E03997 !important;
  border-color:#E03997 !important;
  color:#ffffff !important;
}
.ui.pink.labels .label:hover,
a.ui.pink.label:hover{
  background-color:#e61a8d !important;
  border-color:#e61a8d !important;
  color:#ffffff !important;
}
.ui.pink.corner.label,
.ui.pink.corner.label:hover{
  background-color:transparent !important;
}
.ui.pink.ribbon.label{
  border-color:#c71f7e !important;
}
.ui.basic.pink.label{
  background-color:#ffffff !important;
  color:#E03997 !important;
  border-color:#E03997 !important;
}
.ui.basic.pink.labels a.label:hover,
a.ui.basic.pink.label:hover{
  background-color:#ffffff !important;
  color:#e61a8d !important;
  border-color:#e61a8d !important;
}
.ui.brown.labels .label,
.ui.brown.label{
  background-color:#A5673F !important;
  border-color:#A5673F !important;
  color:#ffffff !important;
}
.ui.brown.labels .label:hover,
a.ui.brown.label:hover{
  background-color:#975b33 !important;
  border-color:#975b33 !important;
  color:#ffffff !important;
}
.ui.brown.corner.label,
.ui.brown.corner.label:hover{
  background-color:transparent !important;
}
.ui.brown.ribbon.label{
  border-color:#805031 !important;
}
.ui.basic.brown.label{
  background-color:#ffffff !important;
  color:#A5673F !important;
  border-color:#A5673F !important;
}
.ui.basic.brown.labels a.label:hover,
a.ui.basic.brown.label:hover{
  background-color:#ffffff !important;
  color:#975b33 !important;
  border-color:#975b33 !important;
}
.ui.grey.labels .label,
.ui.grey.label{
  background-color:#767676 !important;
  border-color:#767676 !important;
  color:#ffffff !important;
}
.ui.grey.labels .label:hover,
a.ui.grey.label:hover{
  background-color:#838383 !important;
  border-color:#838383 !important;
  color:#ffffff !important;
}
.ui.grey.corner.label,
.ui.grey.corner.label:hover{
  background-color:transparent !important;
}
.ui.grey.ribbon.label{
  border-color:#805031 !important;
}
.ui.basic.grey.label{
  background-color:#ffffff !important;
  color:#767676 !important;
  border-color:#767676 !important;
}
.ui.basic.grey.labels a.label:hover,
a.ui.basic.grey.label:hover{
  background-color:#ffffff !important;
  color:#838383 !important;
  border-color:#838383 !important;
}
.ui.black.labels .label,
.ui.black.label{
  background-color:#000000 !important;
  border-color:#000000 !important;
  color:#ffffff !important;
}
.ui.black.labels .label:hover,
a.ui.black.label:hover{
  background-color:#0d0d0d !important;
  border-color:#0d0d0d !important;
  color:#ffffff !important;
}
.ui.black.corner.label,
.ui.black.corner.label:hover{
  background-color:transparent !important;
}
.ui.black.ribbon.label{
  border-color:#805031 !important;
}
.ui.basic.black.label{
  background-color:#ffffff !important;
  color:#000000 !important;
  border-color:#000000 !important;
}
.ui.basic.black.labels a.label:hover,
a.ui.basic.black.label:hover{
  background-color:#ffffff !important;
  color:#0d0d0d !important;
  border-color:#0d0d0d !important;
}
.ui.basic.label{
  background:none #ffffff;
  border:1px solid rgba(34, 36, 38, 0.15);
  color:#333333;
  box-shadow:none;
}
a.ui.basic.label:hover{
  text-decoration:none;
  background:none #ffffff;
  color:#1e70bf;
  box-shadow:1px solid rgba(34, 36, 38, 0.15);
  box-shadow:none;
}
.ui.basic.pointing.label:before{
  border-color:inherit;
}
.ui.label.fluid,
.ui.fluid.labels > .label{
  width:100%;
  box-sizing:border-box;
}
.ui.inverted.labels .label,
.ui.inverted.label{
  color:rgba(255, 255, 255, 0.9) !important;
}
.ui.horizontal.labels .label,
.ui.horizontal.label{
  margin:0em 0.5em 0em 0em;
  padding:0.4em 0.833em;
  min-width:3em;
  text-align:center;
}
.ui.circular.labels .label,
.ui.circular.label{
  min-width:2em;
  min-height:2em;
  padding:0.5em !important;
  line-height:1em;
  text-align:center;
  border-radius:500rem;
}
.ui.empty.circular.labels .label,
.ui.empty.circular.label{
  min-width:0em;
  min-height:0em;
  overflow:hidden;
  width:0.5em;
  height:0.5em;
  vertical-align:baseline;
}
.ui.pointing.label{
  position:relative;
}
.ui.attached.pointing.label{
  position:absolute;
}
.ui.pointing.label:before{
  background-color:inherit;
  background-image:inherit;
  border-width:none;
  border-style:solid;
  border-color:inherit;
}
.ui.pointing.label:before{
  position:absolute;
  content:'';
  transform:rotate(45deg);
  background-image:none;
  z-index:2;
  width:0.6666em;
  height:0.6666em;
  transition:background 0.1s ease;
}
.ui.pointing.label,
.ui[class*="pointing above"].label{
  margin-top:1em;
}
.ui.pointing.label:before,
.ui[class*="pointing above"].label:before{
  border-width:1px 0px 0px 1px;
  transform:translateX(-50%) translateY(-50%) rotate(45deg);
  top:0%;
  left:50%;
}
.ui[class*="bottom pointing"].label,
.ui[class*="pointing below"].label{
  margin-top:0em;
  margin-bottom:1em;
}
.ui[class*="bottom pointing"].label:before,
.ui[class*="pointing below"].label:before{
  border-width:0px 1px 1px 0px;
  top:auto;
  right:auto;
  transform:translateX(-50%) translateY(-50%) rotate(45deg);
  top:100%;
  left:50%;
}
.ui[class*="left pointing"].label{
  margin-top:0em;
  margin-left:0.6666em;
}
.ui[class*="left pointing"].label:before{
  border-width:0px 0px 1px 1px;
  transform:translateX(-50%) translateY(-50%) rotate(45deg);
  bottom:auto;
  right:auto;
  top:50%;
  left:0em;
}
.ui[class*="right pointing"].label{
  margin-top:0em;
  margin-right:0.6666em;
}
.ui[class*="right pointing"].label:before{
  border-width:1px 1px 0px 0px;
  transform:translateX(50%) translateY(-50%) rotate(45deg);
  top:50%;
  right:0%;
  bottom:auto;
  left:auto;
}
.ui.basic.pointing.label:before,
.ui.basic[class*="pointing above"].label:before{
  margin-top:-1px;
}
.ui.basic[class*="bottom pointing"].label:before,
.ui.basic[class*="pointing below"].label:before{
  bottom:auto;
  top:100%;
  margin-top:1px;
}
.ui.basic[class*="left pointing"].label:before{
  top:50%;
  left:-1px;
}
.ui.basic[class*="right pointing"].label:before{
  top:50%;
  right:-1px;
}
.ui.floating.label{
  position:absolute;
  z-index:100;
  top:-1em;
  left:100%;
  margin:0em 0em 0em -1.5em !important;
}
.ui.mini.labels .label,
.ui.mini.label{
  font-size:0.9rem;
}
.ui.tiny.labels .label,
.ui.tiny.label{
  font-size:1rem;
}
.ui.small.labels .label,
.ui.small.label{
  font-size:1.1rem;
}
.ui.labels .label,
.ui.label{
  font-size:1.2rem;
}
.ui.large.labels .label,
.ui.large.label{
  font-size:1rem;
}
.ui.big.labels .label,
.ui.big.label{
  font-size:1.3rem;
}
.ui.huge.labels .label,
.ui.huge.label{
  font-size:1.4rem;
}
.ui.massive.labels .label,
.ui.massive.label{
  font-size:1.7rem;
}
/*!
 * # Semantic UI - List
 * http://github.com/semantic-org/semantic-ui/
 *
 *
 * Released under the MIT license
 * http://opensource.org/licenses/MIT
 *
 */
ul.ui.list,
ol.ui.list,
.ui.list{
  list-style-type:none;
  margin:1em 0em;
  padding:0em 0em;
}
ul.ui.list:first-child,
ol.ui.list:first-child,
.ui.list:first-child{
  margin-top:0em;
  padding-top:0em;
}
ul.ui.list:last-child,
ol.ui.list:last-child,
.ui.list:last-child{
  margin-bottom:0em;
  padding-bottom:0em;
}
ul.ui.list li,
ol.ui.list li,
.ui.list > .item,
.ui.list .list > .item{
  display:list-item;
  table-layout:fixed;
  list-style-type:none;
  list-style-position:outside;
  padding:0.3em 0em;
  line-height:1.1em;
}
ul.ui.list > li:first-child:after,
ol.ui.list > li:first-child:after,
.ui.list > .list > .item,
.ui.list > .item:after{
  content:'';
  display:block;
  height:0;
  clear:both;
  visibility:hidden;
}
ul.ui.list li:first-child,
ol.ui.list li:first-child,
.ui.list .list > .item:first-child,
.ui.list > .item:first-child{
  padding-top:0em;
}
ul.ui.list li:last-child,
ol.ui.list li:last-child,
.ui.list .list > .item:last-child,
.ui.list > .item:last-child{
  padding-bottom:0em;
}
ul.ui.list ul,
ol.ui.list ol,
.ui.list .list{
  clear:both;
  margin:0em;
  padding:0.75em 0em 0.25em 0.5em;
}
ul.ui.list ul li,
ol.ui.list ol li,
.ui.list .list > .item{
  padding:0.2em 0em;
  line-height:inherit;
}
.ui.list .list > .item > i.icon,
.ui.list > .item > i.icon{
  display:table-cell;
  margin:0em;
  padding-top:0.05em;
  padding-right:0.4em;
  vertical-align:top;
  transition:color 0.1s ease;
}
.ui.list .list > .item > i.icon:only-child,
.ui.list > .item > i.icon:only-child{
  display:inline-block;
  vertical-align:top;
}
.ui.list .list > .item > .image,
.ui.list > .item > .image{
  display:table-cell;
  background-color:transparent;
  margin:0em;
  vertical-align:top;
}
.ui.list .list > .item > .image:not(:only-child):not(img),
.ui.list > .item > .image:not(:only-child):not(img){
  padding-right:0.5em;
}
.ui.list .list > .item > .image img,
.ui.list > .item > .image img{
  vertical-align:top;
}
.ui.list .list > .item > img.image,
.ui.list .list > .item > .image:only-child,
.ui.list > .item > img.image,
.ui.list > .item > .image:only-child{
  display:inline-block;
}
.ui.list .list > .item > .content,
.ui.list > .item > .content{
  line-height:1.1em;
}
.ui.list .list > .item > .image + .content,
.ui.list .list > .item > .icon + .content,
.ui.list > .item > .image + .content,
.ui.list > .item > .icon + .content{
  display:table-cell;
  padding:0em 0em 0em 0.5em;
  vertical-align:top;
}
.ui.list .list > .item > img.image + .content,
.ui.list > .item > img.image + .content{
  display:inline-block;
}
.ui.list .list > .item > .content > .list,
.ui.list > .item > .content > .list{
  margin-left:0em;
  padding-left:0em;
}
.ui.list .list > .item .header,
.ui.list > .item .header{
  display:block;
  margin:0em;
  font-family:'Exo 2', 'Lato', Arial, Helvetica, sans-serif;
  font-weight:bold;
  color:#333333;
}
.ui.list .list > .item .description,
.ui.list > .item .description{
  display:block;
  color:rgba(0, 0, 0, 0.7);
}
.ui.list > .item a,
.ui.list .list > .item a{
  cursor:pointer;
}
.ui.list .list > a.item,
.ui.list > a.item{
  cursor:pointer;
  color:#4183C4;
}
.ui.list .list > a.item:hover,
.ui.list > a.item:hover{
  color:#1e70bf;
}
.ui.list .list > a.item i.icon,
.ui.list > a.item i.icon{
  color:rgba(0, 0, 0, 0.4);
}
.ui.list .list > .item a.header,
.ui.list > .item a.header{
  cursor:pointer;
  color:#4183C4 !important;
}
.ui.list .list > .item a.header:hover,
.ui.list > .item a.header:hover{
  color:#1e70bf !important;
}
.ui[class*="left floated"].list{
  float:left;
}
.ui[class*="right floated"].list{
  float:right;
}
.ui.list .list > .item [class*="left floated"],
.ui.list > .item [class*="left floated"]{
  float:left;
  margin:0em 1em 0em 0em;
}
.ui.list .list > .item [class*="right floated"],
.ui.list > .item [class*="right floated"]{
  float:right;
  margin:0em 0em 0em 1em;
}
.ui.menu .ui.list > .item,
.ui.menu .ui.list .list > .item{
  display:list-item;
  table-layout:fixed;
  background-color:transparent;
  list-style-type:none;
  list-style-position:outside;
  padding:0.3em 0em;
  line-height:1.1em;
}
.ui.menu .ui.list .list > .item:before,
.ui.menu .ui.list > .item:before{
  border:none;
  background:none;
}
.ui.menu .ui.list .list > .item:first-child,
.ui.menu .ui.list > .item:first-child{
  padding-top:0em;
}
.ui.menu .ui.list .list > .item:last-child,
.ui.menu .ui.list > .item:last-child{
  padding-bottom:0em;
}
.ui.horizontal.list{
  display:inline-block;
  font-size:0em;
}
.ui.horizontal.list > .item{
  display:inline-block;
  margin-left:1em;
  font-size:1rem;
}
.ui.horizontal.list:not(.celled) > .item:first-child{
  margin-left:0em !important;
  padding-left:0em !important;
}
.ui.horizontal.list .list{
  padding-left:0em;
  padding-bottom:0em;
}
.ui.horizontal.list > .item > .image,
.ui.horizontal.list .list > .item > .image,
.ui.horizontal.list > .item > .icon,
.ui.horizontal.list .list > .item > .icon,
.ui.horizontal.list > .item > .content,
.ui.horizontal.list .list > .item > .content{
  vertical-align:middle;
}
.ui.horizontal.list > .item:first-child,
.ui.horizontal.list > .item:last-child{
  padding-top:0.3em;
  padding-bottom:0.3em;
}
.ui.horizontal.list > .item > i.icon{
  margin:0em;
  padding:0em 0.25em 0em 0em;
}
.ui.horizontal.list > .item > .icon,
.ui.horizontal.list > .item > .icon + .content{
  float:none;
  display:inline-block;
}
.ui.list .list > .disabled.item,
.ui.list > .disabled.item{
  pointer-events:none;
  color:rgba(40, 40, 40, 0.3) !important;
}
.ui.inverted.list .list > .disabled.item,
.ui.inverted.list > .disabled.item{
  color:rgba(225, 225, 225, 0.3) !important;
}
.ui.list .list > a.item:hover .icon,
.ui.list > a.item:hover .icon{
  color:#333333;
}
.ui.inverted.list .list > a.item > .icon,
.ui.inverted.list > a.item > .icon{
  color:rgba(255, 255, 255, 0.7);
}
.ui.inverted.list .list > .item .header,
.ui.inverted.list > .item .header{
  color:rgba(255, 255, 255, 0.9);
}
.ui.inverted.list .list > .item .description,
.ui.inverted.list > .item .description{
  color:rgba(255, 255, 255, 0.7);
}
.ui.inverted.list .list > a.item,
.ui.inverted.list > a.item{
  cursor:pointer;
  color:rgba(255, 255, 255, 0.9);
}
.ui.inverted.list .list > a.item:hover,
.ui.inverted.list > a.item:hover{
  color:#1e70bf;
}
.ui.inverted.list .item a:not(.ui){
  color:rgba(255, 255, 255, 0.9) !important;
}
.ui.inverted.list .item a:not(.ui):hover{
  color:#1e70bf !important;
}
.ui.list[class*="top aligned"] .image,
.ui.list[class*="top aligned"] .content,
.ui.list [class*="top aligned"]{
  vertical-align:top !important;
}
.ui.list[class*="middle aligned"] .image,
.ui.list[class*="middle aligned"] .content,
.ui.list [class*="middle aligned"]{
  vertical-align:middle !important;
}
.ui.list[class*="bottom aligned"] .image,
.ui.list[class*="bottom aligned"] .content,
.ui.list [class*="bottom aligned"]{
  vertical-align:bottom !important;
}
.ui.link.list .item,
.ui.link.list a.item,
.ui.link.list .item a:not(.ui){
  color:rgba(0, 0, 0, 0.4);
  transition:0.1s color ease;
}
.ui.link.list a.item:hover,
.ui.link.list .item a:not(.ui):hover{
  color:rgba(0, 0, 0, 0.8);
}
.ui.link.list a.item:active,
.ui.link.list .item a:not(.ui):active{
  color:rgba(0, 0, 0, 0.9);
}
.ui.link.list .active.item,
.ui.link.list .active.item a:not(.ui){
  color:rgba(0, 0, 0, 0.95);
}
.ui.inverted.link.list .item,
.ui.inverted.link.list a.item,
.ui.inverted.link.list .item a:not(.ui){
  color:rgba(255, 255, 255, 0.5);
}
.ui.inverted.link.list a.item:hover,
.ui.inverted.link.list .item a:not(.ui):hover{
  color:#ffffff;
}
.ui.inverted.link.list a.item:active,
.ui.inverted.link.list .item a:not(.ui):active{
  color:#ffffff;
}
.ui.inverted.link.list a.active.item,
.ui.inverted.link.list .active.item a:not(.ui){
  color:#ffffff;
}
.ui.selection.list .list > .item,
.ui.selection.list > .item{
  cursor:pointer;
  background:transparent;
  padding:0.5em 0.5em;
  margin:0em;
  color:rgba(0, 0, 0, 0.4);
  border-radius:0.5em;
  transition:0.1s color ease, 0.1s padding-left ease, 0.1s background-color ease;
}
.ui.selection.list .list > .item:last-child,
.ui.selection.list > .item:last-child{
  margin-bottom:0em;
}
.ui.selection.list.list > .item:hover,
.ui.selection.list > .item:hover{
  background:rgba(0, 0, 0, 0.03);
  color:rgba(0, 0, 0, 0.8);
}
.ui.selection.list .list > .item:active,
.ui.selection.list > .item:active{
  background:rgba(0, 0, 0, 0.05);
  color:rgba(0, 0, 0, 0.9);
}
.ui.selection.list .list > .item.active,
.ui.selection.list > .item.active{
  background:rgba(0, 0, 0, 0.05);
  color:rgba(0, 0, 0, 0.95);
}
.ui.inverted.selection.list > .item,
.ui.inverted.selection.list > .item{
  background:transparent;
  color:rgba(255, 255, 255, 0.5);
}
.ui.inverted.selection.list > .item:hover,
.ui.inverted.selection.list > .item:hover{
  background:rgba(255, 255, 255, 0.02);
  color:#ffffff;
}
.ui.inverted.selection.list > .item:active,
.ui.inverted.selection.list > .item:active{
  background:rgba(255, 255, 255, 0.08);
  color:#ffffff;
}
.ui.inverted.selection.list > .item.active,
.ui.inverted.selection.list > .item.active{
  background:rgba(255, 255, 255, 0.08);
  color:#ffffff;
}
.ui.celled.selection.list .list > .item,
.ui.divided.selection.list .list > .item,
.ui.celled.selection.list > .item,
.ui.divided.selection.list > .item{
  border-radius:0em;
}
.ui.animated.list > .item{
  transition:0.25s color ease 0.1s, 0.25s padding-left ease 0.1s, 0.25s background-color ease 0.1s;
}
.ui.animated.list:not(.horizontal) > .item:hover{
  padding-left:1em;
}
.ui.fitted.list:not(.selection) .list > .item,
.ui.fitted.list:not(.selection) > .item{
  padding-left:0em;
  padding-right:0em;
}
.ui.fitted.selection.list .list > .item,
.ui.fitted.selection.list > .item{
  margin-left:-0.5em;
  margin-right:-0.5em;
}
ul.ui.list,
.ui.bulleted.list{
  margin-left:1.25rem;
}
ul.ui.list li,
.ui.bulleted.list .list > .item,
.ui.bulleted.list > .item{
  position:relative;
}
ul.ui.list li:before,
.ui.bulleted.list .list > .item:before,
.ui.bulleted.list > .item:before{
  -webkit-user-select:none;
     -moz-user-select:none;
      -ms-user-select:none;
          user-select:none;
  pointer-events:none;
  position:absolute;
  top:auto;
  left:auto;
  font-weight:normal;
  margin-left:-1.25rem;
  content:'•';
  opacity:1;
  color:inherit;
  vertical-align:top;
}
ul.ui.list li:before,
.ui.bulleted.list .list > a.item:before,
.ui.bulleted.list > a.item:before{
  color:#333333;
}
ul.ui.list ul,
.ui.bulleted.list .list{
  padding-left:1.25rem;
}
ul.ui.horizontal.bulleted.list,
.ui.horizontal.bulleted.list{
  margin-left:0em;
}
ul.ui.horizontal.bulleted.list li,
.ui.horizontal.bulleted.list > .item{
  margin-left:1.75rem;
}
ul.ui.horizontal.bulleted.list li:first-child,
.ui.horizontal.bulleted.list > .item:first-child{
  margin-left:0em;
}
ul.ui.horizontal.bulleted.list li::before,
.ui.horizontal.bulleted.list > .item::before{
  color:#333333;
}
ul.ui.horizontal.bulleted.list li:first-child::before,
.ui.horizontal.bulleted.list > .item:first-child::before{
  display:none;
}
ol.ui.list,
.ui.ordered.list,
.ui.ordered.list .list,
ol.ui.list ol{
  counter-reset:ordered;
  margin-left:1.25rem;
  list-style-type:none;
}
ol.ui.list li,
.ui.ordered.list .list > .item,
.ui.ordered.list > .item{
  list-style-type:none;
  position:relative;
}
ol.ui.list li:before,
.ui.ordered.list .list > .item:before,
.ui.ordered.list > .item:before{
  position:absolute;
  top:auto;
  left:auto;
  -webkit-user-select:none;
     -moz-user-select:none;
      -ms-user-select:none;
          user-select:none;
  pointer-events:none;
  margin-left:-1.25rem;
  counter-increment:ordered;
  content:counters(ordered, ".") " ";
  text-align:right;
  color:#333333;
  vertical-align:middle;
  opacity:0.8;
}
ol.ui.inverted.list li:before,
.ui.ordered.inverted.list .list > .item:before,
.ui.ordered.inverted.list > .item:before{
  color:rgba(255, 255, 255, 0.7);
}
.ui.ordered.list > .list > .item[data-value],
.ui.ordered.list > .item[data-value]{
  content:attr(data-value);
}
ol.ui.list li[value]:before{
  content:attr(value);
}
ol.ui.list ol,
.ui.ordered.list .list{
  margin-left:1em;
}
ol.ui.list ol li:before,
.ui.ordered.list .list > .item:before{
  margin-left:-2em;
}
ol.ui.horizontal.list,
.ui.ordered.horizontal.list{
  margin-left:0em;
}
ol.ui.horizontal.list li:before,
.ui.ordered.horizontal.list .list > .item:before,
.ui.ordered.horizontal.list > .item:before{
  position:static;
  margin:0em 0.5em 0em 0em;
}
.ui.divided.list > .item{
  border-top:1px solid rgba(34, 36, 38, 0.15);
}
.ui.divided.list .list > .item{
  border-top:none;
}
.ui.divided.list .item .list > .item{
  border-top:none;
}
.ui.divided.list .list > .item:first-child,
.ui.divided.list > .item:first-child{
  border-top:none;
}
.ui.divided.list:not(.horizontal) .list > .item:first-child{
  border-top-width:1px;
}
.ui.divided.bulleted.list:not(.horizontal),
.ui.divided.bulleted.list .list{
  margin-left:0em;
  padding-left:0em;
}
.ui.divided.bulleted.list > .item:not(.horizontal){
  padding-left:1.25rem;
}
.ui.divided.ordered.list{
  margin-left:0em;
}
.ui.divided.ordered.list .list > .item,
.ui.divided.ordered.list > .item{
  padding-left:1.25rem;
}
.ui.divided.ordered.list .item .list{
  margin-left:0em;
  margin-right:0em;
  padding-bottom:0.3em;
}
.ui.divided.ordered.list .item .list > .item{
  padding-left:1em;
}
.ui.divided.selection.list .list > .item,
.ui.divided.selection.list > .item{
  margin:0em;
  border-radius:0em;
}
.ui.divided.horizontal.list{
  margin-left:0em;
}
.ui.divided.horizontal.list > .item:not(:first-child){
  padding-left:0.5em;
}
.ui.divided.horizontal.list > .item:not(:last-child){
  padding-right:0.5em;
}
.ui.divided.horizontal.list > .item{
  border-top:none;
  border-left:1px solid rgba(34, 36, 38, 0.15);
  margin:0em;
  line-height:0.6;
}
.ui.horizontal.divided.list > .item:first-child{
  border-left:none;
}
.ui.divided.inverted.list > .item,
.ui.divided.inverted.list > .list,
.ui.divided.inverted.horizontal.list > .item{
  border-color:rgba(255, 255, 255, 0.1);
}
.ui.celled.list > .item,
.ui.celled.list > .list{
  border-top:1px solid rgba(34, 36, 38, 0.15);
  padding-left:0.5em;
  padding-right:0.5em;
}
.ui.celled.list > .item:last-child{
  border-bottom:1px solid rgba(34, 36, 38, 0.15);
}
.ui.celled.list > .item:first-child,
.ui.celled.list > .item:last-child{
  padding-top:0.3em;
  padding-bottom:0.3em;
}
.ui.celled.list .item .list > .item{
  border-width:0px;
}
.ui.celled.list .list > .item:first-child{
  border-top-width:0px;
}
.ui.celled.bulleted.list{
  margin-left:0em;
}
.ui.celled.bulleted.list .list > .item,
.ui.celled.bulleted.list > .item{
  padding-left:1.25rem;
}
.ui.celled.bulleted.list .item .list{
  margin-left:-1.25rem;
  margin-right:-1.25rem;
  padding-bottom:0.3em;
}
.ui.celled.ordered.list{
  margin-left:0em;
}
.ui.celled.ordered.list .list > .item,
.ui.celled.ordered.list > .item{
  padding-left:1.25rem;
}
.ui.celled.ordered.list .item .list{
  margin-left:0em;
  margin-right:0em;
  padding-bottom:0.3em;
}
.ui.celled.ordered.list .list > .item{
  padding-left:1em;
}
.ui.horizontal.celled.list{
  margin-left:0em;
}
.ui.horizontal.celled.list .list > .item,
.ui.horizontal.celled.list > .item{
  border-top:none;
  border-left:1px solid rgba(34, 36, 38, 0.15);
  margin:0em;
  padding-left:0.5em;
  padding-right:0.5em;
  line-height:0.6;
}
.ui.horizontal.celled.list .list > .item:last-child,
.ui.horizontal.celled.list > .item:last-child{
  border-bottom:none;
  border-right:1px solid rgba(34, 36, 38, 0.15);
}
.ui.celled.inverted.list > .item,
.ui.celled.inverted.list > .list{
  border-color:1px solid rgba(255, 255, 255, 0.1);
}
.ui.celled.inverted.horizontal.list .list > .item,
.ui.celled.inverted.horizontal.list > .item{
  border-color:1px solid rgba(255, 255, 255, 0.1);
}
.ui.relaxed.list:not(.horizontal) > .item:not(:first-child){
  padding-top:0.6em;
}
.ui.relaxed.list:not(.horizontal) > .item:not(:last-child){
  padding-bottom:0.6em;
}
.ui.horizontal.relaxed.list .list > .item:not(:first-child),
.ui.horizontal.relaxed.list > .item:not(:first-child){
  padding-left:1rem;
}
.ui.horizontal.relaxed.list .list > .item:not(:last-child),
.ui.horizontal.relaxed.list > .item:not(:last-child){
  padding-right:1rem;
}
.ui[class*="very relaxed"].list:not(.horizontal) > .item:not(:first-child){
  padding-top:1.2em;
}
.ui[class*="very relaxed"].list:not(.horizontal) > .item:not(:last-child){
  padding-bottom:1.2em;
}
.ui.horizontal[class*="very relaxed"].list .list > .item:not(:first-child),
.ui.horizontal[class*="very relaxed"].list > .item:not(:first-child){
  padding-left:1.5rem;
}
.ui.horizontal[class*="very relaxed"].list .list > .item:not(:last-child),
.ui.horizontal[class*="very relaxed"].list > .item:not(:last-child){
  padding-right:1.5rem;
}
.ui.mini.list{
  font-size:0.8em;
}
.ui.tiny.list{
  font-size:0.9em;
}
.ui.small.list{
  font-size:0.9em;
}
.ui.list{
  font-size:1em;
}
.ui.large.list{
  font-size:1.1em;
}
.ui.big.list{
  font-size:1.3em;
}
.ui.huge.list{
  font-size:1.4em;
}
.ui.massive.list{
  font-size:1.7em;
}
.ui.mini.horizontal.list .list > .item,
.ui.mini.horizontal.list > .item{
  font-size:0.8rem;
}
.ui.tiny.horizontal.list .list > .item,
.ui.tiny.horizontal.list > .item{
  font-size:0.9rem;
}
.ui.small.horizontal.list .list > .item,
.ui.small.horizontal.list > .item{
  font-size:0.9rem;
}
.ui.horizontal.list .list > .item,
.ui.horizontal.list > .item{
  font-size:1rem;
}
.ui.large.horizontal.list .list > .item,
.ui.large.horizontal.list > .item{
  font-size:1.1rem;
}
.ui.big.horizontal.list .list > .item,
.ui.big.horizontal.list > .item{
  font-size:1.3rem;
}
.ui.huge.horizontal.list .list > .item,
.ui.huge.horizontal.list > .item{
  font-size:1.4rem;
}
.ui.massive.horizontal.list .list > .item,
.ui.massive.horizontal.list > .item{
  font-size:1.7rem;
}
/*!
 * # Semantic UI - Loader
 * http://github.com/semantic-org/semantic-ui/
 *
 *
 * Released under the MIT license
 * http://opensource.org/licenses/MIT
 *
 */
.ui.loader{
  display:none;
  position:absolute;
  top:50%;
  left:50%;
  margin:0px;
  text-align:center;
  z-index:1000;
  transform:translateX(-50%) translateY(-50%);
}
.ui.loader:before{
  position:absolute;
  content:'';
  top:0%;
  left:50%;
  width:100%;
  height:100%;
  border-radius:500rem;
  border:0.2em solid rgba(0, 0, 0, 0.1);
}
.ui.loader:after{
  position:absolute;
  content:'';
  top:0%;
  left:50%;
  width:100%;
  height:100%;
  animation:loader 0.6s linear;
  animation-iteration-count:infinite;
  border-radius:500rem;
  border-color:#767676 transparent transparent;
  border-style:solid;
  border-width:0.2em;
  box-shadow:0px 0px 0px 1px transparent;
}
@keyframes loader{
  from{
    transform:rotate(0deg);
  }
  to{
    transform:rotate(360deg);
  }
}
.ui.mini.loader:before,
.ui.mini.loader:after{
  width:1.4rem;
  height:1.4rem;
  margin:0em 0em 0em -0.7rem;
}
.ui.tiny.loader:before,
.ui.tiny.loader:after{
  width:1.6rem;
  height:1.6rem;
  margin:0em 0em 0em -0.8rem;
}
.ui.small.loader:before,
.ui.small.loader:after{
  width:2.4rem;
  height:2.4rem;
  margin:0em 0em 0em -1.2rem;
}
.ui.loader:before,
.ui.loader:after{
  width:3.2rem;
  height:3.2rem;
  margin:0em 0em 0em -1.6rem;
}
.ui.large.loader:before,
.ui.large.loader:after{
  width:4.8rem;
  height:4.8rem;
  margin:0em 0em 0em -2.4rem;
}
.ui.big.loader:before,
.ui.big.loader:after{
  width:5.2rem;
  height:5.2rem;
  margin:0em 0em 0em -2.6rem;
}
.ui.huge.loader:before,
.ui.huge.loader:after{
  width:5.8rem;
  height:5.8rem;
  margin:0em 0em 0em -2.9rem;
}
.ui.massive.loader:before,
.ui.massive.loader:after{
  width:6.4rem;
  height:6.4rem;
  margin:0em 0em 0em -3.2rem;
}
.ui.dimmer .loader{
  display:block;
}
.ui.dimmer .ui.loader{
  color:rgba(255, 255, 255, 0.9);
}
.ui.dimmer .ui.loader:before{
  border-color:rgba(255, 255, 255, 0.15);
}
.ui.dimmer .ui.loader:after{
  border-color:#ffffff transparent transparent;
}
.ui.inverted.dimmer .ui.loader{
  color:#333333;
}
.ui.inverted.dimmer .ui.loader:before{
  border-color:rgba(0, 0, 0, 0.1);
}
.ui.inverted.dimmer .ui.loader:after{
  border-color:#767676 transparent transparent;
}
.ui.text.loader{
  width:auto !important;
  height:auto !important;
  text-align:center;
  font-style:normal;
}
.ui.indeterminate.loader:after{
  animation-direction:reverse;
  animation-duration:1.2s;
}
.ui.loader.active,
.ui.loader.visible{
  display:block;
}
.ui.loader.disabled,
.ui.loader.hidden{
  display:none;
}
.ui.inverted.dimmer .ui.mini.loader,
.ui.mini.loader{
  width:1.4rem;
  height:1.4rem;
  font-size:0.8em;
}
.ui.inverted.dimmer .ui.tiny.loader,
.ui.tiny.loader{
  width:1.6rem;
  height:1.6rem;
  font-size:0.9em;
}
.ui.inverted.dimmer .ui.small.loader,
.ui.small.loader{
  width:2.4rem;
  height:2.4rem;
  font-size:0.9em;
}
.ui.inverted.dimmer .ui.loader,
.ui.loader{
  width:3.2rem;
  height:3.2rem;
  font-size:1em;
}
.ui.inverted.dimmer .ui.large.loader,
.ui.large.loader{
  width:4.8rem;
  height:4.8rem;
  font-size:1.1em;
}
.ui.inverted.dimmer .ui.big.loader,
.ui.big.loader{
  width:5.2rem;
  height:5.2rem;
  font-size:1.3em;
}
.ui.inverted.dimmer .ui.huge.loader,
.ui.huge.loader{
  width:5.8rem;
  height:5.8rem;
  font-size:1.4em;
}
.ui.inverted.dimmer .ui.massive.loader,
.ui.massive.loader{
  width:6.4rem;
  height:6.4rem;
  font-size:1.7em;
}
.ui.mini.text.loader{
  min-width:1.4rem;
  padding-top:2.2rem;
}
.ui.tiny.text.loader{
  min-width:1.6rem;
  padding-top:2.4rem;
}
.ui.small.text.loader{
  min-width:2.4rem;
  padding-top:3.2rem;
}
.ui.text.loader{
  min-width:3.2rem;
  padding-top:4rem;
}
.ui.large.text.loader{
  min-width:4.8rem;
  padding-top:5.6rem;
}
.ui.big.text.loader{
  min-width:5.2rem;
  padding-top:6rem;
}
.ui.huge.text.loader{
  min-width:5.8rem;
  padding-top:6.6rem;
}
.ui.massive.text.loader{
  min-width:6.4rem;
  padding-top:7.2rem;
}
.ui.inverted.loader{
  color:rgba(255, 255, 255, 0.9);
}
.ui.inverted.loader:before{
  border-color:rgba(255, 255, 255, 0.15);
}
.ui.inverted.loader:after{
  border-top-color:#ffffff;
}
.ui.inline.loader{
  position:relative;
  vertical-align:middle;
  margin:0em;
  left:0em;
  top:0em;
  transform:none;
}
.ui.inline.loader.active,
.ui.inline.loader.visible{
  display:inline-block;
}
.ui.centered.inline.loader.active,
.ui.centered.inline.loader.visible{
  display:block;
  margin-left:auto;
  margin-right:auto;
}
/*!
 * # Semantic UI - Rail
 * http://github.com/semantic-org/semantic-ui/
 *
 *
 * Released under the MIT license
 * http://opensource.org/licenses/MIT
 *
 */
.ui.rail{
  position:absolute;
  top:0%;
  width:300px;
  height:100%;
}
.ui.left.rail{
  left:auto;
  right:100%;
  padding:0em 2rem 0em 0em;
  margin:0em 2rem 0em 0em;
}
.ui.right.rail{
  left:100%;
  right:auto;
  padding:0em 0em 0em 2rem;
  margin:0em 0em 0em 2rem;
}
.ui.left.internal.rail{
  left:0%;
  right:auto;
  padding:0em 0em 0em 2rem;
  margin:0em 0em 0em 2rem;
}
.ui.right.internal.rail{
  left:auto;
  right:0%;
  padding:0em 2rem 0em 0em;
  margin:0em 2rem 0em 0em;
}
.ui.dividing.rail{
  width:302.5px;
}
.ui.left.dividing.rail{
  padding:0em 2.5rem 0em 0em;
  margin:0em 2.5rem 0em 0em;
  border-right:1px solid rgba(34, 36, 38, 0.15);
}
.ui.right.dividing.rail{
  border-left:1px solid rgba(34, 36, 38, 0.15);
  padding:0em 0em 0em 2.5rem;
  margin:0em 0em 0em 2.5rem;
}
.ui.close.rail{
  width:calc(300px + 1em);
}
.ui.close.left.rail{
  padding:0em 1em 0em 0em;
  margin:0em 1em 0em 0em;
}
.ui.close.right.rail{
  padding:0em 0em 0em 1em;
  margin:0em 0em 0em 1em;
}
.ui.very.close.rail{
  width:calc(300px + 0.5em);
}
.ui.very.close.left.rail{
  padding:0em 0.5em 0em 0em;
  margin:0em 0.5em 0em 0em;
}
.ui.very.close.right.rail{
  padding:0em 0em 0em 0.5em;
  margin:0em 0em 0em 0.5em;
}
.ui.attached.left.rail,
.ui.attached.right.rail{
  padding:0em;
  margin:0em;
}
.ui.mini.rail{
  font-size:0.8rem;
}
.ui.tiny.rail{
  font-size:0.9rem;
}
.ui.small.rail{
  font-size:0.9rem;
}
.ui.rail{
  font-size:1rem;
}
.ui.large.rail{
  font-size:1.1rem;
}
.ui.big.rail{
  font-size:1.3rem;
}
.ui.huge.rail{
  font-size:1.4rem;
}
.ui.massive.rail{
  font-size:1.7rem;
}
/*!
 * # Semantic UI - Reveal
 * http://github.com/semantic-org/semantic-ui/
 *
 *
 * Released under the MIT license
 * http://opensource.org/licenses/MIT
 *
 */
.ui.reveal{
  display:inherit;
  position:relative !important;
  font-size:0em !important;
}
.ui.reveal > .visible.content{
  position:absolute !important;
  top:0em !important;
  left:0em !important;
  z-index:3 !important;
  transition:all 0.5s ease 0.1s;
}
.ui.reveal > .hidden.content{
  position:relative !important;
  z-index:2 !important;
}
.ui.active.reveal .visible.content,
.ui.reveal:hover .visible.content{
  z-index:4 !important;
}
.ui.slide.reveal{
  position:relative !important;
  overflow:hidden !important;
  white-space:nowrap;
}
.ui.slide.reveal > .content{
  display:block;
  width:100%;
  float:left;
  margin:0em;
  transition:transform 0.5s ease 0.1s;
}
.ui.slide.reveal > .visible.content{
  position:relative !important;
}
.ui.slide.reveal > .hidden.content{
  position:absolute !important;
  left:0% !important;
  width:100% !important;
  transform:translateX(100%) !important;
}
.ui.slide.active.reveal > .visible.content,
.ui.slide.reveal:hover > .visible.content{
  transform:translateX(-100%) !important;
}
.ui.slide.active.reveal > .hidden.content,
.ui.slide.reveal:hover > .hidden.content{
  transform:translateX(0%) !important;
}
.ui.slide.right.reveal > .visible.content{
  transform:translateX(0%) !important;
}
.ui.slide.right.reveal > .hidden.content{
  transform:translateX(-100%) !important;
}
.ui.slide.right.active.reveal > .visible.content,
.ui.slide.right.reveal:hover > .visible.content{
  transform:translateX(100%) !important;
}
.ui.slide.right.active.reveal > .hidden.content,
.ui.slide.right.reveal:hover > .hidden.content{
  transform:translateX(0%) !important;
}
.ui.slide.up.reveal > .hidden.content{
  transform:translateY(100%) !important;
}
.ui.slide.up.active.reveal > .visible.content,
.ui.slide.up.reveal:hover > .visible.content{
  transform:translateY(-100%) !important;
}
.ui.slide.up.active.reveal > .hidden.content,
.ui.slide.up.reveal:hover > .hidden.content{
  transform:translateY(0%) !important;
}
.ui.slide.down.reveal > .hidden.content{
  transform:translateY(-100%) !important;
}
.ui.slide.down.active.reveal > .visible.content,
.ui.slide.down.reveal:hover > .visible.content{
  transform:translateY(100%) !important;
}
.ui.slide.down.active.reveal > .hidden.content,
.ui.slide.down.reveal:hover > .hidden.content{
  transform:translateY(0%) !important;
}
.ui.fade.reveal > .visible.content{
  opacity:1;
}
.ui.fade.active.reveal > .visible.content,
.ui.fade.reveal:hover > .visible.content{
  opacity:0;
}
.ui.move.reveal{
  position:relative !important;
  overflow:hidden !important;
  white-space:nowrap;
}
.ui.move.reveal > .content{
  display:block;
  float:left;
  margin:0em;
  transition:transform 0.5s cubic-bezier(0.175, 0.885, 0.32, 1) 0.1s;
}
.ui.move.reveal > .visible.content{
  position:relative !important;
}
.ui.move.reveal > .hidden.content{
  position:absolute !important;
  left:0% !important;
  width:100% !important;
}
.ui.move.active.reveal > .visible.content,
.ui.move.reveal:hover > .visible.content{
  transform:translateX(-100%) !important;
}
.ui.move.right.active.reveal > .visible.content,
.ui.move.right.reveal:hover > .visible.content{
  transform:translateX(100%) !important;
}
.ui.move.up.active.reveal > .visible.content,
.ui.move.up.reveal:hover > .visible.content{
  transform:translateY(-100%) !important;
}
.ui.move.down.active.reveal > .visible.content,
.ui.move.down.reveal:hover > .visible.content{
  transform:translateY(100%) !important;
}
.ui.rotate.reveal > .visible.content{
  transition-duration:0.5s;
  transform:rotate(0deg);
}
.ui.rotate.reveal > .visible.content,
.ui.rotate.right.reveal > .visible.content{
  transform-origin:bottom right;
}
.ui.rotate.active.reveal > .visible.content,
.ui.rotate.reveal:hover > .visible.content,
.ui.rotate.right.active.reveal > .visible.content,
.ui.rotate.right.reveal:hover > .visible.content{
  transform:rotate(110deg);
}
.ui.rotate.left.reveal > .visible.content{
  transform-origin:bottom left;
}
.ui.rotate.left.active.reveal > .visible.content,
.ui.rotate.left.reveal:hover > .visible.content{
  transform:rotate(-110deg);
}
.ui.disabled.reveal:hover > .visible.visible.content{
  position:static !important;
  display:block !important;
  opacity:1 !important;
  top:0 !important;
  left:0 !important;
  right:auto !important;
  bottom:auto !important;
  transform:none !important;
}
.ui.disabled.reveal:hover > .hidden.hidden.content{
  display:none !important;
}
.ui.visible.reveal{
  overflow:visible;
}
.ui.instant.reveal > .content{
  transition-delay:0s !important;
}
.ui.reveal > .content{
  font-size:1rem !important;
}
/*!
 * # Semantic UI - Segment
 * http://github.com/semantic-org/semantic-ui/
 *
 *
 * Released under the MIT license
 * http://opensource.org/licenses/MIT
 *
 */
.ui.segment{
  position:relative;
  background:#ffffff;
  box-shadow:0px 1px 2px 0 rgba(34, 36, 38, 0.15);
  margin:1rem 0em;
  padding:1em 1em;
  border-radius:0.4rem;
  border:1px solid rgba(34, 36, 38, 0.15);
}
.ui.segment:first-child{
  margin-top:0em;
}
.ui.segment:last-child{
  margin-bottom:0em;
}
.ui.vertical.segment{
  margin:0em;
  padding-left:0em;
  padding-right:0em;
  background:none transparent;
  border-radius:0px;
  box-shadow:none;
  border:none;
  border-bottom:1px solid rgba(34, 36, 38, 0.15);
}
.ui.vertical.segment:last-child{
  border-bottom:none;
}
.ui.inverted.segment > .ui.header{
  color:#ffffff;
}
.ui[class*="bottom attached"].segment > [class*="top attached"].label{
  border-top-left-radius:0em;
  border-top-right-radius:0em;
}
.ui[class*="top attached"].segment > [class*="bottom attached"].label{
  border-bottom-left-radius:0em;
  border-bottom-right-radius:0em;
}
.ui.attached.segment:not(.top):not(.bottom) > [class*="top attached"].label{
  border-top-left-radius:0em;
  border-top-right-radius:0em;
}
.ui.attached.segment:not(.top):not(.bottom) > [class*="bottom attached"].label{
  border-bottom-left-radius:0em;
  border-bottom-right-radius:0em;
}
.ui.page.grid.segment,
.ui.grid > .row > .ui.segment.column,
.ui.grid > .ui.segment.column{
  padding-top:2em;
  padding-bottom:2em;
}
.ui.grid.segment{
  margin:1rem 0em;
  border-radius:0.4rem;
}
.ui.basic.table.segment{
  background:#ffffff;
  border:1px solid rgba(34, 36, 38, 0.15);
  box-shadow:0px 1px 2px 0 rgba(34, 36, 38, 0.15);
}
.ui[class*="very basic"].table.segment{
  padding:1em 1em;
}
.ui.piled.segments,
.ui.piled.segment{
  margin:3em 0em;
  box-shadow:'';
  z-index:auto;
}
.ui.piled.segment:first-child{
  margin-top:0em;
}
.ui.piled.segment:last-child{
  margin-bottom:0em;
}
.ui.piled.segments:after,
.ui.piled.segments:before,
.ui.piled.segment:after,
.ui.piled.segment:before{
  background-color:#ffffff;
  visibility:visible;
  content:'';
  display:block;
  height:100%;
  left:0px;
  position:absolute;
  width:100%;
  border:1px solid rgba(34, 36, 38, 0.15);
  box-shadow:'';
}
.ui.piled.segments:before,
.ui.piled.segment:before{
  transform:rotate(-1.2deg);
  top:0;
  z-index:-2;
}
.ui.piled.segments:after,
.ui.piled.segment:after{
  transform:rotate(1.2deg);
  top:0;
  z-index:-1;
}
.ui[class*="top attached"].piled.segment{
  margin-top:3em;
  margin-bottom:0em;
}
.ui.piled.segment[class*="top attached"]:first-child{
  margin-top:0em;
}
.ui.piled.segment[class*="bottom attached"]{
  margin-top:0em;
  margin-bottom:3em;
}
.ui.piled.segment[class*="bottom attached"]:last-child{
  margin-bottom:0em;
}
.ui.stacked.segment{
  padding-bottom:1.4em;
}
.ui.stacked.segments:before,
.ui.stacked.segments:after,
.ui.stacked.segment:before,
.ui.stacked.segment:after{
  content:'';
  position:absolute;
  bottom:-3px;
  left:0%;
  border-top:1px solid rgba(34, 36, 38, 0.15);
  background:rgba(0, 0, 0, 0.03);
  width:100%;
  height:6px;
  visibility:visible;
}
.ui.stacked.segments:before,
.ui.stacked.segment:before{
  display:none;
}
.ui.tall.stacked.segments:before,
.ui.tall.stacked.segment:before{
  display:block;
  bottom:0px;
}
.ui.stacked.inverted.segments:before,
.ui.stacked.inverted.segments:after,
.ui.stacked.inverted.segment:before,
.ui.stacked.inverted.segment:after{
  background-color:rgba(0, 0, 0, 0.03);
  border-top:1px solid rgba(34, 36, 38, 0.35);
}
.ui.padded.segment{
  padding:1.5em;
}
.ui[class*="very padded"].segment{
  padding:3em;
}
.ui.compact.segment{
  display:table;
}
.ui.compact.segments{
  display:inline-flex;
}
.ui.compact.segments .segment,
.ui.segments .compact.segment{
  display:block;
  flex:0 1 auto;
}
.ui.circular.segment{
  display:table-cell;
  padding:2em;
  text-align:center;
  vertical-align:middle;
  border-radius:500em;
}
.ui.raised.segments,
.ui.raised.segment{
  box-shadow:0px 2px 4px 0px rgba(34, 36, 38, 0.12), 0px 2px 10px 0px rgba(34, 36, 38, 0.15);
}
.ui.segments{
  flex-direction:column;
  position:relative;
  margin:1rem 0em;
  border:1px solid rgba(34, 36, 38, 0.15);
  box-shadow:0px 1px 2px 0 rgba(34, 36, 38, 0.15);
  border-radius:0.4rem;
}
.ui.segments:first-child{
  margin-top:0em;
}
.ui.segments:last-child{
  margin-bottom:0em;
}
.ui.segments > .segment{
  top:0px;
  bottom:0px;
  border-radius:0px;
  margin:0em;
  width:auto;
  box-shadow:none;
  border:none;
  border-top:1px solid rgba(34, 36, 38, 0.15);
}
.ui.segments:not(.horizontal) > .segment:first-child{
  border-top:none;
  margin-top:0em;
  bottom:0px;
  margin-bottom:0em;
  top:0px;
  border-radius:0.4rem 0.4rem 0em 0em;
}
.ui.segments:not(.horizontal) > .segment:last-child{
  top:0px;
  bottom:0px;
  margin-top:0em;
  margin-bottom:0em;
  box-shadow:0px 1px 2px 0 rgba(34, 36, 38, 0.15), none;
  border-radius:0em 0em 0.4rem 0.4rem;
}
.ui.segments:not(.horizontal) > .segment:only-child{
  border-radius:0.4rem;
}
.ui.segments > .ui.segments{
  border-top:1px solid rgba(34, 36, 38, 0.15);
  margin:1rem 1rem;
}
.ui.segments > .segments:first-child{
  border-top:none;
}
.ui.segments > .segment + .segments:not(.horizontal){
  margin-top:0em;
}
.ui.horizontal.segments{
  display:flex;
  flex-direction:row;
  background-color:transparent;
  border-radius:0px;
  padding:0em;
  background-color:#ffffff;
  box-shadow:0px 1px 2px 0 rgba(34, 36, 38, 0.15);
  margin:1rem 0em;
  border-radius:0.4rem;
  border:1px solid rgba(34, 36, 38, 0.15);
}
.ui.segments > .horizontal.segments{
  margin:0em;
  background-color:transparent;
  border-radius:0px;
  border:none;
  box-shadow:none;
  border-top:1px solid rgba(34, 36, 38, 0.15);
}
.ui.horizontal.segments > .segment{
  flex:1 1 auto;
  -ms-flex:1 1 0px;
  margin:0em;
  min-width:0px;
  background-color:transparent;
  border-radius:0px;
  border:none;
  box-shadow:none;
  border-left:1px solid rgba(34, 36, 38, 0.15);
}
.ui.segments > .horizontal.segments:first-child{
  border-top:none;
}
.ui.horizontal.segments > .segment:first-child{
  border-left:none;
}
.ui.disabled.segment{
  opacity:0.45;
  color:rgba(40, 40, 40, 0.3);
}
.ui.loading.segment{
  position:relative;
  cursor:default;
  pointer-events:none;
  text-shadow:none !important;
  color:transparent !important;
  transition:all 0s linear;
}
.ui.loading.segment:before{
  position:absolute;
  content:'';
  top:0%;
  left:0%;
  background:rgba(255, 255, 255, 0.8);
  width:100%;
  height:100%;
  border-radius:0.4rem;
  z-index:100;
}
.ui.loading.segment:after{
  position:absolute;
  content:'';
  top:50%;
  left:50%;
  margin:-1.5em 0em 0em -1.5em;
  width:3em;
  height:3em;
  animation:segment-spin 0.6s linear;
  animation-iteration-count:infinite;
  border-radius:500rem;
  border-color:#767676 rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1);
  border-style:solid;
  border-width:0.2em;
  box-shadow:0px 0px 0px 1px transparent;
  visibility:visible;
  z-index:101;
}
@keyframes segment-spin{
  from{
    transform:rotate(0deg);
  }
  to{
    transform:rotate(360deg);
  }
}
.ui.basic.segment{
  background:none transparent;
  box-shadow:none;
  border:none;
  border-radius:0px;
}
.ui.clearing.segment:after{
  content:".";
  display:block;
  height:0;
  clear:both;
  visibility:hidden;
}
.ui.red.segment:not(.inverted){
  border-top:2px solid #de3a3e;
}
.ui.inverted.red.segment{
  background-color:#de3a3e !important;
  color:#ffffff !important;
}
.ui.orange.segment:not(.inverted){
  border-top:2px solid #ff9533;
}
.ui.inverted.orange.segment{
  background-color:#ff9533 !important;
  color:#ffffff !important;
}
.ui.yellow.segment:not(.inverted){
  border-top:2px solid #FBBD08;
}
.ui.inverted.yellow.segment{
  background-color:#FBBD08 !important;
  color:#ffffff !important;
}
.ui.olive.segment:not(.inverted){
  border-top:2px solid #B5CC18;
}
.ui.inverted.olive.segment{
  background-color:#B5CC18 !important;
  color:#ffffff !important;
}
.ui.green.segment:not(.inverted){
  border-top:2px solid #19a531;
}
.ui.inverted.green.segment{
  background-color:#19a531 !important;
  color:#ffffff !important;
}
.ui.teal.segment:not(.inverted){
  border-top:2px solid #00B5AD;
}
.ui.inverted.teal.segment{
  background-color:#00B5AD !important;
  color:#ffffff !important;
}
.ui.blue.segment:not(.inverted){
  border-top:2px solid #3f51b5;
}
.ui.inverted.blue.segment{
  background-color:#3f51b5 !important;
  color:#ffffff !important;
}
.ui.violet.segment:not(.inverted){
  border-top:2px solid #6435C9;
}
.ui.inverted.violet.segment{
  background-color:#6435C9 !important;
  color:#ffffff !important;
}
.ui.purple.segment:not(.inverted){
  border-top:2px solid #A333C8;
}
.ui.inverted.purple.segment{
  background-color:#A333C8 !important;
  color:#ffffff !important;
}
.ui.pink.segment:not(.inverted){
  border-top:2px solid #E03997;
}
.ui.inverted.pink.segment{
  background-color:#E03997 !important;
  color:#ffffff !important;
}
.ui.brown.segment:not(.inverted){
  border-top:2px solid #A5673F;
}
.ui.inverted.brown.segment{
  background-color:#A5673F !important;
  color:#ffffff !important;
}
.ui.grey.segment:not(.inverted){
  border-top:2px solid #767676;
}
.ui.inverted.grey.segment{
  background-color:#767676 !important;
  color:#ffffff !important;
}
.ui.black.segment:not(.inverted){
  border-top:2px solid #000000;
}
.ui.inverted.black.segment{
  background-color:#000000 !important;
  color:#ffffff !important;
}
.ui[class*="left aligned"].segment{
  text-align:left;
}
.ui[class*="right aligned"].segment{
  text-align:right;
}
.ui[class*="center aligned"].segment{
  text-align:center;
}
.ui.floated.segment,
.ui[class*="left floated"].segment{
  float:left;
  margin-right:1em;
}
.ui[class*="right floated"].segment{
  float:right;
  margin-left:1em;
}
.ui.inverted.segment{
  border:none;
  box-shadow:none;
}
.ui.inverted.segment,
.ui.primary.inverted.segment{
  background:#000000;
  color:rgba(255, 255, 255, 0.9);
}
.ui.inverted.segment .segment{
  color:#333333;
}
.ui.inverted.segment .inverted.segment{
  color:rgba(255, 255, 255, 0.9);
}
.ui.inverted.attached.segment{
  border-color:#555555;
}
.ui.secondary.segment{
  background:#F3F4F5;
  color:rgba(0, 0, 0, 0.6);
}
.ui.secondary.inverted.segment{
  background:#333333 linear-gradient(rgba(255, 255, 255, 0.2) 0%, rgba(255, 255, 255, 0.2) 100%);
  color:rgba(255, 255, 255, 0.8);
}
.ui.tertiary.segment{
  background:#DCDDDE;
  color:rgba(0, 0, 0, 0.6);
}
.ui.tertiary.inverted.segment{
  background:#595959 linear-gradient(rgba(255, 255, 255, 0.35) 0%, rgba(255, 255, 255, 0.35) 100%);
  color:rgba(255, 255, 255, 0.8);
}
.ui.attached.segment{
  top:0px;
  bottom:0px;
  border-radius:0px;
  margin:0em -1px;
  width:calc(100% + 2px);
  max-width:calc(100% + 2px);
  box-shadow:none;
  border:1px solid #D4D4D5;
}
.ui.attached:not(.message) + .ui.attached.segment:not(.top){
  border-top:none;
}
.ui[class*="top attached"].segment{
  bottom:0px;
  margin-bottom:0em;
  top:0px;
  margin-top:1rem;
  border-radius:0.4rem 0.4rem 0em 0em;
}
.ui.segment[class*="top attached"]:first-child{
  margin-top:0em;
}
.ui.segment[class*="bottom attached"]{
  bottom:0px;
  margin-top:0em;
  top:0px;
  margin-bottom:1rem;
  box-shadow:0px 1px 2px 0 rgba(34, 36, 38, 0.15), none;
  border-radius:0em 0em 0.4rem 0.4rem;
}
.ui.segment[class*="bottom attached"]:last-child{
  margin-bottom:0em;
}
.ui.mini.segments .segment,
.ui.mini.segment{
  font-size:0.8rem;
}
.ui.tiny.segments .segment,
.ui.tiny.segment{
  font-size:0.9rem;
}
.ui.small.segments .segment,
.ui.small.segment{
  font-size:0.9rem;
}
.ui.segments .segment,
.ui.segment{
  font-size:1rem;
}
.ui.large.segments .segment,
.ui.large.segment{
  font-size:1.1rem;
}
.ui.big.segments .segment,
.ui.big.segment{
  font-size:1.3rem;
}
.ui.huge.segments .segment,
.ui.huge.segment{
  font-size:1.4rem;
}
.ui.massive.segments .segment,
.ui.massive.segment{
  font-size:1.7rem;
}
/*!
 * # Semantic UI - Step
 * http://github.com/semantic-org/semantic-ui/
 *
 *
 * Released under the MIT license
 * http://opensource.org/licenses/MIT
 *
 */
.ui.steps{
  display:inline-flex;
  flex-direction:row;
  align-items:stretch;
  margin:1em 0em;
  background:'';
  box-shadow:none;
  line-height:1.1em;
  border-radius:0.4rem;
  border:1px solid rgba(34, 36, 38, 0.15);
}
.ui.steps:first-child{
  margin-top:0em;
}
.ui.steps:last-child{
  margin-bottom:0em;
}
.ui.steps .step{
  position:relative;
  display:flex;
  flex:1 0 auto;
  flex-wrap:wrap;
  flex-direction:row;
  vertical-align:middle;
  align-items:center;
  justify-content:center;
  margin:0em 0em;
  padding:1.1em 2em;
  background:#ffffff;
  color:#333333;
  box-shadow:none;
  border-radius:0em;
  border:none;
  border-right:1px solid rgba(34, 36, 38, 0.15);
  transition:background-color 0.1s ease, opacity 0.1s ease, color 0.1s ease, box-shadow 0.1s ease;
}
.ui.steps .step:after{
  display:none;
  position:absolute;
  z-index:2;
  content:'';
  top:50%;
  right:0%;
  border:medium none;
  background-color:#ffffff;
  width:1.1em;
  height:1.1em;
  border-style:solid;
  border-color:rgba(34, 36, 38, 0.15);
  border-width:0px 1px 1px 0px;
  transition:background-color 0.1s ease, opacity 0.1s ease, color 0.1s ease, box-shadow 0.1s ease;
  transform:translateY(-50%) translateX(50%) rotate(-45deg);
}
.ui.steps .step:first-child{
  padding-left:2em;
  border-radius:0.4rem 0em 0em 0.4rem;
}
.ui.steps .step:last-child{
  border-radius:0em 0.4rem 0.4rem 0em;
}
.ui.steps .step:last-child{
  border-right:none;
  margin-right:0em;
}
.ui.steps .step:only-child{
  border-radius:0.4rem;
}
.ui.steps .step .title{
  font-family:'Exo 2', 'Lato', Arial, Helvetica, sans-serif;
  font-size:1.1em;
  font-weight:bold;
}
.ui.steps .step > .title{
  width:100%;
}
.ui.steps .step .description{
  font-weight:normal;
  font-size:0.9em;
  color:#333333;
}
.ui.steps .step > .description{
  width:100%;
}
.ui.steps .step .title ~ .description{
  margin-top:0.25em;
}
.ui.steps .step > .icon{
  line-height:1;
  font-size:2.5em;
  margin:0em 1rem 0em 0em;
}
.ui.steps .step > .icon,
.ui.steps .step > .icon ~ .content{
  display:block;
  flex:0 1 auto;
  align-self:middle;
}
.ui.steps .step > .icon ~ .content{
  flex-grow:1 0 auto;
}
.ui.steps:not(.vertical) .step > .icon{
  width:auto;
}
.ui.steps .link.step,
.ui.steps a.step{
  cursor:pointer;
}
.ui.ordered.steps{
  counter-reset:ordered;
}
.ui.ordered.steps .step:before{
  display:block;
  position:static;
  text-align:center;
  content:counters(ordered, ".");
  align-self:middle;
  margin-right:1rem;
  font-size:2.5em;
  counter-increment:ordered;
  font-family:inherit;
  font-weight:bold;
}
.ui.ordered.steps .step > *{
  display:block;
  align-self:middle;
}
.ui.vertical.steps{
  display:inline-flex;
  flex-direction:column;
  overflow:visible;
}
.ui.vertical.steps .step{
  justify-content:flex-start;
  border-radius:0em;
  padding:1.1em 2em;
  border-right:none;
  border-bottom:1px solid rgba(34, 36, 38, 0.15);
}
.ui.vertical.steps .step:first-child{
  padding:1.1em 2em;
  border-radius:0.4rem 0.4rem 0em 0em;
}
.ui.vertical.steps .step:last-child{
  border-bottom:none;
  border-radius:0em 0em 0.4rem 0.4rem;
}
.ui.vertical.steps .step:only-child{
  border-radius:0.4rem;
}
.ui.vertical.steps .step:after{
  display:none;
}
.ui.vertical.steps .step:after{
  top:50%;
  right:0%;
  border-width:0px 1px 1px 0px;
}
.ui.vertical.steps .step:after{
  display:none;
}
.ui.vertical.steps .active.step:after{
  display:block;
}
.ui.vertical.steps .step:last-child:after{
  display:none;
}
.ui.vertical.steps .active.step:last-child:after{
  display:block;
}
@media only screen and (max-width: 767px){
  .ui.steps{
    display:inline-flex;
    overflow:visible;
    flex-direction:column;
  }
  .ui.steps .step{
    width:100% !important;
    flex-direction:column;
    border-radius:0em;
    padding:1.1em 2em;
  }
  .ui.steps .step:first-child{
    padding:1.1em 2em;
    border-radius:0.4rem 0.4rem 0em 0em;
  }
  .ui.steps .step:last-child{
    border-radius:0em 0em 0.4rem 0.4rem;
  }
  .ui.steps .step:after{
    display:none !important;
  }
  .ui.steps .step .content{
    text-align:center;
  }
  .ui.steps .step > .icon,
  .ui.ordered.steps .step:before{
    margin:0em 0em 1rem 0em;
  }
}
.ui.steps .link.step:hover::after,
.ui.steps .link.step:hover,
.ui.steps a.step:hover::after,
.ui.steps a.step:hover{
  background:#F9FAFB;
  color:rgba(0, 0, 0, 0.8);
}
.ui.steps .link.step:active::after,
.ui.steps .link.step:active,
.ui.steps a.step:active::after,
.ui.steps a.step:active{
  background:#F3F4F5;
  color:rgba(0, 0, 0, 0.9);
}
.ui.steps .step.active{
  cursor:auto;
  background:#F3F4F5;
}
.ui.steps .step.active:after{
  background:#F3F4F5;
}
.ui.steps .step.active .title{
  color:#4183C4;
}
.ui.ordered.steps .step.active:before,
.ui.steps .active.step .icon{
  color:rgba(0, 0, 0, 0.85);
}
.ui.steps .step:after{
  display:block;
}
.ui.steps .active.step:after{
  display:block;
}
.ui.steps .step:last-child:after{
  display:none;
}
.ui.steps .active.step:last-child:after{
  display:none;
}
.ui.steps .link.active.step:hover::after,
.ui.steps .link.active.step:hover,
.ui.steps a.active.step:hover::after,
.ui.steps a.active.step:hover{
  cursor:pointer;
  background:#DCDDDE;
  color:#333333;
}
.ui.steps .step.completed > .icon:before,
.ui.ordered.steps .step.completed:before{
  color:#19a531;
}
.ui.steps .disabled.step{
  cursor:auto;
  background:#ffffff;
  pointer-events:none;
}
.ui.steps .disabled.step,
.ui.steps .disabled.step .title,
.ui.steps .disabled.step .description{
  color:rgba(40, 40, 40, 0.3);
}
.ui.steps .disabled.step:after{
  background:#ffffff;
}
@media only screen and (max-width: 991px){
  .ui[class*="tablet stackable"].steps{
    display:inline-flex;
    overflow:visible;
    flex-direction:column;
  }
  .ui[class*="tablet stackable"].steps .step{
    flex-direction:column;
    border-radius:0em;
    padding:1.1em 2em;
  }
  .ui[class*="tablet stackable"].steps .step:first-child{
    padding:1.1em 2em;
    border-radius:0.4rem 0.4rem 0em 0em;
  }
  .ui[class*="tablet stackable"].steps .step:last-child{
    border-radius:0em 0em 0.4rem 0.4rem;
  }
  .ui[class*="tablet stackable"].steps .step:after{
    display:none !important;
  }
  .ui[class*="tablet stackable"].steps .step .content{
    text-align:center;
  }
  .ui[class*="tablet stackable"].steps .step > .icon,
  .ui[class*="tablet stackable"].ordered.steps .step:before{
    margin:0em 0em 1rem 0em;
  }
}
.ui.fluid.steps{
  display:flex;
  width:100%;
}
.ui.attached.steps{
  width:calc(100% + 2px) !important;
  margin:0em -1px 0;
  max-width:calc(100% + 2px);
  border-radius:0.4rem 0.4rem 0em 0em;
}
.ui.attached.steps .step:first-child{
  border-radius:0.4rem 0em 0em 0em;
}
.ui.attached.steps .step:last-child{
  border-radius:0em 0.4rem 0em 0em;
}
.ui.bottom.attached.steps{
  margin:0 -1px 0em;
  border-radius:0em 0em 0.4rem 0.4rem;
}
.ui.bottom.attached.steps .step:first-child{
  border-radius:0em 0em 0em 0.4rem;
}
.ui.bottom.attached.steps .step:last-child{
  border-radius:0em 0em 0.4rem 0em;
}
.ui.one.steps,
.ui.two.steps,
.ui.three.steps,
.ui.four.steps,
.ui.five.steps,
.ui.six.steps,
.ui.seven.steps,
.ui.eight.steps{
  width:100%;
}
.ui.one.steps > .step,
.ui.two.steps > .step,
.ui.three.steps > .step,
.ui.four.steps > .step,
.ui.five.steps > .step,
.ui.six.steps > .step,
.ui.seven.steps > .step,
.ui.eight.steps > .step{
  flex-wrap:nowrap;
}
.ui.one.steps > .step{
  width:100%;
}
.ui.two.steps > .step{
  width:50%;
}
.ui.three.steps > .step{
  width:33.333%;
}
.ui.four.steps > .step{
  width:25%;
}
.ui.five.steps > .step{
  width:20%;
}
.ui.six.steps > .step{
  width:16.666%;
}
.ui.seven.steps > .step{
  width:14.285%;
}
.ui.eight.steps > .step{
  width:12.5%;
}
.ui.mini.steps .step,
.ui.mini.step{
  font-size:0.8rem;
}
.ui.tiny.steps .step,
.ui.tiny.step{
  font-size:0.9rem;
}
.ui.small.steps .step,
.ui.small.step{
  font-size:0.9rem;
}
.ui.steps .step,
.ui.step{
  font-size:1rem;
}
.ui.large.steps .step,
.ui.large.step{
  font-size:1.1rem;
}
.ui.big.steps .step,
.ui.big.step{
  font-size:1.3rem;
}
.ui.huge.steps .step,
.ui.huge.step{
  font-size:1.4rem;
}
.ui.massive.steps .step,
.ui.massive.step{
  font-size:1.7rem;
}
@font-face{
  font-family:'Step';
  src:url(data:application/x-font-ttf;charset=utf-8;;base64,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) format('truetype'), url(data:application/font-woff;charset=utf-8;base64,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) format('woff');
}
.ui.steps .step.completed > .icon:before,
.ui.ordered.steps .step.completed:before{
  font-family:'Step';
  content:'\e800';
}
/*!
 * # Semantic UI - Breadcrumb
 * http://github.com/semantic-org/semantic-ui/
 *
 *
 * Released under the MIT license
 * http://opensource.org/licenses/MIT
 *
 */
.ui.breadcrumb{
  line-height:1;
  display:inline-block;
  margin:0em 0em;
  vertical-align:middle;
}
.ui.breadcrumb:first-child{
  margin-top:0em;
}
.ui.breadcrumb:last-child{
  margin-bottom:0em;
}
.ui.breadcrumb .divider{
  display:inline-block;
  opacity:0.7;
  margin:0em 0.3rem 0em;
  font-size:0.9em;
  color:rgba(0, 0, 0, 0.4);
  vertical-align:baseline;
}
.ui.breadcrumb a{
  color:#4183C4;
}
.ui.breadcrumb a:hover{
  color:#1e70bf;
}
.ui.breadcrumb .icon.divider{
  font-size:0.9em;
  vertical-align:baseline;
}
.ui.breadcrumb a.section{
  cursor:pointer;
}
.ui.breadcrumb .section{
  display:inline-block;
  margin:0em;
  padding:0em;
}
.ui.breadcrumb.segment{
  display:inline-block;
  padding:0.8em 1em;
}
.ui.breadcrumb .active.section{
  font-weight:bold;
}
.ui.mini.breadcrumb{
  font-size:0.8rem;
}
.ui.tiny.breadcrumb{
  font-size:0.9rem;
}
.ui.small.breadcrumb{
  font-size:0.9rem;
}
.ui.breadcrumb{
  font-size:1rem;
}
.ui.large.breadcrumb{
  font-size:1.1rem;
}
.ui.big.breadcrumb{
  font-size:1.3rem;
}
.ui.huge.breadcrumb{
  font-size:1.4rem;
}
.ui.massive.breadcrumb{
  font-size:1.7rem;
}
/*!
 * # Semantic UI - Form
 * http://github.com/semantic-org/semantic-ui/
 *
 *
 * Released under the MIT license
 * http://opensource.org/licenses/MIT
 *
 */
.ui.form{
  position:relative;
  max-width:100%;
}
.ui.form > p{
  margin:1em 0em;
}
.ui.form .field{
  clear:both;
  margin:0em 0em 1em;
}
.ui.form .field:last-child,
.ui.form .fields:last-child .field{
  margin-bottom:0em;
}
.ui.form .fields .field{
  clear:both;
  margin:0em;
}
.ui.form .field > label{
  display:block;
  margin:0em 0em 0.4rem 0em;
  color:#333333;
  font-size:0.9em;
  font-weight:bold;
  text-transform:none;
}
.ui.form textarea,
.ui.form input:not([type]),
.ui.form input[type="date"],
.ui.form input[type="datetime-local"],
.ui.form input[type="email"],
.ui.form input[type="number"],
.ui.form input[type="password"],
.ui.form input[type="search"],
.ui.form input[type="tel"],
.ui.form input[type="time"],
.ui.form input[type="text"],
.ui.form input[type="file"],
.ui.form input[type="url"]{
  width:100%;
  vertical-align:top;
}
.ui.form ::-webkit-datetime-edit,
.ui.form ::-webkit-inner-spin-button{
  height:1.21428571em;
}
.ui.form input:not([type]),
.ui.form input[type="date"],
.ui.form input[type="datetime-local"],
.ui.form input[type="email"],
.ui.form input[type="number"],
.ui.form input[type="password"],
.ui.form input[type="search"],
.ui.form input[type="tel"],
.ui.form input[type="time"],
.ui.form input[type="text"],
.ui.form input[type="file"],
.ui.form input[type="url"]{
  font-family:'Exo 2', 'Lato', Arial, Helvetica, sans-serif;
  margin:0em;
  outline:none;
  -webkit-appearance:none;
  tap-highlight-color:rgba(255, 255, 255, 0);
  line-height:1.21428571em;
  padding:0.99285714em 1.4em;
  font-size:1em;
  background:#ffffff;
  border:1px solid rgba(34, 36, 38, 0.15);
  color:#333333;
  border-radius:0.4rem;
  box-shadow:0em 0em 0em 0em transparent inset;
  transition:color 0.1s ease, border-color 0.1s ease;
}
.ui.form textarea{
  margin:0em;
  -webkit-appearance:none;
  tap-highlight-color:rgba(255, 255, 255, 0);
  padding:1.1em 1.4em;
  background:#ffffff;
  border:1px solid rgba(34, 36, 38, 0.15);
  outline:none;
  color:#333333;
  border-radius:0.4rem;
  box-shadow:0em 0em 0em 0em transparent inset;
  transition:color 0.1s ease, border-color 0.1s ease;
  font-size:1em;
  line-height:1.2857;
  resize:vertical;
}
.ui.form textarea:not([rows]){
  height:12em;
  min-height:8em;
  max-height:24em;
}
.ui.form textarea,
.ui.form input[type="checkbox"]{
  vertical-align:top;
}
.ui.form input.attached{
  width:auto;
}
.ui.form select{
  display:block;
  height:auto;
  width:100%;
  background:#ffffff;
  border:1px solid rgba(34, 36, 38, 0.15);
  border-radius:0.4rem;
  box-shadow:0em 0em 0em 0em transparent inset;
  padding:0.62em 1.4em;
  color:#333333;
  transition:color 0.1s ease, border-color 0.1s ease;
}
.ui.form .field > .selection.dropdown{
  width:100%;
}
.ui.form .field > .selection.dropdown > .dropdown.icon{
  float:right;
}
.ui.form .inline.fields .field > .selection.dropdown,
.ui.form .inline.field > .selection.dropdown{
  width:auto;
}
.ui.form .inline.fields .field > .selection.dropdown > .dropdown.icon,
.ui.form .inline.field > .selection.dropdown > .dropdown.icon{
  float:none;
}
.ui.form .field .ui.input,
.ui.form .fields .field .ui.input,
.ui.form .wide.field .ui.input{
  width:100%;
}
.ui.form .inline.fields .field:not(.wide) .ui.input,
.ui.form .inline.field:not(.wide) .ui.input{
  width:auto;
  vertical-align:middle;
}
.ui.form .fields .field .ui.input input,
.ui.form .field .ui.input input{
  width:auto;
}
.ui.form .ten.fields .ui.input input,
.ui.form .nine.fields .ui.input input,
.ui.form .eight.fields .ui.input input,
.ui.form .seven.fields .ui.input input,
.ui.form .six.fields .ui.input input,
.ui.form .five.fields .ui.input input,
.ui.form .four.fields .ui.input input,
.ui.form .three.fields .ui.input input,
.ui.form .two.fields .ui.input input,
.ui.form .wide.field .ui.input input{
  flex:1 0 auto;
  width:0px;
}
.ui.form .success.message,
.ui.form .warning.message,
.ui.form .error.message{
  display:none;
}
.ui.form .message:first-child{
  margin-top:0px;
}
.ui.form .field .prompt.label{
  white-space:normal;
  background:#ffffff !important;
  border:1px solid #E0B4B4 !important;
  color:#9F3A38 !important;
}
.ui.form .inline.fields .field .prompt,
.ui.form .inline.field .prompt{
  vertical-align:top;
  margin:-0.25em 0em -0.5em 0.5em;
}
.ui.form .inline.fields .field .prompt:before,
.ui.form .inline.field .prompt:before{
  border-width:0px 0px 1px 1px;
  bottom:auto;
  right:auto;
  top:50%;
  left:0em;
}
.ui.form .field.field input:-webkit-autofill{
  box-shadow:0px 0px 0px 100px #FFFFF0 inset !important;
  border-color:#E5DFA1 !important;
}
.ui.form .field.field input:-webkit-autofill:focus{
  box-shadow:0px 0px 0px 100px #FFFFF0 inset !important;
  border-color:#D5C315 !important;
}
.ui.form .error.error input:-webkit-autofill{
  box-shadow:0px 0px 0px 100px #FFFAF0 inset !important;
  border-color:#E0B4B4 !important;
}
.ui.form ::-webkit-input-placeholder{
  color:#f2f2f2;
}
.ui.form :-ms-input-placeholder{
  color:#f2f2f2;
}
.ui.form ::-moz-placeholder{
  color:#f2f2f2;
}
.ui.form :focus::-webkit-input-placeholder{
  color:#a6a6a6;
}
.ui.form :focus:-ms-input-placeholder{
  color:#a6a6a6;
}
.ui.form :focus::-moz-placeholder{
  color:#a6a6a6;
}
.ui.form .error ::-webkit-input-placeholder{
  color:#e7bdbc;
}
.ui.form .error :-ms-input-placeholder{
  color:#e7bdbc !important;
}
.ui.form .error ::-moz-placeholder{
  color:#e7bdbc;
}
.ui.form .error :focus::-webkit-input-placeholder{
  color:#da9796;
}
.ui.form .error :focus:-ms-input-placeholder{
  color:#da9796 !important;
}
.ui.form .error :focus::-moz-placeholder{
  color:#da9796;
}
.ui.form input:not([type]):focus,
.ui.form input[type="date"]:focus,
.ui.form input[type="datetime-local"]:focus,
.ui.form input[type="email"]:focus,
.ui.form input[type="number"]:focus,
.ui.form input[type="password"]:focus,
.ui.form input[type="search"]:focus,
.ui.form input[type="tel"]:focus,
.ui.form input[type="time"]:focus,
.ui.form input[type="text"]:focus,
.ui.form input[type="file"]:focus,
.ui.form input[type="url"]:focus{
  color:rgba(0, 0, 0, 0.95);
  border-color:#85B7D9;
  border-radius:0.4rem;
  background:#ffffff;
  box-shadow:0px 0em 0em 0em rgba(34, 36, 38, 0.35) inset;
}
.ui.form textarea:focus{
  color:rgba(0, 0, 0, 0.95);
  border-color:#85B7D9;
  border-radius:0.4rem;
  background:#ffffff;
  box-shadow:0px 0em 0em 0em rgba(34, 36, 38, 0.35) inset;
  -webkit-appearance:none;
}
.ui.form.success .success.message:not(:empty){
  display:block;
}
.ui.form.success .compact.success.message:not(:empty){
  display:inline-block;
}
.ui.form.success .icon.success.message:not(:empty){
  display:flex;
}
.ui.form.warning .warning.message:not(:empty){
  display:block;
}
.ui.form.warning .compact.warning.message:not(:empty){
  display:inline-block;
}
.ui.form.warning .icon.warning.message:not(:empty){
  display:flex;
}
.ui.form.error .error.message:not(:empty){
  display:block;
}
.ui.form.error .compact.error.message:not(:empty){
  display:inline-block;
}
.ui.form.error .icon.error.message:not(:empty){
  display:flex;
}
.ui.form .fields.error .field label,
.ui.form .field.error label,
.ui.form .fields.error .field .input,
.ui.form .field.error .input{
  color:#9F3A38;
}
.ui.form .fields.error .field .corner.label,
.ui.form .field.error .corner.label{
  border-color:#9F3A38;
  color:#ffffff;
}
.ui.form .fields.error .field textarea,
.ui.form .fields.error .field select,
.ui.form .fields.error .field input:not([type]),
.ui.form .fields.error .field input[type="date"],
.ui.form .fields.error .field input[type="datetime-local"],
.ui.form .fields.error .field input[type="email"],
.ui.form .fields.error .field input[type="number"],
.ui.form .fields.error .field input[type="password"],
.ui.form .fields.error .field input[type="search"],
.ui.form .fields.error .field input[type="tel"],
.ui.form .fields.error .field input[type="time"],
.ui.form .fields.error .field input[type="text"],
.ui.form .fields.error .field input[type="file"],
.ui.form .fields.error .field input[type="url"],
.ui.form .field.error textarea,
.ui.form .field.error select,
.ui.form .field.error input:not([type]),
.ui.form .field.error input[type="date"],
.ui.form .field.error input[type="datetime-local"],
.ui.form .field.error input[type="email"],
.ui.form .field.error input[type="number"],
.ui.form .field.error input[type="password"],
.ui.form .field.error input[type="search"],
.ui.form .field.error input[type="tel"],
.ui.form .field.error input[type="time"],
.ui.form .field.error input[type="text"],
.ui.form .field.error input[type="file"],
.ui.form .field.error input[type="url"]{
  background:#FFF6F6;
  border-color:#E0B4B4;
  color:#9F3A38;
  border-radius:'';
  box-shadow:none;
}
.ui.form .field.error textarea:focus,
.ui.form .field.error select:focus,
.ui.form .field.error input:not([type]):focus,
.ui.form .field.error input[type="date"]:focus,
.ui.form .field.error input[type="datetime-local"]:focus,
.ui.form .field.error input[type="email"]:focus,
.ui.form .field.error input[type="number"]:focus,
.ui.form .field.error input[type="password"]:focus,
.ui.form .field.error input[type="search"]:focus,
.ui.form .field.error input[type="tel"]:focus,
.ui.form .field.error input[type="time"]:focus,
.ui.form .field.error input[type="text"]:focus,
.ui.form .field.error input[type="file"]:focus,
.ui.form .field.error input[type="url"]:focus{
  background:#FFF6F6;
  border-color:#E0B4B4;
  color:#9F3A38;
  -webkit-appearance:none;
  box-shadow:none;
}
.ui.form .field.error select{
  -webkit-appearance:menulist-button;
}
.ui.form .fields.error .field .ui.dropdown,
.ui.form .fields.error .field .ui.dropdown .item,
.ui.form .field.error .ui.dropdown,
.ui.form .field.error .ui.dropdown .text,
.ui.form .field.error .ui.dropdown .item{
  background:#FFF6F6;
  color:#9F3A38;
}
.ui.form .fields.error .field .ui.dropdown,
.ui.form .field.error .ui.dropdown{
  border-color:#E0B4B4 !important;
}
.ui.form .fields.error .field .ui.dropdown:hover,
.ui.form .field.error .ui.dropdown:hover{
  border-color:#E0B4B4 !important;
}
.ui.form .fields.error .field .ui.dropdown:hover .menu,
.ui.form .field.error .ui.dropdown:hover .menu{
  border-color:#E0B4B4;
}
.ui.form .fields.error .field .ui.multiple.selection.dropdown > .label,
.ui.form .field.error .ui.multiple.selection.dropdown > .label{
  background-color:#EACBCB;
  color:#9F3A38;
}
.ui.form .fields.error .field .ui.dropdown .menu .item:hover,
.ui.form .field.error .ui.dropdown .menu .item:hover{
  background-color:#FBE7E7;
}
.ui.form .fields.error .field .ui.dropdown .menu .selected.item,
.ui.form .field.error .ui.dropdown .menu .selected.item{
  background-color:#FBE7E7;
}
.ui.form .fields.error .field .ui.dropdown .menu .active.item,
.ui.form .field.error .ui.dropdown .menu .active.item{
  background-color:#FDCFCF !important;
}
.ui.form .fields.error .field .checkbox:not(.toggle):not(.slider) label,
.ui.form .field.error .checkbox:not(.toggle):not(.slider) label,
.ui.form .fields.error .field .checkbox:not(.toggle):not(.slider) .box,
.ui.form .field.error .checkbox:not(.toggle):not(.slider) .box{
  color:#9F3A38;
}
.ui.form .fields.error .field .checkbox:not(.toggle):not(.slider) label:before,
.ui.form .field.error .checkbox:not(.toggle):not(.slider) label:before,
.ui.form .fields.error .field .checkbox:not(.toggle):not(.slider) .box:before,
.ui.form .field.error .checkbox:not(.toggle):not(.slider) .box:before{
  background:#FFF6F6;
  border-color:#E0B4B4;
}
.ui.form .fields.error .field .checkbox label:after,
.ui.form .field.error .checkbox label:after,
.ui.form .fields.error .field .checkbox .box:after,
.ui.form .field.error .checkbox .box:after{
  color:#9F3A38;
}
.ui.form .disabled.fields .field,
.ui.form .disabled.field,
.ui.form .field :disabled{
  pointer-events:none;
  opacity:0.45;
}
.ui.form .field.disabled > label,
.ui.form .fields.disabled > label{
  opacity:0.45;
}
.ui.form .field.disabled :disabled{
  opacity:1;
}
.ui.loading.form{
  position:relative;
  cursor:default;
  pointer-events:none;
}
.ui.loading.form:before{
  position:absolute;
  content:'';
  top:0%;
  left:0%;
  background:rgba(255, 255, 255, 0.8);
  width:100%;
  height:100%;
  z-index:100;
}
.ui.loading.form:after{
  position:absolute;
  content:'';
  top:50%;
  left:50%;
  margin:-1.5em 0em 0em -1.5em;
  width:3em;
  height:3em;
  animation:form-spin 0.6s linear;
  animation-iteration-count:infinite;
  border-radius:500rem;
  border-color:#767676 rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1);
  border-style:solid;
  border-width:0.2em;
  box-shadow:0px 0px 0px 1px transparent;
  visibility:visible;
  z-index:101;
}
@keyframes form-spin{
  from{
    transform:rotate(0deg);
  }
  to{
    transform:rotate(360deg);
  }
}
.ui.form .required.fields:not(.grouped) > .field > label:after,
.ui.form .required.fields.grouped > label:after,
.ui.form .required.field > label:after,
.ui.form .required.fields:not(.grouped) > .field > .checkbox:after,
.ui.form .required.field > .checkbox:after{
  margin:-0.2em 0em 0em 0.2em;
  content:'*';
  color:#de3a3e;
}
.ui.form .required.fields:not(.grouped) > .field > label:after,
.ui.form .required.fields.grouped > label:after,
.ui.form .required.field > label:after{
  display:inline-block;
  vertical-align:top;
}
.ui.form .required.fields:not(.grouped) > .field > .checkbox:after,
.ui.form .required.field > .checkbox:after{
  position:absolute;
  top:0%;
  left:100%;
}
.ui.inverted.form label,
.ui.form .inverted.segment label,
.ui.form .inverted.segment .ui.checkbox label,
.ui.form .inverted.segment .ui.checkbox .box,
.ui.inverted.form .ui.checkbox label,
.ui.inverted.form .ui.checkbox .box,
.ui.inverted.form .inline.fields > label,
.ui.inverted.form .inline.fields .field > label,
.ui.inverted.form .inline.fields .field > p,
.ui.inverted.form .inline.field > label,
.ui.inverted.form .inline.field > p{
  color:rgba(255, 255, 255, 0.9);
}
.ui.inverted.form input:not([type]),
.ui.inverted.form input[type="date"],
.ui.inverted.form input[type="datetime-local"],
.ui.inverted.form input[type="email"],
.ui.inverted.form input[type="number"],
.ui.inverted.form input[type="password"],
.ui.inverted.form input[type="search"],
.ui.inverted.form input[type="tel"],
.ui.inverted.form input[type="time"],
.ui.inverted.form input[type="text"],
.ui.inverted.form input[type="file"],
.ui.inverted.form input[type="url"]{
  background:#ffffff;
  border-color:rgba(255, 255, 255, 0.1);
  color:#333333;
  box-shadow:none;
}
.ui.form .grouped.fields{
  display:block;
  margin:0em 0em 1em;
}
.ui.form .grouped.fields:last-child{
  margin-bottom:0em;
}
.ui.form .grouped.fields > label{
  margin:0em 0em 0.4rem 0em;
  color:#333333;
  font-size:0.9em;
  font-weight:bold;
  text-transform:none;
}
.ui.form .grouped.fields .field,
.ui.form .grouped.inline.fields .field{
  display:block;
  margin:0.5em 0em;
  padding:0em;
}
.ui.form .fields{
  display:flex;
  flex-direction:row;
  margin:0em -0.5em 1em;
}
.ui.form .fields > .field{
  flex:0 1 auto;
  padding-left:0.5em;
  padding-right:0.5em;
}
.ui.form .fields > .field:first-child{
  border-left:none;
  box-shadow:none;
}
.ui.form .two.fields > .fields,
.ui.form .two.fields > .field{
  width:50%;
}
.ui.form .three.fields > .fields,
.ui.form .three.fields > .field{
  width:33.33333333%;
}
.ui.form .four.fields > .fields,
.ui.form .four.fields > .field{
  width:25%;
}
.ui.form .five.fields > .fields,
.ui.form .five.fields > .field{
  width:20%;
}
.ui.form .six.fields > .fields,
.ui.form .six.fields > .field{
  width:16.66666667%;
}
.ui.form .seven.fields > .fields,
.ui.form .seven.fields > .field{
  width:14.28571429%;
}
.ui.form .eight.fields > .fields,
.ui.form .eight.fields > .field{
  width:12.5%;
}
.ui.form .nine.fields > .fields,
.ui.form .nine.fields > .field{
  width:11.11111111%;
}
.ui.form .ten.fields > .fields,
.ui.form .ten.fields > .field{
  width:10%;
}
@media only screen and (max-width: 767px){
  .ui.form .fields{
    flex-wrap:wrap;
  }
  .ui[class*="equal width"].form .fields > .field,
  .ui.form [class*="equal width"].fields > .field,
  .ui.form .two.fields > .fields,
  .ui.form .two.fields > .field,
  .ui.form .three.fields > .fields,
  .ui.form .three.fields > .field,
  .ui.form .four.fields > .fields,
  .ui.form .four.fields > .field,
  .ui.form .five.fields > .fields,
  .ui.form .five.fields > .field,
  .ui.form .six.fields > .fields,
  .ui.form .six.fields > .field,
  .ui.form .seven.fields > .fields,
  .ui.form .seven.fields > .field,
  .ui.form .eight.fields > .fields,
  .ui.form .eight.fields > .field,
  .ui.form .nine.fields > .fields,
  .ui.form .nine.fields > .field,
  .ui.form .ten.fields > .fields,
  .ui.form .ten.fields > .field{
    width:100% !important;
    margin:0em 0em 1em;
  }
}
.ui.form .fields .wide.field{
  width:6.25%;
  padding-left:0.5em;
  padding-right:0.5em;
}
.ui.form .one.wide.field{
  width:6.25% !important;
}
.ui.form .two.wide.field{
  width:12.5% !important;
}
.ui.form .three.wide.field{
  width:18.75% !important;
}
.ui.form .four.wide.field{
  width:25% !important;
}
.ui.form .five.wide.field{
  width:31.25% !important;
}
.ui.form .six.wide.field{
  width:37.5% !important;
}
.ui.form .seven.wide.field{
  width:43.75% !important;
}
.ui.form .eight.wide.field{
  width:50% !important;
}
.ui.form .nine.wide.field{
  width:56.25% !important;
}
.ui.form .ten.wide.field{
  width:62.5% !important;
}
.ui.form .eleven.wide.field{
  width:68.75% !important;
}
.ui.form .twelve.wide.field{
  width:75% !important;
}
.ui.form .thirteen.wide.field{
  width:81.25% !important;
}
.ui.form .fourteen.wide.field{
  width:87.5% !important;
}
.ui.form .fifteen.wide.field{
  width:93.75% !important;
}
.ui.form .sixteen.wide.field{
  width:100% !important;
}
@media only screen and (max-width: 767px){
  .ui.form .two.fields > .fields,
  .ui.form .two.fields > .field,
  .ui.form .three.fields > .fields,
  .ui.form .three.fields > .field,
  .ui.form .four.fields > .fields,
  .ui.form .four.fields > .field,
  .ui.form .five.fields > .fields,
  .ui.form .five.fields > .field,
  .ui.form .fields > .two.wide.field,
  .ui.form .fields > .three.wide.field,
  .ui.form .fields > .four.wide.field,
  .ui.form .fields > .five.wide.field,
  .ui.form .fields > .six.wide.field,
  .ui.form .fields > .seven.wide.field,
  .ui.form .fields > .eight.wide.field,
  .ui.form .fields > .nine.wide.field,
  .ui.form .fields > .ten.wide.field,
  .ui.form .fields > .eleven.wide.field,
  .ui.form .fields > .twelve.wide.field,
  .ui.form .fields > .thirteen.wide.field,
  .ui.form .fields > .fourteen.wide.field,
  .ui.form .fields > .fifteen.wide.field,
  .ui.form .fields > .sixteen.wide.field{
    width:100% !important;
  }
  .ui.form .fields{
    margin-bottom:0em;
  }
}
.ui[class*="equal width"].form .fields > .field,
.ui.form [class*="equal width"].fields > .field{
  width:100%;
  flex:1 1 auto;
}
.ui.form .inline.fields{
  margin:0em 0em 1em;
  align-items:center;
}
.ui.form .inline.fields .field{
  margin:0em;
  padding:0em 1em 0em 0em;
}
.ui.form .inline.fields > label,
.ui.form .inline.fields .field > label,
.ui.form .inline.fields .field > p,
.ui.form .inline.field > label,
.ui.form .inline.field > p{
  display:inline-block;
  width:auto;
  margin-top:0em;
  margin-bottom:0em;
  vertical-align:baseline;
  font-size:0.9em;
  font-weight:bold;
  color:#333333;
  text-transform:none;
}
.ui.form .inline.fields > label{
  margin:0.035714em 1em 0em 0em;
}
.ui.form .inline.fields .field > input,
.ui.form .inline.fields .field > select,
.ui.form .inline.field > input,
.ui.form .inline.field > select{
  display:inline-block;
  width:auto;
  margin-top:0em;
  margin-bottom:0em;
  vertical-align:middle;
  font-size:1em;
}
.ui.form .inline.fields .field > :first-child,
.ui.form .inline.field > :first-child{
  margin:0em 0.9em 0em 0em;
}
.ui.form .inline.fields .field > :only-child,
.ui.form .inline.field > :only-child{
  margin:0em;
}
.ui.form .inline.fields .wide.field{
  display:flex;
  align-items:center;
}
.ui.form .inline.fields .wide.field > input,
.ui.form .inline.fields .wide.field > select{
  width:100%;
}
.ui.mini.form{
  font-size:0.8rem;
}
.ui.tiny.form{
  font-size:0.9rem;
}
.ui.small.form{
  font-size:0.9rem;
}
.ui.form{
  font-size:1rem;
}
.ui.large.form{
  font-size:1.1rem;
}
.ui.big.form{
  font-size:1.3rem;
}
.ui.huge.form{
  font-size:1.4rem;
}
.ui.massive.form{
  font-size:1.7rem;
}
/*!
 * # Semantic UI - Grid
 * http://github.com/semantic-org/semantic-ui/
 *
 *
 * Released under the MIT license
 * http://opensource.org/licenses/MIT
 *
 */
.ui.grid{
  display:flex;
  flex-direction:row;
  flex-wrap:wrap;
  align-items:stretch;
  padding:0em;
}
.ui.grid{
  margin-top:-1rem;
  margin-bottom:-1rem;
  margin-left:-1rem;
  margin-right:-1rem;
}
.ui.relaxed.grid{
  margin-left:-1.5rem;
  margin-right:-1.5rem;
}
.ui[class*="very relaxed"].grid{
  margin-left:-2.5rem;
  margin-right:-2.5rem;
}
.ui.grid + .grid{
  margin-top:1rem;
}
.ui.grid > .column:not(.row),
.ui.grid > .row > .column{
  position:relative;
  display:inline-block;
  width:6.25%;
  padding-left:1rem;
  padding-right:1rem;
  vertical-align:top;
}
.ui.grid > *{
  padding-left:1rem;
  padding-right:1rem;
}
.ui.grid > .row{
  position:relative;
  display:flex;
  flex-direction:row;
  flex-wrap:wrap;
  justify-content:inherit;
  align-items:stretch;
  width:100% !important;
  padding:0rem;
  padding-top:1rem;
  padding-bottom:1rem;
}
.ui.grid > .column:not(.row){
  padding-top:1rem;
  padding-bottom:1rem;
}
.ui.grid > .row > .column{
  margin-top:0em;
  margin-bottom:0em;
}
.ui.grid > .row > img,
.ui.grid > .row > .column > img{
  max-width:100%;
}
.ui.grid > .ui.grid:first-child{
  margin-top:0em;
}
.ui.grid > .ui.grid:last-child{
  margin-bottom:0em;
}
.ui.grid .aligned.row > .column > .segment:not(.compact):not(.attached),
.ui.aligned.grid .column > .segment:not(.compact):not(.attached){
  width:100%;
}
.ui.grid .row + .ui.divider{
  flex-grow:1;
  margin:1rem 1rem;
}
.ui.grid .column + .ui.vertical.divider{
  height:calc(50% - 1rem);
}
.ui.grid > .row > .column:last-child > .horizontal.segment,
.ui.grid > .column:last-child > .horizontal.segment{
  box-shadow:none;
}
@media only screen and (max-width: 767px){
  .ui.page.grid{
    width:auto;
    padding-left:0em;
    padding-right:0em;
    margin-left:0em;
    margin-right:0em;
  }
}
@media only screen and (min-width: 768px) and (max-width: 991px){
  .ui.page.grid{
    width:auto;
    margin-left:0em;
    margin-right:0em;
    padding-left:2em;
    padding-right:2em;
  }
}
@media only screen and (min-width: 992px) and (max-width: 1199px){
  .ui.page.grid{
    width:auto;
    margin-left:0em;
    margin-right:0em;
    padding-left:3%;
    padding-right:3%;
  }
}
@media only screen and (min-width: 1200px) and (max-width: 1919px){
  .ui.page.grid{
    width:auto;
    margin-left:0em;
    margin-right:0em;
    padding-left:15%;
    padding-right:15%;
  }
}
@media only screen and (min-width: 1920px){
  .ui.page.grid{
    width:auto;
    margin-left:0em;
    margin-right:0em;
    padding-left:23%;
    padding-right:23%;
  }
}
.ui.grid > .column:only-child,
.ui.grid > .row > .column:only-child{
  width:100%;
}
.ui[class*="one column"].grid > .row > .column,
.ui[class*="one column"].grid > .column:not(.row){
  width:100%;
}
.ui[class*="two column"].grid > .row > .column,
.ui[class*="two column"].grid > .column:not(.row){
  width:50%;
}
.ui[class*="three column"].grid > .row > .column,
.ui[class*="three column"].grid > .column:not(.row){
  width:33.33333333%;
}
.ui[class*="four column"].grid > .row > .column,
.ui[class*="four column"].grid > .column:not(.row){
  width:25%;
}
.ui[class*="five column"].grid > .row > .column,
.ui[class*="five column"].grid > .column:not(.row){
  width:20%;
}
.ui[class*="six column"].grid > .row > .column,
.ui[class*="six column"].grid > .column:not(.row){
  width:16.66666667%;
}
.ui[class*="seven column"].grid > .row > .column,
.ui[class*="seven column"].grid > .column:not(.row){
  width:14.28571429%;
}
.ui[class*="eight column"].grid > .row > .column,
.ui[class*="eight column"].grid > .column:not(.row){
  width:12.5%;
}
.ui[class*="nine column"].grid > .row > .column,
.ui[class*="nine column"].grid > .column:not(.row){
  width:11.11111111%;
}
.ui[class*="ten column"].grid > .row > .column,
.ui[class*="ten column"].grid > .column:not(.row){
  width:10%;
}
.ui[class*="eleven column"].grid > .row > .column,
.ui[class*="eleven column"].grid > .column:not(.row){
  width:9.09090909%;
}
.ui[class*="twelve column"].grid > .row > .column,
.ui[class*="twelve column"].grid > .column:not(.row){
  width:8.33333333%;
}
.ui[class*="thirteen column"].grid > .row > .column,
.ui[class*="thirteen column"].grid > .column:not(.row){
  width:7.69230769%;
}
.ui[class*="fourteen column"].grid > .row > .column,
.ui[class*="fourteen column"].grid > .column:not(.row){
  width:7.14285714%;
}
.ui[class*="fifteen column"].grid > .row > .column,
.ui[class*="fifteen column"].grid > .column:not(.row){
  width:6.66666667%;
}
.ui[class*="sixteen column"].grid > .row > .column,
.ui[class*="sixteen column"].grid > .column:not(.row){
  width:6.25%;
}
.ui.grid > [class*="one column"].row > .column{
  width:100% !important;
}
.ui.grid > [class*="two column"].row > .column{
  width:50% !important;
}
.ui.grid > [class*="three column"].row > .column{
  width:33.33333333% !important;
}
.ui.grid > [class*="four column"].row > .column{
  width:25% !important;
}
.ui.grid > [class*="five column"].row > .column{
  width:20% !important;
}
.ui.grid > [class*="six column"].row > .column{
  width:16.66666667% !important;
}
.ui.grid > [class*="seven column"].row > .column{
  width:14.28571429% !important;
}
.ui.grid > [class*="eight column"].row > .column{
  width:12.5% !important;
}
.ui.grid > [class*="nine column"].row > .column{
  width:11.11111111% !important;
}
.ui.grid > [class*="ten column"].row > .column{
  width:10% !important;
}
.ui.grid > [class*="eleven column"].row > .column{
  width:9.09090909% !important;
}
.ui.grid > [class*="twelve column"].row > .column{
  width:8.33333333% !important;
}
.ui.grid > [class*="thirteen column"].row > .column{
  width:7.69230769% !important;
}
.ui.grid > [class*="fourteen column"].row > .column{
  width:7.14285714% !important;
}
.ui.grid > [class*="fifteen column"].row > .column{
  width:6.66666667% !important;
}
.ui.grid > [class*="sixteen column"].row > .column{
  width:6.25% !important;
}
.ui.celled.page.grid{
  box-shadow:none;
}
.ui.grid > .row > [class*="one wide"].column,
.ui.grid > .column.row > [class*="one wide"].column,
.ui.grid > [class*="one wide"].column,
.ui.column.grid > [class*="one wide"].column{
  width:6.25% !important;
}
.ui.grid > .row > [class*="two wide"].column,
.ui.grid > .column.row > [class*="two wide"].column,
.ui.grid > [class*="two wide"].column,
.ui.column.grid > [class*="two wide"].column{
  width:12.5% !important;
}
.ui.grid > .row > [class*="three wide"].column,
.ui.grid > .column.row > [class*="three wide"].column,
.ui.grid > [class*="three wide"].column,
.ui.column.grid > [class*="three wide"].column{
  width:18.75% !important;
}
.ui.grid > .row > [class*="four wide"].column,
.ui.grid > .column.row > [class*="four wide"].column,
.ui.grid > [class*="four wide"].column,
.ui.column.grid > [class*="four wide"].column{
  width:25% !important;
}
.ui.grid > .row > [class*="five wide"].column,
.ui.grid > .column.row > [class*="five wide"].column,
.ui.grid > [class*="five wide"].column,
.ui.column.grid > [class*="five wide"].column{
  width:31.25% !important;
}
.ui.grid > .row > [class*="six wide"].column,
.ui.grid > .column.row > [class*="six wide"].column,
.ui.grid > [class*="six wide"].column,
.ui.column.grid > [class*="six wide"].column{
  width:37.5% !important;
}
.ui.grid > .row > [class*="seven wide"].column,
.ui.grid > .column.row > [class*="seven wide"].column,
.ui.grid > [class*="seven wide"].column,
.ui.column.grid > [class*="seven wide"].column{
  width:43.75% !important;
}
.ui.grid > .row > [class*="eight wide"].column,
.ui.grid > .column.row > [class*="eight wide"].column,
.ui.grid > [class*="eight wide"].column,
.ui.column.grid > [class*="eight wide"].column{
  width:50% !important;
}
.ui.grid > .row > [class*="nine wide"].column,
.ui.grid > .column.row > [class*="nine wide"].column,
.ui.grid > [class*="nine wide"].column,
.ui.column.grid > [class*="nine wide"].column{
  width:56.25% !important;
}
.ui.grid > .row > [class*="ten wide"].column,
.ui.grid > .column.row > [class*="ten wide"].column,
.ui.grid > [class*="ten wide"].column,
.ui.column.grid > [class*="ten wide"].column{
  width:62.5% !important;
}
.ui.grid > .row > [class*="eleven wide"].column,
.ui.grid > .column.row > [class*="eleven wide"].column,
.ui.grid > [class*="eleven wide"].column,
.ui.column.grid > [class*="eleven wide"].column{
  width:68.75% !important;
}
.ui.grid > .row > [class*="twelve wide"].column,
.ui.grid > .column.row > [class*="twelve wide"].column,
.ui.grid > [class*="twelve wide"].column,
.ui.column.grid > [class*="twelve wide"].column{
  width:75% !important;
}
.ui.grid > .row > [class*="thirteen wide"].column,
.ui.grid > .column.row > [class*="thirteen wide"].column,
.ui.grid > [class*="thirteen wide"].column,
.ui.column.grid > [class*="thirteen wide"].column{
  width:81.25% !important;
}
.ui.grid > .row > [class*="fourteen wide"].column,
.ui.grid > .column.row > [class*="fourteen wide"].column,
.ui.grid > [class*="fourteen wide"].column,
.ui.column.grid > [class*="fourteen wide"].column{
  width:87.5% !important;
}
.ui.grid > .row > [class*="fifteen wide"].column,
.ui.grid > .column.row > [class*="fifteen wide"].column,
.ui.grid > [class*="fifteen wide"].column,
.ui.column.grid > [class*="fifteen wide"].column{
  width:93.75% !important;
}
.ui.grid > .row > [class*="sixteen wide"].column,
.ui.grid > .column.row > [class*="sixteen wide"].column,
.ui.grid > [class*="sixteen wide"].column,
.ui.column.grid > [class*="sixteen wide"].column{
  width:100% !important;
}
@media only screen and (min-width: 320px) and (max-width: 767px){
  .ui.grid > .row > [class*="one wide mobile"].column,
  .ui.grid > .column.row > [class*="one wide mobile"].column,
  .ui.grid > [class*="one wide mobile"].column,
  .ui.column.grid > [class*="one wide mobile"].column{
    width:6.25% !important;
  }
  .ui.grid > .row > [class*="two wide mobile"].column,
  .ui.grid > .column.row > [class*="two wide mobile"].column,
  .ui.grid > [class*="two wide mobile"].column,
  .ui.column.grid > [class*="two wide mobile"].column{
    width:12.5% !important;
  }
  .ui.grid > .row > [class*="three wide mobile"].column,
  .ui.grid > .column.row > [class*="three wide mobile"].column,
  .ui.grid > [class*="three wide mobile"].column,
  .ui.column.grid > [class*="three wide mobile"].column{
    width:18.75% !important;
  }
  .ui.grid > .row > [class*="four wide mobile"].column,
  .ui.grid > .column.row > [class*="four wide mobile"].column,
  .ui.grid > [class*="four wide mobile"].column,
  .ui.column.grid > [class*="four wide mobile"].column{
    width:25% !important;
  }
  .ui.grid > .row > [class*="five wide mobile"].column,
  .ui.grid > .column.row > [class*="five wide mobile"].column,
  .ui.grid > [class*="five wide mobile"].column,
  .ui.column.grid > [class*="five wide mobile"].column{
    width:31.25% !important;
  }
  .ui.grid > .row > [class*="six wide mobile"].column,
  .ui.grid > .column.row > [class*="six wide mobile"].column,
  .ui.grid > [class*="six wide mobile"].column,
  .ui.column.grid > [class*="six wide mobile"].column{
    width:37.5% !important;
  }
  .ui.grid > .row > [class*="seven wide mobile"].column,
  .ui.grid > .column.row > [class*="seven wide mobile"].column,
  .ui.grid > [class*="seven wide mobile"].column,
  .ui.column.grid > [class*="seven wide mobile"].column{
    width:43.75% !important;
  }
  .ui.grid > .row > [class*="eight wide mobile"].column,
  .ui.grid > .column.row > [class*="eight wide mobile"].column,
  .ui.grid > [class*="eight wide mobile"].column,
  .ui.column.grid > [class*="eight wide mobile"].column{
    width:50% !important;
  }
  .ui.grid > .row > [class*="nine wide mobile"].column,
  .ui.grid > .column.row > [class*="nine wide mobile"].column,
  .ui.grid > [class*="nine wide mobile"].column,
  .ui.column.grid > [class*="nine wide mobile"].column{
    width:56.25% !important;
  }
  .ui.grid > .row > [class*="ten wide mobile"].column,
  .ui.grid > .column.row > [class*="ten wide mobile"].column,
  .ui.grid > [class*="ten wide mobile"].column,
  .ui.column.grid > [class*="ten wide mobile"].column{
    width:62.5% !important;
  }
  .ui.grid > .row > [class*="eleven wide mobile"].column,
  .ui.grid > .column.row > [class*="eleven wide mobile"].column,
  .ui.grid > [class*="eleven wide mobile"].column,
  .ui.column.grid > [class*="eleven wide mobile"].column{
    width:68.75% !important;
  }
  .ui.grid > .row > [class*="twelve wide mobile"].column,
  .ui.grid > .column.row > [class*="twelve wide mobile"].column,
  .ui.grid > [class*="twelve wide mobile"].column,
  .ui.column.grid > [class*="twelve wide mobile"].column{
    width:75% !important;
  }
  .ui.grid > .row > [class*="thirteen wide mobile"].column,
  .ui.grid > .column.row > [class*="thirteen wide mobile"].column,
  .ui.grid > [class*="thirteen wide mobile"].column,
  .ui.column.grid > [class*="thirteen wide mobile"].column{
    width:81.25% !important;
  }
  .ui.grid > .row > [class*="fourteen wide mobile"].column,
  .ui.grid > .column.row > [class*="fourteen wide mobile"].column,
  .ui.grid > [class*="fourteen wide mobile"].column,
  .ui.column.grid > [class*="fourteen wide mobile"].column{
    width:87.5% !important;
  }
  .ui.grid > .row > [class*="fifteen wide mobile"].column,
  .ui.grid > .column.row > [class*="fifteen wide mobile"].column,
  .ui.grid > [class*="fifteen wide mobile"].column,
  .ui.column.grid > [class*="fifteen wide mobile"].column{
    width:93.75% !important;
  }
  .ui.grid > .row > [class*="sixteen wide mobile"].column,
  .ui.grid > .column.row > [class*="sixteen wide mobile"].column,
  .ui.grid > [class*="sixteen wide mobile"].column,
  .ui.column.grid > [class*="sixteen wide mobile"].column{
    width:100% !important;
  }
}
@media only screen and (min-width: 768px) and (max-width: 991px){
  .ui.grid > .row > [class*="one wide tablet"].column,
  .ui.grid > .column.row > [class*="one wide tablet"].column,
  .ui.grid > [class*="one wide tablet"].column,
  .ui.column.grid > [class*="one wide tablet"].column{
    width:6.25% !important;
  }
  .ui.grid > .row > [class*="two wide tablet"].column,
  .ui.grid > .column.row > [class*="two wide tablet"].column,
  .ui.grid > [class*="two wide tablet"].column,
  .ui.column.grid > [class*="two wide tablet"].column{
    width:12.5% !important;
  }
  .ui.grid > .row > [class*="three wide tablet"].column,
  .ui.grid > .column.row > [class*="three wide tablet"].column,
  .ui.grid > [class*="three wide tablet"].column,
  .ui.column.grid > [class*="three wide tablet"].column{
    width:18.75% !important;
  }
  .ui.grid > .row > [class*="four wide tablet"].column,
  .ui.grid > .column.row > [class*="four wide tablet"].column,
  .ui.grid > [class*="four wide tablet"].column,
  .ui.column.grid > [class*="four wide tablet"].column{
    width:25% !important;
  }
  .ui.grid > .row > [class*="five wide tablet"].column,
  .ui.grid > .column.row > [class*="five wide tablet"].column,
  .ui.grid > [class*="five wide tablet"].column,
  .ui.column.grid > [class*="five wide tablet"].column{
    width:31.25% !important;
  }
  .ui.grid > .row > [class*="six wide tablet"].column,
  .ui.grid > .column.row > [class*="six wide tablet"].column,
  .ui.grid > [class*="six wide tablet"].column,
  .ui.column.grid > [class*="six wide tablet"].column{
    width:37.5% !important;
  }
  .ui.grid > .row > [class*="seven wide tablet"].column,
  .ui.grid > .column.row > [class*="seven wide tablet"].column,
  .ui.grid > [class*="seven wide tablet"].column,
  .ui.column.grid > [class*="seven wide tablet"].column{
    width:43.75% !important;
  }
  .ui.grid > .row > [class*="eight wide tablet"].column,
  .ui.grid > .column.row > [class*="eight wide tablet"].column,
  .ui.grid > [class*="eight wide tablet"].column,
  .ui.column.grid > [class*="eight wide tablet"].column{
    width:50% !important;
  }
  .ui.grid > .row > [class*="nine wide tablet"].column,
  .ui.grid > .column.row > [class*="nine wide tablet"].column,
  .ui.grid > [class*="nine wide tablet"].column,
  .ui.column.grid > [class*="nine wide tablet"].column{
    width:56.25% !important;
  }
  .ui.grid > .row > [class*="ten wide tablet"].column,
  .ui.grid > .column.row > [class*="ten wide tablet"].column,
  .ui.grid > [class*="ten wide tablet"].column,
  .ui.column.grid > [class*="ten wide tablet"].column{
    width:62.5% !important;
  }
  .ui.grid > .row > [class*="eleven wide tablet"].column,
  .ui.grid > .column.row > [class*="eleven wide tablet"].column,
  .ui.grid > [class*="eleven wide tablet"].column,
  .ui.column.grid > [class*="eleven wide tablet"].column{
    width:68.75% !important;
  }
  .ui.grid > .row > [class*="twelve wide tablet"].column,
  .ui.grid > .column.row > [class*="twelve wide tablet"].column,
  .ui.grid > [class*="twelve wide tablet"].column,
  .ui.column.grid > [class*="twelve wide tablet"].column{
    width:75% !important;
  }
  .ui.grid > .row > [class*="thirteen wide tablet"].column,
  .ui.grid > .column.row > [class*="thirteen wide tablet"].column,
  .ui.grid > [class*="thirteen wide tablet"].column,
  .ui.column.grid > [class*="thirteen wide tablet"].column{
    width:81.25% !important;
  }
  .ui.grid > .row > [class*="fourteen wide tablet"].column,
  .ui.grid > .column.row > [class*="fourteen wide tablet"].column,
  .ui.grid > [class*="fourteen wide tablet"].column,
  .ui.column.grid > [class*="fourteen wide tablet"].column{
    width:87.5% !important;
  }
  .ui.grid > .row > [class*="fifteen wide tablet"].column,
  .ui.grid > .column.row > [class*="fifteen wide tablet"].column,
  .ui.grid > [class*="fifteen wide tablet"].column,
  .ui.column.grid > [class*="fifteen wide tablet"].column{
    width:93.75% !important;
  }
  .ui.grid > .row > [class*="sixteen wide tablet"].column,
  .ui.grid > .column.row > [class*="sixteen wide tablet"].column,
  .ui.grid > [class*="sixteen wide tablet"].column,
  .ui.column.grid > [class*="sixteen wide tablet"].column{
    width:100% !important;
  }
}
@media only screen and (min-width: 992px){
  .ui.grid > .row > [class*="one wide computer"].column,
  .ui.grid > .column.row > [class*="one wide computer"].column,
  .ui.grid > [class*="one wide computer"].column,
  .ui.column.grid > [class*="one wide computer"].column{
    width:6.25% !important;
  }
  .ui.grid > .row > [class*="two wide computer"].column,
  .ui.grid > .column.row > [class*="two wide computer"].column,
  .ui.grid > [class*="two wide computer"].column,
  .ui.column.grid > [class*="two wide computer"].column{
    width:12.5% !important;
  }
  .ui.grid > .row > [class*="three wide computer"].column,
  .ui.grid > .column.row > [class*="three wide computer"].column,
  .ui.grid > [class*="three wide computer"].column,
  .ui.column.grid > [class*="three wide computer"].column{
    width:18.75% !important;
  }
  .ui.grid > .row > [class*="four wide computer"].column,
  .ui.grid > .column.row > [class*="four wide computer"].column,
  .ui.grid > [class*="four wide computer"].column,
  .ui.column.grid > [class*="four wide computer"].column{
    width:25% !important;
  }
  .ui.grid > .row > [class*="five wide computer"].column,
  .ui.grid > .column.row > [class*="five wide computer"].column,
  .ui.grid > [class*="five wide computer"].column,
  .ui.column.grid > [class*="five wide computer"].column{
    width:31.25% !important;
  }
  .ui.grid > .row > [class*="six wide computer"].column,
  .ui.grid > .column.row > [class*="six wide computer"].column,
  .ui.grid > [class*="six wide computer"].column,
  .ui.column.grid > [class*="six wide computer"].column{
    width:37.5% !important;
  }
  .ui.grid > .row > [class*="seven wide computer"].column,
  .ui.grid > .column.row > [class*="seven wide computer"].column,
  .ui.grid > [class*="seven wide computer"].column,
  .ui.column.grid > [class*="seven wide computer"].column{
    width:43.75% !important;
  }
  .ui.grid > .row > [class*="eight wide computer"].column,
  .ui.grid > .column.row > [class*="eight wide computer"].column,
  .ui.grid > [class*="eight wide computer"].column,
  .ui.column.grid > [class*="eight wide computer"].column{
    width:50% !important;
  }
  .ui.grid > .row > [class*="nine wide computer"].column,
  .ui.grid > .column.row > [class*="nine wide computer"].column,
  .ui.grid > [class*="nine wide computer"].column,
  .ui.column.grid > [class*="nine wide computer"].column{
    width:56.25% !important;
  }
  .ui.grid > .row > [class*="ten wide computer"].column,
  .ui.grid > .column.row > [class*="ten wide computer"].column,
  .ui.grid > [class*="ten wide computer"].column,
  .ui.column.grid > [class*="ten wide computer"].column{
    width:62.5% !important;
  }
  .ui.grid > .row > [class*="eleven wide computer"].column,
  .ui.grid > .column.row > [class*="eleven wide computer"].column,
  .ui.grid > [class*="eleven wide computer"].column,
  .ui.column.grid > [class*="eleven wide computer"].column{
    width:68.75% !important;
  }
  .ui.grid > .row > [class*="twelve wide computer"].column,
  .ui.grid > .column.row > [class*="twelve wide computer"].column,
  .ui.grid > [class*="twelve wide computer"].column,
  .ui.column.grid > [class*="twelve wide computer"].column{
    width:75% !important;
  }
  .ui.grid > .row > [class*="thirteen wide computer"].column,
  .ui.grid > .column.row > [class*="thirteen wide computer"].column,
  .ui.grid > [class*="thirteen wide computer"].column,
  .ui.column.grid > [class*="thirteen wide computer"].column{
    width:81.25% !important;
  }
  .ui.grid > .row > [class*="fourteen wide computer"].column,
  .ui.grid > .column.row > [class*="fourteen wide computer"].column,
  .ui.grid > [class*="fourteen wide computer"].column,
  .ui.column.grid > [class*="fourteen wide computer"].column{
    width:87.5% !important;
  }
  .ui.grid > .row > [class*="fifteen wide computer"].column,
  .ui.grid > .column.row > [class*="fifteen wide computer"].column,
  .ui.grid > [class*="fifteen wide computer"].column,
  .ui.column.grid > [class*="fifteen wide computer"].column{
    width:93.75% !important;
  }
  .ui.grid > .row > [class*="sixteen wide computer"].column,
  .ui.grid > .column.row > [class*="sixteen wide computer"].column,
  .ui.grid > [class*="sixteen wide computer"].column,
  .ui.column.grid > [class*="sixteen wide computer"].column{
    width:100% !important;
  }
}
@media only screen and (min-width: 1200px) and (max-width: 1919px){
  .ui.grid > .row > [class*="one wide large screen"].column,
  .ui.grid > .column.row > [class*="one wide large screen"].column,
  .ui.grid > [class*="one wide large screen"].column,
  .ui.column.grid > [class*="one wide large screen"].column{
    width:6.25% !important;
  }
  .ui.grid > .row > [class*="two wide large screen"].column,
  .ui.grid > .column.row > [class*="two wide large screen"].column,
  .ui.grid > [class*="two wide large screen"].column,
  .ui.column.grid > [class*="two wide large screen"].column{
    width:12.5% !important;
  }
  .ui.grid > .row > [class*="three wide large screen"].column,
  .ui.grid > .column.row > [class*="three wide large screen"].column,
  .ui.grid > [class*="three wide large screen"].column,
  .ui.column.grid > [class*="three wide large screen"].column{
    width:18.75% !important;
  }
  .ui.grid > .row > [class*="four wide large screen"].column,
  .ui.grid > .column.row > [class*="four wide large screen"].column,
  .ui.grid > [class*="four wide large screen"].column,
  .ui.column.grid > [class*="four wide large screen"].column{
    width:25% !important;
  }
  .ui.grid > .row > [class*="five wide large screen"].column,
  .ui.grid > .column.row > [class*="five wide large screen"].column,
  .ui.grid > [class*="five wide large screen"].column,
  .ui.column.grid > [class*="five wide large screen"].column{
    width:31.25% !important;
  }
  .ui.grid > .row > [class*="six wide large screen"].column,
  .ui.grid > .column.row > [class*="six wide large screen"].column,
  .ui.grid > [class*="six wide large screen"].column,
  .ui.column.grid > [class*="six wide large screen"].column{
    width:37.5% !important;
  }
  .ui.grid > .row > [class*="seven wide large screen"].column,
  .ui.grid > .column.row > [class*="seven wide large screen"].column,
  .ui.grid > [class*="seven wide large screen"].column,
  .ui.column.grid > [class*="seven wide large screen"].column{
    width:43.75% !important;
  }
  .ui.grid > .row > [class*="eight wide large screen"].column,
  .ui.grid > .column.row > [class*="eight wide large screen"].column,
  .ui.grid > [class*="eight wide large screen"].column,
  .ui.column.grid > [class*="eight wide large screen"].column{
    width:50% !important;
  }
  .ui.grid > .row > [class*="nine wide large screen"].column,
  .ui.grid > .column.row > [class*="nine wide large screen"].column,
  .ui.grid > [class*="nine wide large screen"].column,
  .ui.column.grid > [class*="nine wide large screen"].column{
    width:56.25% !important;
  }
  .ui.grid > .row > [class*="ten wide large screen"].column,
  .ui.grid > .column.row > [class*="ten wide large screen"].column,
  .ui.grid > [class*="ten wide large screen"].column,
  .ui.column.grid > [class*="ten wide large screen"].column{
    width:62.5% !important;
  }
  .ui.grid > .row > [class*="eleven wide large screen"].column,
  .ui.grid > .column.row > [class*="eleven wide large screen"].column,
  .ui.grid > [class*="eleven wide large screen"].column,
  .ui.column.grid > [class*="eleven wide large screen"].column{
    width:68.75% !important;
  }
  .ui.grid > .row > [class*="twelve wide large screen"].column,
  .ui.grid > .column.row > [class*="twelve wide large screen"].column,
  .ui.grid > [class*="twelve wide large screen"].column,
  .ui.column.grid > [class*="twelve wide large screen"].column{
    width:75% !important;
  }
  .ui.grid > .row > [class*="thirteen wide large screen"].column,
  .ui.grid > .column.row > [class*="thirteen wide large screen"].column,
  .ui.grid > [class*="thirteen wide large screen"].column,
  .ui.column.grid > [class*="thirteen wide large screen"].column{
    width:81.25% !important;
  }
  .ui.grid > .row > [class*="fourteen wide large screen"].column,
  .ui.grid > .column.row > [class*="fourteen wide large screen"].column,
  .ui.grid > [class*="fourteen wide large screen"].column,
  .ui.column.grid > [class*="fourteen wide large screen"].column{
    width:87.5% !important;
  }
  .ui.grid > .row > [class*="fifteen wide large screen"].column,
  .ui.grid > .column.row > [class*="fifteen wide large screen"].column,
  .ui.grid > [class*="fifteen wide large screen"].column,
  .ui.column.grid > [class*="fifteen wide large screen"].column{
    width:93.75% !important;
  }
  .ui.grid > .row > [class*="sixteen wide large screen"].column,
  .ui.grid > .column.row > [class*="sixteen wide large screen"].column,
  .ui.grid > [class*="sixteen wide large screen"].column,
  .ui.column.grid > [class*="sixteen wide large screen"].column{
    width:100% !important;
  }
}
@media only screen and (min-width: 1920px){
  .ui.grid > .row > [class*="one wide widescreen"].column,
  .ui.grid > .column.row > [class*="one wide widescreen"].column,
  .ui.grid > [class*="one wide widescreen"].column,
  .ui.column.grid > [class*="one wide widescreen"].column{
    width:6.25% !important;
  }
  .ui.grid > .row > [class*="two wide widescreen"].column,
  .ui.grid > .column.row > [class*="two wide widescreen"].column,
  .ui.grid > [class*="two wide widescreen"].column,
  .ui.column.grid > [class*="two wide widescreen"].column{
    width:12.5% !important;
  }
  .ui.grid > .row > [class*="three wide widescreen"].column,
  .ui.grid > .column.row > [class*="three wide widescreen"].column,
  .ui.grid > [class*="three wide widescreen"].column,
  .ui.column.grid > [class*="three wide widescreen"].column{
    width:18.75% !important;
  }
  .ui.grid > .row > [class*="four wide widescreen"].column,
  .ui.grid > .column.row > [class*="four wide widescreen"].column,
  .ui.grid > [class*="four wide widescreen"].column,
  .ui.column.grid > [class*="four wide widescreen"].column{
    width:25% !important;
  }
  .ui.grid > .row > [class*="five wide widescreen"].column,
  .ui.grid > .column.row > [class*="five wide widescreen"].column,
  .ui.grid > [class*="five wide widescreen"].column,
  .ui.column.grid > [class*="five wide widescreen"].column{
    width:31.25% !important;
  }
  .ui.grid > .row > [class*="six wide widescreen"].column,
  .ui.grid > .column.row > [class*="six wide widescreen"].column,
  .ui.grid > [class*="six wide widescreen"].column,
  .ui.column.grid > [class*="six wide widescreen"].column{
    width:37.5% !important;
  }
  .ui.grid > .row > [class*="seven wide widescreen"].column,
  .ui.grid > .column.row > [class*="seven wide widescreen"].column,
  .ui.grid > [class*="seven wide widescreen"].column,
  .ui.column.grid > [class*="seven wide widescreen"].column{
    width:43.75% !important;
  }
  .ui.grid > .row > [class*="eight wide widescreen"].column,
  .ui.grid > .column.row > [class*="eight wide widescreen"].column,
  .ui.grid > [class*="eight wide widescreen"].column,
  .ui.column.grid > [class*="eight wide widescreen"].column{
    width:50% !important;
  }
  .ui.grid > .row > [class*="nine wide widescreen"].column,
  .ui.grid > .column.row > [class*="nine wide widescreen"].column,
  .ui.grid > [class*="nine wide widescreen"].column,
  .ui.column.grid > [class*="nine wide widescreen"].column{
    width:56.25% !important;
  }
  .ui.grid > .row > [class*="ten wide widescreen"].column,
  .ui.grid > .column.row > [class*="ten wide widescreen"].column,
  .ui.grid > [class*="ten wide widescreen"].column,
  .ui.column.grid > [class*="ten wide widescreen"].column{
    width:62.5% !important;
  }
  .ui.grid > .row > [class*="eleven wide widescreen"].column,
  .ui.grid > .column.row > [class*="eleven wide widescreen"].column,
  .ui.grid > [class*="eleven wide widescreen"].column,
  .ui.column.grid > [class*="eleven wide widescreen"].column{
    width:68.75% !important;
  }
  .ui.grid > .row > [class*="twelve wide widescreen"].column,
  .ui.grid > .column.row > [class*="twelve wide widescreen"].column,
  .ui.grid > [class*="twelve wide widescreen"].column,
  .ui.column.grid > [class*="twelve wide widescreen"].column{
    width:75% !important;
  }
  .ui.grid > .row > [class*="thirteen wide widescreen"].column,
  .ui.grid > .column.row > [class*="thirteen wide widescreen"].column,
  .ui.grid > [class*="thirteen wide widescreen"].column,
  .ui.column.grid > [class*="thirteen wide widescreen"].column{
    width:81.25% !important;
  }
  .ui.grid > .row > [class*="fourteen wide widescreen"].column,
  .ui.grid > .column.row > [class*="fourteen wide widescreen"].column,
  .ui.grid > [class*="fourteen wide widescreen"].column,
  .ui.column.grid > [class*="fourteen wide widescreen"].column{
    width:87.5% !important;
  }
  .ui.grid > .row > [class*="fifteen wide widescreen"].column,
  .ui.grid > .column.row > [class*="fifteen wide widescreen"].column,
  .ui.grid > [class*="fifteen wide widescreen"].column,
  .ui.column.grid > [class*="fifteen wide widescreen"].column{
    width:93.75% !important;
  }
  .ui.grid > .row > [class*="sixteen wide widescreen"].column,
  .ui.grid > .column.row > [class*="sixteen wide widescreen"].column,
  .ui.grid > [class*="sixteen wide widescreen"].column,
  .ui.column.grid > [class*="sixteen wide widescreen"].column{
    width:100% !important;
  }
}
.ui.centered.grid,
.ui.centered.grid > .row,
.ui.grid > .centered.row{
  text-align:center;
  justify-content:center;
}
.ui.centered.grid > .column:not(.aligned):not(.justified):not(.row),
.ui.centered.grid > .row > .column:not(.aligned):not(.justified),
.ui.grid .centered.row > .column:not(.aligned):not(.justified){
  text-align:left;
}
.ui.grid > .centered.column,
.ui.grid > .row > .centered.column{
  display:block;
  margin-left:auto;
  margin-right:auto;
}
.ui.relaxed.grid > .column:not(.row),
.ui.relaxed.grid > .row > .column,
.ui.grid > .relaxed.row > .column{
  padding-left:1.5rem;
  padding-right:1.5rem;
}
.ui[class*="very relaxed"].grid > .column:not(.row),
.ui[class*="very relaxed"].grid > .row > .column,
.ui.grid > [class*="very relaxed"].row > .column{
  padding-left:2.5rem;
  padding-right:2.5rem;
}
.ui.relaxed.grid .row + .ui.divider,
.ui.grid .relaxed.row + .ui.divider{
  margin-left:1.5rem;
  margin-right:1.5rem;
}
.ui[class*="very relaxed"].grid .row + .ui.divider,
.ui.grid [class*="very relaxed"].row + .ui.divider{
  margin-left:2.5rem;
  margin-right:2.5rem;
}
.ui.padded.grid:not(.vertically):not(.horizontally){
  margin:0em !important;
}
[class*="horizontally padded"].ui.grid{
  margin-left:0em !important;
  margin-right:0em !important;
}
[class*="vertically padded"].ui.grid{
  margin-top:0em !important;
  margin-bottom:0em !important;
}
.ui.grid [class*="left floated"].column{
  margin-right:auto;
}
.ui.grid [class*="right floated"].column{
  margin-left:auto;
}
.ui.divided.grid:not([class*="vertically divided"]) > .column:not(.row),
.ui.divided.grid:not([class*="vertically divided"]) > .row > .column{
  box-shadow:-1px 0px 0px 0px rgba(34, 36, 38, 0.15);
}
.ui[class*="vertically divided"].grid > .column:not(.row),
.ui[class*="vertically divided"].grid > .row > .column{
  margin-top:1rem;
  margin-bottom:1rem;
  padding-top:0rem;
  padding-bottom:0rem;
}
.ui[class*="vertically divided"].grid > .row{
  margin-top:0em;
  margin-bottom:0em;
}
.ui.divided.grid:not([class*="vertically divided"]) > .column:first-child,
.ui.divided.grid:not([class*="vertically divided"]) > .row > .column:first-child{
  box-shadow:none;
}
.ui[class*="vertically divided"].grid > .row:first-child > .column{
  margin-top:0em;
}
.ui.grid > .divided.row > .column{
  box-shadow:-1px 0px 0px 0px rgba(34, 36, 38, 0.15);
}
.ui.grid > .divided.row > .column:first-child{
  box-shadow:none;
}
.ui[class*="vertically divided"].grid > .row{
  position:relative;
}
.ui[class*="vertically divided"].grid > .row:before{
  position:absolute;
  content:"";
  top:0em;
  left:0px;
  width:calc(100% - 2rem);
  height:1px;
  margin:0% 1rem;
  box-shadow:0px -1px 0px 0px rgba(34, 36, 38, 0.15);
}
[class*="horizontally padded"].ui.divided.grid,
.ui.padded.divided.grid:not(.vertically):not(.horizontally){
  width:100%;
}
.ui[class*="vertically divided"].grid > .row:first-child:before{
  box-shadow:none;
}
.ui.inverted.divided.grid:not([class*="vertically divided"]) > .column:not(.row),
.ui.inverted.divided.grid:not([class*="vertically divided"]) > .row > .column{
  box-shadow:-1px 0px 0px 0px rgba(255, 255, 255, 0.1);
}
.ui.inverted.divided.grid:not([class*="vertically divided"]) > .column:not(.row):first-child,
.ui.inverted.divided.grid:not([class*="vertically divided"]) > .row > .column:first-child{
  box-shadow:none;
}
.ui.inverted[class*="vertically divided"].grid > .row:before{
  box-shadow:0px -1px 0px 0px rgba(255, 255, 255, 0.1);
}
.ui.relaxed[class*="vertically divided"].grid > .row:before{
  margin-left:1.5rem;
  margin-right:1.5rem;
  width:calc(100% - 3rem);
}
.ui[class*="very relaxed"][class*="vertically divided"].grid > .row:before{
  margin-left:5rem;
  margin-right:5rem;
  width:calc(100% - 5rem);
}
.ui.celled.grid{
  width:100%;
  margin:1em 0em;
  box-shadow:0px 0px 0px 1px #D4D4D5;
}
.ui.celled.grid > .row{
  width:100% !important;
  margin:0em;
  padding:0em;
  box-shadow:0px -1px 0px 0px #D4D4D5;
}
.ui.celled.grid > .column:not(.row),
.ui.celled.grid > .row > .column{
  box-shadow:-1px 0px 0px 0px #D4D4D5;
}
.ui.celled.grid > .column:first-child,
.ui.celled.grid > .row > .column:first-child{
  box-shadow:none;
}
.ui.celled.grid > .column:not(.row),
.ui.celled.grid > .row > .column{
  padding:1em;
}
.ui.relaxed.celled.grid > .column:not(.row),
.ui.relaxed.celled.grid > .row > .column{
  padding:1.5em;
}
.ui[class*="very relaxed"].celled.grid > .column:not(.row),
.ui[class*="very relaxed"].celled.grid > .row > .column{
  padding:2em;
}
.ui[class*="internally celled"].grid{
  box-shadow:none;
  margin:0em;
}
.ui[class*="internally celled"].grid > .row:first-child{
  box-shadow:none;
}
.ui[class*="internally celled"].grid > .row > .column:first-child{
  box-shadow:none;
}
.ui[class*="top aligned"].grid > .column:not(.row),
.ui[class*="top aligned"].grid > .row > .column,
.ui.grid > [class*="top aligned"].row > .column,
.ui.grid > [class*="top aligned"].column:not(.row),
.ui.grid > .row > [class*="top aligned"].column{
  flex-direction:column;
  vertical-align:top;
  align-self:flex-start !important;
}
.ui[class*="middle aligned"].grid > .column:not(.row),
.ui[class*="middle aligned"].grid > .row > .column,
.ui.grid > [class*="middle aligned"].row > .column,
.ui.grid > [class*="middle aligned"].column:not(.row),
.ui.grid > .row > [class*="middle aligned"].column{
  flex-direction:column;
  vertical-align:middle;
  align-self:center !important;
}
.ui[class*="bottom aligned"].grid > .column:not(.row),
.ui[class*="bottom aligned"].grid > .row > .column,
.ui.grid > [class*="bottom aligned"].row > .column,
.ui.grid > [class*="bottom aligned"].column:not(.row),
.ui.grid > .row > [class*="bottom aligned"].column{
  flex-direction:column;
  vertical-align:bottom;
  align-self:flex-end !important;
}
.ui.stretched.grid > .row > .column,
.ui.stretched.grid > .column,
.ui.grid > .stretched.row > .column,
.ui.grid > .stretched.column:not(.row),
.ui.grid > .row > .stretched.column{
  display:inline-flex !important;
  align-self:stretch;
  flex-direction:column;
}
.ui.stretched.grid > .row > .column > *,
.ui.stretched.grid > .column > *,
.ui.grid > .stretched.row > .column > *,
.ui.grid > .stretched.column:not(.row) > *,
.ui.grid > .row > .stretched.column > *{
  flex-grow:1;
}
.ui[class*="left aligned"].grid > .column,
.ui[class*="left aligned"].grid > .row > .column,
.ui.grid > [class*="left aligned"].row > .column,
.ui.grid > [class*="left aligned"].column.column,
.ui.grid > .row > [class*="left aligned"].column.column{
  text-align:left;
  align-self:inherit;
}
.ui[class*="center aligned"].grid > .column,
.ui[class*="center aligned"].grid > .row > .column,
.ui.grid > [class*="center aligned"].row > .column,
.ui.grid > [class*="center aligned"].column.column,
.ui.grid > .row > [class*="center aligned"].column.column{
  text-align:center;
  align-self:inherit;
}
.ui[class*="center aligned"].grid{
  justify-content:center;
}
.ui[class*="right aligned"].grid > .column,
.ui[class*="right aligned"].grid > .row > .column,
.ui.grid > [class*="right aligned"].row > .column,
.ui.grid > [class*="right aligned"].column.column,
.ui.grid > .row > [class*="right aligned"].column.column{
  text-align:right;
  align-self:inherit;
}
.ui.justified.grid > .column,
.ui.justified.grid > .row > .column,
.ui.grid > .justified.row > .column,
.ui.grid > .justified.column.column,
.ui.grid > .row > .justified.column.column{
  text-align:justify;
  -webkit-hyphens:auto;
      -ms-hyphens:auto;
          hyphens:auto;
}
.ui.grid > .row > .red.column,
.ui.grid > .row > .orange.column,
.ui.grid > .row > .yellow.column,
.ui.grid > .row > .olive.column,
.ui.grid > .row > .green.column,
.ui.grid > .row > .teal.column,
.ui.grid > .row > .blue.column,
.ui.grid > .row > .violet.column,
.ui.grid > .row > .purple.column,
.ui.grid > .row > .pink.column,
.ui.grid > .row > .brown.column,
.ui.grid > .row > .grey.column,
.ui.grid > .row > .black.column{
  margin-top:-1rem;
  margin-bottom:-1rem;
  padding-top:1rem;
  padding-bottom:1rem;
}
.ui.grid > .red.row,
.ui.grid > .red.column,
.ui.grid > .row > .red.column{
  background-color:#de3a3e !important;
  color:#ffffff;
}
.ui.grid > .orange.row,
.ui.grid > .orange.column,
.ui.grid > .row > .orange.column{
  background-color:#ff9533 !important;
  color:#ffffff;
}
.ui.grid > .yellow.row,
.ui.grid > .yellow.column,
.ui.grid > .row > .yellow.column{
  background-color:#FBBD08 !important;
  color:#ffffff;
}
.ui.grid > .olive.row,
.ui.grid > .olive.column,
.ui.grid > .row > .olive.column{
  background-color:#B5CC18 !important;
  color:#ffffff;
}
.ui.grid > .green.row,
.ui.grid > .green.column,
.ui.grid > .row > .green.column{
  background-color:#19a531 !important;
  color:#ffffff;
}
.ui.grid > .teal.row,
.ui.grid > .teal.column,
.ui.grid > .row > .teal.column{
  background-color:#00B5AD !important;
  color:#ffffff;
}
.ui.grid > .blue.row,
.ui.grid > .blue.column,
.ui.grid > .row > .blue.column{
  background-color:#3f51b5 !important;
  color:#ffffff;
}
.ui.grid > .violet.row,
.ui.grid > .violet.column,
.ui.grid > .row > .violet.column{
  background-color:#6435C9 !important;
  color:#ffffff;
}
.ui.grid > .purple.row,
.ui.grid > .purple.column,
.ui.grid > .row > .purple.column{
  background-color:#A333C8 !important;
  color:#ffffff;
}
.ui.grid > .pink.row,
.ui.grid > .pink.column,
.ui.grid > .row > .pink.column{
  background-color:#E03997 !important;
  color:#ffffff;
}
.ui.grid > .brown.row,
.ui.grid > .brown.column,
.ui.grid > .row > .brown.column{
  background-color:#A5673F !important;
  color:#ffffff;
}
.ui.grid > .grey.row,
.ui.grid > .grey.column,
.ui.grid > .row > .grey.column{
  background-color:#767676 !important;
  color:#ffffff;
}
.ui.grid > .black.row,
.ui.grid > .black.column,
.ui.grid > .row > .black.column{
  background-color:#000000 !important;
  color:#ffffff;
}
.ui[class*="equal width"].grid > .column:not(.row),
.ui[class*="equal width"].grid > .row > .column,
.ui.grid > [class*="equal width"].row > .column{
  display:inline-block;
  flex-grow:1;
}
.ui[class*="equal width"].grid > .wide.column,
.ui[class*="equal width"].grid > .row > .wide.column,
.ui.grid > [class*="equal width"].row > .wide.column{
  flex-grow:0;
}
@media only screen and (max-width: 767px){
  .ui[class*="mobile reversed"].grid,
  .ui[class*="mobile reversed"].grid > .row,
  .ui.grid > [class*="mobile reversed"].row{
    flex-direction:row-reverse;
  }
  .ui[class*="mobile vertically reversed"].grid,
  .ui.stackable[class*="mobile reversed"]{
    flex-direction:column-reverse;
  }
  .ui[class*="mobile reversed"].divided.grid:not([class*="vertically divided"]) > .column:first-child,
  .ui[class*="mobile reversed"].divided.grid:not([class*="vertically divided"]) > .row > .column:first-child{
    box-shadow:-1px 0px 0px 0px rgba(34, 36, 38, 0.15);
  }
  .ui[class*="mobile reversed"].divided.grid:not([class*="vertically divided"]) > .column:last-child,
  .ui[class*="mobile reversed"].divided.grid:not([class*="vertically divided"]) > .row > .column:last-child{
    box-shadow:none;
  }
  .ui.grid[class*="vertically divided"][class*="mobile vertically reversed"] > .row:first-child:before{
    box-shadow:0px -1px 0px 0px rgba(34, 36, 38, 0.15);
  }
  .ui.grid[class*="vertically divided"][class*="mobile vertically reversed"] > .row:last-child:before{
    box-shadow:none;
  }
  .ui[class*="mobile reversed"].celled.grid > .row > .column:first-child{
    box-shadow:-1px 0px 0px 0px #D4D4D5;
  }
  .ui[class*="mobile reversed"].celled.grid > .row > .column:last-child{
    box-shadow:none;
  }
}
@media only screen and (min-width: 768px) and (max-width: 991px){
  .ui[class*="tablet reversed"].grid,
  .ui[class*="tablet reversed"].grid > .row,
  .ui.grid > [class*="tablet reversed"].row{
    flex-direction:row-reverse;
  }
  .ui[class*="tablet vertically reversed"].grid{
    flex-direction:column-reverse;
  }
  .ui[class*="tablet reversed"].divided.grid:not([class*="vertically divided"]) > .column:first-child,
  .ui[class*="tablet reversed"].divided.grid:not([class*="vertically divided"]) > .row > .column:first-child{
    box-shadow:-1px 0px 0px 0px rgba(34, 36, 38, 0.15);
  }
  .ui[class*="tablet reversed"].divided.grid:not([class*="vertically divided"]) > .column:last-child,
  .ui[class*="tablet reversed"].divided.grid:not([class*="vertically divided"]) > .row > .column:last-child{
    box-shadow:none;
  }
  .ui.grid[class*="vertically divided"][class*="tablet vertically reversed"] > .row:first-child:before{
    box-shadow:0px -1px 0px 0px rgba(34, 36, 38, 0.15);
  }
  .ui.grid[class*="vertically divided"][class*="tablet vertically reversed"] > .row:last-child:before{
    box-shadow:none;
  }
  .ui[class*="tablet reversed"].celled.grid > .row > .column:first-child{
    box-shadow:-1px 0px 0px 0px #D4D4D5;
  }
  .ui[class*="tablet reversed"].celled.grid > .row > .column:last-child{
    box-shadow:none;
  }
}
@media only screen and (min-width: 992px){
  .ui[class*="computer reversed"].grid,
  .ui[class*="computer reversed"].grid > .row,
  .ui.grid > [class*="computer reversed"].row{
    flex-direction:row-reverse;
  }
  .ui[class*="computer vertically reversed"].grid{
    flex-direction:column-reverse;
  }
  .ui[class*="computer reversed"].divided.grid:not([class*="vertically divided"]) > .column:first-child,
  .ui[class*="computer reversed"].divided.grid:not([class*="vertically divided"]) > .row > .column:first-child{
    box-shadow:-1px 0px 0px 0px rgba(34, 36, 38, 0.15);
  }
  .ui[class*="computer reversed"].divided.grid:not([class*="vertically divided"]) > .column:last-child,
  .ui[class*="computer reversed"].divided.grid:not([class*="vertically divided"]) > .row > .column:last-child{
    box-shadow:none;
  }
  .ui.grid[class*="vertically divided"][class*="computer vertically reversed"] > .row:first-child:before{
    box-shadow:0px -1px 0px 0px rgba(34, 36, 38, 0.15);
  }
  .ui.grid[class*="vertically divided"][class*="computer vertically reversed"] > .row:last-child:before{
    box-shadow:none;
  }
  .ui[class*="computer reversed"].celled.grid > .row > .column:first-child{
    box-shadow:-1px 0px 0px 0px #D4D4D5;
  }
  .ui[class*="computer reversed"].celled.grid > .row > .column:last-child{
    box-shadow:none;
  }
}
@media only screen and (min-width: 768px) and (max-width: 991px){
  .ui.doubling.grid{
    width:auto;
  }
  .ui.grid > .doubling.row,
  .ui.doubling.grid > .row{
    margin:0em !important;
    padding:0em !important;
  }
  .ui.grid > .doubling.row > .column,
  .ui.doubling.grid > .row > .column{
    display:inline-block !important;
    padding-top:1rem !important;
    padding-bottom:1rem !important;
    box-shadow:none !important;
    margin:0em;
  }
  .ui[class*="two column"].doubling.grid > .row > .column,
  .ui[class*="two column"].doubling.grid > .column:not(.row),
  .ui.grid > [class*="two column"].doubling.row.row > .column{
    width:100% !important;
  }
  .ui[class*="three column"].doubling.grid > .row > .column,
  .ui[class*="three column"].doubling.grid > .column:not(.row),
  .ui.grid > [class*="three column"].doubling.row.row > .column{
    width:50% !important;
  }
  .ui[class*="four column"].doubling.grid > .row > .column,
  .ui[class*="four column"].doubling.grid > .column:not(.row),
  .ui.grid > [class*="four column"].doubling.row.row > .column{
    width:50% !important;
  }
  .ui[class*="five column"].doubling.grid > .row > .column,
  .ui[class*="five column"].doubling.grid > .column:not(.row),
  .ui.grid > [class*="five column"].doubling.row.row > .column{
    width:33.33333333% !important;
  }
  .ui[class*="six column"].doubling.grid > .row > .column,
  .ui[class*="six column"].doubling.grid > .column:not(.row),
  .ui.grid > [class*="six column"].doubling.row.row > .column{
    width:33.33333333% !important;
  }
  .ui[class*="seven column"].doubling.grid > .row > .column,
  .ui[class*="seven column"].doubling.grid > .column:not(.row),
  .ui.grid > [class*="seven column"].doubling.row.row > .column{
    width:33.33333333% !important;
  }
  .ui[class*="eight column"].doubling.grid > .row > .column,
  .ui[class*="eight column"].doubling.grid > .column:not(.row),
  .ui.grid > [class*="eight column"].doubling.row.row > .column{
    width:25% !important;
  }
  .ui[class*="nine column"].doubling.grid > .row > .column,
  .ui[class*="nine column"].doubling.grid > .column:not(.row),
  .ui.grid > [class*="nine column"].doubling.row.row > .column{
    width:25% !important;
  }
  .ui[class*="ten column"].doubling.grid > .row > .column,
  .ui[class*="ten column"].doubling.grid > .column:not(.row),
  .ui.grid > [class*="ten column"].doubling.row.row > .column{
    width:20% !important;
  }
  .ui[class*="eleven column"].doubling.grid > .row > .column,
  .ui[class*="eleven column"].doubling.grid > .column:not(.row),
  .ui.grid > [class*="eleven column"].doubling.row.row > .column{
    width:20% !important;
  }
  .ui[class*="twelve column"].doubling.grid > .row > .column,
  .ui[class*="twelve column"].doubling.grid > .column:not(.row),
  .ui.grid > [class*="twelve column"].doubling.row.row > .column{
    width:16.66666667% !important;
  }
  .ui[class*="thirteen column"].doubling.grid > .row > .column,
  .ui[class*="thirteen column"].doubling.grid > .column:not(.row),
  .ui.grid > [class*="thirteen column"].doubling.row.row > .column{
    width:16.66666667% !important;
  }
  .ui[class*="fourteen column"].doubling.grid > .row > .column,
  .ui[class*="fourteen column"].doubling.grid > .column:not(.row),
  .ui.grid > [class*="fourteen column"].doubling.row.row > .column{
    width:14.28571429% !important;
  }
  .ui[class*="fifteen column"].doubling.grid > .row > .column,
  .ui[class*="fifteen column"].doubling.grid > .column:not(.row),
  .ui.grid > [class*="fifteen column"].doubling.row.row > .column{
    width:14.28571429% !important;
  }
  .ui[class*="sixteen column"].doubling.grid > .row > .column,
  .ui[class*="sixteen column"].doubling.grid > .column:not(.row),
  .ui.grid > [class*="sixteen column"].doubling.row.row > .column{
    width:12.5% !important;
  }
}
@media only screen and (max-width: 767px){
  .ui.grid > .doubling.row,
  .ui.doubling.grid > .row{
    margin:0em !important;
    padding:0em !important;
  }
  .ui.grid > .doubling.row > .column,
  .ui.doubling.grid > .row > .column{
    padding-top:1rem !important;
    padding-bottom:1rem !important;
    margin:0em !important;
    box-shadow:none !important;
  }
  .ui[class*="two column"].doubling:not(.stackable).grid > .row > .column,
  .ui[class*="two column"].doubling:not(.stackable).grid > .column:not(.row),
  .ui.grid > [class*="two column"].doubling:not(.stackable).row.row > .column{
    width:100% !important;
  }
  .ui[class*="three column"].doubling:not(.stackable).grid > .row > .column,
  .ui[class*="three column"].doubling:not(.stackable).grid > .column:not(.row),
  .ui.grid > [class*="three column"].doubling:not(.stackable).row.row > .column{
    width:50% !important;
  }
  .ui[class*="four column"].doubling:not(.stackable).grid > .row > .column,
  .ui[class*="four column"].doubling:not(.stackable).grid > .column:not(.row),
  .ui.grid > [class*="four column"].doubling:not(.stackable).row.row > .column{
    width:50% !important;
  }
  .ui[class*="five column"].doubling:not(.stackable).grid > .row > .column,
  .ui[class*="five column"].doubling:not(.stackable).grid > .column:not(.row),
  .ui.grid > [class*="five column"].doubling:not(.stackable).row.row > .column{
    width:50% !important;
  }
  .ui[class*="six column"].doubling:not(.stackable).grid > .row > .column,
  .ui[class*="six column"].doubling:not(.stackable).grid > .column:not(.row),
  .ui.grid > [class*="six column"].doubling:not(.stackable).row.row > .column{
    width:50% !important;
  }
  .ui[class*="seven column"].doubling:not(.stackable).grid > .row > .column,
  .ui[class*="seven column"].doubling:not(.stackable).grid > .column:not(.row),
  .ui.grid > [class*="seven column"].doubling:not(.stackable).row.row > .column{
    width:50% !important;
  }
  .ui[class*="eight column"].doubling:not(.stackable).grid > .row > .column,
  .ui[class*="eight column"].doubling:not(.stackable).grid > .column:not(.row),
  .ui.grid > [class*="eight column"].doubling:not(.stackable).row.row > .column{
    width:50% !important;
  }
  .ui[class*="nine column"].doubling:not(.stackable).grid > .row > .column,
  .ui[class*="nine column"].doubling:not(.stackable).grid > .column:not(.row),
  .ui.grid > [class*="nine column"].doubling:not(.stackable).row.row > .column{
    width:33.33333333% !important;
  }
  .ui[class*="ten column"].doubling:not(.stackable).grid > .row > .column,
  .ui[class*="ten column"].doubling:not(.stackable).grid > .column:not(.row),
  .ui.grid > [class*="ten column"].doubling:not(.stackable).row.row > .column{
    width:33.33333333% !important;
  }
  .ui[class*="eleven column"].doubling:not(.stackable).grid > .row > .column,
  .ui[class*="eleven column"].doubling:not(.stackable).grid > .column:not(.row),
  .ui.grid > [class*="eleven column"].doubling:not(.stackable).row.row > .column{
    width:33.33333333% !important;
  }
  .ui[class*="twelve column"].doubling:not(.stackable).grid > .row > .column,
  .ui[class*="twelve column"].doubling:not(.stackable).grid > .column:not(.row),
  .ui.grid > [class*="twelve column"].doubling:not(.stackable).row.row > .column{
    width:33.33333333% !important;
  }
  .ui[class*="thirteen column"].doubling:not(.stackable).grid > .row > .column,
  .ui[class*="thirteen column"].doubling:not(.stackable).grid > .column:not(.row),
  .ui.grid > [class*="thirteen column"].doubling:not(.stackable).row.row > .column{
    width:33.33333333% !important;
  }
  .ui[class*="fourteen column"].doubling:not(.stackable).grid > .row > .column,
  .ui[class*="fourteen column"].doubling:not(.stackable).grid > .column:not(.row),
  .ui.grid > [class*="fourteen column"].doubling:not(.stackable).row.row > .column{
    width:25% !important;
  }
  .ui[class*="fifteen column"].doubling:not(.stackable).grid > .row > .column,
  .ui[class*="fifteen column"].doubling:not(.stackable).grid > .column:not(.row),
  .ui.grid > [class*="fifteen column"].doubling:not(.stackable).row.row > .column{
    width:25% !important;
  }
  .ui[class*="sixteen column"].doubling:not(.stackable).grid > .row > .column,
  .ui[class*="sixteen column"].doubling:not(.stackable).grid > .column:not(.row),
  .ui.grid > [class*="sixteen column"].doubling:not(.stackable).row.row > .column{
    width:25% !important;
  }
}
@media only screen and (max-width: 767px){
  .ui.stackable.grid{
    width:auto;
    margin-left:0em !important;
    margin-right:0em !important;
  }
  .ui.stackable.grid > .row > .wide.column,
  .ui.stackable.grid > .wide.column,
  .ui.stackable.grid > .column.grid > .column,
  .ui.stackable.grid > .column.row > .column,
  .ui.stackable.grid > .row > .column,
  .ui.stackable.grid > .column:not(.row),
  .ui.grid > .stackable.stackable.row > .column{
    width:100% !important;
    margin:0em 0em !important;
    box-shadow:none !important;
    padding:1rem 1rem !important;
  }
  .ui.stackable.grid:not(.vertically) > .row{
    margin:0em;
    padding:0em;
  }
  .ui.container > .ui.stackable.grid > .column,
  .ui.container > .ui.stackable.grid > .row > .column{
    padding-left:0em !important;
    padding-right:0em !important;
  }
  .ui.grid .ui.stackable.grid,
  .ui.segment:not(.vertical) .ui.stackable.page.grid{
    margin-left:-1rem !important;
    margin-right:-1rem !important;
  }
  .ui.stackable.divided.grid > .row:first-child > .column:first-child,
  .ui.stackable.celled.grid > .row:first-child > .column:first-child,
  .ui.stackable.divided.grid > .column:not(.row):first-child,
  .ui.stackable.celled.grid > .column:not(.row):first-child{
    border-top:none !important;
  }
  .ui.inverted.stackable.celled.grid > .column:not(.row),
  .ui.inverted.stackable.divided.grid > .column:not(.row),
  .ui.inverted.stackable.celled.grid > .row > .column,
  .ui.inverted.stackable.divided.grid > .row > .column{
    border-top:1px solid rgba(255, 255, 255, 0.1);
  }
  .ui.stackable.celled.grid > .column:not(.row),
  .ui.stackable.divided:not(.vertically).grid > .column:not(.row),
  .ui.stackable.celled.grid > .row > .column,
  .ui.stackable.divided:not(.vertically).grid > .row > .column{
    border-top:1px solid rgba(34, 36, 38, 0.15);
    box-shadow:none !important;
    padding-top:2rem !important;
    padding-bottom:2rem !important;
  }
  .ui.stackable.celled.grid > .row{
    box-shadow:none !important;
  }
  .ui.stackable.divided:not(.vertically).grid > .column:not(.row),
  .ui.stackable.divided:not(.vertically).grid > .row > .column{
    padding-left:0em !important;
    padding-right:0em !important;
  }
}
@media only screen and (max-width: 767px){
  .ui[class*="tablet only"].grid.grid.grid:not(.mobile),
  .ui.grid.grid.grid > [class*="tablet only"].row:not(.mobile),
  .ui.grid.grid.grid > [class*="tablet only"].column:not(.mobile),
  .ui.grid.grid.grid > .row > [class*="tablet only"].column:not(.mobile){
    display:none !important;
  }
  .ui[class*="computer only"].grid.grid.grid:not(.mobile),
  .ui.grid.grid.grid > [class*="computer only"].row:not(.mobile),
  .ui.grid.grid.grid > [class*="computer only"].column:not(.mobile),
  .ui.grid.grid.grid > .row > [class*="computer only"].column:not(.mobile){
    display:none !important;
  }
  .ui[class*="large screen only"].grid.grid.grid:not(.mobile),
  .ui.grid.grid.grid > [class*="large screen only"].row:not(.mobile),
  .ui.grid.grid.grid > [class*="large screen only"].column:not(.mobile),
  .ui.grid.grid.grid > .row > [class*="large screen only"].column:not(.mobile){
    display:none !important;
  }
  .ui[class*="widescreen only"].grid.grid.grid:not(.mobile),
  .ui.grid.grid.grid > [class*="widescreen only"].row:not(.mobile),
  .ui.grid.grid.grid > [class*="widescreen only"].column:not(.mobile),
  .ui.grid.grid.grid > .row > [class*="widescreen only"].column:not(.mobile){
    display:none !important;
  }
}
@media only screen and (min-width: 768px) and (max-width: 991px){
  .ui[class*="mobile only"].grid.grid.grid:not(.tablet),
  .ui.grid.grid.grid > [class*="mobile only"].row:not(.tablet),
  .ui.grid.grid.grid > [class*="mobile only"].column:not(.tablet),
  .ui.grid.grid.grid > .row > [class*="mobile only"].column:not(.tablet){
    display:none !important;
  }
  .ui[class*="computer only"].grid.grid.grid:not(.tablet),
  .ui.grid.grid.grid > [class*="computer only"].row:not(.tablet),
  .ui.grid.grid.grid > [class*="computer only"].column:not(.tablet),
  .ui.grid.grid.grid > .row > [class*="computer only"].column:not(.tablet){
    display:none !important;
  }
  .ui[class*="large screen only"].grid.grid.grid:not(.mobile),
  .ui.grid.grid.grid > [class*="large screen only"].row:not(.mobile),
  .ui.grid.grid.grid > [class*="large screen only"].column:not(.mobile),
  .ui.grid.grid.grid > .row > [class*="large screen only"].column:not(.mobile){
    display:none !important;
  }
  .ui[class*="widescreen only"].grid.grid.grid:not(.mobile),
  .ui.grid.grid.grid > [class*="widescreen only"].row:not(.mobile),
  .ui.grid.grid.grid > [class*="widescreen only"].column:not(.mobile),
  .ui.grid.grid.grid > .row > [class*="widescreen only"].column:not(.mobile){
    display:none !important;
  }
}
@media only screen and (min-width: 992px) and (max-width: 1199px){
  .ui[class*="mobile only"].grid.grid.grid:not(.computer),
  .ui.grid.grid.grid > [class*="mobile only"].row:not(.computer),
  .ui.grid.grid.grid > [class*="mobile only"].column:not(.computer),
  .ui.grid.grid.grid > .row > [class*="mobile only"].column:not(.computer){
    display:none !important;
  }
  .ui[class*="tablet only"].grid.grid.grid:not(.computer),
  .ui.grid.grid.grid > [class*="tablet only"].row:not(.computer),
  .ui.grid.grid.grid > [class*="tablet only"].column:not(.computer),
  .ui.grid.grid.grid > .row > [class*="tablet only"].column:not(.computer){
    display:none !important;
  }
  .ui[class*="large screen only"].grid.grid.grid:not(.mobile),
  .ui.grid.grid.grid > [class*="large screen only"].row:not(.mobile),
  .ui.grid.grid.grid > [class*="large screen only"].column:not(.mobile),
  .ui.grid.grid.grid > .row > [class*="large screen only"].column:not(.mobile){
    display:none !important;
  }
  .ui[class*="widescreen only"].grid.grid.grid:not(.mobile),
  .ui.grid.grid.grid > [class*="widescreen only"].row:not(.mobile),
  .ui.grid.grid.grid > [class*="widescreen only"].column:not(.mobile),
  .ui.grid.grid.grid > .row > [class*="widescreen only"].column:not(.mobile){
    display:none !important;
  }
}
@media only screen and (min-width: 1200px) and (max-width: 1919px){
  .ui[class*="mobile only"].grid.grid.grid:not(.computer),
  .ui.grid.grid.grid > [class*="mobile only"].row:not(.computer),
  .ui.grid.grid.grid > [class*="mobile only"].column:not(.computer),
  .ui.grid.grid.grid > .row > [class*="mobile only"].column:not(.computer){
    display:none !important;
  }
  .ui[class*="tablet only"].grid.grid.grid:not(.computer),
  .ui.grid.grid.grid > [class*="tablet only"].row:not(.computer),
  .ui.grid.grid.grid > [class*="tablet only"].column:not(.computer),
  .ui.grid.grid.grid > .row > [class*="tablet only"].column:not(.computer){
    display:none !important;
  }
  .ui[class*="widescreen only"].grid.grid.grid:not(.mobile),
  .ui.grid.grid.grid > [class*="widescreen only"].row:not(.mobile),
  .ui.grid.grid.grid > [class*="widescreen only"].column:not(.mobile),
  .ui.grid.grid.grid > .row > [class*="widescreen only"].column:not(.mobile){
    display:none !important;
  }
}
@media only screen and (min-width: 1920px){
  .ui[class*="mobile only"].grid.grid.grid:not(.computer),
  .ui.grid.grid.grid > [class*="mobile only"].row:not(.computer),
  .ui.grid.grid.grid > [class*="mobile only"].column:not(.computer),
  .ui.grid.grid.grid > .row > [class*="mobile only"].column:not(.computer){
    display:none !important;
  }
  .ui[class*="tablet only"].grid.grid.grid:not(.computer),
  .ui.grid.grid.grid > [class*="tablet only"].row:not(.computer),
  .ui.grid.grid.grid > [class*="tablet only"].column:not(.computer),
  .ui.grid.grid.grid > .row > [class*="tablet only"].column:not(.computer){
    display:none !important;
  }
}
.ui.menu{
  display:flex;
  margin:1rem 0em;
  font-family:'Exo 2', 'Lato', Arial, Helvetica, sans-serif;
  background:#FFFFFF;
  font-weight:normal;
  border:1px solid rgba(34, 36, 38, 0.15);
  box-shadow:0px 1px 2px 0 rgba(34, 36, 38, 0.15);
  border-radius:0.4rem;
  min-height:2.8em;
}
.ui.menu:after{
  content:'';
  display:block;
  height:0px;
  clear:both;
  visibility:hidden;
}
.ui.menu:first-child{
  margin-top:0rem;
}
.ui.menu:last-child{
  margin-bottom:0rem;
}
.ui.menu .menu{
  margin:0em;
}
.ui.menu:not(.vertical) > .menu{
  display:flex;
}
.ui.menu:not(.vertical) .item{
  display:flex;
  align-items:center;
}
.ui.menu .item{
  position:relative;
  vertical-align:middle;
  line-height:1;
  text-decoration:none;
  -webkit-tap-highlight-color:transparent;
  flex:0 0 auto;
  -webkit-user-select:none;
     -moz-user-select:none;
      -ms-user-select:none;
          user-select:none;
  background:none;
  padding:0.9em 1.1em;
  text-transform:none;
  color:#333333;
  font-weight:normal;
  transition:background 0.1s ease, box-shadow 0.1s ease, color 0.1s ease;
}
.ui.menu > .item:first-child{
  border-radius:0.4rem 0px 0px 0.4rem;
}
.ui.menu .item:before{
  position:absolute;
  content:'';
  top:0%;
  right:0px;
  height:100%;
  width:1px;
  background:rgba(34, 36, 38, 0.1);
}
.ui.menu .text.item > *,
.ui.menu .item > a:not(.ui),
.ui.menu .item > p:only-child{
  -webkit-user-select:text;
     -moz-user-select:text;
      -ms-user-select:text;
          user-select:text;
  line-height:1.3;
}
.ui.menu .item > p:first-child{
  margin-top:0;
}
.ui.menu .item > p:last-child{
  margin-bottom:0;
}
.ui.menu .item > i.icon{
  opacity:0.9;
  float:none;
  margin:0em 0.5em 0em 0em;
}
.ui.menu:not(.vertical) .item > .button{
  position:relative;
  top:0em;
  margin:-0.5em 0em;
  padding-bottom:0.8em;
  padding-top:0.8em;
  font-size:1em;
}
.ui.menu > .grid,
.ui.menu > .container{
  display:flex;
  align-items:inherit;
  flex-direction:inherit;
}
.ui.menu .item > .input{
  width:100%;
}
.ui.menu:not(.vertical) .item > .input{
  position:relative;
  top:0em;
  margin:-0.5em 0em;
}
.ui.menu .item > .input input{
  font-size:1em;
  padding-top:0.8em;
  padding-bottom:0.8em;
}
.ui.menu .header.item,
.ui.vertical.menu .header.item{
  margin:0em;
  background:'';
  text-transform:normal;
  font-weight:bold;
}
.ui.vertical.menu .item > .header:not(.ui){
  margin:0em 0em 0.5em;
  font-size:1em;
  font-weight:bold;
}
.ui.menu .item > i.dropdown.icon{
  padding:0em;
  float:right;
  margin:0em 0em 0em 1em;
}
.ui.menu .dropdown.item .menu{
  left:0px;
  min-width:calc(100% - 1px);
  border-radius:0em 0em 0.4rem 0.4rem;
  background:#FFFFFF;
  margin:0em 0px 0px;
  box-shadow:0px 1px 3px 0px rgba(0, 0, 0, 0.08);
  flex-direction:column !important;
}
.ui.menu .ui.dropdown .menu > .item{
  margin:0;
  text-align:left;
  font-size:1em !important;
  padding:0.8em 1.1em !important;
  background:transparent !important;
  color:#333333 !important;
  text-transform:none !important;
  font-weight:normal !important;
  box-shadow:none !important;
  transition:none !important;
}
.ui.menu .ui.dropdown .menu > .item:hover{
  background:rgba(0, 0, 0, 0.05) !important;
  color:rgba(0, 0, 0, 0.95) !important;
}
.ui.menu .ui.dropdown .menu > .selected.item{
  background:rgba(0, 0, 0, 0.05) !important;
  color:rgba(0, 0, 0, 0.95) !important;
}
.ui.menu .ui.dropdown .menu > .active.item{
  background:rgba(0, 0, 0, 0.03) !important;
  font-weight:bold !important;
  color:rgba(0, 0, 0, 0.95) !important;
}
.ui.menu .ui.dropdown.item .menu .item:not(.filtered){
  display:block;
}
.ui.menu .ui.dropdown .menu > .item .icon:not(.dropdown){
  display:inline-block;
  font-size:1em !important;
  float:none;
  margin:0em 0.75em 0em 0em;
}
.ui.secondary.menu .dropdown.item > .menu,
.ui.text.menu .dropdown.item > .menu{
  border-radius:0.4rem;
  margin-top:0.5em;
}
.ui.menu .pointing.dropdown.item .menu{
  margin-top:0.75em;
}
.ui.inverted.menu .search.dropdown.item > .search,
.ui.inverted.menu .search.dropdown.item > .text{
  color:rgba(255, 255, 255, 0.9);
}
.ui.vertical.menu .dropdown.item > .icon{
  float:right;
  content:"\f0da";
  margin-left:1em;
}
.ui.vertical.menu .dropdown.item .menu{
  left:100%;
  min-width:0;
  margin:0em 0em 0em 0em;
  box-shadow:0 1px 3px 0px rgba(0, 0, 0, 0.08);
  border-radius:0em 0.4rem 0.4rem 0.4rem;
}
.ui.vertical.menu .dropdown.item.upward .menu{
  bottom:0;
}
.ui.vertical.menu .dropdown.item:not(.upward) .menu{
  top:0;
}
.ui.vertical.menu .active.dropdown.item{
  border-top-right-radius:0em;
  border-bottom-right-radius:0em;
}
.ui.vertical.menu .dropdown.active.item{
  box-shadow:none;
}
.ui.item.menu .dropdown .menu .item{
  width:100%;
}
.ui.menu .item > .label{
  background:#999999;
  color:#ffffff;
  margin-left:1em;
  padding:0.3em 0.8em;
}
.ui.vertical.menu .item > .label{
  background:#999999;
  color:#ffffff;
  margin-top:-0.15em;
  margin-bottom:-0.15em;
  padding:0.3em 0.8em;
}
.ui.menu .item > .floating.label{
  padding:0.3em 0.8em;
}
.ui.menu .item > img:not(.ui){
  display:inline-block;
  vertical-align:middle;
  margin:-0.3em 0em;
  width:2.5em;
}
.ui.vertical.menu .item > img:not(.ui):only-child{
  display:block;
  max-width:100%;
  width:auto;
}
.ui.vertical.sidebar.menu > .item:first-child:before{
  display:block !important;
}
.ui.vertical.sidebar.menu > .item::before{
  top:auto;
  bottom:0px;
}
@media only screen and (max-width: 767px){
  .ui.menu > .ui.container{
    width:100% !important;
    margin-left:0em !important;
    margin-right:0em !important;
  }
}
@media only screen and (min-width: 768px){
  .ui.menu:not(.secondary):not(.text):not(.tabular):not(.borderless) > .container > .item:not(.right):not(.borderless):first-child{
    border-left:1px solid rgba(34, 36, 38, 0.1);
  }
}
.ui.link.menu .item:hover,
.ui.menu .dropdown.item:hover,
.ui.menu .link.item:hover,
.ui.menu a.item:hover{
  cursor:pointer;
  background:rgba(0, 0, 0, 0.03);
  color:rgba(0, 0, 0, 0.95);
}
.ui.link.menu .item:active,
.ui.menu .link.item:active,
.ui.menu a.item:active{
  background:rgba(0, 0, 0, 0.03);
  color:rgba(0, 0, 0, 0.95);
}
.ui.menu .active.item{
  background:rgba(0, 0, 0, 0.05);
  color:rgba(0, 0, 0, 0.95);
  font-weight:normal;
  box-shadow:none;
}
.ui.menu .active.item > i.icon{
  opacity:1;
}
.ui.menu .active.item:hover,
.ui.vertical.menu .active.item:hover{
  background-color:rgba(0, 0, 0, 0.05);
  color:rgba(0, 0, 0, 0.95);
}
.ui.menu .item.disabled,
.ui.menu .item.disabled:hover{
  cursor:default;
  background-color:transparent !important;
  color:rgba(40, 40, 40, 0.3);
}
.ui.menu:not(.vertical) .left.item,
.ui.menu:not(.vertical) .left.menu{
  display:flex;
  margin-right:auto !important;
}
.ui.menu:not(.vertical) .right.item,
.ui.menu:not(.vertical) .right.menu{
  display:flex;
  margin-left:auto !important;
}
.ui.menu .right.item::before,
.ui.menu .right.menu > .item::before{
  right:auto;
  left:0;
}
.ui.vertical.menu{
  display:block;
  flex-direction:column;
  background:#FFFFFF;
  box-shadow:0px 1px 2px 0 rgba(34, 36, 38, 0.15);
}
.ui.vertical.menu .item{
  display:block;
  background:none;
  border-top:none;
  border-right:none;
}
.ui.vertical.menu > .item:first-child{
  border-radius:0.4rem 0.4rem 0px 0px;
}
.ui.vertical.menu > .item:last-child{
  border-radius:0px 0px 0.4rem 0.4rem;
}
.ui.vertical.menu .item > .label{
  float:right;
  text-align:center;
}
.ui.vertical.menu .item > i.icon{
  width:1.18em;
  float:right;
  margin:0em 0em 0em 0.5em;
}
.ui.vertical.menu .item > .label + i.icon{
  float:none;
  margin:0em 0.5em 0em 0em;
}
.ui.vertical.menu .item:before{
  position:absolute;
  content:'';
  top:0%;
  left:0px;
  width:100%;
  height:1px;
  background:rgba(34, 36, 38, 0.1);
}
.ui.vertical.menu .item:first-child:before{
  display:none !important;
}
.ui.vertical.menu .item > .menu{
  margin:0.5em -1.1em 0em;
}
.ui.vertical.menu .menu .item{
  background:none;
  padding:0.5em 1.28333333em;
  font-size:0.9em;
  color:rgba(0, 0, 0, 0.5);
}
.ui.vertical.menu .item .menu a.item:hover,
.ui.vertical.menu .item .menu .link.item:hover{
  color:rgba(0, 0, 0, 0.85);
}
.ui.vertical.menu .menu .item:before{
  display:none;
}
.ui.vertical.menu .active.item{
  background:rgba(0, 0, 0, 0.05);
  border-radius:0em;
  box-shadow:none;
}
.ui.vertical.menu > .active.item:first-child{
  border-radius:0.4rem 0.4rem 0em 0em;
}
.ui.vertical.menu > .active.item:last-child{
  border-radius:0em 0em 0.4rem 0.4rem;
}
.ui.vertical.menu > .active.item:only-child{
  border-radius:0.4rem;
}
.ui.vertical.menu .active.item .menu .active.item{
  border-left:none;
}
.ui.vertical.menu .item .menu .active.item{
  background-color:transparent;
  font-weight:bold;
  color:rgba(0, 0, 0, 0.95);
}
.ui.tabular.menu{
  border-radius:0em;
  box-shadow:none !important;
  border:none;
  background:none transparent;
  border-bottom:1px solid #D4D4D5;
}
.ui.tabular.fluid.menu{
  width:calc(100% + 2px) !important;
}
.ui.tabular.menu .item{
  background:transparent;
  border-bottom:none;
  border-left:1px solid transparent;
  border-right:1px solid transparent;
  border-top:2px solid transparent;
  padding:0.9em 1.4em;
  color:#333333;
}
.ui.tabular.menu .item:before{
  display:none;
}
.ui.tabular.menu .item:hover{
  background-color:transparent;
  color:rgba(0, 0, 0, 0.8);
}
.ui.tabular.menu .active.item{
  background:none #ffffff;
  color:rgba(0, 0, 0, 0.95);
  border-top-width:1px;
  border-color:#D4D4D5;
  font-weight:bold;
  margin-bottom:-1px;
  box-shadow:none;
  border-radius:0.4rem 0.4rem 0px 0px !important;
}
.ui.tabular.menu + .attached:not(.top).segment,
.ui.tabular.menu + .attached:not(.top).segment + .attached:not(.top).segment{
  border-top:none;
  margin-left:0px;
  margin-top:0px;
  margin-right:0px;
  width:100%;
}
.top.attached.segment + .ui.bottom.tabular.menu{
  position:relative;
  width:calc(100% + 2px);
  left:-1px;
}
.ui.bottom.tabular.menu{
  background:none transparent;
  border-radius:0em;
  box-shadow:none !important;
  border-bottom:none;
  border-top:1px solid #D4D4D5;
}
.ui.bottom.tabular.menu .item{
  background:none;
  border-left:1px solid transparent;
  border-right:1px solid transparent;
  border-bottom:1px solid transparent;
  border-top:none;
}
.ui.bottom.tabular.menu .active.item{
  background:none #ffffff;
  color:rgba(0, 0, 0, 0.95);
  border-color:#D4D4D5;
  margin:-1px 0px 0px 0px;
  border-radius:0px 0px 0.4rem 0.4rem !important;
}
.ui.vertical.tabular.menu{
  background:none transparent;
  border-radius:0em;
  box-shadow:none !important;
  border-bottom:none;
  border-right:1px solid #D4D4D5;
}
.ui.vertical.tabular.menu .item{
  background:none;
  border-left:1px solid transparent;
  border-bottom:1px solid transparent;
  border-top:1px solid transparent;
  border-right:none;
}
.ui.vertical.tabular.menu .active.item{
  background:none #ffffff;
  color:rgba(0, 0, 0, 0.95);
  border-color:#D4D4D5;
  margin:0px -1px 0px 0px;
  border-radius:0.4rem 0px 0px 0.4rem !important;
}
.ui.vertical.right.tabular.menu{
  background:none transparent;
  border-radius:0em;
  box-shadow:none !important;
  border-bottom:none;
  border-right:none;
  border-left:1px solid #D4D4D5;
}
.ui.vertical.right.tabular.menu .item{
  background:none;
  border-right:1px solid transparent;
  border-bottom:1px solid transparent;
  border-top:1px solid transparent;
  border-left:none;
}
.ui.vertical.right.tabular.menu .active.item{
  background:none #ffffff;
  color:rgba(0, 0, 0, 0.95);
  border-color:#D4D4D5;
  margin:0px 0px 0px -1px;
  border-radius:0px 0.4rem 0.4rem 0px !important;
}
.ui.tabular.menu .active.dropdown.item{
  margin-bottom:0px;
  border-left:1px solid transparent;
  border-right:1px solid transparent;
  border-top:2px solid transparent;
  border-bottom:none;
}
.ui.pagination.menu{
  margin:0em;
  display:inline-flex;
  vertical-align:middle;
}
.ui.pagination.menu .item:last-child{
  border-radius:0em 0.4rem 0.4rem 0em;
}
.ui.compact.menu .item:last-child{
  border-radius:0em 0.4rem 0.4rem 0em;
}
.ui.pagination.menu .item:last-child:before{
  display:none;
}
.ui.pagination.menu .item{
  min-width:3em;
  text-align:center;
}
.ui.pagination.menu .icon.item i.icon{
  vertical-align:top;
}
.ui.pagination.menu .active.item{
  border-top:none;
  padding-top:0.9em;
  background-color:rgba(0, 0, 0, 0.05);
  color:rgba(0, 0, 0, 0.95);
  box-shadow:none;
}
.ui.secondary.menu{
  background:none;
  margin-left:-0.5em;
  margin-right:-0.5em;
  border-radius:0em;
  border:none;
  box-shadow:none;
}
.ui.secondary.menu .item{
  align-self:center;
  box-shadow:none;
  border:none;
  padding:0.8em 0.9em;
  margin:0em 0.5em;
  background:none;
  transition:color 0.1s ease;
  border-radius:0.4rem;
}
.ui.secondary.menu .item:before{
  display:none !important;
}
.ui.secondary.menu .header.item{
  border-radius:0em;
  border-right:none;
  background:none transparent;
}
.ui.secondary.menu .item > img:not(.ui){
  margin:0em;
}
.ui.secondary.menu .dropdown.item:hover,
.ui.secondary.menu .link.item:hover,
.ui.secondary.menu a.item:hover{
  background:rgba(0, 0, 0, 0.05);
  color:rgba(0, 0, 0, 0.95);
}
.ui.secondary.menu .active.item{
  box-shadow:none;
  background:rgba(0, 0, 0, 0.05);
  color:rgba(0, 0, 0, 0.95);
  border-radius:0.4rem;
}
.ui.secondary.menu .active.item:hover{
  box-shadow:none;
  background:rgba(0, 0, 0, 0.05);
  color:rgba(0, 0, 0, 0.95);
}
.ui.secondary.inverted.menu .link.item,
.ui.secondary.inverted.menu a.item{
  color:rgba(255, 255, 255, 0.7) !important;
}
.ui.secondary.inverted.menu .dropdown.item:hover,
.ui.secondary.inverted.menu .link.item:hover,
.ui.secondary.inverted.menu a.item:hover{
  background:rgba(255, 255, 255, 0.08);
  color:#ffffff !important;
}
.ui.secondary.inverted.menu .active.item{
  background:rgba(255, 255, 255, 0.15);
  color:#ffffff !important;
}
.ui.secondary.item.menu{
  margin-left:0em;
  margin-right:0em;
}
.ui.secondary.item.menu .item:last-child{
  margin-right:0em;
}
.ui.secondary.attached.menu{
  box-shadow:none;
}
.ui.vertical.secondary.menu .item:not(.dropdown) > .menu{
  margin:0em -0.9em;
}
.ui.vertical.secondary.menu .item:not(.dropdown) > .menu > .item{
  margin:0em;
  padding:0.7em 1.28333333em;
}
.ui.secondary.vertical.menu > .item{
  border:none;
  margin:0em 0em 0.5em;
  border-radius:0.4rem !important;
}
.ui.secondary.vertical.menu > .header.item{
  border-radius:0em;
}
.ui.vertical.secondary.menu .item > .menu .item{
  background-color:transparent;
}
.ui.secondary.inverted.menu{
  background-color:transparent;
}
.ui.secondary.pointing.menu{
  margin-left:0em;
  margin-right:0em;
  border-bottom:2px solid rgba(34, 36, 38, 0.15);
}
.ui.secondary.pointing.menu .item{
  border-bottom-color:transparent;
  border-bottom-style:solid;
  border-radius:0em;
  align-self:flex-end;
  margin:0em 0em -2px;
  padding:0.9em 1.1em;
  border-bottom-width:2px;
  transition:color 0.1s ease;
}
.ui.secondary.pointing.menu .header.item{
  color:rgba(0, 0, 0, 0.85) !important;
}
.ui.secondary.pointing.menu .text.item{
  box-shadow:none !important;
}
.ui.secondary.pointing.menu .item:after{
  display:none;
}
.ui.secondary.pointing.menu .dropdown.item:hover,
.ui.secondary.pointing.menu .link.item:hover,
.ui.secondary.pointing.menu a.item:hover{
  background-color:transparent;
  color:#333333;
}
.ui.secondary.pointing.menu .dropdown.item:active,
.ui.secondary.pointing.menu .link.item:active,
.ui.secondary.pointing.menu a.item:active{
  background-color:transparent;
  border-color:rgba(34, 36, 38, 0.15);
}
.ui.secondary.pointing.menu .active.item{
  background-color:transparent;
  box-shadow:none;
  border-color:#000000;
  font-weight:bold;
  color:rgba(0, 0, 0, 0.95);
}
.ui.secondary.pointing.menu .active.item:hover{
  border-color:#000000;
  color:rgba(0, 0, 0, 0.95);
}
.ui.secondary.pointing.menu .active.dropdown.item{
  border-color:transparent;
}
.ui.secondary.vertical.pointing.menu{
  border-bottom-width:0px;
  border-right-width:2px;
  border-right-style:solid;
  border-right-color:rgba(34, 36, 38, 0.15);
}
.ui.secondary.vertical.pointing.menu .item{
  border-bottom:none;
  border-right-style:solid;
  border-right-color:transparent;
  border-radius:0em !important;
  margin:0em -2px 0em 0em;
  border-right-width:2px;
}
.ui.secondary.vertical.pointing.menu .active.item{
  border-color:#000000;
}
.ui.secondary.inverted.pointing.menu{
  border-color:rgba(255, 255, 255, 0.1);
}
.ui.secondary.inverted.pointing.menu{
  border-width:2px;
  border-color:rgba(34, 36, 38, 0.15);
}
.ui.secondary.inverted.pointing.menu .item{
  color:rgba(255, 255, 255, 0.9);
}
.ui.secondary.inverted.pointing.menu .header.item{
  color:#ffffff !important;
}
.ui.secondary.inverted.pointing.menu .link.item:hover,
.ui.secondary.inverted.pointing.menu a.item:hover{
  color:rgba(0, 0, 0, 0.95);
}
.ui.secondary.inverted.pointing.menu .active.item{
  border-color:#ffffff;
  color:#ffffff;
}
.ui.text.menu{
  background:none transparent;
  border-radius:0px;
  box-shadow:none;
  border:none;
  margin:1em -0.7em;
}
.ui.text.menu .item{
  border-radius:0px;
  box-shadow:none;
  align-self:center;
  margin:0em 0em;
  padding:0.5em 0.7em;
  font-weight:normal;
  color:rgba(0, 0, 0, 0.6);
  transition:opacity 0.1s ease;
}
.ui.text.menu .item:before,
.ui.text.menu .menu .item:before{
  display:none !important;
}
.ui.text.menu .header.item{
  background-color:transparent;
  opacity:1;
  color:rgba(0, 0, 0, 0.85);
  font-size:0.9em;
  text-transform:uppercase;
  font-weight:bold;
}
.ui.text.menu .item > img:not(.ui){
  margin:0em;
}
.ui.text.item.menu .item{
  margin:0em;
}
.ui.vertical.text.menu{
  margin:1em 0em;
}
.ui.vertical.text.menu:first-child{
  margin-top:0rem;
}
.ui.vertical.text.menu:last-child{
  margin-bottom:0rem;
}
.ui.vertical.text.menu .item{
  margin:0.8em 0em;
  padding-left:0em;
  padding-right:0em;
}
.ui.vertical.text.menu .item > i.icon{
  float:none;
  margin:0em 0.5em 0em 0em;
}
.ui.vertical.text.menu .header.item{
  margin:0.8em 0em 1em;
}
.ui.vertical.text.menu .item:not(.dropdown) > .menu{
  margin:0em;
}
.ui.vertical.text.menu .item:not(.dropdown) > .menu > .item{
  margin:0em;
  padding:0.7em 0em;
}
.ui.text.menu .item:hover{
  opacity:1;
  background-color:transparent;
}
.ui.text.menu .active.item{
  background-color:transparent;
  border:none;
  box-shadow:none;
  font-weight:normal;
  color:rgba(0, 0, 0, 0.95);
}
.ui.text.menu .active.item:hover{
  background-color:transparent;
}
.ui.text.pointing.menu .active.item:after{
  box-shadow:none;
}
.ui.text.attached.menu{
  box-shadow:none;
}
.ui.inverted.text.menu,
.ui.inverted.text.menu .item,
.ui.inverted.text.menu .item:hover,
.ui.inverted.text.menu .active.item{
  background-color:transparent !important;
}
.ui.fluid.text.menu{
  margin-left:0em;
  margin-right:0em;
}
.ui.vertical.icon.menu{
  display:inline-block;
  width:auto;
}
.ui.icon.menu .item{
  height:auto;
  text-align:center;
  color:#000000;
}
.ui.icon.menu .item > .icon:not(.dropdown){
  margin:0;
  opacity:1;
}
.ui.icon.menu .icon:before{
  opacity:1;
}
.ui.menu .icon.item > .icon{
  width:auto;
  margin:0em auto;
}
.ui.vertical.icon.menu .item > .icon:not(.dropdown){
  display:block;
  opacity:1;
  margin:0em auto;
  float:none;
}
.ui.inverted.icon.menu .item{
  color:#ffffff;
}
.ui.labeled.icon.menu{
  text-align:center;
}
.ui.labeled.icon.menu .item{
  min-width:6em;
  flex-direction:column;
}
.ui.labeled.icon.menu .item > .icon:not(.dropdown){
  height:1em;
  display:block;
  font-size:1.7em !important;
  margin:0em auto 0.5rem !important;
}
.ui.fluid.labeled.icon.menu > .item{
  min-width:0em;
}
@media only screen and (max-width: 767px){
  .ui.stackable.menu{
    flex-direction:column;
  }
  .ui.stackable.menu .item{
    width:100% !important;
  }
  .ui.stackable.menu .item:before{
    position:absolute;
    content:'';
    top:auto;
    bottom:0px;
    left:0px;
    width:100%;
    height:1px;
    background:rgba(34, 36, 38, 0.1);
  }
  .ui.stackable.menu .left.menu,
  .ui.stackable.menu .left.item{
    margin-right:0 !important;
  }
  .ui.stackable.menu .right.menu,
  .ui.stackable.menu .right.item{
    margin-left:0 !important;
  }
}
.ui.menu .red.active.item,
.ui.red.menu .active.item{
  border-color:#de3a3e !important;
  color:#de3a3e !important;
}
.ui.menu .orange.active.item,
.ui.orange.menu .active.item{
  border-color:#ff9533 !important;
  color:#ff9533 !important;
}
.ui.menu .yellow.active.item,
.ui.yellow.menu .active.item{
  border-color:#FBBD08 !important;
  color:#FBBD08 !important;
}
.ui.menu .olive.active.item,
.ui.olive.menu .active.item{
  border-color:#B5CC18 !important;
  color:#B5CC18 !important;
}
.ui.menu .green.active.item,
.ui.green.menu .active.item{
  border-color:#19a531 !important;
  color:#19a531 !important;
}
.ui.menu .teal.active.item,
.ui.teal.menu .active.item{
  border-color:#00B5AD !important;
  color:#00B5AD !important;
}
.ui.menu .blue.active.item,
.ui.blue.menu .active.item{
  border-color:#3f51b5 !important;
  color:#3f51b5 !important;
}
.ui.menu .violet.active.item,
.ui.violet.menu .active.item{
  border-color:#6435C9 !important;
  color:#6435C9 !important;
}
.ui.menu .purple.active.item,
.ui.purple.menu .active.item{
  border-color:#A333C8 !important;
  color:#A333C8 !important;
}
.ui.menu .pink.active.item,
.ui.pink.menu .active.item{
  border-color:#E03997 !important;
  color:#E03997 !important;
}
.ui.menu .brown.active.item,
.ui.brown.menu .active.item{
  border-color:#A5673F !important;
  color:#A5673F !important;
}
.ui.menu .grey.active.item,
.ui.grey.menu .active.item{
  border-color:#767676 !important;
  color:#767676 !important;
}
.ui.inverted.menu{
  border:0px solid transparent;
  background:#000000;
  box-shadow:none;
}
.ui.inverted.menu .item,
.ui.inverted.menu .item > a:not(.ui){
  background:transparent;
  color:rgba(255, 255, 255, 0.9);
}
.ui.inverted.menu .item.menu{
  background:transparent;
}
.ui.inverted.menu .item:before{
  background:rgba(255, 255, 255, 0.08);
}
.ui.vertical.inverted.menu .item:before{
  background:rgba(255, 255, 255, 0.08);
}
.ui.vertical.inverted.menu .menu .item,
.ui.vertical.inverted.menu .menu .item a:not(.ui){
  color:rgba(255, 255, 255, 0.5);
}
.ui.inverted.menu .header.item{
  margin:0em;
  background:transparent;
  box-shadow:none;
}
.ui.inverted.menu .item.disabled,
.ui.inverted.menu .item.disabled:hover{
  color:rgba(225, 225, 225, 0.3);
}
.ui.link.inverted.menu .item:hover,
.ui.inverted.menu .dropdown.item:hover,
.ui.inverted.menu .link.item:hover,
.ui.inverted.menu a.item:hover{
  background:rgba(255, 255, 255, 0.08);
  color:#ffffff;
}
.ui.vertical.inverted.menu .item .menu a.item:hover,
.ui.vertical.inverted.menu .item .menu .link.item:hover{
  background:transparent;
  color:#ffffff;
}
.ui.inverted.menu a.item:active,
.ui.inverted.menu .link.item:active{
  background:rgba(255, 255, 255, 0.08);
  color:#ffffff;
}
.ui.inverted.menu .active.item{
  background:rgba(255, 255, 255, 0.15);
  color:#ffffff !important;
}
.ui.inverted.vertical.menu .item .menu .active.item{
  background:transparent;
  color:#ffffff;
}
.ui.inverted.pointing.menu .active.item:after{
  background:#3D3E3F !important;
  margin:0em !important;
  box-shadow:none !important;
  border:none !important;
}
.ui.inverted.menu .active.item:hover{
  background:rgba(255, 255, 255, 0.15);
  color:#ffffff !important;
}
.ui.inverted.pointing.menu .active.item:hover:after{
  background:#3D3E3F !important;
}
.ui.floated.menu{
  float:left;
  margin:0rem 0.5rem 0rem 0rem;
}
.ui.floated.menu .item:last-child:before{
  display:none;
}
.ui.right.floated.menu{
  float:right;
  margin:0rem 0rem 0rem 0.5rem;
}
.ui.inverted.menu .red.active.item,
.ui.inverted.red.menu{
  background-color:#de3a3e;
}
.ui.inverted.red.menu .item:before{
  background-color:rgba(34, 36, 38, 0.1);
}
.ui.inverted.red.menu .active.item{
  background-color:rgba(0, 0, 0, 0.1) !important;
}
.ui.inverted.menu .orange.active.item,
.ui.inverted.orange.menu{
  background-color:#ff9533;
}
.ui.inverted.orange.menu .item:before{
  background-color:rgba(34, 36, 38, 0.1);
}
.ui.inverted.orange.menu .active.item{
  background-color:rgba(0, 0, 0, 0.1) !important;
}
.ui.inverted.menu .yellow.active.item,
.ui.inverted.yellow.menu{
  background-color:#FBBD08;
}
.ui.inverted.yellow.menu .item:before{
  background-color:rgba(34, 36, 38, 0.1);
}
.ui.inverted.yellow.menu .active.item{
  background-color:rgba(0, 0, 0, 0.1) !important;
}
.ui.inverted.menu .olive.active.item,
.ui.inverted.olive.menu{
  background-color:#B5CC18;
}
.ui.inverted.olive.menu .item:before{
  background-color:rgba(34, 36, 38, 0.1);
}
.ui.inverted.olive.menu .active.item{
  background-color:rgba(0, 0, 0, 0.1) !important;
}
.ui.inverted.menu .green.active.item,
.ui.inverted.green.menu{
  background-color:#19a531;
}
.ui.inverted.green.menu .item:before{
  background-color:rgba(34, 36, 38, 0.1);
}
.ui.inverted.green.menu .active.item{
  background-color:rgba(0, 0, 0, 0.1) !important;
}
.ui.inverted.menu .teal.active.item,
.ui.inverted.teal.menu{
  background-color:#00B5AD;
}
.ui.inverted.teal.menu .item:before{
  background-color:rgba(34, 36, 38, 0.1);
}
.ui.inverted.teal.menu .active.item{
  background-color:rgba(0, 0, 0, 0.1) !important;
}
.ui.inverted.menu .blue.active.item,
.ui.inverted.blue.menu{
  background-color:#3f51b5;
}
.ui.inverted.blue.menu .item:before{
  background-color:rgba(34, 36, 38, 0.1);
}
.ui.inverted.blue.menu .active.item{
  background-color:rgba(0, 0, 0, 0.1) !important;
}
.ui.inverted.menu .violet.active.item,
.ui.inverted.violet.menu{
  background-color:#6435C9;
}
.ui.inverted.violet.menu .item:before{
  background-color:rgba(34, 36, 38, 0.1);
}
.ui.inverted.violet.menu .active.item{
  background-color:rgba(0, 0, 0, 0.1) !important;
}
.ui.inverted.menu .purple.active.item,
.ui.inverted.purple.menu{
  background-color:#A333C8;
}
.ui.inverted.purple.menu .item:before{
  background-color:rgba(34, 36, 38, 0.1);
}
.ui.inverted.purple.menu .active.item{
  background-color:rgba(0, 0, 0, 0.1) !important;
}
.ui.inverted.menu .pink.active.item,
.ui.inverted.pink.menu{
  background-color:#E03997;
}
.ui.inverted.pink.menu .item:before{
  background-color:rgba(34, 36, 38, 0.1);
}
.ui.inverted.pink.menu .active.item{
  background-color:rgba(0, 0, 0, 0.1) !important;
}
.ui.inverted.menu .brown.active.item,
.ui.inverted.brown.menu{
  background-color:#A5673F;
}
.ui.inverted.brown.menu .item:before{
  background-color:rgba(34, 36, 38, 0.1);
}
.ui.inverted.brown.menu .active.item{
  background-color:rgba(0, 0, 0, 0.1) !important;
}
.ui.inverted.menu .grey.active.item,
.ui.inverted.grey.menu{
  background-color:#767676;
}
.ui.inverted.grey.menu .item:before{
  background-color:rgba(34, 36, 38, 0.1);
}
.ui.inverted.grey.menu .active.item{
  background-color:rgba(0, 0, 0, 0.1) !important;
}
.ui.fitted.menu .item,
.ui.fitted.menu .item .menu .item,
.ui.menu .fitted.item{
  padding:0em;
}
.ui.horizontally.fitted.menu .item,
.ui.horizontally.fitted.menu .item .menu .item,
.ui.menu .horizontally.fitted.item{
  padding-top:0.9em;
  padding-bottom:0.9em;
}
.ui.vertically.fitted.menu .item,
.ui.vertically.fitted.menu .item .menu .item,
.ui.menu .vertically.fitted.item{
  padding-left:1.1em;
  padding-right:1.1em;
}
.ui.borderless.menu .item:before,
.ui.borderless.menu .item .menu .item:before,
.ui.menu .borderless.item:before{
  background:none !important;
}
.ui.compact.menu{
  display:inline-flex;
  margin:0em;
  vertical-align:middle;
}
.ui.compact.vertical.menu{
  display:inline-block;
}
.ui.compact.menu .item:last-child{
  border-radius:0em 0.4rem 0.4rem 0em;
}
.ui.compact.menu .item:last-child:before{
  display:none;
}
.ui.compact.vertical.menu{
  width:auto !important;
}
.ui.compact.vertical.menu .item:last-child::before{
  display:block;
}
.ui.menu.fluid,
.ui.vertical.menu.fluid{
  width:100% !important;
}
.ui.item.menu,
.ui.item.menu .item{
  width:100%;
  padding-left:0em !important;
  padding-right:0em !important;
  margin-left:0em !important;
  margin-right:0em !important;
  text-align:center;
  justify-content:center;
}
.ui.item.menu .item:last-child:before{
  display:none;
}
.ui.menu.two.item .item{
  width:50%;
}
.ui.menu.three.item .item{
  width:33.333%;
}
.ui.menu.four.item .item{
  width:25%;
}
.ui.menu.five.item .item{
  width:20%;
}
.ui.menu.six.item .item{
  width:16.666%;
}
.ui.menu.seven.item .item{
  width:14.285%;
}
.ui.menu.eight.item .item{
  width:12.5%;
}
.ui.menu.nine.item .item{
  width:11.11%;
}
.ui.menu.ten.item .item{
  width:10%;
}
.ui.menu.eleven.item .item{
  width:9.09%;
}
.ui.menu.twelve.item .item{
  width:8.333%;
}
.ui.menu.fixed{
  position:fixed;
  z-index:101;
  margin:0em;
  width:100%;
}
.ui.menu.fixed,
.ui.menu.fixed .item:first-child,
.ui.menu.fixed .item:last-child{
  border-radius:0px !important;
}
.ui.fixed.menu,
.ui[class*="top fixed"].menu{
  top:0px;
  left:0px;
  right:auto;
  bottom:auto;
}
.ui[class*="top fixed"].menu{
  border-top:none;
  border-left:none;
  border-right:none;
}
.ui[class*="right fixed"].menu{
  border-top:none;
  border-bottom:none;
  border-right:none;
  top:0px;
  right:0px;
  left:auto;
  bottom:auto;
  width:auto;
  height:100%;
}
.ui[class*="bottom fixed"].menu{
  border-bottom:none;
  border-left:none;
  border-right:none;
  bottom:0px;
  left:0px;
  top:auto;
  right:auto;
}
.ui[class*="left fixed"].menu{
  border-top:none;
  border-bottom:none;
  border-left:none;
  top:0px;
  left:0px;
  right:auto;
  bottom:auto;
  width:auto;
  height:100%;
}
.ui.fixed.menu + .ui.grid{
  padding-top:2.75rem;
}
.ui.pointing.menu .item:after{
  visibility:hidden;
  position:absolute;
  content:'';
  top:100%;
  left:50%;
  transform:translateX(-50%) translateY(-50%) rotate(45deg);
  background:none;
  margin:0.5px 0em 0em;
  width:0.8em;
  height:0.8em;
  border:none;
  border-bottom:1px solid #D4D4D5;
  border-right:1px solid #D4D4D5;
  z-index:2;
  transition:background 0.1s ease;
}
.ui.vertical.pointing.menu .item:after{
  position:absolute;
  top:50%;
  right:0%;
  bottom:auto;
  left:auto;
  transform:translateX(50%) translateY(-50%) rotate(45deg);
  margin:0em -0.5px 0em 0em;
  border:none;
  border-top:1px solid #D4D4D5;
  border-right:1px solid #D4D4D5;
}
.ui.pointing.menu .active.item:after{
  visibility:visible;
}
.ui.pointing.menu .active.dropdown.item:after{
  visibility:hidden;
}
.ui.pointing.menu .dropdown.active.item:after,
.ui.pointing.menu .active.item .menu .active.item:after{
  display:none;
}
.ui.pointing.menu .active.item:hover:after{
  background-color:#F2F2F2;
}
.ui.pointing.menu .active.item:after{
  background-color:#F2F2F2;
}
.ui.pointing.menu .active.item:hover:after{
  background-color:#F2F2F2;
}
.ui.vertical.pointing.menu .active.item:hover:after{
  background-color:#F2F2F2;
}
.ui.vertical.pointing.menu .active.item:after{
  background-color:#F2F2F2;
}
.ui.vertical.pointing.menu .menu .active.item:after{
  background-color:#ffffff;
}
.ui.attached.menu{
  top:0px;
  bottom:0px;
  border-radius:0px;
  margin:0em -1px;
  width:calc(100% + 2px);
  max-width:calc(100% + 2px);
  box-shadow:none;
}
.ui.attached + .ui.attached.menu:not(.top){
  border-top:none;
}
.ui[class*="top attached"].menu{
  bottom:0px;
  margin-bottom:0em;
  top:0px;
  margin-top:1rem;
  border-radius:0.4rem 0.4rem 0em 0em;
}
.ui.menu[class*="top attached"]:first-child{
  margin-top:0em;
}
.ui[class*="bottom attached"].menu{
  bottom:0px;
  margin-top:0em;
  top:0px;
  margin-bottom:1rem;
  box-shadow:0px 1px 2px 0 rgba(34, 36, 38, 0.15), none;
  border-radius:0em 0em 0.4rem 0.4rem;
}
.ui[class*="bottom attached"].menu:last-child{
  margin-bottom:0em;
}
.ui.top.attached.menu > .item:first-child{
  border-radius:0.4rem 0em 0em 0em;
}
.ui.bottom.attached.menu > .item:first-child{
  border-radius:0em 0em 0em 0.4rem;
}
.ui.attached.menu:not(.tabular){
  border:1px solid #D4D4D5;
}
.ui.attached.inverted.menu{
  border:none;
}
.ui.attached.tabular.menu{
  margin-left:0;
  margin-right:0;
  width:100%;
}
.ui.mini.menu{
  font-size:1.1rem;
}
.ui.mini.vertical.menu{
  width:9rem;
}
.ui.tiny.menu{
  font-size:1.2rem;
}
.ui.tiny.vertical.menu{
  width:11rem;
}
.ui.small.menu{
  font-size:1.3rem;
}
.ui.small.vertical.menu{
  width:13rem;
}
.ui.menu{
  font-size:1rem;
}
.ui.vertical.menu{
  width:15rem;
}
.ui.large.menu{
  font-size:1.5rem;
}
.ui.large.vertical.menu{
  width:18rem;
}
.ui.huge.menu{
  font-size:1.6rem;
}
.ui.huge.vertical.menu{
  width:20rem;
}
.ui.big.menu{
  font-size:1.7rem;
}
.ui.big.vertical.menu{
  width:22rem;
}
.ui.massive.menu{
  font-size:1.8rem;
}
.ui.massive.vertical.menu{
  width:25rem;
}
/*!
 * # Semantic UI - Message
 * http://github.com/semantic-org/semantic-ui/
 *
 *
 * Released under the MIT license
 * http://opensource.org/licenses/MIT
 *
 */
.ui.message{
  position:relative;
  min-height:1em;
  margin:1em 0em;
  background:#F8F8F9;
  padding:1em 1.5em;
  line-height:1.4285em;
  color:#333333;
  transition:opacity 0.1s ease, color 0.1s ease, background 0.1s ease, box-shadow 0.1s ease;
  border-radius:0.4rem;
  box-shadow:0px 0px 0px 1px rgba(34, 36, 38, 0.22) inset, 0px 0px 0px 0px rgba(0, 0, 0, 0);
}
.ui.message:first-child{
  margin-top:0em;
}
.ui.message:last-child{
  margin-bottom:0em;
}
.ui.message .header{
  display:block;
  font-family:'Exo 2', 'Lato', Arial, Helvetica, sans-serif;
  font-weight:bold;
  margin:-0.14285714em 0em 0rem 0em;
}
.ui.message .header:not(.ui){
  font-size:1.1em;
}
.ui.message p{
  opacity:0.85;
  margin:0.75em 0em;
}
.ui.message p:first-child{
  margin-top:0em;
}
.ui.message p:last-child{
  margin-bottom:0em;
}
.ui.message .header + p{
  margin-top:0.25em;
}
.ui.message .list:not(.ui){
  text-align:left;
  padding:0em;
  opacity:0.85;
  list-style-position:inside;
  margin:0.5em 0em 0em;
}
.ui.message .list:not(.ui):first-child{
  margin-top:0em;
}
.ui.message .list:not(.ui):last-child{
  margin-bottom:0em;
}
.ui.message .list:not(.ui) li{
  position:relative;
  list-style-type:none;
  margin:0em 0em 0.3em 1em;
  padding:0em;
}
.ui.message .list:not(.ui) li:before{
  position:absolute;
  content:'•';
  left:-1em;
  height:100%;
  vertical-align:baseline;
}
.ui.message .list:not(.ui) li:last-child{
  margin-bottom:0em;
}
.ui.message > .icon{
  margin-right:0.6em;
}
.ui.message > .close.icon{
  cursor:pointer;
  position:absolute;
  margin:0em;
  top:0.78575em;
  right:0.5em;
  opacity:0.7;
  transition:opacity 0.1s ease;
}
.ui.message > .close.icon:hover{
  opacity:1;
}
.ui.message > :first-child{
  margin-top:0em;
}
.ui.message > :last-child{
  margin-bottom:0em;
}
.ui.dropdown .menu > .message{
  margin:0px -1px;
}
.ui.visible.visible.visible.visible.message{
  display:block;
}
.ui.icon.visible.visible.visible.visible.message{
  display:flex;
}
.ui.hidden.hidden.hidden.hidden.message{
  display:none;
}
.ui.compact.message{
  display:inline-block;
}
.ui.attached.message{
  margin-bottom:-1px;
  border-radius:0.4rem 0.4rem 0em 0em;
  box-shadow:0em 0em 0em 1px rgba(34, 36, 38, 0.15) inset;
  margin-left:-1px;
  margin-right:-1px;
}
.ui.attached + .ui.attached.message:not(.top):not(.bottom){
  margin-top:-1px;
  border-radius:0em;
}
.ui.bottom.attached.message{
  margin-top:-1px;
  border-radius:0em 0em 0.4rem 0.4rem;
  box-shadow:0em 0em 0em 1px rgba(34, 36, 38, 0.15) inset, 0px 1px 2px 0 rgba(34, 36, 38, 0.15);
}
.ui.bottom.attached.message:not(:last-child){
  margin-bottom:1em;
}
.ui.attached.icon.message{
  width:auto;
}
.ui.icon.message{
  display:flex;
  width:100%;
  align-items:center;
}
.ui.icon.message > .icon:not(.close){
  display:block;
  flex:0 0 auto;
  width:auto;
  line-height:1;
  vertical-align:middle;
  font-size:3em;
  opacity:0.8;
}
.ui.icon.message > .content{
  display:block;
  flex:1 1 auto;
  vertical-align:middle;
}
.ui.icon.message .icon:not(.close) + .content{
  padding-left:0rem;
}
.ui.icon.message .circular.icon{
  width:1em;
}
.ui.floating.message{
  box-shadow:0px 0px 0px 1px rgba(34, 36, 38, 0.22) inset, 0px 2px 4px 0px rgba(34, 36, 38, 0.12), 0px 2px 10px 0px rgba(34, 36, 38, 0.15);
}
.ui.black.message{
  background-color:#000000;
  color:rgba(255, 255, 255, 0.9);
}
.ui.positive.message{
  background-color:#FCFFF5;
  color:#2C662D;
}
.ui.positive.message,
.ui.attached.positive.message{
  box-shadow:0px 0px 0px 1px #A3C293 inset, 0px 0px 0px 0px rgba(0, 0, 0, 0);
}
.ui.positive.message .header{
  color:#1A531B;
}
.ui.negative.message{
  background-color:#FFF6F6;
  color:#9F3A38;
}
.ui.negative.message,
.ui.attached.negative.message{
  box-shadow:0px 0px 0px 1px #E0B4B4 inset, 0px 0px 0px 0px rgba(0, 0, 0, 0);
}
.ui.negative.message .header{
  color:#912D2B;
}
.ui.info.message{
  background-color:#F8FFFF;
  color:#276F86;
}
.ui.info.message,
.ui.attached.info.message{
  box-shadow:0px 0px 0px 1px #A9D5DE inset, 0px 0px 0px 0px rgba(0, 0, 0, 0);
}
.ui.info.message .header{
  color:#0E566C;
}
.ui.warning.message{
  background-color:#FFFAF3;
  color:#573A08;
}
.ui.warning.message,
.ui.attached.warning.message{
  box-shadow:0px 0px 0px 1px #C9BA9B inset, 0px 0px 0px 0px rgba(0, 0, 0, 0);
}
.ui.warning.message .header{
  color:#794B02;
}
.ui.error.message{
  background-color:#FFF6F6;
  color:#9F3A38;
}
.ui.error.message,
.ui.attached.error.message{
  box-shadow:0px 0px 0px 1px #E0B4B4 inset, 0px 0px 0px 0px rgba(0, 0, 0, 0);
}
.ui.error.message .header{
  color:#912D2B;
}
.ui.success.message{
  background-color:#FCFFF5;
  color:#2C662D;
}
.ui.success.message,
.ui.attached.success.message{
  box-shadow:0px 0px 0px 1px #A3C293 inset, 0px 0px 0px 0px rgba(0, 0, 0, 0);
}
.ui.success.message .header{
  color:#1A531B;
}
.ui.inverted.message,
.ui.black.message{
  background-color:#000000;
  color:rgba(255, 255, 255, 0.9);
}
.ui.red.message{
  background-color:#FFE8E6;
  color:#de3a3e;
  box-shadow:0px 0px 0px 1px #de3a3e inset, 0px 0px 0px 0px rgba(0, 0, 0, 0);
}
.ui.red.message .header{
  color:#da2529;
}
.ui.orange.message{
  background-color:#FFEDDE;
  color:#ff9533;
  box-shadow:0px 0px 0px 1px #ff9533 inset, 0px 0px 0px 0px rgba(0, 0, 0, 0);
}
.ui.orange.message .header{
  color:#ff8819;
}
.ui.yellow.message{
  background-color:#FFF8DB;
  color:#B58105;
  box-shadow:0px 0px 0px 1px #B58105 inset, 0px 0px 0px 0px rgba(0, 0, 0, 0);
}
.ui.yellow.message .header{
  color:#9c6f04;
}
.ui.olive.message{
  background-color:#FBFDEF;
  color:#8ABC1E;
  box-shadow:0px 0px 0px 1px #8ABC1E inset, 0px 0px 0px 0px rgba(0, 0, 0, 0);
}
.ui.olive.message .header{
  color:#7aa61a;
}
.ui.green.message{
  background-color:#E5F9E7;
  color:#1EBC30;
  box-shadow:0px 0px 0px 1px #1EBC30 inset, 0px 0px 0px 0px rgba(0, 0, 0, 0);
}
.ui.green.message .header{
  color:#1aa62a;
}
.ui.teal.message{
  background-color:#E1F7F7;
  color:#10A3A3;
  box-shadow:0px 0px 0px 1px #10A3A3 inset, 0px 0px 0px 0px rgba(0, 0, 0, 0);
}
.ui.teal.message .header{
  color:#0e8c8c;
}
.ui.blue.message{
  background-color:#DFF0FF;
  color:#3f51b5;
  box-shadow:0px 0px 0px 1px #3f51b5 inset, 0px 0px 0px 0px rgba(0, 0, 0, 0);
}
.ui.blue.message .header{
  color:#3849a2;
}
.ui.violet.message{
  background-color:#EAE7FF;
  color:#6435C9;
  box-shadow:0px 0px 0px 1px #6435C9 inset, 0px 0px 0px 0px rgba(0, 0, 0, 0);
}
.ui.violet.message .header{
  color:#5a30b5;
}
.ui.purple.message{
  background-color:#F6E7FF;
  color:#A333C8;
  box-shadow:0px 0px 0px 1px #A333C8 inset, 0px 0px 0px 0px rgba(0, 0, 0, 0);
}
.ui.purple.message .header{
  color:#922eb4;
}
.ui.pink.message{
  background-color:#FFE3FB;
  color:#E03997;
  box-shadow:0px 0px 0px 1px #E03997 inset, 0px 0px 0px 0px rgba(0, 0, 0, 0);
}
.ui.pink.message .header{
  color:#dd238b;
}
.ui.brown.message{
  background-color:#F1E2D3;
  color:#A5673F;
  box-shadow:0px 0px 0px 1px #A5673F inset, 0px 0px 0px 0px rgba(0, 0, 0, 0);
}
.ui.brown.message .header{
  color:#935b38;
}
.ui.mini.message{
  font-size:0.8em;
}
.ui.tiny.message{
  font-size:0.9em;
}
.ui.small.message{
  font-size:0.9em;
}
.ui.message{
  font-size:1em;
}
.ui.large.message{
  font-size:1.1em;
}
.ui.big.message{
  font-size:1.3em;
}
.ui.huge.message{
  font-size:1.4em;
}
.ui.massive.message{
  font-size:1.7em;
}
/*!
 * # Semantic UI - Table
 * http://github.com/semantic-org/semantic-ui/
 *
 *
 * Released under the MIT license
 * http://opensource.org/licenses/MIT
 *
 */
.ui.table{
  width:100%;
  background:#ffffff;
  margin:1em 0em;
  border:1px solid rgba(34, 36, 38, 0.15);
  box-shadow:none;
  border-radius:0.4rem;
  text-align:left;
  color:#333333;
  border-collapse:separate;
  border-spacing:0px;
}
.ui.table:first-child{
  margin-top:0em;
}
.ui.table:last-child{
  margin-bottom:0em;
}
.ui.table th,
.ui.table td{
  transition:background 0.1s ease, color 0.1s ease;
}
.ui.table thead{
  box-shadow:none;
}
.ui.table thead th{
  cursor:auto;
  background:#F9FAFB;
  text-align:inherit;
  color:#333333;
  padding:0.9em 0.8em;
  vertical-align:inherit;
  font-style:none;
  font-weight:bold;
  text-transform:none;
  border-bottom:1px solid rgba(34, 36, 38, 0.1);
  border-left:none;
}
.ui.table thead tr > th:first-child{
  border-left:none;
}
.ui.table thead tr:first-child > th:first-child{
  border-radius:0.4rem 0em 0em 0em;
}
.ui.table thead tr:first-child > th:last-child{
  border-radius:0em 0.4rem 0em 0em;
}
.ui.table thead tr:first-child > th:only-child{
  border-radius:0.4rem 0.4rem 0em 0em;
}
.ui.table tfoot{
  box-shadow:none;
}
.ui.table tfoot th{
  cursor:auto;
  border-top:1px solid rgba(34, 36, 38, 0.15);
  background:#F9FAFB;
  text-align:inherit;
  color:#333333;
  padding:0.8em 0.8em;
  vertical-align:middle;
  font-style:normal;
  font-weight:normal;
  text-transform:none;
}
.ui.table tfoot tr > th:first-child{
  border-left:none;
}
.ui.table tfoot tr:first-child > th:first-child{
  border-radius:0em 0em 0em 0.4rem;
}
.ui.table tfoot tr:first-child > th:last-child{
  border-radius:0em 0em 0.4rem 0em;
}
.ui.table tfoot tr:first-child > th:only-child{
  border-radius:0em 0em 0.4rem 0.4rem;
}
.ui.table tr td{
  border-top:1px solid rgba(34, 36, 38, 0.1);
}
.ui.table tr:first-child td{
  border-top:none;
}
.ui.table td{
  padding:0.8em 0.8em;
  text-align:inherit;
}
.ui.table > .icon{
  vertical-align:baseline;
}
.ui.table > .icon:only-child{
  margin:0em;
}
.ui.table.segment{
  padding:0em;
}
.ui.table.segment:after{
  display:none;
}
.ui.table.segment.stacked:after{
  display:block;
}
@media only screen and (max-width: 767px){
  .ui.table:not(.unstackable){
    width:100%;
  }
  .ui.table:not(.unstackable) tbody,
  .ui.table:not(.unstackable) tr,
  .ui.table:not(.unstackable) tr > th,
  .ui.table:not(.unstackable) tr > td{
    width:auto !important;
    display:block !important;
  }
  .ui.table:not(.unstackable){
    padding:0em;
  }
  .ui.table:not(.unstackable) thead{
    display:block;
  }
  .ui.table:not(.unstackable) tfoot{
    display:block;
  }
  .ui.table:not(.unstackable) tr{
    padding-top:1em;
    padding-bottom:1em;
    box-shadow:0px -1px 0px 0px rgba(0, 0, 0, 0.1) inset !important;
  }
  .ui.table:not(.unstackable) tr > th,
  .ui.table:not(.unstackable) tr > td{
    background:none;
    border:none !important;
    padding:0.25em 0.75em !important;
    box-shadow:none !important;
  }
  .ui.table:not(.unstackable) th:first-child,
  .ui.table:not(.unstackable) td:first-child{
    font-weight:bold;
  }
  .ui.definition.table:not(.unstackable) thead th:first-child{
    box-shadow:none !important;
  }
}
.ui.table th .image,
.ui.table th .image img,
.ui.table td .image,
.ui.table td .image img{
  max-width:none;
}
.ui.structured.table{
  border-collapse:collapse;
}
.ui.structured.table thead th{
  border-left:none;
  border-right:none;
}
.ui.structured.sortable.table thead th{
  border-left:1px solid rgba(34, 36, 38, 0.15);
  border-right:1px solid rgba(34, 36, 38, 0.15);
}
.ui.structured.basic.table th{
  border-left:none;
  border-right:none;
}
.ui.structured.celled.table tr th,
.ui.structured.celled.table tr td{
  border-left:1px solid rgba(34, 36, 38, 0.1);
  border-right:1px solid rgba(34, 36, 38, 0.1);
}
.ui.definition.table thead:not(.full-width) th:first-child{
  pointer-events:none;
  background:transparent;
  font-weight:normal;
  color:rgba(0, 0, 0, 0.4);
  box-shadow:-1px -1px 0px 1px #ffffff;
}
.ui.definition.table tfoot:not(.full-width) th:first-child{
  pointer-events:none;
  background:transparent;
  font-weight:rgba(0, 0, 0, 0.4);
  color:normal;
  box-shadow:1px 1px 0px 1px #ffffff;
}
.ui.celled.definition.table thead:not(.full-width) th:first-child{
  box-shadow:0px -1px 0px 1px #ffffff;
}
.ui.celled.definition.table tfoot:not(.full-width) th:first-child{
  box-shadow:0px 1px 0px 1px #ffffff;
}
.ui.definition.table tr td:first-child:not(.ignored),
.ui.definition.table tr td.definition{
  background:rgba(0, 0, 0, 0.03);
  font-weight:bold;
  color:rgba(0, 0, 0, 0.95);
  text-transform:'';
  box-shadow:'';
  text-align:'';
  font-size:1em;
  padding-left:'';
  padding-right:'';
}
.ui.definition.table thead:not(.full-width) th:nth-child(2){
  border-left:1px solid rgba(34, 36, 38, 0.15);
}
.ui.definition.table tfoot:not(.full-width) th:nth-child(2){
  border-left:1px solid rgba(34, 36, 38, 0.15);
}
.ui.definition.table td:nth-child(2){
  border-left:1px solid rgba(34, 36, 38, 0.15);
}
.ui.table tr.positive,
.ui.table td.positive{
  box-shadow:0px 0px 0px #A3C293 inset;
}
.ui.table tr.positive,
.ui.table td.positive{
  background:#FCFFF5 !important;
  color:#2C662D !important;
}
.ui.table tr.negative,
.ui.table td.negative{
  box-shadow:0px 0px 0px #E0B4B4 inset;
}
.ui.table tr.negative,
.ui.table td.negative{
  background:#FFF6F6 !important;
  color:#9F3A38 !important;
}
.ui.table tr.error,
.ui.table td.error{
  box-shadow:0px 0px 0px #E0B4B4 inset;
}
.ui.table tr.error,
.ui.table td.error{
  background:#FFF6F6 !important;
  color:#9F3A38 !important;
}
.ui.table tr.warning,
.ui.table td.warning{
  box-shadow:0px 0px 0px #C9BA9B inset;
}
.ui.table tr.warning,
.ui.table td.warning{
  background:#FFFAF3 !important;
  color:#573A08 !important;
}
.ui.table tr.active,
.ui.table td.active{
  box-shadow:0px 0px 0px #333333 inset;
}
.ui.table tr.active,
.ui.table td.active{
  background:#E0E0E0 !important;
  color:#333333 !important;
}
.ui.table tr.disabled td,
.ui.table tr td.disabled,
.ui.table tr.disabled:hover,
.ui.table tr:hover td.disabled{
  pointer-events:none;
  color:rgba(40, 40, 40, 0.3);
}
@media only screen and (max-width: 991px){
  .ui[class*="tablet stackable"].table,
  .ui[class*="tablet stackable"].table tbody,
  .ui[class*="tablet stackable"].table tr,
  .ui[class*="tablet stackable"].table tr > th,
  .ui[class*="tablet stackable"].table tr > td{
    width:100% !important;
    display:block !important;
  }
  .ui[class*="tablet stackable"].table{
    padding:0em;
  }
  .ui[class*="tablet stackable"].table thead{
    display:block;
  }
  .ui[class*="tablet stackable"].table tfoot{
    display:block;
  }
  .ui[class*="tablet stackable"].table tr{
    padding-top:1em;
    padding-bottom:1em;
    box-shadow:0px -1px 0px 0px rgba(0, 0, 0, 0.1) inset !important;
  }
  .ui[class*="tablet stackable"].table tr > th,
  .ui[class*="tablet stackable"].table tr > td{
    background:none;
    border:none !important;
    padding:0.25em 0.75em;
    box-shadow:none !important;
  }
  .ui.definition[class*="tablet stackable"].table thead th:first-child{
    box-shadow:none !important;
  }
}
.ui.table[class*="left aligned"],
.ui.table [class*="left aligned"]{
  text-align:left;
}
.ui.table[class*="center aligned"],
.ui.table [class*="center aligned"]{
  text-align:center;
}
.ui.table[class*="right aligned"],
.ui.table [class*="right aligned"]{
  text-align:right;
}
.ui.table[class*="top aligned"],
.ui.table [class*="top aligned"]{
  vertical-align:top;
}
.ui.table[class*="middle aligned"],
.ui.table [class*="middle aligned"]{
  vertical-align:middle;
}
.ui.table[class*="bottom aligned"],
.ui.table [class*="bottom aligned"]{
  vertical-align:bottom;
}
.ui.table th.collapsing,
.ui.table td.collapsing{
  width:1px;
  white-space:nowrap;
}
.ui.fixed.table{
  table-layout:fixed;
}
.ui.fixed.table th,
.ui.fixed.table td{
  overflow:hidden;
  text-overflow:ellipsis;
}
.ui.selectable.table tbody tr:hover,
.ui.table tbody tr td.selectable:hover{
  background:rgba(0, 0, 0, 0.05) !important;
  color:rgba(0, 0, 0, 0.95) !important;
}
.ui.selectable.inverted.table tbody tr:hover,
.ui.inverted.table tbody tr td.selectable:hover{
  background:rgba(255, 255, 255, 0.08) !important;
  color:#ffffff !important;
}
.ui.table tbody tr td.selectable{
  padding:0em;
}
.ui.table tbody tr td.selectable > a:not(.ui){
  display:block;
  color:inherit;
  padding:0.8em 0.8em;
}
.ui.selectable.table tr.error:hover,
.ui.table tr td.selectable.error:hover,
.ui.selectable.table tr:hover td.error{
  background:#ffe7e7 !important;
  color:#943634 !important;
}
.ui.selectable.table tr.warning:hover,
.ui.table tr td.selectable.warning:hover,
.ui.selectable.table tr:hover td.warning{
  background:#fff4e4 !important;
  color:#493107 !important;
}
.ui.selectable.table tr.active:hover,
.ui.table tr td.selectable.active:hover,
.ui.selectable.table tr:hover td.active{
  background:#E0E0E0 !important;
  color:#333333 !important;
}
.ui.selectable.table tr.positive:hover,
.ui.table tr td.selectable.positive:hover,
.ui.selectable.table tr:hover td.positive{
  background:#f7ffe6 !important;
  color:#275b28 !important;
}
.ui.selectable.table tr.negative:hover,
.ui.table tr td.selectable.negative:hover,
.ui.selectable.table tr:hover td.negative{
  background:#ffe7e7 !important;
  color:#943634 !important;
}
.ui.attached.table{
  top:0px;
  bottom:0px;
  border-radius:0px;
  margin:0em -1px;
  width:calc(100% + 2px);
  max-width:calc(100% + 2px);
  box-shadow:none;
  border:1px solid #D4D4D5;
}
.ui.attached + .ui.attached.table:not(.top){
  border-top:none;
}
.ui[class*="top attached"].table{
  bottom:0px;
  margin-bottom:0em;
  top:0px;
  margin-top:1em;
  border-radius:0.4rem 0.4rem 0em 0em;
}
.ui.table[class*="top attached"]:first-child{
  margin-top:0em;
}
.ui[class*="bottom attached"].table{
  bottom:0px;
  margin-top:0em;
  top:0px;
  margin-bottom:1em;
  box-shadow:none, none;
  border-radius:0em 0em 0.4rem 0.4rem;
}
.ui[class*="bottom attached"].table:last-child{
  margin-bottom:0em;
}
.ui.striped.table > tr:nth-child(2n),
.ui.striped.table tbody tr:nth-child(2n){
  background-color:rgba(0, 0, 50, 0.02);
}
.ui.inverted.striped.table > tr:nth-child(2n),
.ui.inverted.striped.table tbody tr:nth-child(2n){
  background-color:rgba(255, 255, 255, 0.05);
}
.ui.striped.selectable.selectable.selectable.table tbody tr.active:hover{
  background:#EFEFEF !important;
  color:rgba(0, 0, 0, 0.95) !important;
}
.ui.table[class*="single line"],
.ui.table [class*="single line"]{
  white-space:nowrap;
}
.ui.table[class*="single line"],
.ui.table [class*="single line"]{
  white-space:nowrap;
}
.ui.red.table{
  border-top:0.2em solid #de3a3e;
}
.ui.inverted.red.table{
  background-color:#de3a3e !important;
  color:#ffffff !important;
}
.ui.orange.table{
  border-top:0.2em solid #ff9533;
}
.ui.inverted.orange.table{
  background-color:#ff9533 !important;
  color:#ffffff !important;
}
.ui.yellow.table{
  border-top:0.2em solid #FBBD08;
}
.ui.inverted.yellow.table{
  background-color:#FBBD08 !important;
  color:#ffffff !important;
}
.ui.olive.table{
  border-top:0.2em solid #B5CC18;
}
.ui.inverted.olive.table{
  background-color:#B5CC18 !important;
  color:#ffffff !important;
}
.ui.green.table{
  border-top:0.2em solid #19a531;
}
.ui.inverted.green.table{
  background-color:#19a531 !important;
  color:#ffffff !important;
}
.ui.teal.table{
  border-top:0.2em solid #00B5AD;
}
.ui.inverted.teal.table{
  background-color:#00B5AD !important;
  color:#ffffff !important;
}
.ui.blue.table{
  border-top:0.2em solid #3f51b5;
}
.ui.inverted.blue.table{
  background-color:#3f51b5 !important;
  color:#ffffff !important;
}
.ui.violet.table{
  border-top:0.2em solid #6435C9;
}
.ui.inverted.violet.table{
  background-color:#6435C9 !important;
  color:#ffffff !important;
}
.ui.purple.table{
  border-top:0.2em solid #A333C8;
}
.ui.inverted.purple.table{
  background-color:#A333C8 !important;
  color:#ffffff !important;
}
.ui.pink.table{
  border-top:0.2em solid #E03997;
}
.ui.inverted.pink.table{
  background-color:#E03997 !important;
  color:#ffffff !important;
}
.ui.brown.table{
  border-top:0.2em solid #A5673F;
}
.ui.inverted.brown.table{
  background-color:#A5673F !important;
  color:#ffffff !important;
}
.ui.grey.table{
  border-top:0.2em solid #767676;
}
.ui.inverted.grey.table{
  background-color:#767676 !important;
  color:#ffffff !important;
}
.ui.black.table{
  border-top:0.2em solid #000000;
}
.ui.inverted.black.table{
  background-color:#000000 !important;
  color:#ffffff !important;
}
.ui.one.column.table td{
  width:100%;
}
.ui.two.column.table td{
  width:50%;
}
.ui.three.column.table td{
  width:33.33333333%;
}
.ui.four.column.table td{
  width:25%;
}
.ui.five.column.table td{
  width:20%;
}
.ui.six.column.table td{
  width:16.66666667%;
}
.ui.seven.column.table td{
  width:14.28571429%;
}
.ui.eight.column.table td{
  width:12.5%;
}
.ui.nine.column.table td{
  width:11.11111111%;
}
.ui.ten.column.table td{
  width:10%;
}
.ui.eleven.column.table td{
  width:9.09090909%;
}
.ui.twelve.column.table td{
  width:8.33333333%;
}
.ui.thirteen.column.table td{
  width:7.69230769%;
}
.ui.fourteen.column.table td{
  width:7.14285714%;
}
.ui.fifteen.column.table td{
  width:6.66666667%;
}
.ui.sixteen.column.table td{
  width:6.25%;
}
.ui.table th.one.wide,
.ui.table td.one.wide{
  width:6.25%;
}
.ui.table th.two.wide,
.ui.table td.two.wide{
  width:12.5%;
}
.ui.table th.three.wide,
.ui.table td.three.wide{
  width:18.75%;
}
.ui.table th.four.wide,
.ui.table td.four.wide{
  width:25%;
}
.ui.table th.five.wide,
.ui.table td.five.wide{
  width:31.25%;
}
.ui.table th.six.wide,
.ui.table td.six.wide{
  width:37.5%;
}
.ui.table th.seven.wide,
.ui.table td.seven.wide{
  width:43.75%;
}
.ui.table th.eight.wide,
.ui.table td.eight.wide{
  width:50%;
}
.ui.table th.nine.wide,
.ui.table td.nine.wide{
  width:56.25%;
}
.ui.table th.ten.wide,
.ui.table td.ten.wide{
  width:62.5%;
}
.ui.table th.eleven.wide,
.ui.table td.eleven.wide{
  width:68.75%;
}
.ui.table th.twelve.wide,
.ui.table td.twelve.wide{
  width:75%;
}
.ui.table th.thirteen.wide,
.ui.table td.thirteen.wide{
  width:81.25%;
}
.ui.table th.fourteen.wide,
.ui.table td.fourteen.wide{
  width:87.5%;
}
.ui.table th.fifteen.wide,
.ui.table td.fifteen.wide{
  width:93.75%;
}
.ui.table th.sixteen.wide,
.ui.table td.sixteen.wide{
  width:100%;
}
.ui.sortable.table thead th{
  cursor:pointer;
  white-space:nowrap;
  border-left:1px solid rgba(34, 36, 38, 0.15);
  color:#333333;
}
.ui.sortable.table thead th:first-child{
  border-left:none;
}
.ui.sortable.table thead th.sorted,
.ui.sortable.table thead th.sorted:hover{
  -webkit-user-select:none;
     -moz-user-select:none;
      -ms-user-select:none;
          user-select:none;
}
.ui.sortable.table thead th:after{
  display:none;
  font-style:normal;
  font-weight:normal;
  text-decoration:inherit;
  content:'';
  height:1em;
  width:auto;
  opacity:0.8;
  margin:0em 0em 0em 0.5em;
  font-family:'Icons';
}
.ui.sortable.table thead th.ascending:after{
  content:'\f0d8';
}
.ui.sortable.table thead th.descending:after{
  content:'\f0d7';
}
.ui.sortable.table th.disabled:hover{
  cursor:auto;
  color:rgba(40, 40, 40, 0.3);
}
.ui.sortable.table thead th:hover{
  background:rgba(0, 0, 0, 0.05);
  color:rgba(0, 0, 0, 0.8);
}
.ui.sortable.table thead th.sorted{
  background:rgba(0, 0, 0, 0.05);
  color:rgba(0, 0, 0, 0.95);
}
.ui.sortable.table thead th.sorted:after{
  display:inline-block;
}
.ui.sortable.table thead th.sorted:hover{
  background:rgba(0, 0, 0, 0.05);
  color:rgba(0, 0, 0, 0.95);
}
.ui.inverted.sortable.table thead th.sorted{
  background:rgba(255, 255, 255, 0.15) linear-gradient(transparent, rgba(0, 0, 0, 0.05));
  color:#ffffff;
}
.ui.inverted.sortable.table thead th:hover{
  background:rgba(255, 255, 255, 0.08) linear-gradient(transparent, rgba(0, 0, 0, 0.05));
  color:#ffffff;
}
.ui.inverted.sortable.table thead th{
  border-left-color:transparent;
  border-right-color:transparent;
}
.ui.inverted.table{
  background:#333333;
  color:rgba(255, 255, 255, 0.9);
  border:none;
}
.ui.inverted.table th{
  background-color:rgba(0, 0, 0, 0.15);
  border-color:rgba(255, 255, 255, 0.1) !important;
  color:rgba(255, 255, 255, 0.9);
}
.ui.inverted.table tr td{
  border-color:rgba(255, 255, 255, 0.1) !important;
}
.ui.inverted.table tr.disabled td,
.ui.inverted.table tr td.disabled,
.ui.inverted.table tr.disabled:hover td,
.ui.inverted.table tr:hover td.disabled{
  pointer-events:none;
  color:rgba(225, 225, 225, 0.3);
}
.ui.inverted.definition.table tfoot:not(.full-width) th:first-child,
.ui.inverted.definition.table thead:not(.full-width) th:first-child{
  background:#ffffff;
}
.ui.inverted.definition.table tr td:first-child{
  background:rgba(255, 255, 255, 0.02);
  color:#ffffff;
}
.ui.collapsing.table{
  width:auto;
}
.ui.basic.table{
  background:transparent;
  border:1px solid rgba(34, 36, 38, 0.15);
  box-shadow:none;
}
.ui.basic.table thead,
.ui.basic.table tfoot{
  box-shadow:none;
}
.ui.basic.table th{
  background:transparent;
  border-left:none;
}
.ui.basic.table tbody tr{
  border-bottom:1px solid rgba(0, 0, 0, 0.1);
}
.ui.basic.table td{
  background:transparent;
}
.ui.basic.striped.table tbody tr:nth-child(2n){
  background-color:rgba(0, 0, 0, 0.05) !important;
}
.ui[class*="very basic"].table{
  border:none;
}
.ui[class*="very basic"].table:not(.sortable):not(.striped) th,
.ui[class*="very basic"].table:not(.sortable):not(.striped) td{
  padding:'';
}
.ui[class*="very basic"].table:not(.sortable):not(.striped) th:first-child,
.ui[class*="very basic"].table:not(.sortable):not(.striped) td:first-child{
  padding-left:0em;
}
.ui[class*="very basic"].table:not(.sortable):not(.striped) th:last-child,
.ui[class*="very basic"].table:not(.sortable):not(.striped) td:last-child{
  padding-right:0em;
}
.ui[class*="very basic"].table:not(.sortable):not(.striped) thead tr:first-child th{
  padding-top:0em;
}
.ui.celled.table tr th,
.ui.celled.table tr td{
  border-left:1px solid rgba(34, 36, 38, 0.1);
}
.ui.celled.table tr th:first-child,
.ui.celled.table tr td:first-child{
  border-left:none;
}
.ui.padded.table th{
  padding-left:1em;
  padding-right:1em;
}
.ui.padded.table th,
.ui.padded.table td{
  padding:1em 1em;
}
.ui[class*="very padded"].table th{
  padding-left:1.5em;
  padding-right:1.5em;
}
.ui[class*="very padded"].table td{
  padding:1.5em 1.5em;
}
.ui.compact.table th{
  padding-left:0.7em;
  padding-right:0.7em;
}
.ui.compact.table td{
  padding:0.5em 0.7em;
}
.ui[class*="very compact"].table th{
  padding-left:0.6em;
  padding-right:0.6em;
}
.ui[class*="very compact"].table td{
  padding:0.4em 0.6em;
}
.ui.small.table{
  font-size:0.9em;
}
.ui.table{
  font-size:1em;
}
.ui.large.table{
  font-size:1.1em;
}
/*!
 * # Semantic UI - Ad
 * http://github.com/semantic-org/semantic-ui/
 *
 *
 * Copyright 2013 Contributors
 * Released under the MIT license
 * http://opensource.org/licenses/MIT
 *
 */
.ui.ad{
  display:block;
  overflow:hidden;
  margin:1em 0em;
}
.ui.ad:first-child{
  margin:0em;
}
.ui.ad:last-child{
  margin:0em;
}
.ui.ad iframe{
  margin:0em;
  padding:0em;
  border:none;
  overflow:hidden;
}
.ui.leaderboard.ad{
  width:728px;
  height:90px;
}
.ui[class*="medium rectangle"].ad{
  width:300px;
  height:250px;
}
.ui[class*="large rectangle"].ad{
  width:336px;
  height:280px;
}
.ui[class*="half page"].ad{
  width:300px;
  height:600px;
}
.ui.square.ad{
  width:250px;
  height:250px;
}
.ui[class*="small square"].ad{
  width:200px;
  height:200px;
}
.ui[class*="small rectangle"].ad{
  width:180px;
  height:150px;
}
.ui[class*="vertical rectangle"].ad{
  width:240px;
  height:400px;
}
.ui.button.ad{
  width:120px;
  height:90px;
}
.ui[class*="square button"].ad{
  width:125px;
  height:125px;
}
.ui[class*="small button"].ad{
  width:120px;
  height:60px;
}
.ui.skyscraper.ad{
  width:120px;
  height:600px;
}
.ui[class*="wide skyscraper"].ad{
  width:160px;
}
.ui.banner.ad{
  width:468px;
  height:60px;
}
.ui[class*="vertical banner"].ad{
  width:120px;
  height:240px;
}
.ui[class*="top banner"].ad{
  width:930px;
  height:180px;
}
.ui[class*="half banner"].ad{
  width:234px;
  height:60px;
}
.ui[class*="large leaderboard"].ad{
  width:970px;
  height:90px;
}
.ui.billboard.ad{
  width:970px;
  height:250px;
}
.ui.panorama.ad{
  width:980px;
  height:120px;
}
.ui.netboard.ad{
  width:580px;
  height:400px;
}
.ui[class*="large mobile banner"].ad{
  width:320px;
  height:100px;
}
.ui[class*="mobile leaderboard"].ad{
  width:320px;
  height:50px;
}
.ui.mobile.ad{
  display:none;
}
@media only screen and (max-width: 767px){
  .ui.mobile.ad{
    display:block;
  }
}
.ui.centered.ad{
  margin-left:auto;
  margin-right:auto;
}
.ui.test.ad{
  position:relative;
  background:#545454;
}
.ui.test.ad:after{
  position:absolute;
  top:50%;
  left:50%;
  width:100%;
  text-align:center;
  transform:translateX(-50%) translateY(-50%);
  content:'Ad';
  color:#ffffff;
  font-size:1em;
  font-weight:bold;
}
.ui.mobile.test.ad:after{
  font-size:0.9em;
}
.ui.test.ad[data-text]:after{
  content:attr(data-text);
}
/*!
 * # Semantic UI - Item
 * http://github.com/semantic-org/semantic-ui/
 *
 *
 * Released under the MIT license
 * http://opensource.org/licenses/MIT
 *
 */
.ui.cards > .card,
.ui.card{
  max-width:100%;
  position:relative;
  display:flex;
  flex-direction:column;
  width:290px;
  min-height:0px;
  background:#ffffff;
  padding:0em;
  border:none;
  border-radius:0.4rem;
  box-shadow:0px 1px 3px 0px #D4D4D5, 0px 0px 0px 1px #D4D4D5;
  transition:box-shadow 0.1s ease, transform 0.1s ease;
  z-index:'';
}
.ui.card{
  margin:1em 0em;
}
.ui.cards > .card a,
.ui.card a{
  cursor:pointer;
}
.ui.card:first-child{
  margin-top:0em;
}
.ui.card:last-child{
  margin-bottom:0em;
}
.ui.cards{
  display:flex;
  margin:-0.875em -0.5em;
  flex-wrap:wrap;
}
.ui.cards > .card{
  display:flex;
  margin:0.875em 0.5em;
  float:none;
}
.ui.cards:after,
.ui.card:after{
  display:block;
  content:' ';
  height:0px;
  clear:both;
  overflow:hidden;
  visibility:hidden;
}
.ui.cards ~ .ui.cards{
  margin-top:0.875em;
}
.ui.cards > .card > :first-child,
.ui.card > :first-child{
  border-radius:0.4rem 0.4rem 0em 0em !important;
  border-top:none !important;
}
.ui.cards > .card > :last-child,
.ui.card > :last-child{
  border-radius:0em 0em 0.4rem 0.4rem !important;
}
.ui.cards > .card > :only-child,
.ui.card > :only-child{
  border-radius:0.4rem !important;
}
.ui.cards > .card > .image,
.ui.card > .image{
  position:relative;
  display:block;
  flex:0 0 auto;
  padding:0em;
  background:rgba(0, 0, 0, 0.05);
}
.ui.cards > .card > .image > img,
.ui.card > .image > img{
  display:block;
  width:100%;
  height:auto;
  border-radius:inherit;
}
.ui.cards > .card > .image:not(.ui) > img,
.ui.card > .image:not(.ui) > img{
  border:none;
}
.ui.cards > .card > .content,
.ui.card > .content{
  flex-grow:1;
  border:none;
  border-top:1px solid rgba(34, 36, 38, 0.1);
  background:none;
  margin:0em;
  padding:1em 1em;
  box-shadow:none;
  font-size:1em;
  border-radius:0em;
}
.ui.cards > .card > .content:after,
.ui.card > .content:after{
  display:block;
  content:' ';
  height:0px;
  clear:both;
  overflow:hidden;
  visibility:hidden;
}
.ui.cards > .card > .content > .header,
.ui.card > .content > .header{
  display:block;
  margin:'';
  font-family:'Exo 2', 'Lato', Arial, Helvetica, sans-serif;
  color:rgba(0, 0, 0, 0.85);
}
.ui.cards > .card > .content > .header:not(.ui),
.ui.card > .content > .header:not(.ui){
  font-weight:bold;
  font-size:1.3em;
  margin-top:-0.21425em;
  line-height:1.28571429em;
}
.ui.cards > .card > .content > .meta + .description,
.ui.cards > .card > .content > .header + .description,
.ui.card > .content > .meta + .description,
.ui.card > .content > .header + .description{
  margin-top:0.5em;
}
.ui.cards > .card [class*="left floated"],
.ui.card [class*="left floated"]{
  float:left;
}
.ui.cards > .card [class*="right floated"],
.ui.card [class*="right floated"]{
  float:right;
}
.ui.cards > .card [class*="left aligned"],
.ui.card [class*="left aligned"]{
  text-align:left;
}
.ui.cards > .card [class*="center aligned"],
.ui.card [class*="center aligned"]{
  text-align:center;
}
.ui.cards > .card [class*="right aligned"],
.ui.card [class*="right aligned"]{
  text-align:right;
}
.ui.cards > .card .content img,
.ui.card .content img{
  display:inline-block;
  vertical-align:middle;
  width:'';
}
.ui.cards > .card img.avatar,
.ui.cards > .card .avatar img,
.ui.card img.avatar,
.ui.card .avatar img{
  width:2em;
  height:2em;
  border-radius:500rem;
}
.ui.cards > .card > .content > .description,
.ui.card > .content > .description{
  clear:both;
  color:rgba(0, 0, 0, 0.68);
}
.ui.cards > .card > .content p,
.ui.card > .content p{
  margin:0em 0em 0.5em;
}
.ui.cards > .card > .content p:last-child,
.ui.card > .content p:last-child{
  margin-bottom:0em;
}
.ui.cards > .card .meta,
.ui.card .meta{
  font-size:1em;
  color:rgba(0, 0, 0, 0.4);
}
.ui.cards > .card .meta *,
.ui.card .meta *{
  margin-right:0.3em;
}
.ui.cards > .card .meta :last-child,
.ui.card .meta :last-child{
  margin-right:0em;
}
.ui.cards > .card .meta [class*="right floated"],
.ui.card .meta [class*="right floated"]{
  margin-right:0em;
  margin-left:0.3em;
}
.ui.cards > .card > .content a:not(.ui),
.ui.card > .content a:not(.ui){
  color:'';
  transition:color 0.1s ease;
}
.ui.cards > .card > .content a:not(.ui):hover,
.ui.card > .content a:not(.ui):hover{
  color:'';
}
.ui.cards > .card > .content > a.header,
.ui.card > .content > a.header{
  color:rgba(0, 0, 0, 0.85);
}
.ui.cards > .card > .content > a.header:hover,
.ui.card > .content > a.header:hover{
  color:#1e70bf;
}
.ui.cards > .card .meta > a:not(.ui),
.ui.card .meta > a:not(.ui){
  color:rgba(0, 0, 0, 0.4);
}
.ui.cards > .card .meta > a:not(.ui):hover,
.ui.card .meta > a:not(.ui):hover{
  color:#333333;
}
.ui.cards > .card > .buttons,
.ui.card > .buttons,
.ui.cards > .card > .button,
.ui.card > .button{
  margin:0px -1px;
  width:calc(100% + 2px);
}
.ui.cards > .card .dimmer,
.ui.card .dimmer{
  background-color:'';
  z-index:10;
}
.ui.cards > .card > .content .star.icon,
.ui.card > .content .star.icon{
  cursor:pointer;
  opacity:0.75;
  transition:color 0.1s ease;
}
.ui.cards > .card > .content .star.icon:hover,
.ui.card > .content .star.icon:hover{
  opacity:1;
  color:#FFB70A;
}
.ui.cards > .card > .content .active.star.icon,
.ui.card > .content .active.star.icon{
  color:#FFE623;
}
.ui.cards > .card > .content .like.icon,
.ui.card > .content .like.icon{
  cursor:pointer;
  opacity:0.75;
  transition:color 0.1s ease;
}
.ui.cards > .card > .content .like.icon:hover,
.ui.card > .content .like.icon:hover{
  opacity:1;
  color:#FF2733;
}
.ui.cards > .card > .content .active.like.icon,
.ui.card > .content .active.like.icon{
  color:#FF2733;
}
.ui.cards > .card > .extra,
.ui.card > .extra{
  max-width:100%;
  min-height:0em !important;
  flex-grow:0;
  border-top:1px solid rgba(0, 0, 0, 0.05) !important;
  position:static;
  background:none;
  width:auto;
  margin:0em 0em;
  padding:0.75em 1em;
  top:0em;
  left:0em;
  color:rgba(0, 0, 0, 0.4);
  box-shadow:none;
  transition:color 0.1s ease;
}
.ui.cards > .card > .extra a:not(.ui),
.ui.card > .extra a:not(.ui){
  color:rgba(0, 0, 0, 0.4);
}
.ui.cards > .card > .extra a:not(.ui):hover,
.ui.card > .extra a:not(.ui):hover{
  color:#1e70bf;
}
.ui.raised.cards > .card,
.ui.raised.card{
  box-shadow:0px 0px 0px 1px #D4D4D5, 0px 2px 4px 0px rgba(34, 36, 38, 0.12), 0px 2px 10px 0px rgba(34, 36, 38, 0.15);
}
.ui.raised.cards a.card:hover,
.ui.link.cards .raised.card:hover,
a.ui.raised.card:hover,
.ui.link.raised.card:hover{
  box-shadow:0px 0px 0px 1px #D4D4D5, 0px 2px 4px 0px rgba(34, 36, 38, 0.15), 0px 2px 10px 0px rgba(34, 36, 38, 0.25);
}
.ui.raised.cards > .card,
.ui.raised.card{
  box-shadow:0px 0px 0px 1px #D4D4D5, 0px 2px 4px 0px rgba(34, 36, 38, 0.12), 0px 2px 10px 0px rgba(34, 36, 38, 0.15);
}
.ui.centered.cards{
  justify-content:center;
}
.ui.centered.card{
  margin-left:auto;
  margin-right:auto;
}
.ui.fluid.card{
  width:100%;
  max-width:9999px;
}
.ui.cards a.card,
.ui.link.cards .card,
a.ui.card,
.ui.link.card{
  transform:none;
}
.ui.cards a.card:hover,
.ui.link.cards .card:hover,
a.ui.card:hover,
.ui.link.card:hover{
  cursor:pointer;
  z-index:5;
  background:#ffffff;
  border:none;
  box-shadow:0px 1px 3px 0px #BCBDBD, 0px 0px 0px 1px #D4D4D5;
  transform:translateY(-3px);
}
.ui.red.cards > .card,
.ui.cards > .red.card,
.ui.red.card{
  box-shadow:0px 0px 0px 1px #D4D4D5, 0px 2px 0px 0px #de3a3e, 0px 1px 3px 0px #D4D4D5;
}
.ui.red.cards > .card:hover,
.ui.cards > .red.card:hover,
.ui.red.card:hover{
  box-shadow:0px 0px 0px 1px #D4D4D5, 0px 2px 0px 0px #e31b20, 0px 1px 3px 0px #BCBDBD;
}
.ui.orange.cards > .card,
.ui.cards > .orange.card,
.ui.orange.card{
  box-shadow:0px 0px 0px 1px #D4D4D5, 0px 2px 0px 0px #ff9533, 0px 1px 3px 0px #D4D4D5;
}
.ui.orange.cards > .card:hover,
.ui.cards > .orange.card:hover,
.ui.orange.card:hover{
  box-shadow:0px 0px 0px 1px #D4D4D5, 0px 2px 0px 0px #ff8819, 0px 1px 3px 0px #BCBDBD;
}
.ui.yellow.cards > .card,
.ui.cards > .yellow.card,
.ui.yellow.card{
  box-shadow:0px 0px 0px 1px #D4D4D5, 0px 2px 0px 0px #FBBD08, 0px 1px 3px 0px #D4D4D5;
}
.ui.yellow.cards > .card:hover,
.ui.cards > .yellow.card:hover,
.ui.yellow.card:hover{
  box-shadow:0px 0px 0px 1px #D4D4D5, 0px 2px 0px 0px #eaae00, 0px 1px 3px 0px #BCBDBD;
}
.ui.olive.cards > .card,
.ui.cards > .olive.card,
.ui.olive.card{
  box-shadow:0px 0px 0px 1px #D4D4D5, 0px 2px 0px 0px #B5CC18, 0px 1px 3px 0px #D4D4D5;
}
.ui.olive.cards > .card:hover,
.ui.cards > .olive.card:hover,
.ui.olive.card:hover{
  box-shadow:0px 0px 0px 1px #D4D4D5, 0px 2px 0px 0px #a7bd0d, 0px 1px 3px 0px #BCBDBD;
}
.ui.green.cards > .card,
.ui.cards > .green.card,
.ui.green.card{
  box-shadow:0px 0px 0px 1px #D4D4D5, 0px 2px 0px 0px #19a531, 0px 1px 3px 0px #D4D4D5;
}
.ui.green.cards > .card:hover,
.ui.cards > .green.card:hover,
.ui.green.card:hover{
  box-shadow:0px 0px 0px 1px #D4D4D5, 0px 2px 0px 0px #109526, 0px 1px 3px 0px #BCBDBD;
}
.ui.teal.cards > .card,
.ui.cards > .teal.card,
.ui.teal.card{
  box-shadow:0px 0px 0px 1px #D4D4D5, 0px 2px 0px 0px #00B5AD, 0px 1px 3px 0px #D4D4D5;
}
.ui.teal.cards > .card:hover,
.ui.cards > .teal.card:hover,
.ui.teal.card:hover{
  box-shadow:0px 0px 0px 1px #D4D4D5, 0px 2px 0px 0px #009c95, 0px 1px 3px 0px #BCBDBD;
}
.ui.blue.cards > .card,
.ui.cards > .blue.card,
.ui.blue.card{
  box-shadow:0px 0px 0px 1px #D4D4D5, 0px 2px 0px 0px #3f51b5, 0px 1px 3px 0px #D4D4D5;
}
.ui.blue.cards > .card:hover,
.ui.cards > .blue.card:hover,
.ui.blue.card:hover{
  box-shadow:0px 0px 0px 1px #D4D4D5, 0px 2px 0px 0px #3345a7, 0px 1px 3px 0px #BCBDBD;
}
.ui.violet.cards > .card,
.ui.cards > .violet.card,
.ui.violet.card{
  box-shadow:0px 0px 0px 1px #D4D4D5, 0px 2px 0px 0px #6435C9, 0px 1px 3px 0px #D4D4D5;
}
.ui.violet.cards > .card:hover,
.ui.cards > .violet.card:hover,
.ui.violet.card:hover{
  box-shadow:0px 0px 0px 1px #D4D4D5, 0px 2px 0px 0px #5829bb, 0px 1px 3px 0px #BCBDBD;
}
.ui.purple.cards > .card,
.ui.cards > .purple.card,
.ui.purple.card{
  box-shadow:0px 0px 0px 1px #D4D4D5, 0px 2px 0px 0px #A333C8, 0px 1px 3px 0px #D4D4D5;
}
.ui.purple.cards > .card:hover,
.ui.cards > .purple.card:hover,
.ui.purple.card:hover{
  box-shadow:0px 0px 0px 1px #D4D4D5, 0px 2px 0px 0px #9627ba, 0px 1px 3px 0px #BCBDBD;
}
.ui.pink.cards > .card,
.ui.cards > .pink.card,
.ui.pink.card{
  box-shadow:0px 0px 0px 1px #D4D4D5, 0px 2px 0px 0px #E03997, 0px 1px 3px 0px #D4D4D5;
}
.ui.pink.cards > .card:hover,
.ui.cards > .pink.card:hover,
.ui.pink.card:hover{
  box-shadow:0px 0px 0px 1px #D4D4D5, 0px 2px 0px 0px #e61a8d, 0px 1px 3px 0px #BCBDBD;
}
.ui.brown.cards > .card,
.ui.cards > .brown.card,
.ui.brown.card{
  box-shadow:0px 0px 0px 1px #D4D4D5, 0px 2px 0px 0px #A5673F, 0px 1px 3px 0px #D4D4D5;
}
.ui.brown.cards > .card:hover,
.ui.cards > .brown.card:hover,
.ui.brown.card:hover{
  box-shadow:0px 0px 0px 1px #D4D4D5, 0px 2px 0px 0px #975b33, 0px 1px 3px 0px #BCBDBD;
}
.ui.grey.cards > .card,
.ui.cards > .grey.card,
.ui.grey.card{
  box-shadow:0px 0px 0px 1px #D4D4D5, 0px 2px 0px 0px #767676, 0px 1px 3px 0px #D4D4D5;
}
.ui.grey.cards > .card:hover,
.ui.cards > .grey.card:hover,
.ui.grey.card:hover{
  box-shadow:0px 0px 0px 1px #D4D4D5, 0px 2px 0px 0px #838383, 0px 1px 3px 0px #BCBDBD;
}
.ui.black.cards > .card,
.ui.cards > .black.card,
.ui.black.card{
  box-shadow:0px 0px 0px 1px #D4D4D5, 0px 2px 0px 0px #000000, 0px 1px 3px 0px #D4D4D5;
}
.ui.black.cards > .card:hover,
.ui.cards > .black.card:hover,
.ui.black.card:hover{
  box-shadow:0px 0px 0px 1px #D4D4D5, 0px 2px 0px 0px #0d0d0d, 0px 1px 3px 0px #BCBDBD;
}
.ui.one.cards{
  margin-left:0em;
  margin-right:0em;
}
.ui.one.cards > .card{
  width:100%;
}
.ui.two.cards{
  margin-left:-1em;
  margin-right:-1em;
}
.ui.two.cards > .card{
  width:calc(50% - 2em);
  margin-left:1em;
  margin-right:1em;
}
.ui.three.cards{
  margin-left:-1em;
  margin-right:-1em;
}
.ui.three.cards > .card{
  width:calc(33.33333333333333% - 2em);
  margin-left:1em;
  margin-right:1em;
}
.ui.four.cards{
  margin-left:-0.75em;
  margin-right:-0.75em;
}
.ui.four.cards > .card{
  width:calc(25% - 1.5em);
  margin-left:0.75em;
  margin-right:0.75em;
}
.ui.five.cards{
  margin-left:-0.75em;
  margin-right:-0.75em;
}
.ui.five.cards > .card{
  width:calc(20% - 1.5em);
  margin-left:0.75em;
  margin-right:0.75em;
}
.ui.six.cards{
  margin-left:-0.75em;
  margin-right:-0.75em;
}
.ui.six.cards > .card{
  width:calc(16.666666666666664% - 1.5em);
  margin-left:0.75em;
  margin-right:0.75em;
}
.ui.seven.cards{
  margin-left:-0.5em;
  margin-right:-0.5em;
}
.ui.seven.cards > .card{
  width:calc(14.285714285714285% - 1em);
  margin-left:0.5em;
  margin-right:0.5em;
}
.ui.eight.cards{
  margin-left:-0.5em;
  margin-right:-0.5em;
}
.ui.eight.cards > .card{
  width:calc(12.5% - 1em);
  margin-left:0.5em;
  margin-right:0.5em;
  font-size:11px;
}
.ui.nine.cards{
  margin-left:-0.5em;
  margin-right:-0.5em;
}
.ui.nine.cards > .card{
  width:calc(11.11111111111111% - 1em);
  margin-left:0.5em;
  margin-right:0.5em;
  font-size:10px;
}
.ui.ten.cards{
  margin-left:-0.5em;
  margin-right:-0.5em;
}
.ui.ten.cards > .card{
  width:calc(10% - 1em);
  margin-left:0.5em;
  margin-right:0.5em;
}
@media only screen and (max-width: 767px){
  .ui.two.doubling.cards{
    margin-left:0em;
    margin-right:0em;
  }
  .ui.two.doubling.cards .card{
    width:100%;
    margin-left:0em;
    margin-right:0em;
  }
  .ui.three.doubling.cards{
    margin-left:-1em;
    margin-right:-1em;
  }
  .ui.three.doubling.cards .card{
    width:calc(50% - 2em);
    margin-left:1em;
    margin-right:1em;
  }
  .ui.four.doubling.cards{
    margin-left:-1em;
    margin-right:-1em;
  }
  .ui.four.doubling.cards .card{
    width:calc(50% - 2em);
    margin-left:1em;
    margin-right:1em;
  }
  .ui.five.doubling.cards{
    margin-left:-1em;
    margin-right:-1em;
  }
  .ui.five.doubling.cards .card{
    width:calc(50% - 2em);
    margin-left:1em;
    margin-right:1em;
  }
  .ui.six.doubling.cards{
    margin-left:-1em;
    margin-right:-1em;
  }
  .ui.six.doubling.cards .card{
    width:calc(50% - 2em);
    margin-left:1em;
    margin-right:1em;
  }
  .ui.seven.doubling.cards{
    margin-left:-1em;
    margin-right:-1em;
  }
  .ui.seven.doubling.cards .card{
    width:calc(33.33333333333333% - 2em);
    margin-left:1em;
    margin-right:1em;
  }
  .ui.eight.doubling.cards{
    margin-left:-1em;
    margin-right:-1em;
  }
  .ui.eight.doubling.cards .card{
    width:calc(33.33333333333333% - 2em);
    margin-left:1em;
    margin-right:1em;
  }
  .ui.nine.doubling.cards{
    margin-left:-1em;
    margin-right:-1em;
  }
  .ui.nine.doubling.cards .card{
    width:calc(33.33333333333333% - 2em);
    margin-left:1em;
    margin-right:1em;
  }
  .ui.ten.doubling.cards{
    margin-left:-1em;
    margin-right:-1em;
  }
  .ui.ten.doubling.cards .card{
    width:calc(33.33333333333333% - 2em);
    margin-left:1em;
    margin-right:1em;
  }
}
@media only screen and (min-width: 768px) and (max-width: 991px){
  .ui.two.doubling.cards{
    margin-left:0em;
    margin-right:0em;
  }
  .ui.two.doubling.cards .card{
    width:100%;
    margin-left:0em;
    margin-right:0em;
  }
  .ui.three.doubling.cards{
    margin-left:-1em;
    margin-right:-1em;
  }
  .ui.three.doubling.cards .card{
    width:calc(50% - 2em);
    margin-left:1em;
    margin-right:1em;
  }
  .ui.four.doubling.cards{
    margin-left:-1em;
    margin-right:-1em;
  }
  .ui.four.doubling.cards .card{
    width:calc(50% - 2em);
    margin-left:1em;
    margin-right:1em;
  }
  .ui.five.doubling.cards{
    margin-left:-1em;
    margin-right:-1em;
  }
  .ui.five.doubling.cards .card{
    width:calc(33.33333333333333% - 2em);
    margin-left:1em;
    margin-right:1em;
  }
  .ui.six.doubling.cards{
    margin-left:-1em;
    margin-right:-1em;
  }
  .ui.six.doubling.cards .card{
    width:calc(33.33333333333333% - 2em);
    margin-left:1em;
    margin-right:1em;
  }
  .ui.eight.doubling.cards{
    margin-left:-1em;
    margin-right:-1em;
  }
  .ui.eight.doubling.cards .card{
    width:calc(33.33333333333333% - 2em);
    margin-left:1em;
    margin-right:1em;
  }
  .ui.eight.doubling.cards{
    margin-left:-0.75em;
    margin-right:-0.75em;
  }
  .ui.eight.doubling.cards .card{
    width:calc(25% - 1.5em);
    margin-left:0.75em;
    margin-right:0.75em;
  }
  .ui.nine.doubling.cards{
    margin-left:-0.75em;
    margin-right:-0.75em;
  }
  .ui.nine.doubling.cards .card{
    width:calc(25% - 1.5em);
    margin-left:0.75em;
    margin-right:0.75em;
  }
  .ui.ten.doubling.cards{
    margin-left:-0.75em;
    margin-right:-0.75em;
  }
  .ui.ten.doubling.cards .card{
    width:calc(20% - 1.5em);
    margin-left:0.75em;
    margin-right:0.75em;
  }
}
@media only screen and (max-width: 767px){
  .ui.stackable.cards{
    display:block !important;
  }
  .ui.stackable.cards .card:first-child{
    margin-top:0em !important;
  }
  .ui.stackable.cards > .card{
    display:block !important;
    height:auto !important;
    margin:1em 1em;
    padding:0 !important;
    width:calc(100% - 2em) !important;
  }
}
.ui.cards > .card{
  font-size:1em;
}
/*!
 * # Semantic UI - Comment
 * http://github.com/semantic-org/semantic-ui/
 *
 *
 * Released under the MIT license
 * http://opensource.org/licenses/MIT
 *
 */
.ui.comments{
  margin:1.5em 0em;
  max-width:650px;
}
.ui.comments:first-child{
  margin-top:0em;
}
.ui.comments:last-child{
  margin-bottom:0em;
}
.ui.comments .comment{
  position:relative;
  background:none;
  margin:0.5em 0em 0em;
  padding:0.5em 0em 0em;
  border:none;
  border-top:none;
  line-height:1.2;
}
.ui.comments .comment:first-child{
  margin-top:0em;
  padding-top:0em;
}
.ui.comments .comment .comments{
  margin:0em 0em 0.5em 0.5em;
  padding:1em 0em 1em 1em;
}
.ui.comments .comment .comments:before{
  position:absolute;
  top:0px;
  left:0px;
}
.ui.comments .comment .comments .comment{
  border:none;
  border-top:none;
  background:none;
}
.ui.comments .comment .avatar{
  display:block;
  width:2.5em;
  height:auto;
  float:left;
  margin:0.2em 0em 0em;
}
.ui.comments .comment img.avatar,
.ui.comments .comment .avatar img{
  display:block;
  margin:0em auto;
  width:100%;
  height:100%;
  border-radius:0.25rem;
}
.ui.comments .comment > .content{
  display:block;
}
.ui.comments .comment > .avatar ~ .content{
  margin-left:3.5em;
}
.ui.comments .comment .author{
  font-size:1em;
  color:#333333;
  font-weight:bold;
}
.ui.comments .comment a.author{
  cursor:pointer;
}
.ui.comments .comment a.author:hover{
  color:#1e70bf;
}
.ui.comments .comment .metadata{
  display:inline-block;
  margin-left:0.5em;
  color:rgba(0, 0, 0, 0.4);
  font-size:0.875em;
}
.ui.comments .comment .metadata > *{
  display:inline-block;
  margin:0em 0.5em 0em 0em;
}
.ui.comments .comment .metadata > :last-child{
  margin-right:0em;
}
.ui.comments .comment .text{
  margin:0.25em 0em 0.5em;
  font-size:1em;
  word-wrap:break-word;
  color:#333333;
  line-height:1.3;
}
.ui.comments .comment .actions{
  font-size:0.875em;
}
.ui.comments .comment .actions a{
  cursor:pointer;
  display:inline-block;
  margin:0em 0.75em 0em 0em;
  color:rgba(0, 0, 0, 0.4);
}
.ui.comments .comment .actions a:last-child{
  margin-right:0em;
}
.ui.comments .comment .actions a.active,
.ui.comments .comment .actions a:hover{
  color:rgba(0, 0, 0, 0.8);
}
.ui.comments > .reply.form{
  margin-top:1em;
}
.ui.comments .comment .reply.form{
  width:100%;
  margin-top:1em;
}
.ui.comments .reply.form textarea{
  font-size:1em;
  height:12em;
}
.ui.collapsed.comments,
.ui.comments .collapsed.comments,
.ui.comments .collapsed.comment{
  display:none;
}
.ui.threaded.comments .comment .comments{
  margin:-1.5em 0 -1em 1.25em;
  padding:3em 0em 2em 2.25em;
  box-shadow:-1px 0px 0px rgba(34, 36, 38, 0.15);
}
.ui.minimal.comments .comment .actions{
  opacity:0;
  position:absolute;
  top:0px;
  right:0px;
  left:auto;
  transition:opacity 0.2s ease;
  transition-delay:0.1s;
}
.ui.minimal.comments .comment > .content:hover > .actions{
  opacity:1;
}
.ui.mini.comments{
  font-size:0.8rem;
}
.ui.tiny.comments{
  font-size:0.9rem;
}
.ui.small.comments{
  font-size:0.9em;
}
.ui.comments{
  font-size:1em;
}
.ui.large.comments{
  font-size:1.1em;
}
.ui.big.comments{
  font-size:1.3rem;
}
.ui.huge.comments{
  font-size:1.2em;
}
.ui.massive.comments{
  font-size:1.7rem;
}
/*!
 * # Semantic UI - Feed
 * http://github.com/semantic-org/semantic-ui/
 *
 *
 * Released under the MIT license
 * http://opensource.org/licenses/MIT
 *
 */
.ui.feed{
  margin:1em 0em;
}
.ui.feed:first-child{
  margin-top:0em;
}
.ui.feed:last-child{
  margin-bottom:0em;
}
.ui.feed > .event{
  display:flex;
  flex-direction:row;
  width:100%;
  padding:0.3rem 0em;
  margin:0em;
  background:none;
  border-top:none;
}
.ui.feed > .event:first-child{
  border-top:0px;
  padding-top:0em;
}
.ui.feed > .event:last-child{
  padding-bottom:0em;
}
.ui.feed > .event > .label{
  display:block;
  flex:0 0 auto;
  width:2.5em;
  height:auto;
  align-self:stretch;
  text-align:left;
}
.ui.feed > .event > .label .icon{
  opacity:1;
  font-size:1.5em;
  width:100%;
  padding:0.25em;
  background:none;
  border:none;
  border-radius:none;
  color:rgba(0, 0, 0, 0.6);
}
.ui.feed > .event > .label img{
  width:100%;
  height:auto;
  border-radius:500rem;
}
.ui.feed > .event > .label + .content{
  margin:0.5em 0em 0.5em 1.1em;
}
.ui.feed > .event > .content{
  display:block;
  flex:1 1 auto;
  align-self:stretch;
  text-align:left;
  word-wrap:break-word;
}
.ui.feed > .event:last-child > .content{
  padding-bottom:0em;
}
.ui.feed > .event > .content a{
  cursor:pointer;
}
.ui.feed > .event > .content .date{
  margin:-0.5rem 0em 0em;
  padding:0em;
  font-weight:normal;
  font-size:1em;
  font-style:normal;
  color:rgba(0, 0, 0, 0.4);
}
.ui.feed > .event > .content .summary{
  margin:0em;
  font-size:1em;
  font-weight:bold;
  color:#333333;
}
.ui.feed > .event > .content .summary img{
  display:inline-block;
  width:auto;
  height:10em;
  margin:-0.25em 0.25em 0em 0em;
  border-radius:0.25em;
  vertical-align:middle;
}
.ui.feed > .event > .content .user{
  display:inline-block;
  font-weight:bold;
  margin-right:0em;
  vertical-align:baseline;
}
.ui.feed > .event > .content .user img{
  margin:-0.25em 0.25em 0em 0em;
  width:auto;
  height:10em;
  vertical-align:middle;
}
.ui.feed > .event > .content .summary > .date{
  display:inline-block;
  float:none;
  font-weight:normal;
  font-size:0.9em;
  font-style:normal;
  margin:0em 0em 0em 0.5em;
  padding:0em;
  color:rgba(0, 0, 0, 0.4);
}
.ui.feed > .event > .content .extra{
  margin:0.5em 0em 0em;
  background:none;
  padding:0em;
  color:#333333;
}
.ui.feed > .event > .content .extra.images img{
  display:inline-block;
  margin:0em 0.25em 0em 0em;
  width:6em;
}
.ui.feed > .event > .content .extra.text{
  padding:0em;
  border-left:none;
  font-size:1em;
  max-width:500px;
  line-height:1.4285em;
}
.ui.feed > .event > .content .meta{
  display:inline-block;
  font-size:0.9em;
  margin:0.5em 0em 0em;
  background:none;
  border:none;
  border-radius:0;
  box-shadow:none;
  padding:0em;
  color:rgba(0, 0, 0, 0.6);
}
.ui.feed > .event > .content .meta > *{
  position:relative;
  margin-left:0.75em;
}
.ui.feed > .event > .content .meta > *:after{
  content:'';
  color:rgba(0, 0, 0, 0.2);
  top:0em;
  left:-1em;
  opacity:1;
  position:absolute;
  vertical-align:top;
}
.ui.feed > .event > .content .meta .like{
  color:'';
  transition:0.2s color ease;
}
.ui.feed > .event > .content .meta .like:hover .icon{
  color:#FF2733;
}
.ui.feed > .event > .content .meta .active.like .icon{
  color:#EF404A;
}
.ui.feed > .event > .content .meta > :first-child{
  margin-left:0em;
}
.ui.feed > .event > .content .meta > :first-child::after{
  display:none;
}
.ui.feed > .event > .content .meta a,
.ui.feed > .event > .content .meta > .icon{
  cursor:pointer;
  opacity:1;
  color:rgba(0, 0, 0, 0.5);
  transition:color 0.1s ease;
}
.ui.feed > .event > .content .meta a:hover,
.ui.feed > .event > .content .meta a:hover .icon,
.ui.feed > .event > .content .meta > .icon:hover{
  color:rgba(0, 0, 0, 0.95);
}
.ui.small.feed{
  font-size:0.9rem;
}
.ui.feed{
  font-size:1rem;
}
.ui.large.feed{
  font-size:1.1rem;
}
/*!
 * # Semantic UI - Item
 * http://github.com/semantic-org/semantic-ui/
 *
 *
 * Released under the MIT license
 * http://opensource.org/licenses/MIT
 *
 */
.ui.items > .item{
  display:flex;
  margin:1em 0em;
  width:100%;
  min-height:0px;
  background:transparent;
  padding:0em;
  border:none;
  border-radius:0rem;
  box-shadow:none;
  transition:box-shadow 0.1s ease;
  z-index:'';
}
.ui.items > .item a{
  cursor:pointer;
}
.ui.items{
  margin:1.5em 0em;
}
.ui.items:first-child{
  margin-top:0em !important;
}
.ui.items:last-child{
  margin-bottom:0em !important;
}
.ui.items > .item:after{
  display:block;
  content:' ';
  height:0px;
  clear:both;
  overflow:hidden;
  visibility:hidden;
}
.ui.items > .item:first-child{
  margin-top:0em;
}
.ui.items > .item:last-child{
  margin-bottom:0em;
}
.ui.items > .item > .image{
  position:relative;
  flex:0 0 auto;
  display:block;
  float:none;
  margin:0em;
  padding:0em;
  max-height:'';
  align-self:top;
}
.ui.items > .item > .image > img{
  display:block;
  width:100%;
  height:auto;
  border-radius:0.125rem;
  border:none;
}
.ui.items > .item > .image:only-child > img{
  border-radius:0rem;
}
.ui.items > .item > .content{
  display:block;
  flex:1 1 auto;
  background:none;
  margin:0em;
  padding:0em;
  box-shadow:none;
  font-size:1em;
  border:none;
  border-radius:0em;
}
.ui.items > .item > .content:after{
  display:block;
  content:' ';
  height:0px;
  clear:both;
  overflow:hidden;
  visibility:hidden;
}
.ui.items > .item > .image + .content{
  min-width:0;
  width:auto;
  display:block;
  margin-left:0em;
  align-self:top;
  padding-left:1.5em;
}
.ui.items > .item > .content > .header{
  display:inline-block;
  margin:-0.21425em 0em 0em;
  font-family:'Exo 2', 'Lato', Arial, Helvetica, sans-serif;
  font-weight:bold;
  color:rgba(0, 0, 0, 0.85);
}
.ui.items > .item > .content > .header:not(.ui){
  font-size:1.3em;
}
.ui.items > .item [class*="left floated"]{
  float:left;
}
.ui.items > .item [class*="right floated"]{
  float:right;
}
.ui.items > .item .content img{
  align-self:middle;
  width:'';
}
.ui.items > .item img.avatar,
.ui.items > .item .avatar img{
  width:'';
  height:'';
  border-radius:500rem;
}
.ui.items > .item > .content > .description{
  margin-top:0.6em;
  max-width:auto;
  font-size:1em;
  line-height:1.4285em;
  color:#333333;
}
.ui.items > .item > .content p{
  margin:0em 0em 0.5em;
}
.ui.items > .item > .content p:last-child{
  margin-bottom:0em;
}
.ui.items > .item .meta{
  margin:0.5em 0em 0.5em;
  font-size:1em;
  line-height:1em;
  color:rgba(0, 0, 0, 0.6);
}
.ui.items > .item .meta *{
  margin-right:0.3em;
}
.ui.items > .item .meta :last-child{
  margin-right:0em;
}
.ui.items > .item .meta [class*="right floated"]{
  margin-right:0em;
  margin-left:0.3em;
}
.ui.items > .item > .content a:not(.ui){
  color:'';
  transition:color 0.1s ease;
}
.ui.items > .item > .content a:not(.ui):hover{
  color:'';
}
.ui.items > .item > .content > a.header{
  color:rgba(0, 0, 0, 0.85);
}
.ui.items > .item > .content > a.header:hover{
  color:#1e70bf;
}
.ui.items > .item .meta > a:not(.ui){
  color:rgba(0, 0, 0, 0.4);
}
.ui.items > .item .meta > a:not(.ui):hover{
  color:#333333;
}
.ui.items > .item > .content .favorite.icon{
  cursor:pointer;
  opacity:0.75;
  transition:color 0.1s ease;
}
.ui.items > .item > .content .favorite.icon:hover{
  opacity:1;
  color:#FFB70A;
}
.ui.items > .item > .content .active.favorite.icon{
  color:#FFE623;
}
.ui.items > .item > .content .like.icon{
  cursor:pointer;
  opacity:0.75;
  transition:color 0.1s ease;
}
.ui.items > .item > .content .like.icon:hover{
  opacity:1;
  color:#FF2733;
}
.ui.items > .item > .content .active.like.icon{
  color:#FF2733;
}
.ui.items > .item .extra{
  display:block;
  position:relative;
  background:none;
  margin:0.5rem 0em 0em;
  width:100%;
  padding:0em 0em 0em;
  top:0em;
  left:0em;
  color:rgba(0, 0, 0, 0.4);
  box-shadow:none;
  transition:color 0.1s ease;
  border-top:none;
}
.ui.items > .item .extra > *{
  margin:0.25rem 0.5rem 0.25rem 0em;
}
.ui.items > .item .extra > [class*="right floated"]{
  margin:0.25rem 0em 0.25rem 0.5rem;
}
.ui.items > .item .extra:after{
  display:block;
  content:' ';
  height:0px;
  clear:both;
  overflow:hidden;
  visibility:hidden;
}
.ui.items > .item > .image:not(.ui){
  width:175px;
}
@media only screen and (min-width: 768px) and (max-width: 991px){
  .ui.items > .item{
    margin:1em 0em;
  }
  .ui.items > .item > .image:not(.ui){
    width:150px;
  }
  .ui.items > .item > .image + .content{
    display:block;
    padding:0em 0em 0em 1em;
  }
}
@media only screen and (max-width: 767px){
  .ui.items:not(.unstackable) > .item{
    flex-direction:column;
    margin:2em 0em;
  }
  .ui.items:not(.unstackable) > .item > .image{
    display:block;
    margin-left:auto;
    margin-right:auto;
  }
  .ui.items:not(.unstackable) > .item > .image,
  .ui.items:not(.unstackable) > .item > .image > img{
    max-width:100% !important;
    width:auto !important;
    max-height:250px !important;
  }
  .ui.items:not(.unstackable) > .item > .image + .content{
    display:block;
    padding:1.5em 0em 0em;
  }
}
.ui.items > .item > .image + [class*="top aligned"].content{
  align-self:flex-start;
}
.ui.items > .item > .image + [class*="middle aligned"].content{
  align-self:center;
}
.ui.items > .item > .image + [class*="bottom aligned"].content{
  align-self:flex-end;
}
.ui.relaxed.items > .item{
  margin:1.5em 0em;
}
.ui[class*="very relaxed"].items > .item{
  margin:2em 0em;
}
.ui.divided.items > .item{
  border-top:1px solid rgba(34, 36, 38, 0.15);
  margin:0em;
  padding:1em 0em;
}
.ui.divided.items > .item:first-child{
  border-top:none;
  margin-top:0em !important;
  padding-top:0em !important;
}
.ui.divided.items > .item:last-child{
  margin-bottom:0em !important;
  padding-bottom:0em !important;
}
.ui.relaxed.divided.items > .item{
  margin:0em;
  padding:1.5em 0em;
}
.ui[class*="very relaxed"].divided.items > .item{
  margin:0em;
  padding:2em 0em;
}
.ui.items a.item:hover,
.ui.link.items > .item:hover{
  cursor:pointer;
}
.ui.items a.item:hover .content .header,
.ui.link.items > .item:hover .content .header{
  color:#1e70bf;
}
.ui.items > .item{
  font-size:1em;
}
@media only screen and (max-width: 767px){
  .ui.unstackable.items > .item > .image,
  .ui.unstackable.items > .item > .image > img{
    width:125px !important;
  }
}
/*!
 * # Semantic UI - Statistic
 * http://github.com/semantic-org/semantic-ui/
 *
 *
 * Released under the MIT license
 * http://opensource.org/licenses/MIT
 *
 */
.ui.statistic{
  display:inline-flex;
  flex-direction:column;
  margin:1em 0em;
  max-width:auto;
}
.ui.statistic + .ui.statistic{
  margin:0em 0em 0em 1.5em;
}
.ui.statistic:first-child{
  margin-top:0em;
}
.ui.statistic:last-child{
  margin-bottom:0em;
}
.ui.statistics{
  display:flex;
  align-items:flex-start;
  flex-wrap:wrap;
}
.ui.statistics > .statistic{
  display:inline-flex;
  flex:0 1 auto;
  flex-direction:column;
  margin:0em 1.5em 2em;
  max-width:auto;
}
.ui.statistics{
  display:flex;
  margin:1em -1.5em -2em;
}
.ui.statistics:after{
  display:block;
  content:' ';
  height:0px;
  clear:both;
  overflow:hidden;
  visibility:hidden;
}
.ui.statistics:first-child{
  margin-top:0em;
}
.ui.statistics:last-child{
  margin-bottom:0em;
}
.ui.statistics .statistic > .value,
.ui.statistic > .value{
  font-family:'Exo 2', 'Lato', Arial, Helvetica, sans-serif;
  font-size:4rem;
  font-weight:normal;
  line-height:1em;
  color:#000000;
  text-transform:uppercase;
  text-align:center;
}
.ui.statistics .statistic > .label,
.ui.statistic > .label{
  font-family:'Exo 2', 'Lato', Arial, Helvetica, sans-serif;
  font-size:1em;
  font-weight:bold;
  color:#333333;
  text-transform:uppercase;
  text-align:center;
}
.ui.statistics .statistic > .label ~ .value,
.ui.statistic > .label ~ .value{
  margin-top:0rem;
}
.ui.statistics .statistic > .value ~ .label,
.ui.statistic > .value ~ .label{
  margin-top:0rem;
}
.ui.statistics .statistic > .value .icon,
.ui.statistic > .value .icon{
  opacity:1;
  width:auto;
  margin:0em;
}
.ui.statistics .statistic > .text.value,
.ui.statistic > .text.value{
  line-height:1em;
  min-height:2em;
  font-weight:bold;
  text-align:center;
}
.ui.statistics .statistic > .text.value + .label,
.ui.statistic > .text.value + .label{
  text-align:center;
}
.ui.statistics .statistic > .value img,
.ui.statistic > .value img{
  max-height:3rem;
  vertical-align:baseline;
}
.ui.ten.statistics{
  margin:0em 0em -2em;
}
.ui.ten.statistics .statistic{
  min-width:10%;
  margin:0em 0em 2em;
}
.ui.nine.statistics{
  margin:0em 0em -2em;
}
.ui.nine.statistics .statistic{
  min-width:11.11111111%;
  margin:0em 0em 2em;
}
.ui.eight.statistics{
  margin:0em 0em -2em;
}
.ui.eight.statistics .statistic{
  min-width:12.5%;
  margin:0em 0em 2em;
}
.ui.seven.statistics{
  margin:0em 0em -2em;
}
.ui.seven.statistics .statistic{
  min-width:14.28571429%;
  margin:0em 0em 2em;
}
.ui.six.statistics{
  margin:0em 0em -2em;
}
.ui.six.statistics .statistic{
  min-width:16.66666667%;
  margin:0em 0em 2em;
}
.ui.five.statistics{
  margin:0em 0em -2em;
}
.ui.five.statistics .statistic{
  min-width:20%;
  margin:0em 0em 2em;
}
.ui.four.statistics{
  margin:0em 0em -2em;
}
.ui.four.statistics .statistic{
  min-width:25%;
  margin:0em 0em 2em;
}
.ui.three.statistics{
  margin:0em 0em -2em;
}
.ui.three.statistics .statistic{
  min-width:33.33333333%;
  margin:0em 0em 2em;
}
.ui.two.statistics{
  margin:0em 0em -2em;
}
.ui.two.statistics .statistic{
  min-width:50%;
  margin:0em 0em 2em;
}
.ui.one.statistics{
  margin:0em 0em -2em;
}
.ui.one.statistics .statistic{
  min-width:100%;
  margin:0em 0em 2em;
}
.ui.horizontal.statistic{
  flex-direction:row;
  align-items:center;
}
.ui.horizontal.statistics{
  flex-direction:column;
  margin:0em;
  max-width:none;
}
.ui.horizontal.statistics .statistic{
  flex-direction:row;
  align-items:center;
  max-width:none;
  margin:1em 0em;
}
.ui.horizontal.statistic > .text.value,
.ui.horizontal.statistics > .statistic > .text.value{
  min-height:0em !important;
}
.ui.horizontal.statistics .statistic > .value .icon,
.ui.horizontal.statistic > .value .icon{
  width:1.18em;
}
.ui.horizontal.statistics .statistic > .value,
.ui.horizontal.statistic > .value{
  display:inline-block;
  vertical-align:middle;
}
.ui.horizontal.statistics .statistic > .label,
.ui.horizontal.statistic > .label{
  display:inline-block;
  vertical-align:middle;
  margin:0em 0em 0em 0.75em;
}
.ui.red.statistics .statistic > .value,
.ui.statistics .red.statistic > .value,
.ui.red.statistic > .value{
  color:#de3a3e;
}
.ui.orange.statistics .statistic > .value,
.ui.statistics .orange.statistic > .value,
.ui.orange.statistic > .value{
  color:#ff9533;
}
.ui.yellow.statistics .statistic > .value,
.ui.statistics .yellow.statistic > .value,
.ui.yellow.statistic > .value{
  color:#FBBD08;
}
.ui.olive.statistics .statistic > .value,
.ui.statistics .olive.statistic > .value,
.ui.olive.statistic > .value{
  color:#B5CC18;
}
.ui.green.statistics .statistic > .value,
.ui.statistics .green.statistic > .value,
.ui.green.statistic > .value{
  color:#19a531;
}
.ui.teal.statistics .statistic > .value,
.ui.statistics .teal.statistic > .value,
.ui.teal.statistic > .value{
  color:#00B5AD;
}
.ui.blue.statistics .statistic > .value,
.ui.statistics .blue.statistic > .value,
.ui.blue.statistic > .value{
  color:#3f51b5;
}
.ui.violet.statistics .statistic > .value,
.ui.statistics .violet.statistic > .value,
.ui.violet.statistic > .value{
  color:#6435C9;
}
.ui.purple.statistics .statistic > .value,
.ui.statistics .purple.statistic > .value,
.ui.purple.statistic > .value{
  color:#A333C8;
}
.ui.pink.statistics .statistic > .value,
.ui.statistics .pink.statistic > .value,
.ui.pink.statistic > .value{
  color:#E03997;
}
.ui.brown.statistics .statistic > .value,
.ui.statistics .brown.statistic > .value,
.ui.brown.statistic > .value{
  color:#A5673F;
}
.ui.grey.statistics .statistic > .value,
.ui.statistics .grey.statistic > .value,
.ui.grey.statistic > .value{
  color:#767676;
}
.ui.inverted.statistics .statistic > .value,
.ui.inverted.statistic .value{
  color:#ffffff;
}
.ui.inverted.statistics .statistic > .label,
.ui.inverted.statistic .label{
  color:rgba(255, 255, 255, 0.9);
}
.ui.inverted.red.statistics .statistic > .value,
.ui.statistics .inverted.red.statistic > .value,
.ui.inverted.red.statistic > .value{
  color:#FF695E;
}
.ui.inverted.orange.statistics .statistic > .value,
.ui.statistics .inverted.orange.statistic > .value,
.ui.inverted.orange.statistic > .value{
  color:#FF851B;
}
.ui.inverted.yellow.statistics .statistic > .value,
.ui.statistics .inverted.yellow.statistic > .value,
.ui.inverted.yellow.statistic > .value{
  color:#FFE21F;
}
.ui.inverted.olive.statistics .statistic > .value,
.ui.statistics .inverted.olive.statistic > .value,
.ui.inverted.olive.statistic > .value{
  color:#D9E778;
}
.ui.inverted.green.statistics .statistic > .value,
.ui.statistics .inverted.green.statistic > .value,
.ui.inverted.green.statistic > .value{
  color:#2ECC40;
}
.ui.inverted.teal.statistics .statistic > .value,
.ui.statistics .inverted.teal.statistic > .value,
.ui.inverted.teal.statistic > .value{
  color:#6DFFFF;
}
.ui.inverted.blue.statistics .statistic > .value,
.ui.statistics .inverted.blue.statistic > .value,
.ui.inverted.blue.statistic > .value{
  color:#54C8FF;
}
.ui.inverted.violet.statistics .statistic > .value,
.ui.statistics .inverted.violet.statistic > .value,
.ui.inverted.violet.statistic > .value{
  color:#A291FB;
}
.ui.inverted.purple.statistics .statistic > .value,
.ui.statistics .inverted.purple.statistic > .value,
.ui.inverted.purple.statistic > .value{
  color:#DC73FF;
}
.ui.inverted.pink.statistics .statistic > .value,
.ui.statistics .inverted.pink.statistic > .value,
.ui.inverted.pink.statistic > .value{
  color:#FF8EDF;
}
.ui.inverted.brown.statistics .statistic > .value,
.ui.statistics .inverted.brown.statistic > .value,
.ui.inverted.brown.statistic > .value{
  color:#D67C1C;
}
.ui.inverted.grey.statistics .statistic > .value,
.ui.statistics .inverted.grey.statistic > .value,
.ui.inverted.grey.statistic > .value{
  color:#DCDDDE;
}
.ui[class*="left floated"].statistic{
  float:left;
  margin:0em 2em 1em 0em;
}
.ui[class*="right floated"].statistic{
  float:right;
  margin:0em 0em 1em 2em;
}
.ui.floated.statistic:last-child{
  margin-bottom:0em;
}
.ui.mini.statistics .statistic > .value,
.ui.mini.statistic > .value{
  font-size:1.5rem !important;
}
.ui.mini.horizontal.statistics .statistic > .value,
.ui.mini.horizontal.statistic > .value{
  font-size:1.5rem !important;
}
.ui.mini.statistics .statistic > .text.value,
.ui.mini.statistic > .text.value{
  font-size:1rem !important;
}
.ui.tiny.statistics .statistic > .value,
.ui.tiny.statistic > .value{
  font-size:2rem !important;
}
.ui.tiny.horizontal.statistics .statistic > .value,
.ui.tiny.horizontal.statistic > .value{
  font-size:2rem !important;
}
.ui.tiny.statistics .statistic > .text.value,
.ui.tiny.statistic > .text.value{
  font-size:1rem !important;
}
.ui.small.statistics .statistic > .value,
.ui.small.statistic > .value{
  font-size:3rem !important;
}
.ui.small.horizontal.statistics .statistic > .value,
.ui.small.horizontal.statistic > .value{
  font-size:2rem !important;
}
.ui.small.statistics .statistic > .text.value,
.ui.small.statistic > .text.value{
  font-size:1rem !important;
}
.ui.statistics .statistic > .value,
.ui.statistic > .value{
  font-size:4rem !important;
}
.ui.horizontal.statistics .statistic > .value,
.ui.horizontal.statistic > .value{
  font-size:3rem !important;
}
.ui.statistics .statistic > .text.value,
.ui.statistic > .text.value{
  font-size:2rem !important;
}
.ui.large.statistics .statistic > .value,
.ui.large.statistic > .value{
  font-size:5rem !important;
}
.ui.large.horizontal.statistics .statistic > .value,
.ui.large.horizontal.statistic > .value{
  font-size:4rem !important;
}
.ui.large.statistics .statistic > .text.value,
.ui.large.statistic > .text.value{
  font-size:2.5rem !important;
}
.ui.huge.statistics .statistic > .value,
.ui.huge.statistic > .value{
  font-size:6rem !important;
}
.ui.huge.horizontal.statistics .statistic > .value,
.ui.huge.horizontal.statistic > .value{
  font-size:5rem !important;
}
.ui.huge.statistics .statistic > .text.value,
.ui.huge.statistic > .text.value{
  font-size:2.5rem !important;
}
/*!
 * # Semantic UI - Accordion
 * http://github.com/semantic-org/semantic-ui/
 *
 *
 * Released under the MIT license
 * http://opensource.org/licenses/MIT
 *
 */
.ui.accordion,
.ui.accordion .accordion{
  max-width:100%;
}
.ui.accordion .accordion{
  margin:1em 0em 0em;
  padding:0em;
}
.ui.accordion .title,
.ui.accordion .accordion .title{
  cursor:pointer;
}
.ui.accordion .title:not(.ui){
  padding:0.5em 0em;
  font-family:'Exo 2', 'Lato', Arial, Helvetica, sans-serif;
  font-size:1em;
  color:#333333;
}
.ui.accordion .title ~ .content,
.ui.accordion .accordion .title ~ .content{
  display:none;
}
.ui.accordion:not(.styled) .title ~ .content:not(.ui),
.ui.accordion:not(.styled) .accordion .title ~ .content:not(.ui){
  margin:'';
  padding:0.5em 0em 1em;
}
.ui.accordion:not(.styled) .title ~ .content:not(.ui):last-child{
  padding-bottom:0em;
}
.ui.accordion .title .dropdown.icon,
.ui.accordion .accordion .title .dropdown.icon{
  display:inline-block;
  float:none;
  opacity:1;
  width:1.25em;
  height:1em;
  margin:0em 0.25rem 0em 0rem;
  padding:0em;
  font-size:1em;
  transition:transform 0.1s ease, opacity 0.1s ease;
  vertical-align:baseline;
  transform:none;
}
.ui.accordion.menu .item .title{
  display:block;
  padding:0em;
}
.ui.accordion.menu .item .title > .dropdown.icon{
  float:right;
  margin:0.21425em 0em 0em 1em;
  transform:rotate(180deg);
}
.ui.accordion .ui.header .dropdown.icon{
  font-size:1em;
  margin:0em 0.25rem 0em 0rem;
}
.ui.accordion .active.title .dropdown.icon,
.ui.accordion .accordion .active.title .dropdown.icon{
  transform:rotate(90deg);
}
.ui.accordion.menu .item .active.title > .dropdown.icon{
  transform:rotate(90deg);
}
.ui.styled.accordion{
  width:600px;
}
.ui.styled.accordion,
.ui.styled.accordion .accordion{
  border-radius:0.4rem;
  background:#ffffff;
  box-shadow:0px 1px 2px 0 rgba(34, 36, 38, 0.15), 0px 0px 0px 1px rgba(34, 36, 38, 0.15);
}
.ui.styled.accordion .title,
.ui.styled.accordion .accordion .title{
  margin:0em;
  padding:0.75em 1em;
  color:rgba(0, 0, 0, 0.4);
  font-weight:bold;
  border-top:1px solid rgba(34, 36, 38, 0.15);
  transition:background 0.1s ease, color 0.1s ease;
}
.ui.styled.accordion > .title:first-child,
.ui.styled.accordion .accordion .title:first-child{
  border-top:none;
}
.ui.styled.accordion .content,
.ui.styled.accordion .accordion .content{
  margin:0em;
  padding:0.5em 1em 1.5em;
}
.ui.styled.accordion .accordion .content{
  padding:0em;
  padding:0.5em 1em 1.5em;
}
.ui.styled.accordion .title:hover,
.ui.styled.accordion .active.title,
.ui.styled.accordion .accordion .title:hover,
.ui.styled.accordion .accordion .active.title{
  background:transparent;
  color:#333333;
}
.ui.styled.accordion .accordion .title:hover,
.ui.styled.accordion .accordion .active.title{
  background:transparent;
  color:#333333;
}
.ui.styled.accordion .active.title{
  background:transparent;
  color:rgba(0, 0, 0, 0.95);
}
.ui.styled.accordion .accordion .active.title{
  background:transparent;
  color:rgba(0, 0, 0, 0.95);
}
.ui.accordion .active.content,
.ui.accordion .accordion .active.content{
  display:block;
}
.ui.fluid.accordion,
.ui.fluid.accordion .accordion{
  width:100%;
}
.ui.inverted.accordion .title:not(.ui){
  color:rgba(255, 255, 255, 0.9);
}
@font-face{
  font-family:'Accordion';
  src:url(data:application/x-font-ttf;charset=utf-8;base64,AAEAAAALAIAAAwAwT1MvMggjB5AAAAC8AAAAYGNtYXAPfOIKAAABHAAAAExnYXNwAAAAEAAAAWgAAAAIZ2x5Zryj6HgAAAFwAAAAyGhlYWT/0IhHAAACOAAAADZoaGVhApkB5wAAAnAAAAAkaG10eAJuABIAAAKUAAAAGGxvY2EAjABWAAACrAAAAA5tYXhwAAgAFgAAArwAAAAgbmFtZfC1n04AAALcAAABPHBvc3QAAwAAAAAEGAAAACAAAwIAAZAABQAAAUwBZgAAAEcBTAFmAAAA9QAZAIQAAAAAAAAAAAAAAAAAAAABEAAAAAAAAAAAAAAAAAAAAABAAADw2gHg/+D/4AHgACAAAAABAAAAAAAAAAAAAAAgAAAAAAACAAAAAwAAABQAAwABAAAAFAAEADgAAAAKAAgAAgACAAEAIPDa//3//wAAAAAAIPDZ//3//wAB/+MPKwADAAEAAAAAAAAAAAAAAAEAAf//AA8AAQAAAAAAAAAAAAIAADc5AQAAAAABAAAAAAAAAAAAAgAANzkBAAAAAAEAAAAAAAAAAAACAAA3OQEAAAAAAQASAEkAtwFuABMAADc0PwE2FzYXFh0BFAcGJwYvASY1EgaABQgHBQYGBQcIBYAG2wcGfwcBAQcECf8IBAcBAQd/BgYAAAAAAQAAAEkApQFuABMAADcRNDc2MzIfARYVFA8BBiMiJyY1AAUGBwgFgAYGgAUIBwYFWwEACAUGBoAFCAcFgAYGBQcAAAABAAAAAQAAqWYls18PPPUACwIAAAAAAM/9o+4AAAAAz/2j7gAAAAAAtwFuAAAACAACAAAAAAAAAAEAAAHg/+AAAAIAAAAAAAC3AAEAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAQAAAAC3ABIAtwAAAAAAAAAKABQAHgBCAGQAAAABAAAABgAUAAEAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAADgCuAAEAAAAAAAEADAAAAAEAAAAAAAIADgBAAAEAAAAAAAMADAAiAAEAAAAAAAQADABOAAEAAAAAAAUAFgAMAAEAAAAAAAYABgAuAAEAAAAAAAoANABaAAMAAQQJAAEADAAAAAMAAQQJAAIADgBAAAMAAQQJAAMADAAiAAMAAQQJAAQADABOAAMAAQQJAAUAFgAMAAMAAQQJAAYADAA0AAMAAQQJAAoANABaAHIAYQB0AGkAbgBnAFYAZQByAHMAaQBvAG4AIAAxAC4AMAByAGEAdABpAG4AZ3JhdGluZwByAGEAdABpAG4AZwBSAGUAZwB1AGwAYQByAHIAYQB0AGkAbgBnAEYAbwBuAHQAIABnAGUAbgBlAHIAYQB0AGUAZAAgAGIAeQAgAEkAYwBvAE0AbwBvAG4ALgADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA) format('truetype'), url(data:application/font-woff;charset=utf-8;base64,d09GRk9UVE8AAASwAAoAAAAABGgAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABDRkYgAAAA9AAAAS0AAAEtFpovuE9TLzIAAAIkAAAAYAAAAGAIIweQY21hcAAAAoQAAABMAAAATA984gpnYXNwAAAC0AAAAAgAAAAIAAAAEGhlYWQAAALYAAAANgAAADb/0IhHaGhlYQAAAxAAAAAkAAAAJAKZAedobXR4AAADNAAAABgAAAAYAm4AEm1heHAAAANMAAAABgAAAAYABlAAbmFtZQAAA1QAAAE8AAABPPC1n05wb3N0AAAEkAAAACAAAAAgAAMAAAEABAQAAQEBB3JhdGluZwABAgABADr4HAL4GwP4GAQeCgAZU/+Lix4KABlT/4uLDAeLa/iU+HQFHQAAAHkPHQAAAH4RHQAAAAkdAAABJBIABwEBBw0PERQZHnJhdGluZ3JhdGluZ3UwdTF1MjB1RjBEOXVGMERBAAACAYkABAAGAQEEBwoNVp38lA78lA78lA77lA773Z33bxWLkI2Qj44I9xT3FAWOj5CNkIuQi4+JjoePiI2Gi4YIi/uUBYuGiYeHiIiHh4mGi4aLho2Ijwj7FPcUBYeOiY+LkAgO+92L5hWL95QFi5CNkI6Oj4+PjZCLkIuQiY6HCPcU+xQFj4iNhouGi4aJh4eICPsU+xQFiIeGiYaLhouHjYePiI6Jj4uQCA74lBT4lBWLDAoAAAAAAwIAAZAABQAAAUwBZgAAAEcBTAFmAAAA9QAZAIQAAAAAAAAAAAAAAAAAAAABEAAAAAAAAAAAAAAAAAAAAABAAADw2gHg/+D/4AHgACAAAAABAAAAAAAAAAAAAAAgAAAAAAACAAAAAwAAABQAAwABAAAAFAAEADgAAAAKAAgAAgACAAEAIPDa//3//wAAAAAAIPDZ//3//wAB/+MPKwADAAEAAAAAAAAAAAAAAAEAAf//AA8AAQAAAAEAADfYOJZfDzz1AAsCAAAAAADP/aPuAAAAAM/9o+4AAAAAALcBbgAAAAgAAgAAAAAAAAABAAAB4P/gAAACAAAAAAAAtwABAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAEAAAAAtwASALcAAAAAUAAABgAAAAAADgCuAAEAAAAAAAEADAAAAAEAAAAAAAIADgBAAAEAAAAAAAMADAAiAAEAAAAAAAQADABOAAEAAAAAAAUAFgAMAAEAAAAAAAYABgAuAAEAAAAAAAoANABaAAMAAQQJAAEADAAAAAMAAQQJAAIADgBAAAMAAQQJAAMADAAiAAMAAQQJAAQADABOAAMAAQQJAAUAFgAMAAMAAQQJAAYADAA0AAMAAQQJAAoANABaAHIAYQB0AGkAbgBnAFYAZQByAHMAaQBvAG4AIAAxAC4AMAByAGEAdABpAG4AZ3JhdGluZwByAGEAdABpAG4AZwBSAGUAZwB1AGwAYQByAHIAYQB0AGkAbgBnAEYAbwBuAHQAIABnAGUAbgBlAHIAYQB0AGUAZAAgAGIAeQAgAEkAYwBvAE0AbwBvAG4ALgADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA) format('woff');
  font-weight:normal;
  font-style:normal;
}
.ui.accordion .title .dropdown.icon,
.ui.accordion .accordion .title .dropdown.icon{
  font-family:Accordion;
  line-height:1;
  -webkit-backface-visibility:hidden;
          backface-visibility:hidden;
  font-weight:normal;
  font-style:normal;
  text-align:center;
}
.ui.accordion .title .dropdown.icon:before,
.ui.accordion .accordion .title .dropdown.icon:before{
  content:'\f0da';
}
/*!
 * # Semantic UI - Checkbox
 * http://github.com/semantic-org/semantic-ui/
 *
 *
 * Released under the MIT license
 * http://opensource.org/licenses/MIT
 *
 */
.ui.checkbox{
  position:relative;
  display:inline-block;
  -webkit-backface-visibility:hidden;
          backface-visibility:hidden;
  outline:none;
  vertical-align:baseline;
  font-style:normal;
  min-height:17px;
  font-size:1rem;
  line-height:17px;
  min-width:17px;
}
.ui.checkbox input[type="checkbox"],
.ui.checkbox input[type="radio"]{
  cursor:pointer;
  position:absolute;
  top:0px;
  left:0px;
  opacity:0 !important;
  outline:none;
  z-index:3;
  width:17px;
  height:17px;
}
.ui.checkbox .box,
.ui.checkbox label{
  cursor:auto;
  position:relative;
  display:block;
  padding-left:1.85714em;
  outline:none;
  font-size:1em;
}
.ui.checkbox .box:before,
.ui.checkbox label:before{
  position:absolute;
  top:0px;
  left:0px;
  width:17px;
  height:17px;
  content:'';
  background:#ffffff;
  border-radius:0.3rem;
  transition:border 0.1s ease, opacity 0.1s ease, transform 0.1s ease, box-shadow 0.1s ease;
  border:1px solid #D4D4D5;
}
.ui.checkbox .box:after,
.ui.checkbox label:after{
  position:absolute;
  font-size:14px;
  top:0px;
  left:0px;
  width:17px;
  height:17px;
  text-align:center;
  opacity:0;
  color:#333333;
  transition:border 0.1s ease, opacity 0.1s ease, transform 0.1s ease, box-shadow 0.1s ease;
}
.ui.checkbox label,
.ui.checkbox + label{
  color:#333333;
  transition:color 0.1s ease;
}
.ui.checkbox + label{
  vertical-align:middle;
}
.ui.checkbox .box:hover::before,
.ui.checkbox label:hover::before{
  background:#ffffff;
  border-color:rgba(34, 36, 38, 0.35);
}
.ui.checkbox label:hover,
.ui.checkbox + label:hover{
  color:rgba(0, 0, 0, 0.8);
}
.ui.checkbox .box:active::before,
.ui.checkbox label:active::before{
  background:#F9FAFB;
  border-color:rgba(34, 36, 38, 0.35);
}
.ui.checkbox .box:active::after,
.ui.checkbox label:active::after{
  color:rgba(0, 0, 0, 0.95);
}
.ui.checkbox input:active ~ label{
  color:rgba(0, 0, 0, 0.95);
}
.ui.checkbox input:focus ~ .box:before,
.ui.checkbox input:focus ~ label:before{
  background:#ffffff;
  border-color:#96C8DA;
}
.ui.checkbox input:focus ~ .box:after,
.ui.checkbox input:focus ~ label:after{
  color:rgba(0, 0, 0, 0.95);
}
.ui.checkbox input:focus ~ label{
  color:rgba(0, 0, 0, 0.95);
}
.ui.checkbox input:checked ~ .box:before,
.ui.checkbox input:checked ~ label:before{
  background:#ffffff;
  border-color:rgba(34, 36, 38, 0.35);
}
.ui.checkbox input:checked ~ .box:after,
.ui.checkbox input:checked ~ label:after{
  opacity:1;
  color:rgba(0, 0, 0, 0.95);
}
.ui.checkbox input:not([type=radio]):indeterminate ~ .box:before,
.ui.checkbox input:not([type=radio]):indeterminate ~ label:before{
  background:#ffffff;
  border-color:rgba(34, 36, 38, 0.35);
}
.ui.checkbox input:not([type=radio]):indeterminate ~ .box:after,
.ui.checkbox input:not([type=radio]):indeterminate ~ label:after{
  opacity:1;
  color:rgba(0, 0, 0, 0.95);
}
.ui.checkbox input:not([type=radio]):indeterminate:focus ~ .box:before,
.ui.checkbox input:not([type=radio]):indeterminate:focus ~ label:before,
.ui.checkbox input:checked:focus ~ .box:before,
.ui.checkbox input:checked:focus ~ label:before{
  background:#ffffff;
  border-color:#96C8DA;
}
.ui.checkbox input:not([type=radio]):indeterminate:focus ~ .box:after,
.ui.checkbox input:not([type=radio]):indeterminate:focus ~ label:after,
.ui.checkbox input:checked:focus ~ .box:after,
.ui.checkbox input:checked:focus ~ label:after{
  color:rgba(0, 0, 0, 0.95);
}
.ui.read-only.checkbox,
.ui.read-only.checkbox label{
  cursor:default;
}
.ui.disabled.checkbox .box:after,
.ui.disabled.checkbox label,
.ui.checkbox input[disabled] ~ .box:after,
.ui.checkbox input[disabled] ~ label{
  cursor:default !important;
  opacity:0.5;
  color:#000000;
}
.ui.checkbox input.hidden{
  z-index:-1;
}
.ui.checkbox input.hidden + label{
  cursor:pointer;
  -webkit-user-select:none;
     -moz-user-select:none;
      -ms-user-select:none;
          user-select:none;
}
.ui.radio.checkbox{
  min-height:15px;
}
.ui.radio.checkbox .box,
.ui.radio.checkbox label{
  padding-left:1.85714em;
}
.ui.radio.checkbox .box:before,
.ui.radio.checkbox label:before{
  content:'';
  transform:none;
  width:15px;
  height:15px;
  border-radius:500rem;
  top:1px;
  left:0px;
}
.ui.radio.checkbox .box:after,
.ui.radio.checkbox label:after{
  border:none;
  content:'' !important;
  width:15px;
  height:15px;
  line-height:15px;
}
.ui.radio.checkbox .box:after,
.ui.radio.checkbox label:after{
  top:1px;
  left:0px;
  width:15px;
  height:15px;
  border-radius:500rem;
  transform:scale(0.46666667);
  background-color:#333333;
}
.ui.radio.checkbox input:focus ~ .box:before,
.ui.radio.checkbox input:focus ~ label:before{
  background-color:#ffffff;
}
.ui.radio.checkbox input:focus ~ .box:after,
.ui.radio.checkbox input:focus ~ label:after{
  background-color:rgba(0, 0, 0, 0.95);
}
.ui.radio.checkbox input:indeterminate ~ .box:after,
.ui.radio.checkbox input:indeterminate ~ label:after{
  opacity:0;
}
.ui.radio.checkbox input:checked ~ .box:before,
.ui.radio.checkbox input:checked ~ label:before{
  background-color:#ffffff;
}
.ui.radio.checkbox input:checked ~ .box:after,
.ui.radio.checkbox input:checked ~ label:after{
  background-color:rgba(0, 0, 0, 0.95);
}
.ui.radio.checkbox input:focus:checked ~ .box:before,
.ui.radio.checkbox input:focus:checked ~ label:before{
  background-color:#ffffff;
}
.ui.radio.checkbox input:focus:checked ~ .box:after,
.ui.radio.checkbox input:focus:checked ~ label:after{
  background-color:rgba(0, 0, 0, 0.95);
}
.ui.slider.checkbox{
  min-height:1.25rem;
}
.ui.slider.checkbox input{
  width:3.5rem;
  height:1.25rem;
}
.ui.slider.checkbox .box,
.ui.slider.checkbox label{
  padding-left:4.5rem;
  line-height:1rem;
  color:rgba(0, 0, 0, 0.4);
}
.ui.slider.checkbox .box:before,
.ui.slider.checkbox label:before{
  display:block;
  position:absolute;
  content:'';
  border:none !important;
  left:0em;
  z-index:1;
  top:0.4rem;
  background-color:rgba(0, 0, 0, 0.05);
  width:3.5rem;
  height:0.3rem;
  transform:none;
  border-radius:500rem;
  transition:background 0.3s ease;
}
.ui.slider.checkbox .box:after,
.ui.slider.checkbox label:after{
  background:#ffffff linear-gradient(transparent, rgba(0, 0, 0, 0.05));
  position:absolute;
  content:'' !important;
  opacity:1;
  z-index:2;
  border:none;
  box-shadow:0px 1px 2px 0 rgba(34, 36, 38, 0.15), 0px 0px 0px 1px rgba(34, 36, 38, 0.15) inset;
  width:1.5rem;
  height:1.5rem;
  top:-0.25rem;
  left:0em;
  transform:none;
  border-radius:500rem;
  transition:left 0.3s ease;
}
.ui.slider.checkbox input:focus ~ .box:before,
.ui.slider.checkbox input:focus ~ label:before{
  background-color:rgba(0, 0, 0, 0.15);
  border:none;
}
.ui.slider.checkbox .box:hover,
.ui.slider.checkbox label:hover{
  color:rgba(0, 0, 0, 0.8);
}
.ui.slider.checkbox .box:hover::before,
.ui.slider.checkbox label:hover::before{
  background:rgba(0, 0, 0, 0.15);
}
.ui.slider.checkbox input:checked ~ .box,
.ui.slider.checkbox input:checked ~ label{
  color:rgba(0, 0, 0, 0.95) !important;
}
.ui.slider.checkbox input:checked ~ .box:before,
.ui.slider.checkbox input:checked ~ label:before{
  background-color:#545454 !important;
}
.ui.slider.checkbox input:checked ~ .box:after,
.ui.slider.checkbox input:checked ~ label:after{
  left:2rem;
}
.ui.slider.checkbox input:focus:checked ~ .box,
.ui.slider.checkbox input:focus:checked ~ label{
  color:rgba(0, 0, 0, 0.95) !important;
}
.ui.slider.checkbox input:focus:checked ~ .box:before,
.ui.slider.checkbox input:focus:checked ~ label:before{
  background-color:#000000 !important;
}
.ui.toggle.checkbox{
  min-height:1.5rem;
}
.ui.toggle.checkbox input{
  width:3.5rem;
  height:1.5rem;
}
.ui.toggle.checkbox .box,
.ui.toggle.checkbox label{
  min-height:1.5rem;
  padding-left:4.5rem;
  color:#333333;
}
.ui.toggle.checkbox label{
  padding-top:0.15em;
}
.ui.toggle.checkbox .box:before,
.ui.toggle.checkbox label:before{
  display:block;
  position:absolute;
  content:'';
  z-index:1;
  transform:none;
  border:none;
  top:0rem;
  background:rgba(0, 0, 0, 0.05);
  width:3.5rem;
  height:1.5rem;
  border-radius:500rem;
}
.ui.toggle.checkbox .box:after,
.ui.toggle.checkbox label:after{
  background:#ffffff linear-gradient(transparent, rgba(0, 0, 0, 0.05));
  position:absolute;
  content:'' !important;
  opacity:1;
  z-index:2;
  border:none;
  box-shadow:0px 1px 2px 0 rgba(34, 36, 38, 0.15), 0px 0px 0px 1px rgba(34, 36, 38, 0.15) inset;
  width:1.5rem;
  height:1.5rem;
  top:0rem;
  left:0em;
  border-radius:500rem;
  transition:background 0.3s ease, left 0.3s ease;
}
.ui.toggle.checkbox input ~ .box:after,
.ui.toggle.checkbox input ~ label:after{
  left:-0.05rem;
}
.ui.toggle.checkbox input:focus ~ .box:before,
.ui.toggle.checkbox input:focus ~ label:before{
  background-color:rgba(0, 0, 0, 0.15);
  border:none;
}
.ui.toggle.checkbox .box:hover::before,
.ui.toggle.checkbox label:hover::before{
  background-color:rgba(0, 0, 0, 0.15);
  border:none;
}
.ui.toggle.checkbox input:checked ~ .box,
.ui.toggle.checkbox input:checked ~ label{
  color:rgba(0, 0, 0, 0.95) !important;
}
.ui.toggle.checkbox input:checked ~ .box:before,
.ui.toggle.checkbox input:checked ~ label:before{
  background-color:#3f51b5 !important;
}
.ui.toggle.checkbox input:checked ~ .box:after,
.ui.toggle.checkbox input:checked ~ label:after{
  left:2.15rem;
}
.ui.toggle.checkbox input:focus:checked ~ .box,
.ui.toggle.checkbox input:focus:checked ~ label{
  color:rgba(0, 0, 0, 0.95) !important;
}
.ui.toggle.checkbox input:focus:checked ~ .box:before,
.ui.toggle.checkbox input:focus:checked ~ label:before{
  background-color:#2b3da1 !important;
}
.ui.fitted.checkbox .box,
.ui.fitted.checkbox label{
  padding-left:0em !important;
}
.ui.fitted.toggle.checkbox,
.ui.fitted.toggle.checkbox{
  width:3.5rem;
}
.ui.fitted.slider.checkbox,
.ui.fitted.slider.checkbox{
  width:3.5rem;
}
@font-face{
  font-family:'Checkbox';
  src:url(data:application/x-font-ttf;charset=utf-8;base64,AAEAAAALAIAAAwAwT1MvMg8SBD8AAAC8AAAAYGNtYXAYVtCJAAABHAAAAFRnYXNwAAAAEAAAAXAAAAAIZ2x5Zn4huwUAAAF4AAABYGhlYWQGPe1ZAAAC2AAAADZoaGVhB30DyAAAAxAAAAAkaG10eBBKAEUAAAM0AAAAHGxvY2EAmgESAAADUAAAABBtYXhwAAkALwAAA2AAAAAgbmFtZSC8IugAAAOAAAABknBvc3QAAwAAAAAFFAAAACAAAwMTAZAABQAAApkCzAAAAI8CmQLMAAAB6wAzAQkAAAAAAAAAAAAAAAAAAAABEAAAAAAAAAAAAAAAAAAAAABAAADoAgPA/8AAQAPAAEAAAAABAAAAAAAAAAAAAAAgAAAAAAADAAAAAwAAABwAAQADAAAAHAADAAEAAAAcAAQAOAAAAAoACAACAAIAAQAg6AL//f//AAAAAAAg6AD//f//AAH/4xgEAAMAAQAAAAAAAAAAAAAAAQAB//8ADwABAAAAAAAAAAAAAgAANzkBAAAAAAEAAAAAAAAAAAACAAA3OQEAAAAAAQAAAAAAAAAAAAIAADc5AQAAAAABAEUAUQO7AvgAGgAAARQHAQYjIicBJjU0PwE2MzIfAQE2MzIfARYVA7sQ/hQQFhcQ/uMQEE4QFxcQqAF2EBcXEE4QAnMWEP4UEBABHRAXFhBOEBCoAXcQEE4QFwAAAAABAAABbgMlAkkAFAAAARUUBwYjISInJj0BNDc2MyEyFxYVAyUQEBf9SRcQEBAQFwK3FxAQAhJtFxAQEBAXbRcQEBAQFwAAAAABAAAASQMlA24ALAAAARUUBwYrARUUBwYrASInJj0BIyInJj0BNDc2OwE1NDc2OwEyFxYdATMyFxYVAyUQEBfuEBAXbhYQEO4XEBAQEBfuEBAWbhcQEO4XEBACEm0XEBDuFxAQEBAX7hAQF20XEBDuFxAQEBAX7hAQFwAAAQAAAAIAAHRSzT9fDzz1AAsEAAAAAADRsdR3AAAAANGx1HcAAAAAA7sDbgAAAAgAAgAAAAAAAAABAAADwP/AAAAEAAAAAAADuwABAAAAAAAAAAAAAAAAAAAABwQAAAAAAAAAAAAAAAIAAAAEAABFAyUAAAMlAAAAAAAAAAoAFAAeAE4AcgCwAAEAAAAHAC0AAQAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAOAK4AAQAAAAAAAQAIAAAAAQAAAAAAAgAHAGkAAQAAAAAAAwAIADkAAQAAAAAABAAIAH4AAQAAAAAABQALABgAAQAAAAAABgAIAFEAAQAAAAAACgAaAJYAAwABBAkAAQAQAAgAAwABBAkAAgAOAHAAAwABBAkAAwAQAEEAAwABBAkABAAQAIYAAwABBAkABQAWACMAAwABBAkABgAQAFkAAwABBAkACgA0ALBDaGVja2JveABDAGgAZQBjAGsAYgBvAHhWZXJzaW9uIDIuMABWAGUAcgBzAGkAbwBuACAAMgAuADBDaGVja2JveABDAGgAZQBjAGsAYgBvAHhDaGVja2JveABDAGgAZQBjAGsAYgBvAHhSZWd1bGFyAFIAZQBnAHUAbABhAHJDaGVja2JveABDAGgAZQBjAGsAYgBvAHhGb250IGdlbmVyYXRlZCBieSBJY29Nb29uLgBGAG8AbgB0ACAAZwBlAG4AZQByAGEAdABlAGQAIABiAHkAIABJAGMAbwBNAG8AbwBuAC4AAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA) format('truetype');
}
.ui.checkbox label:after,
.ui.checkbox .box:after{
  font-family:'Checkbox';
}
.ui.checkbox input:checked ~ .box:after,
.ui.checkbox input:checked ~ label:after{
  content:'\e800';
}
.ui.checkbox input:indeterminate ~ .box:after,
.ui.checkbox input:indeterminate ~ label:after{
  font-size:12px;
  content:'\e801';
}
/*!
 * # Semantic UI - Dimmer
 * http://github.com/semantic-org/semantic-ui/
 *
 *
 * Released under the MIT license
 * http://opensource.org/licenses/MIT
 *
 */
.dimmable:not(body){
  position:relative;
}
.ui.dimmer{
  display:none;
  position:absolute;
  top:0em !important;
  left:0em !important;
  width:100%;
  height:100%;
  text-align:center;
  vertical-align:middle;
  padding:1em;
  background-color:rgba(0, 0, 0, 0.85);
  opacity:0;
  line-height:1;
  animation-fill-mode:both;
  animation-duration:0.5s;
  transition:background-color 0.5s linear;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  -webkit-user-select:none;
     -moz-user-select:none;
      -ms-user-select:none;
          user-select:none;
  will-change:opacity;
  z-index:1000;
}
.ui.dimmer > .content{
  -webkit-user-select:text;
     -moz-user-select:text;
      -ms-user-select:text;
          user-select:text;
  color:#ffffff;
}
.ui.segment > .ui.dimmer{
  border-radius:inherit !important;
}
.ui.dimmer:not(.inverted)::-webkit-scrollbar-track{
  background:rgba(255, 255, 255, 0.1);
}
.ui.dimmer:not(.inverted)::-webkit-scrollbar-thumb{
  background:rgba(255, 255, 255, 0.25);
}
.ui.dimmer:not(.inverted)::-webkit-scrollbar-thumb:window-inactive{
  background:rgba(255, 255, 255, 0.15);
}
.ui.dimmer:not(.inverted)::-webkit-scrollbar-thumb:hover{
  background:rgba(255, 255, 255, 0.35);
}
.animating.dimmable:not(body),
.dimmed.dimmable:not(body){
  overflow:hidden;
}
.dimmed.dimmable > .ui.animating.dimmer,
.dimmed.dimmable > .ui.visible.dimmer,
.ui.active.dimmer{
  display:flex;
  opacity:1;
}
.ui.disabled.dimmer{
  width:0 !important;
  height:0 !important;
}
.ui[class*="top aligned"].dimmer{
  justify-content:flex-start;
}
.ui[class*="bottom aligned"].dimmer{
  justify-content:flex-end;
}
.ui.page.dimmer{
  position:fixed;
  transform-style:'';
  perspective:2000px;
  transform-origin:center center;
}
body.animating.in.dimmable,
body.dimmed.dimmable{
  overflow:hidden;
}
body.dimmable > .dimmer{
  position:fixed;
}
.blurring.dimmable > :not(.dimmer){
  -webkit-filter:blur(0px) grayscale(0);
          filter:blur(0px) grayscale(0);
  transition:800ms -webkit-filter ease;
  transition:800ms filter ease;
  transition:800ms filter ease, 800ms -webkit-filter ease;
}
.blurring.dimmed.dimmable > :not(.dimmer){
  -webkit-filter:blur(5px) grayscale(0.7);
          filter:blur(5px) grayscale(0.7);
}
.blurring.dimmable > .dimmer{
  background-color:rgba(0, 0, 0, 0.6);
}
.blurring.dimmable > .inverted.dimmer{
  background-color:rgba(255, 255, 255, 0.6);
}
.ui.dimmer > .top.aligned.content > *{
  vertical-align:top;
}
.ui.dimmer > .bottom.aligned.content > *{
  vertical-align:bottom;
}
.ui.inverted.dimmer{
  background-color:rgba(255, 255, 255, 0.85);
}
.ui.inverted.dimmer > .content > *{
  color:#ffffff;
}
.ui.simple.dimmer{
  display:block;
  overflow:hidden;
  opacity:1;
  width:0%;
  height:0%;
  z-index:-100;
  background-color:rgba(0, 0, 0, 0);
}
.dimmed.dimmable > .ui.simple.dimmer{
  overflow:visible;
  opacity:1;
  width:100%;
  height:100%;
  background-color:rgba(0, 0, 0, 0.85);
  z-index:1;
}
.ui.simple.inverted.dimmer{
  background-color:rgba(255, 255, 255, 0);
}
.dimmed.dimmable > .ui.simple.inverted.dimmer{
  background-color:rgba(255, 255, 255, 0.85);
}
/*!
 * # Semantic UI - Dropdown
 * http://github.com/semantic-org/semantic-ui/
 *
 *
 * Released under the MIT license
 * http://opensource.org/licenses/MIT
 *
 */
.ui.dropdown{
  cursor:pointer;
  position:relative;
  display:inline-block;
  outline:none;
  text-align:left;
  transition:box-shadow 0.1s ease, width 0.1s ease;
  -webkit-tap-highlight-color:rgba(0, 0, 0, 0);
}
.ui.dropdown .menu{
  cursor:auto;
  position:absolute;
  display:none;
  outline:none;
  top:100%;
  min-width:-webkit-max-content;
  min-width:-moz-max-content;
  min-width:max-content;
  margin:0em;
  padding:0em 0em;
  background:#FFFFFF;
  font-size:1em;
  text-shadow:none;
  text-align:left;
  box-shadow:0px 2px 3px 0px rgba(34, 36, 38, 0.15);
  border:1px solid rgba(34, 36, 38, 0.15);
  border-radius:0.4rem;
  transition:opacity 0.1s ease;
  z-index:11;
  will-change:transform, opacity;
}
.ui.dropdown .menu > *{
  white-space:nowrap;
}
.ui.dropdown > input:not(.search):first-child,
.ui.dropdown > select{
  display:none !important;
}
.ui.dropdown > .dropdown.icon{
  position:relative;
  width:auto;
  font-size:1.2em;
  margin:0em 0em 0em 1em;
}
.ui.dropdown .menu > .item .dropdown.icon{
  width:auto;
  float:right;
  margin:0em 0em 0em 1em;
}
.ui.dropdown .menu > .item .dropdown.icon + .text{
  margin-right:1em;
}
.ui.dropdown > .text{
  display:inline-block;
  transition:none;
}
.ui.dropdown .menu > .item{
  position:relative;
  cursor:pointer;
  display:block;
  border:none;
  height:auto;
  text-align:left;
  border-top:none;
  line-height:1em;
  color:#333333;
  padding:0.8rem 1.1rem !important;
  font-size:1rem;
  text-transform:none;
  font-weight:normal;
  box-shadow:none;
  -webkit-touch-callout:none;
}
.ui.dropdown .menu > .item:first-child{
  border-top-width:0px;
}
.ui.dropdown > .text > [class*="right floated"],
.ui.dropdown .menu .item > [class*="right floated"]{
  float:right !important;
  margin-right:0em !important;
  margin-left:1em !important;
}
.ui.dropdown > .text > [class*="left floated"],
.ui.dropdown .menu .item > [class*="left floated"]{
  float:left !important;
  margin-left:0em !important;
  margin-right:1em !important;
}
.ui.dropdown .menu .item > .icon.floated,
.ui.dropdown .menu .item > .flag.floated,
.ui.dropdown .menu .item > .image.floated,
.ui.dropdown .menu .item > img.floated{
  margin-top:0em;
}
.ui.dropdown .menu > .header{
  margin:1rem 0rem 0.75rem;
  padding:0em 1.1rem;
  color:rgba(0, 0, 0, 0.85);
  font-size:1.1em;
  font-weight:bold;
  text-transform:uppercase;
}
.ui.dropdown .menu > .divider{
  border-top:1px solid rgba(34, 36, 38, 0.1);
  height:0em;
  margin:0.5em 0em;
}
.ui.dropdown .menu > .input{
  width:auto;
  display:flex;
  margin:1.1rem 0.8rem;
  min-width:10rem;
}
.ui.dropdown .menu > .header + .input{
  margin-top:0em;
}
.ui.dropdown .menu > .input:not(.transparent) input{
  padding:0.5em 1.4em;
}
.ui.dropdown .menu > .input:not(.transparent) .button,
.ui.dropdown .menu > .input:not(.transparent) .icon,
.ui.dropdown .menu > .input:not(.transparent) .label{
  padding-top:0.5em;
  padding-bottom:0.5em;
}
.ui.dropdown > .text > .description,
.ui.dropdown .menu > .item > .description{
  float:right;
  margin:0em 0em 0em 1em;
  color:rgba(0, 0, 0, 0.4);
}
.ui.dropdown .menu > .message{
  padding:0.8rem 1.1rem;
  font-weight:normal;
}
.ui.dropdown .menu > .message:not(.ui){
  color:rgba(0, 0, 0, 0.4);
}
.ui.dropdown .menu .menu{
  top:0% !important;
  left:100% !important;
  right:auto !important;
  margin:0em 0em 0em -0.5em !important;
  border-radius:0.4rem !important;
  z-index:21 !important;
}
.ui.dropdown .menu .menu:after{
  display:none;
}
.ui.dropdown > .text > .icon,
.ui.dropdown > .text > .label,
.ui.dropdown > .text > .flag,
.ui.dropdown > .text > img,
.ui.dropdown > .text > .image{
  margin-top:0em;
}
.ui.dropdown .menu > .item > .icon,
.ui.dropdown .menu > .item > .label,
.ui.dropdown .menu > .item > .flag,
.ui.dropdown .menu > .item > .image,
.ui.dropdown .menu > .item > img{
  margin-top:0em;
}
.ui.dropdown > .text > .icon,
.ui.dropdown > .text > .label,
.ui.dropdown > .text > .flag,
.ui.dropdown > .text > img,
.ui.dropdown > .text > .image,
.ui.dropdown .menu > .item > .icon,
.ui.dropdown .menu > .item > .label,
.ui.dropdown .menu > .item > .flag,
.ui.dropdown .menu > .item > .image,
.ui.dropdown .menu > .item > img{
  margin-left:0em;
  float:none;
  margin-right:0.8rem;
}
.ui.dropdown > .text > img,
.ui.dropdown > .text > .image,
.ui.dropdown .menu > .item > .image,
.ui.dropdown .menu > .item > img{
  display:inline-block;
  vertical-align:middle;
  width:auto;
  max-height:2em;
}
.ui.dropdown .ui.menu > .item:before,
.ui.menu .ui.dropdown .menu > .item:before{
  display:none;
}
.ui.menu .ui.dropdown .menu .active.item{
  border-left:none;
}
.ui.menu .right.menu .dropdown:last-child .menu,
.ui.menu .right.dropdown.item .menu,
.ui.buttons > .ui.dropdown:last-child .menu{
  left:auto;
  right:0em;
}
.ui.label.dropdown .menu{
  min-width:100%;
}
.ui.dropdown.icon.button > .dropdown.icon{
  margin:0em;
}
.ui.button.dropdown .menu{
  min-width:100%;
}
.ui.selection.dropdown{
  cursor:pointer;
  word-wrap:break-word;
  line-height:1em;
  white-space:normal;
  outline:0;
  transform:rotateZ(0deg);
  min-width:14em;
  min-height:3.31428571em;
  background:#ffffff;
  display:inline-block;
  padding:1.1em 2.5em 1.1em 1.4em;
  color:#333333;
  box-shadow:none;
  border:1px solid rgba(34, 36, 38, 0.15);
  border-radius:0.4rem;
  transition:box-shadow 0.1s ease, width 0.1s ease;
}
.ui.selection.dropdown.visible,
.ui.selection.dropdown.active{
  z-index:10;
}
select.ui.dropdown{
  height:38px;
  padding:0.5em;
  border:1px solid rgba(34, 36, 38, 0.15);
  visibility:visible;
}
.ui.selection.dropdown > .search.icon,
.ui.selection.dropdown > .delete.icon,
.ui.selection.dropdown > .dropdown.icon{
  cursor:pointer;
  position:absolute;
  width:auto;
  height:auto;
  line-height:1.21428571em;
  top:1.1em;
  right:1.4em;
  z-index:3;
  margin:-1.1em;
  padding:1.1em;
  opacity:0.8;
  transition:opacity 0.1s ease;
}
.ui.compact.selection.dropdown{
  min-width:0px;
}
.ui.selection.dropdown .menu{
  overflow-x:hidden;
  overflow-y:auto;
  -webkit-backface-visibility:hidden;
          backface-visibility:hidden;
  -webkit-overflow-scrolling:touch;
  border-top-width:0px !important;
  width:auto;
  outline:none;
  margin:0px -1px;
  min-width:calc(100% + 2px);
  width:calc(100% + 2px);
  border-radius:0em 0em 0.4rem 0.4rem;
  box-shadow:0px 2px 3px 0px rgba(34, 36, 38, 0.15);
  transition:opacity 0.1s ease;
}
.ui.selection.dropdown .menu:after,
.ui.selection.dropdown .menu:before{
  display:none;
}
.ui.selection.dropdown .menu > .message{
  padding:0.8rem 1.1rem;
}
@media only screen and (max-width: 767px){
  .ui.selection.dropdown .menu{
    max-height:8.1rem;
  }
}
@media only screen and (min-width: 768px){
  .ui.selection.dropdown .menu{
    max-height:10.8rem;
  }
}
@media only screen and (min-width: 992px){
  .ui.selection.dropdown .menu{
    max-height:16.2rem;
  }
}
@media only screen and (min-width: 1920px){
  .ui.selection.dropdown .menu{
    max-height:21.6rem;
  }
}
.ui.selection.dropdown .menu > .item{
  border-top:1px solid #FAFAFA;
  padding:0.8rem 1.1rem !important;
  white-space:normal;
  word-wrap:normal;
}
.ui.selection.dropdown .menu > .hidden.addition.item{
  display:none;
}
.ui.selection.dropdown:hover{
  border-color:rgba(34, 36, 38, 0.35);
  box-shadow:none;
}
.ui.selection.active.dropdown{
  border-color:#96C8DA;
  box-shadow:0px 2px 3px 0px rgba(34, 36, 38, 0.15);
}
.ui.selection.active.dropdown .menu{
  border-color:#96C8DA;
  box-shadow:0px 2px 3px 0px rgba(34, 36, 38, 0.15);
}
.ui.selection.dropdown:focus{
  border-color:#96C8DA;
  box-shadow:none;
}
.ui.selection.dropdown:focus .menu{
  border-color:#96C8DA;
  box-shadow:0px 2px 3px 0px rgba(34, 36, 38, 0.15);
}
.ui.selection.visible.dropdown > .text:not(.default){
  font-weight:normal;
  color:rgba(0, 0, 0, 0.8);
}
.ui.selection.active.dropdown:hover{
  border-color:#96C8DA;
  box-shadow:0px 2px 3px 0px rgba(34, 36, 38, 0.15);
}
.ui.selection.active.dropdown:hover .menu{
  border-color:#96C8DA;
  box-shadow:0px 2px 3px 0px rgba(34, 36, 38, 0.15);
}
.ui.active.selection.dropdown > .dropdown.icon,
.ui.visible.selection.dropdown > .dropdown.icon{
  opacity:1;
  z-index:3;
}
.ui.active.selection.dropdown{
  border-bottom-left-radius:0em !important;
  border-bottom-right-radius:0em !important;
}
.ui.active.empty.selection.dropdown{
  border-radius:0.4rem !important;
  box-shadow:none !important;
}
.ui.active.empty.selection.dropdown .menu{
  border:none !important;
  box-shadow:none !important;
}
.ui.search.dropdown{
  min-width:'';
}
.ui.search.dropdown > input.search{
  background:none transparent !important;
  border:none !important;
  box-shadow:none !important;
  cursor:text;
  top:0em;
  left:1px;
  width:100%;
  outline:none;
  -webkit-tap-highlight-color:rgba(255, 255, 255, 0);
  padding:inherit;
}
.ui.search.dropdown > input.search{
  position:absolute;
  z-index:2;
}
.ui.search.dropdown > .text{
  cursor:text;
  position:relative;
  left:1px;
  z-index:3;
}
.ui.search.selection.dropdown > input.search{
  line-height:1.21428571em;
  padding:0.99285714em 2.5em 0.99285714em 1.4em;
}
.ui.search.selection.dropdown > span.sizer{
  line-height:1.21428571em;
  padding:0.99285714em 2.5em 0.99285714em 1.4em;
  display:none;
  white-space:pre;
}
.ui.search.dropdown.active > input.search,
.ui.search.dropdown.visible > input.search{
  cursor:auto;
}
.ui.search.dropdown.active > .text,
.ui.search.dropdown.visible > .text{
  pointer-events:none;
}
.ui.active.search.dropdown input.search:focus + .text .icon,
.ui.active.search.dropdown input.search:focus + .text .flag{
  opacity:0.45;
}
.ui.active.search.dropdown input.search:focus + .text{
  color:#a6a6a6 !important;
}
.ui.search.dropdown .menu{
  overflow-x:hidden;
  overflow-y:auto;
  -webkit-backface-visibility:hidden;
          backface-visibility:hidden;
  -webkit-overflow-scrolling:touch;
}
@media only screen and (max-width: 767px){
  .ui.search.dropdown .menu{
    max-height:8.1rem;
  }
}
@media only screen and (min-width: 768px){
  .ui.search.dropdown .menu{
    max-height:10.8rem;
  }
}
@media only screen and (min-width: 992px){
  .ui.search.dropdown .menu{
    max-height:16.2rem;
  }
}
@media only screen and (min-width: 1920px){
  .ui.search.dropdown .menu{
    max-height:21.6rem;
  }
}
.ui.multiple.dropdown{
  padding:0.33095238em 2.5em 0.33095238em 0.5em;
}
.ui.multiple.dropdown .menu{
  cursor:auto;
}
.ui.multiple.search.dropdown,
.ui.multiple.search.dropdown > input.search{
  cursor:text;
}
.ui.multiple.dropdown > .label{
  -webkit-user-select:none;
     -moz-user-select:none;
      -ms-user-select:none;
          user-select:none;
  display:inline-block;
  vertical-align:top;
  white-space:normal;
  font-size:1em;
  padding:0.5em 0.8em;
  margin:0.2rem 0.4rem 0.2rem 0em;
  box-shadow:0px 0px 0px 1px rgba(34, 36, 38, 0.15) inset;
}
.ui.multiple.dropdown .dropdown.icon{
  margin:'';
  padding:'';
}
.ui.multiple.dropdown > .text{
  position:static;
  padding:0;
  max-width:100%;
  margin:0.66190476em 0em 0.66190476em 0.9em;
  line-height:1.7em;
}
.ui.multiple.dropdown > .label ~ input.search{
  margin-left:0.2em !important;
}
.ui.multiple.dropdown > .label ~ .text{
  display:none;
}
.ui.multiple.search.dropdown > .text{
  display:inline-block;
  position:absolute;
  top:0;
  left:0;
  padding:inherit;
  margin:0.66190476em 0em 0.66190476em 0.9em;
  line-height:1.7em;
}
.ui.multiple.search.dropdown > .label ~ .text{
  display:none;
}
.ui.multiple.search.dropdown > input.search{
  position:static;
  padding:0;
  max-width:100%;
  margin:0.66190476em 0em 0.66190476em 0.9em;
  width:2.2em;
  line-height:1.7em;
}
.ui.inline.dropdown{
  cursor:pointer;
  display:inline-block;
  color:inherit;
}
.ui.inline.dropdown .dropdown.icon{
  margin:0em 0.7em 0em 0.3em;
  vertical-align:baseline;
}
.ui.inline.dropdown > .text{
  font-weight:bold;
}
.ui.inline.dropdown .menu{
  cursor:auto;
  margin-top:0.3em;
  border-radius:0.4rem;
}
.ui.dropdown .menu .active.item{
  background:transparent;
  font-weight:bold;
  color:rgba(0, 0, 0, 0.95);
  box-shadow:none;
  z-index:12;
}
.ui.dropdown .menu > .item:hover{
  background:rgba(0, 0, 0, 0.05);
  color:rgba(0, 0, 0, 0.95);
  z-index:13;
}
.ui.loading.dropdown > i.icon{
  height:1.4em !important;
  padding:1.6em 1.5em !important;
}
.ui.loading.dropdown > i.icon:before{
  position:absolute;
  content:'';
  top:50%;
  left:50%;
  margin:-0.65em 0em 0em -0.65em;
  width:1.3em;
  height:1.3em;
  border-radius:500rem;
  border:0.2em solid rgba(0, 0, 0, 0.1);
}
.ui.loading.dropdown > i.icon:after{
  position:absolute;
  content:'';
  top:50%;
  left:50%;
  box-shadow:0px 0px 0px 1px transparent;
  margin:-0.65em 0em 0em -0.65em;
  width:1.3em;
  height:1.3em;
  animation:dropdown-spin 0.6s linear;
  animation-iteration-count:infinite;
  border-radius:500rem;
  border-color:#767676 transparent transparent;
  border-style:solid;
  border-width:0.2em;
}
.ui.loading.dropdown.button > i.icon:before,
.ui.loading.dropdown.button > i.icon:after{
  display:none;
}
@keyframes dropdown-spin{
  from{
    transform:rotate(0deg);
  }
  to{
    transform:rotate(360deg);
  }
}
.ui.dropdown:not(.button) > .default.text,
.ui.default.dropdown:not(.button) > .text{
  color:#f2f2f2;
}
.ui.dropdown:not(.button) > input:focus + .default.text,
.ui.default.dropdown:not(.button) > input:focus + .text{
  color:#a6a6a6;
}
.ui.loading.dropdown > .text{
  transition:none;
}
.ui.dropdown .loading.menu{
  display:block;
  visibility:hidden;
  z-index:-1;
}
.ui.dropdown.selected,
.ui.dropdown .menu .selected.item{
  background:rgba(0, 0, 0, 0.03);
  color:rgba(0, 0, 0, 0.95);
}
.ui.dropdown > .filtered.text{
  visibility:hidden;
}
.ui.dropdown .filtered.item{
  display:none !important;
}
.ui.dropdown.error,
.ui.dropdown.error > .text,
.ui.dropdown.error > .default.text{
  color:#9F3A38;
}
.ui.selection.dropdown.error{
  background:#FFF6F6;
  border-color:#E0B4B4;
}
.ui.selection.dropdown.error:hover{
  border-color:#E0B4B4;
}
.ui.dropdown.error > .menu,
.ui.dropdown.error > .menu .menu{
  border-color:#E0B4B4;
}
.ui.dropdown.error > .menu > .item{
  color:#9F3A38;
}
.ui.multiple.selection.error.dropdown > .label{
  border-color:#E0B4B4;
}
.ui.dropdown.error > .menu > .item:hover{
  background-color:#FFF2F2;
}
.ui.dropdown.error > .menu .active.item{
  background-color:#FDCFCF;
}
.ui.disabled.dropdown,
.ui.dropdown .menu > .disabled.item{
  cursor:default;
  pointer-events:none;
  opacity:0.45;
}
.ui.dropdown .menu{
  left:0px;
}
.ui.dropdown .right.menu > .menu,
.ui.dropdown .menu .right.menu{
  left:100% !important;
  right:auto !important;
  border-radius:0.4rem !important;
}
.ui.dropdown > .left.menu .menu,
.ui.dropdown .menu .left.menu{
  left:auto !important;
  right:100% !important;
  border-radius:0.4rem !important;
}
.ui.dropdown .item .left.dropdown.icon,
.ui.dropdown .left.menu .item .dropdown.icon{
  width:auto;
  float:left;
  margin:0em 0.8rem 0em 0em;
}
.ui.dropdown .item .left.dropdown.icon,
.ui.dropdown .left.menu .item .dropdown.icon{
  width:auto;
  float:left;
  margin:0em 0.8rem 0em 0em;
}
.ui.dropdown .item .left.dropdown.icon + .text,
.ui.dropdown .left.menu .item .dropdown.icon + .text{
  margin-left:1em;
}
.ui.upward.dropdown > .menu{
  top:auto;
  bottom:100%;
  box-shadow:0px 0px 3px 0px rgba(0, 0, 0, 0.08);
  border-radius:0.4rem 0.4rem 0em 0em;
}
.ui.dropdown .upward.menu{
  top:auto !important;
  bottom:0 !important;
}
.ui.simple.upward.active.dropdown,
.ui.simple.upward.dropdown:hover{
  border-radius:0.4rem 0.4rem 0em 0em !important;
}
.ui.upward.dropdown.button:not(.pointing):not(.floating).active{
  border-radius:0.4rem 0.4rem 0em 0em;
}
.ui.upward.selection.dropdown .menu{
  border-top-width:1px !important;
  border-bottom-width:0px !important;
  box-shadow:0px -2px 3px 0px rgba(0, 0, 0, 0.08);
}
.ui.upward.selection.dropdown:hover{
  box-shadow:0px 0px 2px 0px rgba(0, 0, 0, 0.05);
}
.ui.active.upward.selection.dropdown{
  border-radius:0em 0em 0.4rem 0.4rem !important;
}
.ui.upward.selection.dropdown.visible{
  box-shadow:0px 0px 3px 0px rgba(0, 0, 0, 0.08);
  border-radius:0em 0em 0.4rem 0.4rem !important;
}
.ui.upward.active.selection.dropdown:hover{
  box-shadow:0px 0px 3px 0px rgba(0, 0, 0, 0.05);
}
.ui.upward.active.selection.dropdown:hover .menu{
  box-shadow:0px -2px 3px 0px rgba(0, 0, 0, 0.08);
}
.ui.scrolling.dropdown .menu,
.ui.dropdown .scrolling.menu{
  overflow-x:hidden;
  overflow-y:auto;
}
.ui.scrolling.dropdown .menu{
  overflow-x:hidden;
  overflow-y:auto;
  -webkit-backface-visibility:hidden;
          backface-visibility:hidden;
  -webkit-overflow-scrolling:touch;
  min-width:100% !important;
  width:auto !important;
}
.ui.dropdown .scrolling.menu{
  position:static;
  overflow-y:auto;
  border:none;
  box-shadow:none !important;
  border-radius:0 !important;
  margin:0 !important;
  min-width:100% !important;
  width:auto !important;
  border-top:1px solid rgba(34, 36, 38, 0.15);
}
.ui.scrolling.dropdown .menu .item.item.item,
.ui.dropdown .scrolling.menu > .item.item.item{
  border-top:none;
  padding-right:calc(1.1rem + 17px) !important;
}
.ui.scrolling.dropdown .menu .item:first-child,
.ui.dropdown .scrolling.menu .item:first-child{
  border-top:none;
}
.ui.dropdown > .animating.menu .scrolling.menu,
.ui.dropdown > .visible.menu .scrolling.menu{
  display:block;
}
@media all and (-ms-high-contrast: none){
  .ui.scrolling.dropdown .menu,
  .ui.dropdown .scrolling.menu{
    min-width:calc(100% - 17px);
  }
}
@media only screen and (max-width: 767px){
  .ui.scrolling.dropdown .menu,
  .ui.dropdown .scrolling.menu{
    max-height:10.4rem;
  }
}
@media only screen and (min-width: 768px){
  .ui.scrolling.dropdown .menu,
  .ui.dropdown .scrolling.menu{
    max-height:15.6rem;
  }
}
@media only screen and (min-width: 992px){
  .ui.scrolling.dropdown .menu,
  .ui.dropdown .scrolling.menu{
    max-height:20.8rem;
  }
}
@media only screen and (min-width: 1920px){
  .ui.scrolling.dropdown .menu,
  .ui.dropdown .scrolling.menu{
    max-height:20.8rem;
  }
}
.ui.simple.dropdown .menu:before,
.ui.simple.dropdown .menu:after{
  display:none;
}
.ui.simple.dropdown .menu{
  position:absolute;
  display:block;
  overflow:hidden;
  top:-9999px !important;
  opacity:0;
  width:0;
  height:0;
  transition:opacity 0.1s ease;
}
.ui.simple.active.dropdown,
.ui.simple.dropdown:hover{
  border-bottom-left-radius:0em !important;
  border-bottom-right-radius:0em !important;
}
.ui.simple.active.dropdown > .menu,
.ui.simple.dropdown:hover > .menu{
  overflow:visible;
  width:auto;
  height:auto;
  top:100% !important;
  opacity:1;
}
.ui.simple.dropdown > .menu > .item:active > .menu,
.ui.simple.dropdown:hover > .menu > .item:hover > .menu{
  overflow:visible;
  width:auto;
  height:auto;
  top:0% !important;
  left:100% !important;
  opacity:1;
}
.ui.simple.disabled.dropdown:hover .menu{
  display:none;
  height:0px;
  width:0px;
  overflow:hidden;
}
.ui.simple.visible.dropdown > .menu{
  display:block;
}
.ui.fluid.dropdown{
  display:block;
  width:100%;
  min-width:0em;
}
.ui.fluid.dropdown > .dropdown.icon{
  float:right;
}
.ui.floating.dropdown .menu{
  left:0;
  right:auto;
  box-shadow:0px 2px 4px 0px rgba(34, 36, 38, 0.12), 0px 2px 10px 0px rgba(34, 36, 38, 0.15) !important;
  border-radius:0.4rem !important;
}
.ui.floating.dropdown > .menu{
  margin-top:0.5em !important;
  border-radius:0.4rem !important;
}
.ui.pointing.dropdown > .menu{
  top:100%;
  margin-top:0.8rem;
  border-radius:0.4rem;
}
.ui.pointing.dropdown > .menu:after{
  display:block;
  position:absolute;
  pointer-events:none;
  content:'';
  visibility:visible;
  transform:rotate(45deg);
  width:0.7em;
  height:0.7em;
  box-shadow:-1px -1px 0px 1px rgba(34, 36, 38, 0.15);
  background:#ffffff;
  z-index:2;
}
.ui.pointing.dropdown > .menu:after{
  top:-0.35em;
  left:50%;
  margin:0em 0em 0em -0.35em;
}
.ui.top.left.pointing.dropdown > .menu{
  top:100%;
  bottom:auto;
  left:0%;
  right:auto;
  margin:1em 0em 0em;
}
.ui.top.left.pointing.dropdown > .menu{
  top:100%;
  bottom:auto;
  left:0%;
  right:auto;
  margin:1em 0em 0em;
}
.ui.top.left.pointing.dropdown > .menu:after{
  top:-0.35em;
  left:1em;
  right:auto;
  margin:0em;
  transform:rotate(45deg);
}
.ui.top.right.pointing.dropdown > .menu{
  top:100%;
  bottom:auto;
  right:0%;
  left:auto;
  margin:1em 0em 0em;
}
.ui.top.right.pointing.dropdown > .menu:after{
  top:-0.35em;
  left:auto;
  right:1em;
  margin:0em;
  transform:rotate(45deg);
}
.ui.left.pointing.dropdown > .menu{
  top:0%;
  left:100%;
  right:auto;
  margin:0em 0em 0em 1em;
}
.ui.left.pointing.dropdown > .menu:after{
  top:1em;
  left:-0.35em;
  margin:0em 0em 0em 0em;
  transform:rotate(-45deg);
}
.ui.right.pointing.dropdown > .menu{
  top:0%;
  left:auto;
  right:100%;
  margin:0em 1em 0em 0em;
}
.ui.right.pointing.dropdown > .menu:after{
  top:1em;
  left:auto;
  right:-0.35em;
  margin:0em 0em 0em 0em;
  transform:rotate(135deg);
}
.ui.bottom.pointing.dropdown > .menu{
  top:auto;
  bottom:100%;
  left:0%;
  right:auto;
  margin:0em 0em 1em;
}
.ui.bottom.pointing.dropdown > .menu:after{
  top:auto;
  bottom:-0.35em;
  right:auto;
  margin:0em;
  transform:rotate(-135deg);
}
.ui.bottom.pointing.dropdown > .menu .menu{
  top:auto !important;
  bottom:0px !important;
}
.ui.bottom.left.pointing.dropdown > .menu{
  left:0%;
  right:auto;
}
.ui.bottom.left.pointing.dropdown > .menu:after{
  left:1em;
  right:auto;
}
.ui.bottom.right.pointing.dropdown > .menu{
  right:0%;
  left:auto;
}
.ui.bottom.right.pointing.dropdown > .menu:after{
  left:auto;
  right:1em;
}
.ui.upward.pointing.dropdown > .menu,
.ui.upward.top.pointing.dropdown > .menu{
  top:auto;
  bottom:100%;
  margin:0em 0em 0.8rem;
  border-radius:0.4rem;
}
.ui.upward.pointing.dropdown > .menu:after,
.ui.upward.top.pointing.dropdown > .menu:after{
  top:100%;
  bottom:auto;
  box-shadow:1px 1px 0px 1px rgba(34, 36, 38, 0.15);
  margin:-0.35em 0em 0em;
}
@font-face{
  font-family:'Dropdown';
  src:url(data:application/x-font-ttf;charset=utf-8;base64,AAEAAAALAIAAAwAwT1MvMggjB5AAAAC8AAAAYGNtYXAPfuIIAAABHAAAAExnYXNwAAAAEAAAAWgAAAAIZ2x5Zjo82LgAAAFwAAABVGhlYWQAQ88bAAACxAAAADZoaGVhAwcB6QAAAvwAAAAkaG10eAS4ABIAAAMgAAAAIGxvY2EBNgDeAAADQAAAABJtYXhwAAoAFgAAA1QAAAAgbmFtZVcZpu4AAAN0AAABRXBvc3QAAwAAAAAEvAAAACAAAwIAAZAABQAAAUwBZgAAAEcBTAFmAAAA9QAZAIQAAAAAAAAAAAAAAAAAAAABEAAAAAAAAAAAAAAAAAAAAABAAADw2gHg/+D/4AHgACAAAAABAAAAAAAAAAAAAAAgAAAAAAACAAAAAwAAABQAAwABAAAAFAAEADgAAAAKAAgAAgACAAEAIPDa//3//wAAAAAAIPDX//3//wAB/+MPLQADAAEAAAAAAAAAAAAAAAEAAf//AA8AAQAAAAAAAAAAAAIAADc5AQAAAAABAAAAAAAAAAAAAgAANzkBAAAAAAEAAAAAAAAAAAACAAA3OQEAAAAAAQAAAIABJQElABMAABM0NzY3BTYXFhUUDwEGJwYvASY1AAUGBwEACAUGBoAFCAcGgAUBEgcGBQEBAQcECQYHfwYBAQZ/BwYAAQAAAG4BJQESABMAADc0PwE2MzIfARYVFAcGIyEiJyY1AAWABgcIBYAGBgUI/wAHBgWABwaABQWABgcHBgUFBgcAAAABABIASQC3AW4AEwAANzQ/ATYXNhcWHQEUBwYnBi8BJjUSBoAFCAcFBgYFBwgFgAbbBwZ/BwEBBwQJ/wgEBwEBB38GBgAAAAABAAAASQClAW4AEwAANxE0NzYzMh8BFhUUDwEGIyInJjUABQYHCAWABgaABQgHBgVbAQAIBQYGgAUIBwWABgYFBwAAAAEAAAABAADZuaKOXw889QALAgAAAAAA0ABHWAAAAADQAEdYAAAAAAElAW4AAAAIAAIAAAAAAAAAAQAAAeD/4AAAAgAAAAAAASUAAQAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAABAAAAASUAAAElAAAAtwASALcAAAAAAAAACgAUAB4AQgBkAIgAqgAAAAEAAAAIABQAAQAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAOAK4AAQAAAAAAAQAOAAAAAQAAAAAAAgAOAEcAAQAAAAAAAwAOACQAAQAAAAAABAAOAFUAAQAAAAAABQAWAA4AAQAAAAAABgAHADIAAQAAAAAACgA0AGMAAwABBAkAAQAOAAAAAwABBAkAAgAOAEcAAwABBAkAAwAOACQAAwABBAkABAAOAFUAAwABBAkABQAWAA4AAwABBAkABgAOADkAAwABBAkACgA0AGMAaQBjAG8AbQBvAG8AbgBWAGUAcgBzAGkAbwBuACAAMQAuADAAaQBjAG8AbQBvAG8Abmljb21vb24AaQBjAG8AbQBvAG8AbgBSAGUAZwB1AGwAYQByAGkAYwBvAG0AbwBvAG4ARgBvAG4AdAAgAGcAZQBuAGUAcgBhAHQAZQBkACAAYgB5ACAASQBjAG8ATQBvAG8AbgAuAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=) format('truetype'), url(data:application/font-woff;charset=utf-8;base64,d09GRk9UVE8AAAVwAAoAAAAABSgAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABDRkYgAAAA9AAAAdkAAAHZLDXE/09TLzIAAALQAAAAYAAAAGAIIweQY21hcAAAAzAAAABMAAAATA9+4ghnYXNwAAADfAAAAAgAAAAIAAAAEGhlYWQAAAOEAAAANgAAADYAQ88baGhlYQAAA7wAAAAkAAAAJAMHAelobXR4AAAD4AAAACAAAAAgBLgAEm1heHAAAAQAAAAABgAAAAYACFAAbmFtZQAABAgAAAFFAAABRVcZpu5wb3N0AAAFUAAAACAAAAAgAAMAAAEABAQAAQEBCGljb21vb24AAQIAAQA6+BwC+BsD+BgEHgoAGVP/i4seCgAZU/+LiwwHi2v4lPh0BR0AAACIDx0AAACNER0AAAAJHQAAAdASAAkBAQgPERMWGyAlKmljb21vb25pY29tb29udTB1MXUyMHVGMEQ3dUYwRDh1RjBEOXVGMERBAAACAYkABgAIAgABAAQABwAKAA0AVgCfAOgBL/yUDvyUDvyUDvuUDvtvi/emFYuQjZCOjo+Pj42Qiwj3lIsFkIuQiY6Hj4iNhouGi4aJh4eHCPsU+xQFiIiGiYaLhouHjYeOCPsU9xQFiI+Jj4uQCA77b4v3FBWLkI2Pjo8I9xT3FAWPjo+NkIuQi5CJjogI9xT7FAWPh42Hi4aLhomHh4eIiIaJhosI+5SLBYaLh42HjoiPiY+LkAgO+92d928Vi5CNkI+OCPcU9xQFjo+QjZCLkIuPiY6Hj4iNhouGCIv7lAWLhomHh4iIh4eJhouGi4aNiI8I+xT3FAWHjomPi5AIDvvdi+YVi/eUBYuQjZCOjo+Pj42Qi5CLkImOhwj3FPsUBY+IjYaLhouGiYeHiAj7FPsUBYiHhomGi4aLh42Hj4iOiY+LkAgO+JQU+JQViwwKAAAAAAMCAAGQAAUAAAFMAWYAAABHAUwBZgAAAPUAGQCEAAAAAAAAAAAAAAAAAAAAARAAAAAAAAAAAAAAAAAAAAAAQAAA8NoB4P/g/+AB4AAgAAAAAQAAAAAAAAAAAAAAIAAAAAAAAgAAAAMAAAAUAAMAAQAAABQABAA4AAAACgAIAAIAAgABACDw2v/9//8AAAAAACDw1//9//8AAf/jDy0AAwABAAAAAAAAAAAAAAABAAH//wAPAAEAAAABAAA5emozXw889QALAgAAAAAA0ABHWAAAAADQAEdYAAAAAAElAW4AAAAIAAIAAAAAAAAAAQAAAeD/4AAAAgAAAAAAASUAAQAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAABAAAAASUAAAElAAAAtwASALcAAAAAUAAACAAAAAAADgCuAAEAAAAAAAEADgAAAAEAAAAAAAIADgBHAAEAAAAAAAMADgAkAAEAAAAAAAQADgBVAAEAAAAAAAUAFgAOAAEAAAAAAAYABwAyAAEAAAAAAAoANABjAAMAAQQJAAEADgAAAAMAAQQJAAIADgBHAAMAAQQJAAMADgAkAAMAAQQJAAQADgBVAAMAAQQJAAUAFgAOAAMAAQQJAAYADgA5AAMAAQQJAAoANABjAGkAYwBvAG0AbwBvAG4AVgBlAHIAcwBpAG8AbgAgADEALgAwAGkAYwBvAG0AbwBvAG5pY29tb29uAGkAYwBvAG0AbwBvAG4AUgBlAGcAdQBsAGEAcgBpAGMAbwBtAG8AbwBuAEYAbwBuAHQAIABnAGUAbgBlAHIAYQB0AGUAZAAgAGIAeQAgAEkAYwBvAE0AbwBvAG4ALgAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA) format('woff');
  font-weight:normal;
  font-style:normal;
}
.ui.dropdown > .dropdown.icon{
  font-family:'Dropdown';
  line-height:1;
  height:1em;
  width:1.23em;
  -webkit-backface-visibility:hidden;
          backface-visibility:hidden;
  font-weight:normal;
  font-style:normal;
  text-align:center;
}
.ui.dropdown > .dropdown.icon{
  width:auto;
}
.ui.dropdown > .dropdown.icon:before{
  content:'\f0d7';
}
.ui.dropdown .menu .item .dropdown.icon:before{
  content:'\f0da';
}
.ui.dropdown .item .left.dropdown.icon:before,
.ui.dropdown .left.menu .item .dropdown.icon:before{
  content:"\f0d9";
}
.ui.vertical.menu .dropdown.item > .dropdown.icon:before{
  content:"\f0da";
}
/*!
 * # Semantic UI - Video
 * http://github.com/semantic-org/semantic-ui/
 *
 *
 * Released under the MIT license
 * http://opensource.org/licenses/MIT
 *
 */
.ui.embed{
  position:relative;
  max-width:100%;
  height:0px;
  overflow:hidden;
  background:#DCDDDE;
  padding-bottom:56.25%;
}
.ui.embed iframe,
.ui.embed embed,
.ui.embed object{
  position:absolute;
  border:none;
  width:100%;
  height:100%;
  top:0px;
  left:0px;
  margin:0em;
  padding:0em;
}
.ui.embed > .embed{
  display:none;
}
.ui.embed > .placeholder{
  position:absolute;
  cursor:pointer;
  top:0px;
  left:0px;
  display:block;
  width:100%;
  height:100%;
  background-color:radial-gradient(transparent 45%, rgba(0, 0, 0, 0.3));
}
.ui.embed > .icon{
  cursor:pointer;
  position:absolute;
  top:0px;
  left:0px;
  width:100%;
  height:100%;
  z-index:2;
}
.ui.embed > .icon:after{
  position:absolute;
  top:0%;
  left:0%;
  width:100%;
  height:100%;
  z-index:3;
  content:'';
  background:radial-gradient(transparent 45%, rgba(0, 0, 0, 0.3));
  opacity:0.5;
  transition:opacity 0.5s ease;
}
.ui.embed > .icon:before{
  position:absolute;
  top:50%;
  left:50%;
  z-index:4;
  transform:translateX(-50%) translateY(-50%);
  color:#ffffff;
  font-size:6rem;
  text-shadow:0px 2px 10px rgba(34, 36, 38, 0.2);
  transition:opacity 0.5s ease, color 0.5s ease;
  z-index:10;
}
.ui.embed .icon:hover:after{
  background:radial-gradient(transparent 45%, rgba(0, 0, 0, 0.3));
  opacity:1;
}
.ui.embed .icon:hover:before{
  color:#ffffff;
}
.ui.active.embed > .icon,
.ui.active.embed > .placeholder{
  display:none;
}
.ui.active.embed > .embed{
  display:block;
}
.ui.square.embed{
  padding-bottom:100%;
}
.ui[class*="4:3"].embed{
  padding-bottom:75%;
}
.ui[class*="16:9"].embed{
  padding-bottom:56.25%;
}
.ui[class*="21:9"].embed{
  padding-bottom:42.85714286%;
}
/*!
 * # Semantic UI - Modal
 * http://github.com/semantic-org/semantic-ui/
 *
 *
 * Released under the MIT license
 * http://opensource.org/licenses/MIT
 *
 */
.ui.modal{
  display:none;
  z-index:1001;
  text-align:left;
  background:#ffffff;
  border:none;
  box-shadow:1px 3px 3px 0px rgba(0, 0, 0, 0.2), 1px 3px 15px 2px rgba(0, 0, 0, 0.2);
  transform-origin:50% 25%;
  flex:0 0 auto;
  border-radius:0.4rem;
  -webkit-user-select:text;
     -moz-user-select:text;
      -ms-user-select:text;
          user-select:text;
  will-change:top, left, margin, transform, opacity;
}
.ui.modal > :first-child:not(.icon),
.ui.modal > .icon:first-child + *{
  border-top-left-radius:0.4rem;
  border-top-right-radius:0.4rem;
}
.ui.modal > :last-child{
  border-bottom-left-radius:0.4rem;
  border-bottom-right-radius:0.4rem;
}
.ui.modal > .close{
  cursor:pointer;
  position:absolute;
  top:-2.5rem;
  right:-2.5rem;
  z-index:1;
  opacity:0.8;
  font-size:1.25em;
  color:#ffffff;
  width:2.25rem;
  height:2.25rem;
  padding:0.625rem 0rem 0rem 0rem;
}
.ui.modal > .close:hover{
  opacity:1;
}
.ui.modal > .header{
  display:block;
  font-family:'Exo 2', 'Lato', Arial, Helvetica, sans-serif;
  background:#ffffff;
  margin:0em;
  padding:1.25rem 1.5rem;
  box-shadow:none;
  color:rgba(0, 0, 0, 0.85);
  border-bottom:1px solid rgba(34, 36, 38, 0.15);
}
.ui.modal > .header:not(.ui){
  font-size:1.4rem;
  line-height:1.28571429em;
  font-weight:bold;
}
.ui.modal > .content{
  display:block;
  width:100%;
  font-size:1em;
  line-height:1.4;
  padding:1.5rem;
  background:#FFFFFF;
}
.ui.modal > .image.content{
  display:flex;
  flex-direction:row;
}
.ui.modal > .content > .image{
  display:block;
  flex:0 1 auto;
  width:'';
  align-self:top;
}
.ui.modal > [class*="top aligned"]{
  align-self:top;
}
.ui.modal > [class*="middle aligned"]{
  align-self:middle;
}
.ui.modal > [class*="stretched"]{
  align-self:stretch;
}
.ui.modal > .content > .description{
  display:block;
  flex:1 0 auto;
  min-width:0px;
  align-self:top;
}
.ui.modal > .content > .icon + .description,
.ui.modal > .content > .image + .description{
  flex:0 1 auto;
  min-width:'';
  width:auto;
  padding-left:2em;
}
.ui.modal > .content > .image > i.icon{
  margin:0em;
  opacity:1;
  width:auto;
  line-height:1;
  font-size:8rem;
}
.ui.modal > .actions{
  background:#F9FAFB;
  padding:1rem 1rem;
  border-top:1px solid rgba(34, 36, 38, 0.15);
  text-align:right;
}
.ui.modal .actions > .button{
  margin-left:0.75em;
}
@media only screen and (max-width: 767px){
  .ui.modal{
    width:95%;
    margin:0em 0em 0em 0em;
  }
}
@media only screen and (min-width: 768px){
  .ui.modal{
    width:88%;
    margin:0em 0em 0em 0em;
  }
}
@media only screen and (min-width: 992px){
  .ui.modal{
    width:850px;
    margin:0em 0em 0em 0em;
  }
}
@media only screen and (min-width: 1200px){
  .ui.modal{
    width:900px;
    margin:0em 0em 0em 0em;
  }
}
@media only screen and (min-width: 1920px){
  .ui.modal{
    width:950px;
    margin:0em 0em 0em 0em;
  }
}
@media only screen and (max-width: 991px){
  .ui.modal > .header{
    padding-right:2.25rem;
  }
  .ui.modal > .close{
    top:1.0535rem;
    right:1rem;
    color:#333333;
  }
}
@media only screen and (max-width: 767px){
  .ui.modal > .header{
    padding:0.75rem 1rem !important;
    padding-right:2.25rem !important;
  }
  .ui.modal > .content{
    display:block;
    padding:1rem !important;
  }
  .ui.modal > .close{
    top:0.5rem !important;
    right:0.5rem !important;
  }
  .ui.modal .image.content{
    flex-direction:column;
  }
  .ui.modal .content > .image{
    display:block;
    max-width:100%;
    margin:0em auto !important;
    text-align:center;
    padding:0rem 0rem 1rem !important;
  }
  .ui.modal > .content > .image > i.icon{
    font-size:5rem;
    text-align:center;
  }
  .ui.modal .content > .description{
    display:block;
    width:100% !important;
    margin:0em !important;
    padding:1rem 0rem !important;
    box-shadow:none;
  }
  .ui.modal > .actions{
    padding:1rem 1rem 0rem !important;
  }
  .ui.modal .actions > .buttons,
  .ui.modal .actions > .button{
    margin-bottom:1rem;
  }
}
.ui.inverted.dimmer > .ui.modal{
  box-shadow:1px 3px 10px 2px rgba(0, 0, 0, 0.2);
}
.ui.basic.modal{
  background-color:transparent;
  border:none;
  border-radius:0em;
  box-shadow:none !important;
  color:#ffffff;
}
.ui.basic.modal > .header,
.ui.basic.modal > .content,
.ui.basic.modal > .actions{
  background-color:transparent;
}
.ui.basic.modal > .header{
  color:#ffffff;
}
.ui.basic.modal > .close{
  top:1rem;
  right:1.5rem;
}
.ui.inverted.dimmer > .basic.modal{
  color:#333333;
}
.ui.inverted.dimmer > .ui.basic.modal > .header{
  color:rgba(0, 0, 0, 0.85);
}
@media only screen and (max-width: 991px){
  .ui.basic.modal > .close{
    color:#ffffff;
  }
}
.ui.loading.modal{
  display:block;
  visibility:hidden;
  z-index:-1;
}
.ui.active.modal{
  display:block;
}
.modals.dimmer[class*="top aligned"] .modal{
  margin:5vh auto;
}
.scrolling.dimmable.dimmed{
  overflow:hidden;
}
.scrolling.dimmable > .dimmer{
  justify-content:flex-start;
}
.scrolling.dimmable.dimmed > .dimmer{
  overflow:auto;
  -webkit-overflow-scrolling:touch;
}
.scrolling.dimmable > .dimmer{
  position:fixed;
}
.modals.dimmer .ui.scrolling.modal{
  margin:1rem auto !important;
}
.scrolling.undetached.dimmable.dimmed{
  overflow:auto;
  -webkit-overflow-scrolling:touch;
}
.scrolling.undetached.dimmable.dimmed > .dimmer{
  overflow:hidden;
}
.scrolling.undetached.dimmable .ui.scrolling.modal{
  position:absolute;
  left:50%;
  margin-top:1rem !important;
}
.ui.modal .scrolling.content{
  max-height:calc(80vh - 10em);
  overflow:auto;
}
.ui.fullscreen.modal{
  width:95% !important;
  left:0em !important;
  margin:1em auto;
}
.ui.fullscreen.scrolling.modal{
  left:0em !important;
}
.ui.fullscreen.modal > .header{
  padding-right:2.25rem;
}
.ui.fullscreen.modal > .close{
  top:1.0535rem;
  right:1rem;
  color:#333333;
}
.ui.modal{
  font-size:1rem;
}
.ui.mini.modal > .header:not(.ui){
  font-size:1.3em;
}
@media only screen and (max-width: 767px){
  .ui.mini.modal{
    width:95%;
    margin:0em 0em 0em 0em;
  }
}
@media only screen and (min-width: 768px){
  .ui.mini.modal{
    width:35.2%;
    margin:0em 0em 0em 0em;
  }
}
@media only screen and (min-width: 992px){
  .ui.mini.modal{
    width:340px;
    margin:0em 0em 0em 0em;
  }
}
@media only screen and (min-width: 1200px){
  .ui.mini.modal{
    width:360px;
    margin:0em 0em 0em 0em;
  }
}
@media only screen and (min-width: 1920px){
  .ui.mini.modal{
    width:380px;
    margin:0em 0em 0em 0em;
  }
}
.ui.small.modal > .header:not(.ui){
  font-size:1.3em;
}
@media only screen and (max-width: 767px){
  .ui.tiny.modal{
    width:95%;
    margin:0em 0em 0em 0em;
  }
}
@media only screen and (min-width: 768px){
  .ui.tiny.modal{
    width:52.8%;
    margin:0em 0em 0em 0em;
  }
}
@media only screen and (min-width: 992px){
  .ui.tiny.modal{
    width:510px;
    margin:0em 0em 0em 0em;
  }
}
@media only screen and (min-width: 1200px){
  .ui.tiny.modal{
    width:540px;
    margin:0em 0em 0em 0em;
  }
}
@media only screen and (min-width: 1920px){
  .ui.tiny.modal{
    width:570px;
    margin:0em 0em 0em 0em;
  }
}
.ui.small.modal > .header:not(.ui){
  font-size:1.3em;
}
@media only screen and (max-width: 767px){
  .ui.small.modal{
    width:95%;
    margin:0em 0em 0em 0em;
  }
}
@media only screen and (min-width: 768px){
  .ui.small.modal{
    width:70.4%;
    margin:0em 0em 0em 0em;
  }
}
@media only screen and (min-width: 992px){
  .ui.small.modal{
    width:680px;
    margin:0em 0em 0em 0em;
  }
}
@media only screen and (min-width: 1200px){
  .ui.small.modal{
    width:720px;
    margin:0em 0em 0em 0em;
  }
}
@media only screen and (min-width: 1920px){
  .ui.small.modal{
    width:760px;
    margin:0em 0em 0em 0em;
  }
}
.ui.large.modal > .header{
  font-size:1.6em;
}
@media only screen and (max-width: 767px){
  .ui.large.modal{
    width:95%;
    margin:0em 0em 0em 0em;
  }
}
@media only screen and (min-width: 768px){
  .ui.large.modal{
    width:88%;
    margin:0em 0em 0em 0em;
  }
}
@media only screen and (min-width: 992px){
  .ui.large.modal{
    width:1020px;
    margin:0em 0em 0em 0em;
  }
}
@media only screen and (min-width: 1200px){
  .ui.large.modal{
    width:1080px;
    margin:0em 0em 0em 0em;
  }
}
@media only screen and (min-width: 1920px){
  .ui.large.modal{
    width:1140px;
    margin:0em 0em 0em 0em;
  }
}
/*!
 * # Semantic UI - Nag
 * http://github.com/semantic-org/semantic-ui/
 *
 *
 * Released under the MIT license
 * http://opensource.org/licenses/MIT
 *
 */
.ui.nag{
  display:none;
  opacity:0.95;
  position:relative;
  top:0em;
  left:0px;
  z-index:999;
  min-height:0em;
  width:100%;
  margin:0em;
  padding:0.75em 1em;
  background:#555555;
  box-shadow:0px 1px 2px 0px rgba(0, 0, 0, 0.2);
  font-size:1rem;
  text-align:center;
  color:#333333;
  border-radius:0em 0em 0.4rem 0.4rem;
  transition:0.2s background ease;
}
a.ui.nag{
  cursor:pointer;
}
.ui.nag > .title{
  display:inline-block;
  margin:0em 0.5em;
  color:#ffffff;
}
.ui.nag > .close.icon{
  cursor:pointer;
  opacity:0.4;
  position:absolute;
  top:50%;
  right:1em;
  font-size:1em;
  margin:-0.5em 0em 0em;
  color:#ffffff;
  transition:opacity 0.2s ease;
}
.ui.nag:hover{
  background:#555555;
  opacity:1;
}
.ui.nag .close:hover{
  opacity:1;
}
.ui.overlay.nag{
  position:absolute;
  display:block;
}
.ui.fixed.nag{
  position:fixed;
}
.ui.bottom.nags,
.ui.bottom.nag{
  border-radius:0.4rem 0.4rem 0em 0em;
  top:auto;
  bottom:0em;
}
.ui.inverted.nags .nag,
.ui.inverted.nag{
  background-color:#F3F4F5;
  color:rgba(0, 0, 0, 0.85);
}
.ui.inverted.nags .nag .close,
.ui.inverted.nags .nag .title,
.ui.inverted.nag .close,
.ui.inverted.nag .title{
  color:rgba(0, 0, 0, 0.4);
}
.ui.nags .nag{
  border-radius:0em !important;
}
.ui.nags .nag:last-child{
  border-radius:0em 0em 0.4rem 0.4rem;
}
.ui.bottom.nags .nag:last-child{
  border-radius:0.4rem 0.4rem 0em 0em;
}
/*!
 * # Semantic UI - Popup
 * http://github.com/semantic-org/semantic-ui/
 *
 *
 * Released under the MIT license
 * http://opensource.org/licenses/MIT
 *
 */
.ui.popup{
  display:none;
  position:absolute;
  top:0px;
  right:0px;
  min-width:-webkit-min-content;
  min-width:-moz-min-content;
  min-width:min-content;
  z-index:1900;
  border:1px solid #D4D4D5;
  line-height:1.4285em;
  max-width:250px;
  background:#ffffff;
  padding:0.833em 1em;
  font-weight:normal;
  font-style:normal;
  color:#333333;
  border-radius:0.4rem;
  box-shadow:0px 2px 4px 0px rgba(34, 36, 38, 0.12), 0px 2px 10px 0px rgba(34, 36, 38, 0.15);
}
.ui.popup > .header{
  padding:0em;
  font-family:'Exo 2', 'Lato', Arial, Helvetica, sans-serif;
  font-size:1.1em;
  line-height:1.2;
  font-weight:bold;
}
.ui.popup > .header + .content{
  padding-top:0.7em;
}
.ui.popup:before{
  position:absolute;
  content:'';
  width:1em;
  height:1em;
  background:#ffffff;
  transform:rotate(45deg);
  z-index:2;
  box-shadow:1px 1px 0px 0px #bababc;
}
[data-tooltip]{
  position:relative;
}
[data-tooltip]:before{
  pointer-events:none;
  position:absolute;
  content:'';
  font-size:1rem;
  width:1em;
  height:1em;
  background:#ffffff;
  transform:rotate(45deg);
  z-index:2;
  box-shadow:1px 1px 0px 0px #bababc;
}
[data-tooltip]:after{
  pointer-events:none;
  content:attr(data-tooltip);
  position:absolute;
  text-transform:none;
  text-align:left;
  white-space:nowrap;
  font-size:1rem;
  border:1px solid #D4D4D5;
  line-height:1.4285em;
  max-width:none;
  background:#ffffff;
  padding:0.833em 1em;
  font-weight:normal;
  font-style:normal;
  color:#333333;
  border-radius:0.4rem;
  box-shadow:0px 2px 4px 0px rgba(34, 36, 38, 0.12), 0px 2px 10px 0px rgba(34, 36, 38, 0.15);
  z-index:1;
}
[data-tooltip]:not([data-position]):before{
  top:auto;
  right:auto;
  bottom:100%;
  left:50%;
  background:#ffffff;
  margin-left:-0.1rem;
  margin-bottom:0.2rem;
}
[data-tooltip]:not([data-position]):after{
  left:50%;
  transform:translateX(-50%);
  bottom:100%;
  margin-bottom:0.7em;
}
[data-tooltip]:before,
[data-tooltip]:after{
  pointer-events:none;
  visibility:hidden;
}
[data-tooltip]:before{
  opacity:0;
  transform:rotate(45deg) scale(0) !important;
  transform-origin:center top;
  transition:all 0.1s ease;
}
[data-tooltip]:after{
  opacity:1;
  transform-origin:center bottom;
  transition:all 0.1s ease;
}
[data-tooltip]:hover:before,
[data-tooltip]:hover:after{
  visibility:visible;
  pointer-events:auto;
}
[data-tooltip]:hover:before{
  transform:rotate(45deg) scale(1) !important;
  opacity:1;
}
[data-tooltip]:after,
[data-tooltip][data-position="top center"]:after,
[data-tooltip][data-position="bottom center"]:after{
  transform:translateX(-50%) scale(0) !important;
}
[data-tooltip]:hover:after,
[data-tooltip][data-position="bottom center"]:hover:after{
  transform:translateX(-50%) scale(1) !important;
}
[data-tooltip][data-position="left center"]:after,
[data-tooltip][data-position="right center"]:after{
  transform:translateY(-50%) scale(0) !important;
}
[data-tooltip][data-position="left center"]:hover:after,
[data-tooltip][data-position="right center"]:hover:after{
  transform:translateY(-50%) scale(1) !important;
}
[data-tooltip][data-position="top left"]:after,
[data-tooltip][data-position="top right"]:after,
[data-tooltip][data-position="bottom left"]:after,
[data-tooltip][data-position="bottom right"]:after{
  transform:scale(0) !important;
}
[data-tooltip][data-position="top left"]:hover:after,
[data-tooltip][data-position="top right"]:hover:after,
[data-tooltip][data-position="bottom left"]:hover:after,
[data-tooltip][data-position="bottom right"]:hover:after{
  transform:scale(1) !important;
}
[data-tooltip][data-inverted]:before{
  box-shadow:none !important;
}
[data-tooltip][data-inverted]:before{
  background:#000000;
}
[data-tooltip][data-inverted]:after{
  background:#000000;
  color:#ffffff;
  border:none;
  box-shadow:none;
}
[data-tooltip][data-inverted]:after .header{
  background-color:none;
  color:#ffffff;
}
[data-position="top center"][data-tooltip]:after{
  top:auto;
  right:auto;
  left:50%;
  bottom:100%;
  transform:translateX(-50%);
  margin-bottom:0.7em;
}
[data-position="top center"][data-tooltip]:before{
  top:auto;
  right:auto;
  bottom:100%;
  left:50%;
  background:#ffffff;
  margin-left:-0.1rem;
  margin-bottom:0.2rem;
}
[data-position="top left"][data-tooltip]:after{
  top:auto;
  right:auto;
  left:0;
  bottom:100%;
  margin-bottom:0.7em;
}
[data-position="top left"][data-tooltip]:before{
  top:auto;
  right:auto;
  bottom:100%;
  left:1em;
  margin-left:-0.1rem;
  margin-bottom:0.2rem;
}
[data-position="top right"][data-tooltip]:after{
  top:auto;
  left:auto;
  right:0;
  bottom:100%;
  margin-bottom:0.7em;
}
[data-position="top right"][data-tooltip]:before{
  top:auto;
  left:auto;
  bottom:100%;
  right:1em;
  margin-left:-0.1rem;
  margin-bottom:0.2rem;
}
[data-position="bottom center"][data-tooltip]:after{
  bottom:auto;
  right:auto;
  left:50%;
  top:100%;
  transform:translateX(-50%);
  margin-top:0.7em;
}
[data-position="bottom center"][data-tooltip]:before{
  bottom:auto;
  right:auto;
  top:100%;
  left:50%;
  margin-left:-0.1rem;
  margin-top:0.2rem;
}
[data-position="bottom left"][data-tooltip]:after{
  left:0;
  top:100%;
  margin-top:0.7em;
}
[data-position="bottom left"][data-tooltip]:before{
  bottom:auto;
  right:auto;
  top:100%;
  left:1em;
  margin-left:-0.1rem;
  margin-top:0.2rem;
}
[data-position="bottom right"][data-tooltip]:after{
  right:0;
  top:100%;
  margin-top:0.7em;
}
[data-position="bottom right"][data-tooltip]:before{
  bottom:auto;
  left:auto;
  top:100%;
  right:1em;
  margin-left:-0.2rem;
  margin-top:0.1rem;
}
[data-position="left center"][data-tooltip]:after{
  right:100%;
  top:50%;
  margin-right:0.7em;
  transform:translateY(-50%);
}
[data-position="left center"][data-tooltip]:before{
  right:100%;
  top:50%;
  margin-top:-0.2rem;
  margin-right:-0.1rem;
}
[data-position="right center"][data-tooltip]:after{
  left:100%;
  top:50%;
  margin-left:0.7em;
  transform:translateY(-50%);
}
[data-position="right center"][data-tooltip]:before{
  left:100%;
  top:50%;
  margin-top:-0.1rem;
  margin-left:0.2rem;
}
[data-position~="bottom"][data-tooltip]:before{
  background:#ffffff;
  box-shadow:-1px -1px 0px 0px #bababc;
}
[data-position="left center"][data-tooltip]:before{
  background:#ffffff;
  box-shadow:1px -1px 0px 0px #bababc;
}
[data-position="right center"][data-tooltip]:before{
  background:#ffffff;
  box-shadow:-1px 1px 0px 0px #bababc;
}
[data-position~="top"][data-tooltip]:before{
  background:#ffffff;
}
[data-inverted][data-position~="bottom"][data-tooltip]:before{
  background:#000000;
  box-shadow:-1px -1px 0px 0px #bababc;
}
[data-inverted][data-position="left center"][data-tooltip]:before{
  background:#000000;
  box-shadow:1px -1px 0px 0px #bababc;
}
[data-inverted][data-position="right center"][data-tooltip]:before{
  background:#000000;
  box-shadow:-1px 1px 0px 0px #bababc;
}
[data-inverted][data-position~="top"][data-tooltip]:before{
  background:#000000;
}
[data-position~="bottom"][data-tooltip]:before{
  transform-origin:center bottom;
}
[data-position~="bottom"][data-tooltip]:after{
  transform-origin:center top;
}
[data-position="left center"][data-tooltip]:before{
  transform-origin:top center;
}
[data-position="left center"][data-tooltip]:after{
  transform-origin:right center;
}
[data-position="right center"][data-tooltip]:before{
  transform-origin:right center;
}
[data-position="right center"][data-tooltip]:after{
  transform-origin:left center;
}
.ui.popup{
  margin:0em;
}
.ui.top.popup{
  margin:0em 0em 1em;
}
.ui.top.left.popup{
  transform-origin:left bottom;
}
.ui.top.center.popup{
  transform-origin:center bottom;
}
.ui.top.right.popup{
  transform-origin:right bottom;
}
.ui.left.center.popup{
  margin:0em 1em 0em 0em;
  transform-origin:right 50%;
}
.ui.right.center.popup{
  margin:0em 0em 0em 1em;
  transform-origin:left 50%;
}
.ui.bottom.popup{
  margin:1em 0em 0em;
}
.ui.bottom.left.popup{
  transform-origin:left top;
}
.ui.bottom.center.popup{
  transform-origin:center top;
}
.ui.bottom.right.popup{
  transform-origin:right top;
}
.ui.bottom.center.popup:before{
  margin-left:-0.45em;
  top:-0.45em;
  left:50%;
  right:auto;
  bottom:auto;
  box-shadow:-1px -1px 0px 0px #bababc;
}
.ui.bottom.left.popup{
  margin-left:0em;
}
.ui.bottom.left.popup:before{
  top:-0.45em;
  left:1em;
  right:auto;
  bottom:auto;
  margin-left:0em;
  box-shadow:-1px -1px 0px 0px #bababc;
}
.ui.bottom.right.popup{
  margin-right:0em;
}
.ui.bottom.right.popup:before{
  top:-0.45em;
  right:1em;
  bottom:auto;
  left:auto;
  margin-left:0em;
  box-shadow:-1px -1px 0px 0px #bababc;
}
.ui.top.center.popup:before{
  top:auto;
  right:auto;
  bottom:-0.45em;
  left:50%;
  margin-left:-0.45em;
}
.ui.top.left.popup{
  margin-left:0em;
}
.ui.top.left.popup:before{
  bottom:-0.45em;
  left:1em;
  top:auto;
  right:auto;
  margin-left:0em;
}
.ui.top.right.popup{
  margin-right:0em;
}
.ui.top.right.popup:before{
  bottom:-0.45em;
  right:1em;
  top:auto;
  left:auto;
  margin-left:0em;
}
.ui.left.center.popup:before{
  top:50%;
  right:-0.45em;
  bottom:auto;
  left:auto;
  margin-top:-0.45em;
  box-shadow:1px -1px 0px 0px #bababc;
}
.ui.right.center.popup:before{
  top:50%;
  left:-0.45em;
  bottom:auto;
  right:auto;
  margin-top:-0.45em;
  box-shadow:-1px 1px 0px 0px #bababc;
}
.ui.bottom.popup:before{
  background:#ffffff;
}
.ui.right.center.popup:before,
.ui.left.center.popup:before{
  background:#ffffff;
}
.ui.top.popup:before{
  background:#ffffff;
}
.ui.inverted.bottom.popup:before{
  background:#000000;
}
.ui.inverted.right.center.popup:before,
.ui.inverted.left.center.popup:before{
  background:#000000;
}
.ui.inverted.top.popup:before{
  background:#000000;
}
.ui.popup > .ui.grid:not(.padded){
  width:calc(100% + 1.75rem);
  margin:-0.7rem -0.875rem;
}
.ui.loading.popup{
  display:block;
  visibility:hidden;
  z-index:-1;
}
.ui.animating.popup,
.ui.visible.popup{
  display:block;
}
.ui.visible.popup{
  transform:translateZ(0px);
  -webkit-backface-visibility:hidden;
          backface-visibility:hidden;
}
.ui.basic.popup:before{
  display:none;
}
.ui.wide.popup{
  max-width:350px;
}
.ui[class*="very wide"].popup{
  max-width:550px;
}
@media only screen and (max-width: 767px){
  .ui.wide.popup,
  .ui[class*="very wide"].popup{
    max-width:250px;
  }
}
.ui.fluid.popup{
  width:100%;
  max-width:none;
}
.ui.inverted.popup{
  background:#000000;
  color:#ffffff;
  border:none;
  box-shadow:none;
}
.ui.inverted.popup .header{
  background-color:none;
  color:#ffffff;
}
.ui.inverted.popup:before{
  background-color:#000000;
  box-shadow:none !important;
}
.ui.flowing.popup{
  max-width:none;
}
.ui.mini.popup{
  font-size:0.8rem;
}
.ui.tiny.popup{
  font-size:0.9rem;
}
.ui.small.popup{
  font-size:0.9rem;
}
.ui.popup{
  font-size:1rem;
}
.ui.large.popup{
  font-size:1.1rem;
}
.ui.huge.popup{
  font-size:1.4rem;
}
/*!
 * # Semantic UI - Progress Bar
 * http://github.com/semantic-org/semantic-ui/
 *
 *
 * Released under the MIT license
 * http://opensource.org/licenses/MIT
 *
 */
.ui.progress{
  position:relative;
  display:block;
  max-width:100%;
  border:none;
  margin:1em 0em 2.5em;
  box-shadow:none;
  background:rgba(0, 0, 0, 0.1);
  padding:0em;
  border-radius:0.4rem;
}
.ui.progress:first-child{
  margin:0em 0em 2.5em;
}
.ui.progress:last-child{
  margin:0em 0em 1.5em;
}
.ui.progress .bar{
  display:block;
  line-height:1;
  position:relative;
  width:0%;
  min-width:2em;
  background:#888888;
  border-radius:0.4rem;
  transition:width 0.1s ease, background-color 0.1s ease;
}
.ui.progress .bar > .progress{
  white-space:nowrap;
  position:absolute;
  width:auto;
  font-size:0.9em;
  top:50%;
  right:0.5em;
  left:auto;
  bottom:auto;
  color:rgba(255, 255, 255, 0.7);
  text-shadow:none;
  margin-top:-0.5em;
  font-weight:bold;
  text-align:left;
}
.ui.progress > .label{
  position:absolute;
  width:100%;
  font-size:1em;
  top:100%;
  right:auto;
  left:0%;
  bottom:auto;
  color:#333333;
  font-weight:bold;
  text-shadow:none;
  margin-top:0.2em;
  text-align:center;
  transition:color 0.4s ease;
}
.ui.indicating.progress[data-percent^="1"] .bar,
.ui.indicating.progress[data-percent^="2"] .bar{
  background-color:#D95C5C;
}
.ui.indicating.progress[data-percent^="3"] .bar{
  background-color:#EFBC72;
}
.ui.indicating.progress[data-percent^="4"] .bar,
.ui.indicating.progress[data-percent^="5"] .bar{
  background-color:#E6BB48;
}
.ui.indicating.progress[data-percent^="6"] .bar{
  background-color:#DDC928;
}
.ui.indicating.progress[data-percent^="7"] .bar,
.ui.indicating.progress[data-percent^="8"] .bar{
  background-color:#B4D95C;
}
.ui.indicating.progress[data-percent^="9"] .bar,
.ui.indicating.progress[data-percent^="100"] .bar{
  background-color:#66DA81;
}
.ui.indicating.progress[data-percent^="1"] .label,
.ui.indicating.progress[data-percent^="2"] .label{
  color:#333333;
}
.ui.indicating.progress[data-percent^="3"] .label{
  color:#333333;
}
.ui.indicating.progress[data-percent^="4"] .label,
.ui.indicating.progress[data-percent^="5"] .label{
  color:#333333;
}
.ui.indicating.progress[data-percent^="6"] .label{
  color:#333333;
}
.ui.indicating.progress[data-percent^="7"] .label,
.ui.indicating.progress[data-percent^="8"] .label{
  color:#333333;
}
.ui.indicating.progress[data-percent^="9"] .label,
.ui.indicating.progress[data-percent^="100"] .label{
  color:#333333;
}
.ui.indicating.progress[data-percent="1"] .bar,
.ui.indicating.progress[data-percent="2"] .bar,
.ui.indicating.progress[data-percent="3"] .bar,
.ui.indicating.progress[data-percent="4"] .bar,
.ui.indicating.progress[data-percent="5"] .bar,
.ui.indicating.progress[data-percent="6"] .bar,
.ui.indicating.progress[data-percent="7"] .bar,
.ui.indicating.progress[data-percent="8"] .bar,
.ui.indicating.progress[data-percent="9"] .bar{
  background-color:#D95C5C;
}
.ui.indicating.progress[data-percent="1"] .label,
.ui.indicating.progress[data-percent="2"] .label,
.ui.indicating.progress[data-percent="3"] .label,
.ui.indicating.progress[data-percent="4"] .label,
.ui.indicating.progress[data-percent="5"] .label,
.ui.indicating.progress[data-percent="6"] .label,
.ui.indicating.progress[data-percent="7"] .label,
.ui.indicating.progress[data-percent="8"] .label,
.ui.indicating.progress[data-percent="9"] .label{
  color:#333333;
}
.ui.indicating.progress.success .label{
  color:#1A531B;
}
.ui.progress.success .bar{
  background-color:#19a531 !important;
}
.ui.progress.success .bar,
.ui.progress.success .bar::after{
  animation:none !important;
}
.ui.progress.success > .label{
  color:#1A531B;
}
.ui.progress.warning .bar{
  background-color:#F2C037 !important;
}
.ui.progress.warning .bar,
.ui.progress.warning .bar::after{
  animation:none !important;
}
.ui.progress.warning > .label{
  color:#794B02;
}
.ui.progress.error .bar{
  background-color:#de3a3e !important;
}
.ui.progress.error .bar,
.ui.progress.error .bar::after{
  animation:none !important;
}
.ui.progress.error > .label{
  color:#912D2B;
}
.ui.active.progress .bar{
  position:relative;
  min-width:2em;
}
.ui.active.progress .bar::after{
  content:'';
  opacity:0;
  position:absolute;
  top:0px;
  left:0px;
  right:0px;
  bottom:0px;
  background:#ffffff;
  border-radius:0.4rem;
  animation:progress-active 2s ease infinite;
}
@keyframes progress-active{
  0%{
    opacity:0.3;
    width:0;
  }
  100%{
    opacity:0;
    width:100%;
  }
}
.ui.disabled.progress{
  opacity:0.35;
}
.ui.disabled.progress .bar,
.ui.disabled.progress .bar::after{
  animation:none !important;
}
.ui.inverted.progress{
  background:rgba(255, 255, 255, 0.08);
  border:none;
}
.ui.inverted.progress .bar{
  background:#888888;
}
.ui.inverted.progress .bar > .progress{
  color:#F9FAFB;
}
.ui.inverted.progress > .label{
  color:#ffffff;
}
.ui.inverted.progress.success > .label{
  color:#19a531;
}
.ui.inverted.progress.warning > .label{
  color:#F2C037;
}
.ui.inverted.progress.error > .label{
  color:#de3a3e;
}
.ui.progress.attached{
  background:transparent;
  position:relative;
  border:none;
  margin:0em;
}
.ui.progress.attached,
.ui.progress.attached .bar{
  display:block;
  height:0.2rem;
  padding:0px;
  overflow:hidden;
  border-radius:0em 0em 0.4rem 0.4rem;
}
.ui.progress.attached .bar{
  border-radius:0em;
}
.ui.progress.top.attached,
.ui.progress.top.attached .bar{
  top:0px;
  border-radius:0.4rem 0.4rem 0em 0em;
}
.ui.progress.top.attached .bar{
  border-radius:0em;
}
.ui.segment > .ui.attached.progress,
.ui.card > .ui.attached.progress{
  position:absolute;
  top:auto;
  left:0;
  bottom:100%;
  width:100%;
}
.ui.segment > .ui.bottom.attached.progress,
.ui.card > .ui.bottom.attached.progress{
  top:100%;
  bottom:auto;
}
.ui.red.progress .bar{
  background-color:#de3a3e;
}
.ui.red.inverted.progress .bar{
  background-color:#FF695E;
}
.ui.orange.progress .bar{
  background-color:#ff9533;
}
.ui.orange.inverted.progress .bar{
  background-color:#FF851B;
}
.ui.yellow.progress .bar{
  background-color:#FBBD08;
}
.ui.yellow.inverted.progress .bar{
  background-color:#FFE21F;
}
.ui.olive.progress .bar{
  background-color:#B5CC18;
}
.ui.olive.inverted.progress .bar{
  background-color:#D9E778;
}
.ui.green.progress .bar{
  background-color:#19a531;
}
.ui.green.inverted.progress .bar{
  background-color:#2ECC40;
}
.ui.teal.progress .bar{
  background-color:#00B5AD;
}
.ui.teal.inverted.progress .bar{
  background-color:#6DFFFF;
}
.ui.blue.progress .bar{
  background-color:#3f51b5;
}
.ui.blue.inverted.progress .bar{
  background-color:#54C8FF;
}
.ui.violet.progress .bar{
  background-color:#6435C9;
}
.ui.violet.inverted.progress .bar{
  background-color:#A291FB;
}
.ui.purple.progress .bar{
  background-color:#A333C8;
}
.ui.purple.inverted.progress .bar{
  background-color:#DC73FF;
}
.ui.pink.progress .bar{
  background-color:#E03997;
}
.ui.pink.inverted.progress .bar{
  background-color:#FF8EDF;
}
.ui.brown.progress .bar{
  background-color:#A5673F;
}
.ui.brown.inverted.progress .bar{
  background-color:#D67C1C;
}
.ui.grey.progress .bar{
  background-color:#767676;
}
.ui.grey.inverted.progress .bar{
  background-color:#DCDDDE;
}
.ui.black.progress .bar{
  background-color:#000000;
}
.ui.black.inverted.progress .bar{
  background-color:#545454;
}
.ui.tiny.progress{
  font-size:0.9rem;
}
.ui.tiny.progress .bar{
  height:0.5em;
}
.ui.small.progress{
  font-size:0.9rem;
}
.ui.small.progress .bar{
  height:1em;
}
.ui.progress{
  font-size:1rem;
}
.ui.progress .bar{
  height:1.75em;
}
.ui.large.progress{
  font-size:1.1rem;
}
.ui.large.progress .bar{
  height:2.5em;
}
.ui.big.progress{
  font-size:1.3rem;
}
.ui.big.progress .bar{
  height:3.5em;
}
/*!
 * # Semantic UI - Rating
 * http://github.com/semantic-org/semantic-ui/
 *
 *
 * Released under the MIT license
 * http://opensource.org/licenses/MIT
 *
 */
.ui.rating{
  display:inline-flex;
  white-space:nowrap;
  vertical-align:baseline;
}
.ui.rating:last-child{
  margin-right:0em;
}
.ui.rating .icon{
  padding:0em;
  margin:0em;
  text-align:center;
  font-weight:normal;
  font-style:normal;
  flex:1 0 auto;
  cursor:pointer;
  width:1.25em;
  height:auto;
  transition:opacity 0.1s ease, background 0.1s ease, text-shadow 0.1s ease, color 0.1s ease;
}
.ui.rating .icon{
  background:transparent;
  color:rgba(0, 0, 0, 0.15);
}
.ui.rating .active.icon{
  background:transparent;
  color:rgba(0, 0, 0, 0.85);
}
.ui.rating .icon.selected,
.ui.rating .icon.selected.active{
  background:transparent;
  color:#333333;
}
.ui.star.rating .icon{
  width:1.25em;
  height:auto;
  background:transparent;
  color:rgba(0, 0, 0, 0.15);
  text-shadow:none;
}
.ui.star.rating .active.icon{
  background:transparent !important;
  color:#FFE623 !important;
  text-shadow:0px -1px 0px #DDC507, -1px 0px 0px #DDC507, 0px 1px 0px #DDC507, 1px 0px 0px #DDC507 !important;
}
.ui.star.rating .icon.selected,
.ui.star.rating .icon.selected.active{
  background:transparent !important;
  color:#FFCC00 !important;
  text-shadow:0px -1px 0px #E6A200, -1px 0px 0px #E6A200, 0px 1px 0px #E6A200, 1px 0px 0px #E6A200 !important;
}
.ui.heart.rating .icon{
  width:1.4em;
  height:auto;
  background:transparent;
  color:rgba(0, 0, 0, 0.15);
  text-shadow:none !important;
}
.ui.heart.rating .active.icon{
  background:transparent !important;
  color:#FF6D75 !important;
  text-shadow:0px -1px 0px #CD0707, -1px 0px 0px #CD0707, 0px 1px 0px #CD0707, 1px 0px 0px #CD0707 !important;
}
.ui.heart.rating .icon.selected,
.ui.heart.rating .icon.selected.active{
  background:transparent !important;
  color:#FF3000 !important;
  text-shadow:0px -1px 0px #AA0101, -1px 0px 0px #AA0101, 0px 1px 0px #AA0101, 1px 0px 0px #AA0101 !important;
}
.ui.disabled.rating .icon{
  cursor:default;
}
.ui.rating.selected .active.icon{
  opacity:1;
}
.ui.rating.selected .icon.selected,
.ui.rating .icon.selected{
  opacity:1;
}
.ui.mini.rating{
  font-size:0.8rem;
}
.ui.tiny.rating{
  font-size:0.9rem;
}
.ui.small.rating{
  font-size:0.9rem;
}
.ui.rating{
  font-size:1rem;
}
.ui.large.rating{
  font-size:1.1rem;
}
.ui.huge.rating{
  font-size:1.4rem;
}
.ui.massive.rating{
  font-size:2rem;
}
@font-face{
  font-family:'Rating';
  src:url(data:application/x-font-ttf;charset=utf-8;base64,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) format('truetype'), url(data:application/font-woff;charset=utf-8;base64,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kIiRi5MI5vdUFfcni4vCBYufhJx8mn2ZepJ3i3aLeoR9fX18g3qLdwiLVAUO+yaLshWL+AQFi5GNkY+RjpCQj5KNj42PjI+LCPfAiwWPi4+Kj4mRiZCHj4aPhY2Fi4UIi/wEBYuEiYWHhoeGhoeFiIiKhoqHi4GLhI6EkQj7EvcN+xL7DQWEhYOIgouHi4eLh42EjoaPiJCHkImRi5IIDov3XRWLko2Rj5Kltq+vuKW4pbuZvYu9i7t9uHG4ca9npWCPhI2Fi4SLhYmEh4RxYGdoXnAIXnFbflmLWYtbmF6lXqZnrnG2h5KJkouRCLCLFaRkq2yxdLF0tH+4i7iLtJexorGiq6qksm64Z61goZZ3kXaLdItnfm1ycnJybX9oiwhoi22XcqRypH6pi6+LopGglp9gdWdpbl4I9xiwFYuHjIiOiI6IjoqPi4+LjoyOjo2OjY6Lj4ubkJmXl5eWmZGbi4+LjoyOjo2OjY6LjwiLj4mOiY6IjYiNh4tzi3eCenp6eoJ3i3MIDov3XRWLko2Sj5GouK+utqW3pbqYvouci5yJnIgIm6cFjY6NjI+LjIuNi42JjYqOio+JjomOiY6KjomOiY6JjoqNioyKjomMiYuHi4qLiouLCHdnbVVjQ2NDbVV3Zwh9cgWJiIiJiIuJi36SdJiIjYmOi46LjY+UlJlvl3KcdJ90oHeie6WHkYmSi5IIsIsVqlq0Z711CKGzBXqXfpqCnoKdhp6LoIuikaCWn2B1Z2luXgj3GLAVi4eMiI6IjoiOio+Lj4uOjI6OjY6NjouPi5uQmZeXl5aZkZuLj4uOjI6OjY6NjouPCIuPiY6JjoiNiI2Hi3OLd4J6enp6gneLcwji+10VoLAFtI+wmK2hrqKnqKKvdq1wp2uhCJ2rBZ1/nHycepx6mHqWeY+EjYWLhIuEiYWHhIR/gH1+fG9qaXJmeWV5Y4Jhiwi53BXb9yQFjIKMg4uEi3CDc3x1fHV3fHOBCA6L1BWL90sFi5WPlJKSkpKTj5aLCNmLBZKPmJqepJaZlZeVlY+Qj5ONl42WjpeOmI+YkZWTk5OSk46Vi5uLmYiYhZiFlIGSfgiSfo55i3WLeYd5gXgIvosFn4uchJl8mn2Seot3i3qGfIJ9jYSLhYuEi3yIfoR+i4eLh4uHi3eGen99i3CDdnt8CHt8dYNwiwhmiwV5i3mNeY95kHeRc5N1k36Ph4sIOYsFgIuDjoSShJKHlIuVCLCdFYuGjIePiI+Hj4mQi5CLj42Pj46OjY+LkIuQiZCIjoePh42Gi4aLh4mHh4eIioaLhgjUeRWUiwWNi46Lj4qOi4+KjYqOi4+Kj4mQio6KjYqNio+Kj4mQio6KjIqzfquEpIsIrosFr4uemouri5CKkYqQkY6QkI6SjpKNkouSi5KJkoiRlZWQlouYi5CKkImRiZGJj4iOCJGMkI+PlI+UjZKLkouViJODk4SSgo+CiwgmiwWLlpCalJ6UnpCbi5aLnoiYhJSFlH+QeYuGhoeDiYCJf4h/h3+IfoWBg4KHh4SCgH4Ii4qIiYiGh4aIh4mIiIiIh4eGh4aHh4eHiIiHiIeHiIiHiIeKh4mIioiLCIKLi/tLBQ6L90sVi/dLBYuVj5OSk5KSk46WiwjdiwWPi5iPoZOkk6CRnZCdj56Nn4sIq4sFpougg5x8m3yTd4txCIuJBZd8kHuLd4uHi4eLh5J+jn6LfIuEi4SJhZR9kHyLeot3hHp8fH19eoR3iwhYiwWVeI95i3mLdIh6hH6EfoKBfoV+hX2He4uBi4OPg5KFkYaTh5SHlYiTipOKk4qTiJMIiZSIkYiPgZSBl4CaeKR+moSPCD2LBYCLg4+EkoSSh5SLlQiw9zgVi4aMh4+Ij4ePiZCLkIuPjY+Pjo6Nj4uQi5CJkIiOh4+HjYaLhouHiYeHh4iKhouGCNT7OBWUiwWOi46Kj4mPio+IjoiPh4+IjoePiI+Hj4aPho6HjoiNiI6Hj4aOho6Ii4qWfpKDj4YIk4ORgY5+j36OgI1/jYCPg5CGnYuXj5GUkpSOmYuei5aGmoKfgp6GmouWCPCLBZSLlI+SkpOTjpOLlYuSiZKHlIeUho+Fi46PjY+NkY2RjJCLkIuYhpaBlY6RjZKLkgiLkomSiJKIkoaQhY6MkIyRi5CLm4aXgpOBkn6Pe4sIZosFcotrhGN9iouIioaJh4qHiomKiYqIioaKh4mHioiKiYuHioiLh4qIi4mLCIKLi/tLBQ77lIv3txWLkpCPlo0I9yOgzPcWBY6SkI+RiwiL/BL7FUcFh4mHioiLh4uIjImOiY6KjouPi4yLjYyOCKP3IyPwBYaQiZCLjwgOi/fFFYu1l6yjoqOjrZe2i5aLl4mYh5eHloWWhJaElIWShZOE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) format('woff');
  font-weight:normal;
  font-style:normal;
}
.ui.rating .icon{
  font-family:'Rating';
  line-height:1;
  -webkit-backface-visibility:hidden;
          backface-visibility:hidden;
  font-weight:normal;
  font-style:normal;
  text-align:center;
}
.ui.rating .icon:before{
  content:'\f005';
}
.ui.rating .active.icon:before{
  content:'\f005';
}
.ui.star.rating .icon:before{
  content:'\f005';
}
.ui.star.rating .active.icon:before{
  content:'\f005';
}
.ui.star.rating .partial.icon:before{
  content:'\f006';
}
.ui.star.rating .partial.icon{
  content:'\f005';
}
.ui.heart.rating .icon:before{
  content:'\f004';
}
.ui.heart.rating .active.icon:before{
  content:'\f004';
}
/*!
 * # Semantic UI - Search
 * http://github.com/semantic-org/semantic-ui/
 *
 *
 * Released under the MIT license
 * http://opensource.org/licenses/MIT
 *
 */
.ui.search{
  position:relative;
}
.ui.search > .prompt{
  margin:0em;
  outline:none;
  -webkit-appearance:none;
  -webkit-tap-highlight-color:rgba(255, 255, 255, 0);
  text-shadow:none;
  font-style:normal;
  font-weight:normal;
  line-height:1.21428571em;
  padding:0.99285714em 1.4em;
  font-size:1em;
  background:#ffffff;
  border:1px solid rgba(34, 36, 38, 0.15);
  color:#333333;
  box-shadow:0em 0em 0em 0em transparent inset;
  transition:background-color 0.1s ease, color 0.1s ease, box-shadow 0.1s ease, border-color 0.1s ease;
}
.ui.search .prompt{
  border-radius:500rem;
}
.ui.search .prompt ~ .search.icon{
  cursor:pointer;
}
.ui.search > .results{
  display:none;
  position:absolute;
  top:100%;
  left:0%;
  transform-origin:center top;
  white-space:normal;
  background:#FFFFFF;
  margin-top:0.5em;
  width:18em;
  border-radius:0.4rem;
  box-shadow:0px 2px 4px 0px rgba(34, 36, 38, 0.12), 0px 2px 10px 0px rgba(34, 36, 38, 0.15);
  border:1px solid #D4D4D5;
  z-index:998;
}
.ui.search > .results > :first-child{
  border-radius:0.4rem 0.4rem 0em 0em;
}
.ui.search > .results > :last-child{
  border-radius:0em 0em 0.4rem 0.4rem;
}
.ui.search > .results .result{
  cursor:pointer;
  display:block;
  overflow:hidden;
  font-size:1em;
  padding:0.9em 1.1em;
  color:#333333;
  line-height:1.33;
  border-bottom:1px solid rgba(34, 36, 38, 0.1);
}
.ui.search > .results .result:last-child{
  border-bottom:none !important;
}
.ui.search > .results .result .image{
  float:right;
  overflow:hidden;
  background:none;
  width:5em;
  height:3em;
  border-radius:0.25em;
}
.ui.search > .results .result .image img{
  display:block;
  width:auto;
  height:100%;
}
.ui.search > .results .result .image + .content{
  margin:0em 6em 0em 0em;
}
.ui.search > .results .result .title{
  margin:-0.14285714em 0em 0em;
  font-family:'Exo 2', 'Lato', Arial, Helvetica, sans-serif;
  font-weight:bold;
  font-size:1em;
  color:rgba(0, 0, 0, 0.85);
}
.ui.search > .results .result .description{
  margin-top:0;
  font-size:0.9em;
  color:rgba(0, 0, 0, 0.4);
}
.ui.search > .results .result .price{
  float:right;
  color:#19a531;
}
.ui.search > .results > .message{
  padding:1em 1em;
}
.ui.search > .results > .message .header{
  font-family:'Exo 2', 'Lato', Arial, Helvetica, sans-serif;
  font-size:1rem;
  font-weight:bold;
  color:#333333;
}
.ui.search > .results > .message .description{
  margin-top:0.25rem;
  font-size:1em;
  color:#333333;
}
.ui.search > .results > .action{
  display:block;
  border-top:none;
  background:#F3F4F5;
  padding:0.9em 1em;
  color:#333333;
  font-weight:bold;
  text-align:center;
}
.ui.search > .prompt:focus{
  border-color:rgba(34, 36, 38, 0.35);
  background:#ffffff;
  color:rgba(0, 0, 0, 0.95);
}
.ui.loading.search .input > i.icon:before{
  position:absolute;
  content:'';
  top:50%;
  left:50%;
  margin:-0.65em 0em 0em -0.65em;
  width:1.3em;
  height:1.3em;
  border-radius:500rem;
  border:0.2em solid rgba(0, 0, 0, 0.1);
}
.ui.loading.search .input > i.icon:after{
  position:absolute;
  content:'';
  top:50%;
  left:50%;
  margin:-0.65em 0em 0em -0.65em;
  width:1.3em;
  height:1.3em;
  animation:button-spin 0.6s linear;
  animation-iteration-count:infinite;
  border-radius:500rem;
  border-color:#767676 transparent transparent;
  border-style:solid;
  border-width:0.2em;
  box-shadow:0px 0px 0px 1px transparent;
}
.ui.search > .results .result:hover,
.ui.category.search > .results .category .result:hover{
  background:#F9FAFB;
}
.ui.search .action:hover{
  background:#E0E0E0;
}
.ui.category.search > .results .category.active{
  background:#F3F4F5;
}
.ui.category.search > .results .category.active > .name{
  color:#333333;
}
.ui.search > .results .result.active,
.ui.category.search > .results .category .result.active{
  position:relative;
  border-left-color:rgba(34, 36, 38, 0.1);
  background:#F3F4F5;
  box-shadow:none;
}
.ui.search > .results .result.active .title{
  color:rgba(0, 0, 0, 0.85);
}
.ui.search > .results .result.active .description{
  color:rgba(0, 0, 0, 0.85);
}
.ui.search.selection .prompt{
  border-radius:0.4rem;
}
.ui.search.selection > .icon.input > .remove.icon{
  pointer-events:none;
  position:absolute;
  left:auto;
  opacity:0;
  color:'';
  top:0em;
  right:0em;
  transition:color 0.1s ease, opacity 0.1s ease;
}
.ui.search.selection > .icon.input > .active.remove.icon{
  cursor:pointer;
  opacity:0.8;
  pointer-events:auto;
}
.ui.search.selection > .icon.input:not([class*="left icon"]) > .icon ~ .remove.icon{
  right:1.85714em;
}
.ui.search.selection > .icon.input > .remove.icon:hover{
  opacity:1;
  color:#de3a3e;
}
.ui.category.search .results{
  width:28em;
}
.ui.category.search > .results .category{
  background:#F3F4F5;
  box-shadow:none;
  border-bottom:1px solid rgba(34, 36, 38, 0.1);
  transition:background 0.1s ease, border-color 0.1s ease;
}
.ui.category.search > .results .category:last-child{
  border-bottom:none;
}
.ui.category.search > .results .category:first-child .name + .result{
  border-radius:0em 0.4rem 0em 0em;
}
.ui.category.search > .results .category:last-child .result:last-child{
  border-radius:0em 0em 0.4rem 0em;
}
.ui.category.search > .results .category .result{
  background:#ffffff;
  margin-left:100px;
  border-left:1px solid rgba(34, 36, 38, 0.15);
  border-bottom:1px solid rgba(34, 36, 38, 0.1);
  transition:background 0.1s ease, border-color 0.1s ease;
  padding:0.9em 1.1em;
}
.ui.category.search > .results .category:last-child .result:last-child{
  border-bottom:none;
}
.ui.category.search > .results .category > .name{
  width:100px;
  background:transparent;
  font-family:'Exo 2', 'Lato', Arial, Helvetica, sans-serif;
  font-size:1em;
  float:1em;
  float:left;
  padding:0.4em 1em;
  font-weight:bold;
  color:rgba(0, 0, 0, 0.4);
}
.ui[class*="left aligned"].search > .results{
  right:auto;
  left:0%;
}
.ui[class*="right aligned"].search > .results{
  right:0%;
  left:auto;
}
.ui.fluid.search .results{
  width:100%;
}
.ui.mini.search{
  font-size:0.8em;
}
.ui.small.search{
  font-size:0.9em;
}
.ui.search{
  font-size:1em;
}
.ui.large.search{
  font-size:1.1em;
}
.ui.big.search{
  font-size:1.3em;
}
.ui.huge.search{
  font-size:1.4em;
}
.ui.massive.search{
  font-size:1.7em;
}
/*!
 * # Semantic UI - Shape
 * http://github.com/semantic-org/semantic-ui/
 *
 *
 * Released under the MIT license
 * http://opensource.org/licenses/MIT
 *
 */
.ui.shape{
  position:relative;
  vertical-align:top;
  display:inline-block;
  perspective:2000px;
  transition:transform 0.6s ease-in-out, left 0.6s ease-in-out, width 0.6s ease-in-out, height 0.6s ease-in-out;
}
.ui.shape .sides{
  transform-style:preserve-3d;
}
.ui.shape .side{
  opacity:1;
  width:100%;
  margin:0em !important;
  -webkit-backface-visibility:hidden;
          backface-visibility:hidden;
}
.ui.shape .side{
  display:none;
}
.ui.shape .side *{
  -webkit-backface-visibility:visible !important;
          backface-visibility:visible !important;
}
.ui.cube.shape .side{
  min-width:15em;
  height:15em;
  padding:2em;
  background-color:#E6E6E6;
  color:#333333;
  box-shadow:0px 0px 2px rgba(0, 0, 0, 0.3);
}
.ui.cube.shape .side > .content{
  width:100%;
  height:100%;
  display:table;
  text-align:center;
  -webkit-user-select:text;
     -moz-user-select:text;
      -ms-user-select:text;
          user-select:text;
}
.ui.cube.shape .side > .content > div{
  display:table-cell;
  vertical-align:middle;
  font-size:2em;
}
.ui.text.shape.animating .sides{
  position:static;
}
.ui.text.shape .side{
  white-space:nowrap;
}
.ui.text.shape .side > *{
  white-space:normal;
}
.ui.loading.shape{
  position:absolute;
  top:-9999px;
  left:-9999px;
}
.ui.shape .animating.side{
  position:absolute;
  top:0px;
  left:0px;
  display:block;
  z-index:100;
}
.ui.shape .hidden.side{
  opacity:0.6;
}
.ui.shape.animating .sides{
  position:absolute;
}
.ui.shape.animating .sides{
  transition:transform 0.6s ease-in-out, left 0.6s ease-in-out, width 0.6s ease-in-out, height 0.6s ease-in-out;
}
.ui.shape.animating .side{
  transition:opacity 0.6s ease-in-out;
}
.ui.shape .active.side{
  display:block;
}
/*!
 * # Semantic UI - Sidebar
 * http://github.com/semantic-org/semantic-ui/
 *
 *
 * Released under the MIT license
 * http://opensource.org/licenses/MIT
 *
 */
.ui.sidebar{
  position:fixed;
  top:0;
  left:0;
  -webkit-backface-visibility:hidden;
          backface-visibility:hidden;
  transition:none;
  will-change:transform;
  transform:translate3d(0, 0, 0);
  visibility:hidden;
  -webkit-overflow-scrolling:touch;
  height:100% !important;
  max-height:100%;
  border-radius:0em !important;
  margin:0em !important;
  overflow-y:auto !important;
  z-index:102;
}
.ui.sidebar > *{
  -webkit-backface-visibility:hidden;
          backface-visibility:hidden;
}
.ui.left.sidebar{
  right:auto;
  left:0px;
  transform:translate3d(-100%, 0, 0);
}
.ui.right.sidebar{
  right:0px !important;
  left:auto !important;
  transform:translate3d(100%, 0%, 0);
}
.ui.top.sidebar,
.ui.bottom.sidebar{
  width:100% !important;
  height:auto !important;
}
.ui.top.sidebar{
  top:0px !important;
  bottom:auto !important;
  transform:translate3d(0, -100%, 0);
}
.ui.bottom.sidebar{
  top:auto !important;
  bottom:0px !important;
  transform:translate3d(0, 100%, 0);
}
.pushable{
  height:100%;
  overflow-x:hidden;
  padding:0em !important;
}
body.pushable{
  background:#545454 !important;
}
.pushable:not(body){
  transform:translate3d(0, 0, 0);
}
.pushable:not(body) > .ui.sidebar,
.pushable:not(body) > .fixed,
.pushable:not(body) > .pusher:after{
  position:absolute;
}
.pushable > .fixed{
  position:fixed;
  -webkit-backface-visibility:hidden;
          backface-visibility:hidden;
  transition:transform 500ms ease;
  will-change:transform;
  z-index:101;
}
.pushable > .pusher{
  position:relative;
  -webkit-backface-visibility:hidden;
          backface-visibility:hidden;
  overflow:hidden;
  min-height:100%;
  transition:transform 500ms ease;
  z-index:2;
}
body.pushable > .pusher{
  background:#FFFFFF;
}
.pushable > .pusher{
  background:inherit;
}
.pushable > .pusher:after{
  position:fixed;
  top:0px;
  right:0px;
  content:'';
  background-color:rgba(0, 0, 0, 0.4);
  overflow:hidden;
  opacity:0;
  transition:opacity 500ms;
  will-change:opacity;
  z-index:1000;
}
.ui.sidebar.menu .item{
  border-radius:0em !important;
}
.pushable > .pusher.dimmed:after{
  width:100% !important;
  height:100% !important;
  opacity:1 !important;
}
.ui.animating.sidebar{
  visibility:visible;
}
.ui.visible.sidebar{
  visibility:visible;
  transform:translate3d(0, 0, 0);
}
.ui.left.visible.sidebar,
.ui.right.visible.sidebar{
  box-shadow:0px 0px 20px rgba(34, 36, 38, 0.15);
}
.ui.top.visible.sidebar,
.ui.bottom.visible.sidebar{
  box-shadow:0px 0px 20px rgba(34, 36, 38, 0.15);
}
.ui.visible.left.sidebar ~ .fixed,
.ui.visible.left.sidebar ~ .pusher{
  transform:translate3d(260px, 0, 0);
}
.ui.visible.right.sidebar ~ .fixed,
.ui.visible.right.sidebar ~ .pusher{
  transform:translate3d(-260px, 0, 0);
}
.ui.visible.top.sidebar ~ .fixed,
.ui.visible.top.sidebar ~ .pusher{
  transform:translate3d(0, 36px, 0);
}
.ui.visible.bottom.sidebar ~ .fixed,
.ui.visible.bottom.sidebar ~ .pusher{
  transform:translate3d(0, -36px, 0);
}
.ui.visible.left.sidebar ~ .ui.visible.right.sidebar ~ .fixed,
.ui.visible.left.sidebar ~ .ui.visible.right.sidebar ~ .pusher,
.ui.visible.right.sidebar ~ .ui.visible.left.sidebar ~ .fixed,
.ui.visible.right.sidebar ~ .ui.visible.left.sidebar ~ .pusher{
  transform:translate3d(0, 0, 0);
}
html.ios{
  overflow-x:hidden;
  -webkit-overflow-scrolling:touch;
}
html.ios,
html.ios body{
  height:auto !important;
  height:initial !important;
}
.ui.thin.left.sidebar,
.ui.thin.right.sidebar{
  width:150px;
}
.ui[class*="very thin"].left.sidebar,
.ui[class*="very thin"].right.sidebar{
  width:60px;
}
.ui.left.sidebar,
.ui.right.sidebar{
  width:260px;
}
.ui.wide.left.sidebar,
.ui.wide.right.sidebar{
  width:350px;
}
.ui[class*="very wide"].left.sidebar,
.ui[class*="very wide"].right.sidebar{
  width:475px;
}
.ui.visible.thin.left.sidebar ~ .fixed,
.ui.visible.thin.left.sidebar ~ .pusher{
  transform:translate3d(150px, 0, 0);
}
.ui.visible[class*="very thin"].left.sidebar ~ .fixed,
.ui.visible[class*="very thin"].left.sidebar ~ .pusher{
  transform:translate3d(60px, 0, 0);
}
.ui.visible.wide.left.sidebar ~ .fixed,
.ui.visible.wide.left.sidebar ~ .pusher{
  transform:translate3d(350px, 0, 0);
}
.ui.visible[class*="very wide"].left.sidebar ~ .fixed,
.ui.visible[class*="very wide"].left.sidebar ~ .pusher{
  transform:translate3d(475px, 0, 0);
}
.ui.visible.thin.right.sidebar ~ .fixed,
.ui.visible.thin.right.sidebar ~ .pusher{
  transform:translate3d(-150px, 0, 0);
}
.ui.visible[class*="very thin"].right.sidebar ~ .fixed,
.ui.visible[class*="very thin"].right.sidebar ~ .pusher{
  transform:translate3d(-60px, 0, 0);
}
.ui.visible.wide.right.sidebar ~ .fixed,
.ui.visible.wide.right.sidebar ~ .pusher{
  transform:translate3d(-350px, 0, 0);
}
.ui.visible[class*="very wide"].right.sidebar ~ .fixed,
.ui.visible[class*="very wide"].right.sidebar ~ .pusher{
  transform:translate3d(-475px, 0, 0);
}
.ui.overlay.sidebar{
  z-index:102;
}
.ui.left.overlay.sidebar{
  transform:translate3d(-100%, 0%, 0);
}
.ui.right.overlay.sidebar{
  transform:translate3d(100%, 0%, 0);
}
.ui.top.overlay.sidebar{
  transform:translate3d(0%, -100%, 0);
}
.ui.bottom.overlay.sidebar{
  transform:translate3d(0%, 100%, 0);
}
.animating.ui.overlay.sidebar,
.ui.visible.overlay.sidebar{
  transition:transform 500ms ease;
}
.ui.visible.left.overlay.sidebar{
  transform:translate3d(0%, 0%, 0);
}
.ui.visible.right.overlay.sidebar{
  transform:translate3d(0%, 0%, 0);
}
.ui.visible.top.overlay.sidebar{
  transform:translate3d(0%, 0%, 0);
}
.ui.visible.bottom.overlay.sidebar{
  transform:translate3d(0%, 0%, 0);
}
.ui.visible.overlay.sidebar ~ .fixed,
.ui.visible.overlay.sidebar ~ .pusher{
  transform:none !important;
}
.ui.push.sidebar{
  transition:transform 500ms ease;
  z-index:102;
}
.ui.left.push.sidebar{
  transform:translate3d(-100%, 0, 0);
}
.ui.right.push.sidebar{
  transform:translate3d(100%, 0, 0);
}
.ui.top.push.sidebar{
  transform:translate3d(0%, -100%, 0);
}
.ui.bottom.push.sidebar{
  transform:translate3d(0%, 100%, 0);
}
.ui.visible.push.sidebar{
  transform:translate3d(0%, 0, 0);
}
.ui.uncover.sidebar{
  transform:translate3d(0, 0, 0);
  z-index:1;
}
.ui.visible.uncover.sidebar{
  transform:translate3d(0, 0, 0);
  transition:transform 500ms ease;
}
.ui.slide.along.sidebar{
  z-index:1;
}
.ui.left.slide.along.sidebar{
  transform:translate3d(-50%, 0, 0);
}
.ui.right.slide.along.sidebar{
  transform:translate3d(50%, 0, 0);
}
.ui.top.slide.along.sidebar{
  transform:translate3d(0, -50%, 0);
}
.ui.bottom.slide.along.sidebar{
  transform:translate3d(0%, 50%, 0);
}
.ui.animating.slide.along.sidebar{
  transition:transform 500ms ease;
}
.ui.visible.slide.along.sidebar{
  transform:translate3d(0%, 0, 0);
}
.ui.slide.out.sidebar{
  z-index:1;
}
.ui.left.slide.out.sidebar{
  transform:translate3d(50%, 0, 0);
}
.ui.right.slide.out.sidebar{
  transform:translate3d(-50%, 0, 0);
}
.ui.top.slide.out.sidebar{
  transform:translate3d(0%, 50%, 0);
}
.ui.bottom.slide.out.sidebar{
  transform:translate3d(0%, -50%, 0);
}
.ui.animating.slide.out.sidebar{
  transition:transform 500ms ease;
}
.ui.visible.slide.out.sidebar{
  transform:translate3d(0%, 0, 0);
}
.ui.scale.down.sidebar{
  transition:transform 500ms ease;
  z-index:102;
}
.ui.left.scale.down.sidebar{
  transform:translate3d(-100%, 0, 0);
}
.ui.right.scale.down.sidebar{
  transform:translate3d(100%, 0, 0);
}
.ui.top.scale.down.sidebar{
  transform:translate3d(0%, -100%, 0);
}
.ui.bottom.scale.down.sidebar{
  transform:translate3d(0%, 100%, 0);
}
.ui.scale.down.left.sidebar ~ .pusher{
  transform-origin:75% 50%;
}
.ui.scale.down.right.sidebar ~ .pusher{
  transform-origin:25% 50%;
}
.ui.scale.down.top.sidebar ~ .pusher{
  transform-origin:50% 75%;
}
.ui.scale.down.bottom.sidebar ~ .pusher{
  transform-origin:50% 25%;
}
.ui.animating.scale.down > .visible.ui.sidebar{
  transition:transform 500ms ease;
}
.ui.visible.scale.down.sidebar ~ .pusher,
.ui.animating.scale.down.sidebar ~ .pusher{
  display:block !important;
  width:100%;
  height:100%;
  overflow:hidden !important;
}
.ui.visible.scale.down.sidebar{
  transform:translate3d(0, 0, 0);
}
.ui.visible.scale.down.sidebar ~ .pusher{
  transform:scale(0.75);
}
/*!
 * # Semantic UI - Sticky
 * http://github.com/semantic-org/semantic-ui/
 *
 *
 * Released under the MIT license
 * http://opensource.org/licenses/MIT
 *
 */
.ui.sticky{
  position:static;
  transition:none;
  z-index:800;
}
.ui.sticky.bound{
  position:absolute;
  left:auto;
  right:auto;
}
.ui.sticky.fixed{
  position:fixed;
  left:auto;
  right:auto;
}
.ui.sticky.bound.top,
.ui.sticky.fixed.top{
  top:0px;
  bottom:auto;
}
.ui.sticky.bound.bottom,
.ui.sticky.fixed.bottom{
  top:auto;
  bottom:0px;
}
.ui.native.sticky{
  position:-webkit-sticky;
  position:-moz-sticky;
  position:-ms-sticky;
  position:-o-sticky;
  position:sticky;
}
/*!
 * # Semantic UI - Tab
 * http://github.com/semantic-org/semantic-ui/
 *
 *
 * Released under the MIT license
 * http://opensource.org/licenses/MIT
 *
 */
.ui.tab{
  display:none;
}
.ui.tab.active,
.ui.tab.open{
  display:block;
}
.ui.tab.loading{
  position:relative;
  overflow:hidden;
  display:block;
  min-height:250px;
}
.ui.tab.loading *{
  position:relative !important;
  left:-10000px !important;
}
.ui.tab.loading:before,
.ui.tab.loading.segment:before{
  position:absolute;
  content:'';
  top:100px;
  left:50%;
  margin:-1.25em 0em 0em -1.25em;
  width:2.5em;
  height:2.5em;
  border-radius:500rem;
  border:0.2em solid rgba(0, 0, 0, 0.1);
}
.ui.tab.loading:after,
.ui.tab.loading.segment:after{
  position:absolute;
  content:'';
  top:100px;
  left:50%;
  margin:-1.25em 0em 0em -1.25em;
  width:2.5em;
  height:2.5em;
  animation:button-spin 0.6s linear;
  animation-iteration-count:infinite;
  border-radius:500rem;
  border-color:#767676 transparent transparent;
  border-style:solid;
  border-width:0.2em;
  box-shadow:0px 0px 0px 1px transparent;
}
/*!
 * # Semantic UI - Transition
 * http://github.com/semantic-org/semantic-ui/
 *
 *
 * Released under the MIT license
 * http://opensource.org/licenses/MIT
 *
 */
.transition{
  animation-iteration-count:1;
  animation-duration:300ms;
  animation-timing-function:ease;
  animation-fill-mode:both;
}
.animating.transition{
  -webkit-backface-visibility:hidden;
          backface-visibility:hidden;
  visibility:visible !important;
}
.loading.transition{
  position:absolute;
  top:-99999px;
  left:-99999px;
}
.hidden.transition{
  display:none;
  visibility:hidden;
}
.visible.transition{
  display:block !important;
  visibility:visible !important;
}
.disabled.transition{
  animation-play-state:paused;
}
.looping.transition{
  animation-iteration-count:infinite;
}
.transition.browse{
  animation-duration:500ms;
}
.transition.browse.in{
  animation-name:browseIn;
}
.transition.browse.out,
.transition.browse.left.out{
  animation-name:browseOutLeft;
}
.transition.browse.right.out{
  animation-name:browseOutRight;
}
@keyframes browseIn{
  0%{
    transform:scale(0.8) translateZ(0px);
    z-index:-1;
  }
  10%{
    transform:scale(0.8) translateZ(0px);
    z-index:-1;
    opacity:0.7;
  }
  80%{
    transform:scale(1.05) translateZ(0px);
    opacity:1;
    z-index:999;
  }
  100%{
    transform:scale(1) translateZ(0px);
    z-index:999;
  }
}
@keyframes browseOutLeft{
  0%{
    z-index:999;
    transform:translateX(0%) rotateY(0deg) rotateX(0deg);
  }
  50%{
    z-index:-1;
    transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);
  }
  80%{
    opacity:1;
  }
  100%{
    z-index:-1;
    transform:translateX(0%) rotateY(0deg) rotateX(0deg) translateZ(-10px);
    opacity:0;
  }
}
@keyframes browseOutRight{
  0%{
    z-index:999;
    transform:translateX(0%) rotateY(0deg) rotateX(0deg);
  }
  50%{
    z-index:1;
    transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);
  }
  80%{
    opacity:1;
  }
  100%{
    z-index:1;
    transform:translateX(0%) rotateY(0deg) rotateX(0deg) translateZ(-10px);
    opacity:0;
  }
}
.drop.transition{
  transform-origin:top center;
  animation-duration:400ms;
  animation-timing-function:cubic-bezier(0.34, 1.61, 0.7, 1);
}
.drop.transition.in{
  animation-name:dropIn;
}
.drop.transition.out{
  animation-name:dropOut;
}
@keyframes dropIn{
  0%{
    opacity:0;
    transform:scale(0);
  }
  100%{
    opacity:1;
    transform:scale(1);
  }
}
@keyframes dropOut{
  0%{
    opacity:1;
    transform:scale(1);
  }
  100%{
    opacity:0;
    transform:scale(0);
  }
}
.transition.fade.in{
  animation-name:fadeIn;
}
.transition[class*="fade up"].in{
  animation-name:fadeInUp;
}
.transition[class*="fade down"].in{
  animation-name:fadeInDown;
}
.transition[class*="fade left"].in{
  animation-name:fadeInLeft;
}
.transition[class*="fade right"].in{
  animation-name:fadeInRight;
}
.transition.fade.out{
  animation-name:fadeOut;
}
.transition[class*="fade up"].out{
  animation-name:fadeOutUp;
}
.transition[class*="fade down"].out{
  animation-name:fadeOutDown;
}
.transition[class*="fade left"].out{
  animation-name:fadeOutLeft;
}
.transition[class*="fade right"].out{
  animation-name:fadeOutRight;
}
@keyframes fadeIn{
  0%{
    opacity:0;
  }
  100%{
    opacity:1;
  }
}
@keyframes fadeInUp{
  0%{
    opacity:0;
    transform:translateY(10%);
  }
  100%{
    opacity:1;
    transform:translateY(0%);
  }
}
@keyframes fadeInDown{
  0%{
    opacity:0;
    transform:translateY(-10%);
  }
  100%{
    opacity:1;
    transform:translateY(0%);
  }
}
@keyframes fadeInLeft{
  0%{
    opacity:0;
    transform:translateX(10%);
  }
  100%{
    opacity:1;
    transform:translateX(0%);
  }
}
@keyframes fadeInRight{
  0%{
    opacity:0;
    transform:translateX(-10%);
  }
  100%{
    opacity:1;
    transform:translateX(0%);
  }
}
@keyframes fadeOut{
  0%{
    opacity:1;
  }
  100%{
    opacity:0;
  }
}
@keyframes fadeOutUp{
  0%{
    opacity:1;
    transform:translateY(0%);
  }
  100%{
    opacity:0;
    transform:translateY(5%);
  }
}
@keyframes fadeOutDown{
  0%{
    opacity:1;
    transform:translateY(0%);
  }
  100%{
    opacity:0;
    transform:translateY(-5%);
  }
}
@keyframes fadeOutLeft{
  0%{
    opacity:1;
    transform:translateX(0%);
  }
  100%{
    opacity:0;
    transform:translateX(5%);
  }
}
@keyframes fadeOutRight{
  0%{
    opacity:1;
    transform:translateX(0%);
  }
  100%{
    opacity:0;
    transform:translateX(-5%);
  }
}
.flip.transition.in,
.flip.transition.out{
  animation-duration:600ms;
}
.horizontal.flip.transition.in{
  animation-name:horizontalFlipIn;
}
.horizontal.flip.transition.out{
  animation-name:horizontalFlipOut;
}
.vertical.flip.transition.in{
  animation-name:verticalFlipIn;
}
.vertical.flip.transition.out{
  animation-name:verticalFlipOut;
}
@keyframes horizontalFlipIn{
  0%{
    transform:perspective(2000px) rotateY(-90deg);
    opacity:0;
  }
  100%{
    transform:perspective(2000px) rotateY(0deg);
    opacity:1;
  }
}
@keyframes verticalFlipIn{
  0%{
    transform:perspective(2000px) rotateX(-90deg);
    opacity:0;
  }
  100%{
    transform:perspective(2000px) rotateX(0deg);
    opacity:1;
  }
}
@keyframes horizontalFlipOut{
  0%{
    transform:perspective(2000px) rotateY(0deg);
    opacity:1;
  }
  100%{
    transform:perspective(2000px) rotateY(90deg);
    opacity:0;
  }
}
@keyframes verticalFlipOut{
  0%{
    transform:perspective(2000px) rotateX(0deg);
    opacity:1;
  }
  100%{
    transform:perspective(2000px) rotateX(-90deg);
    opacity:0;
  }
}
.scale.transition.in{
  animation-name:scaleIn;
}
.scale.transition.out{
  animation-name:scaleOut;
}
@keyframes scaleIn{
  0%{
    opacity:0;
    transform:scale(0.8);
  }
  100%{
    opacity:1;
    transform:scale(1);
  }
}
@keyframes scaleOut{
  0%{
    opacity:1;
    transform:scale(1);
  }
  100%{
    opacity:0;
    transform:scale(0.9);
  }
}
.transition.fly{
  animation-duration:0.6s;
  transition-timing-function:cubic-bezier(0.215, 0.61, 0.355, 1);
}
.transition.fly.in{
  animation-name:flyIn;
}
.transition[class*="fly up"].in{
  animation-name:flyInUp;
}
.transition[class*="fly down"].in{
  animation-name:flyInDown;
}
.transition[class*="fly left"].in{
  animation-name:flyInLeft;
}
.transition[class*="fly right"].in{
  animation-name:flyInRight;
}
.transition.fly.out{
  animation-name:flyOut;
}
.transition[class*="fly up"].out{
  animation-name:flyOutUp;
}
.transition[class*="fly down"].out{
  animation-name:flyOutDown;
}
.transition[class*="fly left"].out{
  animation-name:flyOutLeft;
}
.transition[class*="fly right"].out{
  animation-name:flyOutRight;
}
@keyframes flyIn{
  0%{
    opacity:0;
    transform:scale3d(0.3, 0.3, 0.3);
  }
  20%{
    transform:scale3d(1.1, 1.1, 1.1);
  }
  40%{
    transform:scale3d(0.9, 0.9, 0.9);
  }
  60%{
    opacity:1;
    transform:scale3d(1.03, 1.03, 1.03);
  }
  80%{
    transform:scale3d(0.97, 0.97, 0.97);
  }
  100%{
    opacity:1;
    transform:scale3d(1, 1, 1);
  }
}
@keyframes flyInUp{
  0%{
    opacity:0;
    transform:translate3d(0, 1500px, 0);
  }
  60%{
    opacity:1;
    transform:translate3d(0, -20px, 0);
  }
  75%{
    transform:translate3d(0, 10px, 0);
  }
  90%{
    transform:translate3d(0, -5px, 0);
  }
  100%{
    transform:translate3d(0, 0, 0);
  }
}
@keyframes flyInDown{
  0%{
    opacity:0;
    transform:translate3d(0, -1500px, 0);
  }
  60%{
    opacity:1;
    transform:translate3d(0, 25px, 0);
  }
  75%{
    transform:translate3d(0, -10px, 0);
  }
  90%{
    transform:translate3d(0, 5px, 0);
  }
  100%{
    transform:none;
  }
}
@keyframes flyInLeft{
  0%{
    opacity:0;
    transform:translate3d(1500px, 0, 0);
  }
  60%{
    opacity:1;
    transform:translate3d(-25px, 0, 0);
  }
  75%{
    transform:translate3d(10px, 0, 0);
  }
  90%{
    transform:translate3d(-5px, 0, 0);
  }
  100%{
    transform:none;
  }
}
@keyframes flyInRight{
  0%{
    opacity:0;
    transform:translate3d(-1500px, 0, 0);
  }
  60%{
    opacity:1;
    transform:translate3d(25px, 0, 0);
  }
  75%{
    transform:translate3d(-10px, 0, 0);
  }
  90%{
    transform:translate3d(5px, 0, 0);
  }
  100%{
    transform:none;
  }
}
@keyframes flyOut{
  20%{
    transform:scale3d(0.9, 0.9, 0.9);
  }
  50%,
  55%{
    opacity:1;
    transform:scale3d(1.1, 1.1, 1.1);
  }
  100%{
    opacity:0;
    transform:scale3d(0.3, 0.3, 0.3);
  }
}
@keyframes flyOutUp{
  20%{
    transform:translate3d(0, 10px, 0);
  }
  40%,
  45%{
    opacity:1;
    transform:translate3d(0, -20px, 0);
  }
  100%{
    opacity:0;
    transform:translate3d(0, 2000px, 0);
  }
}
@keyframes flyOutDown{
  20%{
    transform:translate3d(0, -10px, 0);
  }
  40%,
  45%{
    opacity:1;
    transform:translate3d(0, 20px, 0);
  }
  100%{
    opacity:0;
    transform:translate3d(0, -2000px, 0);
  }
}
@keyframes flyOutRight{
  20%{
    opacity:1;
    transform:translate3d(20px, 0, 0);
  }
  100%{
    opacity:0;
    transform:translate3d(-2000px, 0, 0);
  }
}
@keyframes flyOutLeft{
  20%{
    opacity:1;
    transform:translate3d(-20px, 0, 0);
  }
  100%{
    opacity:0;
    transform:translate3d(2000px, 0, 0);
  }
}
.transition.slide.in,
.transition[class*="slide down"].in{
  animation-name:slideInY;
  transform-origin:top center;
}
.transition[class*="slide up"].in{
  animation-name:slideInY;
  transform-origin:bottom center;
}
.transition[class*="slide left"].in{
  animation-name:slideInX;
  transform-origin:center right;
}
.transition[class*="slide right"].in{
  animation-name:slideInX;
  transform-origin:center left;
}
.transition.slide.out,
.transition[class*="slide down"].out{
  animation-name:slideOutY;
  transform-origin:top center;
}
.transition[class*="slide up"].out{
  animation-name:slideOutY;
  transform-origin:bottom center;
}
.transition[class*="slide left"].out{
  animation-name:slideOutX;
  transform-origin:center right;
}
.transition[class*="slide right"].out{
  animation-name:slideOutX;
  transform-origin:center left;
}
@keyframes slideInY{
  0%{
    opacity:0;
    transform:scaleY(0);
  }
  100%{
    opacity:1;
    transform:scaleY(1);
  }
}
@keyframes slideInX{
  0%{
    opacity:0;
    transform:scaleX(0);
  }
  100%{
    opacity:1;
    transform:scaleX(1);
  }
}
@keyframes slideOutY{
  0%{
    opacity:1;
    transform:scaleY(1);
  }
  100%{
    opacity:0;
    transform:scaleY(0);
  }
}
@keyframes slideOutX{
  0%{
    opacity:1;
    transform:scaleX(1);
  }
  100%{
    opacity:0;
    transform:scaleX(0);
  }
}
.transition.swing{
  animation-duration:800ms;
}
.transition[class*="swing down"].in{
  animation-name:swingInX;
  transform-origin:top center;
}
.transition[class*="swing up"].in{
  animation-name:swingInX;
  transform-origin:bottom center;
}
.transition[class*="swing left"].in{
  animation-name:swingInY;
  transform-origin:center right;
}
.transition[class*="swing right"].in{
  animation-name:swingInY;
  transform-origin:center left;
}
.transition.swing.out,
.transition[class*="swing down"].out{
  animation-name:swingOutX;
  transform-origin:top center;
}
.transition[class*="swing up"].out{
  animation-name:swingOutX;
  transform-origin:bottom center;
}
.transition[class*="swing left"].out{
  animation-name:swingOutY;
  transform-origin:center right;
}
.transition[class*="swing right"].out{
  animation-name:swingOutY;
  transform-origin:center left;
}
@keyframes swingInX{
  0%{
    transform:perspective(1000px) rotateX(90deg);
    opacity:0;
  }
  40%{
    transform:perspective(1000px) rotateX(-30deg);
    opacity:1;
  }
  60%{
    transform:perspective(1000px) rotateX(15deg);
  }
  80%{
    transform:perspective(1000px) rotateX(-7.5deg);
  }
  100%{
    transform:perspective(1000px) rotateX(0deg);
  }
}
@keyframes swingInY{
  0%{
    transform:perspective(1000px) rotateY(-90deg);
    opacity:0;
  }
  40%{
    transform:perspective(1000px) rotateY(30deg);
    opacity:1;
  }
  60%{
    transform:perspective(1000px) rotateY(-17.5deg);
  }
  80%{
    transform:perspective(1000px) rotateY(7.5deg);
  }
  100%{
    transform:perspective(1000px) rotateY(0deg);
  }
}
@keyframes swingOutX{
  0%{
    transform:perspective(1000px) rotateX(0deg);
  }
  40%{
    transform:perspective(1000px) rotateX(-7.5deg);
  }
  60%{
    transform:perspective(1000px) rotateX(17.5deg);
  }
  80%{
    transform:perspective(1000px) rotateX(-30deg);
    opacity:1;
  }
  100%{
    transform:perspective(1000px) rotateX(90deg);
    opacity:0;
  }
}
@keyframes swingOutY{
  0%{
    transform:perspective(1000px) rotateY(0deg);
  }
  40%{
    transform:perspective(1000px) rotateY(7.5deg);
  }
  60%{
    transform:perspective(1000px) rotateY(-10deg);
  }
  80%{
    transform:perspective(1000px) rotateY(30deg);
    opacity:1;
  }
  100%{
    transform:perspective(1000px) rotateY(-90deg);
    opacity:0;
  }
}
.flash.transition{
  animation-duration:750ms;
  animation-name:flash;
}
.shake.transition{
  animation-duration:750ms;
  animation-name:shake;
}
.bounce.transition{
  animation-duration:750ms;
  animation-name:bounce;
}
.tada.transition{
  animation-duration:750ms;
  animation-name:tada;
}
.pulse.transition{
  animation-duration:500ms;
  animation-name:pulse;
}
.jiggle.transition{
  animation-duration:750ms;
  animation-name:jiggle;
}
@keyframes flash{
  0%,
  50%,
  100%{
    opacity:1;
  }
  25%,
  75%{
    opacity:0;
  }
}
@keyframes shake{
  0%,
  100%{
    transform:translateX(0);
  }
  10%,
  30%,
  50%,
  70%,
  90%{
    transform:translateX(-10px);
  }
  20%,
  40%,
  60%,
  80%{
    transform:translateX(10px);
  }
}
@keyframes bounce{
  0%,
  20%,
  50%,
  80%,
  100%{
    transform:translateY(0);
  }
  40%{
    transform:translateY(-30px);
  }
  60%{
    transform:translateY(-15px);
  }
}
@keyframes tada{
  0%{
    transform:scale(1);
  }
  10%,
  20%{
    transform:scale(0.9) rotate(-3deg);
  }
  30%,
  50%,
  70%,
  90%{
    transform:scale(1.1) rotate(3deg);
  }
  40%,
  60%,
  80%{
    transform:scale(1.1) rotate(-3deg);
  }
  100%{
    transform:scale(1) rotate(0);
  }
}
@keyframes pulse{
  0%{
    transform:scale(1);
    opacity:1;
  }
  50%{
    transform:scale(0.9);
    opacity:0.7;
  }
  100%{
    transform:scale(1);
    opacity:1;
  }
}
@keyframes jiggle{
  0%{
    transform:scale3d(1, 1, 1);
  }
  30%{
    transform:scale3d(1.25, 0.75, 1);
  }
  40%{
    transform:scale3d(0.75, 1.25, 1);
  }
  50%{
    transform:scale3d(1.15, 0.85, 1);
  }
  65%{
    transform:scale3d(0.95, 1.05, 1);
  }
  75%{
    transform:scale3d(1.05, 0.95, 1);
  }
  100%{
    transform:scale3d(1, 1, 1);
  }
}

/*# sourceMappingURL=data:application/json;base64,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QUVFLDhCQUErQjtBQUNqQztBQUNBOztFQUVFLDhCQUErQjtBQUNqQztBQUNBOztFQUVFLDhCQUErQjtBQUNqQztBQUNBOztFQUVFLDhCQUErQjtBQUNqQztBQUNBOztFQUVFLDhCQUErQjtBQUNqQztBQUNBOztFQUVFLDhCQUErQjtBQUNqQztBQUNBOztFQUVFLDhCQUErQjtBQUNqQztBQUNBOztFQUVFLDhCQUErQjtBQUNqQztBQUNBOztFQUVFLDhCQUErQjtBQUNqQztBQUNBOztFQUVFLDhCQUErQjtBQUNqQztBQUNBOztFQUVFLDhCQUErQjtBQUNqQztBQUNBOztFQUVFLDhCQUErQjtBQUNqQztBQUNBOztFQUVFLDhCQUErQjtBQUNqQztBQUNBOztFQUVFLDhCQUErQjtBQUNqQztBQUNBOztFQUVFLDhCQUErQjtBQUNqQztBQUNBOztFQUVFLDhCQUErQjtBQUNqQztBQUNBOztFQUVFLCtCQUFnQztBQUNsQztBQUNBOztFQUVFLCtCQUFnQztBQUNsQztBQUNBOztFQUVFLCtCQUFnQztBQUNsQztBQUNBOztFQUVFLCtCQUFnQztBQUNsQztBQUNBOztFQUVFLCtCQUFnQztBQUNsQztBQUNBOztFQUVFLCtCQUFnQztBQUNsQztBQUNBOztFQUVFLCtCQUFnQztBQUNsQztBQUNBOztFQUVFLCtCQUFnQztBQUNsQztBQUNBOztFQUVFLCtCQUFnQztBQUNsQztBQUNBOztFQUVFLCtCQUFnQztBQUNsQztBQUNBOztFQUVFLCtCQUFnQztBQUNsQztBQUNBOztFQUVFLCtCQUFnQztBQUNsQztBQUNBOztFQUVFLCtCQUFnQztBQUNsQztBQUNBOztFQUVFLCtCQUFnQztBQUNsQztBQUNBOztFQUVFLCtCQUFnQztBQUNsQztBQUNBOztFQUVFLCtCQUFnQztBQUNsQztBQUNBOztFQUVFLCtCQUFnQztBQUNsQztBQUNBOztFQUVFLCtCQUFnQztBQUNsQztBQUNBOztFQUVFLCtCQUFnQztBQUNsQztBQUNBOztFQUVFLCtCQUFnQztBQUNsQztBQUNBOztFQUVFLCtCQUFnQztBQUNsQztBQUNBOztFQUVFLCtCQUFnQztBQUNsQztBQUNBOztFQUVFLCtCQUFnQztBQUNsQztBQUNBOztFQUVFLCtCQUFnQztBQUNsQztBQUNBOztFQUVFLCtCQUFnQztBQUNsQztBQUNBOztFQUVFLCtCQUFnQztBQUNsQztBQUNBOztFQUVFLCtCQUFnQztBQUNsQztBQUNBOztFQUVFLCtCQUFnQztBQUNsQztBQUNBOztFQUVFLCtCQUFnQztBQUNsQztBQUNBOztFQUVFLCtCQUFnQztBQUNsQztBQUNBOztFQUVFLCtCQUFnQztBQUNsQztBQUNBOztFQUVFLCtCQUFnQztBQUNsQztBQUNBOztFQUVFLCtCQUFnQztBQUNsQztBQUNBOztFQUVFLCtCQUFnQztBQUNsQztBQUNBOztFQUVFLCtCQUFnQztBQUNsQztBQUNBOztFQUVFLCtCQUFnQztBQUNsQztBQUNBOztFQUVFLDZCQUE4QjtBQUNoQztBQUNBOztFQUVFLCtCQUFnQztBQUNsQztBQUNBOztFQUVFLCtCQUFnQztBQUNsQztBQUNBOztFQUVFLCtCQUFnQztBQUNsQztBQUNBOztFQUVFLGdDQUFpQztBQUNuQztBQUNBOztFQUVFLGdDQUFpQztBQUNuQztBQUNBOztFQUVFLGdDQUFpQztBQUNuQztBQUNBOztFQUVFLGdDQUFpQztBQUNuQztBQUNBOztFQUVFLGdDQUFpQztBQUNuQztBQUNBOztFQUVFLGdDQUFpQztBQUNuQztBQUNBOztFQUVFLGdDQUFpQztBQUNuQztBQUNBOztFQUVFLGdDQUFpQztBQUNuQztBQUNBOztFQUVFLGdDQUFpQztBQUNuQztBQUNBOztFQUVFLGdDQUFpQztBQUNuQztBQUNBOztFQUVFLGdDQUFpQztBQUNuQztBQUNBOztFQUVFLGdDQUFpQztBQUNuQztBQUNBOztFQUVFLGdDQUFpQztBQUNuQztBQUNBOztFQUVFLGdDQUFpQztBQUNuQztBQUNBOztFQUVFLGdDQUFpQztBQUNuQztBQUNBOztFQUVFLGdDQUFpQztBQUNuQztBQUNBOztFQUVFLGdDQUFpQztBQUNuQztBQUNBOztFQUVFLGdDQUFpQztBQUNuQztBQUNBOztFQUVFLGdDQUFpQztBQUNuQztBQUNBOztFQUVFLGdDQUFpQztBQUNuQztBQUNBOztFQUVFLGdDQUFpQztBQUNuQztBQUNBOztFQUVFLGdDQUFpQztBQUNuQztBQUNBOztFQUVFLGdDQUFpQztBQUNuQztBQUNBOztFQUVFLGdDQUFpQztBQUNuQztBQUNBOztFQUVFLGdDQUFpQztBQUNuQztBQUNBOztFQUVFLGdDQUFpQztBQUNuQztBQUNBOztFQUVFLGdDQUFpQztBQUNuQztBQUNBOztFQUVFLGdDQUFpQztBQUNuQztBQUNBOztFQUVFLGdDQUFpQztBQUNuQztBQUNBOztFQUVFLGdDQUFpQztBQUNuQztBQUNBOztFQUVFLGdDQUFpQztBQUNuQztBQUNBOztFQUVFLGdDQUFpQztBQUNuQztBQUNBOztFQUVFLGdDQUFpQztBQUNuQztBQUNBOztFQUVFLGdDQUFpQztBQUNuQztBQUNBOztFQUVFLGdDQUFpQztBQUNuQztBQUNBOztFQUVFLGlDQUFrQztBQUNwQztBQUNBOztFQUVFLGlDQUFrQztBQUNwQztBQUNBOztFQUVFLGlDQUFrQztBQUNwQztBQUNBOztFQUVFLGlDQUFrQztBQUNwQztBQUNBOztFQUVFLGlDQUFrQztBQUNwQztBQUNBOztFQUVFLGlDQUFrQztBQUNwQztBQUNBOztFQUVFLGlDQUFrQztBQUNwQztBQUNBOztFQUVFLGlDQUFrQztBQUNwQztBQUNBOztFQUVFLGlDQUFrQztBQUNwQztBQUNBOztFQUVFLGlDQUFrQztBQUNwQztBQUNBOztFQUVFLGlDQUFrQztBQUNwQztBQUNBOztFQUVFLGlDQUFrQztBQUNwQztBQUNBOztFQUVFLGlDQUFrQztBQUNwQztBQUNBOztFQUVFLGlDQUFrQztBQUNwQztBQUNBOztFQUVFLGlDQUFrQztBQUNwQztBQUNBOztFQUVFLGlDQUFrQztBQUNwQztBQUNBOztFQUVFLGlDQUFrQztBQUNwQztBQUNBOztFQUVFLGlDQUFrQztBQUNwQztBQUNBOztFQUVFLGlDQUFrQztBQUNwQztBQUNBOztFQUVFLGlDQUFrQztBQUNwQztBQUNBOztFQUVFLGlDQUFrQztBQUNwQztBQUNBOztFQUVFLGlDQUFrQztBQUNwQztBQUNBOztFQUVFLGlDQUFrQztBQUNwQztBQUNBOztFQUVFLGlDQUFrQztBQUNwQztBQUNBOztFQUVFLGlDQUFrQztBQUNwQztBQUNBOztFQUVFLGlDQUFrQztBQUNwQztBQUNBOztFQUVFLGlDQUFrQztBQUNwQztBQUNBOzs7RUFHRSxpQ0FBa0M7QUFDcEM7QUFDQTs7RUFFRSxpQ0FBa0M7QUFDcEM7QUFDQTs7RUFFRSxpQ0FBa0M7QUFDcEM7QUFDQTs7RUFFRSxpQ0FBa0M7QUFDcEM7QUFDQTs7RUFFRSxpQ0FBa0M7QUFDcEM7QUFDQTs7RUFFRSxpQ0FBa0M7QUFDcEM7QUFDQTs7RUFFRSxpQ0FBa0M7QUFDcEM7QUFDQTs7RUFFRSxpQ0FBa0M7QUFDcEM7QUFDQTs7RUFFRSxpQ0FBa0M7QUFDcEM7QUFDQTs7RUFFRSxpQ0FBa0M7QUFDcEM7QUFDQTs7RUFFRSxpQ0FBa0M7QUFDcEM7QUFDQTs7RUFFRSw2QkFBOEI7QUFDaEM7QUFDQTs7RUFFRSwrQkFBZ0M7QUFDbEM7QUFDQTs7RUFFRSwrQkFBZ0M7QUFDbEM7QUFDQTs7RUFFRSwrQkFBZ0M7QUFDbEM7QUFDQTs7RUFFRSxnQ0FBaUM7QUFDbkM7QUFDQTs7RUFFRSxnQ0FBaUM7QUFDbkM7QUFDQTs7RUFFRSxnQ0FBaUM7QUFDbkM7QUFDQTs7RUFFRSxnQ0FBaUM7QUFDbkM7QUFDQTs7RUFFRSxnQ0FBaUM7QUFDbkM7QUFDQTs7RUFFRSxnQ0FBaUM7QUFDbkM7QUFDQTs7RUFFRSxnQ0FBaUM7QUFDbkM7QUFDQTs7RUFFRSxnQ0FBaUM7QUFDbkM7QUFDQTs7RUFFRSxnQ0FBaUM7QUFDbkM7QUFDQTs7RUFFRSxnQ0FBaUM7QUFDbkM7QUFDQTs7RUFFRSxnQ0FBaUM7QUFDbkM7QUFDQTs7RUFFRSxnQ0FBaUM7QUFDbkM7QUFDQTs7RUFFRSxnQ0FBaUM7QUFDbkM7QUFDQTs7RUFFRSxnQ0FBaUM7QUFDbkM7QUFDQTs7RUFFRSxnQ0FBaUM7QUFDbkM7QUFDQTs7RUFFRSxnQ0FBaUM7QUFDbkM7QUFDQTs7RUFFRSxnQ0FBaUM7QUFDbkM7QUFDQTs7RUFFRSxnQ0FBaUM7QUFDbkM7QUFDQTs7RUFFRSxnQ0FBaUM7QUFDbkM7QUFDQTs7RUFFRSxnQ0FBaUM7QUFDbkM7QUFDQTs7RUFFRSxnQ0FBaUM7QUFDbkM7QUFDQTs7RUFFRSxnQ0FBaUM7QUFDbkM7QUFDQTs7RUFFRSxnQ0FBaUM7QUFDbkM7QUFDQTs7RUFFRSxnQ0FBaUM7QUFDbkM7QUFDQTs7RUFFRSxnQ0FBaUM7QUFDbkM7QUFDQTs7RUFFRSxnQ0FBaUM7QUFDbkM7QUFDQTs7RUFFRSxnQ0FBaUM7QUFDbkM7QUFDQTs7RUFFRSxnQ0FBaUM7QUFDbkM7QUFDQTs7RUFFRSxnQ0FBaUM7QUFDbkM7QUFDQTs7RUFFRSxnQ0FBaUM7QUFDbkM7QUFDQTs7RUFFRSxnQ0FBaUM7QUFDbkM7QUFDQTs7RUFFRSxnQ0FBaUM7QUFDbkM7QUFDQTs7RUFFRSxnQ0FBaUM7QUFDbkM7QUFDQTs7RUFFRSxnQ0FBaUM7QUFDbkM7QUFDQTs7RUFFRSxnQ0FBaUM7QUFDbkM7QUFDQTs7RUFFRSxpQ0FBa0M7QUFDcEM7QUFDQTs7RUFFRSxpQ0FBa0M7QUFDcEM7QUFDQTs7RUFFRSxpQ0FBa0M7QUFDcEM7QUFDQTs7RUFFRSxpQ0FBa0M7QUFDcEM7QUFDQTs7RUFFRSxpQ0FBa0M7QUFDcEM7QUFDQTs7RUFFRSxpQ0FBa0M7QUFDcEM7QUFDQTs7O0VBR0UsaUNBQWtDO0FBQ3BDO0FBQ0E7O0VBRUUsaUNBQWtDO0FBQ3BDO0FBQ0E7O0VBRUUsaUNBQWtDO0FBQ3BDO0FBQ0E7O0VBRUUsaUNBQWtDO0FBQ3BDO0FBQ0E7O0VBRUUsaUNBQWtDO0FBQ3BDO0FBQ0E7O0VBRUUsaUNBQWtDO0FBQ3BDO0FBQ0E7O0VBRUUsaUNBQWtDO0FBQ3BDO0FBQ0E7O0VBRUUsaUNBQWtDO0FBQ3BDO0FBQ0E7O0VBRUUsaUNBQWtDO0FBQ3BDO0FBQ0E7O0VBRUUsaUNBQWtDO0FBQ3BDO0FBQ0E7O0VBRUUsaUNBQWtDO0FBQ3BDO0FBQ0E7O0VBRUUsaUNBQWtDO0FBQ3BDO0FBQ0E7O0VBRUUsaUNBQWtDO0FBQ3BDO0FBQ0E7O0VBRUUsaUNBQWtD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QUNBO0VBQ0UsK0JBQWdDO0FBQ2xDO0FBRUE7RUFDRSx3QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHdCQUF5QjtBQUMzQjtBQUVBO0VBQ0Usd0JBQXlCO0FBQzNCO0FBQ0E7RUFDRSx3QkFBeUI7QUFDM0I7QUFDQTtFQUNFLCtCQUFnQztBQUNsQztBQUVBO0VBQ0Usd0JBQXlCO0FBQzNCO0FBQ0E7RUFDRSx3QkFBeUI7QUFDM0I7QUFFQTtFQUNFLHdCQUF5QjtBQUMzQjtBQUNBO0VBQ0Usd0JBQXlCO0FBQzNCO0FBQ0E7RUFDRSwrQkFBZ0M7QUFDbEM7QUFFQTtFQUNFLHdCQUF5QjtBQUMzQjtBQUNBO0VBQ0Usd0JBQXlCO0FBQzNCO0FBRUE7RUFDRSx3QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHdCQUF5QjtBQUMzQjtBQUNBO0VBQ0UsK0JBQWdDO0FBQ2xDO0FBRUE7RUFDRSx3QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHdCQUF5QjtBQUMzQjtBQUVBO0VBQ0Usd0JBQXlCO0FBQzNCO0FBQ0E7RUFDRSx3QkFBeUI7QUFDM0I7QUFDQTtFQUNFLCtCQUFnQztBQUNsQztBQUVBO0VBQ0Usd0JBQXlCO0FBQzNCO0FBQ0E7RUFDRSx3QkFBeUI7QUFDM0I7QUFFQTtFQUNFLHdCQUF5QjtBQUMzQjtBQUNBO0VBQ0Usd0JBQXlCO0FBQzNCO0FBQ0E7RUFDRSwrQkFBZ0M7QUFDbEM7QUFFQTtFQUNFLHdCQUF5QjtBQUMzQjtBQUNBO0VBQ0Usd0JBQXlCO0FBQzNCO0FBRUE7RUFDRSx3QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHdCQUF5QjtBQUMzQjtBQUNBO0VBQ0UsK0JBQWdDO0FBQ2xDO0FBRUE7RUFDRSx3QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHdCQUF5QjtBQUMzQjtBQUVBO0VBQ0Usd0JBQXlCO0FBQzNCO0FBQ0E7RUFDRSx3QkFBeUI7QUFDM0I7QUFDQTtFQUNFLCtCQUFnQztBQUNsQztBQUVBO0VBQ0Usd0JBQXlCO0FBQzNCO0FBQ0E7RUFDRSx3QkFBeUI7QUFDM0I7QUFFQTtFQUNFLHdCQUF5QjtBQUMzQjtBQUNB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Z0I7QUFDbEI7QUFFQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUVBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBRUE7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUVBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUVBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUVBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUVBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBRUE7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFFQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBRUE7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBRUE7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUVBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUVBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFFQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFFQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFFQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFFQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUVBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBRUE7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFFQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFFQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUVBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUVBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUVBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFFQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFFQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFFQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUtBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFD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QjtFQUNwQjtFQUNBO0lBQ0UscUJBQXNCO0lBQ3RCLGVBQWdCO0lBQ2hCLGdCQUFpQjtFQUNuQjtFQUNBO0lBQ0UsZ0JBQWlCO0lBQ2pCLGlCQUFrQjtFQUNwQjtFQUNBO0lBQ0UscUJBQXNCO0lBQ3RCLGVBQWdCO0lBQ2hCLGdCQUFpQjtFQUNuQjtFQUNBO0lBQ0UsZ0JBQWlCO0lBQ2pCLGlCQUFrQjtFQUNwQjtFQUNBO0lBQ0Usb0NBQXFDO0lBQ3JDLGVBQWdCO0lBQ2hCLGdCQUFpQjtFQUNuQjtFQUNBO0lBQ0UsZ0JBQWlCO0lBQ2pCLGlCQUFrQjtFQUNwQjtFQUNBO0lBQ0Usb0NBQXFDO0lBQ3JDLGVBQWdCO0lBQ2hCLGdCQUFpQjtFQUNuQjtFQUNBO0lBQ0UsZ0JBQWlCO0lBQ2pCLGlCQUFrQjtFQUNwQjtFQUNBO0lBQ0Usb0NBQXFDO0lBQ3JDLGVBQWdCO0lBQ2hCLGdCQUFpQjtFQUNuQjtFQUNBO0lBQ0UsZ0JBQWlCO0lBQ2pCLGlCQUFrQjtFQUNwQjtFQUNBO0lBQ0Usb0NBQXFDO0lBQ3JDLGVBQWdCO0lBQ2hCLGdCQUFpQjtFQUNuQjtBQUNGO0FBRUE7RUFDRTtJQUNFLGVBQWdCO0lBQ2hCLGdCQUFpQjtFQUNuQjtFQUNBO0lBQ0UsVUFBVztJQUNYLGVBQWdCO0lBQ2hCLGdCQUFpQjtFQUNuQjtFQUNBO0lBQ0UsZ0JBQWlCO0lBQ2pCLGlCQUFrQjtFQUNwQjtFQUNBO0lBQ0UscUJBQXNCO0lBQ3RCLGVBQWdCO0lBQ2hCLGdCQUFpQjtFQUNuQjtFQUNBO0lBQ0UsZ0JBQWlCO0lBQ2pCLGlCQUFrQjtFQUNwQjtFQUNBO0lBQ0UscUJBQXNCO0lBQ3RCLGVBQWdCO0lBQ2hCLGdCQUFpQjtFQUNuQjtFQUNBO0lBQ0UsZ0JBQWlCO0lBQ2pCLGlCQUFrQjtFQUNwQjtFQUNBO0lBQ0Usb0NBQXFDO0lBQ3JDLGVBQWdCO0lBQ2hCLGdCQUFpQjtFQUNuQjtFQUNBO0lBQ0UsZ0JBQWlCO0lBQ2pCLGlCQUFrQjtFQUNwQjtFQUNBO0lBQ0Usb0NBQXFDO0lBQ3JDLGVBQWdCO0lBQ2hCLGdCQUFpQjtFQUNu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InNlbWFudGljLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG5cbuKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKVlyAgIOKWiOKWiOKWiOKVlyDilojilojilojilojilojilZcg4paI4paI4paI4pWXICAg4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWXIOKWiOKWiOKWiOKWiOKWiOKWiOKVlyAgICDilojilojilZcgICDilojilojilZfilojilojilZdcbuKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKWiOKWiOKVlyDilojilojilojilojilZHilojilojilZTilZDilZDilojilojilZfilojilojilojilojilZcgIOKWiOKWiOKVkeKVmuKVkOKVkOKWiOKWiOKVlOKVkOKVkOKVneKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVnSAgICDilojilojilZEgICDilojilojilZHilojilojilZFcbuKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4pWU4paI4paI4paI4paI4pWU4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWR4paI4paI4pWU4paI4paI4pWXIOKWiOKWiOKVkSAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVkeKWiOKWiOKVkSAgICAgICAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVkeKWiOKWiOKVkVxu4pWa4pWQ4pWQ4pWQ4pWQ4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilojilojilZHilZrilojilojilZTilZ3ilojilojilZHilojilojilZTilZDilZDilojilojilZHilojilojilZHilZrilojilojilZfilojilojilZEgICDilojilojilZEgICDilojilojilZHilojilojilZEgICAgICAgICDilojilojilZEgICDilojilojilZHilojilojilZFcbuKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVkSDilZrilZDilZ0g4paI4paI4pWR4paI4paI4pWRICDilojilojilZHilojilojilZEg4pWa4paI4paI4paI4paI4pWRICAg4paI4paI4pWRICAg4paI4paI4pWR4pWa4paI4paI4paI4paI4paI4paI4pWXICAgIOKVmuKWiOKWiOKWiOKWiOKWiOKWiOKVlOKVneKWiOKWiOKVkVxu4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWdICAgICDilZrilZDilZ3ilZrilZDilZ0gIOKVmuKVkOKVneKVmuKVkOKVnSAg4pWa4pWQ4pWQ4pWQ4pWdICAg4pWa4pWQ4pWdICAg4pWa4pWQ4pWdIOKVmuKVkOKVkOKVkOKVkOKVkOKVnSAgICAg4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWdIOKVmuKVkOKVnVxuXG4gIEltcG9ydCB0aGlzIGZpbGUgaW50byB5b3VyIExFU1MgcHJvamVjdCB0byB1c2UgU2VtYW50aWMgVUkgd2l0aG91dCBidWlsZCB0b29sc1xuKi9cbi8qIEdsb2JhbCAqL1xuLyohXG4gKiAjIFNlbWFudGljIFVJIC0gUmVzZXRcbiAqIGh0dHA6Ly9naXRodWIuY29tL3NlbWFudGljLW9yZy9zZW1hbnRpYy11aS9cbiAqXG4gKlxuICogUmVsZWFzZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlXG4gKiBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUXG4gKlxuICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKlxuXG7ilojilojilojilojilojilojilojilojilZfilojilojilZcgIOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKVlyAgIOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl1xu4pWa4pWQ4pWQ4paI4paI4pWU4pWQ4pWQ4pWd4paI4paI4pWRICDilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilojilojilZcg4paI4paI4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWd4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWdXG4gICDilojilojilZEgICDilojilojilojilojilojilojilojilZHilojilojilojilojilojilZcgIOKWiOKWiOKVlOKWiOKWiOKWiOKWiOKVlOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4paI4paI4paI4paI4paI4pWXXG4gICDilojilojilZEgICDilojilojilZTilZDilZDilojilojilZHilojilojilZTilZDilZDilZ0gIOKWiOKWiOKVkeKVmuKWiOKWiOKVlOKVneKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4pWa4pWQ4pWQ4pWQ4pWQ4paI4paI4pWRXG4gICDilojilojilZEgICDilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVkSDilZrilZDilZ0g4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWRXG4gICDilZrilZDilZ0gICDilZrilZDilZ0gIOKVmuKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVneKVmuKVkOKVnSAgICAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWdXG5cbiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBUaGVtZSBTZWxlY3Rpb25cbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBUbyBvdmVycmlkZSBhIHRoZW1lIGZvciBhbiBpbmRpdmlkdWFsIGVsZW1lbnRcbiAgIHNwZWNpZnkgdGhlbWUgbmFtZSBiZWxvd1xuKi9cbi8qIEdsb2JhbCAqL1xuLyogRWxlbWVudHMgKi9cbi8qIENvbGxlY3Rpb25zICovXG4vKiBNb2R1bGVzICovXG4vKiBWaWV3cyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIEZvbGRlcnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBQYXRoIHRvIHRoZW1lIHBhY2thZ2VzICovXG4vKiBQYXRoIHRvIHNpdGUgb3ZlcnJpZGUgZm9sZGVyICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgSW1wb3J0IFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgSW1wb3J0IERpcmVjdGl2ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIFRoZW1lXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgIFNpdGUgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kb3JzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFBhY2thZ2VkIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRvcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogQ29tcG9uZW50J3Mgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZG9ycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBTaXRlIHRoZW1lIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICBVc2VyIEdsb2JhbCBWYXJpYWJsZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBtYXJzbyBjb2xvcnMgKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiBDb21wb25lbnQgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBSZXNldFxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFBhY2thZ2VkIFRoZW1lICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFJlc2V0XG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogU2l0ZSBUaGVtZSAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgVXNlciBHbG9iYWwgVmFyaWFibGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBNaXgtaW5zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBPdmVycmlkZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRW5kIENvbmZpZyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBSZXNldFxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIEJvcmRlci1Cb3ggKi9cbkBpbXBvcnQgdXJsKCdodHRwczovL2ZvbnRzLmdvb2dsZWFwaXMuY29tL2Nzcz9mYW1pbHk9RXhvKzI6MzAwLDcwMHxMb2JzdGVyJmRpc3BsYXk9c3dhcCZzdWJzZXQ9bGF0aW4tZXh0Jyk7XG4qLFxuKjpiZWZvcmUsXG4qOmFmdGVyIHtcbiAgYm94LXNpemluZzogaW5oZXJpdDtcbn1cbmh0bWwge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuLyogaVBhZCBJbnB1dCBTaGFkb3dzICovXG5pbnB1dFt0eXBlPVwidGV4dFwiXSxcbmlucHV0W3R5cGU9XCJlbWFpbFwiXSxcbmlucHV0W3R5cGU9XCJzZWFyY2hcIl0sXG5pbnB1dFt0eXBlPVwicGFzc3dvcmRcIl0ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIC1tb3otYXBwZWFyYW5jZTogbm9uZTtcbiAgLyogbW9iaWxlIGZpcmVmb3ggdG9vISAqL1xufVxuLyohIG5vcm1hbGl6ZS5jc3MgdjcuMC4wIHwgTUlUIExpY2Vuc2UgfCBnaXRodWIuY29tL25lY29sYXMvbm9ybWFsaXplLmNzcyAqL1xuLyogRG9jdW1lbnRcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIGxpbmUgaGVpZ2h0IGluIGFsbCBicm93c2Vycy5cbiAqIDIuIFByZXZlbnQgYWRqdXN0bWVudHMgb2YgZm9udCBzaXplIGFmdGVyIG9yaWVudGF0aW9uIGNoYW5nZXMgaW5cbiAqICAgIElFIG9uIFdpbmRvd3MgUGhvbmUgYW5kIGluIGlPUy5cbiAqL1xuaHRtbCB7XG4gIGxpbmUtaGVpZ2h0OiAxLjE1O1xuICAvKiAxICovXG4gIC1tcy10ZXh0LXNpemUtYWRqdXN0OiAxMDAlO1xuICAvKiAyICovXG4gIC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogMTAwJTtcbiAgLyogMiAqL1xufVxuLyogU2VjdGlvbnNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAqIFJlbW92ZSB0aGUgbWFyZ2luIGluIGFsbCBicm93c2VycyAob3BpbmlvbmF0ZWQpLlxuICovXG5ib2R5IHtcbiAgbWFyZ2luOiAwO1xufVxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSA5LS5cbiAqL1xuYXJ0aWNsZSxcbmFzaWRlLFxuZm9vdGVyLFxuaGVhZGVyLFxubmF2LFxuc2VjdGlvbiB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuLyoqXG4gKiBDb3JyZWN0IHRoZSBmb250IHNpemUgYW5kIG1hcmdpbiBvbiBgaDFgIGVsZW1lbnRzIHdpdGhpbiBgc2VjdGlvbmAgYW5kXG4gKiBgYXJ0aWNsZWAgY29udGV4dHMgaW4gQ2hyb21lLCBGaXJlZm94LCBhbmQgU2FmYXJpLlxuICovXG5oMSB7XG4gIGZvbnQtc2l6ZTogMmVtO1xuICBtYXJnaW46IDAuNjdlbSAwO1xufVxuLyogR3JvdXBpbmcgY29udGVudFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgOS0uXG4gKiAxLiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRS5cbiAqL1xuZmlnY2FwdGlvbixcbmZpZ3VyZSxcbm1haW4ge1xuICAvKiAxICovXG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgbWFyZ2luIGluIElFIDguXG4gKi9cbmZpZ3VyZSB7XG4gIG1hcmdpbjogMWVtIDQwcHg7XG59XG4vKipcbiAqIDEuIEFkZCB0aGUgY29ycmVjdCBib3ggc2l6aW5nIGluIEZpcmVmb3guXG4gKiAyLiBTaG93IHRoZSBvdmVyZmxvdyBpbiBFZGdlIGFuZCBJRS5cbiAqL1xuaHIge1xuICBib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbiAgLyogMSAqL1xuICBoZWlnaHQ6IDA7XG4gIC8qIDEgKi9cbiAgb3ZlcmZsb3c6IHZpc2libGU7XG4gIC8qIDIgKi9cbn1cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgaW5oZXJpdGFuY2UgYW5kIHNjYWxpbmcgb2YgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAqIDIuIENvcnJlY3QgdGhlIG9kZCBgZW1gIGZvbnQgc2l6aW5nIGluIGFsbCBicm93c2Vycy5cbiAqL1xucHJlIHtcbiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgbW9ub3NwYWNlO1xuICAvKiAxICovXG4gIGZvbnQtc2l6ZTogMWVtO1xuICAvKiAyICovXG59XG4vKiBUZXh0LWxldmVsIHNlbWFudGljc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICogMS4gUmVtb3ZlIHRoZSBncmF5IGJhY2tncm91bmQgb24gYWN0aXZlIGxpbmtzIGluIElFIDEwLlxuICogMi4gUmVtb3ZlIGdhcHMgaW4gbGlua3MgdW5kZXJsaW5lIGluIGlPUyA4KyBhbmQgU2FmYXJpIDgrLlxuICovXG5hIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIC8qIDEgKi9cbiAgLXdlYmtpdC10ZXh0LWRlY29yYXRpb24tc2tpcDogb2JqZWN0cztcbiAgLyogMiAqL1xufVxuLyoqXG4gKiAxLiBSZW1vdmUgdGhlIGJvdHRvbSBib3JkZXIgaW4gQ2hyb21lIDU3LSBhbmQgRmlyZWZveCAzOS0uXG4gKiAyLiBBZGQgdGhlIGNvcnJlY3QgdGV4dCBkZWNvcmF0aW9uIGluIENocm9tZSwgRWRnZSwgSUUsIE9wZXJhLCBhbmQgU2FmYXJpLlxuICovXG5hYmJyW3RpdGxlXSB7XG4gIGJvcmRlci1ib3R0b206IG5vbmU7XG4gIC8qIDEgKi9cbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gIC8qIDIgKi9cbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgZG90dGVkO1xuICAvKiAyICovXG59XG4vKipcbiAqIFByZXZlbnQgdGhlIGR1cGxpY2F0ZSBhcHBsaWNhdGlvbiBvZiBgYm9sZGVyYCBieSB0aGUgbmV4dCBydWxlIGluIFNhZmFyaSA2LlxuICovXG5iLFxuc3Ryb25nIHtcbiAgZm9udC13ZWlnaHQ6IGluaGVyaXQ7XG59XG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBmb250IHdlaWdodCBpbiBDaHJvbWUsIEVkZ2UsIGFuZCBTYWZhcmkuXG4gKi9cbmIsXG5zdHJvbmcge1xuICBmb250LXdlaWdodDogYm9sZGVyO1xufVxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSBpbmhlcml0YW5jZSBhbmQgc2NhbGluZyBvZiBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICogMi4gQ29ycmVjdCB0aGUgb2RkIGBlbWAgZm9udCBzaXppbmcgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5jb2RlLFxua2JkLFxuc2FtcCB7XG4gIGZvbnQtZmFtaWx5OiBtb25vc3BhY2UsIG1vbm9zcGFjZTtcbiAgLyogMSAqL1xuICBmb250LXNpemU6IDFlbTtcbiAgLyogMiAqL1xufVxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgZm9udCBzdHlsZSBpbiBBbmRyb2lkIDQuMy0uXG4gKi9cbmRmbiB7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbn1cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGJhY2tncm91bmQgYW5kIGNvbG9yIGluIElFIDktLlxuICovXG5tYXJrIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmMDtcbiAgY29sb3I6ICMwMDA7XG59XG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5zbWFsbCB7XG4gIGZvbnQtc2l6ZTogODAlO1xufVxuLyoqXG4gKiBQcmV2ZW50IGBzdWJgIGFuZCBgc3VwYCBlbGVtZW50cyBmcm9tIGFmZmVjdGluZyB0aGUgbGluZSBoZWlnaHQgaW5cbiAqIGFsbCBicm93c2Vycy5cbiAqL1xuc3ViLFxuc3VwIHtcbiAgZm9udC1zaXplOiA3NSU7XG4gIGxpbmUtaGVpZ2h0OiAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbn1cbnN1YiB7XG4gIGJvdHRvbTogLTAuMjVlbTtcbn1cbnN1cCB7XG4gIHRvcDogLTAuNWVtO1xufVxuLyogRW1iZWRkZWQgY29udGVudFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgOS0uXG4gKi9cbmF1ZGlvLFxudmlkZW8ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIGlPUyA0LTcuXG4gKi9cbmF1ZGlvOm5vdChbY29udHJvbHNdKSB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIGhlaWdodDogMDtcbn1cbi8qKlxuICogUmVtb3ZlIHRoZSBib3JkZXIgb24gaW1hZ2VzIGluc2lkZSBsaW5rcyBpbiBJRSAxMC0uXG4gKi9cbmltZyB7XG4gIGJvcmRlci1zdHlsZTogbm9uZTtcbn1cbi8qKlxuICogSGlkZSB0aGUgb3ZlcmZsb3cgaW4gSUUuXG4gKi9cbnN2Zzpub3QoOnJvb3QpIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cbi8qIEZvcm1zXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gKiAxLiBDaGFuZ2UgdGhlIGZvbnQgc3R5bGVzIGluIGFsbCBicm93c2VycyAob3BpbmlvbmF0ZWQpLlxuICogMi4gUmVtb3ZlIHRoZSBtYXJnaW4gaW4gRmlyZWZveCBhbmQgU2FmYXJpLlxuICovXG5idXR0b24sXG5pbnB1dCxcbm9wdGdyb3VwLFxuc2VsZWN0LFxudGV4dGFyZWEge1xuICBmb250LWZhbWlseTogc2Fucy1zZXJpZjtcbiAgLyogMSAqL1xuICBmb250LXNpemU6IDEwMCU7XG4gIC8qIDEgKi9cbiAgbGluZS1oZWlnaHQ6IDEuMTU7XG4gIC8qIDEgKi9cbiAgbWFyZ2luOiAwO1xuICAvKiAyICovXG59XG4vKipcbiAqIFNob3cgdGhlIG92ZXJmbG93IGluIElFLlxuICogMS4gU2hvdyB0aGUgb3ZlcmZsb3cgaW4gRWRnZS5cbiAqL1xuYnV0dG9uLFxuaW5wdXQge1xuICAvKiAxICovXG4gIG92ZXJmbG93OiB2aXNpYmxlO1xufVxuLyoqXG4gKiBSZW1vdmUgdGhlIGluaGVyaXRhbmNlIG9mIHRleHQgdHJhbnNmb3JtIGluIEVkZ2UsIEZpcmVmb3gsIGFuZCBJRS5cbiAqIDEuIFJlbW92ZSB0aGUgaW5oZXJpdGFuY2Ugb2YgdGV4dCB0cmFuc2Zvcm0gaW4gRmlyZWZveC5cbiAqL1xuYnV0dG9uLFxuc2VsZWN0IHtcbiAgLyogMSAqL1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbn1cbi8qKlxuICogMS4gUHJldmVudCBhIFdlYktpdCBidWcgd2hlcmUgKDIpIGRlc3Ryb3lzIG5hdGl2ZSBgYXVkaW9gIGFuZCBgdmlkZW9gXG4gKiAgICBjb250cm9scyBpbiBBbmRyb2lkIDQuXG4gKiAyLiBDb3JyZWN0IHRoZSBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIHR5cGVzIGluIGlPUyBhbmQgU2FmYXJpLlxuICovXG5idXR0b24sXG5odG1sIFt0eXBlPVwiYnV0dG9uXCJdLFxuW3R5cGU9XCJyZXNldFwiXSxcblt0eXBlPVwic3VibWl0XCJdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247XG4gIC8qIDIgKi9cbn1cbi8qKlxuICogUmVtb3ZlIHRoZSBpbm5lciBib3JkZXIgYW5kIHBhZGRpbmcgaW4gRmlyZWZveC5cbiAqL1xuYnV0dG9uOjotbW96LWZvY3VzLWlubmVyLFxuW3R5cGU9XCJidXR0b25cIl06Oi1tb3otZm9jdXMtaW5uZXIsXG5bdHlwZT1cInJlc2V0XCJdOjotbW96LWZvY3VzLWlubmVyLFxuW3R5cGU9XCJzdWJtaXRcIl06Oi1tb3otZm9jdXMtaW5uZXIge1xuICBib3JkZXItc3R5bGU6IG5vbmU7XG4gIHBhZGRpbmc6IDA7XG59XG4vKipcbiAqIFJlc3RvcmUgdGhlIGZvY3VzIHN0eWxlcyB1bnNldCBieSB0aGUgcHJldmlvdXMgcnVsZS5cbiAqL1xuYnV0dG9uOi1tb3otZm9jdXNyaW5nLFxuW3R5cGU9XCJidXR0b25cIl06LW1vei1mb2N1c3JpbmcsXG5bdHlwZT1cInJlc2V0XCJdOi1tb3otZm9jdXNyaW5nLFxuW3R5cGU9XCJzdWJtaXRcIl06LW1vei1mb2N1c3Jpbmcge1xuICBvdXRsaW5lOiAxcHggZG90dGVkIEJ1dHRvblRleHQ7XG59XG4vKipcbiAqIENvcnJlY3QgdGhlIHBhZGRpbmcgaW4gRmlyZWZveC5cbiAqL1xuZmllbGRzZXQge1xuICBwYWRkaW5nOiAwLjM1ZW0gMC43NWVtIDAuNjI1ZW07XG59XG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIHRleHQgd3JhcHBpbmcgaW4gRWRnZSBhbmQgSUUuXG4gKiAyLiBDb3JyZWN0IHRoZSBjb2xvciBpbmhlcml0YW5jZSBmcm9tIGBmaWVsZHNldGAgZWxlbWVudHMgaW4gSUUuXG4gKiAzLiBSZW1vdmUgdGhlIHBhZGRpbmcgc28gZGV2ZWxvcGVycyBhcmUgbm90IGNhdWdodCBvdXQgd2hlbiB0aGV5IHplcm8gb3V0XG4gKiAgICBgZmllbGRzZXRgIGVsZW1lbnRzIGluIGFsbCBicm93c2Vycy5cbiAqL1xubGVnZW5kIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgLyogMSAqL1xuICBjb2xvcjogaW5oZXJpdDtcbiAgLyogMiAqL1xuICBkaXNwbGF5OiB0YWJsZTtcbiAgLyogMSAqL1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIC8qIDEgKi9cbiAgcGFkZGluZzogMDtcbiAgLyogMyAqL1xuICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xuICAvKiAxICovXG59XG4vKipcbiAqIDEuIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDktLlxuICogMi4gQWRkIHRoZSBjb3JyZWN0IHZlcnRpY2FsIGFsaWdubWVudCBpbiBDaHJvbWUsIEZpcmVmb3gsIGFuZCBPcGVyYS5cbiAqL1xucHJvZ3Jlc3Mge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIC8qIDEgKi9cbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xuICAvKiAyICovXG59XG4vKipcbiAqIFJlbW92ZSB0aGUgZGVmYXVsdCB2ZXJ0aWNhbCBzY3JvbGxiYXIgaW4gSUUuXG4gKi9cbnRleHRhcmVhIHtcbiAgb3ZlcmZsb3c6IGF1dG87XG59XG4vKipcbiAqIDEuIEFkZCB0aGUgY29ycmVjdCBib3ggc2l6aW5nIGluIElFIDEwLS5cbiAqIDIuIFJlbW92ZSB0aGUgcGFkZGluZyBpbiBJRSAxMC0uXG4gKi9cblt0eXBlPVwiY2hlY2tib3hcIl0sXG5bdHlwZT1cInJhZGlvXCJdIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgLyogMSAqL1xuICBwYWRkaW5nOiAwO1xuICAvKiAyICovXG59XG4vKipcbiAqIENvcnJlY3QgdGhlIGN1cnNvciBzdHlsZSBvZiBpbmNyZW1lbnQgYW5kIGRlY3JlbWVudCBidXR0b25zIGluIENocm9tZS5cbiAqL1xuW3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24sXG5bdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbiB7XG4gIGhlaWdodDogYXV0bztcbn1cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgb2RkIGFwcGVhcmFuY2UgaW4gQ2hyb21lIGFuZCBTYWZhcmkuXG4gKiAyLiBDb3JyZWN0IHRoZSBvdXRsaW5lIHN0eWxlIGluIFNhZmFyaS5cbiAqL1xuW3R5cGU9XCJzZWFyY2hcIl0ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IHRleHRmaWVsZDtcbiAgLyogMSAqL1xuICBvdXRsaW5lLW9mZnNldDogLTJweDtcbiAgLyogMiAqL1xufVxuLyoqXG4gKiBSZW1vdmUgdGhlIGlubmVyIHBhZGRpbmcgYW5kIGNhbmNlbCBidXR0b25zIGluIENocm9tZSBhbmQgU2FmYXJpIG9uIG1hY09TLlxuICovXG5bdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtY2FuY2VsLWJ1dHRvbixcblt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xufVxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIHR5cGVzIGluIGlPUyBhbmQgU2FmYXJpLlxuICogMi4gQ2hhbmdlIGZvbnQgcHJvcGVydGllcyB0byBgaW5oZXJpdGAgaW4gU2FmYXJpLlxuICovXG46Oi13ZWJraXQtZmlsZS11cGxvYWQtYnV0dG9uIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247XG4gIC8qIDEgKi9cbiAgZm9udDogaW5oZXJpdDtcbiAgLyogMiAqL1xufVxuLyogSW50ZXJhY3RpdmVcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgOS0uXG4gKiAxLiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBFZGdlLCBJRSwgYW5kIEZpcmVmb3guXG4gKi9cbmRldGFpbHMsXG5tZW51IHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG4vKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5zdW1tYXJ5IHtcbiAgZGlzcGxheTogbGlzdC1pdGVtO1xufVxuLyogU2NyaXB0aW5nXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSA5LS5cbiAqL1xuY2FudmFzIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRS5cbiAqL1xudGVtcGxhdGUge1xuICBkaXNwbGF5OiBub25lO1xufVxuLyogSGlkZGVuXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSAxMC0uXG4gKi9cbltoaWRkZW5dIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIE92ZXJyaWRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIVxuICogIyBTZW1hbnRpYyBVSSAtIFNpdGVcbiAqIGh0dHA6Ly9naXRodWIuY29tL3NlbWFudGljLW9yZy9zZW1hbnRpYy11aS9cbiAqXG4gKlxuICogUmVsZWFzZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlXG4gKiBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUXG4gKlxuICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKlxuXG7ilojilojilojilojilojilojilojilojilZfilojilojilZcgIOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKVlyAgIOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl1xu4pWa4pWQ4pWQ4paI4paI4pWU4pWQ4pWQ4pWd4paI4paI4pWRICDilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilojilojilZcg4paI4paI4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWd4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWdXG4gICDilojilojilZEgICDilojilojilojilojilojilojilojilZHilojilojilojilojilojilZcgIOKWiOKWiOKVlOKWiOKWiOKWiOKWiOKVlOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4paI4paI4paI4paI4paI4pWXXG4gICDilojilojilZEgICDilojilojilZTilZDilZDilojilojilZHilojilojilZTilZDilZDilZ0gIOKWiOKWiOKVkeKVmuKWiOKWiOKVlOKVneKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4pWa4pWQ4pWQ4pWQ4pWQ4paI4paI4pWRXG4gICDilojilojilZEgICDilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVkSDilZrilZDilZ0g4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWRXG4gICDilZrilZDilZ0gICDilZrilZDilZ0gIOKVmuKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVneKVmuKVkOKVnSAgICAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWdXG5cbiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBUaGVtZSBTZWxlY3Rpb25cbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBUbyBvdmVycmlkZSBhIHRoZW1lIGZvciBhbiBpbmRpdmlkdWFsIGVsZW1lbnRcbiAgIHNwZWNpZnkgdGhlbWUgbmFtZSBiZWxvd1xuKi9cbi8qIEdsb2JhbCAqL1xuLyogRWxlbWVudHMgKi9cbi8qIENvbGxlY3Rpb25zICovXG4vKiBNb2R1bGVzICovXG4vKiBWaWV3cyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIEZvbGRlcnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBQYXRoIHRvIHRoZW1lIHBhY2thZ2VzICovXG4vKiBQYXRoIHRvIHNpdGUgb3ZlcnJpZGUgZm9sZGVyICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgSW1wb3J0IFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgSW1wb3J0IERpcmVjdGl2ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIFRoZW1lXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgIFNpdGUgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kb3JzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFBhY2thZ2VkIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRvcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogQ29tcG9uZW50J3Mgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZG9ycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBTaXRlIHRoZW1lIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICBVc2VyIEdsb2JhbCBWYXJpYWJsZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBtYXJzbyBjb2xvcnMgKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiBDb21wb25lbnQgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kb3JzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFBhY2thZ2VkIFRoZW1lICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRvcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogU2l0ZSBUaGVtZSAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgVXNlciBHbG9iYWwgVmFyaWFibGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogbWFyc28gY29sb3JzICovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBNaXgtaW5zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBPdmVycmlkZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRW5kIENvbmZpZyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBQYWdlXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuaHRtbCxcbmJvZHkge1xuICBoZWlnaHQ6IDEwMCU7XG59XG5odG1sIHtcbiAgZm9udC1zaXplOiAxMHB4O1xufVxuYm9keSB7XG4gIG1hcmdpbjogMHB4O1xuICBwYWRkaW5nOiAwcHg7XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgbWluLXdpZHRoOiAzMjBweDtcbiAgYmFja2dyb3VuZDogI0ZGRkZGRjtcbiAgZm9udC1mYW1pbHk6ICdFeG8gMicsICdMYXRvJywgQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBsaW5lLWhlaWdodDogMS40Mjg1ZW07XG4gIGNvbG9yOiAjMzMzMzMzO1xuICBmb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIEhlYWRlcnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5oMSxcbmgyLFxuaDMsXG5oNCxcbmg1IHtcbiAgZm9udC1mYW1pbHk6ICdFeG8gMicsICdMYXRvJywgQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZjtcbiAgbGluZS1oZWlnaHQ6IDEuMjg1NzE0MjllbTtcbiAgbWFyZ2luOiBjYWxjKDJyZW0gLSAwLjE0Mjg1NzE0Mjg1NzE0MjllbSkgMGVtIDFyZW07XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBwYWRkaW5nOiAwZW07XG59XG5oMSB7XG4gIG1pbi1oZWlnaHQ6IDFyZW07XG4gIGZvbnQtc2l6ZTogM3JlbTtcbn1cbmgyIHtcbiAgZm9udC1zaXplOiAyLjVyZW07XG59XG5oMyB7XG4gIGZvbnQtc2l6ZTogMnJlbTtcbn1cbmg0IHtcbiAgZm9udC1zaXplOiAxLjZyZW07XG59XG5oNSB7XG4gIGZvbnQtc2l6ZTogMS40cmVtO1xufVxuaDE6Zmlyc3QtY2hpbGQsXG5oMjpmaXJzdC1jaGlsZCxcbmgzOmZpcnN0LWNoaWxkLFxuaDQ6Zmlyc3QtY2hpbGQsXG5oNTpmaXJzdC1jaGlsZCB7XG4gIG1hcmdpbi10b3A6IDBlbTtcbn1cbmgxOmxhc3QtY2hpbGQsXG5oMjpsYXN0LWNoaWxkLFxuaDM6bGFzdC1jaGlsZCxcbmg0Omxhc3QtY2hpbGQsXG5oNTpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLWJvdHRvbTogMGVtO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBUZXh0XG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xucCB7XG4gIG1hcmdpbjogMGVtIDBlbSAxZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjQyODVlbTtcbn1cbnA6Zmlyc3QtY2hpbGQge1xuICBtYXJnaW4tdG9wOiAwZW07XG59XG5wOmxhc3QtY2hpbGQge1xuICBtYXJnaW4tYm90dG9tOiAwZW07XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbmEge1xuICBjb2xvcjogIzQxODNDNDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuYTpob3ZlciB7XG4gIGNvbG9yOiAjMWU3MGJmO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgIEhpZ2hsaWdodGluZ1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFNpdGUgKi9cbjo6LXdlYmtpdC1zZWxlY3Rpb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjQ0NFMkZGO1xuICBjb2xvcjogIzMzMzMzMztcbn1cbjo6LW1vei1zZWxlY3Rpb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjQ0NFMkZGO1xuICBjb2xvcjogIzMzMzMzMztcbn1cbjo6c2VsZWN0aW9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0NDRTJGRjtcbiAgY29sb3I6ICMzMzMzMzM7XG59XG4vKiBGb3JtICovXG50ZXh0YXJlYTo6LXdlYmtpdC1zZWxlY3Rpb24sXG5pbnB1dDo6LXdlYmtpdC1zZWxlY3Rpb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDEwMCwgMTAwLCAxMDAsIDAuNCk7XG4gIGNvbG9yOiAjMzMzMzMzO1xufVxudGV4dGFyZWE6Oi1tb3otc2VsZWN0aW9uLFxuaW5wdXQ6Oi1tb3otc2VsZWN0aW9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgxMDAsIDEwMCwgMTAwLCAwLjQpO1xuICBjb2xvcjogIzMzMzMzMztcbn1cbnRleHRhcmVhOjpzZWxlY3Rpb24sXG5pbnB1dDo6c2VsZWN0aW9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgxMDAsIDEwMCwgMTAwLCAwLjQpO1xuICBjb2xvcjogIzMzMzMzMztcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIEdsb2JhbCBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBFbGVtZW50cyAqL1xuLyohXG4gKiAjIFNlbWFudGljIFVJIC0gQnV0dG9uXG4gKiBodHRwOi8vZ2l0aHViLmNvbS9zZW1hbnRpYy1vcmcvc2VtYW50aWMtdWkvXG4gKlxuICpcbiAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZVxuICogaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVFxuICpcbiAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLypcblxu4paI4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWXICDilojilojilZfilojilojilojilojilojilojilojilZfilojilojilojilZcgICDilojilojilojilZfilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZdcbuKVmuKVkOKVkOKWiOKWiOKVlOKVkOKVkOKVneKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWd4paI4paI4paI4paI4pWXIOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVnVxuICAg4paI4paI4pWRICAg4paI4paI4paI4paI4paI4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilZTilojilojilojilojilZTilojilojilZHilojilojilojilojilojilZcgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl1xuICAg4paI4paI4pWRICAg4paI4paI4pWU4pWQ4pWQ4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilojilojilZHilZrilojilojilZTilZ3ilojilojilZHilojilojilZTilZDilZDilZ0gIOKVmuKVkOKVkOKVkOKVkOKWiOKWiOKVkVxuICAg4paI4paI4pWRICAg4paI4paI4pWRICDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilZEg4pWa4pWQ4pWdIOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkVxuICAg4pWa4pWQ4pWdICAg4pWa4pWQ4pWdICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZ0gICAgIOKVmuKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVnVxuXG4qL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgVGhlbWUgU2VsZWN0aW9uXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogVG8gb3ZlcnJpZGUgYSB0aGVtZSBmb3IgYW4gaW5kaXZpZHVhbCBlbGVtZW50XG4gICBzcGVjaWZ5IHRoZW1lIG5hbWUgYmVsb3dcbiovXG4vKiBHbG9iYWwgKi9cbi8qIEVsZW1lbnRzICovXG4vKiBDb2xsZWN0aW9ucyAqL1xuLyogTW9kdWxlcyAqL1xuLyogVmlld3MgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBGb2xkZXJzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogUGF0aCB0byB0aGVtZSBwYWNrYWdlcyAqL1xuLyogUGF0aCB0byBzaXRlIG92ZXJyaWRlIGZvbGRlciAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIEltcG9ydCBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIEltcG9ydCBEaXJlY3RpdmVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBUaGVtZVxuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICBTaXRlIFZhcmlhYmxlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERlZmF1bHQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZG9ycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBQYWNrYWdlZCBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kb3JzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIENvbXBvbmVudCdzIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRvcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogU2l0ZSB0aGVtZSBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgVXNlciBHbG9iYWwgVmFyaWFibGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogbWFyc28gY29sb3JzICovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gQ29tcG9uZW50IFZhcmlhYmxlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERlZmF1bHQgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBCdXR0b25cbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbGVtZW50XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBCdXR0b24gKi9cbi8qIEJ1dHRvbiBkZWZhdWx0cyB0byB1c2luZyBzYW1lIGhlaWdodCBhcyBpbnB1dCBnbG9iYWxseSAqL1xuLyogVGV4dCAqL1xuLyogSW50ZXJuYWwgU2hhZG93ICovXG4vKiBCb3ggU2hhZG93ICovXG4vKiBJY29uICovXG4vKiBMb2FkZXIgKi9cbi8qXG5Ad2lsbENoYW5nZTogYm94LXNoYWRvdywgdHJhbnNmb3JtLCBvcGFjaXR5LCBjb2xvciwgYmFja2dyb3VuZDtcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JvdXBcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTdGF0ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEhvdmVyZWQgKi9cbi8qIEZvY3VzZWQgKi9cbi8qIERpc2FibGVkICovXG4vKiBQcmVzc2VkIERvd24gKi9cbi8qIEFjdGl2ZSAqL1xuLyogQWN0aXZlICsgSG92ZXJlZCAqL1xuLyogTG9hZGluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFR5cGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBPciAqL1xuLyogSWNvbiAqL1xuLyogTGFiZWxlZCAqL1xuLyogaHlwb3RlbnVzZSBvZiB0cmlhbmdsZSAqL1xuLyogTGFiZWxlZCBJY29uICovXG4vKiBJbnZlcnRlZCAqL1xuLyogQmFzaWMgKi9cbi8qIEJhc2ljIEhvdmVyICovXG4vKiBCYXNpYyBGb2N1cyAqL1xuLyogQmFzaWMgRG93biAqL1xuLyogQmFzaWMgQWN0aXZlICovXG4vKiBCYXNpYyBJbnZlcnRlZCAqL1xuLyogQmFzaWMgR3JvdXAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgVmFyaWF0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogQ29sb3JzICovXG4vKiBDb2xvcmVkICovXG4vKiBJbnZlcnRlZCAqL1xuLyogT3JkaW5hbGl0eSAqL1xuLyogQ29tcGFjdCAqL1xuLyogQXR0YWNoZWQgKi9cbi8qIEZsb2F0ZWQgKi9cbi8qIEFuaW1hdGVkICovXG4vKiBQYWNrYWdlZCBUaGVtZSAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIEJ1dHRvblxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVsZW1lbnRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEJ1dHRvbiAqL1xuLyogQnV0dG9uIGRlZmF1bHRzIHRvIHVzaW5nIHNhbWUgaGVpZ2h0IGFzIGlucHV0IGdsb2JhbGx5ICovXG4vKiBUZXh0ICovXG4vKiBJbnRlcm5hbCBTaGFkb3cgKi9cbi8qIEJveCBTaGFkb3cgKi9cbi8qIEljb24gKi9cbi8qIExvYWRlciAqL1xuLypcbkB3aWxsQ2hhbmdlOiBib3gtc2hhZG93LCB0cmFuc2Zvcm0sIG9wYWNpdHksIGNvbG9yLCBiYWNrZ3JvdW5kO1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcm91cFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFN0YXRlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSG92ZXJlZCAqL1xuLyogRm9jdXNlZCAqL1xuLyogRGlzYWJsZWQgKi9cbi8qIFByZXNzZWQgRG93biAqL1xuLyogQWN0aXZlICovXG4vKiBBY3RpdmUgKyBIb3ZlcmVkICovXG4vKiBMb2FkaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgVHlwZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE9yICovXG4vKiBJY29uICovXG4vKiBMYWJlbGVkICovXG4vKiBoeXBvdGVudXNlIG9mIHRyaWFuZ2xlICovXG4vKiBMYWJlbGVkIEljb24gKi9cbi8qIEludmVydGVkICovXG4vKiBCYXNpYyAqL1xuLyogQmFzaWMgSG92ZXIgKi9cbi8qIEJhc2ljIEZvY3VzICovXG4vKiBCYXNpYyBEb3duICovXG4vKiBCYXNpYyBBY3RpdmUgKi9cbi8qIEJhc2ljIEludmVydGVkICovXG4vKiBCYXNpYyBHcm91cCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBWYXJpYXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBDb2xvcnMgKi9cbi8qIENvbG9yZWQgKi9cbi8qIEludmVydGVkICovXG4vKiBPcmRpbmFsaXR5ICovXG4vKiBDb21wYWN0ICovXG4vKiBBdHRhY2hlZCAqL1xuLyogRmxvYXRlZCAqL1xuLyogQW5pbWF0ZWQgKi9cbi8qIFNpdGUgVGhlbWUgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgVXNlciBWYXJpYWJsZSBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIE1peC1pbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE92ZXJyaWRlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBFbmQgQ29uZmlnICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgQnV0dG9uXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLnVpLmJ1dHRvbiB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtaW4taGVpZ2h0OiAxZW07XG4gIG91dGxpbmU6IG5vbmU7XG4gIGJvcmRlcjogbm9uZTtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xuICBiYWNrZ3JvdW5kOiAjRTBFMUUyIG5vbmU7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNik7XG4gIGZvbnQtZmFtaWx5OiAnRXhvIDInLCAnTGF0bycsIEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7XG4gIG1hcmdpbjogMGVtIDAuMjVlbSAwZW0gMGVtO1xuICBwYWRkaW5nOiAxLjFlbSAxLjVlbSAxLjFlbTtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gIHRleHQtc2hhZG93OiBub25lO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgbGluZS1oZWlnaHQ6IDFlbTtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgYm9yZGVyLXJhZGl1czogMC40cmVtO1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggdHJhbnNwYXJlbnQgaW5zZXQsIDBweCAwZW0gMHB4IDBweCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpIGluc2V0O1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjFzIGVhc2UsIGJhY2tncm91bmQtY29sb3IgMC4xcyBlYXNlLCBjb2xvciAwLjFzIGVhc2UsIGJveC1zaGFkb3cgMC4xcyBlYXNlLCBiYWNrZ3JvdW5kIDAuMXMgZWFzZTtcbiAgd2lsbC1jaGFuZ2U6ICcnO1xuICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmJ1dHRvbjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNDQUNCQ0Q7XG4gIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCB0cmFuc3BhcmVudCBpbnNldCwgMHB4IDBlbSAwcHggMHB4IHJnYmEoMzQsIDM2LCAzOCwgMC4xNSkgaW5zZXQ7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuOCk7XG59XG4udWkuYnV0dG9uOmhvdmVyIC5pY29uIHtcbiAgb3BhY2l0eTogMC44NTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmJ1dHRvbjpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNDQUNCQ0Q7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuOCk7XG4gIGJhY2tncm91bmQtaW1hZ2U6ICcnICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6ICcnICFpbXBvcnRhbnQ7XG59XG4udWkuYnV0dG9uOmZvY3VzIC5pY29uIHtcbiAgb3BhY2l0eTogMC44NTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgIERvd25cbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuYnV0dG9uOmFjdGl2ZSxcbi51aS5hY3RpdmUuYnV0dG9uOmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNCQUJCQkM7XG4gIGJhY2tncm91bmQtaW1hZ2U6ICcnO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjkpO1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggdHJhbnNwYXJlbnQgaW5zZXQsIG5vbmU7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5hY3RpdmUuYnV0dG9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0MwQzFDMjtcbiAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4IHRyYW5zcGFyZW50IGluc2V0O1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjk1KTtcbn1cbi51aS5hY3RpdmUuYnV0dG9uOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0MwQzFDMjtcbiAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC45NSk7XG59XG4udWkuYWN0aXZlLmJ1dHRvbjphY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjQzBDMUMyO1xuICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgIExvYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBTcGVjaWZpY2l0eSBoYWNrICovXG4udWkubG9hZGluZy5sb2FkaW5nLmxvYWRpbmcubG9hZGluZy5sb2FkaW5nLmxvYWRpbmcuYnV0dG9uIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBjdXJzb3I6IGRlZmF1bHQ7XG4gIHRleHQtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICBvcGFjaXR5OiAxO1xuICBwb2ludGVyLWV2ZW50czogYXV0bztcbiAgdHJhbnNpdGlvbjogYWxsIDBzIGxpbmVhciwgb3BhY2l0eSAwLjFzIGVhc2U7XG59XG4udWkubG9hZGluZy5idXR0b246YmVmb3JlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBjb250ZW50OiAnJztcbiAgdG9wOiA1MCU7XG4gIGxlZnQ6IDUwJTtcbiAgbWFyZ2luOiAtMC42NWVtIDBlbSAwZW0gLTAuNjVlbTtcbiAgd2lkdGg6IDEuM2VtO1xuICBoZWlnaHQ6IDEuM2VtO1xuICBib3JkZXItcmFkaXVzOiA1MDByZW07XG4gIGJvcmRlcjogMC4yZW0gc29saWQgcmdiYSgwLCAwLCAwLCAwLjE1KTtcbn1cbi51aS5sb2FkaW5nLmJ1dHRvbjphZnRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgY29udGVudDogJyc7XG4gIHRvcDogNTAlO1xuICBsZWZ0OiA1MCU7XG4gIG1hcmdpbjogLTAuNjVlbSAwZW0gMGVtIC0wLjY1ZW07XG4gIHdpZHRoOiAxLjNlbTtcbiAgaGVpZ2h0OiAxLjNlbTtcbiAgYW5pbWF0aW9uOiBidXR0b24tc3BpbiAwLjZzIGxpbmVhcjtcbiAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XG4gIGJvcmRlci1yYWRpdXM6IDUwMHJlbTtcbiAgYm9yZGVyLWNvbG9yOiAjZmZmZmZmIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICBib3JkZXItd2lkdGg6IDAuMmVtO1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggdHJhbnNwYXJlbnQ7XG59XG4udWkubGFiZWxlZC5pY29uLmxvYWRpbmcuYnV0dG9uIC5pY29uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG59XG5Aa2V5ZnJhbWVzIGJ1dHRvbi1zcGluIHtcbiAgZnJvbSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XG4gIH1cbiAgdG8ge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7XG4gIH1cbn1cbi51aS5iYXNpYy5sb2FkaW5nLmJ1dHRvbjpub3QoLmludmVydGVkKTpiZWZvcmUge1xuICBib3JkZXItY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xKTtcbn1cbi51aS5iYXNpYy5sb2FkaW5nLmJ1dHRvbjpub3QoLmludmVydGVkKTphZnRlciB7XG4gIGJvcmRlci10b3AtY29sb3I6ICM3Njc2NzY7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkuYnV0dG9ucyAuZGlzYWJsZWQuYnV0dG9uLFxuLnVpLmRpc2FibGVkLmJ1dHRvbixcbi51aS5idXR0b246ZGlzYWJsZWQsXG4udWkuZGlzYWJsZWQuYnV0dG9uOmhvdmVyLFxuLnVpLmRpc2FibGVkLmFjdGl2ZS5idXR0b24ge1xuICBjdXJzb3I6IGRlZmF1bHQ7XG4gIG9wYWNpdHk6IDAuNDUgIWltcG9ydGFudDtcbiAgYmFja2dyb3VuZC1pbWFnZTogbm9uZSAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lICFpbXBvcnRhbnQ7XG59XG4vKiBCYXNpYyBHcm91cCBXaXRoIERpc2FibGVkICovXG4udWkuYmFzaWMuYnV0dG9ucyAudWkuZGlzYWJsZWQuYnV0dG9uIHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDM0LCAzNiwgMzgsIDAuNSk7XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFR5cGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQW5pbWF0ZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5hbmltYXRlZC5idXR0b24ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBhZGRpbmctcmlnaHQ6IDBlbSAhaW1wb3J0YW50O1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICB6LWluZGV4OiAxO1xufVxuLnVpLmFuaW1hdGVkLmJ1dHRvbiAuY29udGVudCB7XG4gIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG59XG4udWkuYW5pbWF0ZWQuYnV0dG9uIC52aXNpYmxlLmNvbnRlbnQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1hcmdpbi1yaWdodDogMS41ZW07XG59XG4udWkuYW5pbWF0ZWQuYnV0dG9uIC5oaWRkZW4uY29udGVudCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IDEwMCU7XG59XG4vKiBIb3Jpem9udGFsICovXG4udWkuYW5pbWF0ZWQuYnV0dG9uIC52aXNpYmxlLmNvbnRlbnQsXG4udWkuYW5pbWF0ZWQuYnV0dG9uIC5oaWRkZW4uY29udGVudCB7XG4gIHRyYW5zaXRpb246IHJpZ2h0IDAuM3MgZWFzZSAwcztcbn1cbi51aS5hbmltYXRlZC5idXR0b24gLnZpc2libGUuY29udGVudCB7XG4gIGxlZnQ6IGF1dG87XG4gIHJpZ2h0OiAwJTtcbn1cbi51aS5hbmltYXRlZC5idXR0b24gLmhpZGRlbi5jb250ZW50IHtcbiAgdG9wOiA1MCU7XG4gIGxlZnQ6IGF1dG87XG4gIHJpZ2h0OiAtMTAwJTtcbiAgbWFyZ2luLXRvcDogLTAuNWVtO1xufVxuLnVpLmFuaW1hdGVkLmJ1dHRvbjpmb2N1cyAudmlzaWJsZS5jb250ZW50LFxuLnVpLmFuaW1hdGVkLmJ1dHRvbjpob3ZlciAudmlzaWJsZS5jb250ZW50IHtcbiAgbGVmdDogYXV0bztcbiAgcmlnaHQ6IDIwMCU7XG59XG4udWkuYW5pbWF0ZWQuYnV0dG9uOmZvY3VzIC5oaWRkZW4uY29udGVudCxcbi51aS5hbmltYXRlZC5idXR0b246aG92ZXIgLmhpZGRlbi5jb250ZW50IHtcbiAgbGVmdDogYXV0bztcbiAgcmlnaHQ6IDAlO1xufVxuLyogVmVydGljYWwgKi9cbi51aS52ZXJ0aWNhbC5hbmltYXRlZC5idXR0b24gLnZpc2libGUuY29udGVudCxcbi51aS52ZXJ0aWNhbC5hbmltYXRlZC5idXR0b24gLmhpZGRlbi5jb250ZW50IHtcbiAgdHJhbnNpdGlvbjogdG9wIDAuM3MgZWFzZSwgdHJhbnNmb3JtIDAuM3MgZWFzZTtcbn1cbi51aS52ZXJ0aWNhbC5hbmltYXRlZC5idXR0b24gLnZpc2libGUuY29udGVudCB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwJSk7XG4gIHJpZ2h0OiBhdXRvO1xufVxuLnVpLnZlcnRpY2FsLmFuaW1hdGVkLmJ1dHRvbiAuaGlkZGVuLmNvbnRlbnQge1xuICB0b3A6IC01MCU7XG4gIGxlZnQ6IDAlO1xuICByaWdodDogYXV0bztcbn1cbi51aS52ZXJ0aWNhbC5hbmltYXRlZC5idXR0b246Zm9jdXMgLnZpc2libGUuY29udGVudCxcbi51aS52ZXJ0aWNhbC5hbmltYXRlZC5idXR0b246aG92ZXIgLnZpc2libGUuY29udGVudCB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgyMDAlKTtcbiAgcmlnaHQ6IGF1dG87XG59XG4udWkudmVydGljYWwuYW5pbWF0ZWQuYnV0dG9uOmZvY3VzIC5oaWRkZW4uY29udGVudCxcbi51aS52ZXJ0aWNhbC5hbmltYXRlZC5idXR0b246aG92ZXIgLmhpZGRlbi5jb250ZW50IHtcbiAgdG9wOiA1MCU7XG4gIHJpZ2h0OiBhdXRvO1xufVxuLyogRmFkZSAqL1xuLnVpLmZhZGUuYW5pbWF0ZWQuYnV0dG9uIC52aXNpYmxlLmNvbnRlbnQsXG4udWkuZmFkZS5hbmltYXRlZC5idXR0b24gLmhpZGRlbi5jb250ZW50IHtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzIGVhc2UsIHRyYW5zZm9ybSAwLjNzIGVhc2U7XG59XG4udWkuZmFkZS5hbmltYXRlZC5idXR0b24gLnZpc2libGUuY29udGVudCB7XG4gIGxlZnQ6IGF1dG87XG4gIHJpZ2h0OiBhdXRvO1xuICBvcGFjaXR5OiAxO1xuICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xufVxuLnVpLmZhZGUuYW5pbWF0ZWQuYnV0dG9uIC5oaWRkZW4uY29udGVudCB7XG4gIG9wYWNpdHk6IDA7XG4gIGxlZnQ6IDAlO1xuICByaWdodDogYXV0bztcbiAgdHJhbnNmb3JtOiBzY2FsZSgxLjUpO1xufVxuLnVpLmZhZGUuYW5pbWF0ZWQuYnV0dG9uOmZvY3VzIC52aXNpYmxlLmNvbnRlbnQsXG4udWkuZmFkZS5hbmltYXRlZC5idXR0b246aG92ZXIgLnZpc2libGUuY29udGVudCB7XG4gIGxlZnQ6IGF1dG87XG4gIHJpZ2h0OiBhdXRvO1xuICBvcGFjaXR5OiAwO1xuICB0cmFuc2Zvcm06IHNjYWxlKDAuNzUpO1xufVxuLnVpLmZhZGUuYW5pbWF0ZWQuYnV0dG9uOmZvY3VzIC5oaWRkZW4uY29udGVudCxcbi51aS5mYWRlLmFuaW1hdGVkLmJ1dHRvbjpob3ZlciAuaGlkZGVuLmNvbnRlbnQge1xuICBsZWZ0OiAwJTtcbiAgcmlnaHQ6IGF1dG87XG4gIG9wYWNpdHk6IDE7XG4gIHRyYW5zZm9ybTogc2NhbGUoMSk7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJbnZlcnRlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmludmVydGVkLmJ1dHRvbiB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDJweCAjZmZmZmZmIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50IG5vbmU7XG4gIGNvbG9yOiAjZmZmZmZmO1xuICB0ZXh0LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xufVxuLyogR3JvdXAgKi9cbi51aS5pbnZlcnRlZC5idXR0b25zIC5idXR0b24ge1xuICBtYXJnaW46IDBweCAwcHggMHB4IC0ycHg7XG59XG4udWkuaW52ZXJ0ZWQuYnV0dG9ucyAuYnV0dG9uOmZpcnN0LWNoaWxkIHtcbiAgbWFyZ2luLWxlZnQ6IDBlbTtcbn1cbi51aS5pbnZlcnRlZC52ZXJ0aWNhbC5idXR0b25zIC5idXR0b24ge1xuICBtYXJnaW46IDBweCAwcHggLTJweCAwcHg7XG59XG4udWkuaW52ZXJ0ZWQudmVydGljYWwuYnV0dG9ucyAuYnV0dG9uOmZpcnN0LWNoaWxkIHtcbiAgbWFyZ2luLXRvcDogMGVtO1xufVxuLyogU3RhdGVzICovXG4vKiBIb3ZlciAqL1xuLnVpLmludmVydGVkLmJ1dHRvbjpob3ZlciB7XG4gIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDJweCAjZmZmZmZmIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuOCk7XG59XG4vKiBBY3RpdmUgLyBGb2N1cyAqL1xuLnVpLmludmVydGVkLmJ1dHRvbjpmb2N1cyxcbi51aS5pbnZlcnRlZC5idXR0b24uYWN0aXZlIHtcbiAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMnB4ICNmZmZmZmYgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44KTtcbn1cbi8qIEFjdGl2ZSBGb2N1cyAqL1xuLnVpLmludmVydGVkLmJ1dHRvbi5hY3RpdmU6Zm9jdXMge1xuICBiYWNrZ3JvdW5kOiAjRENERERFO1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAycHggI0RDRERERSBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjgpO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgTGFiZWxlZCBCdXR0b25cbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5sYWJlbGVkLmJ1dHRvbjpub3QoLmljb24pIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIGJhY2tncm91bmQ6IG5vbmUgIWltcG9ydGFudDtcbiAgcGFkZGluZzogMHB4ICFpbXBvcnRhbnQ7XG4gIGJvcmRlcjogbm9uZSAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG59XG4udWkubGFiZWxlZC5idXR0b24gPiAuYnV0dG9uIHtcbiAgbWFyZ2luOiAwcHg7XG59XG4udWkubGFiZWxlZC5idXR0b24gPiAubGFiZWwge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBtYXJnaW46IDBweCAwcHggMHB4IC0xcHggIWltcG9ydGFudDtcbiAgcGFkZGluZzogJyc7XG4gIGZvbnQtc2l6ZTogMWVtO1xuICBib3JkZXItY29sb3I6IHJnYmEoMzQsIDM2LCAzOCwgMC4xNSk7XG59XG4vKiBUYWcgKi9cbi51aS5sYWJlbGVkLmJ1dHRvbiA+IC50YWcubGFiZWw6YmVmb3JlIHtcbiAgd2lkdGg6IDEuODVlbTtcbiAgaGVpZ2h0OiAxLjg1ZW07XG59XG4vKiBSaWdodCAqL1xuLnVpLmxhYmVsZWQuYnV0dG9uOm5vdChbY2xhc3MqPVwibGVmdCBsYWJlbGVkXCJdKSA+IC5idXR0b24ge1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMHB4O1xuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMHB4O1xufVxuLnVpLmxhYmVsZWQuYnV0dG9uOm5vdChbY2xhc3MqPVwibGVmdCBsYWJlbGVkXCJdKSA+IC5sYWJlbCB7XG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDBweDtcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMHB4O1xufVxuLyogTGVmdCBTaWRlICovXG4udWlbY2xhc3MqPVwibGVmdCBsYWJlbGVkXCJdLmJ1dHRvbiA+IC5idXR0b24ge1xuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwcHg7XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDBweDtcbn1cbi51aVtjbGFzcyo9XCJsZWZ0IGxhYmVsZWRcIl0uYnV0dG9uID4gLmxhYmVsIHtcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDBweDtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDBweDtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIFNvY2lhbFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRmFjZWJvb2sgKi9cbi51aS5mYWNlYm9vay5idXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjM0I1OTk4O1xuICBjb2xvcjogI2ZmZmZmZjtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG4gIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG4gIGJveC1zaGFkb3c6IDBweCAwZW0gMHB4IDBweCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpIGluc2V0O1xufVxuLnVpLmZhY2Vib29rLmJ1dHRvbjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzMDRkOGE7XG4gIGNvbG9yOiAjZmZmZmZmO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbn1cbi51aS5mYWNlYm9vay5idXR0b246YWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzJkNDM3MztcbiAgY29sb3I6ICNmZmZmZmY7XG4gIHRleHQtc2hhZG93OiBub25lO1xufVxuLyogVHdpdHRlciAqL1xuLnVpLnR3aXR0ZXIuYnV0dG9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzU1QUNFRTtcbiAgY29sb3I6ICNmZmZmZmY7XG4gIHRleHQtc2hhZG93OiBub25lO1xuICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xuICBib3gtc2hhZG93OiAwcHggMGVtIDBweCAwcHggcmdiYSgzNCwgMzYsIDM4LCAwLjE1KSBpbnNldDtcbn1cbi51aS50d2l0dGVyLmJ1dHRvbjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzNWEyZjQ7XG4gIGNvbG9yOiAjZmZmZmZmO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbn1cbi51aS50d2l0dGVyLmJ1dHRvbjphY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjc5NWU5O1xuICBjb2xvcjogI2ZmZmZmZjtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG59XG4vKiBHb29nbGUgUGx1cyAqL1xuLnVpLmdvb2dsZS5wbHVzLmJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNERDRCMzk7XG4gIGNvbG9yOiAjZmZmZmZmO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbiAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbiAgYm94LXNoYWRvdzogMHB4IDBlbSAwcHggMHB4IHJnYmEoMzQsIDM2LCAzOCwgMC4xNSkgaW5zZXQ7XG59XG4udWkuZ29vZ2xlLnBsdXMuYnV0dG9uOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2UwMzIxYztcbiAgY29sb3I6ICNmZmZmZmY7XG4gIHRleHQtc2hhZG93OiBub25lO1xufVxuLnVpLmdvb2dsZS5wbHVzLmJ1dHRvbjphY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYzIzMzIxO1xuICBjb2xvcjogI2ZmZmZmZjtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG59XG4vKiBMaW5rZWQgSW4gKi9cbi51aS5saW5rZWRpbi5idXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMUY4OEJFO1xuICBjb2xvcjogI2ZmZmZmZjtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG59XG4udWkubGlua2VkaW4uYnV0dG9uOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzE0N2JhZjtcbiAgY29sb3I6ICNmZmZmZmY7XG4gIHRleHQtc2hhZG93OiBub25lO1xufVxuLnVpLmxpbmtlZGluLmJ1dHRvbjphY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTg2OTkyO1xuICBjb2xvcjogI2ZmZmZmZjtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG59XG4vKiBZb3VUdWJlICovXG4udWkueW91dHViZS5idXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkYwMDAwO1xuICBjb2xvcjogI2ZmZmZmZjtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG4gIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG4gIGJveC1zaGFkb3c6IDBweCAwZW0gMHB4IDBweCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpIGluc2V0O1xufVxuLnVpLnlvdXR1YmUuYnV0dG9uOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2U2MDAwMDtcbiAgY29sb3I6ICNmZmZmZmY7XG4gIHRleHQtc2hhZG93OiBub25lO1xufVxuLnVpLnlvdXR1YmUuYnV0dG9uOmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNjYzAwMDA7XG4gIGNvbG9yOiAjZmZmZmZmO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbn1cbi8qIEluc3RhZ3JhbSAqL1xuLnVpLmluc3RhZ3JhbS5idXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDk3NjlDO1xuICBjb2xvcjogI2ZmZmZmZjtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG4gIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG4gIGJveC1zaGFkb3c6IDBweCAwZW0gMHB4IDBweCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpIGluc2V0O1xufVxuLnVpLmluc3RhZ3JhbS5idXR0b246aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjM2Q2OThlO1xuICBjb2xvcjogI2ZmZmZmZjtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG59XG4udWkuaW5zdGFncmFtLmJ1dHRvbjphY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzk1Yzc5O1xuICBjb2xvcjogI2ZmZmZmZjtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG59XG4vKiBQaW50ZXJlc3QgKi9cbi51aS5waW50ZXJlc3QuYnV0dG9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0JEMDgxQztcbiAgY29sb3I6ICNmZmZmZmY7XG4gIHRleHQtc2hhZG93OiBub25lO1xuICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xuICBib3gtc2hhZG93OiAwcHggMGVtIDBweCAwcHggcmdiYSgzNCwgMzYsIDM4LCAwLjE1KSBpbnNldDtcbn1cbi51aS5waW50ZXJlc3QuYnV0dG9uOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2FjMDAxMztcbiAgY29sb3I6ICNmZmZmZmY7XG4gIHRleHQtc2hhZG93OiBub25lO1xufVxuLnVpLnBpbnRlcmVzdC5idXR0b246YWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzhjMDYxNTtcbiAgY29sb3I6ICNmZmZmZmY7XG4gIHRleHQtc2hhZG93OiBub25lO1xufVxuLyogVksgKi9cbi51aS52ay5idXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNEQ3MTk4O1xuICBjb2xvcjogI2ZmZmZmZjtcbiAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbiAgYm94LXNoYWRvdzogMHB4IDBlbSAwcHggMHB4IHJnYmEoMzQsIDM2LCAzOCwgMC4xNSkgaW5zZXQ7XG59XG4udWkudmsuYnV0dG9uOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzQxNjQ4YTtcbiAgY29sb3I6ICNmZmZmZmY7XG59XG4udWkudmsuYnV0dG9uOmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzYzU4NzY7XG4gIGNvbG9yOiAjZmZmZmZmO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBJY29uXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmJ1dHRvbiA+IC5pY29uOm5vdCguYnV0dG9uKSB7XG4gIGhlaWdodDogMC45ZW07XG4gIG9wYWNpdHk6IDAuODtcbiAgbWFyZ2luOiAwZW0gMC42ZW0gMGVtIC0wLjNlbTtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjFzIGVhc2U7XG4gIHZlcnRpY2FsLWFsaWduOiAnJztcbiAgY29sb3I6ICcnO1xufVxuLnVpLmJ1dHRvbjpub3QoLmljb24pID4gLmljb246bm90KC5idXR0b24pOm5vdCguZHJvcGRvd24pIHtcbiAgbWFyZ2luOiAwZW0gMC42ZW0gMGVtIC0wLjNlbTtcbn1cbi51aS5idXR0b246bm90KC5pY29uKSA+IC5yaWdodC5pY29uOm5vdCguYnV0dG9uKTpub3QoLmRyb3Bkb3duKSB7XG4gIG1hcmdpbjogMGVtIC0wLjNlbSAwZW0gMC42ZW07XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBWYXJpYXRpb25zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRmxvYXRlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpW2NsYXNzKj1cImxlZnQgZmxvYXRlZFwiXS5idXR0b25zLFxuLnVpW2NsYXNzKj1cImxlZnQgZmxvYXRlZFwiXS5idXR0b24ge1xuICBmbG9hdDogbGVmdDtcbiAgbWFyZ2luLWxlZnQ6IDBlbTtcbiAgbWFyZ2luLXJpZ2h0OiAwLjI1ZW07XG59XG4udWlbY2xhc3MqPVwicmlnaHQgZmxvYXRlZFwiXS5idXR0b25zLFxuLnVpW2NsYXNzKj1cInJpZ2h0IGZsb2F0ZWRcIl0uYnV0dG9uIHtcbiAgZmxvYXQ6IHJpZ2h0O1xuICBtYXJnaW4tcmlnaHQ6IDBlbTtcbiAgbWFyZ2luLWxlZnQ6IDAuMjVlbTtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIENvbXBhY3Rcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5jb21wYWN0LmJ1dHRvbnMgLmJ1dHRvbixcbi51aS5jb21wYWN0LmJ1dHRvbiB7XG4gIHBhZGRpbmc6IDAuODI1ZW0gMS4xMjVlbSAwLjgyNWVtO1xufVxuLnVpLmNvbXBhY3QuaWNvbi5idXR0b25zIC5idXR0b24sXG4udWkuY29tcGFjdC5pY29uLmJ1dHRvbiB7XG4gIHBhZGRpbmc6IDAuODI1ZW0gMC44MjVlbSAwLjgyNWVtO1xufVxuLnVpLmNvbXBhY3QubGFiZWxlZC5pY29uLmJ1dHRvbnMgLmJ1dHRvbixcbi51aS5jb21wYWN0LmxhYmVsZWQuaWNvbi5idXR0b24ge1xuICBwYWRkaW5nOiAwLjgyNWVtIDQuMzI1ZW0gMC44MjVlbTtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLm1pbmkuYnV0dG9ucyAuYnV0dG9uLFxuLnVpLm1pbmkuYnV0dG9ucyAub3IsXG4udWkubWluaS5idXR0b24ge1xuICBmb250LXNpemU6IDAuOHJlbTtcbn1cbi51aS50aW55LmJ1dHRvbnMgLmJ1dHRvbixcbi51aS50aW55LmJ1dHRvbnMgLm9yLFxuLnVpLnRpbnkuYnV0dG9uIHtcbiAgZm9udC1zaXplOiAwLjlyZW07XG59XG4udWkuc21hbGwuYnV0dG9ucyAuYnV0dG9uLFxuLnVpLnNtYWxsLmJ1dHRvbnMgLm9yLFxuLnVpLnNtYWxsLmJ1dHRvbiB7XG4gIGZvbnQtc2l6ZTogMC45cmVtO1xufVxuLnVpLmJ1dHRvbnMgLmJ1dHRvbixcbi51aS5idXR0b25zIC5vcixcbi51aS5idXR0b24ge1xuICBmb250LXNpemU6IDFyZW07XG59XG4udWkubGFyZ2UuYnV0dG9ucyAuYnV0dG9uLFxuLnVpLmxhcmdlLmJ1dHRvbnMgLm9yLFxuLnVpLmxhcmdlLmJ1dHRvbiB7XG4gIGZvbnQtc2l6ZTogMS4xcmVtO1xufVxuLnVpLmJpZy5idXR0b25zIC5idXR0b24sXG4udWkuYmlnLmJ1dHRvbnMgLm9yLFxuLnVpLmJpZy5idXR0b24ge1xuICBmb250LXNpemU6IDEuM3JlbTtcbn1cbi51aS5odWdlLmJ1dHRvbnMgLmJ1dHRvbixcbi51aS5odWdlLmJ1dHRvbnMgLm9yLFxuLnVpLmh1Z2UuYnV0dG9uIHtcbiAgZm9udC1zaXplOiAxLjRyZW07XG59XG4udWkubWFzc2l2ZS5idXR0b25zIC5idXR0b24sXG4udWkubWFzc2l2ZS5idXR0b25zIC5vcixcbi51aS5tYXNzaXZlLmJ1dHRvbiB7XG4gIGZvbnQtc2l6ZTogMS43cmVtO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgIEljb24gT25seVxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5pY29uLmJ1dHRvbnMgLmJ1dHRvbixcbi51aS5pY29uLmJ1dHRvbiB7XG4gIHBhZGRpbmc6IDEuMWVtIDEuMWVtIDEuMWVtO1xufVxuLnVpLmljb24uYnV0dG9ucyAuYnV0dG9uID4gLmljb24sXG4udWkuaWNvbi5idXR0b24gPiAuaWNvbiB7XG4gIG9wYWNpdHk6IDAuOTtcbiAgbWFyZ2luOiAwZW07XG4gIHZlcnRpY2FsLWFsaWduOiB0b3A7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQmFzaWNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5iYXNpYy5idXR0b25zIC5idXR0b24sXG4udWkuYmFzaWMuYnV0dG9uIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgbm9uZSAhaW1wb3J0YW50O1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjYpICFpbXBvcnRhbnQ7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGJvcmRlci1yYWRpdXM6IDAuNHJlbTtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gIHRleHQtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpIGluc2V0O1xufVxuLnVpLmJhc2ljLmJ1dHRvbnMge1xuICBib3gtc2hhZG93OiBub25lO1xuICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpO1xuICBib3JkZXItcmFkaXVzOiAwLjRyZW07XG59XG4udWkuYmFzaWMuYnV0dG9ucyAuYnV0dG9uIHtcbiAgYm9yZGVyLXJhZGl1czogMGVtO1xufVxuLnVpLmJhc2ljLmJ1dHRvbnMgLmJ1dHRvbjpob3Zlcixcbi51aS5iYXNpYy5idXR0b246aG92ZXIge1xuICBiYWNrZ3JvdW5kOiAjRkZGRkZGICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuOCkgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4IHJnYmEoMzQsIDM2LCAzOCwgMC4zNSkgaW5zZXQsIDBweCAwcHggMHB4IDBweCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpIGluc2V0O1xufVxuLnVpLmJhc2ljLmJ1dHRvbnMgLmJ1dHRvbjpmb2N1cyxcbi51aS5iYXNpYy5idXR0b246Zm9jdXMge1xuICBiYWNrZ3JvdW5kOiAjRkZGRkZGICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuOCkgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4IHJnYmEoMzQsIDM2LCAzOCwgMC4zNSkgaW5zZXQsIDBweCAwcHggMHB4IDBweCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpIGluc2V0O1xufVxuLnVpLmJhc2ljLmJ1dHRvbnMgLmJ1dHRvbjphY3RpdmUsXG4udWkuYmFzaWMuYnV0dG9uOmFjdGl2ZSB7XG4gIGJhY2tncm91bmQ6ICNGOEY4RjggIWltcG9ydGFudDtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC45KSAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggcmdiYSgwLCAwLCAwLCAwLjE1KSBpbnNldCwgMHB4IDFweCA0cHggMHB4IHJnYmEoMzQsIDM2LCAzOCwgMC4xNSkgaW5zZXQ7XG59XG4udWkuYmFzaWMuYnV0dG9ucyAuYWN0aXZlLmJ1dHRvbixcbi51aS5iYXNpYy5hY3RpdmUuYnV0dG9uIHtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjA1KSAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiAnJyAhaW1wb3J0YW50O1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjk1KTtcbiAgYm94LXNoYWRvdzogcmdiYSgzNCwgMzYsIDM4LCAwLjM1KTtcbn1cbi51aS5iYXNpYy5idXR0b25zIC5hY3RpdmUuYnV0dG9uOmhvdmVyLFxuLnVpLmJhc2ljLmFjdGl2ZS5idXR0b246aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMDUpO1xufVxuLyogVmVydGljYWwgKi9cbi51aS5iYXNpYy5idXR0b25zIC5idXR0b246aG92ZXIge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggcmdiYSgzNCwgMzYsIDM4LCAwLjM1KSBpbnNldCwgMHB4IDBweCAwcHggMHB4IHJnYmEoMzQsIDM2LCAzOCwgMC4xNSkgaW5zZXQgaW5zZXQ7XG59XG4udWkuYmFzaWMuYnV0dG9ucyAuYnV0dG9uOmFjdGl2ZSB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMTUpIGluc2V0LCAwcHggMXB4IDRweCAwcHggcmdiYSgzNCwgMzYsIDM4LCAwLjE1KSBpbnNldCBpbnNldDtcbn1cbi51aS5iYXNpYy5idXR0b25zIC5hY3RpdmUuYnV0dG9uIHtcbiAgYm94LXNoYWRvdzogcmdiYSgzNCwgMzYsIDM4LCAwLjM1KSBpbnNldDtcbn1cbi8qIFN0YW5kYXJkIEJhc2ljIEludmVydGVkICovXG4udWkuYmFzaWMuaW52ZXJ0ZWQuYnV0dG9ucyAuYnV0dG9uLFxuLnVpLmJhc2ljLmludmVydGVkLmJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRjlGQUZCICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDJweCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSkgaW5zZXQgIWltcG9ydGFudDtcbn1cbi51aS5iYXNpYy5pbnZlcnRlZC5idXR0b25zIC5idXR0b246aG92ZXIsXG4udWkuYmFzaWMuaW52ZXJ0ZWQuYnV0dG9uOmhvdmVyIHtcbiAgY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMnB4ICNmZmZmZmYgaW5zZXQgIWltcG9ydGFudDtcbn1cbi51aS5iYXNpYy5pbnZlcnRlZC5idXR0b25zIC5idXR0b246Zm9jdXMsXG4udWkuYmFzaWMuaW52ZXJ0ZWQuYnV0dG9uOmZvY3VzIHtcbiAgY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMnB4ICNmZmZmZmYgaW5zZXQgIWltcG9ydGFudDtcbn1cbi51aS5iYXNpYy5pbnZlcnRlZC5idXR0b25zIC5idXR0b246YWN0aXZlLFxuLnVpLmJhc2ljLmludmVydGVkLmJ1dHRvbjphY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDgpICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDJweCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOSkgaW5zZXQgIWltcG9ydGFudDtcbn1cbi51aS5iYXNpYy5pbnZlcnRlZC5idXR0b25zIC5hY3RpdmUuYnV0dG9uLFxuLnVpLmJhc2ljLmludmVydGVkLmFjdGl2ZS5idXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDgpO1xuICBjb2xvcjogI2ZmZmZmZjtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDJweCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNykgaW5zZXQ7XG59XG4udWkuYmFzaWMuaW52ZXJ0ZWQuYnV0dG9ucyAuYWN0aXZlLmJ1dHRvbjpob3Zlcixcbi51aS5iYXNpYy5pbnZlcnRlZC5hY3RpdmUuYnV0dG9uOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KTtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMnB4ICNmZmZmZmYgaW5zZXQgIWltcG9ydGFudDtcbn1cbi8qIEJhc2ljIEdyb3VwICovXG4udWkuYmFzaWMuYnV0dG9ucyAuYnV0dG9uIHtcbiAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpO1xuICBib3gtc2hhZG93OiBub25lO1xufVxuLnVpLmJhc2ljLnZlcnRpY2FsLmJ1dHRvbnMgLmJ1dHRvbiB7XG4gIGJvcmRlci1sZWZ0OiBub25lO1xufVxuLnVpLmJhc2ljLnZlcnRpY2FsLmJ1dHRvbnMgLmJ1dHRvbiB7XG4gIGJvcmRlci1sZWZ0LXdpZHRoOiAwcHg7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpO1xufVxuLnVpLmJhc2ljLnZlcnRpY2FsLmJ1dHRvbnMgLmJ1dHRvbjpmaXJzdC1jaGlsZCB7XG4gIGJvcmRlci10b3Atd2lkdGg6IDBweDtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgTGFiZWxlZCBJY29uXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmxhYmVsZWQuaWNvbi5idXR0b25zIC5idXR0b24sXG4udWkubGFiZWxlZC5pY29uLmJ1dHRvbiB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgcGFkZGluZy1sZWZ0OiA0LjdlbSAhaW1wb3J0YW50O1xuICBwYWRkaW5nLXJpZ2h0OiAxLjVlbSAhaW1wb3J0YW50O1xufVxuLyogTGVmdCBMYWJlbGVkICovXG4udWkubGFiZWxlZC5pY29uLmJ1dHRvbnMgPiAuYnV0dG9uID4gLmljb24sXG4udWkubGFiZWxlZC5pY29uLmJ1dHRvbiA+IC5pY29uIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBib3JkZXItcmFkaXVzOiAwcHg7XG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IGluaGVyaXQ7XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IGluaGVyaXQ7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgbWFyZ2luOiAwZW07XG4gIHdpZHRoOiAzLjJlbTtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjA1KTtcbiAgY29sb3I6ICcnO1xuICBib3gtc2hhZG93OiAtMXB4IDBweCAwcHggMHB4IHRyYW5zcGFyZW50IGluc2V0O1xufVxuLyogTGVmdCBMYWJlbGVkICovXG4udWkubGFiZWxlZC5pY29uLmJ1dHRvbnMgPiAuYnV0dG9uID4gLmljb24sXG4udWkubGFiZWxlZC5pY29uLmJ1dHRvbiA+IC5pY29uIHtcbiAgdG9wOiAwZW07XG4gIGxlZnQ6IDBlbTtcbn1cbi8qIFJpZ2h0IExhYmVsZWQgKi9cbi51aVtjbGFzcyo9XCJyaWdodCBsYWJlbGVkXCJdLmljb24uYnV0dG9uIHtcbiAgcGFkZGluZy1yaWdodDogNC43ZW0gIWltcG9ydGFudDtcbiAgcGFkZGluZy1sZWZ0OiAxLjVlbSAhaW1wb3J0YW50O1xufVxuLnVpW2NsYXNzKj1cInJpZ2h0IGxhYmVsZWRcIl0uaWNvbi5idXR0b24gPiAuaWNvbiB7XG4gIGxlZnQ6IGF1dG87XG4gIHJpZ2h0OiAwZW07XG4gIGJvcmRlci1yYWRpdXM6IDBweDtcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IGluaGVyaXQ7XG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiBpbmhlcml0O1xuICBib3gtc2hhZG93OiAxcHggMHB4IDBweCAwcHggdHJhbnNwYXJlbnQgaW5zZXQ7XG59XG4udWkubGFiZWxlZC5pY29uLmJ1dHRvbnMgPiAuYnV0dG9uID4gLmljb246YmVmb3JlLFxuLnVpLmxhYmVsZWQuaWNvbi5idXR0b24gPiAuaWNvbjpiZWZvcmUsXG4udWkubGFiZWxlZC5pY29uLmJ1dHRvbnMgPiAuYnV0dG9uID4gLmljb246YWZ0ZXIsXG4udWkubGFiZWxlZC5pY29uLmJ1dHRvbiA+IC5pY29uOmFmdGVyIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IDEwMCU7XG4gIHRvcDogNTAlO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbn1cbi51aS5sYWJlbGVkLmljb24uYnV0dG9ucyAuYnV0dG9uID4gLmljb24ge1xuICBib3JkZXItcmFkaXVzOiAwZW07XG59XG4udWkubGFiZWxlZC5pY29uLmJ1dHRvbnMgLmJ1dHRvbjpmaXJzdC1jaGlsZCA+IC5pY29uIHtcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMC40cmVtO1xuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwLjRyZW07XG59XG4udWkubGFiZWxlZC5pY29uLmJ1dHRvbnMgLmJ1dHRvbjpsYXN0LWNoaWxkID4gLmljb24ge1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMC40cmVtO1xuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMC40cmVtO1xufVxuLnVpLnZlcnRpY2FsLmxhYmVsZWQuaWNvbi5idXR0b25zIC5idXR0b246Zmlyc3QtY2hpbGQgPiAuaWNvbiB7XG4gIGJvcmRlci1yYWRpdXM6IDBlbTtcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMC40cmVtO1xufVxuLnVpLnZlcnRpY2FsLmxhYmVsZWQuaWNvbi5idXR0b25zIC5idXR0b246bGFzdC1jaGlsZCA+IC5pY29uIHtcbiAgYm9yZGVyLXJhZGl1czogMGVtO1xuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwLjRyZW07XG59XG4vKiBGbHVpZCBMYWJlbGVkICovXG4udWkuZmx1aWRbY2xhc3MqPVwibGVmdCBsYWJlbGVkXCJdLmljb24uYnV0dG9uLFxuLnVpLmZsdWlkW2NsYXNzKj1cInJpZ2h0IGxhYmVsZWRcIl0uaWNvbi5idXR0b24ge1xuICBwYWRkaW5nLWxlZnQ6IDEuNWVtICFpbXBvcnRhbnQ7XG4gIHBhZGRpbmctcmlnaHQ6IDEuNWVtICFpbXBvcnRhbnQ7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIFRvZ2dsZVxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRvZ2dsZSAoTW9kaWZpZXMgYWN0aXZlIHN0YXRlIHRvIGdpdmUgYWZmb3JkYW5jZXMpICovXG4udWkudG9nZ2xlLmJ1dHRvbnMgLmFjdGl2ZS5idXR0b24sXG4udWkuYnV0dG9ucyAuYnV0dG9uLnRvZ2dsZS5hY3RpdmUsXG4udWkuYnV0dG9uLnRvZ2dsZS5hY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTlhNTMxICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG4gIGNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG59XG4udWkuYnV0dG9uLnRvZ2dsZS5hY3RpdmU6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTA5NTI2ICFpbXBvcnRhbnQ7XG4gIHRleHQtc2hhZG93OiBub25lO1xuICBjb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgIENpcmN1bGFyXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmNpcmN1bGFyLmJ1dHRvbiB7XG4gIGJvcmRlci1yYWRpdXM6IDEwZW07XG59XG4udWkuY2lyY3VsYXIuYnV0dG9uID4gLmljb24ge1xuICB3aWR0aDogMWVtO1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIE9yIEJ1dHRvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5idXR0b25zIC5vciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IDAuM2VtO1xuICBoZWlnaHQ6IDMuMmVtO1xuICB6LWluZGV4OiAzO1xufVxuLnVpLmJ1dHRvbnMgLm9yOmJlZm9yZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBib3JkZXItcmFkaXVzOiA1MDByZW07XG4gIGNvbnRlbnQ6ICdvcic7XG4gIHRvcDogNTAlO1xuICBsZWZ0OiA1MCU7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG4gIHRleHQtc2hhZG93OiBub25lO1xuICBtYXJnaW4tdG9wOiAtMS4wNWVtO1xuICBtYXJnaW4tbGVmdDogLTEuMDVlbTtcbiAgd2lkdGg6IDIuMWVtO1xuICBoZWlnaHQ6IDIuMWVtO1xuICBsaW5lLWhlaWdodDogMi4xZW07XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNCk7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCB0cmFuc3BhcmVudCBpbnNldDtcbn1cbi51aS5idXR0b25zIC5vcltkYXRhLXRleHRdOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IGF0dHIoZGF0YS10ZXh0KTtcbn1cbi8qIEZsdWlkIE9yICovXG4udWkuZmx1aWQuYnV0dG9ucyAub3Ige1xuICB3aWR0aDogMGVtICFpbXBvcnRhbnQ7XG59XG4udWkuZmx1aWQuYnV0dG9ucyAub3I6YWZ0ZXIge1xuICBkaXNwbGF5OiBub25lO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQXR0YWNoZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNpbmd1bGFyICovXG4udWkuYXR0YWNoZWQuYnV0dG9uIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luOiAwZW07XG4gIGJvcmRlci1yYWRpdXM6IDBlbTtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4IHJnYmEoMzQsIDM2LCAzOCwgMC4xNSkgIWltcG9ydGFudDtcbn1cbi8qIFRvcCAvIEJvdHRvbSAqL1xuLnVpLmF0dGFjaGVkLnRvcC5idXR0b24ge1xuICBib3JkZXItcmFkaXVzOiAwLjRyZW0gMC40cmVtIDBlbSAwZW07XG59XG4udWkuYXR0YWNoZWQuYm90dG9tLmJ1dHRvbiB7XG4gIGJvcmRlci1yYWRpdXM6IDBlbSAwZW0gMC40cmVtIDAuNHJlbTtcbn1cbi8qIExlZnQgLyBSaWdodCAqL1xuLnVpLmxlZnQuYXR0YWNoZWQuYnV0dG9uIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBib3JkZXItbGVmdDogbm9uZTtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gIHBhZGRpbmctcmlnaHQ6IDAuNzVlbTtcbiAgYm9yZGVyLXJhZGl1czogMC40cmVtIDBlbSAwZW0gMC40cmVtO1xufVxuLnVpLnJpZ2h0LmF0dGFjaGVkLmJ1dHRvbiB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgcGFkZGluZy1sZWZ0OiAwLjc1ZW07XG4gIGJvcmRlci1yYWRpdXM6IDBlbSAwLjRyZW0gMC40cmVtIDBlbTtcbn1cbi8qIFBsdXJhbCAqL1xuLnVpLmF0dGFjaGVkLmJ1dHRvbnMge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGJvcmRlci1yYWRpdXM6IDBlbTtcbiAgd2lkdGg6IGF1dG8gIWltcG9ydGFudDtcbiAgei1pbmRleDogMjtcbiAgbWFyZ2luLWxlZnQ6IC0xcHg7XG4gIG1hcmdpbi1yaWdodDogLTFweDtcbn1cbi51aS5hdHRhY2hlZC5idXR0b25zIC5idXR0b24ge1xuICBtYXJnaW46IDBlbTtcbn1cbi51aS5hdHRhY2hlZC5idXR0b25zIC5idXR0b246Zmlyc3QtY2hpbGQge1xuICBib3JkZXItcmFkaXVzOiAwZW07XG59XG4udWkuYXR0YWNoZWQuYnV0dG9ucyAuYnV0dG9uOmxhc3QtY2hpbGQge1xuICBib3JkZXItcmFkaXVzOiAwZW07XG59XG4vKiBUb3AgLyBCb3R0b20gKi9cbi51aVtjbGFzcyo9XCJ0b3AgYXR0YWNoZWRcIl0uYnV0dG9ucyB7XG4gIG1hcmdpbi1ib3R0b206IC0xcHg7XG4gIGJvcmRlci1yYWRpdXM6IDAuNHJlbSAwLjRyZW0gMGVtIDBlbTtcbn1cbi51aVtjbGFzcyo9XCJ0b3AgYXR0YWNoZWRcIl0uYnV0dG9ucyAuYnV0dG9uOmZpcnN0LWNoaWxkIHtcbiAgYm9yZGVyLXJhZGl1czogMC40cmVtIDBlbSAwZW0gMGVtO1xufVxuLnVpW2NsYXNzKj1cInRvcCBhdHRhY2hlZFwiXS5idXR0b25zIC5idXR0b246bGFzdC1jaGlsZCB7XG4gIGJvcmRlci1yYWRpdXM6IDBlbSAwLjRyZW0gMGVtIDBlbTtcbn1cbi51aVtjbGFzcyo9XCJib3R0b20gYXR0YWNoZWRcIl0uYnV0dG9ucyB7XG4gIG1hcmdpbi10b3A6IC0xcHg7XG4gIGJvcmRlci1yYWRpdXM6IDBlbSAwZW0gMC40cmVtIDAuNHJlbTtcbn1cbi51aVtjbGFzcyo9XCJib3R0b20gYXR0YWNoZWRcIl0uYnV0dG9ucyAuYnV0dG9uOmZpcnN0LWNoaWxkIHtcbiAgYm9yZGVyLXJhZGl1czogMGVtIDBlbSAwZW0gMC40cmVtO1xufVxuLnVpW2NsYXNzKj1cImJvdHRvbSBhdHRhY2hlZFwiXS5idXR0b25zIC5idXR0b246bGFzdC1jaGlsZCB7XG4gIGJvcmRlci1yYWRpdXM6IDBlbSAwZW0gMC40cmVtIDBlbTtcbn1cbi8qIExlZnQgLyBSaWdodCAqL1xuLnVpW2NsYXNzKj1cImxlZnQgYXR0YWNoZWRcIl0uYnV0dG9ucyB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBtYXJnaW4tcmlnaHQ6IDBlbTtcbiAgbWFyZ2luLWxlZnQ6IC0xcHg7XG4gIGJvcmRlci1yYWRpdXM6IDBlbSAwLjRyZW0gMC40cmVtIDBlbTtcbn1cbi51aVtjbGFzcyo9XCJsZWZ0IGF0dGFjaGVkXCJdLmJ1dHRvbnMgLmJ1dHRvbjpmaXJzdC1jaGlsZCB7XG4gIG1hcmdpbi1sZWZ0OiAtMXB4O1xuICBib3JkZXItcmFkaXVzOiAwZW0gMC40cmVtIDBlbSAwZW07XG59XG4udWlbY2xhc3MqPVwibGVmdCBhdHRhY2hlZFwiXS5idXR0b25zIC5idXR0b246bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1sZWZ0OiAtMXB4O1xuICBib3JkZXItcmFkaXVzOiAwZW0gMGVtIDAuNHJlbSAwZW07XG59XG4udWlbY2xhc3MqPVwicmlnaHQgYXR0YWNoZWRcIl0uYnV0dG9ucyB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBtYXJnaW4tbGVmdDogMGVtO1xuICBtYXJnaW4tcmlnaHQ6IC0xcHg7XG4gIGJvcmRlci1yYWRpdXM6IDAuNHJlbSAwZW0gMGVtIDAuNHJlbTtcbn1cbi51aVtjbGFzcyo9XCJyaWdodCBhdHRhY2hlZFwiXS5idXR0b25zIC5idXR0b246Zmlyc3QtY2hpbGQge1xuICBtYXJnaW4tbGVmdDogLTFweDtcbiAgYm9yZGVyLXJhZGl1czogMC40cmVtIDBlbSAwZW0gMGVtO1xufVxuLnVpW2NsYXNzKj1cInJpZ2h0IGF0dGFjaGVkXCJdLmJ1dHRvbnMgLmJ1dHRvbjpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLWxlZnQ6IC0xcHg7XG4gIGJvcmRlci1yYWRpdXM6IDBlbSAwZW0gMGVtIDAuNHJlbTtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGbHVpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmZsdWlkLmJ1dHRvbnMsXG4udWkuZmx1aWQuYnV0dG9uIHtcbiAgd2lkdGg6IDEwMCU7XG59XG4udWkuZmx1aWQuYnV0dG9uIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG4udWkudHdvLmJ1dHRvbnMge1xuICB3aWR0aDogMTAwJTtcbn1cbi51aS50d28uYnV0dG9ucyA+IC5idXR0b24ge1xuICB3aWR0aDogNTAlO1xufVxuLnVpLnRocmVlLmJ1dHRvbnMge1xuICB3aWR0aDogMTAwJTtcbn1cbi51aS50aHJlZS5idXR0b25zID4gLmJ1dHRvbiB7XG4gIHdpZHRoOiAzMy4zMzMlO1xufVxuLnVpLmZvdXIuYnV0dG9ucyB7XG4gIHdpZHRoOiAxMDAlO1xufVxuLnVpLmZvdXIuYnV0dG9ucyA+IC5idXR0b24ge1xuICB3aWR0aDogMjUlO1xufVxuLnVpLmZpdmUuYnV0dG9ucyB7XG4gIHdpZHRoOiAxMDAlO1xufVxuLnVpLmZpdmUuYnV0dG9ucyA+IC5idXR0b24ge1xuICB3aWR0aDogMjAlO1xufVxuLnVpLnNpeC5idXR0b25zIHtcbiAgd2lkdGg6IDEwMCU7XG59XG4udWkuc2l4LmJ1dHRvbnMgPiAuYnV0dG9uIHtcbiAgd2lkdGg6IDE2LjY2NiU7XG59XG4udWkuc2V2ZW4uYnV0dG9ucyB7XG4gIHdpZHRoOiAxMDAlO1xufVxuLnVpLnNldmVuLmJ1dHRvbnMgPiAuYnV0dG9uIHtcbiAgd2lkdGg6IDE0LjI4NSU7XG59XG4udWkuZWlnaHQuYnV0dG9ucyB7XG4gIHdpZHRoOiAxMDAlO1xufVxuLnVpLmVpZ2h0LmJ1dHRvbnMgPiAuYnV0dG9uIHtcbiAgd2lkdGg6IDEyLjUlO1xufVxuLnVpLm5pbmUuYnV0dG9ucyB7XG4gIHdpZHRoOiAxMDAlO1xufVxuLnVpLm5pbmUuYnV0dG9ucyA+IC5idXR0b24ge1xuICB3aWR0aDogMTEuMTElO1xufVxuLnVpLnRlbi5idXR0b25zIHtcbiAgd2lkdGg6IDEwMCU7XG59XG4udWkudGVuLmJ1dHRvbnMgPiAuYnV0dG9uIHtcbiAgd2lkdGg6IDEwJTtcbn1cbi51aS5lbGV2ZW4uYnV0dG9ucyB7XG4gIHdpZHRoOiAxMDAlO1xufVxuLnVpLmVsZXZlbi5idXR0b25zID4gLmJ1dHRvbiB7XG4gIHdpZHRoOiA5LjA5JTtcbn1cbi51aS50d2VsdmUuYnV0dG9ucyB7XG4gIHdpZHRoOiAxMDAlO1xufVxuLnVpLnR3ZWx2ZS5idXR0b25zID4gLmJ1dHRvbiB7XG4gIHdpZHRoOiA4LjMzMzMlO1xufVxuLyogRmx1aWQgVmVydGljYWwgQnV0dG9ucyAqL1xuLnVpLmZsdWlkLnZlcnRpY2FsLmJ1dHRvbnMsXG4udWkuZmx1aWQudmVydGljYWwuYnV0dG9ucyA+IC5idXR0b24ge1xuICBkaXNwbGF5OiBmbGV4O1xuICB3aWR0aDogYXV0bztcbn1cbi51aS50d28udmVydGljYWwuYnV0dG9ucyA+IC5idXR0b24ge1xuICBoZWlnaHQ6IDUwJTtcbn1cbi51aS50aHJlZS52ZXJ0aWNhbC5idXR0b25zID4gLmJ1dHRvbiB7XG4gIGhlaWdodDogMzMuMzMzJTtcbn1cbi51aS5mb3VyLnZlcnRpY2FsLmJ1dHRvbnMgPiAuYnV0dG9uIHtcbiAgaGVpZ2h0OiAyNSU7XG59XG4udWkuZml2ZS52ZXJ0aWNhbC5idXR0b25zID4gLmJ1dHRvbiB7XG4gIGhlaWdodDogMjAlO1xufVxuLnVpLnNpeC52ZXJ0aWNhbC5idXR0b25zID4gLmJ1dHRvbiB7XG4gIGhlaWdodDogMTYuNjY2JTtcbn1cbi51aS5zZXZlbi52ZXJ0aWNhbC5idXR0b25zID4gLmJ1dHRvbiB7XG4gIGhlaWdodDogMTQuMjg1JTtcbn1cbi51aS5laWdodC52ZXJ0aWNhbC5idXR0b25zID4gLmJ1dHRvbiB7XG4gIGhlaWdodDogMTIuNSU7XG59XG4udWkubmluZS52ZXJ0aWNhbC5idXR0b25zID4gLmJ1dHRvbiB7XG4gIGhlaWdodDogMTEuMTElO1xufVxuLnVpLnRlbi52ZXJ0aWNhbC5idXR0b25zID4gLmJ1dHRvbiB7XG4gIGhlaWdodDogMTAlO1xufVxuLnVpLmVsZXZlbi52ZXJ0aWNhbC5idXR0b25zID4gLmJ1dHRvbiB7XG4gIGhlaWdodDogOS4wOSU7XG59XG4udWkudHdlbHZlLnZlcnRpY2FsLmJ1dHRvbnMgPiAuYnV0dG9uIHtcbiAgaGVpZ2h0OiA4LjMzMzMlO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSBCbGFjayAtLS0qL1xuLnVpLmJsYWNrLmJ1dHRvbnMgLmJ1dHRvbixcbi51aS5ibGFjay5idXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwMDAwO1xuICBjb2xvcjogI2ZmZmZmZjtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG4gIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG59XG4udWkuYmxhY2suYnV0dG9uIHtcbiAgYm94LXNoYWRvdzogMHB4IDBlbSAwcHggMHB4IHJnYmEoMzQsIDM2LCAzOCwgMC4xNSkgaW5zZXQ7XG59XG4udWkuYmxhY2suYnV0dG9ucyAuYnV0dG9uOmhvdmVyLFxuLnVpLmJsYWNrLmJ1dHRvbjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwZDBkMGQ7XG4gIGNvbG9yOiAjZmZmZmZmO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbn1cbi51aS5ibGFjay5idXR0b25zIC5idXR0b246Zm9jdXMsXG4udWkuYmxhY2suYnV0dG9uOmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzE0MTQxNDtcbiAgY29sb3I6ICNmZmZmZmY7XG4gIHRleHQtc2hhZG93OiBub25lO1xufVxuLnVpLmJsYWNrLmJ1dHRvbnMgLmJ1dHRvbjphY3RpdmUsXG4udWkuYmxhY2suYnV0dG9uOmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxYTFhMWE7XG4gIGNvbG9yOiAjZmZmZmZmO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbn1cbi51aS5ibGFjay5idXR0b25zIC5hY3RpdmUuYnV0dG9uLFxuLnVpLmJsYWNrLmJ1dHRvbnMgLmFjdGl2ZS5idXR0b246YWN0aXZlLFxuLnVpLmJsYWNrLmFjdGl2ZS5idXR0b24sXG4udWkuYmxhY2suYnV0dG9uIC5hY3RpdmUuYnV0dG9uOmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDAwMDA7XG4gIGNvbG9yOiAjZmZmZmZmO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbn1cbi8qIEJhc2ljICovXG4udWkuYmFzaWMuYmxhY2suYnV0dG9ucyAuYnV0dG9uLFxuLnVpLmJhc2ljLmJsYWNrLmJ1dHRvbiB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjMDAwMDAwIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjMDAwMDAwICFpbXBvcnRhbnQ7XG59XG4udWkuYmFzaWMuYmxhY2suYnV0dG9ucyAuYnV0dG9uOmhvdmVyLFxuLnVpLmJhc2ljLmJsYWNrLmJ1dHRvbjpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjMGQwZDBkIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjMGQwZDBkICFpbXBvcnRhbnQ7XG59XG4udWkuYmFzaWMuYmxhY2suYnV0dG9ucyAuYnV0dG9uOmZvY3VzLFxuLnVpLmJhc2ljLmJsYWNrLmJ1dHRvbjpmb2N1cyB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjMTQxNDE0IGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjMGQwZDBkICFpbXBvcnRhbnQ7XG59XG4udWkuYmFzaWMuYmxhY2suYnV0dG9ucyAuYWN0aXZlLmJ1dHRvbixcbi51aS5iYXNpYy5ibGFjay5hY3RpdmUuYnV0dG9uIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICMwMDAwMDAgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICMxYTFhMWEgIWltcG9ydGFudDtcbn1cbi51aS5iYXNpYy5ibGFjay5idXR0b25zIC5idXR0b246YWN0aXZlLFxuLnVpLmJhc2ljLmJsYWNrLmJ1dHRvbjphY3RpdmUge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggIzFhMWExYSBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogIzFhMWExYSAhaW1wb3J0YW50O1xufVxuLnVpLmJ1dHRvbnM6bm90KC52ZXJ0aWNhbCkgPiAuYmFzaWMuYmxhY2suYnV0dG9uOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgbWFyZ2luLWxlZnQ6IC0xcHg7XG59XG4vKiBJbnZlcnRlZCAqL1xuLnVpLmludmVydGVkLmJsYWNrLmJ1dHRvbnMgLmJ1dHRvbixcbi51aS5pbnZlcnRlZC5ibGFjay5idXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMnB4ICNENEQ0RDUgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICNmZmZmZmY7XG59XG4udWkuaW52ZXJ0ZWQuYmxhY2suYnV0dG9ucyAuYnV0dG9uOmhvdmVyLFxuLnVpLmludmVydGVkLmJsYWNrLmJ1dHRvbjpob3Zlcixcbi51aS5pbnZlcnRlZC5ibGFjay5idXR0b25zIC5idXR0b246Zm9jdXMsXG4udWkuaW52ZXJ0ZWQuYmxhY2suYnV0dG9uOmZvY3VzLFxuLnVpLmludmVydGVkLmJsYWNrLmJ1dHRvbnMgLmJ1dHRvbi5hY3RpdmUsXG4udWkuaW52ZXJ0ZWQuYmxhY2suYnV0dG9uLmFjdGl2ZSxcbi51aS5pbnZlcnRlZC5ibGFjay5idXR0b25zIC5idXR0b246YWN0aXZlLFxuLnVpLmludmVydGVkLmJsYWNrLmJ1dHRvbjphY3RpdmUge1xuICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjZmZmZmZmO1xufVxuLnVpLmludmVydGVkLmJsYWNrLmJ1dHRvbnMgLmJ1dHRvbjpob3Zlcixcbi51aS5pbnZlcnRlZC5ibGFjay5idXR0b246aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwMDAwO1xufVxuLnVpLmludmVydGVkLmJsYWNrLmJ1dHRvbnMgLmJ1dHRvbjpmb2N1cyxcbi51aS5pbnZlcnRlZC5ibGFjay5idXR0b246Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwMDAwO1xufVxuLnVpLmludmVydGVkLmJsYWNrLmJ1dHRvbnMgLmFjdGl2ZS5idXR0b24sXG4udWkuaW52ZXJ0ZWQuYmxhY2suYWN0aXZlLmJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDAwMDA7XG59XG4udWkuaW52ZXJ0ZWQuYmxhY2suYnV0dG9ucyAuYnV0dG9uOmFjdGl2ZSxcbi51aS5pbnZlcnRlZC5ibGFjay5idXR0b246YWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDAwMDtcbn1cbi8qIEludmVydGVkIEJhc2ljICovXG4udWkuaW52ZXJ0ZWQuYmxhY2suYmFzaWMuYnV0dG9ucyAuYnV0dG9uLFxuLnVpLmludmVydGVkLmJsYWNrLmJ1dHRvbnMgLmJhc2ljLmJ1dHRvbixcbi51aS5pbnZlcnRlZC5ibGFjay5iYXNpYy5idXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMnB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KSBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xufVxuLnVpLmludmVydGVkLmJsYWNrLmJhc2ljLmJ1dHRvbnMgLmJ1dHRvbjpob3Zlcixcbi51aS5pbnZlcnRlZC5ibGFjay5idXR0b25zIC5iYXNpYy5idXR0b246aG92ZXIsXG4udWkuaW52ZXJ0ZWQuYmxhY2suYmFzaWMuYnV0dG9uOmhvdmVyIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMnB4ICMwMDAwMDAgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcbn1cbi51aS5pbnZlcnRlZC5ibGFjay5iYXNpYy5idXR0b25zIC5idXR0b246Zm9jdXMsXG4udWkuaW52ZXJ0ZWQuYmxhY2suYmFzaWMuYnV0dG9ucyAuYnV0dG9uOmZvY3VzLFxuLnVpLmludmVydGVkLmJsYWNrLmJhc2ljLmJ1dHRvbjpmb2N1cyB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDJweCAjMDAwMDAwIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjNTQ1NDU0ICFpbXBvcnRhbnQ7XG59XG4udWkuaW52ZXJ0ZWQuYmxhY2suYmFzaWMuYnV0dG9ucyAuYWN0aXZlLmJ1dHRvbixcbi51aS5pbnZlcnRlZC5ibGFjay5idXR0b25zIC5iYXNpYy5hY3RpdmUuYnV0dG9uLFxuLnVpLmludmVydGVkLmJsYWNrLmJhc2ljLmFjdGl2ZS5idXR0b24ge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAycHggIzAwMDAwMCBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xufVxuLnVpLmludmVydGVkLmJsYWNrLmJhc2ljLmJ1dHRvbnMgLmJ1dHRvbjphY3RpdmUsXG4udWkuaW52ZXJ0ZWQuYmxhY2suYnV0dG9ucyAuYmFzaWMuYnV0dG9uOmFjdGl2ZSxcbi51aS5pbnZlcnRlZC5ibGFjay5iYXNpYy5idXR0b246YWN0aXZlIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMnB4ICMwMDAwMDAgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcbn1cbi8qLS0tIEdyZXkgLS0tKi9cbi51aS5ncmV5LmJ1dHRvbnMgLmJ1dHRvbixcbi51aS5ncmV5LmJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM3Njc2NzY7XG4gIGNvbG9yOiAjZmZmZmZmO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbiAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbn1cbi51aS5ncmV5LmJ1dHRvbiB7XG4gIGJveC1zaGFkb3c6IDBweCAwZW0gMHB4IDBweCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpIGluc2V0O1xufVxuLnVpLmdyZXkuYnV0dG9ucyAuYnV0dG9uOmhvdmVyLFxuLnVpLmdyZXkuYnV0dG9uOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzgzODM4MztcbiAgY29sb3I6ICNmZmZmZmY7XG4gIHRleHQtc2hhZG93OiBub25lO1xufVxuLnVpLmdyZXkuYnV0dG9ucyAuYnV0dG9uOmZvY3VzLFxuLnVpLmdyZXkuYnV0dG9uOmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzhhOGE4YTtcbiAgY29sb3I6ICNmZmZmZmY7XG4gIHRleHQtc2hhZG93OiBub25lO1xufVxuLnVpLmdyZXkuYnV0dG9ucyAuYnV0dG9uOmFjdGl2ZSxcbi51aS5ncmV5LmJ1dHRvbjphY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOTA5MDkwO1xuICBjb2xvcjogI2ZmZmZmZjtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG59XG4udWkuZ3JleS5idXR0b25zIC5hY3RpdmUuYnV0dG9uLFxuLnVpLmdyZXkuYnV0dG9ucyAuYWN0aXZlLmJ1dHRvbjphY3RpdmUsXG4udWkuZ3JleS5hY3RpdmUuYnV0dG9uLFxuLnVpLmdyZXkuYnV0dG9uIC5hY3RpdmUuYnV0dG9uOmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM2OTY5Njk7XG4gIGNvbG9yOiAjZmZmZmZmO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbn1cbi8qIEJhc2ljICovXG4udWkuYmFzaWMuZ3JleS5idXR0b25zIC5idXR0b24sXG4udWkuYmFzaWMuZ3JleS5idXR0b24ge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggIzc2NzY3NiBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogIzc2NzY3NiAhaW1wb3J0YW50O1xufVxuLnVpLmJhc2ljLmdyZXkuYnV0dG9ucyAuYnV0dG9uOmhvdmVyLFxuLnVpLmJhc2ljLmdyZXkuYnV0dG9uOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICM4MzgzODMgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICM4MzgzODMgIWltcG9ydGFudDtcbn1cbi51aS5iYXNpYy5ncmV5LmJ1dHRvbnMgLmJ1dHRvbjpmb2N1cyxcbi51aS5iYXNpYy5ncmV5LmJ1dHRvbjpmb2N1cyB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjOGE4YThhIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjODM4MzgzICFpbXBvcnRhbnQ7XG59XG4udWkuYmFzaWMuZ3JleS5idXR0b25zIC5hY3RpdmUuYnV0dG9uLFxuLnVpLmJhc2ljLmdyZXkuYWN0aXZlLmJ1dHRvbiB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjNjk2OTY5IGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjOTA5MDkwICFpbXBvcnRhbnQ7XG59XG4udWkuYmFzaWMuZ3JleS5idXR0b25zIC5idXR0b246YWN0aXZlLFxuLnVpLmJhc2ljLmdyZXkuYnV0dG9uOmFjdGl2ZSB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjOTA5MDkwIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjOTA5MDkwICFpbXBvcnRhbnQ7XG59XG4udWkuYnV0dG9uczpub3QoLnZlcnRpY2FsKSA+IC5iYXNpYy5ncmV5LmJ1dHRvbjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gIG1hcmdpbi1sZWZ0OiAtMXB4O1xufVxuLyogSW52ZXJ0ZWQgKi9cbi51aS5pbnZlcnRlZC5ncmV5LmJ1dHRvbnMgLmJ1dHRvbixcbi51aS5pbnZlcnRlZC5ncmV5LmJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAycHggI0Q0RDRENSBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogI2ZmZmZmZjtcbn1cbi51aS5pbnZlcnRlZC5ncmV5LmJ1dHRvbnMgLmJ1dHRvbjpob3Zlcixcbi51aS5pbnZlcnRlZC5ncmV5LmJ1dHRvbjpob3Zlcixcbi51aS5pbnZlcnRlZC5ncmV5LmJ1dHRvbnMgLmJ1dHRvbjpmb2N1cyxcbi51aS5pbnZlcnRlZC5ncmV5LmJ1dHRvbjpmb2N1cyxcbi51aS5pbnZlcnRlZC5ncmV5LmJ1dHRvbnMgLmJ1dHRvbi5hY3RpdmUsXG4udWkuaW52ZXJ0ZWQuZ3JleS5idXR0b24uYWN0aXZlLFxuLnVpLmludmVydGVkLmdyZXkuYnV0dG9ucyAuYnV0dG9uOmFjdGl2ZSxcbi51aS5pbnZlcnRlZC5ncmV5LmJ1dHRvbjphY3RpdmUge1xuICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNik7XG59XG4udWkuaW52ZXJ0ZWQuZ3JleS5idXR0b25zIC5idXR0b246aG92ZXIsXG4udWkuaW52ZXJ0ZWQuZ3JleS5idXR0b246aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2ZkMGQyO1xufVxuLnVpLmludmVydGVkLmdyZXkuYnV0dG9ucyAuYnV0dG9uOmZvY3VzLFxuLnVpLmludmVydGVkLmdyZXkuYnV0dG9uOmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2M3YzljYjtcbn1cbi51aS5pbnZlcnRlZC5ncmV5LmJ1dHRvbnMgLmFjdGl2ZS5idXR0b24sXG4udWkuaW52ZXJ0ZWQuZ3JleS5hY3RpdmUuYnV0dG9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2NmZDBkMjtcbn1cbi51aS5pbnZlcnRlZC5ncmV5LmJ1dHRvbnMgLmJ1dHRvbjphY3RpdmUsXG4udWkuaW52ZXJ0ZWQuZ3JleS5idXR0b246YWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2MyYzRjNTtcbn1cbi8qIEludmVydGVkIEJhc2ljICovXG4udWkuaW52ZXJ0ZWQuZ3JleS5iYXNpYy5idXR0b25zIC5idXR0b24sXG4udWkuaW52ZXJ0ZWQuZ3JleS5idXR0b25zIC5iYXNpYy5idXR0b24sXG4udWkuaW52ZXJ0ZWQuZ3JleS5iYXNpYy5idXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMnB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KSBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xufVxuLnVpLmludmVydGVkLmdyZXkuYmFzaWMuYnV0dG9ucyAuYnV0dG9uOmhvdmVyLFxuLnVpLmludmVydGVkLmdyZXkuYnV0dG9ucyAuYmFzaWMuYnV0dG9uOmhvdmVyLFxuLnVpLmludmVydGVkLmdyZXkuYmFzaWMuYnV0dG9uOmhvdmVyIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMnB4ICNjZmQwZDIgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcbn1cbi51aS5pbnZlcnRlZC5ncmV5LmJhc2ljLmJ1dHRvbnMgLmJ1dHRvbjpmb2N1cyxcbi51aS5pbnZlcnRlZC5ncmV5LmJhc2ljLmJ1dHRvbnMgLmJ1dHRvbjpmb2N1cyxcbi51aS5pbnZlcnRlZC5ncmV5LmJhc2ljLmJ1dHRvbjpmb2N1cyB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDJweCAjYzdjOWNiIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRENERERFICFpbXBvcnRhbnQ7XG59XG4udWkuaW52ZXJ0ZWQuZ3JleS5iYXNpYy5idXR0b25zIC5hY3RpdmUuYnV0dG9uLFxuLnVpLmludmVydGVkLmdyZXkuYnV0dG9ucyAuYmFzaWMuYWN0aXZlLmJ1dHRvbixcbi51aS5pbnZlcnRlZC5ncmV5LmJhc2ljLmFjdGl2ZS5idXR0b24ge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAycHggI2NmZDBkMiBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xufVxuLnVpLmludmVydGVkLmdyZXkuYmFzaWMuYnV0dG9ucyAuYnV0dG9uOmFjdGl2ZSxcbi51aS5pbnZlcnRlZC5ncmV5LmJ1dHRvbnMgLmJhc2ljLmJ1dHRvbjphY3RpdmUsXG4udWkuaW52ZXJ0ZWQuZ3JleS5iYXNpYy5idXR0b246YWN0aXZlIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMnB4ICNjMmM0YzUgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcbn1cbi8qLS0tIEJyb3duIC0tLSovXG4udWkuYnJvd24uYnV0dG9ucyAuYnV0dG9uLFxuLnVpLmJyb3duLmJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNBNTY3M0Y7XG4gIGNvbG9yOiAjZmZmZmZmO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbiAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbn1cbi51aS5icm93bi5idXR0b24ge1xuICBib3gtc2hhZG93OiAwcHggMGVtIDBweCAwcHggcmdiYSgzNCwgMzYsIDM4LCAwLjE1KSBpbnNldDtcbn1cbi51aS5icm93bi5idXR0b25zIC5idXR0b246aG92ZXIsXG4udWkuYnJvd24uYnV0dG9uOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzk3NWIzMztcbiAgY29sb3I6ICNmZmZmZmY7XG4gIHRleHQtc2hhZG93OiBub25lO1xufVxuLnVpLmJyb3duLmJ1dHRvbnMgLmJ1dHRvbjpmb2N1cyxcbi51aS5icm93bi5idXR0b246Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOTA1MzJiO1xuICBjb2xvcjogI2ZmZmZmZjtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG59XG4udWkuYnJvd24uYnV0dG9ucyAuYnV0dG9uOmFjdGl2ZSxcbi51aS5icm93bi5idXR0b246YWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzgwNTAzMTtcbiAgY29sb3I6ICNmZmZmZmY7XG4gIHRleHQtc2hhZG93OiBub25lO1xufVxuLnVpLmJyb3duLmJ1dHRvbnMgLmFjdGl2ZS5idXR0b24sXG4udWkuYnJvd24uYnV0dG9ucyAuYWN0aXZlLmJ1dHRvbjphY3RpdmUsXG4udWkuYnJvd24uYWN0aXZlLmJ1dHRvbixcbi51aS5icm93bi5idXR0b24gLmFjdGl2ZS5idXR0b246YWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzk5NWEzMTtcbiAgY29sb3I6ICNmZmZmZmY7XG4gIHRleHQtc2hhZG93OiBub25lO1xufVxuLyogQmFzaWMgKi9cbi51aS5iYXNpYy5icm93bi5idXR0b25zIC5idXR0b24sXG4udWkuYmFzaWMuYnJvd24uYnV0dG9uIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICNBNTY3M0YgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICNBNTY3M0YgIWltcG9ydGFudDtcbn1cbi51aS5iYXNpYy5icm93bi5idXR0b25zIC5idXR0b246aG92ZXIsXG4udWkuYmFzaWMuYnJvd24uYnV0dG9uOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICM5NzViMzMgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICM5NzViMzMgIWltcG9ydGFudDtcbn1cbi51aS5iYXNpYy5icm93bi5idXR0b25zIC5idXR0b246Zm9jdXMsXG4udWkuYmFzaWMuYnJvd24uYnV0dG9uOmZvY3VzIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICM5MDUzMmIgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICM5NzViMzMgIWltcG9ydGFudDtcbn1cbi51aS5iYXNpYy5icm93bi5idXR0b25zIC5hY3RpdmUuYnV0dG9uLFxuLnVpLmJhc2ljLmJyb3duLmFjdGl2ZS5idXR0b24ge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggIzk5NWEzMSBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogIzgwNTAzMSAhaW1wb3J0YW50O1xufVxuLnVpLmJhc2ljLmJyb3duLmJ1dHRvbnMgLmJ1dHRvbjphY3RpdmUsXG4udWkuYmFzaWMuYnJvd24uYnV0dG9uOmFjdGl2ZSB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjODA1MDMxIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjODA1MDMxICFpbXBvcnRhbnQ7XG59XG4udWkuYnV0dG9uczpub3QoLnZlcnRpY2FsKSA+IC5iYXNpYy5icm93bi5idXR0b246bm90KDpmaXJzdC1jaGlsZCkge1xuICBtYXJnaW4tbGVmdDogLTFweDtcbn1cbi8qIEludmVydGVkICovXG4udWkuaW52ZXJ0ZWQuYnJvd24uYnV0dG9ucyAuYnV0dG9uLFxuLnVpLmludmVydGVkLmJyb3duLmJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAycHggI0Q2N0MxQyBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogI0Q2N0MxQztcbn1cbi51aS5pbnZlcnRlZC5icm93bi5idXR0b25zIC5idXR0b246aG92ZXIsXG4udWkuaW52ZXJ0ZWQuYnJvd24uYnV0dG9uOmhvdmVyLFxuLnVpLmludmVydGVkLmJyb3duLmJ1dHRvbnMgLmJ1dHRvbjpmb2N1cyxcbi51aS5pbnZlcnRlZC5icm93bi5idXR0b246Zm9jdXMsXG4udWkuaW52ZXJ0ZWQuYnJvd24uYnV0dG9ucyAuYnV0dG9uLmFjdGl2ZSxcbi51aS5pbnZlcnRlZC5icm93bi5idXR0b24uYWN0aXZlLFxuLnVpLmludmVydGVkLmJyb3duLmJ1dHRvbnMgLmJ1dHRvbjphY3RpdmUsXG4udWkuaW52ZXJ0ZWQuYnJvd24uYnV0dG9uOmFjdGl2ZSB7XG4gIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgY29sb3I6ICNmZmZmZmY7XG59XG4udWkuaW52ZXJ0ZWQuYnJvd24uYnV0dG9ucyAuYnV0dG9uOmhvdmVyLFxuLnVpLmludmVydGVkLmJyb3duLmJ1dHRvbjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNjODZmMTE7XG59XG4udWkuaW52ZXJ0ZWQuYnJvd24uYnV0dG9ucyAuYnV0dG9uOmZvY3VzLFxuLnVpLmludmVydGVkLmJyb3duLmJ1dHRvbjpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNjMTY4MDg7XG59XG4udWkuaW52ZXJ0ZWQuYnJvd24uYnV0dG9ucyAuYWN0aXZlLmJ1dHRvbixcbi51aS5pbnZlcnRlZC5icm93bi5hY3RpdmUuYnV0dG9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2NjNmYwZDtcbn1cbi51aS5pbnZlcnRlZC5icm93bi5idXR0b25zIC5idXR0b246YWN0aXZlLFxuLnVpLmludmVydGVkLmJyb3duLmJ1dHRvbjphY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYTk2MjE2O1xufVxuLyogSW52ZXJ0ZWQgQmFzaWMgKi9cbi51aS5pbnZlcnRlZC5icm93bi5iYXNpYy5idXR0b25zIC5idXR0b24sXG4udWkuaW52ZXJ0ZWQuYnJvd24uYnV0dG9ucyAuYmFzaWMuYnV0dG9uLFxuLnVpLmludmVydGVkLmJyb3duLmJhc2ljLmJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAycHggcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG59XG4udWkuaW52ZXJ0ZWQuYnJvd24uYmFzaWMuYnV0dG9ucyAuYnV0dG9uOmhvdmVyLFxuLnVpLmludmVydGVkLmJyb3duLmJ1dHRvbnMgLmJhc2ljLmJ1dHRvbjpob3Zlcixcbi51aS5pbnZlcnRlZC5icm93bi5iYXNpYy5idXR0b246aG92ZXIge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAycHggI2M4NmYxMSBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogI0Q2N0MxQyAhaW1wb3J0YW50O1xufVxuLnVpLmludmVydGVkLmJyb3duLmJhc2ljLmJ1dHRvbnMgLmJ1dHRvbjpmb2N1cyxcbi51aS5pbnZlcnRlZC5icm93bi5iYXNpYy5idXR0b25zIC5idXR0b246Zm9jdXMsXG4udWkuaW52ZXJ0ZWQuYnJvd24uYmFzaWMuYnV0dG9uOmZvY3VzIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMnB4ICNjMTY4MDggaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICNENjdDMUMgIWltcG9ydGFudDtcbn1cbi51aS5pbnZlcnRlZC5icm93bi5iYXNpYy5idXR0b25zIC5hY3RpdmUuYnV0dG9uLFxuLnVpLmludmVydGVkLmJyb3duLmJ1dHRvbnMgLmJhc2ljLmFjdGl2ZS5idXR0b24sXG4udWkuaW52ZXJ0ZWQuYnJvd24uYmFzaWMuYWN0aXZlLmJ1dHRvbiB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDJweCAjY2M2ZjBkIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRDY3QzFDICFpbXBvcnRhbnQ7XG59XG4udWkuaW52ZXJ0ZWQuYnJvd24uYmFzaWMuYnV0dG9ucyAuYnV0dG9uOmFjdGl2ZSxcbi51aS5pbnZlcnRlZC5icm93bi5idXR0b25zIC5iYXNpYy5idXR0b246YWN0aXZlLFxuLnVpLmludmVydGVkLmJyb3duLmJhc2ljLmJ1dHRvbjphY3RpdmUge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAycHggI2E5NjIxNiBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogI0Q2N0MxQyAhaW1wb3J0YW50O1xufVxuLyotLS0gQmx1ZSAtLS0qL1xuLnVpLmJsdWUuYnV0dG9ucyAuYnV0dG9uLFxuLnVpLmJsdWUuYnV0dG9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzNmNTFiNTtcbiAgY29sb3I6ICNmZmZmZmY7XG4gIHRleHQtc2hhZG93OiBub25lO1xuICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xufVxuLnVpLmJsdWUuYnV0dG9uIHtcbiAgYm94LXNoYWRvdzogMHB4IDBlbSAwcHggMHB4IHJnYmEoMzQsIDM2LCAzOCwgMC4xNSkgaW5zZXQ7XG59XG4udWkuYmx1ZS5idXR0b25zIC5idXR0b246aG92ZXIsXG4udWkuYmx1ZS5idXR0b246aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzM0NWE3O1xuICBjb2xvcjogI2ZmZmZmZjtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG59XG4udWkuYmx1ZS5idXR0b25zIC5idXR0b246Zm9jdXMsXG4udWkuYmx1ZS5idXR0b246Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMmIzZGExO1xuICBjb2xvcjogI2ZmZmZmZjtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG59XG4udWkuYmx1ZS5idXR0b25zIC5idXR0b246YWN0aXZlLFxuLnVpLmJsdWUuYnV0dG9uOmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzMjQwOGY7XG4gIGNvbG9yOiAjZmZmZmZmO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbn1cbi51aS5ibHVlLmJ1dHRvbnMgLmFjdGl2ZS5idXR0b24sXG4udWkuYmx1ZS5idXR0b25zIC5hY3RpdmUuYnV0dG9uOmFjdGl2ZSxcbi51aS5ibHVlLmFjdGl2ZS5idXR0b24sXG4udWkuYmx1ZS5idXR0b24gLmFjdGl2ZS5idXR0b246YWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzMwNDNhYTtcbiAgY29sb3I6ICNmZmZmZmY7XG4gIHRleHQtc2hhZG93OiBub25lO1xufVxuLyogQmFzaWMgKi9cbi51aS5iYXNpYy5ibHVlLmJ1dHRvbnMgLmJ1dHRvbixcbi51aS5iYXNpYy5ibHVlLmJ1dHRvbiB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjM2Y1MWI1IGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjM2Y1MWI1ICFpbXBvcnRhbnQ7XG59XG4udWkuYmFzaWMuYmx1ZS5idXR0b25zIC5idXR0b246aG92ZXIsXG4udWkuYmFzaWMuYmx1ZS5idXR0b246aG92ZXIge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggIzMzNDVhNyBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogIzMzNDVhNyAhaW1wb3J0YW50O1xufVxuLnVpLmJhc2ljLmJsdWUuYnV0dG9ucyAuYnV0dG9uOmZvY3VzLFxuLnVpLmJhc2ljLmJsdWUuYnV0dG9uOmZvY3VzIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICMyYjNkYTEgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICMzMzQ1YTcgIWltcG9ydGFudDtcbn1cbi51aS5iYXNpYy5ibHVlLmJ1dHRvbnMgLmFjdGl2ZS5idXR0b24sXG4udWkuYmFzaWMuYmx1ZS5hY3RpdmUuYnV0dG9uIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICMzMDQzYWEgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICMzMjQwOGYgIWltcG9ydGFudDtcbn1cbi51aS5iYXNpYy5ibHVlLmJ1dHRvbnMgLmJ1dHRvbjphY3RpdmUsXG4udWkuYmFzaWMuYmx1ZS5idXR0b246YWN0aXZlIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICMzMjQwOGYgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICMzMjQwOGYgIWltcG9ydGFudDtcbn1cbi51aS5idXR0b25zOm5vdCgudmVydGljYWwpID4gLmJhc2ljLmJsdWUuYnV0dG9uOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgbWFyZ2luLWxlZnQ6IC0xcHg7XG59XG4vKiBJbnZlcnRlZCAqL1xuLnVpLmludmVydGVkLmJsdWUuYnV0dG9ucyAuYnV0dG9uLFxuLnVpLmludmVydGVkLmJsdWUuYnV0dG9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDJweCAjNTRDOEZGIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjNTRDOEZGO1xufVxuLnVpLmludmVydGVkLmJsdWUuYnV0dG9ucyAuYnV0dG9uOmhvdmVyLFxuLnVpLmludmVydGVkLmJsdWUuYnV0dG9uOmhvdmVyLFxuLnVpLmludmVydGVkLmJsdWUuYnV0dG9ucyAuYnV0dG9uOmZvY3VzLFxuLnVpLmludmVydGVkLmJsdWUuYnV0dG9uOmZvY3VzLFxuLnVpLmludmVydGVkLmJsdWUuYnV0dG9ucyAuYnV0dG9uLmFjdGl2ZSxcbi51aS5pbnZlcnRlZC5ibHVlLmJ1dHRvbi5hY3RpdmUsXG4udWkuaW52ZXJ0ZWQuYmx1ZS5idXR0b25zIC5idXR0b246YWN0aXZlLFxuLnVpLmludmVydGVkLmJsdWUuYnV0dG9uOmFjdGl2ZSB7XG4gIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgY29sb3I6ICNmZmZmZmY7XG59XG4udWkuaW52ZXJ0ZWQuYmx1ZS5idXR0b25zIC5idXR0b246aG92ZXIsXG4udWkuaW52ZXJ0ZWQuYmx1ZS5idXR0b246aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjM2FjMGZmO1xufVxuLnVpLmludmVydGVkLmJsdWUuYnV0dG9ucyAuYnV0dG9uOmZvY3VzLFxuLnVpLmludmVydGVkLmJsdWUuYnV0dG9uOmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzJiYmJmZjtcbn1cbi51aS5pbnZlcnRlZC5ibHVlLmJ1dHRvbnMgLmFjdGl2ZS5idXR0b24sXG4udWkuaW52ZXJ0ZWQuYmx1ZS5hY3RpdmUuYnV0dG9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzNhYzBmZjtcbn1cbi51aS5pbnZlcnRlZC5ibHVlLmJ1dHRvbnMgLmJ1dHRvbjphY3RpdmUsXG4udWkuaW52ZXJ0ZWQuYmx1ZS5idXR0b246YWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzIxYjhmZjtcbn1cbi8qIEludmVydGVkIEJhc2ljICovXG4udWkuaW52ZXJ0ZWQuYmx1ZS5iYXNpYy5idXR0b25zIC5idXR0b24sXG4udWkuaW52ZXJ0ZWQuYmx1ZS5idXR0b25zIC5iYXNpYy5idXR0b24sXG4udWkuaW52ZXJ0ZWQuYmx1ZS5iYXNpYy5idXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMnB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KSBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xufVxuLnVpLmludmVydGVkLmJsdWUuYmFzaWMuYnV0dG9ucyAuYnV0dG9uOmhvdmVyLFxuLnVpLmludmVydGVkLmJsdWUuYnV0dG9ucyAuYmFzaWMuYnV0dG9uOmhvdmVyLFxuLnVpLmludmVydGVkLmJsdWUuYmFzaWMuYnV0dG9uOmhvdmVyIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMnB4ICMzYWMwZmYgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICM1NEM4RkYgIWltcG9ydGFudDtcbn1cbi51aS5pbnZlcnRlZC5ibHVlLmJhc2ljLmJ1dHRvbnMgLmJ1dHRvbjpmb2N1cyxcbi51aS5pbnZlcnRlZC5ibHVlLmJhc2ljLmJ1dHRvbnMgLmJ1dHRvbjpmb2N1cyxcbi51aS5pbnZlcnRlZC5ibHVlLmJhc2ljLmJ1dHRvbjpmb2N1cyB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDJweCAjMmJiYmZmIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjNTRDOEZGICFpbXBvcnRhbnQ7XG59XG4udWkuaW52ZXJ0ZWQuYmx1ZS5iYXNpYy5idXR0b25zIC5hY3RpdmUuYnV0dG9uLFxuLnVpLmludmVydGVkLmJsdWUuYnV0dG9ucyAuYmFzaWMuYWN0aXZlLmJ1dHRvbixcbi51aS5pbnZlcnRlZC5ibHVlLmJhc2ljLmFjdGl2ZS5idXR0b24ge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAycHggIzNhYzBmZiBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogIzU0QzhGRiAhaW1wb3J0YW50O1xufVxuLnVpLmludmVydGVkLmJsdWUuYmFzaWMuYnV0dG9ucyAuYnV0dG9uOmFjdGl2ZSxcbi51aS5pbnZlcnRlZC5ibHVlLmJ1dHRvbnMgLmJhc2ljLmJ1dHRvbjphY3RpdmUsXG4udWkuaW52ZXJ0ZWQuYmx1ZS5iYXNpYy5idXR0b246YWN0aXZlIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMnB4ICMyMWI4ZmYgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICM1NEM4RkYgIWltcG9ydGFudDtcbn1cbi8qLS0tIEdyZWVuIC0tLSovXG4udWkuZ3JlZW4uYnV0dG9ucyAuYnV0dG9uLFxuLnVpLmdyZWVuLmJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxOWE1MzE7XG4gIGNvbG9yOiAjZmZmZmZmO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbiAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbn1cbi51aS5ncmVlbi5idXR0b24ge1xuICBib3gtc2hhZG93OiAwcHggMGVtIDBweCAwcHggcmdiYSgzNCwgMzYsIDM4LCAwLjE1KSBpbnNldDtcbn1cbi51aS5ncmVlbi5idXR0b25zIC5idXR0b246aG92ZXIsXG4udWkuZ3JlZW4uYnV0dG9uOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzEwOTUyNjtcbiAgY29sb3I6ICNmZmZmZmY7XG4gIHRleHQtc2hhZG93OiBub25lO1xufVxuLnVpLmdyZWVuLmJ1dHRvbnMgLmJ1dHRvbjpmb2N1cyxcbi51aS5ncmVlbi5idXR0b246Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDk4ZDFmO1xuICBjb2xvcjogI2ZmZmZmZjtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG59XG4udWkuZ3JlZW4uYnV0dG9ucyAuYnV0dG9uOmFjdGl2ZSxcbi51aS5ncmVlbi5idXR0b246YWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzEyNzkyNDtcbiAgY29sb3I6ICNmZmZmZmY7XG4gIHRleHQtc2hhZG93OiBub25lO1xufVxuLnVpLmdyZWVuLmJ1dHRvbnMgLmFjdGl2ZS5idXR0b24sXG4udWkuZ3JlZW4uYnV0dG9ucyAuYWN0aXZlLmJ1dHRvbjphY3RpdmUsXG4udWkuZ3JlZW4uYWN0aXZlLmJ1dHRvbixcbi51aS5ncmVlbi5idXR0b24gLmFjdGl2ZS5idXR0b246YWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzBkOTgyNDtcbiAgY29sb3I6ICNmZmZmZmY7XG4gIHRleHQtc2hhZG93OiBub25lO1xufVxuLyogQmFzaWMgKi9cbi51aS5iYXNpYy5ncmVlbi5idXR0b25zIC5idXR0b24sXG4udWkuYmFzaWMuZ3JlZW4uYnV0dG9uIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICMxOWE1MzEgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICMxOWE1MzEgIWltcG9ydGFudDtcbn1cbi51aS5iYXNpYy5ncmVlbi5idXR0b25zIC5idXR0b246aG92ZXIsXG4udWkuYmFzaWMuZ3JlZW4uYnV0dG9uOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICMxMDk1MjYgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICMxMDk1MjYgIWltcG9ydGFudDtcbn1cbi51aS5iYXNpYy5ncmVlbi5idXR0b25zIC5idXR0b246Zm9jdXMsXG4udWkuYmFzaWMuZ3JlZW4uYnV0dG9uOmZvY3VzIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICMwOThkMWYgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICMxMDk1MjYgIWltcG9ydGFudDtcbn1cbi51aS5iYXNpYy5ncmVlbi5idXR0b25zIC5hY3RpdmUuYnV0dG9uLFxuLnVpLmJhc2ljLmdyZWVuLmFjdGl2ZS5idXR0b24ge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggIzBkOTgyNCBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogIzEyNzkyNCAhaW1wb3J0YW50O1xufVxuLnVpLmJhc2ljLmdyZWVuLmJ1dHRvbnMgLmJ1dHRvbjphY3RpdmUsXG4udWkuYmFzaWMuZ3JlZW4uYnV0dG9uOmFjdGl2ZSB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjMTI3OTI0IGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjMTI3OTI0ICFpbXBvcnRhbnQ7XG59XG4udWkuYnV0dG9uczpub3QoLnZlcnRpY2FsKSA+IC5iYXNpYy5ncmVlbi5idXR0b246bm90KDpmaXJzdC1jaGlsZCkge1xuICBtYXJnaW4tbGVmdDogLTFweDtcbn1cbi8qIEludmVydGVkICovXG4udWkuaW52ZXJ0ZWQuZ3JlZW4uYnV0dG9ucyAuYnV0dG9uLFxuLnVpLmludmVydGVkLmdyZWVuLmJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAycHggIzJFQ0M0MCBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogIzJFQ0M0MDtcbn1cbi51aS5pbnZlcnRlZC5ncmVlbi5idXR0b25zIC5idXR0b246aG92ZXIsXG4udWkuaW52ZXJ0ZWQuZ3JlZW4uYnV0dG9uOmhvdmVyLFxuLnVpLmludmVydGVkLmdyZWVuLmJ1dHRvbnMgLmJ1dHRvbjpmb2N1cyxcbi51aS5pbnZlcnRlZC5ncmVlbi5idXR0b246Zm9jdXMsXG4udWkuaW52ZXJ0ZWQuZ3JlZW4uYnV0dG9ucyAuYnV0dG9uLmFjdGl2ZSxcbi51aS5pbnZlcnRlZC5ncmVlbi5idXR0b24uYWN0aXZlLFxuLnVpLmludmVydGVkLmdyZWVuLmJ1dHRvbnMgLmJ1dHRvbjphY3RpdmUsXG4udWkuaW52ZXJ0ZWQuZ3JlZW4uYnV0dG9uOmFjdGl2ZSB7XG4gIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgY29sb3I6ICNmZmZmZmY7XG59XG4udWkuaW52ZXJ0ZWQuZ3JlZW4uYnV0dG9ucyAuYnV0dG9uOmhvdmVyLFxuLnVpLmludmVydGVkLmdyZWVuLmJ1dHRvbjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyMmJlMzQ7XG59XG4udWkuaW52ZXJ0ZWQuZ3JlZW4uYnV0dG9ucyAuYnV0dG9uOmZvY3VzLFxuLnVpLmludmVydGVkLmdyZWVuLmJ1dHRvbjpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxOWI4MmI7XG59XG4udWkuaW52ZXJ0ZWQuZ3JlZW4uYnV0dG9ucyAuYWN0aXZlLmJ1dHRvbixcbi51aS5pbnZlcnRlZC5ncmVlbi5hY3RpdmUuYnV0dG9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzFmYzIzMTtcbn1cbi51aS5pbnZlcnRlZC5ncmVlbi5idXR0b25zIC5idXR0b246YWN0aXZlLFxuLnVpLmludmVydGVkLmdyZWVuLmJ1dHRvbjphY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjVhMjMzO1xufVxuLyogSW52ZXJ0ZWQgQmFzaWMgKi9cbi51aS5pbnZlcnRlZC5ncmVlbi5iYXNpYy5idXR0b25zIC5idXR0b24sXG4udWkuaW52ZXJ0ZWQuZ3JlZW4uYnV0dG9ucyAuYmFzaWMuYnV0dG9uLFxuLnVpLmludmVydGVkLmdyZWVuLmJhc2ljLmJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAycHggcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG59XG4udWkuaW52ZXJ0ZWQuZ3JlZW4uYmFzaWMuYnV0dG9ucyAuYnV0dG9uOmhvdmVyLFxuLnVpLmludmVydGVkLmdyZWVuLmJ1dHRvbnMgLmJhc2ljLmJ1dHRvbjpob3Zlcixcbi51aS5pbnZlcnRlZC5ncmVlbi5iYXNpYy5idXR0b246aG92ZXIge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAycHggIzIyYmUzNCBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogIzJFQ0M0MCAhaW1wb3J0YW50O1xufVxuLnVpLmludmVydGVkLmdyZWVuLmJhc2ljLmJ1dHRvbnMgLmJ1dHRvbjpmb2N1cyxcbi51aS5pbnZlcnRlZC5ncmVlbi5iYXNpYy5idXR0b25zIC5idXR0b246Zm9jdXMsXG4udWkuaW52ZXJ0ZWQuZ3JlZW4uYmFzaWMuYnV0dG9uOmZvY3VzIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMnB4ICMxOWI4MmIgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICMyRUNDNDAgIWltcG9ydGFudDtcbn1cbi51aS5pbnZlcnRlZC5ncmVlbi5iYXNpYy5idXR0b25zIC5hY3RpdmUuYnV0dG9uLFxuLnVpLmludmVydGVkLmdyZWVuLmJ1dHRvbnMgLmJhc2ljLmFjdGl2ZS5idXR0b24sXG4udWkuaW52ZXJ0ZWQuZ3JlZW4uYmFzaWMuYWN0aXZlLmJ1dHRvbiB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDJweCAjMWZjMjMxIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjMkVDQzQwICFpbXBvcnRhbnQ7XG59XG4udWkuaW52ZXJ0ZWQuZ3JlZW4uYmFzaWMuYnV0dG9ucyAuYnV0dG9uOmFjdGl2ZSxcbi51aS5pbnZlcnRlZC5ncmVlbi5idXR0b25zIC5iYXNpYy5idXR0b246YWN0aXZlLFxuLnVpLmludmVydGVkLmdyZWVuLmJhc2ljLmJ1dHRvbjphY3RpdmUge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAycHggIzI1YTIzMyBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogIzJFQ0M0MCAhaW1wb3J0YW50O1xufVxuLyotLS0gT3JhbmdlIC0tLSovXG4udWkub3JhbmdlLmJ1dHRvbnMgLmJ1dHRvbixcbi51aS5vcmFuZ2UuYnV0dG9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmOTUzMztcbiAgY29sb3I6ICNmZmZmZmY7XG4gIHRleHQtc2hhZG93OiBub25lO1xuICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xufVxuLnVpLm9yYW5nZS5idXR0b24ge1xuICBib3gtc2hhZG93OiAwcHggMGVtIDBweCAwcHggcmdiYSgzNCwgMzYsIDM4LCAwLjE1KSBpbnNldDtcbn1cbi51aS5vcmFuZ2UuYnV0dG9ucyAuYnV0dG9uOmhvdmVyLFxuLnVpLm9yYW5nZS5idXR0b246aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmY4ODE5O1xuICBjb2xvcjogI2ZmZmZmZjtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG59XG4udWkub3JhbmdlLmJ1dHRvbnMgLmJ1dHRvbjpmb2N1cyxcbi51aS5vcmFuZ2UuYnV0dG9uOmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmODAwYTtcbiAgY29sb3I6ICNmZmZmZmY7XG4gIHRleHQtc2hhZG93OiBub25lO1xufVxuLnVpLm9yYW5nZS5idXR0b25zIC5idXR0b246YWN0aXZlLFxuLnVpLm9yYW5nZS5idXR0b246YWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmN2IwMDtcbiAgY29sb3I6ICNmZmZmZmY7XG4gIHRleHQtc2hhZG93OiBub25lO1xufVxuLnVpLm9yYW5nZS5idXR0b25zIC5hY3RpdmUuYnV0dG9uLFxuLnVpLm9yYW5nZS5idXR0b25zIC5hY3RpdmUuYnV0dG9uOmFjdGl2ZSxcbi51aS5vcmFuZ2UuYWN0aXZlLmJ1dHRvbixcbi51aS5vcmFuZ2UuYnV0dG9uIC5hY3RpdmUuYnV0dG9uOmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZjg4MTk7XG4gIGNvbG9yOiAjZmZmZmZmO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbn1cbi8qIEJhc2ljICovXG4udWkuYmFzaWMub3JhbmdlLmJ1dHRvbnMgLmJ1dHRvbixcbi51aS5iYXNpYy5vcmFuZ2UuYnV0dG9uIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICNmZjk1MzMgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICNmZjk1MzMgIWltcG9ydGFudDtcbn1cbi51aS5iYXNpYy5vcmFuZ2UuYnV0dG9ucyAuYnV0dG9uOmhvdmVyLFxuLnVpLmJhc2ljLm9yYW5nZS5idXR0b246aG92ZXIge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggI2ZmODgxOSBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogI2ZmODgxOSAhaW1wb3J0YW50O1xufVxuLnVpLmJhc2ljLm9yYW5nZS5idXR0b25zIC5idXR0b246Zm9jdXMsXG4udWkuYmFzaWMub3JhbmdlLmJ1dHRvbjpmb2N1cyB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjZmY4MDBhIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjZmY4ODE5ICFpbXBvcnRhbnQ7XG59XG4udWkuYmFzaWMub3JhbmdlLmJ1dHRvbnMgLmFjdGl2ZS5idXR0b24sXG4udWkuYmFzaWMub3JhbmdlLmFjdGl2ZS5idXR0b24ge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggI2ZmODgxOSBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogI2ZmN2IwMCAhaW1wb3J0YW50O1xufVxuLnVpLmJhc2ljLm9yYW5nZS5idXR0b25zIC5idXR0b246YWN0aXZlLFxuLnVpLmJhc2ljLm9yYW5nZS5idXR0b246YWN0aXZlIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICNmZjdiMDAgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICNmZjdiMDAgIWltcG9ydGFudDtcbn1cbi51aS5idXR0b25zOm5vdCgudmVydGljYWwpID4gLmJhc2ljLm9yYW5nZS5idXR0b246bm90KDpmaXJzdC1jaGlsZCkge1xuICBtYXJnaW4tbGVmdDogLTFweDtcbn1cbi8qIEludmVydGVkICovXG4udWkuaW52ZXJ0ZWQub3JhbmdlLmJ1dHRvbnMgLmJ1dHRvbixcbi51aS5pbnZlcnRlZC5vcmFuZ2UuYnV0dG9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDJweCAjRkY4NTFCIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRkY4NTFCO1xufVxuLnVpLmludmVydGVkLm9yYW5nZS5idXR0b25zIC5idXR0b246aG92ZXIsXG4udWkuaW52ZXJ0ZWQub3JhbmdlLmJ1dHRvbjpob3Zlcixcbi51aS5pbnZlcnRlZC5vcmFuZ2UuYnV0dG9ucyAuYnV0dG9uOmZvY3VzLFxuLnVpLmludmVydGVkLm9yYW5nZS5idXR0b246Zm9jdXMsXG4udWkuaW52ZXJ0ZWQub3JhbmdlLmJ1dHRvbnMgLmJ1dHRvbi5hY3RpdmUsXG4udWkuaW52ZXJ0ZWQub3JhbmdlLmJ1dHRvbi5hY3RpdmUsXG4udWkuaW52ZXJ0ZWQub3JhbmdlLmJ1dHRvbnMgLmJ1dHRvbjphY3RpdmUsXG4udWkuaW52ZXJ0ZWQub3JhbmdlLmJ1dHRvbjphY3RpdmUge1xuICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjZmZmZmZmO1xufVxuLnVpLmludmVydGVkLm9yYW5nZS5idXR0b25zIC5idXR0b246aG92ZXIsXG4udWkuaW52ZXJ0ZWQub3JhbmdlLmJ1dHRvbjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZjc3MDE7XG59XG4udWkuaW52ZXJ0ZWQub3JhbmdlLmJ1dHRvbnMgLmJ1dHRvbjpmb2N1cyxcbi51aS5pbnZlcnRlZC5vcmFuZ2UuYnV0dG9uOmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2YxNzAwMDtcbn1cbi51aS5pbnZlcnRlZC5vcmFuZ2UuYnV0dG9ucyAuYWN0aXZlLmJ1dHRvbixcbi51aS5pbnZlcnRlZC5vcmFuZ2UuYWN0aXZlLmJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZjc3MDE7XG59XG4udWkuaW52ZXJ0ZWQub3JhbmdlLmJ1dHRvbnMgLmJ1dHRvbjphY3RpdmUsXG4udWkuaW52ZXJ0ZWQub3JhbmdlLmJ1dHRvbjphY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTc2YjAwO1xufVxuLyogSW52ZXJ0ZWQgQmFzaWMgKi9cbi51aS5pbnZlcnRlZC5vcmFuZ2UuYmFzaWMuYnV0dG9ucyAuYnV0dG9uLFxuLnVpLmludmVydGVkLm9yYW5nZS5idXR0b25zIC5iYXNpYy5idXR0b24sXG4udWkuaW52ZXJ0ZWQub3JhbmdlLmJhc2ljLmJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAycHggcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG59XG4udWkuaW52ZXJ0ZWQub3JhbmdlLmJhc2ljLmJ1dHRvbnMgLmJ1dHRvbjpob3Zlcixcbi51aS5pbnZlcnRlZC5vcmFuZ2UuYnV0dG9ucyAuYmFzaWMuYnV0dG9uOmhvdmVyLFxuLnVpLmludmVydGVkLm9yYW5nZS5iYXNpYy5idXR0b246aG92ZXIge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAycHggI2ZmNzcwMSBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogI0ZGODUxQiAhaW1wb3J0YW50O1xufVxuLnVpLmludmVydGVkLm9yYW5nZS5iYXNpYy5idXR0b25zIC5idXR0b246Zm9jdXMsXG4udWkuaW52ZXJ0ZWQub3JhbmdlLmJhc2ljLmJ1dHRvbnMgLmJ1dHRvbjpmb2N1cyxcbi51aS5pbnZlcnRlZC5vcmFuZ2UuYmFzaWMuYnV0dG9uOmZvY3VzIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMnB4ICNmMTcwMDAgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICNGRjg1MUIgIWltcG9ydGFudDtcbn1cbi51aS5pbnZlcnRlZC5vcmFuZ2UuYmFzaWMuYnV0dG9ucyAuYWN0aXZlLmJ1dHRvbixcbi51aS5pbnZlcnRlZC5vcmFuZ2UuYnV0dG9ucyAuYmFzaWMuYWN0aXZlLmJ1dHRvbixcbi51aS5pbnZlcnRlZC5vcmFuZ2UuYmFzaWMuYWN0aXZlLmJ1dHRvbiB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDJweCAjZmY3NzAxIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRkY4NTFCICFpbXBvcnRhbnQ7XG59XG4udWkuaW52ZXJ0ZWQub3JhbmdlLmJhc2ljLmJ1dHRvbnMgLmJ1dHRvbjphY3RpdmUsXG4udWkuaW52ZXJ0ZWQub3JhbmdlLmJ1dHRvbnMgLmJhc2ljLmJ1dHRvbjphY3RpdmUsXG4udWkuaW52ZXJ0ZWQub3JhbmdlLmJhc2ljLmJ1dHRvbjphY3RpdmUge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAycHggI2U3NmIwMCBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogI0ZGODUxQiAhaW1wb3J0YW50O1xufVxuLyotLS0gUGluayAtLS0qL1xuLnVpLnBpbmsuYnV0dG9ucyAuYnV0dG9uLFxuLnVpLnBpbmsuYnV0dG9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0UwMzk5NztcbiAgY29sb3I6ICNmZmZmZmY7XG4gIHRleHQtc2hhZG93OiBub25lO1xuICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xufVxuLnVpLnBpbmsuYnV0dG9uIHtcbiAgYm94LXNoYWRvdzogMHB4IDBlbSAwcHggMHB4IHJnYmEoMzQsIDM2LCAzOCwgMC4xNSkgaW5zZXQ7XG59XG4udWkucGluay5idXR0b25zIC5idXR0b246aG92ZXIsXG4udWkucGluay5idXR0b246aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTYxYThkO1xuICBjb2xvcjogI2ZmZmZmZjtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG59XG4udWkucGluay5idXR0b25zIC5idXR0b246Zm9jdXMsXG4udWkucGluay5idXR0b246Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTEwZjg1O1xuICBjb2xvcjogI2ZmZmZmZjtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG59XG4udWkucGluay5idXR0b25zIC5idXR0b246YWN0aXZlLFxuLnVpLnBpbmsuYnV0dG9uOmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNjNzFmN2U7XG4gIGNvbG9yOiAjZmZmZmZmO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbn1cbi51aS5waW5rLmJ1dHRvbnMgLmFjdGl2ZS5idXR0b24sXG4udWkucGluay5idXR0b25zIC5hY3RpdmUuYnV0dG9uOmFjdGl2ZSxcbi51aS5waW5rLmFjdGl2ZS5idXR0b24sXG4udWkucGluay5idXR0b24gLmFjdGl2ZS5idXR0b246YWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2VhMTU4ZDtcbiAgY29sb3I6ICNmZmZmZmY7XG4gIHRleHQtc2hhZG93OiBub25lO1xufVxuLyogQmFzaWMgKi9cbi51aS5iYXNpYy5waW5rLmJ1dHRvbnMgLmJ1dHRvbixcbi51aS5iYXNpYy5waW5rLmJ1dHRvbiB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjRTAzOTk3IGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRTAzOTk3ICFpbXBvcnRhbnQ7XG59XG4udWkuYmFzaWMucGluay5idXR0b25zIC5idXR0b246aG92ZXIsXG4udWkuYmFzaWMucGluay5idXR0b246aG92ZXIge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggI2U2MWE4ZCBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogI2U2MWE4ZCAhaW1wb3J0YW50O1xufVxuLnVpLmJhc2ljLnBpbmsuYnV0dG9ucyAuYnV0dG9uOmZvY3VzLFxuLnVpLmJhc2ljLnBpbmsuYnV0dG9uOmZvY3VzIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICNlMTBmODUgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICNlNjFhOGQgIWltcG9ydGFudDtcbn1cbi51aS5iYXNpYy5waW5rLmJ1dHRvbnMgLmFjdGl2ZS5idXR0b24sXG4udWkuYmFzaWMucGluay5hY3RpdmUuYnV0dG9uIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICNlYTE1OGQgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICNjNzFmN2UgIWltcG9ydGFudDtcbn1cbi51aS5iYXNpYy5waW5rLmJ1dHRvbnMgLmJ1dHRvbjphY3RpdmUsXG4udWkuYmFzaWMucGluay5idXR0b246YWN0aXZlIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICNjNzFmN2UgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICNjNzFmN2UgIWltcG9ydGFudDtcbn1cbi51aS5idXR0b25zOm5vdCgudmVydGljYWwpID4gLmJhc2ljLnBpbmsuYnV0dG9uOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgbWFyZ2luLWxlZnQ6IC0xcHg7XG59XG4vKiBJbnZlcnRlZCAqL1xuLnVpLmludmVydGVkLnBpbmsuYnV0dG9ucyAuYnV0dG9uLFxuLnVpLmludmVydGVkLnBpbmsuYnV0dG9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDJweCAjRkY4RURGIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRkY4RURGO1xufVxuLnVpLmludmVydGVkLnBpbmsuYnV0dG9ucyAuYnV0dG9uOmhvdmVyLFxuLnVpLmludmVydGVkLnBpbmsuYnV0dG9uOmhvdmVyLFxuLnVpLmludmVydGVkLnBpbmsuYnV0dG9ucyAuYnV0dG9uOmZvY3VzLFxuLnVpLmludmVydGVkLnBpbmsuYnV0dG9uOmZvY3VzLFxuLnVpLmludmVydGVkLnBpbmsuYnV0dG9ucyAuYnV0dG9uLmFjdGl2ZSxcbi51aS5pbnZlcnRlZC5waW5rLmJ1dHRvbi5hY3RpdmUsXG4udWkuaW52ZXJ0ZWQucGluay5idXR0b25zIC5idXR0b246YWN0aXZlLFxuLnVpLmludmVydGVkLnBpbmsuYnV0dG9uOmFjdGl2ZSB7XG4gIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgY29sb3I6ICNmZmZmZmY7XG59XG4udWkuaW52ZXJ0ZWQucGluay5idXR0b25zIC5idXR0b246aG92ZXIsXG4udWkuaW52ZXJ0ZWQucGluay5idXR0b246aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmY3NGQ4O1xufVxuLnVpLmludmVydGVkLnBpbmsuYnV0dG9ucyAuYnV0dG9uOmZvY3VzLFxuLnVpLmludmVydGVkLnBpbmsuYnV0dG9uOmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmNjVkMztcbn1cbi51aS5pbnZlcnRlZC5waW5rLmJ1dHRvbnMgLmFjdGl2ZS5idXR0b24sXG4udWkuaW52ZXJ0ZWQucGluay5hY3RpdmUuYnV0dG9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmNzRkODtcbn1cbi51aS5pbnZlcnRlZC5waW5rLmJ1dHRvbnMgLmJ1dHRvbjphY3RpdmUsXG4udWkuaW52ZXJ0ZWQucGluay5idXR0b246YWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmNWJkMTtcbn1cbi8qIEludmVydGVkIEJhc2ljICovXG4udWkuaW52ZXJ0ZWQucGluay5iYXNpYy5idXR0b25zIC5idXR0b24sXG4udWkuaW52ZXJ0ZWQucGluay5idXR0b25zIC5iYXNpYy5idXR0b24sXG4udWkuaW52ZXJ0ZWQucGluay5iYXNpYy5idXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMnB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KSBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xufVxuLnVpLmludmVydGVkLnBpbmsuYmFzaWMuYnV0dG9ucyAuYnV0dG9uOmhvdmVyLFxuLnVpLmludmVydGVkLnBpbmsuYnV0dG9ucyAuYmFzaWMuYnV0dG9uOmhvdmVyLFxuLnVpLmludmVydGVkLnBpbmsuYmFzaWMuYnV0dG9uOmhvdmVyIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMnB4ICNmZjc0ZDggaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICNGRjhFREYgIWltcG9ydGFudDtcbn1cbi51aS5pbnZlcnRlZC5waW5rLmJhc2ljLmJ1dHRvbnMgLmJ1dHRvbjpmb2N1cyxcbi51aS5pbnZlcnRlZC5waW5rLmJhc2ljLmJ1dHRvbnMgLmJ1dHRvbjpmb2N1cyxcbi51aS5pbnZlcnRlZC5waW5rLmJhc2ljLmJ1dHRvbjpmb2N1cyB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDJweCAjZmY2NWQzIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRkY4RURGICFpbXBvcnRhbnQ7XG59XG4udWkuaW52ZXJ0ZWQucGluay5iYXNpYy5idXR0b25zIC5hY3RpdmUuYnV0dG9uLFxuLnVpLmludmVydGVkLnBpbmsuYnV0dG9ucyAuYmFzaWMuYWN0aXZlLmJ1dHRvbixcbi51aS5pbnZlcnRlZC5waW5rLmJhc2ljLmFjdGl2ZS5idXR0b24ge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAycHggI2ZmNzRkOCBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogI0ZGOEVERiAhaW1wb3J0YW50O1xufVxuLnVpLmludmVydGVkLnBpbmsuYmFzaWMuYnV0dG9ucyAuYnV0dG9uOmFjdGl2ZSxcbi51aS5pbnZlcnRlZC5waW5rLmJ1dHRvbnMgLmJhc2ljLmJ1dHRvbjphY3RpdmUsXG4udWkuaW52ZXJ0ZWQucGluay5iYXNpYy5idXR0b246YWN0aXZlIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMnB4ICNmZjViZDEgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICNGRjhFREYgIWltcG9ydGFudDtcbn1cbi8qLS0tIFZpb2xldCAtLS0qL1xuLnVpLnZpb2xldC5idXR0b25zIC5idXR0b24sXG4udWkudmlvbGV0LmJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM2NDM1Qzk7XG4gIGNvbG9yOiAjZmZmZmZmO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbiAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbn1cbi51aS52aW9sZXQuYnV0dG9uIHtcbiAgYm94LXNoYWRvdzogMHB4IDBlbSAwcHggMHB4IHJnYmEoMzQsIDM2LCAzOCwgMC4xNSkgaW5zZXQ7XG59XG4udWkudmlvbGV0LmJ1dHRvbnMgLmJ1dHRvbjpob3Zlcixcbi51aS52aW9sZXQuYnV0dG9uOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzU4MjliYjtcbiAgY29sb3I6ICNmZmZmZmY7XG4gIHRleHQtc2hhZG93OiBub25lO1xufVxuLnVpLnZpb2xldC5idXR0b25zIC5idXR0b246Zm9jdXMsXG4udWkudmlvbGV0LmJ1dHRvbjpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0ZjIwYjU7XG4gIGNvbG9yOiAjZmZmZmZmO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbn1cbi51aS52aW9sZXQuYnV0dG9ucyAuYnV0dG9uOmFjdGl2ZSxcbi51aS52aW9sZXQuYnV0dG9uOmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM1MDJhYTE7XG4gIGNvbG9yOiAjZmZmZmZmO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbn1cbi51aS52aW9sZXQuYnV0dG9ucyAuYWN0aXZlLmJ1dHRvbixcbi51aS52aW9sZXQuYnV0dG9ucyAuYWN0aXZlLmJ1dHRvbjphY3RpdmUsXG4udWkudmlvbGV0LmFjdGl2ZS5idXR0b24sXG4udWkudmlvbGV0LmJ1dHRvbiAuYWN0aXZlLmJ1dHRvbjphY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTYyNmJmO1xuICBjb2xvcjogI2ZmZmZmZjtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG59XG4vKiBCYXNpYyAqL1xuLnVpLmJhc2ljLnZpb2xldC5idXR0b25zIC5idXR0b24sXG4udWkuYmFzaWMudmlvbGV0LmJ1dHRvbiB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjNjQzNUM5IGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjNjQzNUM5ICFpbXBvcnRhbnQ7XG59XG4udWkuYmFzaWMudmlvbGV0LmJ1dHRvbnMgLmJ1dHRvbjpob3Zlcixcbi51aS5iYXNpYy52aW9sZXQuYnV0dG9uOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICM1ODI5YmIgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICM1ODI5YmIgIWltcG9ydGFudDtcbn1cbi51aS5iYXNpYy52aW9sZXQuYnV0dG9ucyAuYnV0dG9uOmZvY3VzLFxuLnVpLmJhc2ljLnZpb2xldC5idXR0b246Zm9jdXMge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggIzRmMjBiNSBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogIzU4MjliYiAhaW1wb3J0YW50O1xufVxuLnVpLmJhc2ljLnZpb2xldC5idXR0b25zIC5hY3RpdmUuYnV0dG9uLFxuLnVpLmJhc2ljLnZpb2xldC5hY3RpdmUuYnV0dG9uIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICM1NjI2YmYgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICM1MDJhYTEgIWltcG9ydGFudDtcbn1cbi51aS5iYXNpYy52aW9sZXQuYnV0dG9ucyAuYnV0dG9uOmFjdGl2ZSxcbi51aS5iYXNpYy52aW9sZXQuYnV0dG9uOmFjdGl2ZSB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjNTAyYWExIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjNTAyYWExICFpbXBvcnRhbnQ7XG59XG4udWkuYnV0dG9uczpub3QoLnZlcnRpY2FsKSA+IC5iYXNpYy52aW9sZXQuYnV0dG9uOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgbWFyZ2luLWxlZnQ6IC0xcHg7XG59XG4vKiBJbnZlcnRlZCAqL1xuLnVpLmludmVydGVkLnZpb2xldC5idXR0b25zIC5idXR0b24sXG4udWkuaW52ZXJ0ZWQudmlvbGV0LmJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAycHggI0EyOTFGQiBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogI0EyOTFGQjtcbn1cbi51aS5pbnZlcnRlZC52aW9sZXQuYnV0dG9ucyAuYnV0dG9uOmhvdmVyLFxuLnVpLmludmVydGVkLnZpb2xldC5idXR0b246aG92ZXIsXG4udWkuaW52ZXJ0ZWQudmlvbGV0LmJ1dHRvbnMgLmJ1dHRvbjpmb2N1cyxcbi51aS5pbnZlcnRlZC52aW9sZXQuYnV0dG9uOmZvY3VzLFxuLnVpLmludmVydGVkLnZpb2xldC5idXR0b25zIC5idXR0b24uYWN0aXZlLFxuLnVpLmludmVydGVkLnZpb2xldC5idXR0b24uYWN0aXZlLFxuLnVpLmludmVydGVkLnZpb2xldC5idXR0b25zIC5idXR0b246YWN0aXZlLFxuLnVpLmludmVydGVkLnZpb2xldC5idXR0b246YWN0aXZlIHtcbiAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICBjb2xvcjogI2ZmZmZmZjtcbn1cbi51aS5pbnZlcnRlZC52aW9sZXQuYnV0dG9ucyAuYnV0dG9uOmhvdmVyLFxuLnVpLmludmVydGVkLnZpb2xldC5idXR0b246aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOGE3M2ZmO1xufVxuLnVpLmludmVydGVkLnZpb2xldC5idXR0b25zIC5idXR0b246Zm9jdXMsXG4udWkuaW52ZXJ0ZWQudmlvbGV0LmJ1dHRvbjpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM3ZDY0ZmY7XG59XG4udWkuaW52ZXJ0ZWQudmlvbGV0LmJ1dHRvbnMgLmFjdGl2ZS5idXR0b24sXG4udWkuaW52ZXJ0ZWQudmlvbGV0LmFjdGl2ZS5idXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOGE3M2ZmO1xufVxuLnVpLmludmVydGVkLnZpb2xldC5idXR0b25zIC5idXR0b246YWN0aXZlLFxuLnVpLmludmVydGVkLnZpb2xldC5idXR0b246YWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzc4NjBmOTtcbn1cbi8qIEludmVydGVkIEJhc2ljICovXG4udWkuaW52ZXJ0ZWQudmlvbGV0LmJhc2ljLmJ1dHRvbnMgLmJ1dHRvbixcbi51aS5pbnZlcnRlZC52aW9sZXQuYnV0dG9ucyAuYmFzaWMuYnV0dG9uLFxuLnVpLmludmVydGVkLnZpb2xldC5iYXNpYy5idXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMnB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KSBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xufVxuLnVpLmludmVydGVkLnZpb2xldC5iYXNpYy5idXR0b25zIC5idXR0b246aG92ZXIsXG4udWkuaW52ZXJ0ZWQudmlvbGV0LmJ1dHRvbnMgLmJhc2ljLmJ1dHRvbjpob3Zlcixcbi51aS5pbnZlcnRlZC52aW9sZXQuYmFzaWMuYnV0dG9uOmhvdmVyIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMnB4ICM4YTczZmYgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICNBMjkxRkIgIWltcG9ydGFudDtcbn1cbi51aS5pbnZlcnRlZC52aW9sZXQuYmFzaWMuYnV0dG9ucyAuYnV0dG9uOmZvY3VzLFxuLnVpLmludmVydGVkLnZpb2xldC5iYXNpYy5idXR0b25zIC5idXR0b246Zm9jdXMsXG4udWkuaW52ZXJ0ZWQudmlvbGV0LmJhc2ljLmJ1dHRvbjpmb2N1cyB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDJweCAjN2Q2NGZmIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjQTI5MUZCICFpbXBvcnRhbnQ7XG59XG4udWkuaW52ZXJ0ZWQudmlvbGV0LmJhc2ljLmJ1dHRvbnMgLmFjdGl2ZS5idXR0b24sXG4udWkuaW52ZXJ0ZWQudmlvbGV0LmJ1dHRvbnMgLmJhc2ljLmFjdGl2ZS5idXR0b24sXG4udWkuaW52ZXJ0ZWQudmlvbGV0LmJhc2ljLmFjdGl2ZS5idXR0b24ge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAycHggIzhhNzNmZiBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogI0EyOTFGQiAhaW1wb3J0YW50O1xufVxuLnVpLmludmVydGVkLnZpb2xldC5iYXNpYy5idXR0b25zIC5idXR0b246YWN0aXZlLFxuLnVpLmludmVydGVkLnZpb2xldC5idXR0b25zIC5iYXNpYy5idXR0b246YWN0aXZlLFxuLnVpLmludmVydGVkLnZpb2xldC5iYXNpYy5idXR0b246YWN0aXZlIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMnB4ICM3ODYwZjkgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICNBMjkxRkIgIWltcG9ydGFudDtcbn1cbi8qLS0tIFB1cnBsZSAtLS0qL1xuLnVpLnB1cnBsZS5idXR0b25zIC5idXR0b24sXG4udWkucHVycGxlLmJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNBMzMzQzg7XG4gIGNvbG9yOiAjZmZmZmZmO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbiAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbn1cbi51aS5wdXJwbGUuYnV0dG9uIHtcbiAgYm94LXNoYWRvdzogMHB4IDBlbSAwcHggMHB4IHJnYmEoMzQsIDM2LCAzOCwgMC4xNSkgaW5zZXQ7XG59XG4udWkucHVycGxlLmJ1dHRvbnMgLmJ1dHRvbjpob3Zlcixcbi51aS5wdXJwbGUuYnV0dG9uOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzk2MjdiYTtcbiAgY29sb3I6ICNmZmZmZmY7XG4gIHRleHQtc2hhZG93OiBub25lO1xufVxuLnVpLnB1cnBsZS5idXR0b25zIC5idXR0b246Zm9jdXMsXG4udWkucHVycGxlLmJ1dHRvbjpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM4ZjFlYjQ7XG4gIGNvbG9yOiAjZmZmZmZmO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbn1cbi51aS5wdXJwbGUuYnV0dG9ucyAuYnV0dG9uOmFjdGl2ZSxcbi51aS5wdXJwbGUuYnV0dG9uOmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM4MjI5OWY7XG4gIGNvbG9yOiAjZmZmZmZmO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbn1cbi51aS5wdXJwbGUuYnV0dG9ucyAuYWN0aXZlLmJ1dHRvbixcbi51aS5wdXJwbGUuYnV0dG9ucyAuYWN0aXZlLmJ1dHRvbjphY3RpdmUsXG4udWkucHVycGxlLmFjdGl2ZS5idXR0b24sXG4udWkucHVycGxlLmJ1dHRvbiAuYWN0aXZlLmJ1dHRvbjphY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOTcyNGJlO1xuICBjb2xvcjogI2ZmZmZmZjtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG59XG4vKiBCYXNpYyAqL1xuLnVpLmJhc2ljLnB1cnBsZS5idXR0b25zIC5idXR0b24sXG4udWkuYmFzaWMucHVycGxlLmJ1dHRvbiB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjQTMzM0M4IGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjQTMzM0M4ICFpbXBvcnRhbnQ7XG59XG4udWkuYmFzaWMucHVycGxlLmJ1dHRvbnMgLmJ1dHRvbjpob3Zlcixcbi51aS5iYXNpYy5wdXJwbGUuYnV0dG9uOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICM5NjI3YmEgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICM5NjI3YmEgIWltcG9ydGFudDtcbn1cbi51aS5iYXNpYy5wdXJwbGUuYnV0dG9ucyAuYnV0dG9uOmZvY3VzLFxuLnVpLmJhc2ljLnB1cnBsZS5idXR0b246Zm9jdXMge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggIzhmMWViNCBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogIzk2MjdiYSAhaW1wb3J0YW50O1xufVxuLnVpLmJhc2ljLnB1cnBsZS5idXR0b25zIC5hY3RpdmUuYnV0dG9uLFxuLnVpLmJhc2ljLnB1cnBsZS5hY3RpdmUuYnV0dG9uIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICM5NzI0YmUgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICM4MjI5OWYgIWltcG9ydGFudDtcbn1cbi51aS5iYXNpYy5wdXJwbGUuYnV0dG9ucyAuYnV0dG9uOmFjdGl2ZSxcbi51aS5iYXNpYy5wdXJwbGUuYnV0dG9uOmFjdGl2ZSB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjODIyOTlmIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjODIyOTlmICFpbXBvcnRhbnQ7XG59XG4udWkuYnV0dG9uczpub3QoLnZlcnRpY2FsKSA+IC5iYXNpYy5wdXJwbGUuYnV0dG9uOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgbWFyZ2luLWxlZnQ6IC0xcHg7XG59XG4vKiBJbnZlcnRlZCAqL1xuLnVpLmludmVydGVkLnB1cnBsZS5idXR0b25zIC5idXR0b24sXG4udWkuaW52ZXJ0ZWQucHVycGxlLmJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAycHggI0RDNzNGRiBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogI0RDNzNGRjtcbn1cbi51aS5pbnZlcnRlZC5wdXJwbGUuYnV0dG9ucyAuYnV0dG9uOmhvdmVyLFxuLnVpLmludmVydGVkLnB1cnBsZS5idXR0b246aG92ZXIsXG4udWkuaW52ZXJ0ZWQucHVycGxlLmJ1dHRvbnMgLmJ1dHRvbjpmb2N1cyxcbi51aS5pbnZlcnRlZC5wdXJwbGUuYnV0dG9uOmZvY3VzLFxuLnVpLmludmVydGVkLnB1cnBsZS5idXR0b25zIC5idXR0b24uYWN0aXZlLFxuLnVpLmludmVydGVkLnB1cnBsZS5idXR0b24uYWN0aXZlLFxuLnVpLmludmVydGVkLnB1cnBsZS5idXR0b25zIC5idXR0b246YWN0aXZlLFxuLnVpLmludmVydGVkLnB1cnBsZS5idXR0b246YWN0aXZlIHtcbiAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICBjb2xvcjogI2ZmZmZmZjtcbn1cbi51aS5pbnZlcnRlZC5wdXJwbGUuYnV0dG9ucyAuYnV0dG9uOmhvdmVyLFxuLnVpLmludmVydGVkLnB1cnBsZS5idXR0b246aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZDY1YWZmO1xufVxuLnVpLmludmVydGVkLnB1cnBsZS5idXR0b25zIC5idXR0b246Zm9jdXMsXG4udWkuaW52ZXJ0ZWQucHVycGxlLmJ1dHRvbjpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkMjRhZmY7XG59XG4udWkuaW52ZXJ0ZWQucHVycGxlLmJ1dHRvbnMgLmFjdGl2ZS5idXR0b24sXG4udWkuaW52ZXJ0ZWQucHVycGxlLmFjdGl2ZS5idXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZDY1YWZmO1xufVxuLnVpLmludmVydGVkLnB1cnBsZS5idXR0b25zIC5idXR0b246YWN0aXZlLFxuLnVpLmludmVydGVkLnB1cnBsZS5idXR0b246YWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2NmNDBmZjtcbn1cbi8qIEludmVydGVkIEJhc2ljICovXG4udWkuaW52ZXJ0ZWQucHVycGxlLmJhc2ljLmJ1dHRvbnMgLmJ1dHRvbixcbi51aS5pbnZlcnRlZC5wdXJwbGUuYnV0dG9ucyAuYmFzaWMuYnV0dG9uLFxuLnVpLmludmVydGVkLnB1cnBsZS5iYXNpYy5idXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMnB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KSBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xufVxuLnVpLmludmVydGVkLnB1cnBsZS5iYXNpYy5idXR0b25zIC5idXR0b246aG92ZXIsXG4udWkuaW52ZXJ0ZWQucHVycGxlLmJ1dHRvbnMgLmJhc2ljLmJ1dHRvbjpob3Zlcixcbi51aS5pbnZlcnRlZC5wdXJwbGUuYmFzaWMuYnV0dG9uOmhvdmVyIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMnB4ICNkNjVhZmYgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICNEQzczRkYgIWltcG9ydGFudDtcbn1cbi51aS5pbnZlcnRlZC5wdXJwbGUuYmFzaWMuYnV0dG9ucyAuYnV0dG9uOmZvY3VzLFxuLnVpLmludmVydGVkLnB1cnBsZS5iYXNpYy5idXR0b25zIC5idXR0b246Zm9jdXMsXG4udWkuaW52ZXJ0ZWQucHVycGxlLmJhc2ljLmJ1dHRvbjpmb2N1cyB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDJweCAjZDI0YWZmIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjREM3M0ZGICFpbXBvcnRhbnQ7XG59XG4udWkuaW52ZXJ0ZWQucHVycGxlLmJhc2ljLmJ1dHRvbnMgLmFjdGl2ZS5idXR0b24sXG4udWkuaW52ZXJ0ZWQucHVycGxlLmJ1dHRvbnMgLmJhc2ljLmFjdGl2ZS5idXR0b24sXG4udWkuaW52ZXJ0ZWQucHVycGxlLmJhc2ljLmFjdGl2ZS5idXR0b24ge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAycHggI2Q2NWFmZiBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogI0RDNzNGRiAhaW1wb3J0YW50O1xufVxuLnVpLmludmVydGVkLnB1cnBsZS5iYXNpYy5idXR0b25zIC5idXR0b246YWN0aXZlLFxuLnVpLmludmVydGVkLnB1cnBsZS5idXR0b25zIC5iYXNpYy5idXR0b246YWN0aXZlLFxuLnVpLmludmVydGVkLnB1cnBsZS5iYXNpYy5idXR0b246YWN0aXZlIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMnB4ICNjZjQwZmYgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICNEQzczRkYgIWltcG9ydGFudDtcbn1cbi8qLS0tIFJlZCAtLS0qL1xuLnVpLnJlZC5idXR0b25zIC5idXR0b24sXG4udWkucmVkLmJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkZTNhM2U7XG4gIGNvbG9yOiAjZmZmZmZmO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbiAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbn1cbi51aS5yZWQuYnV0dG9uIHtcbiAgYm94LXNoYWRvdzogMHB4IDBlbSAwcHggMHB4IHJnYmEoMzQsIDM2LCAzOCwgMC4xNSkgaW5zZXQ7XG59XG4udWkucmVkLmJ1dHRvbnMgLmJ1dHRvbjpob3Zlcixcbi51aS5yZWQuYnV0dG9uOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2UzMWIyMDtcbiAgY29sb3I6ICNmZmZmZmY7XG4gIHRleHQtc2hhZG93OiBub25lO1xufVxuLnVpLnJlZC5idXR0b25zIC5idXR0b246Zm9jdXMsXG4udWkucmVkLmJ1dHRvbjpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkZTExMTY7XG4gIGNvbG9yOiAjZmZmZmZmO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbn1cbi51aS5yZWQuYnV0dG9ucyAuYnV0dG9uOmFjdGl2ZSxcbi51aS5yZWQuYnV0dG9uOmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNjNDIxMjU7XG4gIGNvbG9yOiAjZmZmZmZmO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbn1cbi51aS5yZWQuYnV0dG9ucyAuYWN0aXZlLmJ1dHRvbixcbi51aS5yZWQuYnV0dG9ucyAuYWN0aXZlLmJ1dHRvbjphY3RpdmUsXG4udWkucmVkLmFjdGl2ZS5idXR0b24sXG4udWkucmVkLmJ1dHRvbiAuYWN0aXZlLmJ1dHRvbjphY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTgxNzFjO1xuICBjb2xvcjogI2ZmZmZmZjtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG59XG4vKiBCYXNpYyAqL1xuLnVpLmJhc2ljLnJlZC5idXR0b25zIC5idXR0b24sXG4udWkuYmFzaWMucmVkLmJ1dHRvbiB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjZGUzYTNlIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjZGUzYTNlICFpbXBvcnRhbnQ7XG59XG4udWkuYmFzaWMucmVkLmJ1dHRvbnMgLmJ1dHRvbjpob3Zlcixcbi51aS5iYXNpYy5yZWQuYnV0dG9uOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICNlMzFiMjAgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICNlMzFiMjAgIWltcG9ydGFudDtcbn1cbi51aS5iYXNpYy5yZWQuYnV0dG9ucyAuYnV0dG9uOmZvY3VzLFxuLnVpLmJhc2ljLnJlZC5idXR0b246Zm9jdXMge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggI2RlMTExNiBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogI2UzMWIyMCAhaW1wb3J0YW50O1xufVxuLnVpLmJhc2ljLnJlZC5idXR0b25zIC5hY3RpdmUuYnV0dG9uLFxuLnVpLmJhc2ljLnJlZC5hY3RpdmUuYnV0dG9uIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICNlODE3MWMgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICNjNDIxMjUgIWltcG9ydGFudDtcbn1cbi51aS5iYXNpYy5yZWQuYnV0dG9ucyAuYnV0dG9uOmFjdGl2ZSxcbi51aS5iYXNpYy5yZWQuYnV0dG9uOmFjdGl2ZSB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjYzQyMTI1IGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjYzQyMTI1ICFpbXBvcnRhbnQ7XG59XG4udWkuYnV0dG9uczpub3QoLnZlcnRpY2FsKSA+IC5iYXNpYy5yZWQuYnV0dG9uOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgbWFyZ2luLWxlZnQ6IC0xcHg7XG59XG4vKiBJbnZlcnRlZCAqL1xuLnVpLmludmVydGVkLnJlZC5idXR0b25zIC5idXR0b24sXG4udWkuaW52ZXJ0ZWQucmVkLmJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAycHggI0ZGNjk1RSBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogI0ZGNjk1RTtcbn1cbi51aS5pbnZlcnRlZC5yZWQuYnV0dG9ucyAuYnV0dG9uOmhvdmVyLFxuLnVpLmludmVydGVkLnJlZC5idXR0b246aG92ZXIsXG4udWkuaW52ZXJ0ZWQucmVkLmJ1dHRvbnMgLmJ1dHRvbjpmb2N1cyxcbi51aS5pbnZlcnRlZC5yZWQuYnV0dG9uOmZvY3VzLFxuLnVpLmludmVydGVkLnJlZC5idXR0b25zIC5idXR0b24uYWN0aXZlLFxuLnVpLmludmVydGVkLnJlZC5idXR0b24uYWN0aXZlLFxuLnVpLmludmVydGVkLnJlZC5idXR0b25zIC5idXR0b246YWN0aXZlLFxuLnVpLmludmVydGVkLnJlZC5idXR0b246YWN0aXZlIHtcbiAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICBjb2xvcjogI2ZmZmZmZjtcbn1cbi51aS5pbnZlcnRlZC5yZWQuYnV0dG9ucyAuYnV0dG9uOmhvdmVyLFxuLnVpLmludmVydGVkLnJlZC5idXR0b246aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmY1MTQ0O1xufVxuLnVpLmludmVydGVkLnJlZC5idXR0b25zIC5idXR0b246Zm9jdXMsXG4udWkuaW52ZXJ0ZWQucmVkLmJ1dHRvbjpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZjQzMzU7XG59XG4udWkuaW52ZXJ0ZWQucmVkLmJ1dHRvbnMgLmFjdGl2ZS5idXR0b24sXG4udWkuaW52ZXJ0ZWQucmVkLmFjdGl2ZS5idXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmY1MTQ0O1xufVxuLnVpLmludmVydGVkLnJlZC5idXR0b25zIC5idXR0b246YWN0aXZlLFxuLnVpLmludmVydGVkLnJlZC5idXR0b246YWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmMzkyYjtcbn1cbi8qIEludmVydGVkIEJhc2ljICovXG4udWkuaW52ZXJ0ZWQucmVkLmJhc2ljLmJ1dHRvbnMgLmJ1dHRvbixcbi51aS5pbnZlcnRlZC5yZWQuYnV0dG9ucyAuYmFzaWMuYnV0dG9uLFxuLnVpLmludmVydGVkLnJlZC5iYXNpYy5idXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMnB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KSBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xufVxuLnVpLmludmVydGVkLnJlZC5iYXNpYy5idXR0b25zIC5idXR0b246aG92ZXIsXG4udWkuaW52ZXJ0ZWQucmVkLmJ1dHRvbnMgLmJhc2ljLmJ1dHRvbjpob3Zlcixcbi51aS5pbnZlcnRlZC5yZWQuYmFzaWMuYnV0dG9uOmhvdmVyIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMnB4ICNmZjUxNDQgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICNGRjY5NUUgIWltcG9ydGFudDtcbn1cbi51aS5pbnZlcnRlZC5yZWQuYmFzaWMuYnV0dG9ucyAuYnV0dG9uOmZvY3VzLFxuLnVpLmludmVydGVkLnJlZC5iYXNpYy5idXR0b25zIC5idXR0b246Zm9jdXMsXG4udWkuaW52ZXJ0ZWQucmVkLmJhc2ljLmJ1dHRvbjpmb2N1cyB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDJweCAjZmY0MzM1IGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRkY2OTVFICFpbXBvcnRhbnQ7XG59XG4udWkuaW52ZXJ0ZWQucmVkLmJhc2ljLmJ1dHRvbnMgLmFjdGl2ZS5idXR0b24sXG4udWkuaW52ZXJ0ZWQucmVkLmJ1dHRvbnMgLmJhc2ljLmFjdGl2ZS5idXR0b24sXG4udWkuaW52ZXJ0ZWQucmVkLmJhc2ljLmFjdGl2ZS5idXR0b24ge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAycHggI2ZmNTE0NCBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogI0ZGNjk1RSAhaW1wb3J0YW50O1xufVxuLnVpLmludmVydGVkLnJlZC5iYXNpYy5idXR0b25zIC5idXR0b246YWN0aXZlLFxuLnVpLmludmVydGVkLnJlZC5idXR0b25zIC5iYXNpYy5idXR0b246YWN0aXZlLFxuLnVpLmludmVydGVkLnJlZC5iYXNpYy5idXR0b246YWN0aXZlIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMnB4ICNmZjM5MmIgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICNGRjY5NUUgIWltcG9ydGFudDtcbn1cbi8qLS0tIFRlYWwgLS0tKi9cbi51aS50ZWFsLmJ1dHRvbnMgLmJ1dHRvbixcbi51aS50ZWFsLmJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMEI1QUQ7XG4gIGNvbG9yOiAjZmZmZmZmO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbiAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbn1cbi51aS50ZWFsLmJ1dHRvbiB7XG4gIGJveC1zaGFkb3c6IDBweCAwZW0gMHB4IDBweCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpIGluc2V0O1xufVxuLnVpLnRlYWwuYnV0dG9ucyAuYnV0dG9uOmhvdmVyLFxuLnVpLnRlYWwuYnV0dG9uOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwOWM5NTtcbiAgY29sb3I6ICNmZmZmZmY7XG4gIHRleHQtc2hhZG93OiBub25lO1xufVxuLnVpLnRlYWwuYnV0dG9ucyAuYnV0dG9uOmZvY3VzLFxuLnVpLnRlYWwuYnV0dG9uOmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwOGM4NjtcbiAgY29sb3I6ICNmZmZmZmY7XG4gIHRleHQtc2hhZG93OiBub25lO1xufVxuLnVpLnRlYWwuYnV0dG9ucyAuYnV0dG9uOmFjdGl2ZSxcbi51aS50ZWFsLmJ1dHRvbjphY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA4MjdjO1xuICBjb2xvcjogI2ZmZmZmZjtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG59XG4udWkudGVhbC5idXR0b25zIC5hY3RpdmUuYnV0dG9uLFxuLnVpLnRlYWwuYnV0dG9ucyAuYWN0aXZlLmJ1dHRvbjphY3RpdmUsXG4udWkudGVhbC5hY3RpdmUuYnV0dG9uLFxuLnVpLnRlYWwuYnV0dG9uIC5hY3RpdmUuYnV0dG9uOmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDljOTU7XG4gIGNvbG9yOiAjZmZmZmZmO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbn1cbi8qIEJhc2ljICovXG4udWkuYmFzaWMudGVhbC5idXR0b25zIC5idXR0b24sXG4udWkuYmFzaWMudGVhbC5idXR0b24ge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggIzAwQjVBRCBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogIzAwQjVBRCAhaW1wb3J0YW50O1xufVxuLnVpLmJhc2ljLnRlYWwuYnV0dG9ucyAuYnV0dG9uOmhvdmVyLFxuLnVpLmJhc2ljLnRlYWwuYnV0dG9uOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICMwMDljOTUgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICMwMDljOTUgIWltcG9ydGFudDtcbn1cbi51aS5iYXNpYy50ZWFsLmJ1dHRvbnMgLmJ1dHRvbjpmb2N1cyxcbi51aS5iYXNpYy50ZWFsLmJ1dHRvbjpmb2N1cyB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjMDA4Yzg2IGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjMDA5Yzk1ICFpbXBvcnRhbnQ7XG59XG4udWkuYmFzaWMudGVhbC5idXR0b25zIC5hY3RpdmUuYnV0dG9uLFxuLnVpLmJhc2ljLnRlYWwuYWN0aXZlLmJ1dHRvbiB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjMDA5Yzk1IGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjMDA4MjdjICFpbXBvcnRhbnQ7XG59XG4udWkuYmFzaWMudGVhbC5idXR0b25zIC5idXR0b246YWN0aXZlLFxuLnVpLmJhc2ljLnRlYWwuYnV0dG9uOmFjdGl2ZSB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjMDA4MjdjIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjMDA4MjdjICFpbXBvcnRhbnQ7XG59XG4udWkuYnV0dG9uczpub3QoLnZlcnRpY2FsKSA+IC5iYXNpYy50ZWFsLmJ1dHRvbjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gIG1hcmdpbi1sZWZ0OiAtMXB4O1xufVxuLyogSW52ZXJ0ZWQgKi9cbi51aS5pbnZlcnRlZC50ZWFsLmJ1dHRvbnMgLmJ1dHRvbixcbi51aS5pbnZlcnRlZC50ZWFsLmJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAycHggIzZERkZGRiBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogIzZERkZGRjtcbn1cbi51aS5pbnZlcnRlZC50ZWFsLmJ1dHRvbnMgLmJ1dHRvbjpob3Zlcixcbi51aS5pbnZlcnRlZC50ZWFsLmJ1dHRvbjpob3Zlcixcbi51aS5pbnZlcnRlZC50ZWFsLmJ1dHRvbnMgLmJ1dHRvbjpmb2N1cyxcbi51aS5pbnZlcnRlZC50ZWFsLmJ1dHRvbjpmb2N1cyxcbi51aS5pbnZlcnRlZC50ZWFsLmJ1dHRvbnMgLmJ1dHRvbi5hY3RpdmUsXG4udWkuaW52ZXJ0ZWQudGVhbC5idXR0b24uYWN0aXZlLFxuLnVpLmludmVydGVkLnRlYWwuYnV0dG9ucyAuYnV0dG9uOmFjdGl2ZSxcbi51aS5pbnZlcnRlZC50ZWFsLmJ1dHRvbjphY3RpdmUge1xuICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNik7XG59XG4udWkuaW52ZXJ0ZWQudGVhbC5idXR0b25zIC5idXR0b246aG92ZXIsXG4udWkuaW52ZXJ0ZWQudGVhbC5idXR0b246aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTRmZmZmO1xufVxuLnVpLmludmVydGVkLnRlYWwuYnV0dG9ucyAuYnV0dG9uOmZvY3VzLFxuLnVpLmludmVydGVkLnRlYWwuYnV0dG9uOmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzQ0ZmZmZjtcbn1cbi51aS5pbnZlcnRlZC50ZWFsLmJ1dHRvbnMgLmFjdGl2ZS5idXR0b24sXG4udWkuaW52ZXJ0ZWQudGVhbC5hY3RpdmUuYnV0dG9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzU0ZmZmZjtcbn1cbi51aS5pbnZlcnRlZC50ZWFsLmJ1dHRvbnMgLmJ1dHRvbjphY3RpdmUsXG4udWkuaW52ZXJ0ZWQudGVhbC5idXR0b246YWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzNhZmZmZjtcbn1cbi8qIEludmVydGVkIEJhc2ljICovXG4udWkuaW52ZXJ0ZWQudGVhbC5iYXNpYy5idXR0b25zIC5idXR0b24sXG4udWkuaW52ZXJ0ZWQudGVhbC5idXR0b25zIC5iYXNpYy5idXR0b24sXG4udWkuaW52ZXJ0ZWQudGVhbC5iYXNpYy5idXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMnB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KSBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xufVxuLnVpLmludmVydGVkLnRlYWwuYmFzaWMuYnV0dG9ucyAuYnV0dG9uOmhvdmVyLFxuLnVpLmludmVydGVkLnRlYWwuYnV0dG9ucyAuYmFzaWMuYnV0dG9uOmhvdmVyLFxuLnVpLmludmVydGVkLnRlYWwuYmFzaWMuYnV0dG9uOmhvdmVyIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMnB4ICM1NGZmZmYgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICM2REZGRkYgIWltcG9ydGFudDtcbn1cbi51aS5pbnZlcnRlZC50ZWFsLmJhc2ljLmJ1dHRvbnMgLmJ1dHRvbjpmb2N1cyxcbi51aS5pbnZlcnRlZC50ZWFsLmJhc2ljLmJ1dHRvbnMgLmJ1dHRvbjpmb2N1cyxcbi51aS5pbnZlcnRlZC50ZWFsLmJhc2ljLmJ1dHRvbjpmb2N1cyB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDJweCAjNDRmZmZmIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjNkRGRkZGICFpbXBvcnRhbnQ7XG59XG4udWkuaW52ZXJ0ZWQudGVhbC5iYXNpYy5idXR0b25zIC5hY3RpdmUuYnV0dG9uLFxuLnVpLmludmVydGVkLnRlYWwuYnV0dG9ucyAuYmFzaWMuYWN0aXZlLmJ1dHRvbixcbi51aS5pbnZlcnRlZC50ZWFsLmJhc2ljLmFjdGl2ZS5idXR0b24ge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAycHggIzU0ZmZmZiBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogIzZERkZGRiAhaW1wb3J0YW50O1xufVxuLnVpLmludmVydGVkLnRlYWwuYmFzaWMuYnV0dG9ucyAuYnV0dG9uOmFjdGl2ZSxcbi51aS5pbnZlcnRlZC50ZWFsLmJ1dHRvbnMgLmJhc2ljLmJ1dHRvbjphY3RpdmUsXG4udWkuaW52ZXJ0ZWQudGVhbC5iYXNpYy5idXR0b246YWN0aXZlIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMnB4ICMzYWZmZmYgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICM2REZGRkYgIWltcG9ydGFudDtcbn1cbi8qLS0tIE9saXZlIC0tLSovXG4udWkub2xpdmUuYnV0dG9ucyAuYnV0dG9uLFxuLnVpLm9saXZlLmJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNCNUNDMTg7XG4gIGNvbG9yOiAjZmZmZmZmO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbiAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbn1cbi51aS5vbGl2ZS5idXR0b24ge1xuICBib3gtc2hhZG93OiAwcHggMGVtIDBweCAwcHggcmdiYSgzNCwgMzYsIDM4LCAwLjE1KSBpbnNldDtcbn1cbi51aS5vbGl2ZS5idXR0b25zIC5idXR0b246aG92ZXIsXG4udWkub2xpdmUuYnV0dG9uOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2E3YmQwZDtcbiAgY29sb3I6ICNmZmZmZmY7XG4gIHRleHQtc2hhZG93OiBub25lO1xufVxuLnVpLm9saXZlLmJ1dHRvbnMgLmJ1dHRvbjpmb2N1cyxcbi51aS5vbGl2ZS5idXR0b246Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYTBiNjA1O1xuICBjb2xvcjogI2ZmZmZmZjtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG59XG4udWkub2xpdmUuYnV0dG9ucyAuYnV0dG9uOmFjdGl2ZSxcbi51aS5vbGl2ZS5idXR0b246YWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzhkOWUxMztcbiAgY29sb3I6ICNmZmZmZmY7XG4gIHRleHQtc2hhZG93OiBub25lO1xufVxuLnVpLm9saXZlLmJ1dHRvbnMgLmFjdGl2ZS5idXR0b24sXG4udWkub2xpdmUuYnV0dG9ucyAuYWN0aXZlLmJ1dHRvbjphY3RpdmUsXG4udWkub2xpdmUuYWN0aXZlLmJ1dHRvbixcbi51aS5vbGl2ZS5idXR0b24gLmFjdGl2ZS5idXR0b246YWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2FhYzEwOTtcbiAgY29sb3I6ICNmZmZmZmY7XG4gIHRleHQtc2hhZG93OiBub25lO1xufVxuLyogQmFzaWMgKi9cbi51aS5iYXNpYy5vbGl2ZS5idXR0b25zIC5idXR0b24sXG4udWkuYmFzaWMub2xpdmUuYnV0dG9uIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICNCNUNDMTggaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICNCNUNDMTggIWltcG9ydGFudDtcbn1cbi51aS5iYXNpYy5vbGl2ZS5idXR0b25zIC5idXR0b246aG92ZXIsXG4udWkuYmFzaWMub2xpdmUuYnV0dG9uOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICNhN2JkMGQgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICNhN2JkMGQgIWltcG9ydGFudDtcbn1cbi51aS5iYXNpYy5vbGl2ZS5idXR0b25zIC5idXR0b246Zm9jdXMsXG4udWkuYmFzaWMub2xpdmUuYnV0dG9uOmZvY3VzIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICNhMGI2MDUgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICNhN2JkMGQgIWltcG9ydGFudDtcbn1cbi51aS5iYXNpYy5vbGl2ZS5idXR0b25zIC5hY3RpdmUuYnV0dG9uLFxuLnVpLmJhc2ljLm9saXZlLmFjdGl2ZS5idXR0b24ge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggI2FhYzEwOSBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogIzhkOWUxMyAhaW1wb3J0YW50O1xufVxuLnVpLmJhc2ljLm9saXZlLmJ1dHRvbnMgLmJ1dHRvbjphY3RpdmUsXG4udWkuYmFzaWMub2xpdmUuYnV0dG9uOmFjdGl2ZSB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjOGQ5ZTEzIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjOGQ5ZTEzICFpbXBvcnRhbnQ7XG59XG4udWkuYnV0dG9uczpub3QoLnZlcnRpY2FsKSA+IC5iYXNpYy5vbGl2ZS5idXR0b246bm90KDpmaXJzdC1jaGlsZCkge1xuICBtYXJnaW4tbGVmdDogLTFweDtcbn1cbi8qIEludmVydGVkICovXG4udWkuaW52ZXJ0ZWQub2xpdmUuYnV0dG9ucyAuYnV0dG9uLFxuLnVpLmludmVydGVkLm9saXZlLmJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAycHggI0Q5RTc3OCBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogI0Q5RTc3ODtcbn1cbi51aS5pbnZlcnRlZC5vbGl2ZS5idXR0b25zIC5idXR0b246aG92ZXIsXG4udWkuaW52ZXJ0ZWQub2xpdmUuYnV0dG9uOmhvdmVyLFxuLnVpLmludmVydGVkLm9saXZlLmJ1dHRvbnMgLmJ1dHRvbjpmb2N1cyxcbi51aS5pbnZlcnRlZC5vbGl2ZS5idXR0b246Zm9jdXMsXG4udWkuaW52ZXJ0ZWQub2xpdmUuYnV0dG9ucyAuYnV0dG9uLmFjdGl2ZSxcbi51aS5pbnZlcnRlZC5vbGl2ZS5idXR0b24uYWN0aXZlLFxuLnVpLmludmVydGVkLm9saXZlLmJ1dHRvbnMgLmJ1dHRvbjphY3RpdmUsXG4udWkuaW52ZXJ0ZWQub2xpdmUuYnV0dG9uOmFjdGl2ZSB7XG4gIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC42KTtcbn1cbi51aS5pbnZlcnRlZC5vbGl2ZS5idXR0b25zIC5idXR0b246aG92ZXIsXG4udWkuaW52ZXJ0ZWQub2xpdmUuYnV0dG9uOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Q4ZWE1Yztcbn1cbi51aS5pbnZlcnRlZC5vbGl2ZS5idXR0b25zIC5idXR0b246Zm9jdXMsXG4udWkuaW52ZXJ0ZWQub2xpdmUuYnV0dG9uOmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2RhZWY0Nztcbn1cbi51aS5pbnZlcnRlZC5vbGl2ZS5idXR0b25zIC5hY3RpdmUuYnV0dG9uLFxuLnVpLmludmVydGVkLm9saXZlLmFjdGl2ZS5idXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGFlZDU5O1xufVxuLnVpLmludmVydGVkLm9saXZlLmJ1dHRvbnMgLmJ1dHRvbjphY3RpdmUsXG4udWkuaW52ZXJ0ZWQub2xpdmUuYnV0dG9uOmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNjZGRmNGQ7XG59XG4vKiBJbnZlcnRlZCBCYXNpYyAqL1xuLnVpLmludmVydGVkLm9saXZlLmJhc2ljLmJ1dHRvbnMgLmJ1dHRvbixcbi51aS5pbnZlcnRlZC5vbGl2ZS5idXR0b25zIC5iYXNpYy5idXR0b24sXG4udWkuaW52ZXJ0ZWQub2xpdmUuYmFzaWMuYnV0dG9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDJweCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSkgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcbn1cbi51aS5pbnZlcnRlZC5vbGl2ZS5iYXNpYy5idXR0b25zIC5idXR0b246aG92ZXIsXG4udWkuaW52ZXJ0ZWQub2xpdmUuYnV0dG9ucyAuYmFzaWMuYnV0dG9uOmhvdmVyLFxuLnVpLmludmVydGVkLm9saXZlLmJhc2ljLmJ1dHRvbjpob3ZlciB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDJweCAjZDhlYTVjIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRDlFNzc4ICFpbXBvcnRhbnQ7XG59XG4udWkuaW52ZXJ0ZWQub2xpdmUuYmFzaWMuYnV0dG9ucyAuYnV0dG9uOmZvY3VzLFxuLnVpLmludmVydGVkLm9saXZlLmJhc2ljLmJ1dHRvbnMgLmJ1dHRvbjpmb2N1cyxcbi51aS5pbnZlcnRlZC5vbGl2ZS5iYXNpYy5idXR0b246Zm9jdXMge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAycHggI2RhZWY0NyBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogI0Q5RTc3OCAhaW1wb3J0YW50O1xufVxuLnVpLmludmVydGVkLm9saXZlLmJhc2ljLmJ1dHRvbnMgLmFjdGl2ZS5idXR0b24sXG4udWkuaW52ZXJ0ZWQub2xpdmUuYnV0dG9ucyAuYmFzaWMuYWN0aXZlLmJ1dHRvbixcbi51aS5pbnZlcnRlZC5vbGl2ZS5iYXNpYy5hY3RpdmUuYnV0dG9uIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMnB4ICNkYWVkNTkgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICNEOUU3NzggIWltcG9ydGFudDtcbn1cbi51aS5pbnZlcnRlZC5vbGl2ZS5iYXNpYy5idXR0b25zIC5idXR0b246YWN0aXZlLFxuLnVpLmludmVydGVkLm9saXZlLmJ1dHRvbnMgLmJhc2ljLmJ1dHRvbjphY3RpdmUsXG4udWkuaW52ZXJ0ZWQub2xpdmUuYmFzaWMuYnV0dG9uOmFjdGl2ZSB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDJweCAjY2RkZjRkIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRDlFNzc4ICFpbXBvcnRhbnQ7XG59XG4vKi0tLSBZZWxsb3cgLS0tKi9cbi51aS55ZWxsb3cuYnV0dG9ucyAuYnV0dG9uLFxuLnVpLnllbGxvdy5idXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkJCRDA4O1xuICBjb2xvcjogI2ZmZmZmZjtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG4gIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG59XG4udWkueWVsbG93LmJ1dHRvbiB7XG4gIGJveC1zaGFkb3c6IDBweCAwZW0gMHB4IDBweCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpIGluc2V0O1xufVxuLnVpLnllbGxvdy5idXR0b25zIC5idXR0b246aG92ZXIsXG4udWkueWVsbG93LmJ1dHRvbjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlYWFlMDA7XG4gIGNvbG9yOiAjZmZmZmZmO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbn1cbi51aS55ZWxsb3cuYnV0dG9ucyAuYnV0dG9uOmZvY3VzLFxuLnVpLnllbGxvdy5idXR0b246Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGFhMzAwO1xuICBjb2xvcjogI2ZmZmZmZjtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG59XG4udWkueWVsbG93LmJ1dHRvbnMgLmJ1dHRvbjphY3RpdmUsXG4udWkueWVsbG93LmJ1dHRvbjphY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2Q5OTAzO1xuICBjb2xvcjogI2ZmZmZmZjtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG59XG4udWkueWVsbG93LmJ1dHRvbnMgLmFjdGl2ZS5idXR0b24sXG4udWkueWVsbG93LmJ1dHRvbnMgLmFjdGl2ZS5idXR0b246YWN0aXZlLFxuLnVpLnllbGxvdy5hY3RpdmUuYnV0dG9uLFxuLnVpLnllbGxvdy5idXR0b24gLmFjdGl2ZS5idXR0b246YWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2VhYWUwMDtcbiAgY29sb3I6ICNmZmZmZmY7XG4gIHRleHQtc2hhZG93OiBub25lO1xufVxuLyogQmFzaWMgKi9cbi51aS5iYXNpYy55ZWxsb3cuYnV0dG9ucyAuYnV0dG9uLFxuLnVpLmJhc2ljLnllbGxvdy5idXR0b24ge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggI0ZCQkQwOCBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogI0ZCQkQwOCAhaW1wb3J0YW50O1xufVxuLnVpLmJhc2ljLnllbGxvdy5idXR0b25zIC5idXR0b246aG92ZXIsXG4udWkuYmFzaWMueWVsbG93LmJ1dHRvbjpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjZWFhZTAwIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjZWFhZTAwICFpbXBvcnRhbnQ7XG59XG4udWkuYmFzaWMueWVsbG93LmJ1dHRvbnMgLmJ1dHRvbjpmb2N1cyxcbi51aS5iYXNpYy55ZWxsb3cuYnV0dG9uOmZvY3VzIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICNkYWEzMDAgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICNlYWFlMDAgIWltcG9ydGFudDtcbn1cbi51aS5iYXNpYy55ZWxsb3cuYnV0dG9ucyAuYWN0aXZlLmJ1dHRvbixcbi51aS5iYXNpYy55ZWxsb3cuYWN0aXZlLmJ1dHRvbiB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjZWFhZTAwIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjY2Q5OTAzICFpbXBvcnRhbnQ7XG59XG4udWkuYmFzaWMueWVsbG93LmJ1dHRvbnMgLmJ1dHRvbjphY3RpdmUsXG4udWkuYmFzaWMueWVsbG93LmJ1dHRvbjphY3RpdmUge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggI2NkOTkwMyBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogI2NkOTkwMyAhaW1wb3J0YW50O1xufVxuLnVpLmJ1dHRvbnM6bm90KC52ZXJ0aWNhbCkgPiAuYmFzaWMueWVsbG93LmJ1dHRvbjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gIG1hcmdpbi1sZWZ0OiAtMXB4O1xufVxuLyogSW52ZXJ0ZWQgKi9cbi51aS5pbnZlcnRlZC55ZWxsb3cuYnV0dG9ucyAuYnV0dG9uLFxuLnVpLmludmVydGVkLnllbGxvdy5idXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMnB4ICNGRkUyMUYgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICNGRkUyMUY7XG59XG4udWkuaW52ZXJ0ZWQueWVsbG93LmJ1dHRvbnMgLmJ1dHRvbjpob3Zlcixcbi51aS5pbnZlcnRlZC55ZWxsb3cuYnV0dG9uOmhvdmVyLFxuLnVpLmludmVydGVkLnllbGxvdy5idXR0b25zIC5idXR0b246Zm9jdXMsXG4udWkuaW52ZXJ0ZWQueWVsbG93LmJ1dHRvbjpmb2N1cyxcbi51aS5pbnZlcnRlZC55ZWxsb3cuYnV0dG9ucyAuYnV0dG9uLmFjdGl2ZSxcbi51aS5pbnZlcnRlZC55ZWxsb3cuYnV0dG9uLmFjdGl2ZSxcbi51aS5pbnZlcnRlZC55ZWxsb3cuYnV0dG9ucyAuYnV0dG9uOmFjdGl2ZSxcbi51aS5pbnZlcnRlZC55ZWxsb3cuYnV0dG9uOmFjdGl2ZSB7XG4gIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC42KTtcbn1cbi51aS5pbnZlcnRlZC55ZWxsb3cuYnV0dG9ucyAuYnV0dG9uOmhvdmVyLFxuLnVpLmludmVydGVkLnllbGxvdy5idXR0b246aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZkZjA1O1xufVxuLnVpLmludmVydGVkLnllbGxvdy5idXR0b25zIC5idXR0b246Zm9jdXMsXG4udWkuaW52ZXJ0ZWQueWVsbG93LmJ1dHRvbjpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNWQ1MDA7XG59XG4udWkuaW52ZXJ0ZWQueWVsbG93LmJ1dHRvbnMgLmFjdGl2ZS5idXR0b24sXG4udWkuaW52ZXJ0ZWQueWVsbG93LmFjdGl2ZS5idXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZkZjA1O1xufVxuLnVpLmludmVydGVkLnllbGxvdy5idXR0b25zIC5idXR0b246YWN0aXZlLFxuLnVpLmludmVydGVkLnllbGxvdy5idXR0b246YWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ViY2QwMDtcbn1cbi8qIEludmVydGVkIEJhc2ljICovXG4udWkuaW52ZXJ0ZWQueWVsbG93LmJhc2ljLmJ1dHRvbnMgLmJ1dHRvbixcbi51aS5pbnZlcnRlZC55ZWxsb3cuYnV0dG9ucyAuYmFzaWMuYnV0dG9uLFxuLnVpLmludmVydGVkLnllbGxvdy5iYXNpYy5idXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMnB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KSBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xufVxuLnVpLmludmVydGVkLnllbGxvdy5iYXNpYy5idXR0b25zIC5idXR0b246aG92ZXIsXG4udWkuaW52ZXJ0ZWQueWVsbG93LmJ1dHRvbnMgLmJhc2ljLmJ1dHRvbjpob3Zlcixcbi51aS5pbnZlcnRlZC55ZWxsb3cuYmFzaWMuYnV0dG9uOmhvdmVyIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMnB4ICNmZmRmMDUgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICNGRkUyMUYgIWltcG9ydGFudDtcbn1cbi51aS5pbnZlcnRlZC55ZWxsb3cuYmFzaWMuYnV0dG9ucyAuYnV0dG9uOmZvY3VzLFxuLnVpLmludmVydGVkLnllbGxvdy5iYXNpYy5idXR0b25zIC5idXR0b246Zm9jdXMsXG4udWkuaW52ZXJ0ZWQueWVsbG93LmJhc2ljLmJ1dHRvbjpmb2N1cyB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDJweCAjZjVkNTAwIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRkZFMjFGICFpbXBvcnRhbnQ7XG59XG4udWkuaW52ZXJ0ZWQueWVsbG93LmJhc2ljLmJ1dHRvbnMgLmFjdGl2ZS5idXR0b24sXG4udWkuaW52ZXJ0ZWQueWVsbG93LmJ1dHRvbnMgLmJhc2ljLmFjdGl2ZS5idXR0b24sXG4udWkuaW52ZXJ0ZWQueWVsbG93LmJhc2ljLmFjdGl2ZS5idXR0b24ge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAycHggI2ZmZGYwNSBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogI0ZGRTIxRiAhaW1wb3J0YW50O1xufVxuLnVpLmludmVydGVkLnllbGxvdy5iYXNpYy5idXR0b25zIC5idXR0b246YWN0aXZlLFxuLnVpLmludmVydGVkLnllbGxvdy5idXR0b25zIC5iYXNpYy5idXR0b246YWN0aXZlLFxuLnVpLmludmVydGVkLnllbGxvdy5iYXNpYy5idXR0b246YWN0aXZlIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMnB4ICNlYmNkMDAgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICNGRkUyMUYgIWltcG9ydGFudDtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIFByaW1hcnlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tIFN0YW5kYXJkIC0tLSovXG4udWkucHJpbWFyeS5idXR0b25zIC5idXR0b24sXG4udWkucHJpbWFyeS5idXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGUzYTNlO1xuICBjb2xvcjogI2ZmZmZmZjtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG4gIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG59XG4udWkucHJpbWFyeS5idXR0b24ge1xuICBib3gtc2hhZG93OiAwcHggMGVtIDBweCAwcHggcmdiYSgzNCwgMzYsIDM4LCAwLjE1KSBpbnNldDtcbn1cbi51aS5wcmltYXJ5LmJ1dHRvbnMgLmJ1dHRvbjpob3Zlcixcbi51aS5wcmltYXJ5LmJ1dHRvbjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlMzFiMjA7XG4gIGNvbG9yOiAjZmZmZmZmO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbn1cbi51aS5wcmltYXJ5LmJ1dHRvbnMgLmJ1dHRvbjpmb2N1cyxcbi51aS5wcmltYXJ5LmJ1dHRvbjpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkZTExMTY7XG4gIGNvbG9yOiAjZmZmZmZmO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbn1cbi51aS5wcmltYXJ5LmJ1dHRvbnMgLmJ1dHRvbjphY3RpdmUsXG4udWkucHJpbWFyeS5idXR0b246YWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2M0MjEyNTtcbiAgY29sb3I6ICNmZmZmZmY7XG4gIHRleHQtc2hhZG93OiBub25lO1xufVxuLnVpLnByaW1hcnkuYnV0dG9ucyAuYWN0aXZlLmJ1dHRvbixcbi51aS5wcmltYXJ5LmJ1dHRvbnMgLmFjdGl2ZS5idXR0b246YWN0aXZlLFxuLnVpLnByaW1hcnkuYWN0aXZlLmJ1dHRvbixcbi51aS5wcmltYXJ5LmJ1dHRvbiAuYWN0aXZlLmJ1dHRvbjphY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTgxNzFjO1xuICBjb2xvcjogI2ZmZmZmZjtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG59XG4vKiBCYXNpYyAqL1xuLnVpLmJhc2ljLnByaW1hcnkuYnV0dG9ucyAuYnV0dG9uLFxuLnVpLmJhc2ljLnByaW1hcnkuYnV0dG9uIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICNkZTNhM2UgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICNkZTNhM2UgIWltcG9ydGFudDtcbn1cbi51aS5iYXNpYy5wcmltYXJ5LmJ1dHRvbnMgLmJ1dHRvbjpob3Zlcixcbi51aS5iYXNpYy5wcmltYXJ5LmJ1dHRvbjpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjZTMxYjIwIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjZTMxYjIwICFpbXBvcnRhbnQ7XG59XG4udWkuYmFzaWMucHJpbWFyeS5idXR0b25zIC5idXR0b246Zm9jdXMsXG4udWkuYmFzaWMucHJpbWFyeS5idXR0b246Zm9jdXMge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggI2RlMTExNiBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogI2UzMWIyMCAhaW1wb3J0YW50O1xufVxuLnVpLmJhc2ljLnByaW1hcnkuYnV0dG9ucyAuYWN0aXZlLmJ1dHRvbixcbi51aS5iYXNpYy5wcmltYXJ5LmFjdGl2ZS5idXR0b24ge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggI2U4MTcxYyBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogI2M0MjEyNSAhaW1wb3J0YW50O1xufVxuLnVpLmJhc2ljLnByaW1hcnkuYnV0dG9ucyAuYnV0dG9uOmFjdGl2ZSxcbi51aS5iYXNpYy5wcmltYXJ5LmJ1dHRvbjphY3RpdmUge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggI2M0MjEyNSBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogI2M0MjEyNSAhaW1wb3J0YW50O1xufVxuLnVpLmJ1dHRvbnM6bm90KC52ZXJ0aWNhbCkgPiAuYmFzaWMucHJpbWFyeS5idXR0b246bm90KDpmaXJzdC1jaGlsZCkge1xuICBtYXJnaW4tbGVmdDogLTFweDtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2Vjb25kYXJ5XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTdGFuZGFyZCAqL1xuLnVpLnNlY29uZGFyeS5idXR0b25zIC5idXR0b24sXG4udWkuc2Vjb25kYXJ5LmJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDAwMDA7XG4gIGNvbG9yOiAjZmZmZmZmO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbiAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbn1cbi51aS5zZWNvbmRhcnkuYnV0dG9uIHtcbiAgYm94LXNoYWRvdzogMHB4IDBlbSAwcHggMHB4IHJnYmEoMzQsIDM2LCAzOCwgMC4xNSkgaW5zZXQ7XG59XG4udWkuc2Vjb25kYXJ5LmJ1dHRvbnMgLmJ1dHRvbjpob3Zlcixcbi51aS5zZWNvbmRhcnkuYnV0dG9uOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzBkMGQwZDtcbiAgY29sb3I6ICNmZmZmZmY7XG4gIHRleHQtc2hhZG93OiBub25lO1xufVxuLnVpLnNlY29uZGFyeS5idXR0b25zIC5idXR0b246Zm9jdXMsXG4udWkuc2Vjb25kYXJ5LmJ1dHRvbjpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxNDE0MTQ7XG4gIGNvbG9yOiAjZmZmZmZmO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbn1cbi51aS5zZWNvbmRhcnkuYnV0dG9ucyAuYnV0dG9uOmFjdGl2ZSxcbi51aS5zZWNvbmRhcnkuYnV0dG9uOmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxYTFhMWE7XG4gIGNvbG9yOiAjZmZmZmZmO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbn1cbi51aS5zZWNvbmRhcnkuYnV0dG9ucyAuYWN0aXZlLmJ1dHRvbixcbi51aS5zZWNvbmRhcnkuYnV0dG9ucyAuYWN0aXZlLmJ1dHRvbjphY3RpdmUsXG4udWkuc2Vjb25kYXJ5LmFjdGl2ZS5idXR0b24sXG4udWkuc2Vjb25kYXJ5LmJ1dHRvbiAuYWN0aXZlLmJ1dHRvbjphY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMGQwZDBkO1xuICBjb2xvcjogI2ZmZmZmZjtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG59XG4vKiBCYXNpYyAqL1xuLnVpLmJhc2ljLnNlY29uZGFyeS5idXR0b25zIC5idXR0b24sXG4udWkuYmFzaWMuc2Vjb25kYXJ5LmJ1dHRvbiB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjMDAwMDAwIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjMDAwMDAwICFpbXBvcnRhbnQ7XG59XG4udWkuYmFzaWMuc2Vjb25kYXJ5LmJ1dHRvbnMgLmJ1dHRvbjpob3Zlcixcbi51aS5iYXNpYy5zZWNvbmRhcnkuYnV0dG9uOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICMwZDBkMGQgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICMwZDBkMGQgIWltcG9ydGFudDtcbn1cbi51aS5iYXNpYy5zZWNvbmRhcnkuYnV0dG9ucyAuYnV0dG9uOmZvY3VzLFxuLnVpLmJhc2ljLnNlY29uZGFyeS5idXR0b246Zm9jdXMge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggIzE0MTQxNCBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogIzBkMGQwZCAhaW1wb3J0YW50O1xufVxuLnVpLmJhc2ljLnNlY29uZGFyeS5idXR0b25zIC5hY3RpdmUuYnV0dG9uLFxuLnVpLmJhc2ljLnNlY29uZGFyeS5hY3RpdmUuYnV0dG9uIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICMwZDBkMGQgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICMxYTFhMWEgIWltcG9ydGFudDtcbn1cbi51aS5iYXNpYy5zZWNvbmRhcnkuYnV0dG9ucyAuYnV0dG9uOmFjdGl2ZSxcbi51aS5iYXNpYy5zZWNvbmRhcnkuYnV0dG9uOmFjdGl2ZSB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjMWExYTFhIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjMWExYTFhICFpbXBvcnRhbnQ7XG59XG4udWkuYnV0dG9uczpub3QoLnZlcnRpY2FsKSA+IC5iYXNpYy5wcmltYXJ5LmJ1dHRvbjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gIG1hcmdpbi1sZWZ0OiAtMXB4O1xufVxuLyotLS0tLS0tLS0tLS0tLS1cbiAgICBQb3NpdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTdGFuZGFyZCAqL1xuLnVpLnBvc2l0aXZlLmJ1dHRvbnMgLmJ1dHRvbixcbi51aS5wb3NpdGl2ZS5idXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTlhNTMxO1xuICBjb2xvcjogI2ZmZmZmZjtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG4gIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG59XG4udWkucG9zaXRpdmUuYnV0dG9uIHtcbiAgYm94LXNoYWRvdzogMHB4IDBlbSAwcHggMHB4IHJnYmEoMzQsIDM2LCAzOCwgMC4xNSkgaW5zZXQ7XG59XG4udWkucG9zaXRpdmUuYnV0dG9ucyAuYnV0dG9uOmhvdmVyLFxuLnVpLnBvc2l0aXZlLmJ1dHRvbjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxMDk1MjY7XG4gIGNvbG9yOiAjZmZmZmZmO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbn1cbi51aS5wb3NpdGl2ZS5idXR0b25zIC5idXR0b246Zm9jdXMsXG4udWkucG9zaXRpdmUuYnV0dG9uOmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzA5OGQxZjtcbiAgY29sb3I6ICNmZmZmZmY7XG4gIHRleHQtc2hhZG93OiBub25lO1xufVxuLnVpLnBvc2l0aXZlLmJ1dHRvbnMgLmJ1dHRvbjphY3RpdmUsXG4udWkucG9zaXRpdmUuYnV0dG9uOmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxMjc5MjQ7XG4gIGNvbG9yOiAjZmZmZmZmO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbn1cbi51aS5wb3NpdGl2ZS5idXR0b25zIC5hY3RpdmUuYnV0dG9uLFxuLnVpLnBvc2l0aXZlLmJ1dHRvbnMgLmFjdGl2ZS5idXR0b246YWN0aXZlLFxuLnVpLnBvc2l0aXZlLmFjdGl2ZS5idXR0b24sXG4udWkucG9zaXRpdmUuYnV0dG9uIC5hY3RpdmUuYnV0dG9uOmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwZDk4MjQ7XG4gIGNvbG9yOiAjZmZmZmZmO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbn1cbi8qIEJhc2ljICovXG4udWkuYmFzaWMucG9zaXRpdmUuYnV0dG9ucyAuYnV0dG9uLFxuLnVpLmJhc2ljLnBvc2l0aXZlLmJ1dHRvbiB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjMTlhNTMxIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjMTlhNTMxICFpbXBvcnRhbnQ7XG59XG4udWkuYmFzaWMucG9zaXRpdmUuYnV0dG9ucyAuYnV0dG9uOmhvdmVyLFxuLnVpLmJhc2ljLnBvc2l0aXZlLmJ1dHRvbjpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjMTA5NTI2IGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjMTA5NTI2ICFpbXBvcnRhbnQ7XG59XG4udWkuYmFzaWMucG9zaXRpdmUuYnV0dG9ucyAuYnV0dG9uOmZvY3VzLFxuLnVpLmJhc2ljLnBvc2l0aXZlLmJ1dHRvbjpmb2N1cyB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjMDk4ZDFmIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjMTA5NTI2ICFpbXBvcnRhbnQ7XG59XG4udWkuYmFzaWMucG9zaXRpdmUuYnV0dG9ucyAuYWN0aXZlLmJ1dHRvbixcbi51aS5iYXNpYy5wb3NpdGl2ZS5hY3RpdmUuYnV0dG9uIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICMwZDk4MjQgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICMxMjc5MjQgIWltcG9ydGFudDtcbn1cbi51aS5iYXNpYy5wb3NpdGl2ZS5idXR0b25zIC5idXR0b246YWN0aXZlLFxuLnVpLmJhc2ljLnBvc2l0aXZlLmJ1dHRvbjphY3RpdmUge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggIzEyNzkyNCBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogIzEyNzkyNCAhaW1wb3J0YW50O1xufVxuLnVpLmJ1dHRvbnM6bm90KC52ZXJ0aWNhbCkgPiAuYmFzaWMucHJpbWFyeS5idXR0b246bm90KDpmaXJzdC1jaGlsZCkge1xuICBtYXJnaW4tbGVmdDogLTFweDtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5lZ2F0aXZlXG4tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFN0YW5kYXJkICovXG4udWkubmVnYXRpdmUuYnV0dG9ucyAuYnV0dG9uLFxuLnVpLm5lZ2F0aXZlLmJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkZTNhM2U7XG4gIGNvbG9yOiAjZmZmZmZmO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbiAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbn1cbi51aS5uZWdhdGl2ZS5idXR0b24ge1xuICBib3gtc2hhZG93OiAwcHggMGVtIDBweCAwcHggcmdiYSgzNCwgMzYsIDM4LCAwLjE1KSBpbnNldDtcbn1cbi51aS5uZWdhdGl2ZS5idXR0b25zIC5idXR0b246aG92ZXIsXG4udWkubmVnYXRpdmUuYnV0dG9uOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2UzMWIyMDtcbiAgY29sb3I6ICNmZmZmZmY7XG4gIHRleHQtc2hhZG93OiBub25lO1xufVxuLnVpLm5lZ2F0aXZlLmJ1dHRvbnMgLmJ1dHRvbjpmb2N1cyxcbi51aS5uZWdhdGl2ZS5idXR0b246Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGUxMTE2O1xuICBjb2xvcjogI2ZmZmZmZjtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG59XG4udWkubmVnYXRpdmUuYnV0dG9ucyAuYnV0dG9uOmFjdGl2ZSxcbi51aS5uZWdhdGl2ZS5idXR0b246YWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2M0MjEyNTtcbiAgY29sb3I6ICNmZmZmZmY7XG4gIHRleHQtc2hhZG93OiBub25lO1xufVxuLnVpLm5lZ2F0aXZlLmJ1dHRvbnMgLmFjdGl2ZS5idXR0b24sXG4udWkubmVnYXRpdmUuYnV0dG9ucyAuYWN0aXZlLmJ1dHRvbjphY3RpdmUsXG4udWkubmVnYXRpdmUuYWN0aXZlLmJ1dHRvbixcbi51aS5uZWdhdGl2ZS5idXR0b24gLmFjdGl2ZS5idXR0b246YWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2U4MTcxYztcbiAgY29sb3I6ICNmZmZmZmY7XG4gIHRleHQtc2hhZG93OiBub25lO1xufVxuLyogQmFzaWMgKi9cbi51aS5iYXNpYy5uZWdhdGl2ZS5idXR0b25zIC5idXR0b24sXG4udWkuYmFzaWMubmVnYXRpdmUuYnV0dG9uIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICNkZTNhM2UgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICNkZTNhM2UgIWltcG9ydGFudDtcbn1cbi51aS5iYXNpYy5uZWdhdGl2ZS5idXR0b25zIC5idXR0b246aG92ZXIsXG4udWkuYmFzaWMubmVnYXRpdmUuYnV0dG9uOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICNlMzFiMjAgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICNlMzFiMjAgIWltcG9ydGFudDtcbn1cbi51aS5iYXNpYy5uZWdhdGl2ZS5idXR0b25zIC5idXR0b246Zm9jdXMsXG4udWkuYmFzaWMubmVnYXRpdmUuYnV0dG9uOmZvY3VzIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICNkZTExMTYgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICNlMzFiMjAgIWltcG9ydGFudDtcbn1cbi51aS5iYXNpYy5uZWdhdGl2ZS5idXR0b25zIC5hY3RpdmUuYnV0dG9uLFxuLnVpLmJhc2ljLm5lZ2F0aXZlLmFjdGl2ZS5idXR0b24ge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggI2U4MTcxYyBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogI2M0MjEyNSAhaW1wb3J0YW50O1xufVxuLnVpLmJhc2ljLm5lZ2F0aXZlLmJ1dHRvbnMgLmJ1dHRvbjphY3RpdmUsXG4udWkuYmFzaWMubmVnYXRpdmUuYnV0dG9uOmFjdGl2ZSB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjYzQyMTI1IGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjYzQyMTI1ICFpbXBvcnRhbnQ7XG59XG4udWkuYnV0dG9uczpub3QoLnZlcnRpY2FsKSA+IC5iYXNpYy5wcmltYXJ5LmJ1dHRvbjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gIG1hcmdpbi1sZWZ0OiAtMXB4O1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIEdyb3Vwc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi51aS5idXR0b25zIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIGZvbnQtc2l6ZTogMGVtO1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG4gIG1hcmdpbjogMGVtIDAuMjVlbSAwZW0gMGVtO1xufVxuLnVpLmJ1dHRvbnM6bm90KC5iYXNpYyk6bm90KC5pbnZlcnRlZCkge1xuICBib3gtc2hhZG93OiBub25lO1xufVxuLyogQ2xlYXJmaXggKi9cbi51aS5idXR0b25zOmFmdGVyIHtcbiAgY29udGVudDogXCIuXCI7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBoZWlnaHQ6IDA7XG4gIGNsZWFyOiBib3RoO1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG59XG4vKiBTdGFuZGFyZCBHcm91cCAqL1xuLnVpLmJ1dHRvbnMgLmJ1dHRvbiB7XG4gIGZsZXg6IDEgMCBhdXRvO1xuICBtYXJnaW46IDBlbTtcbiAgYm9yZGVyLXJhZGl1czogMGVtO1xuICBtYXJnaW46IDBweCAwcHggMHB4IDBweDtcbn1cbi51aS5idXR0b25zID4gLnVpLmJ1dHRvbjpub3QoLmJhc2ljKTpub3QoLmludmVydGVkKSxcbi51aS5idXR0b25zOm5vdCguYmFzaWMpOm5vdCguaW52ZXJ0ZWQpID4gLmJ1dHRvbiB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCB0cmFuc3BhcmVudCBpbnNldCwgMHB4IDBlbSAwcHggMHB4IHJnYmEoMzQsIDM2LCAzOCwgMC4xNSkgaW5zZXQ7XG59XG4udWkuYnV0dG9ucyAuYnV0dG9uOmZpcnN0LWNoaWxkIHtcbiAgYm9yZGVyLWxlZnQ6IG5vbmU7XG4gIG1hcmdpbi1sZWZ0OiAwZW07XG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDAuNHJlbTtcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMC40cmVtO1xufVxuLnVpLmJ1dHRvbnMgLmJ1dHRvbjpsYXN0LWNoaWxkIHtcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDAuNHJlbTtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDAuNHJlbTtcbn1cbi8qIFZlcnRpY2FsICBTdHlsZSAqL1xuLnVpLnZlcnRpY2FsLmJ1dHRvbnMge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbn1cbi51aS52ZXJ0aWNhbC5idXR0b25zIC5idXR0b24ge1xuICBkaXNwbGF5OiBibG9jaztcbiAgZmxvYXQ6IG5vbmU7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW46IDBweCAwcHggMHB4IDBweDtcbiAgYm94LXNoYWRvdzogbm9uZTtcbiAgYm9yZGVyLXJhZGl1czogMGVtO1xufVxuLnVpLnZlcnRpY2FsLmJ1dHRvbnMgLmJ1dHRvbjpmaXJzdC1jaGlsZCB7XG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDAuNHJlbTtcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDAuNHJlbTtcbn1cbi51aS52ZXJ0aWNhbC5idXR0b25zIC5idXR0b246bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1ib3R0b206IDBweDtcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMC40cmVtO1xuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMC40cmVtO1xufVxuLnVpLnZlcnRpY2FsLmJ1dHRvbnMgLmJ1dHRvbjpvbmx5LWNoaWxkIHtcbiAgYm9yZGVyLXJhZGl1czogMC40cmVtO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFRoZW1lIE92ZXJyaWRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIE92ZXJyaWRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIVxuICogIyBTZW1hbnRpYyBVSSAtIENvbnRhaW5lclxuICogaHR0cDovL2dpdGh1Yi5jb20vc2VtYW50aWMtb3JnL3NlbWFudGljLXVpL1xuICpcbiAqXG4gKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2VcbiAqIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVRcbiAqXG4gKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qXG5cbuKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVlyAg4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4pWXICAg4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWXXG7ilZrilZDilZDilojilojilZTilZDilZDilZ3ilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKWiOKWiOKVlyDilojilojilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilZTilZDilZDilZDilZDilZ1cbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4pWU4paI4paI4paI4paI4pWU4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilojilojilojilojilojilZdcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVlOKVkOKVkOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4paI4paI4pWR4pWa4paI4paI4pWU4pWd4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilZrilZDilZDilZDilZDilojilojilZFcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWRIOKVmuKVkOKVnSDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZFcbiAgIOKVmuKVkOKVnSAgIOKVmuKVkOKVnSAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWdICAgICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ1cblxuKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIFRoZW1lIFNlbGVjdGlvblxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFRvIG92ZXJyaWRlIGEgdGhlbWUgZm9yIGFuIGluZGl2aWR1YWwgZWxlbWVudFxuICAgc3BlY2lmeSB0aGVtZSBuYW1lIGJlbG93XG4qL1xuLyogR2xvYmFsICovXG4vKiBFbGVtZW50cyAqL1xuLyogQ29sbGVjdGlvbnMgKi9cbi8qIE1vZHVsZXMgKi9cbi8qIFZpZXdzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgRm9sZGVyc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFBhdGggdG8gdGhlbWUgcGFja2FnZXMgKi9cbi8qIFBhdGggdG8gc2l0ZSBvdmVycmlkZSBmb2xkZXIgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBJbXBvcnQgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBJbXBvcnQgRGlyZWN0aXZlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgVGhlbWVcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgU2l0ZSBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0IHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRvcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogUGFja2FnZWQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZG9ycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBDb21wb25lbnQncyBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kb3JzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFNpdGUgdGhlbWUgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgIFVzZXIgR2xvYmFsIFZhcmlhYmxlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIG1hcnNvIGNvbG9ycyAqL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuIENvbXBvbmVudCBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0ICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgQ29udGFpbmVyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRWxlbWVudFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWluaW11bSBHdXR0ZXIgaXMgdXNlZCB0byBkZXRlcm1pbmUgIHRoZSBtYXhpbXVtIGNvbnRhaW5lciB3aWR0aCBmb3IgYSBnaXZlbiBkZXZpY2UgKi9cbi8qIERldmljZXMgKi9cbi8qIENvdXBsaW5nIChBZGQgTmVnYXRpdmUgTWFyZ2luIHRvIGNvbnRhaW5lciBzaXplKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgVHlwZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRleHQgKi9cbi8qIFBhY2thZ2VkIFRoZW1lICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgQ29udGFpbmVyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRWxlbWVudFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWluaW11bSBHdXR0ZXIgaXMgdXNlZCB0byBkZXRlcm1pbmUgIHRoZSBtYXhpbXVtIGNvbnRhaW5lciB3aWR0aCBmb3IgYSBnaXZlbiBkZXZpY2UgKi9cbi8qIERldmljZXMgKi9cbi8qIENvdXBsaW5nIChBZGQgTmVnYXRpdmUgTWFyZ2luIHRvIGNvbnRhaW5lciBzaXplKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgVHlwZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRleHQgKi9cbi8qIFNpdGUgVGhlbWUgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgVXNlciBWYXJpYWJsZSBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIE1peC1pbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE92ZXJyaWRlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBFbmQgQ29uZmlnICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgQ29udGFpbmVyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogQWxsIFNpemVzICovXG4udWkuY29udGFpbmVyIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1heC13aWR0aDogMTAwJSAhaW1wb3J0YW50O1xufVxuLyogTW9iaWxlICovXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC51aS5jb250YWluZXIge1xuICAgIHdpZHRoOiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luLWxlZnQ6IDFlbSAhaW1wb3J0YW50O1xuICAgIG1hcmdpbi1yaWdodDogMWVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLmdyaWQuY29udGFpbmVyIHtcbiAgICB3aWR0aDogYXV0byAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5yZWxheGVkLmdyaWQuY29udGFpbmVyIHtcbiAgICB3aWR0aDogYXV0byAhaW1wb3J0YW50O1xuICB9XG4gIC51aS52ZXJ5LnJlbGF4ZWQuZ3JpZC5jb250YWluZXIge1xuICAgIHdpZHRoOiBhdXRvICFpbXBvcnRhbnQ7XG4gIH1cbn1cbi8qIFRhYmxldCAqL1xuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NjhweCkgYW5kIChtYXgtd2lkdGg6IDk5MXB4KSB7XG4gIC51aS5jb250YWluZXIge1xuICAgIHdpZHRoOiA3MzFweDtcbiAgICBtYXJnaW4tbGVmdDogYXV0byAhaW1wb3J0YW50O1xuICAgIG1hcmdpbi1yaWdodDogYXV0byAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5ncmlkLmNvbnRhaW5lciB7XG4gICAgd2lkdGg6IGNhbGMoNzMxcHggKyAycmVtKSAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5yZWxheGVkLmdyaWQuY29udGFpbmVyIHtcbiAgICB3aWR0aDogY2FsYyg3MzFweCArIDNyZW0pICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLnZlcnkucmVsYXhlZC5ncmlkLmNvbnRhaW5lciB7XG4gICAgd2lkdGg6IGNhbGMoNzMxcHggKyA1cmVtKSAhaW1wb3J0YW50O1xuICB9XG59XG4vKiBTbWFsbCBNb25pdG9yICovXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDk5MnB4KSBhbmQgKG1heC13aWR0aDogMTE5OXB4KSB7XG4gIC51aS5jb250YWluZXIge1xuICAgIHdpZHRoOiA5NDVweDtcbiAgICBtYXJnaW4tbGVmdDogYXV0byAhaW1wb3J0YW50O1xuICAgIG1hcmdpbi1yaWdodDogYXV0byAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5ncmlkLmNvbnRhaW5lciB7XG4gICAgd2lkdGg6IGNhbGMoOTQ1cHggKyAycmVtKSAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5yZWxheGVkLmdyaWQuY29udGFpbmVyIHtcbiAgICB3aWR0aDogY2FsYyg5NDVweCArIDNyZW0pICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLnZlcnkucmVsYXhlZC5ncmlkLmNvbnRhaW5lciB7XG4gICAgd2lkdGg6IGNhbGMoOTQ1cHggKyA1cmVtKSAhaW1wb3J0YW50O1xuICB9XG59XG4vKiBMYXJnZSBNb25pdG9yICovXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEyMDBweCkge1xuICAudWkuY29udGFpbmVyIHtcbiAgICB3aWR0aDogMTE0M3B4O1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLmdyaWQuY29udGFpbmVyIHtcbiAgICB3aWR0aDogY2FsYygxMTQzcHggKyAycmVtKSAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5yZWxheGVkLmdyaWQuY29udGFpbmVyIHtcbiAgICB3aWR0aDogY2FsYygxMTQzcHggKyAzcmVtKSAhaW1wb3J0YW50O1xuICB9XG4gIC51aS52ZXJ5LnJlbGF4ZWQuZ3JpZC5jb250YWluZXIge1xuICAgIHdpZHRoOiBjYWxjKDExNDNweCArIDVyZW0pICFpbXBvcnRhbnQ7XG4gIH1cbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgVHlwZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBUZXh0IENvbnRhaW5lciAqL1xuLnVpLnRleHQuY29udGFpbmVyIHtcbiAgZm9udC1mYW1pbHk6ICdFeG8gMicsICdMYXRvJywgQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZjtcbiAgbWF4LXdpZHRoOiA3MDBweCAhaW1wb3J0YW50O1xuICBsaW5lLWhlaWdodDogMS41O1xufVxuLnVpLnRleHQuY29udGFpbmVyIHtcbiAgZm9udC1zaXplOiAxLjFyZW07XG59XG4vKiBGbHVpZCAqL1xuLnVpLmZsdWlkLmNvbnRhaW5lciB7XG4gIHdpZHRoOiAxMDAlO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgVmFyaWF0aW9uc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi51aVtjbGFzcyo9XCJsZWZ0IGFsaWduZWRcIl0uY29udGFpbmVyIHtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbn1cbi51aVtjbGFzcyo9XCJjZW50ZXIgYWxpZ25lZFwiXS5jb250YWluZXIge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG4udWlbY2xhc3MqPVwicmlnaHQgYWxpZ25lZFwiXS5jb250YWluZXIge1xuICB0ZXh0LWFsaWduOiByaWdodDtcbn1cbi51aS5qdXN0aWZpZWQuY29udGFpbmVyIHtcbiAgdGV4dC1hbGlnbjoganVzdGlmeTtcbiAgaHlwaGVuczogYXV0bztcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBUaGVtZSBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiFcbiAqICMgU2VtYW50aWMgVUkgLSBEaXZpZGVyXG4gKiBodHRwOi8vZ2l0aHViLmNvbS9zZW1hbnRpYy1vcmcvc2VtYW50aWMtdWkvXG4gKlxuICpcbiAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZVxuICogaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVFxuICpcbiAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLypcblxu4paI4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWXICDilojilojilZfilojilojilojilojilojilojilojilZfilojilojilojilZcgICDilojilojilojilZfilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZdcbuKVmuKVkOKVkOKWiOKWiOKVlOKVkOKVkOKVneKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWd4paI4paI4paI4paI4pWXIOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVnVxuICAg4paI4paI4pWRICAg4paI4paI4paI4paI4paI4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilZTilojilojilojilojilZTilojilojilZHilojilojilojilojilojilZcgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl1xuICAg4paI4paI4pWRICAg4paI4paI4pWU4pWQ4pWQ4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilojilojilZHilZrilojilojilZTilZ3ilojilojilZHilojilojilZTilZDilZDilZ0gIOKVmuKVkOKVkOKVkOKVkOKWiOKWiOKVkVxuICAg4paI4paI4pWRICAg4paI4paI4pWRICDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilZEg4pWa4pWQ4pWdIOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkVxuICAg4pWa4pWQ4pWdICAg4pWa4pWQ4pWdICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZ0gICAgIOKVmuKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVnVxuXG4qL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgVGhlbWUgU2VsZWN0aW9uXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogVG8gb3ZlcnJpZGUgYSB0aGVtZSBmb3IgYW4gaW5kaXZpZHVhbCBlbGVtZW50XG4gICBzcGVjaWZ5IHRoZW1lIG5hbWUgYmVsb3dcbiovXG4vKiBHbG9iYWwgKi9cbi8qIEVsZW1lbnRzICovXG4vKiBDb2xsZWN0aW9ucyAqL1xuLyogTW9kdWxlcyAqL1xuLyogVmlld3MgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBGb2xkZXJzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogUGF0aCB0byB0aGVtZSBwYWNrYWdlcyAqL1xuLyogUGF0aCB0byBzaXRlIG92ZXJyaWRlIGZvbGRlciAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIEltcG9ydCBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIEltcG9ydCBEaXJlY3RpdmVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBUaGVtZVxuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICBTaXRlIFZhcmlhYmxlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERlZmF1bHQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZG9ycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBQYWNrYWdlZCBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kb3JzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIENvbXBvbmVudCdzIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRvcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogU2l0ZSB0aGVtZSBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgVXNlciBHbG9iYWwgVmFyaWFibGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogbWFyc28gY29sb3JzICovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gQ29tcG9uZW50IFZhcmlhYmxlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERlZmF1bHQgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBEaXZpZGVyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRWxlbWVudFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGV4dCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQ291cGxpbmdcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEljb24gKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBWYXJpYXRpb25zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogSG9yaXpvbnRhbCAvIFZlcnRpY2FsICovXG4vKiBJbnZlcnRlZCAqL1xuLyogU2VjdGlvbiAqL1xuLyogU2l6ZXMgKi9cbi8qIFBhY2thZ2VkIFRoZW1lICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgRGl2aWRlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVsZW1lbnRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRleHQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIENvdXBsaW5nXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJY29uICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgVmFyaWF0aW9uc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIEhvcml6b250YWwgLyBWZXJ0aWNhbCAqL1xuLyogSW52ZXJ0ZWQgKi9cbi8qIFNlY3Rpb24gKi9cbi8qIFNpemVzICovXG4vKiBTaXRlIFRoZW1lICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgIFVzZXIgVmFyaWFibGUgT3ZlcnJpZGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBNaXgtaW5zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBPdmVycmlkZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRW5kIENvbmZpZyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIERpdmlkZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4udWkuZGl2aWRlciB7XG4gIG1hcmdpbjogMXJlbSAwcmVtO1xuICBsaW5lLWhlaWdodDogMTtcbiAgaGVpZ2h0OiAwZW07XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBsZXR0ZXItc3BhY2luZzogMC4wNWVtO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg1KTtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwKTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2ljXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmRpdmlkZXI6bm90KC52ZXJ0aWNhbCk6bm90KC5ob3Jpem9udGFsKSB7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgIENvdXBsaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogQWxsb3cgZGl2aWRlciBiZXR3ZWVuIGVhY2ggY29sdW1uIHJvdyAqL1xuLnVpLmdyaWQgPiAuY29sdW1uICsgLmRpdmlkZXIsXG4udWkuZ3JpZCA+IC5yb3cgPiAuY29sdW1uICsgLmRpdmlkZXIge1xuICBsZWZ0OiBhdXRvO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgSG9yaXpvbnRhbFxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5ob3Jpem9udGFsLmRpdmlkZXIge1xuICBkaXNwbGF5OiB0YWJsZTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgaGVpZ2h0OiBhdXRvO1xuICBtYXJnaW46ICcnO1xuICBsaW5lLWhlaWdodDogMTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuLnVpLmhvcml6b250YWwuZGl2aWRlcjpiZWZvcmUsXG4udWkuaG9yaXpvbnRhbC5kaXZpZGVyOmFmdGVyIHtcbiAgY29udGVudDogJyc7XG4gIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdG9wOiA1MCU7XG4gIHdpZHRoOiA1MCU7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG59XG4udWkuaG9yaXpvbnRhbC5kaXZpZGVyOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IHJpZ2h0IDFlbSB0b3AgNTAlO1xufVxuLnVpLmhvcml6b250YWwuZGl2aWRlcjphZnRlciB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IGxlZnQgMWVtIHRvcCA1MCU7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgVmVydGljYWxcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkudmVydGljYWwuZGl2aWRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMjtcbiAgdG9wOiA1MCU7XG4gIGxlZnQ6IDUwJTtcbiAgbWFyZ2luOiAwcmVtO1xuICBwYWRkaW5nOiAwZW07XG4gIHdpZHRoOiBhdXRvO1xuICBoZWlnaHQ6IDUwJTtcbiAgbGluZS1oZWlnaHQ6IDBlbTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG59XG4udWkudmVydGljYWwuZGl2aWRlcjpiZWZvcmUsXG4udWkudmVydGljYWwuZGl2aWRlcjphZnRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogNTAlO1xuICBjb250ZW50OiAnJztcbiAgei1pbmRleDogMztcbiAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpO1xuICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSk7XG4gIHdpZHRoOiAwJTtcbiAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAxcmVtKTtcbn1cbi51aS52ZXJ0aWNhbC5kaXZpZGVyOmJlZm9yZSB7XG4gIHRvcDogLTEwMCU7XG59XG4udWkudmVydGljYWwuZGl2aWRlcjphZnRlciB7XG4gIHRvcDogYXV0bztcbiAgYm90dG9tOiAwcHg7XG59XG4vKiBJbnNpZGUgZ3JpZCAqL1xuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAudWkuc3RhY2thYmxlLmdyaWQgLnVpLnZlcnRpY2FsLmRpdmlkZXIsXG4gIC51aS5ncmlkIC5zdGFja2FibGUucm93IC51aS52ZXJ0aWNhbC5kaXZpZGVyIHtcbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIGhlaWdodDogYXV0bztcbiAgICBtYXJnaW46ICcnO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICB9XG4gIC51aS5zdGFja2FibGUuZ3JpZCAudWkudmVydGljYWwuZGl2aWRlcjpiZWZvcmUsXG4gIC51aS5ncmlkIC5zdGFja2FibGUucm93IC51aS52ZXJ0aWNhbC5kaXZpZGVyOmJlZm9yZSxcbiAgLnVpLnN0YWNrYWJsZS5ncmlkIC51aS52ZXJ0aWNhbC5kaXZpZGVyOmFmdGVyLFxuICAudWkuZ3JpZCAuc3RhY2thYmxlLnJvdyAudWkudmVydGljYWwuZGl2aWRlcjphZnRlciB7XG4gICAgcG9zaXRpb246IHN0YXRpYztcbiAgICBsZWZ0OiAwO1xuICAgIGJvcmRlci1sZWZ0OiBub25lO1xuICAgIGJvcmRlci1yaWdodDogbm9uZTtcbiAgICBjb250ZW50OiAnJztcbiAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0b3A6IDUwJTtcbiAgICB3aWR0aDogNTAlO1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIH1cbiAgLnVpLnN0YWNrYWJsZS5ncmlkIC51aS52ZXJ0aWNhbC5kaXZpZGVyOmJlZm9yZSxcbiAgLnVpLmdyaWQgLnN0YWNrYWJsZS5yb3cgLnVpLnZlcnRpY2FsLmRpdmlkZXI6YmVmb3JlIHtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiByaWdodCAxZW0gdG9wIDUwJTtcbiAgfVxuICAudWkuc3RhY2thYmxlLmdyaWQgLnVpLnZlcnRpY2FsLmRpdmlkZXI6YWZ0ZXIsXG4gIC51aS5ncmlkIC5zdGFja2FibGUucm93IC51aS52ZXJ0aWNhbC5kaXZpZGVyOmFmdGVyIHtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBsZWZ0IDFlbSB0b3AgNTAlO1xuICB9XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgICBJY29uXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmRpdmlkZXIgPiAuaWNvbiB7XG4gIG1hcmdpbjogMHJlbTtcbiAgZm9udC1zaXplOiAxcmVtO1xuICBoZWlnaHQ6IDFlbTtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgVmFyaWF0aW9uc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBIaWRkZW5cbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuaGlkZGVuLmRpdmlkZXIge1xuICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG59XG4udWkuaGlkZGVuLmRpdmlkZXI6YmVmb3JlLFxuLnVpLmhpZGRlbi5kaXZpZGVyOmFmdGVyIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBJbnZlcnRlZFxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5kaXZpZGVyLmludmVydGVkLFxuLnVpLnZlcnRpY2FsLmludmVydGVkLmRpdmlkZXIsXG4udWkuaG9yaXpvbnRhbC5pbnZlcnRlZC5kaXZpZGVyIHtcbiAgY29sb3I6ICNmZmZmZmY7XG59XG4udWkuZGl2aWRlci5pbnZlcnRlZCxcbi51aS5kaXZpZGVyLmludmVydGVkOmFmdGVyLFxuLnVpLmRpdmlkZXIuaW52ZXJ0ZWQ6YmVmb3JlIHtcbiAgYm9yZGVyLXRvcC1jb2xvcjogcmdiYSgzNCwgMzYsIDM4LCAwLjE1KSAhaW1wb3J0YW50O1xuICBib3JkZXItbGVmdC1jb2xvcjogcmdiYSgzNCwgMzYsIDM4LCAwLjE1KSAhaW1wb3J0YW50O1xuICBib3JkZXItYm90dG9tLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1yaWdodC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KSAhaW1wb3J0YW50O1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgIEZpdHRlZFxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5maXR0ZWQuZGl2aWRlciB7XG4gIG1hcmdpbjogMGVtO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgIENsZWFyaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmNsZWFyaW5nLmRpdmlkZXIge1xuICBjbGVhcjogYm90aDtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBTZWN0aW9uXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLnNlY3Rpb24uZGl2aWRlciB7XG4gIG1hcmdpbi10b3A6IDJyZW07XG4gIG1hcmdpbi1ib3R0b206IDJyZW07XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmRpdmlkZXIge1xuICBmb250LXNpemU6IDFyZW07XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgVGhlbWUgT3ZlcnJpZGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLnVpLmhvcml6b250YWwuZGl2aWRlcjpiZWZvcmUsXG4udWkuaG9yaXpvbnRhbC5kaXZpZGVyOmFmdGVyIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCdkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQmFBQUFBQUNDQVlBQUFDdVRIdUtBQUFBR1hSRldIUlRiMlowZDJGeVpRQkJaRzlpWlNCSmJXRm5aVkpsWVdSNWNjbGxQQUFBQXlGcFZGaDBXRTFNT21OdmJTNWhaRzlpWlM1NGJYQUFBQUFBQUR3L2VIQmhZMnRsZENCaVpXZHBiajBpNzd1L0lpQnBaRDBpVnpWTk1FMXdRMlZvYVVoNmNtVlRlazVVWTNwcll6bGtJajgrSUR4NE9uaHRjRzFsZEdFZ2VHMXNibk02ZUQwaVlXUnZZbVU2Ym5NNmJXVjBZUzhpSUhnNmVHMXdkR3M5SWtGa2IySmxJRmhOVUNCRGIzSmxJRFV1TlMxak1ERTBJRGM1TGpFMU1UUTRNU3dnTWpBeE15OHdNeTh4TXkweE1qb3dPVG94TlNBZ0lDQWdJQ0FnSWo0Z1BISmtaanBTUkVZZ2VHMXNibk02Y21SbVBTSm9kSFJ3T2k4dmQzZDNMbmN6TG05eVp5OHhPVGs1THpBeUx6SXlMWEprWmkxemVXNTBZWGd0Ym5NaklqNGdQSEprWmpwRVpYTmpjbWx3ZEdsdmJpQnlaR1k2WVdKdmRYUTlJaUlnZUcxc2JuTTZlRzF3UFNKb2RIUndPaTh2Ym5NdVlXUnZZbVV1WTI5dEwzaGhjQzh4TGpBdklpQjRiV3h1Y3pwNGJYQk5UVDBpYUhSMGNEb3ZMMjV6TG1Ga2IySmxMbU52YlM5NFlYQXZNUzR3TDIxdEx5SWdlRzFzYm5NNmMzUlNaV1k5SW1oMGRIQTZMeTl1Y3k1aFpHOWlaUzVqYjIwdmVHRndMekV1TUM5elZIbHdaUzlTWlhOdmRYSmpaVkpsWmlNaUlIaHRjRHBEY21WaGRHOXlWRzl2YkQwaVFXUnZZbVVnVUdodmRHOXphRzl3SUVORElDaFhhVzVrYjNkektTSWdlRzF3VFUwNlNXNXpkR0Z1WTJWSlJEMGllRzF3TG1scFpEbzFPVGhCUkRZNE9VTkRNVFl4TVVVME9VRTNOVVZHT0VKRE16TXpNakUyTnlJZ2VHMXdUVTA2Ukc5amRXMWxiblJKUkQwaWVHMXdMbVJwWkRvMU9UaEJSRFk0UVVORE1UWXhNVVUwT1VFM05VVkdPRUpETXpNek1qRTJOeUkrSUR4NGJYQk5UVHBFWlhKcGRtVmtSbkp2YlNCemRGSmxaanBwYm5OMFlXNWpaVWxFUFNKNGJYQXVhV2xrT2pVNU9FRkVOamczUTBNeE5qRXhSVFE1UVRjMVJVWTRRa016TXpNeU1UWTNJaUJ6ZEZKbFpqcGtiMk4xYldWdWRFbEVQU0o0YlhBdVpHbGtPalU1T0VGRU5qZzRRME14TmpFeFJUUTVRVGMxUlVZNFFrTXpNek15TVRZM0lpOCtJRHd2Y21SbU9rUmxjMk55YVhCMGFXOXVQaUE4TDNKa1pqcFNSRVkrSUR3dmVEcDRiWEJ0WlhSaFBpQThQM2h3WVdOclpYUWdaVzVrUFNKeUlqOCtWVTUxM2dBQUFEVkpSRUZVZU5yczBERU5BQ0FRQkRCSVdMR0JKUWJ5L21VY0puNXNKWFFtT1FNQUFBQUFBSnF0KzJwckFBQUFBQUNnMnhkZ0FOazZCRVZ1Smd5TUFBQUFBRWxGVGtTdVFtQ0MnKTtcbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgLnVpLnN0YWNrYWJsZS5ncmlkIC51aS52ZXJ0aWNhbC5kaXZpZGVyOmJlZm9yZSxcbiAgLnVpLmdyaWQgLnN0YWNrYWJsZS5yb3cgLnVpLnZlcnRpY2FsLmRpdmlkZXI6YmVmb3JlLFxuICAudWkuc3RhY2thYmxlLmdyaWQgLnVpLnZlcnRpY2FsLmRpdmlkZXI6YWZ0ZXIsXG4gIC51aS5ncmlkIC5zdGFja2FibGUucm93IC51aS52ZXJ0aWNhbC5kaXZpZGVyOmFmdGVyIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ2RhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFCYUFBQUFBQ0NBWUFBQUN1VEh1S0FBQUFHWFJGV0hSVGIyWjBkMkZ5WlFCQlpHOWlaU0JKYldGblpWSmxZV1I1Y2NsbFBBQUFBeUZwVkZoMFdFMU1PbU52YlM1aFpHOWlaUzU0YlhBQUFBQUFBRHcvZUhCaFkydGxkQ0JpWldkcGJqMGk3N3UvSWlCcFpEMGlWelZOTUUxd1EyVm9hVWg2Y21WVGVrNVVZM3ByWXpsa0lqOCtJRHg0T25odGNHMWxkR0VnZUcxc2JuTTZlRDBpWVdSdlltVTZibk02YldWMFlTOGlJSGc2ZUcxd2RHczlJa0ZrYjJKbElGaE5VQ0JEYjNKbElEVXVOUzFqTURFMElEYzVMakUxTVRRNE1Td2dNakF4TXk4d015OHhNeTB4TWpvd09Ub3hOU0FnSUNBZ0lDQWdJajRnUEhKa1pqcFNSRVlnZUcxc2JuTTZjbVJtUFNKb2RIUndPaTh2ZDNkM0xuY3pMbTl5Wnk4eE9UazVMekF5THpJeUxYSmtaaTF6ZVc1MFlYZ3Ribk1qSWo0Z1BISmtaanBFWlhOamNtbHdkR2x2YmlCeVpHWTZZV0p2ZFhROUlpSWdlRzFzYm5NNmVHMXdQU0pvZEhSd09pOHZibk11WVdSdlltVXVZMjl0TDNoaGNDOHhMakF2SWlCNGJXeHVjenA0YlhCTlRUMGlhSFIwY0RvdkwyNXpMbUZrYjJKbExtTnZiUzk0WVhBdk1TNHdMMjF0THlJZ2VHMXNibk02YzNSU1pXWTlJbWgwZEhBNkx5OXVjeTVoWkc5aVpTNWpiMjB2ZUdGd0x6RXVNQzl6Vkhsd1pTOVNaWE52ZFhKalpWSmxaaU1pSUhodGNEcERjbVZoZEc5eVZHOXZiRDBpUVdSdlltVWdVR2h2ZEc5emFHOXdJRU5ESUNoWGFXNWtiM2R6S1NJZ2VHMXdUVTA2U1c1emRHRnVZMlZKUkQwaWVHMXdMbWxwWkRvMU9UaEJSRFk0T1VORE1UWXhNVVUwT1VFM05VVkdPRUpETXpNek1qRTJOeUlnZUcxd1RVMDZSRzlqZFcxbGJuUkpSRDBpZUcxd0xtUnBaRG8xT1RoQlJEWTRRVU5ETVRZeE1VVTBPVUUzTlVWR09FSkRNek16TWpFMk55SStJRHg0YlhCTlRUcEVaWEpwZG1Wa1JuSnZiU0J6ZEZKbFpqcHBibk4wWVc1alpVbEVQU0o0YlhBdWFXbGtPalU1T0VGRU5qZzNRME14TmpFeFJUUTVRVGMxUlVZNFFrTXpNek15TVRZM0lpQnpkRkpsWmpwa2IyTjFiV1Z1ZEVsRVBTSjRiWEF1Wkdsa09qVTVPRUZFTmpnNFEwTXhOakV4UlRRNVFUYzFSVVk0UWtNek16TXlNVFkzSWk4K0lEd3ZjbVJtT2tSbGMyTnlhWEIwYVc5dVBpQThMM0prWmpwU1JFWStJRHd2ZURwNGJYQnRaWFJoUGlBOFAzaHdZV05yWlhRZ1pXNWtQU0p5SWo4K1ZVNTEzZ0FBQURWSlJFRlVlTnJzMERFTkFDQVFCREJJV0xHQkpRYnkvbVVjSm41c0pYUW1PUU1BQUFBQUFKcXQrMnByQUFBQUFBQ2cyeGRnQU5rNkJFVnVKZ3lNQUFBQUFFbEZUa1N1UW1DQycpO1xuICB9XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiFcbiAqICMgU2VtYW50aWMgVUkgLSBGbGFnXG4gKiBodHRwOi8vZ2l0aHViLmNvbS9zZW1hbnRpYy1vcmcvc2VtYW50aWMtdWkvXG4gKlxuICpcbiAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZVxuICogaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVFxuICpcbiAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLypcblxu4paI4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWXICDilojilojilZfilojilojilojilojilojilojilojilZfilojilojilojilZcgICDilojilojilojilZfilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZdcbuKVmuKVkOKVkOKWiOKWiOKVlOKVkOKVkOKVneKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWd4paI4paI4paI4paI4pWXIOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVnVxuICAg4paI4paI4pWRICAg4paI4paI4paI4paI4paI4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilZTilojilojilojilojilZTilojilojilZHilojilojilojilojilojilZcgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl1xuICAg4paI4paI4pWRICAg4paI4paI4pWU4pWQ4pWQ4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilojilojilZHilZrilojilojilZTilZ3ilojilojilZHilojilojilZTilZDilZDilZ0gIOKVmuKVkOKVkOKVkOKVkOKWiOKWiOKVkVxuICAg4paI4paI4pWRICAg4paI4paI4pWRICDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilZEg4pWa4pWQ4pWdIOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkVxuICAg4pWa4pWQ4pWdICAg4pWa4pWQ4pWdICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZ0gICAgIOKVmuKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVnVxuXG4qL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgVGhlbWUgU2VsZWN0aW9uXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogVG8gb3ZlcnJpZGUgYSB0aGVtZSBmb3IgYW4gaW5kaXZpZHVhbCBlbGVtZW50XG4gICBzcGVjaWZ5IHRoZW1lIG5hbWUgYmVsb3dcbiovXG4vKiBHbG9iYWwgKi9cbi8qIEVsZW1lbnRzICovXG4vKiBDb2xsZWN0aW9ucyAqL1xuLyogTW9kdWxlcyAqL1xuLyogVmlld3MgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBGb2xkZXJzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogUGF0aCB0byB0aGVtZSBwYWNrYWdlcyAqL1xuLyogUGF0aCB0byBzaXRlIG92ZXJyaWRlIGZvbGRlciAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIEltcG9ydCBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIEltcG9ydCBEaXJlY3RpdmVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBUaGVtZVxuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICBTaXRlIFZhcmlhYmxlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERlZmF1bHQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZG9ycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBQYWNrYWdlZCBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kb3JzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIENvbXBvbmVudCdzIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRvcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogU2l0ZSB0aGVtZSBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgVXNlciBHbG9iYWwgVmFyaWFibGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogbWFyc28gY29sb3JzICovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gQ29tcG9uZW50IFZhcmlhYmxlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERlZmF1bHQgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBGbGFnXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRWxlbWVudFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUGFja2FnZWQgVGhlbWUgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBGbGFnXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRWxlbWVudFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2l0ZSBUaGVtZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICBGbGFnIFZhcmlhYmxlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBNaXgtaW5zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBPdmVycmlkZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRW5kIENvbmZpZyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBGbGFnXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuaS5mbGFnOm5vdCguaWNvbikge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiAxNnB4O1xuICBoZWlnaHQ6IDExcHg7XG4gIGxpbmUtaGVpZ2h0OiAxMXB4O1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG4gIG1hcmdpbjogMGVtIDAuNWVtIDBlbSAwZW07XG4gIHRleHQtZGVjb3JhdGlvbjogaW5oZXJpdDtcbiAgc3BlYWs6IG5vbmU7XG4gIGZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xufVxuLyogU3ByaXRlICovXG5pLmZsYWc6bm90KC5pY29uKTpiZWZvcmUge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGNvbnRlbnQ6ICcnO1xuICBiYWNrZ3JvdW5kOiB1cmwoXCIuLi8uLi8uLi9pbWFnZXMvc2VtYW50aWMtdWkvZmxhZ3MucG5nXCIpIG5vLXJlcGVhdCAtMTA4cHggLTE5NzZweDtcbiAgd2lkdGg6IDE2cHg7XG4gIGhlaWdodDogMTFweDtcbn1cbi8qIEZsYWcgU3ByaXRlIEJhc2VkIE9uIGh0dHA6Ly93d3cuZmFtZmFtZmFtLmNvbS9sYWIvaWNvbnMvZmxhZ3MvICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgVGhlbWUgT3ZlcnJpZGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuaS5mbGFnLmFkOmJlZm9yZSxcbmkuZmxhZy5hbmRvcnJhOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IDBweCAwcHg7XG59XG5pLmZsYWcuYWU6YmVmb3JlLFxuaS5mbGFnLnVuaXRlZC5hcmFiLmVtaXJhdGVzOmJlZm9yZSxcbmkuZmxhZy51YWU6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogMHB4IC0yNnB4O1xufVxuaS5mbGFnLmFmOmJlZm9yZSxcbmkuZmxhZy5hZmdoYW5pc3RhbjpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwcHggLTUycHg7XG59XG5pLmZsYWcuYWc6YmVmb3JlLFxuaS5mbGFnLmFudGlndWE6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogMHB4IC03OHB4O1xufVxuaS5mbGFnLmFpOmJlZm9yZSxcbmkuZmxhZy5hbmd1aWxsYTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwcHggLTEwNHB4O1xufVxuaS5mbGFnLmFsOmJlZm9yZSxcbmkuZmxhZy5hbGJhbmlhOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IDBweCAtMTMwcHg7XG59XG5pLmZsYWcuYW06YmVmb3JlLFxuaS5mbGFnLmFybWVuaWE6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogMHB4IC0xNTZweDtcbn1cbmkuZmxhZy5hbjpiZWZvcmUsXG5pLmZsYWcubmV0aGVybGFuZHMuYW50aWxsZXM6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogMHB4IC0xODJweDtcbn1cbmkuZmxhZy5hbzpiZWZvcmUsXG5pLmZsYWcuYW5nb2xhOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IDBweCAtMjA4cHg7XG59XG5pLmZsYWcuYXI6YmVmb3JlLFxuaS5mbGFnLmFyZ2VudGluYTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwcHggLTIzNHB4O1xufVxuaS5mbGFnLmFzOmJlZm9yZSxcbmkuZmxhZy5hbWVyaWNhbi5zYW1vYTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwcHggLTI2MHB4O1xufVxuaS5mbGFnLmF0OmJlZm9yZSxcbmkuZmxhZy5hdXN0cmlhOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IDBweCAtMjg2cHg7XG59XG5pLmZsYWcuYXU6YmVmb3JlLFxuaS5mbGFnLmF1c3RyYWxpYTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwcHggLTMxMnB4O1xufVxuaS5mbGFnLmF3OmJlZm9yZSxcbmkuZmxhZy5hcnViYTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwcHggLTMzOHB4O1xufVxuaS5mbGFnLmF4OmJlZm9yZSxcbmkuZmxhZy5hbGFuZC5pc2xhbmRzOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IDBweCAtMzY0cHg7XG59XG5pLmZsYWcuYXo6YmVmb3JlLFxuaS5mbGFnLmF6ZXJiYWlqYW46YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogMHB4IC0zOTBweDtcbn1cbmkuZmxhZy5iYTpiZWZvcmUsXG5pLmZsYWcuYm9zbmlhOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IDBweCAtNDE2cHg7XG59XG5pLmZsYWcuYmI6YmVmb3JlLFxuaS5mbGFnLmJhcmJhZG9zOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IDBweCAtNDQycHg7XG59XG5pLmZsYWcuYmQ6YmVmb3JlLFxuaS5mbGFnLmJhbmdsYWRlc2g6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogMHB4IC00NjhweDtcbn1cbmkuZmxhZy5iZTpiZWZvcmUsXG5pLmZsYWcuYmVsZ2l1bTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwcHggLTQ5NHB4O1xufVxuaS5mbGFnLmJmOmJlZm9yZSxcbmkuZmxhZy5idXJraW5hLmZhc286YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogMHB4IC01MjBweDtcbn1cbmkuZmxhZy5iZzpiZWZvcmUsXG5pLmZsYWcuYnVsZ2FyaWE6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogMHB4IC01NDZweDtcbn1cbmkuZmxhZy5iaDpiZWZvcmUsXG5pLmZsYWcuYmFocmFpbjpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwcHggLTU3MnB4O1xufVxuaS5mbGFnLmJpOmJlZm9yZSxcbmkuZmxhZy5idXJ1bmRpOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IDBweCAtNTk4cHg7XG59XG5pLmZsYWcuYmo6YmVmb3JlLFxuaS5mbGFnLmJlbmluOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IDBweCAtNjI0cHg7XG59XG5pLmZsYWcuYm06YmVmb3JlLFxuaS5mbGFnLmJlcm11ZGE6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogMHB4IC02NTBweDtcbn1cbmkuZmxhZy5ibjpiZWZvcmUsXG5pLmZsYWcuYnJ1bmVpOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IDBweCAtNjc2cHg7XG59XG5pLmZsYWcuYm86YmVmb3JlLFxuaS5mbGFnLmJvbGl2aWE6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogMHB4IC03MDJweDtcbn1cbmkuZmxhZy5icjpiZWZvcmUsXG5pLmZsYWcuYnJhemlsOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IDBweCAtNzI4cHg7XG59XG5pLmZsYWcuYnM6YmVmb3JlLFxuaS5mbGFnLmJhaGFtYXM6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogMHB4IC03NTRweDtcbn1cbmkuZmxhZy5idDpiZWZvcmUsXG5pLmZsYWcuYmh1dGFuOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IDBweCAtNzgwcHg7XG59XG5pLmZsYWcuYnY6YmVmb3JlLFxuaS5mbGFnLmJvdXZldC5pc2xhbmQ6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogMHB4IC04MDZweDtcbn1cbmkuZmxhZy5idzpiZWZvcmUsXG5pLmZsYWcuYm90c3dhbmE6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogMHB4IC04MzJweDtcbn1cbmkuZmxhZy5ieTpiZWZvcmUsXG5pLmZsYWcuYmVsYXJ1czpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwcHggLTg1OHB4O1xufVxuaS5mbGFnLmJ6OmJlZm9yZSxcbmkuZmxhZy5iZWxpemU6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogMHB4IC04ODRweDtcbn1cbmkuZmxhZy5jYTpiZWZvcmUsXG5pLmZsYWcuY2FuYWRhOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IDBweCAtOTEwcHg7XG59XG5pLmZsYWcuY2M6YmVmb3JlLFxuaS5mbGFnLmNvY29zLmlzbGFuZHM6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogMHB4IC05NjJweDtcbn1cbmkuZmxhZy5jZDpiZWZvcmUsXG5pLmZsYWcuY29uZ286YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogMHB4IC05ODhweDtcbn1cbmkuZmxhZy5jZjpiZWZvcmUsXG5pLmZsYWcuY2VudHJhbC5hZnJpY2FuLnJlcHVibGljOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IDBweCAtMTAxNHB4O1xufVxuaS5mbGFnLmNnOmJlZm9yZSxcbmkuZmxhZy5jb25nby5icmF6emF2aWxsZTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwcHggLTEwNDBweDtcbn1cbmkuZmxhZy5jaDpiZWZvcmUsXG5pLmZsYWcuc3dpdHplcmxhbmQ6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogMHB4IC0xMDY2cHg7XG59XG5pLmZsYWcuY2k6YmVmb3JlLFxuaS5mbGFnLmNvdGUuZGl2b2lyZTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwcHggLTEwOTJweDtcbn1cbmkuZmxhZy5jazpiZWZvcmUsXG5pLmZsYWcuY29vay5pc2xhbmRzOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IDBweCAtMTExOHB4O1xufVxuaS5mbGFnLmNsOmJlZm9yZSxcbmkuZmxhZy5jaGlsZTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwcHggLTExNDRweDtcbn1cbmkuZmxhZy5jbTpiZWZvcmUsXG5pLmZsYWcuY2FtZXJvb246YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogMHB4IC0xMTcwcHg7XG59XG5pLmZsYWcuY246YmVmb3JlLFxuaS5mbGFnLmNoaW5hOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IDBweCAtMTE5NnB4O1xufVxuaS5mbGFnLmNvOmJlZm9yZSxcbmkuZmxhZy5jb2xvbWJpYTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwcHggLTEyMjJweDtcbn1cbmkuZmxhZy5jcjpiZWZvcmUsXG5pLmZsYWcuY29zdGEucmljYTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwcHggLTEyNDhweDtcbn1cbmkuZmxhZy5jczpiZWZvcmUsXG5pLmZsYWcuc2VyYmlhOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IDBweCAtMTI3NHB4O1xufVxuaS5mbGFnLmN1OmJlZm9yZSxcbmkuZmxhZy5jdWJhOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IDBweCAtMTMwMHB4O1xufVxuaS5mbGFnLmN2OmJlZm9yZSxcbmkuZmxhZy5jYXBlLnZlcmRlOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IDBweCAtMTMyNnB4O1xufVxuaS5mbGFnLmN4OmJlZm9yZSxcbmkuZmxhZy5jaHJpc3RtYXMuaXNsYW5kOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IDBweCAtMTM1MnB4O1xufVxuaS5mbGFnLmN5OmJlZm9yZSxcbmkuZmxhZy5jeXBydXM6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogMHB4IC0xMzc4cHg7XG59XG5pLmZsYWcuY3o6YmVmb3JlLFxuaS5mbGFnLmN6ZWNoLnJlcHVibGljOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IDBweCAtMTQwNHB4O1xufVxuaS5mbGFnLmRlOmJlZm9yZSxcbmkuZmxhZy5nZXJtYW55OmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IDBweCAtMTQzMHB4O1xufVxuaS5mbGFnLmRqOmJlZm9yZSxcbmkuZmxhZy5kamlib3V0aTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwcHggLTE0NTZweDtcbn1cbmkuZmxhZy5kazpiZWZvcmUsXG5pLmZsYWcuZGVubWFyazpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwcHggLTE0ODJweDtcbn1cbmkuZmxhZy5kbTpiZWZvcmUsXG5pLmZsYWcuZG9taW5pY2E6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogMHB4IC0xNTA4cHg7XG59XG5pLmZsYWcuZG86YmVmb3JlLFxuaS5mbGFnLmRvbWluaWNhbi5yZXB1YmxpYzpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwcHggLTE1MzRweDtcbn1cbmkuZmxhZy5kejpiZWZvcmUsXG5pLmZsYWcuYWxnZXJpYTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwcHggLTE1NjBweDtcbn1cbmkuZmxhZy5lYzpiZWZvcmUsXG5pLmZsYWcuZWN1YWRvcjpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwcHggLTE1ODZweDtcbn1cbmkuZmxhZy5lZTpiZWZvcmUsXG5pLmZsYWcuZXN0b25pYTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwcHggLTE2MTJweDtcbn1cbmkuZmxhZy5lZzpiZWZvcmUsXG5pLmZsYWcuZWd5cHQ6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogMHB4IC0xNjM4cHg7XG59XG5pLmZsYWcuZWg6YmVmb3JlLFxuaS5mbGFnLndlc3Rlcm4uc2FoYXJhOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IDBweCAtMTY2NHB4O1xufVxuaS5mbGFnLmVyOmJlZm9yZSxcbmkuZmxhZy5lcml0cmVhOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IDBweCAtMTcxNnB4O1xufVxuaS5mbGFnLmVzOmJlZm9yZSxcbmkuZmxhZy5zcGFpbjpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwcHggLTE3NDJweDtcbn1cbmkuZmxhZy5ldDpiZWZvcmUsXG5pLmZsYWcuZXRoaW9waWE6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogMHB4IC0xNzY4cHg7XG59XG5pLmZsYWcuZXU6YmVmb3JlLFxuaS5mbGFnLmV1cm9wZWFuLnVuaW9uOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IDBweCAtMTc5NHB4O1xufVxuaS5mbGFnLmZpOmJlZm9yZSxcbmkuZmxhZy5maW5sYW5kOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IDBweCAtMTg0NnB4O1xufVxuaS5mbGFnLmZqOmJlZm9yZSxcbmkuZmxhZy5maWppOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IDBweCAtMTg3MnB4O1xufVxuaS5mbGFnLmZrOmJlZm9yZSxcbmkuZmxhZy5mYWxrbGFuZC5pc2xhbmRzOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IDBweCAtMTg5OHB4O1xufVxuaS5mbGFnLmZtOmJlZm9yZSxcbmkuZmxhZy5taWNyb25lc2lhOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IDBweCAtMTkyNHB4O1xufVxuaS5mbGFnLmZvOmJlZm9yZSxcbmkuZmxhZy5mYXJvZS5pc2xhbmRzOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IDBweCAtMTk1MHB4O1xufVxuaS5mbGFnLmZyOmJlZm9yZSxcbmkuZmxhZy5mcmFuY2U6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogMHB4IC0xOTc2cHg7XG59XG5pLmZsYWcuZ2E6YmVmb3JlLFxuaS5mbGFnLmdhYm9uOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0zNnB4IDBweDtcbn1cbmkuZmxhZy5nYjpiZWZvcmUsXG5pLmZsYWcudW5pdGVkLmtpbmdkb206YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTM2cHggLTI2cHg7XG59XG5pLmZsYWcuZ2Q6YmVmb3JlLFxuaS5mbGFnLmdyZW5hZGE6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTM2cHggLTUycHg7XG59XG5pLmZsYWcuZ2U6YmVmb3JlLFxuaS5mbGFnLmdlb3JnaWE6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTM2cHggLTc4cHg7XG59XG5pLmZsYWcuZ2Y6YmVmb3JlLFxuaS5mbGFnLmZyZW5jaC5ndWlhbmE6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTM2cHggLTEwNHB4O1xufVxuaS5mbGFnLmdoOmJlZm9yZSxcbmkuZmxhZy5naGFuYTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzZweCAtMTMwcHg7XG59XG5pLmZsYWcuZ2k6YmVmb3JlLFxuaS5mbGFnLmdpYnJhbHRhcjpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzZweCAtMTU2cHg7XG59XG5pLmZsYWcuZ2w6YmVmb3JlLFxuaS5mbGFnLmdyZWVubGFuZDpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzZweCAtMTgycHg7XG59XG5pLmZsYWcuZ206YmVmb3JlLFxuaS5mbGFnLmdhbWJpYTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzZweCAtMjA4cHg7XG59XG5pLmZsYWcuZ246YmVmb3JlLFxuaS5mbGFnLmd1aW5lYTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzZweCAtMjM0cHg7XG59XG5pLmZsYWcuZ3A6YmVmb3JlLFxuaS5mbGFnLmd1YWRlbG91cGU6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTM2cHggLTI2MHB4O1xufVxuaS5mbGFnLmdxOmJlZm9yZSxcbmkuZmxhZy5lcXVhdG9yaWFsLmd1aW5lYTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzZweCAtMjg2cHg7XG59XG5pLmZsYWcuZ3I6YmVmb3JlLFxuaS5mbGFnLmdyZWVjZTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzZweCAtMzEycHg7XG59XG5pLmZsYWcuZ3M6YmVmb3JlLFxuaS5mbGFnLnNhbmR3aWNoLmlzbGFuZHM6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTM2cHggLTMzOHB4O1xufVxuaS5mbGFnLmd0OmJlZm9yZSxcbmkuZmxhZy5ndWF0ZW1hbGE6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTM2cHggLTM2NHB4O1xufVxuaS5mbGFnLmd1OmJlZm9yZSxcbmkuZmxhZy5ndWFtOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0zNnB4IC0zOTBweDtcbn1cbmkuZmxhZy5ndzpiZWZvcmUsXG5pLmZsYWcuZ3VpbmVhLWJpc3NhdTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzZweCAtNDE2cHg7XG59XG5pLmZsYWcuZ3k6YmVmb3JlLFxuaS5mbGFnLmd1eWFuYTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzZweCAtNDQycHg7XG59XG5pLmZsYWcuaGs6YmVmb3JlLFxuaS5mbGFnLmhvbmcua29uZzpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzZweCAtNDY4cHg7XG59XG5pLmZsYWcuaG06YmVmb3JlLFxuaS5mbGFnLmhlYXJkLmlzbGFuZDpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzZweCAtNDk0cHg7XG59XG5pLmZsYWcuaG46YmVmb3JlLFxuaS5mbGFnLmhvbmR1cmFzOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0zNnB4IC01MjBweDtcbn1cbmkuZmxhZy5ocjpiZWZvcmUsXG5pLmZsYWcuY3JvYXRpYTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzZweCAtNTQ2cHg7XG59XG5pLmZsYWcuaHQ6YmVmb3JlLFxuaS5mbGFnLmhhaXRpOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0zNnB4IC01NzJweDtcbn1cbmkuZmxhZy5odTpiZWZvcmUsXG5pLmZsYWcuaHVuZ2FyeTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzZweCAtNTk4cHg7XG59XG5pLmZsYWcuaWQ6YmVmb3JlLFxuaS5mbGFnLmluZG9uZXNpYTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzZweCAtNjI0cHg7XG59XG5pLmZsYWcuaWU6YmVmb3JlLFxuaS5mbGFnLmlyZWxhbmQ6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTM2cHggLTY1MHB4O1xufVxuaS5mbGFnLmlsOmJlZm9yZSxcbmkuZmxhZy5pc3JhZWw6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTM2cHggLTY3NnB4O1xufVxuaS5mbGFnLmluOmJlZm9yZSxcbmkuZmxhZy5pbmRpYTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzZweCAtNzAycHg7XG59XG5pLmZsYWcuaW86YmVmb3JlLFxuaS5mbGFnLmluZGlhbi5vY2Vhbi50ZXJyaXRvcnk6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTM2cHggLTcyOHB4O1xufVxuaS5mbGFnLmlxOmJlZm9yZSxcbmkuZmxhZy5pcmFxOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0zNnB4IC03NTRweDtcbn1cbmkuZmxhZy5pcjpiZWZvcmUsXG5pLmZsYWcuaXJhbjpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzZweCAtNzgwcHg7XG59XG5pLmZsYWcuaXM6YmVmb3JlLFxuaS5mbGFnLmljZWxhbmQ6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTM2cHggLTgwNnB4O1xufVxuaS5mbGFnLml0OmJlZm9yZSxcbmkuZmxhZy5pdGFseTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzZweCAtODMycHg7XG59XG5pLmZsYWcuam06YmVmb3JlLFxuaS5mbGFnLmphbWFpY2E6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTM2cHggLTg1OHB4O1xufVxuaS5mbGFnLmpvOmJlZm9yZSxcbmkuZmxhZy5qb3JkYW46YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTM2cHggLTg4NHB4O1xufVxuaS5mbGFnLmpwOmJlZm9yZSxcbmkuZmxhZy5qYXBhbjpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzZweCAtOTEwcHg7XG59XG5pLmZsYWcua2U6YmVmb3JlLFxuaS5mbGFnLmtlbnlhOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0zNnB4IC05MzZweDtcbn1cbmkuZmxhZy5rZzpiZWZvcmUsXG5pLmZsYWcua3lyZ3l6c3RhbjpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzZweCAtOTYycHg7XG59XG5pLmZsYWcua2g6YmVmb3JlLFxuaS5mbGFnLmNhbWJvZGlhOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0zNnB4IC05ODhweDtcbn1cbmkuZmxhZy5raTpiZWZvcmUsXG5pLmZsYWcua2lyaWJhdGk6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTM2cHggLTEwMTRweDtcbn1cbmkuZmxhZy5rbTpiZWZvcmUsXG5pLmZsYWcuY29tb3JvczpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzZweCAtMTA0MHB4O1xufVxuaS5mbGFnLmtuOmJlZm9yZSxcbmkuZmxhZy5zYWludC5raXR0cy5hbmQubmV2aXM6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTM2cHggLTEwNjZweDtcbn1cbmkuZmxhZy5rcDpiZWZvcmUsXG5pLmZsYWcubm9ydGgua29yZWE6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTM2cHggLTEwOTJweDtcbn1cbmkuZmxhZy5rcjpiZWZvcmUsXG5pLmZsYWcuc291dGgua29yZWE6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTM2cHggLTExMThweDtcbn1cbmkuZmxhZy5rdzpiZWZvcmUsXG5pLmZsYWcua3V3YWl0OmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0zNnB4IC0xMTQ0cHg7XG59XG5pLmZsYWcua3k6YmVmb3JlLFxuaS5mbGFnLmNheW1hbi5pc2xhbmRzOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0zNnB4IC0xMTcwcHg7XG59XG5pLmZsYWcua3o6YmVmb3JlLFxuaS5mbGFnLmthemFraHN0YW46YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTM2cHggLTExOTZweDtcbn1cbmkuZmxhZy5sYTpiZWZvcmUsXG5pLmZsYWcubGFvczpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzZweCAtMTIyMnB4O1xufVxuaS5mbGFnLmxiOmJlZm9yZSxcbmkuZmxhZy5sZWJhbm9uOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0zNnB4IC0xMjQ4cHg7XG59XG5pLmZsYWcubGM6YmVmb3JlLFxuaS5mbGFnLnNhaW50Lmx1Y2lhOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0zNnB4IC0xMjc0cHg7XG59XG5pLmZsYWcubGk6YmVmb3JlLFxuaS5mbGFnLmxpZWNodGVuc3RlaW46YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTM2cHggLTEzMDBweDtcbn1cbmkuZmxhZy5sazpiZWZvcmUsXG5pLmZsYWcuc3JpLmxhbmthOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0zNnB4IC0xMzI2cHg7XG59XG5pLmZsYWcubHI6YmVmb3JlLFxuaS5mbGFnLmxpYmVyaWE6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTM2cHggLTEzNTJweDtcbn1cbmkuZmxhZy5sczpiZWZvcmUsXG5pLmZsYWcubGVzb3RobzpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzZweCAtMTM3OHB4O1xufVxuaS5mbGFnLmx0OmJlZm9yZSxcbmkuZmxhZy5saXRodWFuaWE6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTM2cHggLTE0MDRweDtcbn1cbmkuZmxhZy5sdTpiZWZvcmUsXG5pLmZsYWcubHV4ZW1ib3VyZzpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzZweCAtMTQzMHB4O1xufVxuaS5mbGFnLmx2OmJlZm9yZSxcbmkuZmxhZy5sYXR2aWE6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTM2cHggLTE0NTZweDtcbn1cbmkuZmxhZy5seTpiZWZvcmUsXG5pLmZsYWcubGlieWE6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTM2cHggLTE0ODJweDtcbn1cbmkuZmxhZy5tYTpiZWZvcmUsXG5pLmZsYWcubW9yb2NjbzpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzZweCAtMTUwOHB4O1xufVxuaS5mbGFnLm1jOmJlZm9yZSxcbmkuZmxhZy5tb25hY286YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTM2cHggLTE1MzRweDtcbn1cbmkuZmxhZy5tZDpiZWZvcmUsXG5pLmZsYWcubW9sZG92YTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzZweCAtMTU2MHB4O1xufVxuaS5mbGFnLm1lOmJlZm9yZSxcbmkuZmxhZy5tb250ZW5lZ3JvOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0zNnB4IC0xNTg2cHg7XG59XG5pLmZsYWcubWc6YmVmb3JlLFxuaS5mbGFnLm1hZGFnYXNjYXI6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTM2cHggLTE2MTNweDtcbn1cbmkuZmxhZy5taDpiZWZvcmUsXG5pLmZsYWcubWFyc2hhbGwuaXNsYW5kczpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzZweCAtMTYzOXB4O1xufVxuaS5mbGFnLm1rOmJlZm9yZSxcbmkuZmxhZy5tYWNlZG9uaWE6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTM2cHggLTE2NjVweDtcbn1cbmkuZmxhZy5tbDpiZWZvcmUsXG5pLmZsYWcubWFsaTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzZweCAtMTY5MXB4O1xufVxuaS5mbGFnLm1tOmJlZm9yZSxcbmkuZmxhZy5teWFubWFyOmJlZm9yZSxcbmkuZmxhZy5idXJtYTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzZweCAtMTcxN3B4O1xufVxuaS5mbGFnLm1uOmJlZm9yZSxcbmkuZmxhZy5tb25nb2xpYTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzZweCAtMTc0M3B4O1xufVxuaS5mbGFnLm1vOmJlZm9yZSxcbmkuZmxhZy5tYWNhdTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzZweCAtMTc2OXB4O1xufVxuaS5mbGFnLm1wOmJlZm9yZSxcbmkuZmxhZy5ub3J0aGVybi5tYXJpYW5hLmlzbGFuZHM6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTM2cHggLTE3OTVweDtcbn1cbmkuZmxhZy5tcTpiZWZvcmUsXG5pLmZsYWcubWFydGluaXF1ZTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzZweCAtMTgyMXB4O1xufVxuaS5mbGFnLm1yOmJlZm9yZSxcbmkuZmxhZy5tYXVyaXRhbmlhOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0zNnB4IC0xODQ3cHg7XG59XG5pLmZsYWcubXM6YmVmb3JlLFxuaS5mbGFnLm1vbnRzZXJyYXQ6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTM2cHggLTE4NzNweDtcbn1cbmkuZmxhZy5tdDpiZWZvcmUsXG5pLmZsYWcubWFsdGE6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTM2cHggLTE4OTlweDtcbn1cbmkuZmxhZy5tdTpiZWZvcmUsXG5pLmZsYWcubWF1cml0aXVzOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0zNnB4IC0xOTI1cHg7XG59XG5pLmZsYWcubXY6YmVmb3JlLFxuaS5mbGFnLm1hbGRpdmVzOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0zNnB4IC0xOTUxcHg7XG59XG5pLmZsYWcubXc6YmVmb3JlLFxuaS5mbGFnLm1hbGF3aTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzZweCAtMTk3N3B4O1xufVxuaS5mbGFnLm14OmJlZm9yZSxcbmkuZmxhZy5tZXhpY286YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTcycHggMHB4O1xufVxuaS5mbGFnLm15OmJlZm9yZSxcbmkuZmxhZy5tYWxheXNpYTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNzJweCAtMjZweDtcbn1cbmkuZmxhZy5tejpiZWZvcmUsXG5pLmZsYWcubW96YW1iaXF1ZTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNzJweCAtNTJweDtcbn1cbmkuZmxhZy5uYTpiZWZvcmUsXG5pLmZsYWcubmFtaWJpYTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNzJweCAtNzhweDtcbn1cbmkuZmxhZy5uYzpiZWZvcmUsXG5pLmZsYWcubmV3LmNhbGVkb25pYTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNzJweCAtMTA0cHg7XG59XG5pLmZsYWcubmU6YmVmb3JlLFxuaS5mbGFnLm5pZ2VyOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC03MnB4IC0xMzBweDtcbn1cbmkuZmxhZy5uZjpiZWZvcmUsXG5pLmZsYWcubm9yZm9say5pc2xhbmQ6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTcycHggLTE1NnB4O1xufVxuaS5mbGFnLm5nOmJlZm9yZSxcbmkuZmxhZy5uaWdlcmlhOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC03MnB4IC0xODJweDtcbn1cbmkuZmxhZy5uaTpiZWZvcmUsXG5pLmZsYWcubmljYXJhZ3VhOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC03MnB4IC0yMDhweDtcbn1cbmkuZmxhZy5ubDpiZWZvcmUsXG5pLmZsYWcubmV0aGVybGFuZHM6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTcycHggLTIzNHB4O1xufVxuaS5mbGFnLm5vOmJlZm9yZSxcbmkuZmxhZy5ub3J3YXk6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTcycHggLTI2MHB4O1xufVxuaS5mbGFnLm5wOmJlZm9yZSxcbmkuZmxhZy5uZXBhbDpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNzJweCAtMjg2cHg7XG59XG5pLmZsYWcubnI6YmVmb3JlLFxuaS5mbGFnLm5hdXJ1OmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC03MnB4IC0zMTJweDtcbn1cbmkuZmxhZy5udTpiZWZvcmUsXG5pLmZsYWcubml1ZTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNzJweCAtMzM4cHg7XG59XG5pLmZsYWcubno6YmVmb3JlLFxuaS5mbGFnLm5ldy56ZWFsYW5kOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC03MnB4IC0zNjRweDtcbn1cbmkuZmxhZy5vbTpiZWZvcmUsXG5pLmZsYWcub21hbjpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNzJweCAtMzkwcHg7XG59XG5pLmZsYWcucGE6YmVmb3JlLFxuaS5mbGFnLnBhbmFtYTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNzJweCAtNDE2cHg7XG59XG5pLmZsYWcucGU6YmVmb3JlLFxuaS5mbGFnLnBlcnU6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTcycHggLTQ0MnB4O1xufVxuaS5mbGFnLnBmOmJlZm9yZSxcbmkuZmxhZy5mcmVuY2gucG9seW5lc2lhOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC03MnB4IC00NjhweDtcbn1cbmkuZmxhZy5wZzpiZWZvcmUsXG5pLmZsYWcubmV3Lmd1aW5lYTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNzJweCAtNDk0cHg7XG59XG5pLmZsYWcucGg6YmVmb3JlLFxuaS5mbGFnLnBoaWxpcHBpbmVzOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC03MnB4IC01MjBweDtcbn1cbmkuZmxhZy5wazpiZWZvcmUsXG5pLmZsYWcucGFraXN0YW46YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTcycHggLTU0NnB4O1xufVxuaS5mbGFnLnBsOmJlZm9yZSxcbmkuZmxhZy5wb2xhbmQ6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTcycHggLTU3MnB4O1xufVxuaS5mbGFnLnBtOmJlZm9yZSxcbmkuZmxhZy5zYWludC5waWVycmU6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTcycHggLTU5OHB4O1xufVxuaS5mbGFnLnBuOmJlZm9yZSxcbmkuZmxhZy5waXRjYWlybi5pc2xhbmRzOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC03MnB4IC02MjRweDtcbn1cbmkuZmxhZy5wcjpiZWZvcmUsXG5pLmZsYWcucHVlcnRvLnJpY286YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTcycHggLTY1MHB4O1xufVxuaS5mbGFnLnBzOmJlZm9yZSxcbmkuZmxhZy5wYWxlc3RpbmU6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTcycHggLTY3NnB4O1xufVxuaS5mbGFnLnB0OmJlZm9yZSxcbmkuZmxhZy5wb3J0dWdhbDpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNzJweCAtNzAycHg7XG59XG5pLmZsYWcucHc6YmVmb3JlLFxuaS5mbGFnLnBhbGF1OmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC03MnB4IC03MjhweDtcbn1cbmkuZmxhZy5weTpiZWZvcmUsXG5pLmZsYWcucGFyYWd1YXk6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTcycHggLTc1NHB4O1xufVxuaS5mbGFnLnFhOmJlZm9yZSxcbmkuZmxhZy5xYXRhcjpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNzJweCAtNzgwcHg7XG59XG5pLmZsYWcucmU6YmVmb3JlLFxuaS5mbGFnLnJldW5pb246YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTcycHggLTgwNnB4O1xufVxuaS5mbGFnLnJvOmJlZm9yZSxcbmkuZmxhZy5yb21hbmlhOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC03MnB4IC04MzJweDtcbn1cbmkuZmxhZy5yczpiZWZvcmUsXG5pLmZsYWcuc2VyYmlhOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC03MnB4IC04NThweDtcbn1cbmkuZmxhZy5ydTpiZWZvcmUsXG5pLmZsYWcucnVzc2lhOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC03MnB4IC04ODRweDtcbn1cbmkuZmxhZy5ydzpiZWZvcmUsXG5pLmZsYWcucndhbmRhOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC03MnB4IC05MTBweDtcbn1cbmkuZmxhZy5zYTpiZWZvcmUsXG5pLmZsYWcuc2F1ZGkuYXJhYmlhOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC03MnB4IC05MzZweDtcbn1cbmkuZmxhZy5zYjpiZWZvcmUsXG5pLmZsYWcuc29sb21vbi5pc2xhbmRzOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC03MnB4IC05NjJweDtcbn1cbmkuZmxhZy5zYzpiZWZvcmUsXG5pLmZsYWcuc2V5Y2hlbGxlczpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNzJweCAtOTg4cHg7XG59XG5pLmZsYWcuZ2Iuc2N0OmJlZm9yZSxcbmkuZmxhZy5zY290bGFuZDpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNzJweCAtMTAxNHB4O1xufVxuaS5mbGFnLnNkOmJlZm9yZSxcbmkuZmxhZy5zdWRhbjpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNzJweCAtMTA0MHB4O1xufVxuaS5mbGFnLnNlOmJlZm9yZSxcbmkuZmxhZy5zd2VkZW46YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTcycHggLTEwNjZweDtcbn1cbmkuZmxhZy5zZzpiZWZvcmUsXG5pLmZsYWcuc2luZ2Fwb3JlOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC03MnB4IC0xMDkycHg7XG59XG5pLmZsYWcuc2g6YmVmb3JlLFxuaS5mbGFnLnNhaW50LmhlbGVuYTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNzJweCAtMTExOHB4O1xufVxuaS5mbGFnLnNpOmJlZm9yZSxcbmkuZmxhZy5zbG92ZW5pYTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNzJweCAtMTE0NHB4O1xufVxuaS5mbGFnLnNqOmJlZm9yZSxcbmkuZmxhZy5zdmFsYmFyZDpiZWZvcmUsXG5pLmZsYWcuamFuLm1heWVuOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC03MnB4IC0xMTcwcHg7XG59XG5pLmZsYWcuc2s6YmVmb3JlLFxuaS5mbGFnLnNsb3Zha2lhOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC03MnB4IC0xMTk2cHg7XG59XG5pLmZsYWcuc2w6YmVmb3JlLFxuaS5mbGFnLnNpZXJyYS5sZW9uZTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNzJweCAtMTIyMnB4O1xufVxuaS5mbGFnLnNtOmJlZm9yZSxcbmkuZmxhZy5zYW4ubWFyaW5vOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC03MnB4IC0xMjQ4cHg7XG59XG5pLmZsYWcuc246YmVmb3JlLFxuaS5mbGFnLnNlbmVnYWw6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTcycHggLTEyNzRweDtcbn1cbmkuZmxhZy5zbzpiZWZvcmUsXG5pLmZsYWcuc29tYWxpYTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNzJweCAtMTMwMHB4O1xufVxuaS5mbGFnLnNyOmJlZm9yZSxcbmkuZmxhZy5zdXJpbmFtZTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNzJweCAtMTMyNnB4O1xufVxuaS5mbGFnLnN0OmJlZm9yZSxcbmkuZmxhZy5zYW8udG9tZTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNzJweCAtMTM1MnB4O1xufVxuaS5mbGFnLnN2OmJlZm9yZSxcbmkuZmxhZy5lbC5zYWx2YWRvcjpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNzJweCAtMTM3OHB4O1xufVxuaS5mbGFnLnN5OmJlZm9yZSxcbmkuZmxhZy5zeXJpYTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNzJweCAtMTQwNHB4O1xufVxuaS5mbGFnLnN6OmJlZm9yZSxcbmkuZmxhZy5zd2F6aWxhbmQ6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTcycHggLTE0MzBweDtcbn1cbmkuZmxhZy50YzpiZWZvcmUsXG5pLmZsYWcuY2FpY29zLmlzbGFuZHM6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTcycHggLTE0NTZweDtcbn1cbmkuZmxhZy50ZDpiZWZvcmUsXG5pLmZsYWcuY2hhZDpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNzJweCAtMTQ4MnB4O1xufVxuaS5mbGFnLnRmOmJlZm9yZSxcbmkuZmxhZy5mcmVuY2gudGVycml0b3JpZXM6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTcycHggLTE1MDhweDtcbn1cbmkuZmxhZy50ZzpiZWZvcmUsXG5pLmZsYWcudG9nbzpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNzJweCAtMTUzNHB4O1xufVxuaS5mbGFnLnRoOmJlZm9yZSxcbmkuZmxhZy50aGFpbGFuZDpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNzJweCAtMTU2MHB4O1xufVxuaS5mbGFnLnRqOmJlZm9yZSxcbmkuZmxhZy50YWppa2lzdGFuOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC03MnB4IC0xNTg2cHg7XG59XG5pLmZsYWcudGs6YmVmb3JlLFxuaS5mbGFnLnRva2VsYXU6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTcycHggLTE2MTJweDtcbn1cbmkuZmxhZy50bDpiZWZvcmUsXG5pLmZsYWcudGltb3JsZXN0ZTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNzJweCAtMTYzOHB4O1xufVxuaS5mbGFnLnRtOmJlZm9yZSxcbmkuZmxhZy50dXJrbWVuaXN0YW46YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTcycHggLTE2NjRweDtcbn1cbmkuZmxhZy50bjpiZWZvcmUsXG5pLmZsYWcudHVuaXNpYTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNzJweCAtMTY5MHB4O1xufVxuaS5mbGFnLnRvOmJlZm9yZSxcbmkuZmxhZy50b25nYTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNzJweCAtMTcxNnB4O1xufVxuaS5mbGFnLnRyOmJlZm9yZSxcbmkuZmxhZy50dXJrZXk6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTcycHggLTE3NDJweDtcbn1cbmkuZmxhZy50dDpiZWZvcmUsXG5pLmZsYWcudHJpbmlkYWQ6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTcycHggLTE3NjhweDtcbn1cbmkuZmxhZy50djpiZWZvcmUsXG5pLmZsYWcudHV2YWx1OmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC03MnB4IC0xNzk0cHg7XG59XG5pLmZsYWcudHc6YmVmb3JlLFxuaS5mbGFnLnRhaXdhbjpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNzJweCAtMTgyMHB4O1xufVxuaS5mbGFnLnR6OmJlZm9yZSxcbmkuZmxhZy50YW56YW5pYTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNzJweCAtMTg0NnB4O1xufVxuaS5mbGFnLnVhOmJlZm9yZSxcbmkuZmxhZy51a3JhaW5lOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC03MnB4IC0xODcycHg7XG59XG5pLmZsYWcudWc6YmVmb3JlLFxuaS5mbGFnLnVnYW5kYTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNzJweCAtMTg5OHB4O1xufVxuaS5mbGFnLnVtOmJlZm9yZSxcbmkuZmxhZy51cy5taW5vci5pc2xhbmRzOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC03MnB4IC0xOTI0cHg7XG59XG5pLmZsYWcudXM6YmVmb3JlLFxuaS5mbGFnLmFtZXJpY2E6YmVmb3JlLFxuaS5mbGFnLnVuaXRlZC5zdGF0ZXM6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTcycHggLTE5NTBweDtcbn1cbmkuZmxhZy51eTpiZWZvcmUsXG5pLmZsYWcudXJ1Z3VheTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNzJweCAtMTk3NnB4O1xufVxuaS5mbGFnLnV6OmJlZm9yZSxcbmkuZmxhZy51emJla2lzdGFuOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0xMDhweCAwcHg7XG59XG5pLmZsYWcudmE6YmVmb3JlLFxuaS5mbGFnLnZhdGljYW4uY2l0eTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTA4cHggLTI2cHg7XG59XG5pLmZsYWcudmM6YmVmb3JlLFxuaS5mbGFnLnNhaW50LnZpbmNlbnQ6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTEwOHB4IC01MnB4O1xufVxuaS5mbGFnLnZlOmJlZm9yZSxcbmkuZmxhZy52ZW5lenVlbGE6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTEwOHB4IC03OHB4O1xufVxuaS5mbGFnLnZnOmJlZm9yZSxcbmkuZmxhZy5icml0aXNoLnZpcmdpbi5pc2xhbmRzOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0xMDhweCAtMTA0cHg7XG59XG5pLmZsYWcudmk6YmVmb3JlLFxuaS5mbGFnLnVzLnZpcmdpbi5pc2xhbmRzOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0xMDhweCAtMTMwcHg7XG59XG5pLmZsYWcudm46YmVmb3JlLFxuaS5mbGFnLnZpZXRuYW06YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTEwOHB4IC0xNTZweDtcbn1cbmkuZmxhZy52dTpiZWZvcmUsXG5pLmZsYWcudmFudWF0dTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTA4cHggLTE4MnB4O1xufVxuaS5mbGFnLmdiLndsczpiZWZvcmUsXG5pLmZsYWcud2FsZXM6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTEwOHB4IC0yMDhweDtcbn1cbmkuZmxhZy53ZjpiZWZvcmUsXG5pLmZsYWcud2FsbGlzLmFuZC5mdXR1bmE6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTEwOHB4IC0yMzRweDtcbn1cbmkuZmxhZy53czpiZWZvcmUsXG5pLmZsYWcuc2Ftb2E6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTEwOHB4IC0yNjBweDtcbn1cbmkuZmxhZy55ZTpiZWZvcmUsXG5pLmZsYWcueWVtZW46YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTEwOHB4IC0yODZweDtcbn1cbmkuZmxhZy55dDpiZWZvcmUsXG5pLmZsYWcubWF5b3R0ZTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTA4cHggLTMxMnB4O1xufVxuaS5mbGFnLnphOmJlZm9yZSxcbmkuZmxhZy5zb3V0aC5hZnJpY2E6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTEwOHB4IC0zMzhweDtcbn1cbmkuZmxhZy56bTpiZWZvcmUsXG5pLmZsYWcuemFtYmlhOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0xMDhweCAtMzY0cHg7XG59XG5pLmZsYWcuenc6YmVmb3JlLFxuaS5mbGFnLnppbWJhYndlOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0xMDhweCAtMzkwcHg7XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiFcbiAqICMgU2VtYW50aWMgVUkgLSBIZWFkZXJcbiAqIGh0dHA6Ly9naXRodWIuY29tL3NlbWFudGljLW9yZy9zZW1hbnRpYy11aS9cbiAqXG4gKlxuICogUmVsZWFzZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlXG4gKiBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUXG4gKlxuICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKlxuXG7ilojilojilojilojilojilojilojilojilZfilojilojilZcgIOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKVlyAgIOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl1xu4pWa4pWQ4pWQ4paI4paI4pWU4pWQ4pWQ4pWd4paI4paI4pWRICDilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilojilojilZcg4paI4paI4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWd4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWdXG4gICDilojilojilZEgICDilojilojilojilojilojilojilojilZHilojilojilojilojilojilZcgIOKWiOKWiOKVlOKWiOKWiOKWiOKWiOKVlOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4paI4paI4paI4paI4paI4pWXXG4gICDilojilojilZEgICDilojilojilZTilZDilZDilojilojilZHilojilojilZTilZDilZDilZ0gIOKWiOKWiOKVkeKVmuKWiOKWiOKVlOKVneKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4pWa4pWQ4pWQ4pWQ4pWQ4paI4paI4pWRXG4gICDilojilojilZEgICDilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVkSDilZrilZDilZ0g4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWRXG4gICDilZrilZDilZ0gICDilZrilZDilZ0gIOKVmuKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVneKVmuKVkOKVnSAgICAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWdXG5cbiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBUaGVtZSBTZWxlY3Rpb25cbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBUbyBvdmVycmlkZSBhIHRoZW1lIGZvciBhbiBpbmRpdmlkdWFsIGVsZW1lbnRcbiAgIHNwZWNpZnkgdGhlbWUgbmFtZSBiZWxvd1xuKi9cbi8qIEdsb2JhbCAqL1xuLyogRWxlbWVudHMgKi9cbi8qIENvbGxlY3Rpb25zICovXG4vKiBNb2R1bGVzICovXG4vKiBWaWV3cyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIEZvbGRlcnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBQYXRoIHRvIHRoZW1lIHBhY2thZ2VzICovXG4vKiBQYXRoIHRvIHNpdGUgb3ZlcnJpZGUgZm9sZGVyICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgSW1wb3J0IFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgSW1wb3J0IERpcmVjdGl2ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIFRoZW1lXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgIFNpdGUgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kb3JzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFBhY2thZ2VkIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRvcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogQ29tcG9uZW50J3Mgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZG9ycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBTaXRlIHRoZW1lIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICBVc2VyIEdsb2JhbCBWYXJpYWJsZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBtYXJzbyBjb2xvcnMgKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiBDb21wb25lbnQgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIEhlYWRlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVsZW1lbnRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFN1YiBIZWFkaW5nICovXG4vKiBTdWIgSGVhZGVyICovXG4vKiBJY29uICovXG4vKiBJbWFnZSAqL1xuLyogTGFiZWwgKi9cbi8qIENvbnRlbnQgKi9cbi8qIFBhcmFncmFwaCBhZnRlciBIZWFkZXIgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgVmFyaWF0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2l6aW5nICovXG4vKiBTdWIgSGVhZGVyICovXG4vKiBJY29uIEhlYWRlciAqL1xuLyogTm8gTGluZSBIZWlnaHQgT2Zmc2V0ICovXG4vKiBEaXZpZGVkICovXG4vKiBCbG9jayAqL1xuLyogQXR0YWNoZWQgKi9cbi8qIEludmVydGVkICovXG4vKiBGbG9hdGVkICovXG4vKiBQYWNrYWdlZCBUaGVtZSAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIEhlYWRlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVsZW1lbnRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFN1YiBIZWFkaW5nICovXG4vKiBTdWIgSGVhZGVyICovXG4vKiBJY29uICovXG4vKiBJbWFnZSAqL1xuLyogTGFiZWwgKi9cbi8qIENvbnRlbnQgKi9cbi8qIFBhcmFncmFwaCBhZnRlciBIZWFkZXIgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgVmFyaWF0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2l6aW5nICovXG4vKiBTdWIgSGVhZGVyICovXG4vKiBJY29uIEhlYWRlciAqL1xuLyogTm8gTGluZSBIZWlnaHQgT2Zmc2V0ICovXG4vKiBEaXZpZGVkICovXG4vKiBCbG9jayAqL1xuLyogQXR0YWNoZWQgKi9cbi8qIEludmVydGVkICovXG4vKiBGbG9hdGVkICovXG4vKiBTaXRlIFRoZW1lICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgIFVzZXIgVmFyaWFibGUgT3ZlcnJpZGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBNaXgtaW5zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBPdmVycmlkZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRW5kIENvbmZpZyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIEhlYWRlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFN0YW5kYXJkICovXG4udWkuaGVhZGVyIHtcbiAgYm9yZGVyOiBub25lO1xuICBtYXJnaW46IGNhbGMoMnJlbSAtIDAuMTQyODU3MTQyODU3MTQyOWVtKSAwZW0gMXJlbTtcbiAgcGFkZGluZzogMGVtIDBlbTtcbiAgZm9udC1mYW1pbHk6ICdFeG8gMicsICdMYXRvJywgQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZjtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGxpbmUtaGVpZ2h0OiAxLjI4NTcxNDI5ZW07XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICBjb2xvcjogIzMzMzMzMztcbn1cbi51aS5oZWFkZXI6Zmlyc3QtY2hpbGQge1xuICBtYXJnaW4tdG9wOiAtMC4xNDI4NTcxNGVtO1xufVxuLnVpLmhlYWRlcjpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLWJvdHRvbTogMGVtO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgU3ViIEhlYWRlclxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5oZWFkZXIgLnN1Yi5oZWFkZXIge1xuICBkaXNwbGF5OiBibG9jaztcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgcGFkZGluZzogMGVtO1xuICBtYXJnaW46IDBlbTtcbiAgZm9udC1zaXplOiAxcmVtO1xuICBsaW5lLWhlaWdodDogMS4yZW07XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNik7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgICBJY29uXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmhlYWRlciA+IC5pY29uIHtcbiAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgb3BhY2l0eTogMTtcbiAgZm9udC1zaXplOiAxLjVlbTtcbiAgcGFkZGluZy10b3A6IDAuMTQyODU3MTRlbTtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cbi8qIFdpdGggVGV4dCBOb2RlICovXG4udWkuaGVhZGVyIC5pY29uOm9ubHktY2hpbGQge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBhZGRpbmc6IDBlbTtcbiAgbWFyZ2luLXJpZ2h0OiAwLjc1cmVtO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEltYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkuaGVhZGVyID4gLmltYWdlLFxuLnVpLmhlYWRlciA+IGltZyB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWFyZ2luLXRvcDogMC4xNDI4NTcxNGVtO1xuICB3aWR0aDogMi41ZW07XG4gIGhlaWdodDogYXV0bztcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cbi51aS5oZWFkZXIgPiAuaW1hZ2U6b25seS1jaGlsZCxcbi51aS5oZWFkZXIgPiBpbWc6b25seS1jaGlsZCB7XG4gIG1hcmdpbi1yaWdodDogMC43NXJlbTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgQ29udGVudFxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5oZWFkZXIgLmNvbnRlbnQge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHZlcnRpY2FsLWFsaWduOiB0b3A7XG59XG4vKiBBZnRlciBJbWFnZSAqL1xuLnVpLmhlYWRlciA+IGltZyArIC5jb250ZW50LFxuLnVpLmhlYWRlciA+IC5pbWFnZSArIC5jb250ZW50IHtcbiAgcGFkZGluZy1sZWZ0OiAwLjc1cmVtO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuLyogQWZ0ZXIgSWNvbiAqL1xuLnVpLmhlYWRlciA+IC5pY29uICsgLmNvbnRlbnQge1xuICBwYWRkaW5nLWxlZnQ6IDAuNzVyZW07XG4gIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gTG9vc2UgQ291cGxpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuaGVhZGVyIC51aS5sYWJlbCB7XG4gIGZvbnQtc2l6ZTogJyc7XG4gIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG4vKiBQb3NpdGlvbmluZyAqL1xuLnVpLmhlYWRlciArIHAge1xuICBtYXJnaW4tdG9wOiAwZW07XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgVHlwZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLSovXG5oMS51aS5oZWFkZXIge1xuICBmb250LXNpemU6IDNyZW07XG59XG5oMi51aS5oZWFkZXIge1xuICBmb250LXNpemU6IDIuNXJlbTtcbn1cbmgzLnVpLmhlYWRlciB7XG4gIGZvbnQtc2l6ZTogMnJlbTtcbn1cbmg0LnVpLmhlYWRlciB7XG4gIGZvbnQtc2l6ZTogMS42cmVtO1xufVxuaDUudWkuaGVhZGVyIHtcbiAgZm9udC1zaXplOiAxLjRyZW07XG59XG4vKiBTdWIgSGVhZGVyICovXG5oMS51aS5oZWFkZXIgLnN1Yi5oZWFkZXIge1xuICBmb250LXNpemU6IDEuMXJlbTtcbn1cbmgyLnVpLmhlYWRlciAuc3ViLmhlYWRlciB7XG4gIGZvbnQtc2l6ZTogMS4xcmVtO1xufVxuaDMudWkuaGVhZGVyIC5zdWIuaGVhZGVyIHtcbiAgZm9udC1zaXplOiAxcmVtO1xufVxuaDQudWkuaGVhZGVyIC5zdWIuaGVhZGVyIHtcbiAgZm9udC1zaXplOiAxcmVtO1xufVxuaDUudWkuaGVhZGVyIC5zdWIuaGVhZGVyIHtcbiAgZm9udC1zaXplOiAwLjlyZW07XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gQ29udGVudCBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmh1Z2UuaGVhZGVyIHtcbiAgbWluLWhlaWdodDogMWVtO1xuICBmb250LXNpemU6IDNlbTtcbn1cbi51aS5sYXJnZS5oZWFkZXIge1xuICBmb250LXNpemU6IDIuNWVtO1xufVxuLnVpLm1lZGl1bS5oZWFkZXIge1xuICBmb250LXNpemU6IDJlbTtcbn1cbi51aS5zbWFsbC5oZWFkZXIge1xuICBmb250LXNpemU6IDEuNmVtO1xufVxuLnVpLnRpbnkuaGVhZGVyIHtcbiAgZm9udC1zaXplOiAxLjRlbTtcbn1cbi8qIFN1YiBIZWFkZXIgKi9cbi51aS5odWdlLmhlYWRlciAuc3ViLmhlYWRlciB7XG4gIGZvbnQtc2l6ZTogMS4xcmVtO1xufVxuLnVpLmxhcmdlLmhlYWRlciAuc3ViLmhlYWRlciB7XG4gIGZvbnQtc2l6ZTogMS4xcmVtO1xufVxuLnVpLmhlYWRlciAuc3ViLmhlYWRlciB7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbn1cbi51aS5zbWFsbC5oZWFkZXIgLnN1Yi5oZWFkZXIge1xuICBmb250LXNpemU6IDFyZW07XG59XG4udWkudGlueS5oZWFkZXIgLnN1Yi5oZWFkZXIge1xuICBmb250LXNpemU6IDAuOXJlbTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIFN1YiBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLnN1Yi5oZWFkZXIge1xuICBwYWRkaW5nOiAwZW07XG4gIG1hcmdpbi1ib3R0b206IDAuMnJlbTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGZvbnQtc2l6ZTogMC45ZW07XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGNvbG9yOiAnJztcbn1cbi51aS5zbWFsbC5zdWIuaGVhZGVyIHtcbiAgZm9udC1zaXplOiAwLjhlbTtcbn1cbi51aS5zdWIuaGVhZGVyIHtcbiAgZm9udC1zaXplOiAwLjllbTtcbn1cbi51aS5sYXJnZS5zdWIuaGVhZGVyIHtcbiAgZm9udC1zaXplOiAwLjllbTtcbn1cbi51aS5odWdlLnN1Yi5oZWFkZXIge1xuICBmb250LXNpemU6IDFlbTtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBJY29uXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkuaWNvbi5oZWFkZXIge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgbWFyZ2luOiAycmVtIDBlbSAxcmVtO1xufVxuLnVpLmljb24uaGVhZGVyOmFmdGVyIHtcbiAgY29udGVudDogJyc7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBoZWlnaHQ6IDBweDtcbiAgY2xlYXI6IGJvdGg7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbn1cbi51aS5pY29uLmhlYWRlcjpmaXJzdC1jaGlsZCB7XG4gIG1hcmdpbi10b3A6IDBlbTtcbn1cbi51aS5pY29uLmhlYWRlciAuaWNvbiB7XG4gIGZsb2F0OiBub25lO1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IGF1dG87XG4gIGhlaWdodDogYXV0bztcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIHBhZGRpbmc6IDBlbTtcbiAgZm9udC1zaXplOiAzZW07XG4gIG1hcmdpbjogMGVtIGF1dG8gMC41cmVtO1xuICBvcGFjaXR5OiAxO1xufVxuLnVpLmljb24uaGVhZGVyIC5jb250ZW50IHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBhZGRpbmc6IDBlbTtcbn1cbi51aS5pY29uLmhlYWRlciAuY2lyY3VsYXIuaWNvbiB7XG4gIGZvbnQtc2l6ZTogMmVtO1xufVxuLnVpLmljb24uaGVhZGVyIC5zcXVhcmUuaWNvbiB7XG4gIGZvbnQtc2l6ZTogMmVtO1xufVxuLnVpLmJsb2NrLmljb24uaGVhZGVyIC5pY29uIHtcbiAgbWFyZ2luLWJvdHRvbTogMGVtO1xufVxuLnVpLmljb24uaGVhZGVyLmFsaWduZWQge1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICBkaXNwbGF5OiBibG9jaztcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4udWkuZGlzYWJsZWQuaGVhZGVyIHtcbiAgb3BhY2l0eTogMC40NTtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFZhcmlhdGlvbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEludmVydGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkuaW52ZXJ0ZWQuaGVhZGVyIHtcbiAgY29sb3I6ICNmZmZmZmY7XG59XG4udWkuaW52ZXJ0ZWQuaGVhZGVyIC5zdWIuaGVhZGVyIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44KTtcbn1cbi51aS5pbnZlcnRlZC5hdHRhY2hlZC5oZWFkZXIge1xuICBiYWNrZ3JvdW5kOiAjNTQ1NDU0IGxpbmVhci1ncmFkaWVudCh0cmFuc3BhcmVudCwgcmdiYSgwLCAwLCAwLCAwLjA1KSk7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG4gIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG4udWkuaW52ZXJ0ZWQuYmxvY2suaGVhZGVyIHtcbiAgYmFja2dyb3VuZDogIzU0NTQ1NCBsaW5lYXItZ3JhZGllbnQodHJhbnNwYXJlbnQsIHJnYmEoMCwgMCwgMCwgMC4wNSkpO1xuICBib3gtc2hhZG93OiBub25lO1xufVxuLnVpLmludmVydGVkLmJsb2NrLmhlYWRlciB7XG4gIGJvcmRlci1ib3R0b206IG5vbmU7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tIFJlZCAtLS0qL1xuLnVpLnJlZC5oZWFkZXIge1xuICBjb2xvcjogI2RlM2EzZSAhaW1wb3J0YW50O1xufVxuYS51aS5yZWQuaGVhZGVyOmhvdmVyIHtcbiAgY29sb3I6ICNlMzFiMjAgIWltcG9ydGFudDtcbn1cbi51aS5yZWQuZGl2aWRpbmcuaGVhZGVyIHtcbiAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkICNkZTNhM2U7XG59XG4vKiBJbnZlcnRlZCAqL1xuLnVpLmludmVydGVkLnJlZC5oZWFkZXIge1xuICBjb2xvcjogI0ZGNjk1RSAhaW1wb3J0YW50O1xufVxuYS51aS5pbnZlcnRlZC5yZWQuaGVhZGVyOmhvdmVyIHtcbiAgY29sb3I6ICNmZjUxNDQgIWltcG9ydGFudDtcbn1cbi8qLS0tIE9yYW5nZSAtLS0qL1xuLnVpLm9yYW5nZS5oZWFkZXIge1xuICBjb2xvcjogI2ZmOTUzMyAhaW1wb3J0YW50O1xufVxuYS51aS5vcmFuZ2UuaGVhZGVyOmhvdmVyIHtcbiAgY29sb3I6ICNmZjg4MTkgIWltcG9ydGFudDtcbn1cbi51aS5vcmFuZ2UuZGl2aWRpbmcuaGVhZGVyIHtcbiAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkICNmZjk1MzM7XG59XG4vKiBJbnZlcnRlZCAqL1xuLnVpLmludmVydGVkLm9yYW5nZS5oZWFkZXIge1xuICBjb2xvcjogI0ZGODUxQiAhaW1wb3J0YW50O1xufVxuYS51aS5pbnZlcnRlZC5vcmFuZ2UuaGVhZGVyOmhvdmVyIHtcbiAgY29sb3I6ICNmZjc3MDEgIWltcG9ydGFudDtcbn1cbi8qLS0tIE9saXZlIC0tLSovXG4udWkub2xpdmUuaGVhZGVyIHtcbiAgY29sb3I6ICNCNUNDMTggIWltcG9ydGFudDtcbn1cbmEudWkub2xpdmUuaGVhZGVyOmhvdmVyIHtcbiAgY29sb3I6ICNhN2JkMGQgIWltcG9ydGFudDtcbn1cbi51aS5vbGl2ZS5kaXZpZGluZy5oZWFkZXIge1xuICBib3JkZXItYm90dG9tOiAycHggc29saWQgI0I1Q0MxODtcbn1cbi8qIEludmVydGVkICovXG4udWkuaW52ZXJ0ZWQub2xpdmUuaGVhZGVyIHtcbiAgY29sb3I6ICNEOUU3NzggIWltcG9ydGFudDtcbn1cbmEudWkuaW52ZXJ0ZWQub2xpdmUuaGVhZGVyOmhvdmVyIHtcbiAgY29sb3I6ICNkOGVhNWMgIWltcG9ydGFudDtcbn1cbi8qLS0tIFllbGxvdyAtLS0qL1xuLnVpLnllbGxvdy5oZWFkZXIge1xuICBjb2xvcjogI0ZCQkQwOCAhaW1wb3J0YW50O1xufVxuYS51aS55ZWxsb3cuaGVhZGVyOmhvdmVyIHtcbiAgY29sb3I6ICNlYWFlMDAgIWltcG9ydGFudDtcbn1cbi51aS55ZWxsb3cuZGl2aWRpbmcuaGVhZGVyIHtcbiAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkICNGQkJEMDg7XG59XG4vKiBJbnZlcnRlZCAqL1xuLnVpLmludmVydGVkLnllbGxvdy5oZWFkZXIge1xuICBjb2xvcjogI0ZGRTIxRiAhaW1wb3J0YW50O1xufVxuYS51aS5pbnZlcnRlZC55ZWxsb3cuaGVhZGVyOmhvdmVyIHtcbiAgY29sb3I6ICNmZmRmMDUgIWltcG9ydGFudDtcbn1cbi8qLS0tIEdyZWVuIC0tLSovXG4udWkuZ3JlZW4uaGVhZGVyIHtcbiAgY29sb3I6ICMxOWE1MzEgIWltcG9ydGFudDtcbn1cbmEudWkuZ3JlZW4uaGVhZGVyOmhvdmVyIHtcbiAgY29sb3I6ICMxMDk1MjYgIWltcG9ydGFudDtcbn1cbi51aS5ncmVlbi5kaXZpZGluZy5oZWFkZXIge1xuICBib3JkZXItYm90dG9tOiAycHggc29saWQgIzE5YTUzMTtcbn1cbi8qIEludmVydGVkICovXG4udWkuaW52ZXJ0ZWQuZ3JlZW4uaGVhZGVyIHtcbiAgY29sb3I6ICMyRUNDNDAgIWltcG9ydGFudDtcbn1cbmEudWkuaW52ZXJ0ZWQuZ3JlZW4uaGVhZGVyOmhvdmVyIHtcbiAgY29sb3I6ICMyMmJlMzQgIWltcG9ydGFudDtcbn1cbi8qLS0tIFRlYWwgLS0tKi9cbi51aS50ZWFsLmhlYWRlciB7XG4gIGNvbG9yOiAjMDBCNUFEICFpbXBvcnRhbnQ7XG59XG5hLnVpLnRlYWwuaGVhZGVyOmhvdmVyIHtcbiAgY29sb3I6ICMwMDljOTUgIWltcG9ydGFudDtcbn1cbi51aS50ZWFsLmRpdmlkaW5nLmhlYWRlciB7XG4gIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCAjMDBCNUFEO1xufVxuLyogSW52ZXJ0ZWQgKi9cbi51aS5pbnZlcnRlZC50ZWFsLmhlYWRlciB7XG4gIGNvbG9yOiAjNkRGRkZGICFpbXBvcnRhbnQ7XG59XG5hLnVpLmludmVydGVkLnRlYWwuaGVhZGVyOmhvdmVyIHtcbiAgY29sb3I6ICM1NGZmZmYgIWltcG9ydGFudDtcbn1cbi8qLS0tIEJsdWUgLS0tKi9cbi51aS5ibHVlLmhlYWRlciB7XG4gIGNvbG9yOiAjM2Y1MWI1ICFpbXBvcnRhbnQ7XG59XG5hLnVpLmJsdWUuaGVhZGVyOmhvdmVyIHtcbiAgY29sb3I6ICMzMzQ1YTcgIWltcG9ydGFudDtcbn1cbi51aS5ibHVlLmRpdmlkaW5nLmhlYWRlciB7XG4gIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCAjM2Y1MWI1O1xufVxuLyogSW52ZXJ0ZWQgKi9cbi51aS5pbnZlcnRlZC5ibHVlLmhlYWRlciB7XG4gIGNvbG9yOiAjNTRDOEZGICFpbXBvcnRhbnQ7XG59XG5hLnVpLmludmVydGVkLmJsdWUuaGVhZGVyOmhvdmVyIHtcbiAgY29sb3I6ICMzYWMwZmYgIWltcG9ydGFudDtcbn1cbi8qLS0tIFZpb2xldCAtLS0qL1xuLnVpLnZpb2xldC5oZWFkZXIge1xuICBjb2xvcjogIzY0MzVDOSAhaW1wb3J0YW50O1xufVxuYS51aS52aW9sZXQuaGVhZGVyOmhvdmVyIHtcbiAgY29sb3I6ICM1ODI5YmIgIWltcG9ydGFudDtcbn1cbi51aS52aW9sZXQuZGl2aWRpbmcuaGVhZGVyIHtcbiAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkICM2NDM1Qzk7XG59XG4vKiBJbnZlcnRlZCAqL1xuLnVpLmludmVydGVkLnZpb2xldC5oZWFkZXIge1xuICBjb2xvcjogI0EyOTFGQiAhaW1wb3J0YW50O1xufVxuYS51aS5pbnZlcnRlZC52aW9sZXQuaGVhZGVyOmhvdmVyIHtcbiAgY29sb3I6ICM4YTczZmYgIWltcG9ydGFudDtcbn1cbi8qLS0tIFB1cnBsZSAtLS0qL1xuLnVpLnB1cnBsZS5oZWFkZXIge1xuICBjb2xvcjogI0EzMzNDOCAhaW1wb3J0YW50O1xufVxuYS51aS5wdXJwbGUuaGVhZGVyOmhvdmVyIHtcbiAgY29sb3I6ICM5NjI3YmEgIWltcG9ydGFudDtcbn1cbi51aS5wdXJwbGUuZGl2aWRpbmcuaGVhZGVyIHtcbiAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkICNBMzMzQzg7XG59XG4vKiBJbnZlcnRlZCAqL1xuLnVpLmludmVydGVkLnB1cnBsZS5oZWFkZXIge1xuICBjb2xvcjogI0RDNzNGRiAhaW1wb3J0YW50O1xufVxuYS51aS5pbnZlcnRlZC5wdXJwbGUuaGVhZGVyOmhvdmVyIHtcbiAgY29sb3I6ICNkNjVhZmYgIWltcG9ydGFudDtcbn1cbi8qLS0tIFBpbmsgLS0tKi9cbi51aS5waW5rLmhlYWRlciB7XG4gIGNvbG9yOiAjRTAzOTk3ICFpbXBvcnRhbnQ7XG59XG5hLnVpLnBpbmsuaGVhZGVyOmhvdmVyIHtcbiAgY29sb3I6ICNlNjFhOGQgIWltcG9ydGFudDtcbn1cbi51aS5waW5rLmRpdmlkaW5nLmhlYWRlciB7XG4gIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCAjRTAzOTk3O1xufVxuLyogSW52ZXJ0ZWQgKi9cbi51aS5pbnZlcnRlZC5waW5rLmhlYWRlciB7XG4gIGNvbG9yOiAjRkY4RURGICFpbXBvcnRhbnQ7XG59XG5hLnVpLmludmVydGVkLnBpbmsuaGVhZGVyOmhvdmVyIHtcbiAgY29sb3I6ICNmZjc0ZDggIWltcG9ydGFudDtcbn1cbi8qLS0tIEJyb3duIC0tLSovXG4udWkuYnJvd24uaGVhZGVyIHtcbiAgY29sb3I6ICNBNTY3M0YgIWltcG9ydGFudDtcbn1cbmEudWkuYnJvd24uaGVhZGVyOmhvdmVyIHtcbiAgY29sb3I6ICM5NzViMzMgIWltcG9ydGFudDtcbn1cbi51aS5icm93bi5kaXZpZGluZy5oZWFkZXIge1xuICBib3JkZXItYm90dG9tOiAycHggc29saWQgI0E1NjczRjtcbn1cbi8qIEludmVydGVkICovXG4udWkuaW52ZXJ0ZWQuYnJvd24uaGVhZGVyIHtcbiAgY29sb3I6ICNENjdDMUMgIWltcG9ydGFudDtcbn1cbmEudWkuaW52ZXJ0ZWQuYnJvd24uaGVhZGVyOmhvdmVyIHtcbiAgY29sb3I6ICNjODZmMTEgIWltcG9ydGFudDtcbn1cbi8qLS0tIEdyZXkgLS0tKi9cbi51aS5ncmV5LmhlYWRlciB7XG4gIGNvbG9yOiAjNzY3Njc2ICFpbXBvcnRhbnQ7XG59XG5hLnVpLmdyZXkuaGVhZGVyOmhvdmVyIHtcbiAgY29sb3I6ICM4MzgzODMgIWltcG9ydGFudDtcbn1cbi51aS5ncmV5LmRpdmlkaW5nLmhlYWRlciB7XG4gIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCAjNzY3Njc2O1xufVxuLyogSW52ZXJ0ZWQgKi9cbi51aS5pbnZlcnRlZC5ncmV5LmhlYWRlciB7XG4gIGNvbG9yOiAjRENERERFICFpbXBvcnRhbnQ7XG59XG5hLnVpLmludmVydGVkLmdyZXkuaGVhZGVyOmhvdmVyIHtcbiAgY29sb3I6ICNjZmQwZDIgIWltcG9ydGFudDtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFsaWduZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5sZWZ0LmFsaWduZWQuaGVhZGVyIHtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbn1cbi51aS5yaWdodC5hbGlnbmVkLmhlYWRlciB7XG4gIHRleHQtYWxpZ246IHJpZ2h0O1xufVxuLnVpLmNlbnRlcmVkLmhlYWRlcixcbi51aS5jZW50ZXIuYWxpZ25lZC5oZWFkZXIge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG4udWkuanVzdGlmaWVkLmhlYWRlciB7XG4gIHRleHQtYWxpZ246IGp1c3RpZnk7XG59XG4udWkuanVzdGlmaWVkLmhlYWRlcjphZnRlciB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgY29udGVudDogJyc7XG4gIHdpZHRoOiAxMDAlO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRmxvYXRlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmZsb2F0ZWQuaGVhZGVyLFxuLnVpW2NsYXNzKj1cImxlZnQgZmxvYXRlZFwiXS5oZWFkZXIge1xuICBmbG9hdDogbGVmdDtcbiAgbWFyZ2luLXRvcDogMGVtO1xuICBtYXJnaW4tcmlnaHQ6IDAuNWVtO1xufVxuLnVpW2NsYXNzKj1cInJpZ2h0IGZsb2F0ZWRcIl0uaGVhZGVyIHtcbiAgZmxvYXQ6IHJpZ2h0O1xuICBtYXJnaW4tdG9wOiAwZW07XG4gIG1hcmdpbi1sZWZ0OiAwLjVlbTtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZpdHRlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmZpdHRlZC5oZWFkZXIge1xuICBwYWRkaW5nOiAwZW07XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpdmlkaW5nXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkuZGl2aWRpbmcuaGVhZGVyIHtcbiAgcGFkZGluZy1ib3R0b206IDAuM3JlbTtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYmEoMzQsIDM2LCAzOCwgMC4xNSk7XG59XG4udWkuZGl2aWRpbmcuaGVhZGVyIC5zdWIuaGVhZGVyIHtcbiAgcGFkZGluZy1ib3R0b206IDAuM3JlbTtcbn1cbi51aS5kaXZpZGluZy5oZWFkZXIgLmljb24ge1xuICBtYXJnaW4tYm90dG9tOiAwZW07XG59XG4udWkuaW52ZXJ0ZWQuZGl2aWRpbmcuaGVhZGVyIHtcbiAgYm9yZGVyLWJvdHRvbS1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEJsb2NrXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkuYmxvY2suaGVhZGVyIHtcbiAgYmFja2dyb3VuZDogI0YzRjRGNTtcbiAgcGFkZGluZzogMC44cmVtIDFyZW07XG4gIGJveC1zaGFkb3c6IG5vbmU7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNENEQ0RDU7XG4gIGJvcmRlci1yYWRpdXM6IDAuNHJlbTtcbn1cbi51aS50aW55LmJsb2NrLmhlYWRlciB7XG4gIGZvbnQtc2l6ZTogMC45cmVtO1xufVxuLnVpLnNtYWxsLmJsb2NrLmhlYWRlciB7XG4gIGZvbnQtc2l6ZTogMC45cmVtO1xufVxuLnVpLmJsb2NrLmhlYWRlcjpub3QoaDEpOm5vdChoMik6bm90KGgzKTpub3QoaDQpOm5vdChoNSk6bm90KGg2KSB7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbn1cbi51aS5sYXJnZS5ibG9jay5oZWFkZXIge1xuICBmb250LXNpemU6IDEuMXJlbTtcbn1cbi51aS5odWdlLmJsb2NrLmhlYWRlciB7XG4gIGZvbnQtc2l6ZTogMS40cmVtO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQXR0YWNoZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5hdHRhY2hlZC5oZWFkZXIge1xuICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICBwYWRkaW5nOiAwLjhyZW0gMXJlbTtcbiAgbWFyZ2luLWxlZnQ6IC0xcHg7XG4gIG1hcmdpbi1yaWdodDogLTFweDtcbiAgYm94LXNoYWRvdzogbm9uZTtcbiAgYm9yZGVyOiAxcHggc29saWQgI0Q0RDRENTtcbn1cbi51aS5hdHRhY2hlZC5ibG9jay5oZWFkZXIge1xuICBiYWNrZ3JvdW5kOiAjRjNGNEY1O1xufVxuLnVpLmF0dGFjaGVkOm5vdCgudG9wKTpub3QoLmJvdHRvbSkuaGVhZGVyIHtcbiAgbWFyZ2luLXRvcDogMGVtO1xuICBtYXJnaW4tYm90dG9tOiAwZW07XG4gIGJvcmRlci10b3A6IG5vbmU7XG4gIGJvcmRlci1yYWRpdXM6IDBlbTtcbn1cbi51aS50b3AuYXR0YWNoZWQuaGVhZGVyIHtcbiAgbWFyZ2luLWJvdHRvbTogMGVtO1xuICBib3JkZXItcmFkaXVzOiAwLjRyZW0gMC40cmVtIDBlbSAwZW07XG59XG4udWkuYm90dG9tLmF0dGFjaGVkLmhlYWRlciB7XG4gIG1hcmdpbi10b3A6IDBlbTtcbiAgYm9yZGVyLXRvcDogbm9uZTtcbiAgYm9yZGVyLXJhZGl1czogMGVtIDBlbSAwLjRyZW0gMC40cmVtO1xufVxuLyogQXR0YWNoZWQgU2l6ZXMgKi9cbi51aS50aW55LmF0dGFjaGVkLmhlYWRlciB7XG4gIGZvbnQtc2l6ZTogMC45ZW07XG59XG4udWkuc21hbGwuYXR0YWNoZWQuaGVhZGVyIHtcbiAgZm9udC1zaXplOiAwLjllbTtcbn1cbi51aS5hdHRhY2hlZC5oZWFkZXI6bm90KGgxKTpub3QoaDIpOm5vdChoMyk6bm90KGg0KTpub3QoaDUpOm5vdChoNikge1xuICBmb250LXNpemU6IDFlbTtcbn1cbi51aS5sYXJnZS5hdHRhY2hlZC5oZWFkZXIge1xuICBmb250LXNpemU6IDEuMWVtO1xufVxuLnVpLmh1Z2UuYXR0YWNoZWQuaGVhZGVyIHtcbiAgZm9udC1zaXplOiAxLjRlbTtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXppbmdcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5oZWFkZXI6bm90KGgxKTpub3QoaDIpOm5vdChoMyk6bm90KGg0KTpub3QoaDUpOm5vdChoNikge1xuICBmb250LXNpemU6IDJlbTtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBUaGVtZSBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiFcbiAqICMgU2VtYW50aWMgVUkgLSBJY29uXG4gKiBodHRwOi8vZ2l0aHViLmNvbS9zZW1hbnRpYy1vcmcvc2VtYW50aWMtdWkvXG4gKlxuICpcbiAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZVxuICogaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVFxuICpcbiAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLypcblxu4paI4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWXICDilojilojilZfilojilojilojilojilojilojilojilZfilojilojilojilZcgICDilojilojilojilZfilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZdcbuKVmuKVkOKVkOKWiOKWiOKVlOKVkOKVkOKVneKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWd4paI4paI4paI4paI4pWXIOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVnVxuICAg4paI4paI4pWRICAg4paI4paI4paI4paI4paI4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilZTilojilojilojilojilZTilojilojilZHilojilojilojilojilojilZcgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl1xuICAg4paI4paI4pWRICAg4paI4paI4pWU4pWQ4pWQ4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilojilojilZHilZrilojilojilZTilZ3ilojilojilZHilojilojilZTilZDilZDilZ0gIOKVmuKVkOKVkOKVkOKVkOKWiOKWiOKVkVxuICAg4paI4paI4pWRICAg4paI4paI4pWRICDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilZEg4pWa4pWQ4pWdIOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkVxuICAg4pWa4pWQ4pWdICAg4pWa4pWQ4pWdICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZ0gICAgIOKVmuKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVnVxuXG4qL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgVGhlbWUgU2VsZWN0aW9uXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogVG8gb3ZlcnJpZGUgYSB0aGVtZSBmb3IgYW4gaW5kaXZpZHVhbCBlbGVtZW50XG4gICBzcGVjaWZ5IHRoZW1lIG5hbWUgYmVsb3dcbiovXG4vKiBHbG9iYWwgKi9cbi8qIEVsZW1lbnRzICovXG4vKiBDb2xsZWN0aW9ucyAqL1xuLyogTW9kdWxlcyAqL1xuLyogVmlld3MgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBGb2xkZXJzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogUGF0aCB0byB0aGVtZSBwYWNrYWdlcyAqL1xuLyogUGF0aCB0byBzaXRlIG92ZXJyaWRlIGZvbGRlciAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIEltcG9ydCBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIEltcG9ydCBEaXJlY3RpdmVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBUaGVtZVxuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICBTaXRlIFZhcmlhYmxlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERlZmF1bHQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZG9ycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBQYWNrYWdlZCBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kb3JzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIENvbXBvbmVudCdzIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRvcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogU2l0ZSB0aGVtZSBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgVXNlciBHbG9iYWwgVmFyaWFibGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogbWFyc28gY29sb3JzICovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gQ29tcG9uZW50IFZhcmlhYmxlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERlZmF1bHQgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgSWNvblxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgSWNvbiBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFZhcmlhdGlvbnMgKi9cbi8qIFBhY2thZ2VkIFRoZW1lICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIEljb25cbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgIEljb24gVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBWYXJpYXRpb25zICovXG4vKiBTaXRlIFRoZW1lICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgIFVzZXIgVmFyaWFibGUgT3ZlcnJpZGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBNaXgtaW5zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBPdmVycmlkZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRW5kIENvbmZpZyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBJY29uXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnSWNvbnMnO1xuICBzcmM6IHVybChcIi4uLy4uLy4uLy4uL2ZvbnRzL3NlbWFudGljLXVpL2ljb25zLmVvdFwiKTtcbiAgc3JjOiB1cmwoXCIuLi8uLi8uLi8uLi9mb250cy9zZW1hbnRpYy11aS9pY29ucy5lb3Q/I2llZml4XCIpIGZvcm1hdCgnZW1iZWRkZWQtb3BlbnR5cGUnKSwgdXJsKFwiLi4vLi4vLi4vLi4vZm9udHMvc2VtYW50aWMtdWkvaWNvbnMud29mZjJcIikgZm9ybWF0KCd3b2ZmMicpLCB1cmwoXCIuLi8uLi8uLi8uLi9mb250cy9zZW1hbnRpYy11aS9pY29ucy53b2ZmXCIpIGZvcm1hdCgnd29mZicpLCB1cmwoXCIuLi8uLi8uLi8uLi9mb250cy9zZW1hbnRpYy11aS9pY29ucy50dGZcIikgZm9ybWF0KCd0cnVldHlwZScpLCB1cmwoXCIuLi8uLi8uLi8uLi9mb250cy9zZW1hbnRpYy11aS9pY29ucy5zdmcjaWNvbnNcIikgZm9ybWF0KCdzdmcnKTtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXZhcmlhbnQ6IG5vcm1hbDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBpbmhlcml0O1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgZm9udC1kaXNwbGF5OiBzd2FwO1xufVxuaS5pY29uIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBvcGFjaXR5OiAxO1xuICBtYXJnaW46IDBlbSAwLjI1cmVtIDBlbSAwZW07XG4gIHdpZHRoOiAxLjE4ZW07XG4gIGhlaWdodDogMWVtO1xuICBmb250LWZhbWlseTogJ0ljb25zJztcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICB0ZXh0LWRlY29yYXRpb246IGluaGVyaXQ7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgc3BlYWs6IG5vbmU7XG4gIGZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbn1cbmkuaWNvbjpiZWZvcmUge1xuICBiYWNrZ3JvdW5kOiBub25lICFpbXBvcnRhbnQ7XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFR5cGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgIExvYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG5pLmljb24ubG9hZGluZyB7XG4gIGhlaWdodDogMWVtO1xuICBsaW5lLWhlaWdodDogMTtcbiAgYW5pbWF0aW9uOiBpY29uLWxvYWRpbmcgMnMgbGluZWFyIGluZmluaXRlO1xufVxuQGtleWZyYW1lcyBpY29uLWxvYWRpbmcge1xuICBmcm9tIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcbiAgfVxuICB0byB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTtcbiAgfVxufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5pLmljb24uaG92ZXIge1xuICBvcGFjaXR5OiAxICFpbXBvcnRhbnQ7XG59XG5pLmljb24uYWN0aXZlIHtcbiAgb3BhY2l0eTogMSAhaW1wb3J0YW50O1xufVxuaS5lbXBoYXNpemVkLmljb24ge1xuICBvcGFjaXR5OiAxICFpbXBvcnRhbnQ7XG59XG5pLmRpc2FibGVkLmljb24ge1xuICBvcGFjaXR5OiAwLjQ1ICFpbXBvcnRhbnQ7XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBWYXJpYXRpb25zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZpdHRlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuaS5maXR0ZWQuaWNvbiB7XG4gIHdpZHRoOiBhdXRvO1xuICBtYXJnaW46IDBlbTtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICAgTGlua1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuaS5saW5rLmljb24sXG5pLmxpbmsuaWNvbnMge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIG9wYWNpdHk6IDAuODtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjFzIGVhc2U7XG59XG5pLmxpbmsuaWNvbjpob3ZlcixcbmkubGluay5pY29uczpob3ZlciB7XG4gIG9wYWNpdHk6IDEgIWltcG9ydGFudDtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQ2lyY3VsYXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbmkuY2lyY3VsYXIuaWNvbiB7XG4gIGJvcmRlci1yYWRpdXM6IDUwMGVtICFpbXBvcnRhbnQ7XG4gIGxpbmUtaGVpZ2h0OiAxICFpbXBvcnRhbnQ7XG4gIHBhZGRpbmc6IDAuNWVtIDAuNWVtICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IDBlbSAwZW0gMGVtIDAuMWVtIHJnYmEoMCwgMCwgMCwgMC4xKSBpbnNldDtcbiAgd2lkdGg6IDJlbSAhaW1wb3J0YW50O1xuICBoZWlnaHQ6IDJlbSAhaW1wb3J0YW50O1xufVxuaS5jaXJjdWxhci5pbnZlcnRlZC5pY29uIHtcbiAgYm9yZGVyOiBub25lO1xuICBib3gtc2hhZG93OiBub25lO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBGbGlwcGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5pLmZsaXBwZWQuaWNvbixcbmkuaG9yaXpvbnRhbGx5LmZsaXBwZWQuaWNvbiB7XG4gIHRyYW5zZm9ybTogc2NhbGUoLTEsIDEpO1xufVxuaS52ZXJ0aWNhbGx5LmZsaXBwZWQuaWNvbiB7XG4gIHRyYW5zZm9ybTogc2NhbGUoMSwgLTEpO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBSb3RhdGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5pLnJvdGF0ZWQuaWNvbixcbmkucmlnaHQucm90YXRlZC5pY29uLFxuaS5jbG9ja3dpc2Uucm90YXRlZC5pY29uIHtcbiAgdHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpO1xufVxuaS5sZWZ0LnJvdGF0ZWQuaWNvbixcbmkuY291bnRlcmNsb2Nrd2lzZS5yb3RhdGVkLmljb24ge1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgtOTBkZWcpO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuaS5ib3JkZXJlZC5pY29uIHtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbiAgd2lkdGg6IDJlbTtcbiAgaGVpZ2h0OiAyZW07XG4gIHBhZGRpbmc6IDAuNWVtIDAuNDFlbSAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiAwZW0gMGVtIDBlbSAwLjFlbSByZ2JhKDAsIDAsIDAsIDAuMSkgaW5zZXQ7XG59XG5pLmJvcmRlcmVkLmludmVydGVkLmljb24ge1xuICBib3JkZXI6IG5vbmU7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEludmVydGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCBTaGFwZXMgKi9cbmkuaW52ZXJ0ZWQuYm9yZGVyZWQuaWNvbixcbmkuaW52ZXJ0ZWQuY2lyY3VsYXIuaWNvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDAwMDAgIWltcG9ydGFudDtcbiAgY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcbn1cbmkuaW52ZXJ0ZWQuaWNvbiB7XG4gIGNvbG9yOiAjZmZmZmZmO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBSZWQgKi9cbmkucmVkLmljb24ge1xuICBjb2xvcjogI2RlM2EzZSAhaW1wb3J0YW50O1xufVxuaS5pbnZlcnRlZC5yZWQuaWNvbiB7XG4gIGNvbG9yOiAjRkY2OTVFICFpbXBvcnRhbnQ7XG59XG5pLmludmVydGVkLmJvcmRlcmVkLnJlZC5pY29uLFxuaS5pbnZlcnRlZC5jaXJjdWxhci5yZWQuaWNvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkZTNhM2UgIWltcG9ydGFudDtcbiAgY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcbn1cbi8qIE9yYW5nZSAqL1xuaS5vcmFuZ2UuaWNvbiB7XG4gIGNvbG9yOiAjZmY5NTMzICFpbXBvcnRhbnQ7XG59XG5pLmludmVydGVkLm9yYW5nZS5pY29uIHtcbiAgY29sb3I6ICNGRjg1MUIgIWltcG9ydGFudDtcbn1cbmkuaW52ZXJ0ZWQuYm9yZGVyZWQub3JhbmdlLmljb24sXG5pLmludmVydGVkLmNpcmN1bGFyLm9yYW5nZS5pY29uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmOTUzMyAhaW1wb3J0YW50O1xuICBjb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xufVxuLyogWWVsbG93ICovXG5pLnllbGxvdy5pY29uIHtcbiAgY29sb3I6ICNGQkJEMDggIWltcG9ydGFudDtcbn1cbmkuaW52ZXJ0ZWQueWVsbG93Lmljb24ge1xuICBjb2xvcjogI0ZGRTIxRiAhaW1wb3J0YW50O1xufVxuaS5pbnZlcnRlZC5ib3JkZXJlZC55ZWxsb3cuaWNvbixcbmkuaW52ZXJ0ZWQuY2lyY3VsYXIueWVsbG93Lmljb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkJCRDA4ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG59XG4vKiBPbGl2ZSAqL1xuaS5vbGl2ZS5pY29uIHtcbiAgY29sb3I6ICNCNUNDMTggIWltcG9ydGFudDtcbn1cbmkuaW52ZXJ0ZWQub2xpdmUuaWNvbiB7XG4gIGNvbG9yOiAjRDlFNzc4ICFpbXBvcnRhbnQ7XG59XG5pLmludmVydGVkLmJvcmRlcmVkLm9saXZlLmljb24sXG5pLmludmVydGVkLmNpcmN1bGFyLm9saXZlLmljb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjQjVDQzE4ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG59XG4vKiBHcmVlbiAqL1xuaS5ncmVlbi5pY29uIHtcbiAgY29sb3I6ICMxOWE1MzEgIWltcG9ydGFudDtcbn1cbmkuaW52ZXJ0ZWQuZ3JlZW4uaWNvbiB7XG4gIGNvbG9yOiAjMkVDQzQwICFpbXBvcnRhbnQ7XG59XG5pLmludmVydGVkLmJvcmRlcmVkLmdyZWVuLmljb24sXG5pLmludmVydGVkLmNpcmN1bGFyLmdyZWVuLmljb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTlhNTMxICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG59XG4vKiBUZWFsICovXG5pLnRlYWwuaWNvbiB7XG4gIGNvbG9yOiAjMDBCNUFEICFpbXBvcnRhbnQ7XG59XG5pLmludmVydGVkLnRlYWwuaWNvbiB7XG4gIGNvbG9yOiAjNkRGRkZGICFpbXBvcnRhbnQ7XG59XG5pLmludmVydGVkLmJvcmRlcmVkLnRlYWwuaWNvbixcbmkuaW52ZXJ0ZWQuY2lyY3VsYXIudGVhbC5pY29uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwQjVBRCAhaW1wb3J0YW50O1xuICBjb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xufVxuLyogQmx1ZSAqL1xuaS5ibHVlLmljb24ge1xuICBjb2xvcjogIzNmNTFiNSAhaW1wb3J0YW50O1xufVxuaS5pbnZlcnRlZC5ibHVlLmljb24ge1xuICBjb2xvcjogIzU0QzhGRiAhaW1wb3J0YW50O1xufVxuaS5pbnZlcnRlZC5ib3JkZXJlZC5ibHVlLmljb24sXG5pLmludmVydGVkLmNpcmN1bGFyLmJsdWUuaWNvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzZjUxYjUgIWltcG9ydGFudDtcbiAgY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcbn1cbi8qIFZpb2xldCAqL1xuaS52aW9sZXQuaWNvbiB7XG4gIGNvbG9yOiAjNjQzNUM5ICFpbXBvcnRhbnQ7XG59XG5pLmludmVydGVkLnZpb2xldC5pY29uIHtcbiAgY29sb3I6ICNBMjkxRkIgIWltcG9ydGFudDtcbn1cbmkuaW52ZXJ0ZWQuYm9yZGVyZWQudmlvbGV0Lmljb24sXG5pLmludmVydGVkLmNpcmN1bGFyLnZpb2xldC5pY29uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzY0MzVDOSAhaW1wb3J0YW50O1xuICBjb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xufVxuLyogUHVycGxlICovXG5pLnB1cnBsZS5pY29uIHtcbiAgY29sb3I6ICNBMzMzQzggIWltcG9ydGFudDtcbn1cbmkuaW52ZXJ0ZWQucHVycGxlLmljb24ge1xuICBjb2xvcjogI0RDNzNGRiAhaW1wb3J0YW50O1xufVxuaS5pbnZlcnRlZC5ib3JkZXJlZC5wdXJwbGUuaWNvbixcbmkuaW52ZXJ0ZWQuY2lyY3VsYXIucHVycGxlLmljb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjQTMzM0M4ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG59XG4vKiBQaW5rICovXG5pLnBpbmsuaWNvbiB7XG4gIGNvbG9yOiAjRTAzOTk3ICFpbXBvcnRhbnQ7XG59XG5pLmludmVydGVkLnBpbmsuaWNvbiB7XG4gIGNvbG9yOiAjRkY4RURGICFpbXBvcnRhbnQ7XG59XG5pLmludmVydGVkLmJvcmRlcmVkLnBpbmsuaWNvbixcbmkuaW52ZXJ0ZWQuY2lyY3VsYXIucGluay5pY29uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0UwMzk5NyAhaW1wb3J0YW50O1xuICBjb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xufVxuLyogQnJvd24gKi9cbmkuYnJvd24uaWNvbiB7XG4gIGNvbG9yOiAjQTU2NzNGICFpbXBvcnRhbnQ7XG59XG5pLmludmVydGVkLmJyb3duLmljb24ge1xuICBjb2xvcjogI0Q2N0MxQyAhaW1wb3J0YW50O1xufVxuaS5pbnZlcnRlZC5ib3JkZXJlZC5icm93bi5pY29uLFxuaS5pbnZlcnRlZC5jaXJjdWxhci5icm93bi5pY29uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0E1NjczRiAhaW1wb3J0YW50O1xuICBjb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xufVxuLyogR3JleSAqL1xuaS5ncmV5Lmljb24ge1xuICBjb2xvcjogIzc2NzY3NiAhaW1wb3J0YW50O1xufVxuaS5pbnZlcnRlZC5ncmV5Lmljb24ge1xuICBjb2xvcjogI0RDRERERSAhaW1wb3J0YW50O1xufVxuaS5pbnZlcnRlZC5ib3JkZXJlZC5ncmV5Lmljb24sXG5pLmludmVydGVkLmNpcmN1bGFyLmdyZXkuaWNvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM3Njc2NzYgIWltcG9ydGFudDtcbiAgY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcbn1cbi8qIEJsYWNrICovXG5pLmJsYWNrLmljb24ge1xuICBjb2xvcjogIzAwMDAwMCAhaW1wb3J0YW50O1xufVxuaS5pbnZlcnRlZC5ibGFjay5pY29uIHtcbiAgY29sb3I6ICM1NDU0NTQgIWltcG9ydGFudDtcbn1cbmkuaW52ZXJ0ZWQuYm9yZGVyZWQuYmxhY2suaWNvbixcbmkuaW52ZXJ0ZWQuY2lyY3VsYXIuYmxhY2suaWNvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDAwMDAgIWltcG9ydGFudDtcbiAgY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuaS5taW5pLmljb24sXG5pLm1pbmkuaWNvbnMge1xuICBsaW5lLWhlaWdodDogMTtcbiAgZm9udC1zaXplOiAwLjRlbTtcbn1cbmkudGlueS5pY29uLFxuaS50aW55Lmljb25zIHtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGZvbnQtc2l6ZTogMC41ZW07XG59XG5pLnNtYWxsLmljb24sXG5pLnNtYWxsLmljb25zIHtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGZvbnQtc2l6ZTogMC43NWVtO1xufVxuaS5pY29uLFxuaS5pY29ucyB7XG4gIGZvbnQtc2l6ZTogMWVtO1xufVxuaS5sYXJnZS5pY29uLFxuaS5sYXJnZS5pY29ucyB7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBmb250LXNpemU6IDEuNWVtO1xufVxuaS5iaWcuaWNvbixcbmkuYmlnLmljb25zIHtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIGZvbnQtc2l6ZTogMmVtO1xufVxuaS5odWdlLmljb24sXG5pLmh1Z2UuaWNvbnMge1xuICBsaW5lLWhlaWdodDogMTtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgZm9udC1zaXplOiA0ZW07XG59XG5pLm1hc3NpdmUuaWNvbixcbmkubWFzc2l2ZS5pY29ucyB7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBmb250LXNpemU6IDhlbTtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBHcm91cHNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5pLmljb25zIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGxpbmUtaGVpZ2h0OiAxO1xufVxuaS5pY29ucyAuaWNvbiB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIGxlZnQ6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpIHRyYW5zbGF0ZVkoLTUwJSk7XG4gIG1hcmdpbjogMGVtO1xuICBtYXJnaW46IDA7XG59XG5pLmljb25zIC5pY29uOmZpcnN0LWNoaWxkIHtcbiAgcG9zaXRpb246IHN0YXRpYztcbiAgd2lkdGg6IGF1dG87XG4gIGhlaWdodDogYXV0bztcbiAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgdHJhbnNmb3JtOiBub25lO1xuICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG59XG4vKiBDb3JuZXIgSWNvbiAqL1xuaS5pY29ucyAuY29ybmVyLmljb24ge1xuICB0b3A6IGF1dG87XG4gIGxlZnQ6IGF1dG87XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDA7XG4gIHRyYW5zZm9ybTogbm9uZTtcbiAgZm9udC1zaXplOiAwLjQ1ZW07XG4gIHRleHQtc2hhZG93OiAtMXB4IC0xcHggMCAjZmZmZmZmLCAxcHggLTFweCAwICNmZmZmZmYsIC0xcHggMXB4IDAgI2ZmZmZmZiwgMXB4IDFweCAwICNmZmZmZmY7XG59XG5pLmljb25zIC5pbnZlcnRlZC5jb3JuZXIuaWNvbiB7XG4gIHRleHQtc2hhZG93OiAtMXB4IC0xcHggMCAjMDAwMDAwLCAxcHggLTFweCAwICMwMDAwMDAsIC0xcHggMXB4IDAgIzAwMDAwMCwgMXB4IDFweCAwICMwMDAwMDA7XG59XG4vKlxuICogRm9udCBBd2Vzb21lIDUuMC42IGJ5IEBmb250YXdlc29tZSAtIGh0dHA6Ly9mb250YXdlc29tZS5pbyAtIEBmb250YXdlc29tZVxuICogTGljZW5zZSAtIGh0dHBzOi8vZm9udGF3ZXNvbWUuY29tL2xpY2Vuc2UgKEljb25zOiBDQyBCWSA0LjAgTGljZW5zZSwgRm9udHM6IFNJTCBPRkwgMS4xIExpY2Vuc2UsIENTUzogTUlUIExpY2Vuc2UpXG4gKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG5cblNlbWFudGljLVVJIGludGVncmF0aW9uIG9mIGZvbnQtYXdlc29tZSA6XG5cbi8vL2NsYXNzIG5hbWVzIGFyZSBzZXBhcmF0ZWRcbmkuaWNvbi5jaXJjbGUgPT4gaS5pY29uLmNpcmNsZVxuaS5pY29uLmNpcmNsZS1vID0+IGkuaWNvbi5jaXJjbGUub3V0bGluZVxuXG4vL2FiYnJldmlhdGlvbiBhcmUgcmVwbGFjZWQgYnkgZnVsbCBsZXR0ZXJzOlxuaS5pY29uLmVsbGlwc2lzLWggPT4gaS5pY29uLmVsbGlwc2lzLmhvcml6b250YWxcbmkuaWNvbi5lbGxpcHNpcy12ID0+IGkuaWNvbi5lbGxpcHNpcy52ZXJ0aWNhbFxuLmFscGhhID0+IC5pLmljb24uYWxwaGFiZXRcbi5hc2MgPT4gLmkuaWNvbi5hc2NlbmRpbmdcbi5kZXNjID0+IC5pLmljb24uZGVzY2VuZGluZ1xuLmFsdCA9Pi5hbHRlcm5hdGVcblxuQVNDSUkgb3JkZXIgaXMgY29uc2VydmVkIGZvciBlYXNpZXIgbWFpbnRlbmFuY2UuXG5cbkljb25zIHRoYXQgb25seSBoYXZlIG9uZSBzdHlsZSAnb3V0bGluZScsICdzcXVhcmUnIGV0YyBkbyBub3QgcmVxdWlyZSB0aGlzIGNsYXNzXG5mb3IgaW5zdGFuY2UgYGxlbW9uIGljb25gIG5vdCBgbGVtb24gb3V0bGluZSBpY29uYCBzaW5jZSB0aGVyZSBpcyBvbmx5IG9uZSBsZW1vblxuXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIEljb25zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogQWNjZXNzaWJpbGl0eSAqL1xuaS5pY29uLmFtZXJpY2FuLnNpZ24ubGFuZ3VhZ2UuaW50ZXJwcmV0aW5nOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmEzXCI7XG59XG5pLmljb24uYXNzaXN0aXZlLmxpc3RlbmluZy5zeXN0ZW1zOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmEyXCI7XG59XG5pLmljb24uYXVkaW8uZGVzY3JpcHRpb246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyOWVcIjtcbn1cbmkuaWNvbi5ibGluZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI5ZFwiO1xufVxuaS5pY29uLmJyYWlsbGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyYTFcIjtcbn1cbmkuaWNvbi5jbG9zZWQuY2FwdGlvbmluZy5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzI3XCI7XG59XG5pLmljb24uY2xvc2VkLmNhcHRpb25pbmc6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMGFcIjtcbn1cbmkuaWNvbi5kZWFmOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmE0XCI7XG59XG5pLmljb24ubG93LnZpc2lvbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJhOFwiO1xufVxuaS5pY29uLnBob25lLnZvbHVtZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJhMFwiO1xufVxuaS5pY29uLnF1ZXN0aW9uLmNpcmNsZS5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNjI4XCI7XG59XG5pLmljb24ucXVlc3Rpb24uY2lyY2xlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDU5XCI7XG59XG5pLmljb24uc2lnbi5sYW5ndWFnZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJhN1wiO1xufVxuaS5pY29uLnR0eTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFlNFwiO1xufVxuaS5pY29uLnVuaXZlcnNhbC5hY2Nlc3M6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyOWFcIjtcbn1cbmkuaWNvbi53aGVlbGNoYWlyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTkzXCI7XG59XG4vKiBBcnJvd3MgKi9cbmkuaWNvbi5hbmdsZS5kb3VibGUuZG93bjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEwM1wiO1xufVxuaS5pY29uLmFuZ2xlLmRvdWJsZS5sZWZ0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTAwXCI7XG59XG5pLmljb24uYW5nbGUuZG91YmxlLnJpZ2h0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTAxXCI7XG59XG5pLmljb24uYW5nbGUuZG91YmxlLnVwOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTAyXCI7XG59XG5pLmljb24uYW5nbGUuZG93bjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEwN1wiO1xufVxuaS5pY29uLmFuZ2xlLmxlZnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMDRcIjtcbn1cbmkuaWNvbi5hbmdsZS5yaWdodDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEwNVwiO1xufVxuaS5pY29uLmFuZ2xlLnVwOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTA2XCI7XG59XG5pLmljb24uYXJyb3cuYWx0ZXJuYXRlLmNpcmNsZS5kb3duLm91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY2MDhcIjtcbn1cbmkuaWNvbi5hcnJvdy5hbHRlcm5hdGUuY2lyY2xlLmRvd246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzNThcIjtcbn1cbmkuaWNvbi5hcnJvdy5hbHRlcm5hdGUuY2lyY2xlLmxlZnQub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjYwNVwiO1xufVxuaS5pY29uLmFycm93LmFsdGVybmF0ZS5jaXJjbGUubGVmdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjM1OVwiO1xufVxuaS5pY29uLmFycm93LmFsdGVybmF0ZS5jaXJjbGUucmlnaHQub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjMwNFwiO1xufVxuaS5pY29uLmFycm93LmFsdGVybmF0ZS5jaXJjbGUucmlnaHQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzNWFcIjtcbn1cbmkuaWNvbi5hcnJvdy5hbHRlcm5hdGUuY2lyY2xlLnVwLm91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzMDVcIjtcbn1cbmkuaWNvbi5hcnJvdy5hbHRlcm5hdGUuY2lyY2xlLnVwOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzViXCI7XG59XG5pLmljb24uYXJyb3cuY2lyY2xlLmRvd246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwYWJcIjtcbn1cbmkuaWNvbi5hcnJvdy5jaXJjbGUubGVmdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBhOFwiO1xufVxuaS5pY29uLmFycm93LmNpcmNsZS5yaWdodDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBhOVwiO1xufVxuaS5pY29uLmFycm93LmNpcmNsZS51cDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBhYVwiO1xufVxuaS5pY29uLmFycm93LmRvd246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwNjNcIjtcbn1cbmkuaWNvbi5hcnJvdy5sZWZ0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDYwXCI7XG59XG5pLmljb24uYXJyb3cucmlnaHQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwNjFcIjtcbn1cbmkuaWNvbi5hcnJvdy51cDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA2MlwiO1xufVxuaS5pY29uLmFycm93cy5hbHRlcm5hdGUuaG9yaXpvbnRhbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjMzN1wiO1xufVxuaS5pY29uLmFycm93cy5hbHRlcm5hdGUudmVydGljYWw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzMzhcIjtcbn1cbmkuaWNvbi5hcnJvd3MuYWx0ZXJuYXRlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGIyXCI7XG59XG5pLmljb24uY2FyZXQuZG93bjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBkN1wiO1xufVxuaS5pY29uLmNhcmV0LmxlZnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwZDlcIjtcbn1cbmkuaWNvbi5jYXJldC5yaWdodDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBkYVwiO1xufVxuaS5pY29uLmNhcmV0LnNxdWFyZS5kb3duLm91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzMTZcIjtcbn1cbmkuaWNvbi5jYXJldC5zcXVhcmUuZG93bjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE1MFwiO1xufVxuaS5pY29uLmNhcmV0LnNxdWFyZS5sZWZ0Lm91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzMTdcIjtcbn1cbmkuaWNvbi5jYXJldC5zcXVhcmUubGVmdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE5MVwiO1xufVxuaS5pY29uLmNhcmV0LnNxdWFyZS5yaWdodC5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzE4XCI7XG59XG5pLmljb24uY2FyZXQuc3F1YXJlLnJpZ2h0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTUyXCI7XG59XG5pLmljb24uY2FyZXQuc3F1YXJlLnVwLm91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzMTlcIjtcbn1cbmkuaWNvbi5jYXJldC5zcXVhcmUudXA6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNTFcIjtcbn1cbmkuaWNvbi5jYXJldC51cDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBkOFwiO1xufVxuaS5pY29uLmNhcnQuYXJyb3cuZG93bjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIxOFwiO1xufVxuaS5pY29uLmNoYXJ0LmxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMDFcIjtcbn1cbmkuaWNvbi5jaGV2cm9uLmNpcmNsZS5kb3duOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTNhXCI7XG59XG5pLmljb24uY2hldnJvbi5jaXJjbGUubGVmdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEzN1wiO1xufVxuaS5pY29uLmNoZXZyb24uY2lyY2xlLnJpZ2h0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTM4XCI7XG59XG5pLmljb24uY2hldnJvbi5jaXJjbGUudXA6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMzlcIjtcbn1cbmkuaWNvbi5jaGV2cm9uLmRvd246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwNzhcIjtcbn1cbmkuaWNvbi5jaGV2cm9uLmxlZnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwNTNcIjtcbn1cbmkuaWNvbi5jaGV2cm9uLnJpZ2h0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDU0XCI7XG59XG5pLmljb24uY2hldnJvbi51cDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA3N1wiO1xufVxuaS5pY29uLmNsb3VkLmRvd25sb2FkLmFsdGVybmF0ZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjYwMFwiO1xufVxuaS5pY29uLmNsb3VkLnVwbG9hZC5hbHRlcm5hdGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY2MDFcIjtcbn1cbmkuaWNvbi5kb3dubG9hZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAxOVwiO1xufVxuaS5pY29uLmV4Y2hhbmdlLmFsdGVybmF0ZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjM2MlwiO1xufVxuaS5pY29uLmV4cGFuZC5hcnJvd3MuYWx0ZXJuYXRlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzFlXCI7XG59XG5pLmljb24uZXh0ZXJuYWwubGluay5hbHRlcm5hdGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzNWRcIjtcbn1cbmkuaWNvbi5leHRlcm5hbC5saW5rLnNxdWFyZS5hbHRlcm5hdGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzNjBcIjtcbn1cbmkuaWNvbi5oYW5kLnBvaW50LmRvd24ub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjYwMlwiO1xufVxuaS5pY29uLmhhbmQucG9pbnQuZG93bjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBhN1wiO1xufVxuaS5pY29uLmhhbmQucG9pbnQubGVmdC5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzYxXCI7XG59XG5pLmljb24uaGFuZC5wb2ludC5sZWZ0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGE1XCI7XG59XG5pLmljb24uaGFuZC5wb2ludC5yaWdodC5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzYyXCI7XG59XG5pLmljb24uaGFuZC5wb2ludC5yaWdodDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBhNFwiO1xufVxuaS5pY29uLmhhbmQucG9pbnQudXAub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjM2M1wiO1xufVxuaS5pY29uLmhhbmQucG9pbnQudXA6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwYTZcIjtcbn1cbmkuaWNvbi5oYW5kLnBvaW50ZXIub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjM2NFwiO1xufVxuaS5pY29uLmhhbmQucG9pbnRlcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI1YVwiO1xufVxuaS5pY29uLmhpc3Rvcnk6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxZGFcIjtcbn1cbmkuaWNvbi5sZXZlbC5kb3duLmFsdGVybmF0ZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNiZVwiO1xufVxuaS5pY29uLmxldmVsLnVwLmFsdGVybmF0ZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNiZlwiO1xufVxuaS5pY29uLmxvY2F0aW9uLmFycm93OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTI0XCI7XG59XG5pLmljb24ubG9uZy5hcnJvdy5hbHRlcm5hdGUuZG93bjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjMwOVwiO1xufVxuaS5pY29uLmxvbmcuYXJyb3cuYWx0ZXJuYXRlLmxlZnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzMGFcIjtcbn1cbmkuaWNvbi5sb25nLmFycm93LmFsdGVybmF0ZS5yaWdodDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjMwYlwiO1xufVxuaS5pY29uLmxvbmcuYXJyb3cuYWx0ZXJuYXRlLnVwOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzBjXCI7XG59XG5pLmljb24ubW91c2UucG9pbnRlcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI0NVwiO1xufVxuaS5pY29uLnBsYXk6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwNGJcIjtcbn1cbmkuaWNvbi5yYW5kb206YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwNzRcIjtcbn1cbmkuaWNvbi5yZWN5Y2xlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWI4XCI7XG59XG5pLmljb24ucmVkby5hbHRlcm5hdGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyZjlcIjtcbn1cbmkuaWNvbi5yZWRvOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDFlXCI7XG59XG5pLmljb24ucmVwbHkuYWxsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTIyXCI7XG59XG5pLmljb24ucmVwbHk6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzZTVcIjtcbn1cbmkuaWNvbi5yZXR3ZWV0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDc5XCI7XG59XG5pLmljb24uc2hhcmUuc3F1YXJlLm91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY2MzFcIjtcbn1cbmkuaWNvbi5zaGFyZS5zcXVhcmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNGRcIjtcbn1cbmkuaWNvbi5zaGFyZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA2NFwiO1xufVxuaS5pY29uLnNpZ24uaW4uYWx0ZXJuYXRlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmY2XCI7XG59XG5pLmljb24uc2lnbi5vdXQuYWx0ZXJuYXRlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmY1XCI7XG59XG5pLmljb24uc29ydC5hbHBoYWJldC5kb3duOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTVkXCI7XG59XG5pLmljb24uc29ydC5hbHBoYWJldC51cDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE1ZVwiO1xufVxuaS5pY29uLnNvcnQuYW1vdW50LmRvd246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNjBcIjtcbn1cbmkuaWNvbi5zb3J0LmFtb3VudC51cDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE2MVwiO1xufVxuaS5pY29uLnNvcnQuZG93bjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBkZFwiO1xufVxuaS5pY29uLnNvcnQubnVtZXJpYy5kb3duOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTYyXCI7XG59XG5pLmljb24uc29ydC5udW1lcmljLnVwOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTYzXCI7XG59XG5pLmljb24uc29ydC51cDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBkZVwiO1xufVxuaS5pY29uLnNvcnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwZGNcIjtcbn1cbmkuaWNvbi5zeW5jLmFsdGVybmF0ZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJmMVwiO1xufVxuaS5pY29uLnN5bmM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMjFcIjtcbn1cbmkuaWNvbi50ZXh0LmhlaWdodDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAzNFwiO1xufVxuaS5pY29uLnRleHQud2lkdGg6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMzVcIjtcbn1cbmkuaWNvbi51bmRvLmFsdGVybmF0ZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJlYVwiO1xufVxuaS5pY29uLnVuZG86YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwZTJcIjtcbn1cbmkuaWNvbi51cGxvYWQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwOTNcIjtcbn1cbi8qIEF1ZGlvICYgVmlkZW8gKi9cbmkuaWNvbi5iYWNrd2FyZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA0YVwiO1xufVxuaS5pY29uLmNpcmNsZS5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzIzXCI7XG59XG5pLmljb24uY2lyY2xlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTExXCI7XG59XG5pLmljb24uY29tcHJlc3M6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwNjZcIjtcbn1cbmkuaWNvbi5lamVjdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA1MlwiO1xufVxuaS5pY29uLmV4cGFuZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA2NVwiO1xufVxuaS5pY29uLmZhc3QuYmFja3dhcmQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwNDlcIjtcbn1cbmkuaWNvbi5mYXN0LmZvcndhcmQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwNTBcIjtcbn1cbmkuaWNvbi5maWxlLmF1ZGlvLm91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzNDJcIjtcbn1cbmkuaWNvbi5maWxlLmF1ZGlvOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWM3XCI7XG59XG5pLmljb24uZmlsZS52aWRlby5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzQ4XCI7XG59XG5pLmljb24uZmlsZS52aWRlbzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFjOFwiO1xufVxuaS5pY29uLmZpbG06YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMDhcIjtcbn1cbmkuaWNvbi5mb3J3YXJkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDRlXCI7XG59XG5pLmljb24uaGVhZHBob25lczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAyNVwiO1xufVxuaS5pY29uLm1pY3JvcGhvbmUuc2xhc2g6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMzFcIjtcbn1cbmkuaWNvbi5taWNyb3Bob25lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTMwXCI7XG59XG5pLmljb24ubXVzaWM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMDFcIjtcbn1cbmkuaWNvbi5wYXVzZS5jaXJjbGUub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjYyNVwiO1xufVxuaS5pY29uLnBhdXNlLmNpcmNsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI4YlwiO1xufVxuaS5pY29uLnBhdXNlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDRjXCI7XG59XG5pLmljb24ucGxheS5jaXJjbGUub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjYyNlwiO1xufVxuaS5pY29uLnBsYXkuY2lyY2xlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTQ0XCI7XG59XG5pLmljb24ucG9kY2FzdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJjZVwiO1xufVxuaS5pY29uLnJzcy5zcXVhcmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNDNcIjtcbn1cbmkuaWNvbi5yc3M6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwOWVcIjtcbn1cbmkuaWNvbi5zdGVwLmJhY2t3YXJkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDQ4XCI7XG59XG5pLmljb24uc3RlcC5mb3J3YXJkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDUxXCI7XG59XG5pLmljb24uc3RvcC5jaXJjbGUub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjYzNlwiO1xufVxuaS5pY29uLnN0b3AuY2lyY2xlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjhkXCI7XG59XG5pLmljb24uc3RvcDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA0ZFwiO1xufVxuaS5pY29uLnZpZGVvOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDNkXCI7XG59XG5pLmljb24udm9sdW1lLmRvd246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMjdcIjtcbn1cbmkuaWNvbi52b2x1bWUub2ZmOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDI2XCI7XG59XG5pLmljb24udm9sdW1lLnVwOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDI4XCI7XG59XG4vKiBCdXNpbmVzcyAqL1xuaS5pY29uLmFkZHJlc3MuYm9vay5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzAwXCI7XG59XG5pLmljb24uYWRkcmVzcy5ib29rOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmI5XCI7XG59XG5pLmljb24uYWRkcmVzcy5jYXJkLm91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzMDFcIjtcbn1cbmkuaWNvbi5hZGRyZXNzLmNhcmQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyYmJcIjtcbn1cbmkuaWNvbi5hcmNoaXZlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTg3XCI7XG59XG5pLmljb24uYmFsYW5jZS5zY2FsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI0ZVwiO1xufVxuaS5pY29uLmJpcnRoZGF5LmNha2U6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxZmRcIjtcbn1cbmkuaWNvbi5ib29rOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDJkXCI7XG59XG5pLmljb24uYnJpZWZjYXNlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGIxXCI7XG59XG5pLmljb24uYnVpbGRpbmcub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjYwM1wiO1xufVxuaS5pY29uLmJ1aWxkaW5nOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWFkXCI7XG59XG5pLmljb24uYnVsbGhvcm46YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwYTFcIjtcbn1cbmkuaWNvbi5jYWxjdWxhdG9yOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWVjXCI7XG59XG5pLmljb24uY2FsZW5kYXIuYWx0ZXJuYXRlLm91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzMTBcIjtcbn1cbmkuaWNvbi5jYWxlbmRhci5hbHRlcm5hdGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwNzNcIjtcbn1cbmkuaWNvbi5jYWxlbmRhci5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzE1XCI7XG59XG5pLmljb24uY2FsZW5kYXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMzNcIjtcbn1cbmkuaWNvbi5jZXJ0aWZpY2F0ZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBhM1wiO1xufVxuaS5pY29uLmNoYXJ0LmFyZWE6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxZmVcIjtcbn1cbmkuaWNvbi5jaGFydC5iYXIub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjMyMFwiO1xufVxuaS5pY29uLmNoYXJ0LmJhcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA4MFwiO1xufVxuaS5pY29uLmNoYXJ0LnBpZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIwMFwiO1xufVxuaS5pY29uLmNsaXBib2FyZC5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzI0XCI7XG59XG5pLmljb24uY2xpcGJvYXJkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzI4XCI7XG59XG5pLmljb24uY29mZmVlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGY0XCI7XG59XG5pLmljb24uY29sdW1uczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBkYlwiO1xufVxuaS5pY29uLmNvbXBhc3Mub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjMzMVwiO1xufVxuaS5pY29uLmNvbXBhc3M6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNGVcIjtcbn1cbmkuaWNvbi5jb3B5Lm91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzMzJcIjtcbn1cbmkuaWNvbi5jb3B5OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGM1XCI7XG59XG5pLmljb24uY29weXJpZ2h0Lm91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzMzNcIjtcbn1cbmkuaWNvbi5jb3B5cmlnaHQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxZjlcIjtcbn1cbmkuaWNvbi5jdXQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwYzRcIjtcbn1cbmkuaWNvbi5lZGl0Lm91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzMzZcIjtcbn1cbmkuaWNvbi5lZGl0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDQ0XCI7XG59XG5pLmljb24uZW52ZWxvcGUub3Blbi5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzM3XCI7XG59XG5pLmljb24uZW52ZWxvcGUub3BlbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJiNlwiO1xufVxuaS5pY29uLmVudmVsb3BlLm91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzMzhcIjtcbn1cbmkuaWNvbi5lbnZlbG9wZS5zcXVhcmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxOTlcIjtcbn1cbmkuaWNvbi5lbnZlbG9wZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBlMFwiO1xufVxuaS5pY29uLmVyYXNlcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEyZFwiO1xufVxuaS5pY29uLmZheDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFhY1wiO1xufVxuaS5pY29uLmZpbGUuYWx0ZXJuYXRlLm91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzNDBcIjtcbn1cbmkuaWNvbi5maWxlLmFsdGVybmF0ZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE1Y1wiO1xufVxuaS5pY29uLmZpbGUub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjM1MFwiO1xufVxuaS5pY29uLmZpbGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNWJcIjtcbn1cbmkuaWNvbi5mb2xkZXIub3Blbi5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzUyXCI7XG59XG5pLmljb24uZm9sZGVyLm9wZW46YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwN2NcIjtcbn1cbmkuaWNvbi5mb2xkZXIub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjM1M1wiO1xufVxuaS5pY29uLmZvbGRlcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA3YlwiO1xufVxuaS5pY29uLmdsb2JlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGFjXCI7XG59XG5pLmljb24uaW5kdXN0cnk6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyNzVcIjtcbn1cbmkuaWNvbi5wYXBlcmNsaXA6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwYzZcIjtcbn1cbmkuaWNvbi5wYXN0ZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBlYVwiO1xufVxuaS5pY29uLnBlbi5zcXVhcmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNGJcIjtcbn1cbmkuaWNvbi5wZW5jaWwuYWx0ZXJuYXRlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzAzXCI7XG59XG5pLmljb24ucGVyY2VudDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI5NVwiO1xufVxuaS5pY29uLnBob25lLnNxdWFyZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA5OFwiO1xufVxuaS5pY29uLnBob25lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDk1XCI7XG59XG5pLmljb24ucmVnaXN0ZXJlZC5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNjI5XCI7XG59XG5pLmljb24ucmVnaXN0ZXJlZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI1ZFwiO1xufVxuaS5pY29uLnNhdmUub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjYzMFwiO1xufVxuaS5pY29uLnNhdmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwYzdcIjtcbn1cbmkuaWNvbi5zaXRlbWFwOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGU4XCI7XG59XG5pLmljb24uc3RpY2t5Lm5vdGUub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjYzNVwiO1xufVxuaS5pY29uLnN0aWNreS5ub3RlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjQ5XCI7XG59XG5pLmljb24uc3VpdGNhc2U6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwZjJcIjtcbn1cbmkuaWNvbi50YWJsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBjZVwiO1xufVxuaS5pY29uLnRhZzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAyYlwiO1xufVxuaS5pY29uLnRhZ3M6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMmNcIjtcbn1cbmkuaWNvbi50YXNrczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBhZVwiO1xufVxuaS5pY29uLnRodW1idGFjazpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA4ZFwiO1xufVxuaS5pY29uLnRyYWRlbWFyazpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI1Y1wiO1xufVxuLyogQ2hlc3MgKi9cbmkuaWNvbi5jaGVzczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQzOVwiO1xufVxuaS5pY29uLmNoZXNzLmJpc2hvcDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQzYVwiO1xufVxuaS5pY29uLmNoZXNzLmJvYXJkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDNjXCI7XG59XG5pLmljb24uY2hlc3Mua2luZzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQzZlwiO1xufVxuaS5pY29uLmNoZXNzLmtuaWdodDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQ0MVwiO1xufVxuaS5pY29uLmNoZXNzLnBhd246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0NDNcIjtcbn1cbmkuaWNvbi5jaGVzcy5xdWVlbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQ0NVwiO1xufVxuaS5pY29uLmNoZXNzLnJvY2s6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0NDdcIjtcbn1cbmkuaWNvbi5zcXVhcmUuZnVsbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQ1Y1wiO1xufVxuLyogQ29kZSAqL1xuaS5pY29uLmJhcmNvZGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMmFcIjtcbn1cbmkuaWNvbi5iYXRoOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmNkXCI7XG59XG5pLmljb24uYnVnOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTg4XCI7XG59XG5pLmljb24uY29kZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEyMVwiO1xufVxuaS5pY29uLmNvZGUuYnJhbmNoOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTI2XCI7XG59XG5pLmljb24uZmlsZS5jb2RlLm91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzNDNcIjtcbn1cbmkuaWNvbi5maWxlLmNvZGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxYzlcIjtcbn1cbmkuaWNvbi5maWx0ZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwYjBcIjtcbn1cbmkuaWNvbi5maXJlLmV4dGluZ3Vpc2hlcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEzNFwiO1xufVxuaS5pY29uLmtleWJvYXJkLm91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzNzdcIjtcbn1cbmkuaWNvbi5rZXlib2FyZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjExY1wiO1xufVxuaS5pY29uLm1pY3JvY2hpcDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJkYlwiO1xufVxuaS5pY29uLnFyY29kZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAyOVwiO1xufVxuaS5pY29uLnNoaWVsZC5hbHRlcm5hdGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzZWRcIjtcbn1cbmkuaWNvbi50ZXJtaW5hbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEyMFwiO1xufVxuaS5pY29uLnVzZXIuc2VjcmV0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjFiXCI7XG59XG5pLmljb24ud2luZG93LmNsb3NlLm91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY2NDJcIjtcbn1cbmkuaWNvbi53aW5kb3cuY2xvc2U6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0MTBcIjtcbn1cbmkuaWNvbi53aW5kb3cubWF4aW1pemUub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjY0NFwiO1xufVxuaS5pY29uLndpbmRvdy5tYXhpbWl6ZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJkMFwiO1xufVxuaS5pY29uLndpbmRvdy5taW5pbWl6ZS5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNjQzXCI7XG59XG5pLmljb24ud2luZG93Lm1pbmltaXplOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmQxXCI7XG59XG5pLmljb24ud2luZG93LnJlc3RvcmUub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQxNlwiO1xufVxuaS5pY29uLndpbmRvdy5yZXN0b3JlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmQyXCI7XG59XG4vKiBDb21tdW5pY2F0aW9uICovXG5pLmljb24uYXQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxZmFcIjtcbn1cbmkuaWNvbi5iZWxsLm91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzMDdcIjtcbn1cbmkuaWNvbi5iZWxsLnNsYXNoLm91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzMDZcIjtcbn1cbmkuaWNvbi5iZWxsLnNsYXNoOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWY2XCI7XG59XG5pLmljb24uYmVsbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBmM1wiO1xufVxuaS5pY29uLmNvbW1lbnQuYWx0ZXJuYXRlLm91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY2MDRcIjtcbn1cbmkuaWNvbi5jb21tZW50LmFsdGVybmF0ZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI3YVwiO1xufVxuaS5pY29uLmNvbW1lbnQub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjMyOVwiO1xufVxuaS5pY29uLmNvbW1lbnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwNzVcIjtcbn1cbmkuaWNvbi5jb21tZW50cy5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzMwXCI7XG59XG5pLmljb24uY29tbWVudHM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwODZcIjtcbn1cbmkuaWNvbi5pbmJveDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAxY1wiO1xufVxuaS5pY29uLmxhbmd1YWdlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWFiXCI7XG59XG5pLmljb24ubW9iaWxlLmFsdGVybmF0ZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNjZFwiO1xufVxuaS5pY29uLm1vYmlsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEwYlwiO1xufVxuaS5pY29uLnBhcGVyLnBsYW5lLm91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzOTBcIjtcbn1cbmkuaWNvbi5wYXBlci5wbGFuZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFkOFwiO1xufVxuaS5pY29uLndpZmk6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxZWJcIjtcbn1cbi8qIENvbXB1dGVycyAqL1xuaS5pY29uLmRlc2t0b3A6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMDhcIjtcbn1cbmkuaWNvbi5oZGQub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjYxMVwiO1xufVxuaS5pY29uLmhkZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBhMFwiO1xufVxuaS5pY29uLmxhcHRvcDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEwOVwiO1xufVxuaS5pY29uLnBsdWc6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxZTZcIjtcbn1cbmkuaWNvbi5wb3dlci5vZmY6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMTFcIjtcbn1cbmkuaWNvbi5wcmludDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAyZlwiO1xufVxuaS5pY29uLnNlcnZlcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIzM1wiO1xufVxuaS5pY29uLnRhYmxldC5hbHRlcm5hdGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzZmFcIjtcbn1cbmkuaWNvbi50YWJsZXQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMGFcIjtcbn1cbmkuaWNvbi50djpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI2Y1wiO1xufVxuLyogQ3VycmVuY3kgKi9cbmkuaWNvbi5kb2xsYXIuc2lnbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE1NVwiO1xufVxuaS5pY29uLmV1cm8uc2lnbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE1M1wiO1xufVxuaS5pY29uLmxpcmEuc2lnbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE5NVwiO1xufVxuaS5pY29uLm1vbmV5LmJpbGwuYWx0ZXJuYXRlLm91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY2MjNcIjtcbn1cbmkuaWNvbi5tb25leS5iaWxsLmFsdGVybmF0ZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNkMVwiO1xufVxuaS5pY29uLnBvdW5kLnNpZ246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNTRcIjtcbn1cbmkuaWNvbi5ydWJsZS5zaWduOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTU4XCI7XG59XG5pLmljb24ucnVwZWUuc2lnbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE1NlwiO1xufVxuaS5pY29uLnNoZWtlbC5zaWduOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjBiXCI7XG59XG5pLmljb24ud29uLnNpZ246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNTlcIjtcbn1cbmkuaWNvbi55ZW4uc2lnbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE1N1wiO1xufVxuLyogRGF0ZSAmIFRpbWUgKi9cbmkuaWNvbi5jYWxlbmRhci5jaGVjay5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzExXCI7XG59XG5pLmljb24uY2FsZW5kYXIuY2hlY2s6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyNzRcIjtcbn1cbmkuaWNvbi5jYWxlbmRhci5taW51cy5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzEyXCI7XG59XG5pLmljb24uY2FsZW5kYXIubWludXM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyNzJcIjtcbn1cbmkuaWNvbi5jYWxlbmRhci5wbHVzLm91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzMTNcIjtcbn1cbmkuaWNvbi5jYWxlbmRhci5wbHVzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjcxXCI7XG59XG5pLmljb24uY2FsZW5kYXIudGltZXMub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjMxNFwiO1xufVxuaS5pY29uLmNhbGVuZGFyLnRpbWVzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjczXCI7XG59XG5pLmljb24uY2xvY2sub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjMyNVwiO1xufVxuaS5pY29uLmNsb2NrOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDE3XCI7XG59XG5pLmljb24uaG91cmdsYXNzLmVuZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI1M1wiO1xufVxuaS5pY29uLmhvdXJnbGFzcy5oYWxmOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjUyXCI7XG59XG5pLmljb24uaG91cmdsYXNzLm91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY2MTRcIjtcbn1cbmkuaWNvbi5ob3VyZ2xhc3Muc3RhcnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyNTFcIjtcbn1cbmkuaWNvbi5ob3VyZ2xhc3M6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyNTRcIjtcbn1cbmkuaWNvbi5zdG9wd2F0Y2g6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyZjJcIjtcbn1cbi8qIERlc2lnbiAqL1xuaS5pY29uLmFkanVzdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA0MlwiO1xufVxuaS5pY29uLmNsb25lLm91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzMjZcIjtcbn1cbmkuaWNvbi5jbG9uZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI0ZFwiO1xufVxuaS5pY29uLmNyb3A6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMjVcIjtcbn1cbmkuaWNvbi5jcm9zc2hhaXJzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDViXCI7XG59XG5pLmljb24uZXllLmRyb3BwZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxZmJcIjtcbn1cbmkuaWNvbi5leWUuc2xhc2gub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjMzOVwiO1xufVxuaS5pY29uLmV5ZS5zbGFzaDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA3MFwiO1xufVxuaS5pY29uLmV5ZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA2ZVwiO1xufVxuaS5pY29uLm9iamVjdC5ncm91cC5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNjI0XCI7XG59XG5pLmljb24ub2JqZWN0Lmdyb3VwOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjQ3XCI7XG59XG5pLmljb24ub2JqZWN0LnVuZ3JvdXAub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjM4OVwiO1xufVxuaS5pY29uLm9iamVjdC51bmdyb3VwOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjQ4XCI7XG59XG5pLmljb24ucGFpbnQuYnJ1c2g6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxZmNcIjtcbn1cbmkuaWNvbi50aW50OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDQzXCI7XG59XG4vKiBFZGl0b3JzICovXG5pLmljb24uYWxpZ24uY2VudGVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDM3XCI7XG59XG5pLmljb24uYWxpZ24uanVzdGlmeTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAzOVwiO1xufVxuaS5pY29uLmFsaWduLmxlZnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMzZcIjtcbn1cbmkuaWNvbi5hbGlnbi5yaWdodDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAzOFwiO1xufVxuaS5pY29uLmJvbGQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMzJcIjtcbn1cbmkuaWNvbi5mb250OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDMxXCI7XG59XG5pLmljb24uaGVhZGluZzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFkY1wiO1xufVxuaS5pY29uLmkuY3Vyc29yOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjQ2XCI7XG59XG5pLmljb24uaW5kZW50OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDNjXCI7XG59XG5pLmljb24uaXRhbGljOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDMzXCI7XG59XG5pLmljb24ubGluazpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBjMVwiO1xufVxuaS5pY29uLmxpc3QuYWx0ZXJuYXRlLm91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzODFcIjtcbn1cbmkuaWNvbi5saXN0LmFsdGVybmF0ZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAyMlwiO1xufVxuaS5pY29uLm9yZGVyZWQubGlzdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBjYlwiO1xufVxuaS5pY29uLnVub3JkZXJlZC5saXN0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGNhXCI7XG59XG5pLmljb24ubGlzdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAzYVwiO1xufVxuaS5pY29uLm91dGRlbnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwM2JcIjtcbn1cbmkuaWNvbi5wYXJhZ3JhcGg6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxZGRcIjtcbn1cbmkuaWNvbi5xdW90ZS5sZWZ0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTBkXCI7XG59XG5pLmljb24ucXVvdGUucmlnaHQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMGVcIjtcbn1cbmkuaWNvbi5zdHJpa2V0aHJvdWdoOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGNjXCI7XG59XG5pLmljb24uc3Vic2NyaXB0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTJjXCI7XG59XG5pLmljb24uc3VwZXJzY3JpcHQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMmJcIjtcbn1cbmkuaWNvbi50aC5sYXJnZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAwOVwiO1xufVxuaS5pY29uLnRoLmxpc3Q6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMGJcIjtcbn1cbmkuaWNvbi50aDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAwYVwiO1xufVxuaS5pY29uLnRyYXNoLmFsdGVybmF0ZS5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNjQwXCI7XG59XG5pLmljb24udHJhc2guYWx0ZXJuYXRlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmVkXCI7XG59XG5pLmljb24udHJhc2g6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxZjhcIjtcbn1cbmkuaWNvbi51bmRlcmxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwY2RcIjtcbn1cbmkuaWNvbi51bmxpbms6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMjdcIjtcbn1cbi8qIEZpbGVzICovXG5pLmljb24uZmlsZS5hcmNoaXZlLm91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzNDFcIjtcbn1cbmkuaWNvbi5maWxlLmFyY2hpdmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxYzZcIjtcbn1cbmkuaWNvbi5maWxlLmV4Y2VsLm91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzNDRcIjtcbn1cbmkuaWNvbi5maWxlLmV4Y2VsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWMzXCI7XG59XG5pLmljb24uZmlsZS5pbWFnZS5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNjE3XCI7XG59XG5pLmljb24uZmlsZS5pbWFnZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFjNVwiO1xufVxuaS5pY29uLmZpbGUucGRmLm91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzNDZcIjtcbn1cbmkuaWNvbi5maWxlLnBkZjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFjMVwiO1xufVxuaS5pY29uLmZpbGUucG93ZXJwb2ludC5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzQ3XCI7XG59XG5pLmljb24uZmlsZS5wb3dlcnBvaW50OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWM0XCI7XG59XG5pLmljb24uZmlsZS53b3JkLm91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzNDlcIjtcbn1cbmkuaWNvbi5maWxlLndvcmQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxYzJcIjtcbn1cbi8qIEdlbmRlcnMgKi9cbmkuaWNvbi5nZW5kZXJsZXNzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjJkXCI7XG59XG5pLmljb24ubWFycy5kb3VibGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMjdcIjtcbn1cbmkuaWNvbi5tYXJzLnN0cm9rZS5ob3Jpem9udGFsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjJiXCI7XG59XG5pLmljb24ubWFycy5zdHJva2UudmVydGljYWw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMmFcIjtcbn1cbmkuaWNvbi5tYXJzLnN0cm9rZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIyOVwiO1xufVxuaS5pY29uLm1hcnM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMjJcIjtcbn1cbmkuaWNvbi5tZXJjdXJ5OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjIzXCI7XG59XG5pLmljb24ubmV1dGVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjJjXCI7XG59XG5pLmljb24udHJhbnNnZW5kZXIuYWx0ZXJuYXRlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjI1XCI7XG59XG5pLmljb24udHJhbnNnZW5kZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMjRcIjtcbn1cbmkuaWNvbi52ZW51cy5kb3VibGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMjZcIjtcbn1cbmkuaWNvbi52ZW51cy5tYXJzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjI4XCI7XG59XG5pLmljb24udmVudXM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMjFcIjtcbn1cbi8qIEhhbmRzICovXG5pLmljb24uaGFuZC5saXphcmQub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjM1N1wiO1xufVxuaS5pY29uLmhhbmQubGl6YXJkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjU4XCI7XG59XG5pLmljb24uaGFuZC5wYXBlci5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzU4XCI7XG59XG5pLmljb24uaGFuZC5wYXBlcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI1NlwiO1xufVxuaS5pY29uLmhhbmQucGVhY2Uub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjM1OVwiO1xufVxuaS5pY29uLmhhbmQucGVhY2U6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyNWJcIjtcbn1cbmkuaWNvbi5oYW5kLnJvY2sub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjM2NVwiO1xufVxuaS5pY29uLmhhbmQucm9jazpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI1NVwiO1xufVxuaS5pY29uLmhhbmQuc2Npc3NvcnMub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjM2NlwiO1xufVxuaS5pY29uLmhhbmQuc2Npc3NvcnM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyNTdcIjtcbn1cbmkuaWNvbi5oYW5kLnNwb2NrLm91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzNjdcIjtcbn1cbmkuaWNvbi5oYW5kLnNwb2NrOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjU5XCI7XG59XG5pLmljb24uaGFuZHNoYWtlLm91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY2MTBcIjtcbn1cbmkuaWNvbi5oYW5kc2hha2U6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyYjVcIjtcbn1cbmkuaWNvbi50aHVtYnMuZG93bi5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDA2XCI7XG59XG5pLmljb24udGh1bWJzLmRvd246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNjVcIjtcbn1cbmkuaWNvbi50aHVtYnMudXAub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjYzOFwiO1xufVxuaS5pY29uLnRodW1icy51cDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE2NFwiO1xufVxuLyogSGVhbHRoICovXG5pLmljb24uYW1idWxhbmNlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGY5XCI7XG59XG5pLmljb24uaC5zcXVhcmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwZmRcIjtcbn1cbmkuaWNvbi5oZWFydC5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNjEyXCI7XG59XG5pLmljb24uaGVhcnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMDRcIjtcbn1cbmkuaWNvbi5oZWFydGJlYXQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMWVcIjtcbn1cbmkuaWNvbi5ob3NwaXRhbC5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNjEzXCI7XG59XG5pLmljb24uaG9zcGl0YWw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwZjhcIjtcbn1cbmkuaWNvbi5tZWRraXQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwZmFcIjtcbn1cbmkuaWNvbi5wbHVzLnNxdWFyZS5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNjI3XCI7XG59XG5pLmljb24ucGx1cy5zcXVhcmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwZmVcIjtcbn1cbmkuaWNvbi5zdGV0aG9zY29wZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBmMVwiO1xufVxuaS5pY29uLnVzZXIuZG9jdG9yOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGYwXCI7XG59XG4vKiBJbWFnZXMgKi9cbmkuaWNvbi5ib2x0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGU3XCI7XG59XG5pLmljb24uY2FtZXJhLnJldHJvOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDgzXCI7XG59XG5pLmljb24uY2FtZXJhOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDMwXCI7XG59XG5pLmljb24uaWQuYmFkZ2Uub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjYxNVwiO1xufVxuaS5pY29uLmlkLmJhZGdlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmMxXCI7XG59XG5pLmljb24uaWQuY2FyZC5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNjE2XCI7XG59XG5pLmljb24uaWQuY2FyZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJjMlwiO1xufVxuaS5pY29uLmltYWdlLm91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY2MTdcIjtcbn1cbmkuaWNvbi5pbWFnZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAzZVwiO1xufVxuaS5pY29uLmltYWdlcy5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzc2XCI7XG59XG5pLmljb24uaW1hZ2VzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzAyXCI7XG59XG5pLmljb24uc2xpZGVycy5ob3Jpem9udGFsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWRlXCI7XG59XG4vKiBJbnRlcmZhY2VzICovXG5pLmljb24uYmFuOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDVlXCI7XG59XG5pLmljb24uYmFyczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBjOVwiO1xufVxuaS5pY29uLmJlZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwZmNcIjtcbn1cbmkuaWNvbi5idWxsc2V5ZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE0MFwiO1xufVxuaS5pY29uLmNoZWNrLmNpcmNsZS5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzIxXCI7XG59XG5pLmljb24uY2hlY2suY2lyY2xlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDU4XCI7XG59XG5pLmljb24uY2hlY2suc3F1YXJlLm91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzMjJcIjtcbn1cbmkuaWNvbi5jaGVjay5zcXVhcmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNGFcIjtcbn1cbmkuaWNvbi5jaGVjazpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAwY1wiO1xufVxuaS5pY29uLmNsb3VkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGMyXCI7XG59XG5pLmljb24uY29nOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDEzXCI7XG59XG5pLmljb24uY29nczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA4NVwiO1xufVxuaS5pY29uLmRhdGFiYXNlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWMwXCI7XG59XG5pLmljb24uZG90LmNpcmNsZS5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzM1XCI7XG59XG5pLmljb24uZG90LmNpcmNsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE5MlwiO1xufVxuaS5pY29uLmVsbGlwc2lzLmhvcml6b250YWw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNDFcIjtcbn1cbmkuaWNvbi5lbGxpcHNpcy52ZXJ0aWNhbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE0MlwiO1xufVxuaS5pY29uLmV4Y2xhbWF0aW9uLmNpcmNsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA2YVwiO1xufVxuaS5pY29uLmV4Y2xhbWF0aW9uLnRyaWFuZ2xlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDcxXCI7XG59XG5pLmljb24uZXhjbGFtYXRpb246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMmFcIjtcbn1cbmkuaWNvbi5mbGFnLmNoZWNrZXJlZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjExZVwiO1xufVxuaS5pY29uLmZsYWcub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjM1MVwiO1xufVxuaS5pY29uLmZsYWc6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMjRcIjtcbn1cbmkuaWNvbi5mcm93bi5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzU0XCI7XG59XG5pLmljb24uZnJvd246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMTlcIjtcbn1cbmkuaWNvbi5oYXNodGFnOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjkyXCI7XG59XG5pLmljb24uaG9tZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAxNVwiO1xufVxuaS5pY29uLmluZm8uY2lyY2xlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDVhXCI7XG59XG5pLmljb24uaW5mbzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEyOVwiO1xufVxuaS5pY29uLm1hZ2ljOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGQwXCI7XG59XG5pLmljb24ubWVoLm91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY2MjFcIjtcbn1cbmkuaWNvbi5tZWg6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMWFcIjtcbn1cbmkuaWNvbi5taW51cy5jaXJjbGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwNTZcIjtcbn1cbmkuaWNvbi5taW51cy5zcXVhcmUub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjYyMlwiO1xufVxuaS5pY29uLm1pbnVzLnNxdWFyZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE0NlwiO1xufVxuaS5pY29uLm1pbnVzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDY4XCI7XG59XG5pLmljb24ucGx1cy5jaXJjbGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwNTVcIjtcbn1cbmkuaWNvbi5wbHVzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDY3XCI7XG59XG5pLmljb24ucXVlc3Rpb246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMjhcIjtcbn1cbmkuaWNvbi5zZWFyY2gubWludXM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMTBcIjtcbn1cbmkuaWNvbi5zZWFyY2gucGx1czpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAwZVwiO1xufVxuaS5pY29uLnNlYXJjaDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAwMlwiO1xufVxuaS5pY29uLnNoYXJlLmFsdGVybmF0ZS5zcXVhcmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxZTFcIjtcbn1cbmkuaWNvbi5zaGFyZS5hbHRlcm5hdGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxZTBcIjtcbn1cbmkuaWNvbi5zaGllbGQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzZWRcIjtcbn1cbmkuaWNvbi5zaWduYWw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMTJcIjtcbn1cbmkuaWNvbi5zbWlsZS5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzk4XCI7XG59XG5pLmljb24uc21pbGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMThcIjtcbn1cbmkuaWNvbi5zdGFyLmhhbGYub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQwMVwiO1xufVxuaS5pY29uLnN0YXIuaGFsZjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA4OVwiO1xufVxuaS5pY29uLnN0YXIub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjYzNFwiO1xufVxuaS5pY29uLnN0YXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMDVcIjtcbn1cbmkuaWNvbi50aW1lcy5jaXJjbGUub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjYzOVwiO1xufVxuaS5pY29uLnRpbWVzLmNpcmNsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA1N1wiO1xufVxuaS5pY29uLnRpbWVzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDBkXCI7XG59XG5pLmljb24udG9nZ2xlLm9mZjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIwNFwiO1xufVxuaS5pY29uLnRvZ2dsZS5vbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIwNVwiO1xufVxuaS5pY29uLnRyb3BoeTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA5MVwiO1xufVxuaS5pY29uLnVzZXIuY2lyY2xlLm91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY2MDZcIjtcbn1cbmkuaWNvbi51c2VyLmNpcmNsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJiZFwiO1xufVxuaS5pY29uLnVzZXIub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjY0MVwiO1xufVxuaS5pY29uLnVzZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMDdcIjtcbn1cbi8qIE1hcHMgKi9cbmkuaWNvbi5hbmNob3I6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxM2RcIjtcbn1cbmkuaWNvbi5iZWQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMzZcIjtcbn1cbmkuaWNvbi5iaWN5Y2xlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjA2XCI7XG59XG5pLmljb24uYmlub2N1bGFyczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFlNVwiO1xufVxuaS5pY29uLmJvbWI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxZTJcIjtcbn1cbmkuaWNvbi5ib29rbWFyay5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzA4XCI7XG59XG5pLmljb24uYm9va21hcms6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMmVcIjtcbn1cbmkuaWNvbi5jYXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxYjlcIjtcbn1cbmkuaWNvbi5maWdodGVyLmpldDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBmYlwiO1xufVxuaS5pY29uLmZpcmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwNmRcIjtcbn1cbmkuaWNvbi5mbGFzazpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBjM1wiO1xufVxuaS5pY29uLmdhbWVwYWQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMWJcIjtcbn1cbmkuaWNvbi5nYXZlbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBlM1wiO1xufVxuaS5pY29uLmdpZnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwNmJcIjtcbn1cbmkuaWNvbi5nbGFzcy5tYXJ0aW5pOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDAwXCI7XG59XG5pLmljb24uZ3JhZHVhdGlvbi5jYXA6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxOWRcIjtcbn1cbmkuaWNvbi5rZXk6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwODRcIjtcbn1cbmkuaWNvbi5sZWFmOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDZjXCI7XG59XG5pLmljb24ubGVtb24ub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjYxOFwiO1xufVxuaS5pY29uLmxlbW9uOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDk0XCI7XG59XG5pLmljb24ubGlmZS5yaW5nLm91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY2MTlcIjtcbn1cbmkuaWNvbi5saWZlLnJpbmc6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxY2RcIjtcbn1cbmkuaWNvbi5saWdodGJ1bGIub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjYyMFwiO1xufVxuaS5pY29uLmxpZ2h0YnVsYjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBlYlwiO1xufVxuaS5pY29uLm1hZ25ldDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA3NlwiO1xufVxuaS5pY29uLm1hbGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxODNcIjtcbn1cbmkuaWNvbi5tYXAubWFya2VyLmFsdGVybmF0ZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNjNVwiO1xufVxuaS5pY29uLm1hcC5tYXJrZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwNDFcIjtcbn1cbmkuaWNvbi5tYXAub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjM4MlwiO1xufVxuaS5pY29uLm1hcC5waW46YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyNzZcIjtcbn1cbmkuaWNvbi5tYXAuc2lnbnM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyNzdcIjtcbn1cbmkuaWNvbi5tYXA6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyNzlcIjtcbn1cbmkuaWNvbi5tb3RvcmN5Y2xlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjFjXCI7XG59XG5pLmljb24ubmV3c3BhcGVyLm91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzODdcIjtcbn1cbmkuaWNvbi5uZXdzcGFwZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxZWFcIjtcbn1cbmkuaWNvbi5wYXc6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxYjBcIjtcbn1cbmkuaWNvbi5wbGFuZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA3MlwiO1xufVxuaS5pY29uLnJvYWQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMThcIjtcbn1cbmkuaWNvbi5yb2NrZXQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMzVcIjtcbn1cbmkuaWNvbi5zaGlwOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjFhXCI7XG59XG5pLmljb24uc2hvcHBpbmcuYmFnOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjkwXCI7XG59XG5pLmljb24uc2hvcHBpbmcuYmFza2V0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjkxXCI7XG59XG5pLmljb24uc2hvcHBpbmcuY2FydDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA3YVwiO1xufVxuaS5pY29uLnNob3dlcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJjY1wiO1xufVxuaS5pY29uLnN0cmVldC52aWV3OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjFkXCI7XG59XG5pLmljb24uc3Vid2F5OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjM5XCI7XG59XG5pLmljb24udGF4aTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFiYVwiO1xufVxuaS5pY29uLnRpY2tldC5hbHRlcm5hdGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzZmZcIjtcbn1cbmkuaWNvbi50cmFpbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIzOFwiO1xufVxuaS5pY29uLnRyZWU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxYmJcIjtcbn1cbmkuaWNvbi50cnVjazpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBkMVwiO1xufVxuaS5pY29uLnVtYnJlbGxhOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGU5XCI7XG59XG5pLmljb24udW5pdmVyc2l0eTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE5Y1wiO1xufVxuaS5pY29uLnV0ZW5zaWwuc3Bvb246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyZTVcIjtcbn1cbmkuaWNvbi51dGVuc2lsczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJlN1wiO1xufVxuaS5pY29uLndyZW5jaDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBhZFwiO1xufVxuLyogT2JqZWN0cyAqL1xuaS5pY29uLmJ1czpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIwN1wiO1xufVxuaS5pY29uLmN1YmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxYjJcIjtcbn1cbmkuaWNvbi5jdWJlczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFiM1wiO1xufVxuaS5pY29uLmZ1dGJvbC5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNjMzXCI7XG59XG5pLmljb24uZnV0Ym9sOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWUzXCI7XG59XG5pLmljb24uZ2VtLm91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzNTZcIjtcbn1cbmkuaWNvbi5nZW06YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzYTVcIjtcbn1cbmkuaWNvbi5sb2NrLm9wZW46YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzYzFcIjtcbn1cbmkuaWNvbi5sb2NrOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDIzXCI7XG59XG5pLmljb24ubW9vbi5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzg2XCI7XG59XG5pLmljb24ubW9vbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE4NlwiO1xufVxuaS5pY29uLnB1enpsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEyZVwiO1xufVxuaS5pY29uLnNub3dmbGFrZS5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNjMyXCI7XG59XG5pLmljb24uc25vd2ZsYWtlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmRjXCI7XG59XG5pLmljb24uc3BhY2Uuc2h1dHRsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE5N1wiO1xufVxuaS5pY29uLnN1bi5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNjM3XCI7XG59XG5pLmljb24uc3VuOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTg1XCI7XG59XG5pLmljb24udGFjaG9tZXRlci5hbHRlcm5hdGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzZmRcIjtcbn1cbmkuaWNvbi51bmxvY2suYWx0ZXJuYXRlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTNlXCI7XG59XG5pLmljb24udW5sb2NrOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDljXCI7XG59XG4vKiBQYXltZW50cyAmIFNob3BwaW5nICovXG5pLmljb24uY2FydC5wbHVzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjE3XCI7XG59XG5pLmljb24uY3JlZGl0LmNhcmQub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjMzNFwiO1xufVxuaS5pY29uLmNyZWRpdC5jYXJkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDlkXCI7XG59XG4vKiBTaGFwZXMgKi9cbmkuaWNvbi5zcXVhcmUub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQwMFwiO1xufVxuaS5pY29uLnNxdWFyZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBjOFwiO1xufVxuLyogU3Bpbm5lcnMgKi9cbmkuaWNvbi5hc3RlcmlzazpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA2OVwiO1xufVxuaS5pY29uLmNpcmNsZS5ub3RjaDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFjZVwiO1xufVxuaS5pY29uLnNwaW5uZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMTBcIjtcbn1cbi8qIFNwb3J0cyAqL1xuaS5pY29uLmJhc2ViYWxsLmJhbGw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0MzNcIjtcbn1cbmkuaWNvbi5iYXNrZXRiYWxsLmJhbGw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0MzRcIjtcbn1cbmkuaWNvbi5ib3dsaW5nLmJhbGw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0MzZcIjtcbn1cbmkuaWNvbi5mb290YmFsbC5iYWxsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDRlXCI7XG59XG5pLmljb24uZ29sZi5iYWxsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDUwXCI7XG59XG5pLmljb24uaG9ja2V5LnB1Y2s6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0NTNcIjtcbn1cbmkuaWNvbi5xdWlkZGl0Y2g6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0NThcIjtcbn1cbmkuaWNvbi50YWJsZS50ZW5uaXM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0NWRcIjtcbn1cbmkuaWNvbi52b2xsZXliYWxsLmJhbGw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0NWZcIjtcbn1cbi8qIFN0YXR1cyAqL1xuaS5pY29uLmJhdHRlcnkuZW1wdHk6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyNDRcIjtcbn1cbmkuaWNvbi5iYXR0ZXJ5LmZ1bGw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyNDBcIjtcbn1cbmkuaWNvbi5iYXR0ZXJ5LmhhbGY6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyNDJcIjtcbn1cbmkuaWNvbi5iYXR0ZXJ5LnF1YXJ0ZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyNDNcIjtcbn1cbmkuaWNvbi5iYXR0ZXJ5LnRocmVlLnF1YXJ0ZXJzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjQxXCI7XG59XG5pLmljb24udGhlcm1vbWV0ZXIuZW1wdHk6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyY2JcIjtcbn1cbmkuaWNvbi50aGVybW9tZXRlci5mdWxsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmM3XCI7XG59XG5pLmljb24udGhlcm1vbWV0ZXIuaGFsZjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJjOVwiO1xufVxuaS5pY29uLnRoZXJtb21ldGVyLnF1YXJ0ZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyY2FcIjtcbn1cbmkuaWNvbi50aGVybW9tZXRlci50aHJlZS5xdWFydGVyczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJjOFwiO1xufVxuLyogVXNlcnMgJiBQZW9wbGUgKi9cbmkuaWNvbi5jaGlsZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFhZVwiO1xufVxuaS5pY29uLmZlbWFsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE4MlwiO1xufVxuaS5pY29uLnVzZXIuY2lyY2xlLm91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0MTBcIjtcbn1cbmkuaWNvbi51c2VyLnBsdXM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMzRcIjtcbn1cbmkuaWNvbi51c2VyLnRpbWVzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjM1XCI7XG59XG5pLmljb24udXNlcnM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwYzBcIjtcbn1cbi8qIEJyYW5kcyAqL1xuaS5pY29uLlxcMzUgMDBweDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI2ZVwiO1xufVxuaS5pY29uLmFjY2Vzc2libGUuaWNvbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjM2OFwiO1xufVxuaS5pY29uLmFjY3Vzb2Z0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzY5XCI7XG59XG5pLmljb24uYWRuOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTcwXCI7XG59XG5pLmljb24uYWR2ZXJzYWw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzNmFcIjtcbn1cbmkuaWNvbi5hZmZpbGlhdGV0aGVtZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjM2YlwiO1xufVxuaS5pY29uLmFsZ29saWE6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzNmNcIjtcbn1cbmkuaWNvbi5hbWF6b24ucGF5OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDJjXCI7XG59XG5pLmljb24uYW1hem9uOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjcwXCI7XG59XG5pLmljb24uYW1pbGlhOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzZkXCI7XG59XG5pLmljb24uYW5kcm9pZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE3YlwiO1xufVxuaS5pY29uLmFuZ2VsbGlzdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIwOVwiO1xufVxuaS5pY29uLmFuZ3J5Y3JlYXRpdmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzNmVcIjtcbn1cbmkuaWNvbi5hbmd1bGFyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDIwXCI7XG59XG5pLmljb24uYXBwLnN0b3JlLmlvczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjM3MFwiO1xufVxuaS5pY29uLmFwcC5zdG9yZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjM2ZlwiO1xufVxuaS5pY29uLmFwcGVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzcxXCI7XG59XG5pLmljb24uYXBwbGUucGF5OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNjA5XCI7XG59XG5pLmljb24uYXBwbGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNzlcIjtcbn1cbmkuaWNvbi5hc3ltbWV0cmlrOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzcyXCI7XG59XG5pLmljb24uYXVkaWJsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjM3M1wiO1xufVxuaS5pY29uLmF1dG9wcmVmaXhlcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQxY1wiO1xufVxuaS5pY29uLmF2aWFuZXg6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzNzRcIjtcbn1cbmkuaWNvbi5hdmlhdG86YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0MjFcIjtcbn1cbmkuaWNvbi5hd3M6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzNzVcIjtcbn1cbmkuaWNvbi5iYW5kY2FtcDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJkNVwiO1xufVxuaS5pY29uLmJlaGFuY2Uuc3F1YXJlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWI1XCI7XG59XG5pLmljb24uYmVoYW5jZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFiNFwiO1xufVxuaS5pY29uLmJpbW9iamVjdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjM3OFwiO1xufVxuaS5pY29uLmJpdGJ1Y2tldDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE3MVwiO1xufVxuaS5pY29uLmJpdGNvaW46YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzNzlcIjtcbn1cbmkuaWNvbi5iaXR5OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzdhXCI7XG59XG5pLmljb24uYmxhY2sudGllOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjdlXCI7XG59XG5pLmljb24uYmxhY2tiZXJyeTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjM3YlwiO1xufVxuaS5pY29uLmJsb2dnZXIuYjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjM3ZFwiO1xufVxuaS5pY29uLmJsb2dnZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzN2NcIjtcbn1cbmkuaWNvbi5ibHVldG9vdGguYjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI5NFwiO1xufVxuaS5pY29uLmJsdWV0b290aDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI5M1wiO1xufVxuaS5pY29uLmJ0YzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE1YVwiO1xufVxuaS5pY29uLmJ1cm9tb2JlbGV4cGVydGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzN2ZcIjtcbn1cbmkuaWNvbi5idXlzZWxsYWRzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjBkXCI7XG59XG5pLmljb24uY3JlZGl0LmNhcmQuYW1hem9uLnBheTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQyZFwiO1xufVxuaS5pY29uLmNyZWRpdC5jYXJkLmFtZXJpY2FuLmV4cHJlc3M6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxZjNcIjtcbn1cbmkuaWNvbi5jcmVkaXQuY2FyZC5hcHBsZS5wYXk6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY2MDdcIjtcbn1cbmkuaWNvbi5jcmVkaXQuY2FyZC5kaW5lcnMuY2x1YjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI0Y1wiO1xufVxuaS5pY29uLmNyZWRpdC5jYXJkLmRpc2NvdmVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWYyXCI7XG59XG5pLmljb24uY3JlZGl0LmNhcmQuamNiOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjRiXCI7XG59XG5pLmljb24uY3JlZGl0LmNhcmQubWFzdGVyY2FyZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFmMVwiO1xufVxuaS5pY29uLmNyZWRpdC5jYXJkLnBheXBhbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFmNFwiO1xufVxuaS5pY29uLmNyZWRpdC5jYXJkLnN0cmlwZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFmNVwiO1xufVxuaS5pY29uLmNyZWRpdC5jYXJkLnZpc2E6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxZjBcIjtcbn1cbmkuaWNvbi5jZW50ZXJjb2RlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzgwXCI7XG59XG5pLmljb24uY2hyb21lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjY4XCI7XG59XG5pLmljb24uY2xvdWRzY2FsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjM4M1wiO1xufVxuaS5pY29uLmNsb3Vkc21pdGg6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzODRcIjtcbn1cbmkuaWNvbi5jbG91ZHZlcnNpZnk6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzODVcIjtcbn1cbmkuaWNvbi5jb2RlcGVuOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWNiXCI7XG59XG5pLmljb24uY29kaWVwaWU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyODRcIjtcbn1cbmkuaWNvbi5jb25uZWN0ZGV2ZWxvcDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIwZVwiO1xufVxuaS5pY29uLmNvbnRhbzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI2ZFwiO1xufVxuaS5pY29uLmNwYW5lbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjM4OFwiO1xufVxuaS5pY29uLmNyZWF0aXZlLmNvbW1vbnM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyNWVcIjtcbn1cbmkuaWNvbi5jc3MzLmFsdGVybmF0ZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjM4YlwiO1xufVxuaS5pY29uLmNzczM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxM2NcIjtcbn1cbmkuaWNvbi5jdXR0bGVmaXNoOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzhjXCI7XG59XG5pLmljb24uZC5hbmQuZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjM4ZFwiO1xufVxuaS5pY29uLmRhc2hjdWJlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjEwXCI7XG59XG5pLmljb24uZGVsaWNpb3VzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWE1XCI7XG59XG5pLmljb24uZGVwbG95ZG9nOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzhlXCI7XG59XG5pLmljb24uZGVza3BybzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjM4ZlwiO1xufVxuaS5pY29uLmRldmlhbnRhcnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxYmRcIjtcbn1cbmkuaWNvbi5kaWdnOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWE2XCI7XG59XG5pLmljb24uZGlnaXRhbC5vY2VhbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjM5MVwiO1xufVxuaS5pY29uLmRpc2NvcmQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzOTJcIjtcbn1cbmkuaWNvbi5kaXNjb3Vyc2U6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzOTNcIjtcbn1cbmkuaWNvbi5kb2NodWI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzOTRcIjtcbn1cbmkuaWNvbi5kb2NrZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzOTVcIjtcbn1cbmkuaWNvbi5kcmFmdDJkaWdpdGFsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzk2XCI7XG59XG5pLmljb24uZHJpYmJibGUuc3F1YXJlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzk3XCI7XG59XG5pLmljb24uZHJpYmJibGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxN2RcIjtcbn1cbmkuaWNvbi5kcm9wYm94OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTZiXCI7XG59XG5pLmljb24uZHJ1cGFsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWE5XCI7XG59XG5pLmljb24uZHlhbG9nOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzk5XCI7XG59XG5pLmljb24uZWFybHliaXJkczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjM5YVwiO1xufVxuaS5pY29uLmVkZ2U6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyODJcIjtcbn1cbmkuaWNvbi5lbGVtZW50b3I6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0MzBcIjtcbn1cbmkuaWNvbi5lbWJlcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQyM1wiO1xufVxuaS5pY29uLmVtcGlyZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFkMVwiO1xufVxuaS5pY29uLmVudmlyYTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI5OVwiO1xufVxuaS5pY29uLmVybGFuZzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjM5ZFwiO1xufVxuaS5pY29uLmV0aGVyZXVtOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDJlXCI7XG59XG5pLmljb24uZXRzeTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJkN1wiO1xufVxuaS5pY29uLmV4cGVkaXRlZHNzbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIzZVwiO1xufVxuaS5pY29uLmZhY2Vib29rLmY6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzOWVcIjtcbn1cbmkuaWNvbi5mYWNlYm9vay5tZXNzZW5nZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzOWZcIjtcbn1cbmkuaWNvbi5mYWNlYm9vay5zcXVhcmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwODJcIjtcbn1cbmkuaWNvbi5mYWNlYm9vazpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA5YVwiO1xufVxuaS5pY29uLmZpcmVmb3g6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyNjlcIjtcbn1cbmkuaWNvbi5maXJzdC5vcmRlcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJiMFwiO1xufVxuaS5pY29uLmZpcnN0ZHJhZnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzYTFcIjtcbn1cbmkuaWNvbi5mbGlja3I6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNmVcIjtcbn1cbmkuaWNvbi5mbGlwYm9hcmQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0NGRcIjtcbn1cbmkuaWNvbi5mbHk6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0MTdcIjtcbn1cbmkuaWNvbi5mb250LmF3ZXNvbWUuYWx0ZXJuYXRlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzVjXCI7XG59XG5pLmljb24uZm9udC5hd2Vzb21lLmZsYWc6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0MjVcIjtcbn1cbmkuaWNvbi5mb250LmF3ZXNvbWU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyYjRcIjtcbn1cbmkuaWNvbi5mb250aWNvbnMuZmk6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzYTJcIjtcbn1cbmkuaWNvbi5mb250aWNvbnM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyODBcIjtcbn1cbmkuaWNvbi5mb3J0LmF3ZXNvbWUuYWx0ZXJuYXRlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2EzXCI7XG59XG5pLmljb24uZm9ydC5hd2Vzb21lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjg2XCI7XG59XG5pLmljb24uZm9ydW1iZWU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMTFcIjtcbn1cbmkuaWNvbi5mb3Vyc3F1YXJlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTgwXCI7XG59XG5pLmljb24uZnJlZS5jb2RlLmNhbXA6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyYzVcIjtcbn1cbmkuaWNvbi5mcmVlYnNkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2E0XCI7XG59XG5pLmljb24uZ2V0LnBvY2tldDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI2NVwiO1xufVxuaS5pY29uLmdnLmNpcmNsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI2MVwiO1xufVxuaS5pY29uLmdnOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjYwXCI7XG59XG5pLmljb24uZ2l0LnNxdWFyZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFkMlwiO1xufVxuaS5pY29uLmdpdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFkM1wiO1xufVxuaS5pY29uLmdpdGh1Yi5hbHRlcm5hdGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMTNcIjtcbn1cbmkuaWNvbi5naXRodWIuc3F1YXJlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDkyXCI7XG59XG5pLmljb24uZ2l0aHViOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDliXCI7XG59XG5pLmljb24uZ2l0a3Jha2VuOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2E2XCI7XG59XG5pLmljb24uZ2l0bGFiOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjk2XCI7XG59XG5pLmljb24uZ2l0dGVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDI2XCI7XG59XG5pLmljb24uZ2xpZGUuZzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJhNlwiO1xufVxuaS5pY29uLmdsaWRlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmE1XCI7XG59XG5pLmljb24uZ29mb3JlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2E3XCI7XG59XG5pLmljb24uZ29vZHJlYWRzLmc6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzYTlcIjtcbn1cbmkuaWNvbi5nb29kcmVhZHM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzYThcIjtcbn1cbmkuaWNvbi5nb29nbGUuZHJpdmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzYWFcIjtcbn1cbmkuaWNvbi5nb29nbGUucGxheTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNhYlwiO1xufVxuaS5pY29uLmdvb2dsZS5wbHVzLmc6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwZDVcIjtcbn1cbmkuaWNvbi5nb29nbGUucGx1cy5zcXVhcmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwZDRcIjtcbn1cbmkuaWNvbi5nb29nbGUucGx1czpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJiM1wiO1xufVxuaS5pY29uLmdvb2dsZS53YWxsZXQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxZWVcIjtcbn1cbmkuaWNvbi5nb29nbGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxYTBcIjtcbn1cbmkuaWNvbi5ncmF0aXBheTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE4NFwiO1xufVxuaS5pY29uLmdyYXY6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyZDZcIjtcbn1cbmkuaWNvbi5ncmlwZmlyZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNhY1wiO1xufVxuaS5pY29uLmdydW50OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2FkXCI7XG59XG5pLmljb24uZ3VscDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNhZVwiO1xufVxuaS5pY29uLmhhY2tlci5uZXdzLnNxdWFyZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNhZlwiO1xufVxuaS5pY29uLmhhY2tlci5uZXdzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWQ0XCI7XG59XG5pLmljb24uaGlwczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQ1MlwiO1xufVxuaS5pY29uLmhpcmUuYS5oZWxwZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzYjBcIjtcbn1cbmkuaWNvbi5ob29saTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQyN1wiO1xufVxuaS5pY29uLmhvdGphcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNiMVwiO1xufVxuaS5pY29uLmhvdXp6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjdjXCI7XG59XG5pLmljb24uaHRtbDU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxM2JcIjtcbn1cbmkuaWNvbi5odWJzcG90OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2IyXCI7XG59XG5pLmljb24uaW1kYjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJkOFwiO1xufVxuaS5pY29uLmluc3RhZ3JhbTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE2ZFwiO1xufVxuaS5pY29uLmludGVybmV0LmV4cGxvcmVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjZiXCI7XG59XG5pLmljb24uaW94aG9zdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIwOFwiO1xufVxuaS5pY29uLml0dW5lcy5ub3RlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2I1XCI7XG59XG5pLmljb24uaXR1bmVzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2I0XCI7XG59XG5pLmljb24uamVua2luczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNiNlwiO1xufVxuaS5pY29uLmpvZ2V0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2I3XCI7XG59XG5pLmljb24uam9vbWxhOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWFhXCI7XG59XG5pLmljb24uanMuc3F1YXJlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2I5XCI7XG59XG5pLmljb24uanM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzYjhcIjtcbn1cbmkuaWNvbi5qc2ZpZGRsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFjY1wiO1xufVxuaS5pY29uLmtleWNkbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNiYVwiO1xufVxuaS5pY29uLmtpY2tzdGFydGVyLms6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzYmNcIjtcbn1cbmkuaWNvbi5raWNrc3RhcnRlcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNiYlwiO1xufVxuaS5pY29uLmtvcnZ1ZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQyZlwiO1xufVxuaS5pY29uLmxhcmF2ZWw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzYmRcIjtcbn1cbmkuaWNvbi5sYXN0Zm0uc3F1YXJlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjAzXCI7XG59XG5pLmljb24ubGFzdGZtOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjAyXCI7XG59XG5pLmljb24ubGVhbnB1YjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIxMlwiO1xufVxuaS5pY29uLmxlc3M6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0MWRcIjtcbn1cbmkuaWNvbi5saW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2MwXCI7XG59XG5pLmljb24ubGlua2VkaW4uaW46YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwZTFcIjtcbn1cbmkuaWNvbi5saW5rZWRpbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA4Y1wiO1xufVxuaS5pY29uLmxpbm9kZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJiOFwiO1xufVxuaS5pY29uLmxpbnV4OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTdjXCI7XG59XG5pLmljb24ubHlmdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNjM1wiO1xufVxuaS5pY29uLm1hZ2VudG86YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzYzRcIjtcbn1cbmkuaWNvbi5tYXhjZG46YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMzZcIjtcbn1cbmkuaWNvbi5tZWRhcHBzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2M2XCI7XG59XG5pLmljb24ubWVkaXVtLm06YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzYzdcIjtcbn1cbmkuaWNvbi5tZWRpdW06YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyM2FcIjtcbn1cbmkuaWNvbi5tZWRydDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNjOFwiO1xufVxuaS5pY29uLm1lZXR1cDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJlMFwiO1xufVxuaS5pY29uLm1pY3Jvc29mdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNjYVwiO1xufVxuaS5pY29uLm1peDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNjYlwiO1xufVxuaS5pY29uLm1peGNsb3VkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjg5XCI7XG59XG5pLmljb24ubWl6dW5pOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2NjXCI7XG59XG5pLmljb24ubW9keDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI4NVwiO1xufVxuaS5pY29uLm1vbmVybzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNkMFwiO1xufVxuaS5pY29uLm5hcHN0ZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzZDJcIjtcbn1cbmkuaWNvbi5uaW50ZW5kby5zd2l0Y2g6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0MThcIjtcbn1cbmkuaWNvbi5ub2RlLmpzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2QzXCI7XG59XG5pLmljb24ubm9kZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQxOVwiO1xufVxuaS5pY29uLm5wbTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNkNFwiO1xufVxuaS5pY29uLm5zODpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNkNVwiO1xufVxuaS5pY29uLm51dHJpdGlvbml4OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2Q2XCI7XG59XG5pLmljb24ub2Rub2tsYXNzbmlraS5zcXVhcmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyNjRcIjtcbn1cbmkuaWNvbi5vZG5va2xhc3NuaWtpOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjYzXCI7XG59XG5pLmljb24ub3BlbmNhcnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyM2RcIjtcbn1cbmkuaWNvbi5vcGVuaWQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxOWJcIjtcbn1cbmkuaWNvbi5vcGVyYTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI2YVwiO1xufVxuaS5pY29uLm9wdGluLm1vbnN0ZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyM2NcIjtcbn1cbmkuaWNvbi5vc2k6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0MWFcIjtcbn1cbmkuaWNvbi5wYWdlNDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNkN1wiO1xufVxuaS5pY29uLnBhZ2VsaW5lczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE4Y1wiO1xufVxuaS5pY29uLnBhbGZlZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNkOFwiO1xufVxuaS5pY29uLnBhdHJlb246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzZDlcIjtcbn1cbmkuaWNvbi5wYXlwYWw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxZWRcIjtcbn1cbmkuaWNvbi5wZXJpc2NvcGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzZGFcIjtcbn1cbmkuaWNvbi5waGFicmljYXRvcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNkYlwiO1xufVxuaS5pY29uLnBob2VuaXguZnJhbWV3b3JrOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2RjXCI7XG59XG5pLmljb24ucGhwOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDU3XCI7XG59XG5pLmljb24ucGllZC5waXBlci5hbHRlcm5hdGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxYThcIjtcbn1cbmkuaWNvbi5waWVkLnBpcGVyLnBwOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWE3XCI7XG59XG5pLmljb24ucGllZC5waXBlcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJhZVwiO1xufVxuaS5pY29uLnBpbnRlcmVzdC5wOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjMxXCI7XG59XG5pLmljb24ucGludGVyZXN0LnNxdWFyZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBkM1wiO1xufVxuaS5pY29uLnBpbnRlcmVzdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBkMlwiO1xufVxuaS5pY29uLnBsYXlzdGF0aW9uOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2RmXCI7XG59XG5pLmljb24ucHJvZHVjdC5odW50OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjg4XCI7XG59XG5pLmljb24ucHVzaGVkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2UxXCI7XG59XG5pLmljb24ucHl0aG9uOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2UyXCI7XG59XG5pLmljb24ucXE6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxZDZcIjtcbn1cbmkuaWNvbi5xdWluc2NhcGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0NTlcIjtcbn1cbmkuaWNvbi5xdW9yYTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJjNFwiO1xufVxuaS5pY29uLnJhdmVscnk6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyZDlcIjtcbn1cbmkuaWNvbi5yZWFjdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQxYlwiO1xufVxuaS5pY29uLnJlYmVsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWQwXCI7XG59XG5pLmljb24ucmVkcml2ZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzZTNcIjtcbn1cbmkuaWNvbi5yZWRkaXQuYWxpZW46YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyODFcIjtcbn1cbmkuaWNvbi5yZWRkaXQuc3F1YXJlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWEyXCI7XG59XG5pLmljb24ucmVkZGl0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWExXCI7XG59XG5pLmljb24ucmVuZGFjdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNlNFwiO1xufVxuaS5pY29uLnJlbnJlbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE4YlwiO1xufVxuaS5pY29uLnJlcGx5ZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNlNlwiO1xufVxuaS5pY29uLnJlc29sdmluZzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNlN1wiO1xufVxuaS5pY29uLnJvY2tldGNoYXQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzZThcIjtcbn1cbmkuaWNvbi5yb2Nrcm1zOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2U5XCI7XG59XG5pLmljb24uc2FmYXJpOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjY3XCI7XG59XG5pLmljb24uc2FzczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQxZVwiO1xufVxuaS5pY29uLnNjaGxpeDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNlYVwiO1xufVxuaS5pY29uLnNjcmliZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI4YVwiO1xufVxuaS5pY29uLnNlYXJjaGVuZ2luOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2ViXCI7XG59XG5pLmljb24uc2VsbGNhc3Q6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyZGFcIjtcbn1cbmkuaWNvbi5zZWxsc3k6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMTNcIjtcbn1cbmkuaWNvbi5zZXJ2aWNlc3RhY2s6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzZWNcIjtcbn1cbmkuaWNvbi5zaGlydHNpbmJ1bGs6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMTRcIjtcbn1cbmkuaWNvbi5zaW1wbHlidWlsdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIxNVwiO1xufVxuaS5pY29uLnNpc3RyaXg6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzZWVcIjtcbn1cbmkuaWNvbi5za3lhdGxhczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIxNlwiO1xufVxuaS5pY29uLnNreXBlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTdlXCI7XG59XG5pLmljb24uc2xhY2suaGFzaDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNlZlwiO1xufVxuaS5pY29uLnNsYWNrOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTk4XCI7XG59XG5pLmljb24uc2xpZGVzaGFyZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFlN1wiO1xufVxuaS5pY29uLnNuYXBjaGF0Lmdob3N0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmFjXCI7XG59XG5pLmljb24uc25hcGNoYXQuc3F1YXJlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmFkXCI7XG59XG5pLmljb24uc25hcGNoYXQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyYWJcIjtcbn1cbmkuaWNvbi5zb3VuZGNsb3VkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWJlXCI7XG59XG5pLmljb24uc3BlYWthcDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNmM1wiO1xufVxuaS5pY29uLnNwb3RpZnk6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxYmNcIjtcbn1cbmkuaWNvbi5zdGFjay5leGNoYW5nZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE4ZFwiO1xufVxuaS5pY29uLnN0YWNrLm92ZXJmbG93OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTZjXCI7XG59XG5pLmljb24uc3RheWxpbmtlZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNmNVwiO1xufVxuaS5pY29uLnN0ZWFtLnNxdWFyZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFiN1wiO1xufVxuaS5pY29uLnN0ZWFtLnN5bWJvbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNmNlwiO1xufVxuaS5pY29uLnN0ZWFtOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWI2XCI7XG59XG5pLmljb24uc3RpY2tlci5tdWxlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2Y3XCI7XG59XG5pLmljb24uc3RyYXZhOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDI4XCI7XG59XG5pLmljb24uc3RyaXBlLnM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0MmFcIjtcbn1cbmkuaWNvbi5zdHJpcGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0MjlcIjtcbn1cbmkuaWNvbi5zdHVkaW92aW5hcmk6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzZjhcIjtcbn1cbmkuaWNvbi5zdHVtYmxldXBvbi5jaXJjbGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxYTNcIjtcbn1cbmkuaWNvbi5zdHVtYmxldXBvbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFhNFwiO1xufVxuaS5pY29uLnN1cGVycG93ZXJzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmRkXCI7XG59XG5pLmljb24uc3VwcGxlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2Y5XCI7XG59XG5pLmljb24udGVsZWdyYW0ucGxhbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzZmVcIjtcbn1cbmkuaWNvbi50ZWxlZ3JhbTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJjNlwiO1xufVxuaS5pY29uLnRlbmNlbnQud2VpYm86YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxZDVcIjtcbn1cbmkuaWNvbi50aGVtZWlzbGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyYjJcIjtcbn1cbmkuaWNvbi50cmVsbG86YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxODFcIjtcbn1cbmkuaWNvbi50cmlwYWR2aXNvcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI2MlwiO1xufVxuaS5pY29uLnR1bWJsci5zcXVhcmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNzRcIjtcbn1cbmkuaWNvbi50dW1ibHI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNzNcIjtcbn1cbmkuaWNvbi50d2l0Y2g6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxZThcIjtcbn1cbmkuaWNvbi50d2l0dGVyLnNxdWFyZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA4MVwiO1xufVxuaS5pY29uLnR3aXR0ZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwOTlcIjtcbn1cbmkuaWNvbi50eXBvMzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQyYlwiO1xufVxuaS5pY29uLnViZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0MDJcIjtcbn1cbmkuaWNvbi51aWtpdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQwM1wiO1xufVxuaS5pY29uLnVuaXJlZ2lzdHJ5OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDA0XCI7XG59XG5pLmljb24udW50YXBwZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQwNVwiO1xufVxuaS5pY29uLnVzYjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI4N1wiO1xufVxuaS5pY29uLnVzc3VubmFoOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDA3XCI7XG59XG5pLmljb24udmFhZGluOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDA4XCI7XG59XG5pLmljb24udmlhY29pbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIzN1wiO1xufVxuaS5pY29uLnZpYWRlby5zcXVhcmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyYWFcIjtcbn1cbmkuaWNvbi52aWFkZW86YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyYTlcIjtcbn1cbmkuaWNvbi52aWJlcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQwOVwiO1xufVxuaS5pY29uLnZpbWVvLnNxdWFyZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE5NFwiO1xufVxuaS5pY29uLnZpbWVvLnY6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyN2RcIjtcbn1cbmkuaWNvbi52aW1lbzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQwYVwiO1xufVxuaS5pY29uLnZpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxY2FcIjtcbn1cbmkuaWNvbi52azpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE4OVwiO1xufVxuaS5pY29uLnZudjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQwYlwiO1xufVxuaS5pY29uLnZ1ZWpzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDFmXCI7XG59XG5pLmljb24ud2VpYm86YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxOGFcIjtcbn1cbmkuaWNvbi53ZWl4aW46YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxZDdcIjtcbn1cbmkuaWNvbi53aGF0c2FwcC5zcXVhcmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0MGNcIjtcbn1cbmkuaWNvbi53aGF0c2FwcDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIzMlwiO1xufVxuaS5pY29uLndobWNzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDBkXCI7XG59XG5pLmljb24ud2lraXBlZGlhLnc6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyNjZcIjtcbn1cbmkuaWNvbi53aW5kb3dzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTdhXCI7XG59XG5pLmljb24ud29yZHByZXNzLnNpbXBsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQxMVwiO1xufVxuaS5pY29uLndvcmRwcmVzczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE5YVwiO1xufVxuaS5pY29uLndwYmVnaW5uZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyOTdcIjtcbn1cbmkuaWNvbi53cGV4cGxvcmVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmRlXCI7XG59XG5pLmljb24ud3Bmb3JtczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI5OFwiO1xufVxuaS5pY29uLnhib3g6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0MTJcIjtcbn1cbmkuaWNvbi54aW5nLnNxdWFyZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE2OVwiO1xufVxuaS5pY29uLnhpbmc6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNjhcIjtcbn1cbmkuaWNvbi55LmNvbWJpbmF0b3I6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyM2JcIjtcbn1cbmkuaWNvbi55YWhvbzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE5ZVwiO1xufVxuaS5pY29uLnlhbmRleC5pbnRlcm5hdGlvbmFsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDE0XCI7XG59XG5pLmljb24ueWFuZGV4OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDEzXCI7XG59XG5pLmljb24ueWVscDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFlOVwiO1xufVxuaS5pY29uLnlvYXN0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmIxXCI7XG59XG5pLmljb24ueW91dHViZS5zcXVhcmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0MzFcIjtcbn1cbmkuaWNvbi55b3V0dWJlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTY3XCI7XG59XG4vKiAgQWxpYXNlcyAqL1xuaS5pY29uLmFkZC5jaXJjbGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwNTVcIjtcbn1cbmkuaWNvbi5hZGQuc3F1YXJlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGZlXCI7XG59XG5pLmljb24uYWRkLnRvLmNhbGVuZGFyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjcxXCI7XG59XG5pLmljb24uYWRkLnRvLmNhcnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMTdcIjtcbn1cbmkuaWNvbi5hZGQudXNlcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIzNFwiO1xufVxuaS5pY29uLmFkZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA2N1wiO1xufVxuaS5pY29uLmFsYXJtLm11dGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxZjZcIjtcbn1cbmkuaWNvbi5hbGFybTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBmM1wiO1xufVxuaS5pY29uLmFsZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJhMlwiO1xufVxuaS5pY29uLmFsczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJhMlwiO1xufVxuaS5pY29uLmFtZXJpY2FuLmV4cHJlc3MuY2FyZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFmM1wiO1xufVxuaS5pY29uLmFtZXJpY2FuLmV4cHJlc3M6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxZjNcIjtcbn1cbmkuaWNvbi5hbWV4OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWYzXCI7XG59XG5pLmljb24uYW5ub3VuY2VtZW50OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGExXCI7XG59XG5pLmljb24uYXJlYS5jaGFydDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFmZVwiO1xufVxuaS5pY29uLmFyZWEuZ3JhcGg6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxZmVcIjtcbn1cbmkuaWNvbi5hcnJvdy5kb3duLmNhcnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMThcIjtcbn1cbmkuaWNvbi5hc2V4dWFsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjJkXCI7XG59XG5pLmljb24uYXNsLmludGVycHJldGluZzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJhM1wiO1xufVxuaS5pY29uLmFzbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJhM1wiO1xufVxuaS5pY29uLmFzc2lzdGl2ZS5saXN0ZW5pbmcuZGV2aWNlczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJhMlwiO1xufVxuaS5pY29uLmF0dGFjaDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBjNlwiO1xufVxuaS5pY29uLmF0dGVudGlvbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA2YVwiO1xufVxuaS5pY29uLmJhbGFuY2U6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyNGVcIjtcbn1cbmkuaWNvbi5iYXIuY2hhcnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwODBcIjtcbn1cbmkuaWNvbi5iYXIuZ3JhcGg6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwODBcIjtcbn1cbmkuaWNvbi5iYXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwZmNcIjtcbn1cbmkuaWNvbi5iYXRodHViOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmNkXCI7XG59XG5pLmljb24uYmF0dGVyeS5mb3VyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjQwXCI7XG59XG5pLmljb24uYmF0dGVyeS5oaWdoOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjQxXCI7XG59XG5pLmljb24uYmF0dGVyeS5sb3c6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyNDNcIjtcbn1cbmkuaWNvbi5iYXR0ZXJ5Lm1lZGl1bTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI0MlwiO1xufVxuaS5pY29uLmJhdHRlcnkub25lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjQzXCI7XG59XG5pLmljb24uYmF0dGVyeS50aHJlZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI0MVwiO1xufVxuaS5pY29uLmJhdHRlcnkudHdvOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjQyXCI7XG59XG5pLmljb24uYmF0dGVyeS56ZXJvOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjQ0XCI7XG59XG5pLmljb24uYmlydGhkYXk6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxZmRcIjtcbn1cbmkuaWNvbi5ibG9jay5sYXlvdXQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMDlcIjtcbn1cbmkuaWNvbi5ibHVldG9vdGguYWx0ZXJuYXRpdmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyOTRcIjtcbn1cbmkuaWNvbi5icm9rZW4uY2hhaW46YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMjdcIjtcbn1cbmkuaWNvbi5icm93c2VyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDIyXCI7XG59XG5pLmljb24uY2FsbC5zcXVhcmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwOThcIjtcbn1cbmkuaWNvbi5jYWxsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDk1XCI7XG59XG5pLmljb24uY2FuY2VsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDBkXCI7XG59XG5pLmljb24uY2FydDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA3YVwiO1xufVxuaS5pY29uLmNjOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjBhXCI7XG59XG5pLmljb24uY2hhaW46YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwYzFcIjtcbn1cbmkuaWNvbi5jaGF0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDc1XCI7XG59XG5pLmljb24uY2hlY2tlZC5jYWxlbmRhcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI3NFwiO1xufVxuaS5pY29uLmNoZWNrbWFyazpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAwY1wiO1xufVxuaS5pY29uLmNpcmNsZS5ub3RjaGVkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWNlXCI7XG59XG5pLmljb24uY2xvc2U6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMGRcIjtcbn1cbmkuaWNvbi5jbnk6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNTdcIjtcbn1cbmkuaWNvbi5jb2NrdGFpbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAwMFwiO1xufVxuaS5pY29uLmNvbW1lbnRpbmc6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyN2FcIjtcbn1cbmkuaWNvbi5jb21wdXRlcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEwOFwiO1xufVxuaS5pY29uLmNvbmZpZ3VyZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBhZFwiO1xufVxuaS5pY29uLmNvbnRlbnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwYzlcIjtcbn1cbmkuaWNvbi5kZWFmbmVzczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJhNFwiO1xufVxuaS5pY29uLmRlbGV0ZS5jYWxlbmRhcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI3M1wiO1xufVxuaS5pY29uLmRlbGV0ZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAwZFwiO1xufVxuaS5pY29uLmRldGVjdGl2ZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIxYlwiO1xufVxuaS5pY29uLmRpbmVycy5jbHViLmNhcmQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyNGNcIjtcbn1cbmkuaWNvbi5kaW5lcnMuY2x1YjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI0Y1wiO1xufVxuaS5pY29uLmRpc2NvdmVyLmNhcmQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxZjJcIjtcbn1cbmkuaWNvbi5kaXNjb3ZlcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFmMlwiO1xufVxuaS5pY29uLmRpc2N1c3Npb25zOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDg2XCI7XG59XG5pLmljb24uZG9jdG9yOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGYwXCI7XG59XG5pLmljb24uZG9sbGFyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTU1XCI7XG59XG5pLmljb24uZG9udDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA1ZVwiO1xufVxuaS5pY29uLmRyaWJibGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxN2RcIjtcbn1cbmkuaWNvbi5kcml2ZXJzLmxpY2Vuc2U6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyYzJcIjtcbn1cbmkuaWNvbi5kcm9wZG93bjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBkN1wiO1xufVxuaS5pY29uLmVlcmNhc3Q6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyZGFcIjtcbn1cbmkuaWNvbi5lbWVyZ2VuY3k6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwZjlcIjtcbn1cbmkuaWNvbi5lbnZpcmEuZ2FsbGVyeTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI5OVwiO1xufVxuaS5pY29uLmVyYXNlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTJkXCI7XG59XG5pLmljb24uZXVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTUzXCI7XG59XG5pLmljb24uZXVybzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE1M1wiO1xufVxuaS5pY29uLmV5ZWRyb3BwZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxZmJcIjtcbn1cbmkuaWNvbi5mYTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJiNFwiO1xufVxuaS5pY29uLmZhY3Rvcnk6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyNzVcIjtcbn1cbmkuaWNvbi5mYXZvcml0ZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAwNVwiO1xufVxuaS5pY29uLmZlZWQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwOWVcIjtcbn1cbmkuaWNvbi5mZW1hbGUuaG9tb3NleHVhbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIyNlwiO1xufVxuaS5pY29uLmZpbGUudGV4dDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE1Y1wiO1xufVxuaS5pY29uLmZpbmQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxZTVcIjtcbn1cbmkuaWNvbi5maXJzdC5haWQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwZmFcIjtcbn1cbmkuaWNvbi5maXZlLmh1bmRyZWQucGl4ZWxzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjZlXCI7XG59XG5pLmljb24uZm9yazpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEyNlwiO1xufVxuaS5pY29uLmdhbWU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMWJcIjtcbn1cbmkuaWNvbi5nYXk6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMjdcIjtcbn1cbmkuaWNvbi5nYnA6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNTRcIjtcbn1cbmkuaWNvbi5naXR0aXA6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxODRcIjtcbn1cbmkuaWNvbi5nb29nbGUucGx1cy5jaXJjbGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyYjNcIjtcbn1cbmkuaWNvbi5nb29nbGUucGx1cy5vZmZpY2lhbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJiM1wiO1xufVxuaS5pY29uLmdyYWI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyNTVcIjtcbn1cbmkuaWNvbi5ncmFkdWF0aW9uOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTlkXCI7XG59XG5pLmljb24uZ3JpZC5sYXlvdXQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMGFcIjtcbn1cbmkuaWNvbi5ncm91cDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBjMFwiO1xufVxuaS5pY29uLmg6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwZmRcIjtcbn1cbmkuaWNvbi5oYW5kLnZpY3Rvcnk6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyNWJcIjtcbn1cbmkuaWNvbi5oYW5kaWNhcDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE5M1wiO1xufVxuaS5pY29uLmhhcmQub2YuaGVhcmluZzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJhNFwiO1xufVxuaS5pY29uLmhlYWRlcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFkY1wiO1xufVxuaS5pY29uLmhlbHAuY2lyY2xlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDU5XCI7XG59XG5pLmljb24uaGVscDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEyOFwiO1xufVxuaS5pY29uLmhldGVyb3NleHVhbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIyOFwiO1xufVxuaS5pY29uLmhpZGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwNzBcIjtcbn1cbmkuaWNvbi5ob3RlbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIzNlwiO1xufVxuaS5pY29uLmhvdXJnbGFzcy5mb3VyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjU0XCI7XG59XG5pLmljb24uaG91cmdsYXNzLmZ1bGw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyNTRcIjtcbn1cbmkuaWNvbi5ob3VyZ2xhc3Mub25lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjUxXCI7XG59XG5pLmljb24uaG91cmdsYXNzLnRocmVlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjUzXCI7XG59XG5pLmljb24uaG91cmdsYXNzLnR3bzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI1MlwiO1xufVxuaS5pY29uLmlkZWE6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwZWJcIjtcbn1cbmkuaWNvbi5pbHM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMGJcIjtcbn1cbmkuaWNvbi5pbi5jYXJ0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjE4XCI7XG59XG5pLmljb24uaW5yOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTU2XCI7XG59XG5pLmljb24uaW50ZXJnZW5kZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMjRcIjtcbn1cbmkuaWNvbi5pbnRlcnNleDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIyNFwiO1xufVxuaS5pY29uLmphcGFuLmNyZWRpdC5idXJlYXUuY2FyZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI0YlwiO1xufVxuaS5pY29uLmphcGFuLmNyZWRpdC5idXJlYXU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyNGJcIjtcbn1cbmkuaWNvbi5qY2I6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyNGJcIjtcbn1cbmkuaWNvbi5qcHk6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNTdcIjtcbn1cbmkuaWNvbi5rcnc6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNTlcIjtcbn1cbmkuaWNvbi5sYWI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwYzNcIjtcbn1cbmkuaWNvbi5sYXc6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyNGVcIjtcbn1cbmkuaWNvbi5sZWdhbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBlM1wiO1xufVxuaS5pY29uLmxlc2JpYW46YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMjZcIjtcbn1cbmkuaWNvbi5saWdodG5pbmc6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwZTdcIjtcbn1cbmkuaWNvbi5saWtlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDA0XCI7XG59XG5pLmljb24ubGluZS5jaGFydDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIwMVwiO1xufVxuaS5pY29uLmxpbmUuZ3JhcGg6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMDFcIjtcbn1cbmkuaWNvbi5saW5rZWRpbi5zcXVhcmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwOGNcIjtcbn1cbmkuaWNvbi5saW5raWZ5OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGMxXCI7XG59XG5pLmljb24ubGlyYTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE5NVwiO1xufVxuaS5pY29uLmxpc3QubGF5b3V0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDBiXCI7XG59XG5pLmljb24ubWFnbmlmeTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAwZVwiO1xufVxuaS5pY29uLm1haWwuZm9yd2FyZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA2NFwiO1xufVxuaS5pY29uLm1haWwuc3F1YXJlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTk5XCI7XG59XG5pLmljb24ubWFpbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBlMFwiO1xufVxuaS5pY29uLm1hbGUuaG9tb3NleHVhbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIyN1wiO1xufVxuaS5pY29uLm1hbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIyMlwiO1xufVxuaS5pY29uLm1hcmtlcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA0MVwiO1xufVxuaS5pY29uLm1hcnMuYWx0ZXJuYXRlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjI5XCI7XG59XG5pLmljb24ubWFycy5ob3Jpem9udGFsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjJiXCI7XG59XG5pLmljb24ubWFycy52ZXJ0aWNhbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIyYVwiO1xufVxuaS5pY29uLm1hc3RlcmNhcmQuY2FyZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFmMVwiO1xufVxuaS5pY29uLm1hc3RlcmNhcmQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxZjFcIjtcbn1cbmkuaWNvbi5tYXhpbWl6ZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBiMlwiO1xufVxuaS5pY29uLm1pY3Jvc29mdC5lZGdlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjgyXCI7XG59XG5pLmljb24ubWlsaXRhcnk6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwZmJcIjtcbn1cbmkuaWNvbi5taW5pbWl6ZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA2NlwiO1xufVxuaS5pY29uLm1zLmVkZ2U6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyODJcIjtcbn1cbmkuaWNvbi5tdXRlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTMxXCI7XG59XG5pLmljb24ubmV3LnBpZWQucGlwZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyYWVcIjtcbn1cbmkuaWNvbi5ub24uYmluYXJ5LnRyYW5zZ2VuZGVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjIzXCI7XG59XG5pLmljb24ubnVtYmVyZWQubGlzdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBjYlwiO1xufVxuaS5pY29uLm9wdGlubW9uc3RlcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIzY1wiO1xufVxuaS5pY29uLm9wdGlvbnM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxZGVcIjtcbn1cbmkuaWNvbi5vdGhlci5nZW5kZXIuaG9yaXpvbnRhbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIyYlwiO1xufVxuaS5pY29uLm90aGVyLmdlbmRlci52ZXJ0aWNhbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIyYVwiO1xufVxuaS5pY29uLm90aGVyLmdlbmRlcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIyOVwiO1xufVxuaS5pY29uLnBheW1lbnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwOWRcIjtcbn1cbmkuaWNvbi5wYXlwYWwuY2FyZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFmNFwiO1xufVxuaS5pY29uLnBlbmNpbC5zcXVhcmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNGJcIjtcbn1cbmkuaWNvbi5waG90bzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAzMFwiO1xufVxuaS5pY29uLnBpY3R1cmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwM2VcIjtcbn1cbmkuaWNvbi5waWUuY2hhcnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMDBcIjtcbn1cbmkuaWNvbi5waWUuZ3JhcGg6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMDBcIjtcbn1cbmkuaWNvbi5waWVkLnBpcGVyLmhhdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJhZVwiO1xufVxuaS5pY29uLnBpbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA4ZFwiO1xufVxuaS5pY29uLnBsdXMuY2FydDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIxN1wiO1xufVxuaS5pY29uLnBvY2tldDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI2NVwiO1xufVxuaS5pY29uLnBvaW50OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDQxXCI7XG59XG5pLmljb24ucG9pbnRpbmcuZG93bjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBhN1wiO1xufVxuaS5pY29uLnBvaW50aW5nLmxlZnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwYTVcIjtcbn1cbmkuaWNvbi5wb2ludGluZy5yaWdodDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBhNFwiO1xufVxuaS5pY29uLnBvaW50aW5nLnVwOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGE2XCI7XG59XG5pLmljb24ucG91bmQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNTRcIjtcbn1cbmkuaWNvbi5wb3dlci5jb3JkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWU2XCI7XG59XG5pLmljb24ucG93ZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMTFcIjtcbn1cbmkuaWNvbi5wcml2YWN5OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDg0XCI7XG59XG5pLmljb24uci5jaXJjbGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyNWRcIjtcbn1cbmkuaWNvbi5yYWluOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGU5XCI7XG59XG5pLmljb24ucmVjb3JkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDNkXCI7XG59XG5pLmljb24ucmVmcmVzaDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAyMVwiO1xufVxuaS5pY29uLnJlbW92ZS5jaXJjbGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwNTdcIjtcbn1cbmkuaWNvbi5yZW1vdmUuZnJvbS5jYWxlbmRhcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI3MlwiO1xufVxuaS5pY29uLnJlbW92ZS51c2VyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjM1XCI7XG59XG5pLmljb24ucmVtb3ZlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDBkXCI7XG59XG5pLmljb24ucmVwZWF0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDFlXCI7XG59XG5pLmljb24ucm1iOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTU3XCI7XG59XG5pLmljb24ucm91YmxlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTU4XCI7XG59XG5pLmljb24ucnViOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTU4XCI7XG59XG5pLmljb24ucnVibGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNThcIjtcbn1cbmkuaWNvbi5ydXBlZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE1NlwiO1xufVxuaS5pY29uLnMxNTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJjZFwiO1xufVxuaS5pY29uLnNlbGVjdGVkLnJhZGlvOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTkyXCI7XG59XG5pLmljb24uc2VuZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFkOFwiO1xufVxuaS5pY29uLnNldHRpbmc6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMTNcIjtcbn1cbmkuaWNvbi5zZXR0aW5nczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA4NVwiO1xufVxuaS5pY29uLnNoZWtlbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIwYlwiO1xufVxuaS5pY29uLnNoZXFlbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIwYlwiO1xufVxuaS5pY29uLnNoaXBwaW5nOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGQxXCI7XG59XG5pLmljb24uc2hvcDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA3YVwiO1xufVxuaS5pY29uLnNodWZmbGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwNzRcIjtcbn1cbmkuaWNvbi5zaHV0ZG93bjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAxMVwiO1xufVxuaS5pY29uLnNpZGViYXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwYzlcIjtcbn1cbmkuaWNvbi5zaWduaW5nOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmE3XCI7XG59XG5pLmljb24uc2lnbnVwOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDQ0XCI7XG59XG5pLmljb24uc2xpZGVyczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFkZVwiO1xufVxuaS5pY29uLnNvY2NlcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFlM1wiO1xufVxuaS5pY29uLnNvcnQuYWxwaGFiZXQuYXNjZW5kaW5nOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTVkXCI7XG59XG5pLmljb24uc29ydC5hbHBoYWJldC5kZXNjZW5kaW5nOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTVlXCI7XG59XG5pLmljb24uc29ydC5hc2NlbmRpbmc6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwZGVcIjtcbn1cbmkuaWNvbi5zb3J0LmNvbnRlbnQuYXNjZW5kaW5nOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTYwXCI7XG59XG5pLmljb24uc29ydC5jb250ZW50LmRlc2NlbmRpbmc6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNjFcIjtcbn1cbmkuaWNvbi5zb3J0LmRlc2NlbmRpbmc6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwZGRcIjtcbn1cbmkuaWNvbi5zb3J0Lm51bWVyaWMuYXNjZW5kaW5nOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTYyXCI7XG59XG5pLmljb24uc29ydC5udW1lcmljLmRlc2NlbmRpbmc6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNjNcIjtcbn1cbmkuaWNvbi5zb3VuZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAyNVwiO1xufVxuaS5pY29uLnNweTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIxYlwiO1xufVxuaS5pY29uLnN0cmlwZS5jYXJkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWY1XCI7XG59XG5pLmljb24uc3R1ZGVudDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE5ZFwiO1xufVxuaS5pY29uLnRhbGs6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyN2FcIjtcbn1cbmkuaWNvbi50YXJnZXQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNDBcIjtcbn1cbmkuaWNvbi50ZWxldHlwZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFlNFwiO1xufVxuaS5pY29uLnRlbGV2aXNpb246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyNmNcIjtcbn1cbmkuaWNvbi50ZXh0LmN1cnNvcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI0NlwiO1xufVxuaS5pY29uLnRleHQudGVsZXBob25lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWU0XCI7XG59XG5pLmljb24udGhlbWUuaXNsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJiMlwiO1xufVxuaS5pY29uLnRoZW1lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDQzXCI7XG59XG5pLmljb24udGhlcm1vbWV0ZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyYzdcIjtcbn1cbmkuaWNvbi50aHVtYi50YWNrOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDhkXCI7XG59XG5pLmljb24udGltZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAxN1wiO1xufVxuaS5pY29uLnRtOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjVjXCI7XG59XG5pLmljb24udG9nZ2xlLmRvd246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNTBcIjtcbn1cbmkuaWNvbi50b2dnbGUubGVmdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE5MVwiO1xufVxuaS5pY29uLnRvZ2dsZS5yaWdodDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE1MlwiO1xufVxuaS5pY29uLnRvZ2dsZS51cDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE1MVwiO1xufVxuaS5pY29uLnRyYW5zbGF0ZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFhYlwiO1xufVxuaS5pY29uLnRyYXZlbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBiMVwiO1xufVxuaS5pY29uLnRyZWF0bWVudDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBmMVwiO1xufVxuaS5pY29uLnRyaWFuZ2xlLmRvd246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwZDdcIjtcbn1cbmkuaWNvbi50cmlhbmdsZS5sZWZ0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGQ5XCI7XG59XG5pLmljb24udHJpYW5nbGUucmlnaHQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwZGFcIjtcbn1cbmkuaWNvbi50cmlhbmdsZS51cDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBkOFwiO1xufVxuaS5pY29uLnRyeTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE5NVwiO1xufVxuaS5pY29uLnVuaGlkZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA2ZVwiO1xufVxuaS5pY29uLnVubGlua2lmeTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEyN1wiO1xufVxuaS5pY29uLnVubXV0ZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEzMFwiO1xufVxuaS5pY29uLnVzZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE1NVwiO1xufVxuaS5pY29uLnVzZXIuY2FuY2VsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjM1XCI7XG59XG5pLmljb24udXNlci5jbG9zZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIzNVwiO1xufVxuaS5pY29uLnVzZXIuZGVsZXRlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjM1XCI7XG59XG5pLmljb24udXNlci54OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjM1XCI7XG59XG5pLmljb24udmNhcmQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyYmJcIjtcbn1cbmkuaWNvbi52aWRlby5jYW1lcmE6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwM2RcIjtcbn1cbmkuaWNvbi52aWRlby5wbGF5OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTQ0XCI7XG59XG5pLmljb24udmlzYS5jYXJkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWYwXCI7XG59XG5pLmljb24udmlzYTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFmMFwiO1xufVxuaS5pY29uLnZvbHVtZS5jb250cm9sLnBob25lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmEwXCI7XG59XG5pLmljb24ud2FpdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAxN1wiO1xufVxuaS5pY29uLndhcm5pbmcuY2lyY2xlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDZhXCI7XG59XG5pLmljb24ud2FybmluZy5zaWduOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDcxXCI7XG59XG5pLmljb24ud2FybmluZzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEyYVwiO1xufVxuaS5pY29uLndlY2hhdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFkN1wiO1xufVxuaS5pY29uLndpLWZpOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWViXCI7XG59XG5pLmljb24ud2lraXBlZGlhOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjY2XCI7XG59XG5pLmljb24ud2lubmVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDkxXCI7XG59XG5pLmljb24ud2l6YXJkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGQwXCI7XG59XG5pLmljb24ud29tYW46YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMjFcIjtcbn1cbmkuaWNvbi53b246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNTlcIjtcbn1cbmkuaWNvbi53b3JkcHJlc3MuYmVnaW5uZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyOTdcIjtcbn1cbmkuaWNvbi53b3JkcHJlc3MuZm9ybXM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyOThcIjtcbn1cbmkuaWNvbi53b3JsZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBhY1wiO1xufVxuaS5pY29uLndyaXRlLnNxdWFyZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE0YlwiO1xufVxuaS5pY29uLng6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMGRcIjtcbn1cbmkuaWNvbi55YzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIzYlwiO1xufVxuaS5pY29uLnljb21iaW5hdG9yOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjNiXCI7XG59XG5pLmljb24ueWVuOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTU3XCI7XG59XG5pLmljb24uemlwOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTg3XCI7XG59XG5pLmljb24uem9vbS5pbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAwZVwiO1xufVxuaS5pY29uLnpvb20ub3V0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDEwXCI7XG59XG5pLmljb24uem9vbTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAwZVwiO1xufVxuLypcbiAgSWNvbnMgd2hpY2ggd2hlcmUgcmVtb3ZlZCBpbiBGb250QXdlc29tZSA1XG4gIChBZGRlZCB0aGUgY2xhc3NlcyBidXQgcG9pbnRlZCB0aGVtIHRvIGFub3RoZXIgaWNvbiB3aGljaCBtYXRjaGVzIG9yIGlzIHNpbWlsYXIgZm9yIGNvbXBhdGliaWxpdHkgcmVhc29ucylcbiAqL1xuaS5pY29uLmJpdGJ1Y2tldC5zcXVhcmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNzFcIjtcbn1cbmkuaWNvbi5jaGVja21hcmsuYm94OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTRhXCI7XG59XG5pLmljb24uY2lyY2xlLnRoaW46YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMTFcIjtcbn1cbmkuaWNvbi5jbG91ZC5kb3dubG9hZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjM4MVwiO1xufVxuaS5pY29uLmNsb3VkLnVwbG9hZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjM4MlwiO1xufVxuaS5pY29uLmNvbXBvc2U6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzMDNcIjtcbn1cbmkuaWNvbi5jb252ZXJzYXRpb246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwODZcIjtcbn1cbmkuaWNvbi5jcmVkaXQuY2FyZC5hbHRlcm5hdGl2ZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA5ZFwiO1xufVxuaS5pY29uLmN1cnJlbmN5OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2QxXCI7XG59XG5pLmljb24uZGFzaGJvYXJkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2ZkXCI7XG59XG5pLmljb24uZGlhbW9uZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNhNVwiO1xufVxuaS5pY29uLmRpc2sub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjM2OVwiO1xufVxuaS5pY29uLmRpc2s6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwYTBcIjtcbn1cbmkuaWNvbi5leGNoYW5nZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjM2MlwiO1xufVxuaS5pY29uLmV4dGVybmFsLnNoYXJlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTRkXCI7XG59XG5pLmljb24uZXh0ZXJuYWwuc3F1YXJlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzYwXCI7XG59XG5pLmljb24uZXh0ZXJuYWw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzNWRcIjtcbn1cbmkuaWNvbi5mYWNlYm9vay5vZmZpY2lhbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA4MlwiO1xufVxuaS5pY29uLmZvb2Q6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyZTdcIjtcbn1cbmkuaWNvbi5oZWFydC5lbXB0eTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAwNFwiO1xufVxuaS5pY29uLmhvdXJnbGFzcy56ZXJvOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjUzXCI7XG59XG5pLmljb24ubGV2ZWwuZG93bjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNiZVwiO1xufVxuaS5pY29uLmxldmVsLnVwOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2JmXCI7XG59XG5pLmljb24ubG9nLm91dDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJmNVwiO1xufVxuaS5pY29uLm1lYW5wYXRoOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGM4XCI7XG59XG5pLmljb24ubW9uZXk6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzZDFcIjtcbn1cbmkuaWNvbi5tb3ZlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGIyXCI7XG59XG5pLmljb24ucGVuY2lsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzAzXCI7XG59XG5pLmljb24ucHJvdGVjdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAyM1wiO1xufVxuaS5pY29uLnJhZGlvOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTkyXCI7XG59XG5pLmljb24ucmVtb3ZlLmJvb2ttYXJrOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDJlXCI7XG59XG5pLmljb24ucmVzaXplLmhvcml6b250YWw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzMzdcIjtcbn1cbmkuaWNvbi5yZXNpemUudmVydGljYWw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzMzhcIjtcbn1cbmkuaWNvbi5zaWduLmluOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmY2XCI7XG59XG5pLmljb24uc2lnbi5vdXQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyZjVcIjtcbn1cbmkuaWNvbi5zcG9vbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJlNVwiO1xufVxuaS5pY29uLnN0YXIuZW1wdHk6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwODlcIjtcbn1cbmkuaWNvbi5zdGFyLmhhbGYuZW1wdHk6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwODlcIjtcbn1cbmkuaWNvbi5zdGFyLmhhbGYuZnVsbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA4OVwiO1xufVxuaS5pY29uLnRpY2tldDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNmZlwiO1xufVxuaS5pY29uLnRpbWVzLnJlY3RhbmdsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQxMFwiO1xufVxuaS5pY29uLndyaXRlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzAzXCI7XG59XG5pLmljb24ueW91dHViZS5wbGF5OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTY3XCI7XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiFcbiAqICMgU2VtYW50aWMgVUkgLSBJbWFnZVxuICogaHR0cDovL2dpdGh1Yi5jb20vc2VtYW50aWMtb3JnL3NlbWFudGljLXVpL1xuICpcbiAqXG4gKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2VcbiAqIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVRcbiAqXG4gKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qXG5cbuKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVlyAg4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4pWXICAg4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWXXG7ilZrilZDilZDilojilojilZTilZDilZDilZ3ilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKWiOKWiOKVlyDilojilojilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilZTilZDilZDilZDilZDilZ1cbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4pWU4paI4paI4paI4paI4pWU4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilojilojilojilojilojilZdcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVlOKVkOKVkOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4paI4paI4pWR4pWa4paI4paI4pWU4pWd4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilZrilZDilZDilZDilZDilojilojilZFcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWRIOKVmuKVkOKVnSDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZFcbiAgIOKVmuKVkOKVnSAgIOKVmuKVkOKVnSAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWdICAgICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ1cblxuKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIFRoZW1lIFNlbGVjdGlvblxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFRvIG92ZXJyaWRlIGEgdGhlbWUgZm9yIGFuIGluZGl2aWR1YWwgZWxlbWVudFxuICAgc3BlY2lmeSB0aGVtZSBuYW1lIGJlbG93XG4qL1xuLyogR2xvYmFsICovXG4vKiBFbGVtZW50cyAqL1xuLyogQ29sbGVjdGlvbnMgKi9cbi8qIE1vZHVsZXMgKi9cbi8qIFZpZXdzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgRm9sZGVyc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFBhdGggdG8gdGhlbWUgcGFja2FnZXMgKi9cbi8qIFBhdGggdG8gc2l0ZSBvdmVycmlkZSBmb2xkZXIgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBJbXBvcnQgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBJbXBvcnQgRGlyZWN0aXZlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgVGhlbWVcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgU2l0ZSBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0IHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRvcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogUGFja2FnZWQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZG9ycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBDb21wb25lbnQncyBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kb3JzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFNpdGUgdGhlbWUgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgIFVzZXIgR2xvYmFsIFZhcmlhYmxlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIG1hcnNvIGNvbG9ycyAqL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuIENvbXBvbmVudCBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0ICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgSW1hZ2VcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbGVtZW50XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBUeXBlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogQXZhdGFyICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBWYXJpYXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTcGFjZWQgKi9cbi8qIEZsb2F0ZWQgKi9cbi8qIFNpemUgKi9cbi8qIFBhY2thZ2VkIFRoZW1lICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgSW1hZ2VcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbGVtZW50XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBUeXBlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogQXZhdGFyICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBWYXJpYXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTcGFjZWQgKi9cbi8qIEZsb2F0ZWQgKi9cbi8qIFNpemUgKi9cbi8qIFNpdGUgVGhlbWUgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgVXNlciBWYXJpYWJsZSBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIE1peC1pbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE92ZXJyaWRlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBFbmQgQ29uZmlnICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIEltYWdlXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLnVpLmltYWdlIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG5pbWcudWkuaW1hZ2Uge1xuICBkaXNwbGF5OiBibG9jaztcbn1cbi51aS5pbWFnZSBzdmcsXG4udWkuaW1hZ2UgaW1nIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiBhdXRvO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi51aS5oaWRkZW4uaW1hZ2VzLFxuLnVpLmhpZGRlbi5pbWFnZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4udWkuaGlkZGVuLnRyYW5zaXRpb24uaW1hZ2VzLFxuLnVpLmhpZGRlbi50cmFuc2l0aW9uLmltYWdlIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbn1cbi51aS5kaXNhYmxlZC5pbWFnZXMsXG4udWkuZGlzYWJsZWQuaW1hZ2Uge1xuICBjdXJzb3I6IGRlZmF1bHQ7XG4gIG9wYWNpdHk6IDAuNDU7XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgIFZhcmlhdGlvbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIElubGluZVxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5pbmxpbmUuaW1hZ2UsXG4udWkuaW5saW5lLmltYWdlIHN2Zyxcbi51aS5pbmxpbmUuaW1hZ2UgaW1nIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgVmVydGljYWwgQWxpZ25lZFxuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkudG9wLmFsaWduZWQuaW1hZ2VzIC5pbWFnZSxcbi51aS50b3AuYWxpZ25lZC5pbWFnZSxcbi51aS50b3AuYWxpZ25lZC5pbWFnZSBzdmcsXG4udWkudG9wLmFsaWduZWQuaW1hZ2UgaW1nIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xufVxuLnVpLm1pZGRsZS5hbGlnbmVkLmltYWdlcyAuaW1hZ2UsXG4udWkubWlkZGxlLmFsaWduZWQuaW1hZ2UsXG4udWkubWlkZGxlLmFsaWduZWQuaW1hZ2Ugc3ZnLFxuLnVpLm1pZGRsZS5hbGlnbmVkLmltYWdlIGltZyB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cbi51aS5ib3R0b20uYWxpZ25lZC5pbWFnZXMgLmltYWdlLFxuLnVpLmJvdHRvbS5hbGlnbmVkLmltYWdlLFxuLnVpLmJvdHRvbS5hbGlnbmVkLmltYWdlIHN2Zyxcbi51aS5ib3R0b20uYWxpZ25lZC5pbWFnZSBpbWcge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHZlcnRpY2FsLWFsaWduOiBib3R0b207XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIFJvdW5kZWRcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkucm91bmRlZC5pbWFnZXMgLmltYWdlLFxuLnVpLnJvdW5kZWQuaW1hZ2UsXG4udWkucm91bmRlZC5pbWFnZXMgLmltYWdlID4gKixcbi51aS5yb3VuZGVkLmltYWdlID4gKiB7XG4gIGJvcmRlci1yYWRpdXM6IDAuMzEyNWVtO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlcmVkXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmJvcmRlcmVkLmltYWdlcyAuaW1hZ2UsXG4udWkuYm9yZGVyZWQuaW1hZ2VzIGltZyxcbi51aS5ib3JkZXJlZC5pbWFnZXMgc3ZnLFxuLnVpLmJvcmRlcmVkLmltYWdlIGltZyxcbi51aS5ib3JkZXJlZC5pbWFnZSBzdmcsXG5pbWcudWkuYm9yZGVyZWQuaW1hZ2Uge1xuICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDAsIDAsIDAsIDAuMSk7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgQ2lyY3VsYXJcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuY2lyY3VsYXIuaW1hZ2VzLFxuLnVpLmNpcmN1bGFyLmltYWdlIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cbi51aS5jaXJjdWxhci5pbWFnZXMgLmltYWdlLFxuLnVpLmNpcmN1bGFyLmltYWdlLFxuLnVpLmNpcmN1bGFyLmltYWdlcyAuaW1hZ2UgPiAqLFxuLnVpLmNpcmN1bGFyLmltYWdlID4gKiB7XG4gIC13ZWJraXQtYm9yZGVyLXJhZGl1czogNTAwcmVtO1xuICAtbW96LWJvcmRlci1yYWRpdXM6IDUwMHJlbTtcbiAgYm9yZGVyLXJhZGl1czogNTAwcmVtO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBGbHVpZFxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5mbHVpZC5pbWFnZXMsXG4udWkuZmx1aWQuaW1hZ2UsXG4udWkuZmx1aWQuaW1hZ2VzIGltZyxcbi51aS5mbHVpZC5pbWFnZXMgc3ZnLFxuLnVpLmZsdWlkLmltYWdlIHN2Zyxcbi51aS5mbHVpZC5pbWFnZSBpbWcge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogYXV0bztcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgQXZhdGFyXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmF2YXRhci5pbWFnZXMgLmltYWdlLFxuLnVpLmF2YXRhci5pbWFnZXMgaW1nLFxuLnVpLmF2YXRhci5pbWFnZXMgc3ZnLFxuLnVpLmF2YXRhci5pbWFnZSBpbWcsXG4udWkuYXZhdGFyLmltYWdlIHN2Zyxcbi51aS5hdmF0YXIuaW1hZ2Uge1xuICBtYXJnaW4tcmlnaHQ6IDAuMjVlbTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB3aWR0aDogMmVtO1xuICBoZWlnaHQ6IDJlbTtcbiAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiA1MDByZW07XG4gIC1tb3otYm9yZGVyLXJhZGl1czogNTAwcmVtO1xuICBib3JkZXItcmFkaXVzOiA1MDByZW07XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBTcGFjZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5zcGFjZWQuaW1hZ2Uge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2sgIWltcG9ydGFudDtcbiAgbWFyZ2luLWxlZnQ6IDAuNWVtO1xuICBtYXJnaW4tcmlnaHQ6IDAuNWVtO1xufVxuLnVpW2NsYXNzKj1cImxlZnQgc3BhY2VkXCJdLmltYWdlIHtcbiAgbWFyZ2luLWxlZnQ6IDAuNWVtO1xuICBtYXJnaW4tcmlnaHQ6IDBlbTtcbn1cbi51aVtjbGFzcyo9XCJyaWdodCBzcGFjZWRcIl0uaW1hZ2Uge1xuICBtYXJnaW4tbGVmdDogMGVtO1xuICBtYXJnaW4tcmlnaHQ6IDAuNWVtO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRmxvYXRlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmZsb2F0ZWQuaW1hZ2UsXG4udWkuZmxvYXRlZC5pbWFnZXMge1xuICBmbG9hdDogbGVmdDtcbiAgbWFyZ2luLXJpZ2h0OiAxZW07XG4gIG1hcmdpbi1ib3R0b206IDFlbTtcbn1cbi51aS5yaWdodC5mbG9hdGVkLmltYWdlcyxcbi51aS5yaWdodC5mbG9hdGVkLmltYWdlIHtcbiAgZmxvYXQ6IHJpZ2h0O1xuICBtYXJnaW4tcmlnaHQ6IDBlbTtcbiAgbWFyZ2luLWJvdHRvbTogMWVtO1xuICBtYXJnaW4tbGVmdDogMWVtO1xufVxuLnVpLmZsb2F0ZWQuaW1hZ2VzOmxhc3QtY2hpbGQsXG4udWkuZmxvYXRlZC5pbWFnZTpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLWJvdHRvbTogMGVtO1xufVxuLnVpLmNlbnRlcmVkLmltYWdlcyxcbi51aS5jZW50ZXJlZC5pbWFnZSB7XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLm1pbmkuaW1hZ2VzIC5pbWFnZSxcbi51aS5taW5pLmltYWdlcyBpbWcsXG4udWkubWluaS5pbWFnZXMgc3ZnLFxuLnVpLm1pbmkuaW1hZ2Uge1xuICB3aWR0aDogMzVweDtcbiAgaGVpZ2h0OiBhdXRvO1xuICBmb250LXNpemU6IDAuOHJlbTtcbn1cbi51aS50aW55LmltYWdlcyAuaW1hZ2UsXG4udWkudGlueS5pbWFnZXMgaW1nLFxuLnVpLnRpbnkuaW1hZ2VzIHN2Zyxcbi51aS50aW55LmltYWdlIHtcbiAgd2lkdGg6IDgwcHg7XG4gIGhlaWdodDogYXV0bztcbiAgZm9udC1zaXplOiAwLjlyZW07XG59XG4udWkuc21hbGwuaW1hZ2VzIC5pbWFnZSxcbi51aS5zbWFsbC5pbWFnZXMgaW1nLFxuLnVpLnNtYWxsLmltYWdlcyBzdmcsXG4udWkuc21hbGwuaW1hZ2Uge1xuICB3aWR0aDogMTUwcHg7XG4gIGhlaWdodDogYXV0bztcbiAgZm9udC1zaXplOiAwLjlyZW07XG59XG4udWkubWVkaXVtLmltYWdlcyAuaW1hZ2UsXG4udWkubWVkaXVtLmltYWdlcyBpbWcsXG4udWkubWVkaXVtLmltYWdlcyBzdmcsXG4udWkubWVkaXVtLmltYWdlIHtcbiAgd2lkdGg6IDMwMHB4O1xuICBoZWlnaHQ6IGF1dG87XG4gIGZvbnQtc2l6ZTogMXJlbTtcbn1cbi51aS5sYXJnZS5pbWFnZXMgLmltYWdlLFxuLnVpLmxhcmdlLmltYWdlcyBpbWcsXG4udWkubGFyZ2UuaW1hZ2VzIHN2Zyxcbi51aS5sYXJnZS5pbWFnZSB7XG4gIHdpZHRoOiA0NTBweDtcbiAgaGVpZ2h0OiBhdXRvO1xuICBmb250LXNpemU6IDEuMXJlbTtcbn1cbi51aS5iaWcuaW1hZ2VzIC5pbWFnZSxcbi51aS5iaWcuaW1hZ2VzIGltZyxcbi51aS5iaWcuaW1hZ2VzIHN2Zyxcbi51aS5iaWcuaW1hZ2Uge1xuICB3aWR0aDogNjAwcHg7XG4gIGhlaWdodDogYXV0bztcbiAgZm9udC1zaXplOiAxLjNyZW07XG59XG4udWkuaHVnZS5pbWFnZXMgLmltYWdlLFxuLnVpLmh1Z2UuaW1hZ2VzIGltZyxcbi51aS5odWdlLmltYWdlcyBzdmcsXG4udWkuaHVnZS5pbWFnZSB7XG4gIHdpZHRoOiA4MDBweDtcbiAgaGVpZ2h0OiBhdXRvO1xuICBmb250LXNpemU6IDEuNHJlbTtcbn1cbi51aS5tYXNzaXZlLmltYWdlcyAuaW1hZ2UsXG4udWkubWFzc2l2ZS5pbWFnZXMgaW1nLFxuLnVpLm1hc3NpdmUuaW1hZ2VzIHN2Zyxcbi51aS5tYXNzaXZlLmltYWdlIHtcbiAgd2lkdGg6IDk2MHB4O1xuICBoZWlnaHQ6IGF1dG87XG4gIGZvbnQtc2l6ZTogMS43cmVtO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICAgR3JvdXBzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLnVpLmltYWdlcyB7XG4gIGZvbnQtc2l6ZTogMGVtO1xuICBtYXJnaW46IDBlbSAtMC4yNXJlbSAwcmVtO1xufVxuLnVpLmltYWdlcyAuaW1hZ2UsXG4udWkuaW1hZ2VzIGltZyxcbi51aS5pbWFnZXMgc3ZnIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXJnaW46IDBlbSAwLjI1cmVtIDAuNXJlbTtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBUaGVtZSBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiFcbiAqICMgU2VtYW50aWMgVUkgLSBJbnB1dFxuICogaHR0cDovL2dpdGh1Yi5jb20vc2VtYW50aWMtb3JnL3NlbWFudGljLXVpL1xuICpcbiAqXG4gKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2VcbiAqIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVRcbiAqXG4gKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qXG5cbuKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVlyAg4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4pWXICAg4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWXXG7ilZrilZDilZDilojilojilZTilZDilZDilZ3ilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKWiOKWiOKVlyDilojilojilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilZTilZDilZDilZDilZDilZ1cbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4pWU4paI4paI4paI4paI4pWU4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilojilojilojilojilojilZdcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVlOKVkOKVkOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4paI4paI4pWR4pWa4paI4paI4pWU4pWd4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilZrilZDilZDilZDilZDilojilojilZFcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWRIOKVmuKVkOKVnSDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZFcbiAgIOKVmuKVkOKVnSAgIOKVmuKVkOKVnSAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWdICAgICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ1cblxuKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIFRoZW1lIFNlbGVjdGlvblxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFRvIG92ZXJyaWRlIGEgdGhlbWUgZm9yIGFuIGluZGl2aWR1YWwgZWxlbWVudFxuICAgc3BlY2lmeSB0aGVtZSBuYW1lIGJlbG93XG4qL1xuLyogR2xvYmFsICovXG4vKiBFbGVtZW50cyAqL1xuLyogQ29sbGVjdGlvbnMgKi9cbi8qIE1vZHVsZXMgKi9cbi8qIFZpZXdzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgRm9sZGVyc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFBhdGggdG8gdGhlbWUgcGFja2FnZXMgKi9cbi8qIFBhdGggdG8gc2l0ZSBvdmVycmlkZSBmb2xkZXIgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBJbXBvcnQgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBJbXBvcnQgRGlyZWN0aXZlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgVGhlbWVcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgU2l0ZSBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0IHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRvcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogUGFja2FnZWQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZG9ycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBDb21wb25lbnQncyBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kb3JzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFNpdGUgdGhlbWUgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgIFVzZXIgR2xvYmFsIFZhcmlhYmxlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIG1hcnNvIGNvbG9ycyAqL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuIENvbXBvbmVudCBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0ICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgSW5wdXRcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEVsZW1lbnRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBUeXBlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSWNvbiBJbnB1dCAqL1xuLyogQ2lyY3VsYXIgSWNvbiBJbnB1dCAqL1xuLyogTGFiZWxlZCBJbnB1dCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFN0YXRlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUGxhY2Vob2xkZXIgKi9cbi8qIERvd24gKi9cbi8qIEZvY3VzICovXG4vKiBFcnJvciAqL1xuLyogTG9hZGVyICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFZhcmlhdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKiBQYWNrYWdlZCBUaGVtZSAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIElucHV0XG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBFbGVtZW50XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgVHlwZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEljb24gSW5wdXQgKi9cbi8qIENpcmN1bGFyIEljb24gSW5wdXQgKi9cbi8qIExhYmVsZWQgSW5wdXQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTdGF0ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBsYWNlaG9sZGVyICovXG4vKiBEb3duICovXG4vKiBGb2N1cyAqL1xuLyogRXJyb3IgKi9cbi8qIExvYWRlciAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBWYXJpYXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyogU2l0ZSBUaGVtZSAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICBVc2VyIFZhcmlhYmxlIE92ZXJyaWRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgTWl4LWluc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgT3ZlcnJpZGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEVuZCBDb25maWcgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFN0YW5kYXJkXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBJbnB1dHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkuaW5wdXQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGNvbG9yOiAjMzMzMzMzO1xufVxuLnVpLmlucHV0IGlucHV0IHtcbiAgbWFyZ2luOiAwZW07XG4gIG1heC13aWR0aDogMTAwJTtcbiAgZmxleDogMSAwIGF1dG87XG4gIG91dGxpbmU6IG5vbmU7XG4gIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwKTtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgbGluZS1oZWlnaHQ6IDEuMjE0Mjg1NzFlbTtcbiAgZm9udC1mYW1pbHk6ICdFeG8gMicsICdMYXRvJywgQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZjtcbiAgcGFkZGluZzogMC45OTI4NTcxNGVtIDEuNGVtO1xuICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpO1xuICBjb2xvcjogIzMzMzMzMztcbiAgYm9yZGVyLXJhZGl1czogMC40cmVtO1xuICB0cmFuc2l0aW9uOiBib3gtc2hhZG93IDAuMXMgZWFzZSwgYm9yZGVyLWNvbG9yIDAuMXMgZWFzZTtcbiAgYm94LXNoYWRvdzogbm9uZTtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBsYWNlaG9sZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogYnJvd3NlcnMgcmVxdWlyZSB0aGVzZSBydWxlcyBzZXBhcmF0ZSAqL1xuLnVpLmlucHV0IGlucHV0Ojotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIHtcbiAgY29sb3I6ICNmMmYyZjI7XG59XG4udWkuaW5wdXQgaW5wdXQ6Oi1tb3otcGxhY2Vob2xkZXIge1xuICBjb2xvcjogI2YyZjJmMjtcbn1cbi51aS5pbnB1dCBpbnB1dDotbXMtaW5wdXQtcGxhY2Vob2xkZXIge1xuICBjb2xvcjogI2YyZjJmMjtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmRpc2FibGVkLmlucHV0LFxuLnVpLmlucHV0IGlucHV0W2Rpc2FibGVkXSB7XG4gIG9wYWNpdHk6IDAuNDU7XG59XG4udWkuZGlzYWJsZWQuaW5wdXQgaW5wdXQsXG4udWkuaW5wdXQgaW5wdXRbZGlzYWJsZWRdIHtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5pbnB1dCBpbnB1dDphY3RpdmUsXG4udWkuaW5wdXQuZG93biBpbnB1dCB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjMpO1xuICBiYWNrZ3JvdW5kOiAjRkFGQUZBO1xuICBjb2xvcjogIzMzMzMzMztcbiAgYm94LXNoYWRvdzogbm9uZTtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkaW5nXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmxvYWRpbmcubG9hZGluZy5pbnB1dCA+IGkuaWNvbjpiZWZvcmUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGNvbnRlbnQ6ICcnO1xuICB0b3A6IDUwJTtcbiAgbGVmdDogNTAlO1xuICBtYXJnaW46IC0wLjY1ZW0gMGVtIDBlbSAtMC42NWVtO1xuICB3aWR0aDogMS4zZW07XG4gIGhlaWdodDogMS4zZW07XG4gIGJvcmRlci1yYWRpdXM6IDUwMHJlbTtcbiAgYm9yZGVyOiAwLjJlbSBzb2xpZCByZ2JhKDAsIDAsIDAsIDAuMSk7XG59XG4udWkubG9hZGluZy5sb2FkaW5nLmlucHV0ID4gaS5pY29uOmFmdGVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBjb250ZW50OiAnJztcbiAgdG9wOiA1MCU7XG4gIGxlZnQ6IDUwJTtcbiAgbWFyZ2luOiAtMC42NWVtIDBlbSAwZW0gLTAuNjVlbTtcbiAgd2lkdGg6IDEuM2VtO1xuICBoZWlnaHQ6IDEuM2VtO1xuICBhbmltYXRpb246IGJ1dHRvbi1zcGluIDAuNnMgbGluZWFyO1xuICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgYm9yZGVyLXJhZGl1czogNTAwcmVtO1xuICBib3JkZXItY29sb3I6ICM3Njc2NzYgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1zdHlsZTogc29saWQ7XG4gIGJvcmRlci13aWR0aDogMC4yZW07XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCB0cmFuc3BhcmVudDtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkuaW5wdXQuZm9jdXMgaW5wdXQsXG4udWkuaW5wdXQgaW5wdXQ6Zm9jdXMge1xuICBib3JkZXItY29sb3I6ICM4NUI3RDk7XG4gIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuOCk7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG59XG4udWkuaW5wdXQuZm9jdXMgaW5wdXQ6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIsXG4udWkuaW5wdXQgaW5wdXQ6Zm9jdXM6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIge1xuICBjb2xvcjogI2E2YTZhNjtcbn1cbi51aS5pbnB1dC5mb2N1cyBpbnB1dDo6LW1vei1wbGFjZWhvbGRlcixcbi51aS5pbnB1dCBpbnB1dDpmb2N1czo6LW1vei1wbGFjZWhvbGRlciB7XG4gIGNvbG9yOiAjYTZhNmE2O1xufVxuLnVpLmlucHV0LmZvY3VzIGlucHV0Oi1tcy1pbnB1dC1wbGFjZWhvbGRlcixcbi51aS5pbnB1dCBpbnB1dDpmb2N1czotbXMtaW5wdXQtcGxhY2Vob2xkZXIge1xuICBjb2xvcjogI2E2YTZhNjtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRXJyb3Jcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkuaW5wdXQuZXJyb3IgaW5wdXQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkZGNkY2O1xuICBib3JkZXItY29sb3I6ICNFMEI0QjQ7XG4gIGNvbG9yOiAjOUYzQTM4O1xuICBib3gtc2hhZG93OiBub25lO1xufVxuLyogRXJyb3IgUGxhY2Vob2xkZXIgKi9cbi51aS5pbnB1dC5lcnJvciBpbnB1dDo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciB7XG4gIGNvbG9yOiAjZTdiZGJjO1xufVxuLnVpLmlucHV0LmVycm9yIGlucHV0OjotbW96LXBsYWNlaG9sZGVyIHtcbiAgY29sb3I6ICNlN2JkYmM7XG59XG4udWkuaW5wdXQuZXJyb3IgaW5wdXQ6LW1zLWlucHV0LXBsYWNlaG9sZGVyIHtcbiAgY29sb3I6ICNlN2JkYmMgIWltcG9ydGFudDtcbn1cbi8qIEZvY3VzZWQgRXJyb3IgUGxhY2Vob2xkZXIgKi9cbi51aS5pbnB1dC5lcnJvciBpbnB1dDpmb2N1czo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciB7XG4gIGNvbG9yOiAjZGE5Nzk2O1xufVxuLnVpLmlucHV0LmVycm9yIGlucHV0OmZvY3VzOjotbW96LXBsYWNlaG9sZGVyIHtcbiAgY29sb3I6ICNkYTk3OTY7XG59XG4udWkuaW5wdXQuZXJyb3IgaW5wdXQ6Zm9jdXM6LW1zLWlucHV0LXBsYWNlaG9sZGVyIHtcbiAgY29sb3I6ICNkYTk3OTYgIWltcG9ydGFudDtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFZhcmlhdGlvbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBUcmFuc3BhcmVudFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS50cmFuc3BhcmVudC5pbnB1dCBpbnB1dCB7XG4gIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgcGFkZGluZzogMGVtICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbn1cbi8qIFRyYW5zcGFyZW50IEljb24gKi9cbi51aS50cmFuc3BhcmVudC5pY29uLmlucHV0ID4gaS5pY29uIHtcbiAgd2lkdGg6IDEuMWVtO1xufVxuLnVpLnRyYW5zcGFyZW50Lmljb24uaW5wdXQgPiBpbnB1dCB7XG4gIHBhZGRpbmctbGVmdDogMGVtICFpbXBvcnRhbnQ7XG4gIHBhZGRpbmctcmlnaHQ6IDJlbSAhaW1wb3J0YW50O1xufVxuLnVpLnRyYW5zcGFyZW50W2NsYXNzKj1cImxlZnQgaWNvblwiXS5pbnB1dCA+IGlucHV0IHtcbiAgcGFkZGluZy1sZWZ0OiAyZW0gIWltcG9ydGFudDtcbiAgcGFkZGluZy1yaWdodDogMGVtICFpbXBvcnRhbnQ7XG59XG4vKiBUcmFuc3BhcmVudCBJbnZlcnRlZCAqL1xuLnVpLnRyYW5zcGFyZW50LmludmVydGVkLmlucHV0IHtcbiAgY29sb3I6ICNmZmZmZmY7XG59XG4udWkudHJhbnNwYXJlbnQuaW52ZXJ0ZWQuaW5wdXQgaW5wdXQge1xuICBjb2xvcjogaW5oZXJpdDtcbn1cbi51aS50cmFuc3BhcmVudC5pbnZlcnRlZC5pbnB1dCBpbnB1dDo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7XG59XG4udWkudHJhbnNwYXJlbnQuaW52ZXJ0ZWQuaW5wdXQgaW5wdXQ6Oi1tb3otcGxhY2Vob2xkZXIge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpO1xufVxuLnVpLnRyYW5zcGFyZW50LmludmVydGVkLmlucHV0IGlucHV0Oi1tcy1pbnB1dC1wbGFjZWhvbGRlciB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgICBJY29uXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmljb24uaW5wdXQgPiBpLmljb24ge1xuICBjdXJzb3I6IGRlZmF1bHQ7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgdG9wOiAwcHg7XG4gIHJpZ2h0OiAwcHg7XG4gIG1hcmdpbjogMGVtO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHdpZHRoOiAzLjNlbTtcbiAgb3BhY2l0eTogMC41O1xuICBib3JkZXItcmFkaXVzOiAwZW0gMC40cmVtIDAuNHJlbSAwZW07XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcyBlYXNlO1xufVxuLnVpLmljb24uaW5wdXQgPiBpLmljb246bm90KC5saW5rKSB7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuLnVpLmljb24uaW5wdXQgaW5wdXQge1xuICBwYWRkaW5nLXJpZ2h0OiAzLjNlbSAhaW1wb3J0YW50O1xufVxuLnVpLmljb24uaW5wdXQgPiBpLmljb246YmVmb3JlLFxuLnVpLmljb24uaW5wdXQgPiBpLmljb246YWZ0ZXIge1xuICBsZWZ0OiAwO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgdG9wOiA1MCU7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW4tdG9wOiAtMC41ZW07XG59XG4udWkuaWNvbi5pbnB1dCA+IGkubGluay5pY29uIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuLnVpLmljb24uaW5wdXQgPiBpLmNpcmN1bGFyLmljb24ge1xuICB0b3A6IDAuMzVlbTtcbiAgcmlnaHQ6IDAuNWVtO1xufVxuLyogTGVmdCBJY29uIElucHV0ICovXG4udWlbY2xhc3MqPVwibGVmdCBpY29uXCJdLmlucHV0ID4gaS5pY29uIHtcbiAgcmlnaHQ6IGF1dG87XG4gIGxlZnQ6IDFweDtcbiAgYm9yZGVyLXJhZGl1czogMC40cmVtIDBlbSAwZW0gMC40cmVtO1xufVxuLnVpW2NsYXNzKj1cImxlZnQgaWNvblwiXS5pbnB1dCA+IGkuY2lyY3VsYXIuaWNvbiB7XG4gIHJpZ2h0OiBhdXRvO1xuICBsZWZ0OiAwLjVlbTtcbn1cbi51aVtjbGFzcyo9XCJsZWZ0IGljb25cIl0uaW5wdXQgPiBpbnB1dCB7XG4gIHBhZGRpbmctbGVmdDogMy4zZW0gIWltcG9ydGFudDtcbiAgcGFkZGluZy1yaWdodDogMS40ZW0gIWltcG9ydGFudDtcbn1cbi8qIEZvY3VzICovXG4udWkuaWNvbi5pbnB1dCA+IGlucHV0OmZvY3VzIH4gaS5pY29uIHtcbiAgb3BhY2l0eTogMTtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgTGFiZWxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEFkamFjZW50IExhYmVsICovXG4udWkubGFiZWxlZC5pbnB1dCA+IC5sYWJlbCB7XG4gIGZsZXg6IDAgMCBhdXRvO1xuICBtYXJnaW46IDA7XG4gIGZvbnQtc2l6ZTogMWVtO1xufVxuLnVpLmxhYmVsZWQuaW5wdXQgPiAubGFiZWw6bm90KC5jb3JuZXIpIHtcbiAgcGFkZGluZy10b3A6IDEuMWVtO1xuICBwYWRkaW5nLWJvdHRvbTogMS4xZW07XG59XG4vKiBSZWd1bGFyIExhYmVsIG9uIExlZnQgKi9cbi51aS5sYWJlbGVkLmlucHV0Om5vdChbY2xhc3MqPVwiY29ybmVyIGxhYmVsZWRcIl0pIC5sYWJlbDpmaXJzdC1jaGlsZCB7XG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwcHg7XG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwcHg7XG59XG4udWkubGFiZWxlZC5pbnB1dDpub3QoW2NsYXNzKj1cImNvcm5lciBsYWJlbGVkXCJdKSAubGFiZWw6Zmlyc3QtY2hpbGQgKyBpbnB1dCB7XG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDBweDtcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMHB4O1xuICBib3JkZXItbGVmdC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG4udWkubGFiZWxlZC5pbnB1dDpub3QoW2NsYXNzKj1cImNvcm5lciBsYWJlbGVkXCJdKSAubGFiZWw6Zmlyc3QtY2hpbGQgKyBpbnB1dDpmb2N1cyB7XG4gIGJvcmRlci1sZWZ0LWNvbG9yOiAjODVCN0Q5O1xufVxuLyogUmVndWxhciBMYWJlbCBvbiBSaWdodCAqL1xuLnVpW2NsYXNzKj1cInJpZ2h0IGxhYmVsZWRcIl0uaW5wdXQgaW5wdXQge1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMHB4ICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwcHggIWltcG9ydGFudDtcbiAgYm9yZGVyLXJpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xufVxuLnVpW2NsYXNzKj1cInJpZ2h0IGxhYmVsZWRcIl0uaW5wdXQgaW5wdXQgKyAubGFiZWwge1xuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwcHg7XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDBweDtcbn1cbi51aVtjbGFzcyo9XCJyaWdodCBsYWJlbGVkXCJdLmlucHV0IGlucHV0OmZvY3VzIHtcbiAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAjODVCN0Q5ICFpbXBvcnRhbnQ7XG59XG4vKiBDb3JuZXIgTGFiZWwgKi9cbi51aS5sYWJlbGVkLmlucHV0IC5jb3JuZXIubGFiZWwge1xuICB0b3A6IDFweDtcbiAgcmlnaHQ6IDFweDtcbiAgZm9udC1zaXplOiAwLjllbTtcbiAgYm9yZGVyLXJhZGl1czogMGVtIDAuNHJlbSAwZW0gMGVtO1xufVxuLyogU3BhY2luZyB3aXRoIGNvcm5lciBsYWJlbCAqL1xuLnVpW2NsYXNzKj1cImNvcm5lciBsYWJlbGVkXCJdOm5vdChbY2xhc3MqPVwibGVmdCBjb3JuZXIgbGFiZWxlZFwiXSkubGFiZWxlZC5pbnB1dCBpbnB1dCB7XG4gIHBhZGRpbmctcmlnaHQ6IDIuNWVtICFpbXBvcnRhbnQ7XG59XG4udWlbY2xhc3MqPVwiY29ybmVyIGxhYmVsZWRcIl0uaWNvbi5pbnB1dDpub3QoW2NsYXNzKj1cImxlZnQgY29ybmVyIGxhYmVsZWRcIl0pID4gaW5wdXQge1xuICBwYWRkaW5nLXJpZ2h0OiAzLjI1ZW0gIWltcG9ydGFudDtcbn1cbi51aVtjbGFzcyo9XCJjb3JuZXIgbGFiZWxlZFwiXS5pY29uLmlucHV0Om5vdChbY2xhc3MqPVwibGVmdCBjb3JuZXIgbGFiZWxlZFwiXSkgPiAuaWNvbiB7XG4gIG1hcmdpbi1yaWdodDogMS4yNWVtO1xufVxuLyogTGVmdCBMYWJlbGVkICovXG4udWlbY2xhc3MqPVwibGVmdCBjb3JuZXIgbGFiZWxlZFwiXS5sYWJlbGVkLmlucHV0IGlucHV0IHtcbiAgcGFkZGluZy1sZWZ0OiAyLjVlbSAhaW1wb3J0YW50O1xufVxuLnVpW2NsYXNzKj1cImxlZnQgY29ybmVyIGxhYmVsZWRcIl0uaWNvbi5pbnB1dCA+IGlucHV0IHtcbiAgcGFkZGluZy1sZWZ0OiAzLjI1ZW0gIWltcG9ydGFudDtcbn1cbi51aVtjbGFzcyo9XCJsZWZ0IGNvcm5lciBsYWJlbGVkXCJdLmljb24uaW5wdXQgPiAuaWNvbiB7XG4gIG1hcmdpbi1sZWZ0OiAxLjI1ZW07XG59XG4vKiBDb3JuZXIgTGFiZWwgUG9zaXRpb24gICovXG4udWkuaW5wdXQgPiAudWkuY29ybmVyLmxhYmVsIHtcbiAgdG9wOiAxcHg7XG4gIHJpZ2h0OiAxcHg7XG59XG4udWkuaW5wdXQgPiAudWkubGVmdC5jb3JuZXIubGFiZWwge1xuICByaWdodDogYXV0bztcbiAgbGVmdDogMXB4O1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3Rpb25cbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkuYWN0aW9uLmlucHV0ID4gLmJ1dHRvbixcbi51aS5hY3Rpb24uaW5wdXQgPiAuYnV0dG9ucyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGZsZXg6IDAgMCBhdXRvO1xufVxuLnVpLmFjdGlvbi5pbnB1dCA+IC5idXR0b24sXG4udWkuYWN0aW9uLmlucHV0ID4gLmJ1dHRvbnMgPiAuYnV0dG9uIHtcbiAgcGFkZGluZy10b3A6IDEuMWVtO1xuICBwYWRkaW5nLWJvdHRvbTogMS4xZW07XG4gIG1hcmdpbjogMDtcbn1cbi8qIEJ1dHRvbiBvbiBSaWdodCAqL1xuLnVpLmFjdGlvbi5pbnB1dDpub3QoW2NsYXNzKj1cImxlZnQgYWN0aW9uXCJdKSA+IGlucHV0IHtcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDBweCAhaW1wb3J0YW50O1xuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMHB4ICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1yaWdodC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbn1cbi51aS5hY3Rpb24uaW5wdXQ6bm90KFtjbGFzcyo9XCJsZWZ0IGFjdGlvblwiXSkgPiAuZHJvcGRvd246bm90KDpmaXJzdC1jaGlsZCksXG4udWkuYWN0aW9uLmlucHV0Om5vdChbY2xhc3MqPVwibGVmdCBhY3Rpb25cIl0pID4gLmJ1dHRvbjpub3QoOmZpcnN0LWNoaWxkKSxcbi51aS5hY3Rpb24uaW5wdXQ6bm90KFtjbGFzcyo9XCJsZWZ0IGFjdGlvblwiXSkgPiAuYnV0dG9uczpub3QoOmZpcnN0LWNoaWxkKSA+IC5idXR0b24ge1xuICBib3JkZXItcmFkaXVzOiAwcHg7XG59XG4udWkuYWN0aW9uLmlucHV0Om5vdChbY2xhc3MqPVwibGVmdCBhY3Rpb25cIl0pID4gLmRyb3Bkb3duOmxhc3QtY2hpbGQsXG4udWkuYWN0aW9uLmlucHV0Om5vdChbY2xhc3MqPVwibGVmdCBhY3Rpb25cIl0pID4gLmJ1dHRvbjpsYXN0LWNoaWxkLFxuLnVpLmFjdGlvbi5pbnB1dDpub3QoW2NsYXNzKj1cImxlZnQgYWN0aW9uXCJdKSA+IC5idXR0b25zOmxhc3QtY2hpbGQgPiAuYnV0dG9uIHtcbiAgYm9yZGVyLXJhZGl1czogMHB4IDAuNHJlbSAwLjRyZW0gMHB4O1xufVxuLyogSW5wdXQgRm9jdXMgKi9cbi51aS5hY3Rpb24uaW5wdXQ6bm90KFtjbGFzcyo9XCJsZWZ0IGFjdGlvblwiXSkgaW5wdXQ6Zm9jdXMge1xuICBib3JkZXItcmlnaHQtY29sb3I6ICM4NUI3RDkgIWltcG9ydGFudDtcbn1cbi8qIEJ1dHRvbiBvbiBMZWZ0ICovXG4udWlbY2xhc3MqPVwibGVmdCBhY3Rpb25cIl0uaW5wdXQgPiBpbnB1dCB7XG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDBweCAhaW1wb3J0YW50O1xuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwcHggIWltcG9ydGFudDtcbiAgYm9yZGVyLWxlZnQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG59XG4udWlbY2xhc3MqPVwibGVmdCBhY3Rpb25cIl0uaW5wdXQgPiAuZHJvcGRvd24sXG4udWlbY2xhc3MqPVwibGVmdCBhY3Rpb25cIl0uaW5wdXQgPiAuYnV0dG9uLFxuLnVpW2NsYXNzKj1cImxlZnQgYWN0aW9uXCJdLmlucHV0ID4gLmJ1dHRvbnMgPiAuYnV0dG9uIHtcbiAgYm9yZGVyLXJhZGl1czogMHB4O1xufVxuLnVpW2NsYXNzKj1cImxlZnQgYWN0aW9uXCJdLmlucHV0ID4gLmRyb3Bkb3duOmZpcnN0LWNoaWxkLFxuLnVpW2NsYXNzKj1cImxlZnQgYWN0aW9uXCJdLmlucHV0ID4gLmJ1dHRvbjpmaXJzdC1jaGlsZCxcbi51aVtjbGFzcyo9XCJsZWZ0IGFjdGlvblwiXS5pbnB1dCA+IC5idXR0b25zOmZpcnN0LWNoaWxkID4gLmJ1dHRvbiB7XG4gIGJvcmRlci1yYWRpdXM6IDAuNHJlbSAwcHggMHB4IDAuNHJlbTtcbn1cbi8qIElucHV0IEZvY3VzICovXG4udWlbY2xhc3MqPVwibGVmdCBhY3Rpb25cIl0uaW5wdXQgPiBpbnB1dDpmb2N1cyB7XG4gIGJvcmRlci1sZWZ0LWNvbG9yOiAjODVCN0Q5ICFpbXBvcnRhbnQ7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSW52ZXJ0ZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTdGFuZGFyZCAqL1xuLnVpLmludmVydGVkLmlucHV0IGlucHV0IHtcbiAgYm9yZGVyOiBub25lO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGbHVpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5mbHVpZC5pbnB1dCB7XG4gIGRpc3BsYXk6IGZsZXg7XG59XG4udWkuZmx1aWQuaW5wdXQgPiBpbnB1dCB7XG4gIHdpZHRoOiAwcHggIWltcG9ydGFudDtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5taW5pLmlucHV0IHtcbiAgZm9udC1zaXplOiAwLjhlbTtcbn1cbi51aS5zbWFsbC5pbnB1dCB7XG4gIGZvbnQtc2l6ZTogMC45ZW07XG59XG4udWkuaW5wdXQge1xuICBmb250LXNpemU6IDFlbTtcbn1cbi51aS5sYXJnZS5pbnB1dCB7XG4gIGZvbnQtc2l6ZTogMS4xZW07XG59XG4udWkuYmlnLmlucHV0IHtcbiAgZm9udC1zaXplOiAxLjNlbTtcbn1cbi51aS5odWdlLmlucHV0IHtcbiAgZm9udC1zaXplOiAxLjRlbTtcbn1cbi51aS5tYXNzaXZlLmlucHV0IHtcbiAgZm9udC1zaXplOiAxLjdlbTtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBUaGVtZSBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiFcbiAqICMgU2VtYW50aWMgVUkgLSBMYWJlbFxuICogaHR0cDovL2dpdGh1Yi5jb20vc2VtYW50aWMtb3JnL3NlbWFudGljLXVpL1xuICpcbiAqXG4gKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2VcbiAqIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVRcbiAqXG4gKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qXG5cbuKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVlyAg4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4pWXICAg4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWXXG7ilZrilZDilZDilojilojilZTilZDilZDilZ3ilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKWiOKWiOKVlyDilojilojilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilZTilZDilZDilZDilZDilZ1cbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4pWU4paI4paI4paI4paI4pWU4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilojilojilojilojilojilZdcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVlOKVkOKVkOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4paI4paI4pWR4pWa4paI4paI4pWU4pWd4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilZrilZDilZDilZDilZDilojilojilZFcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWRIOKVmuKVkOKVnSDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZFcbiAgIOKVmuKVkOKVnSAgIOKVmuKVkOKVnSAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWdICAgICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ1cblxuKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIFRoZW1lIFNlbGVjdGlvblxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFRvIG92ZXJyaWRlIGEgdGhlbWUgZm9yIGFuIGluZGl2aWR1YWwgZWxlbWVudFxuICAgc3BlY2lmeSB0aGVtZSBuYW1lIGJlbG93XG4qL1xuLyogR2xvYmFsICovXG4vKiBFbGVtZW50cyAqL1xuLyogQ29sbGVjdGlvbnMgKi9cbi8qIE1vZHVsZXMgKi9cbi8qIFZpZXdzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgRm9sZGVyc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFBhdGggdG8gdGhlbWUgcGFja2FnZXMgKi9cbi8qIFBhdGggdG8gc2l0ZSBvdmVycmlkZSBmb2xkZXIgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBJbXBvcnQgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBJbXBvcnQgRGlyZWN0aXZlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgVGhlbWVcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgU2l0ZSBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0IHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRvcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogUGFja2FnZWQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZG9ycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBDb21wb25lbnQncyBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kb3JzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFNpdGUgdGhlbWUgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgIFVzZXIgR2xvYmFsIFZhcmlhYmxlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIG1hcnNvIGNvbG9ycyAqL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuIENvbXBvbmVudCBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0ICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIExhYmVsXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRWxlbWVudFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogbWVkaXVtIGlzIG5vdCBAZW1TaXplIGN1c3RvbSB2YWx1ZSByZXF1aXJlZCAqL1xuLyogR3JvdXAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXJ0c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTGluayAqL1xuLyogSWNvbiAqL1xuLyogSW1hZ2UgKi9cbi8qIERldGFpbCAqL1xuLyogRGVsZXRlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgVHlwZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEltYWdlIExhYmVsICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU3RhdGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBIb3ZlciAqL1xuLyogQWN0aXZlICovXG4vKiBBY3RpdmUgSG92ZXIgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgVmFyaWF0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogQmFzaWMgKi9cbi8qIFRhZyAqL1xuLyogQXZvaWRzIGVycm9yIHdpdGggYmFja2dyb3VuZDogaW5oZXJpdDsgb24gYW5pbWF0aW9uICovXG4vKiBSaWJib24gKi9cbi8qIFJvdW5kaW5nIE9mZnNldCBvbiBUcmlhbmdsZSAqL1xuLyogUm91bmRpbmcgT2Zmc2V0IG9uIFRyaWFuZ2xlICovXG4vKiBDb2xvcnMgKi9cbi8qIEF0dGFjaGVkICovXG4vKiBDb3JuZXIgKi9cbi8qIENvcm5lciBUZXh0ICovXG4vKiBIb3Jpem9udGFsICovXG4vKiBDaXJjdWxhciBQYWRkaW5nICovXG4vKiBQb2ludGluZyAqL1xuLyogQmFzaWMgUG9pbnRpbmcgKi9cbi8qIEZsb2F0aW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JvdXBcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNpemluZyAqL1xuLyogUGFja2FnZWQgVGhlbWUgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgTGFiZWxcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbGVtZW50XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBtZWRpdW0gaXMgbm90IEBlbVNpemUgY3VzdG9tIHZhbHVlIHJlcXVpcmVkICovXG4vKiBHcm91cCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhcnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMaW5rICovXG4vKiBJY29uICovXG4vKiBJbWFnZSAqL1xuLyogRGV0YWlsICovXG4vKiBEZWxldGUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBUeXBlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW1hZ2UgTGFiZWwgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTdGF0ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEhvdmVyICovXG4vKiBBY3RpdmUgKi9cbi8qIEFjdGl2ZSBIb3ZlciAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBWYXJpYXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBCYXNpYyAqL1xuLyogVGFnICovXG4vKiBBdm9pZHMgZXJyb3Igd2l0aCBiYWNrZ3JvdW5kOiBpbmhlcml0OyBvbiBhbmltYXRpb24gKi9cbi8qIFJpYmJvbiAqL1xuLyogUm91bmRpbmcgT2Zmc2V0IG9uIFRyaWFuZ2xlICovXG4vKiBSb3VuZGluZyBPZmZzZXQgb24gVHJpYW5nbGUgKi9cbi8qIENvbG9ycyAqL1xuLyogQXR0YWNoZWQgKi9cbi8qIENvcm5lciAqL1xuLyogQ29ybmVyIFRleHQgKi9cbi8qIEhvcml6b250YWwgKi9cbi8qIENpcmN1bGFyIFBhZGRpbmcgKi9cbi8qIFBvaW50aW5nICovXG4vKiBCYXNpYyBQb2ludGluZyAqL1xuLyogRmxvYXRpbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcm91cFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2l6aW5nICovXG4vKiBTaXRlIFRoZW1lICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgIFVzZXIgVmFyaWFibGUgT3ZlcnJpZGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBNaXgtaW5zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBPdmVycmlkZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRW5kIENvbmZpZyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIExhYmVsXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLnVpLmxhYmVsIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBsaW5lLWhlaWdodDogMTtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xuICBtYXJnaW46IDBlbSAwLjJlbTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0U4RThFODtcbiAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbiAgcGFkZGluZzogMC41ODMzZW0gMC44MzNlbTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC42KTtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBib3JkZXI6IDBweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXJhZGl1czogMC40cmVtO1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMXMgZWFzZTtcbn1cbi51aS5sYWJlbDpmaXJzdC1jaGlsZCB7XG4gIG1hcmdpbi1sZWZ0OiAwZW07XG59XG4udWkubGFiZWw6bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1yaWdodDogMGVtO1xufVxuLyogTGluayAqL1xuYS51aS5sYWJlbCB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbi8qIEluc2lkZSBMaW5rICovXG4udWkubGFiZWwgPiBhIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBjb2xvcjogaW5oZXJpdDtcbiAgb3BhY2l0eTogMC41O1xuICB0cmFuc2l0aW9uOiAwLjFzIG9wYWNpdHkgZWFzZTtcbn1cbi51aS5sYWJlbCA+IGE6aG92ZXIge1xuICBvcGFjaXR5OiAxO1xufVxuLyogSW1hZ2UgKi9cbi51aS5sYWJlbCA+IGltZyB7XG4gIHdpZHRoOiBhdXRvICFpbXBvcnRhbnQ7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIGhlaWdodDogMi4xNjY2ZW0gIWltcG9ydGFudDtcbn1cbi8qIEljb24gKi9cbi51aS5sYWJlbCA+IC5pY29uIHtcbiAgd2lkdGg6IGF1dG87XG4gIG1hcmdpbjogMGVtIDAuNzVlbSAwZW0gMGVtO1xufVxuLyogRGV0YWlsICovXG4udWkubGFiZWwgPiAuZGV0YWlsIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgbWFyZ2luLWxlZnQ6IDFlbTtcbiAgb3BhY2l0eTogMC44O1xufVxuLnVpLmxhYmVsID4gLmRldGFpbCAuaWNvbiB7XG4gIG1hcmdpbjogMGVtIDAuMjVlbSAwZW0gMGVtO1xufVxuLyogUmVtb3ZhYmxlIGxhYmVsICovXG4udWkubGFiZWwgPiAuY2xvc2UuaWNvbixcbi51aS5sYWJlbCA+IC5kZWxldGUuaWNvbiB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgbWFyZ2luLXJpZ2h0OiAwZW07XG4gIG1hcmdpbi1sZWZ0OiAwLjVlbTtcbiAgZm9udC1zaXplOiAwLjllbTtcbiAgb3BhY2l0eTogMC41O1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMXMgZWFzZTtcbn1cbi51aS5sYWJlbCA+IC5kZWxldGUuaWNvbjpob3ZlciB7XG4gIG9wYWNpdHk6IDE7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBHcm91cFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmxhYmVscyA+IC5sYWJlbCB7XG4gIG1hcmdpbjogMGVtIDAuNWVtIDAuNWVtIDBlbTtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIENvdXBsaW5nXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkuaGVhZGVyID4gLnVpLmxhYmVsIHtcbiAgbWFyZ2luLXRvcDogLTAuMjkxNjVlbTtcbn1cbi8qIFJlbW92ZSBib3JkZXIgcmFkaXVzIG9uIGF0dGFjaGVkIHNlZ21lbnQgKi9cbi51aS5hdHRhY2hlZC5zZWdtZW50ID4gLnVpLnRvcC5sZWZ0LmF0dGFjaGVkLmxhYmVsLFxuLnVpLmJvdHRvbS5hdHRhY2hlZC5zZWdtZW50ID4gLnVpLnRvcC5sZWZ0LmF0dGFjaGVkLmxhYmVsIHtcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMDtcbn1cbi51aS5hdHRhY2hlZC5zZWdtZW50ID4gLnVpLnRvcC5yaWdodC5hdHRhY2hlZC5sYWJlbCxcbi51aS5ib3R0b20uYXR0YWNoZWQuc2VnbWVudCA+IC51aS50b3AucmlnaHQuYXR0YWNoZWQubGFiZWwge1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMDtcbn1cbi51aS50b3AuYXR0YWNoZWQuc2VnbWVudCA+IC51aS5ib3R0b20ubGVmdC5hdHRhY2hlZC5sYWJlbCB7XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDA7XG59XG4udWkudG9wLmF0dGFjaGVkLnNlZ21lbnQgPiAudWkuYm90dG9tLnJpZ2h0LmF0dGFjaGVkLmxhYmVsIHtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDA7XG59XG4vKiBQYWRkaW5nIG9uIG5leHQgY29udGVudCBhZnRlciBhIGxhYmVsICovXG4udWkudG9wLmF0dGFjaGVkLmxhYmVsOmZpcnN0LWNoaWxkICsgOm5vdCguYXR0YWNoZWQpLFxuLnVpLnRvcC5hdHRhY2hlZC5sYWJlbCArIFtjbGFzcyo9XCJyaWdodCBmbG9hdGVkXCJdICsgKiB7XG4gIG1hcmdpbi10b3A6IDJyZW0gIWltcG9ydGFudDtcbn1cbi51aS5ib3R0b20uYXR0YWNoZWQubGFiZWw6Zmlyc3QtY2hpbGQgfiA6bGFzdC1jaGlsZDpub3QoLmF0dGFjaGVkKSB7XG4gIG1hcmdpbi10b3A6IDBlbTtcbiAgbWFyZ2luLWJvdHRvbTogMnJlbSAhaW1wb3J0YW50O1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBUeXBlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi51aS5pbWFnZS5sYWJlbCB7XG4gIHdpZHRoOiBhdXRvICFpbXBvcnRhbnQ7XG4gIG1hcmdpbi10b3A6IDBlbTtcbiAgbWFyZ2luLWJvdHRvbTogMGVtO1xuICBtYXgtd2lkdGg6IDk5OTlweDtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgYmFja2dyb3VuZDogI0U4RThFODtcbiAgcGFkZGluZzogMC41ODMzZW0gMC44MzNlbSAwLjU4MzNlbSAwLjVlbTtcbiAgYm9yZGVyLXJhZGl1czogMC40cmVtO1xuICBib3gtc2hhZG93OiBub25lO1xufVxuLnVpLmltYWdlLmxhYmVsIGltZyB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgaGVpZ2h0OiAyLjE2NjZlbTtcbiAgbWFyZ2luOiAtMC41ODMzZW0gMC41ZW0gLTAuNTgzM2VtIC0wLjVlbTtcbiAgYm9yZGVyLXJhZGl1czogMC40cmVtIDBlbSAwZW0gMC40cmVtO1xufVxuLnVpLmltYWdlLmxhYmVsIC5kZXRhaWwge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMSk7XG4gIG1hcmdpbjogLTAuNTgzM2VtIC0wLjgzM2VtIC0wLjU4MzNlbSAwLjVlbTtcbiAgcGFkZGluZzogMC41ODMzZW0gMC44MzNlbTtcbiAgYm9yZGVyLXJhZGl1czogMGVtIDAuNHJlbSAwLjRyZW0gMGVtO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgICBUYWdcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS50YWcubGFiZWxzIC5sYWJlbCxcbi51aS50YWcubGFiZWwge1xuICBtYXJnaW4tbGVmdDogMWVtO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHBhZGRpbmctbGVmdDogMS41ZW07XG4gIHBhZGRpbmctcmlnaHQ6IDEuNWVtO1xuICBib3JkZXItcmFkaXVzOiAwZW0gMC40cmVtIDAuNHJlbSAwZW07XG4gIHRyYW5zaXRpb246IG5vbmU7XG59XG4udWkudGFnLmxhYmVscyAubGFiZWw6YmVmb3JlLFxuLnVpLnRhZy5sYWJlbDpiZWZvcmUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSB0cmFuc2xhdGVYKDUwJSkgcm90YXRlKC00NWRlZyk7XG4gIHRvcDogNTAlO1xuICByaWdodDogMTAwJTtcbiAgY29udGVudDogJyc7XG4gIGJhY2tncm91bmQtY29sb3I6IGluaGVyaXQ7XG4gIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG4gIHdpZHRoOiAxLjU2ZW07XG4gIGhlaWdodDogMS41NmVtO1xuICB0cmFuc2l0aW9uOiBub25lO1xufVxuLnVpLnRhZy5sYWJlbHMgLmxhYmVsOmFmdGVyLFxuLnVpLnRhZy5sYWJlbDphZnRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgY29udGVudDogJyc7XG4gIHRvcDogNTAlO1xuICBsZWZ0OiAtMC4yNWVtO1xuICBtYXJnaW4tdG9wOiAtMC4yNWVtO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiAwLjVlbTtcbiAgaGVpZ2h0OiAwLjVlbTtcbiAgYm94LXNoYWRvdzogMCAtMXB4IDFweCAwIHJnYmEoMCwgMCwgMCwgMC4zKTtcbiAgYm9yZGVyLXJhZGl1czogNTAwcmVtO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQ29ybmVyIExhYmVsXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkuY29ybmVyLmxhYmVsIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDBlbTtcbiAgcmlnaHQ6IDBlbTtcbiAgbWFyZ2luOiAwZW07XG4gIHBhZGRpbmc6IDBlbTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBib3JkZXItY29sb3I6ICNFOEU4RTg7XG4gIHdpZHRoOiA0ZW07XG4gIGhlaWdodDogNGVtO1xuICB6LWluZGV4OiAxO1xuICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMC4xcyBlYXNlO1xufVxuLyogSWNvbiBMYWJlbCAqL1xuLnVpLmNvcm5lci5sYWJlbCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG59XG4udWkuY29ybmVyLmxhYmVsOmFmdGVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBjb250ZW50OiBcIlwiO1xuICByaWdodDogMGVtO1xuICB0b3A6IDBlbTtcbiAgei1pbmRleDogLTE7XG4gIHdpZHRoOiAwZW07XG4gIGhlaWdodDogMGVtO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICBib3JkZXItdG9wOiAwZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1yaWdodDogNGVtIHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItYm90dG9tOiA0ZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1sZWZ0OiAwZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1yaWdodC1jb2xvcjogaW5oZXJpdDtcbiAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIDAuMXMgZWFzZTtcbn1cbi51aS5jb3JuZXIubGFiZWwgLmljb24ge1xuICBjdXJzb3I6IGRlZmF1bHQ7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdG9wOiAwLjllbTtcbiAgbGVmdDogMS4xZW07XG4gIGZvbnQtc2l6ZTogMS4xZW07XG4gIG1hcmdpbjogMGVtO1xufVxuLyogTGVmdCBDb3JuZXIgKi9cbi51aS5sZWZ0LmNvcm5lci5sYWJlbCxcbi51aS5sZWZ0LmNvcm5lci5sYWJlbDphZnRlciB7XG4gIHJpZ2h0OiBhdXRvO1xuICBsZWZ0OiAwZW07XG59XG4udWkubGVmdC5jb3JuZXIubGFiZWw6YWZ0ZXIge1xuICBib3JkZXItdG9wOiA0ZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1yaWdodDogNGVtIHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItYm90dG9tOiAwZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1sZWZ0OiAwZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci10b3AtY29sb3I6IGluaGVyaXQ7XG59XG4udWkubGVmdC5jb3JuZXIubGFiZWwgLmljb24ge1xuICBsZWZ0OiAtMS4xZW07XG59XG4vKiBTZWdtZW50ICovXG4udWkuc2VnbWVudCA+IC51aS5jb3JuZXIubGFiZWwge1xuICB0b3A6IC0xcHg7XG4gIHJpZ2h0OiAtMXB4O1xufVxuLnVpLnNlZ21lbnQgPiAudWkubGVmdC5jb3JuZXIubGFiZWwge1xuICByaWdodDogYXV0bztcbiAgbGVmdDogLTFweDtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIFJpYmJvblxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLnJpYmJvbi5sYWJlbCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWFyZ2luOiAwZW07XG4gIG1pbi13aWR0aDogbWF4LWNvbnRlbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDBlbSAwLjRyZW0gMC40cmVtIDBlbTtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMTUpO1xufVxuLnVpLnJpYmJvbi5sYWJlbDphZnRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgY29udGVudDogJyc7XG4gIHRvcDogMTAwJTtcbiAgbGVmdDogMCU7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1zdHlsZTogc29saWQ7XG4gIGJvcmRlci13aWR0aDogMGVtIDEuMmVtIDEuMmVtIDBlbTtcbiAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXJpZ2h0LWNvbG9yOiBpbmhlcml0O1xuICB3aWR0aDogMGVtO1xuICBoZWlnaHQ6IDBlbTtcbn1cbi8qIFBvc2l0aW9uaW5nICovXG4udWkucmliYm9uLmxhYmVsIHtcbiAgbGVmdDogY2FsYygtMXJlbSAtIDEuMmVtKTtcbiAgbWFyZ2luLXJpZ2h0OiAtMS4yZW07XG4gIHBhZGRpbmctbGVmdDogY2FsYygxcmVtICsgMS4yZW0pO1xuICBwYWRkaW5nLXJpZ2h0OiAxLjJlbTtcbn1cbi51aVtjbGFzcyo9XCJyaWdodCByaWJib25cIl0ubGFiZWwge1xuICBsZWZ0OiBjYWxjKDEwMCUgKyAxcmVtICsgMS4yZW0pO1xuICBwYWRkaW5nLWxlZnQ6IDEuMmVtO1xuICBwYWRkaW5nLXJpZ2h0OiBjYWxjKDFyZW0gKyAxLjJlbSk7XG59XG4vKiBSaWdodCBSaWJib24gKi9cbi51aVtjbGFzcyo9XCJyaWdodCByaWJib25cIl0ubGFiZWwge1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEwMCUpO1xuICBib3JkZXItcmFkaXVzOiAwLjRyZW0gMGVtIDBlbSAwLjRyZW07XG59XG4udWlbY2xhc3MqPVwicmlnaHQgcmliYm9uXCJdLmxhYmVsOmFmdGVyIHtcbiAgbGVmdDogYXV0bztcbiAgcmlnaHQ6IDAlO1xuICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICBib3JkZXItd2lkdGg6IDEuMmVtIDEuMmVtIDBlbSAwZW07XG4gIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci10b3AtY29sb3I6IGluaGVyaXQ7XG59XG4vKiBJbnNpZGUgVGFibGUgKi9cbi51aS5pbWFnZSA+IC5yaWJib24ubGFiZWwsXG4udWkuY2FyZCAuaW1hZ2UgPiAucmliYm9uLmxhYmVsIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDFyZW07XG59XG4udWkuY2FyZCAuaW1hZ2UgPiAudWkucmliYm9uLmxhYmVsLFxuLnVpLmltYWdlID4gLnVpLnJpYmJvbi5sYWJlbCB7XG4gIGxlZnQ6IGNhbGMoMC4wNXJlbSAtIDEuMmVtKTtcbn1cbi51aS5jYXJkIC5pbWFnZSA+IC51aVtjbGFzcyo9XCJyaWdodCByaWJib25cIl0ubGFiZWwsXG4udWkuaW1hZ2UgPiAudWlbY2xhc3MqPVwicmlnaHQgcmliYm9uXCJdLmxhYmVsIHtcbiAgbGVmdDogY2FsYygxMDAlICsgLTAuMDVyZW0gKyAxLjJlbSk7XG4gIHBhZGRpbmctbGVmdDogMC44MzNlbTtcbn1cbi8qIEluc2lkZSBUYWJsZSAqL1xuLnVpLnRhYmxlIHRkID4gLnVpLnJpYmJvbi5sYWJlbCB7XG4gIGxlZnQ6IGNhbGMoLTAuOGVtIC0gMS4yZW0pO1xufVxuLnVpLnRhYmxlIHRkID4gLnVpW2NsYXNzKj1cInJpZ2h0IHJpYmJvblwiXS5sYWJlbCB7XG4gIGxlZnQ6IGNhbGMoMTAwJSArIDAuOGVtICsgMS4yZW0pO1xuICBwYWRkaW5nLWxlZnQ6IDAuODMzZW07XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEF0dGFjaGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWlbY2xhc3MqPVwidG9wIGF0dGFjaGVkXCJdLmxhYmVsLFxuLnVpLmF0dGFjaGVkLmxhYmVsIHtcbiAgd2lkdGg6IDEwMCU7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbWFyZ2luOiAwZW07XG4gIHRvcDogMGVtO1xuICBsZWZ0OiAwZW07XG4gIHBhZGRpbmc6IDAuNzVlbSAxZW07XG4gIGJvcmRlci1yYWRpdXM6IDAuM3JlbSAwLjNyZW0gMGVtIDBlbTtcbn1cbi51aVtjbGFzcyo9XCJib3R0b20gYXR0YWNoZWRcIl0ubGFiZWwge1xuICB0b3A6IGF1dG87XG4gIGJvdHRvbTogMGVtO1xuICBib3JkZXItcmFkaXVzOiAwZW0gMGVtIDAuM3JlbSAwLjNyZW07XG59XG4udWlbY2xhc3MqPVwidG9wIGxlZnQgYXR0YWNoZWRcIl0ubGFiZWwge1xuICB3aWR0aDogYXV0bztcbiAgbWFyZ2luLXRvcDogMGVtICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDAuM3JlbSAwZW0gMC40cmVtIDBlbTtcbn1cbi51aVtjbGFzcyo9XCJ0b3AgcmlnaHQgYXR0YWNoZWRcIl0ubGFiZWwge1xuICB3aWR0aDogYXV0bztcbiAgbGVmdDogYXV0bztcbiAgcmlnaHQ6IDBlbTtcbiAgYm9yZGVyLXJhZGl1czogMGVtIDAuM3JlbSAwZW0gMC40cmVtO1xufVxuLnVpW2NsYXNzKj1cImJvdHRvbSBsZWZ0IGF0dGFjaGVkXCJdLmxhYmVsIHtcbiAgd2lkdGg6IGF1dG87XG4gIHRvcDogYXV0bztcbiAgYm90dG9tOiAwZW07XG4gIGJvcmRlci1yYWRpdXM6IDBlbSAwLjRyZW0gMGVtIDAuM3JlbTtcbn1cbi51aVtjbGFzcyo9XCJib3R0b20gcmlnaHQgYXR0YWNoZWRcIl0ubGFiZWwge1xuICB0b3A6IGF1dG87XG4gIGJvdHRvbTogMGVtO1xuICBsZWZ0OiBhdXRvO1xuICByaWdodDogMGVtO1xuICB3aWR0aDogYXV0bztcbiAgYm9yZGVyLXJhZGl1czogMC40cmVtIDBlbSAwLjNyZW0gMGVtO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkubGFiZWwuZGlzYWJsZWQge1xuICBvcGFjaXR5OiAwLjU7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbmEudWkubGFiZWxzIC5sYWJlbDpob3ZlcixcbmEudWkubGFiZWw6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRTBFMEUwO1xuICBib3JkZXItY29sb3I6ICNFMEUwRTA7XG4gIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuOCk7XG59XG4udWkubGFiZWxzIGEubGFiZWw6aG92ZXI6YmVmb3JlLFxuYS51aS5sYWJlbDpob3ZlcjpiZWZvcmUge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjgpO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmFjdGl2ZS5sYWJlbCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNEMEQwRDA7XG4gIGJvcmRlci1jb2xvcjogI0QwRDBEMDtcbiAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC45NSk7XG59XG4udWkuYWN0aXZlLmxhYmVsOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNEMEQwRDA7XG4gIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuOTUpO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFjdGl2ZSBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuYS51aS5sYWJlbHMgLmFjdGl2ZS5sYWJlbDpob3ZlcixcbmEudWkuYWN0aXZlLmxhYmVsOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0M4QzhDODtcbiAgYm9yZGVyLWNvbG9yOiAjQzhDOEM4O1xuICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjk1KTtcbn1cbi51aS5sYWJlbHMgYS5hY3RpdmUubGFiZWw6QWN0aXZlSG92ZXI6YmVmb3JlLFxuYS51aS5hY3RpdmUubGFiZWw6QWN0aXZlSG92ZXI6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0M4QzhDODtcbiAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC45NSk7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFZpc2libGVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5sYWJlbHMudmlzaWJsZSAubGFiZWwsXG4udWkubGFiZWwudmlzaWJsZTpub3QoLmRyb3Bkb3duKSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jayAhaW1wb3J0YW50O1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBIaWRkZW5cbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5sYWJlbHMuaGlkZGVuIC5sYWJlbCxcbi51aS5sYWJlbC5oaWRkZW4ge1xuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBWYXJpYXRpb25zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSBSZWQgLS0tKi9cbi51aS5yZWQubGFiZWxzIC5sYWJlbCxcbi51aS5yZWQubGFiZWwge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGUzYTNlICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1jb2xvcjogI2RlM2EzZSAhaW1wb3J0YW50O1xuICBjb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xufVxuLyogTGluayAqL1xuLnVpLnJlZC5sYWJlbHMgLmxhYmVsOmhvdmVyLFxuYS51aS5yZWQubGFiZWw6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTMxYjIwICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1jb2xvcjogI2UzMWIyMCAhaW1wb3J0YW50O1xuICBjb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xufVxuLyogQ29ybmVyICovXG4udWkucmVkLmNvcm5lci5sYWJlbCxcbi51aS5yZWQuY29ybmVyLmxhYmVsOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbn1cbi8qIFJpYmJvbiAqL1xuLnVpLnJlZC5yaWJib24ubGFiZWwge1xuICBib3JkZXItY29sb3I6ICNjNDIxMjUgIWltcG9ydGFudDtcbn1cbi8qIEJhc2ljICovXG4udWkuYmFzaWMucmVkLmxhYmVsIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xuICBjb2xvcjogI2RlM2EzZSAhaW1wb3J0YW50O1xuICBib3JkZXItY29sb3I6ICNkZTNhM2UgIWltcG9ydGFudDtcbn1cbi51aS5iYXNpYy5yZWQubGFiZWxzIGEubGFiZWw6aG92ZXIsXG5hLnVpLmJhc2ljLnJlZC5sYWJlbDpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcbiAgY29sb3I6ICNlMzFiMjAgIWltcG9ydGFudDtcbiAgYm9yZGVyLWNvbG9yOiAjZTMxYjIwICFpbXBvcnRhbnQ7XG59XG4vKi0tLSBPcmFuZ2UgLS0tKi9cbi51aS5vcmFuZ2UubGFiZWxzIC5sYWJlbCxcbi51aS5vcmFuZ2UubGFiZWwge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmY5NTMzICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1jb2xvcjogI2ZmOTUzMyAhaW1wb3J0YW50O1xuICBjb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xufVxuLyogTGluayAqL1xuLnVpLm9yYW5nZS5sYWJlbHMgLmxhYmVsOmhvdmVyLFxuYS51aS5vcmFuZ2UubGFiZWw6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmY4ODE5ICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1jb2xvcjogI2ZmODgxOSAhaW1wb3J0YW50O1xuICBjb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xufVxuLyogQ29ybmVyICovXG4udWkub3JhbmdlLmNvcm5lci5sYWJlbCxcbi51aS5vcmFuZ2UuY29ybmVyLmxhYmVsOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbn1cbi8qIFJpYmJvbiAqL1xuLnVpLm9yYW5nZS5yaWJib24ubGFiZWwge1xuICBib3JkZXItY29sb3I6ICNmZjdiMDAgIWltcG9ydGFudDtcbn1cbi8qIEJhc2ljICovXG4udWkuYmFzaWMub3JhbmdlLmxhYmVsIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xuICBjb2xvcjogI2ZmOTUzMyAhaW1wb3J0YW50O1xuICBib3JkZXItY29sb3I6ICNmZjk1MzMgIWltcG9ydGFudDtcbn1cbi51aS5iYXNpYy5vcmFuZ2UubGFiZWxzIGEubGFiZWw6aG92ZXIsXG5hLnVpLmJhc2ljLm9yYW5nZS5sYWJlbDpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcbiAgY29sb3I6ICNmZjg4MTkgIWltcG9ydGFudDtcbiAgYm9yZGVyLWNvbG9yOiAjZmY4ODE5ICFpbXBvcnRhbnQ7XG59XG4vKi0tLSBZZWxsb3cgLS0tKi9cbi51aS55ZWxsb3cubGFiZWxzIC5sYWJlbCxcbi51aS55ZWxsb3cubGFiZWwge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkJCRDA4ICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1jb2xvcjogI0ZCQkQwOCAhaW1wb3J0YW50O1xuICBjb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xufVxuLyogTGluayAqL1xuLnVpLnllbGxvdy5sYWJlbHMgLmxhYmVsOmhvdmVyLFxuYS51aS55ZWxsb3cubGFiZWw6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWFhZTAwICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1jb2xvcjogI2VhYWUwMCAhaW1wb3J0YW50O1xuICBjb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xufVxuLyogQ29ybmVyICovXG4udWkueWVsbG93LmNvcm5lci5sYWJlbCxcbi51aS55ZWxsb3cuY29ybmVyLmxhYmVsOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbn1cbi8qIFJpYmJvbiAqL1xuLnVpLnllbGxvdy5yaWJib24ubGFiZWwge1xuICBib3JkZXItY29sb3I6ICNjZDk5MDMgIWltcG9ydGFudDtcbn1cbi8qIEJhc2ljICovXG4udWkuYmFzaWMueWVsbG93LmxhYmVsIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xuICBjb2xvcjogI0ZCQkQwOCAhaW1wb3J0YW50O1xuICBib3JkZXItY29sb3I6ICNGQkJEMDggIWltcG9ydGFudDtcbn1cbi51aS5iYXNpYy55ZWxsb3cubGFiZWxzIGEubGFiZWw6aG92ZXIsXG5hLnVpLmJhc2ljLnllbGxvdy5sYWJlbDpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcbiAgY29sb3I6ICNlYWFlMDAgIWltcG9ydGFudDtcbiAgYm9yZGVyLWNvbG9yOiAjZWFhZTAwICFpbXBvcnRhbnQ7XG59XG4vKi0tLSBPbGl2ZSAtLS0qL1xuLnVpLm9saXZlLmxhYmVscyAubGFiZWwsXG4udWkub2xpdmUubGFiZWwge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjQjVDQzE4ICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1jb2xvcjogI0I1Q0MxOCAhaW1wb3J0YW50O1xuICBjb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xufVxuLyogTGluayAqL1xuLnVpLm9saXZlLmxhYmVscyAubGFiZWw6aG92ZXIsXG5hLnVpLm9saXZlLmxhYmVsOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2E3YmQwZCAhaW1wb3J0YW50O1xuICBib3JkZXItY29sb3I6ICNhN2JkMGQgIWltcG9ydGFudDtcbiAgY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcbn1cbi8qIENvcm5lciAqL1xuLnVpLm9saXZlLmNvcm5lci5sYWJlbCxcbi51aS5vbGl2ZS5jb3JuZXIubGFiZWw6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xufVxuLyogUmliYm9uICovXG4udWkub2xpdmUucmliYm9uLmxhYmVsIHtcbiAgYm9yZGVyLWNvbG9yOiAjMTI3OTI0ICFpbXBvcnRhbnQ7XG59XG4vKiBCYXNpYyAqL1xuLnVpLmJhc2ljLm9saXZlLmxhYmVsIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xuICBjb2xvcjogI0I1Q0MxOCAhaW1wb3J0YW50O1xuICBib3JkZXItY29sb3I6ICNCNUNDMTggIWltcG9ydGFudDtcbn1cbi51aS5iYXNpYy5vbGl2ZS5sYWJlbHMgYS5sYWJlbDpob3ZlcixcbmEudWkuYmFzaWMub2xpdmUubGFiZWw6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjYTdiZDBkICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1jb2xvcjogI2E3YmQwZCAhaW1wb3J0YW50O1xufVxuLyotLS0gR3JlZW4gLS0tKi9cbi51aS5ncmVlbi5sYWJlbHMgLmxhYmVsLFxuLnVpLmdyZWVuLmxhYmVsIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzE5YTUzMSAhaW1wb3J0YW50O1xuICBib3JkZXItY29sb3I6ICMxOWE1MzEgIWltcG9ydGFudDtcbiAgY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcbn1cbi8qIExpbmsgKi9cbi51aS5ncmVlbi5sYWJlbHMgLmxhYmVsOmhvdmVyLFxuYS51aS5ncmVlbi5sYWJlbDpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxMDk1MjYgIWltcG9ydGFudDtcbiAgYm9yZGVyLWNvbG9yOiAjMTA5NTI2ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG59XG4vKiBDb3JuZXIgKi9cbi51aS5ncmVlbi5jb3JuZXIubGFiZWwsXG4udWkuZ3JlZW4uY29ybmVyLmxhYmVsOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbn1cbi8qIFJpYmJvbiAqL1xuLnVpLmdyZWVuLnJpYmJvbi5sYWJlbCB7XG4gIGJvcmRlci1jb2xvcjogIzEyNzkyNCAhaW1wb3J0YW50O1xufVxuLyogQmFzaWMgKi9cbi51aS5iYXNpYy5ncmVlbi5sYWJlbCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcbiAgY29sb3I6ICMxOWE1MzEgIWltcG9ydGFudDtcbiAgYm9yZGVyLWNvbG9yOiAjMTlhNTMxICFpbXBvcnRhbnQ7XG59XG4udWkuYmFzaWMuZ3JlZW4ubGFiZWxzIGEubGFiZWw6aG92ZXIsXG5hLnVpLmJhc2ljLmdyZWVuLmxhYmVsOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xuICBjb2xvcjogIzEwOTUyNiAhaW1wb3J0YW50O1xuICBib3JkZXItY29sb3I6ICMxMDk1MjYgIWltcG9ydGFudDtcbn1cbi8qLS0tIFRlYWwgLS0tKi9cbi51aS50ZWFsLmxhYmVscyAubGFiZWwsXG4udWkudGVhbC5sYWJlbCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMEI1QUQgIWltcG9ydGFudDtcbiAgYm9yZGVyLWNvbG9yOiAjMDBCNUFEICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG59XG4vKiBMaW5rICovXG4udWkudGVhbC5sYWJlbHMgLmxhYmVsOmhvdmVyLFxuYS51aS50ZWFsLmxhYmVsOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwOWM5NSAhaW1wb3J0YW50O1xuICBib3JkZXItY29sb3I6ICMwMDljOTUgIWltcG9ydGFudDtcbiAgY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcbn1cbi8qIENvcm5lciAqL1xuLnVpLnRlYWwuY29ybmVyLmxhYmVsLFxuLnVpLnRlYWwuY29ybmVyLmxhYmVsOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbn1cbi8qIFJpYmJvbiAqL1xuLnVpLnRlYWwucmliYm9uLmxhYmVsIHtcbiAgYm9yZGVyLWNvbG9yOiAjMDA4MjdjICFpbXBvcnRhbnQ7XG59XG4vKiBCYXNpYyAqL1xuLnVpLmJhc2ljLnRlYWwubGFiZWwge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjMDBCNUFEICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1jb2xvcjogIzAwQjVBRCAhaW1wb3J0YW50O1xufVxuLnVpLmJhc2ljLnRlYWwubGFiZWxzIGEubGFiZWw6aG92ZXIsXG5hLnVpLmJhc2ljLnRlYWwubGFiZWw6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjMDA5Yzk1ICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1jb2xvcjogIzAwOWM5NSAhaW1wb3J0YW50O1xufVxuLyotLS0gQmx1ZSAtLS0qL1xuLnVpLmJsdWUubGFiZWxzIC5sYWJlbCxcbi51aS5ibHVlLmxhYmVsIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzNmNTFiNSAhaW1wb3J0YW50O1xuICBib3JkZXItY29sb3I6ICMzZjUxYjUgIWltcG9ydGFudDtcbiAgY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcbn1cbi8qIExpbmsgKi9cbi51aS5ibHVlLmxhYmVscyAubGFiZWw6aG92ZXIsXG5hLnVpLmJsdWUubGFiZWw6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzM0NWE3ICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1jb2xvcjogIzMzNDVhNyAhaW1wb3J0YW50O1xuICBjb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xufVxuLyogQ29ybmVyICovXG4udWkuYmx1ZS5jb3JuZXIubGFiZWwsXG4udWkuYmx1ZS5jb3JuZXIubGFiZWw6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xufVxuLyogUmliYm9uICovXG4udWkuYmx1ZS5yaWJib24ubGFiZWwge1xuICBib3JkZXItY29sb3I6ICMzMjQwOGYgIWltcG9ydGFudDtcbn1cbi8qIEJhc2ljICovXG4udWkuYmFzaWMuYmx1ZS5sYWJlbCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcbiAgY29sb3I6ICMzZjUxYjUgIWltcG9ydGFudDtcbiAgYm9yZGVyLWNvbG9yOiAjM2Y1MWI1ICFpbXBvcnRhbnQ7XG59XG4udWkuYmFzaWMuYmx1ZS5sYWJlbHMgYS5sYWJlbDpob3ZlcixcbmEudWkuYmFzaWMuYmx1ZS5sYWJlbDpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcbiAgY29sb3I6ICMzMzQ1YTcgIWltcG9ydGFudDtcbiAgYm9yZGVyLWNvbG9yOiAjMzM0NWE3ICFpbXBvcnRhbnQ7XG59XG4vKi0tLSBWaW9sZXQgLS0tKi9cbi51aS52aW9sZXQubGFiZWxzIC5sYWJlbCxcbi51aS52aW9sZXQubGFiZWwge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNjQzNUM5ICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1jb2xvcjogIzY0MzVDOSAhaW1wb3J0YW50O1xuICBjb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xufVxuLyogTGluayAqL1xuLnVpLnZpb2xldC5sYWJlbHMgLmxhYmVsOmhvdmVyLFxuYS51aS52aW9sZXQubGFiZWw6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTgyOWJiICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1jb2xvcjogIzU4MjliYiAhaW1wb3J0YW50O1xuICBjb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xufVxuLyogQ29ybmVyICovXG4udWkudmlvbGV0LmNvcm5lci5sYWJlbCxcbi51aS52aW9sZXQuY29ybmVyLmxhYmVsOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbn1cbi8qIFJpYmJvbiAqL1xuLnVpLnZpb2xldC5yaWJib24ubGFiZWwge1xuICBib3JkZXItY29sb3I6ICM1MDJhYTEgIWltcG9ydGFudDtcbn1cbi8qIEJhc2ljICovXG4udWkuYmFzaWMudmlvbGV0LmxhYmVsIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xuICBjb2xvcjogIzY0MzVDOSAhaW1wb3J0YW50O1xuICBib3JkZXItY29sb3I6ICM2NDM1QzkgIWltcG9ydGFudDtcbn1cbi51aS5iYXNpYy52aW9sZXQubGFiZWxzIGEubGFiZWw6aG92ZXIsXG5hLnVpLmJhc2ljLnZpb2xldC5sYWJlbDpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcbiAgY29sb3I6ICM1ODI5YmIgIWltcG9ydGFudDtcbiAgYm9yZGVyLWNvbG9yOiAjNTgyOWJiICFpbXBvcnRhbnQ7XG59XG4vKi0tLSBQdXJwbGUgLS0tKi9cbi51aS5wdXJwbGUubGFiZWxzIC5sYWJlbCxcbi51aS5wdXJwbGUubGFiZWwge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjQTMzM0M4ICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1jb2xvcjogI0EzMzNDOCAhaW1wb3J0YW50O1xuICBjb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xufVxuLyogTGluayAqL1xuLnVpLnB1cnBsZS5sYWJlbHMgLmxhYmVsOmhvdmVyLFxuYS51aS5wdXJwbGUubGFiZWw6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOTYyN2JhICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1jb2xvcjogIzk2MjdiYSAhaW1wb3J0YW50O1xuICBjb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xufVxuLyogQ29ybmVyICovXG4udWkucHVycGxlLmNvcm5lci5sYWJlbCxcbi51aS5wdXJwbGUuY29ybmVyLmxhYmVsOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbn1cbi8qIFJpYmJvbiAqL1xuLnVpLnB1cnBsZS5yaWJib24ubGFiZWwge1xuICBib3JkZXItY29sb3I6ICM4MjI5OWYgIWltcG9ydGFudDtcbn1cbi8qIEJhc2ljICovXG4udWkuYmFzaWMucHVycGxlLmxhYmVsIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xuICBjb2xvcjogI0EzMzNDOCAhaW1wb3J0YW50O1xuICBib3JkZXItY29sb3I6ICNBMzMzQzggIWltcG9ydGFudDtcbn1cbi51aS5iYXNpYy5wdXJwbGUubGFiZWxzIGEubGFiZWw6aG92ZXIsXG5hLnVpLmJhc2ljLnB1cnBsZS5sYWJlbDpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcbiAgY29sb3I6ICM5NjI3YmEgIWltcG9ydGFudDtcbiAgYm9yZGVyLWNvbG9yOiAjOTYyN2JhICFpbXBvcnRhbnQ7XG59XG4vKi0tLSBQaW5rIC0tLSovXG4udWkucGluay5sYWJlbHMgLmxhYmVsLFxuLnVpLnBpbmsubGFiZWwge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRTAzOTk3ICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1jb2xvcjogI0UwMzk5NyAhaW1wb3J0YW50O1xuICBjb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xufVxuLyogTGluayAqL1xuLnVpLnBpbmsubGFiZWxzIC5sYWJlbDpob3ZlcixcbmEudWkucGluay5sYWJlbDpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlNjFhOGQgIWltcG9ydGFudDtcbiAgYm9yZGVyLWNvbG9yOiAjZTYxYThkICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG59XG4vKiBDb3JuZXIgKi9cbi51aS5waW5rLmNvcm5lci5sYWJlbCxcbi51aS5waW5rLmNvcm5lci5sYWJlbDpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG59XG4vKiBSaWJib24gKi9cbi51aS5waW5rLnJpYmJvbi5sYWJlbCB7XG4gIGJvcmRlci1jb2xvcjogI2M3MWY3ZSAhaW1wb3J0YW50O1xufVxuLyogQmFzaWMgKi9cbi51aS5iYXNpYy5waW5rLmxhYmVsIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xuICBjb2xvcjogI0UwMzk5NyAhaW1wb3J0YW50O1xuICBib3JkZXItY29sb3I6ICNFMDM5OTcgIWltcG9ydGFudDtcbn1cbi51aS5iYXNpYy5waW5rLmxhYmVscyBhLmxhYmVsOmhvdmVyLFxuYS51aS5iYXNpYy5waW5rLmxhYmVsOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xuICBjb2xvcjogI2U2MWE4ZCAhaW1wb3J0YW50O1xuICBib3JkZXItY29sb3I6ICNlNjFhOGQgIWltcG9ydGFudDtcbn1cbi8qLS0tIEJyb3duIC0tLSovXG4udWkuYnJvd24ubGFiZWxzIC5sYWJlbCxcbi51aS5icm93bi5sYWJlbCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNBNTY3M0YgIWltcG9ydGFudDtcbiAgYm9yZGVyLWNvbG9yOiAjQTU2NzNGICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG59XG4vKiBMaW5rICovXG4udWkuYnJvd24ubGFiZWxzIC5sYWJlbDpob3ZlcixcbmEudWkuYnJvd24ubGFiZWw6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOTc1YjMzICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1jb2xvcjogIzk3NWIzMyAhaW1wb3J0YW50O1xuICBjb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xufVxuLyogQ29ybmVyICovXG4udWkuYnJvd24uY29ybmVyLmxhYmVsLFxuLnVpLmJyb3duLmNvcm5lci5sYWJlbDpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG59XG4vKiBSaWJib24gKi9cbi51aS5icm93bi5yaWJib24ubGFiZWwge1xuICBib3JkZXItY29sb3I6ICM4MDUwMzEgIWltcG9ydGFudDtcbn1cbi8qIEJhc2ljICovXG4udWkuYmFzaWMuYnJvd24ubGFiZWwge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjQTU2NzNGICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1jb2xvcjogI0E1NjczRiAhaW1wb3J0YW50O1xufVxuLnVpLmJhc2ljLmJyb3duLmxhYmVscyBhLmxhYmVsOmhvdmVyLFxuYS51aS5iYXNpYy5icm93bi5sYWJlbDpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcbiAgY29sb3I6ICM5NzViMzMgIWltcG9ydGFudDtcbiAgYm9yZGVyLWNvbG9yOiAjOTc1YjMzICFpbXBvcnRhbnQ7XG59XG4vKi0tLSBHcmV5IC0tLSovXG4udWkuZ3JleS5sYWJlbHMgLmxhYmVsLFxuLnVpLmdyZXkubGFiZWwge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNzY3Njc2ICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1jb2xvcjogIzc2NzY3NiAhaW1wb3J0YW50O1xuICBjb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xufVxuLyogTGluayAqL1xuLnVpLmdyZXkubGFiZWxzIC5sYWJlbDpob3ZlcixcbmEudWkuZ3JleS5sYWJlbDpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM4MzgzODMgIWltcG9ydGFudDtcbiAgYm9yZGVyLWNvbG9yOiAjODM4MzgzICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG59XG4vKiBDb3JuZXIgKi9cbi51aS5ncmV5LmNvcm5lci5sYWJlbCxcbi51aS5ncmV5LmNvcm5lci5sYWJlbDpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG59XG4vKiBSaWJib24gKi9cbi51aS5ncmV5LnJpYmJvbi5sYWJlbCB7XG4gIGJvcmRlci1jb2xvcjogIzgwNTAzMSAhaW1wb3J0YW50O1xufVxuLyogQmFzaWMgKi9cbi51aS5iYXNpYy5ncmV5LmxhYmVsIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xuICBjb2xvcjogIzc2NzY3NiAhaW1wb3J0YW50O1xuICBib3JkZXItY29sb3I6ICM3Njc2NzYgIWltcG9ydGFudDtcbn1cbi51aS5iYXNpYy5ncmV5LmxhYmVscyBhLmxhYmVsOmhvdmVyLFxuYS51aS5iYXNpYy5ncmV5LmxhYmVsOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xuICBjb2xvcjogIzgzODM4MyAhaW1wb3J0YW50O1xuICBib3JkZXItY29sb3I6ICM4MzgzODMgIWltcG9ydGFudDtcbn1cbi8qLS0tIEJsYWNrIC0tLSovXG4udWkuYmxhY2subGFiZWxzIC5sYWJlbCxcbi51aS5ibGFjay5sYWJlbCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDAwMDAgIWltcG9ydGFudDtcbiAgYm9yZGVyLWNvbG9yOiAjMDAwMDAwICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG59XG4vKiBMaW5rICovXG4udWkuYmxhY2subGFiZWxzIC5sYWJlbDpob3ZlcixcbmEudWkuYmxhY2subGFiZWw6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMGQwZDBkICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1jb2xvcjogIzBkMGQwZCAhaW1wb3J0YW50O1xuICBjb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xufVxuLyogQ29ybmVyICovXG4udWkuYmxhY2suY29ybmVyLmxhYmVsLFxuLnVpLmJsYWNrLmNvcm5lci5sYWJlbDpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG59XG4vKiBSaWJib24gKi9cbi51aS5ibGFjay5yaWJib24ubGFiZWwge1xuICBib3JkZXItY29sb3I6ICM4MDUwMzEgIWltcG9ydGFudDtcbn1cbi8qIEJhc2ljICovXG4udWkuYmFzaWMuYmxhY2subGFiZWwge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjMDAwMDAwICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1jb2xvcjogIzAwMDAwMCAhaW1wb3J0YW50O1xufVxuLnVpLmJhc2ljLmJsYWNrLmxhYmVscyBhLmxhYmVsOmhvdmVyLFxuYS51aS5iYXNpYy5ibGFjay5sYWJlbDpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcbiAgY29sb3I6ICMwZDBkMGQgIWltcG9ydGFudDtcbiAgYm9yZGVyLWNvbG9yOiAjMGQwZDBkICFpbXBvcnRhbnQ7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQmFzaWNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5iYXNpYy5sYWJlbCB7XG4gIGJhY2tncm91bmQ6IG5vbmUgI2ZmZmZmZjtcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgzNCwgMzYsIDM4LCAwLjE1KTtcbiAgY29sb3I6ICMzMzMzMzM7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG59XG4vKiBMaW5rICovXG5hLnVpLmJhc2ljLmxhYmVsOmhvdmVyIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBiYWNrZ3JvdW5kOiBub25lICNmZmZmZmY7XG4gIGNvbG9yOiAjMWU3MGJmO1xuICBib3gtc2hhZG93OiAxcHggc29saWQgcmdiYSgzNCwgMzYsIDM4LCAwLjE1KTtcbiAgYm94LXNoYWRvdzogbm9uZTtcbn1cbi8qIFBvaW50aW5nICovXG4udWkuYmFzaWMucG9pbnRpbmcubGFiZWw6YmVmb3JlIHtcbiAgYm9yZGVyLWNvbG9yOiBpbmhlcml0O1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRmx1aWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5sYWJlbC5mbHVpZCxcbi51aS5mbHVpZC5sYWJlbHMgPiAubGFiZWwge1xuICB3aWR0aDogMTAwJTtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEludmVydGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkuaW52ZXJ0ZWQubGFiZWxzIC5sYWJlbCxcbi51aS5pbnZlcnRlZC5sYWJlbCB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOSkgIWltcG9ydGFudDtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBIb3Jpem9udGFsXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkuaG9yaXpvbnRhbC5sYWJlbHMgLmxhYmVsLFxuLnVpLmhvcml6b250YWwubGFiZWwge1xuICBtYXJnaW46IDBlbSAwLjVlbSAwZW0gMGVtO1xuICBwYWRkaW5nOiAwLjRlbSAwLjgzM2VtO1xuICBtaW4td2lkdGg6IDNlbTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQ2lyY3VsYXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5jaXJjdWxhci5sYWJlbHMgLmxhYmVsLFxuLnVpLmNpcmN1bGFyLmxhYmVsIHtcbiAgbWluLXdpZHRoOiAyZW07XG4gIG1pbi1oZWlnaHQ6IDJlbTtcbiAgcGFkZGluZzogMC41ZW0gIWltcG9ydGFudDtcbiAgbGluZS1oZWlnaHQ6IDFlbTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBib3JkZXItcmFkaXVzOiA1MDByZW07XG59XG4udWkuZW1wdHkuY2lyY3VsYXIubGFiZWxzIC5sYWJlbCxcbi51aS5lbXB0eS5jaXJjdWxhci5sYWJlbCB7XG4gIG1pbi13aWR0aDogMGVtO1xuICBtaW4taGVpZ2h0OiAwZW07XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHdpZHRoOiAwLjVlbTtcbiAgaGVpZ2h0OiAwLjVlbTtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgUG9pbnRpbmdcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5wb2ludGluZy5sYWJlbCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbi51aS5hdHRhY2hlZC5wb2ludGluZy5sYWJlbCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbn1cbi51aS5wb2ludGluZy5sYWJlbDpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBpbmhlcml0O1xuICBiYWNrZ3JvdW5kLWltYWdlOiBpbmhlcml0O1xuICBib3JkZXItd2lkdGg6IG5vbmU7XG4gIGJvcmRlci1zdHlsZTogc29saWQ7XG4gIGJvcmRlci1jb2xvcjogaW5oZXJpdDtcbn1cbi8qIEFycm93ICovXG4udWkucG9pbnRpbmcubGFiZWw6YmVmb3JlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBjb250ZW50OiAnJztcbiAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xuICB6LWluZGV4OiAyO1xuICB3aWR0aDogMC42NjY2ZW07XG4gIGhlaWdodDogMC42NjY2ZW07XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xcyBlYXNlO1xufVxuLyotLS0gQWJvdmUgLS0tKi9cbi51aS5wb2ludGluZy5sYWJlbCxcbi51aVtjbGFzcyo9XCJwb2ludGluZyBhYm92ZVwiXS5sYWJlbCB7XG4gIG1hcmdpbi10b3A6IDFlbTtcbn1cbi51aS5wb2ludGluZy5sYWJlbDpiZWZvcmUsXG4udWlbY2xhc3MqPVwicG9pbnRpbmcgYWJvdmVcIl0ubGFiZWw6YmVmb3JlIHtcbiAgYm9yZGVyLXdpZHRoOiAxcHggMHB4IDBweCAxcHg7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKSB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSg0NWRlZyk7XG4gIHRvcDogMCU7XG4gIGxlZnQ6IDUwJTtcbn1cbi8qLS0tIEJlbG93IC0tLSovXG4udWlbY2xhc3MqPVwiYm90dG9tIHBvaW50aW5nXCJdLmxhYmVsLFxuLnVpW2NsYXNzKj1cInBvaW50aW5nIGJlbG93XCJdLmxhYmVsIHtcbiAgbWFyZ2luLXRvcDogMGVtO1xuICBtYXJnaW4tYm90dG9tOiAxZW07XG59XG4udWlbY2xhc3MqPVwiYm90dG9tIHBvaW50aW5nXCJdLmxhYmVsOmJlZm9yZSxcbi51aVtjbGFzcyo9XCJwb2ludGluZyBiZWxvd1wiXS5sYWJlbDpiZWZvcmUge1xuICBib3JkZXItd2lkdGg6IDBweCAxcHggMXB4IDBweDtcbiAgdG9wOiBhdXRvO1xuICByaWdodDogYXV0bztcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpIHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKDQ1ZGVnKTtcbiAgdG9wOiAxMDAlO1xuICBsZWZ0OiA1MCU7XG59XG4vKi0tLSBMZWZ0IC0tLSovXG4udWlbY2xhc3MqPVwibGVmdCBwb2ludGluZ1wiXS5sYWJlbCB7XG4gIG1hcmdpbi10b3A6IDBlbTtcbiAgbWFyZ2luLWxlZnQ6IDAuNjY2NmVtO1xufVxuLnVpW2NsYXNzKj1cImxlZnQgcG9pbnRpbmdcIl0ubGFiZWw6YmVmb3JlIHtcbiAgYm9yZGVyLXdpZHRoOiAwcHggMHB4IDFweCAxcHg7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKSB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSg0NWRlZyk7XG4gIGJvdHRvbTogYXV0bztcbiAgcmlnaHQ6IGF1dG87XG4gIHRvcDogNTAlO1xuICBsZWZ0OiAwZW07XG59XG4vKi0tLSBSaWdodCAtLS0qL1xuLnVpW2NsYXNzKj1cInJpZ2h0IHBvaW50aW5nXCJdLmxhYmVsIHtcbiAgbWFyZ2luLXRvcDogMGVtO1xuICBtYXJnaW4tcmlnaHQ6IDAuNjY2NmVtO1xufVxuLnVpW2NsYXNzKj1cInJpZ2h0IHBvaW50aW5nXCJdLmxhYmVsOmJlZm9yZSB7XG4gIGJvcmRlci13aWR0aDogMXB4IDFweCAwcHggMHB4O1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoNTAlKSB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSg0NWRlZyk7XG4gIHRvcDogNTAlO1xuICByaWdodDogMCU7XG4gIGJvdHRvbTogYXV0bztcbiAgbGVmdDogYXV0bztcbn1cbi8qIEJhc2ljIFBvaW50aW5nICovXG4vKi0tLSBBYm92ZSAtLS0qL1xuLnVpLmJhc2ljLnBvaW50aW5nLmxhYmVsOmJlZm9yZSxcbi51aS5iYXNpY1tjbGFzcyo9XCJwb2ludGluZyBhYm92ZVwiXS5sYWJlbDpiZWZvcmUge1xuICBtYXJnaW4tdG9wOiAtMXB4O1xufVxuLyotLS0gQmVsb3cgLS0tKi9cbi51aS5iYXNpY1tjbGFzcyo9XCJib3R0b20gcG9pbnRpbmdcIl0ubGFiZWw6YmVmb3JlLFxuLnVpLmJhc2ljW2NsYXNzKj1cInBvaW50aW5nIGJlbG93XCJdLmxhYmVsOmJlZm9yZSB7XG4gIGJvdHRvbTogYXV0bztcbiAgdG9wOiAxMDAlO1xuICBtYXJnaW4tdG9wOiAxcHg7XG59XG4vKi0tLSBMZWZ0IC0tLSovXG4udWkuYmFzaWNbY2xhc3MqPVwibGVmdCBwb2ludGluZ1wiXS5sYWJlbDpiZWZvcmUge1xuICB0b3A6IDUwJTtcbiAgbGVmdDogLTFweDtcbn1cbi8qLS0tIFJpZ2h0IC0tLSovXG4udWkuYmFzaWNbY2xhc3MqPVwicmlnaHQgcG9pbnRpbmdcIl0ubGFiZWw6YmVmb3JlIHtcbiAgdG9wOiA1MCU7XG4gIHJpZ2h0OiAtMXB4O1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgIEZsb2F0aW5nIExhYmVsXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5mbG9hdGluZy5sYWJlbCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMTAwO1xuICB0b3A6IC0xZW07XG4gIGxlZnQ6IDEwMCU7XG4gIG1hcmdpbjogMGVtIDBlbSAwZW0gLTEuNWVtICFpbXBvcnRhbnQ7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5taW5pLmxhYmVscyAubGFiZWwsXG4udWkubWluaS5sYWJlbCB7XG4gIGZvbnQtc2l6ZTogMC45cmVtO1xufVxuLnVpLnRpbnkubGFiZWxzIC5sYWJlbCxcbi51aS50aW55LmxhYmVsIHtcbiAgZm9udC1zaXplOiAxcmVtO1xufVxuLnVpLnNtYWxsLmxhYmVscyAubGFiZWwsXG4udWkuc21hbGwubGFiZWwge1xuICBmb250LXNpemU6IDEuMXJlbTtcbn1cbi51aS5sYWJlbHMgLmxhYmVsLFxuLnVpLmxhYmVsIHtcbiAgZm9udC1zaXplOiAxLjJyZW07XG59XG4udWkubGFyZ2UubGFiZWxzIC5sYWJlbCxcbi51aS5sYXJnZS5sYWJlbCB7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbn1cbi51aS5iaWcubGFiZWxzIC5sYWJlbCxcbi51aS5iaWcubGFiZWwge1xuICBmb250LXNpemU6IDEuM3JlbTtcbn1cbi51aS5odWdlLmxhYmVscyAubGFiZWwsXG4udWkuaHVnZS5sYWJlbCB7XG4gIGZvbnQtc2l6ZTogMS40cmVtO1xufVxuLnVpLm1hc3NpdmUubGFiZWxzIC5sYWJlbCxcbi51aS5tYXNzaXZlLmxhYmVsIHtcbiAgZm9udC1zaXplOiAxLjdyZW07XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgVGhlbWUgT3ZlcnJpZGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgT3ZlcnJpZGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyohXG4gKiAjIFNlbWFudGljIFVJIC0gTGlzdFxuICogaHR0cDovL2dpdGh1Yi5jb20vc2VtYW50aWMtb3JnL3NlbWFudGljLXVpL1xuICpcbiAqXG4gKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2VcbiAqIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVRcbiAqXG4gKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qXG5cbuKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVlyAg4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4pWXICAg4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWXXG7ilZrilZDilZDilojilojilZTilZDilZDilZ3ilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKWiOKWiOKVlyDilojilojilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilZTilZDilZDilZDilZDilZ1cbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4pWU4paI4paI4paI4paI4pWU4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilojilojilojilojilojilZdcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVlOKVkOKVkOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4paI4paI4pWR4pWa4paI4paI4pWU4pWd4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilZrilZDilZDilZDilZDilojilojilZFcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWRIOKVmuKVkOKVnSDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZFcbiAgIOKVmuKVkOKVnSAgIOKVmuKVkOKVnSAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWdICAgICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ1cblxuKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIFRoZW1lIFNlbGVjdGlvblxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFRvIG92ZXJyaWRlIGEgdGhlbWUgZm9yIGFuIGluZGl2aWR1YWwgZWxlbWVudFxuICAgc3BlY2lmeSB0aGVtZSBuYW1lIGJlbG93XG4qL1xuLyogR2xvYmFsICovXG4vKiBFbGVtZW50cyAqL1xuLyogQ29sbGVjdGlvbnMgKi9cbi8qIE1vZHVsZXMgKi9cbi8qIFZpZXdzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgRm9sZGVyc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFBhdGggdG8gdGhlbWUgcGFja2FnZXMgKi9cbi8qIFBhdGggdG8gc2l0ZSBvdmVycmlkZSBmb2xkZXIgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBJbXBvcnQgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBJbXBvcnQgRGlyZWN0aXZlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgVGhlbWVcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgU2l0ZSBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0IHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRvcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogUGFja2FnZWQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZG9ycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBDb21wb25lbnQncyBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kb3JzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFNpdGUgdGhlbWUgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgIFVzZXIgR2xvYmFsIFZhcmlhYmxlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIG1hcnNvIGNvbG9ycyAqL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuIENvbXBvbmVudCBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0ICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIExpc3RcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgIFZpZXdcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExpc3QgKi9cbi8qIExpc3QgSXRlbSAqL1xuLyogU3ViIExpc3QgKi9cbi8qIFN1YiBMaXN0IEl0ZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRWxlbWVudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEljb24gKi9cbi8qIEltYWdlICovXG4vKiBDb250ZW50ICovXG4vKiBIZWFkZXIgKi9cbi8qIERlc2NyaXB0aW9uICovXG4vKiBMaW5rICovXG4vKiBIZWFkZXIgTGluayAqL1xuLyogTGlua2VkIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTdGF0ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgVmFyaWF0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRmxvYXQgKi9cbi8qIEhvcml6b250YWwgKi9cbi8qIEludmVydGVkICovXG4vKiBMaW5rIExpc3QgKi9cbi8qIEludmVydGVkIExpbmsgTGlzdCAqL1xuLyogU2VsZWN0aW9uIExpc3QgKi9cbi8qIFNlbGVjdGlvbiBMaXN0IFN0YXRlcyAqL1xuLyogSW52ZXJ0ZWQgU2VsZWN0aW9uIExpc3QgKi9cbi8qIEFuaW1hdGVkIExpc3QgKi9cbi8qIEJ1bGxldGVkICovXG4vKiBIb3Jpem9udGFsIEJ1bGxldHMgKi9cbi8qIE9yZGVyZWQgTGlzdCAqL1xuLyogSG9yaXpvbnRhbCBPcmRlcmVkICovXG4vKiBEaXZpZGVkICovXG4vKiBEaXZpZGVkIEhvcml6b250YWwgKi9cbi8qIERpdmlkZWQgKi9cbi8qIERpdmlkZWQgSG9yaXpvbnRhbCAqL1xuLyogUmVsYXhlZCAqL1xuLyogVmVyeSBSZWxheGVkICovXG4vKiBQYWNrYWdlZCBUaGVtZSAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBMaXN0XG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgICBWaWV3XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMaXN0ICovXG4vKiBMaXN0IEl0ZW0gKi9cbi8qIFN1YiBMaXN0ICovXG4vKiBTdWIgTGlzdCBJdGVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEVsZW1lbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJY29uICovXG4vKiBJbWFnZSAqL1xuLyogQ29udGVudCAqL1xuLyogSGVhZGVyICovXG4vKiBEZXNjcmlwdGlvbiAqL1xuLyogTGluayAqL1xuLyogSGVhZGVyIExpbmsgKi9cbi8qIExpbmtlZCBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU3RhdGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFZhcmlhdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZsb2F0ICovXG4vKiBIb3Jpem9udGFsICovXG4vKiBJbnZlcnRlZCAqL1xuLyogTGluayBMaXN0ICovXG4vKiBJbnZlcnRlZCBMaW5rIExpc3QgKi9cbi8qIFNlbGVjdGlvbiBMaXN0ICovXG4vKiBTZWxlY3Rpb24gTGlzdCBTdGF0ZXMgKi9cbi8qIEludmVydGVkIFNlbGVjdGlvbiBMaXN0ICovXG4vKiBBbmltYXRlZCBMaXN0ICovXG4vKiBCdWxsZXRlZCAqL1xuLyogSG9yaXpvbnRhbCBCdWxsZXRzICovXG4vKiBPcmRlcmVkIExpc3QgKi9cbi8qIEhvcml6b250YWwgT3JkZXJlZCAqL1xuLyogRGl2aWRlZCAqL1xuLyogRGl2aWRlZCBIb3Jpem9udGFsICovXG4vKiBEaXZpZGVkICovXG4vKiBEaXZpZGVkIEhvcml6b250YWwgKi9cbi8qIFJlbGF4ZWQgKi9cbi8qIFZlcnkgUmVsYXhlZCAqL1xuLyogU2l0ZSBUaGVtZSAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICBVc2VyIFZhcmlhYmxlIE92ZXJyaWRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgTWl4LWluc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgT3ZlcnJpZGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEVuZCBDb25maWcgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBMaXN0XG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xudWwudWkubGlzdCxcbm9sLnVpLmxpc3QsXG4udWkubGlzdCB7XG4gIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbiAgbWFyZ2luOiAxZW0gMGVtO1xuICBwYWRkaW5nOiAwZW0gMGVtO1xufVxudWwudWkubGlzdDpmaXJzdC1jaGlsZCxcbm9sLnVpLmxpc3Q6Zmlyc3QtY2hpbGQsXG4udWkubGlzdDpmaXJzdC1jaGlsZCB7XG4gIG1hcmdpbi10b3A6IDBlbTtcbiAgcGFkZGluZy10b3A6IDBlbTtcbn1cbnVsLnVpLmxpc3Q6bGFzdC1jaGlsZCxcbm9sLnVpLmxpc3Q6bGFzdC1jaGlsZCxcbi51aS5saXN0Omxhc3QtY2hpbGQge1xuICBtYXJnaW4tYm90dG9tOiAwZW07XG4gIHBhZGRpbmctYm90dG9tOiAwZW07XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgQ29udGVudFxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIExpc3QgSXRlbSAqL1xudWwudWkubGlzdCBsaSxcbm9sLnVpLmxpc3QgbGksXG4udWkubGlzdCA+IC5pdGVtLFxuLnVpLmxpc3QgLmxpc3QgPiAuaXRlbSB7XG4gIGRpc3BsYXk6IGxpc3QtaXRlbTtcbiAgdGFibGUtbGF5b3V0OiBmaXhlZDtcbiAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICBsaXN0LXN0eWxlLXBvc2l0aW9uOiBvdXRzaWRlO1xuICBwYWRkaW5nOiAwLjNlbSAwZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjFlbTtcbn1cbnVsLnVpLmxpc3QgPiBsaTpmaXJzdC1jaGlsZDphZnRlcixcbm9sLnVpLmxpc3QgPiBsaTpmaXJzdC1jaGlsZDphZnRlcixcbi51aS5saXN0ID4gLmxpc3QgPiAuaXRlbSxcbi51aS5saXN0ID4gLml0ZW06YWZ0ZXIge1xuICBjb250ZW50OiAnJztcbiAgZGlzcGxheTogYmxvY2s7XG4gIGhlaWdodDogMDtcbiAgY2xlYXI6IGJvdGg7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbn1cbnVsLnVpLmxpc3QgbGk6Zmlyc3QtY2hpbGQsXG5vbC51aS5saXN0IGxpOmZpcnN0LWNoaWxkLFxuLnVpLmxpc3QgLmxpc3QgPiAuaXRlbTpmaXJzdC1jaGlsZCxcbi51aS5saXN0ID4gLml0ZW06Zmlyc3QtY2hpbGQge1xuICBwYWRkaW5nLXRvcDogMGVtO1xufVxudWwudWkubGlzdCBsaTpsYXN0LWNoaWxkLFxub2wudWkubGlzdCBsaTpsYXN0LWNoaWxkLFxuLnVpLmxpc3QgLmxpc3QgPiAuaXRlbTpsYXN0LWNoaWxkLFxuLnVpLmxpc3QgPiAuaXRlbTpsYXN0LWNoaWxkIHtcbiAgcGFkZGluZy1ib3R0b206IDBlbTtcbn1cbi8qIENoaWxkIExpc3QgKi9cbnVsLnVpLmxpc3QgdWwsXG5vbC51aS5saXN0IG9sLFxuLnVpLmxpc3QgLmxpc3Qge1xuICBjbGVhcjogYm90aDtcbiAgbWFyZ2luOiAwZW07XG4gIHBhZGRpbmc6IDAuNzVlbSAwZW0gMC4yNWVtIDAuNWVtO1xufVxuLyogQ2hpbGQgSXRlbSAqL1xudWwudWkubGlzdCB1bCBsaSxcbm9sLnVpLmxpc3Qgb2wgbGksXG4udWkubGlzdCAubGlzdCA+IC5pdGVtIHtcbiAgcGFkZGluZzogMC4yZW0gMGVtO1xuICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbn1cbi8qIEljb24gKi9cbi51aS5saXN0IC5saXN0ID4gLml0ZW0gPiBpLmljb24sXG4udWkubGlzdCA+IC5pdGVtID4gaS5pY29uIHtcbiAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgbWFyZ2luOiAwZW07XG4gIHBhZGRpbmctdG9wOiAwLjA1ZW07XG4gIHBhZGRpbmctcmlnaHQ6IDAuNGVtO1xuICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICB0cmFuc2l0aW9uOiBjb2xvciAwLjFzIGVhc2U7XG59XG4udWkubGlzdCAubGlzdCA+IC5pdGVtID4gaS5pY29uOm9ubHktY2hpbGQsXG4udWkubGlzdCA+IC5pdGVtID4gaS5pY29uOm9ubHktY2hpbGQge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHZlcnRpY2FsLWFsaWduOiB0b3A7XG59XG4vKiBJbWFnZSAqL1xuLnVpLmxpc3QgLmxpc3QgPiAuaXRlbSA+IC5pbWFnZSxcbi51aS5saXN0ID4gLml0ZW0gPiAuaW1hZ2Uge1xuICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgbWFyZ2luOiAwZW07XG4gIHZlcnRpY2FsLWFsaWduOiB0b3A7XG59XG4udWkubGlzdCAubGlzdCA+IC5pdGVtID4gLmltYWdlOm5vdCg6b25seS1jaGlsZCk6bm90KGltZyksXG4udWkubGlzdCA+IC5pdGVtID4gLmltYWdlOm5vdCg6b25seS1jaGlsZCk6bm90KGltZykge1xuICBwYWRkaW5nLXJpZ2h0OiAwLjVlbTtcbn1cbi51aS5saXN0IC5saXN0ID4gLml0ZW0gPiAuaW1hZ2UgaW1nLFxuLnVpLmxpc3QgPiAuaXRlbSA+IC5pbWFnZSBpbWcge1xuICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xufVxuLnVpLmxpc3QgLmxpc3QgPiAuaXRlbSA+IGltZy5pbWFnZSxcbi51aS5saXN0IC5saXN0ID4gLml0ZW0gPiAuaW1hZ2U6b25seS1jaGlsZCxcbi51aS5saXN0ID4gLml0ZW0gPiBpbWcuaW1hZ2UsXG4udWkubGlzdCA+IC5pdGVtID4gLmltYWdlOm9ubHktY2hpbGQge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG4vKiBDb250ZW50ICovXG4udWkubGlzdCAubGlzdCA+IC5pdGVtID4gLmNvbnRlbnQsXG4udWkubGlzdCA+IC5pdGVtID4gLmNvbnRlbnQge1xuICBsaW5lLWhlaWdodDogMS4xZW07XG59XG4udWkubGlzdCAubGlzdCA+IC5pdGVtID4gLmltYWdlICsgLmNvbnRlbnQsXG4udWkubGlzdCAubGlzdCA+IC5pdGVtID4gLmljb24gKyAuY29udGVudCxcbi51aS5saXN0ID4gLml0ZW0gPiAuaW1hZ2UgKyAuY29udGVudCxcbi51aS5saXN0ID4gLml0ZW0gPiAuaWNvbiArIC5jb250ZW50IHtcbiAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgcGFkZGluZzogMGVtIDBlbSAwZW0gMC41ZW07XG4gIHZlcnRpY2FsLWFsaWduOiB0b3A7XG59XG4udWkubGlzdCAubGlzdCA+IC5pdGVtID4gaW1nLmltYWdlICsgLmNvbnRlbnQsXG4udWkubGlzdCA+IC5pdGVtID4gaW1nLmltYWdlICsgLmNvbnRlbnQge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG4udWkubGlzdCAubGlzdCA+IC5pdGVtID4gLmNvbnRlbnQgPiAubGlzdCxcbi51aS5saXN0ID4gLml0ZW0gPiAuY29udGVudCA+IC5saXN0IHtcbiAgbWFyZ2luLWxlZnQ6IDBlbTtcbiAgcGFkZGluZy1sZWZ0OiAwZW07XG59XG4vKiBIZWFkZXIgKi9cbi51aS5saXN0IC5saXN0ID4gLml0ZW0gLmhlYWRlcixcbi51aS5saXN0ID4gLml0ZW0gLmhlYWRlciB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW46IDBlbTtcbiAgZm9udC1mYW1pbHk6ICdFeG8gMicsICdMYXRvJywgQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZjtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGNvbG9yOiAjMzMzMzMzO1xufVxuLyogRGVzY3JpcHRpb24gKi9cbi51aS5saXN0IC5saXN0ID4gLml0ZW0gLmRlc2NyaXB0aW9uLFxuLnVpLmxpc3QgPiAuaXRlbSAuZGVzY3JpcHRpb24ge1xuICBkaXNwbGF5OiBibG9jaztcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC43KTtcbn1cbi8qIENoaWxkIExpbmsgKi9cbi51aS5saXN0ID4gLml0ZW0gYSxcbi51aS5saXN0IC5saXN0ID4gLml0ZW0gYSB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbi8qIExpbmtpbmcgSXRlbSAqL1xuLnVpLmxpc3QgLmxpc3QgPiBhLml0ZW0sXG4udWkubGlzdCA+IGEuaXRlbSB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgY29sb3I6ICM0MTgzQzQ7XG59XG4udWkubGlzdCAubGlzdCA+IGEuaXRlbTpob3Zlcixcbi51aS5saXN0ID4gYS5pdGVtOmhvdmVyIHtcbiAgY29sb3I6ICMxZTcwYmY7XG59XG4vKiBMaW5rZWQgSXRlbSBJY29ucyAqL1xuLnVpLmxpc3QgLmxpc3QgPiBhLml0ZW0gaS5pY29uLFxuLnVpLmxpc3QgPiBhLml0ZW0gaS5pY29uIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC40KTtcbn1cbi8qIEhlYWRlciBMaW5rICovXG4udWkubGlzdCAubGlzdCA+IC5pdGVtIGEuaGVhZGVyLFxuLnVpLmxpc3QgPiAuaXRlbSBhLmhlYWRlciB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgY29sb3I6ICM0MTgzQzQgIWltcG9ydGFudDtcbn1cbi51aS5saXN0IC5saXN0ID4gLml0ZW0gYS5oZWFkZXI6aG92ZXIsXG4udWkubGlzdCA+IC5pdGVtIGEuaGVhZGVyOmhvdmVyIHtcbiAgY29sb3I6ICMxZTcwYmYgIWltcG9ydGFudDtcbn1cbi8qIEZsb2F0ZWQgQ29udGVudCAqL1xuLnVpW2NsYXNzKj1cImxlZnQgZmxvYXRlZFwiXS5saXN0IHtcbiAgZmxvYXQ6IGxlZnQ7XG59XG4udWlbY2xhc3MqPVwicmlnaHQgZmxvYXRlZFwiXS5saXN0IHtcbiAgZmxvYXQ6IHJpZ2h0O1xufVxuLnVpLmxpc3QgLmxpc3QgPiAuaXRlbSBbY2xhc3MqPVwibGVmdCBmbG9hdGVkXCJdLFxuLnVpLmxpc3QgPiAuaXRlbSBbY2xhc3MqPVwibGVmdCBmbG9hdGVkXCJdIHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIG1hcmdpbjogMGVtIDFlbSAwZW0gMGVtO1xufVxuLnVpLmxpc3QgLmxpc3QgPiAuaXRlbSBbY2xhc3MqPVwicmlnaHQgZmxvYXRlZFwiXSxcbi51aS5saXN0ID4gLml0ZW0gW2NsYXNzKj1cInJpZ2h0IGZsb2F0ZWRcIl0ge1xuICBmbG9hdDogcmlnaHQ7XG4gIG1hcmdpbjogMGVtIDBlbSAwZW0gMWVtO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIENvdXBsaW5nXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLnVpLm1lbnUgLnVpLmxpc3QgPiAuaXRlbSxcbi51aS5tZW51IC51aS5saXN0IC5saXN0ID4gLml0ZW0ge1xuICBkaXNwbGF5OiBsaXN0LWl0ZW07XG4gIHRhYmxlLWxheW91dDogZml4ZWQ7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gIGxpc3Qtc3R5bGUtcG9zaXRpb246IG91dHNpZGU7XG4gIHBhZGRpbmc6IDAuM2VtIDBlbTtcbiAgbGluZS1oZWlnaHQ6IDEuMWVtO1xufVxuLnVpLm1lbnUgLnVpLmxpc3QgLmxpc3QgPiAuaXRlbTpiZWZvcmUsXG4udWkubWVudSAudWkubGlzdCA+IC5pdGVtOmJlZm9yZSB7XG4gIGJvcmRlcjogbm9uZTtcbiAgYmFja2dyb3VuZDogbm9uZTtcbn1cbi51aS5tZW51IC51aS5saXN0IC5saXN0ID4gLml0ZW06Zmlyc3QtY2hpbGQsXG4udWkubWVudSAudWkubGlzdCA+IC5pdGVtOmZpcnN0LWNoaWxkIHtcbiAgcGFkZGluZy10b3A6IDBlbTtcbn1cbi51aS5tZW51IC51aS5saXN0IC5saXN0ID4gLml0ZW06bGFzdC1jaGlsZCxcbi51aS5tZW51IC51aS5saXN0ID4gLml0ZW06bGFzdC1jaGlsZCB7XG4gIHBhZGRpbmctYm90dG9tOiAwZW07XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgVHlwZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEhvcml6b250YWxcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5ob3Jpem9udGFsLmxpc3Qge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZvbnQtc2l6ZTogMGVtO1xufVxuLnVpLmhvcml6b250YWwubGlzdCA+IC5pdGVtIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXJnaW4tbGVmdDogMWVtO1xuICBmb250LXNpemU6IDFyZW07XG59XG4udWkuaG9yaXpvbnRhbC5saXN0Om5vdCguY2VsbGVkKSA+IC5pdGVtOmZpcnN0LWNoaWxkIHtcbiAgbWFyZ2luLWxlZnQ6IDBlbSAhaW1wb3J0YW50O1xuICBwYWRkaW5nLWxlZnQ6IDBlbSAhaW1wb3J0YW50O1xufVxuLnVpLmhvcml6b250YWwubGlzdCAubGlzdCB7XG4gIHBhZGRpbmctbGVmdDogMGVtO1xuICBwYWRkaW5nLWJvdHRvbTogMGVtO1xufVxuLnVpLmhvcml6b250YWwubGlzdCA+IC5pdGVtID4gLmltYWdlLFxuLnVpLmhvcml6b250YWwubGlzdCAubGlzdCA+IC5pdGVtID4gLmltYWdlLFxuLnVpLmhvcml6b250YWwubGlzdCA+IC5pdGVtID4gLmljb24sXG4udWkuaG9yaXpvbnRhbC5saXN0IC5saXN0ID4gLml0ZW0gPiAuaWNvbixcbi51aS5ob3Jpem9udGFsLmxpc3QgPiAuaXRlbSA+IC5jb250ZW50LFxuLnVpLmhvcml6b250YWwubGlzdCAubGlzdCA+IC5pdGVtID4gLmNvbnRlbnQge1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuLyogUGFkZGluZyBvbiBhbGwgZWxlbWVudHMgKi9cbi51aS5ob3Jpem9udGFsLmxpc3QgPiAuaXRlbTpmaXJzdC1jaGlsZCxcbi51aS5ob3Jpem9udGFsLmxpc3QgPiAuaXRlbTpsYXN0LWNoaWxkIHtcbiAgcGFkZGluZy10b3A6IDAuM2VtO1xuICBwYWRkaW5nLWJvdHRvbTogMC4zZW07XG59XG4vKiBIb3Jpem9udGFsIExpc3QgKi9cbi51aS5ob3Jpem9udGFsLmxpc3QgPiAuaXRlbSA+IGkuaWNvbiB7XG4gIG1hcmdpbjogMGVtO1xuICBwYWRkaW5nOiAwZW0gMC4yNWVtIDBlbSAwZW07XG59XG4udWkuaG9yaXpvbnRhbC5saXN0ID4gLml0ZW0gPiAuaWNvbixcbi51aS5ob3Jpem9udGFsLmxpc3QgPiAuaXRlbSA+IC5pY29uICsgLmNvbnRlbnQge1xuICBmbG9hdDogbm9uZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmxpc3QgLmxpc3QgPiAuZGlzYWJsZWQuaXRlbSxcbi51aS5saXN0ID4gLmRpc2FibGVkLml0ZW0ge1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgY29sb3I6IHJnYmEoNDAsIDQwLCA0MCwgMC4zKSAhaW1wb3J0YW50O1xufVxuLnVpLmludmVydGVkLmxpc3QgLmxpc3QgPiAuZGlzYWJsZWQuaXRlbSxcbi51aS5pbnZlcnRlZC5saXN0ID4gLmRpc2FibGVkLml0ZW0ge1xuICBjb2xvcjogcmdiYSgyMjUsIDIyNSwgMjI1LCAwLjMpICFpbXBvcnRhbnQ7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5saXN0IC5saXN0ID4gYS5pdGVtOmhvdmVyIC5pY29uLFxuLnVpLmxpc3QgPiBhLml0ZW06aG92ZXIgLmljb24ge1xuICBjb2xvcjogIzMzMzMzMztcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFZhcmlhdGlvbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJbnZlcnRlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmludmVydGVkLmxpc3QgLmxpc3QgPiBhLml0ZW0gPiAuaWNvbixcbi51aS5pbnZlcnRlZC5saXN0ID4gYS5pdGVtID4gLmljb24ge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcpO1xufVxuLnVpLmludmVydGVkLmxpc3QgLmxpc3QgPiAuaXRlbSAuaGVhZGVyLFxuLnVpLmludmVydGVkLmxpc3QgPiAuaXRlbSAuaGVhZGVyIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45KTtcbn1cbi51aS5pbnZlcnRlZC5saXN0IC5saXN0ID4gLml0ZW0gLmRlc2NyaXB0aW9uLFxuLnVpLmludmVydGVkLmxpc3QgPiAuaXRlbSAuZGVzY3JpcHRpb24ge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcpO1xufVxuLyogSXRlbSBMaW5rICovXG4udWkuaW52ZXJ0ZWQubGlzdCAubGlzdCA+IGEuaXRlbSxcbi51aS5pbnZlcnRlZC5saXN0ID4gYS5pdGVtIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjkpO1xufVxuLnVpLmludmVydGVkLmxpc3QgLmxpc3QgPiBhLml0ZW06aG92ZXIsXG4udWkuaW52ZXJ0ZWQubGlzdCA+IGEuaXRlbTpob3ZlciB7XG4gIGNvbG9yOiAjMWU3MGJmO1xufVxuLyogTGlua2luZyBDb250ZW50ICovXG4udWkuaW52ZXJ0ZWQubGlzdCAuaXRlbSBhOm5vdCgudWkpIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45KSAhaW1wb3J0YW50O1xufVxuLnVpLmludmVydGVkLmxpc3QgLml0ZW0gYTpub3QoLnVpKTpob3ZlciB7XG4gIGNvbG9yOiAjMWU3MGJmICFpbXBvcnRhbnQ7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBbGlnbmVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkubGlzdFtjbGFzcyo9XCJ0b3AgYWxpZ25lZFwiXSAuaW1hZ2UsXG4udWkubGlzdFtjbGFzcyo9XCJ0b3AgYWxpZ25lZFwiXSAuY29udGVudCxcbi51aS5saXN0IFtjbGFzcyo9XCJ0b3AgYWxpZ25lZFwiXSB7XG4gIHZlcnRpY2FsLWFsaWduOiB0b3AgIWltcG9ydGFudDtcbn1cbi51aS5saXN0W2NsYXNzKj1cIm1pZGRsZSBhbGlnbmVkXCJdIC5pbWFnZSxcbi51aS5saXN0W2NsYXNzKj1cIm1pZGRsZSBhbGlnbmVkXCJdIC5jb250ZW50LFxuLnVpLmxpc3QgW2NsYXNzKj1cIm1pZGRsZSBhbGlnbmVkXCJdIHtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZSAhaW1wb3J0YW50O1xufVxuLnVpLmxpc3RbY2xhc3MqPVwiYm90dG9tIGFsaWduZWRcIl0gLmltYWdlLFxuLnVpLmxpc3RbY2xhc3MqPVwiYm90dG9tIGFsaWduZWRcIl0gLmNvbnRlbnQsXG4udWkubGlzdCBbY2xhc3MqPVwiYm90dG9tIGFsaWduZWRcIl0ge1xuICB2ZXJ0aWNhbC1hbGlnbjogYm90dG9tICFpbXBvcnRhbnQ7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkubGluay5saXN0IC5pdGVtLFxuLnVpLmxpbmsubGlzdCBhLml0ZW0sXG4udWkubGluay5saXN0IC5pdGVtIGE6bm90KC51aSkge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjQpO1xuICB0cmFuc2l0aW9uOiAwLjFzIGNvbG9yIGVhc2U7XG59XG4udWkubGluay5saXN0IGEuaXRlbTpob3Zlcixcbi51aS5saW5rLmxpc3QgLml0ZW0gYTpub3QoLnVpKTpob3ZlciB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuOCk7XG59XG4udWkubGluay5saXN0IGEuaXRlbTphY3RpdmUsXG4udWkubGluay5saXN0IC5pdGVtIGE6bm90KC51aSk6YWN0aXZlIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC45KTtcbn1cbi51aS5saW5rLmxpc3QgLmFjdGl2ZS5pdGVtLFxuLnVpLmxpbmsubGlzdCAuYWN0aXZlLml0ZW0gYTpub3QoLnVpKSB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuOTUpO1xufVxuLyogSW52ZXJ0ZWQgKi9cbi51aS5pbnZlcnRlZC5saW5rLmxpc3QgLml0ZW0sXG4udWkuaW52ZXJ0ZWQubGluay5saXN0IGEuaXRlbSxcbi51aS5pbnZlcnRlZC5saW5rLmxpc3QgLml0ZW0gYTpub3QoLnVpKSB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7XG59XG4udWkuaW52ZXJ0ZWQubGluay5saXN0IGEuaXRlbTpob3Zlcixcbi51aS5pbnZlcnRlZC5saW5rLmxpc3QgLml0ZW0gYTpub3QoLnVpKTpob3ZlciB7XG4gIGNvbG9yOiAjZmZmZmZmO1xufVxuLnVpLmludmVydGVkLmxpbmsubGlzdCBhLml0ZW06YWN0aXZlLFxuLnVpLmludmVydGVkLmxpbmsubGlzdCAuaXRlbSBhOm5vdCgudWkpOmFjdGl2ZSB7XG4gIGNvbG9yOiAjZmZmZmZmO1xufVxuLnVpLmludmVydGVkLmxpbmsubGlzdCBhLmFjdGl2ZS5pdGVtLFxuLnVpLmludmVydGVkLmxpbmsubGlzdCAuYWN0aXZlLml0ZW0gYTpub3QoLnVpKSB7XG4gIGNvbG9yOiAjZmZmZmZmO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTZWxlY3Rpb25cbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5zZWxlY3Rpb24ubGlzdCAubGlzdCA+IC5pdGVtLFxuLnVpLnNlbGVjdGlvbi5saXN0ID4gLml0ZW0ge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBwYWRkaW5nOiAwLjVlbSAwLjVlbTtcbiAgbWFyZ2luOiAwZW07XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNCk7XG4gIGJvcmRlci1yYWRpdXM6IDAuNWVtO1xuICB0cmFuc2l0aW9uOiAwLjFzIGNvbG9yIGVhc2UsIDAuMXMgcGFkZGluZy1sZWZ0IGVhc2UsIDAuMXMgYmFja2dyb3VuZC1jb2xvciBlYXNlO1xufVxuLnVpLnNlbGVjdGlvbi5saXN0IC5saXN0ID4gLml0ZW06bGFzdC1jaGlsZCxcbi51aS5zZWxlY3Rpb24ubGlzdCA+IC5pdGVtOmxhc3QtY2hpbGQge1xuICBtYXJnaW4tYm90dG9tOiAwZW07XG59XG4udWkuc2VsZWN0aW9uLmxpc3QubGlzdCA+IC5pdGVtOmhvdmVyLFxuLnVpLnNlbGVjdGlvbi5saXN0ID4gLml0ZW06aG92ZXIge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMDMpO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjgpO1xufVxuLnVpLnNlbGVjdGlvbi5saXN0IC5saXN0ID4gLml0ZW06YWN0aXZlLFxuLnVpLnNlbGVjdGlvbi5saXN0ID4gLml0ZW06YWN0aXZlIHtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjA1KTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC45KTtcbn1cbi51aS5zZWxlY3Rpb24ubGlzdCAubGlzdCA+IC5pdGVtLmFjdGl2ZSxcbi51aS5zZWxlY3Rpb24ubGlzdCA+IC5pdGVtLmFjdGl2ZSB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4wNSk7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuOTUpO1xufVxuLyogSW52ZXJ0ZWQgKi9cbi51aS5pbnZlcnRlZC5zZWxlY3Rpb24ubGlzdCA+IC5pdGVtLFxuLnVpLmludmVydGVkLnNlbGVjdGlvbi5saXN0ID4gLml0ZW0ge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KTtcbn1cbi51aS5pbnZlcnRlZC5zZWxlY3Rpb24ubGlzdCA+IC5pdGVtOmhvdmVyLFxuLnVpLmludmVydGVkLnNlbGVjdGlvbi5saXN0ID4gLml0ZW06aG92ZXIge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDIpO1xuICBjb2xvcjogI2ZmZmZmZjtcbn1cbi51aS5pbnZlcnRlZC5zZWxlY3Rpb24ubGlzdCA+IC5pdGVtOmFjdGl2ZSxcbi51aS5pbnZlcnRlZC5zZWxlY3Rpb24ubGlzdCA+IC5pdGVtOmFjdGl2ZSB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wOCk7XG4gIGNvbG9yOiAjZmZmZmZmO1xufVxuLnVpLmludmVydGVkLnNlbGVjdGlvbi5saXN0ID4gLml0ZW0uYWN0aXZlLFxuLnVpLmludmVydGVkLnNlbGVjdGlvbi5saXN0ID4gLml0ZW0uYWN0aXZlIHtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA4KTtcbiAgY29sb3I6ICNmZmZmZmY7XG59XG4vKiBDZWxsZWQgLyBEaXZpZGVkIFNlbGVjdGlvbiBMaXN0ICovXG4udWkuY2VsbGVkLnNlbGVjdGlvbi5saXN0IC5saXN0ID4gLml0ZW0sXG4udWkuZGl2aWRlZC5zZWxlY3Rpb24ubGlzdCAubGlzdCA+IC5pdGVtLFxuLnVpLmNlbGxlZC5zZWxlY3Rpb24ubGlzdCA+IC5pdGVtLFxuLnVpLmRpdmlkZWQuc2VsZWN0aW9uLmxpc3QgPiAuaXRlbSB7XG4gIGJvcmRlci1yYWRpdXM6IDBlbTtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFuaW1hdGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkuYW5pbWF0ZWQubGlzdCA+IC5pdGVtIHtcbiAgdHJhbnNpdGlvbjogMC4yNXMgY29sb3IgZWFzZSAwLjFzLCAwLjI1cyBwYWRkaW5nLWxlZnQgZWFzZSAwLjFzLCAwLjI1cyBiYWNrZ3JvdW5kLWNvbG9yIGVhc2UgMC4xcztcbn1cbi51aS5hbmltYXRlZC5saXN0Om5vdCguaG9yaXpvbnRhbCkgPiAuaXRlbTpob3ZlciB7XG4gIHBhZGRpbmctbGVmdDogMWVtO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRml0dGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkuZml0dGVkLmxpc3Q6bm90KC5zZWxlY3Rpb24pIC5saXN0ID4gLml0ZW0sXG4udWkuZml0dGVkLmxpc3Q6bm90KC5zZWxlY3Rpb24pID4gLml0ZW0ge1xuICBwYWRkaW5nLWxlZnQ6IDBlbTtcbiAgcGFkZGluZy1yaWdodDogMGVtO1xufVxuLnVpLmZpdHRlZC5zZWxlY3Rpb24ubGlzdCAubGlzdCA+IC5pdGVtLFxuLnVpLmZpdHRlZC5zZWxlY3Rpb24ubGlzdCA+IC5pdGVtIHtcbiAgbWFyZ2luLWxlZnQ6IC0wLjVlbTtcbiAgbWFyZ2luLXJpZ2h0OiAtMC41ZW07XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJ1bGxldGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG51bC51aS5saXN0LFxuLnVpLmJ1bGxldGVkLmxpc3Qge1xuICBtYXJnaW4tbGVmdDogMS4yNXJlbTtcbn1cbnVsLnVpLmxpc3QgbGksXG4udWkuYnVsbGV0ZWQubGlzdCAubGlzdCA+IC5pdGVtLFxuLnVpLmJ1bGxldGVkLmxpc3QgPiAuaXRlbSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbnVsLnVpLmxpc3QgbGk6YmVmb3JlLFxuLnVpLmJ1bGxldGVkLmxpc3QgLmxpc3QgPiAuaXRlbTpiZWZvcmUsXG4udWkuYnVsbGV0ZWQubGlzdCA+IC5pdGVtOmJlZm9yZSB7XG4gIHVzZXItc2VsZWN0OiBub25lO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IGF1dG87XG4gIGxlZnQ6IGF1dG87XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIG1hcmdpbi1sZWZ0OiAtMS4yNXJlbTtcbiAgY29udGVudDogJ+KAoic7XG4gIG9wYWNpdHk6IDE7XG4gIGNvbG9yOiBpbmhlcml0O1xuICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xufVxudWwudWkubGlzdCBsaTpiZWZvcmUsXG4udWkuYnVsbGV0ZWQubGlzdCAubGlzdCA+IGEuaXRlbTpiZWZvcmUsXG4udWkuYnVsbGV0ZWQubGlzdCA+IGEuaXRlbTpiZWZvcmUge1xuICBjb2xvcjogIzMzMzMzMztcbn1cbnVsLnVpLmxpc3QgdWwsXG4udWkuYnVsbGV0ZWQubGlzdCAubGlzdCB7XG4gIHBhZGRpbmctbGVmdDogMS4yNXJlbTtcbn1cbi8qIEhvcml6b250YWwgQnVsbGV0ZWQgKi9cbnVsLnVpLmhvcml6b250YWwuYnVsbGV0ZWQubGlzdCxcbi51aS5ob3Jpem9udGFsLmJ1bGxldGVkLmxpc3Qge1xuICBtYXJnaW4tbGVmdDogMGVtO1xufVxudWwudWkuaG9yaXpvbnRhbC5idWxsZXRlZC5saXN0IGxpLFxuLnVpLmhvcml6b250YWwuYnVsbGV0ZWQubGlzdCA+IC5pdGVtIHtcbiAgbWFyZ2luLWxlZnQ6IDEuNzVyZW07XG59XG51bC51aS5ob3Jpem9udGFsLmJ1bGxldGVkLmxpc3QgbGk6Zmlyc3QtY2hpbGQsXG4udWkuaG9yaXpvbnRhbC5idWxsZXRlZC5saXN0ID4gLml0ZW06Zmlyc3QtY2hpbGQge1xuICBtYXJnaW4tbGVmdDogMGVtO1xufVxudWwudWkuaG9yaXpvbnRhbC5idWxsZXRlZC5saXN0IGxpOjpiZWZvcmUsXG4udWkuaG9yaXpvbnRhbC5idWxsZXRlZC5saXN0ID4gLml0ZW06OmJlZm9yZSB7XG4gIGNvbG9yOiAjMzMzMzMzO1xufVxudWwudWkuaG9yaXpvbnRhbC5idWxsZXRlZC5saXN0IGxpOmZpcnN0LWNoaWxkOjpiZWZvcmUsXG4udWkuaG9yaXpvbnRhbC5idWxsZXRlZC5saXN0ID4gLml0ZW06Zmlyc3QtY2hpbGQ6OmJlZm9yZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBPcmRlcmVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5vbC51aS5saXN0LFxuLnVpLm9yZGVyZWQubGlzdCxcbi51aS5vcmRlcmVkLmxpc3QgLmxpc3QsXG5vbC51aS5saXN0IG9sIHtcbiAgY291bnRlci1yZXNldDogb3JkZXJlZDtcbiAgbWFyZ2luLWxlZnQ6IDEuMjVyZW07XG4gIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbn1cbm9sLnVpLmxpc3QgbGksXG4udWkub3JkZXJlZC5saXN0IC5saXN0ID4gLml0ZW0sXG4udWkub3JkZXJlZC5saXN0ID4gLml0ZW0ge1xuICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbm9sLnVpLmxpc3QgbGk6YmVmb3JlLFxuLnVpLm9yZGVyZWQubGlzdCAubGlzdCA+IC5pdGVtOmJlZm9yZSxcbi51aS5vcmRlcmVkLmxpc3QgPiAuaXRlbTpiZWZvcmUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogYXV0bztcbiAgbGVmdDogYXV0bztcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICBtYXJnaW4tbGVmdDogLTEuMjVyZW07XG4gIGNvdW50ZXItaW5jcmVtZW50OiBvcmRlcmVkO1xuICBjb250ZW50OiBjb3VudGVycyhvcmRlcmVkLCBcIi5cIikgXCIgXCI7XG4gIHRleHQtYWxpZ246IHJpZ2h0O1xuICBjb2xvcjogIzMzMzMzMztcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgb3BhY2l0eTogMC44O1xufVxub2wudWkuaW52ZXJ0ZWQubGlzdCBsaTpiZWZvcmUsXG4udWkub3JkZXJlZC5pbnZlcnRlZC5saXN0IC5saXN0ID4gLml0ZW06YmVmb3JlLFxuLnVpLm9yZGVyZWQuaW52ZXJ0ZWQubGlzdCA+IC5pdGVtOmJlZm9yZSB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNyk7XG59XG4vKiBWYWx1ZSAqL1xuLnVpLm9yZGVyZWQubGlzdCA+IC5saXN0ID4gLml0ZW1bZGF0YS12YWx1ZV0sXG4udWkub3JkZXJlZC5saXN0ID4gLml0ZW1bZGF0YS12YWx1ZV0ge1xuICBjb250ZW50OiBhdHRyKGRhdGEtdmFsdWUpO1xufVxub2wudWkubGlzdCBsaVt2YWx1ZV06YmVmb3JlIHtcbiAgY29udGVudDogYXR0cih2YWx1ZSk7XG59XG4vKiBDaGlsZCBMaXN0cyAqL1xub2wudWkubGlzdCBvbCxcbi51aS5vcmRlcmVkLmxpc3QgLmxpc3Qge1xuICBtYXJnaW4tbGVmdDogMWVtO1xufVxub2wudWkubGlzdCBvbCBsaTpiZWZvcmUsXG4udWkub3JkZXJlZC5saXN0IC5saXN0ID4gLml0ZW06YmVmb3JlIHtcbiAgbWFyZ2luLWxlZnQ6IC0yZW07XG59XG4vKiBIb3Jpem9udGFsIE9yZGVyZWQgKi9cbm9sLnVpLmhvcml6b250YWwubGlzdCxcbi51aS5vcmRlcmVkLmhvcml6b250YWwubGlzdCB7XG4gIG1hcmdpbi1sZWZ0OiAwZW07XG59XG5vbC51aS5ob3Jpem9udGFsLmxpc3QgbGk6YmVmb3JlLFxuLnVpLm9yZGVyZWQuaG9yaXpvbnRhbC5saXN0IC5saXN0ID4gLml0ZW06YmVmb3JlLFxuLnVpLm9yZGVyZWQuaG9yaXpvbnRhbC5saXN0ID4gLml0ZW06YmVmb3JlIHtcbiAgcG9zaXRpb246IHN0YXRpYztcbiAgbWFyZ2luOiAwZW0gMC41ZW0gMGVtIDBlbTtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIERpdmlkZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5kaXZpZGVkLmxpc3QgPiAuaXRlbSB7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpO1xufVxuLnVpLmRpdmlkZWQubGlzdCAubGlzdCA+IC5pdGVtIHtcbiAgYm9yZGVyLXRvcDogbm9uZTtcbn1cbi51aS5kaXZpZGVkLmxpc3QgLml0ZW0gLmxpc3QgPiAuaXRlbSB7XG4gIGJvcmRlci10b3A6IG5vbmU7XG59XG4udWkuZGl2aWRlZC5saXN0IC5saXN0ID4gLml0ZW06Zmlyc3QtY2hpbGQsXG4udWkuZGl2aWRlZC5saXN0ID4gLml0ZW06Zmlyc3QtY2hpbGQge1xuICBib3JkZXItdG9wOiBub25lO1xufVxuLyogU3ViIE1lbnUgKi9cbi51aS5kaXZpZGVkLmxpc3Q6bm90KC5ob3Jpem9udGFsKSAubGlzdCA+IC5pdGVtOmZpcnN0LWNoaWxkIHtcbiAgYm9yZGVyLXRvcC13aWR0aDogMXB4O1xufVxuLyogRGl2aWRlZCBidWxsZXRlZCAqL1xuLnVpLmRpdmlkZWQuYnVsbGV0ZWQubGlzdDpub3QoLmhvcml6b250YWwpLFxuLnVpLmRpdmlkZWQuYnVsbGV0ZWQubGlzdCAubGlzdCB7XG4gIG1hcmdpbi1sZWZ0OiAwZW07XG4gIHBhZGRpbmctbGVmdDogMGVtO1xufVxuLnVpLmRpdmlkZWQuYnVsbGV0ZWQubGlzdCA+IC5pdGVtOm5vdCguaG9yaXpvbnRhbCkge1xuICBwYWRkaW5nLWxlZnQ6IDEuMjVyZW07XG59XG4vKiBEaXZpZGVkIE9yZGVyZWQgKi9cbi51aS5kaXZpZGVkLm9yZGVyZWQubGlzdCB7XG4gIG1hcmdpbi1sZWZ0OiAwZW07XG59XG4udWkuZGl2aWRlZC5vcmRlcmVkLmxpc3QgLmxpc3QgPiAuaXRlbSxcbi51aS5kaXZpZGVkLm9yZGVyZWQubGlzdCA+IC5pdGVtIHtcbiAgcGFkZGluZy1sZWZ0OiAxLjI1cmVtO1xufVxuLnVpLmRpdmlkZWQub3JkZXJlZC5saXN0IC5pdGVtIC5saXN0IHtcbiAgbWFyZ2luLWxlZnQ6IDBlbTtcbiAgbWFyZ2luLXJpZ2h0OiAwZW07XG4gIHBhZGRpbmctYm90dG9tOiAwLjNlbTtcbn1cbi51aS5kaXZpZGVkLm9yZGVyZWQubGlzdCAuaXRlbSAubGlzdCA+IC5pdGVtIHtcbiAgcGFkZGluZy1sZWZ0OiAxZW07XG59XG4vKiBEaXZpZGVkIFNlbGVjdGlvbiAqL1xuLnVpLmRpdmlkZWQuc2VsZWN0aW9uLmxpc3QgLmxpc3QgPiAuaXRlbSxcbi51aS5kaXZpZGVkLnNlbGVjdGlvbi5saXN0ID4gLml0ZW0ge1xuICBtYXJnaW46IDBlbTtcbiAgYm9yZGVyLXJhZGl1czogMGVtO1xufVxuLyogRGl2aWRlZCBob3Jpem9udGFsICovXG4udWkuZGl2aWRlZC5ob3Jpem9udGFsLmxpc3Qge1xuICBtYXJnaW4tbGVmdDogMGVtO1xufVxuLnVpLmRpdmlkZWQuaG9yaXpvbnRhbC5saXN0ID4gLml0ZW06bm90KDpmaXJzdC1jaGlsZCkge1xuICBwYWRkaW5nLWxlZnQ6IDAuNWVtO1xufVxuLnVpLmRpdmlkZWQuaG9yaXpvbnRhbC5saXN0ID4gLml0ZW06bm90KDpsYXN0LWNoaWxkKSB7XG4gIHBhZGRpbmctcmlnaHQ6IDAuNWVtO1xufVxuLnVpLmRpdmlkZWQuaG9yaXpvbnRhbC5saXN0ID4gLml0ZW0ge1xuICBib3JkZXItdG9wOiBub25lO1xuICBib3JkZXItbGVmdDogMXB4IHNvbGlkIHJnYmEoMzQsIDM2LCAzOCwgMC4xNSk7XG4gIG1hcmdpbjogMGVtO1xuICBsaW5lLWhlaWdodDogMC42O1xufVxuLnVpLmhvcml6b250YWwuZGl2aWRlZC5saXN0ID4gLml0ZW06Zmlyc3QtY2hpbGQge1xuICBib3JkZXItbGVmdDogbm9uZTtcbn1cbi8qIEludmVydGVkICovXG4udWkuZGl2aWRlZC5pbnZlcnRlZC5saXN0ID4gLml0ZW0sXG4udWkuZGl2aWRlZC5pbnZlcnRlZC5saXN0ID4gLmxpc3QsXG4udWkuZGl2aWRlZC5pbnZlcnRlZC5ob3Jpem9udGFsLmxpc3QgPiAuaXRlbSB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIENlbGxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmNlbGxlZC5saXN0ID4gLml0ZW0sXG4udWkuY2VsbGVkLmxpc3QgPiAubGlzdCB7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpO1xuICBwYWRkaW5nLWxlZnQ6IDAuNWVtO1xuICBwYWRkaW5nLXJpZ2h0OiAwLjVlbTtcbn1cbi51aS5jZWxsZWQubGlzdCA+IC5pdGVtOmxhc3QtY2hpbGQge1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiYSgzNCwgMzYsIDM4LCAwLjE1KTtcbn1cbi8qIFBhZGRpbmcgb24gYWxsIGVsZW1lbnRzICovXG4udWkuY2VsbGVkLmxpc3QgPiAuaXRlbTpmaXJzdC1jaGlsZCxcbi51aS5jZWxsZWQubGlzdCA+IC5pdGVtOmxhc3QtY2hpbGQge1xuICBwYWRkaW5nLXRvcDogMC4zZW07XG4gIHBhZGRpbmctYm90dG9tOiAwLjNlbTtcbn1cbi8qIFN1YiBNZW51ICovXG4udWkuY2VsbGVkLmxpc3QgLml0ZW0gLmxpc3QgPiAuaXRlbSB7XG4gIGJvcmRlci13aWR0aDogMHB4O1xufVxuLnVpLmNlbGxlZC5saXN0IC5saXN0ID4gLml0ZW06Zmlyc3QtY2hpbGQge1xuICBib3JkZXItdG9wLXdpZHRoOiAwcHg7XG59XG4vKiBDZWxsZWQgQnVsbGV0ZWQgKi9cbi51aS5jZWxsZWQuYnVsbGV0ZWQubGlzdCB7XG4gIG1hcmdpbi1sZWZ0OiAwZW07XG59XG4udWkuY2VsbGVkLmJ1bGxldGVkLmxpc3QgLmxpc3QgPiAuaXRlbSxcbi51aS5jZWxsZWQuYnVsbGV0ZWQubGlzdCA+IC5pdGVtIHtcbiAgcGFkZGluZy1sZWZ0OiAxLjI1cmVtO1xufVxuLnVpLmNlbGxlZC5idWxsZXRlZC5saXN0IC5pdGVtIC5saXN0IHtcbiAgbWFyZ2luLWxlZnQ6IC0xLjI1cmVtO1xuICBtYXJnaW4tcmlnaHQ6IC0xLjI1cmVtO1xuICBwYWRkaW5nLWJvdHRvbTogMC4zZW07XG59XG4vKiBDZWxsZWQgT3JkZXJlZCAqL1xuLnVpLmNlbGxlZC5vcmRlcmVkLmxpc3Qge1xuICBtYXJnaW4tbGVmdDogMGVtO1xufVxuLnVpLmNlbGxlZC5vcmRlcmVkLmxpc3QgLmxpc3QgPiAuaXRlbSxcbi51aS5jZWxsZWQub3JkZXJlZC5saXN0ID4gLml0ZW0ge1xuICBwYWRkaW5nLWxlZnQ6IDEuMjVyZW07XG59XG4udWkuY2VsbGVkLm9yZGVyZWQubGlzdCAuaXRlbSAubGlzdCB7XG4gIG1hcmdpbi1sZWZ0OiAwZW07XG4gIG1hcmdpbi1yaWdodDogMGVtO1xuICBwYWRkaW5nLWJvdHRvbTogMC4zZW07XG59XG4udWkuY2VsbGVkLm9yZGVyZWQubGlzdCAubGlzdCA+IC5pdGVtIHtcbiAgcGFkZGluZy1sZWZ0OiAxZW07XG59XG4vKiBDZWxsZWQgSG9yaXpvbnRhbCAqL1xuLnVpLmhvcml6b250YWwuY2VsbGVkLmxpc3Qge1xuICBtYXJnaW4tbGVmdDogMGVtO1xufVxuLnVpLmhvcml6b250YWwuY2VsbGVkLmxpc3QgLmxpc3QgPiAuaXRlbSxcbi51aS5ob3Jpem9udGFsLmNlbGxlZC5saXN0ID4gLml0ZW0ge1xuICBib3JkZXItdG9wOiBub25lO1xuICBib3JkZXItbGVmdDogMXB4IHNvbGlkIHJnYmEoMzQsIDM2LCAzOCwgMC4xNSk7XG4gIG1hcmdpbjogMGVtO1xuICBwYWRkaW5nLWxlZnQ6IDAuNWVtO1xuICBwYWRkaW5nLXJpZ2h0OiAwLjVlbTtcbiAgbGluZS1oZWlnaHQ6IDAuNjtcbn1cbi51aS5ob3Jpem9udGFsLmNlbGxlZC5saXN0IC5saXN0ID4gLml0ZW06bGFzdC1jaGlsZCxcbi51aS5ob3Jpem9udGFsLmNlbGxlZC5saXN0ID4gLml0ZW06bGFzdC1jaGlsZCB7XG4gIGJvcmRlci1ib3R0b206IG5vbmU7XG4gIGJvcmRlci1yaWdodDogMXB4IHNvbGlkIHJnYmEoMzQsIDM2LCAzOCwgMC4xNSk7XG59XG4vKiBJbnZlcnRlZCAqL1xuLnVpLmNlbGxlZC5pbnZlcnRlZC5saXN0ID4gLml0ZW0sXG4udWkuY2VsbGVkLmludmVydGVkLmxpc3QgPiAubGlzdCB7XG4gIGJvcmRlci1jb2xvcjogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKTtcbn1cbi51aS5jZWxsZWQuaW52ZXJ0ZWQuaG9yaXpvbnRhbC5saXN0IC5saXN0ID4gLml0ZW0sXG4udWkuY2VsbGVkLmludmVydGVkLmhvcml6b250YWwubGlzdCA+IC5pdGVtIHtcbiAgYm9yZGVyLWNvbG9yOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgUmVsYXhlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLnJlbGF4ZWQubGlzdDpub3QoLmhvcml6b250YWwpID4gLml0ZW06bm90KDpmaXJzdC1jaGlsZCkge1xuICBwYWRkaW5nLXRvcDogMC42ZW07XG59XG4udWkucmVsYXhlZC5saXN0Om5vdCguaG9yaXpvbnRhbCkgPiAuaXRlbTpub3QoOmxhc3QtY2hpbGQpIHtcbiAgcGFkZGluZy1ib3R0b206IDAuNmVtO1xufVxuLnVpLmhvcml6b250YWwucmVsYXhlZC5saXN0IC5saXN0ID4gLml0ZW06bm90KDpmaXJzdC1jaGlsZCksXG4udWkuaG9yaXpvbnRhbC5yZWxheGVkLmxpc3QgPiAuaXRlbTpub3QoOmZpcnN0LWNoaWxkKSB7XG4gIHBhZGRpbmctbGVmdDogMXJlbTtcbn1cbi51aS5ob3Jpem9udGFsLnJlbGF4ZWQubGlzdCAubGlzdCA+IC5pdGVtOm5vdCg6bGFzdC1jaGlsZCksXG4udWkuaG9yaXpvbnRhbC5yZWxheGVkLmxpc3QgPiAuaXRlbTpub3QoOmxhc3QtY2hpbGQpIHtcbiAgcGFkZGluZy1yaWdodDogMXJlbTtcbn1cbi8qIFZlcnkgUmVsYXhlZCAqL1xuLnVpW2NsYXNzKj1cInZlcnkgcmVsYXhlZFwiXS5saXN0Om5vdCguaG9yaXpvbnRhbCkgPiAuaXRlbTpub3QoOmZpcnN0LWNoaWxkKSB7XG4gIHBhZGRpbmctdG9wOiAxLjJlbTtcbn1cbi51aVtjbGFzcyo9XCJ2ZXJ5IHJlbGF4ZWRcIl0ubGlzdDpub3QoLmhvcml6b250YWwpID4gLml0ZW06bm90KDpsYXN0LWNoaWxkKSB7XG4gIHBhZGRpbmctYm90dG9tOiAxLjJlbTtcbn1cbi51aS5ob3Jpem9udGFsW2NsYXNzKj1cInZlcnkgcmVsYXhlZFwiXS5saXN0IC5saXN0ID4gLml0ZW06bm90KDpmaXJzdC1jaGlsZCksXG4udWkuaG9yaXpvbnRhbFtjbGFzcyo9XCJ2ZXJ5IHJlbGF4ZWRcIl0ubGlzdCA+IC5pdGVtOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgcGFkZGluZy1sZWZ0OiAxLjVyZW07XG59XG4udWkuaG9yaXpvbnRhbFtjbGFzcyo9XCJ2ZXJ5IHJlbGF4ZWRcIl0ubGlzdCAubGlzdCA+IC5pdGVtOm5vdCg6bGFzdC1jaGlsZCksXG4udWkuaG9yaXpvbnRhbFtjbGFzcyo9XCJ2ZXJ5IHJlbGF4ZWRcIl0ubGlzdCA+IC5pdGVtOm5vdCg6bGFzdC1jaGlsZCkge1xuICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW07XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkubWluaS5saXN0IHtcbiAgZm9udC1zaXplOiAwLjhlbTtcbn1cbi51aS50aW55Lmxpc3Qge1xuICBmb250LXNpemU6IDAuOWVtO1xufVxuLnVpLnNtYWxsLmxpc3Qge1xuICBmb250LXNpemU6IDAuOWVtO1xufVxuLnVpLmxpc3Qge1xuICBmb250LXNpemU6IDFlbTtcbn1cbi51aS5sYXJnZS5saXN0IHtcbiAgZm9udC1zaXplOiAxLjFlbTtcbn1cbi51aS5iaWcubGlzdCB7XG4gIGZvbnQtc2l6ZTogMS4zZW07XG59XG4udWkuaHVnZS5saXN0IHtcbiAgZm9udC1zaXplOiAxLjRlbTtcbn1cbi51aS5tYXNzaXZlLmxpc3Qge1xuICBmb250LXNpemU6IDEuN2VtO1xufVxuLnVpLm1pbmkuaG9yaXpvbnRhbC5saXN0IC5saXN0ID4gLml0ZW0sXG4udWkubWluaS5ob3Jpem9udGFsLmxpc3QgPiAuaXRlbSB7XG4gIGZvbnQtc2l6ZTogMC44cmVtO1xufVxuLnVpLnRpbnkuaG9yaXpvbnRhbC5saXN0IC5saXN0ID4gLml0ZW0sXG4udWkudGlueS5ob3Jpem9udGFsLmxpc3QgPiAuaXRlbSB7XG4gIGZvbnQtc2l6ZTogMC45cmVtO1xufVxuLnVpLnNtYWxsLmhvcml6b250YWwubGlzdCAubGlzdCA+IC5pdGVtLFxuLnVpLnNtYWxsLmhvcml6b250YWwubGlzdCA+IC5pdGVtIHtcbiAgZm9udC1zaXplOiAwLjlyZW07XG59XG4udWkuaG9yaXpvbnRhbC5saXN0IC5saXN0ID4gLml0ZW0sXG4udWkuaG9yaXpvbnRhbC5saXN0ID4gLml0ZW0ge1xuICBmb250LXNpemU6IDFyZW07XG59XG4udWkubGFyZ2UuaG9yaXpvbnRhbC5saXN0IC5saXN0ID4gLml0ZW0sXG4udWkubGFyZ2UuaG9yaXpvbnRhbC5saXN0ID4gLml0ZW0ge1xuICBmb250LXNpemU6IDEuMXJlbTtcbn1cbi51aS5iaWcuaG9yaXpvbnRhbC5saXN0IC5saXN0ID4gLml0ZW0sXG4udWkuYmlnLmhvcml6b250YWwubGlzdCA+IC5pdGVtIHtcbiAgZm9udC1zaXplOiAxLjNyZW07XG59XG4udWkuaHVnZS5ob3Jpem9udGFsLmxpc3QgLmxpc3QgPiAuaXRlbSxcbi51aS5odWdlLmhvcml6b250YWwubGlzdCA+IC5pdGVtIHtcbiAgZm9udC1zaXplOiAxLjRyZW07XG59XG4udWkubWFzc2l2ZS5ob3Jpem9udGFsLmxpc3QgLmxpc3QgPiAuaXRlbSxcbi51aS5tYXNzaXZlLmhvcml6b250YWwubGlzdCA+IC5pdGVtIHtcbiAgZm9udC1zaXplOiAxLjdyZW07XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgVGhlbWUgT3ZlcnJpZGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICBVc2VyIFZhcmlhYmxlIE92ZXJyaWRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIVxuICogIyBTZW1hbnRpYyBVSSAtIExvYWRlclxuICogaHR0cDovL2dpdGh1Yi5jb20vc2VtYW50aWMtb3JnL3NlbWFudGljLXVpL1xuICpcbiAqXG4gKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2VcbiAqIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVRcbiAqXG4gKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qXG5cbuKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVlyAg4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4pWXICAg4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWXXG7ilZrilZDilZDilojilojilZTilZDilZDilZ3ilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKWiOKWiOKVlyDilojilojilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilZTilZDilZDilZDilZDilZ1cbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4pWU4paI4paI4paI4paI4pWU4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilojilojilojilojilojilZdcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVlOKVkOKVkOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4paI4paI4pWR4pWa4paI4paI4pWU4pWd4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilZrilZDilZDilZDilZDilojilojilZFcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWRIOKVmuKVkOKVnSDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZFcbiAgIOKVmuKVkOKVnSAgIOKVmuKVkOKVnSAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWdICAgICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ1cblxuKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIFRoZW1lIFNlbGVjdGlvblxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFRvIG92ZXJyaWRlIGEgdGhlbWUgZm9yIGFuIGluZGl2aWR1YWwgZWxlbWVudFxuICAgc3BlY2lmeSB0aGVtZSBuYW1lIGJlbG93XG4qL1xuLyogR2xvYmFsICovXG4vKiBFbGVtZW50cyAqL1xuLyogQ29sbGVjdGlvbnMgKi9cbi8qIE1vZHVsZXMgKi9cbi8qIFZpZXdzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgRm9sZGVyc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFBhdGggdG8gdGhlbWUgcGFja2FnZXMgKi9cbi8qIFBhdGggdG8gc2l0ZSBvdmVycmlkZSBmb2xkZXIgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBJbXBvcnQgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBJbXBvcnQgRGlyZWN0aXZlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgVGhlbWVcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgU2l0ZSBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0IHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRvcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogUGFja2FnZWQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZG9ycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBDb21wb25lbnQncyBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kb3JzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFNpdGUgdGhlbWUgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgIFVzZXIgR2xvYmFsIFZhcmlhYmxlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIG1hcnNvIGNvbG9ycyAqL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuIENvbXBvbmVudCBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0ICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIExvYWRlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFNvbWUgZ2xvYmFsIGxvYWRlciBzdHlsZXMgZGVmaW5lZCBpbiBzaXRlLnZhcmlhYmxlcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTdGFuZGFyZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFR5cGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUZXh0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU3RhdGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFZhcmlhdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEV4YWN0IFNpemVzIChBdm9pZHMgUm91bmRpbmcgRXJyb3JzKSAqL1xuLyogUGFja2FnZWQgVGhlbWUgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgTG9hZGVyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogU29tZSBnbG9iYWwgbG9hZGVyIHN0eWxlcyBkZWZpbmVkIGluIHNpdGUudmFyaWFibGVzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFN0YW5kYXJkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgVHlwZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRleHQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTdGF0ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgVmFyaWF0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRXhhY3QgU2l6ZXMgKEF2b2lkcyBSb3VuZGluZyBFcnJvcnMpICovXG4vKiBTaXRlIFRoZW1lICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgIFVzZXIgVmFyaWFibGUgT3ZlcnJpZGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBNaXgtaW5zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBPdmVycmlkZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRW5kIENvbmZpZyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIExvYWRlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFN0YW5kYXJkIFNpemUgKi9cbi51aS5sb2FkZXIge1xuICBkaXNwbGF5OiBub25lO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICBsZWZ0OiA1MCU7XG4gIG1hcmdpbjogMHB4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHotaW5kZXg6IDEwMDA7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKSB0cmFuc2xhdGVZKC01MCUpO1xufVxuLyogU3RhdGljIFNoYXBlICovXG4udWkubG9hZGVyOmJlZm9yZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgY29udGVudDogJyc7XG4gIHRvcDogMCU7XG4gIGxlZnQ6IDUwJTtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgYm9yZGVyLXJhZGl1czogNTAwcmVtO1xuICBib3JkZXI6IDAuMmVtIHNvbGlkIHJnYmEoMCwgMCwgMCwgMC4xKTtcbn1cbi8qIEFjdGl2ZSBTaGFwZSAqL1xuLnVpLmxvYWRlcjphZnRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgY29udGVudDogJyc7XG4gIHRvcDogMCU7XG4gIGxlZnQ6IDUwJTtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgYW5pbWF0aW9uOiBsb2FkZXIgMC42cyBsaW5lYXI7XG4gIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xuICBib3JkZXItcmFkaXVzOiA1MDByZW07XG4gIGJvcmRlci1jb2xvcjogIzc2NzY3NiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgYm9yZGVyLXdpZHRoOiAwLjJlbTtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4IHRyYW5zcGFyZW50O1xufVxuLyogQWN0aXZlIEFuaW1hdGlvbiAqL1xuQGtleWZyYW1lcyBsb2FkZXIge1xuICBmcm9tIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcbiAgfVxuICB0byB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTtcbiAgfVxufVxuLyogU2l6ZXMgKi9cbi51aS5taW5pLmxvYWRlcjpiZWZvcmUsXG4udWkubWluaS5sb2FkZXI6YWZ0ZXIge1xuICB3aWR0aDogMS40cmVtO1xuICBoZWlnaHQ6IDEuNHJlbTtcbiAgbWFyZ2luOiAwZW0gMGVtIDBlbSAtMC43cmVtO1xufVxuLnVpLnRpbnkubG9hZGVyOmJlZm9yZSxcbi51aS50aW55LmxvYWRlcjphZnRlciB7XG4gIHdpZHRoOiAxLjZyZW07XG4gIGhlaWdodDogMS42cmVtO1xuICBtYXJnaW46IDBlbSAwZW0gMGVtIC0wLjhyZW07XG59XG4udWkuc21hbGwubG9hZGVyOmJlZm9yZSxcbi51aS5zbWFsbC5sb2FkZXI6YWZ0ZXIge1xuICB3aWR0aDogMi40cmVtO1xuICBoZWlnaHQ6IDIuNHJlbTtcbiAgbWFyZ2luOiAwZW0gMGVtIDBlbSAtMS4ycmVtO1xufVxuLnVpLmxvYWRlcjpiZWZvcmUsXG4udWkubG9hZGVyOmFmdGVyIHtcbiAgd2lkdGg6IDMuMnJlbTtcbiAgaGVpZ2h0OiAzLjJyZW07XG4gIG1hcmdpbjogMGVtIDBlbSAwZW0gLTEuNnJlbTtcbn1cbi51aS5sYXJnZS5sb2FkZXI6YmVmb3JlLFxuLnVpLmxhcmdlLmxvYWRlcjphZnRlciB7XG4gIHdpZHRoOiA0LjhyZW07XG4gIGhlaWdodDogNC44cmVtO1xuICBtYXJnaW46IDBlbSAwZW0gMGVtIC0yLjRyZW07XG59XG4udWkuYmlnLmxvYWRlcjpiZWZvcmUsXG4udWkuYmlnLmxvYWRlcjphZnRlciB7XG4gIHdpZHRoOiA1LjJyZW07XG4gIGhlaWdodDogNS4ycmVtO1xuICBtYXJnaW46IDBlbSAwZW0gMGVtIC0yLjZyZW07XG59XG4udWkuaHVnZS5sb2FkZXI6YmVmb3JlLFxuLnVpLmh1Z2UubG9hZGVyOmFmdGVyIHtcbiAgd2lkdGg6IDUuOHJlbTtcbiAgaGVpZ2h0OiA1LjhyZW07XG4gIG1hcmdpbjogMGVtIDBlbSAwZW0gLTIuOXJlbTtcbn1cbi51aS5tYXNzaXZlLmxvYWRlcjpiZWZvcmUsXG4udWkubWFzc2l2ZS5sb2FkZXI6YWZ0ZXIge1xuICB3aWR0aDogNi40cmVtO1xuICBoZWlnaHQ6IDYuNHJlbTtcbiAgbWFyZ2luOiAwZW0gMGVtIDBlbSAtMy4ycmVtO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBDb3VwbGluZ1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2hvdyBpbnNpZGUgYWN0aXZlIGRpbW1lciAqL1xuLnVpLmRpbW1lciAubG9hZGVyIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG4vKiBCbGFjayBEaW1tZXIgKi9cbi51aS5kaW1tZXIgLnVpLmxvYWRlciB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOSk7XG59XG4udWkuZGltbWVyIC51aS5sb2FkZXI6YmVmb3JlIHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpO1xufVxuLnVpLmRpbW1lciAudWkubG9hZGVyOmFmdGVyIHtcbiAgYm9yZGVyLWNvbG9yOiAjZmZmZmZmIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xufVxuLyogV2hpdGUgRGltbWVyIChJbnZlcnRlZCkgKi9cbi51aS5pbnZlcnRlZC5kaW1tZXIgLnVpLmxvYWRlciB7XG4gIGNvbG9yOiAjMzMzMzMzO1xufVxuLnVpLmludmVydGVkLmRpbW1lciAudWkubG9hZGVyOmJlZm9yZSB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjEpO1xufVxuLnVpLmludmVydGVkLmRpbW1lciAudWkubG9hZGVyOmFmdGVyIHtcbiAgYm9yZGVyLWNvbG9yOiAjNzY3Njc2IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBUeXBlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkudGV4dC5sb2FkZXIge1xuICB3aWR0aDogYXV0byAhaW1wb3J0YW50O1xuICBoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLnVpLmluZGV0ZXJtaW5hdGUubG9hZGVyOmFmdGVyIHtcbiAgYW5pbWF0aW9uLWRpcmVjdGlvbjogcmV2ZXJzZTtcbiAgYW5pbWF0aW9uLWR1cmF0aW9uOiAxLjJzO1xufVxuLnVpLmxvYWRlci5hY3RpdmUsXG4udWkubG9hZGVyLnZpc2libGUge1xuICBkaXNwbGF5OiBibG9jaztcbn1cbi51aS5sb2FkZXIuZGlzYWJsZWQsXG4udWkubG9hZGVyLmhpZGRlbiB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgVmFyaWF0aW9uc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVyICovXG4udWkuaW52ZXJ0ZWQuZGltbWVyIC51aS5taW5pLmxvYWRlcixcbi51aS5taW5pLmxvYWRlciB7XG4gIHdpZHRoOiAxLjRyZW07XG4gIGhlaWdodDogMS40cmVtO1xuICBmb250LXNpemU6IDAuOGVtO1xufVxuLnVpLmludmVydGVkLmRpbW1lciAudWkudGlueS5sb2FkZXIsXG4udWkudGlueS5sb2FkZXIge1xuICB3aWR0aDogMS42cmVtO1xuICBoZWlnaHQ6IDEuNnJlbTtcbiAgZm9udC1zaXplOiAwLjllbTtcbn1cbi51aS5pbnZlcnRlZC5kaW1tZXIgLnVpLnNtYWxsLmxvYWRlcixcbi51aS5zbWFsbC5sb2FkZXIge1xuICB3aWR0aDogMi40cmVtO1xuICBoZWlnaHQ6IDIuNHJlbTtcbiAgZm9udC1zaXplOiAwLjllbTtcbn1cbi51aS5pbnZlcnRlZC5kaW1tZXIgLnVpLmxvYWRlcixcbi51aS5sb2FkZXIge1xuICB3aWR0aDogMy4ycmVtO1xuICBoZWlnaHQ6IDMuMnJlbTtcbiAgZm9udC1zaXplOiAxZW07XG59XG4udWkuaW52ZXJ0ZWQuZGltbWVyIC51aS5sYXJnZS5sb2FkZXIsXG4udWkubGFyZ2UubG9hZGVyIHtcbiAgd2lkdGg6IDQuOHJlbTtcbiAgaGVpZ2h0OiA0LjhyZW07XG4gIGZvbnQtc2l6ZTogMS4xZW07XG59XG4udWkuaW52ZXJ0ZWQuZGltbWVyIC51aS5iaWcubG9hZGVyLFxuLnVpLmJpZy5sb2FkZXIge1xuICB3aWR0aDogNS4ycmVtO1xuICBoZWlnaHQ6IDUuMnJlbTtcbiAgZm9udC1zaXplOiAxLjNlbTtcbn1cbi51aS5pbnZlcnRlZC5kaW1tZXIgLnVpLmh1Z2UubG9hZGVyLFxuLnVpLmh1Z2UubG9hZGVyIHtcbiAgd2lkdGg6IDUuOHJlbTtcbiAgaGVpZ2h0OiA1LjhyZW07XG4gIGZvbnQtc2l6ZTogMS40ZW07XG59XG4udWkuaW52ZXJ0ZWQuZGltbWVyIC51aS5tYXNzaXZlLmxvYWRlcixcbi51aS5tYXNzaXZlLmxvYWRlciB7XG4gIHdpZHRoOiA2LjRyZW07XG4gIGhlaWdodDogNi40cmVtO1xuICBmb250LXNpemU6IDEuN2VtO1xufVxuLyogVGV4dCBMb2FkZXIgKi9cbi51aS5taW5pLnRleHQubG9hZGVyIHtcbiAgbWluLXdpZHRoOiAxLjRyZW07XG4gIHBhZGRpbmctdG9wOiAyLjJyZW07XG59XG4udWkudGlueS50ZXh0LmxvYWRlciB7XG4gIG1pbi13aWR0aDogMS42cmVtO1xuICBwYWRkaW5nLXRvcDogMi40cmVtO1xufVxuLnVpLnNtYWxsLnRleHQubG9hZGVyIHtcbiAgbWluLXdpZHRoOiAyLjRyZW07XG4gIHBhZGRpbmctdG9wOiAzLjJyZW07XG59XG4udWkudGV4dC5sb2FkZXIge1xuICBtaW4td2lkdGg6IDMuMnJlbTtcbiAgcGFkZGluZy10b3A6IDRyZW07XG59XG4udWkubGFyZ2UudGV4dC5sb2FkZXIge1xuICBtaW4td2lkdGg6IDQuOHJlbTtcbiAgcGFkZGluZy10b3A6IDUuNnJlbTtcbn1cbi51aS5iaWcudGV4dC5sb2FkZXIge1xuICBtaW4td2lkdGg6IDUuMnJlbTtcbiAgcGFkZGluZy10b3A6IDZyZW07XG59XG4udWkuaHVnZS50ZXh0LmxvYWRlciB7XG4gIG1pbi13aWR0aDogNS44cmVtO1xuICBwYWRkaW5nLXRvcDogNi42cmVtO1xufVxuLnVpLm1hc3NpdmUudGV4dC5sb2FkZXIge1xuICBtaW4td2lkdGg6IDYuNHJlbTtcbiAgcGFkZGluZy10b3A6IDcuMnJlbTtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEludmVydGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkuaW52ZXJ0ZWQubG9hZGVyIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45KTtcbn1cbi51aS5pbnZlcnRlZC5sb2FkZXI6YmVmb3JlIHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpO1xufVxuLnVpLmludmVydGVkLmxvYWRlcjphZnRlciB7XG4gIGJvcmRlci10b3AtY29sb3I6ICNmZmZmZmY7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJbmxpbmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5pbmxpbmUubG9hZGVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBtYXJnaW46IDBlbTtcbiAgbGVmdDogMGVtO1xuICB0b3A6IDBlbTtcbiAgdHJhbnNmb3JtOiBub25lO1xufVxuLnVpLmlubGluZS5sb2FkZXIuYWN0aXZlLFxuLnVpLmlubGluZS5sb2FkZXIudmlzaWJsZSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cbi8qIENlbnRlcmVkIElubGluZSAqL1xuLnVpLmNlbnRlcmVkLmlubGluZS5sb2FkZXIuYWN0aXZlLFxuLnVpLmNlbnRlcmVkLmlubGluZS5sb2FkZXIudmlzaWJsZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFRoZW1lIE92ZXJyaWRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIE92ZXJyaWRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIVxuICogIyBTZW1hbnRpYyBVSSAtIFJhaWxcbiAqIGh0dHA6Ly9naXRodWIuY29tL3NlbWFudGljLW9yZy9zZW1hbnRpYy11aS9cbiAqXG4gKlxuICogUmVsZWFzZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlXG4gKiBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUXG4gKlxuICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKlxuXG7ilojilojilojilojilojilojilojilojilZfilojilojilZcgIOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKVlyAgIOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl1xu4pWa4pWQ4pWQ4paI4paI4pWU4pWQ4pWQ4pWd4paI4paI4pWRICDilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilojilojilZcg4paI4paI4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWd4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWdXG4gICDilojilojilZEgICDilojilojilojilojilojilojilojilZHilojilojilojilojilojilZcgIOKWiOKWiOKVlOKWiOKWiOKWiOKWiOKVlOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4paI4paI4paI4paI4paI4pWXXG4gICDilojilojilZEgICDilojilojilZTilZDilZDilojilojilZHilojilojilZTilZDilZDilZ0gIOKWiOKWiOKVkeKVmuKWiOKWiOKVlOKVneKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4pWa4pWQ4pWQ4pWQ4pWQ4paI4paI4pWRXG4gICDilojilojilZEgICDilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVkSDilZrilZDilZ0g4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWRXG4gICDilZrilZDilZ0gICDilZrilZDilZ0gIOKVmuKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVneKVmuKVkOKVnSAgICAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWdXG5cbiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBUaGVtZSBTZWxlY3Rpb25cbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBUbyBvdmVycmlkZSBhIHRoZW1lIGZvciBhbiBpbmRpdmlkdWFsIGVsZW1lbnRcbiAgIHNwZWNpZnkgdGhlbWUgbmFtZSBiZWxvd1xuKi9cbi8qIEdsb2JhbCAqL1xuLyogRWxlbWVudHMgKi9cbi8qIENvbGxlY3Rpb25zICovXG4vKiBNb2R1bGVzICovXG4vKiBWaWV3cyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIEZvbGRlcnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBQYXRoIHRvIHRoZW1lIHBhY2thZ2VzICovXG4vKiBQYXRoIHRvIHNpdGUgb3ZlcnJpZGUgZm9sZGVyICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgSW1wb3J0IFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgSW1wb3J0IERpcmVjdGl2ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIFRoZW1lXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgIFNpdGUgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kb3JzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFBhY2thZ2VkIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRvcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogQ29tcG9uZW50J3Mgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZG9ycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBTaXRlIHRoZW1lIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICBVc2VyIEdsb2JhbCBWYXJpYWJsZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBtYXJzbyBjb2xvcnMgKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiBDb21wb25lbnQgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFJhaWxcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbGVtZW50XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFZhcmlhdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIENsb3NlICovXG4vKiBEaXZpZGluZyAqL1xuLyogUGFja2FnZWQgVGhlbWUgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBSYWlsXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRWxlbWVudFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBWYXJpYXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBDbG9zZSAqL1xuLyogRGl2aWRpbmcgKi9cbi8qIFNpdGUgVGhlbWUgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgVXNlciBWYXJpYWJsZSBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIE1peC1pbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE92ZXJyaWRlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBFbmQgQ29uZmlnICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFJhaWxzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLnVpLnJhaWwge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMCU7XG4gIHdpZHRoOiAzMDBweDtcbiAgaGVpZ2h0OiAxMDAlO1xufVxuLnVpLmxlZnQucmFpbCB7XG4gIGxlZnQ6IGF1dG87XG4gIHJpZ2h0OiAxMDAlO1xuICBwYWRkaW5nOiAwZW0gMnJlbSAwZW0gMGVtO1xuICBtYXJnaW46IDBlbSAycmVtIDBlbSAwZW07XG59XG4udWkucmlnaHQucmFpbCB7XG4gIGxlZnQ6IDEwMCU7XG4gIHJpZ2h0OiBhdXRvO1xuICBwYWRkaW5nOiAwZW0gMGVtIDBlbSAycmVtO1xuICBtYXJnaW46IDBlbSAwZW0gMGVtIDJyZW07XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBWYXJpYXRpb25zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgICBJbnRlcm5hbFxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5sZWZ0LmludGVybmFsLnJhaWwge1xuICBsZWZ0OiAwJTtcbiAgcmlnaHQ6IGF1dG87XG4gIHBhZGRpbmc6IDBlbSAwZW0gMGVtIDJyZW07XG4gIG1hcmdpbjogMGVtIDBlbSAwZW0gMnJlbTtcbn1cbi51aS5yaWdodC5pbnRlcm5hbC5yYWlsIHtcbiAgbGVmdDogYXV0bztcbiAgcmlnaHQ6IDAlO1xuICBwYWRkaW5nOiAwZW0gMnJlbSAwZW0gMGVtO1xuICBtYXJnaW46IDBlbSAycmVtIDBlbSAwZW07XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgRGl2aWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuZGl2aWRpbmcucmFpbCB7XG4gIHdpZHRoOiAzMDIuNXB4O1xufVxuLnVpLmxlZnQuZGl2aWRpbmcucmFpbCB7XG4gIHBhZGRpbmc6IDBlbSAyLjVyZW0gMGVtIDBlbTtcbiAgbWFyZ2luOiAwZW0gMi41cmVtIDBlbSAwZW07XG4gIGJvcmRlci1yaWdodDogMXB4IHNvbGlkIHJnYmEoMzQsIDM2LCAzOCwgMC4xNSk7XG59XG4udWkucmlnaHQuZGl2aWRpbmcucmFpbCB7XG4gIGJvcmRlci1sZWZ0OiAxcHggc29saWQgcmdiYSgzNCwgMzYsIDM4LCAwLjE1KTtcbiAgcGFkZGluZzogMGVtIDBlbSAwZW0gMi41cmVtO1xuICBtYXJnaW46IDBlbSAwZW0gMGVtIDIuNXJlbTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBEaXN0YW5jZVxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5jbG9zZS5yYWlsIHtcbiAgd2lkdGg6IGNhbGMoMzAwcHggKyAxZW0pO1xufVxuLnVpLmNsb3NlLmxlZnQucmFpbCB7XG4gIHBhZGRpbmc6IDBlbSAxZW0gMGVtIDBlbTtcbiAgbWFyZ2luOiAwZW0gMWVtIDBlbSAwZW07XG59XG4udWkuY2xvc2UucmlnaHQucmFpbCB7XG4gIHBhZGRpbmc6IDBlbSAwZW0gMGVtIDFlbTtcbiAgbWFyZ2luOiAwZW0gMGVtIDBlbSAxZW07XG59XG4udWkudmVyeS5jbG9zZS5yYWlsIHtcbiAgd2lkdGg6IGNhbGMoMzAwcHggKyAwLjVlbSk7XG59XG4udWkudmVyeS5jbG9zZS5sZWZ0LnJhaWwge1xuICBwYWRkaW5nOiAwZW0gMC41ZW0gMGVtIDBlbTtcbiAgbWFyZ2luOiAwZW0gMC41ZW0gMGVtIDBlbTtcbn1cbi51aS52ZXJ5LmNsb3NlLnJpZ2h0LnJhaWwge1xuICBwYWRkaW5nOiAwZW0gMGVtIDBlbSAwLjVlbTtcbiAgbWFyZ2luOiAwZW0gMGVtIDBlbSAwLjVlbTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBBdHRhY2hlZFxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5hdHRhY2hlZC5sZWZ0LnJhaWwsXG4udWkuYXR0YWNoZWQucmlnaHQucmFpbCB7XG4gIHBhZGRpbmc6IDBlbTtcbiAgbWFyZ2luOiAwZW07XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIFNpemluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5taW5pLnJhaWwge1xuICBmb250LXNpemU6IDAuOHJlbTtcbn1cbi51aS50aW55LnJhaWwge1xuICBmb250LXNpemU6IDAuOXJlbTtcbn1cbi51aS5zbWFsbC5yYWlsIHtcbiAgZm9udC1zaXplOiAwLjlyZW07XG59XG4udWkucmFpbCB7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbn1cbi51aS5sYXJnZS5yYWlsIHtcbiAgZm9udC1zaXplOiAxLjFyZW07XG59XG4udWkuYmlnLnJhaWwge1xuICBmb250LXNpemU6IDEuM3JlbTtcbn1cbi51aS5odWdlLnJhaWwge1xuICBmb250LXNpemU6IDEuNHJlbTtcbn1cbi51aS5tYXNzaXZlLnJhaWwge1xuICBmb250LXNpemU6IDEuN3JlbTtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBUaGVtZSBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiFcbiAqICMgU2VtYW50aWMgVUkgLSBSZXZlYWxcbiAqIGh0dHA6Ly9naXRodWIuY29tL3NlbWFudGljLW9yZy9zZW1hbnRpYy11aS9cbiAqXG4gKlxuICogUmVsZWFzZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlXG4gKiBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUXG4gKlxuICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKlxuXG7ilojilojilojilojilojilojilojilojilZfilojilojilZcgIOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKVlyAgIOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl1xu4pWa4pWQ4pWQ4paI4paI4pWU4pWQ4pWQ4pWd4paI4paI4pWRICDilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilojilojilZcg4paI4paI4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWd4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWdXG4gICDilojilojilZEgICDilojilojilojilojilojilojilojilZHilojilojilojilojilojilZcgIOKWiOKWiOKVlOKWiOKWiOKWiOKWiOKVlOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4paI4paI4paI4paI4paI4pWXXG4gICDilojilojilZEgICDilojilojilZTilZDilZDilojilojilZHilojilojilZTilZDilZDilZ0gIOKWiOKWiOKVkeKVmuKWiOKWiOKVlOKVneKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4pWa4pWQ4pWQ4pWQ4pWQ4paI4paI4pWRXG4gICDilojilojilZEgICDilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVkSDilZrilZDilZ0g4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWRXG4gICDilZrilZDilZ0gICDilZrilZDilZ0gIOKVmuKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVneKVmuKVkOKVnSAgICAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWdXG5cbiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBUaGVtZSBTZWxlY3Rpb25cbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBUbyBvdmVycmlkZSBhIHRoZW1lIGZvciBhbiBpbmRpdmlkdWFsIGVsZW1lbnRcbiAgIHNwZWNpZnkgdGhlbWUgbmFtZSBiZWxvd1xuKi9cbi8qIEdsb2JhbCAqL1xuLyogRWxlbWVudHMgKi9cbi8qIENvbGxlY3Rpb25zICovXG4vKiBNb2R1bGVzICovXG4vKiBWaWV3cyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIEZvbGRlcnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBQYXRoIHRvIHRoZW1lIHBhY2thZ2VzICovXG4vKiBQYXRoIHRvIHNpdGUgb3ZlcnJpZGUgZm9sZGVyICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgSW1wb3J0IFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgSW1wb3J0IERpcmVjdGl2ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIFRoZW1lXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgIFNpdGUgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kb3JzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFBhY2thZ2VkIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRvcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogQ29tcG9uZW50J3Mgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZG9ycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBTaXRlIHRoZW1lIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICBVc2VyIEdsb2JhbCBWYXJpYWJsZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBtYXJzbyBjb2xvcnMgKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiBDb21wb25lbnQgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFJldmVhbFxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFR5cGVzICovXG4vKiBQYWNrYWdlZCBUaGVtZSAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFJldmVhbFxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFR5cGVzICovXG4vKiBTaXRlIFRoZW1lICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgIFVzZXIgVmFyaWFibGUgT3ZlcnJpZGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBNaXgtaW5zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBPdmVycmlkZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRW5kIENvbmZpZyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFJldmVhbFxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi51aS5yZXZlYWwge1xuICBkaXNwbGF5OiBpbmhlcml0O1xuICBwb3NpdGlvbjogcmVsYXRpdmUgIWltcG9ydGFudDtcbiAgZm9udC1zaXplOiAwZW0gIWltcG9ydGFudDtcbn1cbi51aS5yZXZlYWwgPiAudmlzaWJsZS5jb250ZW50IHtcbiAgcG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7XG4gIHRvcDogMGVtICFpbXBvcnRhbnQ7XG4gIGxlZnQ6IDBlbSAhaW1wb3J0YW50O1xuICB6LWluZGV4OiAzICFpbXBvcnRhbnQ7XG4gIHRyYW5zaXRpb246IGFsbCAwLjVzIGVhc2UgMC4xcztcbn1cbi51aS5yZXZlYWwgPiAuaGlkZGVuLmNvbnRlbnQge1xuICBwb3NpdGlvbjogcmVsYXRpdmUgIWltcG9ydGFudDtcbiAgei1pbmRleDogMiAhaW1wb3J0YW50O1xufVxuLyogTWFrZSBzdXJlIGhvdmVyZWQgZWxlbWVudCBpcyBvbiB0b3Agb2Ygb3RoZXIgcmV2ZWFsICovXG4udWkuYWN0aXZlLnJldmVhbCAudmlzaWJsZS5jb250ZW50LFxuLnVpLnJldmVhbDpob3ZlciAudmlzaWJsZS5jb250ZW50IHtcbiAgei1pbmRleDogNCAhaW1wb3J0YW50O1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICAgVHlwZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgICBTbGlkZVxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5zbGlkZS5yZXZlYWwge1xuICBwb3NpdGlvbjogcmVsYXRpdmUgIWltcG9ydGFudDtcbiAgb3ZlcmZsb3c6IGhpZGRlbiAhaW1wb3J0YW50O1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuLnVpLnNsaWRlLnJldmVhbCA+IC5jb250ZW50IHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xuICBmbG9hdDogbGVmdDtcbiAgbWFyZ2luOiAwZW07XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjVzIGVhc2UgMC4xcztcbn1cbi51aS5zbGlkZS5yZXZlYWwgPiAudmlzaWJsZS5jb250ZW50IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlICFpbXBvcnRhbnQ7XG59XG4udWkuc2xpZGUucmV2ZWFsID4gLmhpZGRlbi5jb250ZW50IHtcbiAgcG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7XG4gIGxlZnQ6IDAlICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMDAlKSAhaW1wb3J0YW50O1xufVxuLnVpLnNsaWRlLmFjdGl2ZS5yZXZlYWwgPiAudmlzaWJsZS5jb250ZW50LFxuLnVpLnNsaWRlLnJldmVhbDpob3ZlciA+IC52aXNpYmxlLmNvbnRlbnQge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEwMCUpICFpbXBvcnRhbnQ7XG59XG4udWkuc2xpZGUuYWN0aXZlLnJldmVhbCA+IC5oaWRkZW4uY29udGVudCxcbi51aS5zbGlkZS5yZXZlYWw6aG92ZXIgPiAuaGlkZGVuLmNvbnRlbnQge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCUpICFpbXBvcnRhbnQ7XG59XG4udWkuc2xpZGUucmlnaHQucmV2ZWFsID4gLnZpc2libGUuY29udGVudCB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwJSkgIWltcG9ydGFudDtcbn1cbi51aS5zbGlkZS5yaWdodC5yZXZlYWwgPiAuaGlkZGVuLmNvbnRlbnQge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEwMCUpICFpbXBvcnRhbnQ7XG59XG4udWkuc2xpZGUucmlnaHQuYWN0aXZlLnJldmVhbCA+IC52aXNpYmxlLmNvbnRlbnQsXG4udWkuc2xpZGUucmlnaHQucmV2ZWFsOmhvdmVyID4gLnZpc2libGUuY29udGVudCB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMDAlKSAhaW1wb3J0YW50O1xufVxuLnVpLnNsaWRlLnJpZ2h0LmFjdGl2ZS5yZXZlYWwgPiAuaGlkZGVuLmNvbnRlbnQsXG4udWkuc2xpZGUucmlnaHQucmV2ZWFsOmhvdmVyID4gLmhpZGRlbi5jb250ZW50IHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDAlKSAhaW1wb3J0YW50O1xufVxuLnVpLnNsaWRlLnVwLnJldmVhbCA+IC5oaWRkZW4uY29udGVudCB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxMDAlKSAhaW1wb3J0YW50O1xufVxuLnVpLnNsaWRlLnVwLmFjdGl2ZS5yZXZlYWwgPiAudmlzaWJsZS5jb250ZW50LFxuLnVpLnNsaWRlLnVwLnJldmVhbDpob3ZlciA+IC52aXNpYmxlLmNvbnRlbnQge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEwMCUpICFpbXBvcnRhbnQ7XG59XG4udWkuc2xpZGUudXAuYWN0aXZlLnJldmVhbCA+IC5oaWRkZW4uY29udGVudCxcbi51aS5zbGlkZS51cC5yZXZlYWw6aG92ZXIgPiAuaGlkZGVuLmNvbnRlbnQge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCUpICFpbXBvcnRhbnQ7XG59XG4udWkuc2xpZGUuZG93bi5yZXZlYWwgPiAuaGlkZGVuLmNvbnRlbnQge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEwMCUpICFpbXBvcnRhbnQ7XG59XG4udWkuc2xpZGUuZG93bi5hY3RpdmUucmV2ZWFsID4gLnZpc2libGUuY29udGVudCxcbi51aS5zbGlkZS5kb3duLnJldmVhbDpob3ZlciA+IC52aXNpYmxlLmNvbnRlbnQge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMTAwJSkgIWltcG9ydGFudDtcbn1cbi51aS5zbGlkZS5kb3duLmFjdGl2ZS5yZXZlYWwgPiAuaGlkZGVuLmNvbnRlbnQsXG4udWkuc2xpZGUuZG93bi5yZXZlYWw6aG92ZXIgPiAuaGlkZGVuLmNvbnRlbnQge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCUpICFpbXBvcnRhbnQ7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgICBGYWRlXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmZhZGUucmV2ZWFsID4gLnZpc2libGUuY29udGVudCB7XG4gIG9wYWNpdHk6IDE7XG59XG4udWkuZmFkZS5hY3RpdmUucmV2ZWFsID4gLnZpc2libGUuY29udGVudCxcbi51aS5mYWRlLnJldmVhbDpob3ZlciA+IC52aXNpYmxlLmNvbnRlbnQge1xuICBvcGFjaXR5OiAwO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICAgTW92ZVxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5tb3ZlLnJldmVhbCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZSAhaW1wb3J0YW50O1xuICBvdmVyZmxvdzogaGlkZGVuICFpbXBvcnRhbnQ7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG4udWkubW92ZS5yZXZlYWwgPiAuY29udGVudCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmbG9hdDogbGVmdDtcbiAgbWFyZ2luOiAwZW07XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjVzIGN1YmljLWJlemllcigwLjE3NSwgMC44ODUsIDAuMzIsIDEpIDAuMXM7XG59XG4udWkubW92ZS5yZXZlYWwgPiAudmlzaWJsZS5jb250ZW50IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlICFpbXBvcnRhbnQ7XG59XG4udWkubW92ZS5yZXZlYWwgPiAuaGlkZGVuLmNvbnRlbnQge1xuICBwb3NpdGlvbjogYWJzb2x1dGUgIWltcG9ydGFudDtcbiAgbGVmdDogMCUgIWltcG9ydGFudDtcbiAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbn1cbi51aS5tb3ZlLmFjdGl2ZS5yZXZlYWwgPiAudmlzaWJsZS5jb250ZW50LFxuLnVpLm1vdmUucmV2ZWFsOmhvdmVyID4gLnZpc2libGUuY29udGVudCB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTAwJSkgIWltcG9ydGFudDtcbn1cbi51aS5tb3ZlLnJpZ2h0LmFjdGl2ZS5yZXZlYWwgPiAudmlzaWJsZS5jb250ZW50LFxuLnVpLm1vdmUucmlnaHQucmV2ZWFsOmhvdmVyID4gLnZpc2libGUuY29udGVudCB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMDAlKSAhaW1wb3J0YW50O1xufVxuLnVpLm1vdmUudXAuYWN0aXZlLnJldmVhbCA+IC52aXNpYmxlLmNvbnRlbnQsXG4udWkubW92ZS51cC5yZXZlYWw6aG92ZXIgPiAudmlzaWJsZS5jb250ZW50IHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMDAlKSAhaW1wb3J0YW50O1xufVxuLnVpLm1vdmUuZG93bi5hY3RpdmUucmV2ZWFsID4gLnZpc2libGUuY29udGVudCxcbi51aS5tb3ZlLmRvd24ucmV2ZWFsOmhvdmVyID4gLnZpc2libGUuY29udGVudCB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxMDAlKSAhaW1wb3J0YW50O1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBSb3RhdGVcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkucm90YXRlLnJldmVhbCA+IC52aXNpYmxlLmNvbnRlbnQge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjVzO1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcbn1cbi51aS5yb3RhdGUucmV2ZWFsID4gLnZpc2libGUuY29udGVudCxcbi51aS5yb3RhdGUucmlnaHQucmV2ZWFsID4gLnZpc2libGUuY29udGVudCB7XG4gIHRyYW5zZm9ybS1vcmlnaW46IGJvdHRvbSByaWdodDtcbn1cbi51aS5yb3RhdGUuYWN0aXZlLnJldmVhbCA+IC52aXNpYmxlLmNvbnRlbnQsXG4udWkucm90YXRlLnJldmVhbDpob3ZlciA+IC52aXNpYmxlLmNvbnRlbnQsXG4udWkucm90YXRlLnJpZ2h0LmFjdGl2ZS5yZXZlYWwgPiAudmlzaWJsZS5jb250ZW50LFxuLnVpLnJvdGF0ZS5yaWdodC5yZXZlYWw6aG92ZXIgPiAudmlzaWJsZS5jb250ZW50IHtcbiAgdHJhbnNmb3JtOiByb3RhdGUoMTEwZGVnKTtcbn1cbi51aS5yb3RhdGUubGVmdC5yZXZlYWwgPiAudmlzaWJsZS5jb250ZW50IHtcbiAgdHJhbnNmb3JtLW9yaWdpbjogYm90dG9tIGxlZnQ7XG59XG4udWkucm90YXRlLmxlZnQuYWN0aXZlLnJldmVhbCA+IC52aXNpYmxlLmNvbnRlbnQsXG4udWkucm90YXRlLmxlZnQucmV2ZWFsOmhvdmVyID4gLnZpc2libGUuY29udGVudCB7XG4gIHRyYW5zZm9ybTogcm90YXRlKC0xMTBkZWcpO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLnVpLmRpc2FibGVkLnJldmVhbDpob3ZlciA+IC52aXNpYmxlLnZpc2libGUuY29udGVudCB7XG4gIHBvc2l0aW9uOiBzdGF0aWMgIWltcG9ydGFudDtcbiAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgb3BhY2l0eTogMSAhaW1wb3J0YW50O1xuICB0b3A6IDAgIWltcG9ydGFudDtcbiAgbGVmdDogMCAhaW1wb3J0YW50O1xuICByaWdodDogYXV0byAhaW1wb3J0YW50O1xuICBib3R0b206IGF1dG8gIWltcG9ydGFudDtcbiAgdHJhbnNmb3JtOiBub25lICFpbXBvcnRhbnQ7XG59XG4udWkuZGlzYWJsZWQucmV2ZWFsOmhvdmVyID4gLmhpZGRlbi5oaWRkZW4uY29udGVudCB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFZhcmlhdGlvbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIFZpc2libGVcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkudmlzaWJsZS5yZXZlYWwge1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgSW5zdGFudFxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5pbnN0YW50LnJldmVhbCA+IC5jb250ZW50IHtcbiAgdHJhbnNpdGlvbi1kZWxheTogMHMgIWltcG9ydGFudDtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgU2l6aW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLnJldmVhbCA+IC5jb250ZW50IHtcbiAgZm9udC1zaXplOiAxcmVtICFpbXBvcnRhbnQ7XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgVGhlbWUgT3ZlcnJpZGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgT3ZlcnJpZGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyohXG4gKiAjIFNlbWFudGljIFVJIC0gU2VnbWVudFxuICogaHR0cDovL2dpdGh1Yi5jb20vc2VtYW50aWMtb3JnL3NlbWFudGljLXVpL1xuICpcbiAqXG4gKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2VcbiAqIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVRcbiAqXG4gKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qXG5cbuKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVlyAg4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4pWXICAg4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWXXG7ilZrilZDilZDilojilojilZTilZDilZDilZ3ilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKWiOKWiOKVlyDilojilojilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilZTilZDilZDilZDilZDilZ1cbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4pWU4paI4paI4paI4paI4pWU4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilojilojilojilojilojilZdcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVlOKVkOKVkOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4paI4paI4pWR4pWa4paI4paI4pWU4pWd4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilZrilZDilZDilZDilZDilojilojilZFcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWRIOKVmuKVkOKVnSDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZFcbiAgIOKVmuKVkOKVnSAgIOKVmuKVkOKVnSAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWdICAgICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ1cblxuKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIFRoZW1lIFNlbGVjdGlvblxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFRvIG92ZXJyaWRlIGEgdGhlbWUgZm9yIGFuIGluZGl2aWR1YWwgZWxlbWVudFxuICAgc3BlY2lmeSB0aGVtZSBuYW1lIGJlbG93XG4qL1xuLyogR2xvYmFsICovXG4vKiBFbGVtZW50cyAqL1xuLyogQ29sbGVjdGlvbnMgKi9cbi8qIE1vZHVsZXMgKi9cbi8qIFZpZXdzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgRm9sZGVyc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFBhdGggdG8gdGhlbWUgcGFja2FnZXMgKi9cbi8qIFBhdGggdG8gc2l0ZSBvdmVycmlkZSBmb2xkZXIgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBJbXBvcnQgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBJbXBvcnQgRGlyZWN0aXZlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgVGhlbWVcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgU2l0ZSBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0IHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRvcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogUGFja2FnZWQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZG9ycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBDb21wb25lbnQncyBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kb3JzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFNpdGUgdGhlbWUgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgIFVzZXIgR2xvYmFsIFZhcmlhYmxlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIG1hcnNvIGNvbG9ycyAqL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuIENvbXBvbmVudCBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0ICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgU2VnbWVudFxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVsZW1lbnRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEdyb3VwXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBDb3VwbGluZ1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUGFnZSBHcmlkIFNlZ21lbnQgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBMb2FkaW5nIERpbW1lciAqL1xuLyogTG9hZGluZyBTcGlubmVyICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgVmFyaWF0aW9uc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFBpbGVkICovXG4vKiBDaXJjdWxhciAqL1xuLyogU3RhY2tlZCAqL1xuLyogUmFpc2VkICovXG4vKiBQYWRkZWQgKi9cbi8qIEF0dGFjaGVkICovXG4vKiBJbnZlcnRlZCAqL1xuLyogRmxvYXRlZCAqL1xuLyogQmFzaWMgKi9cbi8qIENvbG9ycyAqL1xuLyogT3JkaW5hbGl0eSAqL1xuLyogUGFja2FnZWQgVGhlbWUgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBTZWdtZW50XG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRWxlbWVudFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgR3JvdXBcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIENvdXBsaW5nXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQYWdlIEdyaWQgU2VnbWVudCAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIExvYWRpbmcgRGltbWVyICovXG4vKiBMb2FkaW5nIFNwaW5uZXIgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBWYXJpYXRpb25zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogUGlsZWQgKi9cbi8qIENpcmN1bGFyICovXG4vKiBTdGFja2VkICovXG4vKiBSYWlzZWQgKi9cbi8qIFBhZGRlZCAqL1xuLyogQXR0YWNoZWQgKi9cbi8qIEludmVydGVkICovXG4vKiBGbG9hdGVkICovXG4vKiBCYXNpYyAqL1xuLyogQ29sb3JzICovXG4vKiBPcmRpbmFsaXR5ICovXG4vKiBTaXRlIFRoZW1lICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgIFVzZXIgVmFyaWFibGUgT3ZlcnJpZGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBNaXgtaW5zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBPdmVycmlkZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRW5kIENvbmZpZyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFNlZ21lbnRcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4udWkuc2VnbWVudCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbiAgYm94LXNoYWRvdzogMHB4IDFweCAycHggMCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpO1xuICBtYXJnaW46IDFyZW0gMGVtO1xuICBwYWRkaW5nOiAxZW0gMWVtO1xuICBib3JkZXItcmFkaXVzOiAwLjRyZW07XG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMzQsIDM2LCAzOCwgMC4xNSk7XG59XG4udWkuc2VnbWVudDpmaXJzdC1jaGlsZCB7XG4gIG1hcmdpbi10b3A6IDBlbTtcbn1cbi51aS5zZWdtZW50Omxhc3QtY2hpbGQge1xuICBtYXJnaW4tYm90dG9tOiAwZW07XG59XG4vKiBWZXJ0aWNhbCAqL1xuLnVpLnZlcnRpY2FsLnNlZ21lbnQge1xuICBtYXJnaW46IDBlbTtcbiAgcGFkZGluZy1sZWZ0OiAwZW07XG4gIHBhZGRpbmctcmlnaHQ6IDBlbTtcbiAgYmFja2dyb3VuZDogbm9uZSB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXJhZGl1czogMHB4O1xuICBib3gtc2hhZG93OiBub25lO1xuICBib3JkZXI6IG5vbmU7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpO1xufVxuLnVpLnZlcnRpY2FsLnNlZ21lbnQ6bGFzdC1jaGlsZCB7XG4gIGJvcmRlci1ib3R0b206IG5vbmU7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBMb29zZSBDb3VwbGluZ1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSGVhZGVyICovXG4udWkuaW52ZXJ0ZWQuc2VnbWVudCA+IC51aS5oZWFkZXIge1xuICBjb2xvcjogI2ZmZmZmZjtcbn1cbi8qIExhYmVsICovXG4udWlbY2xhc3MqPVwiYm90dG9tIGF0dGFjaGVkXCJdLnNlZ21lbnQgPiBbY2xhc3MqPVwidG9wIGF0dGFjaGVkXCJdLmxhYmVsIHtcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMGVtO1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMGVtO1xufVxuLnVpW2NsYXNzKj1cInRvcCBhdHRhY2hlZFwiXS5zZWdtZW50ID4gW2NsYXNzKj1cImJvdHRvbSBhdHRhY2hlZFwiXS5sYWJlbCB7XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDBlbTtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDBlbTtcbn1cbi51aS5hdHRhY2hlZC5zZWdtZW50Om5vdCgudG9wKTpub3QoLmJvdHRvbSkgPiBbY2xhc3MqPVwidG9wIGF0dGFjaGVkXCJdLmxhYmVsIHtcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMGVtO1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMGVtO1xufVxuLnVpLmF0dGFjaGVkLnNlZ21lbnQ6bm90KC50b3ApOm5vdCguYm90dG9tKSA+IFtjbGFzcyo9XCJib3R0b20gYXR0YWNoZWRcIl0ubGFiZWwge1xuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwZW07XG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwZW07XG59XG4vKiBHcmlkICovXG4udWkucGFnZS5ncmlkLnNlZ21lbnQsXG4udWkuZ3JpZCA+IC5yb3cgPiAudWkuc2VnbWVudC5jb2x1bW4sXG4udWkuZ3JpZCA+IC51aS5zZWdtZW50LmNvbHVtbiB7XG4gIHBhZGRpbmctdG9wOiAyZW07XG4gIHBhZGRpbmctYm90dG9tOiAyZW07XG59XG4udWkuZ3JpZC5zZWdtZW50IHtcbiAgbWFyZ2luOiAxcmVtIDBlbTtcbiAgYm9yZGVyLXJhZGl1czogMC40cmVtO1xufVxuLyogVGFibGUgKi9cbi51aS5iYXNpYy50YWJsZS5zZWdtZW50IHtcbiAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgzNCwgMzYsIDM4LCAwLjE1KTtcbiAgYm94LXNoYWRvdzogMHB4IDFweCAycHggMCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpO1xufVxuLnVpW2NsYXNzKj1cInZlcnkgYmFzaWNcIl0udGFibGUuc2VnbWVudCB7XG4gIHBhZGRpbmc6IDFlbSAxZW07XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFR5cGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBpbGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkucGlsZWQuc2VnbWVudHMsXG4udWkucGlsZWQuc2VnbWVudCB7XG4gIG1hcmdpbjogM2VtIDBlbTtcbiAgYm94LXNoYWRvdzogJyc7XG4gIHotaW5kZXg6IGF1dG87XG59XG4udWkucGlsZWQuc2VnbWVudDpmaXJzdC1jaGlsZCB7XG4gIG1hcmdpbi10b3A6IDBlbTtcbn1cbi51aS5waWxlZC5zZWdtZW50Omxhc3QtY2hpbGQge1xuICBtYXJnaW4tYm90dG9tOiAwZW07XG59XG4udWkucGlsZWQuc2VnbWVudHM6YWZ0ZXIsXG4udWkucGlsZWQuc2VnbWVudHM6YmVmb3JlLFxuLnVpLnBpbGVkLnNlZ21lbnQ6YWZ0ZXIsXG4udWkucGlsZWQuc2VnbWVudDpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xuICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICBjb250ZW50OiAnJztcbiAgZGlzcGxheTogYmxvY2s7XG4gIGhlaWdodDogMTAwJTtcbiAgbGVmdDogMHB4O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiAxMDAlO1xuICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpO1xuICBib3gtc2hhZG93OiAnJztcbn1cbi51aS5waWxlZC5zZWdtZW50czpiZWZvcmUsXG4udWkucGlsZWQuc2VnbWVudDpiZWZvcmUge1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgtMS4yZGVnKTtcbiAgdG9wOiAwO1xuICB6LWluZGV4OiAtMjtcbn1cbi51aS5waWxlZC5zZWdtZW50czphZnRlcixcbi51aS5waWxlZC5zZWdtZW50OmFmdGVyIHtcbiAgdHJhbnNmb3JtOiByb3RhdGUoMS4yZGVnKTtcbiAgdG9wOiAwO1xuICB6LWluZGV4OiAtMTtcbn1cbi8qIFBpbGVkIEF0dGFjaGVkICovXG4udWlbY2xhc3MqPVwidG9wIGF0dGFjaGVkXCJdLnBpbGVkLnNlZ21lbnQge1xuICBtYXJnaW4tdG9wOiAzZW07XG4gIG1hcmdpbi1ib3R0b206IDBlbTtcbn1cbi51aS5waWxlZC5zZWdtZW50W2NsYXNzKj1cInRvcCBhdHRhY2hlZFwiXTpmaXJzdC1jaGlsZCB7XG4gIG1hcmdpbi10b3A6IDBlbTtcbn1cbi51aS5waWxlZC5zZWdtZW50W2NsYXNzKj1cImJvdHRvbSBhdHRhY2hlZFwiXSB7XG4gIG1hcmdpbi10b3A6IDBlbTtcbiAgbWFyZ2luLWJvdHRvbTogM2VtO1xufVxuLnVpLnBpbGVkLnNlZ21lbnRbY2xhc3MqPVwiYm90dG9tIGF0dGFjaGVkXCJdOmxhc3QtY2hpbGQge1xuICBtYXJnaW4tYm90dG9tOiAwZW07XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBTdGFja2VkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkuc3RhY2tlZC5zZWdtZW50IHtcbiAgcGFkZGluZy1ib3R0b206IDEuNGVtO1xufVxuLnVpLnN0YWNrZWQuc2VnbWVudHM6YmVmb3JlLFxuLnVpLnN0YWNrZWQuc2VnbWVudHM6YWZ0ZXIsXG4udWkuc3RhY2tlZC5zZWdtZW50OmJlZm9yZSxcbi51aS5zdGFja2VkLnNlZ21lbnQ6YWZ0ZXIge1xuICBjb250ZW50OiAnJztcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3R0b206IC0zcHg7XG4gIGxlZnQ6IDAlO1xuICBib3JkZXItdG9wOiAxcHggc29saWQgcmdiYSgzNCwgMzYsIDM4LCAwLjE1KTtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjAzKTtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogNnB4O1xuICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xufVxuLnVpLnN0YWNrZWQuc2VnbWVudHM6YmVmb3JlLFxuLnVpLnN0YWNrZWQuc2VnbWVudDpiZWZvcmUge1xuICBkaXNwbGF5OiBub25lO1xufVxuLyogQWRkIGFkZGl0aW9uYWwgcGFnZSAqL1xuLnVpLnRhbGwuc3RhY2tlZC5zZWdtZW50czpiZWZvcmUsXG4udWkudGFsbC5zdGFja2VkLnNlZ21lbnQ6YmVmb3JlIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGJvdHRvbTogMHB4O1xufVxuLyogSW52ZXJ0ZWQgKi9cbi51aS5zdGFja2VkLmludmVydGVkLnNlZ21lbnRzOmJlZm9yZSxcbi51aS5zdGFja2VkLmludmVydGVkLnNlZ21lbnRzOmFmdGVyLFxuLnVpLnN0YWNrZWQuaW52ZXJ0ZWQuc2VnbWVudDpiZWZvcmUsXG4udWkuc3RhY2tlZC5pbnZlcnRlZC5zZWdtZW50OmFmdGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjAzKTtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHJnYmEoMzQsIDM2LCAzOCwgMC4zNSk7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBQYWRkZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5wYWRkZWQuc2VnbWVudCB7XG4gIHBhZGRpbmc6IDEuNWVtO1xufVxuLnVpW2NsYXNzKj1cInZlcnkgcGFkZGVkXCJdLnNlZ21lbnQge1xuICBwYWRkaW5nOiAzZW07XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBDb21wYWN0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkuY29tcGFjdC5zZWdtZW50IHtcbiAgZGlzcGxheTogdGFibGU7XG59XG4vKiBDb21wYWN0IEdyb3VwICovXG4udWkuY29tcGFjdC5zZWdtZW50cyB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xufVxuLnVpLmNvbXBhY3Quc2VnbWVudHMgLnNlZ21lbnQsXG4udWkuc2VnbWVudHMgLmNvbXBhY3Quc2VnbWVudCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmbGV4OiAwIDEgYXV0bztcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIENpcmN1bGFyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkuY2lyY3VsYXIuc2VnbWVudCB7XG4gIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gIHBhZGRpbmc6IDJlbTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBib3JkZXItcmFkaXVzOiA1MDBlbTtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIFJhaXNlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLnJhaXNlZC5zZWdtZW50cyxcbi51aS5yYWlzZWQuc2VnbWVudCB7XG4gIGJveC1zaGFkb3c6IDBweCAycHggNHB4IDBweCByZ2JhKDM0LCAzNiwgMzgsIDAuMTIpLCAwcHggMnB4IDEwcHggMHB4IHJnYmEoMzQsIDM2LCAzOCwgMC4xNSk7XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgR3JvdXBzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogR3JvdXAgKi9cbi51aS5zZWdtZW50cyB7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWFyZ2luOiAxcmVtIDBlbTtcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgzNCwgMzYsIDM4LCAwLjE1KTtcbiAgYm94LXNoYWRvdzogMHB4IDFweCAycHggMCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpO1xuICBib3JkZXItcmFkaXVzOiAwLjRyZW07XG59XG4udWkuc2VnbWVudHM6Zmlyc3QtY2hpbGQge1xuICBtYXJnaW4tdG9wOiAwZW07XG59XG4udWkuc2VnbWVudHM6bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1ib3R0b206IDBlbTtcbn1cbi8qIE5lc3RlZCBTZWdtZW50ICovXG4udWkuc2VnbWVudHMgPiAuc2VnbWVudCB7XG4gIHRvcDogMHB4O1xuICBib3R0b206IDBweDtcbiAgYm9yZGVyLXJhZGl1czogMHB4O1xuICBtYXJnaW46IDBlbTtcbiAgd2lkdGg6IGF1dG87XG4gIGJveC1zaGFkb3c6IG5vbmU7XG4gIGJvcmRlcjogbm9uZTtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHJnYmEoMzQsIDM2LCAzOCwgMC4xNSk7XG59XG4udWkuc2VnbWVudHM6bm90KC5ob3Jpem9udGFsKSA+IC5zZWdtZW50OmZpcnN0LWNoaWxkIHtcbiAgYm9yZGVyLXRvcDogbm9uZTtcbiAgbWFyZ2luLXRvcDogMGVtO1xuICBib3R0b206IDBweDtcbiAgbWFyZ2luLWJvdHRvbTogMGVtO1xuICB0b3A6IDBweDtcbiAgYm9yZGVyLXJhZGl1czogMC40cmVtIDAuNHJlbSAwZW0gMGVtO1xufVxuLyogQm90dG9tICovXG4udWkuc2VnbWVudHM6bm90KC5ob3Jpem9udGFsKSA+IC5zZWdtZW50Omxhc3QtY2hpbGQge1xuICB0b3A6IDBweDtcbiAgYm90dG9tOiAwcHg7XG4gIG1hcmdpbi10b3A6IDBlbTtcbiAgbWFyZ2luLWJvdHRvbTogMGVtO1xuICBib3gtc2hhZG93OiAwcHggMXB4IDJweCAwIHJnYmEoMzQsIDM2LCAzOCwgMC4xNSksIG5vbmU7XG4gIGJvcmRlci1yYWRpdXM6IDBlbSAwZW0gMC40cmVtIDAuNHJlbTtcbn1cbi8qIE9ubHkgKi9cbi51aS5zZWdtZW50czpub3QoLmhvcml6b250YWwpID4gLnNlZ21lbnQ6b25seS1jaGlsZCB7XG4gIGJvcmRlci1yYWRpdXM6IDAuNHJlbTtcbn1cbi8qIE5lc3RlZCBHcm91cCAqL1xuLnVpLnNlZ21lbnRzID4gLnVpLnNlZ21lbnRzIHtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHJnYmEoMzQsIDM2LCAzOCwgMC4xNSk7XG4gIG1hcmdpbjogMXJlbSAxcmVtO1xufVxuLnVpLnNlZ21lbnRzID4gLnNlZ21lbnRzOmZpcnN0LWNoaWxkIHtcbiAgYm9yZGVyLXRvcDogbm9uZTtcbn1cbi51aS5zZWdtZW50cyA+IC5zZWdtZW50ICsgLnNlZ21lbnRzOm5vdCguaG9yaXpvbnRhbCkge1xuICBtYXJnaW4tdG9wOiAwZW07XG59XG4vKiBIb3Jpem9udGFsIEdyb3VwICovXG4udWkuaG9yaXpvbnRhbC5zZWdtZW50cyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3JkZXItcmFkaXVzOiAwcHg7XG4gIHBhZGRpbmc6IDBlbTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbiAgYm94LXNoYWRvdzogMHB4IDFweCAycHggMCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpO1xuICBtYXJnaW46IDFyZW0gMGVtO1xuICBib3JkZXItcmFkaXVzOiAwLjRyZW07XG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMzQsIDM2LCAzOCwgMC4xNSk7XG59XG4vKiBOZXN0ZWQgSG9yaXpvbnRhbCBHcm91cCAqL1xuLnVpLnNlZ21lbnRzID4gLmhvcml6b250YWwuc2VnbWVudHMge1xuICBtYXJnaW46IDBlbTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDBweDtcbiAgYm9yZGVyOiBub25lO1xuICBib3gtc2hhZG93OiBub25lO1xuICBib3JkZXItdG9wOiAxcHggc29saWQgcmdiYSgzNCwgMzYsIDM4LCAwLjE1KTtcbn1cbi8qIEhvcml6b250YWwgU2VnbWVudCAqL1xuLnVpLmhvcml6b250YWwuc2VnbWVudHMgPiAuc2VnbWVudCB7XG4gIGZsZXg6IDEgMSBhdXRvO1xuICAtbXMtZmxleDogMSAxIDBweDtcbiAgLyogU29sdmVzICMyNTUwIE1TIEZsZXggKi9cbiAgbWFyZ2luOiAwZW07XG4gIG1pbi13aWR0aDogMHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXJhZGl1czogMHB4O1xuICBib3JkZXI6IG5vbmU7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG4gIGJvcmRlci1sZWZ0OiAxcHggc29saWQgcmdiYSgzNCwgMzYsIDM4LCAwLjE1KTtcbn1cbi8qIEJvcmRlciBGaXhlcyAqL1xuLnVpLnNlZ21lbnRzID4gLmhvcml6b250YWwuc2VnbWVudHM6Zmlyc3QtY2hpbGQge1xuICBib3JkZXItdG9wOiBub25lO1xufVxuLnVpLmhvcml6b250YWwuc2VnbWVudHMgPiAuc2VnbWVudDpmaXJzdC1jaGlsZCB7XG4gIGJvcmRlci1sZWZ0OiBub25lO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5kaXNhYmxlZC5zZWdtZW50IHtcbiAgb3BhY2l0eTogMC40NTtcbiAgY29sb3I6IHJnYmEoNDAsIDQwLCA0MCwgMC4zKTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBMb2FkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmxvYWRpbmcuc2VnbWVudCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgY3Vyc29yOiBkZWZhdWx0O1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgdGV4dC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gIHRyYW5zaXRpb246IGFsbCAwcyBsaW5lYXI7XG59XG4udWkubG9hZGluZy5zZWdtZW50OmJlZm9yZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgY29udGVudDogJyc7XG4gIHRvcDogMCU7XG4gIGxlZnQ6IDAlO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOCk7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGJvcmRlci1yYWRpdXM6IDAuNHJlbTtcbiAgei1pbmRleDogMTAwO1xufVxuLnVpLmxvYWRpbmcuc2VnbWVudDphZnRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgY29udGVudDogJyc7XG4gIHRvcDogNTAlO1xuICBsZWZ0OiA1MCU7XG4gIG1hcmdpbjogLTEuNWVtIDBlbSAwZW0gLTEuNWVtO1xuICB3aWR0aDogM2VtO1xuICBoZWlnaHQ6IDNlbTtcbiAgYW5pbWF0aW9uOiBzZWdtZW50LXNwaW4gMC42cyBsaW5lYXI7XG4gIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xuICBib3JkZXItcmFkaXVzOiA1MDByZW07XG4gIGJvcmRlci1jb2xvcjogIzc2NzY3NiByZ2JhKDAsIDAsIDAsIDAuMSkgcmdiYSgwLCAwLCAwLCAwLjEpIHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgYm9yZGVyLXdpZHRoOiAwLjJlbTtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4IHRyYW5zcGFyZW50O1xuICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICB6LWluZGV4OiAxMDE7XG59XG5Aa2V5ZnJhbWVzIHNlZ21lbnQtc3BpbiB7XG4gIGZyb20ge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xuICB9XG4gIHRvIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpO1xuICB9XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBWYXJpYXRpb25zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQmFzaWNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5iYXNpYy5zZWdtZW50IHtcbiAgYmFja2dyb3VuZDogbm9uZSB0cmFuc3BhcmVudDtcbiAgYm94LXNoYWRvdzogbm9uZTtcbiAgYm9yZGVyOiBub25lO1xuICBib3JkZXItcmFkaXVzOiAwcHg7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBDbGVhcmluZ1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmNsZWFyaW5nLnNlZ21lbnQ6YWZ0ZXIge1xuICBjb250ZW50OiBcIi5cIjtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGhlaWdodDogMDtcbiAgY2xlYXI6IGJvdGg7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUmVkICovXG4udWkucmVkLnNlZ21lbnQ6bm90KC5pbnZlcnRlZCkge1xuICBib3JkZXItdG9wOiAycHggc29saWQgI2RlM2EzZTtcbn1cbi51aS5pbnZlcnRlZC5yZWQuc2VnbWVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkZTNhM2UgIWltcG9ydGFudDtcbiAgY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcbn1cbi8qIE9yYW5nZSAqL1xuLnVpLm9yYW5nZS5zZWdtZW50Om5vdCguaW52ZXJ0ZWQpIHtcbiAgYm9yZGVyLXRvcDogMnB4IHNvbGlkICNmZjk1MzM7XG59XG4udWkuaW52ZXJ0ZWQub3JhbmdlLnNlZ21lbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmY5NTMzICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG59XG4vKiBZZWxsb3cgKi9cbi51aS55ZWxsb3cuc2VnbWVudDpub3QoLmludmVydGVkKSB7XG4gIGJvcmRlci10b3A6IDJweCBzb2xpZCAjRkJCRDA4O1xufVxuLnVpLmludmVydGVkLnllbGxvdy5zZWdtZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0ZCQkQwOCAhaW1wb3J0YW50O1xuICBjb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xufVxuLyogT2xpdmUgKi9cbi51aS5vbGl2ZS5zZWdtZW50Om5vdCguaW52ZXJ0ZWQpIHtcbiAgYm9yZGVyLXRvcDogMnB4IHNvbGlkICNCNUNDMTg7XG59XG4udWkuaW52ZXJ0ZWQub2xpdmUuc2VnbWVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNCNUNDMTggIWltcG9ydGFudDtcbiAgY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcbn1cbi8qIEdyZWVuICovXG4udWkuZ3JlZW4uc2VnbWVudDpub3QoLmludmVydGVkKSB7XG4gIGJvcmRlci10b3A6IDJweCBzb2xpZCAjMTlhNTMxO1xufVxuLnVpLmludmVydGVkLmdyZWVuLnNlZ21lbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTlhNTMxICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG59XG4vKiBUZWFsICovXG4udWkudGVhbC5zZWdtZW50Om5vdCguaW52ZXJ0ZWQpIHtcbiAgYm9yZGVyLXRvcDogMnB4IHNvbGlkICMwMEI1QUQ7XG59XG4udWkuaW52ZXJ0ZWQudGVhbC5zZWdtZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwQjVBRCAhaW1wb3J0YW50O1xuICBjb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xufVxuLyogQmx1ZSAqL1xuLnVpLmJsdWUuc2VnbWVudDpub3QoLmludmVydGVkKSB7XG4gIGJvcmRlci10b3A6IDJweCBzb2xpZCAjM2Y1MWI1O1xufVxuLnVpLmludmVydGVkLmJsdWUuc2VnbWVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzZjUxYjUgIWltcG9ydGFudDtcbiAgY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcbn1cbi8qIFZpb2xldCAqL1xuLnVpLnZpb2xldC5zZWdtZW50Om5vdCguaW52ZXJ0ZWQpIHtcbiAgYm9yZGVyLXRvcDogMnB4IHNvbGlkICM2NDM1Qzk7XG59XG4udWkuaW52ZXJ0ZWQudmlvbGV0LnNlZ21lbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNjQzNUM5ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG59XG4vKiBQdXJwbGUgKi9cbi51aS5wdXJwbGUuc2VnbWVudDpub3QoLmludmVydGVkKSB7XG4gIGJvcmRlci10b3A6IDJweCBzb2xpZCAjQTMzM0M4O1xufVxuLnVpLmludmVydGVkLnB1cnBsZS5zZWdtZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0EzMzNDOCAhaW1wb3J0YW50O1xuICBjb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xufVxuLyogUGluayAqL1xuLnVpLnBpbmsuc2VnbWVudDpub3QoLmludmVydGVkKSB7XG4gIGJvcmRlci10b3A6IDJweCBzb2xpZCAjRTAzOTk3O1xufVxuLnVpLmludmVydGVkLnBpbmsuc2VnbWVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNFMDM5OTcgIWltcG9ydGFudDtcbiAgY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcbn1cbi8qIEJyb3duICovXG4udWkuYnJvd24uc2VnbWVudDpub3QoLmludmVydGVkKSB7XG4gIGJvcmRlci10b3A6IDJweCBzb2xpZCAjQTU2NzNGO1xufVxuLnVpLmludmVydGVkLmJyb3duLnNlZ21lbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjQTU2NzNGICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG59XG4vKiBHcmV5ICovXG4udWkuZ3JleS5zZWdtZW50Om5vdCguaW52ZXJ0ZWQpIHtcbiAgYm9yZGVyLXRvcDogMnB4IHNvbGlkICM3Njc2NzY7XG59XG4udWkuaW52ZXJ0ZWQuZ3JleS5zZWdtZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzc2NzY3NiAhaW1wb3J0YW50O1xuICBjb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xufVxuLyogQmxhY2sgKi9cbi51aS5ibGFjay5zZWdtZW50Om5vdCguaW52ZXJ0ZWQpIHtcbiAgYm9yZGVyLXRvcDogMnB4IHNvbGlkICMwMDAwMDA7XG59XG4udWkuaW52ZXJ0ZWQuYmxhY2suc2VnbWVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDAwMDAgIWltcG9ydGFudDtcbiAgY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFsaWduZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aVtjbGFzcyo9XCJsZWZ0IGFsaWduZWRcIl0uc2VnbWVudCB7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG59XG4udWlbY2xhc3MqPVwicmlnaHQgYWxpZ25lZFwiXS5zZWdtZW50IHtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG59XG4udWlbY2xhc3MqPVwiY2VudGVyIGFsaWduZWRcIl0uc2VnbWVudCB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZsb2F0ZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5mbG9hdGVkLnNlZ21lbnQsXG4udWlbY2xhc3MqPVwibGVmdCBmbG9hdGVkXCJdLnNlZ21lbnQge1xuICBmbG9hdDogbGVmdDtcbiAgbWFyZ2luLXJpZ2h0OiAxZW07XG59XG4udWlbY2xhc3MqPVwicmlnaHQgZmxvYXRlZFwiXS5zZWdtZW50IHtcbiAgZmxvYXQ6IHJpZ2h0O1xuICBtYXJnaW4tbGVmdDogMWVtO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBJbnZlcnRlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmludmVydGVkLnNlZ21lbnQge1xuICBib3JkZXI6IG5vbmU7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG59XG4udWkuaW52ZXJ0ZWQuc2VnbWVudCxcbi51aS5wcmltYXJ5LmludmVydGVkLnNlZ21lbnQge1xuICBiYWNrZ3JvdW5kOiAjMDAwMDAwO1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjkpO1xufVxuLyogTmVzdGVkICovXG4udWkuaW52ZXJ0ZWQuc2VnbWVudCAuc2VnbWVudCB7XG4gIGNvbG9yOiAjMzMzMzMzO1xufVxuLnVpLmludmVydGVkLnNlZ21lbnQgLmludmVydGVkLnNlZ21lbnQge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjkpO1xufVxuLyogQXR0YWNoZWQgKi9cbi51aS5pbnZlcnRlZC5hdHRhY2hlZC5zZWdtZW50IHtcbiAgYm9yZGVyLWNvbG9yOiAjNTU1NTU1O1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEVtcGhhc2lzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWNvbmRhcnkgKi9cbi51aS5zZWNvbmRhcnkuc2VnbWVudCB7XG4gIGJhY2tncm91bmQ6ICNGM0Y0RjU7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNik7XG59XG4udWkuc2Vjb25kYXJ5LmludmVydGVkLnNlZ21lbnQge1xuICBiYWNrZ3JvdW5kOiAjMzMzMzMzIGxpbmVhci1ncmFkaWVudChyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMikgMCUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yKSAxMDAlKTtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44KTtcbn1cbi8qIFRlcnRpYXJ5ICovXG4udWkudGVydGlhcnkuc2VnbWVudCB7XG4gIGJhY2tncm91bmQ6ICNEQ0REREU7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNik7XG59XG4udWkudGVydGlhcnkuaW52ZXJ0ZWQuc2VnbWVudCB7XG4gIGJhY2tncm91bmQ6ICM1OTU5NTkgbGluZWFyLWdyYWRpZW50KHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4zNSkgMCUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4zNSkgMTAwJSk7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOCk7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEF0dGFjaGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNaWRkbGUgKi9cbi51aS5hdHRhY2hlZC5zZWdtZW50IHtcbiAgdG9wOiAwcHg7XG4gIGJvdHRvbTogMHB4O1xuICBib3JkZXItcmFkaXVzOiAwcHg7XG4gIG1hcmdpbjogMGVtIC0xcHg7XG4gIHdpZHRoOiBjYWxjKDEwMCUgKyAycHgpO1xuICBtYXgtd2lkdGg6IGNhbGMoMTAwJSArIDJweCk7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNENEQ0RDU7XG59XG4udWkuYXR0YWNoZWQ6bm90KC5tZXNzYWdlKSArIC51aS5hdHRhY2hlZC5zZWdtZW50Om5vdCgudG9wKSB7XG4gIGJvcmRlci10b3A6IG5vbmU7XG59XG4vKiBUb3AgKi9cbi51aVtjbGFzcyo9XCJ0b3AgYXR0YWNoZWRcIl0uc2VnbWVudCB7XG4gIGJvdHRvbTogMHB4O1xuICBtYXJnaW4tYm90dG9tOiAwZW07XG4gIHRvcDogMHB4O1xuICBtYXJnaW4tdG9wOiAxcmVtO1xuICBib3JkZXItcmFkaXVzOiAwLjRyZW0gMC40cmVtIDBlbSAwZW07XG59XG4udWkuc2VnbWVudFtjbGFzcyo9XCJ0b3AgYXR0YWNoZWRcIl06Zmlyc3QtY2hpbGQge1xuICBtYXJnaW4tdG9wOiAwZW07XG59XG4vKiBCb3R0b20gKi9cbi51aS5zZWdtZW50W2NsYXNzKj1cImJvdHRvbSBhdHRhY2hlZFwiXSB7XG4gIGJvdHRvbTogMHB4O1xuICBtYXJnaW4tdG9wOiAwZW07XG4gIHRvcDogMHB4O1xuICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICBib3gtc2hhZG93OiAwcHggMXB4IDJweCAwIHJnYmEoMzQsIDM2LCAzOCwgMC4xNSksIG5vbmU7XG4gIGJvcmRlci1yYWRpdXM6IDBlbSAwZW0gMC40cmVtIDAuNHJlbTtcbn1cbi51aS5zZWdtZW50W2NsYXNzKj1cImJvdHRvbSBhdHRhY2hlZFwiXTpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLWJvdHRvbTogMGVtO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5taW5pLnNlZ21lbnRzIC5zZWdtZW50LFxuLnVpLm1pbmkuc2VnbWVudCB7XG4gIGZvbnQtc2l6ZTogMC44cmVtO1xufVxuLnVpLnRpbnkuc2VnbWVudHMgLnNlZ21lbnQsXG4udWkudGlueS5zZWdtZW50IHtcbiAgZm9udC1zaXplOiAwLjlyZW07XG59XG4udWkuc21hbGwuc2VnbWVudHMgLnNlZ21lbnQsXG4udWkuc21hbGwuc2VnbWVudCB7XG4gIGZvbnQtc2l6ZTogMC45cmVtO1xufVxuLnVpLnNlZ21lbnRzIC5zZWdtZW50LFxuLnVpLnNlZ21lbnQge1xuICBmb250LXNpemU6IDFyZW07XG59XG4udWkubGFyZ2Uuc2VnbWVudHMgLnNlZ21lbnQsXG4udWkubGFyZ2Uuc2VnbWVudCB7XG4gIGZvbnQtc2l6ZTogMS4xcmVtO1xufVxuLnVpLmJpZy5zZWdtZW50cyAuc2VnbWVudCxcbi51aS5iaWcuc2VnbWVudCB7XG4gIGZvbnQtc2l6ZTogMS4zcmVtO1xufVxuLnVpLmh1Z2Uuc2VnbWVudHMgLnNlZ21lbnQsXG4udWkuaHVnZS5zZWdtZW50IHtcbiAgZm9udC1zaXplOiAxLjRyZW07XG59XG4udWkubWFzc2l2ZS5zZWdtZW50cyAuc2VnbWVudCxcbi51aS5tYXNzaXZlLnNlZ21lbnQge1xuICBmb250LXNpemU6IDEuN3JlbTtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBUaGVtZSBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiFcbiAqICMgU2VtYW50aWMgVUkgLSBTdGVwXG4gKiBodHRwOi8vZ2l0aHViLmNvbS9zZW1hbnRpYy1vcmcvc2VtYW50aWMtdWkvXG4gKlxuICpcbiAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZVxuICogaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVFxuICpcbiAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGVwXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgTG9hZCBUaGVtZVxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG5cbuKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVlyAg4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4pWXICAg4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWXXG7ilZrilZDilZDilojilojilZTilZDilZDilZ3ilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKWiOKWiOKVlyDilojilojilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilZTilZDilZDilZDilZDilZ1cbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4pWU4paI4paI4paI4paI4pWU4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilojilojilojilojilojilZdcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVlOKVkOKVkOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4paI4paI4pWR4pWa4paI4paI4pWU4pWd4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilZrilZDilZDilZDilZDilojilojilZFcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWRIOKVmuKVkOKVnSDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZFcbiAgIOKVmuKVkOKVnSAgIOKVmuKVkOKVnSAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWdICAgICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ1cblxuKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIFRoZW1lIFNlbGVjdGlvblxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFRvIG92ZXJyaWRlIGEgdGhlbWUgZm9yIGFuIGluZGl2aWR1YWwgZWxlbWVudFxuICAgc3BlY2lmeSB0aGVtZSBuYW1lIGJlbG93XG4qL1xuLyogR2xvYmFsICovXG4vKiBFbGVtZW50cyAqL1xuLyogQ29sbGVjdGlvbnMgKi9cbi8qIE1vZHVsZXMgKi9cbi8qIFZpZXdzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgRm9sZGVyc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFBhdGggdG8gdGhlbWUgcGFja2FnZXMgKi9cbi8qIFBhdGggdG8gc2l0ZSBvdmVycmlkZSBmb2xkZXIgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBJbXBvcnQgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBJbXBvcnQgRGlyZWN0aXZlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgVGhlbWVcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgU2l0ZSBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0IHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRvcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogUGFja2FnZWQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZG9ycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBDb21wb25lbnQncyBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kb3JzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFNpdGUgdGhlbWUgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgIFVzZXIgR2xvYmFsIFZhcmlhYmxlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIG1hcnNvIGNvbG9ycyAqL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuIENvbXBvbmVudCBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0ICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0ZXBcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBHcm91cFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBFbGVtZW50XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJY29uICovXG4vKiBUaXRsZSAqL1xuLyogRGVzY3JpcHRpb24gKi9cbi8qIEFycm93ICovXG4vKiBNb2JpbGUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIFR5cGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBWZXJ0aWNhbCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBWYXJpYXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBTdGF0ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIENvbXBsZXRlZCAqL1xuLyogSG92ZXIgKi9cbi8qIERvd24gKi9cbi8qIEFjdGl2ZSAqL1xuLyogQWN0aXZlICsgSG92ZXIgKi9cbi8qIERpc2FibGVkICovXG4vKiBQYWNrYWdlZCBUaGVtZSAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGVwXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgR3JvdXBcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRWxlbWVudFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSWNvbiAqL1xuLyogVGl0bGUgKi9cbi8qIERlc2NyaXB0aW9uICovXG4vKiBBcnJvdyAqL1xuLyogTW9iaWxlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBUeXBlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVmVydGljYWwgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgVmFyaWF0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgU3RhdGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBDb21wbGV0ZWQgKi9cbi8qIEhvdmVyICovXG4vKiBEb3duICovXG4vKiBBY3RpdmUgKi9cbi8qIEFjdGl2ZSArIEhvdmVyICovXG4vKiBEaXNhYmxlZCAqL1xuLyogU2l0ZSBUaGVtZSAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICBVc2VyIFZhcmlhYmxlIE92ZXJyaWRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgTWl4LWluc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgT3ZlcnJpZGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEVuZCBDb25maWcgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBQbHVyYWxcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4udWkuc3RlcHMge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gIG1hcmdpbjogMWVtIDBlbTtcbiAgYmFja2dyb3VuZDogJyc7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG4gIGxpbmUtaGVpZ2h0OiAxLjFlbTtcbiAgYm9yZGVyLXJhZGl1czogMC40cmVtO1xuICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpO1xufVxuLyogRmlyc3QgU3RlcHMgKi9cbi51aS5zdGVwczpmaXJzdC1jaGlsZCB7XG4gIG1hcmdpbi10b3A6IDBlbTtcbn1cbi8qIExhc3QgU3RlcHMgKi9cbi51aS5zdGVwczpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLWJvdHRvbTogMGVtO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgU2luZ3VsYXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4udWkuc3RlcHMgLnN0ZXAge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXg6IDEgMCBhdXRvO1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBtYXJnaW46IDBlbSAwZW07XG4gIHBhZGRpbmc6IDEuMWVtIDJlbTtcbiAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbiAgY29sb3I6ICMzMzMzMzM7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG4gIGJvcmRlci1yYWRpdXM6IDBlbTtcbiAgYm9yZGVyOiBub25lO1xuICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpO1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMXMgZWFzZSwgb3BhY2l0eSAwLjFzIGVhc2UsIGNvbG9yIDAuMXMgZWFzZSwgYm94LXNoYWRvdyAwLjFzIGVhc2U7XG59XG4vKiBBcnJvdyAqL1xuLnVpLnN0ZXBzIC5zdGVwOmFmdGVyIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAyO1xuICBjb250ZW50OiAnJztcbiAgdG9wOiA1MCU7XG4gIHJpZ2h0OiAwJTtcbiAgYm9yZGVyOiBtZWRpdW0gbm9uZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbiAgd2lkdGg6IDEuMWVtO1xuICBoZWlnaHQ6IDEuMWVtO1xuICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICBib3JkZXItY29sb3I6IHJnYmEoMzQsIDM2LCAzOCwgMC4xNSk7XG4gIGJvcmRlci13aWR0aDogMHB4IDFweCAxcHggMHB4O1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMXMgZWFzZSwgb3BhY2l0eSAwLjFzIGVhc2UsIGNvbG9yIDAuMXMgZWFzZSwgYm94LXNoYWRvdyAwLjFzIGVhc2U7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSB0cmFuc2xhdGVYKDUwJSkgcm90YXRlKC00NWRlZyk7XG59XG4vKiBGaXJzdCBTdGVwICovXG4udWkuc3RlcHMgLnN0ZXA6Zmlyc3QtY2hpbGQge1xuICBwYWRkaW5nLWxlZnQ6IDJlbTtcbiAgYm9yZGVyLXJhZGl1czogMC40cmVtIDBlbSAwZW0gMC40cmVtO1xufVxuLyogTGFzdCBTdGVwICovXG4udWkuc3RlcHMgLnN0ZXA6bGFzdC1jaGlsZCB7XG4gIGJvcmRlci1yYWRpdXM6IDBlbSAwLjRyZW0gMC40cmVtIDBlbTtcbn1cbi51aS5zdGVwcyAuc3RlcDpsYXN0LWNoaWxkIHtcbiAgYm9yZGVyLXJpZ2h0OiBub25lO1xuICBtYXJnaW4tcmlnaHQ6IDBlbTtcbn1cbi8qIE9ubHkgU3RlcCAqL1xuLnVpLnN0ZXBzIC5zdGVwOm9ubHktY2hpbGQge1xuICBib3JkZXItcmFkaXVzOiAwLjRyZW07XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgQ29udGVudFxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFRpdGxlICovXG4udWkuc3RlcHMgLnN0ZXAgLnRpdGxlIHtcbiAgZm9udC1mYW1pbHk6ICdFeG8gMicsICdMYXRvJywgQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxLjFlbTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG4udWkuc3RlcHMgLnN0ZXAgPiAudGl0bGUge1xuICB3aWR0aDogMTAwJTtcbn1cbi8qIERlc2NyaXB0aW9uICovXG4udWkuc3RlcHMgLnN0ZXAgLmRlc2NyaXB0aW9uIHtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zaXplOiAwLjllbTtcbiAgY29sb3I6ICMzMzMzMzM7XG59XG4udWkuc3RlcHMgLnN0ZXAgPiAuZGVzY3JpcHRpb24ge1xuICB3aWR0aDogMTAwJTtcbn1cbi51aS5zdGVwcyAuc3RlcCAudGl0bGUgfiAuZGVzY3JpcHRpb24ge1xuICBtYXJnaW4tdG9wOiAwLjI1ZW07XG59XG4vKiBJY29uICovXG4udWkuc3RlcHMgLnN0ZXAgPiAuaWNvbiB7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBmb250LXNpemU6IDIuNWVtO1xuICBtYXJnaW46IDBlbSAxcmVtIDBlbSAwZW07XG59XG4udWkuc3RlcHMgLnN0ZXAgPiAuaWNvbixcbi51aS5zdGVwcyAuc3RlcCA+IC5pY29uIH4gLmNvbnRlbnQge1xuICBkaXNwbGF5OiBibG9jaztcbiAgZmxleDogMCAxIGF1dG87XG4gIGFsaWduLXNlbGY6IG1pZGRsZTtcbn1cbi51aS5zdGVwcyAuc3RlcCA+IC5pY29uIH4gLmNvbnRlbnQge1xuICBmbGV4LWdyb3c6IDEgMCBhdXRvO1xufVxuLyogSG9yaXpvbnRhbCBJY29uICovXG4udWkuc3RlcHM6bm90KC52ZXJ0aWNhbCkgLnN0ZXAgPiAuaWNvbiB7XG4gIHdpZHRoOiBhdXRvO1xufVxuLyogTGluayAqL1xuLnVpLnN0ZXBzIC5saW5rLnN0ZXAsXG4udWkuc3RlcHMgYS5zdGVwIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFR5cGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgICBPcmRlcmVkXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLm9yZGVyZWQuc3RlcHMge1xuICBjb3VudGVyLXJlc2V0OiBvcmRlcmVkO1xufVxuLnVpLm9yZGVyZWQuc3RlcHMgLnN0ZXA6YmVmb3JlIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBvc2l0aW9uOiBzdGF0aWM7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgY29udGVudDogY291bnRlcnMob3JkZXJlZCwgXCIuXCIpO1xuICBhbGlnbi1zZWxmOiBtaWRkbGU7XG4gIG1hcmdpbi1yaWdodDogMXJlbTtcbiAgZm9udC1zaXplOiAyLjVlbTtcbiAgY291bnRlci1pbmNyZW1lbnQ6IG9yZGVyZWQ7XG4gIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cbi51aS5vcmRlcmVkLnN0ZXBzIC5zdGVwID4gKiB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBhbGlnbi1zZWxmOiBtaWRkbGU7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgVmVydGljYWxcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkudmVydGljYWwuc3RlcHMge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgb3ZlcmZsb3c6IHZpc2libGU7XG59XG4udWkudmVydGljYWwuc3RlcHMgLnN0ZXAge1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gIGJvcmRlci1yYWRpdXM6IDBlbTtcbiAgcGFkZGluZzogMS4xZW0gMmVtO1xuICBib3JkZXItcmlnaHQ6IG5vbmU7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpO1xufVxuLnVpLnZlcnRpY2FsLnN0ZXBzIC5zdGVwOmZpcnN0LWNoaWxkIHtcbiAgcGFkZGluZzogMS4xZW0gMmVtO1xuICBib3JkZXItcmFkaXVzOiAwLjRyZW0gMC40cmVtIDBlbSAwZW07XG59XG4udWkudmVydGljYWwuc3RlcHMgLnN0ZXA6bGFzdC1jaGlsZCB7XG4gIGJvcmRlci1ib3R0b206IG5vbmU7XG4gIGJvcmRlci1yYWRpdXM6IDBlbSAwZW0gMC40cmVtIDAuNHJlbTtcbn1cbi51aS52ZXJ0aWNhbC5zdGVwcyAuc3RlcDpvbmx5LWNoaWxkIHtcbiAgYm9yZGVyLXJhZGl1czogMC40cmVtO1xufVxuLyogQXJyb3cgKi9cbi51aS52ZXJ0aWNhbC5zdGVwcyAuc3RlcDphZnRlciB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4udWkudmVydGljYWwuc3RlcHMgLnN0ZXA6YWZ0ZXIge1xuICB0b3A6IDUwJTtcbiAgcmlnaHQ6IDAlO1xuICBib3JkZXItd2lkdGg6IDBweCAxcHggMXB4IDBweDtcbn1cbi51aS52ZXJ0aWNhbC5zdGVwcyAuc3RlcDphZnRlciB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4udWkudmVydGljYWwuc3RlcHMgLmFjdGl2ZS5zdGVwOmFmdGVyIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG4udWkudmVydGljYWwuc3RlcHMgLnN0ZXA6bGFzdC1jaGlsZDphZnRlciB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4udWkudmVydGljYWwuc3RlcHMgLmFjdGl2ZS5zdGVwOmxhc3QtY2hpbGQ6YWZ0ZXIge1xuICBkaXNwbGF5OiBibG9jaztcbn1cbi8qLS0tLS0tLS0tLS0tLS0tXG4gICAgUmVzcG9uc2l2ZVxuLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNb2JpbGUgKERlZmF1bHQpICovXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC51aS5zdGVwcyB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgfVxuICAudWkuc3RlcHMgLnN0ZXAge1xuICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBib3JkZXItcmFkaXVzOiAwZW07XG4gICAgcGFkZGluZzogMS4xZW0gMmVtO1xuICB9XG4gIC51aS5zdGVwcyAuc3RlcDpmaXJzdC1jaGlsZCB7XG4gICAgcGFkZGluZzogMS4xZW0gMmVtO1xuICAgIGJvcmRlci1yYWRpdXM6IDAuNHJlbSAwLjRyZW0gMGVtIDBlbTtcbiAgfVxuICAudWkuc3RlcHMgLnN0ZXA6bGFzdC1jaGlsZCB7XG4gICAgYm9yZGVyLXJhZGl1czogMGVtIDBlbSAwLjRyZW0gMC40cmVtO1xuICB9XG4gIC8qIEFycm93ICovXG4gIC51aS5zdGVwcyAuc3RlcDphZnRlciB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG4gIC8qIENvbnRlbnQgKi9cbiAgLnVpLnN0ZXBzIC5zdGVwIC5jb250ZW50IHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIH1cbiAgLyogSWNvbiAqL1xuICAudWkuc3RlcHMgLnN0ZXAgPiAuaWNvbixcbiAgLnVpLm9yZGVyZWQuc3RlcHMgLnN0ZXA6YmVmb3JlIHtcbiAgICBtYXJnaW46IDBlbSAwZW0gMXJlbSAwZW07XG4gIH1cbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogTGluayBIb3ZlciAqL1xuLnVpLnN0ZXBzIC5saW5rLnN0ZXA6aG92ZXI6OmFmdGVyLFxuLnVpLnN0ZXBzIC5saW5rLnN0ZXA6aG92ZXIsXG4udWkuc3RlcHMgYS5zdGVwOmhvdmVyOjphZnRlcixcbi51aS5zdGVwcyBhLnN0ZXA6aG92ZXIge1xuICBiYWNrZ3JvdW5kOiAjRjlGQUZCO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjgpO1xufVxuLyogTGluayBEb3duICovXG4udWkuc3RlcHMgLmxpbmsuc3RlcDphY3RpdmU6OmFmdGVyLFxuLnVpLnN0ZXBzIC5saW5rLnN0ZXA6YWN0aXZlLFxuLnVpLnN0ZXBzIGEuc3RlcDphY3RpdmU6OmFmdGVyLFxuLnVpLnN0ZXBzIGEuc3RlcDphY3RpdmUge1xuICBiYWNrZ3JvdW5kOiAjRjNGNEY1O1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjkpO1xufVxuLyogQWN0aXZlICovXG4udWkuc3RlcHMgLnN0ZXAuYWN0aXZlIHtcbiAgY3Vyc29yOiBhdXRvO1xuICBiYWNrZ3JvdW5kOiAjRjNGNEY1O1xufVxuLnVpLnN0ZXBzIC5zdGVwLmFjdGl2ZTphZnRlciB7XG4gIGJhY2tncm91bmQ6ICNGM0Y0RjU7XG59XG4udWkuc3RlcHMgLnN0ZXAuYWN0aXZlIC50aXRsZSB7XG4gIGNvbG9yOiAjNDE4M0M0O1xufVxuLnVpLm9yZGVyZWQuc3RlcHMgLnN0ZXAuYWN0aXZlOmJlZm9yZSxcbi51aS5zdGVwcyAuYWN0aXZlLnN0ZXAgLmljb24ge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg1KTtcbn1cbi8qIEFjdGl2ZSBBcnJvdyAqL1xuLnVpLnN0ZXBzIC5zdGVwOmFmdGVyIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG4udWkuc3RlcHMgLmFjdGl2ZS5zdGVwOmFmdGVyIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG4udWkuc3RlcHMgLnN0ZXA6bGFzdC1jaGlsZDphZnRlciB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4udWkuc3RlcHMgLmFjdGl2ZS5zdGVwOmxhc3QtY2hpbGQ6YWZ0ZXIge1xuICBkaXNwbGF5OiBub25lO1xufVxuLyogQWN0aXZlIEhvdmVyICovXG4udWkuc3RlcHMgLmxpbmsuYWN0aXZlLnN0ZXA6aG92ZXI6OmFmdGVyLFxuLnVpLnN0ZXBzIC5saW5rLmFjdGl2ZS5zdGVwOmhvdmVyLFxuLnVpLnN0ZXBzIGEuYWN0aXZlLnN0ZXA6aG92ZXI6OmFmdGVyLFxuLnVpLnN0ZXBzIGEuYWN0aXZlLnN0ZXA6aG92ZXIge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGJhY2tncm91bmQ6ICNEQ0REREU7XG4gIGNvbG9yOiAjMzMzMzMzO1xufVxuLyogQ29tcGxldGVkICovXG4udWkuc3RlcHMgLnN0ZXAuY29tcGxldGVkID4gLmljb246YmVmb3JlLFxuLnVpLm9yZGVyZWQuc3RlcHMgLnN0ZXAuY29tcGxldGVkOmJlZm9yZSB7XG4gIGNvbG9yOiAjMTlhNTMxO1xufVxuLyogRGlzYWJsZWQgKi9cbi51aS5zdGVwcyAuZGlzYWJsZWQuc3RlcCB7XG4gIGN1cnNvcjogYXV0bztcbiAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG4udWkuc3RlcHMgLmRpc2FibGVkLnN0ZXAsXG4udWkuc3RlcHMgLmRpc2FibGVkLnN0ZXAgLnRpdGxlLFxuLnVpLnN0ZXBzIC5kaXNhYmxlZC5zdGVwIC5kZXNjcmlwdGlvbiB7XG4gIGNvbG9yOiByZ2JhKDQwLCA0MCwgNDAsIDAuMyk7XG59XG4udWkuc3RlcHMgLmRpc2FibGVkLnN0ZXA6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgVmFyaWF0aW9uc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIFN0YWNrYWJsZVxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRhYmxldCBPciBCZWxvdyAqL1xuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA5OTFweCkge1xuICAudWlbY2xhc3MqPVwidGFibGV0IHN0YWNrYWJsZVwiXS5zdGVwcyB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgfVxuICAvKiBTdGVwcyAqL1xuICAudWlbY2xhc3MqPVwidGFibGV0IHN0YWNrYWJsZVwiXS5zdGVwcyAuc3RlcCB7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBib3JkZXItcmFkaXVzOiAwZW07XG4gICAgcGFkZGluZzogMS4xZW0gMmVtO1xuICB9XG4gIC51aVtjbGFzcyo9XCJ0YWJsZXQgc3RhY2thYmxlXCJdLnN0ZXBzIC5zdGVwOmZpcnN0LWNoaWxkIHtcbiAgICBwYWRkaW5nOiAxLjFlbSAyZW07XG4gICAgYm9yZGVyLXJhZGl1czogMC40cmVtIDAuNHJlbSAwZW0gMGVtO1xuICB9XG4gIC51aVtjbGFzcyo9XCJ0YWJsZXQgc3RhY2thYmxlXCJdLnN0ZXBzIC5zdGVwOmxhc3QtY2hpbGQge1xuICAgIGJvcmRlci1yYWRpdXM6IDBlbSAwZW0gMC40cmVtIDAuNHJlbTtcbiAgfVxuICAvKiBBcnJvdyAqL1xuICAudWlbY2xhc3MqPVwidGFibGV0IHN0YWNrYWJsZVwiXS5zdGVwcyAuc3RlcDphZnRlciB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG4gIC8qIENvbnRlbnQgKi9cbiAgLnVpW2NsYXNzKj1cInRhYmxldCBzdGFja2FibGVcIl0uc3RlcHMgLnN0ZXAgLmNvbnRlbnQge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxuICAvKiBJY29uICovXG4gIC51aVtjbGFzcyo9XCJ0YWJsZXQgc3RhY2thYmxlXCJdLnN0ZXBzIC5zdGVwID4gLmljb24sXG4gIC51aVtjbGFzcyo9XCJ0YWJsZXQgc3RhY2thYmxlXCJdLm9yZGVyZWQuc3RlcHMgLnN0ZXA6YmVmb3JlIHtcbiAgICBtYXJnaW46IDBlbSAwZW0gMXJlbSAwZW07XG4gIH1cbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgIEZsdWlkXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogRmx1aWQgKi9cbi51aS5mbHVpZC5zdGVwcyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIHdpZHRoOiAxMDAlO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgIEF0dGFjaGVkXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVG9wICovXG4udWkuYXR0YWNoZWQuc3RlcHMge1xuICB3aWR0aDogY2FsYygxMDAlICsgMnB4KSAhaW1wb3J0YW50O1xuICBtYXJnaW46IDBlbSAtMXB4IDA7XG4gIG1heC13aWR0aDogY2FsYygxMDAlICsgMnB4KTtcbiAgYm9yZGVyLXJhZGl1czogMC40cmVtIDAuNHJlbSAwZW0gMGVtO1xufVxuLnVpLmF0dGFjaGVkLnN0ZXBzIC5zdGVwOmZpcnN0LWNoaWxkIHtcbiAgYm9yZGVyLXJhZGl1czogMC40cmVtIDBlbSAwZW0gMGVtO1xufVxuLnVpLmF0dGFjaGVkLnN0ZXBzIC5zdGVwOmxhc3QtY2hpbGQge1xuICBib3JkZXItcmFkaXVzOiAwZW0gMC40cmVtIDBlbSAwZW07XG59XG4vKiBCb3R0b20gKi9cbi51aS5ib3R0b20uYXR0YWNoZWQuc3RlcHMge1xuICBtYXJnaW46IDAgLTFweCAwZW07XG4gIGJvcmRlci1yYWRpdXM6IDBlbSAwZW0gMC40cmVtIDAuNHJlbTtcbn1cbi51aS5ib3R0b20uYXR0YWNoZWQuc3RlcHMgLnN0ZXA6Zmlyc3QtY2hpbGQge1xuICBib3JkZXItcmFkaXVzOiAwZW0gMGVtIDBlbSAwLjRyZW07XG59XG4udWkuYm90dG9tLmF0dGFjaGVkLnN0ZXBzIC5zdGVwOmxhc3QtY2hpbGQge1xuICBib3JkZXItcmFkaXVzOiAwZW0gMGVtIDAuNHJlbSAwZW07XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFdmVubHkgRGl2aWRlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLm9uZS5zdGVwcyxcbi51aS50d28uc3RlcHMsXG4udWkudGhyZWUuc3RlcHMsXG4udWkuZm91ci5zdGVwcyxcbi51aS5maXZlLnN0ZXBzLFxuLnVpLnNpeC5zdGVwcyxcbi51aS5zZXZlbi5zdGVwcyxcbi51aS5laWdodC5zdGVwcyB7XG4gIHdpZHRoOiAxMDAlO1xufVxuLnVpLm9uZS5zdGVwcyA+IC5zdGVwLFxuLnVpLnR3by5zdGVwcyA+IC5zdGVwLFxuLnVpLnRocmVlLnN0ZXBzID4gLnN0ZXAsXG4udWkuZm91ci5zdGVwcyA+IC5zdGVwLFxuLnVpLmZpdmUuc3RlcHMgPiAuc3RlcCxcbi51aS5zaXguc3RlcHMgPiAuc3RlcCxcbi51aS5zZXZlbi5zdGVwcyA+IC5zdGVwLFxuLnVpLmVpZ2h0LnN0ZXBzID4gLnN0ZXAge1xuICBmbGV4LXdyYXA6IG5vd3JhcDtcbn1cbi51aS5vbmUuc3RlcHMgPiAuc3RlcCB7XG4gIHdpZHRoOiAxMDAlO1xufVxuLnVpLnR3by5zdGVwcyA+IC5zdGVwIHtcbiAgd2lkdGg6IDUwJTtcbn1cbi51aS50aHJlZS5zdGVwcyA+IC5zdGVwIHtcbiAgd2lkdGg6IDMzLjMzMyU7XG59XG4udWkuZm91ci5zdGVwcyA+IC5zdGVwIHtcbiAgd2lkdGg6IDI1JTtcbn1cbi51aS5maXZlLnN0ZXBzID4gLnN0ZXAge1xuICB3aWR0aDogMjAlO1xufVxuLnVpLnNpeC5zdGVwcyA+IC5zdGVwIHtcbiAgd2lkdGg6IDE2LjY2NiU7XG59XG4udWkuc2V2ZW4uc3RlcHMgPiAuc3RlcCB7XG4gIHdpZHRoOiAxNC4yODUlO1xufVxuLnVpLmVpZ2h0LnN0ZXBzID4gLnN0ZXAge1xuICB3aWR0aDogMTIuNSU7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLm1pbmkuc3RlcHMgLnN0ZXAsXG4udWkubWluaS5zdGVwIHtcbiAgZm9udC1zaXplOiAwLjhyZW07XG59XG4udWkudGlueS5zdGVwcyAuc3RlcCxcbi51aS50aW55LnN0ZXAge1xuICBmb250LXNpemU6IDAuOXJlbTtcbn1cbi51aS5zbWFsbC5zdGVwcyAuc3RlcCxcbi51aS5zbWFsbC5zdGVwIHtcbiAgZm9udC1zaXplOiAwLjlyZW07XG59XG4udWkuc3RlcHMgLnN0ZXAsXG4udWkuc3RlcCB7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbn1cbi51aS5sYXJnZS5zdGVwcyAuc3RlcCxcbi51aS5sYXJnZS5zdGVwIHtcbiAgZm9udC1zaXplOiAxLjFyZW07XG59XG4udWkuYmlnLnN0ZXBzIC5zdGVwLFxuLnVpLmJpZy5zdGVwIHtcbiAgZm9udC1zaXplOiAxLjNyZW07XG59XG4udWkuaHVnZS5zdGVwcyAuc3RlcCxcbi51aS5odWdlLnN0ZXAge1xuICBmb250LXNpemU6IDEuNHJlbTtcbn1cbi51aS5tYXNzaXZlLnN0ZXBzIC5zdGVwLFxuLnVpLm1hc3NpdmUuc3RlcCB7XG4gIGZvbnQtc2l6ZTogMS43cmVtO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFRoZW1lIE92ZXJyaWRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ1N0ZXAnO1xuICBzcmM6IHVybChkYXRhOmFwcGxpY2F0aW9uL3gtZm9udC10dGY7Y2hhcnNldD11dGYtODs7YmFzZTY0LEFBRUFBQUFPQUlBQUF3QmdUMU12TWozaFNRRUFBQURzQUFBQVZtTnRZWERRRWhtM0FBQUJSQUFBQVVwamRuUWdCa24vbEFBQUJ1d0FBQUFjWm5CbmJZb0tlRHNBQUFjSUFBQUprV2RoYzNBQUFBQVFBQUFHNUFBQUFBaG5iSGxtMzJjRWRnQUFBcEFBQUFDMmFHVmhaQUVyUEhzQUFBTklBQUFBTm1ob1pXRUhVd05OQUFBRGdBQUFBQ1JvYlhSNEN5a0FBQUFBQTZRQUFBQU1iRzlqWVFBNEFGc0FBQU93QUFBQUNHMWhlSEFBcGdtOEFBQUR1QUFBQUNCdVlXMWx6SjBhSEFBQUE5Z0FBQUxOY0c5emRLNjlRSmdBQUFhb0FBQUFPM0J5WlhDU29aci9BQUFRbkFBQUFGWUFBUU80QVpBQUJRQUlBbm9DdkFBQUFJd0NlZ0s4QUFBQjRBQXhBUUlBQUFJQUJRTUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBVUdaRlpBQkE2QURvQVFOUy8yb0FXZ01MQUU4QUFBQUJBQUFBQUFBQUFBQUFBd0FBQUFNQUFBQWNBQUVBQUFBQUFFUUFBd0FCQUFBQUhBQUVBQ2dBQUFBR0FBUUFBUUFDQUFEb0FmLy9BQUFBQU9nQS8vOEFBQmdCQUFFQUFBQUFBQUFBQUFFR0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFRQUFBQUFEcEFLWUFCVUFIRUFaRHdFQUFRRkNBQUlCQW1vQUFRQUJhZ0FBQUdFVUZ4UURFaXNCRkFjQkJpSW5BU1kwUHdFMk1oOEJBVFl5SHdFV0E2UVAvaUFRTEJEKzZnOFBUQkFzRUtRQmJoQXNFRXdQQWhZV0VQNGdEdzhCRmhBc0VFd1FFS1VCYnhBUVRCQUFBQUgvL2YreEExOERDd0FNQUJKQUR3QUJBUXBEQUFBQUN3QkVGUk1DRVNzQkZBNEJJaTRDUGdFeUhnRURXWExHNk1odUJucTg5THArQVY1MXhIUjB4T3JFZEhURUFBQUFBQUVBQUFBQkFBRERlUnBkWHc4ODlRQUxBK2dBQUFBQXp6V1lqUUFBQUFEUE5XQk4vLzMvc1FPa0F3c0FBQUFJQUFJQUFBQUFBQUFBQVFBQUExTC9hZ0JhQStnQUFQLzNBNlFBQVFBQUFBQUFBQUFBQUFBQUFBQUFBQU1ENkFBQUErZ0FBQU5aQUFBQUFBQUFBRGdBV3dBQkFBQUFBd0FXQUFFQUFBQUFBQUlBQmdBVEFHNEFBQUF0Q1pFQUFBQUFBQUFBRWdEZUFBRUFBQUFBQUFBQU5RQUFBQUVBQUFBQUFBRUFDQUExQUFFQUFBQUFBQUlBQndBOUFBRUFBQUFBQUFNQUNBQkVBQUVBQUFBQUFBUUFDQUJNQUFFQUFBQUFBQVVBQ3dCVUFBRUFBQUFBQUFZQUNBQmZBQUVBQUFBQUFBb0FLd0JuQUFFQUFBQUFBQXNBRXdDU0FBTUFBUVFKQUFBQWFnQ2xBQU1BQVFRSkFBRUFFQUVQQUFNQUFRUUpBQUlBRGdFZkFBTUFBUVFKQUFNQUVBRXRBQU1BQVFRSkFBUUFFQUU5QUFNQUFRUUpBQVVBRmdGTkFBTUFBUVFKQUFZQUVBRmpBQU1BQVFRSkFBb0FWZ0Z6QUFNQUFRUUpBQXNBSmdISlEyOXdlWEpwWjJoMElDaERLU0F5TURFMElHSjVJRzl5YVdkcGJtRnNJR0YxZEdodmNuTWdRQ0JtYjI1MFpXeHNieTVqYjIxbWIyNTBaV3hzYjFKbFozVnNZWEptYjI1MFpXeHNiMlp2Ym5SbGJHeHZWbVZ5YzJsdmJpQXhMakJtYjI1MFpXeHNiMGRsYm1WeVlYUmxaQ0JpZVNCemRtY3lkSFJtSUdaeWIyMGdSbTl1ZEdWc2JHOGdjSEp2YW1WamRDNW9kSFJ3T2k4dlptOXVkR1ZzYkc4dVkyOXRBRU1BYndCd0FIa0FjZ0JwQUdjQWFBQjBBQ0FBS0FCREFDa0FJQUF5QURBQU1RQTBBQ0FBWWdCNUFDQUFid0J5QUdrQVp3QnBBRzRBWVFCc0FDQUFZUUIxQUhRQWFBQnZBSElBY3dBZ0FFQUFJQUJtQUc4QWJnQjBBR1VBYkFCc0FHOEFMZ0JqQUc4QWJRQm1BRzhBYmdCMEFHVUFiQUJzQUc4QVVnQmxBR2NBZFFCc0FHRUFjZ0JtQUc4QWJnQjBBR1VBYkFCc0FHOEFaZ0J2QUc0QWRBQmxBR3dBYkFCdkFGWUFaUUJ5QUhNQWFRQnZBRzRBSUFBeEFDNEFNQUJtQUc4QWJnQjBBR1VBYkFCc0FHOEFSd0JsQUc0QVpRQnlBR0VBZEFCbEFHUUFJQUJpQUhrQUlBQnpBSFlBWndBeUFIUUFkQUJtQUNBQVpnQnlBRzhBYlFBZ0FFWUFid0J1QUhRQVpRQnNBR3dBYndBZ0FIQUFjZ0J2QUdvQVpRQmpBSFFBTGdCb0FIUUFkQUJ3QURvQUx3QXZBR1lBYndCdUFIUUFaUUJzQUd3QWJ3QXVBR01BYndCdEFBQUFBQUlBQUFBQUFBQUFDZ0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUF3QUFBUUlCQXdsamFHVmphMjFoY21zR1kybHlZMnhsQUFBQUFBRUFBZi8vQUE4QUFBQUFBQUFBQUFBQUFBQUFBQUFBQURJQU1nTUwvN0VEQy8reHNBQXNzQ0JnWmkyd0FTd2daQ0N3d0ZDd0JDWmFzQVJGVzFnaEl5RWJpbGdnc0ZCUVdDR3dRRmtiSUxBNFVGZ2hzRGhaV1NDd0NrVmhaTEFvVUZnaHNBcEZJTEF3VUZnaHNEQlpHeUN3d0ZCWUlHWWdpb3BoSUxBS1VGaGdHeUN3SUZCWUliQUtZQnNnc0RaUVdDR3dObUFiWUZsWldSdXdBQ3RaV1NPd0FGQllaVmxaTGJBQ0xDQkZJTEFFSldGa0lMQUZRMUJZc0FValFyQUdJMEliSVNGWnNBRmdMYkFETENNaEl5RWdaTEVGWWtJZ3NBWWpRcklLQUFJcUlTQ3dCa01naWlDS3NBQXJzVEFGSllwUldHQlFHMkZTV1ZnaldTRWdzRUJUV0xBQUt4c2hzRUJaSTdBQVVGaGxXUzJ3QkN5d0IwTXJzZ0FDQUVOZ1FpMndCU3l3QnlOQ0l5Q3dBQ05DWWJDQVlyQUJZTEFFS2kyd0Jpd2dJRVVnc0FKRlk3QUJSV0pnUkxBQllDMndCeXdnSUVVZ3NBQXJJN0VDQkNWZ0lFV0tJMkVnWkNDd0lGQllJYkFBRzdBd1VGaXdJQnV3UUZsWkk3QUFVRmhsV2JBREpTTmhSRVN3QVdBdHNBZ3NzUVVGUmJBQllVUXRzQWtzc0FGZ0lDQ3dDVU5Lc0FCUVdDQ3dDU05DV2JBS1EwcXdBRkpZSUxBS0kwSlpMYkFLTENDNEJBQmlJTGdFQUdPS0kyR3dDME5nSUlwZ0lMQUxJMElqTGJBTExFdFVXTEVIQVVSWkpMQU5aU040TGJBTUxFdFJXRXRUV0xFSEFVUlpHeUZaSkxBVFpTTjRMYkFOTExFQURFTlZXTEVNREVPd0FXRkNzQW9yV2JBQVE3QUNKVUt4Q1FJbFFyRUtBaVZDc0FFV0l5Q3dBeVZRV0xFQkFFTmdzQVFsUW9xS0lJb2pZYkFKS2lFanNBRmhJSW9qWWJBSktpRWJzUUVBUTJDd0FpVkNzQUlsWWJBSktpRlpzQWxEUjdBS1EwZGdzSUJpSUxBQ1JXT3dBVVZpWUxFQUFCTWpSTEFCUTdBQVBySUJBUUZEWUVJdHNBNHNzUUFGUlZSWUFMQU1JMElnWUxBQlliVU5EUUVBQ3dCQ1FvcGdzUTBGSzdCdEt4c2lXUzJ3RHl5eEFBNHJMYkFRTExFQkRpc3RzQkVzc1FJT0t5MndFaXl4QXc0ckxiQVRMTEVFRGlzdHNCUXNzUVVPS3kyd0ZTeXhCZzRyTGJBV0xMRUhEaXN0c0Jjc3NRZ09LeTJ3R0N5eENRNHJMYkFaTExBSUs3RUFCVVZVV0FDd0RDTkNJR0N3QVdHMURRMEJBQXNBUWtLS1lMRU5CU3V3YlNzYklsa3RzQm9zc1FBWkt5MndHeXl4QVJrckxiQWNMTEVDR1NzdHNCMHNzUU1aS3kyd0hpeXhCQmtyTGJBZkxMRUZHU3N0c0NBc3NRWVpLeTJ3SVN5eEJ4a3JMYkFpTExFSUdTc3RzQ01zc1FrWkt5MndKQ3dnUExBQllDMndKU3dnWUxBTllDQkRJN0FCWUVPd0FpVmhzQUZnc0NRcUlTMndKaXl3SlN1d0pTb3RzQ2NzSUNCSElDQ3dBa1Zqc0FGRlltQWpZVGdqSUlwVldDQkhJQ0N3QWtWanNBRkZZbUFqWVRnYklWa3RzQ2dzc1FBRlJWUllBTEFCRnJBbktyQUJGVEFiSWxrdHNDa3NzQWdyc1FBRlJWUllBTEFCRnJBbktyQUJGVEFiSWxrdHNDb3NJRFd3QVdBdHNDc3NBTEFEUldPd0FVVmlzQUFyc0FKRlk3QUJSV0t3QUN1d0FCYTBBQUFBQUFCRVBpTTRzU29CRlNvdHNDd3NJRHdnUnlDd0FrVmpzQUZGWW1Dd0FFTmhPQzJ3TFN3dUZ6d3RzQzRzSUR3Z1J5Q3dBa1Zqc0FGRlltQ3dBRU5oc0FGRFl6Z3RzQzhzc1FJQUZpVWdMaUJIc0FBalFyQUNKVW1LaWtjalJ5TmhJRmhpR3lGWnNBRWpRckl1QVFFVkZDb3RzREFzc0FBV3NBUWxzQVFsUnlOSEkyR3dCa1VyWllvdUl5QWdQSW80TGJBeExMQUFGckFFSmJBRUpTQXVSeU5ISTJFZ3NBUWpRckFHUlNzZ3NHQlFXQ0N3UUZGWXN3SWdBeUFic3dJbUF4cFpRa0lqSUxBSVF5Q0tJMGNqUnlOaEkwWmdzQVJEc0lCaVlDQ3dBQ3NnaW9waElMQUNRMkJrSTdBRFEyRmtVRml3QWtOaEc3QURRMkJac0FNbHNJQmlZU01nSUxBRUppTkdZVGdiSTdBSVEwYXdBaVd3Q0VOSEkwY2pZV0Fnc0FSRHNJQmlZQ01nc0FBckk3QUVRMkN3QUN1d0JTVmhzQVVsc0lCaXNBUW1ZU0N3QkNWZ1pDT3dBeVZnWkZCWUlSc2pJVmtqSUNDd0JDWWpSbUU0V1Myd01peXdBQllnSUNDd0JTWWdMa2NqUnlOaEl6dzRMYkF6TExBQUZpQ3dDQ05DSUNBZ1JpTkhzQUFySTJFNExiQTBMTEFBRnJBREpiQUNKVWNqUnlOaHNBQlVXQzRnUENNaEc3QUNKYkFDSlVjalJ5TmhJTEFGSmJBRUpVY2pSeU5oc0FZbHNBVWxTYkFDSldHd0FVVmpJeUJZWWhzaFdXT3dBVVZpWUNNdUl5QWdQSW80SXlGWkxiQTFMTEFBRmlDd0NFTWdMa2NqUnlOaElHQ3dJR0Jtc0lCaUl5QWdQSW80TGJBMkxDTWdMa2F3QWlWR1VsZ2dQRmt1c1NZQkZDc3RzRGNzSXlBdVJyQUNKVVpRV0NBOFdTNnhKZ0VVS3kyd09Dd2pJQzVHc0FJbFJsSllJRHhaSXlBdVJyQUNKVVpRV0NBOFdTNnhKZ0VVS3kyd09TeXdNQ3NqSUM1R3NBSWxSbEpZSUR4WkxyRW1BUlFyTGJBNkxMQXhLNG9nSUR5d0JDTkNpamdqSUM1R3NBSWxSbEpZSUR4WkxyRW1BUlFyc0FSRExyQW1LeTJ3T3l5d0FCYXdCQ1d3QkNZZ0xrY2pSeU5oc0FaRkt5TWdQQ0F1SXppeEpnRVVLeTJ3UEN5eENBUWxRckFBRnJBRUpiQUVKU0F1UnlOSEkyRWdzQVFqUXJBR1JTc2dzR0JRV0NDd1FGRllzd0lnQXlBYnN3SW1BeHBaUWtJaklFZXdCRU93Z0dKZ0lMQUFLeUNLaW1FZ3NBSkRZR1Fqc0FORFlXUlFXTEFDUTJFYnNBTkRZRm13QXlXd2dHSmhzQUlsUm1FNEl5QThJemdiSVNBZ1JpTkhzQUFySTJFNElWbXhKZ0VVS3kyd1BTeXdNQ3N1c1NZQkZDc3RzRDRzc0RFcklTTWdJRHl3QkNOQ0l6aXhKZ0VVSzdBRVF5NndKaXN0c0Q4c3NBQVZJRWV3QUNOQ3NnQUJBUlVVRXk2d0xDb3RzRUFzc0FBVklFZXdBQ05Dc2dBQkFSVVVFeTZ3TENvdHNFRXNzUUFCRkJPd0xTb3RzRUlzc0M4cUxiQkRMTEFBRmtVaklDNGdSb29qWVRpeEpnRVVLeTJ3UkN5d0NDTkNzRU1yTGJCRkxMSUFBRHdyTGJCR0xMSUFBVHdyTGJCSExMSUJBRHdyTGJCSUxMSUJBVHdyTGJCSkxMSUFBRDByTGJCS0xMSUFBVDByTGJCTExMSUJBRDByTGJCTUxMSUJBVDByTGJCTkxMSUFBRGtyTGJCT0xMSUFBVGtyTGJCUExMSUJBRGtyTGJCUUxMSUJBVGtyTGJCUkxMSUFBRHNyTGJCU0xMSUFBVHNyTGJCVExMSUJBRHNyTGJCVUxMSUJBVHNyTGJCVkxMSUFBRDRyTGJCV0xMSUFBVDRyTGJCWExMSUJBRDRyTGJCWUxMSUJBVDRyTGJCWkxMSUFBRG9yTGJCYUxMSUFBVG9yTGJCYkxMSUJBRG9yTGJCY0xMSUJBVG9yTGJCZExMQXlLeTZ4SmdFVUt5MndYaXl3TWl1d05pc3RzRjhzc0RJcnNEY3JMYkJnTExBQUZyQXlLN0E0S3kyd1lTeXdNeXN1c1NZQkZDc3RzR0lzc0RNcnNEWXJMYkJqTExBeks3QTNLeTJ3WkN5d015dXdPQ3N0c0dVc3NEUXJMckVtQVJRckxiQm1MTEEwSzdBMkt5MndaeXl3TkN1d055c3RzR2dzc0RRcnNEZ3JMYkJwTExBMUt5NnhKZ0VVS3kyd2FpeXdOU3V3TmlzdHNHc3NzRFVyc0RjckxiQnNMTEExSzdBNEt5MndiU3dyc0FobHNBTWtVSGl3QVJVd0xRQUFBRXU0QU1oU1dMRUJBWTVadVFnQUNBQmpJTEFCSTBTd0F5TndzZ1FvQ1VWU1JMSUtBZ2Nxc1FZQlJMRWtBWWhSV0xCQWlGaXhCZ05Fc1NZQmlGRll1QVFBaUZpeEJnRkVXVmxaV2JnQi80V3dCSTJ4QlFCRUFBQT0pIGZvcm1hdCgndHJ1ZXR5cGUnKSwgdXJsKGRhdGE6YXBwbGljYXRpb24vZm9udC13b2ZmO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LGQwOUdSZ0FCQUFBQUFBb1VBQTRBQUFBQUVQUUFBUUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFCUFV5OHlBQUFCUkFBQUFFUUFBQUJXUGVGSkFXTnRZWEFBQUFHSUFBQUFPZ0FBQVVyUUVobTNZM1owSUFBQUFjUUFBQUFVQUFBQUhBWkovNVJtY0dkdEFBQUIyQUFBQlBrQUFBbVJpZ3A0TzJkaGMzQUFBQWJVQUFBQUNBQUFBQWdBQUFBUVoyeDVaZ0FBQnR3QUFBQ3VBQUFBdHQ5bkJIWm9aV0ZrQUFBSGpBQUFBRFVBQUFBMkFTczhlMmhvWldFQUFBZkVBQUFBSUFBQUFDUUhVd05OYUcxMGVBQUFCK1FBQUFBTUFBQUFEQXNwQUFCc2IyTmhBQUFIOEFBQUFBZ0FBQUFJQURnQVcyMWhlSEFBQUFmNEFBQUFJQUFBQUNBQXBnbThibUZ0WlFBQUNCZ0FBQUYzQUFBQ3pjeWRHaHh3YjNOMEFBQUprQUFBQUNvQUFBQTdycjFBbUhCeVpYQUFBQW04QUFBQVZnQUFBRmFTb1pyL2VKeGpZR1Rld1RpQmdaV0JnNm1LYVE4REEwTVBoR1o4d0dESXlNVEF3TVRBeXN5QUZRU2t1YVl3T0x4Z2VNSElIUFEvaXlHS21adkJIeWpNQ0pJREFQZTlDMkI0bkdOZ1lHQm1nR0FaQmtZR0VIQUI4aGpCZkJZR0RTRE5CcVFaR1pnWUdGNHcvdjhQVXZDQ0FVUkxNRUxWQXdFakc4T0lCd0JrNUFhdkFBQjRuR05nUUFOR0RFYk0zUDgzZ2pBQUVMUUQ0WGljblZYWmR0TldGSlU4WkhBU09tU2dvQTdYM0RoUTY4cUVLUmd3YVNyRmRpRWRIQWl0QkIya0RIVGtuY2MrNjJ1T1FydFdIL20wN24wOUpMUjByYllzbHMrK1IxdG4yRHJuUmh3aktuMGFpR3ZVb1pLWEE2bXNQWlpLOTBsYzEzVXZqNVVNQm5GZHRoSlBTWnVvblNSS2F0M3NVQzd4V09zcVdTZFlKK1BsSUZaUFZaNW5vQXppRkI1bFNVUWJSQnVwbHlaSjRvbmpKNGtXWnhBZkpVa2dKYU1RcDlMSVVFSTFHc1JTMWFGTTZkQ3IxeE54MDBES1JxTWVkVmhVOTBQRko4YzFwOVNzQTBZcVZ6bkNGZXZWUnI0YnB3TXZlNURFT3NHenJZY3hIbmlzZnBRcWtJcVI2Y2cvZGtwT2xJYUJWSEhVb1ZiaTZEQ1RYL2VSVENyTlFLYU1Za1dsN29HNDNmMTAyeFl4UFhRNnZpNUtsVWFxdXJuT0tKcnQwZkdvZ3lnUDJjYnBwTnpRMmZidzVSbFRWS3RkY2JQdFFHWU5YRXJKYkhTZlJBQWRKbExqNlFGT05ad0NxUm4xUjhYWjU4OEJFc2xjbEtvOFZUS0hlZ09aTXp0N2NUSHRiaWVyc25Da253Y3liM1oyNDUySFE2ZFhoMy9SK2hkTTRjeEhqK0ppZmo1QytsQnFmaUpPSktWR1dNenlwNFlmY1ZjZ1Fya3hpQXNYeXVCVGhEbDBSZHJaWmwzanRUSDJocy81U3FsaFBRbmE2S1A0ZmdyOVRpUXJIR2RSby9WSW5NMWoxM1d0M0dkUVM3VzdGenN5cjBPVkl1N3ZDd3V1TStlRVlaNFdDMVZmbnZuZUJUVC9Cb2huL0VEZU5JVkwrNVlwU3JSdm02Sk11MmlLQ3UwU1ZLVmROc1VVN1lvcHBtblBtbUtHOWgxVHpOS2VNekxqLzh2YzU1SDdITjd4a0p2MlhlU21mUSs1YWQ5SGJ0b1BrSnRXSVRkdEhibHBMeUEzclVadTJsV2pPbllFR2dacEYxSVZRZEEwc3ZwaDNGYWI5VURXakRSOGFXRHlMbUxJK3VwRVI1MjF0Y29meFg5MTRnc0hjbW1pcDdzaUY1dmlMcS9iRmo0ODNlNnJqNXBHM2JEVitNYVI4akFlUm5vY210QlorYzNodisxTjNTNmE3aktxTXVnQkZVd0t3QUJsN1VBQzB6cmJDYVQxbXFmNDhnZGdYSVo0emtwRHRWU2ZPNGFtNytWNVgvZXhPZkcreCszR0xyZGNkM2tKV2RZTmNtUDI4TjlTWktyckgrVXRyVlFuUjZ3cko0OVZheGhES3J3b3VyNlNsSHUwdFJ1L0tLbXk4bDZVMXNybms1Q2JQWU1iUWx1MjdtR3dJMHhweWlVZVhsT2xLRDNVVW82eVF5eHZLY284NEpTTEMxcUd4TGdPZFE5cWE4VHBvWG9ZR3dzaGhxRzB2UkJ3U0NsZEZkKzB5bmZ4SHF0cjJPajR4UlhoNlhweUVoR2Y0aXI3VWZCVTEwYjk2QTdhdkdiZE1vTXBWYXFuKzR4UHNhL2I5bEZaYWFTT3N4ZTNWQWZYTk9zYU9SWFRUK1JyNEhSdk9HamRBejFVZkRSQkkxVTF4K2pHS0dNMGxqWGwzd1IwTVZaK3cyalZZdnM5M0UrZHBGV3N1VXVZN0pzVDkrQzB1LzBxKzdXY1cwYlcvZGNHdlcza2lwOGpNYjh0Q3Z3N0IySzNaQTNVTzVPQkdBdklXZEFZeGhZbWR4aXVnMjNFYmZZL0pxZi8zNGFGUlhKWE94cTdlZXJEMVpOUkpYZlo4cmpMVFhaWjE2TTJSOVZPR3ZzSWpTMFBOK2JZNFhJc3RzUmdRYmIrd2Y4eDdnRjNhVkVDNE5ESVpaaUkyblNobnVyaDZoNnJzVzA0VnhJQmRzMng0M1FBZWdBdVFkOGN1OWJ6Q1lEMTNDUG5Mc0I5Y2doMnlDSDRsQnlDejhpNUJmQTVPUVJma0VNd0lJZGdsNXc3QUEvSUlYaElEc0VlT1FTUHlOa0UrSkljZ3EvSUlZakpJVWpJdVEzd21CeUNKK1FRZkUwT3dUZEdyazVrL3BZSDJRRDZ6cUtiUUttZEdoemFPR1JHcmszWSt6eFk5b0ZGWkI5YVJPcVJrZXNUNmxNZUxQVjdpMGo5d1NKU2Z6UnlZMEw5aVFkTC9ka2lVbit4aU5SbnhwZVpJeW12RHA3empnNytCSmZxclY0QUFBQUFBUUFCLy84QUQzaWNZMkJrQUFMbUpVd3pHRVFaWkJ3aytSa1pHQm1kR0pnWW1iSVlnTXdzb0dTaWlMZ0lzNUEyb3dnN0k1dVNPcU9haVQyam1aRThJNWdRWTE3Qy8wOUJRRWZnM3l0K2ZoOGd2WVF4RDBqNjhET0ppUW44VStEblp4UURjUVVFbGpMbUN3QnBCZ2JHLzMvL2IyU09aK1ptNEdFUWN1QUgyc2JsRExTRW04RkZWSmhKRUdnTEg2T1NIcE1kbzVFY0kzTmswYkVYSi9MWXF2WjgyVlhIR0ZkNnBLVGt5Q3NRd1FBQXErUWtxQUFBZUp4allHUmdZQURpdzVWU3NmSDhObDhadUpsZkFFVVl6cHZPNklYUUNiNy8vLzdmeUx5RW1Sdkk1V0JnQW9rQ0FGYi9ESkFBQUFCNG5HTmdaR0JnRHZxZnhSREYvSUtCNGY5MzVpVU1RQkVVd0F3QWk1WUZwZ1BvQUFBRDZBQUFBMWtBQUFBQUFBQUFPQUJiQUFFQUFBQURBQllBQVFBQUFBQUFBZ0FHQUJNQWJnQUFBQzBKa1FBQUFBQjRuSFdReTJyQ1FCU0cvL0hTaTBKYld1aTJzeXBLYWJ4Z040SWdXSFRUYnFTNExUSEdKQkl6TWhrRlg2UHYwSWZwUy9SWitwdU1wU2hObU14M3ZqbHo1bVFBWE9NYkF2bnp4Skd6d0Jtam5BczRSYzl5a2Y3WmNvbjhZcm1NS3Q0c245Qy9XNjdnQVlIbEttN3d3UXFpZE01b2dVL0xBbGZpMG5JQkYrTE9jcEgrMFhLSjNMTmN4cTE0dFh4QzcxbXVZQ0pTeTFYY2k2K0JXbTExRklSRzFnWjEyVzYyT25LNmxZb3FTdHhZdW1zVEtwM0t2cHlyeFBoeHJCeFBMZmM4OW9OMTdPcDl1Sjhudms0amxjaVcwOXlya1ovNDJqWCtiRmM5M1FSdFkrWnlydFZTRG0yR1hHbTE4RDNqaE1hc3VvM0czL013Z01JS1cyaEV2S29RQmhJMTJqcm5OcHBvb1VPYU1rTXlNOCtLa01CRlRPTml6UjFodHBJeTduUE1HU1cwUGpOaXNnT1AzK1dSSDVNQzdvOVpSUit0SHNZVDB1Nk1LUE9TZlRuczdqQnJSRXF5VERlenM5L2VVMng0V3B2V2NOZXVTNTExSlRFOHFDRjVIN3UxQlkxSDcyUzNZbWk3YVBEOTUvOStBTjFmaEVzQWVKeGpZR0tBQUM0RzdJQ1pnWUdSaVpHWk16a2pOVGs3TjdFb215MDVzeWc1SjVXQkFRQkUxUVpCQUFCTHVBRElVbGl4QVFHT1dia0lBQWdBWXlDd0FTTkVzQU1qY0xJRUtBbEZVa1N5Q2dJSEtyRUdBVVN4SkFHSVVWaXdRSWhZc1FZRFJMRW1BWWhSV0xnRUFJaFlzUVlCUkZsWldWbTRBZitGc0FTTnNRVUFSQUFBKSBmb3JtYXQoJ3dvZmYnKTtcbn1cbi51aS5zdGVwcyAuc3RlcC5jb21wbGV0ZWQgPiAuaWNvbjpiZWZvcmUsXG4udWkub3JkZXJlZC5zdGVwcyAuc3RlcC5jb21wbGV0ZWQ6YmVmb3JlIHtcbiAgZm9udC1mYW1pbHk6ICdTdGVwJztcbiAgY29udGVudDogJ1xcZTgwMCc7XG4gIC8qICfuoIAnICovXG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBDb2xsZWN0aW9ucyAqL1xuLyohXG4gKiAjIFNlbWFudGljIFVJIC0gQnJlYWRjcnVtYlxuICogaHR0cDovL2dpdGh1Yi5jb20vc2VtYW50aWMtb3JnL3NlbWFudGljLXVpL1xuICpcbiAqXG4gKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2VcbiAqIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVRcbiAqXG4gKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qXG5cbuKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVlyAg4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4pWXICAg4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWXXG7ilZrilZDilZDilojilojilZTilZDilZDilZ3ilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKWiOKWiOKVlyDilojilojilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilZTilZDilZDilZDilZDilZ1cbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4pWU4paI4paI4paI4paI4pWU4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilojilojilojilojilojilZdcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVlOKVkOKVkOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4paI4paI4pWR4pWa4paI4paI4pWU4pWd4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilZrilZDilZDilZDilZDilojilojilZFcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWRIOKVmuKVkOKVnSDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZFcbiAgIOKVmuKVkOKVnSAgIOKVmuKVkOKVnSAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWdICAgICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ1cblxuKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIFRoZW1lIFNlbGVjdGlvblxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFRvIG92ZXJyaWRlIGEgdGhlbWUgZm9yIGFuIGluZGl2aWR1YWwgZWxlbWVudFxuICAgc3BlY2lmeSB0aGVtZSBuYW1lIGJlbG93XG4qL1xuLyogR2xvYmFsICovXG4vKiBFbGVtZW50cyAqL1xuLyogQ29sbGVjdGlvbnMgKi9cbi8qIE1vZHVsZXMgKi9cbi8qIFZpZXdzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgRm9sZGVyc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFBhdGggdG8gdGhlbWUgcGFja2FnZXMgKi9cbi8qIFBhdGggdG8gc2l0ZSBvdmVycmlkZSBmb2xkZXIgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBJbXBvcnQgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBJbXBvcnQgRGlyZWN0aXZlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgVGhlbWVcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgU2l0ZSBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0IHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRvcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogUGFja2FnZWQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZG9ycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBDb21wb25lbnQncyBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kb3JzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFNpdGUgdGhlbWUgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgIFVzZXIgR2xvYmFsIFZhcmlhYmxlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIG1hcnNvIGNvbG9ycyAqL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuIENvbXBvbmVudCBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0ICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgIEJyZWFkY3J1bWJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWRjcnVtYlxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogQ291cGxpbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIFN0YXRlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUGFja2FnZWQgVGhlbWUgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgQnJlYWRjcnVtYlxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVhZGNydW1iXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBDb3VwbGluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgU3RhdGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTaXRlIFRoZW1lICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIE1peC1pbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE92ZXJyaWRlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBFbmQgQ29uZmlnICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBCcmVhZGNydW1iXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLnVpLmJyZWFkY3J1bWIge1xuICBsaW5lLWhlaWdodDogMTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXJnaW46IDBlbSAwZW07XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG4udWkuYnJlYWRjcnVtYjpmaXJzdC1jaGlsZCB7XG4gIG1hcmdpbi10b3A6IDBlbTtcbn1cbi51aS5icmVhZGNydW1iOmxhc3QtY2hpbGQge1xuICBtYXJnaW4tYm90dG9tOiAwZW07XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgIENvbnRlbnRcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBEaXZpZGVyICovXG4udWkuYnJlYWRjcnVtYiAuZGl2aWRlciB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgb3BhY2l0eTogMC43O1xuICBtYXJnaW46IDBlbSAwLjNyZW0gMGVtO1xuICBmb250LXNpemU6IDAuOWVtO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjQpO1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG59XG4vKiBMaW5rICovXG4udWkuYnJlYWRjcnVtYiBhIHtcbiAgY29sb3I6ICM0MTgzQzQ7XG59XG4udWkuYnJlYWRjcnVtYiBhOmhvdmVyIHtcbiAgY29sb3I6ICMxZTcwYmY7XG59XG4vKiBJY29uIERpdmlkZXIgKi9cbi51aS5icmVhZGNydW1iIC5pY29uLmRpdmlkZXIge1xuICBmb250LXNpemU6IDAuOWVtO1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG59XG4vKiBTZWN0aW9uICovXG4udWkuYnJlYWRjcnVtYiBhLnNlY3Rpb24ge1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4udWkuYnJlYWRjcnVtYiAuc2VjdGlvbiB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWFyZ2luOiAwZW07XG4gIHBhZGRpbmc6IDBlbTtcbn1cbi8qIExvb3NlIENvdXBsaW5nICovXG4udWkuYnJlYWRjcnVtYi5zZWdtZW50IHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwYWRkaW5nOiAwLjhlbSAxZW07XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLnVpLmJyZWFkY3J1bWIgLmFjdGl2ZS5zZWN0aW9uIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBWYXJpYXRpb25zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLnVpLm1pbmkuYnJlYWRjcnVtYiB7XG4gIGZvbnQtc2l6ZTogMC44cmVtO1xufVxuLnVpLnRpbnkuYnJlYWRjcnVtYiB7XG4gIGZvbnQtc2l6ZTogMC45cmVtO1xufVxuLnVpLnNtYWxsLmJyZWFkY3J1bWIge1xuICBmb250LXNpemU6IDAuOXJlbTtcbn1cbi51aS5icmVhZGNydW1iIHtcbiAgZm9udC1zaXplOiAxcmVtO1xufVxuLnVpLmxhcmdlLmJyZWFkY3J1bWIge1xuICBmb250LXNpemU6IDEuMXJlbTtcbn1cbi51aS5iaWcuYnJlYWRjcnVtYiB7XG4gIGZvbnQtc2l6ZTogMS4zcmVtO1xufVxuLnVpLmh1Z2UuYnJlYWRjcnVtYiB7XG4gIGZvbnQtc2l6ZTogMS40cmVtO1xufVxuLnVpLm1hc3NpdmUuYnJlYWRjcnVtYiB7XG4gIGZvbnQtc2l6ZTogMS43cmVtO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFRoZW1lIE92ZXJyaWRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIE92ZXJyaWRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIVxuICogIyBTZW1hbnRpYyBVSSAtIEZvcm1cbiAqIGh0dHA6Ly9naXRodWIuY29tL3NlbWFudGljLW9yZy9zZW1hbnRpYy11aS9cbiAqXG4gKlxuICogUmVsZWFzZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlXG4gKiBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUXG4gKlxuICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKlxuXG7ilojilojilojilojilojilojilojilojilZfilojilojilZcgIOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKVlyAgIOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl1xu4pWa4pWQ4pWQ4paI4paI4pWU4pWQ4pWQ4pWd4paI4paI4pWRICDilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilojilojilZcg4paI4paI4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWd4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWdXG4gICDilojilojilZEgICDilojilojilojilojilojilojilojilZHilojilojilojilojilojilZcgIOKWiOKWiOKVlOKWiOKWiOKWiOKWiOKVlOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4paI4paI4paI4paI4paI4pWXXG4gICDilojilojilZEgICDilojilojilZTilZDilZDilojilojilZHilojilojilZTilZDilZDilZ0gIOKWiOKWiOKVkeKVmuKWiOKWiOKVlOKVneKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4pWa4pWQ4pWQ4pWQ4pWQ4paI4paI4pWRXG4gICDilojilojilZEgICDilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVkSDilZrilZDilZ0g4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWRXG4gICDilZrilZDilZ0gICDilZrilZDilZ0gIOKVmuKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVneKVmuKVkOKVnSAgICAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWdXG5cbiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBUaGVtZSBTZWxlY3Rpb25cbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBUbyBvdmVycmlkZSBhIHRoZW1lIGZvciBhbiBpbmRpdmlkdWFsIGVsZW1lbnRcbiAgIHNwZWNpZnkgdGhlbWUgbmFtZSBiZWxvd1xuKi9cbi8qIEdsb2JhbCAqL1xuLyogRWxlbWVudHMgKi9cbi8qIENvbGxlY3Rpb25zICovXG4vKiBNb2R1bGVzICovXG4vKiBWaWV3cyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIEZvbGRlcnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBQYXRoIHRvIHRoZW1lIHBhY2thZ2VzICovXG4vKiBQYXRoIHRvIHNpdGUgb3ZlcnJpZGUgZm9sZGVyICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgSW1wb3J0IFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgSW1wb3J0IERpcmVjdGl2ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIFRoZW1lXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgIFNpdGUgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kb3JzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFBhY2thZ2VkIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRvcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogQ29tcG9uZW50J3Mgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZG9ycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBTaXRlIHRoZW1lIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICBVc2VyIEdsb2JhbCBWYXJpYWJsZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBtYXJzbyBjb2xvcnMgKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiBDb21wb25lbnQgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBGb3JtXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRWxlbWVudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvcm0gKi9cbi8qIFRleHQgKi9cbi8qIEZpZWxkICovXG4vKiBGaWVsZHMgKi9cbi8qIEZvcm0gTGFiZWwgKi9cbi8qIElucHV0ICovXG4vKiBTZWxlY3QgKi9cbi8qIFRleHQgQXJlYSAqL1xuLyogQ2hlY2tib3ggKi9cbi8qIElubGluZSBWYWxpZGF0aW9uIFByb21wdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFN0YXRlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9jdXMgKi9cbi8qIElucHV0IEZvY3VzICovXG4vKiBUZXh0IEFyZWEgRm9jdXMgKi9cbi8qIERpc2FibGVkICovXG4vKiBFcnJvcmVkIElucHV0ICovXG4vKiBBdXRvRmlsbCAqL1xuLyogSW5wdXQgRXJyb3IgKi9cbi8qIERyb3Bkb3duIEVycm9yICovXG4vKiBGb2N1c2VkIEVycm9yICovXG4vKiBQbGFjZWhvbGRlciBFcnJvciAqL1xuLyogTG9hZGluZyBEaW1tZXIgKi9cbi8qIExvYWRpbmcgU3Bpbm5lciAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFR5cGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBSZXF1aXJlZCAqL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgVmFyaWF0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogR3JvdXBlZCBGaWVsZHMgKi9cbi8qIElubGluZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgR3JvdXBzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQYWNrYWdlZCBUaGVtZSAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBGb3JtXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRWxlbWVudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvcm0gKi9cbi8qIFRleHQgKi9cbi8qIEZpZWxkICovXG4vKiBGaWVsZHMgKi9cbi8qIEZvcm0gTGFiZWwgKi9cbi8qIElucHV0ICovXG4vKiBTZWxlY3QgKi9cbi8qIFRleHQgQXJlYSAqL1xuLyogQ2hlY2tib3ggKi9cbi8qIElubGluZSBWYWxpZGF0aW9uIFByb21wdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFN0YXRlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9jdXMgKi9cbi8qIElucHV0IEZvY3VzICovXG4vKiBUZXh0IEFyZWEgRm9jdXMgKi9cbi8qIERpc2FibGVkICovXG4vKiBFcnJvcmVkIElucHV0ICovXG4vKiBBdXRvRmlsbCAqL1xuLyogSW5wdXQgRXJyb3IgKi9cbi8qIERyb3Bkb3duIEVycm9yICovXG4vKiBGb2N1c2VkIEVycm9yICovXG4vKiBQbGFjZWhvbGRlciBFcnJvciAqL1xuLyogTG9hZGluZyBEaW1tZXIgKi9cbi8qIExvYWRpbmcgU3Bpbm5lciAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFR5cGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBSZXF1aXJlZCAqL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgVmFyaWF0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogR3JvdXBlZCBGaWVsZHMgKi9cbi8qIElubGluZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgR3JvdXBzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTaXRlIFRoZW1lICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgIFVzZXIgVmFyaWFibGUgT3ZlcnJpZGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBNaXgtaW5zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBPdmVycmlkZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRW5kIENvbmZpZyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIEVsZW1lbnRzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb3JtXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmZvcm0ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1heC13aWR0aDogMTAwJTtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQ29udGVudFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5mb3JtID4gcCB7XG4gIG1hcmdpbjogMWVtIDBlbTtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRmllbGRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkuZm9ybSAuZmllbGQge1xuICBjbGVhcjogYm90aDtcbiAgbWFyZ2luOiAwZW0gMGVtIDFlbTtcbn1cbi51aS5mb3JtIC5maWVsZDpsYXN0LWNoaWxkLFxuLnVpLmZvcm0gLmZpZWxkczpsYXN0LWNoaWxkIC5maWVsZCB7XG4gIG1hcmdpbi1ib3R0b206IDBlbTtcbn1cbi51aS5mb3JtIC5maWVsZHMgLmZpZWxkIHtcbiAgY2xlYXI6IGJvdGg7XG4gIG1hcmdpbjogMGVtO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBMYWJlbHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkuZm9ybSAuZmllbGQgPiBsYWJlbCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW46IDBlbSAwZW0gMC40cmVtIDBlbTtcbiAgY29sb3I6ICMzMzMzMzM7XG4gIGZvbnQtc2l6ZTogMC45ZW07XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTdGFuZGFyZCBJbnB1dHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkuZm9ybSB0ZXh0YXJlYSxcbi51aS5mb3JtIGlucHV0Om5vdChbdHlwZV0pLFxuLnVpLmZvcm0gaW5wdXRbdHlwZT1cImRhdGVcIl0sXG4udWkuZm9ybSBpbnB1dFt0eXBlPVwiZGF0ZXRpbWUtbG9jYWxcIl0sXG4udWkuZm9ybSBpbnB1dFt0eXBlPVwiZW1haWxcIl0sXG4udWkuZm9ybSBpbnB1dFt0eXBlPVwibnVtYmVyXCJdLFxuLnVpLmZvcm0gaW5wdXRbdHlwZT1cInBhc3N3b3JkXCJdLFxuLnVpLmZvcm0gaW5wdXRbdHlwZT1cInNlYXJjaFwiXSxcbi51aS5mb3JtIGlucHV0W3R5cGU9XCJ0ZWxcIl0sXG4udWkuZm9ybSBpbnB1dFt0eXBlPVwidGltZVwiXSxcbi51aS5mb3JtIGlucHV0W3R5cGU9XCJ0ZXh0XCJdLFxuLnVpLmZvcm0gaW5wdXRbdHlwZT1cImZpbGVcIl0sXG4udWkuZm9ybSBpbnB1dFt0eXBlPVwidXJsXCJdIHtcbiAgd2lkdGg6IDEwMCU7XG4gIHZlcnRpY2FsLWFsaWduOiB0b3A7XG59XG4vKiBTZXQgbWF4IGhlaWdodCBvbiB1bnVzdWFsIGlucHV0ICovXG4udWkuZm9ybSA6Oi13ZWJraXQtZGF0ZXRpbWUtZWRpdCxcbi51aS5mb3JtIDo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbiB7XG4gIGhlaWdodDogMS4yMTQyODU3MWVtO1xufVxuLnVpLmZvcm0gaW5wdXQ6bm90KFt0eXBlXSksXG4udWkuZm9ybSBpbnB1dFt0eXBlPVwiZGF0ZVwiXSxcbi51aS5mb3JtIGlucHV0W3R5cGU9XCJkYXRldGltZS1sb2NhbFwiXSxcbi51aS5mb3JtIGlucHV0W3R5cGU9XCJlbWFpbFwiXSxcbi51aS5mb3JtIGlucHV0W3R5cGU9XCJudW1iZXJcIl0sXG4udWkuZm9ybSBpbnB1dFt0eXBlPVwicGFzc3dvcmRcIl0sXG4udWkuZm9ybSBpbnB1dFt0eXBlPVwic2VhcmNoXCJdLFxuLnVpLmZvcm0gaW5wdXRbdHlwZT1cInRlbFwiXSxcbi51aS5mb3JtIGlucHV0W3R5cGU9XCJ0aW1lXCJdLFxuLnVpLmZvcm0gaW5wdXRbdHlwZT1cInRleHRcIl0sXG4udWkuZm9ybSBpbnB1dFt0eXBlPVwiZmlsZVwiXSxcbi51aS5mb3JtIGlucHV0W3R5cGU9XCJ1cmxcIl0ge1xuICBmb250LWZhbWlseTogJ0V4byAyJywgJ0xhdG8nLCBBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmO1xuICBtYXJnaW46IDBlbTtcbiAgb3V0bGluZTogbm9uZTtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICB0YXAtaGlnaGxpZ2h0LWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDApO1xuICBsaW5lLWhlaWdodDogMS4yMTQyODU3MWVtO1xuICBwYWRkaW5nOiAwLjk5Mjg1NzE0ZW0gMS40ZW07XG4gIGZvbnQtc2l6ZTogMWVtO1xuICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpO1xuICBjb2xvcjogIzMzMzMzMztcbiAgYm9yZGVyLXJhZGl1czogMC40cmVtO1xuICBib3gtc2hhZG93OiAwZW0gMGVtIDBlbSAwZW0gdHJhbnNwYXJlbnQgaW5zZXQ7XG4gIHRyYW5zaXRpb246IGNvbG9yIDAuMXMgZWFzZSwgYm9yZGVyLWNvbG9yIDAuMXMgZWFzZTtcbn1cbi8qIFRleHQgQXJlYSAqL1xuLnVpLmZvcm0gdGV4dGFyZWEge1xuICBtYXJnaW46IDBlbTtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICB0YXAtaGlnaGxpZ2h0LWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDApO1xuICBwYWRkaW5nOiAxLjFlbSAxLjRlbTtcbiAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgzNCwgMzYsIDM4LCAwLjE1KTtcbiAgb3V0bGluZTogbm9uZTtcbiAgY29sb3I6ICMzMzMzMzM7XG4gIGJvcmRlci1yYWRpdXM6IDAuNHJlbTtcbiAgYm94LXNoYWRvdzogMGVtIDBlbSAwZW0gMGVtIHRyYW5zcGFyZW50IGluc2V0O1xuICB0cmFuc2l0aW9uOiBjb2xvciAwLjFzIGVhc2UsIGJvcmRlci1jb2xvciAwLjFzIGVhc2U7XG4gIGZvbnQtc2l6ZTogMWVtO1xuICBsaW5lLWhlaWdodDogMS4yODU3O1xuICByZXNpemU6IHZlcnRpY2FsO1xufVxuLnVpLmZvcm0gdGV4dGFyZWE6bm90KFtyb3dzXSkge1xuICBoZWlnaHQ6IDEyZW07XG4gIG1pbi1oZWlnaHQ6IDhlbTtcbiAgbWF4LWhlaWdodDogMjRlbTtcbn1cbi51aS5mb3JtIHRleHRhcmVhLFxuLnVpLmZvcm0gaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdIHtcbiAgdmVydGljYWwtYWxpZ246IHRvcDtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSW5wdXQgdy8gYXR0YWNoZWQgQnV0dG9uXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmZvcm0gaW5wdXQuYXR0YWNoZWQge1xuICB3aWR0aDogYXV0bztcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQmFzaWMgU2VsZWN0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmZvcm0gc2VsZWN0IHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGhlaWdodDogYXV0bztcbiAgd2lkdGg6IDEwMCU7XG4gIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMzQsIDM2LCAzOCwgMC4xNSk7XG4gIGJvcmRlci1yYWRpdXM6IDAuNHJlbTtcbiAgYm94LXNoYWRvdzogMGVtIDBlbSAwZW0gMGVtIHRyYW5zcGFyZW50IGluc2V0O1xuICBwYWRkaW5nOiAwLjYyZW0gMS40ZW07XG4gIGNvbG9yOiAjMzMzMzMzO1xuICB0cmFuc2l0aW9uOiBjb2xvciAwLjFzIGVhc2UsIGJvcmRlci1jb2xvciAwLjFzIGVhc2U7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRHJvcGRvd25cbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBCbG9jayAqL1xuLnVpLmZvcm0gLmZpZWxkID4gLnNlbGVjdGlvbi5kcm9wZG93biB7XG4gIHdpZHRoOiAxMDAlO1xufVxuLnVpLmZvcm0gLmZpZWxkID4gLnNlbGVjdGlvbi5kcm9wZG93biA+IC5kcm9wZG93bi5pY29uIHtcbiAgZmxvYXQ6IHJpZ2h0O1xufVxuLyogSW5saW5lICovXG4udWkuZm9ybSAuaW5saW5lLmZpZWxkcyAuZmllbGQgPiAuc2VsZWN0aW9uLmRyb3Bkb3duLFxuLnVpLmZvcm0gLmlubGluZS5maWVsZCA+IC5zZWxlY3Rpb24uZHJvcGRvd24ge1xuICB3aWR0aDogYXV0bztcbn1cbi51aS5mb3JtIC5pbmxpbmUuZmllbGRzIC5maWVsZCA+IC5zZWxlY3Rpb24uZHJvcGRvd24gPiAuZHJvcGRvd24uaWNvbixcbi51aS5mb3JtIC5pbmxpbmUuZmllbGQgPiAuc2VsZWN0aW9uLmRyb3Bkb3duID4gLmRyb3Bkb3duLmljb24ge1xuICBmbG9hdDogbm9uZTtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBVSSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEJsb2NrICovXG4udWkuZm9ybSAuZmllbGQgLnVpLmlucHV0LFxuLnVpLmZvcm0gLmZpZWxkcyAuZmllbGQgLnVpLmlucHV0LFxuLnVpLmZvcm0gLndpZGUuZmllbGQgLnVpLmlucHV0IHtcbiAgd2lkdGg6IDEwMCU7XG59XG4vKiBJbmxpbmUgICovXG4udWkuZm9ybSAuaW5saW5lLmZpZWxkcyAuZmllbGQ6bm90KC53aWRlKSAudWkuaW5wdXQsXG4udWkuZm9ybSAuaW5saW5lLmZpZWxkOm5vdCgud2lkZSkgLnVpLmlucHV0IHtcbiAgd2lkdGg6IGF1dG87XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG4vKiBBdXRvIElucHV0ICovXG4udWkuZm9ybSAuZmllbGRzIC5maWVsZCAudWkuaW5wdXQgaW5wdXQsXG4udWkuZm9ybSAuZmllbGQgLnVpLmlucHV0IGlucHV0IHtcbiAgd2lkdGg6IGF1dG87XG59XG4vKiBGdWxsIFdpZHRoIElucHV0ICovXG4udWkuZm9ybSAudGVuLmZpZWxkcyAudWkuaW5wdXQgaW5wdXQsXG4udWkuZm9ybSAubmluZS5maWVsZHMgLnVpLmlucHV0IGlucHV0LFxuLnVpLmZvcm0gLmVpZ2h0LmZpZWxkcyAudWkuaW5wdXQgaW5wdXQsXG4udWkuZm9ybSAuc2V2ZW4uZmllbGRzIC51aS5pbnB1dCBpbnB1dCxcbi51aS5mb3JtIC5zaXguZmllbGRzIC51aS5pbnB1dCBpbnB1dCxcbi51aS5mb3JtIC5maXZlLmZpZWxkcyAudWkuaW5wdXQgaW5wdXQsXG4udWkuZm9ybSAuZm91ci5maWVsZHMgLnVpLmlucHV0IGlucHV0LFxuLnVpLmZvcm0gLnRocmVlLmZpZWxkcyAudWkuaW5wdXQgaW5wdXQsXG4udWkuZm9ybSAudHdvLmZpZWxkcyAudWkuaW5wdXQgaW5wdXQsXG4udWkuZm9ybSAud2lkZS5maWVsZCAudWkuaW5wdXQgaW5wdXQge1xuICBmbGV4OiAxIDAgYXV0bztcbiAgd2lkdGg6IDBweDtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgIFR5cGVzIG9mIE1lc3NhZ2VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmZvcm0gLnN1Y2Nlc3MubWVzc2FnZSxcbi51aS5mb3JtIC53YXJuaW5nLm1lc3NhZ2UsXG4udWkuZm9ybSAuZXJyb3IubWVzc2FnZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4vKiBBc3N1bXB0aW9ucyAqL1xuLnVpLmZvcm0gLm1lc3NhZ2U6Zmlyc3QtY2hpbGQge1xuICBtYXJnaW4tdG9wOiAwcHg7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICBWYWxpZGF0aW9uIFByb21wdFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5mb3JtIC5maWVsZCAucHJvbXB0LmxhYmVsIHtcbiAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcbiAgYmFja2dyb3VuZDogI2ZmZmZmZiAhaW1wb3J0YW50O1xuICBib3JkZXI6IDFweCBzb2xpZCAjRTBCNEI0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjOUYzQTM4ICFpbXBvcnRhbnQ7XG59XG4udWkuZm9ybSAuaW5saW5lLmZpZWxkcyAuZmllbGQgLnByb21wdCxcbi51aS5mb3JtIC5pbmxpbmUuZmllbGQgLnByb21wdCB7XG4gIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gIG1hcmdpbjogLTAuMjVlbSAwZW0gLTAuNWVtIDAuNWVtO1xufVxuLnVpLmZvcm0gLmlubGluZS5maWVsZHMgLmZpZWxkIC5wcm9tcHQ6YmVmb3JlLFxuLnVpLmZvcm0gLmlubGluZS5maWVsZCAucHJvbXB0OmJlZm9yZSB7XG4gIGJvcmRlci13aWR0aDogMHB4IDBweCAxcHggMXB4O1xuICBib3R0b206IGF1dG87XG4gIHJpZ2h0OiBhdXRvO1xuICB0b3A6IDUwJTtcbiAgbGVmdDogMGVtO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEF1dG9maWxsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkuZm9ybSAuZmllbGQuZmllbGQgaW5wdXQ6LXdlYmtpdC1hdXRvZmlsbCB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDEwMHB4ICNGRkZGRjAgaW5zZXQgIWltcG9ydGFudDtcbiAgYm9yZGVyLWNvbG9yOiAjRTVERkExICFpbXBvcnRhbnQ7XG59XG4vKiBGb2N1cyAqL1xuLnVpLmZvcm0gLmZpZWxkLmZpZWxkIGlucHV0Oi13ZWJraXQtYXV0b2ZpbGw6Zm9jdXMge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxMDBweCAjRkZGRkYwIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1jb2xvcjogI0Q1QzMxNSAhaW1wb3J0YW50O1xufVxuLyogRXJyb3IgKi9cbi51aS5mb3JtIC5lcnJvci5lcnJvciBpbnB1dDotd2Via2l0LWF1dG9maWxsIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMTAwcHggI0ZGRkFGMCBpbnNldCAhaW1wb3J0YW50O1xuICBib3JkZXItY29sb3I6ICNFMEI0QjQgIWltcG9ydGFudDtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBsYWNlaG9sZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogYnJvd3NlcnMgcmVxdWlyZSB0aGVzZSBydWxlcyBzZXBhcmF0ZSAqL1xuLnVpLmZvcm0gOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIHtcbiAgY29sb3I6ICNmMmYyZjI7XG59XG4udWkuZm9ybSA6LW1zLWlucHV0LXBsYWNlaG9sZGVyIHtcbiAgY29sb3I6ICNmMmYyZjI7XG59XG4udWkuZm9ybSA6Oi1tb3otcGxhY2Vob2xkZXIge1xuICBjb2xvcjogI2YyZjJmMjtcbn1cbi51aS5mb3JtIDpmb2N1czo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciB7XG4gIGNvbG9yOiAjYTZhNmE2O1xufVxuLnVpLmZvcm0gOmZvY3VzOi1tcy1pbnB1dC1wbGFjZWhvbGRlciB7XG4gIGNvbG9yOiAjYTZhNmE2O1xufVxuLnVpLmZvcm0gOmZvY3VzOjotbW96LXBsYWNlaG9sZGVyIHtcbiAgY29sb3I6ICNhNmE2YTY7XG59XG4vKiBFcnJvciBQbGFjZWhvbGRlciAqL1xuLnVpLmZvcm0gLmVycm9yIDo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciB7XG4gIGNvbG9yOiAjZTdiZGJjO1xufVxuLnVpLmZvcm0gLmVycm9yIDotbXMtaW5wdXQtcGxhY2Vob2xkZXIge1xuICBjb2xvcjogI2U3YmRiYyAhaW1wb3J0YW50O1xufVxuLnVpLmZvcm0gLmVycm9yIDo6LW1vei1wbGFjZWhvbGRlciB7XG4gIGNvbG9yOiAjZTdiZGJjO1xufVxuLnVpLmZvcm0gLmVycm9yIDpmb2N1czo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciB7XG4gIGNvbG9yOiAjZGE5Nzk2O1xufVxuLnVpLmZvcm0gLmVycm9yIDpmb2N1czotbXMtaW5wdXQtcGxhY2Vob2xkZXIge1xuICBjb2xvcjogI2RhOTc5NiAhaW1wb3J0YW50O1xufVxuLnVpLmZvcm0gLmVycm9yIDpmb2N1czo6LW1vei1wbGFjZWhvbGRlciB7XG4gIGNvbG9yOiAjZGE5Nzk2O1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5mb3JtIGlucHV0Om5vdChbdHlwZV0pOmZvY3VzLFxuLnVpLmZvcm0gaW5wdXRbdHlwZT1cImRhdGVcIl06Zm9jdXMsXG4udWkuZm9ybSBpbnB1dFt0eXBlPVwiZGF0ZXRpbWUtbG9jYWxcIl06Zm9jdXMsXG4udWkuZm9ybSBpbnB1dFt0eXBlPVwiZW1haWxcIl06Zm9jdXMsXG4udWkuZm9ybSBpbnB1dFt0eXBlPVwibnVtYmVyXCJdOmZvY3VzLFxuLnVpLmZvcm0gaW5wdXRbdHlwZT1cInBhc3N3b3JkXCJdOmZvY3VzLFxuLnVpLmZvcm0gaW5wdXRbdHlwZT1cInNlYXJjaFwiXTpmb2N1cyxcbi51aS5mb3JtIGlucHV0W3R5cGU9XCJ0ZWxcIl06Zm9jdXMsXG4udWkuZm9ybSBpbnB1dFt0eXBlPVwidGltZVwiXTpmb2N1cyxcbi51aS5mb3JtIGlucHV0W3R5cGU9XCJ0ZXh0XCJdOmZvY3VzLFxuLnVpLmZvcm0gaW5wdXRbdHlwZT1cImZpbGVcIl06Zm9jdXMsXG4udWkuZm9ybSBpbnB1dFt0eXBlPVwidXJsXCJdOmZvY3VzIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC45NSk7XG4gIGJvcmRlci1jb2xvcjogIzg1QjdEOTtcbiAgYm9yZGVyLXJhZGl1czogMC40cmVtO1xuICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICBib3gtc2hhZG93OiAwcHggMGVtIDBlbSAwZW0gcmdiYSgzNCwgMzYsIDM4LCAwLjM1KSBpbnNldDtcbn1cbi51aS5mb3JtIHRleHRhcmVhOmZvY3VzIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC45NSk7XG4gIGJvcmRlci1jb2xvcjogIzg1QjdEOTtcbiAgYm9yZGVyLXJhZGl1czogMC40cmVtO1xuICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICBib3gtc2hhZG93OiAwcHggMGVtIDBlbSAwZW0gcmdiYSgzNCwgMzYsIDM4LCAwLjM1KSBpbnNldDtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTdWNjZXNzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogT24gRm9ybSAqL1xuLnVpLmZvcm0uc3VjY2VzcyAuc3VjY2Vzcy5tZXNzYWdlOm5vdCg6ZW1wdHkpIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG4udWkuZm9ybS5zdWNjZXNzIC5jb21wYWN0LnN1Y2Nlc3MubWVzc2FnZTpub3QoOmVtcHR5KSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cbi51aS5mb3JtLnN1Y2Nlc3MgLmljb24uc3VjY2Vzcy5tZXNzYWdlOm5vdCg6ZW1wdHkpIHtcbiAgZGlzcGxheTogZmxleDtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgV2FybmluZ1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE9uIEZvcm0gKi9cbi51aS5mb3JtLndhcm5pbmcgLndhcm5pbmcubWVzc2FnZTpub3QoOmVtcHR5KSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuLnVpLmZvcm0ud2FybmluZyAuY29tcGFjdC53YXJuaW5nLm1lc3NhZ2U6bm90KDplbXB0eSkge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG4udWkuZm9ybS53YXJuaW5nIC5pY29uLndhcm5pbmcubWVzc2FnZTpub3QoOmVtcHR5KSB7XG4gIGRpc3BsYXk6IGZsZXg7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEVycm9yXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogT24gRm9ybSAqL1xuLnVpLmZvcm0uZXJyb3IgLmVycm9yLm1lc3NhZ2U6bm90KDplbXB0eSkge1xuICBkaXNwbGF5OiBibG9jaztcbn1cbi51aS5mb3JtLmVycm9yIC5jb21wYWN0LmVycm9yLm1lc3NhZ2U6bm90KDplbXB0eSkge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG4udWkuZm9ybS5lcnJvciAuaWNvbi5lcnJvci5tZXNzYWdlOm5vdCg6ZW1wdHkpIHtcbiAgZGlzcGxheTogZmxleDtcbn1cbi8qIE9uIEZpZWxkKHMpICovXG4udWkuZm9ybSAuZmllbGRzLmVycm9yIC5maWVsZCBsYWJlbCxcbi51aS5mb3JtIC5maWVsZC5lcnJvciBsYWJlbCxcbi51aS5mb3JtIC5maWVsZHMuZXJyb3IgLmZpZWxkIC5pbnB1dCxcbi51aS5mb3JtIC5maWVsZC5lcnJvciAuaW5wdXQge1xuICBjb2xvcjogIzlGM0EzODtcbn1cbi51aS5mb3JtIC5maWVsZHMuZXJyb3IgLmZpZWxkIC5jb3JuZXIubGFiZWwsXG4udWkuZm9ybSAuZmllbGQuZXJyb3IgLmNvcm5lci5sYWJlbCB7XG4gIGJvcmRlci1jb2xvcjogIzlGM0EzODtcbiAgY29sb3I6ICNmZmZmZmY7XG59XG4udWkuZm9ybSAuZmllbGRzLmVycm9yIC5maWVsZCB0ZXh0YXJlYSxcbi51aS5mb3JtIC5maWVsZHMuZXJyb3IgLmZpZWxkIHNlbGVjdCxcbi51aS5mb3JtIC5maWVsZHMuZXJyb3IgLmZpZWxkIGlucHV0Om5vdChbdHlwZV0pLFxuLnVpLmZvcm0gLmZpZWxkcy5lcnJvciAuZmllbGQgaW5wdXRbdHlwZT1cImRhdGVcIl0sXG4udWkuZm9ybSAuZmllbGRzLmVycm9yIC5maWVsZCBpbnB1dFt0eXBlPVwiZGF0ZXRpbWUtbG9jYWxcIl0sXG4udWkuZm9ybSAuZmllbGRzLmVycm9yIC5maWVsZCBpbnB1dFt0eXBlPVwiZW1haWxcIl0sXG4udWkuZm9ybSAuZmllbGRzLmVycm9yIC5maWVsZCBpbnB1dFt0eXBlPVwibnVtYmVyXCJdLFxuLnVpLmZvcm0gLmZpZWxkcy5lcnJvciAuZmllbGQgaW5wdXRbdHlwZT1cInBhc3N3b3JkXCJdLFxuLnVpLmZvcm0gLmZpZWxkcy5lcnJvciAuZmllbGQgaW5wdXRbdHlwZT1cInNlYXJjaFwiXSxcbi51aS5mb3JtIC5maWVsZHMuZXJyb3IgLmZpZWxkIGlucHV0W3R5cGU9XCJ0ZWxcIl0sXG4udWkuZm9ybSAuZmllbGRzLmVycm9yIC5maWVsZCBpbnB1dFt0eXBlPVwidGltZVwiXSxcbi51aS5mb3JtIC5maWVsZHMuZXJyb3IgLmZpZWxkIGlucHV0W3R5cGU9XCJ0ZXh0XCJdLFxuLnVpLmZvcm0gLmZpZWxkcy5lcnJvciAuZmllbGQgaW5wdXRbdHlwZT1cImZpbGVcIl0sXG4udWkuZm9ybSAuZmllbGRzLmVycm9yIC5maWVsZCBpbnB1dFt0eXBlPVwidXJsXCJdLFxuLnVpLmZvcm0gLmZpZWxkLmVycm9yIHRleHRhcmVhLFxuLnVpLmZvcm0gLmZpZWxkLmVycm9yIHNlbGVjdCxcbi51aS5mb3JtIC5maWVsZC5lcnJvciBpbnB1dDpub3QoW3R5cGVdKSxcbi51aS5mb3JtIC5maWVsZC5lcnJvciBpbnB1dFt0eXBlPVwiZGF0ZVwiXSxcbi51aS5mb3JtIC5maWVsZC5lcnJvciBpbnB1dFt0eXBlPVwiZGF0ZXRpbWUtbG9jYWxcIl0sXG4udWkuZm9ybSAuZmllbGQuZXJyb3IgaW5wdXRbdHlwZT1cImVtYWlsXCJdLFxuLnVpLmZvcm0gLmZpZWxkLmVycm9yIGlucHV0W3R5cGU9XCJudW1iZXJcIl0sXG4udWkuZm9ybSAuZmllbGQuZXJyb3IgaW5wdXRbdHlwZT1cInBhc3N3b3JkXCJdLFxuLnVpLmZvcm0gLmZpZWxkLmVycm9yIGlucHV0W3R5cGU9XCJzZWFyY2hcIl0sXG4udWkuZm9ybSAuZmllbGQuZXJyb3IgaW5wdXRbdHlwZT1cInRlbFwiXSxcbi51aS5mb3JtIC5maWVsZC5lcnJvciBpbnB1dFt0eXBlPVwidGltZVwiXSxcbi51aS5mb3JtIC5maWVsZC5lcnJvciBpbnB1dFt0eXBlPVwidGV4dFwiXSxcbi51aS5mb3JtIC5maWVsZC5lcnJvciBpbnB1dFt0eXBlPVwiZmlsZVwiXSxcbi51aS5mb3JtIC5maWVsZC5lcnJvciBpbnB1dFt0eXBlPVwidXJsXCJdIHtcbiAgYmFja2dyb3VuZDogI0ZGRjZGNjtcbiAgYm9yZGVyLWNvbG9yOiAjRTBCNEI0O1xuICBjb2xvcjogIzlGM0EzODtcbiAgYm9yZGVyLXJhZGl1czogJyc7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG59XG4udWkuZm9ybSAuZmllbGQuZXJyb3IgdGV4dGFyZWE6Zm9jdXMsXG4udWkuZm9ybSAuZmllbGQuZXJyb3Igc2VsZWN0OmZvY3VzLFxuLnVpLmZvcm0gLmZpZWxkLmVycm9yIGlucHV0Om5vdChbdHlwZV0pOmZvY3VzLFxuLnVpLmZvcm0gLmZpZWxkLmVycm9yIGlucHV0W3R5cGU9XCJkYXRlXCJdOmZvY3VzLFxuLnVpLmZvcm0gLmZpZWxkLmVycm9yIGlucHV0W3R5cGU9XCJkYXRldGltZS1sb2NhbFwiXTpmb2N1cyxcbi51aS5mb3JtIC5maWVsZC5lcnJvciBpbnB1dFt0eXBlPVwiZW1haWxcIl06Zm9jdXMsXG4udWkuZm9ybSAuZmllbGQuZXJyb3IgaW5wdXRbdHlwZT1cIm51bWJlclwiXTpmb2N1cyxcbi51aS5mb3JtIC5maWVsZC5lcnJvciBpbnB1dFt0eXBlPVwicGFzc3dvcmRcIl06Zm9jdXMsXG4udWkuZm9ybSAuZmllbGQuZXJyb3IgaW5wdXRbdHlwZT1cInNlYXJjaFwiXTpmb2N1cyxcbi51aS5mb3JtIC5maWVsZC5lcnJvciBpbnB1dFt0eXBlPVwidGVsXCJdOmZvY3VzLFxuLnVpLmZvcm0gLmZpZWxkLmVycm9yIGlucHV0W3R5cGU9XCJ0aW1lXCJdOmZvY3VzLFxuLnVpLmZvcm0gLmZpZWxkLmVycm9yIGlucHV0W3R5cGU9XCJ0ZXh0XCJdOmZvY3VzLFxuLnVpLmZvcm0gLmZpZWxkLmVycm9yIGlucHV0W3R5cGU9XCJmaWxlXCJdOmZvY3VzLFxuLnVpLmZvcm0gLmZpZWxkLmVycm9yIGlucHV0W3R5cGU9XCJ1cmxcIl06Zm9jdXMge1xuICBiYWNrZ3JvdW5kOiAjRkZGNkY2O1xuICBib3JkZXItY29sb3I6ICNFMEI0QjQ7XG4gIGNvbG9yOiAjOUYzQTM4O1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG59XG4vKiBQcmVzZXJ2ZSBOYXRpdmUgU2VsZWN0IFN0eWxpbmdzICovXG4udWkuZm9ybSAuZmllbGQuZXJyb3Igc2VsZWN0IHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBtZW51bGlzdC1idXR0b247XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERyb3Bkb3duIEVycm9yXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkuZm9ybSAuZmllbGRzLmVycm9yIC5maWVsZCAudWkuZHJvcGRvd24sXG4udWkuZm9ybSAuZmllbGRzLmVycm9yIC5maWVsZCAudWkuZHJvcGRvd24gLml0ZW0sXG4udWkuZm9ybSAuZmllbGQuZXJyb3IgLnVpLmRyb3Bkb3duLFxuLnVpLmZvcm0gLmZpZWxkLmVycm9yIC51aS5kcm9wZG93biAudGV4dCxcbi51aS5mb3JtIC5maWVsZC5lcnJvciAudWkuZHJvcGRvd24gLml0ZW0ge1xuICBiYWNrZ3JvdW5kOiAjRkZGNkY2O1xuICBjb2xvcjogIzlGM0EzODtcbn1cbi51aS5mb3JtIC5maWVsZHMuZXJyb3IgLmZpZWxkIC51aS5kcm9wZG93bixcbi51aS5mb3JtIC5maWVsZC5lcnJvciAudWkuZHJvcGRvd24ge1xuICBib3JkZXItY29sb3I6ICNFMEI0QjQgIWltcG9ydGFudDtcbn1cbi51aS5mb3JtIC5maWVsZHMuZXJyb3IgLmZpZWxkIC51aS5kcm9wZG93bjpob3Zlcixcbi51aS5mb3JtIC5maWVsZC5lcnJvciAudWkuZHJvcGRvd246aG92ZXIge1xuICBib3JkZXItY29sb3I6ICNFMEI0QjQgIWltcG9ydGFudDtcbn1cbi51aS5mb3JtIC5maWVsZHMuZXJyb3IgLmZpZWxkIC51aS5kcm9wZG93bjpob3ZlciAubWVudSxcbi51aS5mb3JtIC5maWVsZC5lcnJvciAudWkuZHJvcGRvd246aG92ZXIgLm1lbnUge1xuICBib3JkZXItY29sb3I6ICNFMEI0QjQ7XG59XG4udWkuZm9ybSAuZmllbGRzLmVycm9yIC5maWVsZCAudWkubXVsdGlwbGUuc2VsZWN0aW9uLmRyb3Bkb3duID4gLmxhYmVsLFxuLnVpLmZvcm0gLmZpZWxkLmVycm9yIC51aS5tdWx0aXBsZS5zZWxlY3Rpb24uZHJvcGRvd24gPiAubGFiZWwge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRUFDQkNCO1xuICBjb2xvcjogIzlGM0EzODtcbn1cbi8qIEhvdmVyICovXG4udWkuZm9ybSAuZmllbGRzLmVycm9yIC5maWVsZCAudWkuZHJvcGRvd24gLm1lbnUgLml0ZW06aG92ZXIsXG4udWkuZm9ybSAuZmllbGQuZXJyb3IgLnVpLmRyb3Bkb3duIC5tZW51IC5pdGVtOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0ZCRTdFNztcbn1cbi8qIFNlbGVjdGVkICovXG4udWkuZm9ybSAuZmllbGRzLmVycm9yIC5maWVsZCAudWkuZHJvcGRvd24gLm1lbnUgLnNlbGVjdGVkLml0ZW0sXG4udWkuZm9ybSAuZmllbGQuZXJyb3IgLnVpLmRyb3Bkb3duIC5tZW51IC5zZWxlY3RlZC5pdGVtIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0ZCRTdFNztcbn1cbi8qIEFjdGl2ZSAqL1xuLnVpLmZvcm0gLmZpZWxkcy5lcnJvciAuZmllbGQgLnVpLmRyb3Bkb3duIC5tZW51IC5hY3RpdmUuaXRlbSxcbi51aS5mb3JtIC5maWVsZC5lcnJvciAudWkuZHJvcGRvd24gLm1lbnUgLmFjdGl2ZS5pdGVtIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0ZEQ0ZDRiAhaW1wb3J0YW50O1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIENoZWNrYm94IEVycm9yXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmZvcm0gLmZpZWxkcy5lcnJvciAuZmllbGQgLmNoZWNrYm94Om5vdCgudG9nZ2xlKTpub3QoLnNsaWRlcikgbGFiZWwsXG4udWkuZm9ybSAuZmllbGQuZXJyb3IgLmNoZWNrYm94Om5vdCgudG9nZ2xlKTpub3QoLnNsaWRlcikgbGFiZWwsXG4udWkuZm9ybSAuZmllbGRzLmVycm9yIC5maWVsZCAuY2hlY2tib3g6bm90KC50b2dnbGUpOm5vdCguc2xpZGVyKSAuYm94LFxuLnVpLmZvcm0gLmZpZWxkLmVycm9yIC5jaGVja2JveDpub3QoLnRvZ2dsZSk6bm90KC5zbGlkZXIpIC5ib3gge1xuICBjb2xvcjogIzlGM0EzODtcbn1cbi51aS5mb3JtIC5maWVsZHMuZXJyb3IgLmZpZWxkIC5jaGVja2JveDpub3QoLnRvZ2dsZSk6bm90KC5zbGlkZXIpIGxhYmVsOmJlZm9yZSxcbi51aS5mb3JtIC5maWVsZC5lcnJvciAuY2hlY2tib3g6bm90KC50b2dnbGUpOm5vdCguc2xpZGVyKSBsYWJlbDpiZWZvcmUsXG4udWkuZm9ybSAuZmllbGRzLmVycm9yIC5maWVsZCAuY2hlY2tib3g6bm90KC50b2dnbGUpOm5vdCguc2xpZGVyKSAuYm94OmJlZm9yZSxcbi51aS5mb3JtIC5maWVsZC5lcnJvciAuY2hlY2tib3g6bm90KC50b2dnbGUpOm5vdCguc2xpZGVyKSAuYm94OmJlZm9yZSB7XG4gIGJhY2tncm91bmQ6ICNGRkY2RjY7XG4gIGJvcmRlci1jb2xvcjogI0UwQjRCNDtcbn1cbi51aS5mb3JtIC5maWVsZHMuZXJyb3IgLmZpZWxkIC5jaGVja2JveCBsYWJlbDphZnRlcixcbi51aS5mb3JtIC5maWVsZC5lcnJvciAuY2hlY2tib3ggbGFiZWw6YWZ0ZXIsXG4udWkuZm9ybSAuZmllbGRzLmVycm9yIC5maWVsZCAuY2hlY2tib3ggLmJveDphZnRlcixcbi51aS5mb3JtIC5maWVsZC5lcnJvciAuY2hlY2tib3ggLmJveDphZnRlciB7XG4gIGNvbG9yOiAjOUYzQTM4O1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmZvcm0gLmRpc2FibGVkLmZpZWxkcyAuZmllbGQsXG4udWkuZm9ybSAuZGlzYWJsZWQuZmllbGQsXG4udWkuZm9ybSAuZmllbGQgOmRpc2FibGVkIHtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIG9wYWNpdHk6IDAuNDU7XG59XG4udWkuZm9ybSAuZmllbGQuZGlzYWJsZWQgPiBsYWJlbCxcbi51aS5mb3JtIC5maWVsZHMuZGlzYWJsZWQgPiBsYWJlbCB7XG4gIG9wYWNpdHk6IDAuNDU7XG59XG4udWkuZm9ybSAuZmllbGQuZGlzYWJsZWQgOmRpc2FibGVkIHtcbiAgb3BhY2l0eTogMTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBMb2FkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmxvYWRpbmcuZm9ybSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgY3Vyc29yOiBkZWZhdWx0O1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cbi51aS5sb2FkaW5nLmZvcm06YmVmb3JlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBjb250ZW50OiAnJztcbiAgdG9wOiAwJTtcbiAgbGVmdDogMCU7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44KTtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgei1pbmRleDogMTAwO1xufVxuLnVpLmxvYWRpbmcuZm9ybTphZnRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgY29udGVudDogJyc7XG4gIHRvcDogNTAlO1xuICBsZWZ0OiA1MCU7XG4gIG1hcmdpbjogLTEuNWVtIDBlbSAwZW0gLTEuNWVtO1xuICB3aWR0aDogM2VtO1xuICBoZWlnaHQ6IDNlbTtcbiAgYW5pbWF0aW9uOiBmb3JtLXNwaW4gMC42cyBsaW5lYXI7XG4gIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xuICBib3JkZXItcmFkaXVzOiA1MDByZW07XG4gIGJvcmRlci1jb2xvcjogIzc2NzY3NiByZ2JhKDAsIDAsIDAsIDAuMSkgcmdiYSgwLCAwLCAwLCAwLjEpIHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgYm9yZGVyLXdpZHRoOiAwLjJlbTtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4IHRyYW5zcGFyZW50O1xuICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICB6LWluZGV4OiAxMDE7XG59XG5Aa2V5ZnJhbWVzIGZvcm0tc3BpbiB7XG4gIGZyb20ge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xuICB9XG4gIHRvIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpO1xuICB9XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgRWxlbWVudCBUeXBlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgUmVxdWlyZWQgRmllbGRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkuZm9ybSAucmVxdWlyZWQuZmllbGRzOm5vdCguZ3JvdXBlZCkgPiAuZmllbGQgPiBsYWJlbDphZnRlcixcbi51aS5mb3JtIC5yZXF1aXJlZC5maWVsZHMuZ3JvdXBlZCA+IGxhYmVsOmFmdGVyLFxuLnVpLmZvcm0gLnJlcXVpcmVkLmZpZWxkID4gbGFiZWw6YWZ0ZXIsXG4udWkuZm9ybSAucmVxdWlyZWQuZmllbGRzOm5vdCguZ3JvdXBlZCkgPiAuZmllbGQgPiAuY2hlY2tib3g6YWZ0ZXIsXG4udWkuZm9ybSAucmVxdWlyZWQuZmllbGQgPiAuY2hlY2tib3g6YWZ0ZXIge1xuICBtYXJnaW46IC0wLjJlbSAwZW0gMGVtIDAuMmVtO1xuICBjb250ZW50OiAnKic7XG4gIGNvbG9yOiAjZGUzYTNlO1xufVxuLnVpLmZvcm0gLnJlcXVpcmVkLmZpZWxkczpub3QoLmdyb3VwZWQpID4gLmZpZWxkID4gbGFiZWw6YWZ0ZXIsXG4udWkuZm9ybSAucmVxdWlyZWQuZmllbGRzLmdyb3VwZWQgPiBsYWJlbDphZnRlcixcbi51aS5mb3JtIC5yZXF1aXJlZC5maWVsZCA+IGxhYmVsOmFmdGVyIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xufVxuLnVpLmZvcm0gLnJlcXVpcmVkLmZpZWxkczpub3QoLmdyb3VwZWQpID4gLmZpZWxkID4gLmNoZWNrYm94OmFmdGVyLFxuLnVpLmZvcm0gLnJlcXVpcmVkLmZpZWxkID4gLmNoZWNrYm94OmFmdGVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDAlO1xuICBsZWZ0OiAxMDAlO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgVmFyaWF0aW9uc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBJbnZlcnRlZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkuaW52ZXJ0ZWQuZm9ybSBsYWJlbCxcbi51aS5mb3JtIC5pbnZlcnRlZC5zZWdtZW50IGxhYmVsLFxuLnVpLmZvcm0gLmludmVydGVkLnNlZ21lbnQgLnVpLmNoZWNrYm94IGxhYmVsLFxuLnVpLmZvcm0gLmludmVydGVkLnNlZ21lbnQgLnVpLmNoZWNrYm94IC5ib3gsXG4udWkuaW52ZXJ0ZWQuZm9ybSAudWkuY2hlY2tib3ggbGFiZWwsXG4udWkuaW52ZXJ0ZWQuZm9ybSAudWkuY2hlY2tib3ggLmJveCxcbi51aS5pbnZlcnRlZC5mb3JtIC5pbmxpbmUuZmllbGRzID4gbGFiZWwsXG4udWkuaW52ZXJ0ZWQuZm9ybSAuaW5saW5lLmZpZWxkcyAuZmllbGQgPiBsYWJlbCxcbi51aS5pbnZlcnRlZC5mb3JtIC5pbmxpbmUuZmllbGRzIC5maWVsZCA+IHAsXG4udWkuaW52ZXJ0ZWQuZm9ybSAuaW5saW5lLmZpZWxkID4gbGFiZWwsXG4udWkuaW52ZXJ0ZWQuZm9ybSAuaW5saW5lLmZpZWxkID4gcCB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOSk7XG59XG4vKiBJbnZlcnRlZCBGaWVsZCAqL1xuLnVpLmludmVydGVkLmZvcm0gaW5wdXQ6bm90KFt0eXBlXSksXG4udWkuaW52ZXJ0ZWQuZm9ybSBpbnB1dFt0eXBlPVwiZGF0ZVwiXSxcbi51aS5pbnZlcnRlZC5mb3JtIGlucHV0W3R5cGU9XCJkYXRldGltZS1sb2NhbFwiXSxcbi51aS5pbnZlcnRlZC5mb3JtIGlucHV0W3R5cGU9XCJlbWFpbFwiXSxcbi51aS5pbnZlcnRlZC5mb3JtIGlucHV0W3R5cGU9XCJudW1iZXJcIl0sXG4udWkuaW52ZXJ0ZWQuZm9ybSBpbnB1dFt0eXBlPVwicGFzc3dvcmRcIl0sXG4udWkuaW52ZXJ0ZWQuZm9ybSBpbnB1dFt0eXBlPVwic2VhcmNoXCJdLFxuLnVpLmludmVydGVkLmZvcm0gaW5wdXRbdHlwZT1cInRlbFwiXSxcbi51aS5pbnZlcnRlZC5mb3JtIGlucHV0W3R5cGU9XCJ0aW1lXCJdLFxuLnVpLmludmVydGVkLmZvcm0gaW5wdXRbdHlwZT1cInRleHRcIl0sXG4udWkuaW52ZXJ0ZWQuZm9ybSBpbnB1dFt0eXBlPVwiZmlsZVwiXSxcbi51aS5pbnZlcnRlZC5mb3JtIGlucHV0W3R5cGU9XCJ1cmxcIl0ge1xuICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICBib3JkZXItY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKTtcbiAgY29sb3I6ICMzMzMzMzM7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEZpZWxkIEdyb3Vwc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEdyb3VwZWQgVmVydGljYWxseSAqL1xuLnVpLmZvcm0gLmdyb3VwZWQuZmllbGRzIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbjogMGVtIDBlbSAxZW07XG59XG4udWkuZm9ybSAuZ3JvdXBlZC5maWVsZHM6bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1ib3R0b206IDBlbTtcbn1cbi51aS5mb3JtIC5ncm91cGVkLmZpZWxkcyA+IGxhYmVsIHtcbiAgbWFyZ2luOiAwZW0gMGVtIDAuNHJlbSAwZW07XG4gIGNvbG9yOiAjMzMzMzMzO1xuICBmb250LXNpemU6IDAuOWVtO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG59XG4udWkuZm9ybSAuZ3JvdXBlZC5maWVsZHMgLmZpZWxkLFxuLnVpLmZvcm0gLmdyb3VwZWQuaW5saW5lLmZpZWxkcyAuZmllbGQge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luOiAwLjVlbSAwZW07XG4gIHBhZGRpbmc6IDBlbTtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRmllbGRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU3BsaXQgZmllbGRzICovXG4udWkuZm9ybSAuZmllbGRzIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgbWFyZ2luOiAwZW0gLTAuNWVtIDFlbTtcbn1cbi51aS5mb3JtIC5maWVsZHMgPiAuZmllbGQge1xuICBmbGV4OiAwIDEgYXV0bztcbiAgcGFkZGluZy1sZWZ0OiAwLjVlbTtcbiAgcGFkZGluZy1yaWdodDogMC41ZW07XG59XG4udWkuZm9ybSAuZmllbGRzID4gLmZpZWxkOmZpcnN0LWNoaWxkIHtcbiAgYm9yZGVyLWxlZnQ6IG5vbmU7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG59XG4vKiBPdGhlciBDb21iaW5hdGlvbnMgKi9cbi51aS5mb3JtIC50d28uZmllbGRzID4gLmZpZWxkcyxcbi51aS5mb3JtIC50d28uZmllbGRzID4gLmZpZWxkIHtcbiAgd2lkdGg6IDUwJTtcbn1cbi51aS5mb3JtIC50aHJlZS5maWVsZHMgPiAuZmllbGRzLFxuLnVpLmZvcm0gLnRocmVlLmZpZWxkcyA+IC5maWVsZCB7XG4gIHdpZHRoOiAzMy4zMzMzMzMzMyU7XG59XG4udWkuZm9ybSAuZm91ci5maWVsZHMgPiAuZmllbGRzLFxuLnVpLmZvcm0gLmZvdXIuZmllbGRzID4gLmZpZWxkIHtcbiAgd2lkdGg6IDI1JTtcbn1cbi51aS5mb3JtIC5maXZlLmZpZWxkcyA+IC5maWVsZHMsXG4udWkuZm9ybSAuZml2ZS5maWVsZHMgPiAuZmllbGQge1xuICB3aWR0aDogMjAlO1xufVxuLnVpLmZvcm0gLnNpeC5maWVsZHMgPiAuZmllbGRzLFxuLnVpLmZvcm0gLnNpeC5maWVsZHMgPiAuZmllbGQge1xuICB3aWR0aDogMTYuNjY2NjY2NjclO1xufVxuLnVpLmZvcm0gLnNldmVuLmZpZWxkcyA+IC5maWVsZHMsXG4udWkuZm9ybSAuc2V2ZW4uZmllbGRzID4gLmZpZWxkIHtcbiAgd2lkdGg6IDE0LjI4NTcxNDI5JTtcbn1cbi51aS5mb3JtIC5laWdodC5maWVsZHMgPiAuZmllbGRzLFxuLnVpLmZvcm0gLmVpZ2h0LmZpZWxkcyA+IC5maWVsZCB7XG4gIHdpZHRoOiAxMi41JTtcbn1cbi51aS5mb3JtIC5uaW5lLmZpZWxkcyA+IC5maWVsZHMsXG4udWkuZm9ybSAubmluZS5maWVsZHMgPiAuZmllbGQge1xuICB3aWR0aDogMTEuMTExMTExMTElO1xufVxuLnVpLmZvcm0gLnRlbi5maWVsZHMgPiAuZmllbGRzLFxuLnVpLmZvcm0gLnRlbi5maWVsZHMgPiAuZmllbGQge1xuICB3aWR0aDogMTAlO1xufVxuLyogU3dhcCB0byBmdWxsIHdpZHRoIG9uIG1vYmlsZSAqL1xuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAudWkuZm9ybSAuZmllbGRzIHtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gIH1cbiAgLnVpW2NsYXNzKj1cImVxdWFsIHdpZHRoXCJdLmZvcm0gLmZpZWxkcyA+IC5maWVsZCxcbiAgLnVpLmZvcm0gW2NsYXNzKj1cImVxdWFsIHdpZHRoXCJdLmZpZWxkcyA+IC5maWVsZCxcbiAgLnVpLmZvcm0gLnR3by5maWVsZHMgPiAuZmllbGRzLFxuICAudWkuZm9ybSAudHdvLmZpZWxkcyA+IC5maWVsZCxcbiAgLnVpLmZvcm0gLnRocmVlLmZpZWxkcyA+IC5maWVsZHMsXG4gIC51aS5mb3JtIC50aHJlZS5maWVsZHMgPiAuZmllbGQsXG4gIC51aS5mb3JtIC5mb3VyLmZpZWxkcyA+IC5maWVsZHMsXG4gIC51aS5mb3JtIC5mb3VyLmZpZWxkcyA+IC5maWVsZCxcbiAgLnVpLmZvcm0gLmZpdmUuZmllbGRzID4gLmZpZWxkcyxcbiAgLnVpLmZvcm0gLmZpdmUuZmllbGRzID4gLmZpZWxkLFxuICAudWkuZm9ybSAuc2l4LmZpZWxkcyA+IC5maWVsZHMsXG4gIC51aS5mb3JtIC5zaXguZmllbGRzID4gLmZpZWxkLFxuICAudWkuZm9ybSAuc2V2ZW4uZmllbGRzID4gLmZpZWxkcyxcbiAgLnVpLmZvcm0gLnNldmVuLmZpZWxkcyA+IC5maWVsZCxcbiAgLnVpLmZvcm0gLmVpZ2h0LmZpZWxkcyA+IC5maWVsZHMsXG4gIC51aS5mb3JtIC5laWdodC5maWVsZHMgPiAuZmllbGQsXG4gIC51aS5mb3JtIC5uaW5lLmZpZWxkcyA+IC5maWVsZHMsXG4gIC51aS5mb3JtIC5uaW5lLmZpZWxkcyA+IC5maWVsZCxcbiAgLnVpLmZvcm0gLnRlbi5maWVsZHMgPiAuZmllbGRzLFxuICAudWkuZm9ybSAudGVuLmZpZWxkcyA+IC5maWVsZCB7XG4gICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgICBtYXJnaW46IDBlbSAwZW0gMWVtO1xuICB9XG59XG4vKiBTaXppbmcgQ29tYmluYXRpb25zICovXG4udWkuZm9ybSAuZmllbGRzIC53aWRlLmZpZWxkIHtcbiAgd2lkdGg6IDYuMjUlO1xuICBwYWRkaW5nLWxlZnQ6IDAuNWVtO1xuICBwYWRkaW5nLXJpZ2h0OiAwLjVlbTtcbn1cbi51aS5mb3JtIC5vbmUud2lkZS5maWVsZCB7XG4gIHdpZHRoOiA2LjI1JSAhaW1wb3J0YW50O1xufVxuLnVpLmZvcm0gLnR3by53aWRlLmZpZWxkIHtcbiAgd2lkdGg6IDEyLjUlICFpbXBvcnRhbnQ7XG59XG4udWkuZm9ybSAudGhyZWUud2lkZS5maWVsZCB7XG4gIHdpZHRoOiAxOC43NSUgIWltcG9ydGFudDtcbn1cbi51aS5mb3JtIC5mb3VyLndpZGUuZmllbGQge1xuICB3aWR0aDogMjUlICFpbXBvcnRhbnQ7XG59XG4udWkuZm9ybSAuZml2ZS53aWRlLmZpZWxkIHtcbiAgd2lkdGg6IDMxLjI1JSAhaW1wb3J0YW50O1xufVxuLnVpLmZvcm0gLnNpeC53aWRlLmZpZWxkIHtcbiAgd2lkdGg6IDM3LjUlICFpbXBvcnRhbnQ7XG59XG4udWkuZm9ybSAuc2V2ZW4ud2lkZS5maWVsZCB7XG4gIHdpZHRoOiA0My43NSUgIWltcG9ydGFudDtcbn1cbi51aS5mb3JtIC5laWdodC53aWRlLmZpZWxkIHtcbiAgd2lkdGg6IDUwJSAhaW1wb3J0YW50O1xufVxuLnVpLmZvcm0gLm5pbmUud2lkZS5maWVsZCB7XG4gIHdpZHRoOiA1Ni4yNSUgIWltcG9ydGFudDtcbn1cbi51aS5mb3JtIC50ZW4ud2lkZS5maWVsZCB7XG4gIHdpZHRoOiA2Mi41JSAhaW1wb3J0YW50O1xufVxuLnVpLmZvcm0gLmVsZXZlbi53aWRlLmZpZWxkIHtcbiAgd2lkdGg6IDY4Ljc1JSAhaW1wb3J0YW50O1xufVxuLnVpLmZvcm0gLnR3ZWx2ZS53aWRlLmZpZWxkIHtcbiAgd2lkdGg6IDc1JSAhaW1wb3J0YW50O1xufVxuLnVpLmZvcm0gLnRoaXJ0ZWVuLndpZGUuZmllbGQge1xuICB3aWR0aDogODEuMjUlICFpbXBvcnRhbnQ7XG59XG4udWkuZm9ybSAuZm91cnRlZW4ud2lkZS5maWVsZCB7XG4gIHdpZHRoOiA4Ny41JSAhaW1wb3J0YW50O1xufVxuLnVpLmZvcm0gLmZpZnRlZW4ud2lkZS5maWVsZCB7XG4gIHdpZHRoOiA5My43NSUgIWltcG9ydGFudDtcbn1cbi51aS5mb3JtIC5zaXh0ZWVuLndpZGUuZmllbGQge1xuICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xufVxuLyogU3dhcCB0byBmdWxsIHdpZHRoIG9uIG1vYmlsZSAqL1xuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAudWkuZm9ybSAudHdvLmZpZWxkcyA+IC5maWVsZHMsXG4gIC51aS5mb3JtIC50d28uZmllbGRzID4gLmZpZWxkLFxuICAudWkuZm9ybSAudGhyZWUuZmllbGRzID4gLmZpZWxkcyxcbiAgLnVpLmZvcm0gLnRocmVlLmZpZWxkcyA+IC5maWVsZCxcbiAgLnVpLmZvcm0gLmZvdXIuZmllbGRzID4gLmZpZWxkcyxcbiAgLnVpLmZvcm0gLmZvdXIuZmllbGRzID4gLmZpZWxkLFxuICAudWkuZm9ybSAuZml2ZS5maWVsZHMgPiAuZmllbGRzLFxuICAudWkuZm9ybSAuZml2ZS5maWVsZHMgPiAuZmllbGQsXG4gIC51aS5mb3JtIC5maWVsZHMgPiAudHdvLndpZGUuZmllbGQsXG4gIC51aS5mb3JtIC5maWVsZHMgPiAudGhyZWUud2lkZS5maWVsZCxcbiAgLnVpLmZvcm0gLmZpZWxkcyA+IC5mb3VyLndpZGUuZmllbGQsXG4gIC51aS5mb3JtIC5maWVsZHMgPiAuZml2ZS53aWRlLmZpZWxkLFxuICAudWkuZm9ybSAuZmllbGRzID4gLnNpeC53aWRlLmZpZWxkLFxuICAudWkuZm9ybSAuZmllbGRzID4gLnNldmVuLndpZGUuZmllbGQsXG4gIC51aS5mb3JtIC5maWVsZHMgPiAuZWlnaHQud2lkZS5maWVsZCxcbiAgLnVpLmZvcm0gLmZpZWxkcyA+IC5uaW5lLndpZGUuZmllbGQsXG4gIC51aS5mb3JtIC5maWVsZHMgPiAudGVuLndpZGUuZmllbGQsXG4gIC51aS5mb3JtIC5maWVsZHMgPiAuZWxldmVuLndpZGUuZmllbGQsXG4gIC51aS5mb3JtIC5maWVsZHMgPiAudHdlbHZlLndpZGUuZmllbGQsXG4gIC51aS5mb3JtIC5maWVsZHMgPiAudGhpcnRlZW4ud2lkZS5maWVsZCxcbiAgLnVpLmZvcm0gLmZpZWxkcyA+IC5mb3VydGVlbi53aWRlLmZpZWxkLFxuICAudWkuZm9ybSAuZmllbGRzID4gLmZpZnRlZW4ud2lkZS5maWVsZCxcbiAgLnVpLmZvcm0gLmZpZWxkcyA+IC5zaXh0ZWVuLndpZGUuZmllbGQge1xuICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLmZvcm0gLmZpZWxkcyB7XG4gICAgbWFyZ2luLWJvdHRvbTogMGVtO1xuICB9XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEVxdWFsIFdpZHRoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpW2NsYXNzKj1cImVxdWFsIHdpZHRoXCJdLmZvcm0gLmZpZWxkcyA+IC5maWVsZCxcbi51aS5mb3JtIFtjbGFzcyo9XCJlcXVhbCB3aWR0aFwiXS5maWVsZHMgPiAuZmllbGQge1xuICB3aWR0aDogMTAwJTtcbiAgZmxleDogMSAxIGF1dG87XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgSW5saW5lIEZpZWxkc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5mb3JtIC5pbmxpbmUuZmllbGRzIHtcbiAgbWFyZ2luOiAwZW0gMGVtIDFlbTtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cbi51aS5mb3JtIC5pbmxpbmUuZmllbGRzIC5maWVsZCB7XG4gIG1hcmdpbjogMGVtO1xuICBwYWRkaW5nOiAwZW0gMWVtIDBlbSAwZW07XG59XG4vKiBJbmxpbmUgTGFiZWwgKi9cbi51aS5mb3JtIC5pbmxpbmUuZmllbGRzID4gbGFiZWwsXG4udWkuZm9ybSAuaW5saW5lLmZpZWxkcyAuZmllbGQgPiBsYWJlbCxcbi51aS5mb3JtIC5pbmxpbmUuZmllbGRzIC5maWVsZCA+IHAsXG4udWkuZm9ybSAuaW5saW5lLmZpZWxkID4gbGFiZWwsXG4udWkuZm9ybSAuaW5saW5lLmZpZWxkID4gcCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgd2lkdGg6IGF1dG87XG4gIG1hcmdpbi10b3A6IDBlbTtcbiAgbWFyZ2luLWJvdHRvbTogMGVtO1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG4gIGZvbnQtc2l6ZTogMC45ZW07XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBjb2xvcjogIzMzMzMzMztcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG59XG4vKiBHcm91cGVkIElubGluZSBMYWJlbCAqL1xuLnVpLmZvcm0gLmlubGluZS5maWVsZHMgPiBsYWJlbCB7XG4gIG1hcmdpbjogMC4wMzU3MTRlbSAxZW0gMGVtIDBlbTtcbn1cbi8qIElubGluZSBJbnB1dCAqL1xuLnVpLmZvcm0gLmlubGluZS5maWVsZHMgLmZpZWxkID4gaW5wdXQsXG4udWkuZm9ybSAuaW5saW5lLmZpZWxkcyAuZmllbGQgPiBzZWxlY3QsXG4udWkuZm9ybSAuaW5saW5lLmZpZWxkID4gaW5wdXQsXG4udWkuZm9ybSAuaW5saW5lLmZpZWxkID4gc2VsZWN0IHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB3aWR0aDogYXV0bztcbiAgbWFyZ2luLXRvcDogMGVtO1xuICBtYXJnaW4tYm90dG9tOiAwZW07XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIGZvbnQtc2l6ZTogMWVtO1xufVxuLyogTGFiZWwgKi9cbi51aS5mb3JtIC5pbmxpbmUuZmllbGRzIC5maWVsZCA+IDpmaXJzdC1jaGlsZCxcbi51aS5mb3JtIC5pbmxpbmUuZmllbGQgPiA6Zmlyc3QtY2hpbGQge1xuICBtYXJnaW46IDBlbSAwLjllbSAwZW0gMGVtO1xufVxuLnVpLmZvcm0gLmlubGluZS5maWVsZHMgLmZpZWxkID4gOm9ubHktY2hpbGQsXG4udWkuZm9ybSAuaW5saW5lLmZpZWxkID4gOm9ubHktY2hpbGQge1xuICBtYXJnaW46IDBlbTtcbn1cbi8qIFdpZGUgKi9cbi51aS5mb3JtIC5pbmxpbmUuZmllbGRzIC53aWRlLmZpZWxkIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cbi51aS5mb3JtIC5pbmxpbmUuZmllbGRzIC53aWRlLmZpZWxkID4gaW5wdXQsXG4udWkuZm9ybSAuaW5saW5lLmZpZWxkcyAud2lkZS5maWVsZCA+IHNlbGVjdCB7XG4gIHdpZHRoOiAxMDAlO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5taW5pLmZvcm0ge1xuICBmb250LXNpemU6IDAuOHJlbTtcbn1cbi51aS50aW55LmZvcm0ge1xuICBmb250LXNpemU6IDAuOXJlbTtcbn1cbi51aS5zbWFsbC5mb3JtIHtcbiAgZm9udC1zaXplOiAwLjlyZW07XG59XG4udWkuZm9ybSB7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbn1cbi51aS5sYXJnZS5mb3JtIHtcbiAgZm9udC1zaXplOiAxLjFyZW07XG59XG4udWkuYmlnLmZvcm0ge1xuICBmb250LXNpemU6IDEuM3JlbTtcbn1cbi51aS5odWdlLmZvcm0ge1xuICBmb250LXNpemU6IDEuNHJlbTtcbn1cbi51aS5tYXNzaXZlLmZvcm0ge1xuICBmb250LXNpemU6IDEuN3JlbTtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBUaGVtZSBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiFcbiAqICMgU2VtYW50aWMgVUkgLSBHcmlkXG4gKiBodHRwOi8vZ2l0aHViLmNvbS9zZW1hbnRpYy1vcmcvc2VtYW50aWMtdWkvXG4gKlxuICpcbiAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZVxuICogaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVFxuICpcbiAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLypcblxu4paI4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWXICDilojilojilZfilojilojilojilojilojilojilojilZfilojilojilojilZcgICDilojilojilojilZfilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZdcbuKVmuKVkOKVkOKWiOKWiOKVlOKVkOKVkOKVneKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWd4paI4paI4paI4paI4pWXIOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVnVxuICAg4paI4paI4pWRICAg4paI4paI4paI4paI4paI4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilZTilojilojilojilojilZTilojilojilZHilojilojilojilojilojilZcgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl1xuICAg4paI4paI4pWRICAg4paI4paI4pWU4pWQ4pWQ4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilojilojilZHilZrilojilojilZTilZ3ilojilojilZHilojilojilZTilZDilZDilZ0gIOKVmuKVkOKVkOKVkOKVkOKWiOKWiOKVkVxuICAg4paI4paI4pWRICAg4paI4paI4pWRICDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilZEg4pWa4pWQ4pWdIOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkVxuICAg4pWa4pWQ4pWdICAg4pWa4pWQ4pWdICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZ0gICAgIOKVmuKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVnVxuXG4qL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgVGhlbWUgU2VsZWN0aW9uXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogVG8gb3ZlcnJpZGUgYSB0aGVtZSBmb3IgYW4gaW5kaXZpZHVhbCBlbGVtZW50XG4gICBzcGVjaWZ5IHRoZW1lIG5hbWUgYmVsb3dcbiovXG4vKiBHbG9iYWwgKi9cbi8qIEVsZW1lbnRzICovXG4vKiBDb2xsZWN0aW9ucyAqL1xuLyogTW9kdWxlcyAqL1xuLyogVmlld3MgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBGb2xkZXJzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogUGF0aCB0byB0aGVtZSBwYWNrYWdlcyAqL1xuLyogUGF0aCB0byBzaXRlIG92ZXJyaWRlIGZvbGRlciAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIEltcG9ydCBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIEltcG9ydCBEaXJlY3RpdmVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBUaGVtZVxuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICBTaXRlIFZhcmlhYmxlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERlZmF1bHQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZG9ycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBQYWNrYWdlZCBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kb3JzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIENvbXBvbmVudCdzIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRvcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogU2l0ZSB0aGVtZSBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgVXNlciBHbG9iYWwgVmFyaWFibGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogbWFyc28gY29sb3JzICovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gQ29tcG9uZW50IFZhcmlhYmxlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERlZmF1bHQgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgR3JpZFxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIEluaGVyaXRlZCBGcm9tIFNpdGUgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBHcmlkXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgVmFyaWF0aW9uc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgUmVsYXhlZFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgRGl2aWRlZFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBDZWxsZWRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgU3RhY2thYmxlXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBMZWdhY3lcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBMZWdhY3kgKERPIE5PVCBVU0UpXG4gKi9cbi8qIFBhY2thZ2VkIFRoZW1lICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIEdyaWRcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBJbmhlcml0ZWQgRnJvbSBTaXRlICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgR3JpZFxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFZhcmlhdGlvbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIFJlbGF4ZWRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIERpdmlkZWRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgQ2VsbGVkXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgIFN0YWNrYWJsZVxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgTGVnYWN5XG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogTGVnYWN5IChETyBOT1QgVVNFKVxuICovXG4vKiBTaXRlIFRoZW1lICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgIFVzZXIgVmFyaWFibGUgT3ZlcnJpZGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBNaXgtaW5zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBPdmVycmlkZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRW5kIENvbmZpZyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFN0YW5kYXJkXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLnVpLmdyaWQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICBwYWRkaW5nOiAwZW07XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFJlbW92ZSBHdXR0ZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkuZ3JpZCB7XG4gIG1hcmdpbi10b3A6IC0xcmVtO1xuICBtYXJnaW4tYm90dG9tOiAtMXJlbTtcbiAgbWFyZ2luLWxlZnQ6IC0xcmVtO1xuICBtYXJnaW4tcmlnaHQ6IC0xcmVtO1xufVxuLnVpLnJlbGF4ZWQuZ3JpZCB7XG4gIG1hcmdpbi1sZWZ0OiAtMS41cmVtO1xuICBtYXJnaW4tcmlnaHQ6IC0xLjVyZW07XG59XG4udWlbY2xhc3MqPVwidmVyeSByZWxheGVkXCJdLmdyaWQge1xuICBtYXJnaW4tbGVmdDogLTIuNXJlbTtcbiAgbWFyZ2luLXJpZ2h0OiAtMi41cmVtO1xufVxuLyogUHJlc2VydmUgUm93cyBTcGFjaW5nIG9uIENvbnNlY3V0aXZlIEdyaWRzICovXG4udWkuZ3JpZCArIC5ncmlkIHtcbiAgbWFyZ2luLXRvcDogMXJlbTtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIENvbHVtbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFN0YW5kYXJkIDE2IGNvbHVtbiAqL1xuLnVpLmdyaWQgPiAuY29sdW1uOm5vdCgucm93KSxcbi51aS5ncmlkID4gLnJvdyA+IC5jb2x1bW4ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgd2lkdGg6IDYuMjUlO1xuICBwYWRkaW5nLWxlZnQ6IDFyZW07XG4gIHBhZGRpbmctcmlnaHQ6IDFyZW07XG4gIHZlcnRpY2FsLWFsaWduOiB0b3A7XG59XG4udWkuZ3JpZCA+ICoge1xuICBwYWRkaW5nLWxlZnQ6IDFyZW07XG4gIHBhZGRpbmctcmlnaHQ6IDFyZW07XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUm93c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmdyaWQgPiAucm93IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIGp1c3RpZnktY29udGVudDogaW5oZXJpdDtcbiAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gIHBhZGRpbmc6IDByZW07XG4gIHBhZGRpbmctdG9wOiAxcmVtO1xuICBwYWRkaW5nLWJvdHRvbTogMXJlbTtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIENvbHVtbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFZlcnRpY2FsIHBhZGRpbmcgd2hlbiBubyByb3dzICovXG4udWkuZ3JpZCA+IC5jb2x1bW46bm90KC5yb3cpIHtcbiAgcGFkZGluZy10b3A6IDFyZW07XG4gIHBhZGRpbmctYm90dG9tOiAxcmVtO1xufVxuLnVpLmdyaWQgPiAucm93ID4gLmNvbHVtbiB7XG4gIG1hcmdpbi10b3A6IDBlbTtcbiAgbWFyZ2luLWJvdHRvbTogMGVtO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBDb250ZW50XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkuZ3JpZCA+IC5yb3cgPiBpbWcsXG4udWkuZ3JpZCA+IC5yb3cgPiAuY29sdW1uID4gaW1nIHtcbiAgbWF4LXdpZHRoOiAxMDAlO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgTG9vc2UgQ291cGxpbmdcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIENvbGxhcHNlIE1hcmdpbiBvbiBDb25zZWN1dGl2ZSBHcmlkICovXG4udWkuZ3JpZCA+IC51aS5ncmlkOmZpcnN0LWNoaWxkIHtcbiAgbWFyZ2luLXRvcDogMGVtO1xufVxuLnVpLmdyaWQgPiAudWkuZ3JpZDpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLWJvdHRvbTogMGVtO1xufVxuLyogU2VnbWVudCBpbnNpZGUgQWxpZ25lZCBHcmlkICovXG4udWkuZ3JpZCAuYWxpZ25lZC5yb3cgPiAuY29sdW1uID4gLnNlZ21lbnQ6bm90KC5jb21wYWN0KTpub3QoLmF0dGFjaGVkKSxcbi51aS5hbGlnbmVkLmdyaWQgLmNvbHVtbiA+IC5zZWdtZW50Om5vdCguY29tcGFjdCk6bm90KC5hdHRhY2hlZCkge1xuICB3aWR0aDogMTAwJTtcbn1cbi8qIEFsaWduIERpdmlkZXJzIHdpdGggR3V0dGVyICovXG4udWkuZ3JpZCAucm93ICsgLnVpLmRpdmlkZXIge1xuICBmbGV4LWdyb3c6IDE7XG4gIG1hcmdpbjogMXJlbSAxcmVtO1xufVxuLnVpLmdyaWQgLmNvbHVtbiArIC51aS52ZXJ0aWNhbC5kaXZpZGVyIHtcbiAgaGVpZ2h0OiBjYWxjKDUwJSAtIDFyZW0pO1xufVxuLyogUmVtb3ZlIEJvcmRlciBvbiBMYXN0IEhvcml6b250YWwgU2VnbWVudCAqL1xuLnVpLmdyaWQgPiAucm93ID4gLmNvbHVtbjpsYXN0LWNoaWxkID4gLmhvcml6b250YWwuc2VnbWVudCxcbi51aS5ncmlkID4gLmNvbHVtbjpsYXN0LWNoaWxkID4gLmhvcml6b250YWwuc2VnbWVudCB7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBWYXJpYXRpb25zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIFBhZ2UgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC51aS5wYWdlLmdyaWQge1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIHBhZGRpbmctbGVmdDogMGVtO1xuICAgIHBhZGRpbmctcmlnaHQ6IDBlbTtcbiAgICBtYXJnaW4tbGVmdDogMGVtO1xuICAgIG1hcmdpbi1yaWdodDogMGVtO1xuICB9XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc2OHB4KSBhbmQgKG1heC13aWR0aDogOTkxcHgpIHtcbiAgLnVpLnBhZ2UuZ3JpZCB7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgbWFyZ2luLWxlZnQ6IDBlbTtcbiAgICBtYXJnaW4tcmlnaHQ6IDBlbTtcbiAgICBwYWRkaW5nLWxlZnQ6IDJlbTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAyZW07XG4gIH1cbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogOTkycHgpIGFuZCAobWF4LXdpZHRoOiAxMTk5cHgpIHtcbiAgLnVpLnBhZ2UuZ3JpZCB7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgbWFyZ2luLWxlZnQ6IDBlbTtcbiAgICBtYXJnaW4tcmlnaHQ6IDBlbTtcbiAgICBwYWRkaW5nLWxlZnQ6IDMlO1xuICAgIHBhZGRpbmctcmlnaHQ6IDMlO1xuICB9XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEyMDBweCkgYW5kIChtYXgtd2lkdGg6IDE5MTlweCkge1xuICAudWkucGFnZS5ncmlkIHtcbiAgICB3aWR0aDogYXV0bztcbiAgICBtYXJnaW4tbGVmdDogMGVtO1xuICAgIG1hcmdpbi1yaWdodDogMGVtO1xuICAgIHBhZGRpbmctbGVmdDogMTUlO1xuICAgIHBhZGRpbmctcmlnaHQ6IDE1JTtcbiAgfVxufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxOTIwcHgpIHtcbiAgLnVpLnBhZ2UuZ3JpZCB7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgbWFyZ2luLWxlZnQ6IDBlbTtcbiAgICBtYXJnaW4tcmlnaHQ6IDBlbTtcbiAgICBwYWRkaW5nLWxlZnQ6IDIzJTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAyMyU7XG4gIH1cbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBDb2x1bW4gQ291bnRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEFzc3VtZSBmdWxsIHdpZHRoIHdpdGggb25lIGNvbHVtbiAqL1xuLnVpLmdyaWQgPiAuY29sdW1uOm9ubHktY2hpbGQsXG4udWkuZ3JpZCA+IC5yb3cgPiAuY29sdW1uOm9ubHktY2hpbGQge1xuICB3aWR0aDogMTAwJTtcbn1cbi8qIEdyaWQgQmFzZWQgKi9cbi51aVtjbGFzcyo9XCJvbmUgY29sdW1uXCJdLmdyaWQgPiAucm93ID4gLmNvbHVtbixcbi51aVtjbGFzcyo9XCJvbmUgY29sdW1uXCJdLmdyaWQgPiAuY29sdW1uOm5vdCgucm93KSB7XG4gIHdpZHRoOiAxMDAlO1xufVxuLnVpW2NsYXNzKj1cInR3byBjb2x1bW5cIl0uZ3JpZCA+IC5yb3cgPiAuY29sdW1uLFxuLnVpW2NsYXNzKj1cInR3byBjb2x1bW5cIl0uZ3JpZCA+IC5jb2x1bW46bm90KC5yb3cpIHtcbiAgd2lkdGg6IDUwJTtcbn1cbi51aVtjbGFzcyo9XCJ0aHJlZSBjb2x1bW5cIl0uZ3JpZCA+IC5yb3cgPiAuY29sdW1uLFxuLnVpW2NsYXNzKj1cInRocmVlIGNvbHVtblwiXS5ncmlkID4gLmNvbHVtbjpub3QoLnJvdykge1xuICB3aWR0aDogMzMuMzMzMzMzMzMlO1xufVxuLnVpW2NsYXNzKj1cImZvdXIgY29sdW1uXCJdLmdyaWQgPiAucm93ID4gLmNvbHVtbixcbi51aVtjbGFzcyo9XCJmb3VyIGNvbHVtblwiXS5ncmlkID4gLmNvbHVtbjpub3QoLnJvdykge1xuICB3aWR0aDogMjUlO1xufVxuLnVpW2NsYXNzKj1cImZpdmUgY29sdW1uXCJdLmdyaWQgPiAucm93ID4gLmNvbHVtbixcbi51aVtjbGFzcyo9XCJmaXZlIGNvbHVtblwiXS5ncmlkID4gLmNvbHVtbjpub3QoLnJvdykge1xuICB3aWR0aDogMjAlO1xufVxuLnVpW2NsYXNzKj1cInNpeCBjb2x1bW5cIl0uZ3JpZCA+IC5yb3cgPiAuY29sdW1uLFxuLnVpW2NsYXNzKj1cInNpeCBjb2x1bW5cIl0uZ3JpZCA+IC5jb2x1bW46bm90KC5yb3cpIHtcbiAgd2lkdGg6IDE2LjY2NjY2NjY3JTtcbn1cbi51aVtjbGFzcyo9XCJzZXZlbiBjb2x1bW5cIl0uZ3JpZCA+IC5yb3cgPiAuY29sdW1uLFxuLnVpW2NsYXNzKj1cInNldmVuIGNvbHVtblwiXS5ncmlkID4gLmNvbHVtbjpub3QoLnJvdykge1xuICB3aWR0aDogMTQuMjg1NzE0MjklO1xufVxuLnVpW2NsYXNzKj1cImVpZ2h0IGNvbHVtblwiXS5ncmlkID4gLnJvdyA+IC5jb2x1bW4sXG4udWlbY2xhc3MqPVwiZWlnaHQgY29sdW1uXCJdLmdyaWQgPiAuY29sdW1uOm5vdCgucm93KSB7XG4gIHdpZHRoOiAxMi41JTtcbn1cbi51aVtjbGFzcyo9XCJuaW5lIGNvbHVtblwiXS5ncmlkID4gLnJvdyA+IC5jb2x1bW4sXG4udWlbY2xhc3MqPVwibmluZSBjb2x1bW5cIl0uZ3JpZCA+IC5jb2x1bW46bm90KC5yb3cpIHtcbiAgd2lkdGg6IDExLjExMTExMTExJTtcbn1cbi51aVtjbGFzcyo9XCJ0ZW4gY29sdW1uXCJdLmdyaWQgPiAucm93ID4gLmNvbHVtbixcbi51aVtjbGFzcyo9XCJ0ZW4gY29sdW1uXCJdLmdyaWQgPiAuY29sdW1uOm5vdCgucm93KSB7XG4gIHdpZHRoOiAxMCU7XG59XG4udWlbY2xhc3MqPVwiZWxldmVuIGNvbHVtblwiXS5ncmlkID4gLnJvdyA+IC5jb2x1bW4sXG4udWlbY2xhc3MqPVwiZWxldmVuIGNvbHVtblwiXS5ncmlkID4gLmNvbHVtbjpub3QoLnJvdykge1xuICB3aWR0aDogOS4wOTA5MDkwOSU7XG59XG4udWlbY2xhc3MqPVwidHdlbHZlIGNvbHVtblwiXS5ncmlkID4gLnJvdyA+IC5jb2x1bW4sXG4udWlbY2xhc3MqPVwidHdlbHZlIGNvbHVtblwiXS5ncmlkID4gLmNvbHVtbjpub3QoLnJvdykge1xuICB3aWR0aDogOC4zMzMzMzMzMyU7XG59XG4udWlbY2xhc3MqPVwidGhpcnRlZW4gY29sdW1uXCJdLmdyaWQgPiAucm93ID4gLmNvbHVtbixcbi51aVtjbGFzcyo9XCJ0aGlydGVlbiBjb2x1bW5cIl0uZ3JpZCA+IC5jb2x1bW46bm90KC5yb3cpIHtcbiAgd2lkdGg6IDcuNjkyMzA3NjklO1xufVxuLnVpW2NsYXNzKj1cImZvdXJ0ZWVuIGNvbHVtblwiXS5ncmlkID4gLnJvdyA+IC5jb2x1bW4sXG4udWlbY2xhc3MqPVwiZm91cnRlZW4gY29sdW1uXCJdLmdyaWQgPiAuY29sdW1uOm5vdCgucm93KSB7XG4gIHdpZHRoOiA3LjE0Mjg1NzE0JTtcbn1cbi51aVtjbGFzcyo9XCJmaWZ0ZWVuIGNvbHVtblwiXS5ncmlkID4gLnJvdyA+IC5jb2x1bW4sXG4udWlbY2xhc3MqPVwiZmlmdGVlbiBjb2x1bW5cIl0uZ3JpZCA+IC5jb2x1bW46bm90KC5yb3cpIHtcbiAgd2lkdGg6IDYuNjY2NjY2NjclO1xufVxuLnVpW2NsYXNzKj1cInNpeHRlZW4gY29sdW1uXCJdLmdyaWQgPiAucm93ID4gLmNvbHVtbixcbi51aVtjbGFzcyo9XCJzaXh0ZWVuIGNvbHVtblwiXS5ncmlkID4gLmNvbHVtbjpub3QoLnJvdykge1xuICB3aWR0aDogNi4yNSU7XG59XG4vKiBSb3cgQmFzZWQgT3ZlcnJpZGVzICovXG4udWkuZ3JpZCA+IFtjbGFzcyo9XCJvbmUgY29sdW1uXCJdLnJvdyA+IC5jb2x1bW4ge1xuICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xufVxuLnVpLmdyaWQgPiBbY2xhc3MqPVwidHdvIGNvbHVtblwiXS5yb3cgPiAuY29sdW1uIHtcbiAgd2lkdGg6IDUwJSAhaW1wb3J0YW50O1xufVxuLnVpLmdyaWQgPiBbY2xhc3MqPVwidGhyZWUgY29sdW1uXCJdLnJvdyA+IC5jb2x1bW4ge1xuICB3aWR0aDogMzMuMzMzMzMzMzMlICFpbXBvcnRhbnQ7XG59XG4udWkuZ3JpZCA+IFtjbGFzcyo9XCJmb3VyIGNvbHVtblwiXS5yb3cgPiAuY29sdW1uIHtcbiAgd2lkdGg6IDI1JSAhaW1wb3J0YW50O1xufVxuLnVpLmdyaWQgPiBbY2xhc3MqPVwiZml2ZSBjb2x1bW5cIl0ucm93ID4gLmNvbHVtbiB7XG4gIHdpZHRoOiAyMCUgIWltcG9ydGFudDtcbn1cbi51aS5ncmlkID4gW2NsYXNzKj1cInNpeCBjb2x1bW5cIl0ucm93ID4gLmNvbHVtbiB7XG4gIHdpZHRoOiAxNi42NjY2NjY2NyUgIWltcG9ydGFudDtcbn1cbi51aS5ncmlkID4gW2NsYXNzKj1cInNldmVuIGNvbHVtblwiXS5yb3cgPiAuY29sdW1uIHtcbiAgd2lkdGg6IDE0LjI4NTcxNDI5JSAhaW1wb3J0YW50O1xufVxuLnVpLmdyaWQgPiBbY2xhc3MqPVwiZWlnaHQgY29sdW1uXCJdLnJvdyA+IC5jb2x1bW4ge1xuICB3aWR0aDogMTIuNSUgIWltcG9ydGFudDtcbn1cbi51aS5ncmlkID4gW2NsYXNzKj1cIm5pbmUgY29sdW1uXCJdLnJvdyA+IC5jb2x1bW4ge1xuICB3aWR0aDogMTEuMTExMTExMTElICFpbXBvcnRhbnQ7XG59XG4udWkuZ3JpZCA+IFtjbGFzcyo9XCJ0ZW4gY29sdW1uXCJdLnJvdyA+IC5jb2x1bW4ge1xuICB3aWR0aDogMTAlICFpbXBvcnRhbnQ7XG59XG4udWkuZ3JpZCA+IFtjbGFzcyo9XCJlbGV2ZW4gY29sdW1uXCJdLnJvdyA+IC5jb2x1bW4ge1xuICB3aWR0aDogOS4wOTA5MDkwOSUgIWltcG9ydGFudDtcbn1cbi51aS5ncmlkID4gW2NsYXNzKj1cInR3ZWx2ZSBjb2x1bW5cIl0ucm93ID4gLmNvbHVtbiB7XG4gIHdpZHRoOiA4LjMzMzMzMzMzJSAhaW1wb3J0YW50O1xufVxuLnVpLmdyaWQgPiBbY2xhc3MqPVwidGhpcnRlZW4gY29sdW1uXCJdLnJvdyA+IC5jb2x1bW4ge1xuICB3aWR0aDogNy42OTIzMDc2OSUgIWltcG9ydGFudDtcbn1cbi51aS5ncmlkID4gW2NsYXNzKj1cImZvdXJ0ZWVuIGNvbHVtblwiXS5yb3cgPiAuY29sdW1uIHtcbiAgd2lkdGg6IDcuMTQyODU3MTQlICFpbXBvcnRhbnQ7XG59XG4udWkuZ3JpZCA+IFtjbGFzcyo9XCJmaWZ0ZWVuIGNvbHVtblwiXS5yb3cgPiAuY29sdW1uIHtcbiAgd2lkdGg6IDYuNjY2NjY2NjclICFpbXBvcnRhbnQ7XG59XG4udWkuZ3JpZCA+IFtjbGFzcyo9XCJzaXh0ZWVuIGNvbHVtblwiXS5yb3cgPiAuY29sdW1uIHtcbiAgd2lkdGg6IDYuMjUlICFpbXBvcnRhbnQ7XG59XG4vKiBDZWxsZWQgUGFnZSAqL1xuLnVpLmNlbGxlZC5wYWdlLmdyaWQge1xuICBib3gtc2hhZG93OiBub25lO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQ29sdW1uIFdpZHRoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTaXppbmcgQ29tYmluYXRpb25zICovXG4udWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwib25lIHdpZGVcIl0uY29sdW1uLFxuLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJvbmUgd2lkZVwiXS5jb2x1bW4sXG4udWkuZ3JpZCA+IFtjbGFzcyo9XCJvbmUgd2lkZVwiXS5jb2x1bW4sXG4udWkuY29sdW1uLmdyaWQgPiBbY2xhc3MqPVwib25lIHdpZGVcIl0uY29sdW1uIHtcbiAgd2lkdGg6IDYuMjUlICFpbXBvcnRhbnQ7XG59XG4udWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwidHdvIHdpZGVcIl0uY29sdW1uLFxuLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJ0d28gd2lkZVwiXS5jb2x1bW4sXG4udWkuZ3JpZCA+IFtjbGFzcyo9XCJ0d28gd2lkZVwiXS5jb2x1bW4sXG4udWkuY29sdW1uLmdyaWQgPiBbY2xhc3MqPVwidHdvIHdpZGVcIl0uY29sdW1uIHtcbiAgd2lkdGg6IDEyLjUlICFpbXBvcnRhbnQ7XG59XG4udWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwidGhyZWUgd2lkZVwiXS5jb2x1bW4sXG4udWkuZ3JpZCA+IC5jb2x1bW4ucm93ID4gW2NsYXNzKj1cInRocmVlIHdpZGVcIl0uY29sdW1uLFxuLnVpLmdyaWQgPiBbY2xhc3MqPVwidGhyZWUgd2lkZVwiXS5jb2x1bW4sXG4udWkuY29sdW1uLmdyaWQgPiBbY2xhc3MqPVwidGhyZWUgd2lkZVwiXS5jb2x1bW4ge1xuICB3aWR0aDogMTguNzUlICFpbXBvcnRhbnQ7XG59XG4udWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwiZm91ciB3aWRlXCJdLmNvbHVtbixcbi51aS5ncmlkID4gLmNvbHVtbi5yb3cgPiBbY2xhc3MqPVwiZm91ciB3aWRlXCJdLmNvbHVtbixcbi51aS5ncmlkID4gW2NsYXNzKj1cImZvdXIgd2lkZVwiXS5jb2x1bW4sXG4udWkuY29sdW1uLmdyaWQgPiBbY2xhc3MqPVwiZm91ciB3aWRlXCJdLmNvbHVtbiB7XG4gIHdpZHRoOiAyNSUgIWltcG9ydGFudDtcbn1cbi51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJmaXZlIHdpZGVcIl0uY29sdW1uLFxuLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJmaXZlIHdpZGVcIl0uY29sdW1uLFxuLnVpLmdyaWQgPiBbY2xhc3MqPVwiZml2ZSB3aWRlXCJdLmNvbHVtbixcbi51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJmaXZlIHdpZGVcIl0uY29sdW1uIHtcbiAgd2lkdGg6IDMxLjI1JSAhaW1wb3J0YW50O1xufVxuLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cInNpeCB3aWRlXCJdLmNvbHVtbixcbi51aS5ncmlkID4gLmNvbHVtbi5yb3cgPiBbY2xhc3MqPVwic2l4IHdpZGVcIl0uY29sdW1uLFxuLnVpLmdyaWQgPiBbY2xhc3MqPVwic2l4IHdpZGVcIl0uY29sdW1uLFxuLnVpLmNvbHVtbi5ncmlkID4gW2NsYXNzKj1cInNpeCB3aWRlXCJdLmNvbHVtbiB7XG4gIHdpZHRoOiAzNy41JSAhaW1wb3J0YW50O1xufVxuLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cInNldmVuIHdpZGVcIl0uY29sdW1uLFxuLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJzZXZlbiB3aWRlXCJdLmNvbHVtbixcbi51aS5ncmlkID4gW2NsYXNzKj1cInNldmVuIHdpZGVcIl0uY29sdW1uLFxuLnVpLmNvbHVtbi5ncmlkID4gW2NsYXNzKj1cInNldmVuIHdpZGVcIl0uY29sdW1uIHtcbiAgd2lkdGg6IDQzLjc1JSAhaW1wb3J0YW50O1xufVxuLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cImVpZ2h0IHdpZGVcIl0uY29sdW1uLFxuLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJlaWdodCB3aWRlXCJdLmNvbHVtbixcbi51aS5ncmlkID4gW2NsYXNzKj1cImVpZ2h0IHdpZGVcIl0uY29sdW1uLFxuLnVpLmNvbHVtbi5ncmlkID4gW2NsYXNzKj1cImVpZ2h0IHdpZGVcIl0uY29sdW1uIHtcbiAgd2lkdGg6IDUwJSAhaW1wb3J0YW50O1xufVxuLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cIm5pbmUgd2lkZVwiXS5jb2x1bW4sXG4udWkuZ3JpZCA+IC5jb2x1bW4ucm93ID4gW2NsYXNzKj1cIm5pbmUgd2lkZVwiXS5jb2x1bW4sXG4udWkuZ3JpZCA+IFtjbGFzcyo9XCJuaW5lIHdpZGVcIl0uY29sdW1uLFxuLnVpLmNvbHVtbi5ncmlkID4gW2NsYXNzKj1cIm5pbmUgd2lkZVwiXS5jb2x1bW4ge1xuICB3aWR0aDogNTYuMjUlICFpbXBvcnRhbnQ7XG59XG4udWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwidGVuIHdpZGVcIl0uY29sdW1uLFxuLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJ0ZW4gd2lkZVwiXS5jb2x1bW4sXG4udWkuZ3JpZCA+IFtjbGFzcyo9XCJ0ZW4gd2lkZVwiXS5jb2x1bW4sXG4udWkuY29sdW1uLmdyaWQgPiBbY2xhc3MqPVwidGVuIHdpZGVcIl0uY29sdW1uIHtcbiAgd2lkdGg6IDYyLjUlICFpbXBvcnRhbnQ7XG59XG4udWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwiZWxldmVuIHdpZGVcIl0uY29sdW1uLFxuLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJlbGV2ZW4gd2lkZVwiXS5jb2x1bW4sXG4udWkuZ3JpZCA+IFtjbGFzcyo9XCJlbGV2ZW4gd2lkZVwiXS5jb2x1bW4sXG4udWkuY29sdW1uLmdyaWQgPiBbY2xhc3MqPVwiZWxldmVuIHdpZGVcIl0uY29sdW1uIHtcbiAgd2lkdGg6IDY4Ljc1JSAhaW1wb3J0YW50O1xufVxuLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cInR3ZWx2ZSB3aWRlXCJdLmNvbHVtbixcbi51aS5ncmlkID4gLmNvbHVtbi5yb3cgPiBbY2xhc3MqPVwidHdlbHZlIHdpZGVcIl0uY29sdW1uLFxuLnVpLmdyaWQgPiBbY2xhc3MqPVwidHdlbHZlIHdpZGVcIl0uY29sdW1uLFxuLnVpLmNvbHVtbi5ncmlkID4gW2NsYXNzKj1cInR3ZWx2ZSB3aWRlXCJdLmNvbHVtbiB7XG4gIHdpZHRoOiA3NSUgIWltcG9ydGFudDtcbn1cbi51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJ0aGlydGVlbiB3aWRlXCJdLmNvbHVtbixcbi51aS5ncmlkID4gLmNvbHVtbi5yb3cgPiBbY2xhc3MqPVwidGhpcnRlZW4gd2lkZVwiXS5jb2x1bW4sXG4udWkuZ3JpZCA+IFtjbGFzcyo9XCJ0aGlydGVlbiB3aWRlXCJdLmNvbHVtbixcbi51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJ0aGlydGVlbiB3aWRlXCJdLmNvbHVtbiB7XG4gIHdpZHRoOiA4MS4yNSUgIWltcG9ydGFudDtcbn1cbi51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJmb3VydGVlbiB3aWRlXCJdLmNvbHVtbixcbi51aS5ncmlkID4gLmNvbHVtbi5yb3cgPiBbY2xhc3MqPVwiZm91cnRlZW4gd2lkZVwiXS5jb2x1bW4sXG4udWkuZ3JpZCA+IFtjbGFzcyo9XCJmb3VydGVlbiB3aWRlXCJdLmNvbHVtbixcbi51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJmb3VydGVlbiB3aWRlXCJdLmNvbHVtbiB7XG4gIHdpZHRoOiA4Ny41JSAhaW1wb3J0YW50O1xufVxuLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cImZpZnRlZW4gd2lkZVwiXS5jb2x1bW4sXG4udWkuZ3JpZCA+IC5jb2x1bW4ucm93ID4gW2NsYXNzKj1cImZpZnRlZW4gd2lkZVwiXS5jb2x1bW4sXG4udWkuZ3JpZCA+IFtjbGFzcyo9XCJmaWZ0ZWVuIHdpZGVcIl0uY29sdW1uLFxuLnVpLmNvbHVtbi5ncmlkID4gW2NsYXNzKj1cImZpZnRlZW4gd2lkZVwiXS5jb2x1bW4ge1xuICB3aWR0aDogOTMuNzUlICFpbXBvcnRhbnQ7XG59XG4udWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwic2l4dGVlbiB3aWRlXCJdLmNvbHVtbixcbi51aS5ncmlkID4gLmNvbHVtbi5yb3cgPiBbY2xhc3MqPVwic2l4dGVlbiB3aWRlXCJdLmNvbHVtbixcbi51aS5ncmlkID4gW2NsYXNzKj1cInNpeHRlZW4gd2lkZVwiXS5jb2x1bW4sXG4udWkuY29sdW1uLmdyaWQgPiBbY2xhc3MqPVwic2l4dGVlbiB3aWRlXCJdLmNvbHVtbiB7XG4gIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBXaWR0aCBwZXIgRGV2aWNlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNb2JpbGUgU2l6aW5nIENvbWJpbmF0aW9ucyAqL1xuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAzMjBweCkgYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJvbmUgd2lkZSBtb2JpbGVcIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IC5jb2x1bW4ucm93ID4gW2NsYXNzKj1cIm9uZSB3aWRlIG1vYmlsZVwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cIm9uZSB3aWRlIG1vYmlsZVwiXS5jb2x1bW4sXG4gIC51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJvbmUgd2lkZSBtb2JpbGVcIl0uY29sdW1uIHtcbiAgICB3aWR0aDogNi4yNSUgIWltcG9ydGFudDtcbiAgfVxuICAudWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwidHdvIHdpZGUgbW9iaWxlXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJ0d28gd2lkZSBtb2JpbGVcIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJ0d28gd2lkZSBtb2JpbGVcIl0uY29sdW1uLFxuICAudWkuY29sdW1uLmdyaWQgPiBbY2xhc3MqPVwidHdvIHdpZGUgbW9iaWxlXCJdLmNvbHVtbiB7XG4gICAgd2lkdGg6IDEyLjUlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cInRocmVlIHdpZGUgbW9iaWxlXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJ0aHJlZSB3aWRlIG1vYmlsZVwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cInRocmVlIHdpZGUgbW9iaWxlXCJdLmNvbHVtbixcbiAgLnVpLmNvbHVtbi5ncmlkID4gW2NsYXNzKj1cInRocmVlIHdpZGUgbW9iaWxlXCJdLmNvbHVtbiB7XG4gICAgd2lkdGg6IDE4Ljc1JSAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJmb3VyIHdpZGUgbW9iaWxlXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJmb3VyIHdpZGUgbW9iaWxlXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwiZm91ciB3aWRlIG1vYmlsZVwiXS5jb2x1bW4sXG4gIC51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJmb3VyIHdpZGUgbW9iaWxlXCJdLmNvbHVtbiB7XG4gICAgd2lkdGg6IDI1JSAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJmaXZlIHdpZGUgbW9iaWxlXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJmaXZlIHdpZGUgbW9iaWxlXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwiZml2ZSB3aWRlIG1vYmlsZVwiXS5jb2x1bW4sXG4gIC51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJmaXZlIHdpZGUgbW9iaWxlXCJdLmNvbHVtbiB7XG4gICAgd2lkdGg6IDMxLjI1JSAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJzaXggd2lkZSBtb2JpbGVcIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IC5jb2x1bW4ucm93ID4gW2NsYXNzKj1cInNpeCB3aWRlIG1vYmlsZVwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cInNpeCB3aWRlIG1vYmlsZVwiXS5jb2x1bW4sXG4gIC51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJzaXggd2lkZSBtb2JpbGVcIl0uY29sdW1uIHtcbiAgICB3aWR0aDogMzcuNSUgIWltcG9ydGFudDtcbiAgfVxuICAudWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwic2V2ZW4gd2lkZSBtb2JpbGVcIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IC5jb2x1bW4ucm93ID4gW2NsYXNzKj1cInNldmVuIHdpZGUgbW9iaWxlXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwic2V2ZW4gd2lkZSBtb2JpbGVcIl0uY29sdW1uLFxuICAudWkuY29sdW1uLmdyaWQgPiBbY2xhc3MqPVwic2V2ZW4gd2lkZSBtb2JpbGVcIl0uY29sdW1uIHtcbiAgICB3aWR0aDogNDMuNzUlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cImVpZ2h0IHdpZGUgbW9iaWxlXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJlaWdodCB3aWRlIG1vYmlsZVwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cImVpZ2h0IHdpZGUgbW9iaWxlXCJdLmNvbHVtbixcbiAgLnVpLmNvbHVtbi5ncmlkID4gW2NsYXNzKj1cImVpZ2h0IHdpZGUgbW9iaWxlXCJdLmNvbHVtbiB7XG4gICAgd2lkdGg6IDUwJSAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJuaW5lIHdpZGUgbW9iaWxlXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJuaW5lIHdpZGUgbW9iaWxlXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwibmluZSB3aWRlIG1vYmlsZVwiXS5jb2x1bW4sXG4gIC51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJuaW5lIHdpZGUgbW9iaWxlXCJdLmNvbHVtbiB7XG4gICAgd2lkdGg6IDU2LjI1JSAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJ0ZW4gd2lkZSBtb2JpbGVcIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IC5jb2x1bW4ucm93ID4gW2NsYXNzKj1cInRlbiB3aWRlIG1vYmlsZVwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cInRlbiB3aWRlIG1vYmlsZVwiXS5jb2x1bW4sXG4gIC51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJ0ZW4gd2lkZSBtb2JpbGVcIl0uY29sdW1uIHtcbiAgICB3aWR0aDogNjIuNSUgIWltcG9ydGFudDtcbiAgfVxuICAudWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwiZWxldmVuIHdpZGUgbW9iaWxlXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJlbGV2ZW4gd2lkZSBtb2JpbGVcIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJlbGV2ZW4gd2lkZSBtb2JpbGVcIl0uY29sdW1uLFxuICAudWkuY29sdW1uLmdyaWQgPiBbY2xhc3MqPVwiZWxldmVuIHdpZGUgbW9iaWxlXCJdLmNvbHVtbiB7XG4gICAgd2lkdGg6IDY4Ljc1JSAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJ0d2VsdmUgd2lkZSBtb2JpbGVcIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IC5jb2x1bW4ucm93ID4gW2NsYXNzKj1cInR3ZWx2ZSB3aWRlIG1vYmlsZVwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cInR3ZWx2ZSB3aWRlIG1vYmlsZVwiXS5jb2x1bW4sXG4gIC51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJ0d2VsdmUgd2lkZSBtb2JpbGVcIl0uY29sdW1uIHtcbiAgICB3aWR0aDogNzUlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cInRoaXJ0ZWVuIHdpZGUgbW9iaWxlXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJ0aGlydGVlbiB3aWRlIG1vYmlsZVwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cInRoaXJ0ZWVuIHdpZGUgbW9iaWxlXCJdLmNvbHVtbixcbiAgLnVpLmNvbHVtbi5ncmlkID4gW2NsYXNzKj1cInRoaXJ0ZWVuIHdpZGUgbW9iaWxlXCJdLmNvbHVtbiB7XG4gICAgd2lkdGg6IDgxLjI1JSAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJmb3VydGVlbiB3aWRlIG1vYmlsZVwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gLmNvbHVtbi5yb3cgPiBbY2xhc3MqPVwiZm91cnRlZW4gd2lkZSBtb2JpbGVcIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJmb3VydGVlbiB3aWRlIG1vYmlsZVwiXS5jb2x1bW4sXG4gIC51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJmb3VydGVlbiB3aWRlIG1vYmlsZVwiXS5jb2x1bW4ge1xuICAgIHdpZHRoOiA4Ny41JSAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJmaWZ0ZWVuIHdpZGUgbW9iaWxlXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJmaWZ0ZWVuIHdpZGUgbW9iaWxlXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwiZmlmdGVlbiB3aWRlIG1vYmlsZVwiXS5jb2x1bW4sXG4gIC51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJmaWZ0ZWVuIHdpZGUgbW9iaWxlXCJdLmNvbHVtbiB7XG4gICAgd2lkdGg6IDkzLjc1JSAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJzaXh0ZWVuIHdpZGUgbW9iaWxlXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJzaXh0ZWVuIHdpZGUgbW9iaWxlXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwic2l4dGVlbiB3aWRlIG1vYmlsZVwiXS5jb2x1bW4sXG4gIC51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJzaXh0ZWVuIHdpZGUgbW9iaWxlXCJdLmNvbHVtbiB7XG4gICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgfVxufVxuLyogVGFibGV0IFNpemluZyBDb21iaW5hdGlvbnMgKi9cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzY4cHgpIGFuZCAobWF4LXdpZHRoOiA5OTFweCkge1xuICAudWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwib25lIHdpZGUgdGFibGV0XCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJvbmUgd2lkZSB0YWJsZXRcIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJvbmUgd2lkZSB0YWJsZXRcIl0uY29sdW1uLFxuICAudWkuY29sdW1uLmdyaWQgPiBbY2xhc3MqPVwib25lIHdpZGUgdGFibGV0XCJdLmNvbHVtbiB7XG4gICAgd2lkdGg6IDYuMjUlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cInR3byB3aWRlIHRhYmxldFwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gLmNvbHVtbi5yb3cgPiBbY2xhc3MqPVwidHdvIHdpZGUgdGFibGV0XCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwidHdvIHdpZGUgdGFibGV0XCJdLmNvbHVtbixcbiAgLnVpLmNvbHVtbi5ncmlkID4gW2NsYXNzKj1cInR3byB3aWRlIHRhYmxldFwiXS5jb2x1bW4ge1xuICAgIHdpZHRoOiAxMi41JSAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJ0aHJlZSB3aWRlIHRhYmxldFwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gLmNvbHVtbi5yb3cgPiBbY2xhc3MqPVwidGhyZWUgd2lkZSB0YWJsZXRcIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJ0aHJlZSB3aWRlIHRhYmxldFwiXS5jb2x1bW4sXG4gIC51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJ0aHJlZSB3aWRlIHRhYmxldFwiXS5jb2x1bW4ge1xuICAgIHdpZHRoOiAxOC43NSUgIWltcG9ydGFudDtcbiAgfVxuICAudWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwiZm91ciB3aWRlIHRhYmxldFwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gLmNvbHVtbi5yb3cgPiBbY2xhc3MqPVwiZm91ciB3aWRlIHRhYmxldFwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cImZvdXIgd2lkZSB0YWJsZXRcIl0uY29sdW1uLFxuICAudWkuY29sdW1uLmdyaWQgPiBbY2xhc3MqPVwiZm91ciB3aWRlIHRhYmxldFwiXS5jb2x1bW4ge1xuICAgIHdpZHRoOiAyNSUgIWltcG9ydGFudDtcbiAgfVxuICAudWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwiZml2ZSB3aWRlIHRhYmxldFwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gLmNvbHVtbi5yb3cgPiBbY2xhc3MqPVwiZml2ZSB3aWRlIHRhYmxldFwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cImZpdmUgd2lkZSB0YWJsZXRcIl0uY29sdW1uLFxuICAudWkuY29sdW1uLmdyaWQgPiBbY2xhc3MqPVwiZml2ZSB3aWRlIHRhYmxldFwiXS5jb2x1bW4ge1xuICAgIHdpZHRoOiAzMS4yNSUgIWltcG9ydGFudDtcbiAgfVxuICAudWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwic2l4IHdpZGUgdGFibGV0XCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJzaXggd2lkZSB0YWJsZXRcIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJzaXggd2lkZSB0YWJsZXRcIl0uY29sdW1uLFxuICAudWkuY29sdW1uLmdyaWQgPiBbY2xhc3MqPVwic2l4IHdpZGUgdGFibGV0XCJdLmNvbHVtbiB7XG4gICAgd2lkdGg6IDM3LjUlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cInNldmVuIHdpZGUgdGFibGV0XCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJzZXZlbiB3aWRlIHRhYmxldFwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cInNldmVuIHdpZGUgdGFibGV0XCJdLmNvbHVtbixcbiAgLnVpLmNvbHVtbi5ncmlkID4gW2NsYXNzKj1cInNldmVuIHdpZGUgdGFibGV0XCJdLmNvbHVtbiB7XG4gICAgd2lkdGg6IDQzLjc1JSAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJlaWdodCB3aWRlIHRhYmxldFwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gLmNvbHVtbi5yb3cgPiBbY2xhc3MqPVwiZWlnaHQgd2lkZSB0YWJsZXRcIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJlaWdodCB3aWRlIHRhYmxldFwiXS5jb2x1bW4sXG4gIC51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJlaWdodCB3aWRlIHRhYmxldFwiXS5jb2x1bW4ge1xuICAgIHdpZHRoOiA1MCUgIWltcG9ydGFudDtcbiAgfVxuICAudWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwibmluZSB3aWRlIHRhYmxldFwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gLmNvbHVtbi5yb3cgPiBbY2xhc3MqPVwibmluZSB3aWRlIHRhYmxldFwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cIm5pbmUgd2lkZSB0YWJsZXRcIl0uY29sdW1uLFxuICAudWkuY29sdW1uLmdyaWQgPiBbY2xhc3MqPVwibmluZSB3aWRlIHRhYmxldFwiXS5jb2x1bW4ge1xuICAgIHdpZHRoOiA1Ni4yNSUgIWltcG9ydGFudDtcbiAgfVxuICAudWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwidGVuIHdpZGUgdGFibGV0XCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJ0ZW4gd2lkZSB0YWJsZXRcIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJ0ZW4gd2lkZSB0YWJsZXRcIl0uY29sdW1uLFxuICAudWkuY29sdW1uLmdyaWQgPiBbY2xhc3MqPVwidGVuIHdpZGUgdGFibGV0XCJdLmNvbHVtbiB7XG4gICAgd2lkdGg6IDYyLjUlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cImVsZXZlbiB3aWRlIHRhYmxldFwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gLmNvbHVtbi5yb3cgPiBbY2xhc3MqPVwiZWxldmVuIHdpZGUgdGFibGV0XCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwiZWxldmVuIHdpZGUgdGFibGV0XCJdLmNvbHVtbixcbiAgLnVpLmNvbHVtbi5ncmlkID4gW2NsYXNzKj1cImVsZXZlbiB3aWRlIHRhYmxldFwiXS5jb2x1bW4ge1xuICAgIHdpZHRoOiA2OC43NSUgIWltcG9ydGFudDtcbiAgfVxuICAudWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwidHdlbHZlIHdpZGUgdGFibGV0XCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJ0d2VsdmUgd2lkZSB0YWJsZXRcIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJ0d2VsdmUgd2lkZSB0YWJsZXRcIl0uY29sdW1uLFxuICAudWkuY29sdW1uLmdyaWQgPiBbY2xhc3MqPVwidHdlbHZlIHdpZGUgdGFibGV0XCJdLmNvbHVtbiB7XG4gICAgd2lkdGg6IDc1JSAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJ0aGlydGVlbiB3aWRlIHRhYmxldFwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gLmNvbHVtbi5yb3cgPiBbY2xhc3MqPVwidGhpcnRlZW4gd2lkZSB0YWJsZXRcIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJ0aGlydGVlbiB3aWRlIHRhYmxldFwiXS5jb2x1bW4sXG4gIC51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJ0aGlydGVlbiB3aWRlIHRhYmxldFwiXS5jb2x1bW4ge1xuICAgIHdpZHRoOiA4MS4yNSUgIWltcG9ydGFudDtcbiAgfVxuICAudWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwiZm91cnRlZW4gd2lkZSB0YWJsZXRcIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IC5jb2x1bW4ucm93ID4gW2NsYXNzKj1cImZvdXJ0ZWVuIHdpZGUgdGFibGV0XCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwiZm91cnRlZW4gd2lkZSB0YWJsZXRcIl0uY29sdW1uLFxuICAudWkuY29sdW1uLmdyaWQgPiBbY2xhc3MqPVwiZm91cnRlZW4gd2lkZSB0YWJsZXRcIl0uY29sdW1uIHtcbiAgICB3aWR0aDogODcuNSUgIWltcG9ydGFudDtcbiAgfVxuICAudWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwiZmlmdGVlbiB3aWRlIHRhYmxldFwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gLmNvbHVtbi5yb3cgPiBbY2xhc3MqPVwiZmlmdGVlbiB3aWRlIHRhYmxldFwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cImZpZnRlZW4gd2lkZSB0YWJsZXRcIl0uY29sdW1uLFxuICAudWkuY29sdW1uLmdyaWQgPiBbY2xhc3MqPVwiZmlmdGVlbiB3aWRlIHRhYmxldFwiXS5jb2x1bW4ge1xuICAgIHdpZHRoOiA5My43NSUgIWltcG9ydGFudDtcbiAgfVxuICAudWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwic2l4dGVlbiB3aWRlIHRhYmxldFwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gLmNvbHVtbi5yb3cgPiBbY2xhc3MqPVwic2l4dGVlbiB3aWRlIHRhYmxldFwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cInNpeHRlZW4gd2lkZSB0YWJsZXRcIl0uY29sdW1uLFxuICAudWkuY29sdW1uLmdyaWQgPiBbY2xhc3MqPVwic2l4dGVlbiB3aWRlIHRhYmxldFwiXS5jb2x1bW4ge1xuICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gIH1cbn1cbi8qIENvbXB1dGVyL0Rlc2t0b3AgU2l6aW5nIENvbWJpbmF0aW9ucyAqL1xuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA5OTJweCkge1xuICAudWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwib25lIHdpZGUgY29tcHV0ZXJcIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IC5jb2x1bW4ucm93ID4gW2NsYXNzKj1cIm9uZSB3aWRlIGNvbXB1dGVyXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwib25lIHdpZGUgY29tcHV0ZXJcIl0uY29sdW1uLFxuICAudWkuY29sdW1uLmdyaWQgPiBbY2xhc3MqPVwib25lIHdpZGUgY29tcHV0ZXJcIl0uY29sdW1uIHtcbiAgICB3aWR0aDogNi4yNSUgIWltcG9ydGFudDtcbiAgfVxuICAudWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwidHdvIHdpZGUgY29tcHV0ZXJcIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IC5jb2x1bW4ucm93ID4gW2NsYXNzKj1cInR3byB3aWRlIGNvbXB1dGVyXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwidHdvIHdpZGUgY29tcHV0ZXJcIl0uY29sdW1uLFxuICAudWkuY29sdW1uLmdyaWQgPiBbY2xhc3MqPVwidHdvIHdpZGUgY29tcHV0ZXJcIl0uY29sdW1uIHtcbiAgICB3aWR0aDogMTIuNSUgIWltcG9ydGFudDtcbiAgfVxuICAudWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwidGhyZWUgd2lkZSBjb21wdXRlclwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gLmNvbHVtbi5yb3cgPiBbY2xhc3MqPVwidGhyZWUgd2lkZSBjb21wdXRlclwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cInRocmVlIHdpZGUgY29tcHV0ZXJcIl0uY29sdW1uLFxuICAudWkuY29sdW1uLmdyaWQgPiBbY2xhc3MqPVwidGhyZWUgd2lkZSBjb21wdXRlclwiXS5jb2x1bW4ge1xuICAgIHdpZHRoOiAxOC43NSUgIWltcG9ydGFudDtcbiAgfVxuICAudWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwiZm91ciB3aWRlIGNvbXB1dGVyXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJmb3VyIHdpZGUgY29tcHV0ZXJcIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJmb3VyIHdpZGUgY29tcHV0ZXJcIl0uY29sdW1uLFxuICAudWkuY29sdW1uLmdyaWQgPiBbY2xhc3MqPVwiZm91ciB3aWRlIGNvbXB1dGVyXCJdLmNvbHVtbiB7XG4gICAgd2lkdGg6IDI1JSAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJmaXZlIHdpZGUgY29tcHV0ZXJcIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IC5jb2x1bW4ucm93ID4gW2NsYXNzKj1cImZpdmUgd2lkZSBjb21wdXRlclwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cImZpdmUgd2lkZSBjb21wdXRlclwiXS5jb2x1bW4sXG4gIC51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJmaXZlIHdpZGUgY29tcHV0ZXJcIl0uY29sdW1uIHtcbiAgICB3aWR0aDogMzEuMjUlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cInNpeCB3aWRlIGNvbXB1dGVyXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJzaXggd2lkZSBjb21wdXRlclwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cInNpeCB3aWRlIGNvbXB1dGVyXCJdLmNvbHVtbixcbiAgLnVpLmNvbHVtbi5ncmlkID4gW2NsYXNzKj1cInNpeCB3aWRlIGNvbXB1dGVyXCJdLmNvbHVtbiB7XG4gICAgd2lkdGg6IDM3LjUlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cInNldmVuIHdpZGUgY29tcHV0ZXJcIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IC5jb2x1bW4ucm93ID4gW2NsYXNzKj1cInNldmVuIHdpZGUgY29tcHV0ZXJcIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJzZXZlbiB3aWRlIGNvbXB1dGVyXCJdLmNvbHVtbixcbiAgLnVpLmNvbHVtbi5ncmlkID4gW2NsYXNzKj1cInNldmVuIHdpZGUgY29tcHV0ZXJcIl0uY29sdW1uIHtcbiAgICB3aWR0aDogNDMuNzUlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cImVpZ2h0IHdpZGUgY29tcHV0ZXJcIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IC5jb2x1bW4ucm93ID4gW2NsYXNzKj1cImVpZ2h0IHdpZGUgY29tcHV0ZXJcIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJlaWdodCB3aWRlIGNvbXB1dGVyXCJdLmNvbHVtbixcbiAgLnVpLmNvbHVtbi5ncmlkID4gW2NsYXNzKj1cImVpZ2h0IHdpZGUgY29tcHV0ZXJcIl0uY29sdW1uIHtcbiAgICB3aWR0aDogNTAlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cIm5pbmUgd2lkZSBjb21wdXRlclwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gLmNvbHVtbi5yb3cgPiBbY2xhc3MqPVwibmluZSB3aWRlIGNvbXB1dGVyXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwibmluZSB3aWRlIGNvbXB1dGVyXCJdLmNvbHVtbixcbiAgLnVpLmNvbHVtbi5ncmlkID4gW2NsYXNzKj1cIm5pbmUgd2lkZSBjb21wdXRlclwiXS5jb2x1bW4ge1xuICAgIHdpZHRoOiA1Ni4yNSUgIWltcG9ydGFudDtcbiAgfVxuICAudWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwidGVuIHdpZGUgY29tcHV0ZXJcIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IC5jb2x1bW4ucm93ID4gW2NsYXNzKj1cInRlbiB3aWRlIGNvbXB1dGVyXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwidGVuIHdpZGUgY29tcHV0ZXJcIl0uY29sdW1uLFxuICAudWkuY29sdW1uLmdyaWQgPiBbY2xhc3MqPVwidGVuIHdpZGUgY29tcHV0ZXJcIl0uY29sdW1uIHtcbiAgICB3aWR0aDogNjIuNSUgIWltcG9ydGFudDtcbiAgfVxuICAudWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwiZWxldmVuIHdpZGUgY29tcHV0ZXJcIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IC5jb2x1bW4ucm93ID4gW2NsYXNzKj1cImVsZXZlbiB3aWRlIGNvbXB1dGVyXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwiZWxldmVuIHdpZGUgY29tcHV0ZXJcIl0uY29sdW1uLFxuICAudWkuY29sdW1uLmdyaWQgPiBbY2xhc3MqPVwiZWxldmVuIHdpZGUgY29tcHV0ZXJcIl0uY29sdW1uIHtcbiAgICB3aWR0aDogNjguNzUlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cInR3ZWx2ZSB3aWRlIGNvbXB1dGVyXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJ0d2VsdmUgd2lkZSBjb21wdXRlclwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cInR3ZWx2ZSB3aWRlIGNvbXB1dGVyXCJdLmNvbHVtbixcbiAgLnVpLmNvbHVtbi5ncmlkID4gW2NsYXNzKj1cInR3ZWx2ZSB3aWRlIGNvbXB1dGVyXCJdLmNvbHVtbiB7XG4gICAgd2lkdGg6IDc1JSAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJ0aGlydGVlbiB3aWRlIGNvbXB1dGVyXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJ0aGlydGVlbiB3aWRlIGNvbXB1dGVyXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwidGhpcnRlZW4gd2lkZSBjb21wdXRlclwiXS5jb2x1bW4sXG4gIC51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJ0aGlydGVlbiB3aWRlIGNvbXB1dGVyXCJdLmNvbHVtbiB7XG4gICAgd2lkdGg6IDgxLjI1JSAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJmb3VydGVlbiB3aWRlIGNvbXB1dGVyXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJmb3VydGVlbiB3aWRlIGNvbXB1dGVyXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwiZm91cnRlZW4gd2lkZSBjb21wdXRlclwiXS5jb2x1bW4sXG4gIC51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJmb3VydGVlbiB3aWRlIGNvbXB1dGVyXCJdLmNvbHVtbiB7XG4gICAgd2lkdGg6IDg3LjUlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cImZpZnRlZW4gd2lkZSBjb21wdXRlclwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gLmNvbHVtbi5yb3cgPiBbY2xhc3MqPVwiZmlmdGVlbiB3aWRlIGNvbXB1dGVyXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwiZmlmdGVlbiB3aWRlIGNvbXB1dGVyXCJdLmNvbHVtbixcbiAgLnVpLmNvbHVtbi5ncmlkID4gW2NsYXNzKj1cImZpZnRlZW4gd2lkZSBjb21wdXRlclwiXS5jb2x1bW4ge1xuICAgIHdpZHRoOiA5My43NSUgIWltcG9ydGFudDtcbiAgfVxuICAudWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwic2l4dGVlbiB3aWRlIGNvbXB1dGVyXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJzaXh0ZWVuIHdpZGUgY29tcHV0ZXJcIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJzaXh0ZWVuIHdpZGUgY29tcHV0ZXJcIl0uY29sdW1uLFxuICAudWkuY29sdW1uLmdyaWQgPiBbY2xhc3MqPVwic2l4dGVlbiB3aWRlIGNvbXB1dGVyXCJdLmNvbHVtbiB7XG4gICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgfVxufVxuLyogTGFyZ2UgTW9uaXRvciBTaXppbmcgQ29tYmluYXRpb25zICovXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEyMDBweCkgYW5kIChtYXgtd2lkdGg6IDE5MTlweCkge1xuICAudWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwib25lIHdpZGUgbGFyZ2Ugc2NyZWVuXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJvbmUgd2lkZSBsYXJnZSBzY3JlZW5cIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJvbmUgd2lkZSBsYXJnZSBzY3JlZW5cIl0uY29sdW1uLFxuICAudWkuY29sdW1uLmdyaWQgPiBbY2xhc3MqPVwib25lIHdpZGUgbGFyZ2Ugc2NyZWVuXCJdLmNvbHVtbiB7XG4gICAgd2lkdGg6IDYuMjUlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cInR3byB3aWRlIGxhcmdlIHNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gLmNvbHVtbi5yb3cgPiBbY2xhc3MqPVwidHdvIHdpZGUgbGFyZ2Ugc2NyZWVuXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwidHdvIHdpZGUgbGFyZ2Ugc2NyZWVuXCJdLmNvbHVtbixcbiAgLnVpLmNvbHVtbi5ncmlkID4gW2NsYXNzKj1cInR3byB3aWRlIGxhcmdlIHNjcmVlblwiXS5jb2x1bW4ge1xuICAgIHdpZHRoOiAxMi41JSAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJ0aHJlZSB3aWRlIGxhcmdlIHNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gLmNvbHVtbi5yb3cgPiBbY2xhc3MqPVwidGhyZWUgd2lkZSBsYXJnZSBzY3JlZW5cIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJ0aHJlZSB3aWRlIGxhcmdlIHNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJ0aHJlZSB3aWRlIGxhcmdlIHNjcmVlblwiXS5jb2x1bW4ge1xuICAgIHdpZHRoOiAxOC43NSUgIWltcG9ydGFudDtcbiAgfVxuICAudWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwiZm91ciB3aWRlIGxhcmdlIHNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gLmNvbHVtbi5yb3cgPiBbY2xhc3MqPVwiZm91ciB3aWRlIGxhcmdlIHNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cImZvdXIgd2lkZSBsYXJnZSBzY3JlZW5cIl0uY29sdW1uLFxuICAudWkuY29sdW1uLmdyaWQgPiBbY2xhc3MqPVwiZm91ciB3aWRlIGxhcmdlIHNjcmVlblwiXS5jb2x1bW4ge1xuICAgIHdpZHRoOiAyNSUgIWltcG9ydGFudDtcbiAgfVxuICAudWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwiZml2ZSB3aWRlIGxhcmdlIHNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gLmNvbHVtbi5yb3cgPiBbY2xhc3MqPVwiZml2ZSB3aWRlIGxhcmdlIHNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cImZpdmUgd2lkZSBsYXJnZSBzY3JlZW5cIl0uY29sdW1uLFxuICAudWkuY29sdW1uLmdyaWQgPiBbY2xhc3MqPVwiZml2ZSB3aWRlIGxhcmdlIHNjcmVlblwiXS5jb2x1bW4ge1xuICAgIHdpZHRoOiAzMS4yNSUgIWltcG9ydGFudDtcbiAgfVxuICAudWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwic2l4IHdpZGUgbGFyZ2Ugc2NyZWVuXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJzaXggd2lkZSBsYXJnZSBzY3JlZW5cIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJzaXggd2lkZSBsYXJnZSBzY3JlZW5cIl0uY29sdW1uLFxuICAudWkuY29sdW1uLmdyaWQgPiBbY2xhc3MqPVwic2l4IHdpZGUgbGFyZ2Ugc2NyZWVuXCJdLmNvbHVtbiB7XG4gICAgd2lkdGg6IDM3LjUlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cInNldmVuIHdpZGUgbGFyZ2Ugc2NyZWVuXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJzZXZlbiB3aWRlIGxhcmdlIHNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cInNldmVuIHdpZGUgbGFyZ2Ugc2NyZWVuXCJdLmNvbHVtbixcbiAgLnVpLmNvbHVtbi5ncmlkID4gW2NsYXNzKj1cInNldmVuIHdpZGUgbGFyZ2Ugc2NyZWVuXCJdLmNvbHVtbiB7XG4gICAgd2lkdGg6IDQzLjc1JSAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJlaWdodCB3aWRlIGxhcmdlIHNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gLmNvbHVtbi5yb3cgPiBbY2xhc3MqPVwiZWlnaHQgd2lkZSBsYXJnZSBzY3JlZW5cIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJlaWdodCB3aWRlIGxhcmdlIHNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJlaWdodCB3aWRlIGxhcmdlIHNjcmVlblwiXS5jb2x1bW4ge1xuICAgIHdpZHRoOiA1MCUgIWltcG9ydGFudDtcbiAgfVxuICAudWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwibmluZSB3aWRlIGxhcmdlIHNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gLmNvbHVtbi5yb3cgPiBbY2xhc3MqPVwibmluZSB3aWRlIGxhcmdlIHNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cIm5pbmUgd2lkZSBsYXJnZSBzY3JlZW5cIl0uY29sdW1uLFxuICAudWkuY29sdW1uLmdyaWQgPiBbY2xhc3MqPVwibmluZSB3aWRlIGxhcmdlIHNjcmVlblwiXS5jb2x1bW4ge1xuICAgIHdpZHRoOiA1Ni4yNSUgIWltcG9ydGFudDtcbiAgfVxuICAudWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwidGVuIHdpZGUgbGFyZ2Ugc2NyZWVuXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJ0ZW4gd2lkZSBsYXJnZSBzY3JlZW5cIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJ0ZW4gd2lkZSBsYXJnZSBzY3JlZW5cIl0uY29sdW1uLFxuICAudWkuY29sdW1uLmdyaWQgPiBbY2xhc3MqPVwidGVuIHdpZGUgbGFyZ2Ugc2NyZWVuXCJdLmNvbHVtbiB7XG4gICAgd2lkdGg6IDYyLjUlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cImVsZXZlbiB3aWRlIGxhcmdlIHNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gLmNvbHVtbi5yb3cgPiBbY2xhc3MqPVwiZWxldmVuIHdpZGUgbGFyZ2Ugc2NyZWVuXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwiZWxldmVuIHdpZGUgbGFyZ2Ugc2NyZWVuXCJdLmNvbHVtbixcbiAgLnVpLmNvbHVtbi5ncmlkID4gW2NsYXNzKj1cImVsZXZlbiB3aWRlIGxhcmdlIHNjcmVlblwiXS5jb2x1bW4ge1xuICAgIHdpZHRoOiA2OC43NSUgIWltcG9ydGFudDtcbiAgfVxuICAudWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwidHdlbHZlIHdpZGUgbGFyZ2Ugc2NyZWVuXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJ0d2VsdmUgd2lkZSBsYXJnZSBzY3JlZW5cIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJ0d2VsdmUgd2lkZSBsYXJnZSBzY3JlZW5cIl0uY29sdW1uLFxuICAudWkuY29sdW1uLmdyaWQgPiBbY2xhc3MqPVwidHdlbHZlIHdpZGUgbGFyZ2Ugc2NyZWVuXCJdLmNvbHVtbiB7XG4gICAgd2lkdGg6IDc1JSAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJ0aGlydGVlbiB3aWRlIGxhcmdlIHNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gLmNvbHVtbi5yb3cgPiBbY2xhc3MqPVwidGhpcnRlZW4gd2lkZSBsYXJnZSBzY3JlZW5cIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJ0aGlydGVlbiB3aWRlIGxhcmdlIHNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJ0aGlydGVlbiB3aWRlIGxhcmdlIHNjcmVlblwiXS5jb2x1bW4ge1xuICAgIHdpZHRoOiA4MS4yNSUgIWltcG9ydGFudDtcbiAgfVxuICAudWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwiZm91cnRlZW4gd2lkZSBsYXJnZSBzY3JlZW5cIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IC5jb2x1bW4ucm93ID4gW2NsYXNzKj1cImZvdXJ0ZWVuIHdpZGUgbGFyZ2Ugc2NyZWVuXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwiZm91cnRlZW4gd2lkZSBsYXJnZSBzY3JlZW5cIl0uY29sdW1uLFxuICAudWkuY29sdW1uLmdyaWQgPiBbY2xhc3MqPVwiZm91cnRlZW4gd2lkZSBsYXJnZSBzY3JlZW5cIl0uY29sdW1uIHtcbiAgICB3aWR0aDogODcuNSUgIWltcG9ydGFudDtcbiAgfVxuICAudWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwiZmlmdGVlbiB3aWRlIGxhcmdlIHNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gLmNvbHVtbi5yb3cgPiBbY2xhc3MqPVwiZmlmdGVlbiB3aWRlIGxhcmdlIHNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cImZpZnRlZW4gd2lkZSBsYXJnZSBzY3JlZW5cIl0uY29sdW1uLFxuICAudWkuY29sdW1uLmdyaWQgPiBbY2xhc3MqPVwiZmlmdGVlbiB3aWRlIGxhcmdlIHNjcmVlblwiXS5jb2x1bW4ge1xuICAgIHdpZHRoOiA5My43NSUgIWltcG9ydGFudDtcbiAgfVxuICAudWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwic2l4dGVlbiB3aWRlIGxhcmdlIHNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gLmNvbHVtbi5yb3cgPiBbY2xhc3MqPVwic2l4dGVlbiB3aWRlIGxhcmdlIHNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cInNpeHRlZW4gd2lkZSBsYXJnZSBzY3JlZW5cIl0uY29sdW1uLFxuICAudWkuY29sdW1uLmdyaWQgPiBbY2xhc3MqPVwic2l4dGVlbiB3aWRlIGxhcmdlIHNjcmVlblwiXS5jb2x1bW4ge1xuICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gIH1cbn1cbi8qIFdpZGVzY3JlZW4gU2l6aW5nIENvbWJpbmF0aW9ucyAqL1xuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxOTIwcHgpIHtcbiAgLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cIm9uZSB3aWRlIHdpZGVzY3JlZW5cIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IC5jb2x1bW4ucm93ID4gW2NsYXNzKj1cIm9uZSB3aWRlIHdpZGVzY3JlZW5cIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJvbmUgd2lkZSB3aWRlc2NyZWVuXCJdLmNvbHVtbixcbiAgLnVpLmNvbHVtbi5ncmlkID4gW2NsYXNzKj1cIm9uZSB3aWRlIHdpZGVzY3JlZW5cIl0uY29sdW1uIHtcbiAgICB3aWR0aDogNi4yNSUgIWltcG9ydGFudDtcbiAgfVxuICAudWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwidHdvIHdpZGUgd2lkZXNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gLmNvbHVtbi5yb3cgPiBbY2xhc3MqPVwidHdvIHdpZGUgd2lkZXNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cInR3byB3aWRlIHdpZGVzY3JlZW5cIl0uY29sdW1uLFxuICAudWkuY29sdW1uLmdyaWQgPiBbY2xhc3MqPVwidHdvIHdpZGUgd2lkZXNjcmVlblwiXS5jb2x1bW4ge1xuICAgIHdpZHRoOiAxMi41JSAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJ0aHJlZSB3aWRlIHdpZGVzY3JlZW5cIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IC5jb2x1bW4ucm93ID4gW2NsYXNzKj1cInRocmVlIHdpZGUgd2lkZXNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cInRocmVlIHdpZGUgd2lkZXNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJ0aHJlZSB3aWRlIHdpZGVzY3JlZW5cIl0uY29sdW1uIHtcbiAgICB3aWR0aDogMTguNzUlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cImZvdXIgd2lkZSB3aWRlc2NyZWVuXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJmb3VyIHdpZGUgd2lkZXNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cImZvdXIgd2lkZSB3aWRlc2NyZWVuXCJdLmNvbHVtbixcbiAgLnVpLmNvbHVtbi5ncmlkID4gW2NsYXNzKj1cImZvdXIgd2lkZSB3aWRlc2NyZWVuXCJdLmNvbHVtbiB7XG4gICAgd2lkdGg6IDI1JSAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJmaXZlIHdpZGUgd2lkZXNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gLmNvbHVtbi5yb3cgPiBbY2xhc3MqPVwiZml2ZSB3aWRlIHdpZGVzY3JlZW5cIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJmaXZlIHdpZGUgd2lkZXNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJmaXZlIHdpZGUgd2lkZXNjcmVlblwiXS5jb2x1bW4ge1xuICAgIHdpZHRoOiAzMS4yNSUgIWltcG9ydGFudDtcbiAgfVxuICAudWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwic2l4IHdpZGUgd2lkZXNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gLmNvbHVtbi5yb3cgPiBbY2xhc3MqPVwic2l4IHdpZGUgd2lkZXNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cInNpeCB3aWRlIHdpZGVzY3JlZW5cIl0uY29sdW1uLFxuICAudWkuY29sdW1uLmdyaWQgPiBbY2xhc3MqPVwic2l4IHdpZGUgd2lkZXNjcmVlblwiXS5jb2x1bW4ge1xuICAgIHdpZHRoOiAzNy41JSAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJzZXZlbiB3aWRlIHdpZGVzY3JlZW5cIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IC5jb2x1bW4ucm93ID4gW2NsYXNzKj1cInNldmVuIHdpZGUgd2lkZXNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cInNldmVuIHdpZGUgd2lkZXNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJzZXZlbiB3aWRlIHdpZGVzY3JlZW5cIl0uY29sdW1uIHtcbiAgICB3aWR0aDogNDMuNzUlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cImVpZ2h0IHdpZGUgd2lkZXNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gLmNvbHVtbi5yb3cgPiBbY2xhc3MqPVwiZWlnaHQgd2lkZSB3aWRlc2NyZWVuXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwiZWlnaHQgd2lkZSB3aWRlc2NyZWVuXCJdLmNvbHVtbixcbiAgLnVpLmNvbHVtbi5ncmlkID4gW2NsYXNzKj1cImVpZ2h0IHdpZGUgd2lkZXNjcmVlblwiXS5jb2x1bW4ge1xuICAgIHdpZHRoOiA1MCUgIWltcG9ydGFudDtcbiAgfVxuICAudWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwibmluZSB3aWRlIHdpZGVzY3JlZW5cIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IC5jb2x1bW4ucm93ID4gW2NsYXNzKj1cIm5pbmUgd2lkZSB3aWRlc2NyZWVuXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwibmluZSB3aWRlIHdpZGVzY3JlZW5cIl0uY29sdW1uLFxuICAudWkuY29sdW1uLmdyaWQgPiBbY2xhc3MqPVwibmluZSB3aWRlIHdpZGVzY3JlZW5cIl0uY29sdW1uIHtcbiAgICB3aWR0aDogNTYuMjUlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cInRlbiB3aWRlIHdpZGVzY3JlZW5cIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IC5jb2x1bW4ucm93ID4gW2NsYXNzKj1cInRlbiB3aWRlIHdpZGVzY3JlZW5cIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJ0ZW4gd2lkZSB3aWRlc2NyZWVuXCJdLmNvbHVtbixcbiAgLnVpLmNvbHVtbi5ncmlkID4gW2NsYXNzKj1cInRlbiB3aWRlIHdpZGVzY3JlZW5cIl0uY29sdW1uIHtcbiAgICB3aWR0aDogNjIuNSUgIWltcG9ydGFudDtcbiAgfVxuICAudWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwiZWxldmVuIHdpZGUgd2lkZXNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gLmNvbHVtbi5yb3cgPiBbY2xhc3MqPVwiZWxldmVuIHdpZGUgd2lkZXNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cImVsZXZlbiB3aWRlIHdpZGVzY3JlZW5cIl0uY29sdW1uLFxuICAudWkuY29sdW1uLmdyaWQgPiBbY2xhc3MqPVwiZWxldmVuIHdpZGUgd2lkZXNjcmVlblwiXS5jb2x1bW4ge1xuICAgIHdpZHRoOiA2OC43NSUgIWltcG9ydGFudDtcbiAgfVxuICAudWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwidHdlbHZlIHdpZGUgd2lkZXNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gLmNvbHVtbi5yb3cgPiBbY2xhc3MqPVwidHdlbHZlIHdpZGUgd2lkZXNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cInR3ZWx2ZSB3aWRlIHdpZGVzY3JlZW5cIl0uY29sdW1uLFxuICAudWkuY29sdW1uLmdyaWQgPiBbY2xhc3MqPVwidHdlbHZlIHdpZGUgd2lkZXNjcmVlblwiXS5jb2x1bW4ge1xuICAgIHdpZHRoOiA3NSUgIWltcG9ydGFudDtcbiAgfVxuICAudWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwidGhpcnRlZW4gd2lkZSB3aWRlc2NyZWVuXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJ0aGlydGVlbiB3aWRlIHdpZGVzY3JlZW5cIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJ0aGlydGVlbiB3aWRlIHdpZGVzY3JlZW5cIl0uY29sdW1uLFxuICAudWkuY29sdW1uLmdyaWQgPiBbY2xhc3MqPVwidGhpcnRlZW4gd2lkZSB3aWRlc2NyZWVuXCJdLmNvbHVtbiB7XG4gICAgd2lkdGg6IDgxLjI1JSAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJmb3VydGVlbiB3aWRlIHdpZGVzY3JlZW5cIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IC5jb2x1bW4ucm93ID4gW2NsYXNzKj1cImZvdXJ0ZWVuIHdpZGUgd2lkZXNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cImZvdXJ0ZWVuIHdpZGUgd2lkZXNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJmb3VydGVlbiB3aWRlIHdpZGVzY3JlZW5cIl0uY29sdW1uIHtcbiAgICB3aWR0aDogODcuNSUgIWltcG9ydGFudDtcbiAgfVxuICAudWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwiZmlmdGVlbiB3aWRlIHdpZGVzY3JlZW5cIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IC5jb2x1bW4ucm93ID4gW2NsYXNzKj1cImZpZnRlZW4gd2lkZSB3aWRlc2NyZWVuXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwiZmlmdGVlbiB3aWRlIHdpZGVzY3JlZW5cIl0uY29sdW1uLFxuICAudWkuY29sdW1uLmdyaWQgPiBbY2xhc3MqPVwiZmlmdGVlbiB3aWRlIHdpZGVzY3JlZW5cIl0uY29sdW1uIHtcbiAgICB3aWR0aDogOTMuNzUlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cInNpeHRlZW4gd2lkZSB3aWRlc2NyZWVuXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJzaXh0ZWVuIHdpZGUgd2lkZXNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cInNpeHRlZW4gd2lkZSB3aWRlc2NyZWVuXCJdLmNvbHVtbixcbiAgLnVpLmNvbHVtbi5ncmlkID4gW2NsYXNzKj1cInNpeHRlZW4gd2lkZSB3aWRlc2NyZWVuXCJdLmNvbHVtbiB7XG4gICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgfVxufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIENlbnRlcmVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkuY2VudGVyZWQuZ3JpZCxcbi51aS5jZW50ZXJlZC5ncmlkID4gLnJvdyxcbi51aS5ncmlkID4gLmNlbnRlcmVkLnJvdyB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG4udWkuY2VudGVyZWQuZ3JpZCA+IC5jb2x1bW46bm90KC5hbGlnbmVkKTpub3QoLmp1c3RpZmllZCk6bm90KC5yb3cpLFxuLnVpLmNlbnRlcmVkLmdyaWQgPiAucm93ID4gLmNvbHVtbjpub3QoLmFsaWduZWQpOm5vdCguanVzdGlmaWVkKSxcbi51aS5ncmlkIC5jZW50ZXJlZC5yb3cgPiAuY29sdW1uOm5vdCguYWxpZ25lZCk6bm90KC5qdXN0aWZpZWQpIHtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbn1cbi51aS5ncmlkID4gLmNlbnRlcmVkLmNvbHVtbixcbi51aS5ncmlkID4gLnJvdyA+IC5jZW50ZXJlZC5jb2x1bW4ge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBSZWxheGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkucmVsYXhlZC5ncmlkID4gLmNvbHVtbjpub3QoLnJvdyksXG4udWkucmVsYXhlZC5ncmlkID4gLnJvdyA+IC5jb2x1bW4sXG4udWkuZ3JpZCA+IC5yZWxheGVkLnJvdyA+IC5jb2x1bW4ge1xuICBwYWRkaW5nLWxlZnQ6IDEuNXJlbTtcbiAgcGFkZGluZy1yaWdodDogMS41cmVtO1xufVxuLnVpW2NsYXNzKj1cInZlcnkgcmVsYXhlZFwiXS5ncmlkID4gLmNvbHVtbjpub3QoLnJvdyksXG4udWlbY2xhc3MqPVwidmVyeSByZWxheGVkXCJdLmdyaWQgPiAucm93ID4gLmNvbHVtbixcbi51aS5ncmlkID4gW2NsYXNzKj1cInZlcnkgcmVsYXhlZFwiXS5yb3cgPiAuY29sdW1uIHtcbiAgcGFkZGluZy1sZWZ0OiAyLjVyZW07XG4gIHBhZGRpbmctcmlnaHQ6IDIuNXJlbTtcbn1cbi8qIENvdXBsaW5nIHdpdGggVUkgRGl2aWRlciAqL1xuLnVpLnJlbGF4ZWQuZ3JpZCAucm93ICsgLnVpLmRpdmlkZXIsXG4udWkuZ3JpZCAucmVsYXhlZC5yb3cgKyAudWkuZGl2aWRlciB7XG4gIG1hcmdpbi1sZWZ0OiAxLjVyZW07XG4gIG1hcmdpbi1yaWdodDogMS41cmVtO1xufVxuLnVpW2NsYXNzKj1cInZlcnkgcmVsYXhlZFwiXS5ncmlkIC5yb3cgKyAudWkuZGl2aWRlcixcbi51aS5ncmlkIFtjbGFzcyo9XCJ2ZXJ5IHJlbGF4ZWRcIl0ucm93ICsgLnVpLmRpdmlkZXIge1xuICBtYXJnaW4tbGVmdDogMi41cmVtO1xuICBtYXJnaW4tcmlnaHQ6IDIuNXJlbTtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWRkZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5wYWRkZWQuZ3JpZDpub3QoLnZlcnRpY2FsbHkpOm5vdCguaG9yaXpvbnRhbGx5KSB7XG4gIG1hcmdpbjogMGVtICFpbXBvcnRhbnQ7XG59XG5bY2xhc3MqPVwiaG9yaXpvbnRhbGx5IHBhZGRlZFwiXS51aS5ncmlkIHtcbiAgbWFyZ2luLWxlZnQ6IDBlbSAhaW1wb3J0YW50O1xuICBtYXJnaW4tcmlnaHQ6IDBlbSAhaW1wb3J0YW50O1xufVxuW2NsYXNzKj1cInZlcnRpY2FsbHkgcGFkZGVkXCJdLnVpLmdyaWQge1xuICBtYXJnaW4tdG9wOiAwZW0gIWltcG9ydGFudDtcbiAgbWFyZ2luLWJvdHRvbTogMGVtICFpbXBvcnRhbnQ7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBcIkZsb2F0ZWRcIlxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmdyaWQgW2NsYXNzKj1cImxlZnQgZmxvYXRlZFwiXS5jb2x1bW4ge1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG59XG4udWkuZ3JpZCBbY2xhc3MqPVwicmlnaHQgZmxvYXRlZFwiXS5jb2x1bW4ge1xuICBtYXJnaW4tbGVmdDogYXV0bztcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBEaXZpZGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkuZGl2aWRlZC5ncmlkOm5vdChbY2xhc3MqPVwidmVydGljYWxseSBkaXZpZGVkXCJdKSA+IC5jb2x1bW46bm90KC5yb3cpLFxuLnVpLmRpdmlkZWQuZ3JpZDpub3QoW2NsYXNzKj1cInZlcnRpY2FsbHkgZGl2aWRlZFwiXSkgPiAucm93ID4gLmNvbHVtbiB7XG4gIGJveC1zaGFkb3c6IC0xcHggMHB4IDBweCAwcHggcmdiYSgzNCwgMzYsIDM4LCAwLjE1KTtcbn1cbi8qIFN3YXAgZnJvbSBwYWRkaW5nIHRvIG1hcmdpbiBvbiBjb2x1bW5zIHRvIGhhdmUgZGl2aWRlcnMgYWxpZ24gKi9cbi51aVtjbGFzcyo9XCJ2ZXJ0aWNhbGx5IGRpdmlkZWRcIl0uZ3JpZCA+IC5jb2x1bW46bm90KC5yb3cpLFxuLnVpW2NsYXNzKj1cInZlcnRpY2FsbHkgZGl2aWRlZFwiXS5ncmlkID4gLnJvdyA+IC5jb2x1bW4ge1xuICBtYXJnaW4tdG9wOiAxcmVtO1xuICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICBwYWRkaW5nLXRvcDogMHJlbTtcbiAgcGFkZGluZy1ib3R0b206IDByZW07XG59XG4udWlbY2xhc3MqPVwidmVydGljYWxseSBkaXZpZGVkXCJdLmdyaWQgPiAucm93IHtcbiAgbWFyZ2luLXRvcDogMGVtO1xuICBtYXJnaW4tYm90dG9tOiAwZW07XG59XG4vKiBObyBkaXZpZGVyIG9uIGZpcnN0IGNvbHVtbiBvbiByb3cgKi9cbi51aS5kaXZpZGVkLmdyaWQ6bm90KFtjbGFzcyo9XCJ2ZXJ0aWNhbGx5IGRpdmlkZWRcIl0pID4gLmNvbHVtbjpmaXJzdC1jaGlsZCxcbi51aS5kaXZpZGVkLmdyaWQ6bm90KFtjbGFzcyo9XCJ2ZXJ0aWNhbGx5IGRpdmlkZWRcIl0pID4gLnJvdyA+IC5jb2x1bW46Zmlyc3QtY2hpbGQge1xuICBib3gtc2hhZG93OiBub25lO1xufVxuLyogTm8gc3BhY2Ugb24gdG9wIG9mIGZpcnN0IHJvdyAqL1xuLnVpW2NsYXNzKj1cInZlcnRpY2FsbHkgZGl2aWRlZFwiXS5ncmlkID4gLnJvdzpmaXJzdC1jaGlsZCA+IC5jb2x1bW4ge1xuICBtYXJnaW4tdG9wOiAwZW07XG59XG4vKiBEaXZpZGVkIFJvdyAqL1xuLnVpLmdyaWQgPiAuZGl2aWRlZC5yb3cgPiAuY29sdW1uIHtcbiAgYm94LXNoYWRvdzogLTFweCAwcHggMHB4IDBweCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpO1xufVxuLnVpLmdyaWQgPiAuZGl2aWRlZC5yb3cgPiAuY29sdW1uOmZpcnN0LWNoaWxkIHtcbiAgYm94LXNoYWRvdzogbm9uZTtcbn1cbi8qIFZlcnRpY2FsbHkgRGl2aWRlZCAqL1xuLnVpW2NsYXNzKj1cInZlcnRpY2FsbHkgZGl2aWRlZFwiXS5ncmlkID4gLnJvdyB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbi51aVtjbGFzcyo9XCJ2ZXJ0aWNhbGx5IGRpdmlkZWRcIl0uZ3JpZCA+IC5yb3c6YmVmb3JlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBjb250ZW50OiBcIlwiO1xuICB0b3A6IDBlbTtcbiAgbGVmdDogMHB4O1xuICB3aWR0aDogY2FsYygxMDAlIC0gMnJlbSk7XG4gIGhlaWdodDogMXB4O1xuICBtYXJnaW46IDAlIDFyZW07XG4gIGJveC1zaGFkb3c6IDBweCAtMXB4IDBweCAwcHggcmdiYSgzNCwgMzYsIDM4LCAwLjE1KTtcbn1cbi8qIFBhZGRlZCBIb3Jpem9udGFsbHkgRGl2aWRlZCAqL1xuW2NsYXNzKj1cImhvcml6b250YWxseSBwYWRkZWRcIl0udWkuZGl2aWRlZC5ncmlkLFxuLnVpLnBhZGRlZC5kaXZpZGVkLmdyaWQ6bm90KC52ZXJ0aWNhbGx5KTpub3QoLmhvcml6b250YWxseSkge1xuICB3aWR0aDogMTAwJTtcbn1cbi8qIEZpcnN0IFJvdyBWZXJ0aWNhbGx5IERpdmlkZWQgKi9cbi51aVtjbGFzcyo9XCJ2ZXJ0aWNhbGx5IGRpdmlkZWRcIl0uZ3JpZCA+IC5yb3c6Zmlyc3QtY2hpbGQ6YmVmb3JlIHtcbiAgYm94LXNoYWRvdzogbm9uZTtcbn1cbi8qIEludmVydGVkIERpdmlkZWQgKi9cbi51aS5pbnZlcnRlZC5kaXZpZGVkLmdyaWQ6bm90KFtjbGFzcyo9XCJ2ZXJ0aWNhbGx5IGRpdmlkZWRcIl0pID4gLmNvbHVtbjpub3QoLnJvdyksXG4udWkuaW52ZXJ0ZWQuZGl2aWRlZC5ncmlkOm5vdChbY2xhc3MqPVwidmVydGljYWxseSBkaXZpZGVkXCJdKSA+IC5yb3cgPiAuY29sdW1uIHtcbiAgYm94LXNoYWRvdzogLTFweCAwcHggMHB4IDBweCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSk7XG59XG4udWkuaW52ZXJ0ZWQuZGl2aWRlZC5ncmlkOm5vdChbY2xhc3MqPVwidmVydGljYWxseSBkaXZpZGVkXCJdKSA+IC5jb2x1bW46bm90KC5yb3cpOmZpcnN0LWNoaWxkLFxuLnVpLmludmVydGVkLmRpdmlkZWQuZ3JpZDpub3QoW2NsYXNzKj1cInZlcnRpY2FsbHkgZGl2aWRlZFwiXSkgPiAucm93ID4gLmNvbHVtbjpmaXJzdC1jaGlsZCB7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG59XG4udWkuaW52ZXJ0ZWRbY2xhc3MqPVwidmVydGljYWxseSBkaXZpZGVkXCJdLmdyaWQgPiAucm93OmJlZm9yZSB7XG4gIGJveC1zaGFkb3c6IDBweCAtMXB4IDBweCAwcHggcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpO1xufVxuLyogUmVsYXhlZCAqL1xuLnVpLnJlbGF4ZWRbY2xhc3MqPVwidmVydGljYWxseSBkaXZpZGVkXCJdLmdyaWQgPiAucm93OmJlZm9yZSB7XG4gIG1hcmdpbi1sZWZ0OiAxLjVyZW07XG4gIG1hcmdpbi1yaWdodDogMS41cmVtO1xuICB3aWR0aDogY2FsYygxMDAlIC0gM3JlbSk7XG59XG4udWlbY2xhc3MqPVwidmVyeSByZWxheGVkXCJdW2NsYXNzKj1cInZlcnRpY2FsbHkgZGl2aWRlZFwiXS5ncmlkID4gLnJvdzpiZWZvcmUge1xuICBtYXJnaW4tbGVmdDogNXJlbTtcbiAgbWFyZ2luLXJpZ2h0OiA1cmVtO1xuICB3aWR0aDogY2FsYygxMDAlIC0gNXJlbSk7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgIENlbGxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmNlbGxlZC5ncmlkIHtcbiAgd2lkdGg6IDEwMCU7XG4gIG1hcmdpbjogMWVtIDBlbTtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICNENEQ0RDU7XG59XG4udWkuY2VsbGVkLmdyaWQgPiAucm93IHtcbiAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgbWFyZ2luOiAwZW07XG4gIHBhZGRpbmc6IDBlbTtcbiAgYm94LXNoYWRvdzogMHB4IC0xcHggMHB4IDBweCAjRDRENEQ1O1xufVxuLnVpLmNlbGxlZC5ncmlkID4gLmNvbHVtbjpub3QoLnJvdyksXG4udWkuY2VsbGVkLmdyaWQgPiAucm93ID4gLmNvbHVtbiB7XG4gIGJveC1zaGFkb3c6IC0xcHggMHB4IDBweCAwcHggI0Q0RDRENTtcbn1cbi51aS5jZWxsZWQuZ3JpZCA+IC5jb2x1bW46Zmlyc3QtY2hpbGQsXG4udWkuY2VsbGVkLmdyaWQgPiAucm93ID4gLmNvbHVtbjpmaXJzdC1jaGlsZCB7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG59XG4udWkuY2VsbGVkLmdyaWQgPiAuY29sdW1uOm5vdCgucm93KSxcbi51aS5jZWxsZWQuZ3JpZCA+IC5yb3cgPiAuY29sdW1uIHtcbiAgcGFkZGluZzogMWVtO1xufVxuLnVpLnJlbGF4ZWQuY2VsbGVkLmdyaWQgPiAuY29sdW1uOm5vdCgucm93KSxcbi51aS5yZWxheGVkLmNlbGxlZC5ncmlkID4gLnJvdyA+IC5jb2x1bW4ge1xuICBwYWRkaW5nOiAxLjVlbTtcbn1cbi51aVtjbGFzcyo9XCJ2ZXJ5IHJlbGF4ZWRcIl0uY2VsbGVkLmdyaWQgPiAuY29sdW1uOm5vdCgucm93KSxcbi51aVtjbGFzcyo9XCJ2ZXJ5IHJlbGF4ZWRcIl0uY2VsbGVkLmdyaWQgPiAucm93ID4gLmNvbHVtbiB7XG4gIHBhZGRpbmc6IDJlbTtcbn1cbi8qIEludGVybmFsbHkgQ2VsbGVkICovXG4udWlbY2xhc3MqPVwiaW50ZXJuYWxseSBjZWxsZWRcIl0uZ3JpZCB7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG4gIG1hcmdpbjogMGVtO1xufVxuLnVpW2NsYXNzKj1cImludGVybmFsbHkgY2VsbGVkXCJdLmdyaWQgPiAucm93OmZpcnN0LWNoaWxkIHtcbiAgYm94LXNoYWRvdzogbm9uZTtcbn1cbi51aVtjbGFzcyo9XCJpbnRlcm5hbGx5IGNlbGxlZFwiXS5ncmlkID4gLnJvdyA+IC5jb2x1bW46Zmlyc3QtY2hpbGQge1xuICBib3gtc2hhZG93OiBub25lO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICBWZXJ0aWNhbGx5IEFsaWduZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRvcCBBbGlnbmVkICovXG4udWlbY2xhc3MqPVwidG9wIGFsaWduZWRcIl0uZ3JpZCA+IC5jb2x1bW46bm90KC5yb3cpLFxuLnVpW2NsYXNzKj1cInRvcCBhbGlnbmVkXCJdLmdyaWQgPiAucm93ID4gLmNvbHVtbixcbi51aS5ncmlkID4gW2NsYXNzKj1cInRvcCBhbGlnbmVkXCJdLnJvdyA+IC5jb2x1bW4sXG4udWkuZ3JpZCA+IFtjbGFzcyo9XCJ0b3AgYWxpZ25lZFwiXS5jb2x1bW46bm90KC5yb3cpLFxuLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cInRvcCBhbGlnbmVkXCJdLmNvbHVtbiB7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gIGFsaWduLXNlbGY6IGZsZXgtc3RhcnQgIWltcG9ydGFudDtcbn1cbi8qIE1pZGRsZSBBbGlnbmVkICovXG4udWlbY2xhc3MqPVwibWlkZGxlIGFsaWduZWRcIl0uZ3JpZCA+IC5jb2x1bW46bm90KC5yb3cpLFxuLnVpW2NsYXNzKj1cIm1pZGRsZSBhbGlnbmVkXCJdLmdyaWQgPiAucm93ID4gLmNvbHVtbixcbi51aS5ncmlkID4gW2NsYXNzKj1cIm1pZGRsZSBhbGlnbmVkXCJdLnJvdyA+IC5jb2x1bW4sXG4udWkuZ3JpZCA+IFtjbGFzcyo9XCJtaWRkbGUgYWxpZ25lZFwiXS5jb2x1bW46bm90KC5yb3cpLFxuLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cIm1pZGRsZSBhbGlnbmVkXCJdLmNvbHVtbiB7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIGFsaWduLXNlbGY6IGNlbnRlciAhaW1wb3J0YW50O1xufVxuLyogQm90dG9tIEFsaWduZWQgKi9cbi51aVtjbGFzcyo9XCJib3R0b20gYWxpZ25lZFwiXS5ncmlkID4gLmNvbHVtbjpub3QoLnJvdyksXG4udWlbY2xhc3MqPVwiYm90dG9tIGFsaWduZWRcIl0uZ3JpZCA+IC5yb3cgPiAuY29sdW1uLFxuLnVpLmdyaWQgPiBbY2xhc3MqPVwiYm90dG9tIGFsaWduZWRcIl0ucm93ID4gLmNvbHVtbixcbi51aS5ncmlkID4gW2NsYXNzKj1cImJvdHRvbSBhbGlnbmVkXCJdLmNvbHVtbjpub3QoLnJvdyksXG4udWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwiYm90dG9tIGFsaWduZWRcIl0uY29sdW1uIHtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgdmVydGljYWwtYWxpZ246IGJvdHRvbTtcbiAgYWxpZ24tc2VsZjogZmxleC1lbmQgIWltcG9ydGFudDtcbn1cbi8qIFN0cmV0Y2hlZCAqL1xuLnVpLnN0cmV0Y2hlZC5ncmlkID4gLnJvdyA+IC5jb2x1bW4sXG4udWkuc3RyZXRjaGVkLmdyaWQgPiAuY29sdW1uLFxuLnVpLmdyaWQgPiAuc3RyZXRjaGVkLnJvdyA+IC5jb2x1bW4sXG4udWkuZ3JpZCA+IC5zdHJldGNoZWQuY29sdW1uOm5vdCgucm93KSxcbi51aS5ncmlkID4gLnJvdyA+IC5zdHJldGNoZWQuY29sdW1uIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXggIWltcG9ydGFudDtcbiAgYWxpZ24tc2VsZjogc3RyZXRjaDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbn1cbi51aS5zdHJldGNoZWQuZ3JpZCA+IC5yb3cgPiAuY29sdW1uID4gKixcbi51aS5zdHJldGNoZWQuZ3JpZCA+IC5jb2x1bW4gPiAqLFxuLnVpLmdyaWQgPiAuc3RyZXRjaGVkLnJvdyA+IC5jb2x1bW4gPiAqLFxuLnVpLmdyaWQgPiAuc3RyZXRjaGVkLmNvbHVtbjpub3QoLnJvdykgPiAqLFxuLnVpLmdyaWQgPiAucm93ID4gLnN0cmV0Y2hlZC5jb2x1bW4gPiAqIHtcbiAgZmxleC1ncm93OiAxO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhvcml6b250YWxseSBDZW50ZXJlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTGVmdCBBbGlnbmVkICovXG4udWlbY2xhc3MqPVwibGVmdCBhbGlnbmVkXCJdLmdyaWQgPiAuY29sdW1uLFxuLnVpW2NsYXNzKj1cImxlZnQgYWxpZ25lZFwiXS5ncmlkID4gLnJvdyA+IC5jb2x1bW4sXG4udWkuZ3JpZCA+IFtjbGFzcyo9XCJsZWZ0IGFsaWduZWRcIl0ucm93ID4gLmNvbHVtbixcbi51aS5ncmlkID4gW2NsYXNzKj1cImxlZnQgYWxpZ25lZFwiXS5jb2x1bW4uY29sdW1uLFxuLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cImxlZnQgYWxpZ25lZFwiXS5jb2x1bW4uY29sdW1uIHtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgYWxpZ24tc2VsZjogaW5oZXJpdDtcbn1cbi8qIENlbnRlciBBbGlnbmVkICovXG4udWlbY2xhc3MqPVwiY2VudGVyIGFsaWduZWRcIl0uZ3JpZCA+IC5jb2x1bW4sXG4udWlbY2xhc3MqPVwiY2VudGVyIGFsaWduZWRcIl0uZ3JpZCA+IC5yb3cgPiAuY29sdW1uLFxuLnVpLmdyaWQgPiBbY2xhc3MqPVwiY2VudGVyIGFsaWduZWRcIl0ucm93ID4gLmNvbHVtbixcbi51aS5ncmlkID4gW2NsYXNzKj1cImNlbnRlciBhbGlnbmVkXCJdLmNvbHVtbi5jb2x1bW4sXG4udWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwiY2VudGVyIGFsaWduZWRcIl0uY29sdW1uLmNvbHVtbiB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgYWxpZ24tc2VsZjogaW5oZXJpdDtcbn1cbi51aVtjbGFzcyo9XCJjZW50ZXIgYWxpZ25lZFwiXS5ncmlkIHtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG4vKiBSaWdodCBBbGlnbmVkICovXG4udWlbY2xhc3MqPVwicmlnaHQgYWxpZ25lZFwiXS5ncmlkID4gLmNvbHVtbixcbi51aVtjbGFzcyo9XCJyaWdodCBhbGlnbmVkXCJdLmdyaWQgPiAucm93ID4gLmNvbHVtbixcbi51aS5ncmlkID4gW2NsYXNzKj1cInJpZ2h0IGFsaWduZWRcIl0ucm93ID4gLmNvbHVtbixcbi51aS5ncmlkID4gW2NsYXNzKj1cInJpZ2h0IGFsaWduZWRcIl0uY29sdW1uLmNvbHVtbixcbi51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJyaWdodCBhbGlnbmVkXCJdLmNvbHVtbi5jb2x1bW4ge1xuICB0ZXh0LWFsaWduOiByaWdodDtcbiAgYWxpZ24tc2VsZjogaW5oZXJpdDtcbn1cbi8qIEp1c3RpZmllZCAqL1xuLnVpLmp1c3RpZmllZC5ncmlkID4gLmNvbHVtbixcbi51aS5qdXN0aWZpZWQuZ3JpZCA+IC5yb3cgPiAuY29sdW1uLFxuLnVpLmdyaWQgPiAuanVzdGlmaWVkLnJvdyA+IC5jb2x1bW4sXG4udWkuZ3JpZCA+IC5qdXN0aWZpZWQuY29sdW1uLmNvbHVtbixcbi51aS5ncmlkID4gLnJvdyA+IC5qdXN0aWZpZWQuY29sdW1uLmNvbHVtbiB7XG4gIHRleHQtYWxpZ246IGp1c3RpZnk7XG4gIGh5cGhlbnM6IGF1dG87XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgIENvbG9yZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5ncmlkID4gLnJvdyA+IC5yZWQuY29sdW1uLFxuLnVpLmdyaWQgPiAucm93ID4gLm9yYW5nZS5jb2x1bW4sXG4udWkuZ3JpZCA+IC5yb3cgPiAueWVsbG93LmNvbHVtbixcbi51aS5ncmlkID4gLnJvdyA+IC5vbGl2ZS5jb2x1bW4sXG4udWkuZ3JpZCA+IC5yb3cgPiAuZ3JlZW4uY29sdW1uLFxuLnVpLmdyaWQgPiAucm93ID4gLnRlYWwuY29sdW1uLFxuLnVpLmdyaWQgPiAucm93ID4gLmJsdWUuY29sdW1uLFxuLnVpLmdyaWQgPiAucm93ID4gLnZpb2xldC5jb2x1bW4sXG4udWkuZ3JpZCA+IC5yb3cgPiAucHVycGxlLmNvbHVtbixcbi51aS5ncmlkID4gLnJvdyA+IC5waW5rLmNvbHVtbixcbi51aS5ncmlkID4gLnJvdyA+IC5icm93bi5jb2x1bW4sXG4udWkuZ3JpZCA+IC5yb3cgPiAuZ3JleS5jb2x1bW4sXG4udWkuZ3JpZCA+IC5yb3cgPiAuYmxhY2suY29sdW1uIHtcbiAgbWFyZ2luLXRvcDogLTFyZW07XG4gIG1hcmdpbi1ib3R0b206IC0xcmVtO1xuICBwYWRkaW5nLXRvcDogMXJlbTtcbiAgcGFkZGluZy1ib3R0b206IDFyZW07XG59XG4vKiBSZWQgKi9cbi51aS5ncmlkID4gLnJlZC5yb3csXG4udWkuZ3JpZCA+IC5yZWQuY29sdW1uLFxuLnVpLmdyaWQgPiAucm93ID4gLnJlZC5jb2x1bW4ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGUzYTNlICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjZmZmZmZmO1xufVxuLyogT3JhbmdlICovXG4udWkuZ3JpZCA+IC5vcmFuZ2Uucm93LFxuLnVpLmdyaWQgPiAub3JhbmdlLmNvbHVtbixcbi51aS5ncmlkID4gLnJvdyA+IC5vcmFuZ2UuY29sdW1uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmOTUzMyAhaW1wb3J0YW50O1xuICBjb2xvcjogI2ZmZmZmZjtcbn1cbi8qIFllbGxvdyAqL1xuLnVpLmdyaWQgPiAueWVsbG93LnJvdyxcbi51aS5ncmlkID4gLnllbGxvdy5jb2x1bW4sXG4udWkuZ3JpZCA+IC5yb3cgPiAueWVsbG93LmNvbHVtbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGQkJEMDggIWltcG9ydGFudDtcbiAgY29sb3I6ICNmZmZmZmY7XG59XG4vKiBPbGl2ZSAqL1xuLnVpLmdyaWQgPiAub2xpdmUucm93LFxuLnVpLmdyaWQgPiAub2xpdmUuY29sdW1uLFxuLnVpLmdyaWQgPiAucm93ID4gLm9saXZlLmNvbHVtbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNCNUNDMTggIWltcG9ydGFudDtcbiAgY29sb3I6ICNmZmZmZmY7XG59XG4vKiBHcmVlbiAqL1xuLnVpLmdyaWQgPiAuZ3JlZW4ucm93LFxuLnVpLmdyaWQgPiAuZ3JlZW4uY29sdW1uLFxuLnVpLmdyaWQgPiAucm93ID4gLmdyZWVuLmNvbHVtbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxOWE1MzEgIWltcG9ydGFudDtcbiAgY29sb3I6ICNmZmZmZmY7XG59XG4vKiBUZWFsICovXG4udWkuZ3JpZCA+IC50ZWFsLnJvdyxcbi51aS5ncmlkID4gLnRlYWwuY29sdW1uLFxuLnVpLmdyaWQgPiAucm93ID4gLnRlYWwuY29sdW1uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwQjVBRCAhaW1wb3J0YW50O1xuICBjb2xvcjogI2ZmZmZmZjtcbn1cbi8qIEJsdWUgKi9cbi51aS5ncmlkID4gLmJsdWUucm93LFxuLnVpLmdyaWQgPiAuYmx1ZS5jb2x1bW4sXG4udWkuZ3JpZCA+IC5yb3cgPiAuYmx1ZS5jb2x1bW4ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjM2Y1MWI1ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjZmZmZmZmO1xufVxuLyogVmlvbGV0ICovXG4udWkuZ3JpZCA+IC52aW9sZXQucm93LFxuLnVpLmdyaWQgPiAudmlvbGV0LmNvbHVtbixcbi51aS5ncmlkID4gLnJvdyA+IC52aW9sZXQuY29sdW1uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzY0MzVDOSAhaW1wb3J0YW50O1xuICBjb2xvcjogI2ZmZmZmZjtcbn1cbi8qIFB1cnBsZSAqL1xuLnVpLmdyaWQgPiAucHVycGxlLnJvdyxcbi51aS5ncmlkID4gLnB1cnBsZS5jb2x1bW4sXG4udWkuZ3JpZCA+IC5yb3cgPiAucHVycGxlLmNvbHVtbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNBMzMzQzggIWltcG9ydGFudDtcbiAgY29sb3I6ICNmZmZmZmY7XG59XG4vKiBQaW5rICovXG4udWkuZ3JpZCA+IC5waW5rLnJvdyxcbi51aS5ncmlkID4gLnBpbmsuY29sdW1uLFxuLnVpLmdyaWQgPiAucm93ID4gLnBpbmsuY29sdW1uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0UwMzk5NyAhaW1wb3J0YW50O1xuICBjb2xvcjogI2ZmZmZmZjtcbn1cbi8qIEJyb3duICovXG4udWkuZ3JpZCA+IC5icm93bi5yb3csXG4udWkuZ3JpZCA+IC5icm93bi5jb2x1bW4sXG4udWkuZ3JpZCA+IC5yb3cgPiAuYnJvd24uY29sdW1uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0E1NjczRiAhaW1wb3J0YW50O1xuICBjb2xvcjogI2ZmZmZmZjtcbn1cbi8qIEdyZXkgKi9cbi51aS5ncmlkID4gLmdyZXkucm93LFxuLnVpLmdyaWQgPiAuZ3JleS5jb2x1bW4sXG4udWkuZ3JpZCA+IC5yb3cgPiAuZ3JleS5jb2x1bW4ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNzY3Njc2ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjZmZmZmZmO1xufVxuLyogQmxhY2sgKi9cbi51aS5ncmlkID4gLmJsYWNrLnJvdyxcbi51aS5ncmlkID4gLmJsYWNrLmNvbHVtbixcbi51aS5ncmlkID4gLnJvdyA+IC5ibGFjay5jb2x1bW4ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwMDAwICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjZmZmZmZmO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBFcXVhbCBXaWR0aFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpW2NsYXNzKj1cImVxdWFsIHdpZHRoXCJdLmdyaWQgPiAuY29sdW1uOm5vdCgucm93KSxcbi51aVtjbGFzcyo9XCJlcXVhbCB3aWR0aFwiXS5ncmlkID4gLnJvdyA+IC5jb2x1bW4sXG4udWkuZ3JpZCA+IFtjbGFzcyo9XCJlcXVhbCB3aWR0aFwiXS5yb3cgPiAuY29sdW1uIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmbGV4LWdyb3c6IDE7XG59XG4udWlbY2xhc3MqPVwiZXF1YWwgd2lkdGhcIl0uZ3JpZCA+IC53aWRlLmNvbHVtbixcbi51aVtjbGFzcyo9XCJlcXVhbCB3aWR0aFwiXS5ncmlkID4gLnJvdyA+IC53aWRlLmNvbHVtbixcbi51aS5ncmlkID4gW2NsYXNzKj1cImVxdWFsIHdpZHRoXCJdLnJvdyA+IC53aWRlLmNvbHVtbiB7XG4gIGZsZXgtZ3JvdzogMDtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBSZXZlcnNlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNb2JpbGUgKi9cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgLnVpW2NsYXNzKj1cIm1vYmlsZSByZXZlcnNlZFwiXS5ncmlkLFxuICAudWlbY2xhc3MqPVwibW9iaWxlIHJldmVyc2VkXCJdLmdyaWQgPiAucm93LFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJtb2JpbGUgcmV2ZXJzZWRcIl0ucm93IHtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93LXJldmVyc2U7XG4gIH1cbiAgLnVpW2NsYXNzKj1cIm1vYmlsZSB2ZXJ0aWNhbGx5IHJldmVyc2VkXCJdLmdyaWQsXG4gIC51aS5zdGFja2FibGVbY2xhc3MqPVwibW9iaWxlIHJldmVyc2VkXCJdIHtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uLXJldmVyc2U7XG4gIH1cbiAgLyogRGl2aWRlZCBSZXZlcnNlZCAqL1xuICAudWlbY2xhc3MqPVwibW9iaWxlIHJldmVyc2VkXCJdLmRpdmlkZWQuZ3JpZDpub3QoW2NsYXNzKj1cInZlcnRpY2FsbHkgZGl2aWRlZFwiXSkgPiAuY29sdW1uOmZpcnN0LWNoaWxkLFxuICAudWlbY2xhc3MqPVwibW9iaWxlIHJldmVyc2VkXCJdLmRpdmlkZWQuZ3JpZDpub3QoW2NsYXNzKj1cInZlcnRpY2FsbHkgZGl2aWRlZFwiXSkgPiAucm93ID4gLmNvbHVtbjpmaXJzdC1jaGlsZCB7XG4gICAgYm94LXNoYWRvdzogLTFweCAwcHggMHB4IDBweCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpO1xuICB9XG4gIC51aVtjbGFzcyo9XCJtb2JpbGUgcmV2ZXJzZWRcIl0uZGl2aWRlZC5ncmlkOm5vdChbY2xhc3MqPVwidmVydGljYWxseSBkaXZpZGVkXCJdKSA+IC5jb2x1bW46bGFzdC1jaGlsZCxcbiAgLnVpW2NsYXNzKj1cIm1vYmlsZSByZXZlcnNlZFwiXS5kaXZpZGVkLmdyaWQ6bm90KFtjbGFzcyo9XCJ2ZXJ0aWNhbGx5IGRpdmlkZWRcIl0pID4gLnJvdyA+IC5jb2x1bW46bGFzdC1jaGlsZCB7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgfVxuICAvKiBWZXJ0aWNhbGx5IERpdmlkZWQgUmV2ZXJzZWQgKi9cbiAgLnVpLmdyaWRbY2xhc3MqPVwidmVydGljYWxseSBkaXZpZGVkXCJdW2NsYXNzKj1cIm1vYmlsZSB2ZXJ0aWNhbGx5IHJldmVyc2VkXCJdID4gLnJvdzpmaXJzdC1jaGlsZDpiZWZvcmUge1xuICAgIGJveC1zaGFkb3c6IDBweCAtMXB4IDBweCAwcHggcmdiYSgzNCwgMzYsIDM4LCAwLjE1KTtcbiAgfVxuICAudWkuZ3JpZFtjbGFzcyo9XCJ2ZXJ0aWNhbGx5IGRpdmlkZWRcIl1bY2xhc3MqPVwibW9iaWxlIHZlcnRpY2FsbHkgcmV2ZXJzZWRcIl0gPiAucm93Omxhc3QtY2hpbGQ6YmVmb3JlIHtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICB9XG4gIC8qIENlbGxlZCBSZXZlcnNlZCAqL1xuICAudWlbY2xhc3MqPVwibW9iaWxlIHJldmVyc2VkXCJdLmNlbGxlZC5ncmlkID4gLnJvdyA+IC5jb2x1bW46Zmlyc3QtY2hpbGQge1xuICAgIGJveC1zaGFkb3c6IC0xcHggMHB4IDBweCAwcHggI0Q0RDRENTtcbiAgfVxuICAudWlbY2xhc3MqPVwibW9iaWxlIHJldmVyc2VkXCJdLmNlbGxlZC5ncmlkID4gLnJvdyA+IC5jb2x1bW46bGFzdC1jaGlsZCB7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgfVxufVxuLyogVGFibGV0ICovXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc2OHB4KSBhbmQgKG1heC13aWR0aDogOTkxcHgpIHtcbiAgLnVpW2NsYXNzKj1cInRhYmxldCByZXZlcnNlZFwiXS5ncmlkLFxuICAudWlbY2xhc3MqPVwidGFibGV0IHJldmVyc2VkXCJdLmdyaWQgPiAucm93LFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJ0YWJsZXQgcmV2ZXJzZWRcIl0ucm93IHtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93LXJldmVyc2U7XG4gIH1cbiAgLnVpW2NsYXNzKj1cInRhYmxldCB2ZXJ0aWNhbGx5IHJldmVyc2VkXCJdLmdyaWQge1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW4tcmV2ZXJzZTtcbiAgfVxuICAvKiBEaXZpZGVkIFJldmVyc2VkICovXG4gIC51aVtjbGFzcyo9XCJ0YWJsZXQgcmV2ZXJzZWRcIl0uZGl2aWRlZC5ncmlkOm5vdChbY2xhc3MqPVwidmVydGljYWxseSBkaXZpZGVkXCJdKSA+IC5jb2x1bW46Zmlyc3QtY2hpbGQsXG4gIC51aVtjbGFzcyo9XCJ0YWJsZXQgcmV2ZXJzZWRcIl0uZGl2aWRlZC5ncmlkOm5vdChbY2xhc3MqPVwidmVydGljYWxseSBkaXZpZGVkXCJdKSA+IC5yb3cgPiAuY29sdW1uOmZpcnN0LWNoaWxkIHtcbiAgICBib3gtc2hhZG93OiAtMXB4IDBweCAwcHggMHB4IHJnYmEoMzQsIDM2LCAzOCwgMC4xNSk7XG4gIH1cbiAgLnVpW2NsYXNzKj1cInRhYmxldCByZXZlcnNlZFwiXS5kaXZpZGVkLmdyaWQ6bm90KFtjbGFzcyo9XCJ2ZXJ0aWNhbGx5IGRpdmlkZWRcIl0pID4gLmNvbHVtbjpsYXN0LWNoaWxkLFxuICAudWlbY2xhc3MqPVwidGFibGV0IHJldmVyc2VkXCJdLmRpdmlkZWQuZ3JpZDpub3QoW2NsYXNzKj1cInZlcnRpY2FsbHkgZGl2aWRlZFwiXSkgPiAucm93ID4gLmNvbHVtbjpsYXN0LWNoaWxkIHtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICB9XG4gIC8qIFZlcnRpY2FsbHkgRGl2aWRlZCBSZXZlcnNlZCAqL1xuICAudWkuZ3JpZFtjbGFzcyo9XCJ2ZXJ0aWNhbGx5IGRpdmlkZWRcIl1bY2xhc3MqPVwidGFibGV0IHZlcnRpY2FsbHkgcmV2ZXJzZWRcIl0gPiAucm93OmZpcnN0LWNoaWxkOmJlZm9yZSB7XG4gICAgYm94LXNoYWRvdzogMHB4IC0xcHggMHB4IDBweCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpO1xuICB9XG4gIC51aS5ncmlkW2NsYXNzKj1cInZlcnRpY2FsbHkgZGl2aWRlZFwiXVtjbGFzcyo9XCJ0YWJsZXQgdmVydGljYWxseSByZXZlcnNlZFwiXSA+IC5yb3c6bGFzdC1jaGlsZDpiZWZvcmUge1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gIH1cbiAgLyogQ2VsbGVkIFJldmVyc2VkICovXG4gIC51aVtjbGFzcyo9XCJ0YWJsZXQgcmV2ZXJzZWRcIl0uY2VsbGVkLmdyaWQgPiAucm93ID4gLmNvbHVtbjpmaXJzdC1jaGlsZCB7XG4gICAgYm94LXNoYWRvdzogLTFweCAwcHggMHB4IDBweCAjRDRENEQ1O1xuICB9XG4gIC51aVtjbGFzcyo9XCJ0YWJsZXQgcmV2ZXJzZWRcIl0uY2VsbGVkLmdyaWQgPiAucm93ID4gLmNvbHVtbjpsYXN0LWNoaWxkIHtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICB9XG59XG4vKiBDb21wdXRlciAqL1xuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA5OTJweCkge1xuICAudWlbY2xhc3MqPVwiY29tcHV0ZXIgcmV2ZXJzZWRcIl0uZ3JpZCxcbiAgLnVpW2NsYXNzKj1cImNvbXB1dGVyIHJldmVyc2VkXCJdLmdyaWQgPiAucm93LFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJjb21wdXRlciByZXZlcnNlZFwiXS5yb3cge1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTtcbiAgfVxuICAudWlbY2xhc3MqPVwiY29tcHV0ZXIgdmVydGljYWxseSByZXZlcnNlZFwiXS5ncmlkIHtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uLXJldmVyc2U7XG4gIH1cbiAgLyogRGl2aWRlZCBSZXZlcnNlZCAqL1xuICAudWlbY2xhc3MqPVwiY29tcHV0ZXIgcmV2ZXJzZWRcIl0uZGl2aWRlZC5ncmlkOm5vdChbY2xhc3MqPVwidmVydGljYWxseSBkaXZpZGVkXCJdKSA+IC5jb2x1bW46Zmlyc3QtY2hpbGQsXG4gIC51aVtjbGFzcyo9XCJjb21wdXRlciByZXZlcnNlZFwiXS5kaXZpZGVkLmdyaWQ6bm90KFtjbGFzcyo9XCJ2ZXJ0aWNhbGx5IGRpdmlkZWRcIl0pID4gLnJvdyA+IC5jb2x1bW46Zmlyc3QtY2hpbGQge1xuICAgIGJveC1zaGFkb3c6IC0xcHggMHB4IDBweCAwcHggcmdiYSgzNCwgMzYsIDM4LCAwLjE1KTtcbiAgfVxuICAudWlbY2xhc3MqPVwiY29tcHV0ZXIgcmV2ZXJzZWRcIl0uZGl2aWRlZC5ncmlkOm5vdChbY2xhc3MqPVwidmVydGljYWxseSBkaXZpZGVkXCJdKSA+IC5jb2x1bW46bGFzdC1jaGlsZCxcbiAgLnVpW2NsYXNzKj1cImNvbXB1dGVyIHJldmVyc2VkXCJdLmRpdmlkZWQuZ3JpZDpub3QoW2NsYXNzKj1cInZlcnRpY2FsbHkgZGl2aWRlZFwiXSkgPiAucm93ID4gLmNvbHVtbjpsYXN0LWNoaWxkIHtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICB9XG4gIC8qIFZlcnRpY2FsbHkgRGl2aWRlZCBSZXZlcnNlZCAqL1xuICAudWkuZ3JpZFtjbGFzcyo9XCJ2ZXJ0aWNhbGx5IGRpdmlkZWRcIl1bY2xhc3MqPVwiY29tcHV0ZXIgdmVydGljYWxseSByZXZlcnNlZFwiXSA+IC5yb3c6Zmlyc3QtY2hpbGQ6YmVmb3JlIHtcbiAgICBib3gtc2hhZG93OiAwcHggLTFweCAwcHggMHB4IHJnYmEoMzQsIDM2LCAzOCwgMC4xNSk7XG4gIH1cbiAgLnVpLmdyaWRbY2xhc3MqPVwidmVydGljYWxseSBkaXZpZGVkXCJdW2NsYXNzKj1cImNvbXB1dGVyIHZlcnRpY2FsbHkgcmV2ZXJzZWRcIl0gPiAucm93Omxhc3QtY2hpbGQ6YmVmb3JlIHtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICB9XG4gIC8qIENlbGxlZCBSZXZlcnNlZCAqL1xuICAudWlbY2xhc3MqPVwiY29tcHV0ZXIgcmV2ZXJzZWRcIl0uY2VsbGVkLmdyaWQgPiAucm93ID4gLmNvbHVtbjpmaXJzdC1jaGlsZCB7XG4gICAgYm94LXNoYWRvdzogLTFweCAwcHggMHB4IDBweCAjRDRENEQ1O1xuICB9XG4gIC51aVtjbGFzcyo9XCJjb21wdXRlciByZXZlcnNlZFwiXS5jZWxsZWQuZ3JpZCA+IC5yb3cgPiAuY29sdW1uOmxhc3QtY2hpbGQge1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gIH1cbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRG91Ymxpbmdcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRhYmxldCBPbmx5ICovXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc2OHB4KSBhbmQgKG1heC13aWR0aDogOTkxcHgpIHtcbiAgLnVpLmRvdWJsaW5nLmdyaWQge1xuICAgIHdpZHRoOiBhdXRvO1xuICB9XG4gIC51aS5ncmlkID4gLmRvdWJsaW5nLnJvdyxcbiAgLnVpLmRvdWJsaW5nLmdyaWQgPiAucm93IHtcbiAgICBtYXJnaW46IDBlbSAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmc6IDBlbSAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5ncmlkID4gLmRvdWJsaW5nLnJvdyA+IC5jb2x1bW4sXG4gIC51aS5kb3VibGluZy5ncmlkID4gLnJvdyA+IC5jb2x1bW4ge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jayAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmctdG9wOiAxcmVtICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZy1ib3R0b206IDFyZW0gIWltcG9ydGFudDtcbiAgICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luOiAwZW07XG4gIH1cbiAgLnVpW2NsYXNzKj1cInR3byBjb2x1bW5cIl0uZG91YmxpbmcuZ3JpZCA+IC5yb3cgPiAuY29sdW1uLFxuICAudWlbY2xhc3MqPVwidHdvIGNvbHVtblwiXS5kb3VibGluZy5ncmlkID4gLmNvbHVtbjpub3QoLnJvdyksXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cInR3byBjb2x1bW5cIl0uZG91Ymxpbmcucm93LnJvdyA+IC5jb2x1bW4ge1xuICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpW2NsYXNzKj1cInRocmVlIGNvbHVtblwiXS5kb3VibGluZy5ncmlkID4gLnJvdyA+IC5jb2x1bW4sXG4gIC51aVtjbGFzcyo9XCJ0aHJlZSBjb2x1bW5cIl0uZG91YmxpbmcuZ3JpZCA+IC5jb2x1bW46bm90KC5yb3cpLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJ0aHJlZSBjb2x1bW5cIl0uZG91Ymxpbmcucm93LnJvdyA+IC5jb2x1bW4ge1xuICAgIHdpZHRoOiA1MCUgIWltcG9ydGFudDtcbiAgfVxuICAudWlbY2xhc3MqPVwiZm91ciBjb2x1bW5cIl0uZG91YmxpbmcuZ3JpZCA+IC5yb3cgPiAuY29sdW1uLFxuICAudWlbY2xhc3MqPVwiZm91ciBjb2x1bW5cIl0uZG91YmxpbmcuZ3JpZCA+IC5jb2x1bW46bm90KC5yb3cpLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJmb3VyIGNvbHVtblwiXS5kb3VibGluZy5yb3cucm93ID4gLmNvbHVtbiB7XG4gICAgd2lkdGg6IDUwJSAhaW1wb3J0YW50O1xuICB9XG4gIC51aVtjbGFzcyo9XCJmaXZlIGNvbHVtblwiXS5kb3VibGluZy5ncmlkID4gLnJvdyA+IC5jb2x1bW4sXG4gIC51aVtjbGFzcyo9XCJmaXZlIGNvbHVtblwiXS5kb3VibGluZy5ncmlkID4gLmNvbHVtbjpub3QoLnJvdyksXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cImZpdmUgY29sdW1uXCJdLmRvdWJsaW5nLnJvdy5yb3cgPiAuY29sdW1uIHtcbiAgICB3aWR0aDogMzMuMzMzMzMzMzMlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpW2NsYXNzKj1cInNpeCBjb2x1bW5cIl0uZG91YmxpbmcuZ3JpZCA+IC5yb3cgPiAuY29sdW1uLFxuICAudWlbY2xhc3MqPVwic2l4IGNvbHVtblwiXS5kb3VibGluZy5ncmlkID4gLmNvbHVtbjpub3QoLnJvdyksXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cInNpeCBjb2x1bW5cIl0uZG91Ymxpbmcucm93LnJvdyA+IC5jb2x1bW4ge1xuICAgIHdpZHRoOiAzMy4zMzMzMzMzMyUgIWltcG9ydGFudDtcbiAgfVxuICAudWlbY2xhc3MqPVwic2V2ZW4gY29sdW1uXCJdLmRvdWJsaW5nLmdyaWQgPiAucm93ID4gLmNvbHVtbixcbiAgLnVpW2NsYXNzKj1cInNldmVuIGNvbHVtblwiXS5kb3VibGluZy5ncmlkID4gLmNvbHVtbjpub3QoLnJvdyksXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cInNldmVuIGNvbHVtblwiXS5kb3VibGluZy5yb3cucm93ID4gLmNvbHVtbiB7XG4gICAgd2lkdGg6IDMzLjMzMzMzMzMzJSAhaW1wb3J0YW50O1xuICB9XG4gIC51aVtjbGFzcyo9XCJlaWdodCBjb2x1bW5cIl0uZG91YmxpbmcuZ3JpZCA+IC5yb3cgPiAuY29sdW1uLFxuICAudWlbY2xhc3MqPVwiZWlnaHQgY29sdW1uXCJdLmRvdWJsaW5nLmdyaWQgPiAuY29sdW1uOm5vdCgucm93KSxcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwiZWlnaHQgY29sdW1uXCJdLmRvdWJsaW5nLnJvdy5yb3cgPiAuY29sdW1uIHtcbiAgICB3aWR0aDogMjUlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpW2NsYXNzKj1cIm5pbmUgY29sdW1uXCJdLmRvdWJsaW5nLmdyaWQgPiAucm93ID4gLmNvbHVtbixcbiAgLnVpW2NsYXNzKj1cIm5pbmUgY29sdW1uXCJdLmRvdWJsaW5nLmdyaWQgPiAuY29sdW1uOm5vdCgucm93KSxcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwibmluZSBjb2x1bW5cIl0uZG91Ymxpbmcucm93LnJvdyA+IC5jb2x1bW4ge1xuICAgIHdpZHRoOiAyNSUgIWltcG9ydGFudDtcbiAgfVxuICAudWlbY2xhc3MqPVwidGVuIGNvbHVtblwiXS5kb3VibGluZy5ncmlkID4gLnJvdyA+IC5jb2x1bW4sXG4gIC51aVtjbGFzcyo9XCJ0ZW4gY29sdW1uXCJdLmRvdWJsaW5nLmdyaWQgPiAuY29sdW1uOm5vdCgucm93KSxcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwidGVuIGNvbHVtblwiXS5kb3VibGluZy5yb3cucm93ID4gLmNvbHVtbiB7XG4gICAgd2lkdGg6IDIwJSAhaW1wb3J0YW50O1xuICB9XG4gIC51aVtjbGFzcyo9XCJlbGV2ZW4gY29sdW1uXCJdLmRvdWJsaW5nLmdyaWQgPiAucm93ID4gLmNvbHVtbixcbiAgLnVpW2NsYXNzKj1cImVsZXZlbiBjb2x1bW5cIl0uZG91YmxpbmcuZ3JpZCA+IC5jb2x1bW46bm90KC5yb3cpLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJlbGV2ZW4gY29sdW1uXCJdLmRvdWJsaW5nLnJvdy5yb3cgPiAuY29sdW1uIHtcbiAgICB3aWR0aDogMjAlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpW2NsYXNzKj1cInR3ZWx2ZSBjb2x1bW5cIl0uZG91YmxpbmcuZ3JpZCA+IC5yb3cgPiAuY29sdW1uLFxuICAudWlbY2xhc3MqPVwidHdlbHZlIGNvbHVtblwiXS5kb3VibGluZy5ncmlkID4gLmNvbHVtbjpub3QoLnJvdyksXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cInR3ZWx2ZSBjb2x1bW5cIl0uZG91Ymxpbmcucm93LnJvdyA+IC5jb2x1bW4ge1xuICAgIHdpZHRoOiAxNi42NjY2NjY2NyUgIWltcG9ydGFudDtcbiAgfVxuICAudWlbY2xhc3MqPVwidGhpcnRlZW4gY29sdW1uXCJdLmRvdWJsaW5nLmdyaWQgPiAucm93ID4gLmNvbHVtbixcbiAgLnVpW2NsYXNzKj1cInRoaXJ0ZWVuIGNvbHVtblwiXS5kb3VibGluZy5ncmlkID4gLmNvbHVtbjpub3QoLnJvdyksXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cInRoaXJ0ZWVuIGNvbHVtblwiXS5kb3VibGluZy5yb3cucm93ID4gLmNvbHVtbiB7XG4gICAgd2lkdGg6IDE2LjY2NjY2NjY3JSAhaW1wb3J0YW50O1xuICB9XG4gIC51aVtjbGFzcyo9XCJmb3VydGVlbiBjb2x1bW5cIl0uZG91YmxpbmcuZ3JpZCA+IC5yb3cgPiAuY29sdW1uLFxuICAudWlbY2xhc3MqPVwiZm91cnRlZW4gY29sdW1uXCJdLmRvdWJsaW5nLmdyaWQgPiAuY29sdW1uOm5vdCgucm93KSxcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwiZm91cnRlZW4gY29sdW1uXCJdLmRvdWJsaW5nLnJvdy5yb3cgPiAuY29sdW1uIHtcbiAgICB3aWR0aDogMTQuMjg1NzE0MjklICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpW2NsYXNzKj1cImZpZnRlZW4gY29sdW1uXCJdLmRvdWJsaW5nLmdyaWQgPiAucm93ID4gLmNvbHVtbixcbiAgLnVpW2NsYXNzKj1cImZpZnRlZW4gY29sdW1uXCJdLmRvdWJsaW5nLmdyaWQgPiAuY29sdW1uOm5vdCgucm93KSxcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwiZmlmdGVlbiBjb2x1bW5cIl0uZG91Ymxpbmcucm93LnJvdyA+IC5jb2x1bW4ge1xuICAgIHdpZHRoOiAxNC4yODU3MTQyOSUgIWltcG9ydGFudDtcbiAgfVxuICAudWlbY2xhc3MqPVwic2l4dGVlbiBjb2x1bW5cIl0uZG91YmxpbmcuZ3JpZCA+IC5yb3cgPiAuY29sdW1uLFxuICAudWlbY2xhc3MqPVwic2l4dGVlbiBjb2x1bW5cIl0uZG91YmxpbmcuZ3JpZCA+IC5jb2x1bW46bm90KC5yb3cpLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJzaXh0ZWVuIGNvbHVtblwiXS5kb3VibGluZy5yb3cucm93ID4gLmNvbHVtbiB7XG4gICAgd2lkdGg6IDEyLjUlICFpbXBvcnRhbnQ7XG4gIH1cbn1cbi8qIE1vYmlsZSBPbmx5ICovXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC51aS5ncmlkID4gLmRvdWJsaW5nLnJvdyxcbiAgLnVpLmRvdWJsaW5nLmdyaWQgPiAucm93IHtcbiAgICBtYXJnaW46IDBlbSAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmc6IDBlbSAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5ncmlkID4gLmRvdWJsaW5nLnJvdyA+IC5jb2x1bW4sXG4gIC51aS5kb3VibGluZy5ncmlkID4gLnJvdyA+IC5jb2x1bW4ge1xuICAgIHBhZGRpbmctdG9wOiAxcmVtICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZy1ib3R0b206IDFyZW0gIWltcG9ydGFudDtcbiAgICBtYXJnaW46IDBlbSAhaW1wb3J0YW50O1xuICAgIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxuICAudWlbY2xhc3MqPVwidHdvIGNvbHVtblwiXS5kb3VibGluZzpub3QoLnN0YWNrYWJsZSkuZ3JpZCA+IC5yb3cgPiAuY29sdW1uLFxuICAudWlbY2xhc3MqPVwidHdvIGNvbHVtblwiXS5kb3VibGluZzpub3QoLnN0YWNrYWJsZSkuZ3JpZCA+IC5jb2x1bW46bm90KC5yb3cpLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJ0d28gY29sdW1uXCJdLmRvdWJsaW5nOm5vdCguc3RhY2thYmxlKS5yb3cucm93ID4gLmNvbHVtbiB7XG4gICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgfVxuICAudWlbY2xhc3MqPVwidGhyZWUgY29sdW1uXCJdLmRvdWJsaW5nOm5vdCguc3RhY2thYmxlKS5ncmlkID4gLnJvdyA+IC5jb2x1bW4sXG4gIC51aVtjbGFzcyo9XCJ0aHJlZSBjb2x1bW5cIl0uZG91Ymxpbmc6bm90KC5zdGFja2FibGUpLmdyaWQgPiAuY29sdW1uOm5vdCgucm93KSxcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwidGhyZWUgY29sdW1uXCJdLmRvdWJsaW5nOm5vdCguc3RhY2thYmxlKS5yb3cucm93ID4gLmNvbHVtbiB7XG4gICAgd2lkdGg6IDUwJSAhaW1wb3J0YW50O1xuICB9XG4gIC51aVtjbGFzcyo9XCJmb3VyIGNvbHVtblwiXS5kb3VibGluZzpub3QoLnN0YWNrYWJsZSkuZ3JpZCA+IC5yb3cgPiAuY29sdW1uLFxuICAudWlbY2xhc3MqPVwiZm91ciBjb2x1bW5cIl0uZG91Ymxpbmc6bm90KC5zdGFja2FibGUpLmdyaWQgPiAuY29sdW1uOm5vdCgucm93KSxcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwiZm91ciBjb2x1bW5cIl0uZG91Ymxpbmc6bm90KC5zdGFja2FibGUpLnJvdy5yb3cgPiAuY29sdW1uIHtcbiAgICB3aWR0aDogNTAlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpW2NsYXNzKj1cImZpdmUgY29sdW1uXCJdLmRvdWJsaW5nOm5vdCguc3RhY2thYmxlKS5ncmlkID4gLnJvdyA+IC5jb2x1bW4sXG4gIC51aVtjbGFzcyo9XCJmaXZlIGNvbHVtblwiXS5kb3VibGluZzpub3QoLnN0YWNrYWJsZSkuZ3JpZCA+IC5jb2x1bW46bm90KC5yb3cpLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJmaXZlIGNvbHVtblwiXS5kb3VibGluZzpub3QoLnN0YWNrYWJsZSkucm93LnJvdyA+IC5jb2x1bW4ge1xuICAgIHdpZHRoOiA1MCUgIWltcG9ydGFudDtcbiAgfVxuICAudWlbY2xhc3MqPVwic2l4IGNvbHVtblwiXS5kb3VibGluZzpub3QoLnN0YWNrYWJsZSkuZ3JpZCA+IC5yb3cgPiAuY29sdW1uLFxuICAudWlbY2xhc3MqPVwic2l4IGNvbHVtblwiXS5kb3VibGluZzpub3QoLnN0YWNrYWJsZSkuZ3JpZCA+IC5jb2x1bW46bm90KC5yb3cpLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJzaXggY29sdW1uXCJdLmRvdWJsaW5nOm5vdCguc3RhY2thYmxlKS5yb3cucm93ID4gLmNvbHVtbiB7XG4gICAgd2lkdGg6IDUwJSAhaW1wb3J0YW50O1xuICB9XG4gIC51aVtjbGFzcyo9XCJzZXZlbiBjb2x1bW5cIl0uZG91Ymxpbmc6bm90KC5zdGFja2FibGUpLmdyaWQgPiAucm93ID4gLmNvbHVtbixcbiAgLnVpW2NsYXNzKj1cInNldmVuIGNvbHVtblwiXS5kb3VibGluZzpub3QoLnN0YWNrYWJsZSkuZ3JpZCA+IC5jb2x1bW46bm90KC5yb3cpLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJzZXZlbiBjb2x1bW5cIl0uZG91Ymxpbmc6bm90KC5zdGFja2FibGUpLnJvdy5yb3cgPiAuY29sdW1uIHtcbiAgICB3aWR0aDogNTAlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpW2NsYXNzKj1cImVpZ2h0IGNvbHVtblwiXS5kb3VibGluZzpub3QoLnN0YWNrYWJsZSkuZ3JpZCA+IC5yb3cgPiAuY29sdW1uLFxuICAudWlbY2xhc3MqPVwiZWlnaHQgY29sdW1uXCJdLmRvdWJsaW5nOm5vdCguc3RhY2thYmxlKS5ncmlkID4gLmNvbHVtbjpub3QoLnJvdyksXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cImVpZ2h0IGNvbHVtblwiXS5kb3VibGluZzpub3QoLnN0YWNrYWJsZSkucm93LnJvdyA+IC5jb2x1bW4ge1xuICAgIHdpZHRoOiA1MCUgIWltcG9ydGFudDtcbiAgfVxuICAudWlbY2xhc3MqPVwibmluZSBjb2x1bW5cIl0uZG91Ymxpbmc6bm90KC5zdGFja2FibGUpLmdyaWQgPiAucm93ID4gLmNvbHVtbixcbiAgLnVpW2NsYXNzKj1cIm5pbmUgY29sdW1uXCJdLmRvdWJsaW5nOm5vdCguc3RhY2thYmxlKS5ncmlkID4gLmNvbHVtbjpub3QoLnJvdyksXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cIm5pbmUgY29sdW1uXCJdLmRvdWJsaW5nOm5vdCguc3RhY2thYmxlKS5yb3cucm93ID4gLmNvbHVtbiB7XG4gICAgd2lkdGg6IDMzLjMzMzMzMzMzJSAhaW1wb3J0YW50O1xuICB9XG4gIC51aVtjbGFzcyo9XCJ0ZW4gY29sdW1uXCJdLmRvdWJsaW5nOm5vdCguc3RhY2thYmxlKS5ncmlkID4gLnJvdyA+IC5jb2x1bW4sXG4gIC51aVtjbGFzcyo9XCJ0ZW4gY29sdW1uXCJdLmRvdWJsaW5nOm5vdCguc3RhY2thYmxlKS5ncmlkID4gLmNvbHVtbjpub3QoLnJvdyksXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cInRlbiBjb2x1bW5cIl0uZG91Ymxpbmc6bm90KC5zdGFja2FibGUpLnJvdy5yb3cgPiAuY29sdW1uIHtcbiAgICB3aWR0aDogMzMuMzMzMzMzMzMlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpW2NsYXNzKj1cImVsZXZlbiBjb2x1bW5cIl0uZG91Ymxpbmc6bm90KC5zdGFja2FibGUpLmdyaWQgPiAucm93ID4gLmNvbHVtbixcbiAgLnVpW2NsYXNzKj1cImVsZXZlbiBjb2x1bW5cIl0uZG91Ymxpbmc6bm90KC5zdGFja2FibGUpLmdyaWQgPiAuY29sdW1uOm5vdCgucm93KSxcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwiZWxldmVuIGNvbHVtblwiXS5kb3VibGluZzpub3QoLnN0YWNrYWJsZSkucm93LnJvdyA+IC5jb2x1bW4ge1xuICAgIHdpZHRoOiAzMy4zMzMzMzMzMyUgIWltcG9ydGFudDtcbiAgfVxuICAudWlbY2xhc3MqPVwidHdlbHZlIGNvbHVtblwiXS5kb3VibGluZzpub3QoLnN0YWNrYWJsZSkuZ3JpZCA+IC5yb3cgPiAuY29sdW1uLFxuICAudWlbY2xhc3MqPVwidHdlbHZlIGNvbHVtblwiXS5kb3VibGluZzpub3QoLnN0YWNrYWJsZSkuZ3JpZCA+IC5jb2x1bW46bm90KC5yb3cpLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJ0d2VsdmUgY29sdW1uXCJdLmRvdWJsaW5nOm5vdCguc3RhY2thYmxlKS5yb3cucm93ID4gLmNvbHVtbiB7XG4gICAgd2lkdGg6IDMzLjMzMzMzMzMzJSAhaW1wb3J0YW50O1xuICB9XG4gIC51aVtjbGFzcyo9XCJ0aGlydGVlbiBjb2x1bW5cIl0uZG91Ymxpbmc6bm90KC5zdGFja2FibGUpLmdyaWQgPiAucm93ID4gLmNvbHVtbixcbiAgLnVpW2NsYXNzKj1cInRoaXJ0ZWVuIGNvbHVtblwiXS5kb3VibGluZzpub3QoLnN0YWNrYWJsZSkuZ3JpZCA+IC5jb2x1bW46bm90KC5yb3cpLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJ0aGlydGVlbiBjb2x1bW5cIl0uZG91Ymxpbmc6bm90KC5zdGFja2FibGUpLnJvdy5yb3cgPiAuY29sdW1uIHtcbiAgICB3aWR0aDogMzMuMzMzMzMzMzMlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpW2NsYXNzKj1cImZvdXJ0ZWVuIGNvbHVtblwiXS5kb3VibGluZzpub3QoLnN0YWNrYWJsZSkuZ3JpZCA+IC5yb3cgPiAuY29sdW1uLFxuICAudWlbY2xhc3MqPVwiZm91cnRlZW4gY29sdW1uXCJdLmRvdWJsaW5nOm5vdCguc3RhY2thYmxlKS5ncmlkID4gLmNvbHVtbjpub3QoLnJvdyksXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cImZvdXJ0ZWVuIGNvbHVtblwiXS5kb3VibGluZzpub3QoLnN0YWNrYWJsZSkucm93LnJvdyA+IC5jb2x1bW4ge1xuICAgIHdpZHRoOiAyNSUgIWltcG9ydGFudDtcbiAgfVxuICAudWlbY2xhc3MqPVwiZmlmdGVlbiBjb2x1bW5cIl0uZG91Ymxpbmc6bm90KC5zdGFja2FibGUpLmdyaWQgPiAucm93ID4gLmNvbHVtbixcbiAgLnVpW2NsYXNzKj1cImZpZnRlZW4gY29sdW1uXCJdLmRvdWJsaW5nOm5vdCguc3RhY2thYmxlKS5ncmlkID4gLmNvbHVtbjpub3QoLnJvdyksXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cImZpZnRlZW4gY29sdW1uXCJdLmRvdWJsaW5nOm5vdCguc3RhY2thYmxlKS5yb3cucm93ID4gLmNvbHVtbiB7XG4gICAgd2lkdGg6IDI1JSAhaW1wb3J0YW50O1xuICB9XG4gIC51aVtjbGFzcyo9XCJzaXh0ZWVuIGNvbHVtblwiXS5kb3VibGluZzpub3QoLnN0YWNrYWJsZSkuZ3JpZCA+IC5yb3cgPiAuY29sdW1uLFxuICAudWlbY2xhc3MqPVwic2l4dGVlbiBjb2x1bW5cIl0uZG91Ymxpbmc6bm90KC5zdGFja2FibGUpLmdyaWQgPiAuY29sdW1uOm5vdCgucm93KSxcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwic2l4dGVlbiBjb2x1bW5cIl0uZG91Ymxpbmc6bm90KC5zdGFja2FibGUpLnJvdy5yb3cgPiAuY29sdW1uIHtcbiAgICB3aWR0aDogMjUlICFpbXBvcnRhbnQ7XG4gIH1cbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU3RhY2thYmxlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC51aS5zdGFja2FibGUuZ3JpZCB7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgbWFyZ2luLWxlZnQ6IDBlbSAhaW1wb3J0YW50O1xuICAgIG1hcmdpbi1yaWdodDogMGVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLnN0YWNrYWJsZS5ncmlkID4gLnJvdyA+IC53aWRlLmNvbHVtbixcbiAgLnVpLnN0YWNrYWJsZS5ncmlkID4gLndpZGUuY29sdW1uLFxuICAudWkuc3RhY2thYmxlLmdyaWQgPiAuY29sdW1uLmdyaWQgPiAuY29sdW1uLFxuICAudWkuc3RhY2thYmxlLmdyaWQgPiAuY29sdW1uLnJvdyA+IC5jb2x1bW4sXG4gIC51aS5zdGFja2FibGUuZ3JpZCA+IC5yb3cgPiAuY29sdW1uLFxuICAudWkuc3RhY2thYmxlLmdyaWQgPiAuY29sdW1uOm5vdCgucm93KSxcbiAgLnVpLmdyaWQgPiAuc3RhY2thYmxlLnN0YWNrYWJsZS5yb3cgPiAuY29sdW1uIHtcbiAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICAgIG1hcmdpbjogMGVtIDBlbSAhaW1wb3J0YW50O1xuICAgIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgICBwYWRkaW5nOiAxcmVtIDFyZW0gIWltcG9ydGFudDtcbiAgfVxuICAudWkuc3RhY2thYmxlLmdyaWQ6bm90KC52ZXJ0aWNhbGx5KSA+IC5yb3cge1xuICAgIG1hcmdpbjogMGVtO1xuICAgIHBhZGRpbmc6IDBlbTtcbiAgfVxuICAvKiBDb3VwbGluZyAqL1xuICAudWkuY29udGFpbmVyID4gLnVpLnN0YWNrYWJsZS5ncmlkID4gLmNvbHVtbixcbiAgLnVpLmNvbnRhaW5lciA+IC51aS5zdGFja2FibGUuZ3JpZCA+IC5yb3cgPiAuY29sdW1uIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDBlbSAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmctcmlnaHQ6IDBlbSAhaW1wb3J0YW50O1xuICB9XG4gIC8qIERvbid0IHBhZCBpbnNpZGUgc2VnbWVudCBvciBuZXN0ZWQgZ3JpZCAqL1xuICAudWkuZ3JpZCAudWkuc3RhY2thYmxlLmdyaWQsXG4gIC51aS5zZWdtZW50Om5vdCgudmVydGljYWwpIC51aS5zdGFja2FibGUucGFnZS5ncmlkIHtcbiAgICBtYXJnaW4tbGVmdDogLTFyZW0gIWltcG9ydGFudDtcbiAgICBtYXJnaW4tcmlnaHQ6IC0xcmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLyogRGl2aWRlZCBTdGFja2FibGUgKi9cbiAgLnVpLnN0YWNrYWJsZS5kaXZpZGVkLmdyaWQgPiAucm93OmZpcnN0LWNoaWxkID4gLmNvbHVtbjpmaXJzdC1jaGlsZCxcbiAgLnVpLnN0YWNrYWJsZS5jZWxsZWQuZ3JpZCA+IC5yb3c6Zmlyc3QtY2hpbGQgPiAuY29sdW1uOmZpcnN0LWNoaWxkLFxuICAudWkuc3RhY2thYmxlLmRpdmlkZWQuZ3JpZCA+IC5jb2x1bW46bm90KC5yb3cpOmZpcnN0LWNoaWxkLFxuICAudWkuc3RhY2thYmxlLmNlbGxlZC5ncmlkID4gLmNvbHVtbjpub3QoLnJvdyk6Zmlyc3QtY2hpbGQge1xuICAgIGJvcmRlci10b3A6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxuICAudWkuaW52ZXJ0ZWQuc3RhY2thYmxlLmNlbGxlZC5ncmlkID4gLmNvbHVtbjpub3QoLnJvdyksXG4gIC51aS5pbnZlcnRlZC5zdGFja2FibGUuZGl2aWRlZC5ncmlkID4gLmNvbHVtbjpub3QoLnJvdyksXG4gIC51aS5pbnZlcnRlZC5zdGFja2FibGUuY2VsbGVkLmdyaWQgPiAucm93ID4gLmNvbHVtbixcbiAgLnVpLmludmVydGVkLnN0YWNrYWJsZS5kaXZpZGVkLmdyaWQgPiAucm93ID4gLmNvbHVtbiB7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKTtcbiAgfVxuICAudWkuc3RhY2thYmxlLmNlbGxlZC5ncmlkID4gLmNvbHVtbjpub3QoLnJvdyksXG4gIC51aS5zdGFja2FibGUuZGl2aWRlZDpub3QoLnZlcnRpY2FsbHkpLmdyaWQgPiAuY29sdW1uOm5vdCgucm93KSxcbiAgLnVpLnN0YWNrYWJsZS5jZWxsZWQuZ3JpZCA+IC5yb3cgPiAuY29sdW1uLFxuICAudWkuc3RhY2thYmxlLmRpdmlkZWQ6bm90KC52ZXJ0aWNhbGx5KS5ncmlkID4gLnJvdyA+IC5jb2x1bW4ge1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpO1xuICAgIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgICBwYWRkaW5nLXRvcDogMnJlbSAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmctYm90dG9tOiAycmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLnN0YWNrYWJsZS5jZWxsZWQuZ3JpZCA+IC5yb3cge1xuICAgIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxuICAudWkuc3RhY2thYmxlLmRpdmlkZWQ6bm90KC52ZXJ0aWNhbGx5KS5ncmlkID4gLmNvbHVtbjpub3QoLnJvdyksXG4gIC51aS5zdGFja2FibGUuZGl2aWRlZDpub3QoLnZlcnRpY2FsbHkpLmdyaWQgPiAucm93ID4gLmNvbHVtbiB7XG4gICAgcGFkZGluZy1sZWZ0OiAwZW0gIWltcG9ydGFudDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwZW0gIWltcG9ydGFudDtcbiAgfVxufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE9ubHkgKERldmljZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoZXNlIGluY2x1ZGUgYXJiaXRyYXJ5IGNsYXNzIHJlcGV0aXRpb25zIGZvciBmb3JjZWQgc3BlY2lmaWNpdHkgKi9cbi8qIE1vYmlsZSBPbmx5IEhpZGUgKi9cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgLnVpW2NsYXNzKj1cInRhYmxldCBvbmx5XCJdLmdyaWQuZ3JpZC5ncmlkOm5vdCgubW9iaWxlKSxcbiAgLnVpLmdyaWQuZ3JpZC5ncmlkID4gW2NsYXNzKj1cInRhYmxldCBvbmx5XCJdLnJvdzpub3QoLm1vYmlsZSksXG4gIC51aS5ncmlkLmdyaWQuZ3JpZCA+IFtjbGFzcyo9XCJ0YWJsZXQgb25seVwiXS5jb2x1bW46bm90KC5tb2JpbGUpLFxuICAudWkuZ3JpZC5ncmlkLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cInRhYmxldCBvbmx5XCJdLmNvbHVtbjpub3QoLm1vYmlsZSkge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxuICAudWlbY2xhc3MqPVwiY29tcHV0ZXIgb25seVwiXS5ncmlkLmdyaWQuZ3JpZDpub3QoLm1vYmlsZSksXG4gIC51aS5ncmlkLmdyaWQuZ3JpZCA+IFtjbGFzcyo9XCJjb21wdXRlciBvbmx5XCJdLnJvdzpub3QoLm1vYmlsZSksXG4gIC51aS5ncmlkLmdyaWQuZ3JpZCA+IFtjbGFzcyo9XCJjb21wdXRlciBvbmx5XCJdLmNvbHVtbjpub3QoLm1vYmlsZSksXG4gIC51aS5ncmlkLmdyaWQuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwiY29tcHV0ZXIgb25seVwiXS5jb2x1bW46bm90KC5tb2JpbGUpIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpW2NsYXNzKj1cImxhcmdlIHNjcmVlbiBvbmx5XCJdLmdyaWQuZ3JpZC5ncmlkOm5vdCgubW9iaWxlKSxcbiAgLnVpLmdyaWQuZ3JpZC5ncmlkID4gW2NsYXNzKj1cImxhcmdlIHNjcmVlbiBvbmx5XCJdLnJvdzpub3QoLm1vYmlsZSksXG4gIC51aS5ncmlkLmdyaWQuZ3JpZCA+IFtjbGFzcyo9XCJsYXJnZSBzY3JlZW4gb25seVwiXS5jb2x1bW46bm90KC5tb2JpbGUpLFxuICAudWkuZ3JpZC5ncmlkLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cImxhcmdlIHNjcmVlbiBvbmx5XCJdLmNvbHVtbjpub3QoLm1vYmlsZSkge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxuICAudWlbY2xhc3MqPVwid2lkZXNjcmVlbiBvbmx5XCJdLmdyaWQuZ3JpZC5ncmlkOm5vdCgubW9iaWxlKSxcbiAgLnVpLmdyaWQuZ3JpZC5ncmlkID4gW2NsYXNzKj1cIndpZGVzY3JlZW4gb25seVwiXS5yb3c6bm90KC5tb2JpbGUpLFxuICAudWkuZ3JpZC5ncmlkLmdyaWQgPiBbY2xhc3MqPVwid2lkZXNjcmVlbiBvbmx5XCJdLmNvbHVtbjpub3QoLm1vYmlsZSksXG4gIC51aS5ncmlkLmdyaWQuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwid2lkZXNjcmVlbiBvbmx5XCJdLmNvbHVtbjpub3QoLm1vYmlsZSkge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxufVxuLyogVGFibGV0IE9ubHkgSGlkZSAqL1xuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NjhweCkgYW5kIChtYXgtd2lkdGg6IDk5MXB4KSB7XG4gIC51aVtjbGFzcyo9XCJtb2JpbGUgb25seVwiXS5ncmlkLmdyaWQuZ3JpZDpub3QoLnRhYmxldCksXG4gIC51aS5ncmlkLmdyaWQuZ3JpZCA+IFtjbGFzcyo9XCJtb2JpbGUgb25seVwiXS5yb3c6bm90KC50YWJsZXQpLFxuICAudWkuZ3JpZC5ncmlkLmdyaWQgPiBbY2xhc3MqPVwibW9iaWxlIG9ubHlcIl0uY29sdW1uOm5vdCgudGFibGV0KSxcbiAgLnVpLmdyaWQuZ3JpZC5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJtb2JpbGUgb25seVwiXS5jb2x1bW46bm90KC50YWJsZXQpIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpW2NsYXNzKj1cImNvbXB1dGVyIG9ubHlcIl0uZ3JpZC5ncmlkLmdyaWQ6bm90KC50YWJsZXQpLFxuICAudWkuZ3JpZC5ncmlkLmdyaWQgPiBbY2xhc3MqPVwiY29tcHV0ZXIgb25seVwiXS5yb3c6bm90KC50YWJsZXQpLFxuICAudWkuZ3JpZC5ncmlkLmdyaWQgPiBbY2xhc3MqPVwiY29tcHV0ZXIgb25seVwiXS5jb2x1bW46bm90KC50YWJsZXQpLFxuICAudWkuZ3JpZC5ncmlkLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cImNvbXB1dGVyIG9ubHlcIl0uY29sdW1uOm5vdCgudGFibGV0KSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG4gIC51aVtjbGFzcyo9XCJsYXJnZSBzY3JlZW4gb25seVwiXS5ncmlkLmdyaWQuZ3JpZDpub3QoLm1vYmlsZSksXG4gIC51aS5ncmlkLmdyaWQuZ3JpZCA+IFtjbGFzcyo9XCJsYXJnZSBzY3JlZW4gb25seVwiXS5yb3c6bm90KC5tb2JpbGUpLFxuICAudWkuZ3JpZC5ncmlkLmdyaWQgPiBbY2xhc3MqPVwibGFyZ2Ugc2NyZWVuIG9ubHlcIl0uY29sdW1uOm5vdCgubW9iaWxlKSxcbiAgLnVpLmdyaWQuZ3JpZC5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJsYXJnZSBzY3JlZW4gb25seVwiXS5jb2x1bW46bm90KC5tb2JpbGUpIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpW2NsYXNzKj1cIndpZGVzY3JlZW4gb25seVwiXS5ncmlkLmdyaWQuZ3JpZDpub3QoLm1vYmlsZSksXG4gIC51aS5ncmlkLmdyaWQuZ3JpZCA+IFtjbGFzcyo9XCJ3aWRlc2NyZWVuIG9ubHlcIl0ucm93Om5vdCgubW9iaWxlKSxcbiAgLnVpLmdyaWQuZ3JpZC5ncmlkID4gW2NsYXNzKj1cIndpZGVzY3JlZW4gb25seVwiXS5jb2x1bW46bm90KC5tb2JpbGUpLFxuICAudWkuZ3JpZC5ncmlkLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cIndpZGVzY3JlZW4gb25seVwiXS5jb2x1bW46bm90KC5tb2JpbGUpIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbn1cbi8qIENvbXB1dGVyIE9ubHkgSGlkZSAqL1xuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA5OTJweCkgYW5kIChtYXgtd2lkdGg6IDExOTlweCkge1xuICAudWlbY2xhc3MqPVwibW9iaWxlIG9ubHlcIl0uZ3JpZC5ncmlkLmdyaWQ6bm90KC5jb21wdXRlciksXG4gIC51aS5ncmlkLmdyaWQuZ3JpZCA+IFtjbGFzcyo9XCJtb2JpbGUgb25seVwiXS5yb3c6bm90KC5jb21wdXRlciksXG4gIC51aS5ncmlkLmdyaWQuZ3JpZCA+IFtjbGFzcyo9XCJtb2JpbGUgb25seVwiXS5jb2x1bW46bm90KC5jb21wdXRlciksXG4gIC51aS5ncmlkLmdyaWQuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwibW9iaWxlIG9ubHlcIl0uY29sdW1uOm5vdCguY29tcHV0ZXIpIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpW2NsYXNzKj1cInRhYmxldCBvbmx5XCJdLmdyaWQuZ3JpZC5ncmlkOm5vdCguY29tcHV0ZXIpLFxuICAudWkuZ3JpZC5ncmlkLmdyaWQgPiBbY2xhc3MqPVwidGFibGV0IG9ubHlcIl0ucm93Om5vdCguY29tcHV0ZXIpLFxuICAudWkuZ3JpZC5ncmlkLmdyaWQgPiBbY2xhc3MqPVwidGFibGV0IG9ubHlcIl0uY29sdW1uOm5vdCguY29tcHV0ZXIpLFxuICAudWkuZ3JpZC5ncmlkLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cInRhYmxldCBvbmx5XCJdLmNvbHVtbjpub3QoLmNvbXB1dGVyKSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG4gIC51aVtjbGFzcyo9XCJsYXJnZSBzY3JlZW4gb25seVwiXS5ncmlkLmdyaWQuZ3JpZDpub3QoLm1vYmlsZSksXG4gIC51aS5ncmlkLmdyaWQuZ3JpZCA+IFtjbGFzcyo9XCJsYXJnZSBzY3JlZW4gb25seVwiXS5yb3c6bm90KC5tb2JpbGUpLFxuICAudWkuZ3JpZC5ncmlkLmdyaWQgPiBbY2xhc3MqPVwibGFyZ2Ugc2NyZWVuIG9ubHlcIl0uY29sdW1uOm5vdCgubW9iaWxlKSxcbiAgLnVpLmdyaWQuZ3JpZC5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJsYXJnZSBzY3JlZW4gb25seVwiXS5jb2x1bW46bm90KC5tb2JpbGUpIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpW2NsYXNzKj1cIndpZGVzY3JlZW4gb25seVwiXS5ncmlkLmdyaWQuZ3JpZDpub3QoLm1vYmlsZSksXG4gIC51aS5ncmlkLmdyaWQuZ3JpZCA+IFtjbGFzcyo9XCJ3aWRlc2NyZWVuIG9ubHlcIl0ucm93Om5vdCgubW9iaWxlKSxcbiAgLnVpLmdyaWQuZ3JpZC5ncmlkID4gW2NsYXNzKj1cIndpZGVzY3JlZW4gb25seVwiXS5jb2x1bW46bm90KC5tb2JpbGUpLFxuICAudWkuZ3JpZC5ncmlkLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cIndpZGVzY3JlZW4gb25seVwiXS5jb2x1bW46bm90KC5tb2JpbGUpIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbn1cbi8qIExhcmdlIFNjcmVlbiBPbmx5IEhpZGUgKi9cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTIwMHB4KSBhbmQgKG1heC13aWR0aDogMTkxOXB4KSB7XG4gIC51aVtjbGFzcyo9XCJtb2JpbGUgb25seVwiXS5ncmlkLmdyaWQuZ3JpZDpub3QoLmNvbXB1dGVyKSxcbiAgLnVpLmdyaWQuZ3JpZC5ncmlkID4gW2NsYXNzKj1cIm1vYmlsZSBvbmx5XCJdLnJvdzpub3QoLmNvbXB1dGVyKSxcbiAgLnVpLmdyaWQuZ3JpZC5ncmlkID4gW2NsYXNzKj1cIm1vYmlsZSBvbmx5XCJdLmNvbHVtbjpub3QoLmNvbXB1dGVyKSxcbiAgLnVpLmdyaWQuZ3JpZC5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJtb2JpbGUgb25seVwiXS5jb2x1bW46bm90KC5jb21wdXRlcikge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxuICAudWlbY2xhc3MqPVwidGFibGV0IG9ubHlcIl0uZ3JpZC5ncmlkLmdyaWQ6bm90KC5jb21wdXRlciksXG4gIC51aS5ncmlkLmdyaWQuZ3JpZCA+IFtjbGFzcyo9XCJ0YWJsZXQgb25seVwiXS5yb3c6bm90KC5jb21wdXRlciksXG4gIC51aS5ncmlkLmdyaWQuZ3JpZCA+IFtjbGFzcyo9XCJ0YWJsZXQgb25seVwiXS5jb2x1bW46bm90KC5jb21wdXRlciksXG4gIC51aS5ncmlkLmdyaWQuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwidGFibGV0IG9ubHlcIl0uY29sdW1uOm5vdCguY29tcHV0ZXIpIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpW2NsYXNzKj1cIndpZGVzY3JlZW4gb25seVwiXS5ncmlkLmdyaWQuZ3JpZDpub3QoLm1vYmlsZSksXG4gIC51aS5ncmlkLmdyaWQuZ3JpZCA+IFtjbGFzcyo9XCJ3aWRlc2NyZWVuIG9ubHlcIl0ucm93Om5vdCgubW9iaWxlKSxcbiAgLnVpLmdyaWQuZ3JpZC5ncmlkID4gW2NsYXNzKj1cIndpZGVzY3JlZW4gb25seVwiXS5jb2x1bW46bm90KC5tb2JpbGUpLFxuICAudWkuZ3JpZC5ncmlkLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cIndpZGVzY3JlZW4gb25seVwiXS5jb2x1bW46bm90KC5tb2JpbGUpIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbn1cbi8qIFdpZGVzY3JlZW4gT25seSBIaWRlICovXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDE5MjBweCkge1xuICAudWlbY2xhc3MqPVwibW9iaWxlIG9ubHlcIl0uZ3JpZC5ncmlkLmdyaWQ6bm90KC5jb21wdXRlciksXG4gIC51aS5ncmlkLmdyaWQuZ3JpZCA+IFtjbGFzcyo9XCJtb2JpbGUgb25seVwiXS5yb3c6bm90KC5jb21wdXRlciksXG4gIC51aS5ncmlkLmdyaWQuZ3JpZCA+IFtjbGFzcyo9XCJtb2JpbGUgb25seVwiXS5jb2x1bW46bm90KC5jb21wdXRlciksXG4gIC51aS5ncmlkLmdyaWQuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwibW9iaWxlIG9ubHlcIl0uY29sdW1uOm5vdCguY29tcHV0ZXIpIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpW2NsYXNzKj1cInRhYmxldCBvbmx5XCJdLmdyaWQuZ3JpZC5ncmlkOm5vdCguY29tcHV0ZXIpLFxuICAudWkuZ3JpZC5ncmlkLmdyaWQgPiBbY2xhc3MqPVwidGFibGV0IG9ubHlcIl0ucm93Om5vdCguY29tcHV0ZXIpLFxuICAudWkuZ3JpZC5ncmlkLmdyaWQgPiBbY2xhc3MqPVwidGFibGV0IG9ubHlcIl0uY29sdW1uOm5vdCguY29tcHV0ZXIpLFxuICAudWkuZ3JpZC5ncmlkLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cInRhYmxldCBvbmx5XCJdLmNvbHVtbjpub3QoLmNvbXB1dGVyKSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgVGhlbWUgT3ZlcnJpZGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgT3ZlcnJpZGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLypcbiAqICMgU2VtYW50aWMgLSBNZW51XG4gKiBodHRwOi8vZ2l0aHViLmNvbS9zZW1hbnRpYy1vcmcvc2VtYW50aWMtdWkvXG4gKlxuICpcbiAqIENvcHlyaWdodCAyMDE1IENvbnRyaWJ1dG9yXG4gKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2VcbiAqIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVRcbiAqXG4gKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qXG5cbuKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVlyAg4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4pWXICAg4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWXXG7ilZrilZDilZDilojilojilZTilZDilZDilZ3ilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKWiOKWiOKVlyDilojilojilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilZTilZDilZDilZDilZDilZ1cbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4pWU4paI4paI4paI4paI4pWU4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilojilojilojilojilojilZdcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVlOKVkOKVkOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4paI4paI4pWR4pWa4paI4paI4pWU4pWd4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilZrilZDilZDilZDilZDilojilojilZFcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWRIOKVmuKVkOKVnSDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZFcbiAgIOKVmuKVkOKVnSAgIOKVmuKVkOKVnSAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWdICAgICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ1cblxuKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIFRoZW1lIFNlbGVjdGlvblxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFRvIG92ZXJyaWRlIGEgdGhlbWUgZm9yIGFuIGluZGl2aWR1YWwgZWxlbWVudFxuICAgc3BlY2lmeSB0aGVtZSBuYW1lIGJlbG93XG4qL1xuLyogR2xvYmFsICovXG4vKiBFbGVtZW50cyAqL1xuLyogQ29sbGVjdGlvbnMgKi9cbi8qIE1vZHVsZXMgKi9cbi8qIFZpZXdzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgRm9sZGVyc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFBhdGggdG8gdGhlbWUgcGFja2FnZXMgKi9cbi8qIFBhdGggdG8gc2l0ZSBvdmVycmlkZSBmb2xkZXIgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBJbXBvcnQgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBJbXBvcnQgRGlyZWN0aXZlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgVGhlbWVcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgU2l0ZSBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0IHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRvcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogUGFja2FnZWQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZG9ycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBDb21wb25lbnQncyBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kb3JzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFNpdGUgdGhlbWUgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgIFVzZXIgR2xvYmFsIFZhcmlhYmxlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIG1hcnNvIGNvbG9ycyAqL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuIENvbXBvbmVudCBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0ICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIE1lbnVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIENvbGxlY3Rpb25cbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1lbnUgKi9cbi8qIE1lbnUgSXRlbSAqL1xuLyogRGl2aWRlciAqL1xuLyogU3ViIE1lbnUgKi9cbi8qIFRleHQgSXRlbSAqL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgIEVsZW1lbnRzXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogSWNvbiAqL1xuLyogRHJvcGRvd24gSWNvbiAqL1xuLyogSGVhZGVyICovXG4vKiBWZXJ0aWNhbCBJY29uICovXG4vKiBWZXJ0aWNhbCBIZWFkZXIgKi9cbi8qIFBvaW50aW5nIEFycm93ICovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgQ291cGxpbmdzXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogQnV0dG9uICovXG4vKiBJbnB1dCAqL1xuLyogSW1hZ2UgKi9cbi8qIExhYmVsICovXG4vKiBEcm9wZG93biBpbiBNZW51ICovXG4vKiBEcm9wZG93biBWYXJpYXRpb25zICovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIFN0YXRlc1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEhvdmVyZWQgSXRlbSAqL1xuLyogUHJlc3NlZCBJdGVtICovXG4vKiBBY3RpdmUgSXRlbSAqL1xuLyogQWN0aXZlIEhvdmVyZWQgSXRlbSAqL1xuLyogU2VsZWN0ZWQgRHJvcGRvd24gKi9cbi8qIEFjdGl2ZSBEcm9wZG93biAqL1xuLyogQWN0aXZlIFN1YiBNZW51ICovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIFR5cGVzXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVmVydGljYWwgKi9cbi8qIFNlY29uZGFyeSAqL1xuLyogUG9pbnRpbmcgKi9cbi8qIEludmVydGVkIFNlY29uZGFyeSAqL1xuLyogSW52ZXJ0ZWQgUG9pbnRpbmcgKi9cbi8qIFRpZXJlZCAqL1xuLyogSWNvbiAqL1xuLyogVGFidWxhciAqL1xuLyogUGFnaW5hdGlvbiAqL1xuLyogTGFiZWxlZCBJY29uICovXG4vKiBUZXh0ICovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBWYXJpYXRpb25zXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qIEludmVydGVkIFN1YiBNZW51ICovXG4vKiBJbnZlcnRlZCBIb3ZlciAqL1xuLyogUHJlc3NlZCAqL1xuLyogSW52ZXJ0ZWQgQWN0aXZlICovXG4vKiBJbnZlcnRlZCBBY3RpdmUgSG92ZXIgICovXG4vKiBJbnZlcnRlZCBNZW51IERpdmlkZXIgKi9cbi8qIEludmVydGVkIENvbG9yZWQgKi9cbi8qIEZpeGVkICovXG4vKiBGbG9hdGVkICovXG4vKiBBdHRhY2hlZCAqL1xuLyogUmVzaXplIGxhcmdlIHNpemVzICovXG4vKiBTaXplcyAqL1xuLyogUGFja2FnZWQgVGhlbWUgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgTWVudVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQ29sbGVjdGlvblxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWVudSAqL1xuLyogTWVudSBJdGVtICovXG4vKiBEaXZpZGVyICovXG4vKiBTdWIgTWVudSAqL1xuLyogVGV4dCBJdGVtICovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgRWxlbWVudHNcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBJY29uICovXG4vKiBEcm9wZG93biBJY29uICovXG4vKiBIZWFkZXIgKi9cbi8qIFZlcnRpY2FsIEljb24gKi9cbi8qIFZlcnRpY2FsIEhlYWRlciAqL1xuLyogUG9pbnRpbmcgQXJyb3cgKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBDb3VwbGluZ3Ncbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBCdXR0b24gKi9cbi8qIElucHV0ICovXG4vKiBJbWFnZSAqL1xuLyogTGFiZWwgKi9cbi8qIERyb3Bkb3duIGluIE1lbnUgKi9cbi8qIERyb3Bkb3duIFZhcmlhdGlvbnMgKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgU3RhdGVzXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogSG92ZXJlZCBJdGVtICovXG4vKiBQcmVzc2VkIEl0ZW0gKi9cbi8qIEFjdGl2ZSBJdGVtICovXG4vKiBBY3RpdmUgSG92ZXJlZCBJdGVtICovXG4vKiBTZWxlY3RlZCBEcm9wZG93biAqL1xuLyogQWN0aXZlIERyb3Bkb3duICovXG4vKiBBY3RpdmUgU3ViIE1lbnUgKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgVHlwZXNcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBWZXJ0aWNhbCAqL1xuLyogU2Vjb25kYXJ5ICovXG4vKiBQb2ludGluZyAqL1xuLyogSW52ZXJ0ZWQgU2Vjb25kYXJ5ICovXG4vKiBJbnZlcnRlZCBQb2ludGluZyAqL1xuLyogVGllcmVkICovXG4vKiBJY29uICovXG4vKiBUYWJ1bGFyICovXG4vKiBQYWdpbmF0aW9uICovXG4vKiBMYWJlbGVkIEljb24gKi9cbi8qIFRleHQgKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIFZhcmlhdGlvbnNcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyogSW52ZXJ0ZWQgU3ViIE1lbnUgKi9cbi8qIEludmVydGVkIEhvdmVyICovXG4vKiBQcmVzc2VkICovXG4vKiBJbnZlcnRlZCBBY3RpdmUgKi9cbi8qIEludmVydGVkIEFjdGl2ZSBIb3ZlciAgKi9cbi8qIEludmVydGVkIE1lbnUgRGl2aWRlciAqL1xuLyogSW52ZXJ0ZWQgQ29sb3JlZCAqL1xuLyogRml4ZWQgKi9cbi8qIEZsb2F0ZWQgKi9cbi8qIEF0dGFjaGVkICovXG4vKiBSZXNpemUgbGFyZ2Ugc2l6ZXMgKi9cbi8qIFNpemVzICovXG4vKiBTaXRlIFRoZW1lICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgIFVzZXIgVmFyaWFibGUgT3ZlcnJpZGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBNaXgtaW5zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBPdmVycmlkZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRW5kIENvbmZpZyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFN0YW5kYXJkXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgICAgTWVudVxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5tZW51IHtcbiAgZGlzcGxheTogZmxleDtcbiAgbWFyZ2luOiAxcmVtIDBlbTtcbiAgZm9udC1mYW1pbHk6ICdFeG8gMicsICdMYXRvJywgQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZjtcbiAgYmFja2dyb3VuZDogI0ZGRkZGRjtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgzNCwgMzYsIDM4LCAwLjE1KTtcbiAgYm94LXNoYWRvdzogMHB4IDFweCAycHggMCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpO1xuICBib3JkZXItcmFkaXVzOiAwLjRyZW07XG4gIG1pbi1oZWlnaHQ6IDIuOGVtO1xufVxuLnVpLm1lbnU6YWZ0ZXIge1xuICBjb250ZW50OiAnJztcbiAgZGlzcGxheTogYmxvY2s7XG4gIGhlaWdodDogMHB4O1xuICBjbGVhcjogYm90aDtcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xufVxuLnVpLm1lbnU6Zmlyc3QtY2hpbGQge1xuICBtYXJnaW4tdG9wOiAwcmVtO1xufVxuLnVpLm1lbnU6bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1ib3R0b206IDByZW07XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgU3ViLU1lbnVcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkubWVudSAubWVudSB7XG4gIG1hcmdpbjogMGVtO1xufVxuLnVpLm1lbnU6bm90KC52ZXJ0aWNhbCkgPiAubWVudSB7XG4gIGRpc3BsYXk6IGZsZXg7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgICBJdGVtXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLm1lbnU6bm90KC52ZXJ0aWNhbCkgLml0ZW0ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuLnVpLm1lbnUgLml0ZW0ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGZsZXg6IDAgMCBhdXRvO1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgcGFkZGluZzogMC45ZW0gMS4xZW07XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICBjb2xvcjogIzMzMzMzMztcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjFzIGVhc2UsIGJveC1zaGFkb3cgMC4xcyBlYXNlLCBjb2xvciAwLjFzIGVhc2U7XG59XG4udWkubWVudSA+IC5pdGVtOmZpcnN0LWNoaWxkIHtcbiAgYm9yZGVyLXJhZGl1czogMC40cmVtIDBweCAwcHggMC40cmVtO1xufVxuLyogQm9yZGVyICovXG4udWkubWVudSAuaXRlbTpiZWZvcmUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGNvbnRlbnQ6ICcnO1xuICB0b3A6IDAlO1xuICByaWdodDogMHB4O1xuICBoZWlnaHQ6IDEwMCU7XG4gIHdpZHRoOiAxcHg7XG4gIGJhY2tncm91bmQ6IHJnYmEoMzQsIDM2LCAzOCwgMC4xKTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgVGV4dCBDb250ZW50XG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLm1lbnUgLnRleHQuaXRlbSA+ICosXG4udWkubWVudSAuaXRlbSA+IGE6bm90KC51aSksXG4udWkubWVudSAuaXRlbSA+IHA6b25seS1jaGlsZCB7XG4gIHVzZXItc2VsZWN0OiB0ZXh0O1xuICBsaW5lLWhlaWdodDogMS4zO1xufVxuLnVpLm1lbnUgLml0ZW0gPiBwOmZpcnN0LWNoaWxkIHtcbiAgbWFyZ2luLXRvcDogMDtcbn1cbi51aS5tZW51IC5pdGVtID4gcDpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLm1lbnUgLml0ZW0gPiBpLmljb24ge1xuICBvcGFjaXR5OiAwLjk7XG4gIGZsb2F0OiBub25lO1xuICBtYXJnaW46IDBlbSAwLjVlbSAwZW0gMGVtO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBCdXR0b25cbi0tLS0tLS0tLS0tLS0tLSovXG4udWkubWVudTpub3QoLnZlcnRpY2FsKSAuaXRlbSA+IC5idXR0b24ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRvcDogMGVtO1xuICBtYXJnaW46IC0wLjVlbSAwZW07XG4gIHBhZGRpbmctYm90dG9tOiAwLjhlbTtcbiAgcGFkZGluZy10b3A6IDAuOGVtO1xuICBmb250LXNpemU6IDFlbTtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLVxuIEdyaWQgLyBDb250YWluZXJcbi0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5tZW51ID4gLmdyaWQsXG4udWkubWVudSA+IC5jb250YWluZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogaW5oZXJpdDtcbiAgZmxleC1kaXJlY3Rpb246IGluaGVyaXQ7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIElucHV0c1xuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5tZW51IC5pdGVtID4gLmlucHV0IHtcbiAgd2lkdGg6IDEwMCU7XG59XG4udWkubWVudTpub3QoLnZlcnRpY2FsKSAuaXRlbSA+IC5pbnB1dCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdG9wOiAwZW07XG4gIG1hcmdpbjogLTAuNWVtIDBlbTtcbn1cbi51aS5tZW51IC5pdGVtID4gLmlucHV0IGlucHV0IHtcbiAgZm9udC1zaXplOiAxZW07XG4gIHBhZGRpbmctdG9wOiAwLjhlbTtcbiAgcGFkZGluZy1ib3R0b206IDAuOGVtO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBIZWFkZXJcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkubWVudSAuaGVhZGVyLml0ZW0sXG4udWkudmVydGljYWwubWVudSAuaGVhZGVyLml0ZW0ge1xuICBtYXJnaW46IDBlbTtcbiAgYmFja2dyb3VuZDogJyc7XG4gIHRleHQtdHJhbnNmb3JtOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuLnVpLnZlcnRpY2FsLm1lbnUgLml0ZW0gPiAuaGVhZGVyOm5vdCgudWkpIHtcbiAgbWFyZ2luOiAwZW0gMGVtIDAuNWVtO1xuICBmb250LXNpemU6IDFlbTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgRHJvcGRvd25zXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogRHJvcGRvd24gSWNvbiAqL1xuLnVpLm1lbnUgLml0ZW0gPiBpLmRyb3Bkb3duLmljb24ge1xuICBwYWRkaW5nOiAwZW07XG4gIGZsb2F0OiByaWdodDtcbiAgbWFyZ2luOiAwZW0gMGVtIDBlbSAxZW07XG59XG4vKiBNZW51ICovXG4udWkubWVudSAuZHJvcGRvd24uaXRlbSAubWVudSB7XG4gIGxlZnQ6IDBweDtcbiAgbWluLXdpZHRoOiBjYWxjKDEwMCUgLSAxcHgpO1xuICBib3JkZXItcmFkaXVzOiAwZW0gMGVtIDAuNHJlbSAwLjRyZW07XG4gIGJhY2tncm91bmQ6ICNGRkZGRkY7XG4gIG1hcmdpbjogMGVtIDBweCAwcHg7XG4gIGJveC1zaGFkb3c6IDBweCAxcHggM3B4IDBweCByZ2JhKDAsIDAsIDAsIDAuMDgpO1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uICFpbXBvcnRhbnQ7XG59XG4vKiBNZW51IEl0ZW1zICovXG4udWkubWVudSAudWkuZHJvcGRvd24gLm1lbnUgPiAuaXRlbSB7XG4gIG1hcmdpbjogMDtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgZm9udC1zaXplOiAxZW0gIWltcG9ydGFudDtcbiAgcGFkZGluZzogMC44ZW0gMS4xZW0gIWltcG9ydGFudDtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgY29sb3I6ICMzMzMzMzMgIWltcG9ydGFudDtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmUgIWltcG9ydGFudDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbCAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gIHRyYW5zaXRpb246IG5vbmUgIWltcG9ydGFudDtcbn1cbi51aS5tZW51IC51aS5kcm9wZG93biAubWVudSA+IC5pdGVtOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjA1KSAhaW1wb3J0YW50O1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjk1KSAhaW1wb3J0YW50O1xufVxuLnVpLm1lbnUgLnVpLmRyb3Bkb3duIC5tZW51ID4gLnNlbGVjdGVkLml0ZW0ge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMDUpICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuOTUpICFpbXBvcnRhbnQ7XG59XG4udWkubWVudSAudWkuZHJvcGRvd24gLm1lbnUgPiAuYWN0aXZlLml0ZW0ge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMDMpICFpbXBvcnRhbnQ7XG4gIGZvbnQtd2VpZ2h0OiBib2xkICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuOTUpICFpbXBvcnRhbnQ7XG59XG4udWkubWVudSAudWkuZHJvcGRvd24uaXRlbSAubWVudSAuaXRlbTpub3QoLmZpbHRlcmVkKSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuLnVpLm1lbnUgLnVpLmRyb3Bkb3duIC5tZW51ID4gLml0ZW0gLmljb246bm90KC5kcm9wZG93bikge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZvbnQtc2l6ZTogMWVtICFpbXBvcnRhbnQ7XG4gIGZsb2F0OiBub25lO1xuICBtYXJnaW46IDBlbSAwLjc1ZW0gMGVtIDBlbTtcbn1cbi8qIFNlY29uZGFyeSAqL1xuLnVpLnNlY29uZGFyeS5tZW51IC5kcm9wZG93bi5pdGVtID4gLm1lbnUsXG4udWkudGV4dC5tZW51IC5kcm9wZG93bi5pdGVtID4gLm1lbnUge1xuICBib3JkZXItcmFkaXVzOiAwLjRyZW07XG4gIG1hcmdpbi10b3A6IDAuNWVtO1xufVxuLyogUG9pbnRpbmcgKi9cbi51aS5tZW51IC5wb2ludGluZy5kcm9wZG93bi5pdGVtIC5tZW51IHtcbiAgbWFyZ2luLXRvcDogMC43NWVtO1xufVxuLyogSW52ZXJ0ZWQgKi9cbi51aS5pbnZlcnRlZC5tZW51IC5zZWFyY2guZHJvcGRvd24uaXRlbSA+IC5zZWFyY2gsXG4udWkuaW52ZXJ0ZWQubWVudSAuc2VhcmNoLmRyb3Bkb3duLml0ZW0gPiAudGV4dCB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOSk7XG59XG4vKiBWZXJ0aWNhbCAqL1xuLnVpLnZlcnRpY2FsLm1lbnUgLmRyb3Bkb3duLml0ZW0gPiAuaWNvbiB7XG4gIGZsb2F0OiByaWdodDtcbiAgY29udGVudDogXCJcXGYwZGFcIjtcbiAgbWFyZ2luLWxlZnQ6IDFlbTtcbn1cbi51aS52ZXJ0aWNhbC5tZW51IC5kcm9wZG93bi5pdGVtIC5tZW51IHtcbiAgbGVmdDogMTAwJTtcbiAgbWluLXdpZHRoOiAwO1xuICBtYXJnaW46IDBlbSAwZW0gMGVtIDBlbTtcbiAgYm94LXNoYWRvdzogMCAxcHggM3B4IDBweCByZ2JhKDAsIDAsIDAsIDAuMDgpO1xuICBib3JkZXItcmFkaXVzOiAwZW0gMC40cmVtIDAuNHJlbSAwLjRyZW07XG59XG4udWkudmVydGljYWwubWVudSAuZHJvcGRvd24uaXRlbS51cHdhcmQgLm1lbnUge1xuICBib3R0b206IDA7XG59XG4udWkudmVydGljYWwubWVudSAuZHJvcGRvd24uaXRlbTpub3QoLnVwd2FyZCkgLm1lbnUge1xuICB0b3A6IDA7XG59XG4udWkudmVydGljYWwubWVudSAuYWN0aXZlLmRyb3Bkb3duLml0ZW0ge1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMGVtO1xuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMGVtO1xufVxuLnVpLnZlcnRpY2FsLm1lbnUgLmRyb3Bkb3duLmFjdGl2ZS5pdGVtIHtcbiAgYm94LXNoYWRvdzogbm9uZTtcbn1cbi8qIEV2ZW5seSBEaXZpZGVkICovXG4udWkuaXRlbS5tZW51IC5kcm9wZG93biAubWVudSAuaXRlbSB7XG4gIHdpZHRoOiAxMDAlO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBMYWJlbHNcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkubWVudSAuaXRlbSA+IC5sYWJlbCB7XG4gIGJhY2tncm91bmQ6ICM5OTk5OTk7XG4gIGNvbG9yOiAjZmZmZmZmO1xuICBtYXJnaW4tbGVmdDogMWVtO1xuICBwYWRkaW5nOiAwLjNlbSAwLjhlbTtcbn1cbi51aS52ZXJ0aWNhbC5tZW51IC5pdGVtID4gLmxhYmVsIHtcbiAgYmFja2dyb3VuZDogIzk5OTk5OTtcbiAgY29sb3I6ICNmZmZmZmY7XG4gIG1hcmdpbi10b3A6IC0wLjE1ZW07XG4gIG1hcmdpbi1ib3R0b206IC0wLjE1ZW07XG4gIHBhZGRpbmc6IDAuM2VtIDAuOGVtO1xufVxuLnVpLm1lbnUgLml0ZW0gPiAuZmxvYXRpbmcubGFiZWwge1xuICBwYWRkaW5nOiAwLjNlbSAwLjhlbTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgSW1hZ2VzXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLm1lbnUgLml0ZW0gPiBpbWc6bm90KC51aSkge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIG1hcmdpbjogLTAuM2VtIDBlbTtcbiAgd2lkdGg6IDIuNWVtO1xufVxuLnVpLnZlcnRpY2FsLm1lbnUgLml0ZW0gPiBpbWc6bm90KC51aSk6b25seS1jaGlsZCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIHdpZHRoOiBhdXRvO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICBDb3VwbGluZ1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgU2lkZWJhclxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNob3cgdmVydGljYWwgZGl2aWRlcnMgYmVsb3cgbGFzdCAqL1xuLnVpLnZlcnRpY2FsLnNpZGViYXIubWVudSA+IC5pdGVtOmZpcnN0LWNoaWxkOmJlZm9yZSB7XG4gIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG59XG4udWkudmVydGljYWwuc2lkZWJhci5tZW51ID4gLml0ZW06OmJlZm9yZSB7XG4gIHRvcDogYXV0bztcbiAgYm90dG9tOiAwcHg7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgQ29udGFpbmVyXG4tLS0tLS0tLS0tLS0tLS0qL1xuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAudWkubWVudSA+IC51aS5jb250YWluZXIge1xuICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luLWxlZnQ6IDBlbSAhaW1wb3J0YW50O1xuICAgIG1hcmdpbi1yaWdodDogMGVtICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLnVpLm1lbnU6bm90KC5zZWNvbmRhcnkpOm5vdCgudGV4dCk6bm90KC50YWJ1bGFyKTpub3QoLmJvcmRlcmxlc3MpID4gLmNvbnRhaW5lciA+IC5pdGVtOm5vdCgucmlnaHQpOm5vdCguYm9yZGVybGVzcyk6Zmlyc3QtY2hpbGQge1xuICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgcmdiYSgzNCwgMzYsIDM4LCAwLjEpO1xuICB9XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmxpbmsubWVudSAuaXRlbTpob3Zlcixcbi51aS5tZW51IC5kcm9wZG93bi5pdGVtOmhvdmVyLFxuLnVpLm1lbnUgLmxpbmsuaXRlbTpob3Zlcixcbi51aS5tZW51IGEuaXRlbTpob3ZlciB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjAzKTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC45NSk7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIFByZXNzZWRcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkubGluay5tZW51IC5pdGVtOmFjdGl2ZSxcbi51aS5tZW51IC5saW5rLml0ZW06YWN0aXZlLFxuLnVpLm1lbnUgYS5pdGVtOmFjdGl2ZSB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4wMyk7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuOTUpO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkubWVudSAuYWN0aXZlLml0ZW0ge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMDUpO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjk1KTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgYm94LXNoYWRvdzogbm9uZTtcbn1cbi51aS5tZW51IC5hY3RpdmUuaXRlbSA+IGkuaWNvbiB7XG4gIG9wYWNpdHk6IDE7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gIEFjdGl2ZSBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5tZW51IC5hY3RpdmUuaXRlbTpob3Zlcixcbi51aS52ZXJ0aWNhbC5tZW51IC5hY3RpdmUuaXRlbTpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4wNSk7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuOTUpO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5tZW51IC5pdGVtLmRpc2FibGVkLFxuLnVpLm1lbnUgLml0ZW0uZGlzYWJsZWQ6aG92ZXIge1xuICBjdXJzb3I6IGRlZmF1bHQ7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiByZ2JhKDQwLCA0MCwgNDAsIDAuMyk7XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFR5cGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbkZsb2F0ZWQgTWVudSAvIEl0ZW1cbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTGVmdCBGbG9hdGVkICovXG4udWkubWVudTpub3QoLnZlcnRpY2FsKSAubGVmdC5pdGVtLFxuLnVpLm1lbnU6bm90KC52ZXJ0aWNhbCkgLmxlZnQubWVudSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIG1hcmdpbi1yaWdodDogYXV0byAhaW1wb3J0YW50O1xufVxuLyogUmlnaHQgRmxvYXRlZCAqL1xuLnVpLm1lbnU6bm90KC52ZXJ0aWNhbCkgLnJpZ2h0Lml0ZW0sXG4udWkubWVudTpub3QoLnZlcnRpY2FsKSAucmlnaHQubWVudSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIG1hcmdpbi1sZWZ0OiBhdXRvICFpbXBvcnRhbnQ7XG59XG4vKiBTd2FwcGVkIEJvcmRlcnMgKi9cbi51aS5tZW51IC5yaWdodC5pdGVtOjpiZWZvcmUsXG4udWkubWVudSAucmlnaHQubWVudSA+IC5pdGVtOjpiZWZvcmUge1xuICByaWdodDogYXV0bztcbiAgbGVmdDogMDtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBWZXJ0aWNhbFxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS52ZXJ0aWNhbC5tZW51IHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGJhY2tncm91bmQ6ICNGRkZGRkY7XG4gIGJveC1zaGFkb3c6IDBweCAxcHggMnB4IDAgcmdiYSgzNCwgMzYsIDM4LCAwLjE1KTtcbn1cbi8qLS0tIEl0ZW0gLS0tKi9cbi51aS52ZXJ0aWNhbC5tZW51IC5pdGVtIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIGJvcmRlci10b3A6IG5vbmU7XG4gIGJvcmRlci1yaWdodDogbm9uZTtcbn1cbi51aS52ZXJ0aWNhbC5tZW51ID4gLml0ZW06Zmlyc3QtY2hpbGQge1xuICBib3JkZXItcmFkaXVzOiAwLjRyZW0gMC40cmVtIDBweCAwcHg7XG59XG4udWkudmVydGljYWwubWVudSA+IC5pdGVtOmxhc3QtY2hpbGQge1xuICBib3JkZXItcmFkaXVzOiAwcHggMHB4IDAuNHJlbSAwLjRyZW07XG59XG4vKi0tLSBMYWJlbCAtLS0qL1xuLnVpLnZlcnRpY2FsLm1lbnUgLml0ZW0gPiAubGFiZWwge1xuICBmbG9hdDogcmlnaHQ7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi8qLS0tIEljb24gLS0tKi9cbi51aS52ZXJ0aWNhbC5tZW51IC5pdGVtID4gaS5pY29uIHtcbiAgd2lkdGg6IDEuMThlbTtcbiAgZmxvYXQ6IHJpZ2h0O1xuICBtYXJnaW46IDBlbSAwZW0gMGVtIDAuNWVtO1xufVxuLnVpLnZlcnRpY2FsLm1lbnUgLml0ZW0gPiAubGFiZWwgKyBpLmljb24ge1xuICBmbG9hdDogbm9uZTtcbiAgbWFyZ2luOiAwZW0gMC41ZW0gMGVtIDBlbTtcbn1cbi8qLS0tIEJvcmRlciAtLS0qL1xuLnVpLnZlcnRpY2FsLm1lbnUgLml0ZW06YmVmb3JlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBjb250ZW50OiAnJztcbiAgdG9wOiAwJTtcbiAgbGVmdDogMHB4O1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxcHg7XG4gIGJhY2tncm91bmQ6IHJnYmEoMzQsIDM2LCAzOCwgMC4xKTtcbn1cbi51aS52ZXJ0aWNhbC5tZW51IC5pdGVtOmZpcnN0LWNoaWxkOmJlZm9yZSB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbn1cbi8qLS0tIFN1YiBNZW51IC0tLSovXG4udWkudmVydGljYWwubWVudSAuaXRlbSA+IC5tZW51IHtcbiAgbWFyZ2luOiAwLjVlbSAtMS4xZW0gMGVtO1xufVxuLnVpLnZlcnRpY2FsLm1lbnUgLm1lbnUgLml0ZW0ge1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICBwYWRkaW5nOiAwLjVlbSAxLjI4MzMzMzMzZW07XG4gIGZvbnQtc2l6ZTogMC45ZW07XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNSk7XG59XG4udWkudmVydGljYWwubWVudSAuaXRlbSAubWVudSBhLml0ZW06aG92ZXIsXG4udWkudmVydGljYWwubWVudSAuaXRlbSAubWVudSAubGluay5pdGVtOmhvdmVyIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44NSk7XG59XG4udWkudmVydGljYWwubWVudSAubWVudSAuaXRlbTpiZWZvcmUge1xuICBkaXNwbGF5OiBub25lO1xufVxuLyogVmVydGljYWwgQWN0aXZlICovXG4udWkudmVydGljYWwubWVudSAuYWN0aXZlLml0ZW0ge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMDUpO1xuICBib3JkZXItcmFkaXVzOiAwZW07XG4gIGJveC1zaGFkb3c6IG5vbmU7XG59XG4udWkudmVydGljYWwubWVudSA+IC5hY3RpdmUuaXRlbTpmaXJzdC1jaGlsZCB7XG4gIGJvcmRlci1yYWRpdXM6IDAuNHJlbSAwLjRyZW0gMGVtIDBlbTtcbn1cbi51aS52ZXJ0aWNhbC5tZW51ID4gLmFjdGl2ZS5pdGVtOmxhc3QtY2hpbGQge1xuICBib3JkZXItcmFkaXVzOiAwZW0gMGVtIDAuNHJlbSAwLjRyZW07XG59XG4udWkudmVydGljYWwubWVudSA+IC5hY3RpdmUuaXRlbTpvbmx5LWNoaWxkIHtcbiAgYm9yZGVyLXJhZGl1czogMC40cmVtO1xufVxuLnVpLnZlcnRpY2FsLm1lbnUgLmFjdGl2ZS5pdGVtIC5tZW51IC5hY3RpdmUuaXRlbSB7XG4gIGJvcmRlci1sZWZ0OiBub25lO1xufVxuLnVpLnZlcnRpY2FsLm1lbnUgLml0ZW0gLm1lbnUgLmFjdGl2ZS5pdGVtIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjk1KTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgVGFidWxhclxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS50YWJ1bGFyLm1lbnUge1xuICBib3JkZXItcmFkaXVzOiAwZW07XG4gIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgYm9yZGVyOiBub25lO1xuICBiYWNrZ3JvdW5kOiBub25lIHRyYW5zcGFyZW50O1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI0Q0RDRENTtcbn1cbi51aS50YWJ1bGFyLmZsdWlkLm1lbnUge1xuICB3aWR0aDogY2FsYygxMDAlICsgMnB4KSAhaW1wb3J0YW50O1xufVxuLnVpLnRhYnVsYXIubWVudSAuaXRlbSB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBib3JkZXItYm90dG9tOiBub25lO1xuICBib3JkZXItbGVmdDogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXRvcDogMnB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBwYWRkaW5nOiAwLjllbSAxLjRlbTtcbiAgY29sb3I6ICMzMzMzMzM7XG59XG4udWkudGFidWxhci5tZW51IC5pdGVtOmJlZm9yZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4vKiBIb3ZlciAqL1xuLnVpLnRhYnVsYXIubWVudSAuaXRlbTpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjgpO1xufVxuLyogQWN0aXZlICovXG4udWkudGFidWxhci5tZW51IC5hY3RpdmUuaXRlbSB7XG4gIGJhY2tncm91bmQ6IG5vbmUgI2ZmZmZmZjtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC45NSk7XG4gIGJvcmRlci10b3Atd2lkdGg6IDFweDtcbiAgYm9yZGVyLWNvbG9yOiAjRDRENEQ1O1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgbWFyZ2luLWJvdHRvbTogLTFweDtcbiAgYm94LXNoYWRvdzogbm9uZTtcbiAgYm9yZGVyLXJhZGl1czogMC40cmVtIDAuNHJlbSAwcHggMHB4ICFpbXBvcnRhbnQ7XG59XG4vKiBDb3VwbGluZyB3aXRoIHNlZ21lbnQgZm9yIGF0dGFjaG1lbnQgKi9cbi51aS50YWJ1bGFyLm1lbnUgKyAuYXR0YWNoZWQ6bm90KC50b3ApLnNlZ21lbnQsXG4udWkudGFidWxhci5tZW51ICsgLmF0dGFjaGVkOm5vdCgudG9wKS5zZWdtZW50ICsgLmF0dGFjaGVkOm5vdCgudG9wKS5zZWdtZW50IHtcbiAgYm9yZGVyLXRvcDogbm9uZTtcbiAgbWFyZ2luLWxlZnQ6IDBweDtcbiAgbWFyZ2luLXRvcDogMHB4O1xuICBtYXJnaW4tcmlnaHQ6IDBweDtcbiAgd2lkdGg6IDEwMCU7XG59XG4udG9wLmF0dGFjaGVkLnNlZ21lbnQgKyAudWkuYm90dG9tLnRhYnVsYXIubWVudSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IGNhbGMoMTAwJSArIDJweCk7XG4gIGxlZnQ6IC0xcHg7XG59XG4vKiBCb3R0b20gVmVydGljYWwgVGFidWxhciAqL1xuLnVpLmJvdHRvbS50YWJ1bGFyLm1lbnUge1xuICBiYWNrZ3JvdW5kOiBub25lIHRyYW5zcGFyZW50O1xuICBib3JkZXItcmFkaXVzOiAwZW07XG4gIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNENEQ0RDU7XG59XG4udWkuYm90dG9tLnRhYnVsYXIubWVudSAuaXRlbSB7XG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIGJvcmRlci1sZWZ0OiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1yaWdodDogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci10b3A6IG5vbmU7XG59XG4udWkuYm90dG9tLnRhYnVsYXIubWVudSAuYWN0aXZlLml0ZW0ge1xuICBiYWNrZ3JvdW5kOiBub25lICNmZmZmZmY7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuOTUpO1xuICBib3JkZXItY29sb3I6ICNENEQ0RDU7XG4gIG1hcmdpbjogLTFweCAwcHggMHB4IDBweDtcbiAgYm9yZGVyLXJhZGl1czogMHB4IDBweCAwLjRyZW0gMC40cmVtICFpbXBvcnRhbnQ7XG59XG4vKiBWZXJ0aWNhbCBUYWJ1bGFyIChMZWZ0KSAqL1xuLnVpLnZlcnRpY2FsLnRhYnVsYXIubWVudSB7XG4gIGJhY2tncm91bmQ6IG5vbmUgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDBlbTtcbiAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICBib3JkZXItYm90dG9tOiBub25lO1xuICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAjRDRENEQ1O1xufVxuLnVpLnZlcnRpY2FsLnRhYnVsYXIubWVudSAuaXRlbSB7XG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIGJvcmRlci1sZWZ0OiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItcmlnaHQ6IG5vbmU7XG59XG4udWkudmVydGljYWwudGFidWxhci5tZW51IC5hY3RpdmUuaXRlbSB7XG4gIGJhY2tncm91bmQ6IG5vbmUgI2ZmZmZmZjtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC45NSk7XG4gIGJvcmRlci1jb2xvcjogI0Q0RDRENTtcbiAgbWFyZ2luOiAwcHggLTFweCAwcHggMHB4O1xuICBib3JkZXItcmFkaXVzOiAwLjRyZW0gMHB4IDBweCAwLjRyZW0gIWltcG9ydGFudDtcbn1cbi8qIFZlcnRpY2FsIFJpZ2h0IFRhYnVsYXIgKi9cbi51aS52ZXJ0aWNhbC5yaWdodC50YWJ1bGFyLm1lbnUge1xuICBiYWNrZ3JvdW5kOiBub25lIHRyYW5zcGFyZW50O1xuICBib3JkZXItcmFkaXVzOiAwZW07XG4gIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgYm9yZGVyLXJpZ2h0OiBub25lO1xuICBib3JkZXItbGVmdDogMXB4IHNvbGlkICNENEQ0RDU7XG59XG4udWkudmVydGljYWwucmlnaHQudGFidWxhci5tZW51IC5pdGVtIHtcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItbGVmdDogbm9uZTtcbn1cbi51aS52ZXJ0aWNhbC5yaWdodC50YWJ1bGFyLm1lbnUgLmFjdGl2ZS5pdGVtIHtcbiAgYmFja2dyb3VuZDogbm9uZSAjZmZmZmZmO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjk1KTtcbiAgYm9yZGVyLWNvbG9yOiAjRDRENEQ1O1xuICBtYXJnaW46IDBweCAwcHggMHB4IC0xcHg7XG4gIGJvcmRlci1yYWRpdXM6IDBweCAwLjRyZW0gMC40cmVtIDBweCAhaW1wb3J0YW50O1xufVxuLyogRHJvcGRvd24gKi9cbi51aS50YWJ1bGFyLm1lbnUgLmFjdGl2ZS5kcm9wZG93bi5pdGVtIHtcbiAgbWFyZ2luLWJvdHRvbTogMHB4O1xuICBib3JkZXItbGVmdDogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXRvcDogMnB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItYm90dG9tOiBub25lO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgUGFnaW5hdGlvblxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5wYWdpbmF0aW9uLm1lbnUge1xuICBtYXJnaW46IDBlbTtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG4udWkucGFnaW5hdGlvbi5tZW51IC5pdGVtOmxhc3QtY2hpbGQge1xuICBib3JkZXItcmFkaXVzOiAwZW0gMC40cmVtIDAuNHJlbSAwZW07XG59XG4udWkuY29tcGFjdC5tZW51IC5pdGVtOmxhc3QtY2hpbGQge1xuICBib3JkZXItcmFkaXVzOiAwZW0gMC40cmVtIDAuNHJlbSAwZW07XG59XG4udWkucGFnaW5hdGlvbi5tZW51IC5pdGVtOmxhc3QtY2hpbGQ6YmVmb3JlIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi51aS5wYWdpbmF0aW9uLm1lbnUgLml0ZW0ge1xuICBtaW4td2lkdGg6IDNlbTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuLnVpLnBhZ2luYXRpb24ubWVudSAuaWNvbi5pdGVtIGkuaWNvbiB7XG4gIHZlcnRpY2FsLWFsaWduOiB0b3A7XG59XG4vKiBBY3RpdmUgKi9cbi51aS5wYWdpbmF0aW9uLm1lbnUgLmFjdGl2ZS5pdGVtIHtcbiAgYm9yZGVyLXRvcDogbm9uZTtcbiAgcGFkZGluZy10b3A6IDAuOWVtO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMDUpO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjk1KTtcbiAgYm94LXNoYWRvdzogbm9uZTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIFNlY29uZGFyeVxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5zZWNvbmRhcnkubWVudSB7XG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIG1hcmdpbi1sZWZ0OiAtMC41ZW07XG4gIG1hcmdpbi1yaWdodDogLTAuNWVtO1xuICBib3JkZXItcmFkaXVzOiAwZW07XG4gIGJvcmRlcjogbm9uZTtcbiAgYm94LXNoYWRvdzogbm9uZTtcbn1cbi8qIEl0ZW0gKi9cbi51aS5zZWNvbmRhcnkubWVudSAuaXRlbSB7XG4gIGFsaWduLXNlbGY6IGNlbnRlcjtcbiAgYm94LXNoYWRvdzogbm9uZTtcbiAgYm9yZGVyOiBub25lO1xuICBwYWRkaW5nOiAwLjhlbSAwLjllbTtcbiAgbWFyZ2luOiAwZW0gMC41ZW07XG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIHRyYW5zaXRpb246IGNvbG9yIDAuMXMgZWFzZTtcbiAgYm9yZGVyLXJhZGl1czogMC40cmVtO1xufVxuLyogTm8gRGl2aWRlciAqL1xuLnVpLnNlY29uZGFyeS5tZW51IC5pdGVtOmJlZm9yZSB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbn1cbi8qIEhlYWRlciAqL1xuLnVpLnNlY29uZGFyeS5tZW51IC5oZWFkZXIuaXRlbSB7XG4gIGJvcmRlci1yYWRpdXM6IDBlbTtcbiAgYm9yZGVyLXJpZ2h0OiBub25lO1xuICBiYWNrZ3JvdW5kOiBub25lIHRyYW5zcGFyZW50O1xufVxuLyogSW1hZ2UgKi9cbi51aS5zZWNvbmRhcnkubWVudSAuaXRlbSA+IGltZzpub3QoLnVpKSB7XG4gIG1hcmdpbjogMGVtO1xufVxuLyogSG92ZXIgKi9cbi51aS5zZWNvbmRhcnkubWVudSAuZHJvcGRvd24uaXRlbTpob3Zlcixcbi51aS5zZWNvbmRhcnkubWVudSAubGluay5pdGVtOmhvdmVyLFxuLnVpLnNlY29uZGFyeS5tZW51IGEuaXRlbTpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4wNSk7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuOTUpO1xufVxuLyogQWN0aXZlICovXG4udWkuc2Vjb25kYXJ5Lm1lbnUgLmFjdGl2ZS5pdGVtIHtcbiAgYm94LXNoYWRvdzogbm9uZTtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjA1KTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC45NSk7XG4gIGJvcmRlci1yYWRpdXM6IDAuNHJlbTtcbn1cbi8qIEFjdGl2ZSBIb3ZlciAqL1xuLnVpLnNlY29uZGFyeS5tZW51IC5hY3RpdmUuaXRlbTpob3ZlciB7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4wNSk7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuOTUpO1xufVxuLyogSW52ZXJ0ZWQgKi9cbi51aS5zZWNvbmRhcnkuaW52ZXJ0ZWQubWVudSAubGluay5pdGVtLFxuLnVpLnNlY29uZGFyeS5pbnZlcnRlZC5tZW51IGEuaXRlbSB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNykgIWltcG9ydGFudDtcbn1cbi51aS5zZWNvbmRhcnkuaW52ZXJ0ZWQubWVudSAuZHJvcGRvd24uaXRlbTpob3Zlcixcbi51aS5zZWNvbmRhcnkuaW52ZXJ0ZWQubWVudSAubGluay5pdGVtOmhvdmVyLFxuLnVpLnNlY29uZGFyeS5pbnZlcnRlZC5tZW51IGEuaXRlbTpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wOCk7XG4gIGNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG59XG4udWkuc2Vjb25kYXJ5LmludmVydGVkLm1lbnUgLmFjdGl2ZS5pdGVtIHtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KTtcbiAgY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcbn1cbi8qIEZpeCBpdGVtIG1hcmdpbnMgKi9cbi51aS5zZWNvbmRhcnkuaXRlbS5tZW51IHtcbiAgbWFyZ2luLWxlZnQ6IDBlbTtcbiAgbWFyZ2luLXJpZ2h0OiAwZW07XG59XG4udWkuc2Vjb25kYXJ5Lml0ZW0ubWVudSAuaXRlbTpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLXJpZ2h0OiAwZW07XG59XG4udWkuc2Vjb25kYXJ5LmF0dGFjaGVkLm1lbnUge1xuICBib3gtc2hhZG93OiBub25lO1xufVxuLyogU3ViIE1lbnUgKi9cbi51aS52ZXJ0aWNhbC5zZWNvbmRhcnkubWVudSAuaXRlbTpub3QoLmRyb3Bkb3duKSA+IC5tZW51IHtcbiAgbWFyZ2luOiAwZW0gLTAuOWVtO1xufVxuLnVpLnZlcnRpY2FsLnNlY29uZGFyeS5tZW51IC5pdGVtOm5vdCguZHJvcGRvd24pID4gLm1lbnUgPiAuaXRlbSB7XG4gIG1hcmdpbjogMGVtO1xuICBwYWRkaW5nOiAwLjdlbSAxLjI4MzMzMzMzZW07XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgU2Vjb25kYXJ5IFZlcnRpY2FsXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkuc2Vjb25kYXJ5LnZlcnRpY2FsLm1lbnUgPiAuaXRlbSB7XG4gIGJvcmRlcjogbm9uZTtcbiAgbWFyZ2luOiAwZW0gMGVtIDAuNWVtO1xuICBib3JkZXItcmFkaXVzOiAwLjRyZW0gIWltcG9ydGFudDtcbn1cbi51aS5zZWNvbmRhcnkudmVydGljYWwubWVudSA+IC5oZWFkZXIuaXRlbSB7XG4gIGJvcmRlci1yYWRpdXM6IDBlbTtcbn1cbi8qIFN1YiBNZW51ICovXG4udWkudmVydGljYWwuc2Vjb25kYXJ5Lm1lbnUgLml0ZW0gPiAubWVudSAuaXRlbSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuLyogSW52ZXJ0ZWQgKi9cbi51aS5zZWNvbmRhcnkuaW52ZXJ0ZWQubWVudSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgIFNlY29uZGFyeSBQb2ludGluZ1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLnNlY29uZGFyeS5wb2ludGluZy5tZW51IHtcbiAgbWFyZ2luLWxlZnQ6IDBlbTtcbiAgbWFyZ2luLXJpZ2h0OiAwZW07XG4gIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpO1xufVxuLnVpLnNlY29uZGFyeS5wb2ludGluZy5tZW51IC5pdGVtIHtcbiAgYm9yZGVyLWJvdHRvbS1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1ib3R0b20tc3R5bGU6IHNvbGlkO1xuICBib3JkZXItcmFkaXVzOiAwZW07XG4gIGFsaWduLXNlbGY6IGZsZXgtZW5kO1xuICBtYXJnaW46IDBlbSAwZW0gLTJweDtcbiAgcGFkZGluZzogMC45ZW0gMS4xZW07XG4gIGJvcmRlci1ib3R0b20td2lkdGg6IDJweDtcbiAgdHJhbnNpdGlvbjogY29sb3IgMC4xcyBlYXNlO1xufVxuLyogSXRlbSBUeXBlcyAqL1xuLnVpLnNlY29uZGFyeS5wb2ludGluZy5tZW51IC5oZWFkZXIuaXRlbSB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODUpICFpbXBvcnRhbnQ7XG59XG4udWkuc2Vjb25kYXJ5LnBvaW50aW5nLm1lbnUgLnRleHQuaXRlbSB7XG4gIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbn1cbi51aS5zZWNvbmRhcnkucG9pbnRpbmcubWVudSAuaXRlbTphZnRlciB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4vKiBIb3ZlciAqL1xuLnVpLnNlY29uZGFyeS5wb2ludGluZy5tZW51IC5kcm9wZG93bi5pdGVtOmhvdmVyLFxuLnVpLnNlY29uZGFyeS5wb2ludGluZy5tZW51IC5saW5rLml0ZW06aG92ZXIsXG4udWkuc2Vjb25kYXJ5LnBvaW50aW5nLm1lbnUgYS5pdGVtOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiAjMzMzMzMzO1xufVxuLyogUHJlc3NlZCAqL1xuLnVpLnNlY29uZGFyeS5wb2ludGluZy5tZW51IC5kcm9wZG93bi5pdGVtOmFjdGl2ZSxcbi51aS5zZWNvbmRhcnkucG9pbnRpbmcubWVudSAubGluay5pdGVtOmFjdGl2ZSxcbi51aS5zZWNvbmRhcnkucG9pbnRpbmcubWVudSBhLml0ZW06YWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgzNCwgMzYsIDM4LCAwLjE1KTtcbn1cbi8qIEFjdGl2ZSAqL1xuLnVpLnNlY29uZGFyeS5wb2ludGluZy5tZW51IC5hY3RpdmUuaXRlbSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3gtc2hhZG93OiBub25lO1xuICBib3JkZXItY29sb3I6ICMwMDAwMDA7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjk1KTtcbn1cbi8qIEFjdGl2ZSBIb3ZlciAqL1xuLnVpLnNlY29uZGFyeS5wb2ludGluZy5tZW51IC5hY3RpdmUuaXRlbTpob3ZlciB7XG4gIGJvcmRlci1jb2xvcjogIzAwMDAwMDtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC45NSk7XG59XG4vKiBBY3RpdmUgRHJvcGRvd24gKi9cbi51aS5zZWNvbmRhcnkucG9pbnRpbmcubWVudSAuYWN0aXZlLmRyb3Bkb3duLml0ZW0ge1xuICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xufVxuLyogVmVydGljYWwgUG9pbnRpbmcgKi9cbi51aS5zZWNvbmRhcnkudmVydGljYWwucG9pbnRpbmcubWVudSB7XG4gIGJvcmRlci1ib3R0b20td2lkdGg6IDBweDtcbiAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAycHg7XG4gIGJvcmRlci1yaWdodC1zdHlsZTogc29saWQ7XG4gIGJvcmRlci1yaWdodC1jb2xvcjogcmdiYSgzNCwgMzYsIDM4LCAwLjE1KTtcbn1cbi51aS5zZWNvbmRhcnkudmVydGljYWwucG9pbnRpbmcubWVudSAuaXRlbSB7XG4gIGJvcmRlci1ib3R0b206IG5vbmU7XG4gIGJvcmRlci1yaWdodC1zdHlsZTogc29saWQ7XG4gIGJvcmRlci1yaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDBlbSAhaW1wb3J0YW50O1xuICBtYXJnaW46IDBlbSAtMnB4IDBlbSAwZW07XG4gIGJvcmRlci1yaWdodC13aWR0aDogMnB4O1xufVxuLyogVmVydGljYWwgQWN0aXZlICovXG4udWkuc2Vjb25kYXJ5LnZlcnRpY2FsLnBvaW50aW5nLm1lbnUgLmFjdGl2ZS5pdGVtIHtcbiAgYm9yZGVyLWNvbG9yOiAjMDAwMDAwO1xufVxuLyogSW52ZXJ0ZWQgKi9cbi51aS5zZWNvbmRhcnkuaW52ZXJ0ZWQucG9pbnRpbmcubWVudSB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpO1xufVxuLnVpLnNlY29uZGFyeS5pbnZlcnRlZC5wb2ludGluZy5tZW51IHtcbiAgYm9yZGVyLXdpZHRoOiAycHg7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgzNCwgMzYsIDM4LCAwLjE1KTtcbn1cbi51aS5zZWNvbmRhcnkuaW52ZXJ0ZWQucG9pbnRpbmcubWVudSAuaXRlbSB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOSk7XG59XG4udWkuc2Vjb25kYXJ5LmludmVydGVkLnBvaW50aW5nLm1lbnUgLmhlYWRlci5pdGVtIHtcbiAgY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcbn1cbi8qIEhvdmVyICovXG4udWkuc2Vjb25kYXJ5LmludmVydGVkLnBvaW50aW5nLm1lbnUgLmxpbmsuaXRlbTpob3Zlcixcbi51aS5zZWNvbmRhcnkuaW52ZXJ0ZWQucG9pbnRpbmcubWVudSBhLml0ZW06aG92ZXIge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjk1KTtcbn1cbi8qIEFjdGl2ZSAqL1xuLnVpLnNlY29uZGFyeS5pbnZlcnRlZC5wb2ludGluZy5tZW51IC5hY3RpdmUuaXRlbSB7XG4gIGJvcmRlci1jb2xvcjogI2ZmZmZmZjtcbiAgY29sb3I6ICNmZmZmZmY7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgVGV4dCBNZW51XG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLnRleHQubWVudSB7XG4gIGJhY2tncm91bmQ6IG5vbmUgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDBweDtcbiAgYm94LXNoYWRvdzogbm9uZTtcbiAgYm9yZGVyOiBub25lO1xuICBtYXJnaW46IDFlbSAtMC43ZW07XG59XG4udWkudGV4dC5tZW51IC5pdGVtIHtcbiAgYm9yZGVyLXJhZGl1czogMHB4O1xuICBib3gtc2hhZG93OiBub25lO1xuICBhbGlnbi1zZWxmOiBjZW50ZXI7XG4gIG1hcmdpbjogMGVtIDBlbTtcbiAgcGFkZGluZzogMC41ZW0gMC43ZW07XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNik7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4xcyBlYXNlO1xufVxuLyogQm9yZGVyICovXG4udWkudGV4dC5tZW51IC5pdGVtOmJlZm9yZSxcbi51aS50ZXh0Lm1lbnUgLm1lbnUgLml0ZW06YmVmb3JlIHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xufVxuLyogSGVhZGVyICovXG4udWkudGV4dC5tZW51IC5oZWFkZXIuaXRlbSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBvcGFjaXR5OiAxO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg1KTtcbiAgZm9udC1zaXplOiAwLjllbTtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG4vKiBJbWFnZSAqL1xuLnVpLnRleHQubWVudSAuaXRlbSA+IGltZzpub3QoLnVpKSB7XG4gIG1hcmdpbjogMGVtO1xufVxuLyotLS0gZmx1aWQgdGV4dCAtLS0qL1xuLnVpLnRleHQuaXRlbS5tZW51IC5pdGVtIHtcbiAgbWFyZ2luOiAwZW07XG59XG4vKi0tLSB2ZXJ0aWNhbCB0ZXh0IC0tLSovXG4udWkudmVydGljYWwudGV4dC5tZW51IHtcbiAgbWFyZ2luOiAxZW0gMGVtO1xufVxuLnVpLnZlcnRpY2FsLnRleHQubWVudTpmaXJzdC1jaGlsZCB7XG4gIG1hcmdpbi10b3A6IDByZW07XG59XG4udWkudmVydGljYWwudGV4dC5tZW51Omxhc3QtY2hpbGQge1xuICBtYXJnaW4tYm90dG9tOiAwcmVtO1xufVxuLnVpLnZlcnRpY2FsLnRleHQubWVudSAuaXRlbSB7XG4gIG1hcmdpbjogMC44ZW0gMGVtO1xuICBwYWRkaW5nLWxlZnQ6IDBlbTtcbiAgcGFkZGluZy1yaWdodDogMGVtO1xufVxuLnVpLnZlcnRpY2FsLnRleHQubWVudSAuaXRlbSA+IGkuaWNvbiB7XG4gIGZsb2F0OiBub25lO1xuICBtYXJnaW46IDBlbSAwLjVlbSAwZW0gMGVtO1xufVxuLnVpLnZlcnRpY2FsLnRleHQubWVudSAuaGVhZGVyLml0ZW0ge1xuICBtYXJnaW46IDAuOGVtIDBlbSAxZW07XG59XG4vKiBWZXJ0aWNhbCBTdWIgTWVudSAqL1xuLnVpLnZlcnRpY2FsLnRleHQubWVudSAuaXRlbTpub3QoLmRyb3Bkb3duKSA+IC5tZW51IHtcbiAgbWFyZ2luOiAwZW07XG59XG4udWkudmVydGljYWwudGV4dC5tZW51IC5pdGVtOm5vdCguZHJvcGRvd24pID4gLm1lbnUgPiAuaXRlbSB7XG4gIG1hcmdpbjogMGVtO1xuICBwYWRkaW5nOiAwLjdlbSAwZW07XG59XG4vKi0tLSBob3ZlciAtLS0qL1xuLnVpLnRleHQubWVudSAuaXRlbTpob3ZlciB7XG4gIG9wYWNpdHk6IDE7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuLyotLS0gYWN0aXZlIC0tLSovXG4udWkudGV4dC5tZW51IC5hY3RpdmUuaXRlbSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3JkZXI6IG5vbmU7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuOTUpO1xufVxuLyotLS0gYWN0aXZlIGhvdmVyIC0tLSovXG4udWkudGV4dC5tZW51IC5hY3RpdmUuaXRlbTpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuLyogRGlzYWJsZSBCYXJpYXRpb25zICovXG4udWkudGV4dC5wb2ludGluZy5tZW51IC5hY3RpdmUuaXRlbTphZnRlciB7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG59XG4udWkudGV4dC5hdHRhY2hlZC5tZW51IHtcbiAgYm94LXNoYWRvdzogbm9uZTtcbn1cbi8qIEludmVydGVkICovXG4udWkuaW52ZXJ0ZWQudGV4dC5tZW51LFxuLnVpLmludmVydGVkLnRleHQubWVudSAuaXRlbSxcbi51aS5pbnZlcnRlZC50ZXh0Lm1lbnUgLml0ZW06aG92ZXIsXG4udWkuaW52ZXJ0ZWQudGV4dC5tZW51IC5hY3RpdmUuaXRlbSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG59XG4vKiBGbHVpZCAqL1xuLnVpLmZsdWlkLnRleHQubWVudSB7XG4gIG1hcmdpbi1sZWZ0OiAwZW07XG4gIG1hcmdpbi1yaWdodDogMGVtO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgIEljb24gT25seVxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFZlcnRpY2FsIE1lbnUgKi9cbi51aS52ZXJ0aWNhbC5pY29uLm1lbnUge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiBhdXRvO1xufVxuLyogSXRlbSAqL1xuLnVpLmljb24ubWVudSAuaXRlbSB7XG4gIGhlaWdodDogYXV0bztcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBjb2xvcjogIzAwMDAwMDtcbn1cbi8qIEljb24gKi9cbi51aS5pY29uLm1lbnUgLml0ZW0gPiAuaWNvbjpub3QoLmRyb3Bkb3duKSB7XG4gIG1hcmdpbjogMDtcbiAgb3BhY2l0eTogMTtcbn1cbi8qIEljb24gR3lscGggKi9cbi51aS5pY29uLm1lbnUgLmljb246YmVmb3JlIHtcbiAgb3BhY2l0eTogMTtcbn1cbi8qICh4KSBJdGVtIEljb24gKi9cbi51aS5tZW51IC5pY29uLml0ZW0gPiAuaWNvbiB7XG4gIHdpZHRoOiBhdXRvO1xuICBtYXJnaW46IDBlbSBhdXRvO1xufVxuLyogVmVydGljYWwgSWNvbiAqL1xuLnVpLnZlcnRpY2FsLmljb24ubWVudSAuaXRlbSA+IC5pY29uOm5vdCguZHJvcGRvd24pIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG9wYWNpdHk6IDE7XG4gIG1hcmdpbjogMGVtIGF1dG87XG4gIGZsb2F0OiBub25lO1xufVxuLyogSW52ZXJ0ZWQgKi9cbi51aS5pbnZlcnRlZC5pY29uLm1lbnUgLml0ZW0ge1xuICBjb2xvcjogI2ZmZmZmZjtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIExhYmVsZWQgSWNvblxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1lbnUgKi9cbi51aS5sYWJlbGVkLmljb24ubWVudSB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi8qIEl0ZW0gKi9cbi51aS5sYWJlbGVkLmljb24ubWVudSAuaXRlbSB7XG4gIG1pbi13aWR0aDogNmVtO1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xufVxuLyogSWNvbiAqL1xuLnVpLmxhYmVsZWQuaWNvbi5tZW51IC5pdGVtID4gLmljb246bm90KC5kcm9wZG93bikge1xuICBoZWlnaHQ6IDFlbTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZvbnQtc2l6ZTogMS43ZW0gIWltcG9ydGFudDtcbiAgbWFyZ2luOiAwZW0gYXV0byAwLjVyZW0gIWltcG9ydGFudDtcbn1cbi8qIEZsdWlkICovXG4udWkuZmx1aWQubGFiZWxlZC5pY29uLm1lbnUgPiAuaXRlbSB7XG4gIG1pbi13aWR0aDogMGVtO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgVmFyaWF0aW9uc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBTdGFja2FibGVcbi0tLS0tLS0tLS0tLS0tLSovXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC51aS5zdGFja2FibGUubWVudSB7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgfVxuICAudWkuc3RhY2thYmxlLm1lbnUgLml0ZW0ge1xuICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLnN0YWNrYWJsZS5tZW51IC5pdGVtOmJlZm9yZSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIHRvcDogYXV0bztcbiAgICBib3R0b206IDBweDtcbiAgICBsZWZ0OiAwcHg7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxcHg7XG4gICAgYmFja2dyb3VuZDogcmdiYSgzNCwgMzYsIDM4LCAwLjEpO1xuICB9XG4gIC51aS5zdGFja2FibGUubWVudSAubGVmdC5tZW51LFxuICAudWkuc3RhY2thYmxlLm1lbnUgLmxlZnQuaXRlbSB7XG4gICAgbWFyZ2luLXJpZ2h0OiAwICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLnN0YWNrYWJsZS5tZW51IC5yaWdodC5tZW51LFxuICAudWkuc3RhY2thYmxlLm1lbnUgLnJpZ2h0Lml0ZW0ge1xuICAgIG1hcmdpbi1sZWZ0OiAwICFpbXBvcnRhbnQ7XG4gIH1cbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gU3RhbmRhcmQgQ29sb3JzICAtLS0qL1xuLnVpLm1lbnUgLnJlZC5hY3RpdmUuaXRlbSxcbi51aS5yZWQubWVudSAuYWN0aXZlLml0ZW0ge1xuICBib3JkZXItY29sb3I6ICNkZTNhM2UgIWltcG9ydGFudDtcbiAgY29sb3I6ICNkZTNhM2UgIWltcG9ydGFudDtcbn1cbi51aS5tZW51IC5vcmFuZ2UuYWN0aXZlLml0ZW0sXG4udWkub3JhbmdlLm1lbnUgLmFjdGl2ZS5pdGVtIHtcbiAgYm9yZGVyLWNvbG9yOiAjZmY5NTMzICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjZmY5NTMzICFpbXBvcnRhbnQ7XG59XG4udWkubWVudSAueWVsbG93LmFjdGl2ZS5pdGVtLFxuLnVpLnllbGxvdy5tZW51IC5hY3RpdmUuaXRlbSB7XG4gIGJvcmRlci1jb2xvcjogI0ZCQkQwOCAhaW1wb3J0YW50O1xuICBjb2xvcjogI0ZCQkQwOCAhaW1wb3J0YW50O1xufVxuLnVpLm1lbnUgLm9saXZlLmFjdGl2ZS5pdGVtLFxuLnVpLm9saXZlLm1lbnUgLmFjdGl2ZS5pdGVtIHtcbiAgYm9yZGVyLWNvbG9yOiAjQjVDQzE4ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjQjVDQzE4ICFpbXBvcnRhbnQ7XG59XG4udWkubWVudSAuZ3JlZW4uYWN0aXZlLml0ZW0sXG4udWkuZ3JlZW4ubWVudSAuYWN0aXZlLml0ZW0ge1xuICBib3JkZXItY29sb3I6ICMxOWE1MzEgIWltcG9ydGFudDtcbiAgY29sb3I6ICMxOWE1MzEgIWltcG9ydGFudDtcbn1cbi51aS5tZW51IC50ZWFsLmFjdGl2ZS5pdGVtLFxuLnVpLnRlYWwubWVudSAuYWN0aXZlLml0ZW0ge1xuICBib3JkZXItY29sb3I6ICMwMEI1QUQgIWltcG9ydGFudDtcbiAgY29sb3I6ICMwMEI1QUQgIWltcG9ydGFudDtcbn1cbi51aS5tZW51IC5ibHVlLmFjdGl2ZS5pdGVtLFxuLnVpLmJsdWUubWVudSAuYWN0aXZlLml0ZW0ge1xuICBib3JkZXItY29sb3I6ICMzZjUxYjUgIWltcG9ydGFudDtcbiAgY29sb3I6ICMzZjUxYjUgIWltcG9ydGFudDtcbn1cbi51aS5tZW51IC52aW9sZXQuYWN0aXZlLml0ZW0sXG4udWkudmlvbGV0Lm1lbnUgLmFjdGl2ZS5pdGVtIHtcbiAgYm9yZGVyLWNvbG9yOiAjNjQzNUM5ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjNjQzNUM5ICFpbXBvcnRhbnQ7XG59XG4udWkubWVudSAucHVycGxlLmFjdGl2ZS5pdGVtLFxuLnVpLnB1cnBsZS5tZW51IC5hY3RpdmUuaXRlbSB7XG4gIGJvcmRlci1jb2xvcjogI0EzMzNDOCAhaW1wb3J0YW50O1xuICBjb2xvcjogI0EzMzNDOCAhaW1wb3J0YW50O1xufVxuLnVpLm1lbnUgLnBpbmsuYWN0aXZlLml0ZW0sXG4udWkucGluay5tZW51IC5hY3RpdmUuaXRlbSB7XG4gIGJvcmRlci1jb2xvcjogI0UwMzk5NyAhaW1wb3J0YW50O1xuICBjb2xvcjogI0UwMzk5NyAhaW1wb3J0YW50O1xufVxuLnVpLm1lbnUgLmJyb3duLmFjdGl2ZS5pdGVtLFxuLnVpLmJyb3duLm1lbnUgLmFjdGl2ZS5pdGVtIHtcbiAgYm9yZGVyLWNvbG9yOiAjQTU2NzNGICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjQTU2NzNGICFpbXBvcnRhbnQ7XG59XG4udWkubWVudSAuZ3JleS5hY3RpdmUuaXRlbSxcbi51aS5ncmV5Lm1lbnUgLmFjdGl2ZS5pdGVtIHtcbiAgYm9yZGVyLWNvbG9yOiAjNzY3Njc2ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjNzY3Njc2ICFpbXBvcnRhbnQ7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgSW52ZXJ0ZWRcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuaW52ZXJ0ZWQubWVudSB7XG4gIGJvcmRlcjogMHB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBiYWNrZ3JvdW5kOiAjMDAwMDAwO1xuICBib3gtc2hhZG93OiBub25lO1xufVxuLyogTWVudSBJdGVtICovXG4udWkuaW52ZXJ0ZWQubWVudSAuaXRlbSxcbi51aS5pbnZlcnRlZC5tZW51IC5pdGVtID4gYTpub3QoLnVpKSB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjkpO1xufVxuLnVpLmludmVydGVkLm1lbnUgLml0ZW0ubWVudSB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xufVxuLyotLS0gQm9yZGVyIC0tLSovXG4udWkuaW52ZXJ0ZWQubWVudSAuaXRlbTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDgpO1xufVxuLnVpLnZlcnRpY2FsLmludmVydGVkLm1lbnUgLml0ZW06YmVmb3JlIHtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA4KTtcbn1cbi8qIFN1YiBNZW51ICovXG4udWkudmVydGljYWwuaW52ZXJ0ZWQubWVudSAubWVudSAuaXRlbSxcbi51aS52ZXJ0aWNhbC5pbnZlcnRlZC5tZW51IC5tZW51IC5pdGVtIGE6bm90KC51aSkge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpO1xufVxuLyogSGVhZGVyICovXG4udWkuaW52ZXJ0ZWQubWVudSAuaGVhZGVyLml0ZW0ge1xuICBtYXJnaW46IDBlbTtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG59XG4vKiBEaXNhYmxlZCAqL1xuLnVpLmludmVydGVkLm1lbnUgLml0ZW0uZGlzYWJsZWQsXG4udWkuaW52ZXJ0ZWQubWVudSAuaXRlbS5kaXNhYmxlZDpob3ZlciB7XG4gIGNvbG9yOiByZ2JhKDIyNSwgMjI1LCAyMjUsIDAuMyk7XG59XG4vKi0tLSBIb3ZlciAtLS0qL1xuLnVpLmxpbmsuaW52ZXJ0ZWQubWVudSAuaXRlbTpob3Zlcixcbi51aS5pbnZlcnRlZC5tZW51IC5kcm9wZG93bi5pdGVtOmhvdmVyLFxuLnVpLmludmVydGVkLm1lbnUgLmxpbmsuaXRlbTpob3Zlcixcbi51aS5pbnZlcnRlZC5tZW51IGEuaXRlbTpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wOCk7XG4gIGNvbG9yOiAjZmZmZmZmO1xufVxuLnVpLnZlcnRpY2FsLmludmVydGVkLm1lbnUgLml0ZW0gLm1lbnUgYS5pdGVtOmhvdmVyLFxuLnVpLnZlcnRpY2FsLmludmVydGVkLm1lbnUgLml0ZW0gLm1lbnUgLmxpbmsuaXRlbTpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBjb2xvcjogI2ZmZmZmZjtcbn1cbi8qLS0tIFByZXNzZWQgLS0tKi9cbi51aS5pbnZlcnRlZC5tZW51IGEuaXRlbTphY3RpdmUsXG4udWkuaW52ZXJ0ZWQubWVudSAubGluay5pdGVtOmFjdGl2ZSB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wOCk7XG4gIGNvbG9yOiAjZmZmZmZmO1xufVxuLyotLS0gQWN0aXZlIC0tLSovXG4udWkuaW52ZXJ0ZWQubWVudSAuYWN0aXZlLml0ZW0ge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpO1xuICBjb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xufVxuLnVpLmludmVydGVkLnZlcnRpY2FsLm1lbnUgLml0ZW0gLm1lbnUgLmFjdGl2ZS5pdGVtIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiAjZmZmZmZmO1xufVxuLnVpLmludmVydGVkLnBvaW50aW5nLm1lbnUgLmFjdGl2ZS5pdGVtOmFmdGVyIHtcbiAgYmFja2dyb3VuZDogIzNEM0UzRiAhaW1wb3J0YW50O1xuICBtYXJnaW46IDBlbSAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gIGJvcmRlcjogbm9uZSAhaW1wb3J0YW50O1xufVxuLyotLS0gQWN0aXZlIEhvdmVyIC0tLSovXG4udWkuaW52ZXJ0ZWQubWVudSAuYWN0aXZlLml0ZW06aG92ZXIge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpO1xuICBjb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xufVxuLnVpLmludmVydGVkLnBvaW50aW5nLm1lbnUgLmFjdGl2ZS5pdGVtOmhvdmVyOmFmdGVyIHtcbiAgYmFja2dyb3VuZDogIzNEM0UzRiAhaW1wb3J0YW50O1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBGbG9hdGVkXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmZsb2F0ZWQubWVudSB7XG4gIGZsb2F0OiBsZWZ0O1xuICBtYXJnaW46IDByZW0gMC41cmVtIDByZW0gMHJlbTtcbn1cbi51aS5mbG9hdGVkLm1lbnUgLml0ZW06bGFzdC1jaGlsZDpiZWZvcmUge1xuICBkaXNwbGF5OiBub25lO1xufVxuLnVpLnJpZ2h0LmZsb2F0ZWQubWVudSB7XG4gIGZsb2F0OiByaWdodDtcbiAgbWFyZ2luOiAwcmVtIDByZW0gMHJlbSAwLjVyZW07XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgSW52ZXJ0ZWRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBSZWQgKi9cbi51aS5pbnZlcnRlZC5tZW51IC5yZWQuYWN0aXZlLml0ZW0sXG4udWkuaW52ZXJ0ZWQucmVkLm1lbnUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGUzYTNlO1xufVxuLnVpLmludmVydGVkLnJlZC5tZW51IC5pdGVtOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMzQsIDM2LCAzOCwgMC4xKTtcbn1cbi51aS5pbnZlcnRlZC5yZWQubWVudSAuYWN0aXZlLml0ZW0ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMSkgIWltcG9ydGFudDtcbn1cbi8qIE9yYW5nZSAqL1xuLnVpLmludmVydGVkLm1lbnUgLm9yYW5nZS5hY3RpdmUuaXRlbSxcbi51aS5pbnZlcnRlZC5vcmFuZ2UubWVudSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZjk1MzM7XG59XG4udWkuaW52ZXJ0ZWQub3JhbmdlLm1lbnUgLml0ZW06YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgzNCwgMzYsIDM4LCAwLjEpO1xufVxuLnVpLmludmVydGVkLm9yYW5nZS5tZW51IC5hY3RpdmUuaXRlbSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xKSAhaW1wb3J0YW50O1xufVxuLyogWWVsbG93ICovXG4udWkuaW52ZXJ0ZWQubWVudSAueWVsbG93LmFjdGl2ZS5pdGVtLFxuLnVpLmludmVydGVkLnllbGxvdy5tZW51IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0ZCQkQwODtcbn1cbi51aS5pbnZlcnRlZC55ZWxsb3cubWVudSAuaXRlbTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDM0LCAzNiwgMzgsIDAuMSk7XG59XG4udWkuaW52ZXJ0ZWQueWVsbG93Lm1lbnUgLmFjdGl2ZS5pdGVtIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjEpICFpbXBvcnRhbnQ7XG59XG4vKiBPbGl2ZSAqL1xuLnVpLmludmVydGVkLm1lbnUgLm9saXZlLmFjdGl2ZS5pdGVtLFxuLnVpLmludmVydGVkLm9saXZlLm1lbnUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjQjVDQzE4O1xufVxuLnVpLmludmVydGVkLm9saXZlLm1lbnUgLml0ZW06YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgzNCwgMzYsIDM4LCAwLjEpO1xufVxuLnVpLmludmVydGVkLm9saXZlLm1lbnUgLmFjdGl2ZS5pdGVtIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjEpICFpbXBvcnRhbnQ7XG59XG4vKiBHcmVlbiAqL1xuLnVpLmludmVydGVkLm1lbnUgLmdyZWVuLmFjdGl2ZS5pdGVtLFxuLnVpLmludmVydGVkLmdyZWVuLm1lbnUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTlhNTMxO1xufVxuLnVpLmludmVydGVkLmdyZWVuLm1lbnUgLml0ZW06YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgzNCwgMzYsIDM4LCAwLjEpO1xufVxuLnVpLmludmVydGVkLmdyZWVuLm1lbnUgLmFjdGl2ZS5pdGVtIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjEpICFpbXBvcnRhbnQ7XG59XG4vKiBUZWFsICovXG4udWkuaW52ZXJ0ZWQubWVudSAudGVhbC5hY3RpdmUuaXRlbSxcbi51aS5pbnZlcnRlZC50ZWFsLm1lbnUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDBCNUFEO1xufVxuLnVpLmludmVydGVkLnRlYWwubWVudSAuaXRlbTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDM0LCAzNiwgMzgsIDAuMSk7XG59XG4udWkuaW52ZXJ0ZWQudGVhbC5tZW51IC5hY3RpdmUuaXRlbSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xKSAhaW1wb3J0YW50O1xufVxuLyogQmx1ZSAqL1xuLnVpLmludmVydGVkLm1lbnUgLmJsdWUuYWN0aXZlLml0ZW0sXG4udWkuaW52ZXJ0ZWQuYmx1ZS5tZW51IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzNmNTFiNTtcbn1cbi51aS5pbnZlcnRlZC5ibHVlLm1lbnUgLml0ZW06YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgzNCwgMzYsIDM4LCAwLjEpO1xufVxuLnVpLmludmVydGVkLmJsdWUubWVudSAuYWN0aXZlLml0ZW0ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMSkgIWltcG9ydGFudDtcbn1cbi8qIFZpb2xldCAqL1xuLnVpLmludmVydGVkLm1lbnUgLnZpb2xldC5hY3RpdmUuaXRlbSxcbi51aS5pbnZlcnRlZC52aW9sZXQubWVudSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM2NDM1Qzk7XG59XG4udWkuaW52ZXJ0ZWQudmlvbGV0Lm1lbnUgLml0ZW06YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgzNCwgMzYsIDM4LCAwLjEpO1xufVxuLnVpLmludmVydGVkLnZpb2xldC5tZW51IC5hY3RpdmUuaXRlbSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xKSAhaW1wb3J0YW50O1xufVxuLyogUHVycGxlICovXG4udWkuaW52ZXJ0ZWQubWVudSAucHVycGxlLmFjdGl2ZS5pdGVtLFxuLnVpLmludmVydGVkLnB1cnBsZS5tZW51IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0EzMzNDODtcbn1cbi51aS5pbnZlcnRlZC5wdXJwbGUubWVudSAuaXRlbTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDM0LCAzNiwgMzgsIDAuMSk7XG59XG4udWkuaW52ZXJ0ZWQucHVycGxlLm1lbnUgLmFjdGl2ZS5pdGVtIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjEpICFpbXBvcnRhbnQ7XG59XG4vKiBQaW5rICovXG4udWkuaW52ZXJ0ZWQubWVudSAucGluay5hY3RpdmUuaXRlbSxcbi51aS5pbnZlcnRlZC5waW5rLm1lbnUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRTAzOTk3O1xufVxuLnVpLmludmVydGVkLnBpbmsubWVudSAuaXRlbTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDM0LCAzNiwgMzgsIDAuMSk7XG59XG4udWkuaW52ZXJ0ZWQucGluay5tZW51IC5hY3RpdmUuaXRlbSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xKSAhaW1wb3J0YW50O1xufVxuLyogQnJvd24gKi9cbi51aS5pbnZlcnRlZC5tZW51IC5icm93bi5hY3RpdmUuaXRlbSxcbi51aS5pbnZlcnRlZC5icm93bi5tZW51IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0E1NjczRjtcbn1cbi51aS5pbnZlcnRlZC5icm93bi5tZW51IC5pdGVtOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMzQsIDM2LCAzOCwgMC4xKTtcbn1cbi51aS5pbnZlcnRlZC5icm93bi5tZW51IC5hY3RpdmUuaXRlbSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xKSAhaW1wb3J0YW50O1xufVxuLyogR3JleSAqL1xuLnVpLmludmVydGVkLm1lbnUgLmdyZXkuYWN0aXZlLml0ZW0sXG4udWkuaW52ZXJ0ZWQuZ3JleS5tZW51IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzc2NzY3Njtcbn1cbi51aS5pbnZlcnRlZC5ncmV5Lm1lbnUgLml0ZW06YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgzNCwgMzYsIDM4LCAwLjEpO1xufVxuLnVpLmludmVydGVkLmdyZXkubWVudSAuYWN0aXZlLml0ZW0ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMSkgIWltcG9ydGFudDtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgRml0dGVkXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmZpdHRlZC5tZW51IC5pdGVtLFxuLnVpLmZpdHRlZC5tZW51IC5pdGVtIC5tZW51IC5pdGVtLFxuLnVpLm1lbnUgLmZpdHRlZC5pdGVtIHtcbiAgcGFkZGluZzogMGVtO1xufVxuLnVpLmhvcml6b250YWxseS5maXR0ZWQubWVudSAuaXRlbSxcbi51aS5ob3Jpem9udGFsbHkuZml0dGVkLm1lbnUgLml0ZW0gLm1lbnUgLml0ZW0sXG4udWkubWVudSAuaG9yaXpvbnRhbGx5LmZpdHRlZC5pdGVtIHtcbiAgcGFkZGluZy10b3A6IDAuOWVtO1xuICBwYWRkaW5nLWJvdHRvbTogMC45ZW07XG59XG4udWkudmVydGljYWxseS5maXR0ZWQubWVudSAuaXRlbSxcbi51aS52ZXJ0aWNhbGx5LmZpdHRlZC5tZW51IC5pdGVtIC5tZW51IC5pdGVtLFxuLnVpLm1lbnUgLnZlcnRpY2FsbHkuZml0dGVkLml0ZW0ge1xuICBwYWRkaW5nLWxlZnQ6IDEuMWVtO1xuICBwYWRkaW5nLXJpZ2h0OiAxLjFlbTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEJvcmRlcmxlc3Ncbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuYm9yZGVybGVzcy5tZW51IC5pdGVtOmJlZm9yZSxcbi51aS5ib3JkZXJsZXNzLm1lbnUgLml0ZW0gLm1lbnUgLml0ZW06YmVmb3JlLFxuLnVpLm1lbnUgLmJvcmRlcmxlc3MuaXRlbTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kOiBub25lICFpbXBvcnRhbnQ7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBDb21wYWN0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkuY29tcGFjdC5tZW51IHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIG1hcmdpbjogMGVtO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuLnVpLmNvbXBhY3QudmVydGljYWwubWVudSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cbi51aS5jb21wYWN0Lm1lbnUgLml0ZW06bGFzdC1jaGlsZCB7XG4gIGJvcmRlci1yYWRpdXM6IDBlbSAwLjRyZW0gMC40cmVtIDBlbTtcbn1cbi51aS5jb21wYWN0Lm1lbnUgLml0ZW06bGFzdC1jaGlsZDpiZWZvcmUge1xuICBkaXNwbGF5OiBub25lO1xufVxuLnVpLmNvbXBhY3QudmVydGljYWwubWVudSB7XG4gIHdpZHRoOiBhdXRvICFpbXBvcnRhbnQ7XG59XG4udWkuY29tcGFjdC52ZXJ0aWNhbC5tZW51IC5pdGVtOmxhc3QtY2hpbGQ6OmJlZm9yZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZsdWlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkubWVudS5mbHVpZCxcbi51aS52ZXJ0aWNhbC5tZW51LmZsdWlkIHtcbiAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRXZlbmx5IFNpemVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkuaXRlbS5tZW51LFxuLnVpLml0ZW0ubWVudSAuaXRlbSB7XG4gIHdpZHRoOiAxMDAlO1xuICBwYWRkaW5nLWxlZnQ6IDBlbSAhaW1wb3J0YW50O1xuICBwYWRkaW5nLXJpZ2h0OiAwZW0gIWltcG9ydGFudDtcbiAgbWFyZ2luLWxlZnQ6IDBlbSAhaW1wb3J0YW50O1xuICBtYXJnaW4tcmlnaHQ6IDBlbSAhaW1wb3J0YW50O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxuLnVpLml0ZW0ubWVudSAuaXRlbTpsYXN0LWNoaWxkOmJlZm9yZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4udWkubWVudS50d28uaXRlbSAuaXRlbSB7XG4gIHdpZHRoOiA1MCU7XG59XG4udWkubWVudS50aHJlZS5pdGVtIC5pdGVtIHtcbiAgd2lkdGg6IDMzLjMzMyU7XG59XG4udWkubWVudS5mb3VyLml0ZW0gLml0ZW0ge1xuICB3aWR0aDogMjUlO1xufVxuLnVpLm1lbnUuZml2ZS5pdGVtIC5pdGVtIHtcbiAgd2lkdGg6IDIwJTtcbn1cbi51aS5tZW51LnNpeC5pdGVtIC5pdGVtIHtcbiAgd2lkdGg6IDE2LjY2NiU7XG59XG4udWkubWVudS5zZXZlbi5pdGVtIC5pdGVtIHtcbiAgd2lkdGg6IDE0LjI4NSU7XG59XG4udWkubWVudS5laWdodC5pdGVtIC5pdGVtIHtcbiAgd2lkdGg6IDEyLjUlO1xufVxuLnVpLm1lbnUubmluZS5pdGVtIC5pdGVtIHtcbiAgd2lkdGg6IDExLjExJTtcbn1cbi51aS5tZW51LnRlbi5pdGVtIC5pdGVtIHtcbiAgd2lkdGg6IDEwJTtcbn1cbi51aS5tZW51LmVsZXZlbi5pdGVtIC5pdGVtIHtcbiAgd2lkdGg6IDkuMDklO1xufVxuLnVpLm1lbnUudHdlbHZlLml0ZW0gLml0ZW0ge1xuICB3aWR0aDogOC4zMzMlO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBGaXhlZFxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5tZW51LmZpeGVkIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB6LWluZGV4OiAxMDE7XG4gIG1hcmdpbjogMGVtO1xuICB3aWR0aDogMTAwJTtcbn1cbi51aS5tZW51LmZpeGVkLFxuLnVpLm1lbnUuZml4ZWQgLml0ZW06Zmlyc3QtY2hpbGQsXG4udWkubWVudS5maXhlZCAuaXRlbTpsYXN0LWNoaWxkIHtcbiAgYm9yZGVyLXJhZGl1czogMHB4ICFpbXBvcnRhbnQ7XG59XG4udWkuZml4ZWQubWVudSxcbi51aVtjbGFzcyo9XCJ0b3AgZml4ZWRcIl0ubWVudSB7XG4gIHRvcDogMHB4O1xuICBsZWZ0OiAwcHg7XG4gIHJpZ2h0OiBhdXRvO1xuICBib3R0b206IGF1dG87XG59XG4udWlbY2xhc3MqPVwidG9wIGZpeGVkXCJdLm1lbnUge1xuICBib3JkZXItdG9wOiBub25lO1xuICBib3JkZXItbGVmdDogbm9uZTtcbiAgYm9yZGVyLXJpZ2h0OiBub25lO1xufVxuLnVpW2NsYXNzKj1cInJpZ2h0IGZpeGVkXCJdLm1lbnUge1xuICBib3JkZXItdG9wOiBub25lO1xuICBib3JkZXItYm90dG9tOiBub25lO1xuICBib3JkZXItcmlnaHQ6IG5vbmU7XG4gIHRvcDogMHB4O1xuICByaWdodDogMHB4O1xuICBsZWZ0OiBhdXRvO1xuICBib3R0b206IGF1dG87XG4gIHdpZHRoOiBhdXRvO1xuICBoZWlnaHQ6IDEwMCU7XG59XG4udWlbY2xhc3MqPVwiYm90dG9tIGZpeGVkXCJdLm1lbnUge1xuICBib3JkZXItYm90dG9tOiBub25lO1xuICBib3JkZXItbGVmdDogbm9uZTtcbiAgYm9yZGVyLXJpZ2h0OiBub25lO1xuICBib3R0b206IDBweDtcbiAgbGVmdDogMHB4O1xuICB0b3A6IGF1dG87XG4gIHJpZ2h0OiBhdXRvO1xufVxuLnVpW2NsYXNzKj1cImxlZnQgZml4ZWRcIl0ubWVudSB7XG4gIGJvcmRlci10b3A6IG5vbmU7XG4gIGJvcmRlci1ib3R0b206IG5vbmU7XG4gIGJvcmRlci1sZWZ0OiBub25lO1xuICB0b3A6IDBweDtcbiAgbGVmdDogMHB4O1xuICByaWdodDogYXV0bztcbiAgYm90dG9tOiBhdXRvO1xuICB3aWR0aDogYXV0bztcbiAgaGVpZ2h0OiAxMDAlO1xufVxuLyogQ291cGxpbmcgd2l0aCBHcmlkICovXG4udWkuZml4ZWQubWVudSArIC51aS5ncmlkIHtcbiAgcGFkZGluZy10b3A6IDIuNzVyZW07XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBQb2ludGluZ1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLnBvaW50aW5nLm1lbnUgLml0ZW06YWZ0ZXIge1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgY29udGVudDogJyc7XG4gIHRvcDogMTAwJTtcbiAgbGVmdDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSkgdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoNDVkZWcpO1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICBtYXJnaW46IDAuNXB4IDBlbSAwZW07XG4gIHdpZHRoOiAwLjhlbTtcbiAgaGVpZ2h0OiAwLjhlbTtcbiAgYm9yZGVyOiBub25lO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI0Q0RDRENTtcbiAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgI0Q0RDRENTtcbiAgei1pbmRleDogMjtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjFzIGVhc2U7XG59XG4udWkudmVydGljYWwucG9pbnRpbmcubWVudSAuaXRlbTphZnRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIHJpZ2h0OiAwJTtcbiAgYm90dG9tOiBhdXRvO1xuICBsZWZ0OiBhdXRvO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoNTAlKSB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSg0NWRlZyk7XG4gIG1hcmdpbjogMGVtIC0wLjVweCAwZW0gMGVtO1xuICBib3JkZXI6IG5vbmU7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAjRDRENEQ1O1xuICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAjRDRENEQ1O1xufVxuLyogQWN0aXZlICovXG4udWkucG9pbnRpbmcubWVudSAuYWN0aXZlLml0ZW06YWZ0ZXIge1xuICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xufVxuLnVpLnBvaW50aW5nLm1lbnUgLmFjdGl2ZS5kcm9wZG93bi5pdGVtOmFmdGVyIHtcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xufVxuLyogRG9uJ3QgZG91YmxlIHVwIHBvaW50ZXJzICovXG4udWkucG9pbnRpbmcubWVudSAuZHJvcGRvd24uYWN0aXZlLml0ZW06YWZ0ZXIsXG4udWkucG9pbnRpbmcubWVudSAuYWN0aXZlLml0ZW0gLm1lbnUgLmFjdGl2ZS5pdGVtOmFmdGVyIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi8qIENvbG9ycyAqL1xuLnVpLnBvaW50aW5nLm1lbnUgLmFjdGl2ZS5pdGVtOmhvdmVyOmFmdGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0YyRjJGMjtcbn1cbi51aS5wb2ludGluZy5tZW51IC5hY3RpdmUuaXRlbTphZnRlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGMkYyRjI7XG59XG4udWkucG9pbnRpbmcubWVudSAuYWN0aXZlLml0ZW06aG92ZXI6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRjJGMkYyO1xufVxuLnVpLnZlcnRpY2FsLnBvaW50aW5nLm1lbnUgLmFjdGl2ZS5pdGVtOmhvdmVyOmFmdGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0YyRjJGMjtcbn1cbi51aS52ZXJ0aWNhbC5wb2ludGluZy5tZW51IC5hY3RpdmUuaXRlbTphZnRlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGMkYyRjI7XG59XG4udWkudmVydGljYWwucG9pbnRpbmcubWVudSAubWVudSAuYWN0aXZlLml0ZW06YWZ0ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgIEF0dGFjaGVkXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWlkZGxlICovXG4udWkuYXR0YWNoZWQubWVudSB7XG4gIHRvcDogMHB4O1xuICBib3R0b206IDBweDtcbiAgYm9yZGVyLXJhZGl1czogMHB4O1xuICBtYXJnaW46IDBlbSAtMXB4O1xuICB3aWR0aDogY2FsYygxMDAlICsgMnB4KTtcbiAgbWF4LXdpZHRoOiBjYWxjKDEwMCUgKyAycHgpO1xuICBib3gtc2hhZG93OiBub25lO1xufVxuLnVpLmF0dGFjaGVkICsgLnVpLmF0dGFjaGVkLm1lbnU6bm90KC50b3ApIHtcbiAgYm9yZGVyLXRvcDogbm9uZTtcbn1cbi8qIFRvcCAqL1xuLnVpW2NsYXNzKj1cInRvcCBhdHRhY2hlZFwiXS5tZW51IHtcbiAgYm90dG9tOiAwcHg7XG4gIG1hcmdpbi1ib3R0b206IDBlbTtcbiAgdG9wOiAwcHg7XG4gIG1hcmdpbi10b3A6IDFyZW07XG4gIGJvcmRlci1yYWRpdXM6IDAuNHJlbSAwLjRyZW0gMGVtIDBlbTtcbn1cbi51aS5tZW51W2NsYXNzKj1cInRvcCBhdHRhY2hlZFwiXTpmaXJzdC1jaGlsZCB7XG4gIG1hcmdpbi10b3A6IDBlbTtcbn1cbi8qIEJvdHRvbSAqL1xuLnVpW2NsYXNzKj1cImJvdHRvbSBhdHRhY2hlZFwiXS5tZW51IHtcbiAgYm90dG9tOiAwcHg7XG4gIG1hcmdpbi10b3A6IDBlbTtcbiAgdG9wOiAwcHg7XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG4gIGJveC1zaGFkb3c6IDBweCAxcHggMnB4IDAgcmdiYSgzNCwgMzYsIDM4LCAwLjE1KSwgbm9uZTtcbiAgYm9yZGVyLXJhZGl1czogMGVtIDBlbSAwLjRyZW0gMC40cmVtO1xufVxuLnVpW2NsYXNzKj1cImJvdHRvbSBhdHRhY2hlZFwiXS5tZW51Omxhc3QtY2hpbGQge1xuICBtYXJnaW4tYm90dG9tOiAwZW07XG59XG4vKiBBdHRhY2hlZCBNZW51IEl0ZW0gKi9cbi51aS50b3AuYXR0YWNoZWQubWVudSA+IC5pdGVtOmZpcnN0LWNoaWxkIHtcbiAgYm9yZGVyLXJhZGl1czogMC40cmVtIDBlbSAwZW0gMGVtO1xufVxuLnVpLmJvdHRvbS5hdHRhY2hlZC5tZW51ID4gLml0ZW06Zmlyc3QtY2hpbGQge1xuICBib3JkZXItcmFkaXVzOiAwZW0gMGVtIDBlbSAwLjRyZW07XG59XG4vKiBUYWJ1bGFyIEF0dGFjaGVkICovXG4udWkuYXR0YWNoZWQubWVudTpub3QoLnRhYnVsYXIpIHtcbiAgYm9yZGVyOiAxcHggc29saWQgI0Q0RDRENTtcbn1cbi51aS5hdHRhY2hlZC5pbnZlcnRlZC5tZW51IHtcbiAgYm9yZGVyOiBub25lO1xufVxuLnVpLmF0dGFjaGVkLnRhYnVsYXIubWVudSB7XG4gIG1hcmdpbi1sZWZ0OiAwO1xuICBtYXJnaW4tcmlnaHQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1pbmkgKi9cbi51aS5taW5pLm1lbnUge1xuICBmb250LXNpemU6IDEuMXJlbTtcbn1cbi51aS5taW5pLnZlcnRpY2FsLm1lbnUge1xuICB3aWR0aDogOXJlbTtcbn1cbi8qIFRpbnkgKi9cbi51aS50aW55Lm1lbnUge1xuICBmb250LXNpemU6IDEuMnJlbTtcbn1cbi51aS50aW55LnZlcnRpY2FsLm1lbnUge1xuICB3aWR0aDogMTFyZW07XG59XG4vKiBTbWFsbCAqL1xuLnVpLnNtYWxsLm1lbnUge1xuICBmb250LXNpemU6IDEuM3JlbTtcbn1cbi51aS5zbWFsbC52ZXJ0aWNhbC5tZW51IHtcbiAgd2lkdGg6IDEzcmVtO1xufVxuLyogTWVkaXVtICovXG4udWkubWVudSB7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbn1cbi51aS52ZXJ0aWNhbC5tZW51IHtcbiAgd2lkdGg6IDE1cmVtO1xufVxuLyogTGFyZ2UgKi9cbi51aS5sYXJnZS5tZW51IHtcbiAgZm9udC1zaXplOiAxLjVyZW07XG59XG4udWkubGFyZ2UudmVydGljYWwubWVudSB7XG4gIHdpZHRoOiAxOHJlbTtcbn1cbi8qIEh1Z2UgKi9cbi51aS5odWdlLm1lbnUge1xuICBmb250LXNpemU6IDEuNnJlbTtcbn1cbi51aS5odWdlLnZlcnRpY2FsLm1lbnUge1xuICB3aWR0aDogMjByZW07XG59XG4vKiBCaWcgKi9cbi51aS5iaWcubWVudSB7XG4gIGZvbnQtc2l6ZTogMS43cmVtO1xufVxuLnVpLmJpZy52ZXJ0aWNhbC5tZW51IHtcbiAgd2lkdGg6IDIycmVtO1xufVxuLyogTWFzc2l2ZSAqL1xuLnVpLm1hc3NpdmUubWVudSB7XG4gIGZvbnQtc2l6ZTogMS44cmVtO1xufVxuLnVpLm1hc3NpdmUudmVydGljYWwubWVudSB7XG4gIHdpZHRoOiAyNXJlbTtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBUaGVtZSBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiFcbiAqICMgU2VtYW50aWMgVUkgLSBNZXNzYWdlXG4gKiBodHRwOi8vZ2l0aHViLmNvbS9zZW1hbnRpYy1vcmcvc2VtYW50aWMtdWkvXG4gKlxuICpcbiAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZVxuICogaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVFxuICpcbiAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLypcblxu4paI4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWXICDilojilojilZfilojilojilojilojilojilojilojilZfilojilojilojilZcgICDilojilojilojilZfilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZdcbuKVmuKVkOKVkOKWiOKWiOKVlOKVkOKVkOKVneKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWd4paI4paI4paI4paI4pWXIOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVnVxuICAg4paI4paI4pWRICAg4paI4paI4paI4paI4paI4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilZTilojilojilojilojilZTilojilojilZHilojilojilojilojilojilZcgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl1xuICAg4paI4paI4pWRICAg4paI4paI4pWU4pWQ4pWQ4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilojilojilZHilZrilojilojilZTilZ3ilojilojilZHilojilojilZTilZDilZDilZ0gIOKVmuKVkOKVkOKVkOKVkOKWiOKWiOKVkVxuICAg4paI4paI4pWRICAg4paI4paI4pWRICDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilZEg4pWa4pWQ4pWdIOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkVxuICAg4pWa4pWQ4pWdICAg4pWa4pWQ4pWdICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZ0gICAgIOKVmuKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVnVxuXG4qL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgVGhlbWUgU2VsZWN0aW9uXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogVG8gb3ZlcnJpZGUgYSB0aGVtZSBmb3IgYW4gaW5kaXZpZHVhbCBlbGVtZW50XG4gICBzcGVjaWZ5IHRoZW1lIG5hbWUgYmVsb3dcbiovXG4vKiBHbG9iYWwgKi9cbi8qIEVsZW1lbnRzICovXG4vKiBDb2xsZWN0aW9ucyAqL1xuLyogTW9kdWxlcyAqL1xuLyogVmlld3MgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBGb2xkZXJzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogUGF0aCB0byB0aGVtZSBwYWNrYWdlcyAqL1xuLyogUGF0aCB0byBzaXRlIG92ZXJyaWRlIGZvbGRlciAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIEltcG9ydCBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIEltcG9ydCBEaXJlY3RpdmVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBUaGVtZVxuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICBTaXRlIFZhcmlhYmxlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERlZmF1bHQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZG9ycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBQYWNrYWdlZCBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kb3JzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIENvbXBvbmVudCdzIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRvcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogU2l0ZSB0aGVtZSBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgVXNlciBHbG9iYWwgVmFyaWFibGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogbWFyc28gY29sb3JzICovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gQ29tcG9uZW50IFZhcmlhYmxlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERlZmF1bHQgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBNZXNzYWdlXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRWxlbWVudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEhlYWRlciAqL1xuLyogUGFyYWdyYXBoICovXG4vKiBMaXN0ICovXG4vKiBJY29uICovXG4vKiBDbG9zZSBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgVHlwZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEljb24gTWVzc2FnZSAqL1xuLyogQXR0YWNoZWQgKi9cbi8qIEZsb2F0aW5nICovXG4vKiBDb2xvcnMgKi9cbi8qIFdhcm5pbmcgLyBQb3NpdGl2ZSAvIE5lZ2F0aXZlIC8gSW5mbyAqL1xuLyogUGFja2FnZWQgVGhlbWUgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBNZXNzYWdlXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRWxlbWVudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEhlYWRlciAqL1xuLyogUGFyYWdyYXBoICovXG4vKiBMaXN0ICovXG4vKiBJY29uICovXG4vKiBDbG9zZSBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgVHlwZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEljb24gTWVzc2FnZSAqL1xuLyogQXR0YWNoZWQgKi9cbi8qIEZsb2F0aW5nICovXG4vKiBDb2xvcnMgKi9cbi8qIFdhcm5pbmcgLyBQb3NpdGl2ZSAvIE5lZ2F0aXZlIC8gSW5mbyAqL1xuLyogU2l0ZSBUaGVtZSAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICBVc2VyIFZhcmlhYmxlIE92ZXJyaWRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgTWl4LWluc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgT3ZlcnJpZGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEVuZCBDb25maWcgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBNZXNzYWdlXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLnVpLm1lc3NhZ2Uge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1pbi1oZWlnaHQ6IDFlbTtcbiAgbWFyZ2luOiAxZW0gMGVtO1xuICBiYWNrZ3JvdW5kOiAjRjhGOEY5O1xuICBwYWRkaW5nOiAxZW0gMS41ZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjQyODVlbTtcbiAgY29sb3I6ICMzMzMzMzM7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4xcyBlYXNlLCBjb2xvciAwLjFzIGVhc2UsIGJhY2tncm91bmQgMC4xcyBlYXNlLCBib3gtc2hhZG93IDAuMXMgZWFzZTtcbiAgYm9yZGVyLXJhZGl1czogMC40cmVtO1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggcmdiYSgzNCwgMzYsIDM4LCAwLjIyKSBpbnNldCwgMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMCk7XG59XG4udWkubWVzc2FnZTpmaXJzdC1jaGlsZCB7XG4gIG1hcmdpbi10b3A6IDBlbTtcbn1cbi51aS5tZXNzYWdlOmxhc3QtY2hpbGQge1xuICBtYXJnaW4tYm90dG9tOiAwZW07XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIENvbnRlbnRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBIZWFkZXIgKi9cbi51aS5tZXNzYWdlIC5oZWFkZXIge1xuICBkaXNwbGF5OiBibG9jaztcbiAgZm9udC1mYW1pbHk6ICdFeG8gMicsICdMYXRvJywgQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZjtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIG1hcmdpbjogLTAuMTQyODU3MTRlbSAwZW0gMHJlbSAwZW07XG59XG4vKiBEZWZhdWx0IGZvbnQgc2l6ZSAqL1xuLnVpLm1lc3NhZ2UgLmhlYWRlcjpub3QoLnVpKSB7XG4gIGZvbnQtc2l6ZTogMS4xZW07XG59XG4vKiBQYXJhZ3JhcGggKi9cbi51aS5tZXNzYWdlIHAge1xuICBvcGFjaXR5OiAwLjg1O1xuICBtYXJnaW46IDAuNzVlbSAwZW07XG59XG4udWkubWVzc2FnZSBwOmZpcnN0LWNoaWxkIHtcbiAgbWFyZ2luLXRvcDogMGVtO1xufVxuLnVpLm1lc3NhZ2UgcDpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLWJvdHRvbTogMGVtO1xufVxuLnVpLm1lc3NhZ2UgLmhlYWRlciArIHAge1xuICBtYXJnaW4tdG9wOiAwLjI1ZW07XG59XG4vKiBMaXN0ICovXG4udWkubWVzc2FnZSAubGlzdDpub3QoLnVpKSB7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIHBhZGRpbmc6IDBlbTtcbiAgb3BhY2l0eTogMC44NTtcbiAgbGlzdC1zdHlsZS1wb3NpdGlvbjogaW5zaWRlO1xuICBtYXJnaW46IDAuNWVtIDBlbSAwZW07XG59XG4udWkubWVzc2FnZSAubGlzdDpub3QoLnVpKTpmaXJzdC1jaGlsZCB7XG4gIG1hcmdpbi10b3A6IDBlbTtcbn1cbi51aS5tZXNzYWdlIC5saXN0Om5vdCgudWkpOmxhc3QtY2hpbGQge1xuICBtYXJnaW4tYm90dG9tOiAwZW07XG59XG4udWkubWVzc2FnZSAubGlzdDpub3QoLnVpKSBsaSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICBtYXJnaW46IDBlbSAwZW0gMC4zZW0gMWVtO1xuICBwYWRkaW5nOiAwZW07XG59XG4udWkubWVzc2FnZSAubGlzdDpub3QoLnVpKSBsaTpiZWZvcmUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGNvbnRlbnQ6ICfigKInO1xuICBsZWZ0OiAtMWVtO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbn1cbi51aS5tZXNzYWdlIC5saXN0Om5vdCgudWkpIGxpOmxhc3QtY2hpbGQge1xuICBtYXJnaW4tYm90dG9tOiAwZW07XG59XG4vKiBJY29uICovXG4udWkubWVzc2FnZSA+IC5pY29uIHtcbiAgbWFyZ2luLXJpZ2h0OiAwLjZlbTtcbn1cbi8qIENsb3NlIEljb24gKi9cbi51aS5tZXNzYWdlID4gLmNsb3NlLmljb24ge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbWFyZ2luOiAwZW07XG4gIHRvcDogMC43ODU3NWVtO1xuICByaWdodDogMC41ZW07XG4gIG9wYWNpdHk6IDAuNztcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjFzIGVhc2U7XG59XG4udWkubWVzc2FnZSA+IC5jbG9zZS5pY29uOmhvdmVyIHtcbiAgb3BhY2l0eTogMTtcbn1cbi8qIEZpcnN0IC8gTGFzdCBFbGVtZW50ICovXG4udWkubWVzc2FnZSA+IDpmaXJzdC1jaGlsZCB7XG4gIG1hcmdpbi10b3A6IDBlbTtcbn1cbi51aS5tZXNzYWdlID4gOmxhc3QtY2hpbGQge1xuICBtYXJnaW4tYm90dG9tOiAwZW07XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgQ291cGxpbmdcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4udWkuZHJvcGRvd24gLm1lbnUgPiAubWVzc2FnZSB7XG4gIG1hcmdpbjogMHB4IC0xcHg7XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgIFZpc2libGVcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkudmlzaWJsZS52aXNpYmxlLnZpc2libGUudmlzaWJsZS5tZXNzYWdlIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG4udWkuaWNvbi52aXNpYmxlLnZpc2libGUudmlzaWJsZS52aXNpYmxlLm1lc3NhZ2Uge1xuICBkaXNwbGF5OiBmbGV4O1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBIaWRkZW5cbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuaGlkZGVuLmhpZGRlbi5oaWRkZW4uaGlkZGVuLm1lc3NhZ2Uge1xuICBkaXNwbGF5OiBub25lO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFZhcmlhdGlvbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgQ29tcGFjdFxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5jb21wYWN0Lm1lc3NhZ2Uge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgQXR0YWNoZWRcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuYXR0YWNoZWQubWVzc2FnZSB7XG4gIG1hcmdpbi1ib3R0b206IC0xcHg7XG4gIGJvcmRlci1yYWRpdXM6IDAuNHJlbSAwLjRyZW0gMGVtIDBlbTtcbiAgYm94LXNoYWRvdzogMGVtIDBlbSAwZW0gMXB4IHJnYmEoMzQsIDM2LCAzOCwgMC4xNSkgaW5zZXQ7XG4gIG1hcmdpbi1sZWZ0OiAtMXB4O1xuICBtYXJnaW4tcmlnaHQ6IC0xcHg7XG59XG4udWkuYXR0YWNoZWQgKyAudWkuYXR0YWNoZWQubWVzc2FnZTpub3QoLnRvcCk6bm90KC5ib3R0b20pIHtcbiAgbWFyZ2luLXRvcDogLTFweDtcbiAgYm9yZGVyLXJhZGl1czogMGVtO1xufVxuLnVpLmJvdHRvbS5hdHRhY2hlZC5tZXNzYWdlIHtcbiAgbWFyZ2luLXRvcDogLTFweDtcbiAgYm9yZGVyLXJhZGl1czogMGVtIDBlbSAwLjRyZW0gMC40cmVtO1xuICBib3gtc2hhZG93OiAwZW0gMGVtIDBlbSAxcHggcmdiYSgzNCwgMzYsIDM4LCAwLjE1KSBpbnNldCwgMHB4IDFweCAycHggMCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpO1xufVxuLnVpLmJvdHRvbS5hdHRhY2hlZC5tZXNzYWdlOm5vdCg6bGFzdC1jaGlsZCkge1xuICBtYXJnaW4tYm90dG9tOiAxZW07XG59XG4udWkuYXR0YWNoZWQuaWNvbi5tZXNzYWdlIHtcbiAgd2lkdGg6IGF1dG87XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgICBJY29uXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmljb24ubWVzc2FnZSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIHdpZHRoOiAxMDAlO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuLnVpLmljb24ubWVzc2FnZSA+IC5pY29uOm5vdCguY2xvc2UpIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZsZXg6IDAgMCBhdXRvO1xuICB3aWR0aDogYXV0bztcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIGZvbnQtc2l6ZTogM2VtO1xuICBvcGFjaXR5OiAwLjg7XG59XG4udWkuaWNvbi5tZXNzYWdlID4gLmNvbnRlbnQge1xuICBkaXNwbGF5OiBibG9jaztcbiAgZmxleDogMSAxIGF1dG87XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG4udWkuaWNvbi5tZXNzYWdlIC5pY29uOm5vdCguY2xvc2UpICsgLmNvbnRlbnQge1xuICBwYWRkaW5nLWxlZnQ6IDByZW07XG59XG4udWkuaWNvbi5tZXNzYWdlIC5jaXJjdWxhci5pY29uIHtcbiAgd2lkdGg6IDFlbTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBGbG9hdGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5mbG9hdGluZy5tZXNzYWdlIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4IHJnYmEoMzQsIDM2LCAzOCwgMC4yMikgaW5zZXQsIDBweCAycHggNHB4IDBweCByZ2JhKDM0LCAzNiwgMzgsIDAuMTIpLCAwcHggMnB4IDEwcHggMHB4IHJnYmEoMzQsIDM2LCAzOCwgMC4xNSk7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5ibGFjay5tZXNzYWdlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDAwMDtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45KTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgVHlwZXNcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLnVpLnBvc2l0aXZlLm1lc3NhZ2Uge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkNGRkY1O1xuICBjb2xvcjogIzJDNjYyRDtcbn1cbi51aS5wb3NpdGl2ZS5tZXNzYWdlLFxuLnVpLmF0dGFjaGVkLnBvc2l0aXZlLm1lc3NhZ2Uge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggI0EzQzI5MyBpbnNldCwgMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMCk7XG59XG4udWkucG9zaXRpdmUubWVzc2FnZSAuaGVhZGVyIHtcbiAgY29sb3I6ICMxQTUzMUI7XG59XG4vKiBOZWdhdGl2ZSAqL1xuLnVpLm5lZ2F0aXZlLm1lc3NhZ2Uge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkZGNkY2O1xuICBjb2xvcjogIzlGM0EzODtcbn1cbi51aS5uZWdhdGl2ZS5tZXNzYWdlLFxuLnVpLmF0dGFjaGVkLm5lZ2F0aXZlLm1lc3NhZ2Uge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggI0UwQjRCNCBpbnNldCwgMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMCk7XG59XG4udWkubmVnYXRpdmUubWVzc2FnZSAuaGVhZGVyIHtcbiAgY29sb3I6ICM5MTJEMkI7XG59XG4vKiBJbmZvICovXG4udWkuaW5mby5tZXNzYWdlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0Y4RkZGRjtcbiAgY29sb3I6ICMyNzZGODY7XG59XG4udWkuaW5mby5tZXNzYWdlLFxuLnVpLmF0dGFjaGVkLmluZm8ubWVzc2FnZSB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjQTlENURFIGluc2V0LCAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwKTtcbn1cbi51aS5pbmZvLm1lc3NhZ2UgLmhlYWRlciB7XG4gIGNvbG9yOiAjMEU1NjZDO1xufVxuLyogV2FybmluZyAqL1xuLnVpLndhcm5pbmcubWVzc2FnZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGRkZBRjM7XG4gIGNvbG9yOiAjNTczQTA4O1xufVxuLnVpLndhcm5pbmcubWVzc2FnZSxcbi51aS5hdHRhY2hlZC53YXJuaW5nLm1lc3NhZ2Uge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggI0M5QkE5QiBpbnNldCwgMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMCk7XG59XG4udWkud2FybmluZy5tZXNzYWdlIC5oZWFkZXIge1xuICBjb2xvcjogIzc5NEIwMjtcbn1cbi8qIEVycm9yICovXG4udWkuZXJyb3IubWVzc2FnZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGRkY2RjY7XG4gIGNvbG9yOiAjOUYzQTM4O1xufVxuLnVpLmVycm9yLm1lc3NhZ2UsXG4udWkuYXR0YWNoZWQuZXJyb3IubWVzc2FnZSB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjRTBCNEI0IGluc2V0LCAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwKTtcbn1cbi51aS5lcnJvci5tZXNzYWdlIC5oZWFkZXIge1xuICBjb2xvcjogIzkxMkQyQjtcbn1cbi8qIFN1Y2Nlc3MgKi9cbi51aS5zdWNjZXNzLm1lc3NhZ2Uge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkNGRkY1O1xuICBjb2xvcjogIzJDNjYyRDtcbn1cbi51aS5zdWNjZXNzLm1lc3NhZ2UsXG4udWkuYXR0YWNoZWQuc3VjY2Vzcy5tZXNzYWdlIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICNBM0MyOTMgaW5zZXQsIDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDApO1xufVxuLnVpLnN1Y2Nlc3MubWVzc2FnZSAuaGVhZGVyIHtcbiAgY29sb3I6ICMxQTUzMUI7XG59XG4vKiBDb2xvcnMgKi9cbi51aS5pbnZlcnRlZC5tZXNzYWdlLFxuLnVpLmJsYWNrLm1lc3NhZ2Uge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwMDAwO1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjkpO1xufVxuLnVpLnJlZC5tZXNzYWdlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0ZGRThFNjtcbiAgY29sb3I6ICNkZTNhM2U7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjZGUzYTNlIGluc2V0LCAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwKTtcbn1cbi51aS5yZWQubWVzc2FnZSAuaGVhZGVyIHtcbiAgY29sb3I6ICNkYTI1Mjk7XG59XG4udWkub3JhbmdlLm1lc3NhZ2Uge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkZFRERFO1xuICBjb2xvcjogI2ZmOTUzMztcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICNmZjk1MzMgaW5zZXQsIDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDApO1xufVxuLnVpLm9yYW5nZS5tZXNzYWdlIC5oZWFkZXIge1xuICBjb2xvcjogI2ZmODgxOTtcbn1cbi51aS55ZWxsb3cubWVzc2FnZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGRkY4REI7XG4gIGNvbG9yOiAjQjU4MTA1O1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggI0I1ODEwNSBpbnNldCwgMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMCk7XG59XG4udWkueWVsbG93Lm1lc3NhZ2UgLmhlYWRlciB7XG4gIGNvbG9yOiAjOWM2ZjA0O1xufVxuLnVpLm9saXZlLm1lc3NhZ2Uge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkJGREVGO1xuICBjb2xvcjogIzhBQkMxRTtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICM4QUJDMUUgaW5zZXQsIDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDApO1xufVxuLnVpLm9saXZlLm1lc3NhZ2UgLmhlYWRlciB7XG4gIGNvbG9yOiAjN2FhNjFhO1xufVxuLnVpLmdyZWVuLm1lc3NhZ2Uge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRTVGOUU3O1xuICBjb2xvcjogIzFFQkMzMDtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICMxRUJDMzAgaW5zZXQsIDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDApO1xufVxuLnVpLmdyZWVuLm1lc3NhZ2UgLmhlYWRlciB7XG4gIGNvbG9yOiAjMWFhNjJhO1xufVxuLnVpLnRlYWwubWVzc2FnZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNFMUY3Rjc7XG4gIGNvbG9yOiAjMTBBM0EzO1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggIzEwQTNBMyBpbnNldCwgMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMCk7XG59XG4udWkudGVhbC5tZXNzYWdlIC5oZWFkZXIge1xuICBjb2xvcjogIzBlOGM4Yztcbn1cbi51aS5ibHVlLm1lc3NhZ2Uge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjREZGMEZGO1xuICBjb2xvcjogIzNmNTFiNTtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICMzZjUxYjUgaW5zZXQsIDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDApO1xufVxuLnVpLmJsdWUubWVzc2FnZSAuaGVhZGVyIHtcbiAgY29sb3I6ICMzODQ5YTI7XG59XG4udWkudmlvbGV0Lm1lc3NhZ2Uge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRUFFN0ZGO1xuICBjb2xvcjogIzY0MzVDOTtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICM2NDM1QzkgaW5zZXQsIDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDApO1xufVxuLnVpLnZpb2xldC5tZXNzYWdlIC5oZWFkZXIge1xuICBjb2xvcjogIzVhMzBiNTtcbn1cbi51aS5wdXJwbGUubWVzc2FnZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGNkU3RkY7XG4gIGNvbG9yOiAjQTMzM0M4O1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggI0EzMzNDOCBpbnNldCwgMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMCk7XG59XG4udWkucHVycGxlLm1lc3NhZ2UgLmhlYWRlciB7XG4gIGNvbG9yOiAjOTIyZWI0O1xufVxuLnVpLnBpbmsubWVzc2FnZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGRkUzRkI7XG4gIGNvbG9yOiAjRTAzOTk3O1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggI0UwMzk5NyBpbnNldCwgMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMCk7XG59XG4udWkucGluay5tZXNzYWdlIC5oZWFkZXIge1xuICBjb2xvcjogI2RkMjM4Yjtcbn1cbi51aS5icm93bi5tZXNzYWdlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0YxRTJEMztcbiAgY29sb3I6ICNBNTY3M0Y7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjQTU2NzNGIGluc2V0LCAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwKTtcbn1cbi51aS5icm93bi5tZXNzYWdlIC5oZWFkZXIge1xuICBjb2xvcjogIzkzNWIzODtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkubWluaS5tZXNzYWdlIHtcbiAgZm9udC1zaXplOiAwLjhlbTtcbn1cbi51aS50aW55Lm1lc3NhZ2Uge1xuICBmb250LXNpemU6IDAuOWVtO1xufVxuLnVpLnNtYWxsLm1lc3NhZ2Uge1xuICBmb250LXNpemU6IDAuOWVtO1xufVxuLnVpLm1lc3NhZ2Uge1xuICBmb250LXNpemU6IDFlbTtcbn1cbi51aS5sYXJnZS5tZXNzYWdlIHtcbiAgZm9udC1zaXplOiAxLjFlbTtcbn1cbi51aS5iaWcubWVzc2FnZSB7XG4gIGZvbnQtc2l6ZTogMS4zZW07XG59XG4udWkuaHVnZS5tZXNzYWdlIHtcbiAgZm9udC1zaXplOiAxLjRlbTtcbn1cbi51aS5tYXNzaXZlLm1lc3NhZ2Uge1xuICBmb250LXNpemU6IDEuN2VtO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFRoZW1lIE92ZXJyaWRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIFNpdGUgT3ZlcnJpZGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyohXG4gKiAjIFNlbWFudGljIFVJIC0gVGFibGVcbiAqIGh0dHA6Ly9naXRodWIuY29tL3NlbWFudGljLW9yZy9zZW1hbnRpYy11aS9cbiAqXG4gKlxuICogUmVsZWFzZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlXG4gKiBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUXG4gKlxuICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKlxuXG7ilojilojilojilojilojilojilojilojilZfilojilojilZcgIOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKVlyAgIOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl1xu4pWa4pWQ4pWQ4paI4paI4pWU4pWQ4pWQ4pWd4paI4paI4pWRICDilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilojilojilZcg4paI4paI4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWd4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWdXG4gICDilojilojilZEgICDilojilojilojilojilojilojilojilZHilojilojilojilojilojilZcgIOKWiOKWiOKVlOKWiOKWiOKWiOKWiOKVlOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4paI4paI4paI4paI4paI4pWXXG4gICDilojilojilZEgICDilojilojilZTilZDilZDilojilojilZHilojilojilZTilZDilZDilZ0gIOKWiOKWiOKVkeKVmuKWiOKWiOKVlOKVneKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4pWa4pWQ4pWQ4pWQ4pWQ4paI4paI4pWRXG4gICDilojilojilZEgICDilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVkSDilZrilZDilZ0g4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWRXG4gICDilZrilZDilZ0gICDilZrilZDilZ0gIOKVmuKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVneKVmuKVkOKVnSAgICAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWdXG5cbiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBUaGVtZSBTZWxlY3Rpb25cbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBUbyBvdmVycmlkZSBhIHRoZW1lIGZvciBhbiBpbmRpdmlkdWFsIGVsZW1lbnRcbiAgIHNwZWNpZnkgdGhlbWUgbmFtZSBiZWxvd1xuKi9cbi8qIEdsb2JhbCAqL1xuLyogRWxlbWVudHMgKi9cbi8qIENvbGxlY3Rpb25zICovXG4vKiBNb2R1bGVzICovXG4vKiBWaWV3cyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIEZvbGRlcnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBQYXRoIHRvIHRoZW1lIHBhY2thZ2VzICovXG4vKiBQYXRoIHRvIHNpdGUgb3ZlcnJpZGUgZm9sZGVyICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgSW1wb3J0IFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgSW1wb3J0IERpcmVjdGl2ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIFRoZW1lXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgIFNpdGUgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kb3JzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFBhY2thZ2VkIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRvcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogQ29tcG9uZW50J3Mgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZG9ycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBTaXRlIHRoZW1lIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICBVc2VyIEdsb2JhbCBWYXJpYWJsZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBtYXJzbyBjb2xvcnMgKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiBDb21wb25lbnQgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBUYWJsZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVsZW1lbnRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgUGFydHNcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUYWJsZSBSb3cgKi9cbi8qIFRhYmxlIENlbGwgKi9cbi8qIFRhYmxlIEhlYWRlciAqL1xuLyogVGFibGUgRm9vdGVyICovXG4vKiBSZXNwb25zaXZlIFNpemUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIFR5cGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZpbml0aW9uICovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgQ291cGxpbmdzXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgICBTdGF0ZXNcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEVycm9yICovXG4vKiBXYXJuaW5nICovXG4vKiBBY3RpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgVHlwZXNcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBBdHRhY2hlZCAqL1xuLyogU3RyaXBlZCAqL1xuLyogU2VsZWN0YWJsZSAqL1xuLyogU29ydGFibGUgKi9cbi8qIENvbG9ycyAqL1xuLyogSW52ZXJ0ZWQgKi9cbi8qIEJhc2ljICovXG4vKiBQYWRkZWQgKi9cbi8qIENvbXBhY3QgKi9cbi8qIFNpemVzICovXG4vKiBQYWNrYWdlZCBUaGVtZSAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBUYWJsZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVsZW1lbnRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgUGFydHNcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUYWJsZSBSb3cgKi9cbi8qIFRhYmxlIENlbGwgKi9cbi8qIFRhYmxlIEhlYWRlciAqL1xuLyogVGFibGUgRm9vdGVyICovXG4vKiBSZXNwb25zaXZlIFNpemUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIFR5cGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZpbml0aW9uICovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgQ291cGxpbmdzXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgICBTdGF0ZXNcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEVycm9yICovXG4vKiBXYXJuaW5nICovXG4vKiBBY3RpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgVHlwZXNcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBBdHRhY2hlZCAqL1xuLyogU3RyaXBlZCAqL1xuLyogU2VsZWN0YWJsZSAqL1xuLyogU29ydGFibGUgKi9cbi8qIENvbG9ycyAqL1xuLyogSW52ZXJ0ZWQgKi9cbi8qIEJhc2ljICovXG4vKiBQYWRkZWQgKi9cbi8qIENvbXBhY3QgKi9cbi8qIFNpemVzICovXG4vKiBTaXRlIFRoZW1lICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgIFVzZXIgVmFyaWFibGUgT3ZlcnJpZGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBNaXgtaW5zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBPdmVycmlkZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRW5kIENvbmZpZyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBUYWJsZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFByb3RvdHlwZSAqL1xuLnVpLnRhYmxlIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gIG1hcmdpbjogMWVtIDBlbTtcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgzNCwgMzYsIDM4LCAwLjE1KTtcbiAgYm94LXNoYWRvdzogbm9uZTtcbiAgYm9yZGVyLXJhZGl1czogMC40cmVtO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBjb2xvcjogIzMzMzMzMztcbiAgYm9yZGVyLWNvbGxhcHNlOiBzZXBhcmF0ZTtcbiAgYm9yZGVyLXNwYWNpbmc6IDBweDtcbn1cbi51aS50YWJsZTpmaXJzdC1jaGlsZCB7XG4gIG1hcmdpbi10b3A6IDBlbTtcbn1cbi51aS50YWJsZTpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLWJvdHRvbTogMGVtO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBQYXJ0c1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFRhYmxlIENvbnRlbnQgKi9cbi51aS50YWJsZSB0aCxcbi51aS50YWJsZSB0ZCB7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xcyBlYXNlLCBjb2xvciAwLjFzIGVhc2U7XG59XG4vKiBIZWFkZXJzICovXG4udWkudGFibGUgdGhlYWQge1xuICBib3gtc2hhZG93OiBub25lO1xufVxuLnVpLnRhYmxlIHRoZWFkIHRoIHtcbiAgY3Vyc29yOiBhdXRvO1xuICBiYWNrZ3JvdW5kOiAjRjlGQUZCO1xuICB0ZXh0LWFsaWduOiBpbmhlcml0O1xuICBjb2xvcjogIzMzMzMzMztcbiAgcGFkZGluZzogMC45ZW0gMC44ZW07XG4gIHZlcnRpY2FsLWFsaWduOiBpbmhlcml0O1xuICBmb250LXN0eWxlOiBub25lO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2JhKDM0LCAzNiwgMzgsIDAuMSk7XG4gIGJvcmRlci1sZWZ0OiBub25lO1xufVxuLnVpLnRhYmxlIHRoZWFkIHRyID4gdGg6Zmlyc3QtY2hpbGQge1xuICBib3JkZXItbGVmdDogbm9uZTtcbn1cbi51aS50YWJsZSB0aGVhZCB0cjpmaXJzdC1jaGlsZCA+IHRoOmZpcnN0LWNoaWxkIHtcbiAgYm9yZGVyLXJhZGl1czogMC40cmVtIDBlbSAwZW0gMGVtO1xufVxuLnVpLnRhYmxlIHRoZWFkIHRyOmZpcnN0LWNoaWxkID4gdGg6bGFzdC1jaGlsZCB7XG4gIGJvcmRlci1yYWRpdXM6IDBlbSAwLjRyZW0gMGVtIDBlbTtcbn1cbi51aS50YWJsZSB0aGVhZCB0cjpmaXJzdC1jaGlsZCA+IHRoOm9ubHktY2hpbGQge1xuICBib3JkZXItcmFkaXVzOiAwLjRyZW0gMC40cmVtIDBlbSAwZW07XG59XG4vKiBGb290ZXIgKi9cbi51aS50YWJsZSB0Zm9vdCB7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG59XG4udWkudGFibGUgdGZvb3QgdGgge1xuICBjdXJzb3I6IGF1dG87XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpO1xuICBiYWNrZ3JvdW5kOiAjRjlGQUZCO1xuICB0ZXh0LWFsaWduOiBpbmhlcml0O1xuICBjb2xvcjogIzMzMzMzMztcbiAgcGFkZGluZzogMC44ZW0gMC44ZW07XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG59XG4udWkudGFibGUgdGZvb3QgdHIgPiB0aDpmaXJzdC1jaGlsZCB7XG4gIGJvcmRlci1sZWZ0OiBub25lO1xufVxuLnVpLnRhYmxlIHRmb290IHRyOmZpcnN0LWNoaWxkID4gdGg6Zmlyc3QtY2hpbGQge1xuICBib3JkZXItcmFkaXVzOiAwZW0gMGVtIDBlbSAwLjRyZW07XG59XG4udWkudGFibGUgdGZvb3QgdHI6Zmlyc3QtY2hpbGQgPiB0aDpsYXN0LWNoaWxkIHtcbiAgYm9yZGVyLXJhZGl1czogMGVtIDBlbSAwLjRyZW0gMGVtO1xufVxuLnVpLnRhYmxlIHRmb290IHRyOmZpcnN0LWNoaWxkID4gdGg6b25seS1jaGlsZCB7XG4gIGJvcmRlci1yYWRpdXM6IDBlbSAwZW0gMC40cmVtIDAuNHJlbTtcbn1cbi8qIFRhYmxlIFJvdyAqL1xuLnVpLnRhYmxlIHRyIHRkIHtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHJnYmEoMzQsIDM2LCAzOCwgMC4xKTtcbn1cbi51aS50YWJsZSB0cjpmaXJzdC1jaGlsZCB0ZCB7XG4gIGJvcmRlci10b3A6IG5vbmU7XG59XG4vKiBUYWJsZSBDZWxscyAqL1xuLnVpLnRhYmxlIHRkIHtcbiAgcGFkZGluZzogMC44ZW0gMC44ZW07XG4gIHRleHQtYWxpZ246IGluaGVyaXQ7XG59XG4vKiBJY29ucyAqL1xuLnVpLnRhYmxlID4gLmljb24ge1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG59XG4udWkudGFibGUgPiAuaWNvbjpvbmx5LWNoaWxkIHtcbiAgbWFyZ2luOiAwZW07XG59XG4vKiBUYWJsZSBTZWdtZW50ICovXG4udWkudGFibGUuc2VnbWVudCB7XG4gIHBhZGRpbmc6IDBlbTtcbn1cbi51aS50YWJsZS5zZWdtZW50OmFmdGVyIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi51aS50YWJsZS5zZWdtZW50LnN0YWNrZWQ6YWZ0ZXIge1xuICBkaXNwbGF5OiBibG9jaztcbn1cbi8qIFJlc3BvbnNpdmUgKi9cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgLnVpLnRhYmxlOm5vdCgudW5zdGFja2FibGUpIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuICAudWkudGFibGU6bm90KC51bnN0YWNrYWJsZSkgdGJvZHksXG4gIC51aS50YWJsZTpub3QoLnVuc3RhY2thYmxlKSB0cixcbiAgLnVpLnRhYmxlOm5vdCgudW5zdGFja2FibGUpIHRyID4gdGgsXG4gIC51aS50YWJsZTpub3QoLnVuc3RhY2thYmxlKSB0ciA+IHRkIHtcbiAgICB3aWR0aDogYXV0byAhaW1wb3J0YW50O1xuICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLnRhYmxlOm5vdCgudW5zdGFja2FibGUpIHtcbiAgICBwYWRkaW5nOiAwZW07XG4gIH1cbiAgLnVpLnRhYmxlOm5vdCgudW5zdGFja2FibGUpIHRoZWFkIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxuICAudWkudGFibGU6bm90KC51bnN0YWNrYWJsZSkgdGZvb3Qge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG4gIC51aS50YWJsZTpub3QoLnVuc3RhY2thYmxlKSB0ciB7XG4gICAgcGFkZGluZy10b3A6IDFlbTtcbiAgICBwYWRkaW5nLWJvdHRvbTogMWVtO1xuICAgIGJveC1zaGFkb3c6IDBweCAtMXB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEpIGluc2V0ICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLnRhYmxlOm5vdCgudW5zdGFja2FibGUpIHRyID4gdGgsXG4gIC51aS50YWJsZTpub3QoLnVuc3RhY2thYmxlKSB0ciA+IHRkIHtcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgIGJvcmRlcjogbm9uZSAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmc6IDAuMjVlbSAwLjc1ZW0gIWltcG9ydGFudDtcbiAgICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLnRhYmxlOm5vdCgudW5zdGFja2FibGUpIHRoOmZpcnN0LWNoaWxkLFxuICAudWkudGFibGU6bm90KC51bnN0YWNrYWJsZSkgdGQ6Zmlyc3QtY2hpbGQge1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICB9XG4gIC8qIERlZmluaXRpb24gVGFibGUgKi9cbiAgLnVpLmRlZmluaXRpb24udGFibGU6bm90KC51bnN0YWNrYWJsZSkgdGhlYWQgdGg6Zmlyc3QtY2hpbGQge1xuICAgIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIENvdXBsaW5nXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogVUkgSW1hZ2UgKi9cbi51aS50YWJsZSB0aCAuaW1hZ2UsXG4udWkudGFibGUgdGggLmltYWdlIGltZyxcbi51aS50YWJsZSB0ZCAuaW1hZ2UsXG4udWkudGFibGUgdGQgLmltYWdlIGltZyB7XG4gIG1heC13aWR0aDogbm9uZTtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgVHlwZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgQ29tcGxleFxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5zdHJ1Y3R1cmVkLnRhYmxlIHtcbiAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbn1cbi51aS5zdHJ1Y3R1cmVkLnRhYmxlIHRoZWFkIHRoIHtcbiAgYm9yZGVyLWxlZnQ6IG5vbmU7XG4gIGJvcmRlci1yaWdodDogbm9uZTtcbn1cbi51aS5zdHJ1Y3R1cmVkLnNvcnRhYmxlLnRhYmxlIHRoZWFkIHRoIHtcbiAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpO1xuICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpO1xufVxuLnVpLnN0cnVjdHVyZWQuYmFzaWMudGFibGUgdGgge1xuICBib3JkZXItbGVmdDogbm9uZTtcbiAgYm9yZGVyLXJpZ2h0OiBub25lO1xufVxuLnVpLnN0cnVjdHVyZWQuY2VsbGVkLnRhYmxlIHRyIHRoLFxuLnVpLnN0cnVjdHVyZWQuY2VsbGVkLnRhYmxlIHRyIHRkIHtcbiAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCByZ2JhKDM0LCAzNiwgMzgsIDAuMSk7XG4gIGJvcmRlci1yaWdodDogMXB4IHNvbGlkIHJnYmEoMzQsIDM2LCAzOCwgMC4xKTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIERlZmluaXRpb25cbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuZGVmaW5pdGlvbi50YWJsZSB0aGVhZDpub3QoLmZ1bGwtd2lkdGgpIHRoOmZpcnN0LWNoaWxkIHtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjQpO1xuICBib3gtc2hhZG93OiAtMXB4IC0xcHggMHB4IDFweCAjZmZmZmZmO1xufVxuLnVpLmRlZmluaXRpb24udGFibGUgdGZvb3Q6bm90KC5mdWxsLXdpZHRoKSB0aDpmaXJzdC1jaGlsZCB7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgZm9udC13ZWlnaHQ6IHJnYmEoMCwgMCwgMCwgMC40KTtcbiAgY29sb3I6IG5vcm1hbDtcbiAgYm94LXNoYWRvdzogMXB4IDFweCAwcHggMXB4ICNmZmZmZmY7XG59XG4vKiBSZW1vdmUgQm9yZGVyICovXG4udWkuY2VsbGVkLmRlZmluaXRpb24udGFibGUgdGhlYWQ6bm90KC5mdWxsLXdpZHRoKSB0aDpmaXJzdC1jaGlsZCB7XG4gIGJveC1zaGFkb3c6IDBweCAtMXB4IDBweCAxcHggI2ZmZmZmZjtcbn1cbi51aS5jZWxsZWQuZGVmaW5pdGlvbi50YWJsZSB0Zm9vdDpub3QoLmZ1bGwtd2lkdGgpIHRoOmZpcnN0LWNoaWxkIHtcbiAgYm94LXNoYWRvdzogMHB4IDFweCAwcHggMXB4ICNmZmZmZmY7XG59XG4vKiBIaWdobGlnaHQgRGVmaW5pbmcgQ29sdW1uICovXG4udWkuZGVmaW5pdGlvbi50YWJsZSB0ciB0ZDpmaXJzdC1jaGlsZDpub3QoLmlnbm9yZWQpLFxuLnVpLmRlZmluaXRpb24udGFibGUgdHIgdGQuZGVmaW5pdGlvbiB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4wMyk7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjk1KTtcbiAgdGV4dC10cmFuc2Zvcm06ICcnO1xuICBib3gtc2hhZG93OiAnJztcbiAgdGV4dC1hbGlnbjogJyc7XG4gIGZvbnQtc2l6ZTogMWVtO1xuICBwYWRkaW5nLWxlZnQ6ICcnO1xuICBwYWRkaW5nLXJpZ2h0OiAnJztcbn1cbi8qIEZpeCAybmQgQ29sdW1uICovXG4udWkuZGVmaW5pdGlvbi50YWJsZSB0aGVhZDpub3QoLmZ1bGwtd2lkdGgpIHRoOm50aC1jaGlsZCgyKSB7XG4gIGJvcmRlci1sZWZ0OiAxcHggc29saWQgcmdiYSgzNCwgMzYsIDM4LCAwLjE1KTtcbn1cbi51aS5kZWZpbml0aW9uLnRhYmxlIHRmb290Om5vdCguZnVsbC13aWR0aCkgdGg6bnRoLWNoaWxkKDIpIHtcbiAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpO1xufVxuLnVpLmRlZmluaXRpb24udGFibGUgdGQ6bnRoLWNoaWxkKDIpIHtcbiAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgUG9zaXRpdmVcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkudGFibGUgdHIucG9zaXRpdmUsXG4udWkudGFibGUgdGQucG9zaXRpdmUge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAjQTNDMjkzIGluc2V0O1xufVxuLnVpLnRhYmxlIHRyLnBvc2l0aXZlLFxuLnVpLnRhYmxlIHRkLnBvc2l0aXZlIHtcbiAgYmFja2dyb3VuZDogI0ZDRkZGNSAhaW1wb3J0YW50O1xuICBjb2xvcjogIzJDNjYyRCAhaW1wb3J0YW50O1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBOZWdhdGl2ZVxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS50YWJsZSB0ci5uZWdhdGl2ZSxcbi51aS50YWJsZSB0ZC5uZWdhdGl2ZSB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4ICNFMEI0QjQgaW5zZXQ7XG59XG4udWkudGFibGUgdHIubmVnYXRpdmUsXG4udWkudGFibGUgdGQubmVnYXRpdmUge1xuICBiYWNrZ3JvdW5kOiAjRkZGNkY2ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjOUYzQTM4ICFpbXBvcnRhbnQ7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgICBFcnJvclxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS50YWJsZSB0ci5lcnJvcixcbi51aS50YWJsZSB0ZC5lcnJvciB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4ICNFMEI0QjQgaW5zZXQ7XG59XG4udWkudGFibGUgdHIuZXJyb3IsXG4udWkudGFibGUgdGQuZXJyb3Ige1xuICBiYWNrZ3JvdW5kOiAjRkZGNkY2ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjOUYzQTM4ICFpbXBvcnRhbnQ7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIFdhcm5pbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkudGFibGUgdHIud2FybmluZyxcbi51aS50YWJsZSB0ZC53YXJuaW5nIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggI0M5QkE5QiBpbnNldDtcbn1cbi51aS50YWJsZSB0ci53YXJuaW5nLFxuLnVpLnRhYmxlIHRkLndhcm5pbmcge1xuICBiYWNrZ3JvdW5kOiAjRkZGQUYzICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjNTczQTA4ICFpbXBvcnRhbnQ7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS50YWJsZSB0ci5hY3RpdmUsXG4udWkudGFibGUgdGQuYWN0aXZlIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggIzMzMzMzMyBpbnNldDtcbn1cbi51aS50YWJsZSB0ci5hY3RpdmUsXG4udWkudGFibGUgdGQuYWN0aXZlIHtcbiAgYmFja2dyb3VuZDogI0UwRTBFMCAhaW1wb3J0YW50O1xuICBjb2xvcjogIzMzMzMzMyAhaW1wb3J0YW50O1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS50YWJsZSB0ci5kaXNhYmxlZCB0ZCxcbi51aS50YWJsZSB0ciB0ZC5kaXNhYmxlZCxcbi51aS50YWJsZSB0ci5kaXNhYmxlZDpob3Zlcixcbi51aS50YWJsZSB0cjpob3ZlciB0ZC5kaXNhYmxlZCB7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICBjb2xvcjogcmdiYSg0MCwgNDAsIDQwLCAwLjMpO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICBWYXJpYXRpb25zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgIFN0YWNrYWJsZVxuLS0tLS0tLS0tLS0tLS0tKi9cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogOTkxcHgpIHtcbiAgLnVpW2NsYXNzKj1cInRhYmxldCBzdGFja2FibGVcIl0udGFibGUsXG4gIC51aVtjbGFzcyo9XCJ0YWJsZXQgc3RhY2thYmxlXCJdLnRhYmxlIHRib2R5LFxuICAudWlbY2xhc3MqPVwidGFibGV0IHN0YWNrYWJsZVwiXS50YWJsZSB0cixcbiAgLnVpW2NsYXNzKj1cInRhYmxldCBzdGFja2FibGVcIl0udGFibGUgdHIgPiB0aCxcbiAgLnVpW2NsYXNzKj1cInRhYmxldCBzdGFja2FibGVcIl0udGFibGUgdHIgPiB0ZCB7XG4gICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICB9XG4gIC51aVtjbGFzcyo9XCJ0YWJsZXQgc3RhY2thYmxlXCJdLnRhYmxlIHtcbiAgICBwYWRkaW5nOiAwZW07XG4gIH1cbiAgLnVpW2NsYXNzKj1cInRhYmxldCBzdGFja2FibGVcIl0udGFibGUgdGhlYWQge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG4gIC51aVtjbGFzcyo9XCJ0YWJsZXQgc3RhY2thYmxlXCJdLnRhYmxlIHRmb290IHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxuICAudWlbY2xhc3MqPVwidGFibGV0IHN0YWNrYWJsZVwiXS50YWJsZSB0ciB7XG4gICAgcGFkZGluZy10b3A6IDFlbTtcbiAgICBwYWRkaW5nLWJvdHRvbTogMWVtO1xuICAgIGJveC1zaGFkb3c6IDBweCAtMXB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEpIGluc2V0ICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpW2NsYXNzKj1cInRhYmxldCBzdGFja2FibGVcIl0udGFibGUgdHIgPiB0aCxcbiAgLnVpW2NsYXNzKj1cInRhYmxldCBzdGFja2FibGVcIl0udGFibGUgdHIgPiB0ZCB7XG4gICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICBib3JkZXI6IG5vbmUgIWltcG9ydGFudDtcbiAgICBwYWRkaW5nOiAwLjI1ZW0gMC43NWVtO1xuICAgIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxuICAvKiBEZWZpbml0aW9uIFRhYmxlICovXG4gIC51aS5kZWZpbml0aW9uW2NsYXNzKj1cInRhYmxldCBzdGFja2FibGVcIl0udGFibGUgdGhlYWQgdGg6Zmlyc3QtY2hpbGQge1xuICAgIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxufVxuLyotLS0tLS0tLS0tLS0tLVxuIFRleHQgQWxpZ25tZW50XG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLnRhYmxlW2NsYXNzKj1cImxlZnQgYWxpZ25lZFwiXSxcbi51aS50YWJsZSBbY2xhc3MqPVwibGVmdCBhbGlnbmVkXCJdIHtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbn1cbi51aS50YWJsZVtjbGFzcyo9XCJjZW50ZXIgYWxpZ25lZFwiXSxcbi51aS50YWJsZSBbY2xhc3MqPVwiY2VudGVyIGFsaWduZWRcIl0ge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG4udWkudGFibGVbY2xhc3MqPVwicmlnaHQgYWxpZ25lZFwiXSxcbi51aS50YWJsZSBbY2xhc3MqPVwicmlnaHQgYWxpZ25lZFwiXSB7XG4gIHRleHQtYWxpZ246IHJpZ2h0O1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiBWZXJ0aWNhbCBBbGlnbm1lbnRcbi0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkudGFibGVbY2xhc3MqPVwidG9wIGFsaWduZWRcIl0sXG4udWkudGFibGUgW2NsYXNzKj1cInRvcCBhbGlnbmVkXCJdIHtcbiAgdmVydGljYWwtYWxpZ246IHRvcDtcbn1cbi51aS50YWJsZVtjbGFzcyo9XCJtaWRkbGUgYWxpZ25lZFwiXSxcbi51aS50YWJsZSBbY2xhc3MqPVwibWlkZGxlIGFsaWduZWRcIl0ge1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuLnVpLnRhYmxlW2NsYXNzKj1cImJvdHRvbSBhbGlnbmVkXCJdLFxuLnVpLnRhYmxlIFtjbGFzcyo9XCJib3R0b20gYWxpZ25lZFwiXSB7XG4gIHZlcnRpY2FsLWFsaWduOiBib3R0b207XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgQ29sbGFwc2luZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS50YWJsZSB0aC5jb2xsYXBzaW5nLFxuLnVpLnRhYmxlIHRkLmNvbGxhcHNpbmcge1xuICB3aWR0aDogMXB4O1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBGaXhlZFxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5maXhlZC50YWJsZSB7XG4gIHRhYmxlLWxheW91dDogZml4ZWQ7XG59XG4udWkuZml4ZWQudGFibGUgdGgsXG4udWkuZml4ZWQudGFibGUgdGQge1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIFNlbGVjdGFibGVcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuc2VsZWN0YWJsZS50YWJsZSB0Ym9keSB0cjpob3Zlcixcbi51aS50YWJsZSB0Ym9keSB0ciB0ZC5zZWxlY3RhYmxlOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjA1KSAhaW1wb3J0YW50O1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjk1KSAhaW1wb3J0YW50O1xufVxuLnVpLnNlbGVjdGFibGUuaW52ZXJ0ZWQudGFibGUgdGJvZHkgdHI6aG92ZXIsXG4udWkuaW52ZXJ0ZWQudGFibGUgdGJvZHkgdHIgdGQuc2VsZWN0YWJsZTpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wOCkgIWltcG9ydGFudDtcbiAgY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcbn1cbi8qIFNlbGVjdGFibGUgQ2VsbCBMaW5rICovXG4udWkudGFibGUgdGJvZHkgdHIgdGQuc2VsZWN0YWJsZSB7XG4gIHBhZGRpbmc6IDBlbTtcbn1cbi51aS50YWJsZSB0Ym9keSB0ciB0ZC5zZWxlY3RhYmxlID4gYTpub3QoLnVpKSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBjb2xvcjogaW5oZXJpdDtcbiAgcGFkZGluZzogMC44ZW0gMC44ZW07XG59XG4vKiBPdGhlciBTdGF0ZXMgKi9cbi51aS5zZWxlY3RhYmxlLnRhYmxlIHRyLmVycm9yOmhvdmVyLFxuLnVpLnRhYmxlIHRyIHRkLnNlbGVjdGFibGUuZXJyb3I6aG92ZXIsXG4udWkuc2VsZWN0YWJsZS50YWJsZSB0cjpob3ZlciB0ZC5lcnJvciB7XG4gIGJhY2tncm91bmQ6ICNmZmU3ZTcgIWltcG9ydGFudDtcbiAgY29sb3I6ICM5NDM2MzQgIWltcG9ydGFudDtcbn1cbi51aS5zZWxlY3RhYmxlLnRhYmxlIHRyLndhcm5pbmc6aG92ZXIsXG4udWkudGFibGUgdHIgdGQuc2VsZWN0YWJsZS53YXJuaW5nOmhvdmVyLFxuLnVpLnNlbGVjdGFibGUudGFibGUgdHI6aG92ZXIgdGQud2FybmluZyB7XG4gIGJhY2tncm91bmQ6ICNmZmY0ZTQgIWltcG9ydGFudDtcbiAgY29sb3I6ICM0OTMxMDcgIWltcG9ydGFudDtcbn1cbi51aS5zZWxlY3RhYmxlLnRhYmxlIHRyLmFjdGl2ZTpob3Zlcixcbi51aS50YWJsZSB0ciB0ZC5zZWxlY3RhYmxlLmFjdGl2ZTpob3Zlcixcbi51aS5zZWxlY3RhYmxlLnRhYmxlIHRyOmhvdmVyIHRkLmFjdGl2ZSB7XG4gIGJhY2tncm91bmQ6ICNFMEUwRTAgIWltcG9ydGFudDtcbiAgY29sb3I6ICMzMzMzMzMgIWltcG9ydGFudDtcbn1cbi51aS5zZWxlY3RhYmxlLnRhYmxlIHRyLnBvc2l0aXZlOmhvdmVyLFxuLnVpLnRhYmxlIHRyIHRkLnNlbGVjdGFibGUucG9zaXRpdmU6aG92ZXIsXG4udWkuc2VsZWN0YWJsZS50YWJsZSB0cjpob3ZlciB0ZC5wb3NpdGl2ZSB7XG4gIGJhY2tncm91bmQ6ICNmN2ZmZTYgIWltcG9ydGFudDtcbiAgY29sb3I6ICMyNzViMjggIWltcG9ydGFudDtcbn1cbi51aS5zZWxlY3RhYmxlLnRhYmxlIHRyLm5lZ2F0aXZlOmhvdmVyLFxuLnVpLnRhYmxlIHRyIHRkLnNlbGVjdGFibGUubmVnYXRpdmU6aG92ZXIsXG4udWkuc2VsZWN0YWJsZS50YWJsZSB0cjpob3ZlciB0ZC5uZWdhdGl2ZSB7XG4gIGJhY2tncm91bmQ6ICNmZmU3ZTcgIWltcG9ydGFudDtcbiAgY29sb3I6ICM5NDM2MzQgIWltcG9ydGFudDtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQXR0YWNoZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1pZGRsZSAqL1xuLnVpLmF0dGFjaGVkLnRhYmxlIHtcbiAgdG9wOiAwcHg7XG4gIGJvdHRvbTogMHB4O1xuICBib3JkZXItcmFkaXVzOiAwcHg7XG4gIG1hcmdpbjogMGVtIC0xcHg7XG4gIHdpZHRoOiBjYWxjKDEwMCUgKyAycHgpO1xuICBtYXgtd2lkdGg6IGNhbGMoMTAwJSArIDJweCk7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNENEQ0RDU7XG59XG4udWkuYXR0YWNoZWQgKyAudWkuYXR0YWNoZWQudGFibGU6bm90KC50b3ApIHtcbiAgYm9yZGVyLXRvcDogbm9uZTtcbn1cbi8qIFRvcCAqL1xuLnVpW2NsYXNzKj1cInRvcCBhdHRhY2hlZFwiXS50YWJsZSB7XG4gIGJvdHRvbTogMHB4O1xuICBtYXJnaW4tYm90dG9tOiAwZW07XG4gIHRvcDogMHB4O1xuICBtYXJnaW4tdG9wOiAxZW07XG4gIGJvcmRlci1yYWRpdXM6IDAuNHJlbSAwLjRyZW0gMGVtIDBlbTtcbn1cbi51aS50YWJsZVtjbGFzcyo9XCJ0b3AgYXR0YWNoZWRcIl06Zmlyc3QtY2hpbGQge1xuICBtYXJnaW4tdG9wOiAwZW07XG59XG4vKiBCb3R0b20gKi9cbi51aVtjbGFzcyo9XCJib3R0b20gYXR0YWNoZWRcIl0udGFibGUge1xuICBib3R0b206IDBweDtcbiAgbWFyZ2luLXRvcDogMGVtO1xuICB0b3A6IDBweDtcbiAgbWFyZ2luLWJvdHRvbTogMWVtO1xuICBib3gtc2hhZG93OiBub25lLCBub25lO1xuICBib3JkZXItcmFkaXVzOiAwZW0gMGVtIDAuNHJlbSAwLjRyZW07XG59XG4udWlbY2xhc3MqPVwiYm90dG9tIGF0dGFjaGVkXCJdLnRhYmxlOmxhc3QtY2hpbGQge1xuICBtYXJnaW4tYm90dG9tOiAwZW07XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIFN0cmlwZWRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUYWJsZSBTdHJpcGluZyAqL1xuLnVpLnN0cmlwZWQudGFibGUgPiB0cjpudGgtY2hpbGQoMm4pLFxuLnVpLnN0cmlwZWQudGFibGUgdGJvZHkgdHI6bnRoLWNoaWxkKDJuKSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgNTAsIDAuMDIpO1xufVxuLyogU3RyaXBlcyAqL1xuLnVpLmludmVydGVkLnN0cmlwZWQudGFibGUgPiB0cjpudGgtY2hpbGQoMm4pLFxuLnVpLmludmVydGVkLnN0cmlwZWQudGFibGUgdGJvZHkgdHI6bnRoLWNoaWxkKDJuKSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNSk7XG59XG4vKiBBbGxvdyBzdHJpcGVkIGFjdGl2ZSBob3ZlciAqL1xuLnVpLnN0cmlwZWQuc2VsZWN0YWJsZS5zZWxlY3RhYmxlLnNlbGVjdGFibGUudGFibGUgdGJvZHkgdHIuYWN0aXZlOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogI0VGRUZFRiAhaW1wb3J0YW50O1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjk1KSAhaW1wb3J0YW50O1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgU2luZ2xlIExpbmVcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkudGFibGVbY2xhc3MqPVwic2luZ2xlIGxpbmVcIl0sXG4udWkudGFibGUgW2NsYXNzKj1cInNpbmdsZSBsaW5lXCJdIHtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cbi51aS50YWJsZVtjbGFzcyo9XCJzaW5nbGUgbGluZVwiXSxcbi51aS50YWJsZSBbY2xhc3MqPVwic2luZ2xlIGxpbmVcIl0ge1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBSZWQgKi9cbi51aS5yZWQudGFibGUge1xuICBib3JkZXItdG9wOiAwLjJlbSBzb2xpZCAjZGUzYTNlO1xufVxuLnVpLmludmVydGVkLnJlZC50YWJsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkZTNhM2UgIWltcG9ydGFudDtcbiAgY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcbn1cbi8qIE9yYW5nZSAqL1xuLnVpLm9yYW5nZS50YWJsZSB7XG4gIGJvcmRlci10b3A6IDAuMmVtIHNvbGlkICNmZjk1MzM7XG59XG4udWkuaW52ZXJ0ZWQub3JhbmdlLnRhYmxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmOTUzMyAhaW1wb3J0YW50O1xuICBjb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xufVxuLyogWWVsbG93ICovXG4udWkueWVsbG93LnRhYmxlIHtcbiAgYm9yZGVyLXRvcDogMC4yZW0gc29saWQgI0ZCQkQwODtcbn1cbi51aS5pbnZlcnRlZC55ZWxsb3cudGFibGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkJCRDA4ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG59XG4vKiBPbGl2ZSAqL1xuLnVpLm9saXZlLnRhYmxlIHtcbiAgYm9yZGVyLXRvcDogMC4yZW0gc29saWQgI0I1Q0MxODtcbn1cbi51aS5pbnZlcnRlZC5vbGl2ZS50YWJsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNCNUNDMTggIWltcG9ydGFudDtcbiAgY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcbn1cbi8qIEdyZWVuICovXG4udWkuZ3JlZW4udGFibGUge1xuICBib3JkZXItdG9wOiAwLjJlbSBzb2xpZCAjMTlhNTMxO1xufVxuLnVpLmludmVydGVkLmdyZWVuLnRhYmxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzE5YTUzMSAhaW1wb3J0YW50O1xuICBjb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xufVxuLyogVGVhbCAqL1xuLnVpLnRlYWwudGFibGUge1xuICBib3JkZXItdG9wOiAwLjJlbSBzb2xpZCAjMDBCNUFEO1xufVxuLnVpLmludmVydGVkLnRlYWwudGFibGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDBCNUFEICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG59XG4vKiBCbHVlICovXG4udWkuYmx1ZS50YWJsZSB7XG4gIGJvcmRlci10b3A6IDAuMmVtIHNvbGlkICMzZjUxYjU7XG59XG4udWkuaW52ZXJ0ZWQuYmx1ZS50YWJsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzZjUxYjUgIWltcG9ydGFudDtcbiAgY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcbn1cbi8qIFZpb2xldCAqL1xuLnVpLnZpb2xldC50YWJsZSB7XG4gIGJvcmRlci10b3A6IDAuMmVtIHNvbGlkICM2NDM1Qzk7XG59XG4udWkuaW52ZXJ0ZWQudmlvbGV0LnRhYmxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzY0MzVDOSAhaW1wb3J0YW50O1xuICBjb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xufVxuLyogUHVycGxlICovXG4udWkucHVycGxlLnRhYmxlIHtcbiAgYm9yZGVyLXRvcDogMC4yZW0gc29saWQgI0EzMzNDODtcbn1cbi51aS5pbnZlcnRlZC5wdXJwbGUudGFibGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjQTMzM0M4ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG59XG4vKiBQaW5rICovXG4udWkucGluay50YWJsZSB7XG4gIGJvcmRlci10b3A6IDAuMmVtIHNvbGlkICNFMDM5OTc7XG59XG4udWkuaW52ZXJ0ZWQucGluay50YWJsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNFMDM5OTcgIWltcG9ydGFudDtcbiAgY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcbn1cbi8qIEJyb3duICovXG4udWkuYnJvd24udGFibGUge1xuICBib3JkZXItdG9wOiAwLjJlbSBzb2xpZCAjQTU2NzNGO1xufVxuLnVpLmludmVydGVkLmJyb3duLnRhYmxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0E1NjczRiAhaW1wb3J0YW50O1xuICBjb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xufVxuLyogR3JleSAqL1xuLnVpLmdyZXkudGFibGUge1xuICBib3JkZXItdG9wOiAwLjJlbSBzb2xpZCAjNzY3Njc2O1xufVxuLnVpLmludmVydGVkLmdyZXkudGFibGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNzY3Njc2ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG59XG4vKiBCbGFjayAqL1xuLnVpLmJsYWNrLnRhYmxlIHtcbiAgYm9yZGVyLXRvcDogMC4yZW0gc29saWQgIzAwMDAwMDtcbn1cbi51aS5pbnZlcnRlZC5ibGFjay50YWJsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDAwMDAgIWltcG9ydGFudDtcbiAgY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgQ29sdW1uIENvdW50XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogR3JpZCBCYXNlZCAqL1xuLnVpLm9uZS5jb2x1bW4udGFibGUgdGQge1xuICB3aWR0aDogMTAwJTtcbn1cbi51aS50d28uY29sdW1uLnRhYmxlIHRkIHtcbiAgd2lkdGg6IDUwJTtcbn1cbi51aS50aHJlZS5jb2x1bW4udGFibGUgdGQge1xuICB3aWR0aDogMzMuMzMzMzMzMzMlO1xufVxuLnVpLmZvdXIuY29sdW1uLnRhYmxlIHRkIHtcbiAgd2lkdGg6IDI1JTtcbn1cbi51aS5maXZlLmNvbHVtbi50YWJsZSB0ZCB7XG4gIHdpZHRoOiAyMCU7XG59XG4udWkuc2l4LmNvbHVtbi50YWJsZSB0ZCB7XG4gIHdpZHRoOiAxNi42NjY2NjY2NyU7XG59XG4udWkuc2V2ZW4uY29sdW1uLnRhYmxlIHRkIHtcbiAgd2lkdGg6IDE0LjI4NTcxNDI5JTtcbn1cbi51aS5laWdodC5jb2x1bW4udGFibGUgdGQge1xuICB3aWR0aDogMTIuNSU7XG59XG4udWkubmluZS5jb2x1bW4udGFibGUgdGQge1xuICB3aWR0aDogMTEuMTExMTExMTElO1xufVxuLnVpLnRlbi5jb2x1bW4udGFibGUgdGQge1xuICB3aWR0aDogMTAlO1xufVxuLnVpLmVsZXZlbi5jb2x1bW4udGFibGUgdGQge1xuICB3aWR0aDogOS4wOTA5MDkwOSU7XG59XG4udWkudHdlbHZlLmNvbHVtbi50YWJsZSB0ZCB7XG4gIHdpZHRoOiA4LjMzMzMzMzMzJTtcbn1cbi51aS50aGlydGVlbi5jb2x1bW4udGFibGUgdGQge1xuICB3aWR0aDogNy42OTIzMDc2OSU7XG59XG4udWkuZm91cnRlZW4uY29sdW1uLnRhYmxlIHRkIHtcbiAgd2lkdGg6IDcuMTQyODU3MTQlO1xufVxuLnVpLmZpZnRlZW4uY29sdW1uLnRhYmxlIHRkIHtcbiAgd2lkdGg6IDYuNjY2NjY2NjclO1xufVxuLnVpLnNpeHRlZW4uY29sdW1uLnRhYmxlIHRkIHtcbiAgd2lkdGg6IDYuMjUlO1xufVxuLyogQ29sdW1uIFdpZHRoICovXG4udWkudGFibGUgdGgub25lLndpZGUsXG4udWkudGFibGUgdGQub25lLndpZGUge1xuICB3aWR0aDogNi4yNSU7XG59XG4udWkudGFibGUgdGgudHdvLndpZGUsXG4udWkudGFibGUgdGQudHdvLndpZGUge1xuICB3aWR0aDogMTIuNSU7XG59XG4udWkudGFibGUgdGgudGhyZWUud2lkZSxcbi51aS50YWJsZSB0ZC50aHJlZS53aWRlIHtcbiAgd2lkdGg6IDE4Ljc1JTtcbn1cbi51aS50YWJsZSB0aC5mb3VyLndpZGUsXG4udWkudGFibGUgdGQuZm91ci53aWRlIHtcbiAgd2lkdGg6IDI1JTtcbn1cbi51aS50YWJsZSB0aC5maXZlLndpZGUsXG4udWkudGFibGUgdGQuZml2ZS53aWRlIHtcbiAgd2lkdGg6IDMxLjI1JTtcbn1cbi51aS50YWJsZSB0aC5zaXgud2lkZSxcbi51aS50YWJsZSB0ZC5zaXgud2lkZSB7XG4gIHdpZHRoOiAzNy41JTtcbn1cbi51aS50YWJsZSB0aC5zZXZlbi53aWRlLFxuLnVpLnRhYmxlIHRkLnNldmVuLndpZGUge1xuICB3aWR0aDogNDMuNzUlO1xufVxuLnVpLnRhYmxlIHRoLmVpZ2h0LndpZGUsXG4udWkudGFibGUgdGQuZWlnaHQud2lkZSB7XG4gIHdpZHRoOiA1MCU7XG59XG4udWkudGFibGUgdGgubmluZS53aWRlLFxuLnVpLnRhYmxlIHRkLm5pbmUud2lkZSB7XG4gIHdpZHRoOiA1Ni4yNSU7XG59XG4udWkudGFibGUgdGgudGVuLndpZGUsXG4udWkudGFibGUgdGQudGVuLndpZGUge1xuICB3aWR0aDogNjIuNSU7XG59XG4udWkudGFibGUgdGguZWxldmVuLndpZGUsXG4udWkudGFibGUgdGQuZWxldmVuLndpZGUge1xuICB3aWR0aDogNjguNzUlO1xufVxuLnVpLnRhYmxlIHRoLnR3ZWx2ZS53aWRlLFxuLnVpLnRhYmxlIHRkLnR3ZWx2ZS53aWRlIHtcbiAgd2lkdGg6IDc1JTtcbn1cbi51aS50YWJsZSB0aC50aGlydGVlbi53aWRlLFxuLnVpLnRhYmxlIHRkLnRoaXJ0ZWVuLndpZGUge1xuICB3aWR0aDogODEuMjUlO1xufVxuLnVpLnRhYmxlIHRoLmZvdXJ0ZWVuLndpZGUsXG4udWkudGFibGUgdGQuZm91cnRlZW4ud2lkZSB7XG4gIHdpZHRoOiA4Ny41JTtcbn1cbi51aS50YWJsZSB0aC5maWZ0ZWVuLndpZGUsXG4udWkudGFibGUgdGQuZmlmdGVlbi53aWRlIHtcbiAgd2lkdGg6IDkzLjc1JTtcbn1cbi51aS50YWJsZSB0aC5zaXh0ZWVuLndpZGUsXG4udWkudGFibGUgdGQuc2l4dGVlbi53aWRlIHtcbiAgd2lkdGg6IDEwMCU7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgU29ydGFibGVcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuc29ydGFibGUudGFibGUgdGhlYWQgdGgge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIGJvcmRlci1sZWZ0OiAxcHggc29saWQgcmdiYSgzNCwgMzYsIDM4LCAwLjE1KTtcbiAgY29sb3I6ICMzMzMzMzM7XG59XG4udWkuc29ydGFibGUudGFibGUgdGhlYWQgdGg6Zmlyc3QtY2hpbGQge1xuICBib3JkZXItbGVmdDogbm9uZTtcbn1cbi51aS5zb3J0YWJsZS50YWJsZSB0aGVhZCB0aC5zb3J0ZWQsXG4udWkuc29ydGFibGUudGFibGUgdGhlYWQgdGguc29ydGVkOmhvdmVyIHtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG59XG4udWkuc29ydGFibGUudGFibGUgdGhlYWQgdGg6YWZ0ZXIge1xuICBkaXNwbGF5OiBub25lO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIHRleHQtZGVjb3JhdGlvbjogaW5oZXJpdDtcbiAgY29udGVudDogJyc7XG4gIGhlaWdodDogMWVtO1xuICB3aWR0aDogYXV0bztcbiAgb3BhY2l0eTogMC44O1xuICBtYXJnaW46IDBlbSAwZW0gMGVtIDAuNWVtO1xuICBmb250LWZhbWlseTogJ0ljb25zJztcbn1cbi51aS5zb3J0YWJsZS50YWJsZSB0aGVhZCB0aC5hc2NlbmRpbmc6YWZ0ZXIge1xuICBjb250ZW50OiAnXFxmMGQ4Jztcbn1cbi51aS5zb3J0YWJsZS50YWJsZSB0aGVhZCB0aC5kZXNjZW5kaW5nOmFmdGVyIHtcbiAgY29udGVudDogJ1xcZjBkNyc7XG59XG4vKiBIb3ZlciAqL1xuLnVpLnNvcnRhYmxlLnRhYmxlIHRoLmRpc2FibGVkOmhvdmVyIHtcbiAgY3Vyc29yOiBhdXRvO1xuICBjb2xvcjogcmdiYSg0MCwgNDAsIDQwLCAwLjMpO1xufVxuLnVpLnNvcnRhYmxlLnRhYmxlIHRoZWFkIHRoOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjA1KTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44KTtcbn1cbi8qIFNvcnRlZCAqL1xuLnVpLnNvcnRhYmxlLnRhYmxlIHRoZWFkIHRoLnNvcnRlZCB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4wNSk7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuOTUpO1xufVxuLnVpLnNvcnRhYmxlLnRhYmxlIHRoZWFkIHRoLnNvcnRlZDphZnRlciB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cbi8qIFNvcnRlZCBIb3ZlciAqL1xuLnVpLnNvcnRhYmxlLnRhYmxlIHRoZWFkIHRoLnNvcnRlZDpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4wNSk7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuOTUpO1xufVxuLyogSW52ZXJ0ZWQgKi9cbi51aS5pbnZlcnRlZC5zb3J0YWJsZS50YWJsZSB0aGVhZCB0aC5zb3J0ZWQge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpIGxpbmVhci1ncmFkaWVudCh0cmFuc3BhcmVudCwgcmdiYSgwLCAwLCAwLCAwLjA1KSk7XG4gIGNvbG9yOiAjZmZmZmZmO1xufVxuLnVpLmludmVydGVkLnNvcnRhYmxlLnRhYmxlIHRoZWFkIHRoOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA4KSBsaW5lYXItZ3JhZGllbnQodHJhbnNwYXJlbnQsIHJnYmEoMCwgMCwgMCwgMC4wNSkpO1xuICBjb2xvcjogI2ZmZmZmZjtcbn1cbi51aS5pbnZlcnRlZC5zb3J0YWJsZS50YWJsZSB0aGVhZCB0aCB7XG4gIGJvcmRlci1sZWZ0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXJpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBJbnZlcnRlZFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRleHQgQ29sb3IgKi9cbi51aS5pbnZlcnRlZC50YWJsZSB7XG4gIGJhY2tncm91bmQ6ICMzMzMzMzM7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOSk7XG4gIGJvcmRlcjogbm9uZTtcbn1cbi51aS5pbnZlcnRlZC50YWJsZSB0aCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xNSk7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOSk7XG59XG4udWkuaW52ZXJ0ZWQudGFibGUgdHIgdGQge1xuICBib3JkZXItY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKSAhaW1wb3J0YW50O1xufVxuLnVpLmludmVydGVkLnRhYmxlIHRyLmRpc2FibGVkIHRkLFxuLnVpLmludmVydGVkLnRhYmxlIHRyIHRkLmRpc2FibGVkLFxuLnVpLmludmVydGVkLnRhYmxlIHRyLmRpc2FibGVkOmhvdmVyIHRkLFxuLnVpLmludmVydGVkLnRhYmxlIHRyOmhvdmVyIHRkLmRpc2FibGVkIHtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIGNvbG9yOiByZ2JhKDIyNSwgMjI1LCAyMjUsIDAuMyk7XG59XG4vKiBEZWZpbml0aW9uICovXG4udWkuaW52ZXJ0ZWQuZGVmaW5pdGlvbi50YWJsZSB0Zm9vdDpub3QoLmZ1bGwtd2lkdGgpIHRoOmZpcnN0LWNoaWxkLFxuLnVpLmludmVydGVkLmRlZmluaXRpb24udGFibGUgdGhlYWQ6bm90KC5mdWxsLXdpZHRoKSB0aDpmaXJzdC1jaGlsZCB7XG4gIGJhY2tncm91bmQ6ICNmZmZmZmY7XG59XG4udWkuaW52ZXJ0ZWQuZGVmaW5pdGlvbi50YWJsZSB0ciB0ZDpmaXJzdC1jaGlsZCB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wMik7XG4gIGNvbG9yOiAjZmZmZmZmO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgQ29sbGFwc2luZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5jb2xsYXBzaW5nLnRhYmxlIHtcbiAgd2lkdGg6IGF1dG87XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNpY1xuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5iYXNpYy50YWJsZSB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpO1xuICBib3gtc2hhZG93OiBub25lO1xufVxuLnVpLmJhc2ljLnRhYmxlIHRoZWFkLFxuLnVpLmJhc2ljLnRhYmxlIHRmb290IHtcbiAgYm94LXNoYWRvdzogbm9uZTtcbn1cbi51aS5iYXNpYy50YWJsZSB0aCB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBib3JkZXItbGVmdDogbm9uZTtcbn1cbi51aS5iYXNpYy50YWJsZSB0Ym9keSB0ciB7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2JhKDAsIDAsIDAsIDAuMSk7XG59XG4udWkuYmFzaWMudGFibGUgdGQge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbn1cbi51aS5iYXNpYy5zdHJpcGVkLnRhYmxlIHRib2R5IHRyOm50aC1jaGlsZCgybikge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMDUpICFpbXBvcnRhbnQ7XG59XG4vKiBWZXJ5IEJhc2ljICovXG4udWlbY2xhc3MqPVwidmVyeSBiYXNpY1wiXS50YWJsZSB7XG4gIGJvcmRlcjogbm9uZTtcbn1cbi51aVtjbGFzcyo9XCJ2ZXJ5IGJhc2ljXCJdLnRhYmxlOm5vdCguc29ydGFibGUpOm5vdCguc3RyaXBlZCkgdGgsXG4udWlbY2xhc3MqPVwidmVyeSBiYXNpY1wiXS50YWJsZTpub3QoLnNvcnRhYmxlKTpub3QoLnN0cmlwZWQpIHRkIHtcbiAgcGFkZGluZzogJyc7XG59XG4udWlbY2xhc3MqPVwidmVyeSBiYXNpY1wiXS50YWJsZTpub3QoLnNvcnRhYmxlKTpub3QoLnN0cmlwZWQpIHRoOmZpcnN0LWNoaWxkLFxuLnVpW2NsYXNzKj1cInZlcnkgYmFzaWNcIl0udGFibGU6bm90KC5zb3J0YWJsZSk6bm90KC5zdHJpcGVkKSB0ZDpmaXJzdC1jaGlsZCB7XG4gIHBhZGRpbmctbGVmdDogMGVtO1xufVxuLnVpW2NsYXNzKj1cInZlcnkgYmFzaWNcIl0udGFibGU6bm90KC5zb3J0YWJsZSk6bm90KC5zdHJpcGVkKSB0aDpsYXN0LWNoaWxkLFxuLnVpW2NsYXNzKj1cInZlcnkgYmFzaWNcIl0udGFibGU6bm90KC5zb3J0YWJsZSk6bm90KC5zdHJpcGVkKSB0ZDpsYXN0LWNoaWxkIHtcbiAgcGFkZGluZy1yaWdodDogMGVtO1xufVxuLnVpW2NsYXNzKj1cInZlcnkgYmFzaWNcIl0udGFibGU6bm90KC5zb3J0YWJsZSk6bm90KC5zdHJpcGVkKSB0aGVhZCB0cjpmaXJzdC1jaGlsZCB0aCB7XG4gIHBhZGRpbmctdG9wOiAwZW07XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIENlbGxlZFxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5jZWxsZWQudGFibGUgdHIgdGgsXG4udWkuY2VsbGVkLnRhYmxlIHRyIHRkIHtcbiAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCByZ2JhKDM0LCAzNiwgMzgsIDAuMSk7XG59XG4udWkuY2VsbGVkLnRhYmxlIHRyIHRoOmZpcnN0LWNoaWxkLFxuLnVpLmNlbGxlZC50YWJsZSB0ciB0ZDpmaXJzdC1jaGlsZCB7XG4gIGJvcmRlci1sZWZ0OiBub25lO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBQYWRkZWRcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkucGFkZGVkLnRhYmxlIHRoIHtcbiAgcGFkZGluZy1sZWZ0OiAxZW07XG4gIHBhZGRpbmctcmlnaHQ6IDFlbTtcbn1cbi51aS5wYWRkZWQudGFibGUgdGgsXG4udWkucGFkZGVkLnRhYmxlIHRkIHtcbiAgcGFkZGluZzogMWVtIDFlbTtcbn1cbi8qIFZlcnkgKi9cbi51aVtjbGFzcyo9XCJ2ZXJ5IHBhZGRlZFwiXS50YWJsZSB0aCB7XG4gIHBhZGRpbmctbGVmdDogMS41ZW07XG4gIHBhZGRpbmctcmlnaHQ6IDEuNWVtO1xufVxuLnVpW2NsYXNzKj1cInZlcnkgcGFkZGVkXCJdLnRhYmxlIHRkIHtcbiAgcGFkZGluZzogMS41ZW0gMS41ZW07XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIENvbXBhY3Rcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuY29tcGFjdC50YWJsZSB0aCB7XG4gIHBhZGRpbmctbGVmdDogMC43ZW07XG4gIHBhZGRpbmctcmlnaHQ6IDAuN2VtO1xufVxuLnVpLmNvbXBhY3QudGFibGUgdGQge1xuICBwYWRkaW5nOiAwLjVlbSAwLjdlbTtcbn1cbi8qIFZlcnkgKi9cbi51aVtjbGFzcyo9XCJ2ZXJ5IGNvbXBhY3RcIl0udGFibGUgdGgge1xuICBwYWRkaW5nLWxlZnQ6IDAuNmVtO1xuICBwYWRkaW5nLXJpZ2h0OiAwLjZlbTtcbn1cbi51aVtjbGFzcyo9XCJ2ZXJ5IGNvbXBhY3RcIl0udGFibGUgdGQge1xuICBwYWRkaW5nOiAwLjRlbSAwLjZlbTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogU21hbGwgKi9cbi51aS5zbWFsbC50YWJsZSB7XG4gIGZvbnQtc2l6ZTogMC45ZW07XG59XG4vKiBTdGFuZGFyZCAqL1xuLnVpLnRhYmxlIHtcbiAgZm9udC1zaXplOiAxZW07XG59XG4vKiBMYXJnZSAqL1xuLnVpLmxhcmdlLnRhYmxlIHtcbiAgZm9udC1zaXplOiAxLjFlbTtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIE92ZXJyaWRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFZpZXdzICovXG4vKiFcbiAqICMgU2VtYW50aWMgVUkgLSBBZFxuICogaHR0cDovL2dpdGh1Yi5jb20vc2VtYW50aWMtb3JnL3NlbWFudGljLXVpL1xuICpcbiAqXG4gKiBDb3B5cmlnaHQgMjAxMyBDb250cmlidXRvcnNcbiAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZVxuICogaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVFxuICpcbiAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLypcblxu4paI4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWXICDilojilojilZfilojilojilojilojilojilojilojilZfilojilojilojilZcgICDilojilojilojilZfilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZdcbuKVmuKVkOKVkOKWiOKWiOKVlOKVkOKVkOKVneKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWd4paI4paI4paI4paI4pWXIOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVnVxuICAg4paI4paI4pWRICAg4paI4paI4paI4paI4paI4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilZTilojilojilojilojilZTilojilojilZHilojilojilojilojilojilZcgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl1xuICAg4paI4paI4pWRICAg4paI4paI4pWU4pWQ4pWQ4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilojilojilZHilZrilojilojilZTilZ3ilojilojilZHilojilojilZTilZDilZDilZ0gIOKVmuKVkOKVkOKVkOKVkOKWiOKWiOKVkVxuICAg4paI4paI4pWRICAg4paI4paI4pWRICDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilZEg4pWa4pWQ4pWdIOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkVxuICAg4pWa4pWQ4pWdICAg4pWa4pWQ4pWdICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZ0gICAgIOKVmuKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVnVxuXG4qL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgVGhlbWUgU2VsZWN0aW9uXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogVG8gb3ZlcnJpZGUgYSB0aGVtZSBmb3IgYW4gaW5kaXZpZHVhbCBlbGVtZW50XG4gICBzcGVjaWZ5IHRoZW1lIG5hbWUgYmVsb3dcbiovXG4vKiBHbG9iYWwgKi9cbi8qIEVsZW1lbnRzICovXG4vKiBDb2xsZWN0aW9ucyAqL1xuLyogTW9kdWxlcyAqL1xuLyogVmlld3MgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBGb2xkZXJzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogUGF0aCB0byB0aGVtZSBwYWNrYWdlcyAqL1xuLyogUGF0aCB0byBzaXRlIG92ZXJyaWRlIGZvbGRlciAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIEltcG9ydCBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIEltcG9ydCBEaXJlY3RpdmVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBUaGVtZVxuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICBTaXRlIFZhcmlhYmxlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERlZmF1bHQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZG9ycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBQYWNrYWdlZCBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kb3JzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIENvbXBvbmVudCdzIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRvcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogU2l0ZSB0aGVtZSBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgVXNlciBHbG9iYWwgVmFyaWFibGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogbWFyc28gY29sb3JzICovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gQ29tcG9uZW50IFZhcmlhYmxlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERlZmF1bHQgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgQWR2ZXJ0aXNlbWVudFxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFBhY2thZ2VkIFRoZW1lICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgIEFkdmVydGlzZW1lbnRcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBTaXRlIFRoZW1lICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgIFVzZXIgVmFyaWFibGUgT3ZlcnJpZGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBNaXgtaW5zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBPdmVycmlkZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRW5kIENvbmZpZyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIEFkdmVydGlzZW1lbnRcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4udWkuYWQge1xuICBkaXNwbGF5OiBibG9jaztcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgbWFyZ2luOiAxZW0gMGVtO1xufVxuLnVpLmFkOmZpcnN0LWNoaWxkIHtcbiAgbWFyZ2luOiAwZW07XG59XG4udWkuYWQ6bGFzdC1jaGlsZCB7XG4gIG1hcmdpbjogMGVtO1xufVxuLnVpLmFkIGlmcmFtZSB7XG4gIG1hcmdpbjogMGVtO1xuICBwYWRkaW5nOiAwZW07XG4gIGJvcmRlcjogbm9uZTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgQ29tbW9uXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogTGVhZGVyYm9hcmQgKi9cbi51aS5sZWFkZXJib2FyZC5hZCB7XG4gIHdpZHRoOiA3MjhweDtcbiAgaGVpZ2h0OiA5MHB4O1xufVxuLyogTWVkaXVtIFJlY3RhbmdsZSAqL1xuLnVpW2NsYXNzKj1cIm1lZGl1bSByZWN0YW5nbGVcIl0uYWQge1xuICB3aWR0aDogMzAwcHg7XG4gIGhlaWdodDogMjUwcHg7XG59XG4vKiBMYXJnZSBSZWN0YW5nbGUgKi9cbi51aVtjbGFzcyo9XCJsYXJnZSByZWN0YW5nbGVcIl0uYWQge1xuICB3aWR0aDogMzM2cHg7XG4gIGhlaWdodDogMjgwcHg7XG59XG4vKiBIYWxmIFBhZ2UgKi9cbi51aVtjbGFzcyo9XCJoYWxmIHBhZ2VcIl0uYWQge1xuICB3aWR0aDogMzAwcHg7XG4gIGhlaWdodDogNjAwcHg7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIFNxdWFyZVxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNxdWFyZSAqL1xuLnVpLnNxdWFyZS5hZCB7XG4gIHdpZHRoOiAyNTBweDtcbiAgaGVpZ2h0OiAyNTBweDtcbn1cbi8qIFNtYWxsIFNxdWFyZSAqL1xuLnVpW2NsYXNzKj1cInNtYWxsIHNxdWFyZVwiXS5hZCB7XG4gIHdpZHRoOiAyMDBweDtcbiAgaGVpZ2h0OiAyMDBweDtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBSZWN0YW5nbGVcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBTbWFsbCBSZWN0YW5nbGUgKi9cbi51aVtjbGFzcyo9XCJzbWFsbCByZWN0YW5nbGVcIl0uYWQge1xuICB3aWR0aDogMTgwcHg7XG4gIGhlaWdodDogMTUwcHg7XG59XG4vKiBWZXJ0aWNhbCBSZWN0YW5nbGUgKi9cbi51aVtjbGFzcyo9XCJ2ZXJ0aWNhbCByZWN0YW5nbGVcIl0uYWQge1xuICB3aWR0aDogMjQwcHg7XG4gIGhlaWdodDogNDAwcHg7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIEJ1dHRvblxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5idXR0b24uYWQge1xuICB3aWR0aDogMTIwcHg7XG4gIGhlaWdodDogOTBweDtcbn1cbi51aVtjbGFzcyo9XCJzcXVhcmUgYnV0dG9uXCJdLmFkIHtcbiAgd2lkdGg6IDEyNXB4O1xuICBoZWlnaHQ6IDEyNXB4O1xufVxuLnVpW2NsYXNzKj1cInNtYWxsIGJ1dHRvblwiXS5hZCB7XG4gIHdpZHRoOiAxMjBweDtcbiAgaGVpZ2h0OiA2MHB4O1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgU2t5c2NyYXBlcnNcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBTa3lzY3JhcGVyICovXG4udWkuc2t5c2NyYXBlci5hZCB7XG4gIHdpZHRoOiAxMjBweDtcbiAgaGVpZ2h0OiA2MDBweDtcbn1cbi8qIFdpZGUgU2t5c2NyYXBlciAqL1xuLnVpW2NsYXNzKj1cIndpZGUgc2t5c2NyYXBlclwiXS5hZCB7XG4gIHdpZHRoOiAxNjBweDtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgQmFubmVyc1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEJhbm5lciAqL1xuLnVpLmJhbm5lci5hZCB7XG4gIHdpZHRoOiA0NjhweDtcbiAgaGVpZ2h0OiA2MHB4O1xufVxuLyogVmVydGljYWwgQmFubmVyICovXG4udWlbY2xhc3MqPVwidmVydGljYWwgYmFubmVyXCJdLmFkIHtcbiAgd2lkdGg6IDEyMHB4O1xuICBoZWlnaHQ6IDI0MHB4O1xufVxuLyogVG9wIEJhbm5lciAqL1xuLnVpW2NsYXNzKj1cInRvcCBiYW5uZXJcIl0uYWQge1xuICB3aWR0aDogOTMwcHg7XG4gIGhlaWdodDogMTgwcHg7XG59XG4vKiBIYWxmIEJhbm5lciAqL1xuLnVpW2NsYXNzKj1cImhhbGYgYmFubmVyXCJdLmFkIHtcbiAgd2lkdGg6IDIzNHB4O1xuICBoZWlnaHQ6IDYwcHg7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgQm9hcmRzXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogTGVhZGVyYm9hcmQgKi9cbi51aVtjbGFzcyo9XCJsYXJnZSBsZWFkZXJib2FyZFwiXS5hZCB7XG4gIHdpZHRoOiA5NzBweDtcbiAgaGVpZ2h0OiA5MHB4O1xufVxuLyogQmlsbGJvYXJkICovXG4udWkuYmlsbGJvYXJkLmFkIHtcbiAgd2lkdGg6IDk3MHB4O1xuICBoZWlnaHQ6IDI1MHB4O1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgIFBhbm9yYW1hXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogUGFub3JhbWEgKi9cbi51aS5wYW5vcmFtYS5hZCB7XG4gIHdpZHRoOiA5ODBweDtcbiAgaGVpZ2h0OiAxMjBweDtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV0Ym9hcmRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBOZXRib2FyZCAqL1xuLnVpLm5ldGJvYXJkLmFkIHtcbiAgd2lkdGg6IDU4MHB4O1xuICBoZWlnaHQ6IDQwMHB4O1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBNb2JpbGVcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBMYXJnZSBNb2JpbGUgQmFubmVyICovXG4udWlbY2xhc3MqPVwibGFyZ2UgbW9iaWxlIGJhbm5lclwiXS5hZCB7XG4gIHdpZHRoOiAzMjBweDtcbiAgaGVpZ2h0OiAxMDBweDtcbn1cbi8qIE1vYmlsZSBMZWFkZXJib2FyZCAqL1xuLnVpW2NsYXNzKj1cIm1vYmlsZSBsZWFkZXJib2FyZFwiXS5hZCB7XG4gIHdpZHRoOiAzMjBweDtcbiAgaGVpZ2h0OiA1MHB4O1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBUeXBlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIE1vYmlsZSBTaXplcyAqL1xuLnVpLm1vYmlsZS5hZCB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC51aS5tb2JpbGUuYWQge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBWYXJpYXRpb25zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLnVpLmNlbnRlcmVkLmFkIHtcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbn1cbi51aS50ZXN0LmFkIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBiYWNrZ3JvdW5kOiAjNTQ1NDU0O1xufVxuLnVpLnRlc3QuYWQ6YWZ0ZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICBsZWZ0OiA1MCU7XG4gIHdpZHRoOiAxMDAlO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKSB0cmFuc2xhdGVZKC01MCUpO1xuICBjb250ZW50OiAnQWQnO1xuICBjb2xvcjogI2ZmZmZmZjtcbiAgZm9udC1zaXplOiAxZW07XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuLnVpLm1vYmlsZS50ZXN0LmFkOmFmdGVyIHtcbiAgZm9udC1zaXplOiAwLjllbTtcbn1cbi51aS50ZXN0LmFkW2RhdGEtdGV4dF06YWZ0ZXIge1xuICBjb250ZW50OiBhdHRyKGRhdGEtdGV4dCk7XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgVGhlbWUgT3ZlcnJpZGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICBVc2VyIFZhcmlhYmxlIE92ZXJyaWRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIVxuICogIyBTZW1hbnRpYyBVSSAtIEl0ZW1cbiAqIGh0dHA6Ly9naXRodWIuY29tL3NlbWFudGljLW9yZy9zZW1hbnRpYy11aS9cbiAqXG4gKlxuICogUmVsZWFzZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlXG4gKiBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUXG4gKlxuICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKlxuXG7ilojilojilojilojilojilojilojilojilZfilojilojilZcgIOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKVlyAgIOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl1xu4pWa4pWQ4pWQ4paI4paI4pWU4pWQ4pWQ4pWd4paI4paI4pWRICDilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilojilojilZcg4paI4paI4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWd4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWdXG4gICDilojilojilZEgICDilojilojilojilojilojilojilojilZHilojilojilojilojilojilZcgIOKWiOKWiOKVlOKWiOKWiOKWiOKWiOKVlOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4paI4paI4paI4paI4paI4pWXXG4gICDilojilojilZEgICDilojilojilZTilZDilZDilojilojilZHilojilojilZTilZDilZDilZ0gIOKWiOKWiOKVkeKVmuKWiOKWiOKVlOKVneKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4pWa4pWQ4pWQ4pWQ4pWQ4paI4paI4pWRXG4gICDilojilojilZEgICDilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVkSDilZrilZDilZ0g4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWRXG4gICDilZrilZDilZ0gICDilZrilZDilZ0gIOKVmuKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVneKVmuKVkOKVnSAgICAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWdXG5cbiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBUaGVtZSBTZWxlY3Rpb25cbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBUbyBvdmVycmlkZSBhIHRoZW1lIGZvciBhbiBpbmRpdmlkdWFsIGVsZW1lbnRcbiAgIHNwZWNpZnkgdGhlbWUgbmFtZSBiZWxvd1xuKi9cbi8qIEdsb2JhbCAqL1xuLyogRWxlbWVudHMgKi9cbi8qIENvbGxlY3Rpb25zICovXG4vKiBNb2R1bGVzICovXG4vKiBWaWV3cyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIEZvbGRlcnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBQYXRoIHRvIHRoZW1lIHBhY2thZ2VzICovXG4vKiBQYXRoIHRvIHNpdGUgb3ZlcnJpZGUgZm9sZGVyICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgSW1wb3J0IFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgSW1wb3J0IERpcmVjdGl2ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIFRoZW1lXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgIFNpdGUgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kb3JzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFBhY2thZ2VkIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRvcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogQ29tcG9uZW50J3Mgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZG9ycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBTaXRlIHRoZW1lIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICBVc2VyIEdsb2JhbCBWYXJpYWJsZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBtYXJzbyBjb2xvcnMgKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiBDb21wb25lbnQgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBDYXJkXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgICBWaWV3XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTaGFkb3cgKi9cbi8qIENhcmQgKi9cbi8qIENhcmQgR3JvdXAgKi9cbi8qIENvbnNlY3V0aXZlIENhcmRzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBDb250ZW50XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbWFnZSAqL1xuLyogQ29udGVudCAqL1xuLyogSGVhZGVyICovXG4vKiBNZXRhZGF0YSAqL1xuLyogSWNvbnMgKi9cbi8qIExpbmtzICovXG4vKiBEZXNjcmlwdGlvbiAqL1xuLyogQ29udGVudCBJbWFnZSAqL1xuLyogQXZhdGFyIEltYWdlICovXG4vKiBQYXJhZ3JhcGggKi9cbi8qIERpbW1lciAqL1xuLyogQWRkaXRpb25hbCBDb250ZW50ICovXG4vKiBFeHRyYSBMaW5rcyAqL1xuLyogQnV0dG9ucyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBWYXJpYXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMaW5rICovXG4vKiBSYWlzZWQgKi9cbi8qIENhcmQgQ291bnQgKi9cbi8qIFN0YWNrYWJsZSAqL1xuLyogU2l6ZXMgKi9cbi8qIENvbG9yZWQgKi9cbi8qIFBhY2thZ2VkIFRoZW1lICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIENhcmRcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgIFZpZXdcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNoYWRvdyAqL1xuLyogQ2FyZCAqL1xuLyogQ2FyZCBHcm91cCAqL1xuLyogQ29uc2VjdXRpdmUgQ2FyZHMgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIENvbnRlbnRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEltYWdlICovXG4vKiBDb250ZW50ICovXG4vKiBIZWFkZXIgKi9cbi8qIE1ldGFkYXRhICovXG4vKiBJY29ucyAqL1xuLyogTGlua3MgKi9cbi8qIERlc2NyaXB0aW9uICovXG4vKiBDb250ZW50IEltYWdlICovXG4vKiBBdmF0YXIgSW1hZ2UgKi9cbi8qIFBhcmFncmFwaCAqL1xuLyogRGltbWVyICovXG4vKiBBZGRpdGlvbmFsIENvbnRlbnQgKi9cbi8qIEV4dHJhIExpbmtzICovXG4vKiBCdXR0b25zICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFZhcmlhdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExpbmsgKi9cbi8qIFJhaXNlZCAqL1xuLyogQ2FyZCBDb3VudCAqL1xuLyogU3RhY2thYmxlICovXG4vKiBTaXplcyAqL1xuLyogQ29sb3JlZCAqL1xuLyogU2l0ZSBUaGVtZSAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICBVc2VyIFZhcmlhYmxlIE92ZXJyaWRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgTWl4LWluc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgT3ZlcnJpZGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEVuZCBDb25maWcgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBTdGFuZGFyZFxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgIENhcmRcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuY2FyZHMgPiAuY2FyZCxcbi51aS5jYXJkIHtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIHdpZHRoOiAyOTBweDtcbiAgbWluLWhlaWdodDogMHB4O1xuICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICBwYWRkaW5nOiAwZW07XG4gIGJvcmRlcjogbm9uZTtcbiAgYm9yZGVyLXJhZGl1czogMC40cmVtO1xuICBib3gtc2hhZG93OiAwcHggMXB4IDNweCAwcHggI0Q0RDRENSwgMHB4IDBweCAwcHggMXB4ICNENEQ0RDU7XG4gIHRyYW5zaXRpb246IGJveC1zaGFkb3cgMC4xcyBlYXNlLCB0cmFuc2Zvcm0gMC4xcyBlYXNlO1xuICB6LWluZGV4OiAnJztcbn1cbi51aS5jYXJkIHtcbiAgbWFyZ2luOiAxZW0gMGVtO1xufVxuLnVpLmNhcmRzID4gLmNhcmQgYSxcbi51aS5jYXJkIGEge1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4udWkuY2FyZDpmaXJzdC1jaGlsZCB7XG4gIG1hcmdpbi10b3A6IDBlbTtcbn1cbi51aS5jYXJkOmxhc3QtY2hpbGQge1xuICBtYXJnaW4tYm90dG9tOiAwZW07XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgICBDYXJkc1xuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5jYXJkcyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIG1hcmdpbjogLTAuODc1ZW0gLTAuNWVtO1xuICBmbGV4LXdyYXA6IHdyYXA7XG59XG4udWkuY2FyZHMgPiAuY2FyZCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIG1hcmdpbjogMC44NzVlbSAwLjVlbTtcbiAgZmxvYXQ6IG5vbmU7XG59XG4vKiBDbGVhcmluZyAqL1xuLnVpLmNhcmRzOmFmdGVyLFxuLnVpLmNhcmQ6YWZ0ZXIge1xuICBkaXNwbGF5OiBibG9jaztcbiAgY29udGVudDogJyAnO1xuICBoZWlnaHQ6IDBweDtcbiAgY2xlYXI6IGJvdGg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbn1cbi8qIENvbnNlY3V0aXZlIENhcmQgR3JvdXBzIFByZXNlcnZlIFJvdyBTcGFjaW5nICovXG4udWkuY2FyZHMgfiAudWkuY2FyZHMge1xuICBtYXJnaW4tdG9wOiAwLjg3NWVtO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICBSb3VuZGVkIEVkZ2VzXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmNhcmRzID4gLmNhcmQgPiA6Zmlyc3QtY2hpbGQsXG4udWkuY2FyZCA+IDpmaXJzdC1jaGlsZCB7XG4gIGJvcmRlci1yYWRpdXM6IDAuNHJlbSAwLjRyZW0gMGVtIDBlbSAhaW1wb3J0YW50O1xuICBib3JkZXItdG9wOiBub25lICFpbXBvcnRhbnQ7XG59XG4udWkuY2FyZHMgPiAuY2FyZCA+IDpsYXN0LWNoaWxkLFxuLnVpLmNhcmQgPiA6bGFzdC1jaGlsZCB7XG4gIGJvcmRlci1yYWRpdXM6IDBlbSAwZW0gMC40cmVtIDAuNHJlbSAhaW1wb3J0YW50O1xufVxuLnVpLmNhcmRzID4gLmNhcmQgPiA6b25seS1jaGlsZCxcbi51aS5jYXJkID4gOm9ubHktY2hpbGQge1xuICBib3JkZXItcmFkaXVzOiAwLjRyZW0gIWltcG9ydGFudDtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgSW1hZ2VzXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmNhcmRzID4gLmNhcmQgPiAuaW1hZ2UsXG4udWkuY2FyZCA+IC5pbWFnZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZsZXg6IDAgMCBhdXRvO1xuICBwYWRkaW5nOiAwZW07XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4wNSk7XG59XG4udWkuY2FyZHMgPiAuY2FyZCA+IC5pbWFnZSA+IGltZyxcbi51aS5jYXJkID4gLmltYWdlID4gaW1nIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IGF1dG87XG4gIGJvcmRlci1yYWRpdXM6IGluaGVyaXQ7XG59XG4udWkuY2FyZHMgPiAuY2FyZCA+IC5pbWFnZTpub3QoLnVpKSA+IGltZyxcbi51aS5jYXJkID4gLmltYWdlOm5vdCgudWkpID4gaW1nIHtcbiAgYm9yZGVyOiBub25lO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBDb250ZW50XG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmNhcmRzID4gLmNhcmQgPiAuY29udGVudCxcbi51aS5jYXJkID4gLmNvbnRlbnQge1xuICBmbGV4LWdyb3c6IDE7XG4gIGJvcmRlcjogbm9uZTtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHJnYmEoMzQsIDM2LCAzOCwgMC4xKTtcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgbWFyZ2luOiAwZW07XG4gIHBhZGRpbmc6IDFlbSAxZW07XG4gIGJveC1zaGFkb3c6IG5vbmU7XG4gIGZvbnQtc2l6ZTogMWVtO1xuICBib3JkZXItcmFkaXVzOiAwZW07XG59XG4udWkuY2FyZHMgPiAuY2FyZCA+IC5jb250ZW50OmFmdGVyLFxuLnVpLmNhcmQgPiAuY29udGVudDphZnRlciB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBjb250ZW50OiAnICc7XG4gIGhlaWdodDogMHB4O1xuICBjbGVhcjogYm90aDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xufVxuLnVpLmNhcmRzID4gLmNhcmQgPiAuY29udGVudCA+IC5oZWFkZXIsXG4udWkuY2FyZCA+IC5jb250ZW50ID4gLmhlYWRlciB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW46ICcnO1xuICBmb250LWZhbWlseTogJ0V4byAyJywgJ0xhdG8nLCBBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg1KTtcbn1cbi8qIERlZmF1bHQgSGVhZGVyIFNpemUgKi9cbi51aS5jYXJkcyA+IC5jYXJkID4gLmNvbnRlbnQgPiAuaGVhZGVyOm5vdCgudWkpLFxuLnVpLmNhcmQgPiAuY29udGVudCA+IC5oZWFkZXI6bm90KC51aSkge1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgZm9udC1zaXplOiAxLjNlbTtcbiAgbWFyZ2luLXRvcDogLTAuMjE0MjVlbTtcbiAgbGluZS1oZWlnaHQ6IDEuMjg1NzE0MjllbTtcbn1cbi51aS5jYXJkcyA+IC5jYXJkID4gLmNvbnRlbnQgPiAubWV0YSArIC5kZXNjcmlwdGlvbixcbi51aS5jYXJkcyA+IC5jYXJkID4gLmNvbnRlbnQgPiAuaGVhZGVyICsgLmRlc2NyaXB0aW9uLFxuLnVpLmNhcmQgPiAuY29udGVudCA+IC5tZXRhICsgLmRlc2NyaXB0aW9uLFxuLnVpLmNhcmQgPiAuY29udGVudCA+IC5oZWFkZXIgKyAuZGVzY3JpcHRpb24ge1xuICBtYXJnaW4tdG9wOiAwLjVlbTtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLVxuIEZsb2F0ZWQgQ29udGVudFxuLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmNhcmRzID4gLmNhcmQgW2NsYXNzKj1cImxlZnQgZmxvYXRlZFwiXSxcbi51aS5jYXJkIFtjbGFzcyo9XCJsZWZ0IGZsb2F0ZWRcIl0ge1xuICBmbG9hdDogbGVmdDtcbn1cbi51aS5jYXJkcyA+IC5jYXJkIFtjbGFzcyo9XCJyaWdodCBmbG9hdGVkXCJdLFxuLnVpLmNhcmQgW2NsYXNzKj1cInJpZ2h0IGZsb2F0ZWRcIl0ge1xuICBmbG9hdDogcmlnaHQ7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIEFsaWduZWRcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuY2FyZHMgPiAuY2FyZCBbY2xhc3MqPVwibGVmdCBhbGlnbmVkXCJdLFxuLnVpLmNhcmQgW2NsYXNzKj1cImxlZnQgYWxpZ25lZFwiXSB7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG59XG4udWkuY2FyZHMgPiAuY2FyZCBbY2xhc3MqPVwiY2VudGVyIGFsaWduZWRcIl0sXG4udWkuY2FyZCBbY2xhc3MqPVwiY2VudGVyIGFsaWduZWRcIl0ge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG4udWkuY2FyZHMgPiAuY2FyZCBbY2xhc3MqPVwicmlnaHQgYWxpZ25lZFwiXSxcbi51aS5jYXJkIFtjbGFzcyo9XCJyaWdodCBhbGlnbmVkXCJdIHtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gIENvbnRlbnQgSW1hZ2Vcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuY2FyZHMgPiAuY2FyZCAuY29udGVudCBpbWcsXG4udWkuY2FyZCAuY29udGVudCBpbWcge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIHdpZHRoOiAnJztcbn1cbi51aS5jYXJkcyA+IC5jYXJkIGltZy5hdmF0YXIsXG4udWkuY2FyZHMgPiAuY2FyZCAuYXZhdGFyIGltZyxcbi51aS5jYXJkIGltZy5hdmF0YXIsXG4udWkuY2FyZCAuYXZhdGFyIGltZyB7XG4gIHdpZHRoOiAyZW07XG4gIGhlaWdodDogMmVtO1xuICBib3JkZXItcmFkaXVzOiA1MDByZW07XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICBEZXNjcmlwdGlvblxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5jYXJkcyA+IC5jYXJkID4gLmNvbnRlbnQgPiAuZGVzY3JpcHRpb24sXG4udWkuY2FyZCA+IC5jb250ZW50ID4gLmRlc2NyaXB0aW9uIHtcbiAgY2xlYXI6IGJvdGg7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNjgpO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5jYXJkcyA+IC5jYXJkID4gLmNvbnRlbnQgcCxcbi51aS5jYXJkID4gLmNvbnRlbnQgcCB7XG4gIG1hcmdpbjogMGVtIDBlbSAwLjVlbTtcbn1cbi51aS5jYXJkcyA+IC5jYXJkID4gLmNvbnRlbnQgcDpsYXN0LWNoaWxkLFxuLnVpLmNhcmQgPiAuY29udGVudCBwOmxhc3QtY2hpbGQge1xuICBtYXJnaW4tYm90dG9tOiAwZW07XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgICBNZXRhXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmNhcmRzID4gLmNhcmQgLm1ldGEsXG4udWkuY2FyZCAubWV0YSB7XG4gIGZvbnQtc2l6ZTogMWVtO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjQpO1xufVxuLnVpLmNhcmRzID4gLmNhcmQgLm1ldGEgKixcbi51aS5jYXJkIC5tZXRhICoge1xuICBtYXJnaW4tcmlnaHQ6IDAuM2VtO1xufVxuLnVpLmNhcmRzID4gLmNhcmQgLm1ldGEgOmxhc3QtY2hpbGQsXG4udWkuY2FyZCAubWV0YSA6bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1yaWdodDogMGVtO1xufVxuLnVpLmNhcmRzID4gLmNhcmQgLm1ldGEgW2NsYXNzKj1cInJpZ2h0IGZsb2F0ZWRcIl0sXG4udWkuY2FyZCAubWV0YSBbY2xhc3MqPVwicmlnaHQgZmxvYXRlZFwiXSB7XG4gIG1hcmdpbi1yaWdodDogMGVtO1xuICBtYXJnaW4tbGVmdDogMC4zZW07XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEdlbmVyaWMgKi9cbi51aS5jYXJkcyA+IC5jYXJkID4gLmNvbnRlbnQgYTpub3QoLnVpKSxcbi51aS5jYXJkID4gLmNvbnRlbnQgYTpub3QoLnVpKSB7XG4gIGNvbG9yOiAnJztcbiAgdHJhbnNpdGlvbjogY29sb3IgMC4xcyBlYXNlO1xufVxuLnVpLmNhcmRzID4gLmNhcmQgPiAuY29udGVudCBhOm5vdCgudWkpOmhvdmVyLFxuLnVpLmNhcmQgPiAuY29udGVudCBhOm5vdCgudWkpOmhvdmVyIHtcbiAgY29sb3I6ICcnO1xufVxuLyogSGVhZGVyICovXG4udWkuY2FyZHMgPiAuY2FyZCA+IC5jb250ZW50ID4gYS5oZWFkZXIsXG4udWkuY2FyZCA+IC5jb250ZW50ID4gYS5oZWFkZXIge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg1KTtcbn1cbi51aS5jYXJkcyA+IC5jYXJkID4gLmNvbnRlbnQgPiBhLmhlYWRlcjpob3Zlcixcbi51aS5jYXJkID4gLmNvbnRlbnQgPiBhLmhlYWRlcjpob3ZlciB7XG4gIGNvbG9yOiAjMWU3MGJmO1xufVxuLyogTWV0YSAqL1xuLnVpLmNhcmRzID4gLmNhcmQgLm1ldGEgPiBhOm5vdCgudWkpLFxuLnVpLmNhcmQgLm1ldGEgPiBhOm5vdCgudWkpIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC40KTtcbn1cbi51aS5jYXJkcyA+IC5jYXJkIC5tZXRhID4gYTpub3QoLnVpKTpob3Zlcixcbi51aS5jYXJkIC5tZXRhID4gYTpub3QoLnVpKTpob3ZlciB7XG4gIGNvbG9yOiAjMzMzMzMzO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBCdXR0b25zXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmNhcmRzID4gLmNhcmQgPiAuYnV0dG9ucyxcbi51aS5jYXJkID4gLmJ1dHRvbnMsXG4udWkuY2FyZHMgPiAuY2FyZCA+IC5idXR0b24sXG4udWkuY2FyZCA+IC5idXR0b24ge1xuICBtYXJnaW46IDBweCAtMXB4O1xuICB3aWR0aDogY2FsYygxMDAlICsgMnB4KTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpbW1lclxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5jYXJkcyA+IC5jYXJkIC5kaW1tZXIsXG4udWkuY2FyZCAuZGltbWVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogJyc7XG4gIHotaW5kZXg6IDEwO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBMYWJlbHNcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tU3Rhci0tLS0tICovXG4vKiBJY29uICovXG4udWkuY2FyZHMgPiAuY2FyZCA+IC5jb250ZW50IC5zdGFyLmljb24sXG4udWkuY2FyZCA+IC5jb250ZW50IC5zdGFyLmljb24ge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIG9wYWNpdHk6IDAuNzU7XG4gIHRyYW5zaXRpb246IGNvbG9yIDAuMXMgZWFzZTtcbn1cbi51aS5jYXJkcyA+IC5jYXJkID4gLmNvbnRlbnQgLnN0YXIuaWNvbjpob3Zlcixcbi51aS5jYXJkID4gLmNvbnRlbnQgLnN0YXIuaWNvbjpob3ZlciB7XG4gIG9wYWNpdHk6IDE7XG4gIGNvbG9yOiAjRkZCNzBBO1xufVxuLnVpLmNhcmRzID4gLmNhcmQgPiAuY29udGVudCAuYWN0aXZlLnN0YXIuaWNvbixcbi51aS5jYXJkID4gLmNvbnRlbnQgLmFjdGl2ZS5zdGFyLmljb24ge1xuICBjb2xvcjogI0ZGRTYyMztcbn1cbi8qLS0tLS1MaWtlLS0tLS0gKi9cbi8qIEljb24gKi9cbi51aS5jYXJkcyA+IC5jYXJkID4gLmNvbnRlbnQgLmxpa2UuaWNvbixcbi51aS5jYXJkID4gLmNvbnRlbnQgLmxpa2UuaWNvbiB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgb3BhY2l0eTogMC43NTtcbiAgdHJhbnNpdGlvbjogY29sb3IgMC4xcyBlYXNlO1xufVxuLnVpLmNhcmRzID4gLmNhcmQgPiAuY29udGVudCAubGlrZS5pY29uOmhvdmVyLFxuLnVpLmNhcmQgPiAuY29udGVudCAubGlrZS5pY29uOmhvdmVyIHtcbiAgb3BhY2l0eTogMTtcbiAgY29sb3I6ICNGRjI3MzM7XG59XG4udWkuY2FyZHMgPiAuY2FyZCA+IC5jb250ZW50IC5hY3RpdmUubGlrZS5pY29uLFxuLnVpLmNhcmQgPiAuY29udGVudCAuYWN0aXZlLmxpa2UuaWNvbiB7XG4gIGNvbG9yOiAjRkYyNzMzO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tXG4gIEV4dHJhIENvbnRlbnRcbi0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5jYXJkcyA+IC5jYXJkID4gLmV4dHJhLFxuLnVpLmNhcmQgPiAuZXh0cmEge1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIG1pbi1oZWlnaHQ6IDBlbSAhaW1wb3J0YW50O1xuICBmbGV4LWdyb3c6IDA7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCByZ2JhKDAsIDAsIDAsIDAuMDUpICFpbXBvcnRhbnQ7XG4gIHBvc2l0aW9uOiBzdGF0aWM7XG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIHdpZHRoOiBhdXRvO1xuICBtYXJnaW46IDBlbSAwZW07XG4gIHBhZGRpbmc6IDAuNzVlbSAxZW07XG4gIHRvcDogMGVtO1xuICBsZWZ0OiAwZW07XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNCk7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG4gIHRyYW5zaXRpb246IGNvbG9yIDAuMXMgZWFzZTtcbn1cbi51aS5jYXJkcyA+IC5jYXJkID4gLmV4dHJhIGE6bm90KC51aSksXG4udWkuY2FyZCA+IC5leHRyYSBhOm5vdCgudWkpIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC40KTtcbn1cbi51aS5jYXJkcyA+IC5jYXJkID4gLmV4dHJhIGE6bm90KC51aSk6aG92ZXIsXG4udWkuY2FyZCA+IC5leHRyYSBhOm5vdCgudWkpOmhvdmVyIHtcbiAgY29sb3I6ICMxZTcwYmY7XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBWYXJpYXRpb25zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgUmFpc2VkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkucmFpc2VkLmNhcmRzID4gLmNhcmQsXG4udWkucmFpc2VkLmNhcmQge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggI0Q0RDRENSwgMHB4IDJweCA0cHggMHB4IHJnYmEoMzQsIDM2LCAzOCwgMC4xMiksIDBweCAycHggMTBweCAwcHggcmdiYSgzNCwgMzYsIDM4LCAwLjE1KTtcbn1cbi51aS5yYWlzZWQuY2FyZHMgYS5jYXJkOmhvdmVyLFxuLnVpLmxpbmsuY2FyZHMgLnJhaXNlZC5jYXJkOmhvdmVyLFxuYS51aS5yYWlzZWQuY2FyZDpob3Zlcixcbi51aS5saW5rLnJhaXNlZC5jYXJkOmhvdmVyIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICNENEQ0RDUsIDBweCAycHggNHB4IDBweCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpLCAwcHggMnB4IDEwcHggMHB4IHJnYmEoMzQsIDM2LCAzOCwgMC4yNSk7XG59XG4udWkucmFpc2VkLmNhcmRzID4gLmNhcmQsXG4udWkucmFpc2VkLmNhcmQge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggI0Q0RDRENSwgMHB4IDJweCA0cHggMHB4IHJnYmEoMzQsIDM2LCAzOCwgMC4xMiksIDBweCAycHggMTBweCAwcHggcmdiYSgzNCwgMzYsIDM4LCAwLjE1KTtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIENlbnRlcmVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkuY2VudGVyZWQuY2FyZHMge1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbn1cbi51aS5jZW50ZXJlZC5jYXJkIHtcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGbHVpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmZsdWlkLmNhcmQge1xuICB3aWR0aDogMTAwJTtcbiAgbWF4LXdpZHRoOiA5OTk5cHg7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgTGlua1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmNhcmRzIGEuY2FyZCxcbi51aS5saW5rLmNhcmRzIC5jYXJkLFxuYS51aS5jYXJkLFxuLnVpLmxpbmsuY2FyZCB7XG4gIHRyYW5zZm9ybTogbm9uZTtcbn1cbi51aS5jYXJkcyBhLmNhcmQ6aG92ZXIsXG4udWkubGluay5jYXJkcyAuY2FyZDpob3ZlcixcbmEudWkuY2FyZDpob3Zlcixcbi51aS5saW5rLmNhcmQ6aG92ZXIge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHotaW5kZXg6IDU7XG4gIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gIGJvcmRlcjogbm9uZTtcbiAgYm94LXNoYWRvdzogMHB4IDFweCAzcHggMHB4ICNCQ0JEQkQsIDBweCAwcHggMHB4IDFweCAjRDRENEQ1O1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTNweCk7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFJlZCAqL1xuLnVpLnJlZC5jYXJkcyA+IC5jYXJkLFxuLnVpLmNhcmRzID4gLnJlZC5jYXJkLFxuLnVpLnJlZC5jYXJkIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICNENEQ0RDUsIDBweCAycHggMHB4IDBweCAjZGUzYTNlLCAwcHggMXB4IDNweCAwcHggI0Q0RDRENTtcbn1cbi51aS5yZWQuY2FyZHMgPiAuY2FyZDpob3Zlcixcbi51aS5jYXJkcyA+IC5yZWQuY2FyZDpob3Zlcixcbi51aS5yZWQuY2FyZDpob3ZlciB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjRDRENEQ1LCAwcHggMnB4IDBweCAwcHggI2UzMWIyMCwgMHB4IDFweCAzcHggMHB4ICNCQ0JEQkQ7XG59XG4vKiBPcmFuZ2UgKi9cbi51aS5vcmFuZ2UuY2FyZHMgPiAuY2FyZCxcbi51aS5jYXJkcyA+IC5vcmFuZ2UuY2FyZCxcbi51aS5vcmFuZ2UuY2FyZCB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjRDRENEQ1LCAwcHggMnB4IDBweCAwcHggI2ZmOTUzMywgMHB4IDFweCAzcHggMHB4ICNENEQ0RDU7XG59XG4udWkub3JhbmdlLmNhcmRzID4gLmNhcmQ6aG92ZXIsXG4udWkuY2FyZHMgPiAub3JhbmdlLmNhcmQ6aG92ZXIsXG4udWkub3JhbmdlLmNhcmQ6aG92ZXIge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggI0Q0RDRENSwgMHB4IDJweCAwcHggMHB4ICNmZjg4MTksIDBweCAxcHggM3B4IDBweCAjQkNCREJEO1xufVxuLyogWWVsbG93ICovXG4udWkueWVsbG93LmNhcmRzID4gLmNhcmQsXG4udWkuY2FyZHMgPiAueWVsbG93LmNhcmQsXG4udWkueWVsbG93LmNhcmQge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggI0Q0RDRENSwgMHB4IDJweCAwcHggMHB4ICNGQkJEMDgsIDBweCAxcHggM3B4IDBweCAjRDRENEQ1O1xufVxuLnVpLnllbGxvdy5jYXJkcyA+IC5jYXJkOmhvdmVyLFxuLnVpLmNhcmRzID4gLnllbGxvdy5jYXJkOmhvdmVyLFxuLnVpLnllbGxvdy5jYXJkOmhvdmVyIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICNENEQ0RDUsIDBweCAycHggMHB4IDBweCAjZWFhZTAwLCAwcHggMXB4IDNweCAwcHggI0JDQkRCRDtcbn1cbi8qIE9saXZlICovXG4udWkub2xpdmUuY2FyZHMgPiAuY2FyZCxcbi51aS5jYXJkcyA+IC5vbGl2ZS5jYXJkLFxuLnVpLm9saXZlLmNhcmQge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggI0Q0RDRENSwgMHB4IDJweCAwcHggMHB4ICNCNUNDMTgsIDBweCAxcHggM3B4IDBweCAjRDRENEQ1O1xufVxuLnVpLm9saXZlLmNhcmRzID4gLmNhcmQ6aG92ZXIsXG4udWkuY2FyZHMgPiAub2xpdmUuY2FyZDpob3Zlcixcbi51aS5vbGl2ZS5jYXJkOmhvdmVyIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICNENEQ0RDUsIDBweCAycHggMHB4IDBweCAjYTdiZDBkLCAwcHggMXB4IDNweCAwcHggI0JDQkRCRDtcbn1cbi8qIEdyZWVuICovXG4udWkuZ3JlZW4uY2FyZHMgPiAuY2FyZCxcbi51aS5jYXJkcyA+IC5ncmVlbi5jYXJkLFxuLnVpLmdyZWVuLmNhcmQge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggI0Q0RDRENSwgMHB4IDJweCAwcHggMHB4ICMxOWE1MzEsIDBweCAxcHggM3B4IDBweCAjRDRENEQ1O1xufVxuLnVpLmdyZWVuLmNhcmRzID4gLmNhcmQ6aG92ZXIsXG4udWkuY2FyZHMgPiAuZ3JlZW4uY2FyZDpob3Zlcixcbi51aS5ncmVlbi5jYXJkOmhvdmVyIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICNENEQ0RDUsIDBweCAycHggMHB4IDBweCAjMTA5NTI2LCAwcHggMXB4IDNweCAwcHggI0JDQkRCRDtcbn1cbi8qIFRlYWwgKi9cbi51aS50ZWFsLmNhcmRzID4gLmNhcmQsXG4udWkuY2FyZHMgPiAudGVhbC5jYXJkLFxuLnVpLnRlYWwuY2FyZCB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjRDRENEQ1LCAwcHggMnB4IDBweCAwcHggIzAwQjVBRCwgMHB4IDFweCAzcHggMHB4ICNENEQ0RDU7XG59XG4udWkudGVhbC5jYXJkcyA+IC5jYXJkOmhvdmVyLFxuLnVpLmNhcmRzID4gLnRlYWwuY2FyZDpob3Zlcixcbi51aS50ZWFsLmNhcmQ6aG92ZXIge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggI0Q0RDRENSwgMHB4IDJweCAwcHggMHB4ICMwMDljOTUsIDBweCAxcHggM3B4IDBweCAjQkNCREJEO1xufVxuLyogQmx1ZSAqL1xuLnVpLmJsdWUuY2FyZHMgPiAuY2FyZCxcbi51aS5jYXJkcyA+IC5ibHVlLmNhcmQsXG4udWkuYmx1ZS5jYXJkIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICNENEQ0RDUsIDBweCAycHggMHB4IDBweCAjM2Y1MWI1LCAwcHggMXB4IDNweCAwcHggI0Q0RDRENTtcbn1cbi51aS5ibHVlLmNhcmRzID4gLmNhcmQ6aG92ZXIsXG4udWkuY2FyZHMgPiAuYmx1ZS5jYXJkOmhvdmVyLFxuLnVpLmJsdWUuY2FyZDpob3ZlciB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjRDRENEQ1LCAwcHggMnB4IDBweCAwcHggIzMzNDVhNywgMHB4IDFweCAzcHggMHB4ICNCQ0JEQkQ7XG59XG4vKiBWaW9sZXQgKi9cbi51aS52aW9sZXQuY2FyZHMgPiAuY2FyZCxcbi51aS5jYXJkcyA+IC52aW9sZXQuY2FyZCxcbi51aS52aW9sZXQuY2FyZCB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjRDRENEQ1LCAwcHggMnB4IDBweCAwcHggIzY0MzVDOSwgMHB4IDFweCAzcHggMHB4ICNENEQ0RDU7XG59XG4udWkudmlvbGV0LmNhcmRzID4gLmNhcmQ6aG92ZXIsXG4udWkuY2FyZHMgPiAudmlvbGV0LmNhcmQ6aG92ZXIsXG4udWkudmlvbGV0LmNhcmQ6aG92ZXIge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggI0Q0RDRENSwgMHB4IDJweCAwcHggMHB4ICM1ODI5YmIsIDBweCAxcHggM3B4IDBweCAjQkNCREJEO1xufVxuLyogUHVycGxlICovXG4udWkucHVycGxlLmNhcmRzID4gLmNhcmQsXG4udWkuY2FyZHMgPiAucHVycGxlLmNhcmQsXG4udWkucHVycGxlLmNhcmQge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggI0Q0RDRENSwgMHB4IDJweCAwcHggMHB4ICNBMzMzQzgsIDBweCAxcHggM3B4IDBweCAjRDRENEQ1O1xufVxuLnVpLnB1cnBsZS5jYXJkcyA+IC5jYXJkOmhvdmVyLFxuLnVpLmNhcmRzID4gLnB1cnBsZS5jYXJkOmhvdmVyLFxuLnVpLnB1cnBsZS5jYXJkOmhvdmVyIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICNENEQ0RDUsIDBweCAycHggMHB4IDBweCAjOTYyN2JhLCAwcHggMXB4IDNweCAwcHggI0JDQkRCRDtcbn1cbi8qIFBpbmsgKi9cbi51aS5waW5rLmNhcmRzID4gLmNhcmQsXG4udWkuY2FyZHMgPiAucGluay5jYXJkLFxuLnVpLnBpbmsuY2FyZCB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjRDRENEQ1LCAwcHggMnB4IDBweCAwcHggI0UwMzk5NywgMHB4IDFweCAzcHggMHB4ICNENEQ0RDU7XG59XG4udWkucGluay5jYXJkcyA+IC5jYXJkOmhvdmVyLFxuLnVpLmNhcmRzID4gLnBpbmsuY2FyZDpob3Zlcixcbi51aS5waW5rLmNhcmQ6aG92ZXIge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggI0Q0RDRENSwgMHB4IDJweCAwcHggMHB4ICNlNjFhOGQsIDBweCAxcHggM3B4IDBweCAjQkNCREJEO1xufVxuLyogQnJvd24gKi9cbi51aS5icm93bi5jYXJkcyA+IC5jYXJkLFxuLnVpLmNhcmRzID4gLmJyb3duLmNhcmQsXG4udWkuYnJvd24uY2FyZCB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjRDRENEQ1LCAwcHggMnB4IDBweCAwcHggI0E1NjczRiwgMHB4IDFweCAzcHggMHB4ICNENEQ0RDU7XG59XG4udWkuYnJvd24uY2FyZHMgPiAuY2FyZDpob3Zlcixcbi51aS5jYXJkcyA+IC5icm93bi5jYXJkOmhvdmVyLFxuLnVpLmJyb3duLmNhcmQ6aG92ZXIge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggI0Q0RDRENSwgMHB4IDJweCAwcHggMHB4ICM5NzViMzMsIDBweCAxcHggM3B4IDBweCAjQkNCREJEO1xufVxuLyogR3JleSAqL1xuLnVpLmdyZXkuY2FyZHMgPiAuY2FyZCxcbi51aS5jYXJkcyA+IC5ncmV5LmNhcmQsXG4udWkuZ3JleS5jYXJkIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICNENEQ0RDUsIDBweCAycHggMHB4IDBweCAjNzY3Njc2LCAwcHggMXB4IDNweCAwcHggI0Q0RDRENTtcbn1cbi51aS5ncmV5LmNhcmRzID4gLmNhcmQ6aG92ZXIsXG4udWkuY2FyZHMgPiAuZ3JleS5jYXJkOmhvdmVyLFxuLnVpLmdyZXkuY2FyZDpob3ZlciB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjRDRENEQ1LCAwcHggMnB4IDBweCAwcHggIzgzODM4MywgMHB4IDFweCAzcHggMHB4ICNCQ0JEQkQ7XG59XG4vKiBCbGFjayAqL1xuLnVpLmJsYWNrLmNhcmRzID4gLmNhcmQsXG4udWkuY2FyZHMgPiAuYmxhY2suY2FyZCxcbi51aS5ibGFjay5jYXJkIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICNENEQ0RDUsIDBweCAycHggMHB4IDBweCAjMDAwMDAwLCAwcHggMXB4IDNweCAwcHggI0Q0RDRENTtcbn1cbi51aS5ibGFjay5jYXJkcyA+IC5jYXJkOmhvdmVyLFxuLnVpLmNhcmRzID4gLmJsYWNrLmNhcmQ6aG92ZXIsXG4udWkuYmxhY2suY2FyZDpob3ZlciB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjRDRENEQ1LCAwcHggMnB4IDBweCAwcHggIzBkMGQwZCwgMHB4IDFweCAzcHggMHB4ICNCQ0JEQkQ7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICBDYXJkIENvdW50XG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLm9uZS5jYXJkcyB7XG4gIG1hcmdpbi1sZWZ0OiAwZW07XG4gIG1hcmdpbi1yaWdodDogMGVtO1xufVxuLnVpLm9uZS5jYXJkcyA+IC5jYXJkIHtcbiAgd2lkdGg6IDEwMCU7XG59XG4udWkudHdvLmNhcmRzIHtcbiAgbWFyZ2luLWxlZnQ6IC0xZW07XG4gIG1hcmdpbi1yaWdodDogLTFlbTtcbn1cbi51aS50d28uY2FyZHMgPiAuY2FyZCB7XG4gIHdpZHRoOiBjYWxjKDUwJSAtIDJlbSk7XG4gIG1hcmdpbi1sZWZ0OiAxZW07XG4gIG1hcmdpbi1yaWdodDogMWVtO1xufVxuLnVpLnRocmVlLmNhcmRzIHtcbiAgbWFyZ2luLWxlZnQ6IC0xZW07XG4gIG1hcmdpbi1yaWdodDogLTFlbTtcbn1cbi51aS50aHJlZS5jYXJkcyA+IC5jYXJkIHtcbiAgd2lkdGg6IGNhbGMoMzMuMzMzMzMzMzMzMzMzMzMlIC0gMmVtKTtcbiAgbWFyZ2luLWxlZnQ6IDFlbTtcbiAgbWFyZ2luLXJpZ2h0OiAxZW07XG59XG4udWkuZm91ci5jYXJkcyB7XG4gIG1hcmdpbi1sZWZ0OiAtMC43NWVtO1xuICBtYXJnaW4tcmlnaHQ6IC0wLjc1ZW07XG59XG4udWkuZm91ci5jYXJkcyA+IC5jYXJkIHtcbiAgd2lkdGg6IGNhbGMoMjUlIC0gMS41ZW0pO1xuICBtYXJnaW4tbGVmdDogMC43NWVtO1xuICBtYXJnaW4tcmlnaHQ6IDAuNzVlbTtcbn1cbi51aS5maXZlLmNhcmRzIHtcbiAgbWFyZ2luLWxlZnQ6IC0wLjc1ZW07XG4gIG1hcmdpbi1yaWdodDogLTAuNzVlbTtcbn1cbi51aS5maXZlLmNhcmRzID4gLmNhcmQge1xuICB3aWR0aDogY2FsYygyMCUgLSAxLjVlbSk7XG4gIG1hcmdpbi1sZWZ0OiAwLjc1ZW07XG4gIG1hcmdpbi1yaWdodDogMC43NWVtO1xufVxuLnVpLnNpeC5jYXJkcyB7XG4gIG1hcmdpbi1sZWZ0OiAtMC43NWVtO1xuICBtYXJnaW4tcmlnaHQ6IC0wLjc1ZW07XG59XG4udWkuc2l4LmNhcmRzID4gLmNhcmQge1xuICB3aWR0aDogY2FsYygxNi42NjY2NjY2NjY2NjY2NjQlIC0gMS41ZW0pO1xuICBtYXJnaW4tbGVmdDogMC43NWVtO1xuICBtYXJnaW4tcmlnaHQ6IDAuNzVlbTtcbn1cbi51aS5zZXZlbi5jYXJkcyB7XG4gIG1hcmdpbi1sZWZ0OiAtMC41ZW07XG4gIG1hcmdpbi1yaWdodDogLTAuNWVtO1xufVxuLnVpLnNldmVuLmNhcmRzID4gLmNhcmQge1xuICB3aWR0aDogY2FsYygxNC4yODU3MTQyODU3MTQyODUlIC0gMWVtKTtcbiAgbWFyZ2luLWxlZnQ6IDAuNWVtO1xuICBtYXJnaW4tcmlnaHQ6IDAuNWVtO1xufVxuLnVpLmVpZ2h0LmNhcmRzIHtcbiAgbWFyZ2luLWxlZnQ6IC0wLjVlbTtcbiAgbWFyZ2luLXJpZ2h0OiAtMC41ZW07XG59XG4udWkuZWlnaHQuY2FyZHMgPiAuY2FyZCB7XG4gIHdpZHRoOiBjYWxjKDEyLjUlIC0gMWVtKTtcbiAgbWFyZ2luLWxlZnQ6IDAuNWVtO1xuICBtYXJnaW4tcmlnaHQ6IDAuNWVtO1xuICBmb250LXNpemU6IDExcHg7XG59XG4udWkubmluZS5jYXJkcyB7XG4gIG1hcmdpbi1sZWZ0OiAtMC41ZW07XG4gIG1hcmdpbi1yaWdodDogLTAuNWVtO1xufVxuLnVpLm5pbmUuY2FyZHMgPiAuY2FyZCB7XG4gIHdpZHRoOiBjYWxjKDExLjExMTExMTExMTExMTExJSAtIDFlbSk7XG4gIG1hcmdpbi1sZWZ0OiAwLjVlbTtcbiAgbWFyZ2luLXJpZ2h0OiAwLjVlbTtcbiAgZm9udC1zaXplOiAxMHB4O1xufVxuLnVpLnRlbi5jYXJkcyB7XG4gIG1hcmdpbi1sZWZ0OiAtMC41ZW07XG4gIG1hcmdpbi1yaWdodDogLTAuNWVtO1xufVxuLnVpLnRlbi5jYXJkcyA+IC5jYXJkIHtcbiAgd2lkdGg6IGNhbGMoMTAlIC0gMWVtKTtcbiAgbWFyZ2luLWxlZnQ6IDAuNWVtO1xuICBtYXJnaW4tcmlnaHQ6IDAuNWVtO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEb3VibGluZ1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTW9iaWxlIE9ubHkgKi9cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgLnVpLnR3by5kb3VibGluZy5jYXJkcyB7XG4gICAgbWFyZ2luLWxlZnQ6IDBlbTtcbiAgICBtYXJnaW4tcmlnaHQ6IDBlbTtcbiAgfVxuICAudWkudHdvLmRvdWJsaW5nLmNhcmRzIC5jYXJkIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW4tbGVmdDogMGVtO1xuICAgIG1hcmdpbi1yaWdodDogMGVtO1xuICB9XG4gIC51aS50aHJlZS5kb3VibGluZy5jYXJkcyB7XG4gICAgbWFyZ2luLWxlZnQ6IC0xZW07XG4gICAgbWFyZ2luLXJpZ2h0OiAtMWVtO1xuICB9XG4gIC51aS50aHJlZS5kb3VibGluZy5jYXJkcyAuY2FyZCB7XG4gICAgd2lkdGg6IGNhbGMoNTAlIC0gMmVtKTtcbiAgICBtYXJnaW4tbGVmdDogMWVtO1xuICAgIG1hcmdpbi1yaWdodDogMWVtO1xuICB9XG4gIC51aS5mb3VyLmRvdWJsaW5nLmNhcmRzIHtcbiAgICBtYXJnaW4tbGVmdDogLTFlbTtcbiAgICBtYXJnaW4tcmlnaHQ6IC0xZW07XG4gIH1cbiAgLnVpLmZvdXIuZG91YmxpbmcuY2FyZHMgLmNhcmQge1xuICAgIHdpZHRoOiBjYWxjKDUwJSAtIDJlbSk7XG4gICAgbWFyZ2luLWxlZnQ6IDFlbTtcbiAgICBtYXJnaW4tcmlnaHQ6IDFlbTtcbiAgfVxuICAudWkuZml2ZS5kb3VibGluZy5jYXJkcyB7XG4gICAgbWFyZ2luLWxlZnQ6IC0xZW07XG4gICAgbWFyZ2luLXJpZ2h0OiAtMWVtO1xuICB9XG4gIC51aS5maXZlLmRvdWJsaW5nLmNhcmRzIC5jYXJkIHtcbiAgICB3aWR0aDogY2FsYyg1MCUgLSAyZW0pO1xuICAgIG1hcmdpbi1sZWZ0OiAxZW07XG4gICAgbWFyZ2luLXJpZ2h0OiAxZW07XG4gIH1cbiAgLnVpLnNpeC5kb3VibGluZy5jYXJkcyB7XG4gICAgbWFyZ2luLWxlZnQ6IC0xZW07XG4gICAgbWFyZ2luLXJpZ2h0OiAtMWVtO1xuICB9XG4gIC51aS5zaXguZG91YmxpbmcuY2FyZHMgLmNhcmQge1xuICAgIHdpZHRoOiBjYWxjKDUwJSAtIDJlbSk7XG4gICAgbWFyZ2luLWxlZnQ6IDFlbTtcbiAgICBtYXJnaW4tcmlnaHQ6IDFlbTtcbiAgfVxuICAudWkuc2V2ZW4uZG91YmxpbmcuY2FyZHMge1xuICAgIG1hcmdpbi1sZWZ0OiAtMWVtO1xuICAgIG1hcmdpbi1yaWdodDogLTFlbTtcbiAgfVxuICAudWkuc2V2ZW4uZG91YmxpbmcuY2FyZHMgLmNhcmQge1xuICAgIHdpZHRoOiBjYWxjKDMzLjMzMzMzMzMzMzMzMzMzJSAtIDJlbSk7XG4gICAgbWFyZ2luLWxlZnQ6IDFlbTtcbiAgICBtYXJnaW4tcmlnaHQ6IDFlbTtcbiAgfVxuICAudWkuZWlnaHQuZG91YmxpbmcuY2FyZHMge1xuICAgIG1hcmdpbi1sZWZ0OiAtMWVtO1xuICAgIG1hcmdpbi1yaWdodDogLTFlbTtcbiAgfVxuICAudWkuZWlnaHQuZG91YmxpbmcuY2FyZHMgLmNhcmQge1xuICAgIHdpZHRoOiBjYWxjKDMzLjMzMzMzMzMzMzMzMzMzJSAtIDJlbSk7XG4gICAgbWFyZ2luLWxlZnQ6IDFlbTtcbiAgICBtYXJnaW4tcmlnaHQ6IDFlbTtcbiAgfVxuICAudWkubmluZS5kb3VibGluZy5jYXJkcyB7XG4gICAgbWFyZ2luLWxlZnQ6IC0xZW07XG4gICAgbWFyZ2luLXJpZ2h0OiAtMWVtO1xuICB9XG4gIC51aS5uaW5lLmRvdWJsaW5nLmNhcmRzIC5jYXJkIHtcbiAgICB3aWR0aDogY2FsYygzMy4zMzMzMzMzMzMzMzMzMyUgLSAyZW0pO1xuICAgIG1hcmdpbi1sZWZ0OiAxZW07XG4gICAgbWFyZ2luLXJpZ2h0OiAxZW07XG4gIH1cbiAgLnVpLnRlbi5kb3VibGluZy5jYXJkcyB7XG4gICAgbWFyZ2luLWxlZnQ6IC0xZW07XG4gICAgbWFyZ2luLXJpZ2h0OiAtMWVtO1xuICB9XG4gIC51aS50ZW4uZG91YmxpbmcuY2FyZHMgLmNhcmQge1xuICAgIHdpZHRoOiBjYWxjKDMzLjMzMzMzMzMzMzMzMzMzJSAtIDJlbSk7XG4gICAgbWFyZ2luLWxlZnQ6IDFlbTtcbiAgICBtYXJnaW4tcmlnaHQ6IDFlbTtcbiAgfVxufVxuLyogVGFibGV0IE9ubHkgKi9cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzY4cHgpIGFuZCAobWF4LXdpZHRoOiA5OTFweCkge1xuICAudWkudHdvLmRvdWJsaW5nLmNhcmRzIHtcbiAgICBtYXJnaW4tbGVmdDogMGVtO1xuICAgIG1hcmdpbi1yaWdodDogMGVtO1xuICB9XG4gIC51aS50d28uZG91YmxpbmcuY2FyZHMgLmNhcmQge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbi1sZWZ0OiAwZW07XG4gICAgbWFyZ2luLXJpZ2h0OiAwZW07XG4gIH1cbiAgLnVpLnRocmVlLmRvdWJsaW5nLmNhcmRzIHtcbiAgICBtYXJnaW4tbGVmdDogLTFlbTtcbiAgICBtYXJnaW4tcmlnaHQ6IC0xZW07XG4gIH1cbiAgLnVpLnRocmVlLmRvdWJsaW5nLmNhcmRzIC5jYXJkIHtcbiAgICB3aWR0aDogY2FsYyg1MCUgLSAyZW0pO1xuICAgIG1hcmdpbi1sZWZ0OiAxZW07XG4gICAgbWFyZ2luLXJpZ2h0OiAxZW07XG4gIH1cbiAgLnVpLmZvdXIuZG91YmxpbmcuY2FyZHMge1xuICAgIG1hcmdpbi1sZWZ0OiAtMWVtO1xuICAgIG1hcmdpbi1yaWdodDogLTFlbTtcbiAgfVxuICAudWkuZm91ci5kb3VibGluZy5jYXJkcyAuY2FyZCB7XG4gICAgd2lkdGg6IGNhbGMoNTAlIC0gMmVtKTtcbiAgICBtYXJnaW4tbGVmdDogMWVtO1xuICAgIG1hcmdpbi1yaWdodDogMWVtO1xuICB9XG4gIC51aS5maXZlLmRvdWJsaW5nLmNhcmRzIHtcbiAgICBtYXJnaW4tbGVmdDogLTFlbTtcbiAgICBtYXJnaW4tcmlnaHQ6IC0xZW07XG4gIH1cbiAgLnVpLmZpdmUuZG91YmxpbmcuY2FyZHMgLmNhcmQge1xuICAgIHdpZHRoOiBjYWxjKDMzLjMzMzMzMzMzMzMzMzMzJSAtIDJlbSk7XG4gICAgbWFyZ2luLWxlZnQ6IDFlbTtcbiAgICBtYXJnaW4tcmlnaHQ6IDFlbTtcbiAgfVxuICAudWkuc2l4LmRvdWJsaW5nLmNhcmRzIHtcbiAgICBtYXJnaW4tbGVmdDogLTFlbTtcbiAgICBtYXJnaW4tcmlnaHQ6IC0xZW07XG4gIH1cbiAgLnVpLnNpeC5kb3VibGluZy5jYXJkcyAuY2FyZCB7XG4gICAgd2lkdGg6IGNhbGMoMzMuMzMzMzMzMzMzMzMzMzMlIC0gMmVtKTtcbiAgICBtYXJnaW4tbGVmdDogMWVtO1xuICAgIG1hcmdpbi1yaWdodDogMWVtO1xuICB9XG4gIC51aS5laWdodC5kb3VibGluZy5jYXJkcyB7XG4gICAgbWFyZ2luLWxlZnQ6IC0xZW07XG4gICAgbWFyZ2luLXJpZ2h0OiAtMWVtO1xuICB9XG4gIC51aS5laWdodC5kb3VibGluZy5jYXJkcyAuY2FyZCB7XG4gICAgd2lkdGg6IGNhbGMoMzMuMzMzMzMzMzMzMzMzMzMlIC0gMmVtKTtcbiAgICBtYXJnaW4tbGVmdDogMWVtO1xuICAgIG1hcmdpbi1yaWdodDogMWVtO1xuICB9XG4gIC51aS5laWdodC5kb3VibGluZy5jYXJkcyB7XG4gICAgbWFyZ2luLWxlZnQ6IC0wLjc1ZW07XG4gICAgbWFyZ2luLXJpZ2h0OiAtMC43NWVtO1xuICB9XG4gIC51aS5laWdodC5kb3VibGluZy5jYXJkcyAuY2FyZCB7XG4gICAgd2lkdGg6IGNhbGMoMjUlIC0gMS41ZW0pO1xuICAgIG1hcmdpbi1sZWZ0OiAwLjc1ZW07XG4gICAgbWFyZ2luLXJpZ2h0OiAwLjc1ZW07XG4gIH1cbiAgLnVpLm5pbmUuZG91YmxpbmcuY2FyZHMge1xuICAgIG1hcmdpbi1sZWZ0OiAtMC43NWVtO1xuICAgIG1hcmdpbi1yaWdodDogLTAuNzVlbTtcbiAgfVxuICAudWkubmluZS5kb3VibGluZy5jYXJkcyAuY2FyZCB7XG4gICAgd2lkdGg6IGNhbGMoMjUlIC0gMS41ZW0pO1xuICAgIG1hcmdpbi1sZWZ0OiAwLjc1ZW07XG4gICAgbWFyZ2luLXJpZ2h0OiAwLjc1ZW07XG4gIH1cbiAgLnVpLnRlbi5kb3VibGluZy5jYXJkcyB7XG4gICAgbWFyZ2luLWxlZnQ6IC0wLjc1ZW07XG4gICAgbWFyZ2luLXJpZ2h0OiAtMC43NWVtO1xuICB9XG4gIC51aS50ZW4uZG91YmxpbmcuY2FyZHMgLmNhcmQge1xuICAgIHdpZHRoOiBjYWxjKDIwJSAtIDEuNWVtKTtcbiAgICBtYXJnaW4tbGVmdDogMC43NWVtO1xuICAgIG1hcmdpbi1yaWdodDogMC43NWVtO1xuICB9XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFN0YWNrYWJsZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAudWkuc3RhY2thYmxlLmNhcmRzIHtcbiAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5zdGFja2FibGUuY2FyZHMgLmNhcmQ6Zmlyc3QtY2hpbGQge1xuICAgIG1hcmdpbi10b3A6IDBlbSAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5zdGFja2FibGUuY2FyZHMgPiAuY2FyZCB7XG4gICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgICBoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbiAgICBtYXJnaW46IDFlbSAxZW07XG4gICAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xuICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAyZW0pICFpbXBvcnRhbnQ7XG4gIH1cbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpemVcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuY2FyZHMgPiAuY2FyZCB7XG4gIGZvbnQtc2l6ZTogMWVtO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFRoZW1lIE92ZXJyaWRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgVXNlciBWYXJpYWJsZSBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiFcbiAqICMgU2VtYW50aWMgVUkgLSBDb21tZW50XG4gKiBodHRwOi8vZ2l0aHViLmNvbS9zZW1hbnRpYy1vcmcvc2VtYW50aWMtdWkvXG4gKlxuICpcbiAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZVxuICogaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVFxuICpcbiAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLypcblxu4paI4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWXICDilojilojilZfilojilojilojilojilojilojilojilZfilojilojilojilZcgICDilojilojilojilZfilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZdcbuKVmuKVkOKVkOKWiOKWiOKVlOKVkOKVkOKVneKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWd4paI4paI4paI4paI4pWXIOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVnVxuICAg4paI4paI4pWRICAg4paI4paI4paI4paI4paI4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilZTilojilojilojilojilZTilojilojilZHilojilojilojilojilojilZcgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl1xuICAg4paI4paI4pWRICAg4paI4paI4pWU4pWQ4pWQ4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilojilojilZHilZrilojilojilZTilZ3ilojilojilZHilojilojilZTilZDilZDilZ0gIOKVmuKVkOKVkOKVkOKVkOKWiOKWiOKVkVxuICAg4paI4paI4pWRICAg4paI4paI4pWRICDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilZEg4pWa4pWQ4pWdIOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkVxuICAg4pWa4pWQ4pWdICAg4pWa4pWQ4pWdICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZ0gICAgIOKVmuKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVnVxuXG4qL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgVGhlbWUgU2VsZWN0aW9uXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogVG8gb3ZlcnJpZGUgYSB0aGVtZSBmb3IgYW4gaW5kaXZpZHVhbCBlbGVtZW50XG4gICBzcGVjaWZ5IHRoZW1lIG5hbWUgYmVsb3dcbiovXG4vKiBHbG9iYWwgKi9cbi8qIEVsZW1lbnRzICovXG4vKiBDb2xsZWN0aW9ucyAqL1xuLyogTW9kdWxlcyAqL1xuLyogVmlld3MgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBGb2xkZXJzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogUGF0aCB0byB0aGVtZSBwYWNrYWdlcyAqL1xuLyogUGF0aCB0byBzaXRlIG92ZXJyaWRlIGZvbGRlciAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIEltcG9ydCBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIEltcG9ydCBEaXJlY3RpdmVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBUaGVtZVxuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICBTaXRlIFZhcmlhYmxlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERlZmF1bHQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZG9ycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBQYWNrYWdlZCBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kb3JzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIENvbXBvbmVudCdzIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRvcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogU2l0ZSB0aGVtZSBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgVXNlciBHbG9iYWwgVmFyaWFibGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogbWFyc28gY29sb3JzICovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gQ29tcG9uZW50IFZhcmlhYmxlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERlZmF1bHQgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBDb21tZW50c1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIFZpZXdcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRWxlbWVudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIENvbW1lbnQgKi9cbi8qIE5lc3RlZCBDb21tZW50ICovXG4vKiBBdmF0YXIgKi9cbi8qIENvbnRlbnQgKi9cbi8qIEF1dGhvciAqL1xuLyogTWV0YWRhdGEgKi9cbi8qIFRleHQgKi9cbi8qIEFjdGlvbnMgKi9cbi8qIFJlcGx5ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFZhcmlhdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRocmVhZGVkICovXG4vKiBNaW5pbWFsICovXG4vKiBTaXplcyAqL1xuLyogUGFja2FnZWQgVGhlbWUgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBDb21tZW50c1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIFZpZXdcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRWxlbWVudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIENvbW1lbnQgKi9cbi8qIE5lc3RlZCBDb21tZW50ICovXG4vKiBBdmF0YXIgKi9cbi8qIENvbnRlbnQgKi9cbi8qIEF1dGhvciAqL1xuLyogTWV0YWRhdGEgKi9cbi8qIFRleHQgKi9cbi8qIEFjdGlvbnMgKi9cbi8qIFJlcGx5ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFZhcmlhdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRocmVhZGVkICovXG4vKiBNaW5pbWFsICovXG4vKiBTaXplcyAqL1xuLyogU2l0ZSBUaGVtZSAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICBVc2VyIFZhcmlhYmxlIE92ZXJyaWRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgTWl4LWluc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgT3ZlcnJpZGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEVuZCBDb25maWcgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBTdGFuZGFyZFxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBDb21tZW50c1xuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5jb21tZW50cyB7XG4gIG1hcmdpbjogMS41ZW0gMGVtO1xuICBtYXgtd2lkdGg6IDY1MHB4O1xufVxuLnVpLmNvbW1lbnRzOmZpcnN0LWNoaWxkIHtcbiAgbWFyZ2luLXRvcDogMGVtO1xufVxuLnVpLmNvbW1lbnRzOmxhc3QtY2hpbGQge1xuICBtYXJnaW4tYm90dG9tOiAwZW07XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIENvbW1lbnRcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuY29tbWVudHMgLmNvbW1lbnQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIG1hcmdpbjogMC41ZW0gMGVtIDBlbTtcbiAgcGFkZGluZzogMC41ZW0gMGVtIDBlbTtcbiAgYm9yZGVyOiBub25lO1xuICBib3JkZXItdG9wOiBub25lO1xuICBsaW5lLWhlaWdodDogMS4yO1xufVxuLnVpLmNvbW1lbnRzIC5jb21tZW50OmZpcnN0LWNoaWxkIHtcbiAgbWFyZ2luLXRvcDogMGVtO1xuICBwYWRkaW5nLXRvcDogMGVtO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIE5lc3RlZCBDb21tZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5jb21tZW50cyAuY29tbWVudCAuY29tbWVudHMge1xuICBtYXJnaW46IDBlbSAwZW0gMC41ZW0gMC41ZW07XG4gIHBhZGRpbmc6IDFlbSAwZW0gMWVtIDFlbTtcbn1cbi51aS5jb21tZW50cyAuY29tbWVudCAuY29tbWVudHM6YmVmb3JlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDBweDtcbiAgbGVmdDogMHB4O1xufVxuLnVpLmNvbW1lbnRzIC5jb21tZW50IC5jb21tZW50cyAuY29tbWVudCB7XG4gIGJvcmRlcjogbm9uZTtcbiAgYm9yZGVyLXRvcDogbm9uZTtcbiAgYmFja2dyb3VuZDogbm9uZTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgQXZhdGFyXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmNvbW1lbnRzIC5jb21tZW50IC5hdmF0YXIge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDIuNWVtO1xuICBoZWlnaHQ6IGF1dG87XG4gIGZsb2F0OiBsZWZ0O1xuICBtYXJnaW46IDAuMmVtIDBlbSAwZW07XG59XG4udWkuY29tbWVudHMgLmNvbW1lbnQgaW1nLmF2YXRhcixcbi51aS5jb21tZW50cyAuY29tbWVudCAuYXZhdGFyIGltZyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW46IDBlbSBhdXRvO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBib3JkZXItcmFkaXVzOiAwLjI1cmVtO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBDb250ZW50XG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmNvbW1lbnRzIC5jb21tZW50ID4gLmNvbnRlbnQge1xuICBkaXNwbGF5OiBibG9jaztcbn1cbi8qIElmIHRoZXJlIGlzIGFuIGF2YXRhciBtb3ZlIGNvbnRlbnQgb3ZlciAqL1xuLnVpLmNvbW1lbnRzIC5jb21tZW50ID4gLmF2YXRhciB+IC5jb250ZW50IHtcbiAgbWFyZ2luLWxlZnQ6IDMuNWVtO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBBdXRob3Jcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuY29tbWVudHMgLmNvbW1lbnQgLmF1dGhvciB7XG4gIGZvbnQtc2l6ZTogMWVtO1xuICBjb2xvcjogIzMzMzMzMztcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG4udWkuY29tbWVudHMgLmNvbW1lbnQgYS5hdXRob3Ige1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4udWkuY29tbWVudHMgLmNvbW1lbnQgYS5hdXRob3I6aG92ZXIge1xuICBjb2xvcjogIzFlNzBiZjtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgTWV0YWRhdGFcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuY29tbWVudHMgLmNvbW1lbnQgLm1ldGFkYXRhIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXJnaW4tbGVmdDogMC41ZW07XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNCk7XG4gIGZvbnQtc2l6ZTogMC44NzVlbTtcbn1cbi51aS5jb21tZW50cyAuY29tbWVudCAubWV0YWRhdGEgPiAqIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXJnaW46IDBlbSAwLjVlbSAwZW0gMGVtO1xufVxuLnVpLmNvbW1lbnRzIC5jb21tZW50IC5tZXRhZGF0YSA+IDpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLXJpZ2h0OiAwZW07XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIENvbW1lbnQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5jb21tZW50cyAuY29tbWVudCAudGV4dCB7XG4gIG1hcmdpbjogMC4yNWVtIDBlbSAwLjVlbTtcbiAgZm9udC1zaXplOiAxZW07XG4gIHdvcmQtd3JhcDogYnJlYWstd29yZDtcbiAgY29sb3I6ICMzMzMzMzM7XG4gIGxpbmUtaGVpZ2h0OiAxLjM7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFVzZXIgQWN0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5jb21tZW50cyAuY29tbWVudCAuYWN0aW9ucyB7XG4gIGZvbnQtc2l6ZTogMC44NzVlbTtcbn1cbi51aS5jb21tZW50cyAuY29tbWVudCAuYWN0aW9ucyBhIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1hcmdpbjogMGVtIDAuNzVlbSAwZW0gMGVtO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjQpO1xufVxuLnVpLmNvbW1lbnRzIC5jb21tZW50IC5hY3Rpb25zIGE6bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1yaWdodDogMGVtO1xufVxuLnVpLmNvbW1lbnRzIC5jb21tZW50IC5hY3Rpb25zIGEuYWN0aXZlLFxuLnVpLmNvbW1lbnRzIC5jb21tZW50IC5hY3Rpb25zIGE6aG92ZXIge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjgpO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUmVwbHkgRm9ybVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5jb21tZW50cyA+IC5yZXBseS5mb3JtIHtcbiAgbWFyZ2luLXRvcDogMWVtO1xufVxuLnVpLmNvbW1lbnRzIC5jb21tZW50IC5yZXBseS5mb3JtIHtcbiAgd2lkdGg6IDEwMCU7XG4gIG1hcmdpbi10b3A6IDFlbTtcbn1cbi51aS5jb21tZW50cyAucmVwbHkuZm9ybSB0ZXh0YXJlYSB7XG4gIGZvbnQtc2l6ZTogMWVtO1xuICBoZWlnaHQ6IDEyZW07XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgU3RhdGVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4udWkuY29sbGFwc2VkLmNvbW1lbnRzLFxuLnVpLmNvbW1lbnRzIC5jb2xsYXBzZWQuY29tbWVudHMsXG4udWkuY29tbWVudHMgLmNvbGxhcHNlZC5jb21tZW50IHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFZhcmlhdGlvbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFRocmVhZGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLnRocmVhZGVkLmNvbW1lbnRzIC5jb21tZW50IC5jb21tZW50cyB7XG4gIG1hcmdpbjogLTEuNWVtIDAgLTFlbSAxLjI1ZW07XG4gIHBhZGRpbmc6IDNlbSAwZW0gMmVtIDIuMjVlbTtcbiAgYm94LXNoYWRvdzogLTFweCAwcHggMHB4IHJnYmEoMzQsIDM2LCAzOCwgMC4xNSk7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIE1pbmltYWxcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkubWluaW1hbC5jb21tZW50cyAuY29tbWVudCAuYWN0aW9ucyB7XG4gIG9wYWNpdHk6IDA7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwcHg7XG4gIHJpZ2h0OiAwcHg7XG4gIGxlZnQ6IGF1dG87XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4ycyBlYXNlO1xuICB0cmFuc2l0aW9uLWRlbGF5OiAwLjFzO1xufVxuLnVpLm1pbmltYWwuY29tbWVudHMgLmNvbW1lbnQgPiAuY29udGVudDpob3ZlciA+IC5hY3Rpb25zIHtcbiAgb3BhY2l0eTogMTtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLm1pbmkuY29tbWVudHMge1xuICBmb250LXNpemU6IDAuOHJlbTtcbn1cbi51aS50aW55LmNvbW1lbnRzIHtcbiAgZm9udC1zaXplOiAwLjlyZW07XG59XG4udWkuc21hbGwuY29tbWVudHMge1xuICBmb250LXNpemU6IDAuOWVtO1xufVxuLnVpLmNvbW1lbnRzIHtcbiAgZm9udC1zaXplOiAxZW07XG59XG4udWkubGFyZ2UuY29tbWVudHMge1xuICBmb250LXNpemU6IDEuMWVtO1xufVxuLnVpLmJpZy5jb21tZW50cyB7XG4gIGZvbnQtc2l6ZTogMS4zcmVtO1xufVxuLnVpLmh1Z2UuY29tbWVudHMge1xuICBmb250LXNpemU6IDEuMmVtO1xufVxuLnVpLm1hc3NpdmUuY29tbWVudHMge1xuICBmb250LXNpemU6IDEuN3JlbTtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBUaGVtZSBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgIFVzZXIgVmFyaWFibGUgT3ZlcnJpZGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyohXG4gKiAjIFNlbWFudGljIFVJIC0gRmVlZFxuICogaHR0cDovL2dpdGh1Yi5jb20vc2VtYW50aWMtb3JnL3NlbWFudGljLXVpL1xuICpcbiAqXG4gKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2VcbiAqIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVRcbiAqXG4gKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qXG5cbuKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVlyAg4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4pWXICAg4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWXXG7ilZrilZDilZDilojilojilZTilZDilZDilZ3ilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKWiOKWiOKVlyDilojilojilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilZTilZDilZDilZDilZDilZ1cbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4pWU4paI4paI4paI4paI4pWU4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilojilojilojilojilojilZdcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVlOKVkOKVkOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4paI4paI4pWR4pWa4paI4paI4pWU4pWd4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilZrilZDilZDilZDilZDilojilojilZFcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWRIOKVmuKVkOKVnSDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZFcbiAgIOKVmuKVkOKVnSAgIOKVmuKVkOKVnSAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWdICAgICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ1cblxuKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIFRoZW1lIFNlbGVjdGlvblxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFRvIG92ZXJyaWRlIGEgdGhlbWUgZm9yIGFuIGluZGl2aWR1YWwgZWxlbWVudFxuICAgc3BlY2lmeSB0aGVtZSBuYW1lIGJlbG93XG4qL1xuLyogR2xvYmFsICovXG4vKiBFbGVtZW50cyAqL1xuLyogQ29sbGVjdGlvbnMgKi9cbi8qIE1vZHVsZXMgKi9cbi8qIFZpZXdzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgRm9sZGVyc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFBhdGggdG8gdGhlbWUgcGFja2FnZXMgKi9cbi8qIFBhdGggdG8gc2l0ZSBvdmVycmlkZSBmb2xkZXIgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBJbXBvcnQgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBJbXBvcnQgRGlyZWN0aXZlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgVGhlbWVcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgU2l0ZSBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0IHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRvcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogUGFja2FnZWQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZG9ycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBDb21wb25lbnQncyBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kb3JzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFNpdGUgdGhlbWUgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgIFVzZXIgR2xvYmFsIFZhcmlhYmxlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIG1hcnNvIGNvbG9ycyAqL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuIENvbXBvbmVudCBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0ICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIEZlZWRcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRmVlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBFbGVtZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRXZlbnQgKi9cbi8qIEV2ZW50IExhYmVsICovXG4vKiBJY29uIExhYmVsICovXG4vKiBJbWFnZSBMYWJlbCAqL1xuLyogQ29udGVudCB3LyBMYWJlbCAqL1xuLyogQ29udGVudCAqL1xuLyogRGF0ZSAqL1xuLyogU3VtbWFyeSAqL1xuLyogU3VtbWFyeSBJbWFnZSAqL1xuLyogU3VtbWFyeSBEYXRlICovXG4vKiBVc2VyICovXG4vKiBFeHRyYSBTdW1tYXJ5IERhdGEgKi9cbi8qIEV4dHJhIEltYWdlcyAqL1xuLyogRXh0cmEgVGV4dCAqL1xuLyogTWV0YWRhdGEgR3JvdXAgKi9cbi8qIExpa2UgKi9cbi8qIE1ldGFkYXRhIERpdmlkZXIgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgVmFyaWF0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUGFja2FnZWQgVGhlbWUgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgRmVlZFxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGZWVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEVsZW1lbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBFdmVudCAqL1xuLyogRXZlbnQgTGFiZWwgKi9cbi8qIEljb24gTGFiZWwgKi9cbi8qIEltYWdlIExhYmVsICovXG4vKiBDb250ZW50IHcvIExhYmVsICovXG4vKiBDb250ZW50ICovXG4vKiBEYXRlICovXG4vKiBTdW1tYXJ5ICovXG4vKiBTdW1tYXJ5IEltYWdlICovXG4vKiBTdW1tYXJ5IERhdGUgKi9cbi8qIFVzZXIgKi9cbi8qIEV4dHJhIFN1bW1hcnkgRGF0YSAqL1xuLyogRXh0cmEgSW1hZ2VzICovXG4vKiBFeHRyYSBUZXh0ICovXG4vKiBNZXRhZGF0YSBHcm91cCAqL1xuLyogTGlrZSAqL1xuLyogTWV0YWRhdGEgRGl2aWRlciAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBWYXJpYXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTaXRlIFRoZW1lICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgIFVzZXIgVmFyaWFibGUgT3ZlcnJpZGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBNaXgtaW5zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBPdmVycmlkZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRW5kIENvbmZpZyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIEFjdGl2aXR5IEZlZWRcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4udWkuZmVlZCB7XG4gIG1hcmdpbjogMWVtIDBlbTtcbn1cbi51aS5mZWVkOmZpcnN0LWNoaWxkIHtcbiAgbWFyZ2luLXRvcDogMGVtO1xufVxuLnVpLmZlZWQ6bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1ib3R0b206IDBlbTtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBDb250ZW50XG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogRXZlbnQgKi9cbi51aS5mZWVkID4gLmV2ZW50IHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmc6IDAuM3JlbSAwZW07XG4gIG1hcmdpbjogMGVtO1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICBib3JkZXItdG9wOiBub25lO1xufVxuLnVpLmZlZWQgPiAuZXZlbnQ6Zmlyc3QtY2hpbGQge1xuICBib3JkZXItdG9wOiAwcHg7XG4gIHBhZGRpbmctdG9wOiAwZW07XG59XG4udWkuZmVlZCA+IC5ldmVudDpsYXN0LWNoaWxkIHtcbiAgcGFkZGluZy1ib3R0b206IDBlbTtcbn1cbi8qIEV2ZW50IExhYmVsICovXG4udWkuZmVlZCA+IC5ldmVudCA+IC5sYWJlbCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmbGV4OiAwIDAgYXV0bztcbiAgd2lkdGg6IDIuNWVtO1xuICBoZWlnaHQ6IGF1dG87XG4gIGFsaWduLXNlbGY6IHN0cmV0Y2g7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG59XG4udWkuZmVlZCA+IC5ldmVudCA+IC5sYWJlbCAuaWNvbiB7XG4gIG9wYWNpdHk6IDE7XG4gIGZvbnQtc2l6ZTogMS41ZW07XG4gIHdpZHRoOiAxMDAlO1xuICBwYWRkaW5nOiAwLjI1ZW07XG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIGJvcmRlcjogbm9uZTtcbiAgYm9yZGVyLXJhZGl1czogbm9uZTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC42KTtcbn1cbi51aS5mZWVkID4gLmV2ZW50ID4gLmxhYmVsIGltZyB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IGF1dG87XG4gIGJvcmRlci1yYWRpdXM6IDUwMHJlbTtcbn1cbi51aS5mZWVkID4gLmV2ZW50ID4gLmxhYmVsICsgLmNvbnRlbnQge1xuICBtYXJnaW46IDAuNWVtIDBlbSAwLjVlbSAxLjFlbTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgQ29udGVudFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIENvbnRlbnQgKi9cbi51aS5mZWVkID4gLmV2ZW50ID4gLmNvbnRlbnQge1xuICBkaXNwbGF5OiBibG9jaztcbiAgZmxleDogMSAxIGF1dG87XG4gIGFsaWduLXNlbGY6IHN0cmV0Y2g7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIHdvcmQtd3JhcDogYnJlYWstd29yZDtcbn1cbi51aS5mZWVkID4gLmV2ZW50Omxhc3QtY2hpbGQgPiAuY29udGVudCB7XG4gIHBhZGRpbmctYm90dG9tOiAwZW07XG59XG4vKiBMaW5rICovXG4udWkuZmVlZCA+IC5ldmVudCA+IC5jb250ZW50IGEge1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgICBEYXRlXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmZlZWQgPiAuZXZlbnQgPiAuY29udGVudCAuZGF0ZSB7XG4gIG1hcmdpbjogLTAuNXJlbSAwZW0gMGVtO1xuICBwYWRkaW5nOiAwZW07XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc2l6ZTogMWVtO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNCk7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIFN1bW1hcnlcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuZmVlZCA+IC5ldmVudCA+IC5jb250ZW50IC5zdW1tYXJ5IHtcbiAgbWFyZ2luOiAwZW07XG4gIGZvbnQtc2l6ZTogMWVtO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgY29sb3I6ICMzMzMzMzM7XG59XG4vKiBTdW1tYXJ5IEltYWdlICovXG4udWkuZmVlZCA+IC5ldmVudCA+IC5jb250ZW50IC5zdW1tYXJ5IGltZyB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgd2lkdGg6IGF1dG87XG4gIGhlaWdodDogMTBlbTtcbiAgbWFyZ2luOiAtMC4yNWVtIDAuMjVlbSAwZW0gMGVtO1xuICBib3JkZXItcmFkaXVzOiAwLjI1ZW07XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgICBVc2VyXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmZlZWQgPiAuZXZlbnQgPiAuY29udGVudCAudXNlciB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIG1hcmdpbi1yaWdodDogMGVtO1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG59XG4udWkuZmVlZCA+IC5ldmVudCA+IC5jb250ZW50IC51c2VyIGltZyB7XG4gIG1hcmdpbjogLTAuMjVlbSAwLjI1ZW0gMGVtIDBlbTtcbiAgd2lkdGg6IGF1dG87XG4gIGhlaWdodDogMTBlbTtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIElubGluZSBEYXRlXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGF0ZSBpbnNpZGUgU3VtbWFyeSAqL1xuLnVpLmZlZWQgPiAuZXZlbnQgPiAuY29udGVudCAuc3VtbWFyeSA+IC5kYXRlIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmbG9hdDogbm9uZTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zaXplOiAwLjllbTtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBtYXJnaW46IDBlbSAwZW0gMGVtIDAuNWVtO1xuICBwYWRkaW5nOiAwZW07XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNCk7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gIEV4dHJhIFN1bW1hcnlcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuZmVlZCA+IC5ldmVudCA+IC5jb250ZW50IC5leHRyYSB7XG4gIG1hcmdpbjogMC41ZW0gMGVtIDBlbTtcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgcGFkZGluZzogMGVtO1xuICBjb2xvcjogIzMzMzMzMztcbn1cbi8qIEltYWdlcyAqL1xuLnVpLmZlZWQgPiAuZXZlbnQgPiAuY29udGVudCAuZXh0cmEuaW1hZ2VzIGltZyB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWFyZ2luOiAwZW0gMC4yNWVtIDBlbSAwZW07XG4gIHdpZHRoOiA2ZW07XG59XG4vKiBUZXh0ICovXG4udWkuZmVlZCA+IC5ldmVudCA+IC5jb250ZW50IC5leHRyYS50ZXh0IHtcbiAgcGFkZGluZzogMGVtO1xuICBib3JkZXItbGVmdDogbm9uZTtcbiAgZm9udC1zaXplOiAxZW07XG4gIG1heC13aWR0aDogNTAwcHg7XG4gIGxpbmUtaGVpZ2h0OiAxLjQyODVlbTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgIE1ldGFcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuZmVlZCA+IC5ldmVudCA+IC5jb250ZW50IC5tZXRhIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmb250LXNpemU6IDAuOWVtO1xuICBtYXJnaW46IDAuNWVtIDBlbSAwZW07XG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIGJvcmRlcjogbm9uZTtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgYm94LXNoYWRvdzogbm9uZTtcbiAgcGFkZGluZzogMGVtO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjYpO1xufVxuLnVpLmZlZWQgPiAuZXZlbnQgPiAuY29udGVudCAubWV0YSA+ICoge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1hcmdpbi1sZWZ0OiAwLjc1ZW07XG59XG4udWkuZmVlZCA+IC5ldmVudCA+IC5jb250ZW50IC5tZXRhID4gKjphZnRlciB7XG4gIGNvbnRlbnQ6ICcnO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjIpO1xuICB0b3A6IDBlbTtcbiAgbGVmdDogLTFlbTtcbiAgb3BhY2l0eTogMTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xufVxuLnVpLmZlZWQgPiAuZXZlbnQgPiAuY29udGVudCAubWV0YSAubGlrZSB7XG4gIGNvbG9yOiAnJztcbiAgdHJhbnNpdGlvbjogMC4ycyBjb2xvciBlYXNlO1xufVxuLnVpLmZlZWQgPiAuZXZlbnQgPiAuY29udGVudCAubWV0YSAubGlrZTpob3ZlciAuaWNvbiB7XG4gIGNvbG9yOiAjRkYyNzMzO1xufVxuLnVpLmZlZWQgPiAuZXZlbnQgPiAuY29udGVudCAubWV0YSAuYWN0aXZlLmxpa2UgLmljb24ge1xuICBjb2xvcjogI0VGNDA0QTtcbn1cbi8qIEZpcnN0IGVsZW1lbnQgKi9cbi51aS5mZWVkID4gLmV2ZW50ID4gLmNvbnRlbnQgLm1ldGEgPiA6Zmlyc3QtY2hpbGQge1xuICBtYXJnaW4tbGVmdDogMGVtO1xufVxuLnVpLmZlZWQgPiAuZXZlbnQgPiAuY29udGVudCAubWV0YSA+IDpmaXJzdC1jaGlsZDo6YWZ0ZXIge1xuICBkaXNwbGF5OiBub25lO1xufVxuLyogQWN0aW9uICovXG4udWkuZmVlZCA+IC5ldmVudCA+IC5jb250ZW50IC5tZXRhIGEsXG4udWkuZmVlZCA+IC5ldmVudCA+IC5jb250ZW50IC5tZXRhID4gLmljb24ge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIG9wYWNpdHk6IDE7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNSk7XG4gIHRyYW5zaXRpb246IGNvbG9yIDAuMXMgZWFzZTtcbn1cbi51aS5mZWVkID4gLmV2ZW50ID4gLmNvbnRlbnQgLm1ldGEgYTpob3Zlcixcbi51aS5mZWVkID4gLmV2ZW50ID4gLmNvbnRlbnQgLm1ldGEgYTpob3ZlciAuaWNvbixcbi51aS5mZWVkID4gLmV2ZW50ID4gLmNvbnRlbnQgLm1ldGEgPiAuaWNvbjpob3ZlciB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuOTUpO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFZhcmlhdGlvbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4udWkuc21hbGwuZmVlZCB7XG4gIGZvbnQtc2l6ZTogMC45cmVtO1xufVxuLnVpLmZlZWQge1xuICBmb250LXNpemU6IDFyZW07XG59XG4udWkubGFyZ2UuZmVlZCB7XG4gIGZvbnQtc2l6ZTogMS4xcmVtO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFRoZW1lIE92ZXJyaWRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgVXNlciBWYXJpYWJsZSBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiFcbiAqICMgU2VtYW50aWMgVUkgLSBJdGVtXG4gKiBodHRwOi8vZ2l0aHViLmNvbS9zZW1hbnRpYy1vcmcvc2VtYW50aWMtdWkvXG4gKlxuICpcbiAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZVxuICogaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVFxuICpcbiAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLypcblxu4paI4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWXICDilojilojilZfilojilojilojilojilojilojilojilZfilojilojilojilZcgICDilojilojilojilZfilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZdcbuKVmuKVkOKVkOKWiOKWiOKVlOKVkOKVkOKVneKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWd4paI4paI4paI4paI4pWXIOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVnVxuICAg4paI4paI4pWRICAg4paI4paI4paI4paI4paI4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilZTilojilojilojilojilZTilojilojilZHilojilojilojilojilojilZcgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl1xuICAg4paI4paI4pWRICAg4paI4paI4pWU4pWQ4pWQ4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilojilojilZHilZrilojilojilZTilZ3ilojilojilZHilojilojilZTilZDilZDilZ0gIOKVmuKVkOKVkOKVkOKVkOKWiOKWiOKVkVxuICAg4paI4paI4pWRICAg4paI4paI4pWRICDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilZEg4pWa4pWQ4pWdIOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkVxuICAg4pWa4pWQ4pWdICAg4pWa4pWQ4pWdICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZ0gICAgIOKVmuKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVnVxuXG4qL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgVGhlbWUgU2VsZWN0aW9uXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogVG8gb3ZlcnJpZGUgYSB0aGVtZSBmb3IgYW4gaW5kaXZpZHVhbCBlbGVtZW50XG4gICBzcGVjaWZ5IHRoZW1lIG5hbWUgYmVsb3dcbiovXG4vKiBHbG9iYWwgKi9cbi8qIEVsZW1lbnRzICovXG4vKiBDb2xsZWN0aW9ucyAqL1xuLyogTW9kdWxlcyAqL1xuLyogVmlld3MgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBGb2xkZXJzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogUGF0aCB0byB0aGVtZSBwYWNrYWdlcyAqL1xuLyogUGF0aCB0byBzaXRlIG92ZXJyaWRlIGZvbGRlciAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIEltcG9ydCBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIEltcG9ydCBEaXJlY3RpdmVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBUaGVtZVxuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICBTaXRlIFZhcmlhYmxlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERlZmF1bHQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZG9ycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBQYWNrYWdlZCBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kb3JzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIENvbXBvbmVudCdzIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRvcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogU2l0ZSB0aGVtZSBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgVXNlciBHbG9iYWwgVmFyaWFibGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogbWFyc28gY29sb3JzICovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gQ29tcG9uZW50IFZhcmlhYmxlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERlZmF1bHQgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgSXRlbVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICAgVmlld1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogR3JvdXAgKi9cbi8qIEl0ZW0gKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIENvbnRlbnRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEltYWdlICovXG4vKiBDb250ZW50ICovXG4vKiBIZWFkZXIgKi9cbi8qIE1ldGFkYXRhICovXG4vKiBJY29ucyAqL1xuLyogQWN0aW9ucyAqL1xuLyogTGlua3MgKi9cbi8qIERlc2NyaXB0aW9uICovXG4vKiBDb250ZW50IEltYWdlICovXG4vKiBBdmF0YXIgSW1hZ2UgKi9cbi8qIFBhcmFncmFwaCAqL1xuLyogQWRkaXRpb25hbCBDb250ZW50ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFZhcmlhdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFJlbGF4ZWQgKi9cbi8qIERpdmlkZWQgKi9cbi8qIFVuc3RhY2thYmxlICovXG4vKiBQYWNrYWdlZCBUaGVtZSAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBJdGVtXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgICBWaWV3XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBHcm91cCAqL1xuLyogSXRlbSAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQ29udGVudFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW1hZ2UgKi9cbi8qIENvbnRlbnQgKi9cbi8qIEhlYWRlciAqL1xuLyogTWV0YWRhdGEgKi9cbi8qIEljb25zICovXG4vKiBBY3Rpb25zICovXG4vKiBMaW5rcyAqL1xuLyogRGVzY3JpcHRpb24gKi9cbi8qIENvbnRlbnQgSW1hZ2UgKi9cbi8qIEF2YXRhciBJbWFnZSAqL1xuLyogUGFyYWdyYXBoICovXG4vKiBBZGRpdGlvbmFsIENvbnRlbnQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgVmFyaWF0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUmVsYXhlZCAqL1xuLyogRGl2aWRlZCAqL1xuLyogVW5zdGFja2FibGUgKi9cbi8qIFNpdGUgVGhlbWUgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgVXNlciBWYXJpYWJsZSBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIE1peC1pbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE92ZXJyaWRlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBFbmQgQ29uZmlnICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgU3RhbmRhcmRcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgICBJdGVtXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLml0ZW1zID4gLml0ZW0ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBtYXJnaW46IDFlbSAwZW07XG4gIHdpZHRoOiAxMDAlO1xuICBtaW4taGVpZ2h0OiAwcHg7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBwYWRkaW5nOiAwZW07XG4gIGJvcmRlcjogbm9uZTtcbiAgYm9yZGVyLXJhZGl1czogMHJlbTtcbiAgYm94LXNoYWRvdzogbm9uZTtcbiAgdHJhbnNpdGlvbjogYm94LXNoYWRvdyAwLjFzIGVhc2U7XG4gIHotaW5kZXg6ICcnO1xufVxuLnVpLml0ZW1zID4gLml0ZW0gYSB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgIEl0ZW1zXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLml0ZW1zIHtcbiAgbWFyZ2luOiAxLjVlbSAwZW07XG59XG4udWkuaXRlbXM6Zmlyc3QtY2hpbGQge1xuICBtYXJnaW4tdG9wOiAwZW0gIWltcG9ydGFudDtcbn1cbi51aS5pdGVtczpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLWJvdHRvbTogMGVtICFpbXBvcnRhbnQ7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgICBJdGVtXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLml0ZW1zID4gLml0ZW06YWZ0ZXIge1xuICBkaXNwbGF5OiBibG9jaztcbiAgY29udGVudDogJyAnO1xuICBoZWlnaHQ6IDBweDtcbiAgY2xlYXI6IGJvdGg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbn1cbi51aS5pdGVtcyA+IC5pdGVtOmZpcnN0LWNoaWxkIHtcbiAgbWFyZ2luLXRvcDogMGVtO1xufVxuLnVpLml0ZW1zID4gLml0ZW06bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1ib3R0b206IDBlbTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgSW1hZ2VzXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLml0ZW1zID4gLml0ZW0gPiAuaW1hZ2Uge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGZsZXg6IDAgMCBhdXRvO1xuICBkaXNwbGF5OiBibG9jaztcbiAgZmxvYXQ6IG5vbmU7XG4gIG1hcmdpbjogMGVtO1xuICBwYWRkaW5nOiAwZW07XG4gIG1heC1oZWlnaHQ6ICcnO1xuICBhbGlnbi1zZWxmOiB0b3A7XG59XG4udWkuaXRlbXMgPiAuaXRlbSA+IC5pbWFnZSA+IGltZyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiBhdXRvO1xuICBib3JkZXItcmFkaXVzOiAwLjEyNXJlbTtcbiAgYm9yZGVyOiBub25lO1xufVxuLnVpLml0ZW1zID4gLml0ZW0gPiAuaW1hZ2U6b25seS1jaGlsZCA+IGltZyB7XG4gIGJvcmRlci1yYWRpdXM6IDByZW07XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIENvbnRlbnRcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuaXRlbXMgPiAuaXRlbSA+IC5jb250ZW50IHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZsZXg6IDEgMSBhdXRvO1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICBtYXJnaW46IDBlbTtcbiAgcGFkZGluZzogMGVtO1xuICBib3gtc2hhZG93OiBub25lO1xuICBmb250LXNpemU6IDFlbTtcbiAgYm9yZGVyOiBub25lO1xuICBib3JkZXItcmFkaXVzOiAwZW07XG59XG4udWkuaXRlbXMgPiAuaXRlbSA+IC5jb250ZW50OmFmdGVyIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGNvbnRlbnQ6ICcgJztcbiAgaGVpZ2h0OiAwcHg7XG4gIGNsZWFyOiBib3RoO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG59XG4udWkuaXRlbXMgPiAuaXRlbSA+IC5pbWFnZSArIC5jb250ZW50IHtcbiAgbWluLXdpZHRoOiAwO1xuICB3aWR0aDogYXV0bztcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbi1sZWZ0OiAwZW07XG4gIGFsaWduLXNlbGY6IHRvcDtcbiAgcGFkZGluZy1sZWZ0OiAxLjVlbTtcbn1cbi51aS5pdGVtcyA+IC5pdGVtID4gLmNvbnRlbnQgPiAuaGVhZGVyIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXJnaW46IC0wLjIxNDI1ZW0gMGVtIDBlbTtcbiAgZm9udC1mYW1pbHk6ICdFeG8gMicsICdMYXRvJywgQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZjtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODUpO1xufVxuLyogRGVmYXVsdCBIZWFkZXIgU2l6ZSAqL1xuLnVpLml0ZW1zID4gLml0ZW0gPiAuY29udGVudCA+IC5oZWFkZXI6bm90KC51aSkge1xuICBmb250LXNpemU6IDEuM2VtO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBGbG9hdGVkXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLml0ZW1zID4gLml0ZW0gW2NsYXNzKj1cImxlZnQgZmxvYXRlZFwiXSB7XG4gIGZsb2F0OiBsZWZ0O1xufVxuLnVpLml0ZW1zID4gLml0ZW0gW2NsYXNzKj1cInJpZ2h0IGZsb2F0ZWRcIl0ge1xuICBmbG9hdDogcmlnaHQ7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gIENvbnRlbnQgSW1hZ2Vcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuaXRlbXMgPiAuaXRlbSAuY29udGVudCBpbWcge1xuICBhbGlnbi1zZWxmOiBtaWRkbGU7XG4gIHdpZHRoOiAnJztcbn1cbi51aS5pdGVtcyA+IC5pdGVtIGltZy5hdmF0YXIsXG4udWkuaXRlbXMgPiAuaXRlbSAuYXZhdGFyIGltZyB7XG4gIHdpZHRoOiAnJztcbiAgaGVpZ2h0OiAnJztcbiAgYm9yZGVyLXJhZGl1czogNTAwcmVtO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgRGVzY3JpcHRpb25cbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuaXRlbXMgPiAuaXRlbSA+IC5jb250ZW50ID4gLmRlc2NyaXB0aW9uIHtcbiAgbWFyZ2luLXRvcDogMC42ZW07XG4gIG1heC13aWR0aDogYXV0bztcbiAgZm9udC1zaXplOiAxZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjQyODVlbTtcbiAgY29sb3I6ICMzMzMzMzM7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLml0ZW1zID4gLml0ZW0gPiAuY29udGVudCBwIHtcbiAgbWFyZ2luOiAwZW0gMGVtIDAuNWVtO1xufVxuLnVpLml0ZW1zID4gLml0ZW0gPiAuY29udGVudCBwOmxhc3QtY2hpbGQge1xuICBtYXJnaW4tYm90dG9tOiAwZW07XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgICBNZXRhXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLml0ZW1zID4gLml0ZW0gLm1ldGEge1xuICBtYXJnaW46IDAuNWVtIDBlbSAwLjVlbTtcbiAgZm9udC1zaXplOiAxZW07XG4gIGxpbmUtaGVpZ2h0OiAxZW07XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNik7XG59XG4udWkuaXRlbXMgPiAuaXRlbSAubWV0YSAqIHtcbiAgbWFyZ2luLXJpZ2h0OiAwLjNlbTtcbn1cbi51aS5pdGVtcyA+IC5pdGVtIC5tZXRhIDpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLXJpZ2h0OiAwZW07XG59XG4udWkuaXRlbXMgPiAuaXRlbSAubWV0YSBbY2xhc3MqPVwicmlnaHQgZmxvYXRlZFwiXSB7XG4gIG1hcmdpbi1yaWdodDogMGVtO1xuICBtYXJnaW4tbGVmdDogMC4zZW07XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEdlbmVyaWMgKi9cbi51aS5pdGVtcyA+IC5pdGVtID4gLmNvbnRlbnQgYTpub3QoLnVpKSB7XG4gIGNvbG9yOiAnJztcbiAgdHJhbnNpdGlvbjogY29sb3IgMC4xcyBlYXNlO1xufVxuLnVpLml0ZW1zID4gLml0ZW0gPiAuY29udGVudCBhOm5vdCgudWkpOmhvdmVyIHtcbiAgY29sb3I6ICcnO1xufVxuLyogSGVhZGVyICovXG4udWkuaXRlbXMgPiAuaXRlbSA+IC5jb250ZW50ID4gYS5oZWFkZXIge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg1KTtcbn1cbi51aS5pdGVtcyA+IC5pdGVtID4gLmNvbnRlbnQgPiBhLmhlYWRlcjpob3ZlciB7XG4gIGNvbG9yOiAjMWU3MGJmO1xufVxuLyogTWV0YSAqL1xuLnVpLml0ZW1zID4gLml0ZW0gLm1ldGEgPiBhOm5vdCgudWkpIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC40KTtcbn1cbi51aS5pdGVtcyA+IC5pdGVtIC5tZXRhID4gYTpub3QoLnVpKTpob3ZlciB7XG4gIGNvbG9yOiAjMzMzMzMzO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBMYWJlbHNcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tU3Rhci0tLS0tICovXG4vKiBJY29uICovXG4udWkuaXRlbXMgPiAuaXRlbSA+IC5jb250ZW50IC5mYXZvcml0ZS5pY29uIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBvcGFjaXR5OiAwLjc1O1xuICB0cmFuc2l0aW9uOiBjb2xvciAwLjFzIGVhc2U7XG59XG4udWkuaXRlbXMgPiAuaXRlbSA+IC5jb250ZW50IC5mYXZvcml0ZS5pY29uOmhvdmVyIHtcbiAgb3BhY2l0eTogMTtcbiAgY29sb3I6ICNGRkI3MEE7XG59XG4udWkuaXRlbXMgPiAuaXRlbSA+IC5jb250ZW50IC5hY3RpdmUuZmF2b3JpdGUuaWNvbiB7XG4gIGNvbG9yOiAjRkZFNjIzO1xufVxuLyotLS0tLUxpa2UtLS0tLSAqL1xuLyogSWNvbiAqL1xuLnVpLml0ZW1zID4gLml0ZW0gPiAuY29udGVudCAubGlrZS5pY29uIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBvcGFjaXR5OiAwLjc1O1xuICB0cmFuc2l0aW9uOiBjb2xvciAwLjFzIGVhc2U7XG59XG4udWkuaXRlbXMgPiAuaXRlbSA+IC5jb250ZW50IC5saWtlLmljb246aG92ZXIge1xuICBvcGFjaXR5OiAxO1xuICBjb2xvcjogI0ZGMjczMztcbn1cbi51aS5pdGVtcyA+IC5pdGVtID4gLmNvbnRlbnQgLmFjdGl2ZS5saWtlLmljb24ge1xuICBjb2xvcjogI0ZGMjczMztcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLVxuICBFeHRyYSBDb250ZW50XG4tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkuaXRlbXMgPiAuaXRlbSAuZXh0cmEge1xuICBkaXNwbGF5OiBibG9jaztcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICBtYXJnaW46IDAuNXJlbSAwZW0gMGVtO1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZzogMGVtIDBlbSAwZW07XG4gIHRvcDogMGVtO1xuICBsZWZ0OiAwZW07XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNCk7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG4gIHRyYW5zaXRpb246IGNvbG9yIDAuMXMgZWFzZTtcbiAgYm9yZGVyLXRvcDogbm9uZTtcbn1cbi51aS5pdGVtcyA+IC5pdGVtIC5leHRyYSA+ICoge1xuICBtYXJnaW46IDAuMjVyZW0gMC41cmVtIDAuMjVyZW0gMGVtO1xufVxuLnVpLml0ZW1zID4gLml0ZW0gLmV4dHJhID4gW2NsYXNzKj1cInJpZ2h0IGZsb2F0ZWRcIl0ge1xuICBtYXJnaW46IDAuMjVyZW0gMGVtIDAuMjVyZW0gMC41cmVtO1xufVxuLnVpLml0ZW1zID4gLml0ZW0gLmV4dHJhOmFmdGVyIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGNvbnRlbnQ6ICcgJztcbiAgaGVpZ2h0OiAwcHg7XG4gIGNsZWFyOiBib3RoO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgIFJlc3BvbnNpdmVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBEZWZhdWx0IEltYWdlIFdpZHRoICovXG4udWkuaXRlbXMgPiAuaXRlbSA+IC5pbWFnZTpub3QoLnVpKSB7XG4gIHdpZHRoOiAxNzVweDtcbn1cbi8qIFRhYmxldCBPbmx5ICovXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc2OHB4KSBhbmQgKG1heC13aWR0aDogOTkxcHgpIHtcbiAgLnVpLml0ZW1zID4gLml0ZW0ge1xuICAgIG1hcmdpbjogMWVtIDBlbTtcbiAgfVxuICAudWkuaXRlbXMgPiAuaXRlbSA+IC5pbWFnZTpub3QoLnVpKSB7XG4gICAgd2lkdGg6IDE1MHB4O1xuICB9XG4gIC51aS5pdGVtcyA+IC5pdGVtID4gLmltYWdlICsgLmNvbnRlbnQge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBhZGRpbmc6IDBlbSAwZW0gMGVtIDFlbTtcbiAgfVxufVxuLyogTW9iaWxlIE9ubHkgKi9cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgLnVpLml0ZW1zOm5vdCgudW5zdGFja2FibGUpID4gLml0ZW0ge1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgbWFyZ2luOiAyZW0gMGVtO1xuICB9XG4gIC51aS5pdGVtczpub3QoLnVuc3RhY2thYmxlKSA+IC5pdGVtID4gLmltYWdlIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gIH1cbiAgLnVpLml0ZW1zOm5vdCgudW5zdGFja2FibGUpID4gLml0ZW0gPiAuaW1hZ2UsXG4gIC51aS5pdGVtczpub3QoLnVuc3RhY2thYmxlKSA+IC5pdGVtID4gLmltYWdlID4gaW1nIHtcbiAgICBtYXgtd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgICB3aWR0aDogYXV0byAhaW1wb3J0YW50O1xuICAgIG1heC1oZWlnaHQ6IDI1MHB4ICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLml0ZW1zOm5vdCgudW5zdGFja2FibGUpID4gLml0ZW0gPiAuaW1hZ2UgKyAuY29udGVudCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcGFkZGluZzogMS41ZW0gMGVtIDBlbTtcbiAgfVxufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgVmFyaWF0aW9uc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFsaWduZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5pdGVtcyA+IC5pdGVtID4gLmltYWdlICsgW2NsYXNzKj1cInRvcCBhbGlnbmVkXCJdLmNvbnRlbnQge1xuICBhbGlnbi1zZWxmOiBmbGV4LXN0YXJ0O1xufVxuLnVpLml0ZW1zID4gLml0ZW0gPiAuaW1hZ2UgKyBbY2xhc3MqPVwibWlkZGxlIGFsaWduZWRcIl0uY29udGVudCB7XG4gIGFsaWduLXNlbGY6IGNlbnRlcjtcbn1cbi51aS5pdGVtcyA+IC5pdGVtID4gLmltYWdlICsgW2NsYXNzKj1cImJvdHRvbSBhbGlnbmVkXCJdLmNvbnRlbnQge1xuICBhbGlnbi1zZWxmOiBmbGV4LWVuZDtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgUmVsYXhlZFxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5yZWxheGVkLml0ZW1zID4gLml0ZW0ge1xuICBtYXJnaW46IDEuNWVtIDBlbTtcbn1cbi51aVtjbGFzcyo9XCJ2ZXJ5IHJlbGF4ZWRcIl0uaXRlbXMgPiAuaXRlbSB7XG4gIG1hcmdpbjogMmVtIDBlbTtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGl2aWRlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmRpdmlkZWQuaXRlbXMgPiAuaXRlbSB7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpO1xuICBtYXJnaW46IDBlbTtcbiAgcGFkZGluZzogMWVtIDBlbTtcbn1cbi51aS5kaXZpZGVkLml0ZW1zID4gLml0ZW06Zmlyc3QtY2hpbGQge1xuICBib3JkZXItdG9wOiBub25lO1xuICBtYXJnaW4tdG9wOiAwZW0gIWltcG9ydGFudDtcbiAgcGFkZGluZy10b3A6IDBlbSAhaW1wb3J0YW50O1xufVxuLnVpLmRpdmlkZWQuaXRlbXMgPiAuaXRlbTpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLWJvdHRvbTogMGVtICFpbXBvcnRhbnQ7XG4gIHBhZGRpbmctYm90dG9tOiAwZW0gIWltcG9ydGFudDtcbn1cbi8qIFJlbGF4ZWQgRGl2aWRlZCAqL1xuLnVpLnJlbGF4ZWQuZGl2aWRlZC5pdGVtcyA+IC5pdGVtIHtcbiAgbWFyZ2luOiAwZW07XG4gIHBhZGRpbmc6IDEuNWVtIDBlbTtcbn1cbi51aVtjbGFzcyo9XCJ2ZXJ5IHJlbGF4ZWRcIl0uZGl2aWRlZC5pdGVtcyA+IC5pdGVtIHtcbiAgbWFyZ2luOiAwZW07XG4gIHBhZGRpbmc6IDJlbSAwZW07XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgTGlua1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLml0ZW1zIGEuaXRlbTpob3Zlcixcbi51aS5saW5rLml0ZW1zID4gLml0ZW06aG92ZXIge1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4udWkuaXRlbXMgYS5pdGVtOmhvdmVyIC5jb250ZW50IC5oZWFkZXIsXG4udWkubGluay5pdGVtcyA+IC5pdGVtOmhvdmVyIC5jb250ZW50IC5oZWFkZXIge1xuICBjb2xvcjogIzFlNzBiZjtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpemVcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuaXRlbXMgPiAuaXRlbSB7XG4gIGZvbnQtc2l6ZTogMWVtO1xufVxuLyotLS0tLS0tLS0tLS0tLS1cbiAgIFVuc3RhY2thYmxlXG4tLS0tLS0tLS0tLS0tLS0tKi9cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgLnVpLnVuc3RhY2thYmxlLml0ZW1zID4gLml0ZW0gPiAuaW1hZ2UsXG4gIC51aS51bnN0YWNrYWJsZS5pdGVtcyA+IC5pdGVtID4gLmltYWdlID4gaW1nIHtcbiAgICB3aWR0aDogMTI1cHggIWltcG9ydGFudDtcbiAgfVxufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFRoZW1lIE92ZXJyaWRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgVXNlciBWYXJpYWJsZSBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiFcbiAqICMgU2VtYW50aWMgVUkgLSBTdGF0aXN0aWNcbiAqIGh0dHA6Ly9naXRodWIuY29tL3NlbWFudGljLW9yZy9zZW1hbnRpYy11aS9cbiAqXG4gKlxuICogUmVsZWFzZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlXG4gKiBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUXG4gKlxuICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKlxuXG7ilojilojilojilojilojilojilojilojilZfilojilojilZcgIOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKVlyAgIOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl1xu4pWa4pWQ4pWQ4paI4paI4pWU4pWQ4pWQ4pWd4paI4paI4pWRICDilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilojilojilZcg4paI4paI4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWd4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWdXG4gICDilojilojilZEgICDilojilojilojilojilojilojilojilZHilojilojilojilojilojilZcgIOKWiOKWiOKVlOKWiOKWiOKWiOKWiOKVlOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4paI4paI4paI4paI4paI4pWXXG4gICDilojilojilZEgICDilojilojilZTilZDilZDilojilojilZHilojilojilZTilZDilZDilZ0gIOKWiOKWiOKVkeKVmuKWiOKWiOKVlOKVneKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4pWa4pWQ4pWQ4pWQ4pWQ4paI4paI4pWRXG4gICDilojilojilZEgICDilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVkSDilZrilZDilZ0g4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWRXG4gICDilZrilZDilZ0gICDilZrilZDilZ0gIOKVmuKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVneKVmuKVkOKVnSAgICAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWdXG5cbiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBUaGVtZSBTZWxlY3Rpb25cbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBUbyBvdmVycmlkZSBhIHRoZW1lIGZvciBhbiBpbmRpdmlkdWFsIGVsZW1lbnRcbiAgIHNwZWNpZnkgdGhlbWUgbmFtZSBiZWxvd1xuKi9cbi8qIEdsb2JhbCAqL1xuLyogRWxlbWVudHMgKi9cbi8qIENvbGxlY3Rpb25zICovXG4vKiBNb2R1bGVzICovXG4vKiBWaWV3cyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIEZvbGRlcnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBQYXRoIHRvIHRoZW1lIHBhY2thZ2VzICovXG4vKiBQYXRoIHRvIHNpdGUgb3ZlcnJpZGUgZm9sZGVyICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgSW1wb3J0IFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgSW1wb3J0IERpcmVjdGl2ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIFRoZW1lXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgIFNpdGUgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kb3JzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFBhY2thZ2VkIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRvcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogQ29tcG9uZW50J3Mgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZG9ycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBTaXRlIHRoZW1lIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICBVc2VyIEdsb2JhbCBWYXJpYWJsZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBtYXJzbyBjb2xvcnMgKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiBDb21wb25lbnQgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgU3RhdGlzdGljXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgICBWaWV3XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBHcm91cCAqL1xuLyogR3JvdXAgRWxlbWVudCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQ29udGVudFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVmFsdWUgKi9cbi8qIExhYmVsICovXG4vKiBUZXh0ICovXG4vKiBMYWJlbCBJbWFnZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBUeXBlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBWYXJpYXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGbG9hdGVkICovXG4vKiBJbnZlcnRlZCAqL1xuLyogSXRlbSBXaWR0aCAqL1xuLyogU2l6ZSAqL1xuLyogUGFja2FnZWQgVGhlbWUgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFN0YXRpc3RpY1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICAgVmlld1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogR3JvdXAgKi9cbi8qIEdyb3VwIEVsZW1lbnQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIENvbnRlbnRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFZhbHVlICovXG4vKiBMYWJlbCAqL1xuLyogVGV4dCAqL1xuLyogTGFiZWwgSW1hZ2UgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgVHlwZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgVmFyaWF0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRmxvYXRlZCAqL1xuLyogSW52ZXJ0ZWQgKi9cbi8qIEl0ZW0gV2lkdGggKi9cbi8qIFNpemUgKi9cbi8qIFNpdGUgVGhlbWUgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgVXNlciBWYXJpYWJsZSBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIE1peC1pbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE92ZXJyaWRlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBFbmQgQ29uZmlnICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBTdGF0aXN0aWNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBTdGFuZGFsb25lICovXG4udWkuc3RhdGlzdGljIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIG1hcmdpbjogMWVtIDBlbTtcbiAgbWF4LXdpZHRoOiBhdXRvO1xufVxuLnVpLnN0YXRpc3RpYyArIC51aS5zdGF0aXN0aWMge1xuICBtYXJnaW46IDBlbSAwZW0gMGVtIDEuNWVtO1xufVxuLnVpLnN0YXRpc3RpYzpmaXJzdC1jaGlsZCB7XG4gIG1hcmdpbi10b3A6IDBlbTtcbn1cbi51aS5zdGF0aXN0aWM6bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1ib3R0b206IDBlbTtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBHcm91cFxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIEdyb3VwZWQgKi9cbi51aS5zdGF0aXN0aWNzIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gIGZsZXgtd3JhcDogd3JhcDtcbn1cbi51aS5zdGF0aXN0aWNzID4gLnN0YXRpc3RpYyB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBmbGV4OiAwIDEgYXV0bztcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgbWFyZ2luOiAwZW0gMS41ZW0gMmVtO1xuICBtYXgtd2lkdGg6IGF1dG87XG59XG4udWkuc3RhdGlzdGljcyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIG1hcmdpbjogMWVtIC0xLjVlbSAtMmVtO1xufVxuLyogQ2xlYXJpbmcgKi9cbi51aS5zdGF0aXN0aWNzOmFmdGVyIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGNvbnRlbnQ6ICcgJztcbiAgaGVpZ2h0OiAwcHg7XG4gIGNsZWFyOiBib3RoO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG59XG4udWkuc3RhdGlzdGljczpmaXJzdC1jaGlsZCB7XG4gIG1hcmdpbi10b3A6IDBlbTtcbn1cbi51aS5zdGF0aXN0aWNzOmxhc3QtY2hpbGQge1xuICBtYXJnaW4tYm90dG9tOiAwZW07XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgQ29udGVudFxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgIFZhbHVlXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLnN0YXRpc3RpY3MgLnN0YXRpc3RpYyA+IC52YWx1ZSxcbi51aS5zdGF0aXN0aWMgPiAudmFsdWUge1xuICBmb250LWZhbWlseTogJ0V4byAyJywgJ0xhdG8nLCBBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDRyZW07XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGxpbmUtaGVpZ2h0OiAxZW07XG4gIGNvbG9yOiAjMDAwMDAwO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIExhYmVsXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLnN0YXRpc3RpY3MgLnN0YXRpc3RpYyA+IC5sYWJlbCxcbi51aS5zdGF0aXN0aWMgPiAubGFiZWwge1xuICBmb250LWZhbWlseTogJ0V4byAyJywgJ0xhdG8nLCBBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDFlbTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGNvbG9yOiAjMzMzMzMzO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG4vKiBUb3AgTGFiZWwgKi9cbi51aS5zdGF0aXN0aWNzIC5zdGF0aXN0aWMgPiAubGFiZWwgfiAudmFsdWUsXG4udWkuc3RhdGlzdGljID4gLmxhYmVsIH4gLnZhbHVlIHtcbiAgbWFyZ2luLXRvcDogMHJlbTtcbn1cbi8qIEJvdHRvbSBMYWJlbCAqL1xuLnVpLnN0YXRpc3RpY3MgLnN0YXRpc3RpYyA+IC52YWx1ZSB+IC5sYWJlbCxcbi51aS5zdGF0aXN0aWMgPiAudmFsdWUgfiAubGFiZWwge1xuICBtYXJnaW4tdG9wOiAwcmVtO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBUeXBlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEljb24gVmFsdWVcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuc3RhdGlzdGljcyAuc3RhdGlzdGljID4gLnZhbHVlIC5pY29uLFxuLnVpLnN0YXRpc3RpYyA+IC52YWx1ZSAuaWNvbiB7XG4gIG9wYWNpdHk6IDE7XG4gIHdpZHRoOiBhdXRvO1xuICBtYXJnaW46IDBlbTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIFRleHQgVmFsdWVcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuc3RhdGlzdGljcyAuc3RhdGlzdGljID4gLnRleHQudmFsdWUsXG4udWkuc3RhdGlzdGljID4gLnRleHQudmFsdWUge1xuICBsaW5lLWhlaWdodDogMWVtO1xuICBtaW4taGVpZ2h0OiAyZW07XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG4udWkuc3RhdGlzdGljcyAuc3RhdGlzdGljID4gLnRleHQudmFsdWUgKyAubGFiZWwsXG4udWkuc3RhdGlzdGljID4gLnRleHQudmFsdWUgKyAubGFiZWwge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICBJbWFnZSBWYWx1ZVxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5zdGF0aXN0aWNzIC5zdGF0aXN0aWMgPiAudmFsdWUgaW1nLFxuLnVpLnN0YXRpc3RpYyA+IC52YWx1ZSBpbWcge1xuICBtYXgtaGVpZ2h0OiAzcmVtO1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgVmFyaWF0aW9uc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgIENvdW50XG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLnRlbi5zdGF0aXN0aWNzIHtcbiAgbWFyZ2luOiAwZW0gMGVtIC0yZW07XG59XG4udWkudGVuLnN0YXRpc3RpY3MgLnN0YXRpc3RpYyB7XG4gIG1pbi13aWR0aDogMTAlO1xuICBtYXJnaW46IDBlbSAwZW0gMmVtO1xufVxuLnVpLm5pbmUuc3RhdGlzdGljcyB7XG4gIG1hcmdpbjogMGVtIDBlbSAtMmVtO1xufVxuLnVpLm5pbmUuc3RhdGlzdGljcyAuc3RhdGlzdGljIHtcbiAgbWluLXdpZHRoOiAxMS4xMTExMTExMSU7XG4gIG1hcmdpbjogMGVtIDBlbSAyZW07XG59XG4udWkuZWlnaHQuc3RhdGlzdGljcyB7XG4gIG1hcmdpbjogMGVtIDBlbSAtMmVtO1xufVxuLnVpLmVpZ2h0LnN0YXRpc3RpY3MgLnN0YXRpc3RpYyB7XG4gIG1pbi13aWR0aDogMTIuNSU7XG4gIG1hcmdpbjogMGVtIDBlbSAyZW07XG59XG4udWkuc2V2ZW4uc3RhdGlzdGljcyB7XG4gIG1hcmdpbjogMGVtIDBlbSAtMmVtO1xufVxuLnVpLnNldmVuLnN0YXRpc3RpY3MgLnN0YXRpc3RpYyB7XG4gIG1pbi13aWR0aDogMTQuMjg1NzE0MjklO1xuICBtYXJnaW46IDBlbSAwZW0gMmVtO1xufVxuLnVpLnNpeC5zdGF0aXN0aWNzIHtcbiAgbWFyZ2luOiAwZW0gMGVtIC0yZW07XG59XG4udWkuc2l4LnN0YXRpc3RpY3MgLnN0YXRpc3RpYyB7XG4gIG1pbi13aWR0aDogMTYuNjY2NjY2NjclO1xuICBtYXJnaW46IDBlbSAwZW0gMmVtO1xufVxuLnVpLmZpdmUuc3RhdGlzdGljcyB7XG4gIG1hcmdpbjogMGVtIDBlbSAtMmVtO1xufVxuLnVpLmZpdmUuc3RhdGlzdGljcyAuc3RhdGlzdGljIHtcbiAgbWluLXdpZHRoOiAyMCU7XG4gIG1hcmdpbjogMGVtIDBlbSAyZW07XG59XG4udWkuZm91ci5zdGF0aXN0aWNzIHtcbiAgbWFyZ2luOiAwZW0gMGVtIC0yZW07XG59XG4udWkuZm91ci5zdGF0aXN0aWNzIC5zdGF0aXN0aWMge1xuICBtaW4td2lkdGg6IDI1JTtcbiAgbWFyZ2luOiAwZW0gMGVtIDJlbTtcbn1cbi51aS50aHJlZS5zdGF0aXN0aWNzIHtcbiAgbWFyZ2luOiAwZW0gMGVtIC0yZW07XG59XG4udWkudGhyZWUuc3RhdGlzdGljcyAuc3RhdGlzdGljIHtcbiAgbWluLXdpZHRoOiAzMy4zMzMzMzMzMyU7XG4gIG1hcmdpbjogMGVtIDBlbSAyZW07XG59XG4udWkudHdvLnN0YXRpc3RpY3Mge1xuICBtYXJnaW46IDBlbSAwZW0gLTJlbTtcbn1cbi51aS50d28uc3RhdGlzdGljcyAuc3RhdGlzdGljIHtcbiAgbWluLXdpZHRoOiA1MCU7XG4gIG1hcmdpbjogMGVtIDBlbSAyZW07XG59XG4udWkub25lLnN0YXRpc3RpY3Mge1xuICBtYXJnaW46IDBlbSAwZW0gLTJlbTtcbn1cbi51aS5vbmUuc3RhdGlzdGljcyAuc3RhdGlzdGljIHtcbiAgbWluLXdpZHRoOiAxMDAlO1xuICBtYXJnaW46IDBlbSAwZW0gMmVtO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgSG9yaXpvbnRhbFxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5ob3Jpem9udGFsLnN0YXRpc3RpYyB7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG4udWkuaG9yaXpvbnRhbC5zdGF0aXN0aWNzIHtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgbWFyZ2luOiAwZW07XG4gIG1heC13aWR0aDogbm9uZTtcbn1cbi51aS5ob3Jpem9udGFsLnN0YXRpc3RpY3MgLnN0YXRpc3RpYyB7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIG1heC13aWR0aDogbm9uZTtcbiAgbWFyZ2luOiAxZW0gMGVtO1xufVxuLnVpLmhvcml6b250YWwuc3RhdGlzdGljID4gLnRleHQudmFsdWUsXG4udWkuaG9yaXpvbnRhbC5zdGF0aXN0aWNzID4gLnN0YXRpc3RpYyA+IC50ZXh0LnZhbHVlIHtcbiAgbWluLWhlaWdodDogMGVtICFpbXBvcnRhbnQ7XG59XG4udWkuaG9yaXpvbnRhbC5zdGF0aXN0aWNzIC5zdGF0aXN0aWMgPiAudmFsdWUgLmljb24sXG4udWkuaG9yaXpvbnRhbC5zdGF0aXN0aWMgPiAudmFsdWUgLmljb24ge1xuICB3aWR0aDogMS4xOGVtO1xufVxuLnVpLmhvcml6b250YWwuc3RhdGlzdGljcyAuc3RhdGlzdGljID4gLnZhbHVlLFxuLnVpLmhvcml6b250YWwuc3RhdGlzdGljID4gLnZhbHVlIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuLnVpLmhvcml6b250YWwuc3RhdGlzdGljcyAuc3RhdGlzdGljID4gLmxhYmVsLFxuLnVpLmhvcml6b250YWwuc3RhdGlzdGljID4gLmxhYmVsIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBtYXJnaW46IDBlbSAwZW0gMGVtIDAuNzVlbTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLnJlZC5zdGF0aXN0aWNzIC5zdGF0aXN0aWMgPiAudmFsdWUsXG4udWkuc3RhdGlzdGljcyAucmVkLnN0YXRpc3RpYyA+IC52YWx1ZSxcbi51aS5yZWQuc3RhdGlzdGljID4gLnZhbHVlIHtcbiAgY29sb3I6ICNkZTNhM2U7XG59XG4udWkub3JhbmdlLnN0YXRpc3RpY3MgLnN0YXRpc3RpYyA+IC52YWx1ZSxcbi51aS5zdGF0aXN0aWNzIC5vcmFuZ2Uuc3RhdGlzdGljID4gLnZhbHVlLFxuLnVpLm9yYW5nZS5zdGF0aXN0aWMgPiAudmFsdWUge1xuICBjb2xvcjogI2ZmOTUzMztcbn1cbi51aS55ZWxsb3cuc3RhdGlzdGljcyAuc3RhdGlzdGljID4gLnZhbHVlLFxuLnVpLnN0YXRpc3RpY3MgLnllbGxvdy5zdGF0aXN0aWMgPiAudmFsdWUsXG4udWkueWVsbG93LnN0YXRpc3RpYyA+IC52YWx1ZSB7XG4gIGNvbG9yOiAjRkJCRDA4O1xufVxuLnVpLm9saXZlLnN0YXRpc3RpY3MgLnN0YXRpc3RpYyA+IC52YWx1ZSxcbi51aS5zdGF0aXN0aWNzIC5vbGl2ZS5zdGF0aXN0aWMgPiAudmFsdWUsXG4udWkub2xpdmUuc3RhdGlzdGljID4gLnZhbHVlIHtcbiAgY29sb3I6ICNCNUNDMTg7XG59XG4udWkuZ3JlZW4uc3RhdGlzdGljcyAuc3RhdGlzdGljID4gLnZhbHVlLFxuLnVpLnN0YXRpc3RpY3MgLmdyZWVuLnN0YXRpc3RpYyA+IC52YWx1ZSxcbi51aS5ncmVlbi5zdGF0aXN0aWMgPiAudmFsdWUge1xuICBjb2xvcjogIzE5YTUzMTtcbn1cbi51aS50ZWFsLnN0YXRpc3RpY3MgLnN0YXRpc3RpYyA+IC52YWx1ZSxcbi51aS5zdGF0aXN0aWNzIC50ZWFsLnN0YXRpc3RpYyA+IC52YWx1ZSxcbi51aS50ZWFsLnN0YXRpc3RpYyA+IC52YWx1ZSB7XG4gIGNvbG9yOiAjMDBCNUFEO1xufVxuLnVpLmJsdWUuc3RhdGlzdGljcyAuc3RhdGlzdGljID4gLnZhbHVlLFxuLnVpLnN0YXRpc3RpY3MgLmJsdWUuc3RhdGlzdGljID4gLnZhbHVlLFxuLnVpLmJsdWUuc3RhdGlzdGljID4gLnZhbHVlIHtcbiAgY29sb3I6ICMzZjUxYjU7XG59XG4udWkudmlvbGV0LnN0YXRpc3RpY3MgLnN0YXRpc3RpYyA+IC52YWx1ZSxcbi51aS5zdGF0aXN0aWNzIC52aW9sZXQuc3RhdGlzdGljID4gLnZhbHVlLFxuLnVpLnZpb2xldC5zdGF0aXN0aWMgPiAudmFsdWUge1xuICBjb2xvcjogIzY0MzVDOTtcbn1cbi51aS5wdXJwbGUuc3RhdGlzdGljcyAuc3RhdGlzdGljID4gLnZhbHVlLFxuLnVpLnN0YXRpc3RpY3MgLnB1cnBsZS5zdGF0aXN0aWMgPiAudmFsdWUsXG4udWkucHVycGxlLnN0YXRpc3RpYyA+IC52YWx1ZSB7XG4gIGNvbG9yOiAjQTMzM0M4O1xufVxuLnVpLnBpbmsuc3RhdGlzdGljcyAuc3RhdGlzdGljID4gLnZhbHVlLFxuLnVpLnN0YXRpc3RpY3MgLnBpbmsuc3RhdGlzdGljID4gLnZhbHVlLFxuLnVpLnBpbmsuc3RhdGlzdGljID4gLnZhbHVlIHtcbiAgY29sb3I6ICNFMDM5OTc7XG59XG4udWkuYnJvd24uc3RhdGlzdGljcyAuc3RhdGlzdGljID4gLnZhbHVlLFxuLnVpLnN0YXRpc3RpY3MgLmJyb3duLnN0YXRpc3RpYyA+IC52YWx1ZSxcbi51aS5icm93bi5zdGF0aXN0aWMgPiAudmFsdWUge1xuICBjb2xvcjogI0E1NjczRjtcbn1cbi51aS5ncmV5LnN0YXRpc3RpY3MgLnN0YXRpc3RpYyA+IC52YWx1ZSxcbi51aS5zdGF0aXN0aWNzIC5ncmV5LnN0YXRpc3RpYyA+IC52YWx1ZSxcbi51aS5ncmV5LnN0YXRpc3RpYyA+IC52YWx1ZSB7XG4gIGNvbG9yOiAjNzY3Njc2O1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgIEludmVydGVkXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmludmVydGVkLnN0YXRpc3RpY3MgLnN0YXRpc3RpYyA+IC52YWx1ZSxcbi51aS5pbnZlcnRlZC5zdGF0aXN0aWMgLnZhbHVlIHtcbiAgY29sb3I6ICNmZmZmZmY7XG59XG4udWkuaW52ZXJ0ZWQuc3RhdGlzdGljcyAuc3RhdGlzdGljID4gLmxhYmVsLFxuLnVpLmludmVydGVkLnN0YXRpc3RpYyAubGFiZWwge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjkpO1xufVxuLnVpLmludmVydGVkLnJlZC5zdGF0aXN0aWNzIC5zdGF0aXN0aWMgPiAudmFsdWUsXG4udWkuc3RhdGlzdGljcyAuaW52ZXJ0ZWQucmVkLnN0YXRpc3RpYyA+IC52YWx1ZSxcbi51aS5pbnZlcnRlZC5yZWQuc3RhdGlzdGljID4gLnZhbHVlIHtcbiAgY29sb3I6ICNGRjY5NUU7XG59XG4udWkuaW52ZXJ0ZWQub3JhbmdlLnN0YXRpc3RpY3MgLnN0YXRpc3RpYyA+IC52YWx1ZSxcbi51aS5zdGF0aXN0aWNzIC5pbnZlcnRlZC5vcmFuZ2Uuc3RhdGlzdGljID4gLnZhbHVlLFxuLnVpLmludmVydGVkLm9yYW5nZS5zdGF0aXN0aWMgPiAudmFsdWUge1xuICBjb2xvcjogI0ZGODUxQjtcbn1cbi51aS5pbnZlcnRlZC55ZWxsb3cuc3RhdGlzdGljcyAuc3RhdGlzdGljID4gLnZhbHVlLFxuLnVpLnN0YXRpc3RpY3MgLmludmVydGVkLnllbGxvdy5zdGF0aXN0aWMgPiAudmFsdWUsXG4udWkuaW52ZXJ0ZWQueWVsbG93LnN0YXRpc3RpYyA+IC52YWx1ZSB7XG4gIGNvbG9yOiAjRkZFMjFGO1xufVxuLnVpLmludmVydGVkLm9saXZlLnN0YXRpc3RpY3MgLnN0YXRpc3RpYyA+IC52YWx1ZSxcbi51aS5zdGF0aXN0aWNzIC5pbnZlcnRlZC5vbGl2ZS5zdGF0aXN0aWMgPiAudmFsdWUsXG4udWkuaW52ZXJ0ZWQub2xpdmUuc3RhdGlzdGljID4gLnZhbHVlIHtcbiAgY29sb3I6ICNEOUU3Nzg7XG59XG4udWkuaW52ZXJ0ZWQuZ3JlZW4uc3RhdGlzdGljcyAuc3RhdGlzdGljID4gLnZhbHVlLFxuLnVpLnN0YXRpc3RpY3MgLmludmVydGVkLmdyZWVuLnN0YXRpc3RpYyA+IC52YWx1ZSxcbi51aS5pbnZlcnRlZC5ncmVlbi5zdGF0aXN0aWMgPiAudmFsdWUge1xuICBjb2xvcjogIzJFQ0M0MDtcbn1cbi51aS5pbnZlcnRlZC50ZWFsLnN0YXRpc3RpY3MgLnN0YXRpc3RpYyA+IC52YWx1ZSxcbi51aS5zdGF0aXN0aWNzIC5pbnZlcnRlZC50ZWFsLnN0YXRpc3RpYyA+IC52YWx1ZSxcbi51aS5pbnZlcnRlZC50ZWFsLnN0YXRpc3RpYyA+IC52YWx1ZSB7XG4gIGNvbG9yOiAjNkRGRkZGO1xufVxuLnVpLmludmVydGVkLmJsdWUuc3RhdGlzdGljcyAuc3RhdGlzdGljID4gLnZhbHVlLFxuLnVpLnN0YXRpc3RpY3MgLmludmVydGVkLmJsdWUuc3RhdGlzdGljID4gLnZhbHVlLFxuLnVpLmludmVydGVkLmJsdWUuc3RhdGlzdGljID4gLnZhbHVlIHtcbiAgY29sb3I6ICM1NEM4RkY7XG59XG4udWkuaW52ZXJ0ZWQudmlvbGV0LnN0YXRpc3RpY3MgLnN0YXRpc3RpYyA+IC52YWx1ZSxcbi51aS5zdGF0aXN0aWNzIC5pbnZlcnRlZC52aW9sZXQuc3RhdGlzdGljID4gLnZhbHVlLFxuLnVpLmludmVydGVkLnZpb2xldC5zdGF0aXN0aWMgPiAudmFsdWUge1xuICBjb2xvcjogI0EyOTFGQjtcbn1cbi51aS5pbnZlcnRlZC5wdXJwbGUuc3RhdGlzdGljcyAuc3RhdGlzdGljID4gLnZhbHVlLFxuLnVpLnN0YXRpc3RpY3MgLmludmVydGVkLnB1cnBsZS5zdGF0aXN0aWMgPiAudmFsdWUsXG4udWkuaW52ZXJ0ZWQucHVycGxlLnN0YXRpc3RpYyA+IC52YWx1ZSB7XG4gIGNvbG9yOiAjREM3M0ZGO1xufVxuLnVpLmludmVydGVkLnBpbmsuc3RhdGlzdGljcyAuc3RhdGlzdGljID4gLnZhbHVlLFxuLnVpLnN0YXRpc3RpY3MgLmludmVydGVkLnBpbmsuc3RhdGlzdGljID4gLnZhbHVlLFxuLnVpLmludmVydGVkLnBpbmsuc3RhdGlzdGljID4gLnZhbHVlIHtcbiAgY29sb3I6ICNGRjhFREY7XG59XG4udWkuaW52ZXJ0ZWQuYnJvd24uc3RhdGlzdGljcyAuc3RhdGlzdGljID4gLnZhbHVlLFxuLnVpLnN0YXRpc3RpY3MgLmludmVydGVkLmJyb3duLnN0YXRpc3RpYyA+IC52YWx1ZSxcbi51aS5pbnZlcnRlZC5icm93bi5zdGF0aXN0aWMgPiAudmFsdWUge1xuICBjb2xvcjogI0Q2N0MxQztcbn1cbi51aS5pbnZlcnRlZC5ncmV5LnN0YXRpc3RpY3MgLnN0YXRpc3RpYyA+IC52YWx1ZSxcbi51aS5zdGF0aXN0aWNzIC5pbnZlcnRlZC5ncmV5LnN0YXRpc3RpYyA+IC52YWx1ZSxcbi51aS5pbnZlcnRlZC5ncmV5LnN0YXRpc3RpYyA+IC52YWx1ZSB7XG4gIGNvbG9yOiAjRENERERFO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgIEZsb2F0ZWRcbi0tLS0tLS0tLS0tLS0tLSovXG4udWlbY2xhc3MqPVwibGVmdCBmbG9hdGVkXCJdLnN0YXRpc3RpYyB7XG4gIGZsb2F0OiBsZWZ0O1xuICBtYXJnaW46IDBlbSAyZW0gMWVtIDBlbTtcbn1cbi51aVtjbGFzcyo9XCJyaWdodCBmbG9hdGVkXCJdLnN0YXRpc3RpYyB7XG4gIGZsb2F0OiByaWdodDtcbiAgbWFyZ2luOiAwZW0gMGVtIDFlbSAyZW07XG59XG4udWkuZmxvYXRlZC5zdGF0aXN0aWM6bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1ib3R0b206IDBlbTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBNaW5pICovXG4udWkubWluaS5zdGF0aXN0aWNzIC5zdGF0aXN0aWMgPiAudmFsdWUsXG4udWkubWluaS5zdGF0aXN0aWMgPiAudmFsdWUge1xuICBmb250LXNpemU6IDEuNXJlbSAhaW1wb3J0YW50O1xufVxuLnVpLm1pbmkuaG9yaXpvbnRhbC5zdGF0aXN0aWNzIC5zdGF0aXN0aWMgPiAudmFsdWUsXG4udWkubWluaS5ob3Jpem9udGFsLnN0YXRpc3RpYyA+IC52YWx1ZSB7XG4gIGZvbnQtc2l6ZTogMS41cmVtICFpbXBvcnRhbnQ7XG59XG4udWkubWluaS5zdGF0aXN0aWNzIC5zdGF0aXN0aWMgPiAudGV4dC52YWx1ZSxcbi51aS5taW5pLnN0YXRpc3RpYyA+IC50ZXh0LnZhbHVlIHtcbiAgZm9udC1zaXplOiAxcmVtICFpbXBvcnRhbnQ7XG59XG4vKiBUaW55ICovXG4udWkudGlueS5zdGF0aXN0aWNzIC5zdGF0aXN0aWMgPiAudmFsdWUsXG4udWkudGlueS5zdGF0aXN0aWMgPiAudmFsdWUge1xuICBmb250LXNpemU6IDJyZW0gIWltcG9ydGFudDtcbn1cbi51aS50aW55Lmhvcml6b250YWwuc3RhdGlzdGljcyAuc3RhdGlzdGljID4gLnZhbHVlLFxuLnVpLnRpbnkuaG9yaXpvbnRhbC5zdGF0aXN0aWMgPiAudmFsdWUge1xuICBmb250LXNpemU6IDJyZW0gIWltcG9ydGFudDtcbn1cbi51aS50aW55LnN0YXRpc3RpY3MgLnN0YXRpc3RpYyA+IC50ZXh0LnZhbHVlLFxuLnVpLnRpbnkuc3RhdGlzdGljID4gLnRleHQudmFsdWUge1xuICBmb250LXNpemU6IDFyZW0gIWltcG9ydGFudDtcbn1cbi8qIFNtYWxsICovXG4udWkuc21hbGwuc3RhdGlzdGljcyAuc3RhdGlzdGljID4gLnZhbHVlLFxuLnVpLnNtYWxsLnN0YXRpc3RpYyA+IC52YWx1ZSB7XG4gIGZvbnQtc2l6ZTogM3JlbSAhaW1wb3J0YW50O1xufVxuLnVpLnNtYWxsLmhvcml6b250YWwuc3RhdGlzdGljcyAuc3RhdGlzdGljID4gLnZhbHVlLFxuLnVpLnNtYWxsLmhvcml6b250YWwuc3RhdGlzdGljID4gLnZhbHVlIHtcbiAgZm9udC1zaXplOiAycmVtICFpbXBvcnRhbnQ7XG59XG4udWkuc21hbGwuc3RhdGlzdGljcyAuc3RhdGlzdGljID4gLnRleHQudmFsdWUsXG4udWkuc21hbGwuc3RhdGlzdGljID4gLnRleHQudmFsdWUge1xuICBmb250LXNpemU6IDFyZW0gIWltcG9ydGFudDtcbn1cbi8qIE1lZGl1bSAqL1xuLnVpLnN0YXRpc3RpY3MgLnN0YXRpc3RpYyA+IC52YWx1ZSxcbi51aS5zdGF0aXN0aWMgPiAudmFsdWUge1xuICBmb250LXNpemU6IDRyZW0gIWltcG9ydGFudDtcbn1cbi51aS5ob3Jpem9udGFsLnN0YXRpc3RpY3MgLnN0YXRpc3RpYyA+IC52YWx1ZSxcbi51aS5ob3Jpem9udGFsLnN0YXRpc3RpYyA+IC52YWx1ZSB7XG4gIGZvbnQtc2l6ZTogM3JlbSAhaW1wb3J0YW50O1xufVxuLnVpLnN0YXRpc3RpY3MgLnN0YXRpc3RpYyA+IC50ZXh0LnZhbHVlLFxuLnVpLnN0YXRpc3RpYyA+IC50ZXh0LnZhbHVlIHtcbiAgZm9udC1zaXplOiAycmVtICFpbXBvcnRhbnQ7XG59XG4vKiBMYXJnZSAqL1xuLnVpLmxhcmdlLnN0YXRpc3RpY3MgLnN0YXRpc3RpYyA+IC52YWx1ZSxcbi51aS5sYXJnZS5zdGF0aXN0aWMgPiAudmFsdWUge1xuICBmb250LXNpemU6IDVyZW0gIWltcG9ydGFudDtcbn1cbi51aS5sYXJnZS5ob3Jpem9udGFsLnN0YXRpc3RpY3MgLnN0YXRpc3RpYyA+IC52YWx1ZSxcbi51aS5sYXJnZS5ob3Jpem9udGFsLnN0YXRpc3RpYyA+IC52YWx1ZSB7XG4gIGZvbnQtc2l6ZTogNHJlbSAhaW1wb3J0YW50O1xufVxuLnVpLmxhcmdlLnN0YXRpc3RpY3MgLnN0YXRpc3RpYyA+IC50ZXh0LnZhbHVlLFxuLnVpLmxhcmdlLnN0YXRpc3RpYyA+IC50ZXh0LnZhbHVlIHtcbiAgZm9udC1zaXplOiAyLjVyZW0gIWltcG9ydGFudDtcbn1cbi8qIEh1Z2UgKi9cbi51aS5odWdlLnN0YXRpc3RpY3MgLnN0YXRpc3RpYyA+IC52YWx1ZSxcbi51aS5odWdlLnN0YXRpc3RpYyA+IC52YWx1ZSB7XG4gIGZvbnQtc2l6ZTogNnJlbSAhaW1wb3J0YW50O1xufVxuLnVpLmh1Z2UuaG9yaXpvbnRhbC5zdGF0aXN0aWNzIC5zdGF0aXN0aWMgPiAudmFsdWUsXG4udWkuaHVnZS5ob3Jpem9udGFsLnN0YXRpc3RpYyA+IC52YWx1ZSB7XG4gIGZvbnQtc2l6ZTogNXJlbSAhaW1wb3J0YW50O1xufVxuLnVpLmh1Z2Uuc3RhdGlzdGljcyAuc3RhdGlzdGljID4gLnRleHQudmFsdWUsXG4udWkuaHVnZS5zdGF0aXN0aWMgPiAudGV4dC52YWx1ZSB7XG4gIGZvbnQtc2l6ZTogMi41cmVtICFpbXBvcnRhbnQ7XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgVGhlbWUgT3ZlcnJpZGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICBVc2VyIFZhcmlhYmxlIE92ZXJyaWRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIE1vZHVsZXMgKi9cbi8qIVxuICogIyBTZW1hbnRpYyBVSSAtIEFjY29yZGlvblxuICogaHR0cDovL2dpdGh1Yi5jb20vc2VtYW50aWMtb3JnL3NlbWFudGljLXVpL1xuICpcbiAqXG4gKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2VcbiAqIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVRcbiAqXG4gKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qXG5cbuKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVlyAg4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4pWXICAg4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWXXG7ilZrilZDilZDilojilojilZTilZDilZDilZ3ilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKWiOKWiOKVlyDilojilojilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilZTilZDilZDilZDilZDilZ1cbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4pWU4paI4paI4paI4paI4pWU4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilojilojilojilojilojilZdcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVlOKVkOKVkOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4paI4paI4pWR4pWa4paI4paI4pWU4pWd4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilZrilZDilZDilZDilZDilojilojilZFcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWRIOKVmuKVkOKVnSDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZFcbiAgIOKVmuKVkOKVnSAgIOKVmuKVkOKVnSAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWdICAgICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ1cblxuKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIFRoZW1lIFNlbGVjdGlvblxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFRvIG92ZXJyaWRlIGEgdGhlbWUgZm9yIGFuIGluZGl2aWR1YWwgZWxlbWVudFxuICAgc3BlY2lmeSB0aGVtZSBuYW1lIGJlbG93XG4qL1xuLyogR2xvYmFsICovXG4vKiBFbGVtZW50cyAqL1xuLyogQ29sbGVjdGlvbnMgKi9cbi8qIE1vZHVsZXMgKi9cbi8qIFZpZXdzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgRm9sZGVyc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFBhdGggdG8gdGhlbWUgcGFja2FnZXMgKi9cbi8qIFBhdGggdG8gc2l0ZSBvdmVycmlkZSBmb2xkZXIgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBJbXBvcnQgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBJbXBvcnQgRGlyZWN0aXZlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgVGhlbWVcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgU2l0ZSBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0IHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRvcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogUGFja2FnZWQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZG9ycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBDb21wb25lbnQncyBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kb3JzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFNpdGUgdGhlbWUgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgIFVzZXIgR2xvYmFsIFZhcmlhYmxlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIG1hcnNvIGNvbG9ycyAqL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuIENvbXBvbmVudCBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0ICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBBY2NvcmRpb25cbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBUaXRsZSAqL1xuLyogSWNvbiAqL1xuLyogQ2hpbGQgQWNjb3JkaW9uICovXG4vKiBDb250ZW50ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBDb3VwbGluZ1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgU3RhdGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFZhcmlhdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFN0eWxlZCAqL1xuLyogQ29udGVudCAqL1xuLyogQ2hpbGQgQ29udGVudCAqL1xuLyogU3R5bGVkIFRpdGxlICovXG4vKiBTdHlsZWQgVGl0bGUgU3RhdGVzICovXG4vKiBTdHlsZWQgQ2hpbGQgVGl0bGUgU3RhdGVzICovXG4vKiBJbnZlcnRlZCAqL1xuLyogUGFja2FnZWQgVGhlbWUgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIEFjY29yZGlvblxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFRpdGxlICovXG4vKiBJY29uICovXG4vKiBDaGlsZCBBY2NvcmRpb24gKi9cbi8qIENvbnRlbnQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIENvdXBsaW5nXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBTdGF0ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgVmFyaWF0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU3R5bGVkICovXG4vKiBDb250ZW50ICovXG4vKiBDaGlsZCBDb250ZW50ICovXG4vKiBTdHlsZWQgVGl0bGUgKi9cbi8qIFN0eWxlZCBUaXRsZSBTdGF0ZXMgKi9cbi8qIFN0eWxlZCBDaGlsZCBUaXRsZSBTdGF0ZXMgKi9cbi8qIEludmVydGVkICovXG4vKiBTaXRlIFRoZW1lICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgIFVzZXIgVmFyaWFibGUgT3ZlcnJpZGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBNaXgtaW5zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBPdmVycmlkZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRW5kIENvbmZpZyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIEFjY29yZGlvblxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi51aS5hY2NvcmRpb24sXG4udWkuYWNjb3JkaW9uIC5hY2NvcmRpb24ge1xuICBtYXgtd2lkdGg6IDEwMCU7XG59XG4udWkuYWNjb3JkaW9uIC5hY2NvcmRpb24ge1xuICBtYXJnaW46IDFlbSAwZW0gMGVtO1xuICBwYWRkaW5nOiAwZW07XG59XG4vKiBUaXRsZSAqL1xuLnVpLmFjY29yZGlvbiAudGl0bGUsXG4udWkuYWNjb3JkaW9uIC5hY2NvcmRpb24gLnRpdGxlIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuLyogRGVmYXVsdCBTdHlsaW5nICovXG4udWkuYWNjb3JkaW9uIC50aXRsZTpub3QoLnVpKSB7XG4gIHBhZGRpbmc6IDAuNWVtIDBlbTtcbiAgZm9udC1mYW1pbHk6ICdFeG8gMicsICdMYXRvJywgQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxZW07XG4gIGNvbG9yOiAjMzMzMzMzO1xufVxuLyogQ29udGVudCAqL1xuLnVpLmFjY29yZGlvbiAudGl0bGUgfiAuY29udGVudCxcbi51aS5hY2NvcmRpb24gLmFjY29yZGlvbiAudGl0bGUgfiAuY29udGVudCB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4vKiBEZWZhdWx0IFN0eWxpbmcgKi9cbi51aS5hY2NvcmRpb246bm90KC5zdHlsZWQpIC50aXRsZSB+IC5jb250ZW50Om5vdCgudWkpLFxuLnVpLmFjY29yZGlvbjpub3QoLnN0eWxlZCkgLmFjY29yZGlvbiAudGl0bGUgfiAuY29udGVudDpub3QoLnVpKSB7XG4gIG1hcmdpbjogJyc7XG4gIHBhZGRpbmc6IDAuNWVtIDBlbSAxZW07XG59XG4udWkuYWNjb3JkaW9uOm5vdCguc3R5bGVkKSAudGl0bGUgfiAuY29udGVudDpub3QoLnVpKTpsYXN0LWNoaWxkIHtcbiAgcGFkZGluZy1ib3R0b206IDBlbTtcbn1cbi8qIEFycm93ICovXG4udWkuYWNjb3JkaW9uIC50aXRsZSAuZHJvcGRvd24uaWNvbixcbi51aS5hY2NvcmRpb24gLmFjY29yZGlvbiAudGl0bGUgLmRyb3Bkb3duLmljb24ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZsb2F0OiBub25lO1xuICBvcGFjaXR5OiAxO1xuICB3aWR0aDogMS4yNWVtO1xuICBoZWlnaHQ6IDFlbTtcbiAgbWFyZ2luOiAwZW0gMC4yNXJlbSAwZW0gMHJlbTtcbiAgcGFkZGluZzogMGVtO1xuICBmb250LXNpemU6IDFlbTtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMXMgZWFzZSwgb3BhY2l0eSAwLjFzIGVhc2U7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbiAgdHJhbnNmb3JtOiBub25lO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgIENvdXBsaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWVudSAqL1xuLnVpLmFjY29yZGlvbi5tZW51IC5pdGVtIC50aXRsZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwYWRkaW5nOiAwZW07XG59XG4udWkuYWNjb3JkaW9uLm1lbnUgLml0ZW0gLnRpdGxlID4gLmRyb3Bkb3duLmljb24ge1xuICBmbG9hdDogcmlnaHQ7XG4gIG1hcmdpbjogMC4yMTQyNWVtIDBlbSAwZW0gMWVtO1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpO1xufVxuLyogSGVhZGVyICovXG4udWkuYWNjb3JkaW9uIC51aS5oZWFkZXIgLmRyb3Bkb3duLmljb24ge1xuICBmb250LXNpemU6IDFlbTtcbiAgbWFyZ2luOiAwZW0gMC4yNXJlbSAwZW0gMHJlbTtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4udWkuYWNjb3JkaW9uIC5hY3RpdmUudGl0bGUgLmRyb3Bkb3duLmljb24sXG4udWkuYWNjb3JkaW9uIC5hY2NvcmRpb24gLmFjdGl2ZS50aXRsZSAuZHJvcGRvd24uaWNvbiB7XG4gIHRyYW5zZm9ybTogcm90YXRlKDkwZGVnKTtcbn1cbi51aS5hY2NvcmRpb24ubWVudSAuaXRlbSAuYWN0aXZlLnRpdGxlID4gLmRyb3Bkb3duLmljb24ge1xuICB0cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZyk7XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgVHlwZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIFN0eWxlZFxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5zdHlsZWQuYWNjb3JkaW9uIHtcbiAgd2lkdGg6IDYwMHB4O1xufVxuLnVpLnN0eWxlZC5hY2NvcmRpb24sXG4udWkuc3R5bGVkLmFjY29yZGlvbiAuYWNjb3JkaW9uIHtcbiAgYm9yZGVyLXJhZGl1czogMC40cmVtO1xuICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICBib3gtc2hhZG93OiAwcHggMXB4IDJweCAwIHJnYmEoMzQsIDM2LCAzOCwgMC4xNSksIDBweCAwcHggMHB4IDFweCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpO1xufVxuLnVpLnN0eWxlZC5hY2NvcmRpb24gLnRpdGxlLFxuLnVpLnN0eWxlZC5hY2NvcmRpb24gLmFjY29yZGlvbiAudGl0bGUge1xuICBtYXJnaW46IDBlbTtcbiAgcGFkZGluZzogMC43NWVtIDFlbTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC40KTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpO1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMXMgZWFzZSwgY29sb3IgMC4xcyBlYXNlO1xufVxuLnVpLnN0eWxlZC5hY2NvcmRpb24gPiAudGl0bGU6Zmlyc3QtY2hpbGQsXG4udWkuc3R5bGVkLmFjY29yZGlvbiAuYWNjb3JkaW9uIC50aXRsZTpmaXJzdC1jaGlsZCB7XG4gIGJvcmRlci10b3A6IG5vbmU7XG59XG4vKiBDb250ZW50ICovXG4udWkuc3R5bGVkLmFjY29yZGlvbiAuY29udGVudCxcbi51aS5zdHlsZWQuYWNjb3JkaW9uIC5hY2NvcmRpb24gLmNvbnRlbnQge1xuICBtYXJnaW46IDBlbTtcbiAgcGFkZGluZzogMC41ZW0gMWVtIDEuNWVtO1xufVxuLnVpLnN0eWxlZC5hY2NvcmRpb24gLmFjY29yZGlvbiAuY29udGVudCB7XG4gIHBhZGRpbmc6IDBlbTtcbiAgcGFkZGluZzogMC41ZW0gMWVtIDEuNWVtO1xufVxuLyogSG92ZXIgKi9cbi51aS5zdHlsZWQuYWNjb3JkaW9uIC50aXRsZTpob3Zlcixcbi51aS5zdHlsZWQuYWNjb3JkaW9uIC5hY3RpdmUudGl0bGUsXG4udWkuc3R5bGVkLmFjY29yZGlvbiAuYWNjb3JkaW9uIC50aXRsZTpob3Zlcixcbi51aS5zdHlsZWQuYWNjb3JkaW9uIC5hY2NvcmRpb24gLmFjdGl2ZS50aXRsZSB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBjb2xvcjogIzMzMzMzMztcbn1cbi51aS5zdHlsZWQuYWNjb3JkaW9uIC5hY2NvcmRpb24gLnRpdGxlOmhvdmVyLFxuLnVpLnN0eWxlZC5hY2NvcmRpb24gLmFjY29yZGlvbiAuYWN0aXZlLnRpdGxlIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiAjMzMzMzMzO1xufVxuLyogQWN0aXZlICovXG4udWkuc3R5bGVkLmFjY29yZGlvbiAuYWN0aXZlLnRpdGxlIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuOTUpO1xufVxuLnVpLnN0eWxlZC5hY2NvcmRpb24gLmFjY29yZGlvbiAuYWN0aXZlLnRpdGxlIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuOTUpO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmFjY29yZGlvbiAuYWN0aXZlLmNvbnRlbnQsXG4udWkuYWNjb3JkaW9uIC5hY2NvcmRpb24gLmFjdGl2ZS5jb250ZW50IHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBWYXJpYXRpb25zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgICBGbHVpZFxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5mbHVpZC5hY2NvcmRpb24sXG4udWkuZmx1aWQuYWNjb3JkaW9uIC5hY2NvcmRpb24ge1xuICB3aWR0aDogMTAwJTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgSW52ZXJ0ZWRcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuaW52ZXJ0ZWQuYWNjb3JkaW9uIC50aXRsZTpub3QoLnVpKSB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOSk7XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgVGhlbWUgT3ZlcnJpZGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnQWNjb3JkaW9uJztcbiAgc3JjOiB1cmwoZGF0YTphcHBsaWNhdGlvbi94LWZvbnQtdHRmO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LEFBRUFBQUFMQUlBQUF3QXdUMU12TWdnakI1QUFBQUM4QUFBQVlHTnRZWEFQZk9JS0FBQUJIQUFBQUV4bllYTndBQUFBRUFBQUFXZ0FBQUFJWjJ4NVpyeWo2SGdBQUFGd0FBQUF5R2hsWVdULzBJaEhBQUFDT0FBQUFEWm9hR1ZoQXBrQjV3QUFBbkFBQUFBa2FHMTBlQUp1QUJJQUFBS1VBQUFBR0d4dlkyRUFqQUJXQUFBQ3JBQUFBQTV0WVhod0FBZ0FGZ0FBQXJ3QUFBQWdibUZ0WmZDMW4wNEFBQUxjQUFBQlBIQnZjM1FBQXdBQUFBQUVHQUFBQUNBQUF3SUFBWkFBQlFBQUFVd0JaZ0FBQUVjQlRBRm1BQUFBOVFBWkFJUUFBQUFBQUFBQUFBQUFBQUFBQUFBQkVBQUFBQUFBQUFBQUFBQUFBQUFBQUFCQUFBRHcyZ0hnLytELzRBSGdBQ0FBQUFBQkFBQUFBQUFBQUFBQUFBQWdBQUFBQUFBQ0FBQUFBd0FBQUJRQUF3QUJBQUFBRkFBRUFEZ0FBQUFLQUFnQUFnQUNBQUVBSVBEYS8vMy8vd0FBQUFBQUlQRFovLzMvL3dBQi8rTVBLd0FEQUFFQUFBQUFBQUFBQUFBQUFBRUFBZi8vQUE4QUFRQUFBQUFBQUFBQUFBSUFBRGM1QVFBQUFBQUJBQUFBQUFBQUFBQUFBZ0FBTnprQkFBQUFBQUVBQUFBQUFBQUFBQUFDQUFBM09RRUFBQUFBQVFBU0FFa0F0d0Z1QUJNQUFEYzBQd0UyRnpZWEZoMEJGQWNHSndZdkFTWTFFZ2FBQlFnSEJRWUdCUWNJQllBRzJ3Y0dmd2NCQVFjRUNmOElCQWNCQVFkL0JnWUFBQUFBQVFBQUFFa0FwUUZ1QUJNQUFEY1JORGMyTXpJZkFSWVZGQThCQmlNaUp5WTFBQVVHQndnRmdBWUdnQVVJQndZRld3RUFDQVVHQm9BRkNBY0ZnQVlHQlFjQUFBQUJBQUFBQVFBQXFXWWxzMThQUFBVQUN3SUFBQUFBQU0vOW8rNEFBQUFBei8yajdnQUFBQUFBdHdGdUFBQUFDQUFDQUFBQUFBQUFBQUVBQUFIZy8rQUFBQUlBQUFBQUFBQzNBQUVBQUFBQUFBQUFBQUFBQUFBQUFBQUdBQUFBQUFBQUFBQUFBQUFBQVFBQUFBQzNBQklBdHdBQUFBQUFBQUFLQUJRQUhnQkNBR1FBQUFBQkFBQUFCZ0FVQUFFQUFBQUFBQUlBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBRGdDdUFBRUFBQUFBQUFFQURBQUFBQUVBQUFBQUFBSUFEZ0JBQUFFQUFBQUFBQU1BREFBaUFBRUFBQUFBQUFRQURBQk9BQUVBQUFBQUFBVUFGZ0FNQUFFQUFBQUFBQVlBQmdBdUFBRUFBQUFBQUFvQU5BQmFBQU1BQVFRSkFBRUFEQUFBQUFNQUFRUUpBQUlBRGdCQUFBTUFBUVFKQUFNQURBQWlBQU1BQVFRSkFBUUFEQUJPQUFNQUFRUUpBQVVBRmdBTUFBTUFBUVFKQUFZQURBQTBBQU1BQVFRSkFBb0FOQUJhQUhJQVlRQjBBR2tBYmdCbkFGWUFaUUJ5QUhNQWFRQnZBRzRBSUFBeEFDNEFNQUJ5QUdFQWRBQnBBRzRBWjNKaGRHbHVad0J5QUdFQWRBQnBBRzRBWndCU0FHVUFad0IxQUd3QVlRQnlBSElBWVFCMEFHa0FiZ0JuQUVZQWJ3QnVBSFFBSUFCbkFHVUFiZ0JsQUhJQVlRQjBBR1VBWkFBZ0FHSUFlUUFnQUVrQVl3QnZBRTBBYndCdkFHNEFMZ0FEQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQSkgZm9ybWF0KCd0cnVldHlwZScpLCB1cmwoZGF0YTphcHBsaWNhdGlvbi9mb250LXdvZmY7Y2hhcnNldD11dGYtODtiYXNlNjQsZDA5R1JrOVVWRThBQUFTd0FBb0FBQUFBQkdnQUFRQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUJEUmtZZ0FBQUE5QUFBQVMwQUFBRXRGcG92dUU5VEx6SUFBQUlrQUFBQVlBQUFBR0FJSXdlUVkyMWhjQUFBQW9RQUFBQk1BQUFBVEE5ODRncG5ZWE53QUFBQzBBQUFBQWdBQUFBSUFBQUFFR2hsWVdRQUFBTFlBQUFBTmdBQUFEYi8wSWhIYUdobFlRQUFBeEFBQUFBa0FBQUFKQUtaQWVkb2JYUjRBQUFETkFBQUFCZ0FBQUFZQW00QUVtMWhlSEFBQUFOTUFBQUFCZ0FBQUFZQUJsQUFibUZ0WlFBQUExUUFBQUU4QUFBQlBQQzFuMDV3YjNOMEFBQUVrQUFBQUNBQUFBQWdBQU1BQUFFQUJBUUFBUUVCQjNKaGRHbHVad0FCQWdBQkFEcjRIQUw0R3dQNEdBUWVDZ0FaVS8rTGl4NEtBQmxULzR1TERBZUxhL2lVK0hRRkhRQUFBSGtQSFFBQUFINFJIUUFBQUFrZEFBQUJKQklBQndFQkJ3MFBFUlFaSG5KaGRHbHVaM0poZEdsdVozVXdkVEYxTWpCMVJqQkVPWFZHTUVSQkFBQUNBWWtBQkFBR0FRRUVCd29OVnAzOGxBNzhsQTc4bEE3N2xBNzczWjMzYnhXTGtJMlFqNDRJOXhUM0ZBV09qNUNOa0l1UWk0K0pqb2VQaUkyR2k0WUlpL3VVQll1R2lZZUhpSWlIaDRtR2k0YUxobzJJandqN0ZQY1VCWWVPaVkrTGtBZ08rOTJMNWhXTDk1UUZpNUNOa0k2T2o0K1BqWkNMa0l1UWlZNkhDUGNVK3hRRmo0aU5ob3VHaTRhSmg0ZUlDUHNVK3hRRmlJZUdpWWFMaG91SGpZZVBpSTZKajR1UUNBNzRsQlQ0bEJXTERBb0FBQUFBQXdJQUFaQUFCUUFBQVV3QlpnQUFBRWNCVEFGbUFBQUE5UUFaQUlRQUFBQUFBQUFBQUFBQUFBQUFBQUFCRUFBQUFBQUFBQUFBQUFBQUFBQUFBQUJBQUFEdzJnSGcvK0QvNEFIZ0FDQUFBQUFCQUFBQUFBQUFBQUFBQUFBZ0FBQUFBQUFDQUFBQUF3QUFBQlFBQXdBQkFBQUFGQUFFQURnQUFBQUtBQWdBQWdBQ0FBRUFJUERhLy8zLy93QUFBQUFBSVBEWi8vMy8vd0FCLytNUEt3QURBQUVBQUFBQUFBQUFBQUFBQUFFQUFmLy9BQThBQVFBQUFBRUFBRGZZT0paZkR6ejFBQXNDQUFBQUFBRFAvYVB1QUFBQUFNLzlvKzRBQUFBQUFMY0JiZ0FBQUFnQUFnQUFBQUFBQUFBQkFBQUI0UC9nQUFBQ0FBQUFBQUFBdHdBQkFBQUFBQUFBQUFBQUFBQUFBQUFBQmdBQUFBQUFBQUFBQUFBQUFBRUFBQUFBdHdBU0FMY0FBQUFBVUFBQUJnQUFBQUFBRGdDdUFBRUFBQUFBQUFFQURBQUFBQUVBQUFBQUFBSUFEZ0JBQUFFQUFBQUFBQU1BREFBaUFBRUFBQUFBQUFRQURBQk9BQUVBQUFBQUFBVUFGZ0FNQUFFQUFBQUFBQVlBQmdBdUFBRUFBQUFBQUFvQU5BQmFBQU1BQVFRSkFBRUFEQUFBQUFNQUFRUUpBQUlBRGdCQUFBTUFBUVFKQUFNQURBQWlBQU1BQVFRSkFBUUFEQUJPQUFNQUFRUUpBQVVBRmdBTUFBTUFBUVFKQUFZQURBQTBBQU1BQVFRSkFBb0FOQUJhQUhJQVlRQjBBR2tBYmdCbkFGWUFaUUJ5QUhNQWFRQnZBRzRBSUFBeEFDNEFNQUJ5QUdFQWRBQnBBRzRBWjNKaGRHbHVad0J5QUdFQWRBQnBBRzRBWndCU0FHVUFad0IxQUd3QVlRQnlBSElBWVFCMEFHa0FiZ0JuQUVZQWJ3QnVBSFFBSUFCbkFHVUFiZ0JsQUhJQVlRQjBBR1VBWkFBZ0FHSUFlUUFnQUVrQVl3QnZBRTBBYndCdkFHNEFMZ0FEQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQSkgZm9ybWF0KCd3b2ZmJyk7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbn1cbi8qIERyb3Bkb3duIEljb24gKi9cbi51aS5hY2NvcmRpb24gLnRpdGxlIC5kcm9wZG93bi5pY29uLFxuLnVpLmFjY29yZGlvbiAuYWNjb3JkaW9uIC50aXRsZSAuZHJvcGRvd24uaWNvbiB7XG4gIGZvbnQtZmFtaWx5OiBBY2NvcmRpb247XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuLnVpLmFjY29yZGlvbiAudGl0bGUgLmRyb3Bkb3duLmljb246YmVmb3JlLFxuLnVpLmFjY29yZGlvbiAuYWNjb3JkaW9uIC50aXRsZSAuZHJvcGRvd24uaWNvbjpiZWZvcmUge1xuICBjb250ZW50OiAnXFxmMGRhJyAvKnJ0bDonXFxmMGQ5JyovO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgVXNlciBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiFcbiAqICMgU2VtYW50aWMgVUkgLSBDaGVja2JveFxuICogaHR0cDovL2dpdGh1Yi5jb20vc2VtYW50aWMtb3JnL3NlbWFudGljLXVpL1xuICpcbiAqXG4gKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2VcbiAqIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVRcbiAqXG4gKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qXG5cbuKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVlyAg4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4pWXICAg4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWXXG7ilZrilZDilZDilojilojilZTilZDilZDilZ3ilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKWiOKWiOKVlyDilojilojilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilZTilZDilZDilZDilZDilZ1cbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4pWU4paI4paI4paI4paI4pWU4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilojilojilojilojilojilZdcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVlOKVkOKVkOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4paI4paI4pWR4pWa4paI4paI4pWU4pWd4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilZrilZDilZDilZDilZDilojilojilZFcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWRIOKVmuKVkOKVnSDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZFcbiAgIOKVmuKVkOKVnSAgIOKVmuKVkOKVnSAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWdICAgICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ1cblxuKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIFRoZW1lIFNlbGVjdGlvblxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFRvIG92ZXJyaWRlIGEgdGhlbWUgZm9yIGFuIGluZGl2aWR1YWwgZWxlbWVudFxuICAgc3BlY2lmeSB0aGVtZSBuYW1lIGJlbG93XG4qL1xuLyogR2xvYmFsICovXG4vKiBFbGVtZW50cyAqL1xuLyogQ29sbGVjdGlvbnMgKi9cbi8qIE1vZHVsZXMgKi9cbi8qIFZpZXdzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgRm9sZGVyc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFBhdGggdG8gdGhlbWUgcGFja2FnZXMgKi9cbi8qIFBhdGggdG8gc2l0ZSBvdmVycmlkZSBmb2xkZXIgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBJbXBvcnQgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBJbXBvcnQgRGlyZWN0aXZlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgVGhlbWVcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgU2l0ZSBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0IHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRvcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogUGFja2FnZWQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZG9ycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBDb21wb25lbnQncyBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kb3JzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFNpdGUgdGhlbWUgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgIFVzZXIgR2xvYmFsIFZhcmlhYmxlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIG1hcnNvIGNvbG9ycyAqL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuIENvbXBvbmVudCBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0ICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgQ2hlY2tib3hcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBMYWJlbCAqL1xuLyogMjZweCBAIDE0L2VtICovXG4vKiBDaGVja2JveCAqL1xuLyogQ2hlY2ttYXJrICovXG4vKiBMYWJlbCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFN0YXRlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSG92ZXIgKi9cbi8qIFByZXNzZWQgKi9cbi8qIEZvY3VzICovXG4vKiBBY3RpdmUgKi9cbi8qIEFjdGl2ZSBGb2N1cyAqL1xuLyogSW5kZXRlcm1pbmF0ZSAqL1xuLyogRGlzYWJsZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBUeXBlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUmFkaW8gKi9cbi8qIFVzZXMgcHggdG8gYXZvaWQgcm91bmRpbmcgaXNzdWVzIHdpdGggY2lyY2xlcyAqL1xuLyogN3B4IGFzIHVuaXRsZXNzIHZhbHVlIGZyb20gcmFkaW8gc2l6ZSAqL1xuLyogU2xpZGVyICYgVG9nZ2xlIEhhbmRsZSAqL1xuLyogU2xpZGVyICovXG4vKiBTbGlkZXIgU3RhdGVzICovXG4vKiBUb2dnbGUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgVmFyaWF0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUGFja2FnZWQgVGhlbWUgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBDaGVja2JveFxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIExhYmVsICovXG4vKiAyNnB4IEAgMTQvZW0gKi9cbi8qIENoZWNrYm94ICovXG4vKiBDaGVja21hcmsgKi9cbi8qIExhYmVsICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU3RhdGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBIb3ZlciAqL1xuLyogUHJlc3NlZCAqL1xuLyogRm9jdXMgKi9cbi8qIEFjdGl2ZSAqL1xuLyogQWN0aXZlIEZvY3VzICovXG4vKiBJbmRldGVybWluYXRlICovXG4vKiBEaXNhYmxlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFR5cGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBSYWRpbyAqL1xuLyogVXNlcyBweCB0byBhdm9pZCByb3VuZGluZyBpc3N1ZXMgd2l0aCBjaXJjbGVzICovXG4vKiA3cHggYXMgdW5pdGxlc3MgdmFsdWUgZnJvbSByYWRpbyBzaXplICovXG4vKiBTbGlkZXIgJiBUb2dnbGUgSGFuZGxlICovXG4vKiBTbGlkZXIgKi9cbi8qIFNsaWRlciBTdGF0ZXMgKi9cbi8qIFRvZ2dsZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBWYXJpYXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTaXRlIFRoZW1lICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgIFVzZXIgVmFyaWFibGUgT3ZlcnJpZGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBNaXgtaW5zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBPdmVycmlkZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRW5kIENvbmZpZyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgQ2hlY2tib3hcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgQ29udGVudFxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5jaGVja2JveCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gIG91dGxpbmU6IG5vbmU7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBtaW4taGVpZ2h0OiAxN3B4O1xuICBmb250LXNpemU6IDFyZW07XG4gIGxpbmUtaGVpZ2h0OiAxN3B4O1xuICBtaW4td2lkdGg6IDE3cHg7XG59XG4vKiBIVE1MIENoZWNrYm94ICovXG4udWkuY2hlY2tib3ggaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdLFxuLnVpLmNoZWNrYm94IGlucHV0W3R5cGU9XCJyYWRpb1wiXSB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDBweDtcbiAgbGVmdDogMHB4O1xuICBvcGFjaXR5OiAwICFpbXBvcnRhbnQ7XG4gIG91dGxpbmU6IG5vbmU7XG4gIHotaW5kZXg6IDM7XG4gIHdpZHRoOiAxN3B4O1xuICBoZWlnaHQ6IDE3cHg7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3hcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuY2hlY2tib3ggLmJveCxcbi51aS5jaGVja2JveCBsYWJlbCB7XG4gIGN1cnNvcjogYXV0bztcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgcGFkZGluZy1sZWZ0OiAxLjg1NzE0ZW07XG4gIG91dGxpbmU6IG5vbmU7XG4gIGZvbnQtc2l6ZTogMWVtO1xufVxuLnVpLmNoZWNrYm94IC5ib3g6YmVmb3JlLFxuLnVpLmNoZWNrYm94IGxhYmVsOmJlZm9yZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwcHg7XG4gIGxlZnQ6IDBweDtcbiAgd2lkdGg6IDE3cHg7XG4gIGhlaWdodDogMTdweDtcbiAgY29udGVudDogJyc7XG4gIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gIGJvcmRlci1yYWRpdXM6IDAuM3JlbTtcbiAgdHJhbnNpdGlvbjogYm9yZGVyIDAuMXMgZWFzZSwgb3BhY2l0eSAwLjFzIGVhc2UsIHRyYW5zZm9ybSAwLjFzIGVhc2UsIGJveC1zaGFkb3cgMC4xcyBlYXNlO1xuICBib3JkZXI6IDFweCBzb2xpZCAjRDRENEQ1O1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgIENoZWNrbWFya1xuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5jaGVja2JveCAuYm94OmFmdGVyLFxuLnVpLmNoZWNrYm94IGxhYmVsOmFmdGVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBmb250LXNpemU6IDE0cHg7XG4gIHRvcDogMHB4O1xuICBsZWZ0OiAwcHg7XG4gIHdpZHRoOiAxN3B4O1xuICBoZWlnaHQ6IDE3cHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgb3BhY2l0eTogMDtcbiAgY29sb3I6ICMzMzMzMzM7XG4gIHRyYW5zaXRpb246IGJvcmRlciAwLjFzIGVhc2UsIG9wYWNpdHkgMC4xcyBlYXNlLCB0cmFuc2Zvcm0gMC4xcyBlYXNlLCBib3gtc2hhZG93IDAuMXMgZWFzZTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgIExhYmVsXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW5zaWRlICovXG4udWkuY2hlY2tib3ggbGFiZWwsXG4udWkuY2hlY2tib3ggKyBsYWJlbCB7XG4gIGNvbG9yOiAjMzMzMzMzO1xuICB0cmFuc2l0aW9uOiBjb2xvciAwLjFzIGVhc2U7XG59XG4vKiBPdXRzaWRlICovXG4udWkuY2hlY2tib3ggKyBsYWJlbCB7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5jaGVja2JveCAuYm94OmhvdmVyOjpiZWZvcmUsXG4udWkuY2hlY2tib3ggbGFiZWw6aG92ZXI6OmJlZm9yZSB7XG4gIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgzNCwgMzYsIDM4LCAwLjM1KTtcbn1cbi51aS5jaGVja2JveCBsYWJlbDpob3Zlcixcbi51aS5jaGVja2JveCArIGxhYmVsOmhvdmVyIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44KTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgIERvd25cbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuY2hlY2tib3ggLmJveDphY3RpdmU6OmJlZm9yZSxcbi51aS5jaGVja2JveCBsYWJlbDphY3RpdmU6OmJlZm9yZSB7XG4gIGJhY2tncm91bmQ6ICNGOUZBRkI7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgzNCwgMzYsIDM4LCAwLjM1KTtcbn1cbi51aS5jaGVja2JveCAuYm94OmFjdGl2ZTo6YWZ0ZXIsXG4udWkuY2hlY2tib3ggbGFiZWw6YWN0aXZlOjphZnRlciB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuOTUpO1xufVxuLnVpLmNoZWNrYm94IGlucHV0OmFjdGl2ZSB+IGxhYmVsIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC45NSk7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmNoZWNrYm94IGlucHV0OmZvY3VzIH4gLmJveDpiZWZvcmUsXG4udWkuY2hlY2tib3ggaW5wdXQ6Zm9jdXMgfiBsYWJlbDpiZWZvcmUge1xuICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICBib3JkZXItY29sb3I6ICM5NkM4REE7XG59XG4udWkuY2hlY2tib3ggaW5wdXQ6Zm9jdXMgfiAuYm94OmFmdGVyLFxuLnVpLmNoZWNrYm94IGlucHV0OmZvY3VzIH4gbGFiZWw6YWZ0ZXIge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjk1KTtcbn1cbi51aS5jaGVja2JveCBpbnB1dDpmb2N1cyB+IGxhYmVsIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC45NSk7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5jaGVja2JveCBpbnB1dDpjaGVja2VkIH4gLmJveDpiZWZvcmUsXG4udWkuY2hlY2tib3ggaW5wdXQ6Y2hlY2tlZCB+IGxhYmVsOmJlZm9yZSB7XG4gIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgzNCwgMzYsIDM4LCAwLjM1KTtcbn1cbi51aS5jaGVja2JveCBpbnB1dDpjaGVja2VkIH4gLmJveDphZnRlcixcbi51aS5jaGVja2JveCBpbnB1dDpjaGVja2VkIH4gbGFiZWw6YWZ0ZXIge1xuICBvcGFjaXR5OiAxO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjk1KTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgSW5kZXRlcm1pbmF0ZVxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5jaGVja2JveCBpbnB1dDpub3QoW3R5cGU9cmFkaW9dKTppbmRldGVybWluYXRlIH4gLmJveDpiZWZvcmUsXG4udWkuY2hlY2tib3ggaW5wdXQ6bm90KFt0eXBlPXJhZGlvXSk6aW5kZXRlcm1pbmF0ZSB+IGxhYmVsOmJlZm9yZSB7XG4gIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgzNCwgMzYsIDM4LCAwLjM1KTtcbn1cbi51aS5jaGVja2JveCBpbnB1dDpub3QoW3R5cGU9cmFkaW9dKTppbmRldGVybWluYXRlIH4gLmJveDphZnRlcixcbi51aS5jaGVja2JveCBpbnB1dDpub3QoW3R5cGU9cmFkaW9dKTppbmRldGVybWluYXRlIH4gbGFiZWw6YWZ0ZXIge1xuICBvcGFjaXR5OiAxO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjk1KTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgQWN0aXZlIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmNoZWNrYm94IGlucHV0Om5vdChbdHlwZT1yYWRpb10pOmluZGV0ZXJtaW5hdGU6Zm9jdXMgfiAuYm94OmJlZm9yZSxcbi51aS5jaGVja2JveCBpbnB1dDpub3QoW3R5cGU9cmFkaW9dKTppbmRldGVybWluYXRlOmZvY3VzIH4gbGFiZWw6YmVmb3JlLFxuLnVpLmNoZWNrYm94IGlucHV0OmNoZWNrZWQ6Zm9jdXMgfiAuYm94OmJlZm9yZSxcbi51aS5jaGVja2JveCBpbnB1dDpjaGVja2VkOmZvY3VzIH4gbGFiZWw6YmVmb3JlIHtcbiAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbiAgYm9yZGVyLWNvbG9yOiAjOTZDOERBO1xufVxuLnVpLmNoZWNrYm94IGlucHV0Om5vdChbdHlwZT1yYWRpb10pOmluZGV0ZXJtaW5hdGU6Zm9jdXMgfiAuYm94OmFmdGVyLFxuLnVpLmNoZWNrYm94IGlucHV0Om5vdChbdHlwZT1yYWRpb10pOmluZGV0ZXJtaW5hdGU6Zm9jdXMgfiBsYWJlbDphZnRlcixcbi51aS5jaGVja2JveCBpbnB1dDpjaGVja2VkOmZvY3VzIH4gLmJveDphZnRlcixcbi51aS5jaGVja2JveCBpbnB1dDpjaGVja2VkOmZvY3VzIH4gbGFiZWw6YWZ0ZXIge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjk1KTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBSZWFkLU9ubHlcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkucmVhZC1vbmx5LmNoZWNrYm94LFxuLnVpLnJlYWQtb25seS5jaGVja2JveCBsYWJlbCB7XG4gIGN1cnNvcjogZGVmYXVsdDtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuZGlzYWJsZWQuY2hlY2tib3ggLmJveDphZnRlcixcbi51aS5kaXNhYmxlZC5jaGVja2JveCBsYWJlbCxcbi51aS5jaGVja2JveCBpbnB1dFtkaXNhYmxlZF0gfiAuYm94OmFmdGVyLFxuLnVpLmNoZWNrYm94IGlucHV0W2Rpc2FibGVkXSB+IGxhYmVsIHtcbiAgY3Vyc29yOiBkZWZhdWx0ICFpbXBvcnRhbnQ7XG4gIG9wYWNpdHk6IDAuNTtcbiAgY29sb3I6ICMwMDAwMDA7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIEhpZGRlblxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEluaXRpYWxpemVkIGNoZWNrYm94IG1vdmVzIGlucHV0IGJlbG93IGVsZW1lbnRcbiB0byBwcmV2ZW50IG1hbnVhbGx5IHRyaWdnZXJpbmcgKi9cbi51aS5jaGVja2JveCBpbnB1dC5oaWRkZW4ge1xuICB6LWluZGV4OiAtMTtcbn1cbi8qIFNlbGVjdGFibGUgTGFiZWwgKi9cbi51aS5jaGVja2JveCBpbnB1dC5oaWRkZW4gKyBsYWJlbCB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFR5cGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgICBSYWRpb1xuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5yYWRpby5jaGVja2JveCB7XG4gIG1pbi1oZWlnaHQ6IDE1cHg7XG59XG4udWkucmFkaW8uY2hlY2tib3ggLmJveCxcbi51aS5yYWRpby5jaGVja2JveCBsYWJlbCB7XG4gIHBhZGRpbmctbGVmdDogMS44NTcxNGVtO1xufVxuLyogQm94ICovXG4udWkucmFkaW8uY2hlY2tib3ggLmJveDpiZWZvcmUsXG4udWkucmFkaW8uY2hlY2tib3ggbGFiZWw6YmVmb3JlIHtcbiAgY29udGVudDogJyc7XG4gIHRyYW5zZm9ybTogbm9uZTtcbiAgd2lkdGg6IDE1cHg7XG4gIGhlaWdodDogMTVweDtcbiAgYm9yZGVyLXJhZGl1czogNTAwcmVtO1xuICB0b3A6IDFweDtcbiAgbGVmdDogMHB4O1xufVxuLyogQnVsbGV0ICovXG4udWkucmFkaW8uY2hlY2tib3ggLmJveDphZnRlcixcbi51aS5yYWRpby5jaGVja2JveCBsYWJlbDphZnRlciB7XG4gIGJvcmRlcjogbm9uZTtcbiAgY29udGVudDogJycgIWltcG9ydGFudDtcbiAgd2lkdGg6IDE1cHg7XG4gIGhlaWdodDogMTVweDtcbiAgbGluZS1oZWlnaHQ6IDE1cHg7XG59XG4vKiBSYWRpbyBDaGVja2JveCAqL1xuLnVpLnJhZGlvLmNoZWNrYm94IC5ib3g6YWZ0ZXIsXG4udWkucmFkaW8uY2hlY2tib3ggbGFiZWw6YWZ0ZXIge1xuICB0b3A6IDFweDtcbiAgbGVmdDogMHB4O1xuICB3aWR0aDogMTVweDtcbiAgaGVpZ2h0OiAxNXB4O1xuICBib3JkZXItcmFkaXVzOiA1MDByZW07XG4gIHRyYW5zZm9ybTogc2NhbGUoMC40NjY2NjY2Nyk7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzMzMzMzM7XG59XG4vKiBGb2N1cyAqL1xuLnVpLnJhZGlvLmNoZWNrYm94IGlucHV0OmZvY3VzIH4gLmJveDpiZWZvcmUsXG4udWkucmFkaW8uY2hlY2tib3ggaW5wdXQ6Zm9jdXMgfiBsYWJlbDpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xufVxuLnVpLnJhZGlvLmNoZWNrYm94IGlucHV0OmZvY3VzIH4gLmJveDphZnRlcixcbi51aS5yYWRpby5jaGVja2JveCBpbnB1dDpmb2N1cyB+IGxhYmVsOmFmdGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjk1KTtcbn1cbi8qIEluZGV0ZXJtaW5hdGUgKi9cbi51aS5yYWRpby5jaGVja2JveCBpbnB1dDppbmRldGVybWluYXRlIH4gLmJveDphZnRlcixcbi51aS5yYWRpby5jaGVja2JveCBpbnB1dDppbmRldGVybWluYXRlIH4gbGFiZWw6YWZ0ZXIge1xuICBvcGFjaXR5OiAwO1xufVxuLyogQWN0aXZlICovXG4udWkucmFkaW8uY2hlY2tib3ggaW5wdXQ6Y2hlY2tlZCB+IC5ib3g6YmVmb3JlLFxuLnVpLnJhZGlvLmNoZWNrYm94IGlucHV0OmNoZWNrZWQgfiBsYWJlbDpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xufVxuLnVpLnJhZGlvLmNoZWNrYm94IGlucHV0OmNoZWNrZWQgfiAuYm94OmFmdGVyLFxuLnVpLnJhZGlvLmNoZWNrYm94IGlucHV0OmNoZWNrZWQgfiBsYWJlbDphZnRlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC45NSk7XG59XG4vKiBBY3RpdmUgRm9jdXMgKi9cbi51aS5yYWRpby5jaGVja2JveCBpbnB1dDpmb2N1czpjaGVja2VkIH4gLmJveDpiZWZvcmUsXG4udWkucmFkaW8uY2hlY2tib3ggaW5wdXQ6Zm9jdXM6Y2hlY2tlZCB+IGxhYmVsOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG59XG4udWkucmFkaW8uY2hlY2tib3ggaW5wdXQ6Zm9jdXM6Y2hlY2tlZCB+IC5ib3g6YWZ0ZXIsXG4udWkucmFkaW8uY2hlY2tib3ggaW5wdXQ6Zm9jdXM6Y2hlY2tlZCB+IGxhYmVsOmFmdGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjk1KTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgU2xpZGVyXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLnNsaWRlci5jaGVja2JveCB7XG4gIG1pbi1oZWlnaHQ6IDEuMjVyZW07XG59XG4vKiBJbnB1dCAqL1xuLnVpLnNsaWRlci5jaGVja2JveCBpbnB1dCB7XG4gIHdpZHRoOiAzLjVyZW07XG4gIGhlaWdodDogMS4yNXJlbTtcbn1cbi8qIExhYmVsICovXG4udWkuc2xpZGVyLmNoZWNrYm94IC5ib3gsXG4udWkuc2xpZGVyLmNoZWNrYm94IGxhYmVsIHtcbiAgcGFkZGluZy1sZWZ0OiA0LjVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxcmVtO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjQpO1xufVxuLyogTGluZSAqL1xuLnVpLnNsaWRlci5jaGVja2JveCAuYm94OmJlZm9yZSxcbi51aS5zbGlkZXIuY2hlY2tib3ggbGFiZWw6YmVmb3JlIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgY29udGVudDogJyc7XG4gIGJvcmRlcjogbm9uZSAhaW1wb3J0YW50O1xuICBsZWZ0OiAwZW07XG4gIHotaW5kZXg6IDE7XG4gIHRvcDogMC40cmVtO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMDUpO1xuICB3aWR0aDogMy41cmVtO1xuICBoZWlnaHQ6IDAuM3JlbTtcbiAgdHJhbnNmb3JtOiBub25lO1xuICBib3JkZXItcmFkaXVzOiA1MDByZW07XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4zcyBlYXNlO1xufVxuLyogSGFuZGxlICovXG4udWkuc2xpZGVyLmNoZWNrYm94IC5ib3g6YWZ0ZXIsXG4udWkuc2xpZGVyLmNoZWNrYm94IGxhYmVsOmFmdGVyIHtcbiAgYmFja2dyb3VuZDogI2ZmZmZmZiBsaW5lYXItZ3JhZGllbnQodHJhbnNwYXJlbnQsIHJnYmEoMCwgMCwgMCwgMC4wNSkpO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGNvbnRlbnQ6ICcnICFpbXBvcnRhbnQ7XG4gIG9wYWNpdHk6IDE7XG4gIHotaW5kZXg6IDI7XG4gIGJvcmRlcjogbm9uZTtcbiAgYm94LXNoYWRvdzogMHB4IDFweCAycHggMCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpLCAwcHggMHB4IDBweCAxcHggcmdiYSgzNCwgMzYsIDM4LCAwLjE1KSBpbnNldDtcbiAgd2lkdGg6IDEuNXJlbTtcbiAgaGVpZ2h0OiAxLjVyZW07XG4gIHRvcDogLTAuMjVyZW07XG4gIGxlZnQ6IDBlbTtcbiAgdHJhbnNmb3JtOiBub25lO1xuICBib3JkZXItcmFkaXVzOiA1MDByZW07XG4gIHRyYW5zaXRpb246IGxlZnQgMC4zcyBlYXNlO1xufVxuLyogRm9jdXMgKi9cbi51aS5zbGlkZXIuY2hlY2tib3ggaW5wdXQ6Zm9jdXMgfiAuYm94OmJlZm9yZSxcbi51aS5zbGlkZXIuY2hlY2tib3ggaW5wdXQ6Zm9jdXMgfiBsYWJlbDpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMTUpO1xuICBib3JkZXI6IG5vbmU7XG59XG4vKiBIb3ZlciAqL1xuLnVpLnNsaWRlci5jaGVja2JveCAuYm94OmhvdmVyLFxuLnVpLnNsaWRlci5jaGVja2JveCBsYWJlbDpob3ZlciB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuOCk7XG59XG4udWkuc2xpZGVyLmNoZWNrYm94IC5ib3g6aG92ZXI6OmJlZm9yZSxcbi51aS5zbGlkZXIuY2hlY2tib3ggbGFiZWw6aG92ZXI6OmJlZm9yZSB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4xNSk7XG59XG4vKiBBY3RpdmUgKi9cbi51aS5zbGlkZXIuY2hlY2tib3ggaW5wdXQ6Y2hlY2tlZCB+IC5ib3gsXG4udWkuc2xpZGVyLmNoZWNrYm94IGlucHV0OmNoZWNrZWQgfiBsYWJlbCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuOTUpICFpbXBvcnRhbnQ7XG59XG4udWkuc2xpZGVyLmNoZWNrYm94IGlucHV0OmNoZWNrZWQgfiAuYm94OmJlZm9yZSxcbi51aS5zbGlkZXIuY2hlY2tib3ggaW5wdXQ6Y2hlY2tlZCB+IGxhYmVsOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM1NDU0NTQgIWltcG9ydGFudDtcbn1cbi51aS5zbGlkZXIuY2hlY2tib3ggaW5wdXQ6Y2hlY2tlZCB+IC5ib3g6YWZ0ZXIsXG4udWkuc2xpZGVyLmNoZWNrYm94IGlucHV0OmNoZWNrZWQgfiBsYWJlbDphZnRlciB7XG4gIGxlZnQ6IDJyZW07XG59XG4vKiBBY3RpdmUgRm9jdXMgKi9cbi51aS5zbGlkZXIuY2hlY2tib3ggaW5wdXQ6Zm9jdXM6Y2hlY2tlZCB+IC5ib3gsXG4udWkuc2xpZGVyLmNoZWNrYm94IGlucHV0OmZvY3VzOmNoZWNrZWQgfiBsYWJlbCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuOTUpICFpbXBvcnRhbnQ7XG59XG4udWkuc2xpZGVyLmNoZWNrYm94IGlucHV0OmZvY3VzOmNoZWNrZWQgfiAuYm94OmJlZm9yZSxcbi51aS5zbGlkZXIuY2hlY2tib3ggaW5wdXQ6Zm9jdXM6Y2hlY2tlZCB+IGxhYmVsOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDAwMDAgIWltcG9ydGFudDtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgVG9nZ2xlXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLnRvZ2dsZS5jaGVja2JveCB7XG4gIG1pbi1oZWlnaHQ6IDEuNXJlbTtcbn1cbi8qIElucHV0ICovXG4udWkudG9nZ2xlLmNoZWNrYm94IGlucHV0IHtcbiAgd2lkdGg6IDMuNXJlbTtcbiAgaGVpZ2h0OiAxLjVyZW07XG59XG4vKiBMYWJlbCAqL1xuLnVpLnRvZ2dsZS5jaGVja2JveCAuYm94LFxuLnVpLnRvZ2dsZS5jaGVja2JveCBsYWJlbCB7XG4gIG1pbi1oZWlnaHQ6IDEuNXJlbTtcbiAgcGFkZGluZy1sZWZ0OiA0LjVyZW07XG4gIGNvbG9yOiAjMzMzMzMzO1xufVxuLnVpLnRvZ2dsZS5jaGVja2JveCBsYWJlbCB7XG4gIHBhZGRpbmctdG9wOiAwLjE1ZW07XG59XG4vKiBTd2l0Y2ggKi9cbi51aS50b2dnbGUuY2hlY2tib3ggLmJveDpiZWZvcmUsXG4udWkudG9nZ2xlLmNoZWNrYm94IGxhYmVsOmJlZm9yZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGNvbnRlbnQ6ICcnO1xuICB6LWluZGV4OiAxO1xuICB0cmFuc2Zvcm06IG5vbmU7XG4gIGJvcmRlcjogbm9uZTtcbiAgdG9wOiAwcmVtO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMDUpO1xuICB3aWR0aDogMy41cmVtO1xuICBoZWlnaHQ6IDEuNXJlbTtcbiAgYm9yZGVyLXJhZGl1czogNTAwcmVtO1xufVxuLyogSGFuZGxlICovXG4udWkudG9nZ2xlLmNoZWNrYm94IC5ib3g6YWZ0ZXIsXG4udWkudG9nZ2xlLmNoZWNrYm94IGxhYmVsOmFmdGVyIHtcbiAgYmFja2dyb3VuZDogI2ZmZmZmZiBsaW5lYXItZ3JhZGllbnQodHJhbnNwYXJlbnQsIHJnYmEoMCwgMCwgMCwgMC4wNSkpO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGNvbnRlbnQ6ICcnICFpbXBvcnRhbnQ7XG4gIG9wYWNpdHk6IDE7XG4gIHotaW5kZXg6IDI7XG4gIGJvcmRlcjogbm9uZTtcbiAgYm94LXNoYWRvdzogMHB4IDFweCAycHggMCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpLCAwcHggMHB4IDBweCAxcHggcmdiYSgzNCwgMzYsIDM4LCAwLjE1KSBpbnNldDtcbiAgd2lkdGg6IDEuNXJlbTtcbiAgaGVpZ2h0OiAxLjVyZW07XG4gIHRvcDogMHJlbTtcbiAgbGVmdDogMGVtO1xuICBib3JkZXItcmFkaXVzOiA1MDByZW07XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4zcyBlYXNlLCBsZWZ0IDAuM3MgZWFzZTtcbn1cbi51aS50b2dnbGUuY2hlY2tib3ggaW5wdXQgfiAuYm94OmFmdGVyLFxuLnVpLnRvZ2dsZS5jaGVja2JveCBpbnB1dCB+IGxhYmVsOmFmdGVyIHtcbiAgbGVmdDogLTAuMDVyZW07XG59XG4vKiBGb2N1cyAqL1xuLnVpLnRvZ2dsZS5jaGVja2JveCBpbnB1dDpmb2N1cyB+IC5ib3g6YmVmb3JlLFxuLnVpLnRvZ2dsZS5jaGVja2JveCBpbnB1dDpmb2N1cyB+IGxhYmVsOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xNSk7XG4gIGJvcmRlcjogbm9uZTtcbn1cbi8qIEhvdmVyICovXG4udWkudG9nZ2xlLmNoZWNrYm94IC5ib3g6aG92ZXI6OmJlZm9yZSxcbi51aS50b2dnbGUuY2hlY2tib3ggbGFiZWw6aG92ZXI6OmJlZm9yZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xNSk7XG4gIGJvcmRlcjogbm9uZTtcbn1cbi8qIEFjdGl2ZSAqL1xuLnVpLnRvZ2dsZS5jaGVja2JveCBpbnB1dDpjaGVja2VkIH4gLmJveCxcbi51aS50b2dnbGUuY2hlY2tib3ggaW5wdXQ6Y2hlY2tlZCB+IGxhYmVsIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC45NSkgIWltcG9ydGFudDtcbn1cbi51aS50b2dnbGUuY2hlY2tib3ggaW5wdXQ6Y2hlY2tlZCB+IC5ib3g6YmVmb3JlLFxuLnVpLnRvZ2dsZS5jaGVja2JveCBpbnB1dDpjaGVja2VkIH4gbGFiZWw6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzNmNTFiNSAhaW1wb3J0YW50O1xufVxuLnVpLnRvZ2dsZS5jaGVja2JveCBpbnB1dDpjaGVja2VkIH4gLmJveDphZnRlcixcbi51aS50b2dnbGUuY2hlY2tib3ggaW5wdXQ6Y2hlY2tlZCB+IGxhYmVsOmFmdGVyIHtcbiAgbGVmdDogMi4xNXJlbTtcbn1cbi8qIEFjdGl2ZSBGb2N1cyAqL1xuLnVpLnRvZ2dsZS5jaGVja2JveCBpbnB1dDpmb2N1czpjaGVja2VkIH4gLmJveCxcbi51aS50b2dnbGUuY2hlY2tib3ggaW5wdXQ6Zm9jdXM6Y2hlY2tlZCB+IGxhYmVsIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC45NSkgIWltcG9ydGFudDtcbn1cbi51aS50b2dnbGUuY2hlY2tib3ggaW5wdXQ6Zm9jdXM6Y2hlY2tlZCB+IC5ib3g6YmVmb3JlLFxuLnVpLnRvZ2dsZS5jaGVja2JveCBpbnB1dDpmb2N1czpjaGVja2VkIH4gbGFiZWw6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzJiM2RhMSAhaW1wb3J0YW50O1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFZhcmlhdGlvbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIEZpdHRlZFxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5maXR0ZWQuY2hlY2tib3ggLmJveCxcbi51aS5maXR0ZWQuY2hlY2tib3ggbGFiZWwge1xuICBwYWRkaW5nLWxlZnQ6IDBlbSAhaW1wb3J0YW50O1xufVxuLnVpLmZpdHRlZC50b2dnbGUuY2hlY2tib3gsXG4udWkuZml0dGVkLnRvZ2dsZS5jaGVja2JveCB7XG4gIHdpZHRoOiAzLjVyZW07XG59XG4udWkuZml0dGVkLnNsaWRlci5jaGVja2JveCxcbi51aS5maXR0ZWQuc2xpZGVyLmNoZWNrYm94IHtcbiAgd2lkdGg6IDMuNXJlbTtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBUaGVtZSBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdDaGVja2JveCc7XG4gIHNyYzogdXJsKGRhdGE6YXBwbGljYXRpb24veC1mb250LXR0ZjtjaGFyc2V0PXV0Zi04O2Jhc2U2NCxBQUVBQUFBTEFJQUFBd0F3VDFNdk1nOFNCRDhBQUFDOEFBQUFZR050WVhBWVZ0Q0pBQUFCSEFBQUFGUm5ZWE53QUFBQUVBQUFBWEFBQUFBSVoyeDVabjRodXdVQUFBRjRBQUFCWUdobFlXUUdQZTFaQUFBQzJBQUFBRFpvYUdWaEIzMER5QUFBQXhBQUFBQWthRzEwZUJCS0FFVUFBQU0wQUFBQUhHeHZZMkVBbWdFU0FBQURVQUFBQUJCdFlYaHdBQWtBTHdBQUEyQUFBQUFnYm1GdFpTQzhJdWdBQUFPQUFBQUJrbkJ2YzNRQUF3QUFBQUFGRkFBQUFDQUFBd01UQVpBQUJRQUFBcGtDekFBQUFJOENtUUxNQUFBQjZ3QXpBUWtBQUFBQUFBQUFBQUFBQUFBQUFBQUJFQUFBQUFBQUFBQUFBQUFBQUFBQUFBQkFBQURvQWdQQS84QUFRQVBBQUVBQUFBQUJBQUFBQUFBQUFBQUFBQUFnQUFBQUFBQURBQUFBQXdBQUFCd0FBUUFEQUFBQUhBQURBQUVBQUFBY0FBUUFPQUFBQUFvQUNBQUNBQUlBQVFBZzZBTC8vZi8vQUFBQUFBQWc2QUQvL2YvL0FBSC80eGdFQUFNQUFRQUFBQUFBQUFBQUFBQUFBUUFCLy84QUR3QUJBQUFBQUFBQUFBQUFBZ0FBTnprQkFBQUFBQUVBQUFBQUFBQUFBQUFDQUFBM09RRUFBQUFBQVFBQUFBQUFBQUFBQUFJQUFEYzVBUUFBQUFBQkFFVUFVUU83QXZnQUdnQUFBUlFIQVFZaklpY0JKalUwUHdFMk16SWZBUUUyTXpJZkFSWVZBN3NRL2hRUUZoY1EvdU1RRUU0UUZ4Y1FxQUYyRUJjWEVFNFFBbk1XRVA0VUVCQUJIUkFYRmhCT0VCQ29BWGNRRUU0UUZ3QUFBQUFCQUFBQmJnTWxBa2tBRkFBQUFSVVVCd1lqSVNJbkpqMEJORGMyTXlFeUZ4WVZBeVVRRUJmOVNSY1FFQkFRRndLM0Z4QVFBaEp0RnhBUUVCQVhiUmNRRUJBUUZ3QUFBQUFCQUFBQVNRTWxBMjRBTEFBQUFSVVVCd1lyQVJVVUJ3WXJBU0luSmowQkl5SW5KajBCTkRjMk93RTFORGMyT3dFeUZ4WWRBVE15RnhZVkF5VVFFQmZ1RUJBWGJoWVFFTzRYRUJBUUVCZnVFQkFXYmhjUUVPNFhFQkFDRW0wWEVCRHVGeEFRRUJBWDdoQVFGMjBYRUJEdUZ4QVFFQkFYN2hBUUZ3QUFBUUFBQUFJQUFIUlN6VDlmRHp6MUFBc0VBQUFBQUFEUnNkUjNBQUFBQU5HeDFIY0FBQUFBQTdzRGJnQUFBQWdBQWdBQUFBQUFBQUFCQUFBRHdQL0FBQUFFQUFBQUFBQUR1d0FCQUFBQUFBQUFBQUFBQUFBQUFBQUFCd1FBQUFBQUFBQUFBQUFBQUFJQUFBQUVBQUJGQXlVQUFBTWxBQUFBQUFBQUFBb0FGQUFlQUU0QWNnQ3dBQUVBQUFBSEFDMEFBUUFBQUFBQUFnQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQU9BSzRBQVFBQUFBQUFBUUFJQUFBQUFRQUFBQUFBQWdBSEFHa0FBUUFBQUFBQUF3QUlBRGtBQVFBQUFBQUFCQUFJQUg0QUFRQUFBQUFBQlFBTEFCZ0FBUUFBQUFBQUJnQUlBRkVBQVFBQUFBQUFDZ0FhQUpZQUF3QUJCQWtBQVFBUUFBZ0FBd0FCQkFrQUFnQU9BSEFBQXdBQkJBa0FBd0FRQUVFQUF3QUJCQWtBQkFBUUFJWUFBd0FCQkFrQUJRQVdBQ01BQXdBQkJBa0FCZ0FRQUZrQUF3QUJCQWtBQ2dBMEFMQkRhR1ZqYTJKdmVBQkRBR2dBWlFCakFHc0FZZ0J2QUhoV1pYSnphVzl1SURJdU1BQldBR1VBY2dCekFHa0Fid0J1QUNBQU1nQXVBREJEYUdWamEySnZlQUJEQUdnQVpRQmpBR3NBWWdCdkFIaERhR1ZqYTJKdmVBQkRBR2dBWlFCakFHc0FZZ0J2QUhoU1pXZDFiR0Z5QUZJQVpRQm5BSFVBYkFCaEFISkRhR1ZqYTJKdmVBQkRBR2dBWlFCakFHc0FZZ0J2QUhoR2IyNTBJR2RsYm1WeVlYUmxaQ0JpZVNCSlkyOU5iMjl1TGdCR0FHOEFiZ0IwQUNBQVp3QmxBRzRBWlFCeUFHRUFkQUJsQUdRQUlBQmlBSGtBSUFCSkFHTUFid0JOQUc4QWJ3QnVBQzRBQUFBREFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEpIGZvcm1hdCgndHJ1ZXR5cGUnKTtcbn1cbi8qIENoZWNrbWFyayAqL1xuLnVpLmNoZWNrYm94IGxhYmVsOmFmdGVyLFxuLnVpLmNoZWNrYm94IC5ib3g6YWZ0ZXIge1xuICBmb250LWZhbWlseTogJ0NoZWNrYm94Jztcbn1cbi8qIENoZWNrZWQgKi9cbi51aS5jaGVja2JveCBpbnB1dDpjaGVja2VkIH4gLmJveDphZnRlcixcbi51aS5jaGVja2JveCBpbnB1dDpjaGVja2VkIH4gbGFiZWw6YWZ0ZXIge1xuICBjb250ZW50OiAnXFxlODAwJztcbn1cbi8qIEluZGV0ZXJtaW5hdGUgKi9cbi51aS5jaGVja2JveCBpbnB1dDppbmRldGVybWluYXRlIH4gLmJveDphZnRlcixcbi51aS5jaGVja2JveCBpbnB1dDppbmRldGVybWluYXRlIH4gbGFiZWw6YWZ0ZXIge1xuICBmb250LXNpemU6IDEycHg7XG4gIGNvbnRlbnQ6ICdcXGU4MDEnO1xufVxuLyogIFVURiBSZWZlcmVuY2Vcbi5jaGVjazpiZWZvcmUgeyBjb250ZW50OiAnXFxlODAwJzsgfVxuLmRhc2g6YmVmb3JlICB7IGNvbnRlbnQ6ICdcXGU4MDEnOyB9XG4ucGx1czpiZWZvcmUgeyBjb250ZW50OiAnXFxlODAyJzsgfVxuKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIE92ZXJyaWRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIVxuICogIyBTZW1hbnRpYyBVSSAtIERpbW1lclxuICogaHR0cDovL2dpdGh1Yi5jb20vc2VtYW50aWMtb3JnL3NlbWFudGljLXVpL1xuICpcbiAqXG4gKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2VcbiAqIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVRcbiAqXG4gKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qXG5cbuKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVlyAg4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4pWXICAg4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWXXG7ilZrilZDilZDilojilojilZTilZDilZDilZ3ilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKWiOKWiOKVlyDilojilojilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilZTilZDilZDilZDilZDilZ1cbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4pWU4paI4paI4paI4paI4pWU4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilojilojilojilojilojilZdcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVlOKVkOKVkOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4paI4paI4pWR4pWa4paI4paI4pWU4pWd4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilZrilZDilZDilZDilZDilojilojilZFcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWRIOKVmuKVkOKVnSDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZFcbiAgIOKVmuKVkOKVnSAgIOKVmuKVkOKVnSAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWdICAgICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ1cblxuKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIFRoZW1lIFNlbGVjdGlvblxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFRvIG92ZXJyaWRlIGEgdGhlbWUgZm9yIGFuIGluZGl2aWR1YWwgZWxlbWVudFxuICAgc3BlY2lmeSB0aGVtZSBuYW1lIGJlbG93XG4qL1xuLyogR2xvYmFsICovXG4vKiBFbGVtZW50cyAqL1xuLyogQ29sbGVjdGlvbnMgKi9cbi8qIE1vZHVsZXMgKi9cbi8qIFZpZXdzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgRm9sZGVyc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFBhdGggdG8gdGhlbWUgcGFja2FnZXMgKi9cbi8qIFBhdGggdG8gc2l0ZSBvdmVycmlkZSBmb2xkZXIgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBJbXBvcnQgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBJbXBvcnQgRGlyZWN0aXZlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgVGhlbWVcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgU2l0ZSBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0IHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRvcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogUGFja2FnZWQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZG9ycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBDb21wb25lbnQncyBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kb3JzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFNpdGUgdGhlbWUgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgIFVzZXIgR2xvYmFsIFZhcmlhYmxlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIG1hcnNvIGNvbG9ycyAqL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuIENvbXBvbmVudCBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0ICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgRGltbWVyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogSGlkZGVuIChEZWZhdWx0KSAqL1xuLyogVmlzaWJsZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFR5cGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQYWdlIERpbW1lciovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFZhcmlhdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKiBTaW1wbGUgKi9cbi8qIFBhY2thZ2VkIFRoZW1lICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgRGltbWVyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogSGlkZGVuIChEZWZhdWx0KSAqL1xuLyogVmlzaWJsZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFR5cGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQYWdlIERpbW1lciovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFZhcmlhdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKiBTaW1wbGUgKi9cbi8qIFNpdGUgVGhlbWUgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgVXNlciBWYXJpYWJsZSBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIE1peC1pbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE92ZXJyaWRlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBFbmQgQ29uZmlnICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgRGltbWVyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLmRpbW1hYmxlOm5vdChib2R5KSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbi51aS5kaW1tZXIge1xuICBkaXNwbGF5OiBub25lO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMGVtICFpbXBvcnRhbnQ7XG4gIGxlZnQ6IDBlbSAhaW1wb3J0YW50O1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIHBhZGRpbmc6IDFlbTtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg1KTtcbiAgb3BhY2l0eTogMDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGFuaW1hdGlvbi1maWxsLW1vZGU6IGJvdGg7XG4gIGFuaW1hdGlvbi1kdXJhdGlvbjogMC41cztcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjVzIGxpbmVhcjtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHVzZXItc2VsZWN0OiBub25lO1xuICB3aWxsLWNoYW5nZTogb3BhY2l0eTtcbiAgei1pbmRleDogMTAwMDtcbn1cbi8qIERpbW1lciBDb250ZW50ICovXG4udWkuZGltbWVyID4gLmNvbnRlbnQge1xuICB1c2VyLXNlbGVjdDogdGV4dDtcbiAgY29sb3I6ICNmZmZmZmY7XG59XG4vKiBMb29zZSBDb3VwbGluZyAqL1xuLnVpLnNlZ21lbnQgPiAudWkuZGltbWVyIHtcbiAgYm9yZGVyLXJhZGl1czogaW5oZXJpdCAhaW1wb3J0YW50O1xufVxuLyogU2Nyb2xsYmFycyAqL1xuLnVpLmRpbW1lcjpub3QoLmludmVydGVkKTo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2sge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSk7XG59XG4udWkuZGltbWVyOm5vdCguaW52ZXJ0ZWQpOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yNSk7XG59XG4udWkuZGltbWVyOm5vdCguaW52ZXJ0ZWQpOjotd2Via2l0LXNjcm9sbGJhci10aHVtYjp3aW5kb3ctaW5hY3RpdmUge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpO1xufVxuLnVpLmRpbW1lcjpub3QoLmludmVydGVkKTo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWI6aG92ZXIge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMzUpO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIEFuaW1hdGluZyAqL1xuLmFuaW1hdGluZy5kaW1tYWJsZTpub3QoYm9keSksXG4uZGltbWVkLmRpbW1hYmxlOm5vdChib2R5KSB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG4vKiBBbmltYXRpbmcgLyBBY3RpdmUgLyBWaXNpYmxlICovXG4uZGltbWVkLmRpbW1hYmxlID4gLnVpLmFuaW1hdGluZy5kaW1tZXIsXG4uZGltbWVkLmRpbW1hYmxlID4gLnVpLnZpc2libGUuZGltbWVyLFxuLnVpLmFjdGl2ZS5kaW1tZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBvcGFjaXR5OiAxO1xufVxuLyogRGlzYWJsZWQgKi9cbi51aS5kaXNhYmxlZC5kaW1tZXIge1xuICB3aWR0aDogMCAhaW1wb3J0YW50O1xuICBoZWlnaHQ6IDAgIWltcG9ydGFudDtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFZhcmlhdGlvbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgQWxpZ25tZW50XG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpW2NsYXNzKj1cInRvcCBhbGlnbmVkXCJdLmRpbW1lciB7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbn1cbi51aVtjbGFzcyo9XCJib3R0b20gYWxpZ25lZFwiXS5kaW1tZXIge1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5wYWdlLmRpbW1lciB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdHJhbnNmb3JtLXN0eWxlOiAnJztcbiAgcGVyc3BlY3RpdmU6IDIwMDBweDtcbiAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyIGNlbnRlcjtcbn1cbmJvZHkuYW5pbWF0aW5nLmluLmRpbW1hYmxlLFxuYm9keS5kaW1tZWQuZGltbWFibGUge1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuYm9keS5kaW1tYWJsZSA+IC5kaW1tZXIge1xuICBwb3NpdGlvbjogZml4ZWQ7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgQmx1cnJpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4uYmx1cnJpbmcuZGltbWFibGUgPiA6bm90KC5kaW1tZXIpIHtcbiAgZmlsdGVyOiBibHVyKDBweCkgZ3JheXNjYWxlKDApO1xuICB0cmFuc2l0aW9uOiA4MDBtcyBmaWx0ZXIgZWFzZTtcbn1cbi5ibHVycmluZy5kaW1tZWQuZGltbWFibGUgPiA6bm90KC5kaW1tZXIpIHtcbiAgZmlsdGVyOiBibHVyKDVweCkgZ3JheXNjYWxlKDAuNyk7XG59XG4vKiBEaW1tZXIgQ29sb3IgKi9cbi5ibHVycmluZy5kaW1tYWJsZSA+IC5kaW1tZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNik7XG59XG4uYmx1cnJpbmcuZGltbWFibGUgPiAuaW52ZXJ0ZWQuZGltbWVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjYpO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgIEFsaWduZWRcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuZGltbWVyID4gLnRvcC5hbGlnbmVkLmNvbnRlbnQgPiAqIHtcbiAgdmVydGljYWwtYWxpZ246IHRvcDtcbn1cbi51aS5kaW1tZXIgPiAuYm90dG9tLmFsaWduZWQuY29udGVudCA+ICoge1xuICB2ZXJ0aWNhbC1hbGlnbjogYm90dG9tO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgIEludmVydGVkXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmludmVydGVkLmRpbW1lciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44NSk7XG59XG4udWkuaW52ZXJ0ZWQuZGltbWVyID4gLmNvbnRlbnQgPiAqIHtcbiAgY29sb3I6ICNmZmZmZmY7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIFNpbXBsZVxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpc3BsYXlzIHdpdGhvdXQgamF2YXNjcmlwdCAqL1xuLnVpLnNpbXBsZS5kaW1tZXIge1xuICBkaXNwbGF5OiBibG9jaztcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgb3BhY2l0eTogMTtcbiAgd2lkdGg6IDAlO1xuICBoZWlnaHQ6IDAlO1xuICB6LWluZGV4OiAtMTAwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDApO1xufVxuLmRpbW1lZC5kaW1tYWJsZSA+IC51aS5zaW1wbGUuZGltbWVyIHtcbiAgb3ZlcmZsb3c6IHZpc2libGU7XG4gIG9wYWNpdHk6IDE7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44NSk7XG4gIHotaW5kZXg6IDE7XG59XG4udWkuc2ltcGxlLmludmVydGVkLmRpbW1lciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMCk7XG59XG4uZGltbWVkLmRpbW1hYmxlID4gLnVpLnNpbXBsZS5pbnZlcnRlZC5kaW1tZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuODUpO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFRoZW1lIE92ZXJyaWRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIFVzZXIgT3ZlcnJpZGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyohXG4gKiAjIFNlbWFudGljIFVJIC0gRHJvcGRvd25cbiAqIGh0dHA6Ly9naXRodWIuY29tL3NlbWFudGljLW9yZy9zZW1hbnRpYy11aS9cbiAqXG4gKlxuICogUmVsZWFzZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlXG4gKiBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUXG4gKlxuICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKlxuXG7ilojilojilojilojilojilojilojilojilZfilojilojilZcgIOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKVlyAgIOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl1xu4pWa4pWQ4pWQ4paI4paI4pWU4pWQ4pWQ4pWd4paI4paI4pWRICDilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilojilojilZcg4paI4paI4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWd4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWdXG4gICDilojilojilZEgICDilojilojilojilojilojilojilojilZHilojilojilojilojilojilZcgIOKWiOKWiOKVlOKWiOKWiOKWiOKWiOKVlOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4paI4paI4paI4paI4paI4pWXXG4gICDilojilojilZEgICDilojilojilZTilZDilZDilojilojilZHilojilojilZTilZDilZDilZ0gIOKWiOKWiOKVkeKVmuKWiOKWiOKVlOKVneKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4pWa4pWQ4pWQ4pWQ4pWQ4paI4paI4pWRXG4gICDilojilojilZEgICDilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVkSDilZrilZDilZ0g4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWRXG4gICDilZrilZDilZ0gICDilZrilZDilZ0gIOKVmuKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVneKVmuKVkOKVnSAgICAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWdXG5cbiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBUaGVtZSBTZWxlY3Rpb25cbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBUbyBvdmVycmlkZSBhIHRoZW1lIGZvciBhbiBpbmRpdmlkdWFsIGVsZW1lbnRcbiAgIHNwZWNpZnkgdGhlbWUgbmFtZSBiZWxvd1xuKi9cbi8qIEdsb2JhbCAqL1xuLyogRWxlbWVudHMgKi9cbi8qIENvbGxlY3Rpb25zICovXG4vKiBNb2R1bGVzICovXG4vKiBWaWV3cyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIEZvbGRlcnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBQYXRoIHRvIHRoZW1lIHBhY2thZ2VzICovXG4vKiBQYXRoIHRvIHNpdGUgb3ZlcnJpZGUgZm9sZGVyICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgSW1wb3J0IFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgSW1wb3J0IERpcmVjdGl2ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIFRoZW1lXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgIFNpdGUgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kb3JzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFBhY2thZ2VkIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRvcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogQ29tcG9uZW50J3Mgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZG9ycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBTaXRlIHRoZW1lIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICBVc2VyIEdsb2JhbCBWYXJpYWJsZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBtYXJzbyBjb2xvcnMgKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiBDb21wb25lbnQgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIERyb3Bkb3duXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRWxlbWVudFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQ29udGVudFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSWNvbiAqL1xuLyogQ3VycmVudCBUZXh0ICovXG4vKiBNZW51ICovXG4vKiBUZXh0ICovXG4vKiBNZW51IEl0ZW0gKi9cbi8qIFN1YiBNZW51ICovXG4vKiBNZW51IEhlYWRlciAqL1xuLyogTWVudSBEaXZpZGVyICovXG4vKiBNZW51IElucHV0ICovXG4vKiBNZW51IEltYWdlICovXG4vKiBJdGVtIFN1Yi1FbGVtZW50ICovXG4vKiBTdWItTWVudSBEcm9wZG93biBJY29uICovXG4vKiBEZXNjcmlwdGlvbiAqL1xuLyogTWVzc2FnZSAqL1xuLyogRmxvYXRlZCBDb250ZW50ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgVHlwZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tXG4gICBTZWxlY3Rpb25cbi0tLS0tLS0tLS0tLS0tKi9cbi8qIDxzZWxlY3Q+ICovXG4vKiBSZXNwb25zaXZlICovXG4vKiBEZXJpdmVkICovXG4vKiAxcHggLyBlbSBzaXplICovXG4vKiBIb3ZlciAqL1xuLyogRm9jdXMgKi9cbi8qIFZpc2libGUgKi9cbi8qIFZpc2libGUgSG92ZXIgKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgU2VhcmNoXG4tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWFyY2ggU2VsZWN0aW9uICovXG4vKiBJbmxpbmUgKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBNdWx0aXBsZVxuLS0tLS0tLS0tLS0tLS0qL1xuLyogU3BsaXQgQWN0dWFsIFBhZGRpbmcgQmV0d2VlbiBDaGlsZCBhbmQgUGFyZW50IChhbGxvd3MgZm9yIGxhYmVsIHNwYWNpbmcpICovXG4vKiBDaGlsZCBFbGVtZW50cyAqL1xuLyogRHJvcGRvd24gSWNvbiAqL1xuLyogU2VsZWN0aW9uIExhYmVsICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBTdGF0ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEhvdmVyZWQgKi9cbi8qIERlZmF1bHQgVGV4dCAqL1xuLyogTG9hZGluZyAqL1xuLyogQWN0aXZlIE1lbnUgSXRlbSAqL1xuLyogU2VsZWN0ZWQgKi9cbi8qIEVycm9yICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFZhcmlhdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNjcm9sbGluZyAqL1xuLyogMHB4IC8gZW0gc2l6ZSAqL1xuLyogVXB3YXJkICovXG4vKiBGbHlvdXQgRGlyZWN0aW9uICovXG4vKiBMZWZ0ICovXG4vKiBTaW1wbGUgKi9cbi8qIEZsb2F0aW5nICovXG4vKiBQb2ludGluZyAqL1xuLyogUG9pbnRpbmcgVXB3YXJkICovXG4vKiBQYWNrYWdlZCBUaGVtZSAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIERyb3Bkb3duXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRWxlbWVudFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQ29udGVudFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSWNvbiAqL1xuLyogQ3VycmVudCBUZXh0ICovXG4vKiBNZW51ICovXG4vKiBUZXh0ICovXG4vKiBNZW51IEl0ZW0gKi9cbi8qIFN1YiBNZW51ICovXG4vKiBNZW51IEhlYWRlciAqL1xuLyogTWVudSBEaXZpZGVyICovXG4vKiBNZW51IElucHV0ICovXG4vKiBNZW51IEltYWdlICovXG4vKiBJdGVtIFN1Yi1FbGVtZW50ICovXG4vKiBTdWItTWVudSBEcm9wZG93biBJY29uICovXG4vKiBEZXNjcmlwdGlvbiAqL1xuLyogTWVzc2FnZSAqL1xuLyogRmxvYXRlZCBDb250ZW50ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgVHlwZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tXG4gICBTZWxlY3Rpb25cbi0tLS0tLS0tLS0tLS0tKi9cbi8qIDxzZWxlY3Q+ICovXG4vKiBSZXNwb25zaXZlICovXG4vKiBEZXJpdmVkICovXG4vKiAxcHggLyBlbSBzaXplICovXG4vKiBIb3ZlciAqL1xuLyogRm9jdXMgKi9cbi8qIFZpc2libGUgKi9cbi8qIFZpc2libGUgSG92ZXIgKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgU2VhcmNoXG4tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWFyY2ggU2VsZWN0aW9uICovXG4vKiBJbmxpbmUgKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBNdWx0aXBsZVxuLS0tLS0tLS0tLS0tLS0qL1xuLyogU3BsaXQgQWN0dWFsIFBhZGRpbmcgQmV0d2VlbiBDaGlsZCBhbmQgUGFyZW50IChhbGxvd3MgZm9yIGxhYmVsIHNwYWNpbmcpICovXG4vKiBDaGlsZCBFbGVtZW50cyAqL1xuLyogRHJvcGRvd24gSWNvbiAqL1xuLyogU2VsZWN0aW9uIExhYmVsICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBTdGF0ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEhvdmVyZWQgKi9cbi8qIERlZmF1bHQgVGV4dCAqL1xuLyogTG9hZGluZyAqL1xuLyogQWN0aXZlIE1lbnUgSXRlbSAqL1xuLyogU2VsZWN0ZWQgKi9cbi8qIEVycm9yICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFZhcmlhdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNjcm9sbGluZyAqL1xuLyogMHB4IC8gZW0gc2l6ZSAqL1xuLyogVXB3YXJkICovXG4vKiBGbHlvdXQgRGlyZWN0aW9uICovXG4vKiBMZWZ0ICovXG4vKiBTaW1wbGUgKi9cbi8qIEZsb2F0aW5nICovXG4vKiBQb2ludGluZyAqL1xuLyogUG9pbnRpbmcgVXB3YXJkICovXG4vKiBTaXRlIFRoZW1lICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgIFVzZXIgVmFyaWFibGUgT3ZlcnJpZGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBNaXgtaW5zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBPdmVycmlkZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRW5kIENvbmZpZyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIERyb3Bkb3duXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLnVpLmRyb3Bkb3duIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgb3V0bGluZTogbm9uZTtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgdHJhbnNpdGlvbjogYm94LXNoYWRvdyAwLjFzIGVhc2UsIHdpZHRoIDAuMXMgZWFzZTtcbiAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiByZ2JhKDAsIDAsIDAsIDApO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIENvbnRlbnRcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgICBNZW51XG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmRyb3Bkb3duIC5tZW51IHtcbiAgY3Vyc29yOiBhdXRvO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIG91dGxpbmU6IG5vbmU7XG4gIHRvcDogMTAwJTtcbiAgbWluLXdpZHRoOiBtYXgtY29udGVudDtcbiAgbWFyZ2luOiAwZW07XG4gIHBhZGRpbmc6IDBlbSAwZW07XG4gIGJhY2tncm91bmQ6ICNGRkZGRkY7XG4gIGZvbnQtc2l6ZTogMWVtO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgYm94LXNoYWRvdzogMHB4IDJweCAzcHggMHB4IHJnYmEoMzQsIDM2LCAzOCwgMC4xNSk7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMzQsIDM2LCAzOCwgMC4xNSk7XG4gIGJvcmRlci1yYWRpdXM6IDAuNHJlbTtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjFzIGVhc2U7XG4gIHotaW5kZXg6IDExO1xuICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtLCBvcGFjaXR5O1xufVxuLnVpLmRyb3Bkb3duIC5tZW51ID4gKiB7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gIEhpZGRlbiBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5kcm9wZG93biA+IGlucHV0Om5vdCguc2VhcmNoKTpmaXJzdC1jaGlsZCxcbi51aS5kcm9wZG93biA+IHNlbGVjdCB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiBEcm9wZG93biBJY29uXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmRyb3Bkb3duID4gLmRyb3Bkb3duLmljb24ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiBhdXRvO1xuICBmb250LXNpemU6IDEuMmVtO1xuICBtYXJnaW46IDBlbSAwZW0gMGVtIDFlbTtcbn1cbi51aS5kcm9wZG93biAubWVudSA+IC5pdGVtIC5kcm9wZG93bi5pY29uIHtcbiAgd2lkdGg6IGF1dG87XG4gIGZsb2F0OiByaWdodDtcbiAgbWFyZ2luOiAwZW0gMGVtIDBlbSAxZW07XG59XG4udWkuZHJvcGRvd24gLm1lbnUgPiAuaXRlbSAuZHJvcGRvd24uaWNvbiArIC50ZXh0IHtcbiAgbWFyZ2luLXJpZ2h0OiAxZW07XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgICBUZXh0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmRyb3Bkb3duID4gLnRleHQge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHRyYW5zaXRpb246IG5vbmU7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgTWVudSBJdGVtXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmRyb3Bkb3duIC5tZW51ID4gLml0ZW0ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGJvcmRlcjogbm9uZTtcbiAgaGVpZ2h0OiBhdXRvO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBib3JkZXItdG9wOiBub25lO1xuICBsaW5lLWhlaWdodDogMWVtO1xuICBjb2xvcjogIzMzMzMzMztcbiAgcGFkZGluZzogMC44cmVtIDEuMXJlbSAhaW1wb3J0YW50O1xuICBmb250LXNpemU6IDFyZW07XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBib3gtc2hhZG93OiBub25lO1xuICAtd2Via2l0LXRvdWNoLWNhbGxvdXQ6IG5vbmU7XG59XG4udWkuZHJvcGRvd24gLm1lbnUgPiAuaXRlbTpmaXJzdC1jaGlsZCB7XG4gIGJvcmRlci10b3Atd2lkdGg6IDBweDtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgRmxvYXRlZCBDb250ZW50XG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmRyb3Bkb3duID4gLnRleHQgPiBbY2xhc3MqPVwicmlnaHQgZmxvYXRlZFwiXSxcbi51aS5kcm9wZG93biAubWVudSAuaXRlbSA+IFtjbGFzcyo9XCJyaWdodCBmbG9hdGVkXCJdIHtcbiAgZmxvYXQ6IHJpZ2h0ICFpbXBvcnRhbnQ7XG4gIG1hcmdpbi1yaWdodDogMGVtICFpbXBvcnRhbnQ7XG4gIG1hcmdpbi1sZWZ0OiAxZW0gIWltcG9ydGFudDtcbn1cbi51aS5kcm9wZG93biA+IC50ZXh0ID4gW2NsYXNzKj1cImxlZnQgZmxvYXRlZFwiXSxcbi51aS5kcm9wZG93biAubWVudSAuaXRlbSA+IFtjbGFzcyo9XCJsZWZ0IGZsb2F0ZWRcIl0ge1xuICBmbG9hdDogbGVmdCAhaW1wb3J0YW50O1xuICBtYXJnaW4tbGVmdDogMGVtICFpbXBvcnRhbnQ7XG4gIG1hcmdpbi1yaWdodDogMWVtICFpbXBvcnRhbnQ7XG59XG4udWkuZHJvcGRvd24gLm1lbnUgLml0ZW0gPiAuaWNvbi5mbG9hdGVkLFxuLnVpLmRyb3Bkb3duIC5tZW51IC5pdGVtID4gLmZsYWcuZmxvYXRlZCxcbi51aS5kcm9wZG93biAubWVudSAuaXRlbSA+IC5pbWFnZS5mbG9hdGVkLFxuLnVpLmRyb3Bkb3duIC5tZW51IC5pdGVtID4gaW1nLmZsb2F0ZWQge1xuICBtYXJnaW4tdG9wOiAwZW07XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gIE1lbnUgRGl2aWRlclxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5kcm9wZG93biAubWVudSA+IC5oZWFkZXIge1xuICBtYXJnaW46IDFyZW0gMHJlbSAwLjc1cmVtO1xuICBwYWRkaW5nOiAwZW0gMS4xcmVtO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg1KTtcbiAgZm9udC1zaXplOiAxLjFlbTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG59XG4udWkuZHJvcGRvd24gLm1lbnUgPiAuZGl2aWRlciB7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCByZ2JhKDM0LCAzNiwgMzgsIDAuMSk7XG4gIGhlaWdodDogMGVtO1xuICBtYXJnaW46IDAuNWVtIDBlbTtcbn1cbi51aS5kcm9wZG93biAubWVudSA+IC5pbnB1dCB7XG4gIHdpZHRoOiBhdXRvO1xuICBkaXNwbGF5OiBmbGV4O1xuICBtYXJnaW46IDEuMXJlbSAwLjhyZW07XG4gIG1pbi13aWR0aDogMTByZW07XG59XG4udWkuZHJvcGRvd24gLm1lbnUgPiAuaGVhZGVyICsgLmlucHV0IHtcbiAgbWFyZ2luLXRvcDogMGVtO1xufVxuLnVpLmRyb3Bkb3duIC5tZW51ID4gLmlucHV0Om5vdCgudHJhbnNwYXJlbnQpIGlucHV0IHtcbiAgcGFkZGluZzogMC41ZW0gMS40ZW07XG59XG4udWkuZHJvcGRvd24gLm1lbnUgPiAuaW5wdXQ6bm90KC50cmFuc3BhcmVudCkgLmJ1dHRvbixcbi51aS5kcm9wZG93biAubWVudSA+IC5pbnB1dDpub3QoLnRyYW5zcGFyZW50KSAuaWNvbixcbi51aS5kcm9wZG93biAubWVudSA+IC5pbnB1dDpub3QoLnRyYW5zcGFyZW50KSAubGFiZWwge1xuICBwYWRkaW5nLXRvcDogMC41ZW07XG4gIHBhZGRpbmctYm90dG9tOiAwLjVlbTtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS1cbiAgSXRlbSBEZXNjcmlwdGlvblxuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkuZHJvcGRvd24gPiAudGV4dCA+IC5kZXNjcmlwdGlvbixcbi51aS5kcm9wZG93biAubWVudSA+IC5pdGVtID4gLmRlc2NyaXB0aW9uIHtcbiAgZmxvYXQ6IHJpZ2h0O1xuICBtYXJnaW46IDBlbSAwZW0gMGVtIDFlbTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC40KTtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBNZXNzYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5kcm9wZG93biAubWVudSA+IC5tZXNzYWdlIHtcbiAgcGFkZGluZzogMC44cmVtIDEuMXJlbTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbn1cbi51aS5kcm9wZG93biAubWVudSA+IC5tZXNzYWdlOm5vdCgudWkpIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC40KTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBTdWIgTWVudVxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5kcm9wZG93biAubWVudSAubWVudSB7XG4gIHRvcDogMCUgIWltcG9ydGFudDtcbiAgbGVmdDogMTAwJSAhaW1wb3J0YW50O1xuICByaWdodDogYXV0byAhaW1wb3J0YW50O1xuICBtYXJnaW46IDBlbSAwZW0gMGVtIC0wLjVlbSAhaW1wb3J0YW50O1xuICBib3JkZXItcmFkaXVzOiAwLjRyZW0gIWltcG9ydGFudDtcbiAgei1pbmRleDogMjEgIWltcG9ydGFudDtcbn1cbi8qIEhpZGUgQXJyb3cgKi9cbi51aS5kcm9wZG93biAubWVudSAubWVudTphZnRlciB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICBTdWIgRWxlbWVudHNcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBJY29ucyAvIEZsYWdzIC8gTGFiZWxzIC8gSW1hZ2UgKi9cbi51aS5kcm9wZG93biA+IC50ZXh0ID4gLmljb24sXG4udWkuZHJvcGRvd24gPiAudGV4dCA+IC5sYWJlbCxcbi51aS5kcm9wZG93biA+IC50ZXh0ID4gLmZsYWcsXG4udWkuZHJvcGRvd24gPiAudGV4dCA+IGltZyxcbi51aS5kcm9wZG93biA+IC50ZXh0ID4gLmltYWdlIHtcbiAgbWFyZ2luLXRvcDogMGVtO1xufVxuLnVpLmRyb3Bkb3duIC5tZW51ID4gLml0ZW0gPiAuaWNvbixcbi51aS5kcm9wZG93biAubWVudSA+IC5pdGVtID4gLmxhYmVsLFxuLnVpLmRyb3Bkb3duIC5tZW51ID4gLml0ZW0gPiAuZmxhZyxcbi51aS5kcm9wZG93biAubWVudSA+IC5pdGVtID4gLmltYWdlLFxuLnVpLmRyb3Bkb3duIC5tZW51ID4gLml0ZW0gPiBpbWcge1xuICBtYXJnaW4tdG9wOiAwZW07XG59XG4udWkuZHJvcGRvd24gPiAudGV4dCA+IC5pY29uLFxuLnVpLmRyb3Bkb3duID4gLnRleHQgPiAubGFiZWwsXG4udWkuZHJvcGRvd24gPiAudGV4dCA+IC5mbGFnLFxuLnVpLmRyb3Bkb3duID4gLnRleHQgPiBpbWcsXG4udWkuZHJvcGRvd24gPiAudGV4dCA+IC5pbWFnZSxcbi51aS5kcm9wZG93biAubWVudSA+IC5pdGVtID4gLmljb24sXG4udWkuZHJvcGRvd24gLm1lbnUgPiAuaXRlbSA+IC5sYWJlbCxcbi51aS5kcm9wZG93biAubWVudSA+IC5pdGVtID4gLmZsYWcsXG4udWkuZHJvcGRvd24gLm1lbnUgPiAuaXRlbSA+IC5pbWFnZSxcbi51aS5kcm9wZG93biAubWVudSA+IC5pdGVtID4gaW1nIHtcbiAgbWFyZ2luLWxlZnQ6IDBlbTtcbiAgZmxvYXQ6IG5vbmU7XG4gIG1hcmdpbi1yaWdodDogMC44cmVtO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBJbWFnZVxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5kcm9wZG93biA+IC50ZXh0ID4gaW1nLFxuLnVpLmRyb3Bkb3duID4gLnRleHQgPiAuaW1hZ2UsXG4udWkuZHJvcGRvd24gLm1lbnUgPiAuaXRlbSA+IC5pbWFnZSxcbi51aS5kcm9wZG93biAubWVudSA+IC5pdGVtID4gaW1nIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICB3aWR0aDogYXV0bztcbiAgbWF4LWhlaWdodDogMmVtO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIENvdXBsaW5nXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgICAgTWVudVxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFJlbW92ZSBNZW51IEl0ZW0gRGl2aWRlciAqL1xuLnVpLmRyb3Bkb3duIC51aS5tZW51ID4gLml0ZW06YmVmb3JlLFxuLnVpLm1lbnUgLnVpLmRyb3Bkb3duIC5tZW51ID4gLml0ZW06YmVmb3JlIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi8qIFByZXZlbnQgTWVudSBJdGVtIEJvcmRlciAqL1xuLnVpLm1lbnUgLnVpLmRyb3Bkb3duIC5tZW51IC5hY3RpdmUuaXRlbSB7XG4gIGJvcmRlci1sZWZ0OiBub25lO1xufVxuLyogQXV0b21hdGljYWxseSBmbG9hdCBkcm9wZG93biBtZW51IHJpZ2h0IG9uIGxhc3QgbWVudSBpdGVtICovXG4udWkubWVudSAucmlnaHQubWVudSAuZHJvcGRvd246bGFzdC1jaGlsZCAubWVudSxcbi51aS5tZW51IC5yaWdodC5kcm9wZG93bi5pdGVtIC5tZW51LFxuLnVpLmJ1dHRvbnMgPiAudWkuZHJvcGRvd246bGFzdC1jaGlsZCAubWVudSB7XG4gIGxlZnQ6IGF1dG87XG4gIHJpZ2h0OiAwZW07XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgICBMYWJlbFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERyb3Bkb3duIE1lbnUgKi9cbi51aS5sYWJlbC5kcm9wZG93biAubWVudSB7XG4gIG1pbi13aWR0aDogMTAwJTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgQnV0dG9uXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogTm8gTWFyZ2luIE9uIEljb24gQnV0dG9uICovXG4udWkuZHJvcGRvd24uaWNvbi5idXR0b24gPiAuZHJvcGRvd24uaWNvbiB7XG4gIG1hcmdpbjogMGVtO1xufVxuLnVpLmJ1dHRvbi5kcm9wZG93biAubWVudSB7XG4gIG1pbi13aWR0aDogMTAwJTtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgIFR5cGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgIFNlbGVjdGlvblxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpc3BsYXlzIGxpa2UgYSBzZWxlY3QgYm94ICovXG4udWkuc2VsZWN0aW9uLmRyb3Bkb3duIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XG4gIGxpbmUtaGVpZ2h0OiAxZW07XG4gIHdoaXRlLXNwYWNlOiBub3JtYWw7XG4gIG91dGxpbmU6IDA7XG4gIHRyYW5zZm9ybTogcm90YXRlWigwZGVnKTtcbiAgbWluLXdpZHRoOiAxNGVtO1xuICBtaW4taGVpZ2h0OiAzLjMxNDI4NTcxZW07XG4gIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcGFkZGluZzogMS4xZW0gMi41ZW0gMS4xZW0gMS40ZW07XG4gIGNvbG9yOiAjMzMzMzMzO1xuICBib3gtc2hhZG93OiBub25lO1xuICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpO1xuICBib3JkZXItcmFkaXVzOiAwLjRyZW07XG4gIHRyYW5zaXRpb246IGJveC1zaGFkb3cgMC4xcyBlYXNlLCB3aWR0aCAwLjFzIGVhc2U7XG59XG4udWkuc2VsZWN0aW9uLmRyb3Bkb3duLnZpc2libGUsXG4udWkuc2VsZWN0aW9uLmRyb3Bkb3duLmFjdGl2ZSB7XG4gIHotaW5kZXg6IDEwO1xufVxuc2VsZWN0LnVpLmRyb3Bkb3duIHtcbiAgaGVpZ2h0OiAzOHB4O1xuICBwYWRkaW5nOiAwLjVlbTtcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgzNCwgMzYsIDM4LCAwLjE1KTtcbiAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbn1cbi51aS5zZWxlY3Rpb24uZHJvcGRvd24gPiAuc2VhcmNoLmljb24sXG4udWkuc2VsZWN0aW9uLmRyb3Bkb3duID4gLmRlbGV0ZS5pY29uLFxuLnVpLnNlbGVjdGlvbi5kcm9wZG93biA+IC5kcm9wZG93bi5pY29uIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiBhdXRvO1xuICBoZWlnaHQ6IGF1dG87XG4gIGxpbmUtaGVpZ2h0OiAxLjIxNDI4NTcxZW07XG4gIHRvcDogMS4xZW07XG4gIHJpZ2h0OiAxLjRlbTtcbiAgei1pbmRleDogMztcbiAgbWFyZ2luOiAtMS4xZW07XG4gIHBhZGRpbmc6IDEuMWVtO1xuICBvcGFjaXR5OiAwLjg7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4xcyBlYXNlO1xufVxuLyogQ29tcGFjdCAqL1xuLnVpLmNvbXBhY3Quc2VsZWN0aW9uLmRyb3Bkb3duIHtcbiAgbWluLXdpZHRoOiAwcHg7XG59XG4vKiAgU2VsZWN0aW9uIE1lbnUgKi9cbi51aS5zZWxlY3Rpb24uZHJvcGRvd24gLm1lbnUge1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG4gIG92ZXJmbG93LXk6IGF1dG87XG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoO1xuICBib3JkZXItdG9wLXdpZHRoOiAwcHggIWltcG9ydGFudDtcbiAgd2lkdGg6IGF1dG87XG4gIG91dGxpbmU6IG5vbmU7XG4gIG1hcmdpbjogMHB4IC0xcHg7XG4gIG1pbi13aWR0aDogY2FsYygxMDAlICsgMnB4KTtcbiAgd2lkdGg6IGNhbGMoMTAwJSArIDJweCk7XG4gIGJvcmRlci1yYWRpdXM6IDBlbSAwZW0gMC40cmVtIDAuNHJlbTtcbiAgYm94LXNoYWRvdzogMHB4IDJweCAzcHggMHB4IHJnYmEoMzQsIDM2LCAzOCwgMC4xNSk7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4xcyBlYXNlO1xufVxuLnVpLnNlbGVjdGlvbi5kcm9wZG93biAubWVudTphZnRlcixcbi51aS5zZWxlY3Rpb24uZHJvcGRvd24gLm1lbnU6YmVmb3JlIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBNZXNzYWdlXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLnNlbGVjdGlvbi5kcm9wZG93biAubWVudSA+IC5tZXNzYWdlIHtcbiAgcGFkZGluZzogMC44cmVtIDEuMXJlbTtcbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgLnVpLnNlbGVjdGlvbi5kcm9wZG93biAubWVudSB7XG4gICAgbWF4LWhlaWdodDogOC4xcmVtO1xuICB9XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC51aS5zZWxlY3Rpb24uZHJvcGRvd24gLm1lbnUge1xuICAgIG1heC1oZWlnaHQ6IDEwLjhyZW07XG4gIH1cbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogOTkycHgpIHtcbiAgLnVpLnNlbGVjdGlvbi5kcm9wZG93biAubWVudSB7XG4gICAgbWF4LWhlaWdodDogMTYuMnJlbTtcbiAgfVxufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxOTIwcHgpIHtcbiAgLnVpLnNlbGVjdGlvbi5kcm9wZG93biAubWVudSB7XG4gICAgbWF4LWhlaWdodDogMjEuNnJlbTtcbiAgfVxufVxuLyogTWVudSBJdGVtICovXG4udWkuc2VsZWN0aW9uLmRyb3Bkb3duIC5tZW51ID4gLml0ZW0ge1xuICBib3JkZXItdG9wOiAxcHggc29saWQgI0ZBRkFGQTtcbiAgcGFkZGluZzogMC44cmVtIDEuMXJlbSAhaW1wb3J0YW50O1xuICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xuICB3b3JkLXdyYXA6IG5vcm1hbDtcbn1cbi8qIFVzZXIgSXRlbSAqL1xuLnVpLnNlbGVjdGlvbi5kcm9wZG93biAubWVudSA+IC5oaWRkZW4uYWRkaXRpb24uaXRlbSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4vKiBIb3ZlciAqL1xuLnVpLnNlbGVjdGlvbi5kcm9wZG93bjpob3ZlciB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgzNCwgMzYsIDM4LCAwLjM1KTtcbiAgYm94LXNoYWRvdzogbm9uZTtcbn1cbi8qIEFjdGl2ZSAqL1xuLnVpLnNlbGVjdGlvbi5hY3RpdmUuZHJvcGRvd24ge1xuICBib3JkZXItY29sb3I6ICM5NkM4REE7XG4gIGJveC1zaGFkb3c6IDBweCAycHggM3B4IDBweCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpO1xufVxuLnVpLnNlbGVjdGlvbi5hY3RpdmUuZHJvcGRvd24gLm1lbnUge1xuICBib3JkZXItY29sb3I6ICM5NkM4REE7XG4gIGJveC1zaGFkb3c6IDBweCAycHggM3B4IDBweCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpO1xufVxuLyogRm9jdXMgKi9cbi51aS5zZWxlY3Rpb24uZHJvcGRvd246Zm9jdXMge1xuICBib3JkZXItY29sb3I6ICM5NkM4REE7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG59XG4udWkuc2VsZWN0aW9uLmRyb3Bkb3duOmZvY3VzIC5tZW51IHtcbiAgYm9yZGVyLWNvbG9yOiAjOTZDOERBO1xuICBib3gtc2hhZG93OiAwcHggMnB4IDNweCAwcHggcmdiYSgzNCwgMzYsIDM4LCAwLjE1KTtcbn1cbi8qIFZpc2libGUgKi9cbi51aS5zZWxlY3Rpb24udmlzaWJsZS5kcm9wZG93biA+IC50ZXh0Om5vdCguZGVmYXVsdCkge1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjgpO1xufVxuLyogVmlzaWJsZSBIb3ZlciAqL1xuLnVpLnNlbGVjdGlvbi5hY3RpdmUuZHJvcGRvd246aG92ZXIge1xuICBib3JkZXItY29sb3I6ICM5NkM4REE7XG4gIGJveC1zaGFkb3c6IDBweCAycHggM3B4IDBweCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpO1xufVxuLnVpLnNlbGVjdGlvbi5hY3RpdmUuZHJvcGRvd246aG92ZXIgLm1lbnUge1xuICBib3JkZXItY29sb3I6ICM5NkM4REE7XG4gIGJveC1zaGFkb3c6IDBweCAycHggM3B4IDBweCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpO1xufVxuLyogRHJvcGRvd24gSWNvbiAqL1xuLnVpLmFjdGl2ZS5zZWxlY3Rpb24uZHJvcGRvd24gPiAuZHJvcGRvd24uaWNvbixcbi51aS52aXNpYmxlLnNlbGVjdGlvbi5kcm9wZG93biA+IC5kcm9wZG93bi5pY29uIHtcbiAgb3BhY2l0eTogMTtcbiAgei1pbmRleDogMztcbn1cbi8qIENvbm5lY3RpbmcgQm9yZGVyICovXG4udWkuYWN0aXZlLnNlbGVjdGlvbi5kcm9wZG93biB7XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDBlbSAhaW1wb3J0YW50O1xuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMGVtICFpbXBvcnRhbnQ7XG59XG4vKiBFbXB0eSBDb25uZWN0aW5nIEJvcmRlciAqL1xuLnVpLmFjdGl2ZS5lbXB0eS5zZWxlY3Rpb24uZHJvcGRvd24ge1xuICBib3JkZXItcmFkaXVzOiAwLjRyZW0gIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xufVxuLnVpLmFjdGl2ZS5lbXB0eS5zZWxlY3Rpb24uZHJvcGRvd24gLm1lbnUge1xuICBib3JkZXI6IG5vbmUgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgU2VhcmNoYWJsZVxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlYXJjaCBTZWxlY3Rpb24gKi9cbi51aS5zZWFyY2guZHJvcGRvd24ge1xuICBtaW4td2lkdGg6ICcnO1xufVxuLyogU2VhcmNoIERyb3Bkb3duICovXG4udWkuc2VhcmNoLmRyb3Bkb3duID4gaW5wdXQuc2VhcmNoIHtcbiAgYmFja2dyb3VuZDogbm9uZSB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICBib3JkZXI6IG5vbmUgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICBjdXJzb3I6IHRleHQ7XG4gIHRvcDogMGVtO1xuICBsZWZ0OiAxcHg7XG4gIHdpZHRoOiAxMDAlO1xuICBvdXRsaW5lOiBub25lO1xuICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMCk7XG4gIHBhZGRpbmc6IGluaGVyaXQ7XG59XG4vKiBUZXh0IExheWVyaW5nICovXG4udWkuc2VhcmNoLmRyb3Bkb3duID4gaW5wdXQuc2VhcmNoIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAyO1xufVxuLnVpLnNlYXJjaC5kcm9wZG93biA+IC50ZXh0IHtcbiAgY3Vyc29yOiB0ZXh0O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGxlZnQ6IDFweDtcbiAgei1pbmRleDogMztcbn1cbi8qIFNlYXJjaCBTZWxlY3Rpb24gKi9cbi51aS5zZWFyY2guc2VsZWN0aW9uLmRyb3Bkb3duID4gaW5wdXQuc2VhcmNoIHtcbiAgbGluZS1oZWlnaHQ6IDEuMjE0Mjg1NzFlbTtcbiAgcGFkZGluZzogMC45OTI4NTcxNGVtIDIuNWVtIDAuOTkyODU3MTRlbSAxLjRlbTtcbn1cbi8qIFVzZWQgdG8gc2l6ZSBtdWx0aSBzZWxlY3QgaW5wdXQgdG8gY2hhcmFjdGVyIHdpZHRoICovXG4udWkuc2VhcmNoLnNlbGVjdGlvbi5kcm9wZG93biA+IHNwYW4uc2l6ZXIge1xuICBsaW5lLWhlaWdodDogMS4yMTQyODU3MWVtO1xuICBwYWRkaW5nOiAwLjk5Mjg1NzE0ZW0gMi41ZW0gMC45OTI4NTcxNGVtIDEuNGVtO1xuICBkaXNwbGF5OiBub25lO1xuICB3aGl0ZS1zcGFjZTogcHJlO1xufVxuLyogQWN0aXZlL1Zpc2libGUgU2VhcmNoICovXG4udWkuc2VhcmNoLmRyb3Bkb3duLmFjdGl2ZSA+IGlucHV0LnNlYXJjaCxcbi51aS5zZWFyY2guZHJvcGRvd24udmlzaWJsZSA+IGlucHV0LnNlYXJjaCB7XG4gIGN1cnNvcjogYXV0bztcbn1cbi51aS5zZWFyY2guZHJvcGRvd24uYWN0aXZlID4gLnRleHQsXG4udWkuc2VhcmNoLmRyb3Bkb3duLnZpc2libGUgPiAudGV4dCB7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuLyogRmlsdGVyZWQgVGV4dCAqL1xuLnVpLmFjdGl2ZS5zZWFyY2guZHJvcGRvd24gaW5wdXQuc2VhcmNoOmZvY3VzICsgLnRleHQgLmljb24sXG4udWkuYWN0aXZlLnNlYXJjaC5kcm9wZG93biBpbnB1dC5zZWFyY2g6Zm9jdXMgKyAudGV4dCAuZmxhZyB7XG4gIG9wYWNpdHk6IDAuNDU7XG59XG4udWkuYWN0aXZlLnNlYXJjaC5kcm9wZG93biBpbnB1dC5zZWFyY2g6Zm9jdXMgKyAudGV4dCB7XG4gIGNvbG9yOiAjYTZhNmE2ICFpbXBvcnRhbnQ7XG59XG4vKiBTZWFyY2ggTWVudSAqL1xuLnVpLnNlYXJjaC5kcm9wZG93biAubWVudSB7XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgb3ZlcmZsb3cteTogYXV0bztcbiAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC51aS5zZWFyY2guZHJvcGRvd24gLm1lbnUge1xuICAgIG1heC1oZWlnaHQ6IDguMXJlbTtcbiAgfVxufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NjhweCkge1xuICAudWkuc2VhcmNoLmRyb3Bkb3duIC5tZW51IHtcbiAgICBtYXgtaGVpZ2h0OiAxMC44cmVtO1xuICB9XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDk5MnB4KSB7XG4gIC51aS5zZWFyY2guZHJvcGRvd24gLm1lbnUge1xuICAgIG1heC1oZWlnaHQ6IDE2LjJyZW07XG4gIH1cbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTkyMHB4KSB7XG4gIC51aS5zZWFyY2guZHJvcGRvd24gLm1lbnUge1xuICAgIG1heC1oZWlnaHQ6IDIxLjZyZW07XG4gIH1cbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBNdWx0aXBsZVxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE11bHRpcGxlIFNlbGVjdGlvbiAqL1xuLnVpLm11bHRpcGxlLmRyb3Bkb3duIHtcbiAgcGFkZGluZzogMC4zMzA5NTIzOGVtIDIuNWVtIDAuMzMwOTUyMzhlbSAwLjVlbTtcbn1cbi51aS5tdWx0aXBsZS5kcm9wZG93biAubWVudSB7XG4gIGN1cnNvcjogYXV0bztcbn1cbi8qIE11bHRpcGxlIFNlYXJjaCBTZWxlY3Rpb24gKi9cbi51aS5tdWx0aXBsZS5zZWFyY2guZHJvcGRvd24sXG4udWkubXVsdGlwbGUuc2VhcmNoLmRyb3Bkb3duID4gaW5wdXQuc2VhcmNoIHtcbiAgY3Vyc29yOiB0ZXh0O1xufVxuLyogU2VsZWN0aW9uIExhYmVsICovXG4udWkubXVsdGlwbGUuZHJvcGRvd24gPiAubGFiZWwge1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xuICBmb250LXNpemU6IDFlbTtcbiAgcGFkZGluZzogMC41ZW0gMC44ZW07XG4gIG1hcmdpbjogMC4ycmVtIDAuNHJlbSAwLjJyZW0gMGVtO1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggcmdiYSgzNCwgMzYsIDM4LCAwLjE1KSBpbnNldDtcbn1cbi8qIERyb3Bkb3duIEljb24gKi9cbi51aS5tdWx0aXBsZS5kcm9wZG93biAuZHJvcGRvd24uaWNvbiB7XG4gIG1hcmdpbjogJyc7XG4gIHBhZGRpbmc6ICcnO1xufVxuLyogVGV4dCAqL1xuLnVpLm11bHRpcGxlLmRyb3Bkb3duID4gLnRleHQge1xuICBwb3NpdGlvbjogc3RhdGljO1xuICBwYWRkaW5nOiAwO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIG1hcmdpbjogMC42NjE5MDQ3NmVtIDBlbSAwLjY2MTkwNDc2ZW0gMC45ZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjdlbTtcbn1cbi51aS5tdWx0aXBsZS5kcm9wZG93biA+IC5sYWJlbCB+IGlucHV0LnNlYXJjaCB7XG4gIG1hcmdpbi1sZWZ0OiAwLjJlbSAhaW1wb3J0YW50O1xufVxuLnVpLm11bHRpcGxlLmRyb3Bkb3duID4gLmxhYmVsIH4gLnRleHQge1xuICBkaXNwbGF5OiBub25lO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLVxuICBNdWx0aXBsZSBTZWFyY2hcbi0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFByb21wdCBUZXh0ICovXG4udWkubXVsdGlwbGUuc2VhcmNoLmRyb3Bkb3duID4gLnRleHQge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICBwYWRkaW5nOiBpbmhlcml0O1xuICBtYXJnaW46IDAuNjYxOTA0NzZlbSAwZW0gMC42NjE5MDQ3NmVtIDAuOWVtO1xuICBsaW5lLWhlaWdodDogMS43ZW07XG59XG4udWkubXVsdGlwbGUuc2VhcmNoLmRyb3Bkb3duID4gLmxhYmVsIH4gLnRleHQge1xuICBkaXNwbGF5OiBub25lO1xufVxuLyogU2VhcmNoICovXG4udWkubXVsdGlwbGUuc2VhcmNoLmRyb3Bkb3duID4gaW5wdXQuc2VhcmNoIHtcbiAgcG9zaXRpb246IHN0YXRpYztcbiAgcGFkZGluZzogMDtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBtYXJnaW46IDAuNjYxOTA0NzZlbSAwZW0gMC42NjE5MDQ3NmVtIDAuOWVtO1xuICB3aWR0aDogMi4yZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjdlbTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgSW5saW5lXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmlubGluZS5kcm9wZG93biB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBjb2xvcjogaW5oZXJpdDtcbn1cbi51aS5pbmxpbmUuZHJvcGRvd24gLmRyb3Bkb3duLmljb24ge1xuICBtYXJnaW46IDBlbSAwLjdlbSAwZW0gMC4zZW07XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbn1cbi51aS5pbmxpbmUuZHJvcGRvd24gPiAudGV4dCB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuLnVpLmlubGluZS5kcm9wZG93biAubWVudSB7XG4gIGN1cnNvcjogYXV0bztcbiAgbWFyZ2luLXRvcDogMC4zZW07XG4gIGJvcmRlci1yYWRpdXM6IDAuNHJlbTtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNZW51IEl0ZW0gQWN0aXZlICovXG4udWkuZHJvcGRvd24gLm1lbnUgLmFjdGl2ZS5pdGVtIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjk1KTtcbiAgYm94LXNoYWRvdzogbm9uZTtcbiAgei1pbmRleDogMTI7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1lbnUgSXRlbSBIb3ZlciAqL1xuLnVpLmRyb3Bkb3duIC5tZW51ID4gLml0ZW06aG92ZXIge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMDUpO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjk1KTtcbiAgei1pbmRleDogMTM7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGluZ1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5sb2FkaW5nLmRyb3Bkb3duID4gaS5pY29uIHtcbiAgaGVpZ2h0OiAxLjRlbSAhaW1wb3J0YW50O1xuICBwYWRkaW5nOiAxLjZlbSAxLjVlbSAhaW1wb3J0YW50O1xufVxuLnVpLmxvYWRpbmcuZHJvcGRvd24gPiBpLmljb246YmVmb3JlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBjb250ZW50OiAnJztcbiAgdG9wOiA1MCU7XG4gIGxlZnQ6IDUwJTtcbiAgbWFyZ2luOiAtMC42NWVtIDBlbSAwZW0gLTAuNjVlbTtcbiAgd2lkdGg6IDEuM2VtO1xuICBoZWlnaHQ6IDEuM2VtO1xuICBib3JkZXItcmFkaXVzOiA1MDByZW07XG4gIGJvcmRlcjogMC4yZW0gc29saWQgcmdiYSgwLCAwLCAwLCAwLjEpO1xufVxuLnVpLmxvYWRpbmcuZHJvcGRvd24gPiBpLmljb246YWZ0ZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGNvbnRlbnQ6ICcnO1xuICB0b3A6IDUwJTtcbiAgbGVmdDogNTAlO1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggdHJhbnNwYXJlbnQ7XG4gIG1hcmdpbjogLTAuNjVlbSAwZW0gMGVtIC0wLjY1ZW07XG4gIHdpZHRoOiAxLjNlbTtcbiAgaGVpZ2h0OiAxLjNlbTtcbiAgYW5pbWF0aW9uOiBkcm9wZG93bi1zcGluIDAuNnMgbGluZWFyO1xuICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgYm9yZGVyLXJhZGl1czogNTAwcmVtO1xuICBib3JkZXItY29sb3I6ICM3Njc2NzYgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1zdHlsZTogc29saWQ7XG4gIGJvcmRlci13aWR0aDogMC4yZW07XG59XG4vKiBDb3VwbGluZyAqL1xuLnVpLmxvYWRpbmcuZHJvcGRvd24uYnV0dG9uID4gaS5pY29uOmJlZm9yZSxcbi51aS5sb2FkaW5nLmRyb3Bkb3duLmJ1dHRvbiA+IGkuaWNvbjphZnRlciB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5Aa2V5ZnJhbWVzIGRyb3Bkb3duLXNwaW4ge1xuICBmcm9tIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcbiAgfVxuICB0byB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTtcbiAgfVxufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBEZWZhdWx0IFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmRyb3Bkb3duOm5vdCguYnV0dG9uKSA+IC5kZWZhdWx0LnRleHQsXG4udWkuZGVmYXVsdC5kcm9wZG93bjpub3QoLmJ1dHRvbikgPiAudGV4dCB7XG4gIGNvbG9yOiAjZjJmMmYyO1xufVxuLnVpLmRyb3Bkb3duOm5vdCguYnV0dG9uKSA+IGlucHV0OmZvY3VzICsgLmRlZmF1bHQudGV4dCxcbi51aS5kZWZhdWx0LmRyb3Bkb3duOm5vdCguYnV0dG9uKSA+IGlucHV0OmZvY3VzICsgLnRleHQge1xuICBjb2xvcjogI2E2YTZhNjtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgTG9hZGluZ1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkubG9hZGluZy5kcm9wZG93biA+IC50ZXh0IHtcbiAgdHJhbnNpdGlvbjogbm9uZTtcbn1cbi8qIFVzZWQgVG8gQ2hlY2sgUG9zaXRpb24gKi9cbi51aS5kcm9wZG93biAubG9hZGluZy5tZW51IHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgei1pbmRleDogLTE7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgS2V5Ym9hcmQgU2VsZWN0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlbGVjdGVkIEl0ZW0gKi9cbi51aS5kcm9wZG93bi5zZWxlY3RlZCxcbi51aS5kcm9wZG93biAubWVudSAuc2VsZWN0ZWQuaXRlbSB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4wMyk7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuOTUpO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNlYXJjaCBGaWx0ZXJlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGaWx0ZXJlZCBJdGVtICovXG4udWkuZHJvcGRvd24gPiAuZmlsdGVyZWQudGV4dCB7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbn1cbi51aS5kcm9wZG93biAuZmlsdGVyZWQuaXRlbSB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRXJyb3Jcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmRyb3Bkb3duLmVycm9yLFxuLnVpLmRyb3Bkb3duLmVycm9yID4gLnRleHQsXG4udWkuZHJvcGRvd24uZXJyb3IgPiAuZGVmYXVsdC50ZXh0IHtcbiAgY29sb3I6ICM5RjNBMzg7XG59XG4udWkuc2VsZWN0aW9uLmRyb3Bkb3duLmVycm9yIHtcbiAgYmFja2dyb3VuZDogI0ZGRjZGNjtcbiAgYm9yZGVyLWNvbG9yOiAjRTBCNEI0O1xufVxuLnVpLnNlbGVjdGlvbi5kcm9wZG93bi5lcnJvcjpob3ZlciB7XG4gIGJvcmRlci1jb2xvcjogI0UwQjRCNDtcbn1cbi51aS5kcm9wZG93bi5lcnJvciA+IC5tZW51LFxuLnVpLmRyb3Bkb3duLmVycm9yID4gLm1lbnUgLm1lbnUge1xuICBib3JkZXItY29sb3I6ICNFMEI0QjQ7XG59XG4udWkuZHJvcGRvd24uZXJyb3IgPiAubWVudSA+IC5pdGVtIHtcbiAgY29sb3I6ICM5RjNBMzg7XG59XG4udWkubXVsdGlwbGUuc2VsZWN0aW9uLmVycm9yLmRyb3Bkb3duID4gLmxhYmVsIHtcbiAgYm9yZGVyLWNvbG9yOiAjRTBCNEI0O1xufVxuLyogSXRlbSBIb3ZlciAqL1xuLnVpLmRyb3Bkb3duLmVycm9yID4gLm1lbnUgPiAuaXRlbTpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGRkYyRjI7XG59XG4vKiBJdGVtIEFjdGl2ZSAqL1xuLnVpLmRyb3Bkb3duLmVycm9yID4gLm1lbnUgLmFjdGl2ZS5pdGVtIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0ZEQ0ZDRjtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlzYWJsZWQgKi9cbi51aS5kaXNhYmxlZC5kcm9wZG93bixcbi51aS5kcm9wZG93biAubWVudSA+IC5kaXNhYmxlZC5pdGVtIHtcbiAgY3Vyc29yOiBkZWZhdWx0O1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgb3BhY2l0eTogMC40NTtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFZhcmlhdGlvbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgRGlyZWN0aW9uXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogRmx5b3V0IERpcmVjdGlvbiAqL1xuLnVpLmRyb3Bkb3duIC5tZW51IHtcbiAgbGVmdDogMHB4O1xufVxuLyogRGVmYXVsdCBTaWRlIChSaWdodCkgKi9cbi51aS5kcm9wZG93biAucmlnaHQubWVudSA+IC5tZW51LFxuLnVpLmRyb3Bkb3duIC5tZW51IC5yaWdodC5tZW51IHtcbiAgbGVmdDogMTAwJSAhaW1wb3J0YW50O1xuICByaWdodDogYXV0byAhaW1wb3J0YW50O1xuICBib3JkZXItcmFkaXVzOiAwLjRyZW0gIWltcG9ydGFudDtcbn1cbi8qIExlZnQgRmx5b3V0IE1lbnUgKi9cbi51aS5kcm9wZG93biA+IC5sZWZ0Lm1lbnUgLm1lbnUsXG4udWkuZHJvcGRvd24gLm1lbnUgLmxlZnQubWVudSB7XG4gIGxlZnQ6IGF1dG8gIWltcG9ydGFudDtcbiAgcmlnaHQ6IDEwMCUgIWltcG9ydGFudDtcbiAgYm9yZGVyLXJhZGl1czogMC40cmVtICFpbXBvcnRhbnQ7XG59XG4udWkuZHJvcGRvd24gLml0ZW0gLmxlZnQuZHJvcGRvd24uaWNvbixcbi51aS5kcm9wZG93biAubGVmdC5tZW51IC5pdGVtIC5kcm9wZG93bi5pY29uIHtcbiAgd2lkdGg6IGF1dG87XG4gIGZsb2F0OiBsZWZ0O1xuICBtYXJnaW46IDBlbSAwLjhyZW0gMGVtIDBlbTtcbn1cbi51aS5kcm9wZG93biAuaXRlbSAubGVmdC5kcm9wZG93bi5pY29uLFxuLnVpLmRyb3Bkb3duIC5sZWZ0Lm1lbnUgLml0ZW0gLmRyb3Bkb3duLmljb24ge1xuICB3aWR0aDogYXV0bztcbiAgZmxvYXQ6IGxlZnQ7XG4gIG1hcmdpbjogMGVtIDAuOHJlbSAwZW0gMGVtO1xufVxuLnVpLmRyb3Bkb3duIC5pdGVtIC5sZWZ0LmRyb3Bkb3duLmljb24gKyAudGV4dCxcbi51aS5kcm9wZG93biAubGVmdC5tZW51IC5pdGVtIC5kcm9wZG93bi5pY29uICsgLnRleHQge1xuICBtYXJnaW4tbGVmdDogMWVtO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBVcHdhcmRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBVcHdhcmQgTWFpbiBNZW51ICovXG4udWkudXB3YXJkLmRyb3Bkb3duID4gLm1lbnUge1xuICB0b3A6IGF1dG87XG4gIGJvdHRvbTogMTAwJTtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAzcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4wOCk7XG4gIGJvcmRlci1yYWRpdXM6IDAuNHJlbSAwLjRyZW0gMGVtIDBlbTtcbn1cbi8qIFVwd2FyZCBTdWIgTWVudSAqL1xuLnVpLmRyb3Bkb3duIC51cHdhcmQubWVudSB7XG4gIHRvcDogYXV0byAhaW1wb3J0YW50O1xuICBib3R0b206IDAgIWltcG9ydGFudDtcbn1cbi8qIEFjdGl2ZSBVcHdhcmQgKi9cbi51aS5zaW1wbGUudXB3YXJkLmFjdGl2ZS5kcm9wZG93bixcbi51aS5zaW1wbGUudXB3YXJkLmRyb3Bkb3duOmhvdmVyIHtcbiAgYm9yZGVyLXJhZGl1czogMC40cmVtIDAuNHJlbSAwZW0gMGVtICFpbXBvcnRhbnQ7XG59XG4udWkudXB3YXJkLmRyb3Bkb3duLmJ1dHRvbjpub3QoLnBvaW50aW5nKTpub3QoLmZsb2F0aW5nKS5hY3RpdmUge1xuICBib3JkZXItcmFkaXVzOiAwLjRyZW0gMC40cmVtIDBlbSAwZW07XG59XG4vKiBTZWxlY3Rpb24gKi9cbi51aS51cHdhcmQuc2VsZWN0aW9uLmRyb3Bkb3duIC5tZW51IHtcbiAgYm9yZGVyLXRvcC13aWR0aDogMXB4ICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1ib3R0b20td2lkdGg6IDBweCAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiAwcHggLTJweCAzcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4wOCk7XG59XG4udWkudXB3YXJkLnNlbGVjdGlvbi5kcm9wZG93bjpob3ZlciB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMnB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMDUpO1xufVxuLyogQWN0aXZlIFVwd2FyZCAqL1xuLnVpLmFjdGl2ZS51cHdhcmQuc2VsZWN0aW9uLmRyb3Bkb3duIHtcbiAgYm9yZGVyLXJhZGl1czogMGVtIDBlbSAwLjRyZW0gMC40cmVtICFpbXBvcnRhbnQ7XG59XG4vKiBWaXNpYmxlIFVwd2FyZCAqL1xuLnVpLnVwd2FyZC5zZWxlY3Rpb24uZHJvcGRvd24udmlzaWJsZSB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggM3B4IDBweCByZ2JhKDAsIDAsIDAsIDAuMDgpO1xuICBib3JkZXItcmFkaXVzOiAwZW0gMGVtIDAuNHJlbSAwLjRyZW0gIWltcG9ydGFudDtcbn1cbi8qIFZpc2libGUgSG92ZXIgVXB3YXJkICovXG4udWkudXB3YXJkLmFjdGl2ZS5zZWxlY3Rpb24uZHJvcGRvd246aG92ZXIge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDNweCAwcHggcmdiYSgwLCAwLCAwLCAwLjA1KTtcbn1cbi51aS51cHdhcmQuYWN0aXZlLnNlbGVjdGlvbi5kcm9wZG93bjpob3ZlciAubWVudSB7XG4gIGJveC1zaGFkb3c6IDBweCAtMnB4IDNweCAwcHggcmdiYSgwLCAwLCAwLCAwLjA4KTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgU2ltcGxlXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogIFNlbGVjdGlvbiBNZW51ICovXG4udWkuc2Nyb2xsaW5nLmRyb3Bkb3duIC5tZW51LFxuLnVpLmRyb3Bkb3duIC5zY3JvbGxpbmcubWVudSB7XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgb3ZlcmZsb3cteTogYXV0bztcbn1cbi51aS5zY3JvbGxpbmcuZHJvcGRvd24gLm1lbnUge1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG4gIG92ZXJmbG93LXk6IGF1dG87XG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoO1xuICBtaW4td2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgd2lkdGg6IGF1dG8gIWltcG9ydGFudDtcbn1cbi51aS5kcm9wZG93biAuc2Nyb2xsaW5nLm1lbnUge1xuICBwb3NpdGlvbjogc3RhdGljO1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICBib3JkZXI6IG5vbmU7XG4gIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgYm9yZGVyLXJhZGl1czogMCAhaW1wb3J0YW50O1xuICBtYXJnaW46IDAgIWltcG9ydGFudDtcbiAgbWluLXdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiBhdXRvICFpbXBvcnRhbnQ7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpO1xufVxuLnVpLnNjcm9sbGluZy5kcm9wZG93biAubWVudSAuaXRlbS5pdGVtLml0ZW0sXG4udWkuZHJvcGRvd24gLnNjcm9sbGluZy5tZW51ID4gLml0ZW0uaXRlbS5pdGVtIHtcbiAgYm9yZGVyLXRvcDogbm9uZTtcbiAgcGFkZGluZy1yaWdodDogY2FsYygxLjFyZW0gKyAxN3B4KSAhaW1wb3J0YW50O1xufVxuLnVpLnNjcm9sbGluZy5kcm9wZG93biAubWVudSAuaXRlbTpmaXJzdC1jaGlsZCxcbi51aS5kcm9wZG93biAuc2Nyb2xsaW5nLm1lbnUgLml0ZW06Zmlyc3QtY2hpbGQge1xuICBib3JkZXItdG9wOiBub25lO1xufVxuLnVpLmRyb3Bkb3duID4gLmFuaW1hdGluZy5tZW51IC5zY3JvbGxpbmcubWVudSxcbi51aS5kcm9wZG93biA+IC52aXNpYmxlLm1lbnUgLnNjcm9sbGluZy5tZW51IHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG4vKiBTY3JvbGxiYXIgaW4gSUUgKi9cbkBtZWRpYSBhbGwgYW5kICgtbXMtaGlnaC1jb250cmFzdDogbm9uZSkge1xuICAudWkuc2Nyb2xsaW5nLmRyb3Bkb3duIC5tZW51LFxuICAudWkuZHJvcGRvd24gLnNjcm9sbGluZy5tZW51IHtcbiAgICBtaW4td2lkdGg6IGNhbGMoMTAwJSAtIDE3cHgpO1xuICB9XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC51aS5zY3JvbGxpbmcuZHJvcGRvd24gLm1lbnUsXG4gIC51aS5kcm9wZG93biAuc2Nyb2xsaW5nLm1lbnUge1xuICAgIG1heC1oZWlnaHQ6IDEwLjRyZW07XG4gIH1cbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLnVpLnNjcm9sbGluZy5kcm9wZG93biAubWVudSxcbiAgLnVpLmRyb3Bkb3duIC5zY3JvbGxpbmcubWVudSB7XG4gICAgbWF4LWhlaWdodDogMTUuNnJlbTtcbiAgfVxufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA5OTJweCkge1xuICAudWkuc2Nyb2xsaW5nLmRyb3Bkb3duIC5tZW51LFxuICAudWkuZHJvcGRvd24gLnNjcm9sbGluZy5tZW51IHtcbiAgICBtYXgtaGVpZ2h0OiAyMC44cmVtO1xuICB9XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDE5MjBweCkge1xuICAudWkuc2Nyb2xsaW5nLmRyb3Bkb3duIC5tZW51LFxuICAudWkuZHJvcGRvd24gLnNjcm9sbGluZy5tZW51IHtcbiAgICBtYXgtaGVpZ2h0OiAyMC44cmVtO1xuICB9XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIFNpbXBsZVxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpc3BsYXlzIHdpdGhvdXQgamF2YXNjcmlwdCAqL1xuLnVpLnNpbXBsZS5kcm9wZG93biAubWVudTpiZWZvcmUsXG4udWkuc2ltcGxlLmRyb3Bkb3duIC5tZW51OmFmdGVyIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi51aS5zaW1wbGUuZHJvcGRvd24gLm1lbnUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0b3A6IC05OTk5cHggIWltcG9ydGFudDtcbiAgb3BhY2l0eTogMDtcbiAgd2lkdGg6IDA7XG4gIGhlaWdodDogMDtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjFzIGVhc2U7XG59XG4udWkuc2ltcGxlLmFjdGl2ZS5kcm9wZG93bixcbi51aS5zaW1wbGUuZHJvcGRvd246aG92ZXIge1xuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwZW0gIWltcG9ydGFudDtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDBlbSAhaW1wb3J0YW50O1xufVxuLnVpLnNpbXBsZS5hY3RpdmUuZHJvcGRvd24gPiAubWVudSxcbi51aS5zaW1wbGUuZHJvcGRvd246aG92ZXIgPiAubWVudSB7XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xuICB3aWR0aDogYXV0bztcbiAgaGVpZ2h0OiBhdXRvO1xuICB0b3A6IDEwMCUgIWltcG9ydGFudDtcbiAgb3BhY2l0eTogMTtcbn1cbi51aS5zaW1wbGUuZHJvcGRvd24gPiAubWVudSA+IC5pdGVtOmFjdGl2ZSA+IC5tZW51LFxuLnVpLnNpbXBsZS5kcm9wZG93bjpob3ZlciA+IC5tZW51ID4gLml0ZW06aG92ZXIgPiAubWVudSB7XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xuICB3aWR0aDogYXV0bztcbiAgaGVpZ2h0OiBhdXRvO1xuICB0b3A6IDAlICFpbXBvcnRhbnQ7XG4gIGxlZnQ6IDEwMCUgIWltcG9ydGFudDtcbiAgb3BhY2l0eTogMTtcbn1cbi51aS5zaW1wbGUuZGlzYWJsZWQuZHJvcGRvd246aG92ZXIgLm1lbnUge1xuICBkaXNwbGF5OiBub25lO1xuICBoZWlnaHQ6IDBweDtcbiAgd2lkdGg6IDBweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cbi8qIFZpc2libGUgKi9cbi51aS5zaW1wbGUudmlzaWJsZS5kcm9wZG93biA+IC5tZW51IHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgICBGbHVpZFxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5mbHVpZC5kcm9wZG93biB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMTAwJTtcbiAgbWluLXdpZHRoOiAwZW07XG59XG4udWkuZmx1aWQuZHJvcGRvd24gPiAuZHJvcGRvd24uaWNvbiB7XG4gIGZsb2F0OiByaWdodDtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBGbG9hdGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5mbG9hdGluZy5kcm9wZG93biAubWVudSB7XG4gIGxlZnQ6IDA7XG4gIHJpZ2h0OiBhdXRvO1xuICBib3gtc2hhZG93OiAwcHggMnB4IDRweCAwcHggcmdiYSgzNCwgMzYsIDM4LCAwLjEyKSwgMHB4IDJweCAxMHB4IDBweCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDAuNHJlbSAhaW1wb3J0YW50O1xufVxuLnVpLmZsb2F0aW5nLmRyb3Bkb3duID4gLm1lbnUge1xuICBtYXJnaW4tdG9wOiAwLjVlbSAhaW1wb3J0YW50O1xuICBib3JkZXItcmFkaXVzOiAwLjRyZW0gIWltcG9ydGFudDtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgUG9pbnRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkucG9pbnRpbmcuZHJvcGRvd24gPiAubWVudSB7XG4gIHRvcDogMTAwJTtcbiAgbWFyZ2luLXRvcDogMC44cmVtO1xuICBib3JkZXItcmFkaXVzOiAwLjRyZW07XG59XG4udWkucG9pbnRpbmcuZHJvcGRvd24gPiAubWVudTphZnRlciB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICBjb250ZW50OiAnJztcbiAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICB3aWR0aDogMC43ZW07XG4gIGhlaWdodDogMC43ZW07XG4gIGJveC1zaGFkb3c6IC0xcHggLTFweCAwcHggMXB4IHJnYmEoMzQsIDM2LCAzOCwgMC4xNSk7XG4gIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gIHotaW5kZXg6IDI7XG59XG4udWkucG9pbnRpbmcuZHJvcGRvd24gPiAubWVudTphZnRlciB7XG4gIHRvcDogLTAuMzVlbTtcbiAgbGVmdDogNTAlO1xuICBtYXJnaW46IDBlbSAwZW0gMGVtIC0wLjM1ZW07XG59XG4vKiBUb3AgTGVmdCBQb2ludGluZyAqL1xuLnVpLnRvcC5sZWZ0LnBvaW50aW5nLmRyb3Bkb3duID4gLm1lbnUge1xuICB0b3A6IDEwMCU7XG4gIGJvdHRvbTogYXV0bztcbiAgbGVmdDogMCU7XG4gIHJpZ2h0OiBhdXRvO1xuICBtYXJnaW46IDFlbSAwZW0gMGVtO1xufVxuLnVpLnRvcC5sZWZ0LnBvaW50aW5nLmRyb3Bkb3duID4gLm1lbnUge1xuICB0b3A6IDEwMCU7XG4gIGJvdHRvbTogYXV0bztcbiAgbGVmdDogMCU7XG4gIHJpZ2h0OiBhdXRvO1xuICBtYXJnaW46IDFlbSAwZW0gMGVtO1xufVxuLnVpLnRvcC5sZWZ0LnBvaW50aW5nLmRyb3Bkb3duID4gLm1lbnU6YWZ0ZXIge1xuICB0b3A6IC0wLjM1ZW07XG4gIGxlZnQ6IDFlbTtcbiAgcmlnaHQ6IGF1dG87XG4gIG1hcmdpbjogMGVtO1xuICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG59XG4vKiBUb3AgUmlnaHQgIFBvaW50aW5nICovXG4udWkudG9wLnJpZ2h0LnBvaW50aW5nLmRyb3Bkb3duID4gLm1lbnUge1xuICB0b3A6IDEwMCU7XG4gIGJvdHRvbTogYXV0bztcbiAgcmlnaHQ6IDAlO1xuICBsZWZ0OiBhdXRvO1xuICBtYXJnaW46IDFlbSAwZW0gMGVtO1xufVxuLnVpLnRvcC5yaWdodC5wb2ludGluZy5kcm9wZG93biA+IC5tZW51OmFmdGVyIHtcbiAgdG9wOiAtMC4zNWVtO1xuICBsZWZ0OiBhdXRvO1xuICByaWdodDogMWVtO1xuICBtYXJnaW46IDBlbTtcbiAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xufVxuLyogTGVmdCBQb2ludGluZyAqL1xuLnVpLmxlZnQucG9pbnRpbmcuZHJvcGRvd24gPiAubWVudSB7XG4gIHRvcDogMCU7XG4gIGxlZnQ6IDEwMCU7XG4gIHJpZ2h0OiBhdXRvO1xuICBtYXJnaW46IDBlbSAwZW0gMGVtIDFlbTtcbn1cbi51aS5sZWZ0LnBvaW50aW5nLmRyb3Bkb3duID4gLm1lbnU6YWZ0ZXIge1xuICB0b3A6IDFlbTtcbiAgbGVmdDogLTAuMzVlbTtcbiAgbWFyZ2luOiAwZW0gMGVtIDBlbSAwZW07XG4gIHRyYW5zZm9ybTogcm90YXRlKC00NWRlZyk7XG59XG4vKiBSaWdodCBQb2ludGluZyAqL1xuLnVpLnJpZ2h0LnBvaW50aW5nLmRyb3Bkb3duID4gLm1lbnUge1xuICB0b3A6IDAlO1xuICBsZWZ0OiBhdXRvO1xuICByaWdodDogMTAwJTtcbiAgbWFyZ2luOiAwZW0gMWVtIDBlbSAwZW07XG59XG4udWkucmlnaHQucG9pbnRpbmcuZHJvcGRvd24gPiAubWVudTphZnRlciB7XG4gIHRvcDogMWVtO1xuICBsZWZ0OiBhdXRvO1xuICByaWdodDogLTAuMzVlbTtcbiAgbWFyZ2luOiAwZW0gMGVtIDBlbSAwZW07XG4gIHRyYW5zZm9ybTogcm90YXRlKDEzNWRlZyk7XG59XG4vKiBCb3R0b20gUG9pbnRpbmcgKi9cbi51aS5ib3R0b20ucG9pbnRpbmcuZHJvcGRvd24gPiAubWVudSB7XG4gIHRvcDogYXV0bztcbiAgYm90dG9tOiAxMDAlO1xuICBsZWZ0OiAwJTtcbiAgcmlnaHQ6IGF1dG87XG4gIG1hcmdpbjogMGVtIDBlbSAxZW07XG59XG4udWkuYm90dG9tLnBvaW50aW5nLmRyb3Bkb3duID4gLm1lbnU6YWZ0ZXIge1xuICB0b3A6IGF1dG87XG4gIGJvdHRvbTogLTAuMzVlbTtcbiAgcmlnaHQ6IGF1dG87XG4gIG1hcmdpbjogMGVtO1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgtMTM1ZGVnKTtcbn1cbi8qIFJldmVyc2UgU3ViLU1lbnUgRGlyZWN0aW9uICovXG4udWkuYm90dG9tLnBvaW50aW5nLmRyb3Bkb3duID4gLm1lbnUgLm1lbnUge1xuICB0b3A6IGF1dG8gIWltcG9ydGFudDtcbiAgYm90dG9tOiAwcHggIWltcG9ydGFudDtcbn1cbi8qIEJvdHRvbSBMZWZ0ICovXG4udWkuYm90dG9tLmxlZnQucG9pbnRpbmcuZHJvcGRvd24gPiAubWVudSB7XG4gIGxlZnQ6IDAlO1xuICByaWdodDogYXV0bztcbn1cbi51aS5ib3R0b20ubGVmdC5wb2ludGluZy5kcm9wZG93biA+IC5tZW51OmFmdGVyIHtcbiAgbGVmdDogMWVtO1xuICByaWdodDogYXV0bztcbn1cbi8qIEJvdHRvbSBSaWdodCAqL1xuLnVpLmJvdHRvbS5yaWdodC5wb2ludGluZy5kcm9wZG93biA+IC5tZW51IHtcbiAgcmlnaHQ6IDAlO1xuICBsZWZ0OiBhdXRvO1xufVxuLnVpLmJvdHRvbS5yaWdodC5wb2ludGluZy5kcm9wZG93biA+IC5tZW51OmFmdGVyIHtcbiAgbGVmdDogYXV0bztcbiAgcmlnaHQ6IDFlbTtcbn1cbi8qIFVwd2FyZCBwb2ludGluZyAqL1xuLnVpLnVwd2FyZC5wb2ludGluZy5kcm9wZG93biA+IC5tZW51LFxuLnVpLnVwd2FyZC50b3AucG9pbnRpbmcuZHJvcGRvd24gPiAubWVudSB7XG4gIHRvcDogYXV0bztcbiAgYm90dG9tOiAxMDAlO1xuICBtYXJnaW46IDBlbSAwZW0gMC44cmVtO1xuICBib3JkZXItcmFkaXVzOiAwLjRyZW07XG59XG4udWkudXB3YXJkLnBvaW50aW5nLmRyb3Bkb3duID4gLm1lbnU6YWZ0ZXIsXG4udWkudXB3YXJkLnRvcC5wb2ludGluZy5kcm9wZG93biA+IC5tZW51OmFmdGVyIHtcbiAgdG9wOiAxMDAlO1xuICBib3R0b206IGF1dG87XG4gIGJveC1zaGFkb3c6IDFweCAxcHggMHB4IDFweCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpO1xuICBtYXJnaW46IC0wLjM1ZW0gMGVtIDBlbTtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBUaGVtZSBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBEcm9wZG93biBDYXJldHMgKi9cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ0Ryb3Bkb3duJztcbiAgc3JjOiB1cmwoZGF0YTphcHBsaWNhdGlvbi94LWZvbnQtdHRmO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LEFBRUFBQUFMQUlBQUF3QXdUMU12TWdnakI1QUFBQUM4QUFBQVlHTnRZWEFQZnVJSUFBQUJIQUFBQUV4bllYTndBQUFBRUFBQUFXZ0FBQUFJWjJ4NVpqbzgyTGdBQUFGd0FBQUJWR2hsWVdRQVE4OGJBQUFDeEFBQUFEWm9hR1ZoQXdjQjZRQUFBdndBQUFBa2FHMTBlQVM0QUJJQUFBTWdBQUFBSUd4dlkyRUJOZ0RlQUFBRFFBQUFBQkp0WVhod0FBb0FGZ0FBQTFRQUFBQWdibUZ0WlZjWnB1NEFBQU4wQUFBQlJYQnZjM1FBQXdBQUFBQUV2QUFBQUNBQUF3SUFBWkFBQlFBQUFVd0JaZ0FBQUVjQlRBRm1BQUFBOVFBWkFJUUFBQUFBQUFBQUFBQUFBQUFBQUFBQkVBQUFBQUFBQUFBQUFBQUFBQUFBQUFCQUFBRHcyZ0hnLytELzRBSGdBQ0FBQUFBQkFBQUFBQUFBQUFBQUFBQWdBQUFBQUFBQ0FBQUFBd0FBQUJRQUF3QUJBQUFBRkFBRUFEZ0FBQUFLQUFnQUFnQUNBQUVBSVBEYS8vMy8vd0FBQUFBQUlQRFgvLzMvL3dBQi8rTVBMUUFEQUFFQUFBQUFBQUFBQUFBQUFBRUFBZi8vQUE4QUFRQUFBQUFBQUFBQUFBSUFBRGM1QVFBQUFBQUJBQUFBQUFBQUFBQUFBZ0FBTnprQkFBQUFBQUVBQUFBQUFBQUFBQUFDQUFBM09RRUFBQUFBQVFBQUFJQUJKUUVsQUJNQUFCTTBOelkzQlRZWEZoVVVEd0VHSndZdkFTWTFBQVVHQndFQUNBVUdCb0FGQ0FjR2dBVUJFZ2NHQlFFQkFRY0VDUVlIZndZQkFRWi9Cd1lBQVFBQUFHNEJKUUVTQUJNQUFEYzBQd0UyTXpJZkFSWVZGQWNHSXlFaUp5WTFBQVdBQmdjSUJZQUdCZ1VJL3dBSEJnV0FCd2FBQlFXQUJnY0hCZ1VGQmdjQUFBQUJBQklBU1FDM0FXNEFFd0FBTnpRL0FUWVhOaGNXSFFFVUJ3WW5CaThCSmpVU0JvQUZDQWNGQmdZRkJ3Z0ZnQWJiQndaL0J3RUJCd1FKL3dnRUJ3RUJCMzhHQmdBQUFBQUJBQUFBU1FDbEFXNEFFd0FBTnhFME56WXpNaDhCRmhVVUR3RUdJeUluSmpVQUJRWUhDQVdBQmdhQUJRZ0hCZ1ZiQVFBSUJRWUdnQVVJQndXQUJnWUZCd0FBQUFFQUFBQUJBQURadWFLT1h3ODg5UUFMQWdBQUFBQUEwQUJIV0FBQUFBRFFBRWRZQUFBQUFBRWxBVzRBQUFBSUFBSUFBQUFBQUFBQUFRQUFBZUQvNEFBQUFnQUFBQUFBQVNVQUFRQUFBQUFBQUFBQUFBQUFBQUFBQUFnQUFBQUFBQUFBQUFBQUFBQUJBQUFBQVNVQUFBRWxBQUFBdHdBU0FMY0FBQUFBQUFBQUNnQVVBQjRBUWdCa0FJZ0FxZ0FBQUFFQUFBQUlBQlFBQVFBQUFBQUFBZ0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFPQUs0QUFRQUFBQUFBQVFBT0FBQUFBUUFBQUFBQUFnQU9BRWNBQVFBQUFBQUFBd0FPQUNRQUFRQUFBQUFBQkFBT0FGVUFBUUFBQUFBQUJRQVdBQTRBQVFBQUFBQUFCZ0FIQURJQUFRQUFBQUFBQ2dBMEFHTUFBd0FCQkFrQUFRQU9BQUFBQXdBQkJBa0FBZ0FPQUVjQUF3QUJCQWtBQXdBT0FDUUFBd0FCQkFrQUJBQU9BRlVBQXdBQkJBa0FCUUFXQUE0QUF3QUJCQWtBQmdBT0FEa0FBd0FCQkFrQUNnQTBBR01BYVFCakFHOEFiUUJ2QUc4QWJnQldBR1VBY2dCekFHa0Fid0J1QUNBQU1RQXVBREFBYVFCakFHOEFiUUJ2QUc4QWJtbGpiMjF2YjI0QWFRQmpBRzhBYlFCdkFHOEFiZ0JTQUdVQVp3QjFBR3dBWVFCeUFHa0FZd0J2QUcwQWJ3QnZBRzRBUmdCdkFHNEFkQUFnQUdjQVpRQnVBR1VBY2dCaEFIUUFaUUJrQUNBQVlnQjVBQ0FBU1FCakFHOEFUUUJ2QUc4QWJnQXVBQUFBQUFNQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQT0pIGZvcm1hdCgndHJ1ZXR5cGUnKSwgdXJsKGRhdGE6YXBwbGljYXRpb24vZm9udC13b2ZmO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LGQwOUdSazlVVkU4QUFBVndBQW9BQUFBQUJTZ0FBUUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFCRFJrWWdBQUFBOUFBQUFka0FBQUhaTERYRS8wOVRMeklBQUFMUUFBQUFZQUFBQUdBSUl3ZVFZMjFoY0FBQUF6QUFBQUJNQUFBQVRBOSs0Z2huWVhOd0FBQURmQUFBQUFnQUFBQUlBQUFBRUdobFlXUUFBQU9FQUFBQU5nQUFBRFlBUTg4YmFHaGxZUUFBQTd3QUFBQWtBQUFBSkFNSEFlbG9iWFI0QUFBRDRBQUFBQ0FBQUFBZ0JMZ0FFbTFoZUhBQUFBUUFBQUFBQmdBQUFBWUFDRkFBYm1GdFpRQUFCQWdBQUFGRkFBQUJSVmNacHU1d2IzTjBBQUFGVUFBQUFDQUFBQUFnQUFNQUFBRUFCQVFBQVFFQkNHbGpiMjF2YjI0QUFRSUFBUUE2K0J3QytCc0QrQmdFSGdvQUdWUC9pNHNlQ2dBWlUvK0xpd3dIaTJ2NGxQaDBCUjBBQUFDSUR4MEFBQUNORVIwQUFBQUpIUUFBQWRBU0FBa0JBUWdQRVJNV0d5QWxLbWxqYjIxdmIyNXBZMjl0YjI5dWRUQjFNWFV5TUhWR01FUTNkVVl3UkRoMVJqQkVPWFZHTUVSQkFBQUNBWWtBQmdBSUFnQUJBQVFBQndBS0FBMEFWZ0NmQU9nQkwveVVEdnlVRHZ5VUR2dVVEdnR2aS9lbUZZdVFqWkNPam8rUGo0MlFpd2ozbElzRmtJdVFpWTZIajRpTmhvdUdpNGFKaDRlSENQc1UreFFGaUlpR2lZYUxob3VIalllT0NQc1U5eFFGaUkrSmo0dVFDQTc3YjR2M0ZCV0xrSTJQam84STl4VDNGQVdQam8rTmtJdVFpNUNKam9nSTl4VDdGQVdQaDQySGk0YUxob21IaDRlSWlJYUpob3NJKzVTTEJZYUxoNDJIam9pUGlZK0xrQWdPKzkyZDkyOFZpNUNOa0krT0NQY1U5eFFGam8rUWpaQ0xrSXVQaVk2SGo0aU5ob3VHQ0l2N2xBV0xob21IaDRpSWg0ZUpob3VHaTRhTmlJOEkreFQzRkFXSGpvbVBpNUFJRHZ2ZGkrWVZpL2VVQll1UWpaQ09qbytQajQyUWk1Q0xrSW1PaHdqM0ZQc1VCWStJallhTGhvdUdpWWVIaUFqN0ZQc1VCWWlIaG9tR2k0YUxoNDJIajRpT2lZK0xrQWdPK0pRVStKUVZpd3dLQUFBQUFBTUNBQUdRQUFVQUFBRk1BV1lBQUFCSEFVd0JaZ0FBQVBVQUdRQ0VBQUFBQUFBQUFBQUFBQUFBQUFBQUFSQUFBQUFBQUFBQUFBQUFBQUFBQUFBQVFBQUE4Tm9CNFAvZy8rQUI0QUFnQUFBQUFRQUFBQUFBQUFBQUFBQUFJQUFBQUFBQUFnQUFBQU1BQUFBVUFBTUFBUUFBQUJRQUJBQTRBQUFBQ2dBSUFBSUFBZ0FCQUNEdzJ2LzkvLzhBQUFBQUFDRHcxLy85Ly84QUFmL2pEeTBBQXdBQkFBQUFBQUFBQUFBQUFBQUJBQUgvL3dBUEFBRUFBQUFCQUFBNWVtb3pYdzg4OVFBTEFnQUFBQUFBMEFCSFdBQUFBQURRQUVkWUFBQUFBQUVsQVc0QUFBQUlBQUlBQUFBQUFBQUFBUUFBQWVELzRBQUFBZ0FBQUFBQUFTVUFBUUFBQUFBQUFBQUFBQUFBQUFBQUFBZ0FBQUFBQUFBQUFBQUFBQUFCQUFBQUFTVUFBQUVsQUFBQXR3QVNBTGNBQUFBQVVBQUFDQUFBQUFBQURnQ3VBQUVBQUFBQUFBRUFEZ0FBQUFFQUFBQUFBQUlBRGdCSEFBRUFBQUFBQUFNQURnQWtBQUVBQUFBQUFBUUFEZ0JWQUFFQUFBQUFBQVVBRmdBT0FBRUFBQUFBQUFZQUJ3QXlBQUVBQUFBQUFBb0FOQUJqQUFNQUFRUUpBQUVBRGdBQUFBTUFBUVFKQUFJQURnQkhBQU1BQVFRSkFBTUFEZ0FrQUFNQUFRUUpBQVFBRGdCVkFBTUFBUVFKQUFVQUZnQU9BQU1BQVFRSkFBWUFEZ0E1QUFNQUFRUUpBQW9BTkFCakFHa0FZd0J2QUcwQWJ3QnZBRzRBVmdCbEFISUFjd0JwQUc4QWJnQWdBREVBTGdBd0FHa0FZd0J2QUcwQWJ3QnZBRzVwWTI5dGIyOXVBR2tBWXdCdkFHMEFid0J2QUc0QVVnQmxBR2NBZFFCc0FHRUFjZ0JwQUdNQWJ3QnRBRzhBYndCdUFFWUFid0J1QUhRQUlBQm5BR1VBYmdCbEFISUFZUUIwQUdVQVpBQWdBR0lBZVFBZ0FFa0FZd0J2QUUwQWJ3QnZBRzRBTGdBQUFBQURBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBKSBmb3JtYXQoJ3dvZmYnKTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xufVxuLnVpLmRyb3Bkb3duID4gLmRyb3Bkb3duLmljb24ge1xuICBmb250LWZhbWlseTogJ0Ryb3Bkb3duJztcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGhlaWdodDogMWVtO1xuICB3aWR0aDogMS4yM2VtO1xuICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuLnVpLmRyb3Bkb3duID4gLmRyb3Bkb3duLmljb24ge1xuICB3aWR0aDogYXV0bztcbn1cbi51aS5kcm9wZG93biA+IC5kcm9wZG93bi5pY29uOmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICdcXGYwZDcnO1xufVxuLyogU3ViIE1lbnUgKi9cbi51aS5kcm9wZG93biAubWVudSAuaXRlbSAuZHJvcGRvd24uaWNvbjpiZWZvcmUge1xuICBjb250ZW50OiAnXFxmMGRhJyAvKnJ0bDonXFxmMGQ5JyovO1xufVxuLnVpLmRyb3Bkb3duIC5pdGVtIC5sZWZ0LmRyb3Bkb3duLmljb246YmVmb3JlLFxuLnVpLmRyb3Bkb3duIC5sZWZ0Lm1lbnUgLml0ZW0gLmRyb3Bkb3duLmljb246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwZDlcIiAvKnJ0bDpcIlxcZjBkYVwiKi87XG59XG4vKiBWZXJ0aWNhbCBNZW51IERyb3Bkb3duICovXG4udWkudmVydGljYWwubWVudSAuZHJvcGRvd24uaXRlbSA+IC5kcm9wZG93bi5pY29uOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGRhXCIgLypydGw6XCJcXGYwZDlcIiovO1xufVxuLyogSWNvbnMgZm9yIFJlZmVyZW5jZVxuLmRyb3Bkb3duLmRvd24uaWNvbiB7XG4gIGNvbnRlbnQ6IFwiXFxmMGQ3XCI7XG59XG4uZHJvcGRvd24udXAuaWNvbiB7XG4gIGNvbnRlbnQ6IFwiXFxmMGQ4XCI7XG59XG4uZHJvcGRvd24ubGVmdC5pY29uIHtcbiAgY29udGVudDogXCJcXGYwZDlcIjtcbn1cbi5kcm9wZG93bi5pY29uLmljb24ge1xuICBjb250ZW50OiBcIlxcZjBkYVwiO1xufVxuKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIFVzZXIgT3ZlcnJpZGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyohXG4gKiAjIFNlbWFudGljIFVJIC0gVmlkZW9cbiAqIGh0dHA6Ly9naXRodWIuY29tL3NlbWFudGljLW9yZy9zZW1hbnRpYy11aS9cbiAqXG4gKlxuICogUmVsZWFzZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlXG4gKiBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUXG4gKlxuICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKlxuXG7ilojilojilojilojilojilojilojilojilZfilojilojilZcgIOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKVlyAgIOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl1xu4pWa4pWQ4pWQ4paI4paI4pWU4pWQ4pWQ4pWd4paI4paI4pWRICDilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilojilojilZcg4paI4paI4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWd4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWdXG4gICDilojilojilZEgICDilojilojilojilojilojilojilojilZHilojilojilojilojilojilZcgIOKWiOKWiOKVlOKWiOKWiOKWiOKWiOKVlOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4paI4paI4paI4paI4paI4pWXXG4gICDilojilojilZEgICDilojilojilZTilZDilZDilojilojilZHilojilojilZTilZDilZDilZ0gIOKWiOKWiOKVkeKVmuKWiOKWiOKVlOKVneKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4pWa4pWQ4pWQ4pWQ4pWQ4paI4paI4pWRXG4gICDilojilojilZEgICDilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVkSDilZrilZDilZ0g4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWRXG4gICDilZrilZDilZ0gICDilZrilZDilZ0gIOKVmuKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVneKVmuKVkOKVnSAgICAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWdXG5cbiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBUaGVtZSBTZWxlY3Rpb25cbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBUbyBvdmVycmlkZSBhIHRoZW1lIGZvciBhbiBpbmRpdmlkdWFsIGVsZW1lbnRcbiAgIHNwZWNpZnkgdGhlbWUgbmFtZSBiZWxvd1xuKi9cbi8qIEdsb2JhbCAqL1xuLyogRWxlbWVudHMgKi9cbi8qIENvbGxlY3Rpb25zICovXG4vKiBNb2R1bGVzICovXG4vKiBWaWV3cyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIEZvbGRlcnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBQYXRoIHRvIHRoZW1lIHBhY2thZ2VzICovXG4vKiBQYXRoIHRvIHNpdGUgb3ZlcnJpZGUgZm9sZGVyICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgSW1wb3J0IFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgSW1wb3J0IERpcmVjdGl2ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIFRoZW1lXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgIFNpdGUgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kb3JzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFBhY2thZ2VkIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRvcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogQ29tcG9uZW50J3Mgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZG9ycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBTaXRlIHRoZW1lIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICBVc2VyIEdsb2JhbCBWYXJpYWJsZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBtYXJzbyBjb2xvcnMgKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiBDb21wb25lbnQgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBWaWRlb1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVsZW1lbnRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNpbXBsZSAqL1xuLyogUGxhY2Vob2xkZXIgKi9cbi8qIFBsYWNlaG9sZGVyIE92ZXJsYXllZCBCYWNrZ3JvdW5kICovXG4vKiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBTdGF0ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEhvdmVyICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFZhcmlhdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEFzcGVjdCBSYXRpb3MgKi9cbi8qIFBhY2thZ2VkIFRoZW1lICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFZpZGVvXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRWxlbWVudFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2ltcGxlICovXG4vKiBQbGFjZWhvbGRlciAqL1xuLyogUGxhY2Vob2xkZXIgT3ZlcmxheWVkIEJhY2tncm91bmQgKi9cbi8qIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIFN0YXRlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSG92ZXIgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgVmFyaWF0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogQXNwZWN0IFJhdGlvcyAqL1xuLyogU2l0ZSBUaGVtZSAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBNaXgtaW5zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBPdmVycmlkZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRW5kIENvbmZpZyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFR5cGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLnVpLmVtYmVkIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMHB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBiYWNrZ3JvdW5kOiAjRENERERFO1xuICBwYWRkaW5nLWJvdHRvbTogNTYuMjUlO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLVxuICBFbWJlZGRlZCBDb250ZW50XG4tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmVtYmVkIGlmcmFtZSxcbi51aS5lbWJlZCBlbWJlZCxcbi51aS5lbWJlZCBvYmplY3Qge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJvcmRlcjogbm9uZTtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgdG9wOiAwcHg7XG4gIGxlZnQ6IDBweDtcbiAgbWFyZ2luOiAwZW07XG4gIHBhZGRpbmc6IDBlbTtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEVtYmVkXG4tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmVtYmVkID4gLmVtYmVkIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIFBsYWNlaG9sZGVyXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmVtYmVkID4gLnBsYWNlaG9sZGVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHRvcDogMHB4O1xuICBsZWZ0OiAwcHg7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByYWRpYWwtZ3JhZGllbnQodHJhbnNwYXJlbnQgNDUlLCByZ2JhKDAsIDAsIDAsIDAuMykpO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICAgSWNvblxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5lbWJlZCA+IC5pY29uIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMHB4O1xuICBsZWZ0OiAwcHg7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHotaW5kZXg6IDI7XG59XG4udWkuZW1iZWQgPiAuaWNvbjphZnRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwJTtcbiAgbGVmdDogMCU7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHotaW5kZXg6IDM7XG4gIGNvbnRlbnQ6ICcnO1xuICBiYWNrZ3JvdW5kOiByYWRpYWwtZ3JhZGllbnQodHJhbnNwYXJlbnQgNDUlLCByZ2JhKDAsIDAsIDAsIDAuMykpO1xuICBvcGFjaXR5OiAwLjU7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC41cyBlYXNlO1xufVxuLnVpLmVtYmVkID4gLmljb246YmVmb3JlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgbGVmdDogNTAlO1xuICB6LWluZGV4OiA0O1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSkgdHJhbnNsYXRlWSgtNTAlKTtcbiAgY29sb3I6ICNmZmZmZmY7XG4gIGZvbnQtc2l6ZTogNnJlbTtcbiAgdGV4dC1zaGFkb3c6IDBweCAycHggMTBweCByZ2JhKDM0LCAzNiwgMzgsIDAuMik7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC41cyBlYXNlLCBjb2xvciAwLjVzIGVhc2U7XG4gIHotaW5kZXg6IDEwO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuZW1iZWQgLmljb246aG92ZXI6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kOiByYWRpYWwtZ3JhZGllbnQodHJhbnNwYXJlbnQgNDUlLCByZ2JhKDAsIDAsIDAsIDAuMykpO1xuICBvcGFjaXR5OiAxO1xufVxuLnVpLmVtYmVkIC5pY29uOmhvdmVyOmJlZm9yZSB7XG4gIGNvbG9yOiAjZmZmZmZmO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuYWN0aXZlLmVtYmVkID4gLmljb24sXG4udWkuYWN0aXZlLmVtYmVkID4gLnBsYWNlaG9sZGVyIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi51aS5hY3RpdmUuZW1iZWQgPiAuZW1iZWQge1xuICBkaXNwbGF5OiBibG9jaztcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIFZpZGVvIE92ZXJyaWRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIE92ZXJyaWRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgVmFyaWF0aW9uc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi51aS5zcXVhcmUuZW1iZWQge1xuICBwYWRkaW5nLWJvdHRvbTogMTAwJTtcbn1cbi51aVtjbGFzcyo9XCI0OjNcIl0uZW1iZWQge1xuICBwYWRkaW5nLWJvdHRvbTogNzUlO1xufVxuLnVpW2NsYXNzKj1cIjE2OjlcIl0uZW1iZWQge1xuICBwYWRkaW5nLWJvdHRvbTogNTYuMjUlO1xufVxuLnVpW2NsYXNzKj1cIjIxOjlcIl0uZW1iZWQge1xuICBwYWRkaW5nLWJvdHRvbTogNDIuODU3MTQyODYlO1xufVxuLyohXG4gKiAjIFNlbWFudGljIFVJIC0gTW9kYWxcbiAqIGh0dHA6Ly9naXRodWIuY29tL3NlbWFudGljLW9yZy9zZW1hbnRpYy11aS9cbiAqXG4gKlxuICogUmVsZWFzZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlXG4gKiBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUXG4gKlxuICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKlxuXG7ilojilojilojilojilojilojilojilojilZfilojilojilZcgIOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKVlyAgIOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl1xu4pWa4pWQ4pWQ4paI4paI4pWU4pWQ4pWQ4pWd4paI4paI4pWRICDilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilojilojilZcg4paI4paI4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWd4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWdXG4gICDilojilojilZEgICDilojilojilojilojilojilojilojilZHilojilojilojilojilojilZcgIOKWiOKWiOKVlOKWiOKWiOKWiOKWiOKVlOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4paI4paI4paI4paI4paI4pWXXG4gICDilojilojilZEgICDilojilojilZTilZDilZDilojilojilZHilojilojilZTilZDilZDilZ0gIOKWiOKWiOKVkeKVmuKWiOKWiOKVlOKVneKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4pWa4pWQ4pWQ4pWQ4pWQ4paI4paI4pWRXG4gICDilojilojilZEgICDilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVkSDilZrilZDilZ0g4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWRXG4gICDilZrilZDilZ0gICDilZrilZDilZ0gIOKVmuKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVneKVmuKVkOKVnSAgICAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWdXG5cbiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBUaGVtZSBTZWxlY3Rpb25cbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBUbyBvdmVycmlkZSBhIHRoZW1lIGZvciBhbiBpbmRpdmlkdWFsIGVsZW1lbnRcbiAgIHNwZWNpZnkgdGhlbWUgbmFtZSBiZWxvd1xuKi9cbi8qIEdsb2JhbCAqL1xuLyogRWxlbWVudHMgKi9cbi8qIENvbGxlY3Rpb25zICovXG4vKiBNb2R1bGVzICovXG4vKiBWaWV3cyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIEZvbGRlcnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBQYXRoIHRvIHRoZW1lIHBhY2thZ2VzICovXG4vKiBQYXRoIHRvIHNpdGUgb3ZlcnJpZGUgZm9sZGVyICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgSW1wb3J0IFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgSW1wb3J0IERpcmVjdGl2ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIFRoZW1lXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgIFNpdGUgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kb3JzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFBhY2thZ2VkIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRvcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogQ29tcG9uZW50J3Mgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZG9ycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBTaXRlIHRoZW1lIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICBVc2VyIEdsb2JhbCBWYXJpYWJsZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBtYXJzbyBjb2xvcnMgKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiBDb21wb25lbnQgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBNb2RhbFxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIENsb3NlIEljb24gKi9cbi8qIEhlYWRlciAqL1xuLyogQ29udGVudCAqL1xuLyogSW1hZ2UgLyBEZXNjcmlwdGlvbiAqL1xuLyogTW9kYWwgQWN0aW9ucyAqL1xuLyogSW5uZXIgQ2xvc2UgUG9zaXRpb24gKFRhYmxldC9Nb2JpbGUpICovXG4vKiBNb2JpbGUgUG9zaXRpb25zICovXG4vKiBSZXNwb25zaXZlIFdpZHRocyAqL1xuLyogQ291cGxpbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIFN0YXRlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFR5cGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBCYXNpYyAqL1xuLyogVG9wIEFsaWduZWQgKi9cbi8qIFNjcm9sbGluZyBNYXJnaW4gKi9cbi8qIFNjcm9sbGluZyBDb250ZW50ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFZhcmlhdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNpemUgV2lkdGhzICovXG4vKiBEZXJpdmVkIFJlc3BvbnNpdmUgU2l6ZXMgKi9cbi8qIFBhY2thZ2VkIFRoZW1lICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIE1vZGFsXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogQ2xvc2UgSWNvbiAqL1xuLyogSGVhZGVyICovXG4vKiBDb250ZW50ICovXG4vKiBJbWFnZSAvIERlc2NyaXB0aW9uICovXG4vKiBNb2RhbCBBY3Rpb25zICovXG4vKiBJbm5lciBDbG9zZSBQb3NpdGlvbiAoVGFibGV0L01vYmlsZSkgKi9cbi8qIE1vYmlsZSBQb3NpdGlvbnMgKi9cbi8qIFJlc3BvbnNpdmUgV2lkdGhzICovXG4vKiBDb3VwbGluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgU3RhdGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgVHlwZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEJhc2ljICovXG4vKiBUb3AgQWxpZ25lZCAqL1xuLyogU2Nyb2xsaW5nIE1hcmdpbiAqL1xuLyogU2Nyb2xsaW5nIENvbnRlbnQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgVmFyaWF0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2l6ZSBXaWR0aHMgKi9cbi8qIERlcml2ZWQgUmVzcG9uc2l2ZSBTaXplcyAqL1xuLyogU2l0ZSBUaGVtZSAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgT3ZlcnJpZGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBNaXgtaW5zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBPdmVycmlkZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRW5kIENvbmZpZyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBNb2RhbFxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi51aS5tb2RhbCB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHotaW5kZXg6IDEwMDE7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gIGJvcmRlcjogbm9uZTtcbiAgYm94LXNoYWRvdzogMXB4IDNweCAzcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMXB4IDNweCAxNXB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMik7XG4gIHRyYW5zZm9ybS1vcmlnaW46IDUwJSAyNSU7XG4gIGZsZXg6IDAgMCBhdXRvO1xuICBib3JkZXItcmFkaXVzOiAwLjRyZW07XG4gIHVzZXItc2VsZWN0OiB0ZXh0O1xuICB3aWxsLWNoYW5nZTogdG9wLCBsZWZ0LCBtYXJnaW4sIHRyYW5zZm9ybSwgb3BhY2l0eTtcbn1cbi51aS5tb2RhbCA+IDpmaXJzdC1jaGlsZDpub3QoLmljb24pLFxuLnVpLm1vZGFsID4gLmljb246Zmlyc3QtY2hpbGQgKyAqIHtcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMC40cmVtO1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMC40cmVtO1xufVxuLnVpLm1vZGFsID4gOmxhc3QtY2hpbGQge1xuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwLjRyZW07XG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwLjRyZW07XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgQ29udGVudFxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgQ2xvc2Vcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkubW9kYWwgPiAuY2xvc2Uge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAtMi41cmVtO1xuICByaWdodDogLTIuNXJlbTtcbiAgei1pbmRleDogMTtcbiAgb3BhY2l0eTogMC44O1xuICBmb250LXNpemU6IDEuMjVlbTtcbiAgY29sb3I6ICNmZmZmZmY7XG4gIHdpZHRoOiAyLjI1cmVtO1xuICBoZWlnaHQ6IDIuMjVyZW07XG4gIHBhZGRpbmc6IDAuNjI1cmVtIDByZW0gMHJlbSAwcmVtO1xufVxuLnVpLm1vZGFsID4gLmNsb3NlOmhvdmVyIHtcbiAgb3BhY2l0eTogMTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgSGVhZGVyXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLm1vZGFsID4gLmhlYWRlciB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmb250LWZhbWlseTogJ0V4byAyJywgJ0xhdG8nLCBBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmO1xuICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICBtYXJnaW46IDBlbTtcbiAgcGFkZGluZzogMS4yNXJlbSAxLjVyZW07XG4gIGJveC1zaGFkb3c6IG5vbmU7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODUpO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiYSgzNCwgMzYsIDM4LCAwLjE1KTtcbn1cbi51aS5tb2RhbCA+IC5oZWFkZXI6bm90KC51aSkge1xuICBmb250LXNpemU6IDEuNHJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuMjg1NzE0MjllbTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIENvbnRlbnRcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkubW9kYWwgPiAuY29udGVudCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMTAwJTtcbiAgZm9udC1zaXplOiAxZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gIHBhZGRpbmc6IDEuNXJlbTtcbiAgYmFja2dyb3VuZDogI0ZGRkZGRjtcbn1cbi51aS5tb2RhbCA+IC5pbWFnZS5jb250ZW50IHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcbn1cbi8qIEltYWdlICovXG4udWkubW9kYWwgPiAuY29udGVudCA+IC5pbWFnZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmbGV4OiAwIDEgYXV0bztcbiAgd2lkdGg6ICcnO1xuICBhbGlnbi1zZWxmOiB0b3A7XG59XG4udWkubW9kYWwgPiBbY2xhc3MqPVwidG9wIGFsaWduZWRcIl0ge1xuICBhbGlnbi1zZWxmOiB0b3A7XG59XG4udWkubW9kYWwgPiBbY2xhc3MqPVwibWlkZGxlIGFsaWduZWRcIl0ge1xuICBhbGlnbi1zZWxmOiBtaWRkbGU7XG59XG4udWkubW9kYWwgPiBbY2xhc3MqPVwic3RyZXRjaGVkXCJdIHtcbiAgYWxpZ24tc2VsZjogc3RyZXRjaDtcbn1cbi8qIERlc2NyaXB0aW9uICovXG4udWkubW9kYWwgPiAuY29udGVudCA+IC5kZXNjcmlwdGlvbiB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmbGV4OiAxIDAgYXV0bztcbiAgbWluLXdpZHRoOiAwcHg7XG4gIGFsaWduLXNlbGY6IHRvcDtcbn1cbi51aS5tb2RhbCA+IC5jb250ZW50ID4gLmljb24gKyAuZGVzY3JpcHRpb24sXG4udWkubW9kYWwgPiAuY29udGVudCA+IC5pbWFnZSArIC5kZXNjcmlwdGlvbiB7XG4gIGZsZXg6IDAgMSBhdXRvO1xuICBtaW4td2lkdGg6ICcnO1xuICB3aWR0aDogYXV0bztcbiAgcGFkZGluZy1sZWZ0OiAyZW07XG59XG4vKnJ0bDppZ25vcmUqL1xuLnVpLm1vZGFsID4gLmNvbnRlbnQgPiAuaW1hZ2UgPiBpLmljb24ge1xuICBtYXJnaW46IDBlbTtcbiAgb3BhY2l0eTogMTtcbiAgd2lkdGg6IGF1dG87XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBmb250LXNpemU6IDhyZW07XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIEFjdGlvbnNcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkubW9kYWwgPiAuYWN0aW9ucyB7XG4gIGJhY2tncm91bmQ6ICNGOUZBRkI7XG4gIHBhZGRpbmc6IDFyZW0gMXJlbTtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHJnYmEoMzQsIDM2LCAzOCwgMC4xNSk7XG4gIHRleHQtYWxpZ246IHJpZ2h0O1xufVxuLnVpLm1vZGFsIC5hY3Rpb25zID4gLmJ1dHRvbiB7XG4gIG1hcmdpbi1sZWZ0OiAwLjc1ZW07XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBSZXNwb25zaXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNb2RhbCBXaWR0aCAqL1xuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAudWkubW9kYWwge1xuICAgIHdpZHRoOiA5NSU7XG4gICAgbWFyZ2luOiAwZW0gMGVtIDBlbSAwZW07XG4gIH1cbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLnVpLm1vZGFsIHtcbiAgICB3aWR0aDogODglO1xuICAgIG1hcmdpbjogMGVtIDBlbSAwZW0gMGVtO1xuICB9XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDk5MnB4KSB7XG4gIC51aS5tb2RhbCB7XG4gICAgd2lkdGg6IDg1MHB4O1xuICAgIG1hcmdpbjogMGVtIDBlbSAwZW0gMGVtO1xuICB9XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEyMDBweCkge1xuICAudWkubW9kYWwge1xuICAgIHdpZHRoOiA5MDBweDtcbiAgICBtYXJnaW46IDBlbSAwZW0gMGVtIDBlbTtcbiAgfVxufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxOTIwcHgpIHtcbiAgLnVpLm1vZGFsIHtcbiAgICB3aWR0aDogOTUwcHg7XG4gICAgbWFyZ2luOiAwZW0gMGVtIDBlbSAwZW07XG4gIH1cbn1cbi8qIFRhYmxldCBhbmQgTW9iaWxlICovXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDk5MXB4KSB7XG4gIC51aS5tb2RhbCA+IC5oZWFkZXIge1xuICAgIHBhZGRpbmctcmlnaHQ6IDIuMjVyZW07XG4gIH1cbiAgLnVpLm1vZGFsID4gLmNsb3NlIHtcbiAgICB0b3A6IDEuMDUzNXJlbTtcbiAgICByaWdodDogMXJlbTtcbiAgICBjb2xvcjogIzMzMzMzMztcbiAgfVxufVxuLyogTW9iaWxlICovXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC51aS5tb2RhbCA+IC5oZWFkZXIge1xuICAgIHBhZGRpbmc6IDAuNzVyZW0gMXJlbSAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmctcmlnaHQ6IDIuMjVyZW0gIWltcG9ydGFudDtcbiAgfVxuICAudWkubW9kYWwgPiAuY29udGVudCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcGFkZGluZzogMXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5tb2RhbCA+IC5jbG9zZSB7XG4gICAgdG9wOiAwLjVyZW0gIWltcG9ydGFudDtcbiAgICByaWdodDogMC41cmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLypydGw6aWdub3JlKi9cbiAgLnVpLm1vZGFsIC5pbWFnZS5jb250ZW50IHtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICB9XG4gIC51aS5tb2RhbCAuY29udGVudCA+IC5pbWFnZSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbjogMGVtIGF1dG8gIWltcG9ydGFudDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgcGFkZGluZzogMHJlbSAwcmVtIDFyZW0gIWltcG9ydGFudDtcbiAgfVxuICAudWkubW9kYWwgPiAuY29udGVudCA+IC5pbWFnZSA+IGkuaWNvbiB7XG4gICAgZm9udC1zaXplOiA1cmVtO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxuICAvKnJ0bDppZ25vcmUqL1xuICAudWkubW9kYWwgLmNvbnRlbnQgPiAuZGVzY3JpcHRpb24ge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luOiAwZW0gIWltcG9ydGFudDtcbiAgICBwYWRkaW5nOiAxcmVtIDByZW0gIWltcG9ydGFudDtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICB9XG4gIC8qIExldCBCdXR0b25zIFN0YWNrICovXG4gIC51aS5tb2RhbCA+IC5hY3Rpb25zIHtcbiAgICBwYWRkaW5nOiAxcmVtIDFyZW0gMHJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5tb2RhbCAuYWN0aW9ucyA+IC5idXR0b25zLFxuICAudWkubW9kYWwgLmFjdGlvbnMgPiAuYnV0dG9uIHtcbiAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICB9XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgQ291cGxpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuaW52ZXJ0ZWQuZGltbWVyID4gLnVpLm1vZGFsIHtcbiAgYm94LXNoYWRvdzogMXB4IDNweCAxMHB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMik7XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFR5cGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLnVpLmJhc2ljLm1vZGFsIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlcjogbm9uZTtcbiAgYm9yZGVyLXJhZGl1czogMGVtO1xuICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjZmZmZmZmO1xufVxuLnVpLmJhc2ljLm1vZGFsID4gLmhlYWRlcixcbi51aS5iYXNpYy5tb2RhbCA+IC5jb250ZW50LFxuLnVpLmJhc2ljLm1vZGFsID4gLmFjdGlvbnMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cbi51aS5iYXNpYy5tb2RhbCA+IC5oZWFkZXIge1xuICBjb2xvcjogI2ZmZmZmZjtcbn1cbi51aS5iYXNpYy5tb2RhbCA+IC5jbG9zZSB7XG4gIHRvcDogMXJlbTtcbiAgcmlnaHQ6IDEuNXJlbTtcbn1cbi51aS5pbnZlcnRlZC5kaW1tZXIgPiAuYmFzaWMubW9kYWwge1xuICBjb2xvcjogIzMzMzMzMztcbn1cbi51aS5pbnZlcnRlZC5kaW1tZXIgPiAudWkuYmFzaWMubW9kYWwgPiAuaGVhZGVyIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44NSk7XG59XG4vKiBUYWJsZXQgYW5kIE1vYmlsZSAqL1xuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA5OTFweCkge1xuICAudWkuYmFzaWMubW9kYWwgPiAuY2xvc2Uge1xuICAgIGNvbG9yOiAjZmZmZmZmO1xuICB9XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi51aS5sb2FkaW5nLm1vZGFsIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgei1pbmRleDogLTE7XG59XG4udWkuYWN0aXZlLm1vZGFsIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBWYXJpYXRpb25zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgVG9wIEFsaWduZWRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUb3AgQWxpZ25lZCBNb2RhbCAqL1xuLm1vZGFscy5kaW1tZXJbY2xhc3MqPVwidG9wIGFsaWduZWRcIl0gLm1vZGFsIHtcbiAgbWFyZ2luOiA1dmggYXV0bztcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGxpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBTY3JvbGxpbmcgRGltbWVyICovXG4uc2Nyb2xsaW5nLmRpbW1hYmxlLmRpbW1lZCB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG4uc2Nyb2xsaW5nLmRpbW1hYmxlID4gLmRpbW1lciB7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbn1cbi5zY3JvbGxpbmcuZGltbWFibGUuZGltbWVkID4gLmRpbW1lciB7XG4gIG92ZXJmbG93OiBhdXRvO1xuICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XG59XG4uc2Nyb2xsaW5nLmRpbW1hYmxlID4gLmRpbW1lciB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbn1cbi5tb2RhbHMuZGltbWVyIC51aS5zY3JvbGxpbmcubW9kYWwge1xuICBtYXJnaW46IDFyZW0gYXV0byAhaW1wb3J0YW50O1xufVxuLyogVW5kZXRhY2hlZCBTY3JvbGxpbmcgKi9cbi5zY3JvbGxpbmcudW5kZXRhY2hlZC5kaW1tYWJsZS5kaW1tZWQge1xuICBvdmVyZmxvdzogYXV0bztcbiAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoO1xufVxuLnNjcm9sbGluZy51bmRldGFjaGVkLmRpbW1hYmxlLmRpbW1lZCA+IC5kaW1tZXIge1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuLnNjcm9sbGluZy51bmRldGFjaGVkLmRpbW1hYmxlIC51aS5zY3JvbGxpbmcubW9kYWwge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDUwJTtcbiAgbWFyZ2luLXRvcDogMXJlbSAhaW1wb3J0YW50O1xufVxuLyogU2Nyb2xsaW5nIENvbnRlbnQgKi9cbi51aS5tb2RhbCAuc2Nyb2xsaW5nLmNvbnRlbnQge1xuICBtYXgtaGVpZ2h0OiBjYWxjKDgwdmggLSAxMGVtKTtcbiAgb3ZlcmZsb3c6IGF1dG87XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGdWxsIFNjcmVlblxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5mdWxsc2NyZWVuLm1vZGFsIHtcbiAgd2lkdGg6IDk1JSAhaW1wb3J0YW50O1xuICBsZWZ0OiAwZW0gIWltcG9ydGFudDtcbiAgbWFyZ2luOiAxZW0gYXV0bztcbn1cbi51aS5mdWxsc2NyZWVuLnNjcm9sbGluZy5tb2RhbCB7XG4gIGxlZnQ6IDBlbSAhaW1wb3J0YW50O1xufVxuLnVpLmZ1bGxzY3JlZW4ubW9kYWwgPiAuaGVhZGVyIHtcbiAgcGFkZGluZy1yaWdodDogMi4yNXJlbTtcbn1cbi51aS5mdWxsc2NyZWVuLm1vZGFsID4gLmNsb3NlIHtcbiAgdG9wOiAxLjA1MzVyZW07XG4gIHJpZ2h0OiAxcmVtO1xuICBjb2xvcjogIzMzMzMzMztcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpemVcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkubW9kYWwge1xuICBmb250LXNpemU6IDFyZW07XG59XG4vKiBNaW5pICovXG4udWkubWluaS5tb2RhbCA+IC5oZWFkZXI6bm90KC51aSkge1xuICBmb250LXNpemU6IDEuM2VtO1xufVxuLyogTWluaSBNb2RhbCBXaWR0aCAqL1xuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAudWkubWluaS5tb2RhbCB7XG4gICAgd2lkdGg6IDk1JTtcbiAgICBtYXJnaW46IDBlbSAwZW0gMGVtIDBlbTtcbiAgfVxufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NjhweCkge1xuICAudWkubWluaS5tb2RhbCB7XG4gICAgd2lkdGg6IDM1LjIlO1xuICAgIG1hcmdpbjogMGVtIDBlbSAwZW0gMGVtO1xuICB9XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDk5MnB4KSB7XG4gIC51aS5taW5pLm1vZGFsIHtcbiAgICB3aWR0aDogMzQwcHg7XG4gICAgbWFyZ2luOiAwZW0gMGVtIDBlbSAwZW07XG4gIH1cbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTIwMHB4KSB7XG4gIC51aS5taW5pLm1vZGFsIHtcbiAgICB3aWR0aDogMzYwcHg7XG4gICAgbWFyZ2luOiAwZW0gMGVtIDBlbSAwZW07XG4gIH1cbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTkyMHB4KSB7XG4gIC51aS5taW5pLm1vZGFsIHtcbiAgICB3aWR0aDogMzgwcHg7XG4gICAgbWFyZ2luOiAwZW0gMGVtIDBlbSAwZW07XG4gIH1cbn1cbi8qIG1pbmkgKi9cbi51aS5zbWFsbC5tb2RhbCA+IC5oZWFkZXI6bm90KC51aSkge1xuICBmb250LXNpemU6IDEuM2VtO1xufVxuLyogVGlueSBNb2RhbCBXaWR0aCAqL1xuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAudWkudGlueS5tb2RhbCB7XG4gICAgd2lkdGg6IDk1JTtcbiAgICBtYXJnaW46IDBlbSAwZW0gMGVtIDBlbTtcbiAgfVxufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NjhweCkge1xuICAudWkudGlueS5tb2RhbCB7XG4gICAgd2lkdGg6IDUyLjglO1xuICAgIG1hcmdpbjogMGVtIDBlbSAwZW0gMGVtO1xuICB9XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDk5MnB4KSB7XG4gIC51aS50aW55Lm1vZGFsIHtcbiAgICB3aWR0aDogNTEwcHg7XG4gICAgbWFyZ2luOiAwZW0gMGVtIDBlbSAwZW07XG4gIH1cbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTIwMHB4KSB7XG4gIC51aS50aW55Lm1vZGFsIHtcbiAgICB3aWR0aDogNTQwcHg7XG4gICAgbWFyZ2luOiAwZW0gMGVtIDBlbSAwZW07XG4gIH1cbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTkyMHB4KSB7XG4gIC51aS50aW55Lm1vZGFsIHtcbiAgICB3aWR0aDogNTcwcHg7XG4gICAgbWFyZ2luOiAwZW0gMGVtIDBlbSAwZW07XG4gIH1cbn1cbi8qIFNtYWxsICovXG4udWkuc21hbGwubW9kYWwgPiAuaGVhZGVyOm5vdCgudWkpIHtcbiAgZm9udC1zaXplOiAxLjNlbTtcbn1cbi8qIFNtYWxsIE1vZGFsIFdpZHRoICovXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC51aS5zbWFsbC5tb2RhbCB7XG4gICAgd2lkdGg6IDk1JTtcbiAgICBtYXJnaW46IDBlbSAwZW0gMGVtIDBlbTtcbiAgfVxufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NjhweCkge1xuICAudWkuc21hbGwubW9kYWwge1xuICAgIHdpZHRoOiA3MC40JTtcbiAgICBtYXJnaW46IDBlbSAwZW0gMGVtIDBlbTtcbiAgfVxufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA5OTJweCkge1xuICAudWkuc21hbGwubW9kYWwge1xuICAgIHdpZHRoOiA2ODBweDtcbiAgICBtYXJnaW46IDBlbSAwZW0gMGVtIDBlbTtcbiAgfVxufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMjAwcHgpIHtcbiAgLnVpLnNtYWxsLm1vZGFsIHtcbiAgICB3aWR0aDogNzIwcHg7XG4gICAgbWFyZ2luOiAwZW0gMGVtIDBlbSAwZW07XG4gIH1cbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTkyMHB4KSB7XG4gIC51aS5zbWFsbC5tb2RhbCB7XG4gICAgd2lkdGg6IDc2MHB4O1xuICAgIG1hcmdpbjogMGVtIDBlbSAwZW0gMGVtO1xuICB9XG59XG4vKiBMYXJnZSBNb2RhbCBXaWR0aCAqL1xuLnVpLmxhcmdlLm1vZGFsID4gLmhlYWRlciB7XG4gIGZvbnQtc2l6ZTogMS42ZW07XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC51aS5sYXJnZS5tb2RhbCB7XG4gICAgd2lkdGg6IDk1JTtcbiAgICBtYXJnaW46IDBlbSAwZW0gMGVtIDBlbTtcbiAgfVxufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NjhweCkge1xuICAudWkubGFyZ2UubW9kYWwge1xuICAgIHdpZHRoOiA4OCU7XG4gICAgbWFyZ2luOiAwZW0gMGVtIDBlbSAwZW07XG4gIH1cbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogOTkycHgpIHtcbiAgLnVpLmxhcmdlLm1vZGFsIHtcbiAgICB3aWR0aDogMTAyMHB4O1xuICAgIG1hcmdpbjogMGVtIDBlbSAwZW0gMGVtO1xuICB9XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEyMDBweCkge1xuICAudWkubGFyZ2UubW9kYWwge1xuICAgIHdpZHRoOiAxMDgwcHg7XG4gICAgbWFyZ2luOiAwZW0gMGVtIDBlbSAwZW07XG4gIH1cbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTkyMHB4KSB7XG4gIC51aS5sYXJnZS5tb2RhbCB7XG4gICAgd2lkdGg6IDExNDBweDtcbiAgICBtYXJnaW46IDBlbSAwZW0gMGVtIDBlbTtcbiAgfVxufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFRoZW1lIE92ZXJyaWRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIE92ZXJyaWRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIVxuICogIyBTZW1hbnRpYyBVSSAtIE5hZ1xuICogaHR0cDovL2dpdGh1Yi5jb20vc2VtYW50aWMtb3JnL3NlbWFudGljLXVpL1xuICpcbiAqXG4gKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2VcbiAqIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVRcbiAqXG4gKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qXG5cbuKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVlyAg4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4pWXICAg4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWXXG7ilZrilZDilZDilojilojilZTilZDilZDilZ3ilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKWiOKWiOKVlyDilojilojilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilZTilZDilZDilZDilZDilZ1cbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4pWU4paI4paI4paI4paI4pWU4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilojilojilojilojilojilZdcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVlOKVkOKVkOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4paI4paI4pWR4pWa4paI4paI4pWU4pWd4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilZrilZDilZDilZDilZDilojilojilZFcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWRIOKVmuKVkOKVnSDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZFcbiAgIOKVmuKVkOKVnSAgIOKVmuKVkOKVnSAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWdICAgICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ1cblxuKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIFRoZW1lIFNlbGVjdGlvblxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFRvIG92ZXJyaWRlIGEgdGhlbWUgZm9yIGFuIGluZGl2aWR1YWwgZWxlbWVudFxuICAgc3BlY2lmeSB0aGVtZSBuYW1lIGJlbG93XG4qL1xuLyogR2xvYmFsICovXG4vKiBFbGVtZW50cyAqL1xuLyogQ29sbGVjdGlvbnMgKi9cbi8qIE1vZHVsZXMgKi9cbi8qIFZpZXdzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgRm9sZGVyc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFBhdGggdG8gdGhlbWUgcGFja2FnZXMgKi9cbi8qIFBhdGggdG8gc2l0ZSBvdmVycmlkZSBmb2xkZXIgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBJbXBvcnQgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBJbXBvcnQgRGlyZWN0aXZlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgVGhlbWVcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgU2l0ZSBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0IHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRvcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogUGFja2FnZWQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZG9ycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBDb21wb25lbnQncyBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kb3JzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFNpdGUgdGhlbWUgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgIFVzZXIgR2xvYmFsIFZhcmlhYmxlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIG1hcnNvIGNvbG9ycyAqL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuIENvbXBvbmVudCBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0ICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIE5hZ1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIENvbGxlY3Rpb25cbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgRWxlbWVudHNcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaXRsZSAqL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgICAgU3RhdGVzXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogSG92ZXIgKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIFZhcmlhdGlvbnNcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUb3AgLyBCb3R0b20gKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgICBQbHVyYWxcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBQYWNrYWdlZCBUaGVtZSAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBOYWdcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBDb2xsZWN0aW9uXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgIEVsZW1lbnRzXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGl0bGUgKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgIFN0YXRlc1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEhvdmVyICovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBWYXJpYXRpb25zXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVG9wIC8gQm90dG9tICovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgICAgUGx1cmFsXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2l0ZSBUaGVtZSAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICBVc2VyIFZhcmlhYmxlIE92ZXJyaWRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgTWl4LWluc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgT3ZlcnJpZGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEVuZCBDb25maWcgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgTmFnXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLnVpLm5hZyB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIG9wYWNpdHk6IDAuOTU7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdG9wOiAwZW07XG4gIGxlZnQ6IDBweDtcbiAgei1pbmRleDogOTk5O1xuICBtaW4taGVpZ2h0OiAwZW07XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW46IDBlbTtcbiAgcGFkZGluZzogMC43NWVtIDFlbTtcbiAgYmFja2dyb3VuZDogIzU1NTU1NTtcbiAgYm94LXNoYWRvdzogMHB4IDFweCAycHggMHB4IHJnYmEoMCwgMCwgMCwgMC4yKTtcbiAgZm9udC1zaXplOiAxcmVtO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGNvbG9yOiAjMzMzMzMzO1xuICBib3JkZXItcmFkaXVzOiAwZW0gMGVtIDAuNHJlbSAwLjRyZW07XG4gIHRyYW5zaXRpb246IDAuMnMgYmFja2dyb3VuZCBlYXNlO1xufVxuYS51aS5uYWcge1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4udWkubmFnID4gLnRpdGxlIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXJnaW46IDBlbSAwLjVlbTtcbiAgY29sb3I6ICNmZmZmZmY7XG59XG4udWkubmFnID4gLmNsb3NlLmljb24ge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIG9wYWNpdHk6IDAuNDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgcmlnaHQ6IDFlbTtcbiAgZm9udC1zaXplOiAxZW07XG4gIG1hcmdpbjogLTAuNWVtIDBlbSAwZW07XG4gIGNvbG9yOiAjZmZmZmZmO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnMgZWFzZTtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogSG92ZXIgKi9cbi51aS5uYWc6aG92ZXIge1xuICBiYWNrZ3JvdW5kOiAjNTU1NTU1O1xuICBvcGFjaXR5OiAxO1xufVxuLnVpLm5hZyAuY2xvc2U6aG92ZXIge1xuICBvcGFjaXR5OiAxO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgVmFyaWF0aW9uc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgU3RhdGljXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLm92ZXJsYXkubmFnIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBkaXNwbGF5OiBibG9jaztcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgRml4ZWRcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuZml4ZWQubmFnIHtcbiAgcG9zaXRpb246IGZpeGVkO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBCb3R0b21cbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuYm90dG9tLm5hZ3MsXG4udWkuYm90dG9tLm5hZyB7XG4gIGJvcmRlci1yYWRpdXM6IDAuNHJlbSAwLjRyZW0gMGVtIDBlbTtcbiAgdG9wOiBhdXRvO1xuICBib3R0b206IDBlbTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgV2hpdGVcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuaW52ZXJ0ZWQubmFncyAubmFnLFxuLnVpLmludmVydGVkLm5hZyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGM0Y0RjU7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODUpO1xufVxuLnVpLmludmVydGVkLm5hZ3MgLm5hZyAuY2xvc2UsXG4udWkuaW52ZXJ0ZWQubmFncyAubmFnIC50aXRsZSxcbi51aS5pbnZlcnRlZC5uYWcgLmNsb3NlLFxuLnVpLmludmVydGVkLm5hZyAudGl0bGUge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjQpO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgR3JvdXBzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLnVpLm5hZ3MgLm5hZyB7XG4gIGJvcmRlci1yYWRpdXM6IDBlbSAhaW1wb3J0YW50O1xufVxuLnVpLm5hZ3MgLm5hZzpsYXN0LWNoaWxkIHtcbiAgYm9yZGVyLXJhZGl1czogMGVtIDBlbSAwLjRyZW0gMC40cmVtO1xufVxuLnVpLmJvdHRvbS5uYWdzIC5uYWc6bGFzdC1jaGlsZCB7XG4gIGJvcmRlci1yYWRpdXM6IDAuNHJlbSAwLjRyZW0gMGVtIDBlbTtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBUaGVtZSBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBVc2VyIE92ZXJyaWRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIVxuICogIyBTZW1hbnRpYyBVSSAtIFBvcHVwXG4gKiBodHRwOi8vZ2l0aHViLmNvbS9zZW1hbnRpYy1vcmcvc2VtYW50aWMtdWkvXG4gKlxuICpcbiAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZVxuICogaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVFxuICpcbiAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLypcblxu4paI4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWXICDilojilojilZfilojilojilojilojilojilojilojilZfilojilojilojilZcgICDilojilojilojilZfilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZdcbuKVmuKVkOKVkOKWiOKWiOKVlOKVkOKVkOKVneKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWd4paI4paI4paI4paI4pWXIOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVnVxuICAg4paI4paI4pWRICAg4paI4paI4paI4paI4paI4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilZTilojilojilojilojilZTilojilojilZHilojilojilojilojilojilZcgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl1xuICAg4paI4paI4pWRICAg4paI4paI4pWU4pWQ4pWQ4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilojilojilZHilZrilojilojilZTilZ3ilojilojilZHilojilojilZTilZDilZDilZ0gIOKVmuKVkOKVkOKVkOKVkOKWiOKWiOKVkVxuICAg4paI4paI4pWRICAg4paI4paI4pWRICDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilZEg4pWa4pWQ4pWdIOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkVxuICAg4pWa4pWQ4pWdICAg4pWa4pWQ4pWdICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZ0gICAgIOKVmuKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVnVxuXG4qL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgVGhlbWUgU2VsZWN0aW9uXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogVG8gb3ZlcnJpZGUgYSB0aGVtZSBmb3IgYW4gaW5kaXZpZHVhbCBlbGVtZW50XG4gICBzcGVjaWZ5IHRoZW1lIG5hbWUgYmVsb3dcbiovXG4vKiBHbG9iYWwgKi9cbi8qIEVsZW1lbnRzICovXG4vKiBDb2xsZWN0aW9ucyAqL1xuLyogTW9kdWxlcyAqL1xuLyogVmlld3MgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBGb2xkZXJzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogUGF0aCB0byB0aGVtZSBwYWNrYWdlcyAqL1xuLyogUGF0aCB0byBzaXRlIG92ZXJyaWRlIGZvbGRlciAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIEltcG9ydCBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIEltcG9ydCBEaXJlY3RpdmVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBUaGVtZVxuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICBTaXRlIFZhcmlhYmxlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERlZmF1bHQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZG9ycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBQYWNrYWdlZCBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kb3JzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIENvbXBvbmVudCdzIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRvcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogU2l0ZSB0aGVtZSBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgVXNlciBHbG9iYWwgVmFyaWFibGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogbWFyc28gY29sb3JzICovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gQ29tcG9uZW50IFZhcmlhYmxlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERlZmF1bHQgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgUG9wdXBcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbGVtZW50XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBQYXJ0c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUGxhY2VtZW50ICovXG4vKiBIZWFkZXIgKi9cbi8qIENvbnRlbnQgQm9yZGVyICovXG4vKiBBcnJvdyAqL1xuLyogQXJyb3cgY29sb3IgYnkgcG9zaXRpb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIFR5cGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUb29sdGlwICovXG4vKiBJbnZlcnRlZCAqL1xuLyogQXJyb3cgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIENvdXBsaW5nXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBHcmlkIEluc2lkZSBQb3B1cCAqL1xuLyogKHBhZGRpbmcgKiBAbWVkaXVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgU3RhdGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBWYXJpYXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBXaWRlICovXG4vKiBJbnZlcnRlZCAqL1xuLyogQXJyb3cgY29sb3IgYnkgcG9zaXRpb24gKi9cbi8qIFBhY2thZ2VkIFRoZW1lICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFBvcHVwXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRWxlbWVudFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgUGFydHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBsYWNlbWVudCAqL1xuLyogSGVhZGVyICovXG4vKiBDb250ZW50IEJvcmRlciAqL1xuLyogQXJyb3cgKi9cbi8qIEFycm93IGNvbG9yIGJ5IHBvc2l0aW9uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBUeXBlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVG9vbHRpcCAqL1xuLyogSW52ZXJ0ZWQgKi9cbi8qIEFycm93ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBDb3VwbGluZ1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogR3JpZCBJbnNpZGUgUG9wdXAgKi9cbi8qIChwYWRkaW5nICogQG1lZGl1bSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIFN0YXRlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgVmFyaWF0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogV2lkZSAqL1xuLyogSW52ZXJ0ZWQgKi9cbi8qIEFycm93IGNvbG9yIGJ5IHBvc2l0aW9uICovXG4vKiBTaXRlIFRoZW1lICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgIFVzZXIgVmFyaWFibGUgT3ZlcnJpZGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBNaXgtaW5zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBPdmVycmlkZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRW5kIENvbmZpZyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFBvcHVwXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLnVpLnBvcHVwIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDBweDtcbiAgcmlnaHQ6IDBweDtcbiAgLyogRml4ZXMgY29udGVudCBiZWluZyBzcXVpc2hlZCB3aGVuIGlubGluZSAobW96IG9ubHkpICovXG4gIG1pbi13aWR0aDogbWluLWNvbnRlbnQ7XG4gIHotaW5kZXg6IDE5MDA7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNENEQ0RDU7XG4gIGxpbmUtaGVpZ2h0OiAxLjQyODVlbTtcbiAgbWF4LXdpZHRoOiAyNTBweDtcbiAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbiAgcGFkZGluZzogMC44MzNlbSAxZW07XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgY29sb3I6ICMzMzMzMzM7XG4gIGJvcmRlci1yYWRpdXM6IDAuNHJlbTtcbiAgYm94LXNoYWRvdzogMHB4IDJweCA0cHggMHB4IHJnYmEoMzQsIDM2LCAzOCwgMC4xMiksIDBweCAycHggMTBweCAwcHggcmdiYSgzNCwgMzYsIDM4LCAwLjE1KTtcbn1cbi51aS5wb3B1cCA+IC5oZWFkZXIge1xuICBwYWRkaW5nOiAwZW07XG4gIGZvbnQtZmFtaWx5OiAnRXhvIDInLCAnTGF0bycsIEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMS4xZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjI7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuLnVpLnBvcHVwID4gLmhlYWRlciArIC5jb250ZW50IHtcbiAgcGFkZGluZy10b3A6IDAuN2VtO1xufVxuLnVpLnBvcHVwOmJlZm9yZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgY29udGVudDogJyc7XG4gIHdpZHRoOiAxZW07XG4gIGhlaWdodDogMWVtO1xuICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gIHotaW5kZXg6IDI7XG4gIGJveC1zaGFkb3c6IDFweCAxcHggMHB4IDBweCAjYmFiYWJjO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFR5cGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgIFRvb2x0aXBcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBDb250ZW50ICovXG5bZGF0YS10b29sdGlwXSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbi8qIEFycm93ICovXG5bZGF0YS10b29sdGlwXTpiZWZvcmUge1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBjb250ZW50OiAnJztcbiAgZm9udC1zaXplOiAxcmVtO1xuICB3aWR0aDogMWVtO1xuICBoZWlnaHQ6IDFlbTtcbiAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbiAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICB6LWluZGV4OiAyO1xuICBib3gtc2hhZG93OiAxcHggMXB4IDBweCAwcHggI2JhYmFiYztcbn1cbi8qIFBvcHVwICovXG5bZGF0YS10b29sdGlwXTphZnRlciB7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICBjb250ZW50OiBhdHRyKGRhdGEtdG9vbHRpcCk7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgYm9yZGVyOiAxcHggc29saWQgI0Q0RDRENTtcbiAgbGluZS1oZWlnaHQ6IDEuNDI4NWVtO1xuICBtYXgtd2lkdGg6IG5vbmU7XG4gIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gIHBhZGRpbmc6IDAuODMzZW0gMWVtO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGNvbG9yOiAjMzMzMzMzO1xuICBib3JkZXItcmFkaXVzOiAwLjRyZW07XG4gIGJveC1zaGFkb3c6IDBweCAycHggNHB4IDBweCByZ2JhKDM0LCAzNiwgMzgsIDAuMTIpLCAwcHggMnB4IDEwcHggMHB4IHJnYmEoMzQsIDM2LCAzOCwgMC4xNSk7XG4gIHotaW5kZXg6IDE7XG59XG4vKiBEZWZhdWx0IFBvc2l0aW9uIChUb3AgQ2VudGVyKSAqL1xuW2RhdGEtdG9vbHRpcF06bm90KFtkYXRhLXBvc2l0aW9uXSk6YmVmb3JlIHtcbiAgdG9wOiBhdXRvO1xuICByaWdodDogYXV0bztcbiAgYm90dG9tOiAxMDAlO1xuICBsZWZ0OiA1MCU7XG4gIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gIG1hcmdpbi1sZWZ0OiAtMC4xcmVtO1xuICBtYXJnaW4tYm90dG9tOiAwLjJyZW07XG59XG5bZGF0YS10b29sdGlwXTpub3QoW2RhdGEtcG9zaXRpb25dKTphZnRlciB7XG4gIGxlZnQ6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuICBib3R0b206IDEwMCU7XG4gIG1hcmdpbi1ib3R0b206IDAuN2VtO1xufVxuLyogQW5pbWF0aW9uICovXG5bZGF0YS10b29sdGlwXTpiZWZvcmUsXG5bZGF0YS10b29sdGlwXTphZnRlciB7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG59XG5bZGF0YS10b29sdGlwXTpiZWZvcmUge1xuICBvcGFjaXR5OiAwO1xuICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZykgc2NhbGUoMCkgIWltcG9ydGFudDtcbiAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyIHRvcDtcbiAgdHJhbnNpdGlvbjogYWxsIDAuMXMgZWFzZTtcbn1cbltkYXRhLXRvb2x0aXBdOmFmdGVyIHtcbiAgb3BhY2l0eTogMTtcbiAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyIGJvdHRvbTtcbiAgdHJhbnNpdGlvbjogYWxsIDAuMXMgZWFzZTtcbn1cbltkYXRhLXRvb2x0aXBdOmhvdmVyOmJlZm9yZSxcbltkYXRhLXRvb2x0aXBdOmhvdmVyOmFmdGVyIHtcbiAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgcG9pbnRlci1ldmVudHM6IGF1dG87XG59XG5bZGF0YS10b29sdGlwXTpob3ZlcjpiZWZvcmUge1xuICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZykgc2NhbGUoMSkgIWltcG9ydGFudDtcbiAgb3BhY2l0eTogMTtcbn1cbi8qIEFuaW1hdGlvbiBQb3NpdGlvbiAqL1xuW2RhdGEtdG9vbHRpcF06YWZ0ZXIsXG5bZGF0YS10b29sdGlwXVtkYXRhLXBvc2l0aW9uPVwidG9wIGNlbnRlclwiXTphZnRlcixcbltkYXRhLXRvb2x0aXBdW2RhdGEtcG9zaXRpb249XCJib3R0b20gY2VudGVyXCJdOmFmdGVyIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpIHNjYWxlKDApICFpbXBvcnRhbnQ7XG59XG5bZGF0YS10b29sdGlwXTpob3ZlcjphZnRlcixcbltkYXRhLXRvb2x0aXBdW2RhdGEtcG9zaXRpb249XCJib3R0b20gY2VudGVyXCJdOmhvdmVyOmFmdGVyIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpIHNjYWxlKDEpICFpbXBvcnRhbnQ7XG59XG5bZGF0YS10b29sdGlwXVtkYXRhLXBvc2l0aW9uPVwibGVmdCBjZW50ZXJcIl06YWZ0ZXIsXG5bZGF0YS10b29sdGlwXVtkYXRhLXBvc2l0aW9uPVwicmlnaHQgY2VudGVyXCJdOmFmdGVyIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHNjYWxlKDApICFpbXBvcnRhbnQ7XG59XG5bZGF0YS10b29sdGlwXVtkYXRhLXBvc2l0aW9uPVwibGVmdCBjZW50ZXJcIl06aG92ZXI6YWZ0ZXIsXG5bZGF0YS10b29sdGlwXVtkYXRhLXBvc2l0aW9uPVwicmlnaHQgY2VudGVyXCJdOmhvdmVyOmFmdGVyIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHNjYWxlKDEpICFpbXBvcnRhbnQ7XG59XG5bZGF0YS10b29sdGlwXVtkYXRhLXBvc2l0aW9uPVwidG9wIGxlZnRcIl06YWZ0ZXIsXG5bZGF0YS10b29sdGlwXVtkYXRhLXBvc2l0aW9uPVwidG9wIHJpZ2h0XCJdOmFmdGVyLFxuW2RhdGEtdG9vbHRpcF1bZGF0YS1wb3NpdGlvbj1cImJvdHRvbSBsZWZ0XCJdOmFmdGVyLFxuW2RhdGEtdG9vbHRpcF1bZGF0YS1wb3NpdGlvbj1cImJvdHRvbSByaWdodFwiXTphZnRlciB7XG4gIHRyYW5zZm9ybTogc2NhbGUoMCkgIWltcG9ydGFudDtcbn1cbltkYXRhLXRvb2x0aXBdW2RhdGEtcG9zaXRpb249XCJ0b3AgbGVmdFwiXTpob3ZlcjphZnRlcixcbltkYXRhLXRvb2x0aXBdW2RhdGEtcG9zaXRpb249XCJ0b3AgcmlnaHRcIl06aG92ZXI6YWZ0ZXIsXG5bZGF0YS10b29sdGlwXVtkYXRhLXBvc2l0aW9uPVwiYm90dG9tIGxlZnRcIl06aG92ZXI6YWZ0ZXIsXG5bZGF0YS10b29sdGlwXVtkYXRhLXBvc2l0aW9uPVwiYm90dG9tIHJpZ2h0XCJdOmhvdmVyOmFmdGVyIHtcbiAgdHJhbnNmb3JtOiBzY2FsZSgxKSAhaW1wb3J0YW50O1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgIEludmVydGVkXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogQXJyb3cgKi9cbltkYXRhLXRvb2x0aXBdW2RhdGEtaW52ZXJ0ZWRdOmJlZm9yZSB7XG4gIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbn1cbi8qIEFycm93IFBvc2l0aW9uICovXG5bZGF0YS10b29sdGlwXVtkYXRhLWludmVydGVkXTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kOiAjMDAwMDAwO1xufVxuLyogUG9wdXAgICovXG5bZGF0YS10b29sdGlwXVtkYXRhLWludmVydGVkXTphZnRlciB7XG4gIGJhY2tncm91bmQ6ICMwMDAwMDA7XG4gIGNvbG9yOiAjZmZmZmZmO1xuICBib3JkZXI6IG5vbmU7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG59XG5bZGF0YS10b29sdGlwXVtkYXRhLWludmVydGVkXTphZnRlciAuaGVhZGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogbm9uZTtcbiAgY29sb3I6ICNmZmZmZmY7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgUG9zaXRpb25cbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUb3AgQ2VudGVyICovXG5bZGF0YS1wb3NpdGlvbj1cInRvcCBjZW50ZXJcIl1bZGF0YS10b29sdGlwXTphZnRlciB7XG4gIHRvcDogYXV0bztcbiAgcmlnaHQ6IGF1dG87XG4gIGxlZnQ6IDUwJTtcbiAgYm90dG9tOiAxMDAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG4gIG1hcmdpbi1ib3R0b206IDAuN2VtO1xufVxuW2RhdGEtcG9zaXRpb249XCJ0b3AgY2VudGVyXCJdW2RhdGEtdG9vbHRpcF06YmVmb3JlIHtcbiAgdG9wOiBhdXRvO1xuICByaWdodDogYXV0bztcbiAgYm90dG9tOiAxMDAlO1xuICBsZWZ0OiA1MCU7XG4gIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gIG1hcmdpbi1sZWZ0OiAtMC4xcmVtO1xuICBtYXJnaW4tYm90dG9tOiAwLjJyZW07XG59XG4vKiBUb3AgTGVmdCAqL1xuW2RhdGEtcG9zaXRpb249XCJ0b3AgbGVmdFwiXVtkYXRhLXRvb2x0aXBdOmFmdGVyIHtcbiAgdG9wOiBhdXRvO1xuICByaWdodDogYXV0bztcbiAgbGVmdDogMDtcbiAgYm90dG9tOiAxMDAlO1xuICBtYXJnaW4tYm90dG9tOiAwLjdlbTtcbn1cbltkYXRhLXBvc2l0aW9uPVwidG9wIGxlZnRcIl1bZGF0YS10b29sdGlwXTpiZWZvcmUge1xuICB0b3A6IGF1dG87XG4gIHJpZ2h0OiBhdXRvO1xuICBib3R0b206IDEwMCU7XG4gIGxlZnQ6IDFlbTtcbiAgbWFyZ2luLWxlZnQ6IC0wLjFyZW07XG4gIG1hcmdpbi1ib3R0b206IDAuMnJlbTtcbn1cbi8qIFRvcCBSaWdodCAqL1xuW2RhdGEtcG9zaXRpb249XCJ0b3AgcmlnaHRcIl1bZGF0YS10b29sdGlwXTphZnRlciB7XG4gIHRvcDogYXV0bztcbiAgbGVmdDogYXV0bztcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMTAwJTtcbiAgbWFyZ2luLWJvdHRvbTogMC43ZW07XG59XG5bZGF0YS1wb3NpdGlvbj1cInRvcCByaWdodFwiXVtkYXRhLXRvb2x0aXBdOmJlZm9yZSB7XG4gIHRvcDogYXV0bztcbiAgbGVmdDogYXV0bztcbiAgYm90dG9tOiAxMDAlO1xuICByaWdodDogMWVtO1xuICBtYXJnaW4tbGVmdDogLTAuMXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMC4ycmVtO1xufVxuLyogQm90dG9tIENlbnRlciAqL1xuW2RhdGEtcG9zaXRpb249XCJib3R0b20gY2VudGVyXCJdW2RhdGEtdG9vbHRpcF06YWZ0ZXIge1xuICBib3R0b206IGF1dG87XG4gIHJpZ2h0OiBhdXRvO1xuICBsZWZ0OiA1MCU7XG4gIHRvcDogMTAwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuICBtYXJnaW4tdG9wOiAwLjdlbTtcbn1cbltkYXRhLXBvc2l0aW9uPVwiYm90dG9tIGNlbnRlclwiXVtkYXRhLXRvb2x0aXBdOmJlZm9yZSB7XG4gIGJvdHRvbTogYXV0bztcbiAgcmlnaHQ6IGF1dG87XG4gIHRvcDogMTAwJTtcbiAgbGVmdDogNTAlO1xuICBtYXJnaW4tbGVmdDogLTAuMXJlbTtcbiAgbWFyZ2luLXRvcDogMC4ycmVtO1xufVxuLyogQm90dG9tIExlZnQgKi9cbltkYXRhLXBvc2l0aW9uPVwiYm90dG9tIGxlZnRcIl1bZGF0YS10b29sdGlwXTphZnRlciB7XG4gIGxlZnQ6IDA7XG4gIHRvcDogMTAwJTtcbiAgbWFyZ2luLXRvcDogMC43ZW07XG59XG5bZGF0YS1wb3NpdGlvbj1cImJvdHRvbSBsZWZ0XCJdW2RhdGEtdG9vbHRpcF06YmVmb3JlIHtcbiAgYm90dG9tOiBhdXRvO1xuICByaWdodDogYXV0bztcbiAgdG9wOiAxMDAlO1xuICBsZWZ0OiAxZW07XG4gIG1hcmdpbi1sZWZ0OiAtMC4xcmVtO1xuICBtYXJnaW4tdG9wOiAwLjJyZW07XG59XG4vKiBCb3R0b20gUmlnaHQgKi9cbltkYXRhLXBvc2l0aW9uPVwiYm90dG9tIHJpZ2h0XCJdW2RhdGEtdG9vbHRpcF06YWZ0ZXIge1xuICByaWdodDogMDtcbiAgdG9wOiAxMDAlO1xuICBtYXJnaW4tdG9wOiAwLjdlbTtcbn1cbltkYXRhLXBvc2l0aW9uPVwiYm90dG9tIHJpZ2h0XCJdW2RhdGEtdG9vbHRpcF06YmVmb3JlIHtcbiAgYm90dG9tOiBhdXRvO1xuICBsZWZ0OiBhdXRvO1xuICB0b3A6IDEwMCU7XG4gIHJpZ2h0OiAxZW07XG4gIG1hcmdpbi1sZWZ0OiAtMC4ycmVtO1xuICBtYXJnaW4tdG9wOiAwLjFyZW07XG59XG4vKiBMZWZ0IENlbnRlciAqL1xuW2RhdGEtcG9zaXRpb249XCJsZWZ0IGNlbnRlclwiXVtkYXRhLXRvb2x0aXBdOmFmdGVyIHtcbiAgcmlnaHQ6IDEwMCU7XG4gIHRvcDogNTAlO1xuICBtYXJnaW4tcmlnaHQ6IDAuN2VtO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG59XG5bZGF0YS1wb3NpdGlvbj1cImxlZnQgY2VudGVyXCJdW2RhdGEtdG9vbHRpcF06YmVmb3JlIHtcbiAgcmlnaHQ6IDEwMCU7XG4gIHRvcDogNTAlO1xuICBtYXJnaW4tdG9wOiAtMC4ycmVtO1xuICBtYXJnaW4tcmlnaHQ6IC0wLjFyZW07XG59XG4vKiBSaWdodCBDZW50ZXIgKi9cbltkYXRhLXBvc2l0aW9uPVwicmlnaHQgY2VudGVyXCJdW2RhdGEtdG9vbHRpcF06YWZ0ZXIge1xuICBsZWZ0OiAxMDAlO1xuICB0b3A6IDUwJTtcbiAgbWFyZ2luLWxlZnQ6IDAuN2VtO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG59XG5bZGF0YS1wb3NpdGlvbj1cInJpZ2h0IGNlbnRlclwiXVtkYXRhLXRvb2x0aXBdOmJlZm9yZSB7XG4gIGxlZnQ6IDEwMCU7XG4gIHRvcDogNTAlO1xuICBtYXJnaW4tdG9wOiAtMC4xcmVtO1xuICBtYXJnaW4tbGVmdDogMC4ycmVtO1xufVxuLyogQXJyb3cgKi9cbltkYXRhLXBvc2l0aW9ufj1cImJvdHRvbVwiXVtkYXRhLXRvb2x0aXBdOmJlZm9yZSB7XG4gIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gIGJveC1zaGFkb3c6IC0xcHggLTFweCAwcHggMHB4ICNiYWJhYmM7XG59XG5bZGF0YS1wb3NpdGlvbj1cImxlZnQgY2VudGVyXCJdW2RhdGEtdG9vbHRpcF06YmVmb3JlIHtcbiAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbiAgYm94LXNoYWRvdzogMXB4IC0xcHggMHB4IDBweCAjYmFiYWJjO1xufVxuW2RhdGEtcG9zaXRpb249XCJyaWdodCBjZW50ZXJcIl1bZGF0YS10b29sdGlwXTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICBib3gtc2hhZG93OiAtMXB4IDFweCAwcHggMHB4ICNiYWJhYmM7XG59XG5bZGF0YS1wb3NpdGlvbn49XCJ0b3BcIl1bZGF0YS10b29sdGlwXTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xufVxuLyogSW52ZXJ0ZWQgQXJyb3cgQ29sb3IgKi9cbltkYXRhLWludmVydGVkXVtkYXRhLXBvc2l0aW9ufj1cImJvdHRvbVwiXVtkYXRhLXRvb2x0aXBdOmJlZm9yZSB7XG4gIGJhY2tncm91bmQ6ICMwMDAwMDA7XG4gIGJveC1zaGFkb3c6IC0xcHggLTFweCAwcHggMHB4ICNiYWJhYmM7XG59XG5bZGF0YS1pbnZlcnRlZF1bZGF0YS1wb3NpdGlvbj1cImxlZnQgY2VudGVyXCJdW2RhdGEtdG9vbHRpcF06YmVmb3JlIHtcbiAgYmFja2dyb3VuZDogIzAwMDAwMDtcbiAgYm94LXNoYWRvdzogMXB4IC0xcHggMHB4IDBweCAjYmFiYWJjO1xufVxuW2RhdGEtaW52ZXJ0ZWRdW2RhdGEtcG9zaXRpb249XCJyaWdodCBjZW50ZXJcIl1bZGF0YS10b29sdGlwXTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kOiAjMDAwMDAwO1xuICBib3gtc2hhZG93OiAtMXB4IDFweCAwcHggMHB4ICNiYWJhYmM7XG59XG5bZGF0YS1pbnZlcnRlZF1bZGF0YS1wb3NpdGlvbn49XCJ0b3BcIl1bZGF0YS10b29sdGlwXTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kOiAjMDAwMDAwO1xufVxuW2RhdGEtcG9zaXRpb25+PVwiYm90dG9tXCJdW2RhdGEtdG9vbHRpcF06YmVmb3JlIHtcbiAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyIGJvdHRvbTtcbn1cbltkYXRhLXBvc2l0aW9ufj1cImJvdHRvbVwiXVtkYXRhLXRvb2x0aXBdOmFmdGVyIHtcbiAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyIHRvcDtcbn1cbltkYXRhLXBvc2l0aW9uPVwibGVmdCBjZW50ZXJcIl1bZGF0YS10b29sdGlwXTpiZWZvcmUge1xuICB0cmFuc2Zvcm0tb3JpZ2luOiB0b3AgY2VudGVyO1xufVxuW2RhdGEtcG9zaXRpb249XCJsZWZ0IGNlbnRlclwiXVtkYXRhLXRvb2x0aXBdOmFmdGVyIHtcbiAgdHJhbnNmb3JtLW9yaWdpbjogcmlnaHQgY2VudGVyO1xufVxuW2RhdGEtcG9zaXRpb249XCJyaWdodCBjZW50ZXJcIl1bZGF0YS10b29sdGlwXTpiZWZvcmUge1xuICB0cmFuc2Zvcm0tb3JpZ2luOiByaWdodCBjZW50ZXI7XG59XG5bZGF0YS1wb3NpdGlvbj1cInJpZ2h0IGNlbnRlclwiXVtkYXRhLXRvb2x0aXBdOmFmdGVyIHtcbiAgdHJhbnNmb3JtLW9yaWdpbjogbGVmdCBjZW50ZXI7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIFNwYWNpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkucG9wdXAge1xuICBtYXJnaW46IDBlbTtcbn1cbi8qIEV4dGVuZGluZyBmcm9tIFRvcCAqL1xuLnVpLnRvcC5wb3B1cCB7XG4gIG1hcmdpbjogMGVtIDBlbSAxZW07XG59XG4udWkudG9wLmxlZnQucG9wdXAge1xuICB0cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IGJvdHRvbTtcbn1cbi51aS50b3AuY2VudGVyLnBvcHVwIHtcbiAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyIGJvdHRvbTtcbn1cbi51aS50b3AucmlnaHQucG9wdXAge1xuICB0cmFuc2Zvcm0tb3JpZ2luOiByaWdodCBib3R0b207XG59XG4vKiBFeHRlbmRpbmcgZnJvbSBWZXJ0aWNhbCBDZW50ZXIgKi9cbi51aS5sZWZ0LmNlbnRlci5wb3B1cCB7XG4gIG1hcmdpbjogMGVtIDFlbSAwZW0gMGVtO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiByaWdodCA1MCU7XG59XG4udWkucmlnaHQuY2VudGVyLnBvcHVwIHtcbiAgbWFyZ2luOiAwZW0gMGVtIDBlbSAxZW07XG4gIHRyYW5zZm9ybS1vcmlnaW46IGxlZnQgNTAlO1xufVxuLyogRXh0ZW5kaW5nIGZyb20gQm90dG9tICovXG4udWkuYm90dG9tLnBvcHVwIHtcbiAgbWFyZ2luOiAxZW0gMGVtIDBlbTtcbn1cbi51aS5ib3R0b20ubGVmdC5wb3B1cCB7XG4gIHRyYW5zZm9ybS1vcmlnaW46IGxlZnQgdG9wO1xufVxuLnVpLmJvdHRvbS5jZW50ZXIucG9wdXAge1xuICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXIgdG9wO1xufVxuLnVpLmJvdHRvbS5yaWdodC5wb3B1cCB7XG4gIHRyYW5zZm9ybS1vcmlnaW46IHJpZ2h0IHRvcDtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgUG9pbnRlclxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tIEJlbG93IC0tLSovXG4udWkuYm90dG9tLmNlbnRlci5wb3B1cDpiZWZvcmUge1xuICBtYXJnaW4tbGVmdDogLTAuNDVlbTtcbiAgdG9wOiAtMC40NWVtO1xuICBsZWZ0OiA1MCU7XG4gIHJpZ2h0OiBhdXRvO1xuICBib3R0b206IGF1dG87XG4gIGJveC1zaGFkb3c6IC0xcHggLTFweCAwcHggMHB4ICNiYWJhYmM7XG59XG4udWkuYm90dG9tLmxlZnQucG9wdXAge1xuICBtYXJnaW4tbGVmdDogMGVtO1xufVxuLypydGw6cmVuYW1lKi9cbi51aS5ib3R0b20ubGVmdC5wb3B1cDpiZWZvcmUge1xuICB0b3A6IC0wLjQ1ZW07XG4gIGxlZnQ6IDFlbTtcbiAgcmlnaHQ6IGF1dG87XG4gIGJvdHRvbTogYXV0bztcbiAgbWFyZ2luLWxlZnQ6IDBlbTtcbiAgYm94LXNoYWRvdzogLTFweCAtMXB4IDBweCAwcHggI2JhYmFiYztcbn1cbi51aS5ib3R0b20ucmlnaHQucG9wdXAge1xuICBtYXJnaW4tcmlnaHQ6IDBlbTtcbn1cbi8qcnRsOnJlbmFtZSovXG4udWkuYm90dG9tLnJpZ2h0LnBvcHVwOmJlZm9yZSB7XG4gIHRvcDogLTAuNDVlbTtcbiAgcmlnaHQ6IDFlbTtcbiAgYm90dG9tOiBhdXRvO1xuICBsZWZ0OiBhdXRvO1xuICBtYXJnaW4tbGVmdDogMGVtO1xuICBib3gtc2hhZG93OiAtMXB4IC0xcHggMHB4IDBweCAjYmFiYWJjO1xufVxuLyotLS0gQWJvdmUgLS0tKi9cbi51aS50b3AuY2VudGVyLnBvcHVwOmJlZm9yZSB7XG4gIHRvcDogYXV0bztcbiAgcmlnaHQ6IGF1dG87XG4gIGJvdHRvbTogLTAuNDVlbTtcbiAgbGVmdDogNTAlO1xuICBtYXJnaW4tbGVmdDogLTAuNDVlbTtcbn1cbi51aS50b3AubGVmdC5wb3B1cCB7XG4gIG1hcmdpbi1sZWZ0OiAwZW07XG59XG4vKnJ0bDpyZW5hbWUqL1xuLnVpLnRvcC5sZWZ0LnBvcHVwOmJlZm9yZSB7XG4gIGJvdHRvbTogLTAuNDVlbTtcbiAgbGVmdDogMWVtO1xuICB0b3A6IGF1dG87XG4gIHJpZ2h0OiBhdXRvO1xuICBtYXJnaW4tbGVmdDogMGVtO1xufVxuLnVpLnRvcC5yaWdodC5wb3B1cCB7XG4gIG1hcmdpbi1yaWdodDogMGVtO1xufVxuLypydGw6cmVuYW1lKi9cbi51aS50b3AucmlnaHQucG9wdXA6YmVmb3JlIHtcbiAgYm90dG9tOiAtMC40NWVtO1xuICByaWdodDogMWVtO1xuICB0b3A6IGF1dG87XG4gIGxlZnQ6IGF1dG87XG4gIG1hcmdpbi1sZWZ0OiAwZW07XG59XG4vKi0tLSBMZWZ0IENlbnRlciAtLS0qL1xuLypydGw6cmVuYW1lKi9cbi51aS5sZWZ0LmNlbnRlci5wb3B1cDpiZWZvcmUge1xuICB0b3A6IDUwJTtcbiAgcmlnaHQ6IC0wLjQ1ZW07XG4gIGJvdHRvbTogYXV0bztcbiAgbGVmdDogYXV0bztcbiAgbWFyZ2luLXRvcDogLTAuNDVlbTtcbiAgYm94LXNoYWRvdzogMXB4IC0xcHggMHB4IDBweCAjYmFiYWJjO1xufVxuLyotLS0gUmlnaHQgQ2VudGVyICAtLS0qL1xuLypydGw6cmVuYW1lKi9cbi51aS5yaWdodC5jZW50ZXIucG9wdXA6YmVmb3JlIHtcbiAgdG9wOiA1MCU7XG4gIGxlZnQ6IC0wLjQ1ZW07XG4gIGJvdHRvbTogYXV0bztcbiAgcmlnaHQ6IGF1dG87XG4gIG1hcmdpbi10b3A6IC0wLjQ1ZW07XG4gIGJveC1zaGFkb3c6IC0xcHggMXB4IDBweCAwcHggI2JhYmFiYztcbn1cbi8qIEFycm93IENvbG9yIEJ5IExvY2F0aW9uICovXG4udWkuYm90dG9tLnBvcHVwOmJlZm9yZSB7XG4gIGJhY2tncm91bmQ6ICNmZmZmZmY7XG59XG4udWkucmlnaHQuY2VudGVyLnBvcHVwOmJlZm9yZSxcbi51aS5sZWZ0LmNlbnRlci5wb3B1cDpiZWZvcmUge1xuICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xufVxuLnVpLnRvcC5wb3B1cDpiZWZvcmUge1xuICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xufVxuLyogSW52ZXJ0ZWQgQXJyb3cgQ29sb3IgKi9cbi51aS5pbnZlcnRlZC5ib3R0b20ucG9wdXA6YmVmb3JlIHtcbiAgYmFja2dyb3VuZDogIzAwMDAwMDtcbn1cbi51aS5pbnZlcnRlZC5yaWdodC5jZW50ZXIucG9wdXA6YmVmb3JlLFxuLnVpLmludmVydGVkLmxlZnQuY2VudGVyLnBvcHVwOmJlZm9yZSB7XG4gIGJhY2tncm91bmQ6ICMwMDAwMDA7XG59XG4udWkuaW52ZXJ0ZWQudG9wLnBvcHVwOmJlZm9yZSB7XG4gIGJhY2tncm91bmQ6ICMwMDAwMDA7XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgQ291cGxpbmdcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBJbW1lZGlhdGUgTmVzdGVkIEdyaWQgKi9cbi51aS5wb3B1cCA+IC51aS5ncmlkOm5vdCgucGFkZGVkKSB7XG4gIHdpZHRoOiBjYWxjKDEwMCUgKyAxLjc1cmVtKTtcbiAgbWFyZ2luOiAtMC43cmVtIC0wLjg3NXJlbTtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4udWkubG9hZGluZy5wb3B1cCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIHotaW5kZXg6IC0xO1xufVxuLnVpLmFuaW1hdGluZy5wb3B1cCxcbi51aS52aXNpYmxlLnBvcHVwIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG4udWkudmlzaWJsZS5wb3B1cCB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWigwcHgpO1xuICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgVmFyaWF0aW9uc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgQmFzaWNcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuYmFzaWMucG9wdXA6YmVmb3JlIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgV2lkZVxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS53aWRlLnBvcHVwIHtcbiAgbWF4LXdpZHRoOiAzNTBweDtcbn1cbi51aVtjbGFzcyo9XCJ2ZXJ5IHdpZGVcIl0ucG9wdXAge1xuICBtYXgtd2lkdGg6IDU1MHB4O1xufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAudWkud2lkZS5wb3B1cCxcbiAgLnVpW2NsYXNzKj1cInZlcnkgd2lkZVwiXS5wb3B1cCB7XG4gICAgbWF4LXdpZHRoOiAyNTBweDtcbiAgfVxufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBGbHVpZFxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5mbHVpZC5wb3B1cCB7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXgtd2lkdGg6IG5vbmU7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkIGNvbG9ycyAgKi9cbi51aS5pbnZlcnRlZC5wb3B1cCB7XG4gIGJhY2tncm91bmQ6ICMwMDAwMDA7XG4gIGNvbG9yOiAjZmZmZmZmO1xuICBib3JkZXI6IG5vbmU7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG59XG4udWkuaW52ZXJ0ZWQucG9wdXAgLmhlYWRlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IG5vbmU7XG4gIGNvbG9yOiAjZmZmZmZmO1xufVxuLnVpLmludmVydGVkLnBvcHVwOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDAwMDA7XG4gIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgRmxvd2luZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5mbG93aW5nLnBvcHVwIHtcbiAgbWF4LXdpZHRoOiBub25lO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5taW5pLnBvcHVwIHtcbiAgZm9udC1zaXplOiAwLjhyZW07XG59XG4udWkudGlueS5wb3B1cCB7XG4gIGZvbnQtc2l6ZTogMC45cmVtO1xufVxuLnVpLnNtYWxsLnBvcHVwIHtcbiAgZm9udC1zaXplOiAwLjlyZW07XG59XG4udWkucG9wdXAge1xuICBmb250LXNpemU6IDFyZW07XG59XG4udWkubGFyZ2UucG9wdXAge1xuICBmb250LXNpemU6IDEuMXJlbTtcbn1cbi51aS5odWdlLnBvcHVwIHtcbiAgZm9udC1zaXplOiAxLjRyZW07XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgVGhlbWUgT3ZlcnJpZGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgVXNlciBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiFcbiAqICMgU2VtYW50aWMgVUkgLSBQcm9ncmVzcyBCYXJcbiAqIGh0dHA6Ly9naXRodWIuY29tL3NlbWFudGljLW9yZy9zZW1hbnRpYy11aS9cbiAqXG4gKlxuICogUmVsZWFzZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlXG4gKiBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUXG4gKlxuICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKlxuXG7ilojilojilojilojilojilojilojilojilZfilojilojilZcgIOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKVlyAgIOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl1xu4pWa4pWQ4pWQ4paI4paI4pWU4pWQ4pWQ4pWd4paI4paI4pWRICDilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilojilojilZcg4paI4paI4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWd4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWdXG4gICDilojilojilZEgICDilojilojilojilojilojilojilojilZHilojilojilojilojilojilZcgIOKWiOKWiOKVlOKWiOKWiOKWiOKWiOKVlOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4paI4paI4paI4paI4paI4pWXXG4gICDilojilojilZEgICDilojilojilZTilZDilZDilojilojilZHilojilojilZTilZDilZDilZ0gIOKWiOKWiOKVkeKVmuKWiOKWiOKVlOKVneKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4pWa4pWQ4pWQ4pWQ4pWQ4paI4paI4pWRXG4gICDilojilojilZEgICDilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVkSDilZrilZDilZ0g4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWRXG4gICDilZrilZDilZ0gICDilZrilZDilZ0gIOKVmuKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVneKVmuKVkOKVnSAgICAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWdXG5cbiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBUaGVtZSBTZWxlY3Rpb25cbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBUbyBvdmVycmlkZSBhIHRoZW1lIGZvciBhbiBpbmRpdmlkdWFsIGVsZW1lbnRcbiAgIHNwZWNpZnkgdGhlbWUgbmFtZSBiZWxvd1xuKi9cbi8qIEdsb2JhbCAqL1xuLyogRWxlbWVudHMgKi9cbi8qIENvbGxlY3Rpb25zICovXG4vKiBNb2R1bGVzICovXG4vKiBWaWV3cyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIEZvbGRlcnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBQYXRoIHRvIHRoZW1lIHBhY2thZ2VzICovXG4vKiBQYXRoIHRvIHNpdGUgb3ZlcnJpZGUgZm9sZGVyICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgSW1wb3J0IFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgSW1wb3J0IERpcmVjdGl2ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIFRoZW1lXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgIFNpdGUgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kb3JzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFBhY2thZ2VkIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRvcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogQ29tcG9uZW50J3Mgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZG9ycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBTaXRlIHRoZW1lIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICBVc2VyIEdsb2JhbCBWYXJpYWJsZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBtYXJzbyBjb2xvcnMgKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiBDb21wb25lbnQgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFByb2dyZXNzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRWxlbWVudFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogQmFyICovXG4vKiBQcm9ncmVzcyBCYXIgTGFiZWwgKi9cbi8qIExhYmVsICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgVHlwZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTdGF0ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEFjdGl2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBWYXJpYXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBBdHRhY2hlZCAqL1xuLyogSW52ZXJ0ZWQgKi9cbi8qIFNpemluZyAqL1xuLyogUGFja2FnZWQgVGhlbWUgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBQcm9ncmVzc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVsZW1lbnRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEJhciAqL1xuLyogUHJvZ3Jlc3MgQmFyIExhYmVsICovXG4vKiBMYWJlbCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFR5cGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU3RhdGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBBY3RpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgVmFyaWF0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogQXR0YWNoZWQgKi9cbi8qIEludmVydGVkICovXG4vKiBTaXppbmcgKi9cbi8qIFNpdGUgVGhlbWUgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgVXNlciBWYXJpYWJsZSBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIE1peC1pbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE92ZXJyaWRlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBFbmQgQ29uZmlnICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgUHJvZ3Jlc3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4udWkucHJvZ3Jlc3Mge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIGJvcmRlcjogbm9uZTtcbiAgbWFyZ2luOiAxZW0gMGVtIDIuNWVtO1xuICBib3gtc2hhZG93OiBub25lO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMSk7XG4gIHBhZGRpbmc6IDBlbTtcbiAgYm9yZGVyLXJhZGl1czogMC40cmVtO1xufVxuLnVpLnByb2dyZXNzOmZpcnN0LWNoaWxkIHtcbiAgbWFyZ2luOiAwZW0gMGVtIDIuNWVtO1xufVxuLnVpLnByb2dyZXNzOmxhc3QtY2hpbGQge1xuICBtYXJnaW46IDBlbSAwZW0gMS41ZW07XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgQ29udGVudFxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIEFjdGl2aXR5IEJhciAqL1xuLnVpLnByb2dyZXNzIC5iYXIge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IDAlO1xuICBtaW4td2lkdGg6IDJlbTtcbiAgYmFja2dyb3VuZDogIzg4ODg4ODtcbiAgYm9yZGVyLXJhZGl1czogMC40cmVtO1xuICB0cmFuc2l0aW9uOiB3aWR0aCAwLjFzIGVhc2UsIGJhY2tncm91bmQtY29sb3IgMC4xcyBlYXNlO1xufVxuLyogUGVyY2VudCBDb21wbGV0ZSAqL1xuLnVpLnByb2dyZXNzIC5iYXIgPiAucHJvZ3Jlc3Mge1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiBhdXRvO1xuICBmb250LXNpemU6IDAuOWVtO1xuICB0b3A6IDUwJTtcbiAgcmlnaHQ6IDAuNWVtO1xuICBsZWZ0OiBhdXRvO1xuICBib3R0b206IGF1dG87XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNyk7XG4gIHRleHQtc2hhZG93OiBub25lO1xuICBtYXJnaW4tdG9wOiAtMC41ZW07XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxuLyogTGFiZWwgKi9cbi51aS5wcm9ncmVzcyA+IC5sYWJlbCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IDEwMCU7XG4gIGZvbnQtc2l6ZTogMWVtO1xuICB0b3A6IDEwMCU7XG4gIHJpZ2h0OiBhdXRvO1xuICBsZWZ0OiAwJTtcbiAgYm90dG9tOiBhdXRvO1xuICBjb2xvcjogIzMzMzMzMztcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIHRleHQtc2hhZG93OiBub25lO1xuICBtYXJnaW4tdG9wOiAwLjJlbTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB0cmFuc2l0aW9uOiBjb2xvciAwLjRzIGVhc2U7XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgVHlwZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBJbmRpY2F0aW5nICovXG4udWkuaW5kaWNhdGluZy5wcm9ncmVzc1tkYXRhLXBlcmNlbnRePVwiMVwiXSAuYmFyLFxuLnVpLmluZGljYXRpbmcucHJvZ3Jlc3NbZGF0YS1wZXJjZW50Xj1cIjJcIl0gLmJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNEOTVDNUM7XG59XG4udWkuaW5kaWNhdGluZy5wcm9ncmVzc1tkYXRhLXBlcmNlbnRePVwiM1wiXSAuYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0VGQkM3Mjtcbn1cbi51aS5pbmRpY2F0aW5nLnByb2dyZXNzW2RhdGEtcGVyY2VudF49XCI0XCJdIC5iYXIsXG4udWkuaW5kaWNhdGluZy5wcm9ncmVzc1tkYXRhLXBlcmNlbnRePVwiNVwiXSAuYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0U2QkI0ODtcbn1cbi51aS5pbmRpY2F0aW5nLnByb2dyZXNzW2RhdGEtcGVyY2VudF49XCI2XCJdIC5iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRERDOTI4O1xufVxuLnVpLmluZGljYXRpbmcucHJvZ3Jlc3NbZGF0YS1wZXJjZW50Xj1cIjdcIl0gLmJhcixcbi51aS5pbmRpY2F0aW5nLnByb2dyZXNzW2RhdGEtcGVyY2VudF49XCI4XCJdIC5iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjQjREOTVDO1xufVxuLnVpLmluZGljYXRpbmcucHJvZ3Jlc3NbZGF0YS1wZXJjZW50Xj1cIjlcIl0gLmJhcixcbi51aS5pbmRpY2F0aW5nLnByb2dyZXNzW2RhdGEtcGVyY2VudF49XCIxMDBcIl0gLmJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM2NkRBODE7XG59XG4vKiBJbmRpY2F0aW5nIExhYmVsICovXG4udWkuaW5kaWNhdGluZy5wcm9ncmVzc1tkYXRhLXBlcmNlbnRePVwiMVwiXSAubGFiZWwsXG4udWkuaW5kaWNhdGluZy5wcm9ncmVzc1tkYXRhLXBlcmNlbnRePVwiMlwiXSAubGFiZWwge1xuICBjb2xvcjogIzMzMzMzMztcbn1cbi51aS5pbmRpY2F0aW5nLnByb2dyZXNzW2RhdGEtcGVyY2VudF49XCIzXCJdIC5sYWJlbCB7XG4gIGNvbG9yOiAjMzMzMzMzO1xufVxuLnVpLmluZGljYXRpbmcucHJvZ3Jlc3NbZGF0YS1wZXJjZW50Xj1cIjRcIl0gLmxhYmVsLFxuLnVpLmluZGljYXRpbmcucHJvZ3Jlc3NbZGF0YS1wZXJjZW50Xj1cIjVcIl0gLmxhYmVsIHtcbiAgY29sb3I6ICMzMzMzMzM7XG59XG4udWkuaW5kaWNhdGluZy5wcm9ncmVzc1tkYXRhLXBlcmNlbnRePVwiNlwiXSAubGFiZWwge1xuICBjb2xvcjogIzMzMzMzMztcbn1cbi51aS5pbmRpY2F0aW5nLnByb2dyZXNzW2RhdGEtcGVyY2VudF49XCI3XCJdIC5sYWJlbCxcbi51aS5pbmRpY2F0aW5nLnByb2dyZXNzW2RhdGEtcGVyY2VudF49XCI4XCJdIC5sYWJlbCB7XG4gIGNvbG9yOiAjMzMzMzMzO1xufVxuLnVpLmluZGljYXRpbmcucHJvZ3Jlc3NbZGF0YS1wZXJjZW50Xj1cIjlcIl0gLmxhYmVsLFxuLnVpLmluZGljYXRpbmcucHJvZ3Jlc3NbZGF0YS1wZXJjZW50Xj1cIjEwMFwiXSAubGFiZWwge1xuICBjb2xvcjogIzMzMzMzMztcbn1cbi8qIFNpbmdsZSBEaWdpdHMgKi9cbi51aS5pbmRpY2F0aW5nLnByb2dyZXNzW2RhdGEtcGVyY2VudD1cIjFcIl0gLmJhcixcbi51aS5pbmRpY2F0aW5nLnByb2dyZXNzW2RhdGEtcGVyY2VudD1cIjJcIl0gLmJhcixcbi51aS5pbmRpY2F0aW5nLnByb2dyZXNzW2RhdGEtcGVyY2VudD1cIjNcIl0gLmJhcixcbi51aS5pbmRpY2F0aW5nLnByb2dyZXNzW2RhdGEtcGVyY2VudD1cIjRcIl0gLmJhcixcbi51aS5pbmRpY2F0aW5nLnByb2dyZXNzW2RhdGEtcGVyY2VudD1cIjVcIl0gLmJhcixcbi51aS5pbmRpY2F0aW5nLnByb2dyZXNzW2RhdGEtcGVyY2VudD1cIjZcIl0gLmJhcixcbi51aS5pbmRpY2F0aW5nLnByb2dyZXNzW2RhdGEtcGVyY2VudD1cIjdcIl0gLmJhcixcbi51aS5pbmRpY2F0aW5nLnByb2dyZXNzW2RhdGEtcGVyY2VudD1cIjhcIl0gLmJhcixcbi51aS5pbmRpY2F0aW5nLnByb2dyZXNzW2RhdGEtcGVyY2VudD1cIjlcIl0gLmJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNEOTVDNUM7XG59XG4udWkuaW5kaWNhdGluZy5wcm9ncmVzc1tkYXRhLXBlcmNlbnQ9XCIxXCJdIC5sYWJlbCxcbi51aS5pbmRpY2F0aW5nLnByb2dyZXNzW2RhdGEtcGVyY2VudD1cIjJcIl0gLmxhYmVsLFxuLnVpLmluZGljYXRpbmcucHJvZ3Jlc3NbZGF0YS1wZXJjZW50PVwiM1wiXSAubGFiZWwsXG4udWkuaW5kaWNhdGluZy5wcm9ncmVzc1tkYXRhLXBlcmNlbnQ9XCI0XCJdIC5sYWJlbCxcbi51aS5pbmRpY2F0aW5nLnByb2dyZXNzW2RhdGEtcGVyY2VudD1cIjVcIl0gLmxhYmVsLFxuLnVpLmluZGljYXRpbmcucHJvZ3Jlc3NbZGF0YS1wZXJjZW50PVwiNlwiXSAubGFiZWwsXG4udWkuaW5kaWNhdGluZy5wcm9ncmVzc1tkYXRhLXBlcmNlbnQ9XCI3XCJdIC5sYWJlbCxcbi51aS5pbmRpY2F0aW5nLnByb2dyZXNzW2RhdGEtcGVyY2VudD1cIjhcIl0gLmxhYmVsLFxuLnVpLmluZGljYXRpbmcucHJvZ3Jlc3NbZGF0YS1wZXJjZW50PVwiOVwiXSAubGFiZWwge1xuICBjb2xvcjogIzMzMzMzMztcbn1cbi8qIEluZGljYXRpbmcgU3VjY2VzcyAqL1xuLnVpLmluZGljYXRpbmcucHJvZ3Jlc3Muc3VjY2VzcyAubGFiZWwge1xuICBjb2xvcjogIzFBNTMxQjtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgICBTdWNjZXNzXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLnByb2dyZXNzLnN1Y2Nlc3MgLmJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxOWE1MzEgIWltcG9ydGFudDtcbn1cbi51aS5wcm9ncmVzcy5zdWNjZXNzIC5iYXIsXG4udWkucHJvZ3Jlc3Muc3VjY2VzcyAuYmFyOjphZnRlciB7XG4gIGFuaW1hdGlvbjogbm9uZSAhaW1wb3J0YW50O1xufVxuLnVpLnByb2dyZXNzLnN1Y2Nlc3MgPiAubGFiZWwge1xuICBjb2xvcjogIzFBNTMxQjtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgV2FybmluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5wcm9ncmVzcy53YXJuaW5nIC5iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRjJDMDM3ICFpbXBvcnRhbnQ7XG59XG4udWkucHJvZ3Jlc3Mud2FybmluZyAuYmFyLFxuLnVpLnByb2dyZXNzLndhcm5pbmcgLmJhcjo6YWZ0ZXIge1xuICBhbmltYXRpb246IG5vbmUgIWltcG9ydGFudDtcbn1cbi51aS5wcm9ncmVzcy53YXJuaW5nID4gLmxhYmVsIHtcbiAgY29sb3I6ICM3OTRCMDI7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIEVycm9yXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLnByb2dyZXNzLmVycm9yIC5iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGUzYTNlICFpbXBvcnRhbnQ7XG59XG4udWkucHJvZ3Jlc3MuZXJyb3IgLmJhcixcbi51aS5wcm9ncmVzcy5lcnJvciAuYmFyOjphZnRlciB7XG4gIGFuaW1hdGlvbjogbm9uZSAhaW1wb3J0YW50O1xufVxuLnVpLnByb2dyZXNzLmVycm9yID4gLmxhYmVsIHtcbiAgY29sb3I6ICM5MTJEMkI7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5hY3RpdmUucHJvZ3Jlc3MgLmJhciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWluLXdpZHRoOiAyZW07XG59XG4udWkuYWN0aXZlLnByb2dyZXNzIC5iYXI6OmFmdGVyIHtcbiAgY29udGVudDogJyc7XG4gIG9wYWNpdHk6IDA7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwcHg7XG4gIGxlZnQ6IDBweDtcbiAgcmlnaHQ6IDBweDtcbiAgYm90dG9tOiAwcHg7XG4gIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gIGJvcmRlci1yYWRpdXM6IDAuNHJlbTtcbiAgYW5pbWF0aW9uOiBwcm9ncmVzcy1hY3RpdmUgMnMgZWFzZSBpbmZpbml0ZTtcbn1cbkBrZXlmcmFtZXMgcHJvZ3Jlc3MtYWN0aXZlIHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDAuMztcbiAgICB3aWR0aDogMDtcbiAgfVxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuZGlzYWJsZWQucHJvZ3Jlc3Mge1xuICBvcGFjaXR5OiAwLjM1O1xufVxuLnVpLmRpc2FibGVkLnByb2dyZXNzIC5iYXIsXG4udWkuZGlzYWJsZWQucHJvZ3Jlc3MgLmJhcjo6YWZ0ZXIge1xuICBhbmltYXRpb246IG5vbmUgIWltcG9ydGFudDtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFZhcmlhdGlvbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgSW52ZXJ0ZWRcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuaW52ZXJ0ZWQucHJvZ3Jlc3Mge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDgpO1xuICBib3JkZXI6IG5vbmU7XG59XG4udWkuaW52ZXJ0ZWQucHJvZ3Jlc3MgLmJhciB7XG4gIGJhY2tncm91bmQ6ICM4ODg4ODg7XG59XG4udWkuaW52ZXJ0ZWQucHJvZ3Jlc3MgLmJhciA+IC5wcm9ncmVzcyB7XG4gIGNvbG9yOiAjRjlGQUZCO1xufVxuLnVpLmludmVydGVkLnByb2dyZXNzID4gLmxhYmVsIHtcbiAgY29sb3I6ICNmZmZmZmY7XG59XG4udWkuaW52ZXJ0ZWQucHJvZ3Jlc3Muc3VjY2VzcyA+IC5sYWJlbCB7XG4gIGNvbG9yOiAjMTlhNTMxO1xufVxuLnVpLmludmVydGVkLnByb2dyZXNzLndhcm5pbmcgPiAubGFiZWwge1xuICBjb2xvcjogI0YyQzAzNztcbn1cbi51aS5pbnZlcnRlZC5wcm9ncmVzcy5lcnJvciA+IC5sYWJlbCB7XG4gIGNvbG9yOiAjZGUzYTNlO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgIEF0dGFjaGVkXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogYm90dG9tIGF0dGFjaGVkICovXG4udWkucHJvZ3Jlc3MuYXR0YWNoZWQge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBib3JkZXI6IG5vbmU7XG4gIG1hcmdpbjogMGVtO1xufVxuLnVpLnByb2dyZXNzLmF0dGFjaGVkLFxuLnVpLnByb2dyZXNzLmF0dGFjaGVkIC5iYXIge1xuICBkaXNwbGF5OiBibG9jaztcbiAgaGVpZ2h0OiAwLjJyZW07XG4gIHBhZGRpbmc6IDBweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgYm9yZGVyLXJhZGl1czogMGVtIDBlbSAwLjRyZW0gMC40cmVtO1xufVxuLnVpLnByb2dyZXNzLmF0dGFjaGVkIC5iYXIge1xuICBib3JkZXItcmFkaXVzOiAwZW07XG59XG4vKiB0b3AgYXR0YWNoZWQgKi9cbi51aS5wcm9ncmVzcy50b3AuYXR0YWNoZWQsXG4udWkucHJvZ3Jlc3MudG9wLmF0dGFjaGVkIC5iYXIge1xuICB0b3A6IDBweDtcbiAgYm9yZGVyLXJhZGl1czogMC40cmVtIDAuNHJlbSAwZW0gMGVtO1xufVxuLnVpLnByb2dyZXNzLnRvcC5hdHRhY2hlZCAuYmFyIHtcbiAgYm9yZGVyLXJhZGl1czogMGVtO1xufVxuLyogQ291cGxpbmcgKi9cbi51aS5zZWdtZW50ID4gLnVpLmF0dGFjaGVkLnByb2dyZXNzLFxuLnVpLmNhcmQgPiAudWkuYXR0YWNoZWQucHJvZ3Jlc3Mge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogYXV0bztcbiAgbGVmdDogMDtcbiAgYm90dG9tOiAxMDAlO1xuICB3aWR0aDogMTAwJTtcbn1cbi51aS5zZWdtZW50ID4gLnVpLmJvdHRvbS5hdHRhY2hlZC5wcm9ncmVzcyxcbi51aS5jYXJkID4gLnVpLmJvdHRvbS5hdHRhY2hlZC5wcm9ncmVzcyB7XG4gIHRvcDogMTAwJTtcbiAgYm90dG9tOiBhdXRvO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBSZWQgKi9cbi51aS5yZWQucHJvZ3Jlc3MgLmJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkZTNhM2U7XG59XG4udWkucmVkLmludmVydGVkLnByb2dyZXNzIC5iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkY2OTVFO1xufVxuLyogT3JhbmdlICovXG4udWkub3JhbmdlLnByb2dyZXNzIC5iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmY5NTMzO1xufVxuLnVpLm9yYW5nZS5pbnZlcnRlZC5wcm9ncmVzcyAuYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0ZGODUxQjtcbn1cbi8qIFllbGxvdyAqL1xuLnVpLnllbGxvdy5wcm9ncmVzcyAuYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0ZCQkQwODtcbn1cbi51aS55ZWxsb3cuaW52ZXJ0ZWQucHJvZ3Jlc3MgLmJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGRkUyMUY7XG59XG4vKiBPbGl2ZSAqL1xuLnVpLm9saXZlLnByb2dyZXNzIC5iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjQjVDQzE4O1xufVxuLnVpLm9saXZlLmludmVydGVkLnByb2dyZXNzIC5iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRDlFNzc4O1xufVxuLyogR3JlZW4gKi9cbi51aS5ncmVlbi5wcm9ncmVzcyAuYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzE5YTUzMTtcbn1cbi51aS5ncmVlbi5pbnZlcnRlZC5wcm9ncmVzcyAuYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzJFQ0M0MDtcbn1cbi8qIFRlYWwgKi9cbi51aS50ZWFsLnByb2dyZXNzIC5iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDBCNUFEO1xufVxuLnVpLnRlYWwuaW52ZXJ0ZWQucHJvZ3Jlc3MgLmJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM2REZGRkY7XG59XG4vKiBCbHVlICovXG4udWkuYmx1ZS5wcm9ncmVzcyAuYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzNmNTFiNTtcbn1cbi51aS5ibHVlLmludmVydGVkLnByb2dyZXNzIC5iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTRDOEZGO1xufVxuLyogVmlvbGV0ICovXG4udWkudmlvbGV0LnByb2dyZXNzIC5iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNjQzNUM5O1xufVxuLnVpLnZpb2xldC5pbnZlcnRlZC5wcm9ncmVzcyAuYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0EyOTFGQjtcbn1cbi8qIFB1cnBsZSAqL1xuLnVpLnB1cnBsZS5wcm9ncmVzcyAuYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0EzMzNDODtcbn1cbi51aS5wdXJwbGUuaW52ZXJ0ZWQucHJvZ3Jlc3MgLmJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNEQzczRkY7XG59XG4vKiBQaW5rICovXG4udWkucGluay5wcm9ncmVzcyAuYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0UwMzk5Nztcbn1cbi51aS5waW5rLmludmVydGVkLnByb2dyZXNzIC5iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkY4RURGO1xufVxuLyogQnJvd24gKi9cbi51aS5icm93bi5wcm9ncmVzcyAuYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0E1NjczRjtcbn1cbi51aS5icm93bi5pbnZlcnRlZC5wcm9ncmVzcyAuYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0Q2N0MxQztcbn1cbi8qIEdyZXkgKi9cbi51aS5ncmV5LnByb2dyZXNzIC5iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNzY3Njc2O1xufVxuLnVpLmdyZXkuaW52ZXJ0ZWQucHJvZ3Jlc3MgLmJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNEQ0REREU7XG59XG4vKiBCbGFjayAqL1xuLnVpLmJsYWNrLnByb2dyZXNzIC5iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwMDAwO1xufVxuLnVpLmJsYWNrLmludmVydGVkLnByb2dyZXNzIC5iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTQ1NDU0O1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS50aW55LnByb2dyZXNzIHtcbiAgZm9udC1zaXplOiAwLjlyZW07XG59XG4udWkudGlueS5wcm9ncmVzcyAuYmFyIHtcbiAgaGVpZ2h0OiAwLjVlbTtcbn1cbi51aS5zbWFsbC5wcm9ncmVzcyB7XG4gIGZvbnQtc2l6ZTogMC45cmVtO1xufVxuLnVpLnNtYWxsLnByb2dyZXNzIC5iYXIge1xuICBoZWlnaHQ6IDFlbTtcbn1cbi51aS5wcm9ncmVzcyB7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbn1cbi51aS5wcm9ncmVzcyAuYmFyIHtcbiAgaGVpZ2h0OiAxLjc1ZW07XG59XG4udWkubGFyZ2UucHJvZ3Jlc3Mge1xuICBmb250LXNpemU6IDEuMXJlbTtcbn1cbi51aS5sYXJnZS5wcm9ncmVzcyAuYmFyIHtcbiAgaGVpZ2h0OiAyLjVlbTtcbn1cbi51aS5iaWcucHJvZ3Jlc3Mge1xuICBmb250LXNpemU6IDEuM3JlbTtcbn1cbi51aS5iaWcucHJvZ3Jlc3MgLmJhciB7XG4gIGhlaWdodDogMy41ZW07XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgUHJvZ3Jlc3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiFcbiAqICMgU2VtYW50aWMgVUkgLSBSYXRpbmdcbiAqIGh0dHA6Ly9naXRodWIuY29tL3NlbWFudGljLW9yZy9zZW1hbnRpYy11aS9cbiAqXG4gKlxuICogUmVsZWFzZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlXG4gKiBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUXG4gKlxuICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKlxuXG7ilojilojilojilojilojilojilojilojilZfilojilojilZcgIOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKVlyAgIOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl1xu4pWa4pWQ4pWQ4paI4paI4pWU4pWQ4pWQ4pWd4paI4paI4pWRICDilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilojilojilZcg4paI4paI4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWd4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWdXG4gICDilojilojilZEgICDilojilojilojilojilojilojilojilZHilojilojilojilojilojilZcgIOKWiOKWiOKVlOKWiOKWiOKWiOKWiOKVlOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4paI4paI4paI4paI4paI4pWXXG4gICDilojilojilZEgICDilojilojilZTilZDilZDilojilojilZHilojilojilZTilZDilZDilZ0gIOKWiOKWiOKVkeKVmuKWiOKWiOKVlOKVneKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4pWa4pWQ4pWQ4pWQ4pWQ4paI4paI4pWRXG4gICDilojilojilZEgICDilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVkSDilZrilZDilZ0g4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWRXG4gICDilZrilZDilZ0gICDilZrilZDilZ0gIOKVmuKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVneKVmuKVkOKVnSAgICAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWdXG5cbiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBUaGVtZSBTZWxlY3Rpb25cbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBUbyBvdmVycmlkZSBhIHRoZW1lIGZvciBhbiBpbmRpdmlkdWFsIGVsZW1lbnRcbiAgIHNwZWNpZnkgdGhlbWUgbmFtZSBiZWxvd1xuKi9cbi8qIEdsb2JhbCAqL1xuLyogRWxlbWVudHMgKi9cbi8qIENvbGxlY3Rpb25zICovXG4vKiBNb2R1bGVzICovXG4vKiBWaWV3cyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIEZvbGRlcnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBQYXRoIHRvIHRoZW1lIHBhY2thZ2VzICovXG4vKiBQYXRoIHRvIHNpdGUgb3ZlcnJpZGUgZm9sZGVyICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgSW1wb3J0IFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgSW1wb3J0IERpcmVjdGl2ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIFRoZW1lXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgIFNpdGUgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kb3JzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFBhY2thZ2VkIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRvcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogQ29tcG9uZW50J3Mgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZG9ycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBTaXRlIHRoZW1lIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICBVc2VyIEdsb2JhbCBWYXJpYWJsZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBtYXJzbyBjb2xvcnMgKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiBDb21wb25lbnQgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBSYXRpbmdcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgVHlwZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFN0YW5kYXJkICovXG4vKiBTdGFyICovXG4vKiBIZWFydCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFN0YXRlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBWYXJpYXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQYWNrYWdlZCBUaGVtZSAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBSYXRpbmdcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgVHlwZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFN0YW5kYXJkICovXG4vKiBTdGFyICovXG4vKiBIZWFydCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFN0YXRlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBWYXJpYXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTaXRlIFRoZW1lICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIE1peC1pbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE92ZXJyaWRlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBFbmQgQ29uZmlnICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBSYXRpbmdcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4udWkucmF0aW5nIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbn1cbi51aS5yYXRpbmc6bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1yaWdodDogMGVtO1xufVxuLyogSWNvbiAqL1xuLnVpLnJhdGluZyAuaWNvbiB7XG4gIHBhZGRpbmc6IDBlbTtcbiAgbWFyZ2luOiAwZW07XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmbGV4OiAxIDAgYXV0bztcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB3aWR0aDogMS4yNWVtO1xuICBoZWlnaHQ6IGF1dG87XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4xcyBlYXNlLCBiYWNrZ3JvdW5kIDAuMXMgZWFzZSwgdGV4dC1zaGFkb3cgMC4xcyBlYXNlLCBjb2xvciAwLjFzIGVhc2U7XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFR5cGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTdGFuZGFyZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW5hY3RpdmUgSWNvbiAqL1xuLnVpLnJhdGluZyAuaWNvbiB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjE1KTtcbn1cbi8qIEFjdGl2ZSBJY29uICovXG4udWkucmF0aW5nIC5hY3RpdmUuaWNvbiB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg1KTtcbn1cbi8qIFNlbGVjdGVkIEljb24gKi9cbi51aS5yYXRpbmcgLmljb24uc2VsZWN0ZWQsXG4udWkucmF0aW5nIC5pY29uLnNlbGVjdGVkLmFjdGl2ZSB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBjb2xvcjogIzMzMzMzMztcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTdGFyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbmFjdGl2ZSAqL1xuLnVpLnN0YXIucmF0aW5nIC5pY29uIHtcbiAgd2lkdGg6IDEuMjVlbTtcbiAgaGVpZ2h0OiBhdXRvO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xNSk7XG4gIHRleHQtc2hhZG93OiBub25lO1xufVxuLyogQWN0aXZlIFN0YXIgKi9cbi51aS5zdGFyLnJhdGluZyAuYWN0aXZlLmljb24ge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICBjb2xvcjogI0ZGRTYyMyAhaW1wb3J0YW50O1xuICB0ZXh0LXNoYWRvdzogMHB4IC0xcHggMHB4ICNEREM1MDcsIC0xcHggMHB4IDBweCAjRERDNTA3LCAwcHggMXB4IDBweCAjRERDNTA3LCAxcHggMHB4IDBweCAjRERDNTA3ICFpbXBvcnRhbnQ7XG59XG4vKiBTZWxlY3RlZCBTdGFyICovXG4udWkuc3Rhci5yYXRpbmcgLmljb24uc2VsZWN0ZWQsXG4udWkuc3Rhci5yYXRpbmcgLmljb24uc2VsZWN0ZWQuYWN0aXZlIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgY29sb3I6ICNGRkNDMDAgIWltcG9ydGFudDtcbiAgdGV4dC1zaGFkb3c6IDBweCAtMXB4IDBweCAjRTZBMjAwLCAtMXB4IDBweCAwcHggI0U2QTIwMCwgMHB4IDFweCAwcHggI0U2QTIwMCwgMXB4IDBweCAwcHggI0U2QTIwMCAhaW1wb3J0YW50O1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhlYXJ0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkuaGVhcnQucmF0aW5nIC5pY29uIHtcbiAgd2lkdGg6IDEuNGVtO1xuICBoZWlnaHQ6IGF1dG87XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjE1KTtcbiAgdGV4dC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbn1cbi8qIEFjdGl2ZSBIZWFydCAqL1xuLnVpLmhlYXJ0LnJhdGluZyAuYWN0aXZlLmljb24ge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICBjb2xvcjogI0ZGNkQ3NSAhaW1wb3J0YW50O1xuICB0ZXh0LXNoYWRvdzogMHB4IC0xcHggMHB4ICNDRDA3MDcsIC0xcHggMHB4IDBweCAjQ0QwNzA3LCAwcHggMXB4IDBweCAjQ0QwNzA3LCAxcHggMHB4IDBweCAjQ0QwNzA3ICFpbXBvcnRhbnQ7XG59XG4vKiBTZWxlY3RlZCBIZWFydCAqL1xuLnVpLmhlYXJ0LnJhdGluZyAuaWNvbi5zZWxlY3RlZCxcbi51aS5oZWFydC5yYXRpbmcgLmljb24uc2VsZWN0ZWQuYWN0aXZlIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgY29sb3I6ICNGRjMwMDAgIWltcG9ydGFudDtcbiAgdGV4dC1zaGFkb3c6IDBweCAtMXB4IDBweCAjQUEwMTAxLCAtMXB4IDBweCAwcHggI0FBMDEwMSwgMHB4IDFweCAwcHggI0FBMDEwMSwgMXB4IDBweCAwcHggI0FBMDEwMSAhaW1wb3J0YW50O1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogZGlzYWJsZWQgcmF0aW5nICovXG4udWkuZGlzYWJsZWQucmF0aW5nIC5pY29uIHtcbiAgY3Vyc29yOiBkZWZhdWx0O1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICBVc2VyIEludGVyYWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWxlY3RlZCBSYXRpbmcgKi9cbi51aS5yYXRpbmcuc2VsZWN0ZWQgLmFjdGl2ZS5pY29uIHtcbiAgb3BhY2l0eTogMTtcbn1cbi51aS5yYXRpbmcuc2VsZWN0ZWQgLmljb24uc2VsZWN0ZWQsXG4udWkucmF0aW5nIC5pY29uLnNlbGVjdGVkIHtcbiAgb3BhY2l0eTogMTtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgVmFyaWF0aW9uc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi51aS5taW5pLnJhdGluZyB7XG4gIGZvbnQtc2l6ZTogMC44cmVtO1xufVxuLnVpLnRpbnkucmF0aW5nIHtcbiAgZm9udC1zaXplOiAwLjlyZW07XG59XG4udWkuc21hbGwucmF0aW5nIHtcbiAgZm9udC1zaXplOiAwLjlyZW07XG59XG4udWkucmF0aW5nIHtcbiAgZm9udC1zaXplOiAxcmVtO1xufVxuLnVpLmxhcmdlLnJhdGluZyB7XG4gIGZvbnQtc2l6ZTogMS4xcmVtO1xufVxuLnVpLmh1Z2UucmF0aW5nIHtcbiAgZm9udC1zaXplOiAxLjRyZW07XG59XG4udWkubWFzc2l2ZS5yYXRpbmcge1xuICBmb250LXNpemU6IDJyZW07XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgVGhlbWUgT3ZlcnJpZGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnUmF0aW5nJztcbiAgc3JjOiB1cmwoZGF0YTphcHBsaWNhdGlvbi94LWZvbnQtdHRmO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LEFBRUFBQUFMQUlBQUF3QXdUMU12TWdnakNCc0FBQUM4QUFBQVlHTnRZWENqMnBtOEFBQUJIQUFBQUtSbllYTndBQUFBRUFBQUFjQUFBQUFJWjJ4NVpsSmJYTVlBQUFISUFBQVJuR2hsWVdRQkdBZTVBQUFUWkFBQUFEWm9hR1ZoQStJQi9RQUFFNXdBQUFBa2FHMTBlQ3pnQUVNQUFCUEFBQUFBY0d4dlkyRXdYQ3hPQUFBVU1BQUFBRHB0WVhod0FDSUFuQUFBRkd3QUFBQWdibUZ0WmZDMW4wNEFBQlNNQUFBQlBIQnZjM1FBQXdBQUFBQVZ5QUFBQUNBQUF3SUFBWkFBQlFBQUFVd0JaZ0FBQUVjQlRBRm1BQUFBOVFBWkFJUUFBQUFBQUFBQUFBQUFBQUFBQUFBQkVBQUFBQUFBQUFBQUFBQUFBQUFBQUFCQUFBRHhaUUhnLytELzRBSGdBQ0FBQUFBQkFBQUFBQUFBQUFBQUFBQWdBQUFBQUFBQ0FBQUFBd0FBQUJRQUF3QUJBQUFBRkFBRUFKQUFBQUFnQUNBQUJBQUFBQUVBSU9ZRjhBYndEZkFqOEM3d2J2Qnc4SXJ3bC9DYzhTUHhaZi85Ly84QUFBQUFBQ0RtQVBBRThBendJL0F1OEc3d2NQQ0g4SmZ3blBFajhXVC8vZi8vQUFILzR4b0VFQVlRQVEvc0QrSVBvdytpRDR3UGdBOThEdllPdGdBREFBRUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQkFBSC8vd0FQQUFFQUFBQUFBQUFBQUFBQ0FBQTNPUUVBQUFBQUFRQUFBQUFBQUFBQUFBSUFBRGM1QVFBQUFBQUJBQUFBQUFBQUFBQUFBZ0FBTnprQkFBQUFBQUlBQVAvdEFnQUIwd0FLQUJVQUFBRXZBUThCRndjM0Z5YzNCUWMzSno4Qkh3RUhGeWNDQUxGUFQ3R0FIcDZlSG9EL0FIQVdXMzA0T0gxYkZuQUJHUnFnb0JwOHNGTlRzSHl5T254WUVuRnhFbGg4T2dBQUFBQUNBQUQvN1FJQUFkTUFDZ0FTQUFBQkx3RVBBUmNITnhjbk53VXhFUjhCQnhjbkFnQ3hUMCt4Z0I2ZW5oNkEvd0E0ZlZzV2NBRVpHcUNnR255d1UxT3dmTElCSFhFU1dIdzZBQUFBQVFBQS8rMENBQUhUQUFvQUFBRXZBUThCRndjM0Z5YzNBZ0N4VDAreGdCNmVuaDZBQVJrYW9LQWFmTEJUVTdCOEFBQUFBQUVBQUFBQUFnQUJ3QUFyQUFBQkZBNENCekVIRGdNaklpNENMd0V1QXpVMFBnSXpNaDRDRno0RE16SWVBaFVDQUFjTUVndWdCZ3dNREFZR0RBd01CcUFMRWd3SEZ5ZzJIaEFmR3hrS0Noa2JIeEFlTmlnWEFTMFFIeHNaQ3FBR0N3a0dCUWtMQnFBS0dSc2ZFQjQyS0JjSERCSUxDeElNQnhjb05oNEFBQUFBQWdBQUFBQUNBQUhBQUNzQVdBQUFBVFF1QWlNaURnSUhMZ01qSWc0Q0ZSUWVBaGN4Rng0RE16SStBajhCUGdNMUR3RWlGQ0lHTVRBbUlqUWpKeTRETlRRK0FqTXlIZ0lmQVRjK0F6TXlIZ0lWRkE0Q0J3SUFGeWcySGhBZkd4a0tDaGtiSHhBZU5pZ1hCd3dTQzZBR0RBd01CZ1lNREF3R29Bc1NEQWRib2dFQkFRRUJBYUlHQ2djRURSY2VFUWtSRUE0R0x5OEdEaEFSQ1JFZUZ3MEVCd29HQVMwZU5pZ1hCd3dTQ3dzU0RBY1hLRFllRUI4YkdRcWdCZ3NKQmdVSkN3YWdDaGtiSHhBK29nRUJBUUdpQmc0UUVRa1JIaGNOQkFjS0JqUTBCZ29IQkEwWEhoRUpFUkFPQmdBQkFBQUFBQUlBQWNBQU1RQUFBUlFPQWdjeEJ3NERJeUl1QWk4QkxnTTFORDRDTXpJZUFoY0hGd2MzSnpjK0F6TXlIZ0lWQWdBSERCSUxvQVlNREF3R0Jnd01EQWFnQ3hJTUJ4Y29OaDRLRlJNU0NDOXdRTEJ3SndVSkNna0ZIallvRndFdEVCOGJHUXFnQmdzSkJnVUpDd2FnQ2hrYkh4QWVOaWdYQXdVSUJVdEFvTUJBT3dFQ0FRRVhLRFllQUFBQkFBQUFBQUlBQWJjQUtnQUFFelEzTmpNeUZ4WVhGaGNXRnpZM05qYzJOell6TWhjV0ZSUVBBUVlqSWk4QkppY21KeVluSmljbU5RQWtKVUFSRXhJUUVBc01DZ29NQ3hBUUVoTVJRQ1VrUWJJR0J3Y0dzZ01GQlFzS0NRa0dCd0V4UHlNa0JnWUxDZ2tLQ2dvS0NRb0xCZ1lrSXo4L1Fhd0ZCYXdDQmdVTkRnNE9GUlFUQUFBQUFRQUFBQTBCMndIU0FDWUFBQk0wUHdJMkZ6WWZBaFlWRkE4QkZ4UVZGQWNHQnlZdkFRY0dCeVluSmpVMFB3RW5KalVBRUk5QkJRa0lCa0NQRUFkb0dRTURCZ1VHZ0lFR0JRWURBd0VZYUFjQkl3c0NGb0VNQVFFTWdSWUNDd1lJWkpBQkJRVUZBd0VCQWtWRkFnRUJBd1VGQXdPUVpBa0ZBQUFBQUFJQUFBQU5BZHNCMGdBa0FDNEFBQk0wUHdJMkZ6WWZBaFlWRkE4QkZ4UVZGQWNtTHdFSEJnY21KeVkxTkQ4Qkp5WTFId0VITnhjbk55OEJCd0FRajBFRkNRZ0dRSThRQjJnWkRBVUdnSUVHQlFZREF3RVlhQWMvV0JWc2F4UlhlRFkyQVNNTEFoYUJEQUVCRElFV0Fnc0dDR1NRQVFVTkFRRUNSVVVDQVFFREJRVURBNUJrQ1FVUlZYZzRPSGhWRVc1dUFBQUJBQ01BS1FIZEFYd0FHZ0FBTnpRL0FUWVhOaDhCTnpZWE5oOEJGaFVVRHdFR0J5WXZBU1kxSXdnbUNBd0xDRlM4Q0FzTUNDWUlDUFVJREFzSWpnalNDd2ttQ1FFQkNWUzdDUUVCQ1NZSkNnMEg5Z2NCQVFlUEJ3d0FBQUVBSHdBZkFYTUJjd0FzQUFBM05EOEJKeVkxTkQ4Qk5qTXlId0UzTmpNeUh3RVdGUlFQQVJjV0ZSUVBBUVlqSWk4QkJ3WWpJaThCSmpVZkNGUlVDQWduQ0F3TENGUlVDQXdMQ0NjSUNGUlVDQWduQ0FzTUNGUlVDQXNNQ0NjSVlnc0lWRlFJREFzSUp3Z0lWRlFJQ0NjSUN3d0lWRlFJQ3d3SUp3Z0lWRlFJQ0NjSURBQUFBQUFDQUFBQUpRRkpBYmNBSHdBckFBQTNOVFEzTmpzQk5UUTNOak15RnhZZEFUTXlGeFlkQVJRSEJpTWhJaWNtTlRjek5UUW5KaU1pQndZZEFRQUlDQXNLSlNZMU5DWW1DUXNJQ0FnSUMvN3RDd2dJVzVNV0ZSNGZGUlpBcFFzSUNEYzBKaVltSmpRM0NBZ0xwUXNJQ0FnSUM4QTNIaFlWRlJZZU53QUFBUUFBQUFjQmJnRzNBQ0VBQURjUk5EYzJOell6SVRJWEZoY1dGUkVVQndZSEJpTWlMd0VIQmlNaUp5WW5KalVBQmdVS0JnWUJMQVlHQ2dVR0JnVUtCUWNPQ241K0NnNEdCZ29GQmljQmNBb0lDQU1EQXdNSUNBcitrQW9JQ0FRQ0NYbDVDUUlFQ0FnS0FBQUFBd0FBQUNVQ0FBRnVBQmdBTVFCS0FBQTNORGMyTnpZek1oY1dGeFlWRkFjR0J3WWpJaWNtSnlZMU14WVhGak15TnpZM0ppY1dGUlFIQmlNaUp5WTFORGNHQnpjVUZ4WXpNamMyTlRRM05qTXlOelkxTkNjbUl5SUhCaFVBQmloRFJFdExSRU1vQmdZb1EwUkxTMFJES0FZbEpqazVRME01T1NZclFSRW1KVFUxSlNZUlFTdUVCQVFHQmdRRUVSRVpCZ1FFQkFRR0pCa2F5UW9LUVNnb0tDaEJDZ29LQ2tFb0p5Y29RUW9LT2lNakl5TTZSQ0VlSWpVbUpTVW1OU0llSVVRbEJnUUVCQVFHR0JJUkJBUUdCZ1FFR2hvakFBQUFCUUFBQUFrQ0FBR0pBQ3dBT0FCUkFHZ0FjQUFBTnpRM05qYzJNeklYTnpZek1oY1dGeFlYRmhjV0Z4WVZGREVHQndZUEFRWWpJaWNtTlRRM0ppY21KeVkxTXhZWE55WW5KalUwTndZSE54UVhGak15TnpZMU5EYzJNekkzTmpVMEp5WWpJZ2NHRlJjM05qYzJOeVluTnhZWEZoY1dGUlFIQmdjR0J3WWpQd0VXRlJRSEJnY0FCaXRCUVUwWkdoQURCUUVFQkFVRkJBVUVCUUVFSGp3OEhnNERCUVFpQlEwcEl5SVpCaVV2U3hZWkRnNFJRU3VFQkFRR0JnUUVFUkVaQmdRRUJBUUdKQmthVnhVOU16UWlJREFTR3hrWkVBWUdDeFFyT0RrL0xsQUNGeFlseVFzSlF5Y25CUndFQWdFREF3SURBd0lCQXdVQ05teHNOaGtGRkFNRkJCVVRIaDhuQ1F0S0lTZ1NIQnNmSWg0aFJDVUdCQVFFQkFZWUVoRUVCQVlHQkFRYUdpUEpKUVVpSWpZeklTQVNHaGtiQ2dvS0NoSVhNUnNiVVpBTkN5Z2hJQThBQUFNQUFBQUFBYmNCMndBNUFFb0FsQUFBTnpVME56WTdBVFkzTmpjMk56WTNOamMyTXpJWEZoY1dGUlFITXpJWEZoVVVCeFlWRkFjVUZSUUhGZ2NHS3dFaUp5WW5KaXNCSWljbU5UY1VGeFl6TWpjMk5UUW5KaU1pQndZVkZ6TXlGeFlYRmhjV0Z4WVhGaGNXT3dFeU5UUW5OamMyTlRRbk5qVTBKeVluTmpjMk5UUW5KaXNCTkRjMk5UUW5KaU1HQndZSEJnY0dCd1lIQmdjR0J3WUhCZ2NHQndZckFSVUFDd29RVGdvZEVRNEdCQU1GQmd3TER4Z1RFd29LRGpNZEZoWU9BZ29SQVJrWktDVWJHeHNqSVFaU0VBb0xKUVVGQ0FjR0JRVUdCd2dGQlVrSkJBVUZCQVFIQndNREJ3Y0NQQ1VqTndJSkJRVUZEd01EQkFrR0Jnc0xEbVVPRGdvSkd3Z0RBd1lGREFZUUFRVUdBd1FHQmdZRkJnVUdCZ1FKU2JjUEN3c0dKaFVQQ0JFUkV4TU1DZ2tKRkJRaEd4d1dGUjRaRlFvS0ZoTUdCaDBXS0JjWEJnY01EQW9MRHhJSEJRWUdCUWNJQlFZR0JRZ1NBUUVCQVFJQ0FRRURBZ0VVTHdnSUJRb0xDZ3NKRGhRSENRa0VBUTBOQ2c4TEN4QWRIUkVjRFE0SUVCRVRFdzBHRkFFSEJ3VUVDQWdGQlFVRkFnTzNBQUFEQUFELzJ3RzNBYmNBUEFCTkFKa0FBRGMxTkRjMk93RXlOelkzTmpzQk1oY1dCeFVXRlJRVkZoVVVCeFlWRkFjR0t3RVdGUlFIQmdjR0l5SW5KaWNtSnlZbkppY21KeVluSXlJbkpqVTNGQmNXTXpJM05qVTBKeVlqSWdjR0ZSY3pNaGNXRnhZWEZoY1dGeFlYRmhjV0Z4WVhGaGNXRnpJM05qVTBKeVkxTXpJM05qVTBKeVlqTmpjMk5UUW5OalUwSnlZbk5qVTBKeVlyQVNJSElnY0dCd1lIQmdjR0l3WXJBUlVBQ3dvUVVnWWhKUnNiSGlBb0dSa0JFUW9DRGhZV0hUTU9DZ29URXhnUEN3b0ZCZ0lCQkFNRkRoRWRDazRRQ2dzbEJRVUlCd1lGQlFZSENBVUZTUWtFQmdZRkJnVUdCZ1lFQXdZRkFSQUdEQVVHQXdNSUd3a0tEZzVsRGdzTEJnWUpCQU1ERHdVRkJRa0NEZzRaSlNVOEFnY0hBd01IQndRRUJRVUVDYmUzRHdzS0RBd0hCaGNXSndJV0hRWUdFeFlLQ2hVWkhoWVZIUm9pRXhRSkNnc0pEZzRNREF3TkJnNFdKUWNMQ3cra0J3VUdCZ1VIQ0FVR0JnVUlwQU1DQlFZRkJRY0lCQVVIQndJVEJ3d1RFeEVSQncwT0hCRWRIUkFMQ3c4S0RRMEZDUWtIRkE0SkN3b0xDZ1VJQ0JnTUN4VURBZ0VCQWdNQkFRRzNBQUFBQVFBQUFBMEE3Z0hTQUJRQUFCTTBQd0kyRnhFSEJnY21KeVkxTkQ4Qkp5WTFBQkNQUVFVSmdRWUZCZ01EQVJob0J3RWpDd0lXZ1F3Qi9vTkZBZ0VCQXdVRkF3T1FaQWtGQUFBQUFBSUFBQUFBQWdBQnR3QXFBRmtBQUJNME56WXpNaGNXRnhZWEZoYzJOelkzTmpjMk16SVhGaFVVRHdFR0l5SXZBU1luSmljbUp5WW5KalV6RkI4Qk56WTFOQ2NtSnlZbkppY21JeUlIQmdjR0J3WUhCaU1pSnlZbkppY21KeVlqSWdjR0J3WUhCZ2NHRlFBa0pVQVJFeElRRUFzTUNnb01DeEFRRWhNUlFDVWtRYklHQndjR3NnTUZCUXNLQ1FrR0J5VTFwcVkxQmdZSkNnNE5EZzBQRGhJUkRnOEtDZ2NGQ1FrRkJ3b0tEdzRSRWc0UERRNE5EZ29KQmdZQk1UOGpKQVlHQ3dvSkNnb0tDZ2tLQ3dZR0pDTS9QMEdzQlFXc0FnWUZEUTRPRGhVVUV6QTFvSjgyTUJjU0Vnb0xCZ2NDQWdjSEN3c0tDUWdIQndnSkNnc0xCd2NDQWdjR0N3b1NFaGNBQUFBQ0FBQUFCd0Z1QWJjQUlRQW9BQUEzRVRRM05qYzJNeUV5RnhZWEZoVVJGQWNHQndZaklpOEJCd1lqSWljbUp5WTFQd0VmQVJFaEVRQUdCUW9HQmdFc0JnWUtCUVlHQlFvRkJ3NEtmbjRLRGdZR0NnVUdKWklaZWY3Y0p3RndDZ2dJQXdNREF3Z0lDdjZRQ2dnSUJBSUplWGtKQWdRSUNBb0lqUmwwQVdQK25RQUFBQUFCQUFBQUpRSGJBYmNBTWdBQU56VTBOelk3QVRVME56WXpNaGNXSFFFVUJ3WXJBU0luSmowQk5DY21JeUlIQmgwQk16SVhGaDBCRkFjR0l5RWlKeVkxQUFnSUM4QW1KalExSmlVRkJRZ1NDQVVGRmhVZkhoVVdIQXNJQ0FnSUMvN3RDd2dJUUtVTENBZzNOU1VtSmlVMVNRZ0ZCZ1lGQ0VrZUZoVVZGaDQzQ0FnTHBRc0lDQWdJQ3dBQUFBSUFBUUFOQWRzQjBnQWlBQzBBQUJNMlB3STJNeklmQWhZWEZnOEJGeFlIQmlNaUx3RUhCaU1pSnlZL0FTY21OeDhDTHdFL0FTOENFd0VEREpCQUJnZ0pCVUdPRGdJRENtY1lBZ1FDQ0FNSWY0SUZCZ1lFQWdFWmFRZ0M3aEJiRWdJTlNua0lMZ0VCSmdnQ0ZZSUxDNElWQWdnSUNXV1BDZ1VGQTBSRUF3VUZDbzlsQ1FpcENUQm1FdzFIRWhGYy91MEFBQUFEQUFBQUFBSEpBYmNBRkFBbEFIa0FBRGMxTkRjMk93RXlGeFlkQVJRSEJpc0JJaWNtTlRjVUZ4WXpNamMyTlRRbkppTWlCd1lWRnpVME56WXpOamMyTnpZM05qYzJOelkzTmpjMk56WTNOak15RnhZWEZoY1dGeFlYRmhVVUZSUUhCZ2NHQnhRSEJnY0dCek15RnhZVkZBY1dGUllIRmdjR0J4WUhCZ2NqSWljbUp5WW5KaWNpSnlZMUFBVUdCMU1IQlFZR0JRZFRCd1lGSlFVRkNBY0dCUVVHQndnRkJXUUZCUWdHRHc4T0ZBa0ZCQVFCQVFNQ0FRSUVCQVlGQnc0S0NnY0hCUVFDQXdFQkFnTURBZ1lDQWdJQkFVOFhFQkFRQlFFT0JRVUVDd01SRWlZbEV4WVhEQXdXSkFvSEJRWTN0d2NHQlFVR0I3Y0lCUVVGQlFna0J3WUZCUVlIQ0FVR0JnVUlKTGNIQlFZQkVCQVRHUWtGQ1FnR0JRd0xCZ2NJQ1FVR0F3TUZCQWNIQmdZSUNRUUVCd3NMQ3dZR0NnSURCQU1DQkJFUUZoa1NEQW9WRWhBUkVBc2dGQlVCQkFVRUJBY01BUVVGQ0FBQUFBQURBQUQvMndISkFaSUFGQUFsQUhrQUFEY1VGeFlYTnhZM05qMEJOQ2NtQnljR0J3WWRBVGMwTnpZM0ZoY1dGUlFIQmljR0p5WTFGelUwTnpZM0ZqYzJOelkzTmpjWE5oY1dCeFlYRmdjV0J4UUhGaFVVQndZSEp4WVhGaGNXRlJZWEZoY1dGUlFWRkFjR0J3WUhCZ2NHQndZbkJpY21KeVluSmljbUp5WW5KaWNtSnlZbkppY2lKeVkxQUFVR0IxTUhCUVlHQlFkVEJ3WUZKUVVGQ0FjR0JRVUdCd2dGQldRR0JRY0tKQllNREJjV0V5VW1FaEVEQ3dRRkJRNEJCUkFRRUJkUEFRRUNBZ0lHQWdNREFnRUJBd0lFQlFjSENnb09Cd1VHQkFRQ0FRSURBUUVFQkFVSkZBNFBEd1lJQlFXbEJ3WUZBUUVCQndRSnRRa0VCd0VCQVFVR0I3ZVRCd1lFQVFFRUJnY0pCQVlCQVFZRUNaUzRCd1lFQWdFTkJ3VUNCZ01CQVFFWEV5RUpFaEFSRUJjSURoQWFGaEVQQVFFRkFnUUNCUUVMQlFjS0RBa0lCQVVIQ2dVR0J3Z0RCZ0lFQVFFSEJRa0lCd1VNQ3djRUNnY0dDUm9SRVE4Q0JnUUlBQUFBQVFBQUFBRUFBSnRoNTdkZkR6ejFBQXNDQUFBQUFBRFAvR09EQUFBQUFNLzhZNE1BQVAvYkFnQUIyd0FBQUFnQUFnQUFBQUFBQUFBQkFBQUI0UC9nQUFBQ0FBQUFBQUFDQUFBQkFBQUFBQUFBQUFBQUFBQUFBQUFBSEFBQUFBQUFBQUFBQUFBQUFBRUFBQUFDQUFBQUFnQUFBQUlBQUFBQ0FBQUFBZ0FBQUFJQUFBQUNBQUFBQWR3QUFBSGNBQUFDQUFBakFaTUFId0ZKQUFBQmJnQUFBZ0FBQUFJQUFBQUNBQUFBQWdBQUFBRUFBQUFDQUFBQUFXNEFBQUhjQUFBQjNBQUJBZHdBQUFIY0FBQUFBQUFBQUFvQUZBQWVBRW9BY0FDS0FNb0JRQUdJQWN3Q0NnSlVBb0lDeGdNRUF6b0RwZ1JLQlJnRjdBWVNCcGdHMmdjZ0Iyb0lHQWpPQUFBQUFRQUFBQndBbWdBRkFBQUFBQUFDQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUE0QXJnQUJBQUFBQUFBQkFBd0FBQUFCQUFBQUFBQUNBQTRBUUFBQkFBQUFBQUFEQUF3QUlnQUJBQUFBQUFBRUFBd0FUZ0FCQUFBQUFBQUZBQllBREFBQkFBQUFBQUFHQUFZQUxnQUJBQUFBQUFBS0FEUUFXZ0FEQUFFRUNRQUJBQXdBQUFBREFBRUVDUUFDQUE0QVFBQURBQUVFQ1FBREFBd0FJZ0FEQUFFRUNRQUVBQXdBVGdBREFBRUVDUUFGQUJZQURBQURBQUVFQ1FBR0FBd0FOQUFEQUFFRUNRQUtBRFFBV2dCeUFHRUFkQUJwQUc0QVp3QldBR1VBY2dCekFHa0Fid0J1QUNBQU1RQXVBREFBY2dCaEFIUUFhUUJ1QUdkeVlYUnBibWNBY2dCaEFIUUFhUUJ1QUdjQVVnQmxBR2NBZFFCc0FHRUFjZ0J5QUdFQWRBQnBBRzRBWndCR0FHOEFiZ0IwQUNBQVp3QmxBRzRBWlFCeUFHRUFkQUJsQUdRQUlBQmlBSGtBSUFCSkFHTUFid0JOQUc4QWJ3QnVBQzRBQXdBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBPT0pIGZvcm1hdCgndHJ1ZXR5cGUnKSwgdXJsKGRhdGE6YXBwbGljYXRpb24vZm9udC13b2ZmO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LGQwOUdSazlVVkU4QUFCY1VBQW9BQUFBQUZzd0FBUUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFCRFJrWWdBQUFBOUFBQUV1RUFBQkxobzZUdklFOVRMeklBQUJQWUFBQUFZQUFBQUdBSUl3Z2JZMjFoY0FBQUZEZ0FBQUNrQUFBQXBLUGFtYnhuWVhOd0FBQVUzQUFBQUFnQUFBQUlBQUFBRUdobFlXUUFBQlRrQUFBQU5nQUFBRFlCR0FlNWFHaGxZUUFBRlJ3QUFBQWtBQUFBSkFQaUFmMW9iWFI0QUFBVlFBQUFBSEFBQUFCd0xPQUFRMjFoZUhBQUFCV3dBQUFBQmdBQUFBWUFIRkFBYm1GdFpRQUFGYmdBQUFFOEFBQUJQUEMxbjA1d2IzTjBBQUFXOUFBQUFDQUFBQUFnQUFNQUFBRUFCQVFBQVFFQkIzSmhkR2x1WndBQkFnQUJBRHI0SEFMNEd3UDRHQVFlQ2dBWlUvK0xpeDRLQUJsVC80dUxEQWVMWnZpVStIUUZIUUFBQVAwUEhRQUFBUUlSSFFBQUFBa2RBQUFTMkJJQUhRRUJCdzBQRVJRWkhpTW9MVEkzUEVGR1MxQlZXbDlrYVc1emVIMkNoNHh5WVhScGJtZHlZWFJwYm1kMU1IVXhkVEl3ZFVVMk1EQjFSVFl3TVhWRk5qQXlkVVUyTUROMVJUWXdOSFZGTmpBMWRVWXdNRFIxUmpBd05YVkdNREEyZFVZd01FTjFSakF3UkhWR01ESXpkVVl3TWtWMVJqQTJSWFZHTURjd2RVWXdPRGQxUmpBNE9IVkdNRGc1ZFVZd09FRjFSakE1TjNWR01EbERkVVl4TWpOMVJqRTJOSFZHTVRZMUFBQUNBWWtBR2dBY0FnQUJBQVFBQndBS0FBMEFWZ0NXQUwwQkFnR01BZVFDYndMd0E0Y0Q1UVIwQlFNRmRnWmdCOE1Ka1F0eEM3b00yUTFqRGdnT21SQVlFWnI4bEE3OGxBNzhsQTc3bEE3NGxQZXRGZnRGcFR6M05EejdOUHRGY2ZjVSt4QnQrMFQzTXQ3M01qaHQ5MFQzRlBjUUJmdVUrMFlWK3dSUm9mY1FNT1AzRVozRDl3WEQrd1gzRVhrd002SDdFUHNFeFFVTytKVDNyUlg3UmFVODl6UTgrelQ3UlhIM0ZQc1FiZnRFOXpMZTl6STRiZmRFOXhUM0VBWDdsUHRHRll1TGkvZXh3L3NGOXhGNU1ET2greEQ3Qk1VRkR2aVU5NjBWKzBXbFBQYzBQUHMwKzBWeDl4VDdFRzM3UlBjeTN2Y3lPRzMzUlBjVTl4QUZEdmlVOThFVmkyQjRaRzV3Q0l1TCt6VDdOQVY3ZTN0N2U0dDdpM3ViZTVzSSt6VDNOQVZ1cG5peWk3YUwzTTNOM0l1Mmk3SjRwbTZtcUxLZXRvdmNpODFKaXpvSUR2aVU5OEVWaTl4SnpUcUxZSXRrZUhCdWNLaGtubUNMT290SlNZczZpMkNlWktod0NJdUw5elQ3TkFXYmU1dDdtNHViaTV1Ym01c0k5elQzTkFXb3BwNnlpN1lJTUUwVit6YjdOZ1dLaW9xS2lvdUtpNHFNaW93SSt6YjNOZ1Y2bTRHaGk2T0x1YkN3dVl1amk2R0JtM29JdWxlNnZ3V2JuS0dWbzR1NWk3Qm1pMTJMYzRGMWVuc0lEdmlVOThFVmkyQjRaRzV3Q0l1TCt6VDdOQVY3ZTN0N2U0dDdpM3ViZTVzSSt6VDNOQVZ1cG5peWk3YUwzTTNOM0l1bmk2V0RvWDRJWEVEM0JFdEwrelQzUlBkVSt3VExzc1lGbDQ2WWpaaUwzSXZOU1lzNkNBNkw5OFVWaTdXWHJLT2lvNk90bDdhTGxvdVhpWmlIbDRlV2haYUVsb1NVaFpLRms0U1NoWktFa3BLU2taT1NrcEdVa1phU0NKYVNscEdYajVpUGw0MldpN2FMclgramM2TjBsMnFMWVl0aGRXQmdZQWo3UnZ0QUJZZUloNG1HaTRhTGg0MkhqZ2o3UnZkQUJZbU5pWTJIajRpT2hwR0RsSVNVaFpXRmxJV1ZocGFIbVlhWWlaaUxtQWdPWjR2M3R4V0xrcENQbG8wSTl5T2d6UGNXQlk2U2tJK1JpNUNMa0llUGhBakwreGIzSTNZRmxvbVFoNHVFaTRhSmg0YUdDQ01tcFBzakJZdUtpNG1MaUl1SGlvaUppSW1JaUlxSGk0aUxoNHlIalFqN0ZNLzdGVWNGaDRtSGlvaUxoNHVJakltT2lZNktqb3VQaTR5TGpZeU9DS1AzSXlQd0JZYVFpWkNMandnT1o0djN0eFdMa3BDUGxvMEk5eU9nelBjV0JZNlNrSStSaTVDTGtJZVBoQWpMK3hiM0kzWUZsb21RaDR1RWk0YUpoNGFHQ0NNbXBQc2pCWXVLaTRtTGlJdUNoNGFEaTRpTGg0eUhqUWo3Rk0vN0ZVY0ZoNG1IaW9pTGg0dUlqSW1PaVk2S2pvdVBpNHlMall5T0NLUDNJeVB3QllhUWlaQ0xqd2pLZVJYak4zYjdEZmNBeFBaU2QvY040dC83REoxVjl3RlYrd0VGRHE3M1poV0xrNDJSa1pFSXNiSUZrWkNSanBPTGtvdVNpSkNHQ044MjkxRDNVQVdRa0pLT2tvdVRpNUdJa1lZSXNXUUZrWWFOaEl1RWk0T0poWVdGQ1B1Sis0a0ZoWVdGaVlPTGhJdUVqWWFSQ1BzaTl5SUZoWkNKa291U0NBNzdBYXJ0Rll1U2pwS1FrQWpmM3pmZkJZYVFpSktMazR1U2pwS1FrQWl5c2dXUmtKR09rNHVTaTVLSWtJWUkzemZmM3dXUWtKS09rNHVTaTVLSWtJWUlzbVFGa0lhT2hJdUVpNE9JaElhR0NEYzMzemNGa0lhT2hJdUVpNE9JaFlhRkNHUmtCWWFHaElpRWk0T0xoSTZHa0FnMzN6YzNCWWFHaElpRWk0T0xoWTZGa0Foa3NnV0drWWlSaTVNSUR2dExpOHNWaS9jNUJZdVNqcEtRa0pDUWtvNlNpd2lWaTR2Q0JZdXVsNm1rcEtTa3FwaXVpNjZMcVg2a2NxUnltRzJMYUFpTFZKU0xCWktMa29pUWhwQ0dqb1NMaEFpTCt6a0ZpNE9JaFlhR2hvV0VpWVNMQ1B1bml3V0VpNFNOaHBHR2tJaVJpNU1JNXZkVUZmY25pNHZDQll1ZmhKeDhtbjJaZXBKM2kzYUxlb1I5ZlgxOGczcUxkd2lMVkFVTyt5YUxzaFdMK0FRRmk1R05rWStSanBDUWo1S05qNDJQakkrTENQZkFpd1dQaTQrS2o0bVJpWkNIajRhUGhZMkZpNFVJaS93RUJZdUVpWVdIaG9lR2hvZUZpSWlLaG9xSGk0R0xoSTZFa1FqN0V2Y04reEw3RFFXRWhZT0lnb3VIaTRlTGg0MkVqb2FQaUpDSGtJbVJpNUlJRG92M1hSV0xrbzJSajVLbHRxK3Z1S1c0cGJ1WnZZdTlpN3Q5dUhHNGNhOW5wV0NQaEkyRmk0U0xoWW1FaDRSeFlHZG9YbkFJWG5GYmZsbUxXWXRibUY2bFhxWm5ybkcyaDVLSmtvdVJDTENMRmFSa3EyeXhkTEYwdEgrNGk3aUx0SmV4b3JHaXE2cWtzbTY0WjYxZ29aWjNrWGFMZEl0bmZtMXljbkp5Ylg5b2l3aG9pMjJYY3FSeXBINnBpNitMb3BHZ2xwOWdkV2RwYmw0STl4aXdGWXVIaklpT2lJNklqb3FQaTQrTGpveU9qbzJPalk2TGo0dWJrSm1YbDVlV21aR2JpNCtMam95T2pvMk9qWTZMandpTGo0bU9pWTZJallpTmg0dHppM2VDZW5wNmVvSjNpM01JRG92M1hSV0xrbzJTajVHb3VLK3V0cVczcGJxWXZvdWNpNXlKbklnSW02Y0ZqWTZOakkrTGpJdU5pNDJKallxT2lvK0pqb21PaVk2S2pvbU9pWTZKam9xTmlveUtqb21NaVl1SGk0cUxpb3VMQ0hkbmJWVmpRMk5EYlZWM1p3aDljZ1dKaUlpSmlJdUppMzZTZEppSWpZbU9pNDZMalkrVWxKbHZsM0tjZEo5MG9IZWllNldIa1ltU2k1SUlzSXNWcWxxMFo3MTFDS0d6QlhxWGZwcUNub0tkaHA2TG9JdWlrYUNXbjJCMVoybHVYZ2ozR0xBVmk0ZU1pSTZJam9pT2lvK0xqNHVPakk2T2pZNk5qb3VQaTV1UW1aZVhsNWFaa1p1TGo0dU9qSTZPalk2TmpvdVBDSXVQaVk2SmpvaU5pSTJIaTNPTGQ0SjZlbnA2Z25lTGN3amkrMTBWb0xBRnRJK3dtSzJocnFLbnFLS3ZkcTF3cDJ1aENKMnJCWjEvbkh5Y2VweDZtSHFXZVkrRWpZV0xoSXVFaVlXSGhJUi9nSDErZkc5cWFYSm1lV1Y1WTRKaGl3aTUzQlhiOXlRRmpJS01nNHVFaTNDRGMzeDFmSFYzZkhPQkNBNkwxQldMOTBzRmk1V1BsSktTa3BLVGo1YUxDTm1MQlpLUG1KcWVwSmFabFplVmxZK1FqNU9ObDQyV2pwZU9tSStZa1pXVGs1T1NrNDZWaTV1TG1ZaVloWmlGbElHU2ZnaVNmbzU1aTNXTGVZZDVnWGdJdm9zRm40dWNoSmw4bW4yU2VvdDNpM3FHZklKOWpZU0xoWXVFaTN5SWZvUitpNGVMaDR1SGkzZUdlbjk5aTNDRGRudDhDSHQ4ZFlOd2l3aG1pd1Y1aTNtTmVZOTVrSGVSYzVOMWszNlBoNHNJT1lzRmdJdURqb1NTaEpLSGxJdVZDTENkRll1R2pJZVBpSStIajRtUWk1Q0xqNDJQajQ2T2pZK0xrSXVRaVpDSWpvZVBoNDJHaTRhTGg0bUhoNGVJaW9hTGhnalVlUldVaXdXTmk0NkxqNHFPaTQrS2pZcU9pNCtLajRtUWlvNktqWXFOaW8rS2o0bVFpbzZLaklxemZxdUVwSXNJcm9zRnI0dWVtb3VyaTVDS2tZcVFrWTZRa0k2U2pwS05rb3VTaTVLSmtvaVJsWldRbG91WWk1Q0trSW1SaVpHSmo0aU9DSkdNa0krUGxJK1VqWktMa291VmlKT0RrNFNTZ28rQ2l3Z21pd1dMbHBDYWxKNlVucENiaTVhTG5vaVloSlNGbEgrUWVZdUdob2VEaVlDSmY0aC9oMytJZm9XQmc0S0hoNFNDZ0g0SWk0cUlpWWlHaDRhSWg0bUlpSWlJaDRlR2g0YUhoNGVIaUlpSGlJZUhpSWlIaUllS2g0bUlpb2lMQ0lLTGkvdExCUTZMOTBzVmkvZExCWXVWajVPU2s1S1NrNDZXaXdqZGl3V1BpNWlQb1pPa2s2Q1JuWkNkajU2Tm40c0lxNHNGcG91Z2c1eDhtM3lUZDR0eENJdUpCWmQ4a0h1TGQ0dUhpNGVMaDVKK2puNkxmSXVFaTRTSmhaUjlrSHlMZW90M2hIcDhmSDE5ZW9SM2l3aFlpd1dWZUk5NWkzbUxkSWg2aEg2RWZvS0Jmb1YraFgySGU0dUJpNE9QZzVLRmtZYVRoNVNIbFlpVGlwT0trNHFUaUpNSWlaU0lrWWlQZ1pTQmw0Q2FlS1IrbW9TUENEMkxCWUNMZzQrRWtvU1NoNVNMbFFpdzl6Z1ZpNGFNaDQrSWo0ZVBpWkNMa0l1UGpZK1BqbzZOajR1UWk1Q0prSWlPaDQrSGpZYUxob3VIaVllSGg0aUtob3VHQ05UN09CV1Vpd1dPaTQ2S2o0bVBpbytJam9pUGg0K0lqb2VQaUkrSGo0YVBobzZIam9pTmlJNkhqNGFPaG82SWk0cVdmcEtEajRZSWs0T1JnWTUrajM2T2dJMS9qWUNQZzVDR25ZdVhqNUdVa3BTT21ZdWVpNWFHbW9LZmdwNkdtb3VXQ1BDTEJaU0xsSStTa3BPVGpwT0xsWXVTaVpLSGxJZVVobytGaTQ2UGpZK05rWTJSakpDTGtJdVlocGFCbFk2UmpaS0xrZ2lMa29tU2lKS0lrb2FRaFk2TWtJeVJpNUNMbTRhWGdwT0JrbjZQZTRzSVpvc0Zjb3RyaEdOOWlvdUlpb2FKaDRxSGlvbUtpWXFJaW9hS2g0bUhpb2lLaVl1SGlvaUxoNHFJaTRtTENJS0xpL3RMQlE3N2xJdjN0eFdMa3BDUGxvMEk5eU9nelBjV0JZNlNrSStSaXdpTC9CTDdGVWNGaDRtSGlvaUxoNHVJakltT2lZNktqb3VQaTR5TGpZeU9DS1AzSXlQd0JZYVFpWkNMandnT2kvZkZGWXUxbDZ5am9xT2pyWmUyaTVhTGw0bVloNWVIbG9XV2hKYUVsSVdTaFpPRWtvV1NoSktTa3BHVGtwS1JsSkdXa2dpV2twYVJsNCtZajVlTmxvdTJpNjEvbzNPamRKZHFpMkdMWVhWZ1lHQUkrMGI3UUFXSGlJZUpob3VHaTRlTmg0NEkrMGIzUUFXSmpZbU5oNCtJam9hUmc1U0VsSVdWaFpTRmxZYVdoNW1HbUltWWk1Z0lzSXNWaTJ1Y2FhOW9DUGM2K3pUM092Y3pCYSt2bksyTHE0dWJpWmlIbDRlWGhwU0Zrb1NTZzVHQ2o0S1FnbzJDallPTmdZdUJpNEtMZ0lsL2hvQ0dnSVdDaEFpQmc0T0ZoSVNFaFlhRmhvYUlob2FKaFl1Rmk0YU5pSkNHa0lhUmhKR0Vrb09SZ1pPQ2tvQ1JnSkIva0lDTmdvc0lnWXVCaTRPSmdvbUNpWUtHZ29lRGhZU0VoWVNHZ29kL2gzK0pmb3Q3Q0E3N0pvdXlGWXY0QkFXTGtZMlJqNUdPa0pDUGtvMlBqWStNajRzSTk4Q0xCWStMajRxUGlaR0prSWVQaG8rRmpZV0xoUWlML0FRRmk0U0poWWVHaDRhR2g0V0lpSXFHaW9lTGdZdUVqb1NSQ1BzUzl3MzdFdnNOQllTRmc0aUNpNGVMaDR1SGpZU09obytJa0llUWlaR0xrZ2l3a3hYM0p2Y2hwSEwzRGZzSWkvZjMrN2lMaS92M0JRNW5pOHNWaS9jNUJZdVNqcEtRa0pDUWtvNlNpd2ozVkl1THdnV0xycGlwcEtTa3BLbVlyb3V2aTZsK3BIS2tjcGR0aTJnSWkwSUZpNGFLaG9lSWg0ZUhpWWFMQ0htTEJZYUxoNDJIajRlT2lwQ0xrQWlMMUFXTG40T2NmWnA5bVhxU2RvdDNpM3FFZlgxOGZJUjZpM2NJaTFTbml3V1NpNUtJa0lhUWhvNkVpNFFJaS9zNUJZdURpSVdHaG9hRmhJbUVpd2o3cDRzRmhJdUVqWWFSaHBDSWtZdVRDQTVualBlNkZZeVFrSTZValFqM0k2RE05eFlGajVLUGo1R0xrSXVRaDQrRUNNdjdGdmNqZGdXVWlaQ0lqWWFOaG9pRmhZVUlJeWFrK3lNRmpJV0tob21IaVlpSWlZYUxpSXVIakllTkNQc1V6L3NWUndXSGlZZUtpSXVIaTRlTmlZNkpqNHVRakpFSW8vY2pJL0FGaFpHSmtZMlFDUGVCK3owVm5JTGxXM3J4aUo2Wm1OVFMrd3lkZ3B4ZTU0djdwd1VPWjR2Q0ZZdjNTd1dMa0kyUGpvK1BqbytOa0lzSTNvc0ZrSXVQaVk2SWo0ZU5oNHVHQ0l2N1N3V0xob21IaDRlSWg0ZUtob3NJT0lzRmhvdUhqSWVQaUkrSmo0dVFDTEN2Rll1R2pJZVBoNDZJa0ltUWk1Q0xqNDJQam82UGpZK0xrSXVRaVpDSWpvZVBoNDJHaTRhTGhvbUloNGVJaW9hTGhnanZaeFdMOTBzRmk1Q05qNDZPajQrUGpaQ0xqNHlTa0pXV2xaYVZsNVNYbUp1Vmw1R1JqbzZPa0k2UmpaQ05rSXlQakk2TWtZMlRDSXlTakpHTWo0eVBqWkNPa1k2UmpwQ1BqbzZQajQyUWk1U0xrNHFTaVpLSmtZaVBpSkNJam9pUGhvNkdqWWVNaHdpTmg0eUdqSWFNaFl1SGk0aUxpSXVIaTRlTGc0dUVpWVNKaEltRmlZZUpoNG1GaDRXTGlvcUppb21KaUlxSmlva0lpNHFLaUlxSkNOcUxCWnFMbUlXV2dKYUFrSCtMZkl0NmhuMkFmNDZEallTTGhJdDloMzZDZjQrQmkzK0hnSW1BaFlLRWhJMTJobm1BZmdoL2ZYaURjb3NJWm9zRmZvdCtqSHlPZkk1L2pvT09nNDEvajMyUWM1TjhqNFNNaG91SGpZaU9oNCtKajR1UUNBNW5pL2M1Rll1R2pZYU9pSStIajRtUWl3amVpd1dRaTQrTmpvK1BqbzJRaTVBSWkvZEtCWXVRaVpDSGpvaVBoNDJHaXdnNGl3V0dpNGVKaDRlSWlJbUdpNFlJaS90S0JiRDNKaFdMa0l5UGo0K09qcENOa0l1UWk0K0pqNGlPaDQySGk0YUxob21IaUllSGg0ZUtob3VHaTRhTWlJK0hqNHFQaTVBSTcvc25GWXYzU3dXTGtJMlFqNDZPajQrTmtJdVNpNXFQbzVPWmtKZVBrNDZUalplT21vNmFqcGlNbUlzSXNJc0ZwSXVlZzVkOWxuNlFlb2wxa29TUmdvMkFqNENMZ0llQWxIK1Bmb3Q5aTRXSmhJaUNsb0NRZkl0N2kzeUZmb0dBQ0lDQWZvWjhpd2c4aXdXTWlJeUppNG1NaVl5SmpZbU1pSXlLaTRtUGhJMkdqWWVOaDQyR2pZT01oSXlFaTRTTGhvdUhpNGlMaVl1R2lvWUlpb1dLaG9tSGlvZUpoNGlHaDRlSWg0YUloNGlGaUlTSmhJbURpb0tMaG91SGpZaVBoNCtJajRpUmlKR0prSXFQQ0lxUGlwR0trb21UaXBHS2o0cU9pWkNKa1lpUWlKQ0lqb1dTZ1paK25JS1hnWmFCbG9HV2hKR0hpNGFMaDQySGp3aUlqb21RaTQ4SUR2aVVGUGlVRllzTUNnQUFBQUFEQWdBQmtBQUZBQUFCVEFGbUFBQUFSd0ZNQVdZQUFBRDFBQmtBaEFBQUFBQUFBQUFBQUFBQUFBQUFBQUVRQUFBQUFBQUFBQUFBQUFBQUFBQUFBRUFBQVBGbEFlRC80UC9nQWVBQUlBQUFBQUVBQUFBQUFBQUFBQUFBQUNBQUFBQUFBQUlBQUFBREFBQUFGQUFEQUFFQUFBQVVBQVFBa0FBQUFDQUFJQUFFQUFBQUFRQWc1Z1h3QnZBTjhDUHdMdkJ1OEhEd2l2Q1g4Snp4SS9GbC8vMy8vd0FBQUFBQUlPWUE4QVR3RFBBajhDN3didkJ3OElmd2wvQ2M4U1B4WlAvOS8vOEFBZi9qR2dRUUJoQUJEK3dQNGcrakQ2SVBqQStBRDN3TzlnNjJBQU1BQVFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUVBQWYvL0FBOEFBUUFBQUFFQUFKclZsTEpmRHp6MUFBc0NBQUFBQUFEUC9HT0RBQUFBQU0vOFk0TUFBUC9iQWdBQjJ3QUFBQWdBQWdBQUFBQUFBQUFCQUFBQjRQL2dBQUFDQUFBQUFBQUNBQUFCQUFBQUFBQUFBQUFBQUFBQUFBQUFIQUFBQUFBQUFBQUFBQUFBQUFFQUFBQUNBQUFBQWdBQUFBSUFBQUFDQUFBQUFnQUFBQUlBQUFBQ0FBQUFBZHdBQUFIY0FBQUNBQUFqQVpNQUh3RkpBQUFCYmdBQUFnQUFBQUlBQUFBQ0FBQUFBZ0FBQUFFQUFBQUNBQUFBQVc0QUFBSGNBQUFCM0FBQkFkd0FBQUhjQUFBQUFGQUFBQndBQUFBQUFBNEFyZ0FCQUFBQUFBQUJBQXdBQUFBQkFBQUFBQUFDQUE0QVFBQUJBQUFBQUFBREFBd0FJZ0FCQUFBQUFBQUVBQXdBVGdBQkFBQUFBQUFGQUJZQURBQUJBQUFBQUFBR0FBWUFMZ0FCQUFBQUFBQUtBRFFBV2dBREFBRUVDUUFCQUF3QUFBQURBQUVFQ1FBQ0FBNEFRQUFEQUFFRUNRQURBQXdBSWdBREFBRUVDUUFFQUF3QVRnQURBQUVFQ1FBRkFCWUFEQUFEQUFFRUNRQUdBQXdBTkFBREFBRUVDUUFLQURRQVdnQnlBR0VBZEFCcEFHNEFad0JXQUdVQWNnQnpBR2tBYndCdUFDQUFNUUF1QURBQWNnQmhBSFFBYVFCdUFHZHlZWFJwYm1jQWNnQmhBSFFBYVFCdUFHY0FVZ0JsQUdjQWRRQnNBR0VBY2dCeUFHRUFkQUJwQUc0QVp3QkdBRzhBYmdCMEFDQUFad0JsQUc0QVpRQnlBR0VBZEFCbEFHUUFJQUJpQUhrQUlBQkpBR01BYndCTkFHOEFid0J1QUM0QUF3QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQT09KSBmb3JtYXQoJ3dvZmYnKTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xufVxuLnVpLnJhdGluZyAuaWNvbiB7XG4gIGZvbnQtZmFtaWx5OiAnUmF0aW5nJztcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG4vKiBFbXB0eSBTdGFyICovXG4udWkucmF0aW5nIC5pY29uOmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICdcXGYwMDUnO1xufVxuLyogQWN0aXZlIFN0YXIgKi9cbi51aS5yYXRpbmcgLmFjdGl2ZS5pY29uOmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICdcXGYwMDUnO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFN0YXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVuZmlsbGVkIFN0YXIgKi9cbi51aS5zdGFyLnJhdGluZyAuaWNvbjpiZWZvcmUge1xuICBjb250ZW50OiAnXFxmMDA1Jztcbn1cbi8qIEFjdGl2ZSBTdGFyICovXG4udWkuc3Rhci5yYXRpbmcgLmFjdGl2ZS5pY29uOmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICdcXGYwMDUnO1xufVxuLyogUGFydGlhbCAqL1xuLnVpLnN0YXIucmF0aW5nIC5wYXJ0aWFsLmljb246YmVmb3JlIHtcbiAgY29udGVudDogJ1xcZjAwNic7XG59XG4udWkuc3Rhci5yYXRpbmcgLnBhcnRpYWwuaWNvbiB7XG4gIGNvbnRlbnQ6ICdcXGYwMDUnO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhlYXJ0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBFbXB0eSBIZWFydFxuLnVpLmhlYXJ0LnJhdGluZyAuaWNvbjpiZWZvcmUge1xuICBjb250ZW50OiAnXFxmMDhhJztcbn1cbiovXG4udWkuaGVhcnQucmF0aW5nIC5pY29uOmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICdcXGYwMDQnO1xufVxuLyogQWN0aXZlICovXG4udWkuaGVhcnQucmF0aW5nIC5hY3RpdmUuaWNvbjpiZWZvcmUge1xuICBjb250ZW50OiAnXFxmMDA0Jztcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIE92ZXJyaWRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIVxuICogIyBTZW1hbnRpYyBVSSAtIFNlYXJjaFxuICogaHR0cDovL2dpdGh1Yi5jb20vc2VtYW50aWMtb3JnL3NlbWFudGljLXVpL1xuICpcbiAqXG4gKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2VcbiAqIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVRcbiAqXG4gKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qXG5cbuKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVlyAg4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4pWXICAg4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWXXG7ilZrilZDilZDilojilojilZTilZDilZDilZ3ilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKWiOKWiOKVlyDilojilojilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilZTilZDilZDilZDilZDilZ1cbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4pWU4paI4paI4paI4paI4pWU4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilojilojilojilojilojilZdcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVlOKVkOKVkOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4paI4paI4pWR4pWa4paI4paI4pWU4pWd4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilZrilZDilZDilZDilZDilojilojilZFcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWRIOKVmuKVkOKVnSDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZFcbiAgIOKVmuKVkOKVnSAgIOKVmuKVkOKVnSAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWdICAgICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ1cblxuKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIFRoZW1lIFNlbGVjdGlvblxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFRvIG92ZXJyaWRlIGEgdGhlbWUgZm9yIGFuIGluZGl2aWR1YWwgZWxlbWVudFxuICAgc3BlY2lmeSB0aGVtZSBuYW1lIGJlbG93XG4qL1xuLyogR2xvYmFsICovXG4vKiBFbGVtZW50cyAqL1xuLyogQ29sbGVjdGlvbnMgKi9cbi8qIE1vZHVsZXMgKi9cbi8qIFZpZXdzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgRm9sZGVyc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFBhdGggdG8gdGhlbWUgcGFja2FnZXMgKi9cbi8qIFBhdGggdG8gc2l0ZSBvdmVycmlkZSBmb2xkZXIgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBJbXBvcnQgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBJbXBvcnQgRGlyZWN0aXZlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgVGhlbWVcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgU2l0ZSBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0IHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRvcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogUGFja2FnZWQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZG9ycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBDb21wb25lbnQncyBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kb3JzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFNpdGUgdGhlbWUgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgIFVzZXIgR2xvYmFsIFZhcmlhYmxlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIG1hcnNvIGNvbG9ycyAqL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuIENvbXBvbmVudCBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0ICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgU2VhcmNoXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogU2VhcmNoIFByb21wdCAqL1xuLyogUmVzdWx0IEJveCAqL1xuLyogUmVzdWx0ICovXG4vKiBSZXN1bHQgSW1hZ2UgKi9cbi8qIFJlc3VsdCBDb250ZW50ICovXG4vKiBEZXNjcmlwdGlvbiAqL1xuLyogUHJpY2UgKi9cbi8qIFNwZWNpYWwgTWVzc2FnZSAqL1xuLyogQWxsIFJlc3VsdHMgTGluayAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIEZvY3VzICovXG4vKiBIb3ZlciAqL1xuLyogTG9hZGluZyAqL1xuLyogQWN0aXZlIENhdGVnb3J5ICovXG4vKiBBY3RpdmUgUmVzdWx0ICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgVHlwZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBTZWxlY3Rpb24gKi9cbi8qIENhdGVnb3J5ICovXG4vKiBQYWNrYWdlZCBUaGVtZSAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFNlYXJjaFxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFNlYXJjaCBQcm9tcHQgKi9cbi8qIFJlc3VsdCBCb3ggKi9cbi8qIFJlc3VsdCAqL1xuLyogUmVzdWx0IEltYWdlICovXG4vKiBSZXN1bHQgQ29udGVudCAqL1xuLyogRGVzY3JpcHRpb24gKi9cbi8qIFByaWNlICovXG4vKiBTcGVjaWFsIE1lc3NhZ2UgKi9cbi8qIEFsbCBSZXN1bHRzIExpbmsgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBGb2N1cyAqL1xuLyogSG92ZXIgKi9cbi8qIExvYWRpbmcgKi9cbi8qIEFjdGl2ZSBDYXRlZ29yeSAqL1xuLyogQWN0aXZlIFJlc3VsdCAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFR5cGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogU2VsZWN0aW9uICovXG4vKiBDYXRlZ29yeSAqL1xuLyogU2l0ZSBUaGVtZSAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgT3ZlcnJpZGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBNaXgtaW5zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBPdmVycmlkZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRW5kIENvbmZpZyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTZWFyY2hcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4udWkuc2VhcmNoIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuLnVpLnNlYXJjaCA+IC5wcm9tcHQge1xuICBtYXJnaW46IDBlbTtcbiAgb3V0bGluZTogbm9uZTtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMCk7XG4gIHRleHQtc2hhZG93OiBub25lO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGxpbmUtaGVpZ2h0OiAxLjIxNDI4NTcxZW07XG4gIHBhZGRpbmc6IDAuOTkyODU3MTRlbSAxLjRlbTtcbiAgZm9udC1zaXplOiAxZW07XG4gIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMzQsIDM2LCAzOCwgMC4xNSk7XG4gIGNvbG9yOiAjMzMzMzMzO1xuICBib3gtc2hhZG93OiAwZW0gMGVtIDBlbSAwZW0gdHJhbnNwYXJlbnQgaW5zZXQ7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4xcyBlYXNlLCBjb2xvciAwLjFzIGVhc2UsIGJveC1zaGFkb3cgMC4xcyBlYXNlLCBib3JkZXItY29sb3IgMC4xcyBlYXNlO1xufVxuLnVpLnNlYXJjaCAucHJvbXB0IHtcbiAgYm9yZGVyLXJhZGl1czogNTAwcmVtO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBJY29uXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLnNlYXJjaCAucHJvbXB0IH4gLnNlYXJjaC5pY29uIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgIFJlc3VsdHNcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuc2VhcmNoID4gLnJlc3VsdHMge1xuICBkaXNwbGF5OiBub25lO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMTAwJTtcbiAgbGVmdDogMCU7XG4gIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciB0b3A7XG4gIHdoaXRlLXNwYWNlOiBub3JtYWw7XG4gIGJhY2tncm91bmQ6ICNGRkZGRkY7XG4gIG1hcmdpbi10b3A6IDAuNWVtO1xuICB3aWR0aDogMThlbTtcbiAgYm9yZGVyLXJhZGl1czogMC40cmVtO1xuICBib3gtc2hhZG93OiAwcHggMnB4IDRweCAwcHggcmdiYSgzNCwgMzYsIDM4LCAwLjEyKSwgMHB4IDJweCAxMHB4IDBweCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpO1xuICBib3JkZXI6IDFweCBzb2xpZCAjRDRENEQ1O1xuICB6LWluZGV4OiA5OTg7XG59XG4udWkuc2VhcmNoID4gLnJlc3VsdHMgPiA6Zmlyc3QtY2hpbGQge1xuICBib3JkZXItcmFkaXVzOiAwLjRyZW0gMC40cmVtIDBlbSAwZW07XG59XG4udWkuc2VhcmNoID4gLnJlc3VsdHMgPiA6bGFzdC1jaGlsZCB7XG4gIGJvcmRlci1yYWRpdXM6IDBlbSAwZW0gMC40cmVtIDAuNHJlbTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBSZXN1bHRcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuc2VhcmNoID4gLnJlc3VsdHMgLnJlc3VsdCB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGZvbnQtc2l6ZTogMWVtO1xuICBwYWRkaW5nOiAwLjllbSAxLjFlbTtcbiAgY29sb3I6ICMzMzMzMzM7XG4gIGxpbmUtaGVpZ2h0OiAxLjMzO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiYSgzNCwgMzYsIDM4LCAwLjEpO1xufVxuLnVpLnNlYXJjaCA+IC5yZXN1bHRzIC5yZXN1bHQ6bGFzdC1jaGlsZCB7XG4gIGJvcmRlci1ib3R0b206IG5vbmUgIWltcG9ydGFudDtcbn1cbi8qIEltYWdlICovXG4udWkuc2VhcmNoID4gLnJlc3VsdHMgLnJlc3VsdCAuaW1hZ2Uge1xuICBmbG9hdDogcmlnaHQ7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIHdpZHRoOiA1ZW07XG4gIGhlaWdodDogM2VtO1xuICBib3JkZXItcmFkaXVzOiAwLjI1ZW07XG59XG4udWkuc2VhcmNoID4gLnJlc3VsdHMgLnJlc3VsdCAuaW1hZ2UgaW1nIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiBhdXRvO1xuICBoZWlnaHQ6IDEwMCU7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgICBJbmZvXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLnNlYXJjaCA+IC5yZXN1bHRzIC5yZXN1bHQgLmltYWdlICsgLmNvbnRlbnQge1xuICBtYXJnaW46IDBlbSA2ZW0gMGVtIDBlbTtcbn1cbi51aS5zZWFyY2ggPiAucmVzdWx0cyAucmVzdWx0IC50aXRsZSB7XG4gIG1hcmdpbjogLTAuMTQyODU3MTRlbSAwZW0gMGVtO1xuICBmb250LWZhbWlseTogJ0V4byAyJywgJ0xhdG8nLCBBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgZm9udC1zaXplOiAxZW07XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODUpO1xufVxuLnVpLnNlYXJjaCA+IC5yZXN1bHRzIC5yZXN1bHQgLmRlc2NyaXB0aW9uIHtcbiAgbWFyZ2luLXRvcDogMDtcbiAgZm9udC1zaXplOiAwLjllbTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC40KTtcbn1cbi51aS5zZWFyY2ggPiAucmVzdWx0cyAucmVzdWx0IC5wcmljZSB7XG4gIGZsb2F0OiByaWdodDtcbiAgY29sb3I6ICMxOWE1MzE7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgTWVzc2FnZVxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5zZWFyY2ggPiAucmVzdWx0cyA+IC5tZXNzYWdlIHtcbiAgcGFkZGluZzogMWVtIDFlbTtcbn1cbi51aS5zZWFyY2ggPiAucmVzdWx0cyA+IC5tZXNzYWdlIC5oZWFkZXIge1xuICBmb250LWZhbWlseTogJ0V4byAyJywgJ0xhdG8nLCBBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDFyZW07XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBjb2xvcjogIzMzMzMzMztcbn1cbi51aS5zZWFyY2ggPiAucmVzdWx0cyA+IC5tZXNzYWdlIC5kZXNjcmlwdGlvbiB7XG4gIG1hcmdpbi10b3A6IDAuMjVyZW07XG4gIGZvbnQtc2l6ZTogMWVtO1xuICBjb2xvcjogIzMzMzMzMztcbn1cbi8qIFZpZXcgQWxsIFJlc3VsdHMgKi9cbi51aS5zZWFyY2ggPiAucmVzdWx0cyA+IC5hY3Rpb24ge1xuICBkaXNwbGF5OiBibG9jaztcbiAgYm9yZGVyLXRvcDogbm9uZTtcbiAgYmFja2dyb3VuZDogI0YzRjRGNTtcbiAgcGFkZGluZzogMC45ZW0gMWVtO1xuICBjb2xvcjogIzMzMzMzMztcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkuc2VhcmNoID4gLnByb21wdDpmb2N1cyB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgzNCwgMzYsIDM4LCAwLjM1KTtcbiAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC45NSk7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGluZ1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5sb2FkaW5nLnNlYXJjaCAuaW5wdXQgPiBpLmljb246YmVmb3JlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBjb250ZW50OiAnJztcbiAgdG9wOiA1MCU7XG4gIGxlZnQ6IDUwJTtcbiAgbWFyZ2luOiAtMC42NWVtIDBlbSAwZW0gLTAuNjVlbTtcbiAgd2lkdGg6IDEuM2VtO1xuICBoZWlnaHQ6IDEuM2VtO1xuICBib3JkZXItcmFkaXVzOiA1MDByZW07XG4gIGJvcmRlcjogMC4yZW0gc29saWQgcmdiYSgwLCAwLCAwLCAwLjEpO1xufVxuLnVpLmxvYWRpbmcuc2VhcmNoIC5pbnB1dCA+IGkuaWNvbjphZnRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgY29udGVudDogJyc7XG4gIHRvcDogNTAlO1xuICBsZWZ0OiA1MCU7XG4gIG1hcmdpbjogLTAuNjVlbSAwZW0gMGVtIC0wLjY1ZW07XG4gIHdpZHRoOiAxLjNlbTtcbiAgaGVpZ2h0OiAxLjNlbTtcbiAgYW5pbWF0aW9uOiBidXR0b24tc3BpbiAwLjZzIGxpbmVhcjtcbiAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XG4gIGJvcmRlci1yYWRpdXM6IDUwMHJlbTtcbiAgYm9yZGVyLWNvbG9yOiAjNzY3Njc2IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICBib3JkZXItd2lkdGg6IDAuMmVtO1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggdHJhbnNwYXJlbnQ7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5zZWFyY2ggPiAucmVzdWx0cyAucmVzdWx0OmhvdmVyLFxuLnVpLmNhdGVnb3J5LnNlYXJjaCA+IC5yZXN1bHRzIC5jYXRlZ29yeSAucmVzdWx0OmhvdmVyIHtcbiAgYmFja2dyb3VuZDogI0Y5RkFGQjtcbn1cbi51aS5zZWFyY2ggLmFjdGlvbjpob3ZlciB7XG4gIGJhY2tncm91bmQ6ICNFMEUwRTA7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuY2F0ZWdvcnkuc2VhcmNoID4gLnJlc3VsdHMgLmNhdGVnb3J5LmFjdGl2ZSB7XG4gIGJhY2tncm91bmQ6ICNGM0Y0RjU7XG59XG4udWkuY2F0ZWdvcnkuc2VhcmNoID4gLnJlc3VsdHMgLmNhdGVnb3J5LmFjdGl2ZSA+IC5uYW1lIHtcbiAgY29sb3I6ICMzMzMzMzM7XG59XG4udWkuc2VhcmNoID4gLnJlc3VsdHMgLnJlc3VsdC5hY3RpdmUsXG4udWkuY2F0ZWdvcnkuc2VhcmNoID4gLnJlc3VsdHMgLmNhdGVnb3J5IC5yZXN1bHQuYWN0aXZlIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBib3JkZXItbGVmdC1jb2xvcjogcmdiYSgzNCwgMzYsIDM4LCAwLjEpO1xuICBiYWNrZ3JvdW5kOiAjRjNGNEY1O1xuICBib3gtc2hhZG93OiBub25lO1xufVxuLnVpLnNlYXJjaCA+IC5yZXN1bHRzIC5yZXN1bHQuYWN0aXZlIC50aXRsZSB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODUpO1xufVxuLnVpLnNlYXJjaCA+IC5yZXN1bHRzIC5yZXN1bHQuYWN0aXZlIC5kZXNjcmlwdGlvbiB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODUpO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgVHlwZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgU2VsZWN0aW9uXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLnNlYXJjaC5zZWxlY3Rpb24gLnByb21wdCB7XG4gIGJvcmRlci1yYWRpdXM6IDAuNHJlbTtcbn1cbi8qIFJlbW92ZSBpbnB1dCAqL1xuLnVpLnNlYXJjaC5zZWxlY3Rpb24gPiAuaWNvbi5pbnB1dCA+IC5yZW1vdmUuaWNvbiB7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IGF1dG87XG4gIG9wYWNpdHk6IDA7XG4gIGNvbG9yOiAnJztcbiAgdG9wOiAwZW07XG4gIHJpZ2h0OiAwZW07XG4gIHRyYW5zaXRpb246IGNvbG9yIDAuMXMgZWFzZSwgb3BhY2l0eSAwLjFzIGVhc2U7XG59XG4udWkuc2VhcmNoLnNlbGVjdGlvbiA+IC5pY29uLmlucHV0ID4gLmFjdGl2ZS5yZW1vdmUuaWNvbiB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgb3BhY2l0eTogMC44O1xuICBwb2ludGVyLWV2ZW50czogYXV0bztcbn1cbi51aS5zZWFyY2guc2VsZWN0aW9uID4gLmljb24uaW5wdXQ6bm90KFtjbGFzcyo9XCJsZWZ0IGljb25cIl0pID4gLmljb24gfiAucmVtb3ZlLmljb24ge1xuICByaWdodDogMS44NTcxNGVtO1xufVxuLnVpLnNlYXJjaC5zZWxlY3Rpb24gPiAuaWNvbi5pbnB1dCA+IC5yZW1vdmUuaWNvbjpob3ZlciB7XG4gIG9wYWNpdHk6IDE7XG4gIGNvbG9yOiAjZGUzYTNlO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgIENhdGVnb3J5XG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmNhdGVnb3J5LnNlYXJjaCAucmVzdWx0cyB7XG4gIHdpZHRoOiAyOGVtO1xufVxuLyogQ2F0ZWdvcnkgKi9cbi51aS5jYXRlZ29yeS5zZWFyY2ggPiAucmVzdWx0cyAuY2F0ZWdvcnkge1xuICBiYWNrZ3JvdW5kOiAjRjNGNEY1O1xuICBib3gtc2hhZG93OiBub25lO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiYSgzNCwgMzYsIDM4LCAwLjEpO1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMXMgZWFzZSwgYm9yZGVyLWNvbG9yIDAuMXMgZWFzZTtcbn1cbi8qIExhc3QgQ2F0ZWdvcnkgKi9cbi51aS5jYXRlZ29yeS5zZWFyY2ggPiAucmVzdWx0cyAuY2F0ZWdvcnk6bGFzdC1jaGlsZCB7XG4gIGJvcmRlci1ib3R0b206IG5vbmU7XG59XG4vKiBGaXJzdCAvIExhc3QgKi9cbi51aS5jYXRlZ29yeS5zZWFyY2ggPiAucmVzdWx0cyAuY2F0ZWdvcnk6Zmlyc3QtY2hpbGQgLm5hbWUgKyAucmVzdWx0IHtcbiAgYm9yZGVyLXJhZGl1czogMGVtIDAuNHJlbSAwZW0gMGVtO1xufVxuLnVpLmNhdGVnb3J5LnNlYXJjaCA+IC5yZXN1bHRzIC5jYXRlZ29yeTpsYXN0LWNoaWxkIC5yZXN1bHQ6bGFzdC1jaGlsZCB7XG4gIGJvcmRlci1yYWRpdXM6IDBlbSAwZW0gMC40cmVtIDBlbTtcbn1cbi8qIENhdGVnb3J5IFJlc3VsdCAqL1xuLnVpLmNhdGVnb3J5LnNlYXJjaCA+IC5yZXN1bHRzIC5jYXRlZ29yeSAucmVzdWx0IHtcbiAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbiAgbWFyZ2luLWxlZnQ6IDEwMHB4O1xuICBib3JkZXItbGVmdDogMXB4IHNvbGlkIHJnYmEoMzQsIDM2LCAzOCwgMC4xNSk7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2JhKDM0LCAzNiwgMzgsIDAuMSk7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xcyBlYXNlLCBib3JkZXItY29sb3IgMC4xcyBlYXNlO1xuICBwYWRkaW5nOiAwLjllbSAxLjFlbTtcbn1cbi51aS5jYXRlZ29yeS5zZWFyY2ggPiAucmVzdWx0cyAuY2F0ZWdvcnk6bGFzdC1jaGlsZCAucmVzdWx0Omxhc3QtY2hpbGQge1xuICBib3JkZXItYm90dG9tOiBub25lO1xufVxuLyogQ2F0ZWdvcnkgUmVzdWx0IE5hbWUgKi9cbi51aS5jYXRlZ29yeS5zZWFyY2ggPiAucmVzdWx0cyAuY2F0ZWdvcnkgPiAubmFtZSB7XG4gIHdpZHRoOiAxMDBweDtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGZvbnQtZmFtaWx5OiAnRXhvIDInLCAnTGF0bycsIEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMWVtO1xuICBmbG9hdDogMWVtO1xuICBmbG9hdDogbGVmdDtcbiAgcGFkZGluZzogMC40ZW0gMWVtO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC40KTtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFZhcmlhdGlvbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTGVmdCAvIFJpZ2h0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWlbY2xhc3MqPVwibGVmdCBhbGlnbmVkXCJdLnNlYXJjaCA+IC5yZXN1bHRzIHtcbiAgcmlnaHQ6IGF1dG87XG4gIGxlZnQ6IDAlO1xufVxuLnVpW2NsYXNzKj1cInJpZ2h0IGFsaWduZWRcIl0uc2VhcmNoID4gLnJlc3VsdHMge1xuICByaWdodDogMCU7XG4gIGxlZnQ6IGF1dG87XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgRmx1aWRcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuZmx1aWQuc2VhcmNoIC5yZXN1bHRzIHtcbiAgd2lkdGg6IDEwMCU7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5taW5pLnNlYXJjaCB7XG4gIGZvbnQtc2l6ZTogMC44ZW07XG59XG4udWkuc21hbGwuc2VhcmNoIHtcbiAgZm9udC1zaXplOiAwLjllbTtcbn1cbi51aS5zZWFyY2gge1xuICBmb250LXNpemU6IDFlbTtcbn1cbi51aS5sYXJnZS5zZWFyY2gge1xuICBmb250LXNpemU6IDEuMWVtO1xufVxuLnVpLmJpZy5zZWFyY2gge1xuICBmb250LXNpemU6IDEuM2VtO1xufVxuLnVpLmh1Z2Uuc2VhcmNoIHtcbiAgZm9udC1zaXplOiAxLjRlbTtcbn1cbi51aS5tYXNzaXZlLnNlYXJjaCB7XG4gIGZvbnQtc2l6ZTogMS43ZW07XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgVGhlbWUgT3ZlcnJpZGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgT3ZlcnJpZGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyohXG4gKiAjIFNlbWFudGljIFVJIC0gU2hhcGVcbiAqIGh0dHA6Ly9naXRodWIuY29tL3NlbWFudGljLW9yZy9zZW1hbnRpYy11aS9cbiAqXG4gKlxuICogUmVsZWFzZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlXG4gKiBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUXG4gKlxuICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKlxuXG7ilojilojilojilojilojilojilojilojilZfilojilojilZcgIOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKVlyAgIOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl1xu4pWa4pWQ4pWQ4paI4paI4pWU4pWQ4pWQ4pWd4paI4paI4pWRICDilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilojilojilZcg4paI4paI4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWd4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWdXG4gICDilojilojilZEgICDilojilojilojilojilojilojilojilZHilojilojilojilojilojilZcgIOKWiOKWiOKVlOKWiOKWiOKWiOKWiOKVlOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4paI4paI4paI4paI4paI4pWXXG4gICDilojilojilZEgICDilojilojilZTilZDilZDilojilojilZHilojilojilZTilZDilZDilZ0gIOKWiOKWiOKVkeKVmuKWiOKWiOKVlOKVneKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4pWa4pWQ4pWQ4pWQ4pWQ4paI4paI4pWRXG4gICDilojilojilZEgICDilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVkSDilZrilZDilZ0g4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWRXG4gICDilZrilZDilZ0gICDilZrilZDilZ0gIOKVmuKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVneKVmuKVkOKVnSAgICAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWdXG5cbiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBUaGVtZSBTZWxlY3Rpb25cbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBUbyBvdmVycmlkZSBhIHRoZW1lIGZvciBhbiBpbmRpdmlkdWFsIGVsZW1lbnRcbiAgIHNwZWNpZnkgdGhlbWUgbmFtZSBiZWxvd1xuKi9cbi8qIEdsb2JhbCAqL1xuLyogRWxlbWVudHMgKi9cbi8qIENvbGxlY3Rpb25zICovXG4vKiBNb2R1bGVzICovXG4vKiBWaWV3cyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIEZvbGRlcnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBQYXRoIHRvIHRoZW1lIHBhY2thZ2VzICovXG4vKiBQYXRoIHRvIHNpdGUgb3ZlcnJpZGUgZm9sZGVyICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgSW1wb3J0IFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgSW1wb3J0IERpcmVjdGl2ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIFRoZW1lXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgIFNpdGUgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kb3JzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFBhY2thZ2VkIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRvcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogQ29tcG9uZW50J3Mgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZG9ycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBTaXRlIHRoZW1lIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICBVc2VyIEdsb2JhbCBWYXJpYWJsZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBtYXJzbyBjb2xvcnMgKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiBDb21wb25lbnQgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTaGFwZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIEFuaW1hdGluZyAqL1xuLyogU2lkZSAqL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgICAgVHlwZXNcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBDdWJlICovXG4vKiBQYWNrYWdlZCBUaGVtZSAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTaGFwZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIEFuaW1hdGluZyAqL1xuLyogU2lkZSAqL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgICAgVHlwZXNcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBDdWJlICovXG4vKiBTaXRlIFRoZW1lICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgIFVzZXIgVmFyaWFibGUgT3ZlcnJpZGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBNaXgtaW5zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBPdmVycmlkZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRW5kIENvbmZpZyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICAgU2hhcGVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4udWkuc2hhcGUge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcGVyc3BlY3RpdmU6IDIwMDBweDtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuNnMgZWFzZS1pbi1vdXQsIGxlZnQgMC42cyBlYXNlLWluLW91dCwgd2lkdGggMC42cyBlYXNlLWluLW91dCwgaGVpZ2h0IDAuNnMgZWFzZS1pbi1vdXQ7XG59XG4udWkuc2hhcGUgLnNpZGVzIHtcbiAgdHJhbnNmb3JtLXN0eWxlOiBwcmVzZXJ2ZS0zZDtcbn1cbi51aS5zaGFwZSAuc2lkZSB7XG4gIG9wYWNpdHk6IDE7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW46IDBlbSAhaW1wb3J0YW50O1xuICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG59XG4udWkuc2hhcGUgLnNpZGUge1xuICBkaXNwbGF5OiBub25lO1xufVxuLnVpLnNoYXBlIC5zaWRlICoge1xuICBiYWNrZmFjZS12aXNpYmlsaXR5OiB2aXNpYmxlICFpbXBvcnRhbnQ7XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFR5cGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLnVpLmN1YmUuc2hhcGUgLnNpZGUge1xuICBtaW4td2lkdGg6IDE1ZW07XG4gIGhlaWdodDogMTVlbTtcbiAgcGFkZGluZzogMmVtO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRTZFNkU2O1xuICBjb2xvcjogIzMzMzMzMztcbiAgYm94LXNoYWRvdzogMHB4IDBweCAycHggcmdiYSgwLCAwLCAwLCAwLjMpO1xufVxuLnVpLmN1YmUuc2hhcGUgLnNpZGUgPiAuY29udGVudCB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGRpc3BsYXk6IHRhYmxlO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHVzZXItc2VsZWN0OiB0ZXh0O1xufVxuLnVpLmN1YmUuc2hhcGUgLnNpZGUgPiAuY29udGVudCA+IGRpdiB7XG4gIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIGZvbnQtc2l6ZTogMmVtO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICBWYXJpYXRpb25zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLnVpLnRleHQuc2hhcGUuYW5pbWF0aW5nIC5zaWRlcyB7XG4gIHBvc2l0aW9uOiBzdGF0aWM7XG59XG4udWkudGV4dC5zaGFwZSAuc2lkZSB7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG4udWkudGV4dC5zaGFwZSAuc2lkZSA+ICoge1xuICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgTG9hZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5sb2FkaW5nLnNoYXBlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IC05OTk5cHg7XG4gIGxlZnQ6IC05OTk5cHg7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgQW5pbWF0aW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLnNoYXBlIC5hbmltYXRpbmcuc2lkZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwcHg7XG4gIGxlZnQ6IDBweDtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHotaW5kZXg6IDEwMDtcbn1cbi51aS5zaGFwZSAuaGlkZGVuLnNpZGUge1xuICBvcGFjaXR5OiAwLjY7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgICBDU1Ncbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuc2hhcGUuYW5pbWF0aW5nIC5zaWRlcyB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbn1cbi51aS5zaGFwZS5hbmltYXRpbmcgLnNpZGVzIHtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuNnMgZWFzZS1pbi1vdXQsIGxlZnQgMC42cyBlYXNlLWluLW91dCwgd2lkdGggMC42cyBlYXNlLWluLW91dCwgaGVpZ2h0IDAuNnMgZWFzZS1pbi1vdXQ7XG59XG4udWkuc2hhcGUuYW5pbWF0aW5nIC5zaWRlIHtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjZzIGVhc2UtaW4tb3V0O1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuc2hhcGUgLmFjdGl2ZS5zaWRlIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgVGhlbWUgT3ZlcnJpZGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgVXNlciBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiFcbiAqICMgU2VtYW50aWMgVUkgLSBTaWRlYmFyXG4gKiBodHRwOi8vZ2l0aHViLmNvbS9zZW1hbnRpYy1vcmcvc2VtYW50aWMtdWkvXG4gKlxuICpcbiAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZVxuICogaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVFxuICpcbiAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLypcblxu4paI4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWXICDilojilojilZfilojilojilojilojilojilojilojilZfilojilojilojilZcgICDilojilojilojilZfilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZdcbuKVmuKVkOKVkOKWiOKWiOKVlOKVkOKVkOKVneKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWd4paI4paI4paI4paI4pWXIOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVnVxuICAg4paI4paI4pWRICAg4paI4paI4paI4paI4paI4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilZTilojilojilojilojilZTilojilojilZHilojilojilojilojilojilZcgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl1xuICAg4paI4paI4pWRICAg4paI4paI4pWU4pWQ4pWQ4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilojilojilZHilZrilojilojilZTilZ3ilojilojilZHilojilojilZTilZDilZDilZ0gIOKVmuKVkOKVkOKVkOKVkOKWiOKWiOKVkVxuICAg4paI4paI4pWRICAg4paI4paI4pWRICDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilZEg4pWa4pWQ4pWdIOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkVxuICAg4pWa4pWQ4pWdICAg4pWa4pWQ4pWdICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZ0gICAgIOKVmuKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVnVxuXG4qL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgVGhlbWUgU2VsZWN0aW9uXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogVG8gb3ZlcnJpZGUgYSB0aGVtZSBmb3IgYW4gaW5kaXZpZHVhbCBlbGVtZW50XG4gICBzcGVjaWZ5IHRoZW1lIG5hbWUgYmVsb3dcbiovXG4vKiBHbG9iYWwgKi9cbi8qIEVsZW1lbnRzICovXG4vKiBDb2xsZWN0aW9ucyAqL1xuLyogTW9kdWxlcyAqL1xuLyogVmlld3MgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBGb2xkZXJzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogUGF0aCB0byB0aGVtZSBwYWNrYWdlcyAqL1xuLyogUGF0aCB0byBzaXRlIG92ZXJyaWRlIGZvbGRlciAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIEltcG9ydCBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIEltcG9ydCBEaXJlY3RpdmVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBUaGVtZVxuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICBTaXRlIFZhcmlhYmxlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERlZmF1bHQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZG9ycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBQYWNrYWdlZCBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kb3JzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIENvbXBvbmVudCdzIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRvcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogU2l0ZSB0aGVtZSBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgVXNlciBHbG9iYWwgVmFyaWFibGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogbWFyc28gY29sb3JzICovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gQ29tcG9uZW50IFZhcmlhYmxlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERlZmF1bHQgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU2lkZWJhclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIENvbnRlbnRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEFuaW1hdGlvbiAqL1xuLyogRGltbWVyICovXG4vKiBDb2xvciBiZWxvdyBwYWdlICovXG4vKiBTaGFkb3cgKi9cbi8qIExheWVyaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFZhcmlhdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFdpZHRoICovXG4vKiBIZWlnaHQgKi9cbi8qIFBhY2thZ2VkIFRoZW1lICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFNpZGViYXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBDb250ZW50XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBBbmltYXRpb24gKi9cbi8qIERpbW1lciAqL1xuLyogQ29sb3IgYmVsb3cgcGFnZSAqL1xuLyogU2hhZG93ICovXG4vKiBMYXllcmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBWYXJpYXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBXaWR0aCAqL1xuLyogSGVpZ2h0ICovXG4vKiBTaXRlIFRoZW1lICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIE1peC1pbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE92ZXJyaWRlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBFbmQgQ29uZmlnICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgU2lkZWJhclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFNpZGViYXIgTWVudSAqL1xuLnVpLnNpZGViYXIge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICB0cmFuc2l0aW9uOiBub25lO1xuICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDtcbiAgaGVpZ2h0OiAxMDAlICFpbXBvcnRhbnQ7XG4gIG1heC1oZWlnaHQ6IDEwMCU7XG4gIGJvcmRlci1yYWRpdXM6IDBlbSAhaW1wb3J0YW50O1xuICBtYXJnaW46IDBlbSAhaW1wb3J0YW50O1xuICBvdmVyZmxvdy15OiBhdXRvICFpbXBvcnRhbnQ7XG4gIHotaW5kZXg6IDEwMjtcbn1cbi8qIEdQVSBMYXllcnMgZm9yIENoaWxkIEVsZW1lbnRzICovXG4udWkuc2lkZWJhciA+ICoge1xuICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICBEaXJlY3Rpb25cbi0tLS0tLS0tLS0tLS0tLSovXG4udWkubGVmdC5zaWRlYmFyIHtcbiAgcmlnaHQ6IGF1dG87XG4gIGxlZnQ6IDBweDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMTAwJSwgMCwgMCk7XG59XG4udWkucmlnaHQuc2lkZWJhciB7XG4gIHJpZ2h0OiAwcHggIWltcG9ydGFudDtcbiAgbGVmdDogYXV0byAhaW1wb3J0YW50O1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDEwMCUsIDAlLCAwKTtcbn1cbi51aS50b3Auc2lkZWJhcixcbi51aS5ib3R0b20uc2lkZWJhciB7XG4gIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gIGhlaWdodDogYXV0byAhaW1wb3J0YW50O1xufVxuLnVpLnRvcC5zaWRlYmFyIHtcbiAgdG9wOiAwcHggIWltcG9ydGFudDtcbiAgYm90dG9tOiBhdXRvICFpbXBvcnRhbnQ7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTEwMCUsIDApO1xufVxuLnVpLmJvdHRvbS5zaWRlYmFyIHtcbiAgdG9wOiBhdXRvICFpbXBvcnRhbnQ7XG4gIGJvdHRvbTogMHB4ICFpbXBvcnRhbnQ7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMTAwJSwgMCk7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIFB1c2hhYmxlXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnB1c2hhYmxlIHtcbiAgaGVpZ2h0OiAxMDAlO1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG4gIHBhZGRpbmc6IDBlbSAhaW1wb3J0YW50O1xufVxuLyogV2hvbGUgUGFnZSAqL1xuYm9keS5wdXNoYWJsZSB7XG4gIGJhY2tncm91bmQ6ICM1NDU0NTQgIWltcG9ydGFudDtcbn1cbi8qIFBhZ2UgQ29udGV4dCAqL1xuLnB1c2hhYmxlOm5vdChib2R5KSB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG59XG4ucHVzaGFibGU6bm90KGJvZHkpID4gLnVpLnNpZGViYXIsXG4ucHVzaGFibGU6bm90KGJvZHkpID4gLmZpeGVkLFxuLnB1c2hhYmxlOm5vdChib2R5KSA+IC5wdXNoZXI6YWZ0ZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIEZpeGVkXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnB1c2hhYmxlID4gLmZpeGVkIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSA1MDBtcyBlYXNlO1xuICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtO1xuICB6LWluZGV4OiAxMDE7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLSovXG4ucHVzaGFibGUgPiAucHVzaGVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIG1pbi1oZWlnaHQ6IDEwMCU7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSA1MDBtcyBlYXNlO1xuICB6LWluZGV4OiAyO1xufVxuYm9keS5wdXNoYWJsZSA+IC5wdXNoZXIge1xuICBiYWNrZ3JvdW5kOiAjRkZGRkZGO1xufVxuLyogUHVzaGVyIHNob3VsZCBpbmhlcml0IGJhY2tncm91bmQgZnJvbSBjb250ZXh0ICovXG4ucHVzaGFibGUgPiAucHVzaGVyIHtcbiAgYmFja2dyb3VuZDogaW5oZXJpdDtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgRGltbWVyXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnB1c2hhYmxlID4gLnB1c2hlcjphZnRlciB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdG9wOiAwcHg7XG4gIHJpZ2h0OiAwcHg7XG4gIGNvbnRlbnQ6ICcnO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNCk7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgNTAwbXM7XG4gIHdpbGwtY2hhbmdlOiBvcGFjaXR5O1xuICB6LWluZGV4OiAxMDAwO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgIENvdXBsaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLnNpZGViYXIubWVudSAuaXRlbSB7XG4gIGJvcmRlci1yYWRpdXM6IDBlbSAhaW1wb3J0YW50O1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgRGltbWVkXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnB1c2hhYmxlID4gLnB1c2hlci5kaW1tZWQ6YWZ0ZXIge1xuICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICBoZWlnaHQ6IDEwMCUgIWltcG9ydGFudDtcbiAgb3BhY2l0eTogMSAhaW1wb3J0YW50O1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgIEFuaW1hdGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5hbmltYXRpbmcuc2lkZWJhciB7XG4gIHZpc2liaWxpdHk6IHZpc2libGU7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIFZpc2libGVcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkudmlzaWJsZS5zaWRlYmFyIHtcbiAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbn1cbi8qIFNoYWRvdyBEaXJlY3Rpb24gKi9cbi51aS5sZWZ0LnZpc2libGUuc2lkZWJhcixcbi51aS5yaWdodC52aXNpYmxlLnNpZGViYXIge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDIwcHggcmdiYSgzNCwgMzYsIDM4LCAwLjE1KTtcbn1cbi51aS50b3AudmlzaWJsZS5zaWRlYmFyLFxuLnVpLmJvdHRvbS52aXNpYmxlLnNpZGViYXIge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDIwcHggcmdiYSgzNCwgMzYsIDM4LCAwLjE1KTtcbn1cbi8qIFZpc2libGUgT24gTG9hZCAqL1xuLnVpLnZpc2libGUubGVmdC5zaWRlYmFyIH4gLmZpeGVkLFxuLnVpLnZpc2libGUubGVmdC5zaWRlYmFyIH4gLnB1c2hlciB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMjYwcHgsIDAsIDApO1xufVxuLnVpLnZpc2libGUucmlnaHQuc2lkZWJhciB+IC5maXhlZCxcbi51aS52aXNpYmxlLnJpZ2h0LnNpZGViYXIgfiAucHVzaGVyIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMjYwcHgsIDAsIDApO1xufVxuLnVpLnZpc2libGUudG9wLnNpZGViYXIgfiAuZml4ZWQsXG4udWkudmlzaWJsZS50b3Auc2lkZWJhciB+IC5wdXNoZXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDM2cHgsIDApO1xufVxuLnVpLnZpc2libGUuYm90dG9tLnNpZGViYXIgfiAuZml4ZWQsXG4udWkudmlzaWJsZS5ib3R0b20uc2lkZWJhciB+IC5wdXNoZXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0zNnB4LCAwKTtcbn1cbi8qIG9wcG9zaXRlIHNpZGVzIHZpc2libGUgZm9yY2VzIGNvbnRlbnQgb3ZlcmxheSAqL1xuLnVpLnZpc2libGUubGVmdC5zaWRlYmFyIH4gLnVpLnZpc2libGUucmlnaHQuc2lkZWJhciB+IC5maXhlZCxcbi51aS52aXNpYmxlLmxlZnQuc2lkZWJhciB+IC51aS52aXNpYmxlLnJpZ2h0LnNpZGViYXIgfiAucHVzaGVyLFxuLnVpLnZpc2libGUucmlnaHQuc2lkZWJhciB+IC51aS52aXNpYmxlLmxlZnQuc2lkZWJhciB+IC5maXhlZCxcbi51aS52aXNpYmxlLnJpZ2h0LnNpZGViYXIgfiAudWkudmlzaWJsZS5sZWZ0LnNpZGViYXIgfiAucHVzaGVyIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgICBpT1Ncbi0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBpT1MgaW5jb3JyZWN0bHkgc2l6ZXMgZG9jdW1lbnQgd2hlbiBjb250ZW50XG4gIGlzIHByZXNlbnRlZCBvdXRzaWRlIG9mIHZpZXcgd2l0aCAyRHRyYW5zbGF0ZVxuKi9cbmh0bWwuaW9zIHtcbiAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XG59XG5odG1sLmlvcyxcbmh0bWwuaW9zIGJvZHkge1xuICBoZWlnaHQ6IGluaXRpYWwgIWltcG9ydGFudDtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgVmFyaWF0aW9uc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgV2lkdGhcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBMZWZ0IC8gUmlnaHQgKi9cbi51aS50aGluLmxlZnQuc2lkZWJhcixcbi51aS50aGluLnJpZ2h0LnNpZGViYXIge1xuICB3aWR0aDogMTUwcHg7XG59XG4udWlbY2xhc3MqPVwidmVyeSB0aGluXCJdLmxlZnQuc2lkZWJhcixcbi51aVtjbGFzcyo9XCJ2ZXJ5IHRoaW5cIl0ucmlnaHQuc2lkZWJhciB7XG4gIHdpZHRoOiA2MHB4O1xufVxuLnVpLmxlZnQuc2lkZWJhcixcbi51aS5yaWdodC5zaWRlYmFyIHtcbiAgd2lkdGg6IDI2MHB4O1xufVxuLnVpLndpZGUubGVmdC5zaWRlYmFyLFxuLnVpLndpZGUucmlnaHQuc2lkZWJhciB7XG4gIHdpZHRoOiAzNTBweDtcbn1cbi51aVtjbGFzcyo9XCJ2ZXJ5IHdpZGVcIl0ubGVmdC5zaWRlYmFyLFxuLnVpW2NsYXNzKj1cInZlcnkgd2lkZVwiXS5yaWdodC5zaWRlYmFyIHtcbiAgd2lkdGg6IDQ3NXB4O1xufVxuLyogTGVmdCBWaXNpYmxlICovXG4udWkudmlzaWJsZS50aGluLmxlZnQuc2lkZWJhciB+IC5maXhlZCxcbi51aS52aXNpYmxlLnRoaW4ubGVmdC5zaWRlYmFyIH4gLnB1c2hlciB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMTUwcHgsIDAsIDApO1xufVxuLnVpLnZpc2libGVbY2xhc3MqPVwidmVyeSB0aGluXCJdLmxlZnQuc2lkZWJhciB+IC5maXhlZCxcbi51aS52aXNpYmxlW2NsYXNzKj1cInZlcnkgdGhpblwiXS5sZWZ0LnNpZGViYXIgfiAucHVzaGVyIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCg2MHB4LCAwLCAwKTtcbn1cbi51aS52aXNpYmxlLndpZGUubGVmdC5zaWRlYmFyIH4gLmZpeGVkLFxuLnVpLnZpc2libGUud2lkZS5sZWZ0LnNpZGViYXIgfiAucHVzaGVyIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgzNTBweCwgMCwgMCk7XG59XG4udWkudmlzaWJsZVtjbGFzcyo9XCJ2ZXJ5IHdpZGVcIl0ubGVmdC5zaWRlYmFyIH4gLmZpeGVkLFxuLnVpLnZpc2libGVbY2xhc3MqPVwidmVyeSB3aWRlXCJdLmxlZnQuc2lkZWJhciB+IC5wdXNoZXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDQ3NXB4LCAwLCAwKTtcbn1cbi8qIFJpZ2h0IFZpc2libGUgKi9cbi51aS52aXNpYmxlLnRoaW4ucmlnaHQuc2lkZWJhciB+IC5maXhlZCxcbi51aS52aXNpYmxlLnRoaW4ucmlnaHQuc2lkZWJhciB+IC5wdXNoZXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0xNTBweCwgMCwgMCk7XG59XG4udWkudmlzaWJsZVtjbGFzcyo9XCJ2ZXJ5IHRoaW5cIl0ucmlnaHQuc2lkZWJhciB+IC5maXhlZCxcbi51aS52aXNpYmxlW2NsYXNzKj1cInZlcnkgdGhpblwiXS5yaWdodC5zaWRlYmFyIH4gLnB1c2hlciB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTYwcHgsIDAsIDApO1xufVxuLnVpLnZpc2libGUud2lkZS5yaWdodC5zaWRlYmFyIH4gLmZpeGVkLFxuLnVpLnZpc2libGUud2lkZS5yaWdodC5zaWRlYmFyIH4gLnB1c2hlciB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTM1MHB4LCAwLCAwKTtcbn1cbi51aS52aXNpYmxlW2NsYXNzKj1cInZlcnkgd2lkZVwiXS5yaWdodC5zaWRlYmFyIH4gLmZpeGVkLFxuLnVpLnZpc2libGVbY2xhc3MqPVwidmVyeSB3aWRlXCJdLnJpZ2h0LnNpZGViYXIgfiAucHVzaGVyIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtNDc1cHgsIDAsIDApO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICBBbmltYXRpb25zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgIE92ZXJsYXlcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZXQtdXAgKi9cbi51aS5vdmVybGF5LnNpZGViYXIge1xuICB6LWluZGV4OiAxMDI7XG59XG4vKiBJbml0aWFsICovXG4udWkubGVmdC5vdmVybGF5LnNpZGViYXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0xMDAlLCAwJSwgMCk7XG59XG4udWkucmlnaHQub3ZlcmxheS5zaWRlYmFyIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgxMDAlLCAwJSwgMCk7XG59XG4udWkudG9wLm92ZXJsYXkuc2lkZWJhciB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCUsIC0xMDAlLCAwKTtcbn1cbi51aS5ib3R0b20ub3ZlcmxheS5zaWRlYmFyIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwJSwgMTAwJSwgMCk7XG59XG4vKiBBbmltYXRpb24gKi9cbi5hbmltYXRpbmcudWkub3ZlcmxheS5zaWRlYmFyLFxuLnVpLnZpc2libGUub3ZlcmxheS5zaWRlYmFyIHtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDUwMG1zIGVhc2U7XG59XG4vKiBFbmQgLSBTaWRlYmFyICovXG4udWkudmlzaWJsZS5sZWZ0Lm92ZXJsYXkuc2lkZWJhciB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCUsIDAlLCAwKTtcbn1cbi51aS52aXNpYmxlLnJpZ2h0Lm92ZXJsYXkuc2lkZWJhciB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCUsIDAlLCAwKTtcbn1cbi51aS52aXNpYmxlLnRvcC5vdmVybGF5LnNpZGViYXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAlLCAwJSwgMCk7XG59XG4udWkudmlzaWJsZS5ib3R0b20ub3ZlcmxheS5zaWRlYmFyIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwJSwgMCUsIDApO1xufVxuLyogRW5kIC0gUHVzaGVyICovXG4udWkudmlzaWJsZS5vdmVybGF5LnNpZGViYXIgfiAuZml4ZWQsXG4udWkudmlzaWJsZS5vdmVybGF5LnNpZGViYXIgfiAucHVzaGVyIHtcbiAgdHJhbnNmb3JtOiBub25lICFpbXBvcnRhbnQ7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgICBQdXNoXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW5pdGlhbCAqL1xuLnVpLnB1c2guc2lkZWJhciB7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSA1MDBtcyBlYXNlO1xuICB6LWluZGV4OiAxMDI7XG59XG4vKiBTaWRlYmFyIC0gSW5pdGlhbCAqL1xuLnVpLmxlZnQucHVzaC5zaWRlYmFyIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMTAwJSwgMCwgMCk7XG59XG4udWkucmlnaHQucHVzaC5zaWRlYmFyIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgxMDAlLCAwLCAwKTtcbn1cbi51aS50b3AucHVzaC5zaWRlYmFyIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwJSwgLTEwMCUsIDApO1xufVxuLnVpLmJvdHRvbS5wdXNoLnNpZGViYXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAlLCAxMDAlLCAwKTtcbn1cbi8qIEVuZCAqL1xuLnVpLnZpc2libGUucHVzaC5zaWRlYmFyIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwJSwgMCwgMCk7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgVW5jb3ZlclxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEluaXRpYWwgKi9cbi51aS51bmNvdmVyLnNpZGViYXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICB6LWluZGV4OiAxO1xufVxuLyogRW5kICovXG4udWkudmlzaWJsZS51bmNvdmVyLnNpZGViYXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gNTAwbXMgZWFzZTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIFNsaWRlIEFsb25nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW5pdGlhbCAqL1xuLnVpLnNsaWRlLmFsb25nLnNpZGViYXIge1xuICB6LWluZGV4OiAxO1xufVxuLyogU2lkZWJhciAtIEluaXRpYWwgKi9cbi51aS5sZWZ0LnNsaWRlLmFsb25nLnNpZGViYXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC01MCUsIDAsIDApO1xufVxuLnVpLnJpZ2h0LnNsaWRlLmFsb25nLnNpZGViYXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDUwJSwgMCwgMCk7XG59XG4udWkudG9wLnNsaWRlLmFsb25nLnNpZGViYXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC01MCUsIDApO1xufVxuLnVpLmJvdHRvbS5zbGlkZS5hbG9uZy5zaWRlYmFyIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwJSwgNTAlLCAwKTtcbn1cbi8qIEFuaW1hdGlvbiAqL1xuLnVpLmFuaW1hdGluZy5zbGlkZS5hbG9uZy5zaWRlYmFyIHtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDUwMG1zIGVhc2U7XG59XG4vKiBFbmQgKi9cbi51aS52aXNpYmxlLnNsaWRlLmFsb25nLnNpZGViYXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAlLCAwLCAwKTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIFNsaWRlIE91dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEluaXRpYWwgKi9cbi51aS5zbGlkZS5vdXQuc2lkZWJhciB7XG4gIHotaW5kZXg6IDE7XG59XG4vKiBTaWRlYmFyIC0gSW5pdGlhbCAqL1xuLnVpLmxlZnQuc2xpZGUub3V0LnNpZGViYXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDUwJSwgMCwgMCk7XG59XG4udWkucmlnaHQuc2xpZGUub3V0LnNpZGViYXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC01MCUsIDAsIDApO1xufVxuLnVpLnRvcC5zbGlkZS5vdXQuc2lkZWJhciB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCUsIDUwJSwgMCk7XG59XG4udWkuYm90dG9tLnNsaWRlLm91dC5zaWRlYmFyIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwJSwgLTUwJSwgMCk7XG59XG4vKiBBbmltYXRpb24gKi9cbi51aS5hbmltYXRpbmcuc2xpZGUub3V0LnNpZGViYXIge1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gNTAwbXMgZWFzZTtcbn1cbi8qIEVuZCAqL1xuLnVpLnZpc2libGUuc2xpZGUub3V0LnNpZGViYXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAlLCAwLCAwKTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIFNjYWxlIERvd25cbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbml0aWFsICovXG4udWkuc2NhbGUuZG93bi5zaWRlYmFyIHtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDUwMG1zIGVhc2U7XG4gIHotaW5kZXg6IDEwMjtcbn1cbi8qIFNpZGViYXIgLSBJbml0aWFsICAqL1xuLnVpLmxlZnQuc2NhbGUuZG93bi5zaWRlYmFyIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMTAwJSwgMCwgMCk7XG59XG4udWkucmlnaHQuc2NhbGUuZG93bi5zaWRlYmFyIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgxMDAlLCAwLCAwKTtcbn1cbi51aS50b3Auc2NhbGUuZG93bi5zaWRlYmFyIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwJSwgLTEwMCUsIDApO1xufVxuLnVpLmJvdHRvbS5zY2FsZS5kb3duLnNpZGViYXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAlLCAxMDAlLCAwKTtcbn1cbi8qIFB1c2hlciAtIEluaXRpYWwgKi9cbi51aS5zY2FsZS5kb3duLmxlZnQuc2lkZWJhciB+IC5wdXNoZXIge1xuICB0cmFuc2Zvcm0tb3JpZ2luOiA3NSUgNTAlO1xufVxuLnVpLnNjYWxlLmRvd24ucmlnaHQuc2lkZWJhciB+IC5wdXNoZXIge1xuICB0cmFuc2Zvcm0tb3JpZ2luOiAyNSUgNTAlO1xufVxuLnVpLnNjYWxlLmRvd24udG9wLnNpZGViYXIgfiAucHVzaGVyIHtcbiAgdHJhbnNmb3JtLW9yaWdpbjogNTAlIDc1JTtcbn1cbi51aS5zY2FsZS5kb3duLmJvdHRvbS5zaWRlYmFyIH4gLnB1c2hlciB7XG4gIHRyYW5zZm9ybS1vcmlnaW46IDUwJSAyNSU7XG59XG4vKiBBbmltYXRpb24gKi9cbi51aS5hbmltYXRpbmcuc2NhbGUuZG93biA+IC52aXNpYmxlLnVpLnNpZGViYXIge1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gNTAwbXMgZWFzZTtcbn1cbi51aS52aXNpYmxlLnNjYWxlLmRvd24uc2lkZWJhciB+IC5wdXNoZXIsXG4udWkuYW5pbWF0aW5nLnNjYWxlLmRvd24uc2lkZWJhciB+IC5wdXNoZXIge1xuICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBvdmVyZmxvdzogaGlkZGVuICFpbXBvcnRhbnQ7XG59XG4vKiBFbmQgKi9cbi51aS52aXNpYmxlLnNjYWxlLmRvd24uc2lkZWJhciB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG59XG4udWkudmlzaWJsZS5zY2FsZS5kb3duLnNpZGViYXIgfiAucHVzaGVyIHtcbiAgdHJhbnNmb3JtOiBzY2FsZSgwLjc1KTtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBUaGVtZSBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiFcbiAqICMgU2VtYW50aWMgVUkgLSBTdGlja3lcbiAqIGh0dHA6Ly9naXRodWIuY29tL3NlbWFudGljLW9yZy9zZW1hbnRpYy11aS9cbiAqXG4gKlxuICogUmVsZWFzZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlXG4gKiBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUXG4gKlxuICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKlxuXG7ilojilojilojilojilojilojilojilojilZfilojilojilZcgIOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKVlyAgIOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl1xu4pWa4pWQ4pWQ4paI4paI4pWU4pWQ4pWQ4pWd4paI4paI4pWRICDilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilojilojilZcg4paI4paI4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWd4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWdXG4gICDilojilojilZEgICDilojilojilojilojilojilojilojilZHilojilojilojilojilojilZcgIOKWiOKWiOKVlOKWiOKWiOKWiOKWiOKVlOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4paI4paI4paI4paI4paI4pWXXG4gICDilojilojilZEgICDilojilojilZTilZDilZDilojilojilZHilojilojilZTilZDilZDilZ0gIOKWiOKWiOKVkeKVmuKWiOKWiOKVlOKVneKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4pWa4pWQ4pWQ4pWQ4pWQ4paI4paI4pWRXG4gICDilojilojilZEgICDilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVkSDilZrilZDilZ0g4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWRXG4gICDilZrilZDilZ0gICDilZrilZDilZ0gIOKVmuKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVneKVmuKVkOKVnSAgICAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWdXG5cbiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBUaGVtZSBTZWxlY3Rpb25cbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBUbyBvdmVycmlkZSBhIHRoZW1lIGZvciBhbiBpbmRpdmlkdWFsIGVsZW1lbnRcbiAgIHNwZWNpZnkgdGhlbWUgbmFtZSBiZWxvd1xuKi9cbi8qIEdsb2JhbCAqL1xuLyogRWxlbWVudHMgKi9cbi8qIENvbGxlY3Rpb25zICovXG4vKiBNb2R1bGVzICovXG4vKiBWaWV3cyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIEZvbGRlcnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBQYXRoIHRvIHRoZW1lIHBhY2thZ2VzICovXG4vKiBQYXRoIHRvIHNpdGUgb3ZlcnJpZGUgZm9sZGVyICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgSW1wb3J0IFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgSW1wb3J0IERpcmVjdGl2ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIFRoZW1lXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgIFNpdGUgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kb3JzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFBhY2thZ2VkIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRvcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogQ29tcG9uZW50J3Mgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZG9ycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBTaXRlIHRoZW1lIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICBVc2VyIEdsb2JhbCBWYXJpYWJsZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBtYXJzbyBjb2xvcnMgKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiBDb21wb25lbnQgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFN0aWNreVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFBhY2thZ2VkIFRoZW1lICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgU3RpY2t5XG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogU2l0ZSBUaGVtZSAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgT3ZlcnJpZGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBNaXgtaW5zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBPdmVycmlkZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRW5kIENvbmZpZyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFN0aWNreVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi51aS5zdGlja3kge1xuICBwb3NpdGlvbjogc3RhdGljO1xuICB0cmFuc2l0aW9uOiBub25lO1xuICB6LWluZGV4OiA4MDA7XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogQm91bmQgKi9cbi51aS5zdGlja3kuYm91bmQge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IGF1dG87XG4gIHJpZ2h0OiBhdXRvO1xufVxuLyogRml4ZWQgKi9cbi51aS5zdGlja3kuZml4ZWQge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIGxlZnQ6IGF1dG87XG4gIHJpZ2h0OiBhdXRvO1xufVxuLyogQm91bmQvRml4ZWQgUG9zaXRpb24gKi9cbi51aS5zdGlja3kuYm91bmQudG9wLFxuLnVpLnN0aWNreS5maXhlZC50b3Age1xuICB0b3A6IDBweDtcbiAgYm90dG9tOiBhdXRvO1xufVxuLnVpLnN0aWNreS5ib3VuZC5ib3R0b20sXG4udWkuc3RpY2t5LmZpeGVkLmJvdHRvbSB7XG4gIHRvcDogYXV0bztcbiAgYm90dG9tOiAwcHg7XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgVHlwZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4udWkubmF0aXZlLnN0aWNreSB7XG4gIHBvc2l0aW9uOiAtd2Via2l0LXN0aWNreTtcbiAgcG9zaXRpb246IC1tb3otc3RpY2t5O1xuICBwb3NpdGlvbjogLW1zLXN0aWNreTtcbiAgcG9zaXRpb246IC1vLXN0aWNreTtcbiAgcG9zaXRpb246IHN0aWNreTtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBUaGVtZSBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiFcbiAqICMgU2VtYW50aWMgVUkgLSBUYWJcbiAqIGh0dHA6Ly9naXRodWIuY29tL3NlbWFudGljLW9yZy9zZW1hbnRpYy11aS9cbiAqXG4gKlxuICogUmVsZWFzZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlXG4gKiBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUXG4gKlxuICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKlxuXG7ilojilojilojilojilojilojilojilojilZfilojilojilZcgIOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKVlyAgIOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl1xu4pWa4pWQ4pWQ4paI4paI4pWU4pWQ4pWQ4pWd4paI4paI4pWRICDilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilojilojilZcg4paI4paI4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWd4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWdXG4gICDilojilojilZEgICDilojilojilojilojilojilojilojilZHilojilojilojilojilojilZcgIOKWiOKWiOKVlOKWiOKWiOKWiOKWiOKVlOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4paI4paI4paI4paI4paI4pWXXG4gICDilojilojilZEgICDilojilojilZTilZDilZDilojilojilZHilojilojilZTilZDilZDilZ0gIOKWiOKWiOKVkeKVmuKWiOKWiOKVlOKVneKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4pWa4pWQ4pWQ4pWQ4pWQ4paI4paI4pWRXG4gICDilojilojilZEgICDilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVkSDilZrilZDilZ0g4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWRXG4gICDilZrilZDilZ0gICDilZrilZDilZ0gIOKVmuKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVneKVmuKVkOKVnSAgICAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWdXG5cbiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBUaGVtZSBTZWxlY3Rpb25cbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBUbyBvdmVycmlkZSBhIHRoZW1lIGZvciBhbiBpbmRpdmlkdWFsIGVsZW1lbnRcbiAgIHNwZWNpZnkgdGhlbWUgbmFtZSBiZWxvd1xuKi9cbi8qIEdsb2JhbCAqL1xuLyogRWxlbWVudHMgKi9cbi8qIENvbGxlY3Rpb25zICovXG4vKiBNb2R1bGVzICovXG4vKiBWaWV3cyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIEZvbGRlcnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBQYXRoIHRvIHRoZW1lIHBhY2thZ2VzICovXG4vKiBQYXRoIHRvIHNpdGUgb3ZlcnJpZGUgZm9sZGVyICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgSW1wb3J0IFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgSW1wb3J0IERpcmVjdGl2ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIFRoZW1lXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgIFNpdGUgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kb3JzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFBhY2thZ2VkIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRvcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogQ29tcG9uZW50J3Mgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZG9ycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBTaXRlIHRoZW1lIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICBVc2VyIEdsb2JhbCBWYXJpYWJsZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBtYXJzbyBjb2xvcnMgKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiBDb21wb25lbnQgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICAgVGFiXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogTG9hZGluZyAqL1xuLyogUGFja2FnZWQgVGhlbWUgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgIFRhYlxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIExvYWRpbmcgKi9cbi8qIFNpdGUgVGhlbWUgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgVXNlciBWYXJpYWJsZSBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIE1peC1pbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE92ZXJyaWRlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBFbmQgQ29uZmlnICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBVSSBUYWJzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLnVpLnRhYiB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkudGFiLmFjdGl2ZSxcbi51aS50YWIub3BlbiB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRpbmdcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkudGFiLmxvYWRpbmcge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtaW4taGVpZ2h0OiAyNTBweDtcbn1cbi51aS50YWIubG9hZGluZyAqIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlICFpbXBvcnRhbnQ7XG4gIGxlZnQ6IC0xMDAwMHB4ICFpbXBvcnRhbnQ7XG59XG4udWkudGFiLmxvYWRpbmc6YmVmb3JlLFxuLnVpLnRhYi5sb2FkaW5nLnNlZ21lbnQ6YmVmb3JlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBjb250ZW50OiAnJztcbiAgdG9wOiAxMDBweDtcbiAgbGVmdDogNTAlO1xuICBtYXJnaW46IC0xLjI1ZW0gMGVtIDBlbSAtMS4yNWVtO1xuICB3aWR0aDogMi41ZW07XG4gIGhlaWdodDogMi41ZW07XG4gIGJvcmRlci1yYWRpdXM6IDUwMHJlbTtcbiAgYm9yZGVyOiAwLjJlbSBzb2xpZCByZ2JhKDAsIDAsIDAsIDAuMSk7XG59XG4udWkudGFiLmxvYWRpbmc6YWZ0ZXIsXG4udWkudGFiLmxvYWRpbmcuc2VnbWVudDphZnRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgY29udGVudDogJyc7XG4gIHRvcDogMTAwcHg7XG4gIGxlZnQ6IDUwJTtcbiAgbWFyZ2luOiAtMS4yNWVtIDBlbSAwZW0gLTEuMjVlbTtcbiAgd2lkdGg6IDIuNWVtO1xuICBoZWlnaHQ6IDIuNWVtO1xuICBhbmltYXRpb246IGJ1dHRvbi1zcGluIDAuNnMgbGluZWFyO1xuICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgYm9yZGVyLXJhZGl1czogNTAwcmVtO1xuICBib3JkZXItY29sb3I6ICM3Njc2NzYgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1zdHlsZTogc29saWQ7XG4gIGJvcmRlci13aWR0aDogMC4yZW07XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCB0cmFuc3BhcmVudDtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBUYWIgT3ZlcnJpZGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgVXNlciBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiFcbiAqICMgU2VtYW50aWMgVUkgLSBUcmFuc2l0aW9uXG4gKiBodHRwOi8vZ2l0aHViLmNvbS9zZW1hbnRpYy1vcmcvc2VtYW50aWMtdWkvXG4gKlxuICpcbiAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZVxuICogaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVFxuICpcbiAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLypcblxu4paI4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWXICDilojilojilZfilojilojilojilojilojilojilojilZfilojilojilojilZcgICDilojilojilojilZfilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZdcbuKVmuKVkOKVkOKWiOKWiOKVlOKVkOKVkOKVneKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWd4paI4paI4paI4paI4pWXIOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVnVxuICAg4paI4paI4pWRICAg4paI4paI4paI4paI4paI4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilZTilojilojilojilojilZTilojilojilZHilojilojilojilojilojilZcgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl1xuICAg4paI4paI4pWRICAg4paI4paI4pWU4pWQ4pWQ4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilojilojilZHilZrilojilojilZTilZ3ilojilojilZHilojilojilZTilZDilZDilZ0gIOKVmuKVkOKVkOKVkOKVkOKWiOKWiOKVkVxuICAg4paI4paI4pWRICAg4paI4paI4pWRICDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilZEg4pWa4pWQ4pWdIOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkVxuICAg4pWa4pWQ4pWdICAg4pWa4pWQ4pWdICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZ0gICAgIOKVmuKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVnVxuXG4qL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgVGhlbWUgU2VsZWN0aW9uXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogVG8gb3ZlcnJpZGUgYSB0aGVtZSBmb3IgYW4gaW5kaXZpZHVhbCBlbGVtZW50XG4gICBzcGVjaWZ5IHRoZW1lIG5hbWUgYmVsb3dcbiovXG4vKiBHbG9iYWwgKi9cbi8qIEVsZW1lbnRzICovXG4vKiBDb2xsZWN0aW9ucyAqL1xuLyogTW9kdWxlcyAqL1xuLyogVmlld3MgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBGb2xkZXJzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogUGF0aCB0byB0aGVtZSBwYWNrYWdlcyAqL1xuLyogUGF0aCB0byBzaXRlIG92ZXJyaWRlIGZvbGRlciAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIEltcG9ydCBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIEltcG9ydCBEaXJlY3RpdmVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBUaGVtZVxuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICBTaXRlIFZhcmlhYmxlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERlZmF1bHQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZG9ycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBQYWNrYWdlZCBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kb3JzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIENvbXBvbmVudCdzIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRvcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogU2l0ZSB0aGVtZSBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgVXNlciBHbG9iYWwgVmFyaWFibGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogbWFyc28gY29sb3JzICovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gQ29tcG9uZW50IFZhcmlhYmxlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERlZmF1bHQgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgVHJhbnNpdGlvblxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFBhY2thZ2VkIFRoZW1lICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgIFRyYW5zaXRpb25cbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBTaXRlIFRoZW1lICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgIFVzZXIgVmFyaWFibGUgT3ZlcnJpZGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBNaXgtaW5zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBPdmVycmlkZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRW5kIENvbmZpZyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICBUcmFuc2l0aW9uc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi50cmFuc2l0aW9uIHtcbiAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogMTtcbiAgYW5pbWF0aW9uLWR1cmF0aW9uOiAzMDBtcztcbiAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZTtcbiAgYW5pbWF0aW9uLWZpbGwtbW9kZTogYm90aDtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBBbmltYXRpbmcgKi9cbi5hbmltYXRpbmcudHJhbnNpdGlvbiB7XG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgdmlzaWJpbGl0eTogdmlzaWJsZSAhaW1wb3J0YW50O1xufVxuLyogTG9hZGluZyAqL1xuLmxvYWRpbmcudHJhbnNpdGlvbiB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAtOTk5OTlweDtcbiAgbGVmdDogLTk5OTk5cHg7XG59XG4vKiBIaWRkZW4gKi9cbi5oaWRkZW4udHJhbnNpdGlvbiB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbn1cbi8qIFZpc2libGUgKi9cbi52aXNpYmxlLnRyYW5zaXRpb24ge1xuICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICB2aXNpYmlsaXR5OiB2aXNpYmxlICFpbXBvcnRhbnQ7XG4gIC8qICBiYWNrZmFjZS12aXNpYmlsaXR5OiBAYmFja2ZhY2VWaXNpYmlsaXR5O1xuICB0cmFuc2Zvcm06IEB1c2UzREFjY2VsZXJhdGlvbjsqL1xufVxuLyogRGlzYWJsZWQgKi9cbi5kaXNhYmxlZC50cmFuc2l0aW9uIHtcbiAgYW5pbWF0aW9uLXBsYXktc3RhdGU6IHBhdXNlZDtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgVmFyaWF0aW9uc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi5sb29waW5nLnRyYW5zaXRpb24ge1xuICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgVHJhbnNpdGlvbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKlxuICBTb21lIHRyYW5zaXRpb25zIGFkYXB0ZWQgZnJvbSBBbmltYXRlIENTU1xuICBodHRwczovL2dpdGh1Yi5jb20vZGFuZWRlbi9hbmltYXRlLmNzc1xuXG4gIEFkZGl0aW9uYWwgdHJhbnNpdGlvbnMgYWRhcHRlZCBmcm9tIEdsaWRlXG4gIGJ5IE5pY2sgUGV0dGl0IC0gaHR0cHM6Ly9naXRodWIuY29tL25pY2twZXR0aXQvZ2xpZGVcbiovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIEJyb3dzZVxuLS0tLS0tLS0tLS0tLS0tKi9cbi50cmFuc2l0aW9uLmJyb3dzZSB7XG4gIGFuaW1hdGlvbi1kdXJhdGlvbjogNTAwbXM7XG59XG4udHJhbnNpdGlvbi5icm93c2UuaW4ge1xuICBhbmltYXRpb24tbmFtZTogYnJvd3NlSW47XG59XG4udHJhbnNpdGlvbi5icm93c2Uub3V0LFxuLnRyYW5zaXRpb24uYnJvd3NlLmxlZnQub3V0IHtcbiAgYW5pbWF0aW9uLW5hbWU6IGJyb3dzZU91dExlZnQ7XG59XG4udHJhbnNpdGlvbi5icm93c2UucmlnaHQub3V0IHtcbiAgYW5pbWF0aW9uLW5hbWU6IGJyb3dzZU91dFJpZ2h0O1xufVxuLyogSW4gKi9cbkBrZXlmcmFtZXMgYnJvd3NlSW4ge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgwLjgpIHRyYW5zbGF0ZVooMHB4KTtcbiAgICB6LWluZGV4OiAtMTtcbiAgfVxuICAxMCUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMC44KSB0cmFuc2xhdGVaKDBweCk7XG4gICAgei1pbmRleDogLTE7XG4gICAgb3BhY2l0eTogMC43O1xuICB9XG4gIDgwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxLjA1KSB0cmFuc2xhdGVaKDBweCk7XG4gICAgb3BhY2l0eTogMTtcbiAgICB6LWluZGV4OiA5OTk7XG4gIH1cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxKSB0cmFuc2xhdGVaKDBweCk7XG4gICAgei1pbmRleDogOTk5O1xuICB9XG59XG4vKiBPdXQgKi9cbkBrZXlmcmFtZXMgYnJvd3NlT3V0TGVmdCB7XG4gIDAlIHtcbiAgICB6LWluZGV4OiA5OTk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDAlKSByb3RhdGVZKDBkZWcpIHJvdGF0ZVgoMGRlZyk7XG4gIH1cbiAgNTAlIHtcbiAgICB6LWluZGV4OiAtMTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEwNSUpIHJvdGF0ZVkoMzVkZWcpIHJvdGF0ZVgoMTBkZWcpIHRyYW5zbGF0ZVooLTEwcHgpO1xuICB9XG4gIDgwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuICAxMDAlIHtcbiAgICB6LWluZGV4OiAtMTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCUpIHJvdGF0ZVkoMGRlZykgcm90YXRlWCgwZGVnKSB0cmFuc2xhdGVaKC0xMHB4KTtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG59XG5Aa2V5ZnJhbWVzIGJyb3dzZU91dFJpZ2h0IHtcbiAgMCUge1xuICAgIHotaW5kZXg6IDk5OTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCUpIHJvdGF0ZVkoMGRlZykgcm90YXRlWCgwZGVnKTtcbiAgfVxuICA1MCUge1xuICAgIHotaW5kZXg6IDE7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDEwNSUpIHJvdGF0ZVkoMzVkZWcpIHJvdGF0ZVgoMTBkZWcpIHRyYW5zbGF0ZVooLTEwcHgpO1xuICB9XG4gIDgwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuICAxMDAlIHtcbiAgICB6LWluZGV4OiAxO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwJSkgcm90YXRlWSgwZGVnKSByb3RhdGVYKDBkZWcpIHRyYW5zbGF0ZVooLTEwcHgpO1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgRHJvcFxuLS0tLS0tLS0tLS0tLS0tKi9cbi5kcm9wLnRyYW5zaXRpb24ge1xuICB0cmFuc2Zvcm0tb3JpZ2luOiB0b3AgY2VudGVyO1xuICBhbmltYXRpb24tZHVyYXRpb246IDQwMG1zO1xuICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4zNCwgMS42MSwgMC43LCAxKTtcbn1cbi5kcm9wLnRyYW5zaXRpb24uaW4ge1xuICBhbmltYXRpb24tbmFtZTogZHJvcEluO1xufVxuLmRyb3AudHJhbnNpdGlvbi5vdXQge1xuICBhbmltYXRpb24tbmFtZTogZHJvcE91dDtcbn1cbi8qIERyb3AgKi9cbkBrZXlmcmFtZXMgZHJvcEluIHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgwKTtcbiAgfVxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gIH1cbn1cbkBrZXlmcmFtZXMgZHJvcE91dCB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gIH1cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDApO1xuICB9XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgICBGYWRlXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnRyYW5zaXRpb24uZmFkZS5pbiB7XG4gIGFuaW1hdGlvbi1uYW1lOiBmYWRlSW47XG59XG4udHJhbnNpdGlvbltjbGFzcyo9XCJmYWRlIHVwXCJdLmluIHtcbiAgYW5pbWF0aW9uLW5hbWU6IGZhZGVJblVwO1xufVxuLnRyYW5zaXRpb25bY2xhc3MqPVwiZmFkZSBkb3duXCJdLmluIHtcbiAgYW5pbWF0aW9uLW5hbWU6IGZhZGVJbkRvd247XG59XG4udHJhbnNpdGlvbltjbGFzcyo9XCJmYWRlIGxlZnRcIl0uaW4ge1xuICBhbmltYXRpb24tbmFtZTogZmFkZUluTGVmdDtcbn1cbi50cmFuc2l0aW9uW2NsYXNzKj1cImZhZGUgcmlnaHRcIl0uaW4ge1xuICBhbmltYXRpb24tbmFtZTogZmFkZUluUmlnaHQ7XG59XG4udHJhbnNpdGlvbi5mYWRlLm91dCB7XG4gIGFuaW1hdGlvbi1uYW1lOiBmYWRlT3V0O1xufVxuLnRyYW5zaXRpb25bY2xhc3MqPVwiZmFkZSB1cFwiXS5vdXQge1xuICBhbmltYXRpb24tbmFtZTogZmFkZU91dFVwO1xufVxuLnRyYW5zaXRpb25bY2xhc3MqPVwiZmFkZSBkb3duXCJdLm91dCB7XG4gIGFuaW1hdGlvbi1uYW1lOiBmYWRlT3V0RG93bjtcbn1cbi50cmFuc2l0aW9uW2NsYXNzKj1cImZhZGUgbGVmdFwiXS5vdXQge1xuICBhbmltYXRpb24tbmFtZTogZmFkZU91dExlZnQ7XG59XG4udHJhbnNpdGlvbltjbGFzcyo9XCJmYWRlIHJpZ2h0XCJdLm91dCB7XG4gIGFuaW1hdGlvbi1uYW1lOiBmYWRlT3V0UmlnaHQ7XG59XG4vKiBJbiAqL1xuQGtleWZyYW1lcyBmYWRlSW4ge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG59XG5Aa2V5ZnJhbWVzIGZhZGVJblVwIHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDEwJSk7XG4gIH1cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCUpO1xuICB9XG59XG5Aa2V5ZnJhbWVzIGZhZGVJbkRvd24ge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEwJSk7XG4gIH1cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCUpO1xuICB9XG59XG5Aa2V5ZnJhbWVzIGZhZGVJbkxlZnQge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTAlKTtcbiAgfVxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwJSk7XG4gIH1cbn1cbkBrZXlmcmFtZXMgZmFkZUluUmlnaHQge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEwJSk7XG4gIH1cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCUpO1xuICB9XG59XG4vKiBPdXQgKi9cbkBrZXlmcmFtZXMgZmFkZU91dCB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbn1cbkBrZXlmcmFtZXMgZmFkZU91dFVwIHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDAlKTtcbiAgfVxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSg1JSk7XG4gIH1cbn1cbkBrZXlmcmFtZXMgZmFkZU91dERvd24ge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCUpO1xuICB9XG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01JSk7XG4gIH1cbn1cbkBrZXlmcmFtZXMgZmFkZU91dExlZnQge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCUpO1xuICB9XG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDUlKTtcbiAgfVxufVxuQGtleWZyYW1lcyBmYWRlT3V0UmlnaHQge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCUpO1xuICB9XG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01JSk7XG4gIH1cbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgRmxpcHNcbi0tLS0tLS0tLS0tLS0tLSovXG4uZmxpcC50cmFuc2l0aW9uLmluLFxuLmZsaXAudHJhbnNpdGlvbi5vdXQge1xuICBhbmltYXRpb24tZHVyYXRpb246IDYwMG1zO1xufVxuLmhvcml6b250YWwuZmxpcC50cmFuc2l0aW9uLmluIHtcbiAgYW5pbWF0aW9uLW5hbWU6IGhvcml6b250YWxGbGlwSW47XG59XG4uaG9yaXpvbnRhbC5mbGlwLnRyYW5zaXRpb24ub3V0IHtcbiAgYW5pbWF0aW9uLW5hbWU6IGhvcml6b250YWxGbGlwT3V0O1xufVxuLnZlcnRpY2FsLmZsaXAudHJhbnNpdGlvbi5pbiB7XG4gIGFuaW1hdGlvbi1uYW1lOiB2ZXJ0aWNhbEZsaXBJbjtcbn1cbi52ZXJ0aWNhbC5mbGlwLnRyYW5zaXRpb24ub3V0IHtcbiAgYW5pbWF0aW9uLW5hbWU6IHZlcnRpY2FsRmxpcE91dDtcbn1cbi8qIEluICovXG5Aa2V5ZnJhbWVzIGhvcml6b250YWxGbGlwSW4ge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgyMDAwcHgpIHJvdGF0ZVkoLTkwZGVnKTtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMjAwMHB4KSByb3RhdGVZKDBkZWcpO1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbn1cbkBrZXlmcmFtZXMgdmVydGljYWxGbGlwSW4ge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgyMDAwcHgpIHJvdGF0ZVgoLTkwZGVnKTtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMjAwMHB4KSByb3RhdGVYKDBkZWcpO1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbn1cbi8qIE91dCAqL1xuQGtleWZyYW1lcyBob3Jpem9udGFsRmxpcE91dCB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDIwMDBweCkgcm90YXRlWSgwZGVnKTtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMjAwMHB4KSByb3RhdGVZKDkwZGVnKTtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG59XG5Aa2V5ZnJhbWVzIHZlcnRpY2FsRmxpcE91dCB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDIwMDBweCkgcm90YXRlWCgwZGVnKTtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMjAwMHB4KSByb3RhdGVYKC05MGRlZyk7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICAgU2NhbGVcbi0tLS0tLS0tLS0tLS0tLSovXG4uc2NhbGUudHJhbnNpdGlvbi5pbiB7XG4gIGFuaW1hdGlvbi1uYW1lOiBzY2FsZUluO1xufVxuLnNjYWxlLnRyYW5zaXRpb24ub3V0IHtcbiAgYW5pbWF0aW9uLW5hbWU6IHNjYWxlT3V0O1xufVxuQGtleWZyYW1lcyBzY2FsZUluIHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgwLjgpO1xuICB9XG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgfVxufVxuLyogT3V0ICovXG5Aa2V5ZnJhbWVzIHNjYWxlT3V0IHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgfVxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMC45KTtcbiAgfVxufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICAgRmx5XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW53YXJkICovXG4udHJhbnNpdGlvbi5mbHkge1xuICBhbmltYXRpb24tZHVyYXRpb246IDAuNnM7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4yMTUsIDAuNjEsIDAuMzU1LCAxKTtcbn1cbi50cmFuc2l0aW9uLmZseS5pbiB7XG4gIGFuaW1hdGlvbi1uYW1lOiBmbHlJbjtcbn1cbi50cmFuc2l0aW9uW2NsYXNzKj1cImZseSB1cFwiXS5pbiB7XG4gIGFuaW1hdGlvbi1uYW1lOiBmbHlJblVwO1xufVxuLnRyYW5zaXRpb25bY2xhc3MqPVwiZmx5IGRvd25cIl0uaW4ge1xuICBhbmltYXRpb24tbmFtZTogZmx5SW5Eb3duO1xufVxuLnRyYW5zaXRpb25bY2xhc3MqPVwiZmx5IGxlZnRcIl0uaW4ge1xuICBhbmltYXRpb24tbmFtZTogZmx5SW5MZWZ0O1xufVxuLnRyYW5zaXRpb25bY2xhc3MqPVwiZmx5IHJpZ2h0XCJdLmluIHtcbiAgYW5pbWF0aW9uLW5hbWU6IGZseUluUmlnaHQ7XG59XG4vKiBPdXR3YXJkICovXG4udHJhbnNpdGlvbi5mbHkub3V0IHtcbiAgYW5pbWF0aW9uLW5hbWU6IGZseU91dDtcbn1cbi50cmFuc2l0aW9uW2NsYXNzKj1cImZseSB1cFwiXS5vdXQge1xuICBhbmltYXRpb24tbmFtZTogZmx5T3V0VXA7XG59XG4udHJhbnNpdGlvbltjbGFzcyo9XCJmbHkgZG93blwiXS5vdXQge1xuICBhbmltYXRpb24tbmFtZTogZmx5T3V0RG93bjtcbn1cbi50cmFuc2l0aW9uW2NsYXNzKj1cImZseSBsZWZ0XCJdLm91dCB7XG4gIGFuaW1hdGlvbi1uYW1lOiBmbHlPdXRMZWZ0O1xufVxuLnRyYW5zaXRpb25bY2xhc3MqPVwiZmx5IHJpZ2h0XCJdLm91dCB7XG4gIGFuaW1hdGlvbi1uYW1lOiBmbHlPdXRSaWdodDtcbn1cbi8qIEluICovXG5Aa2V5ZnJhbWVzIGZseUluIHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKDAuMywgMC4zLCAwLjMpO1xuICB9XG4gIDIwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKDEuMSwgMS4xLCAxLjEpO1xuICB9XG4gIDQwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKDAuOSwgMC45LCAwLjkpO1xuICB9XG4gIDYwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoMS4wMywgMS4wMywgMS4wMyk7XG4gIH1cbiAgODAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoMC45NywgMC45NywgMC45Nyk7XG4gIH1cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoMSwgMSwgMSk7XG4gIH1cbn1cbkBrZXlmcmFtZXMgZmx5SW5VcCB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMTUwMHB4LCAwKTtcbiAgfVxuICA2MCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMjBweCwgMCk7XG4gIH1cbiAgNzUlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDEwcHgsIDApO1xuICB9XG4gIDkwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtNXB4LCAwKTtcbiAgfVxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICB9XG59XG5Aa2V5ZnJhbWVzIGZseUluRG93biB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTE1MDBweCwgMCk7XG4gIH1cbiAgNjAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMjVweCwgMCk7XG4gIH1cbiAgNzUlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0xMHB4LCAwKTtcbiAgfVxuICA5MCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgNXB4LCAwKTtcbiAgfVxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IG5vbmU7XG4gIH1cbn1cbkBrZXlmcmFtZXMgZmx5SW5MZWZ0IHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgxNTAwcHgsIDAsIDApO1xuICB9XG4gIDYwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0yNXB4LCAwLCAwKTtcbiAgfVxuICA3NSUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMTBweCwgMCwgMCk7XG4gIH1cbiAgOTAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC01cHgsIDAsIDApO1xuICB9XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgfVxufVxuQGtleWZyYW1lcyBmbHlJblJpZ2h0IHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMTUwMHB4LCAwLCAwKTtcbiAgfVxuICA2MCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgyNXB4LCAwLCAwKTtcbiAgfVxuICA3NSUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTEwcHgsIDAsIDApO1xuICB9XG4gIDkwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCg1cHgsIDAsIDApO1xuICB9XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgfVxufVxuLyogT3V0ICovXG5Aa2V5ZnJhbWVzIGZseU91dCB7XG4gIDIwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKDAuOSwgMC45LCAwLjkpO1xuICB9XG4gIDUwJSxcbiAgNTUlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCgxLjEsIDEuMSwgMS4xKTtcbiAgfVxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCgwLjMsIDAuMywgMC4zKTtcbiAgfVxufVxuQGtleWZyYW1lcyBmbHlPdXRVcCB7XG4gIDIwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAxMHB4LCAwKTtcbiAgfVxuICA0MCUsXG4gIDQ1JSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0yMHB4LCAwKTtcbiAgfVxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMjAwMHB4LCAwKTtcbiAgfVxufVxuQGtleWZyYW1lcyBmbHlPdXREb3duIHtcbiAgMjAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0xMHB4LCAwKTtcbiAgfVxuICA0MCUsXG4gIDQ1JSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDIwcHgsIDApO1xuICB9XG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMjAwMHB4LCAwKTtcbiAgfVxufVxuQGtleWZyYW1lcyBmbHlPdXRSaWdodCB7XG4gIDIwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDIwcHgsIDAsIDApO1xuICB9XG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMjAwMHB4LCAwLCAwKTtcbiAgfVxufVxuQGtleWZyYW1lcyBmbHlPdXRMZWZ0IHtcbiAgMjAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTIwcHgsIDAsIDApO1xuICB9XG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgyMDAwcHgsIDAsIDApO1xuICB9XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIFNsaWRlXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnRyYW5zaXRpb24uc2xpZGUuaW4sXG4udHJhbnNpdGlvbltjbGFzcyo9XCJzbGlkZSBkb3duXCJdLmluIHtcbiAgYW5pbWF0aW9uLW5hbWU6IHNsaWRlSW5ZO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiB0b3AgY2VudGVyO1xufVxuLnRyYW5zaXRpb25bY2xhc3MqPVwic2xpZGUgdXBcIl0uaW4ge1xuICBhbmltYXRpb24tbmFtZTogc2xpZGVJblk7XG4gIHRyYW5zZm9ybS1vcmlnaW46IGJvdHRvbSBjZW50ZXI7XG59XG4udHJhbnNpdGlvbltjbGFzcyo9XCJzbGlkZSBsZWZ0XCJdLmluIHtcbiAgYW5pbWF0aW9uLW5hbWU6IHNsaWRlSW5YO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXIgcmlnaHQ7XG59XG4udHJhbnNpdGlvbltjbGFzcyo9XCJzbGlkZSByaWdodFwiXS5pbiB7XG4gIGFuaW1hdGlvbi1uYW1lOiBzbGlkZUluWDtcbiAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyIGxlZnQ7XG59XG4udHJhbnNpdGlvbi5zbGlkZS5vdXQsXG4udHJhbnNpdGlvbltjbGFzcyo9XCJzbGlkZSBkb3duXCJdLm91dCB7XG4gIGFuaW1hdGlvbi1uYW1lOiBzbGlkZU91dFk7XG4gIHRyYW5zZm9ybS1vcmlnaW46IHRvcCBjZW50ZXI7XG59XG4udHJhbnNpdGlvbltjbGFzcyo9XCJzbGlkZSB1cFwiXS5vdXQge1xuICBhbmltYXRpb24tbmFtZTogc2xpZGVPdXRZO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiBib3R0b20gY2VudGVyO1xufVxuLnRyYW5zaXRpb25bY2xhc3MqPVwic2xpZGUgbGVmdFwiXS5vdXQge1xuICBhbmltYXRpb24tbmFtZTogc2xpZGVPdXRYO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXIgcmlnaHQ7XG59XG4udHJhbnNpdGlvbltjbGFzcyo9XCJzbGlkZSByaWdodFwiXS5vdXQge1xuICBhbmltYXRpb24tbmFtZTogc2xpZGVPdXRYO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXIgbGVmdDtcbn1cbi8qIEluICovXG5Aa2V5ZnJhbWVzIHNsaWRlSW5ZIHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiBzY2FsZVkoMCk7XG4gIH1cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlWSgxKTtcbiAgfVxufVxuQGtleWZyYW1lcyBzbGlkZUluWCB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zZm9ybTogc2NhbGVYKDApO1xuICB9XG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiBzY2FsZVgoMSk7XG4gIH1cbn1cbi8qIE91dCAqL1xuQGtleWZyYW1lcyBzbGlkZU91dFkge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlWSgxKTtcbiAgfVxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zZm9ybTogc2NhbGVZKDApO1xuICB9XG59XG5Aa2V5ZnJhbWVzIHNsaWRlT3V0WCB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogc2NhbGVYKDEpO1xuICB9XG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiBzY2FsZVgoMCk7XG4gIH1cbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgU3dpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4udHJhbnNpdGlvbi5zd2luZyB7XG4gIGFuaW1hdGlvbi1kdXJhdGlvbjogODAwbXM7XG59XG4udHJhbnNpdGlvbltjbGFzcyo9XCJzd2luZyBkb3duXCJdLmluIHtcbiAgYW5pbWF0aW9uLW5hbWU6IHN3aW5nSW5YO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiB0b3AgY2VudGVyO1xufVxuLnRyYW5zaXRpb25bY2xhc3MqPVwic3dpbmcgdXBcIl0uaW4ge1xuICBhbmltYXRpb24tbmFtZTogc3dpbmdJblg7XG4gIHRyYW5zZm9ybS1vcmlnaW46IGJvdHRvbSBjZW50ZXI7XG59XG4udHJhbnNpdGlvbltjbGFzcyo9XCJzd2luZyBsZWZ0XCJdLmluIHtcbiAgYW5pbWF0aW9uLW5hbWU6IHN3aW5nSW5ZO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXIgcmlnaHQ7XG59XG4udHJhbnNpdGlvbltjbGFzcyo9XCJzd2luZyByaWdodFwiXS5pbiB7XG4gIGFuaW1hdGlvbi1uYW1lOiBzd2luZ0luWTtcbiAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyIGxlZnQ7XG59XG4udHJhbnNpdGlvbi5zd2luZy5vdXQsXG4udHJhbnNpdGlvbltjbGFzcyo9XCJzd2luZyBkb3duXCJdLm91dCB7XG4gIGFuaW1hdGlvbi1uYW1lOiBzd2luZ091dFg7XG4gIHRyYW5zZm9ybS1vcmlnaW46IHRvcCBjZW50ZXI7XG59XG4udHJhbnNpdGlvbltjbGFzcyo9XCJzd2luZyB1cFwiXS5vdXQge1xuICBhbmltYXRpb24tbmFtZTogc3dpbmdPdXRYO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiBib3R0b20gY2VudGVyO1xufVxuLnRyYW5zaXRpb25bY2xhc3MqPVwic3dpbmcgbGVmdFwiXS5vdXQge1xuICBhbmltYXRpb24tbmFtZTogc3dpbmdPdXRZO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXIgcmlnaHQ7XG59XG4udHJhbnNpdGlvbltjbGFzcyo9XCJzd2luZyByaWdodFwiXS5vdXQge1xuICBhbmltYXRpb24tbmFtZTogc3dpbmdPdXRZO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXIgbGVmdDtcbn1cbi8qIEluICovXG5Aa2V5ZnJhbWVzIHN3aW5nSW5YIHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMTAwMHB4KSByb3RhdGVYKDkwZGVnKTtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG4gIDQwJSB7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgxMDAwcHgpIHJvdGF0ZVgoLTMwZGVnKTtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG4gIDYwJSB7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgxMDAwcHgpIHJvdGF0ZVgoMTVkZWcpO1xuICB9XG4gIDgwJSB7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgxMDAwcHgpIHJvdGF0ZVgoLTcuNWRlZyk7XG4gIH1cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgxMDAwcHgpIHJvdGF0ZVgoMGRlZyk7XG4gIH1cbn1cbkBrZXlmcmFtZXMgc3dpbmdJblkge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgxMDAwcHgpIHJvdGF0ZVkoLTkwZGVnKTtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG4gIDQwJSB7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgxMDAwcHgpIHJvdGF0ZVkoMzBkZWcpO1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbiAgNjAlIHtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDEwMDBweCkgcm90YXRlWSgtMTcuNWRlZyk7XG4gIH1cbiAgODAlIHtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDEwMDBweCkgcm90YXRlWSg3LjVkZWcpO1xuICB9XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMTAwMHB4KSByb3RhdGVZKDBkZWcpO1xuICB9XG59XG4vKiBPdXQgKi9cbkBrZXlmcmFtZXMgc3dpbmdPdXRYIHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMTAwMHB4KSByb3RhdGVYKDBkZWcpO1xuICB9XG4gIDQwJSB7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgxMDAwcHgpIHJvdGF0ZVgoLTcuNWRlZyk7XG4gIH1cbiAgNjAlIHtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDEwMDBweCkgcm90YXRlWCgxNy41ZGVnKTtcbiAgfVxuICA4MCUge1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMTAwMHB4KSByb3RhdGVYKC0zMGRlZyk7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDEwMDBweCkgcm90YXRlWCg5MGRlZyk7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxufVxuQGtleWZyYW1lcyBzd2luZ091dFkge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgxMDAwcHgpIHJvdGF0ZVkoMGRlZyk7XG4gIH1cbiAgNDAlIHtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDEwMDBweCkgcm90YXRlWSg3LjVkZWcpO1xuICB9XG4gIDYwJSB7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgxMDAwcHgpIHJvdGF0ZVkoLTEwZGVnKTtcbiAgfVxuICA4MCUge1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMTAwMHB4KSByb3RhdGVZKDMwZGVnKTtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMTAwMHB4KSByb3RhdGVZKC05MGRlZyk7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICBTdGF0aWMgQW5pbWF0aW9uc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBFbXBoYXNpc1xuLS0tLS0tLS0tLS0tLS0tKi9cbi5mbGFzaC50cmFuc2l0aW9uIHtcbiAgYW5pbWF0aW9uLWR1cmF0aW9uOiA3NTBtcztcbiAgYW5pbWF0aW9uLW5hbWU6IGZsYXNoO1xufVxuLnNoYWtlLnRyYW5zaXRpb24ge1xuICBhbmltYXRpb24tZHVyYXRpb246IDc1MG1zO1xuICBhbmltYXRpb24tbmFtZTogc2hha2U7XG59XG4uYm91bmNlLnRyYW5zaXRpb24ge1xuICBhbmltYXRpb24tZHVyYXRpb246IDc1MG1zO1xuICBhbmltYXRpb24tbmFtZTogYm91bmNlO1xufVxuLnRhZGEudHJhbnNpdGlvbiB7XG4gIGFuaW1hdGlvbi1kdXJhdGlvbjogNzUwbXM7XG4gIGFuaW1hdGlvbi1uYW1lOiB0YWRhO1xufVxuLnB1bHNlLnRyYW5zaXRpb24ge1xuICBhbmltYXRpb24tZHVyYXRpb246IDUwMG1zO1xuICBhbmltYXRpb24tbmFtZTogcHVsc2U7XG59XG4uamlnZ2xlLnRyYW5zaXRpb24ge1xuICBhbmltYXRpb24tZHVyYXRpb246IDc1MG1zO1xuICBhbmltYXRpb24tbmFtZTogamlnZ2xlO1xufVxuLyogRmxhc2ggKi9cbkBrZXlmcmFtZXMgZmxhc2gge1xuICAwJSxcbiAgNTAlLFxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG4gIDI1JSxcbiAgNzUlIHtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG59XG4vKiBTaGFrZSAqL1xuQGtleWZyYW1lcyBzaGFrZSB7XG4gIDAlLFxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7XG4gIH1cbiAgMTAlLFxuICAzMCUsXG4gIDUwJSxcbiAgNzAlLFxuICA5MCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTBweCk7XG4gIH1cbiAgMjAlLFxuICA0MCUsXG4gIDYwJSxcbiAgODAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTBweCk7XG4gIH1cbn1cbi8qIEJvdW5jZSAqL1xuQGtleWZyYW1lcyBib3VuY2Uge1xuICAwJSxcbiAgMjAlLFxuICA1MCUsXG4gIDgwJSxcbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xuICB9XG4gIDQwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0zMHB4KTtcbiAgfVxuICA2MCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTVweCk7XG4gIH1cbn1cbi8qIFRhZGEgKi9cbkBrZXlmcmFtZXMgdGFkYSB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICB9XG4gIDEwJSxcbiAgMjAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDAuOSkgcm90YXRlKC0zZGVnKTtcbiAgfVxuICAzMCUsXG4gIDUwJSxcbiAgNzAlLFxuICA5MCUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMS4xKSByb3RhdGUoM2RlZyk7XG4gIH1cbiAgNDAlLFxuICA2MCUsXG4gIDgwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxLjEpIHJvdGF0ZSgtM2RlZyk7XG4gIH1cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxKSByb3RhdGUoMCk7XG4gIH1cbn1cbi8qIFB1bHNlICovXG5Aa2V5ZnJhbWVzIHB1bHNlIHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuICA1MCUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMC45KTtcbiAgICBvcGFjaXR5OiAwLjc7XG4gIH1cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG59XG4vKiBSdWJiZXJiYW5kICovXG5Aa2V5ZnJhbWVzIGppZ2dsZSB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoMSwgMSwgMSk7XG4gIH1cbiAgMzAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoMS4yNSwgMC43NSwgMSk7XG4gIH1cbiAgNDAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoMC43NSwgMS4yNSwgMSk7XG4gIH1cbiAgNTAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoMS4xNSwgMC44NSwgMSk7XG4gIH1cbiAgNjUlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoMC45NSwgMS4wNSwgMSk7XG4gIH1cbiAgNzUlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoMS4wNSwgMC45NSwgMSk7XG4gIH1cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKDEsIDEsIDEpO1xuICB9XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICBVc2VyIEdsb2JhbCBWYXJpYWJsZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBtYXJzbyBjb2xvcnMgKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4iXX0= */


/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX3RoZW1lX21hcnNvX2Fzc2V0c19jc3Nfc2VtYW50aWNfY3NzLXB1YmxpY190aGVtZV9tYXJzb19hc3NldHNfY3NzX3NlbWFudGljX2Nzcy5jc3MiLCJtYXBwaW5ncyI6IjtBQVlBOzs7Ozs7OztFQVFFO0FBZ29CRjs7O0VBR0Usa0JBQW1CO0FBQ3JCO0FBQ0E7RUFDRSxxQkFBc0I7QUFDeEI7QUFFQTs7OztFQUlFLHVCQUF3QjtFQUN4QixvQkFBcUI7QUFFdkI7QUFDQSwyRUFBMkU7QUFRM0U7RUFDRSxnQkFBaUI7RUFFakIseUJBQTBCO0VBRTFCLDZCQUE4QjtBQUVoQztBQU1BO0VBQ0UsUUFBUztBQUNYO0FBSUE7Ozs7OztFQU1FLGFBQWM7QUFDaEI7QUFLQTtFQUNFLGFBQWM7RUFDZCxlQUFnQjtBQUNsQjtBQU9BOzs7RUFJRSxhQUFjO0FBQ2hCO0FBSUE7RUFDRSxlQUFnQjtBQUNsQjtBQUtBO0VBQ0Usc0JBQXVCO0VBRXZCLFFBQVM7RUFFVCxnQkFBaUI7QUFFbkI7QUFLQTtFQUNFLGdDQUFpQztFQUVqQyxhQUFjO0FBRWhCO0FBT0E7RUFDRSw0QkFBNkI7RUFFN0Isb0NBQXFDO0FBRXZDO0FBS0E7RUFDRSxrQkFBbUI7RUFFbkIseUJBQTBCO0VBRTFCLHdDQUFpQztVQUFqQyxnQ0FBaUM7QUFFbkM7QUFJQTs7RUFFRSxtQkFBb0I7QUFDdEI7QUFJQTs7RUFFRSxrQkFBbUI7QUFDckI7QUFLQTs7O0VBR0UsZ0NBQWlDO0VBRWpDLGFBQWM7QUFFaEI7QUFJQTtFQUNFLGlCQUFrQjtBQUNwQjtBQUlBO0VBQ0UscUJBQXNCO0VBQ3RCLFVBQVc7QUFDYjtBQUlBO0VBQ0UsYUFBYztBQUNoQjtBQUtBOztFQUVFLGFBQWM7RUFDZCxhQUFjO0VBQ2QsaUJBQWtCO0VBQ2xCLHVCQUF3QjtBQUMxQjtBQUNBO0VBQ0UsY0FBZTtBQUNqQjtBQUNBO0VBQ0UsVUFBVztBQUNiO0FBTUE7O0VBRUUsb0JBQXFCO0FBQ3ZCO0FBSUE7RUFDRSxZQUFhO0VBQ2IsUUFB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QStCO0FBQ2pDO0FBQ0E7O0VBRUUsOEJBQStCO0FBQ2pDO0FBQ0E7O0VBRUUsOEJBQStCO0FBQ2pDO0FBQ0E7O0VBRUUsOEJBQStCO0FBQ2pDO0FBQ0E7O0VBRUUsOEJBQStCO0FBQ2pDO0FBQ0E7O0VBRUUsOEJBQStCO0FBQ2pDO0FBQ0E7O0VBRUUsOEJBQStCO0FBQ2pDO0FBQ0E7O0VBRUUsOEJBQStCO0FBQ2pDO0FBQ0E7O0VBRUUsOEJBQStCO0FBQ2pDO0FBQ0E7O0VBRUUsOEJBQStCO0FBQ2pDO0FBQ0E7O0VBRUUsOEJBQStCO0FBQ2pDO0FBQ0E7O0VBRUUsOEJBQStCO0FBQ2pDO0FBQ0E7O0VBRUUsOEJBQStCO0FBQ2pDO0FBQ0E7O0VBRUUsOEJBQStCO0FBQ2pDO0FBQ0E7O0VBRUUsOEJBQStCO0FBQ2pDO0FBQ0E7O0VBRUUsOEJBQStCO0FBQ2pDO0FBQ0E7O0VBRUUsK0JBQWdDO0FBQ2xDO0FBQ0E7O0VBRUUsK0JBQWdDO0FBQ2xDO0FBQ0E7O0VBRUUsK0JBQWdDO0FBQ2xDO0FBQ0E7O0VBRUUsK0JBQWdDO0FBQ2xDO0FBQ0E7O0VBRUUsK0JBQWdDO0FBQ2xDO0FBQ0E7O0VBRUUsK0JBQWdDO0FBQ2xDO0FBQ0E7O0VBRUUsK0JBQWdDO0FBQ2xDO0FBQ0E7O0VBRUUsK0JBQWdDO0FBQ2xDO0FBQ0E7O0VBRUUsK0JBQWdDO0FBQ2xDO0FBQ0E7O0VBRUUsK0JBQWdDO0FBQ2xDO0FBQ0E7O0VBRUUsK0JBQWdDO0FBQ2xDO0FBQ0E7O0VBRUUsK0JBQWdDO0FBQ2xDO0FBQ0E7O0VBRUUsK0JBQWdDO0FBQ2xDO0FBQ0E7O0VBRUUsK0JBQWdDO0FBQ2xDO0FBQ0E7O0VBRUUsK0JBQWdDO0FBQ2xDO0FBQ0E7O0VBRUUsK0JBQWdDO0FBQ2xDO0FBQ0E7O0VBRUUsK0JBQWdDO0FBQ2xDO0FBQ0E7O0VBRUUsK0JBQWdDO0FBQ2xDO0FBQ0E7O0VBRUUsK0JBQWdDO0FBQ2xDO0FBQ0E7O0VBRUUsK0JBQWdDO0FBQ2xDO0FBQ0E7O0VBRUUsK0JBQWdDO0FBQ2xDO0FBQ0E7O0VBRUUsK0JBQWdDO0FBQ2xDO0FBQ0E7O0VBRUUsK0JBQWdDO0FBQ2xDO0FBQ0E7O0VBRUUsK0JBQWdDO0FBQ2xDO0FBQ0E7O0VBRUUsK0JBQWdDO0FBQ2xDO0FBQ0E7O0VBRUUsK0JBQWdDO0FBQ2xDO0FBQ0E7O0VBRUUsK0JBQWdDO0FBQ2xDO0FBQ0E7O0VBRUUsK0JBQWdDO0FBQ2xDO0FBQ0E7O0VBRUUsK0JBQWdDO0FBQ2xDO0FBQ0E7O0VBRUUsK0JBQWdDO0FBQ2xDO0FBQ0E7O0VBRUUsK0JBQWdDO0FBQ2xDO0FBQ0E7O0VBRUUsK0JBQWdDO0FBQ2xDO0FBQ0E7O0VBRUUsK0JBQWdDO0FBQ2xDO0FBQ0E7O0VBRUUsK0JBQWdDO0FBQ2xDO0FBQ0E7O0VBRUUsK0JBQWdDO0FBQ2xDO0FBQ0E7O0VBRUUsK0JBQWdDO0FBQ2xDO0FBQ0E7O0VBRUUsNkJBQThCO0FBQ2hDO0FBQ0E7O0VBRUUsK0JBQWdDO0FBQ2xDO0FBQ0E7O0VBRUUsK0JBQWdDO0FBQ2xDO0FBQ0E7O0VBRUUsK0JBQWdDO0FBQ2xDO0FBQ0E7O0VBRUUsZ0NBQWlDO0FBQ25DO0FBQ0E7O0VBRUUsZ0NBQWlDO0FBQ25DO0FBQ0E7O0VBRUUsZ0NBQWlDO0FBQ25DO0FBQ0E7O0VBRUUsZ0NBQWlDO0FBQ25DO0FBQ0E7O0VBRUUsZ0NBQWlDO0FBQ25DO0FBQ0E7O0VBRUUsZ0NBQWlDO0FBQ25DO0FBQ0E7O0VBRUUsZ0NBQWlDO0FBQ25DO0FBQ0E7O0VBRUUsZ0NBQWlDO0FBQ25DO0FBQ0E7O0VBRUUsZ0NBQWlDO0FBQ25DO0FBQ0E7O0VBRUUsZ0NBQWlDO0FBQ25DO0FBQ0E7O0VBRUUsZ0NBQWlDO0FBQ25DO0FBQ0E7O0VBRUUsZ0NBQWlDO0FBQ25DO0FBQ0E7O0VBRUUsZ0NBQWlDO0FBQ25DO0FBQ0E7O0VBRUUsZ0NBQWlDO0FBQ25DO0FBQ0E7O0VBRUUsZ0NBQWlDO0FBQ25DO0FBQ0E7O0VBRUUsZ0NBQWlDO0FBQ25DO0FBQ0E7O0VBRUUsZ0NBQWlDO0FBQ25DO0FBQ0E7O0VBRUUsZ0NBQWlDO0FBQ25DO0FBQ0E7O0VBRUUsZ0NBQWlDO0FBQ25DO0FBQ0E7O0VBRUUsZ0NBQWlDO0FBQ25DO0FBQ0E7O0VBRUUsZ0NBQWlDO0FBQ25DO0FBQ0E7O0VBRUUsZ0NBQWlDO0FBQ25DO0FBQ0E7O0VBRUUsZ0NBQWlDO0FBQ25DO0FBQ0E7O0VBRUUsZ0NBQWlDO0FBQ25DO0FBQ0E7O0VBRUUsZ0NBQWlDO0FBQ25DO0FBQ0E7O0VBRUUsZ0NBQWlDO0FBQ25DO0FBQ0E7O0VBRUUsZ0NBQWlDO0FBQ25DO0FBQ0E7O0VBRUUsZ0NBQWlDO0FBQ25DO0FBQ0E7O0VBRUUsZ0NBQWlDO0FBQ25DO0FBQ0E7O0VBRUUsZ0NBQWlDO0FBQ25DO0FBQ0E7O0VBRUUsZ0NBQWlDO0FBQ25DO0FBQ0E7O0VBRUUsZ0NBQWlDO0FBQ25DO0FBQ0E7O0VBRUUsZ0NBQWlDO0FBQ25DO0FBQ0E7O0VBRUUsZ0NBQWlDO0FBQ25DO0FBQ0E7O0VBRUUsZ0NBQWlDO0FBQ25DO0FBQ0E7O0VBRUUsaUNBQWtDO0FBQ3BDO0FBQ0E7O0VBRUUsaUNBQWtDO0FBQ3BDO0FBQ0E7O0VBRUUsaUNBQWtDO0FBQ3BDO0FBQ0E7O0VBRUUsaUNBQWtDO0FBQ3BDO0FBQ0E7O0VBRUUsaUNBQWtDO0FBQ3BDO0FBQ0E7O0VBRUUsaUNBQWtDO0FBQ3BDO0FBQ0E7O0VBRUUsaUNBQWtDO0FBQ3BDO0FBQ0E7O0VBRUUsaUNBQWtDO0FBQ3BDO0FBQ0E7O0VBRUUsaUNBQWtDO0FBQ3BDO0FBQ0E7O0VBRUUsaUNBQWtDO0FBQ3BDO0FBQ0E7O0VBRUUsaUNBQWtDO0FBQ3BDO0FBQ0E7O0VBRUUsaUNBQWtDO0FBQ3BDO0FBQ0E7O0VBRUUsaUNBQWtDO0FBQ3BDO0FBQ0E7O0VBRUUsaUNBQWtDO0FBQ3BDO0FBQ0E7O0VBRUUsaUNBQWtDO0FBQ3BDO0FBQ0E7O0VBRUUsaUNBQWtDO0FBQ3BDO0FBQ0E7O0VBRUUsaUNBQWtDO0FBQ3BDO0FBQ0E7O0VBRUUsaUNBQWtDO0FBQ3BDO0FBQ0E7O0VBRUUsaUNBQWtDO0FBQ3BDO0FBQ0E7O0VBRUUsaUNBQWtDO0FBQ3BDO0FBQ0E7O0VBRUUsaUNBQWtDO0FBQ3BDO0FBQ0E7O0VBRUUsaUNBQWtDO0FBQ3BDO0FBQ0E7O0VBRUUsaUNBQWtDO0FBQ3BDO0FBQ0E7O0VBRUUsaUNBQWtDO0FBQ3BDO0FBQ0E7O0VBRUUsaUNBQWtDO0FBQ3BDO0FBQ0E7O0VBRUUsaUNBQWtDO0FBQ3BDO0FBQ0E7O0VBRUUsaUNBQWtDO0FBQ3BDO0FBQ0E7OztFQUdFLGlDQUFrQztBQUNwQztBQUNBOztFQUVFLGlDQUFrQztBQUNwQztBQUNBOztFQUVFLGlDQUFrQztBQUNwQztBQUNBOztFQUVFLGlDQUFrQztBQUNwQztBQUNBOztFQUVFLGlDQUFrQztBQUNwQztBQUNBOztFQUVFLGlDQUFrQztBQUNwQztBQUNBOztFQUVFLGlDQUFrQztBQUNwQztBQUNBOztFQUVFLGlDQUFrQztBQUNwQztBQUNBOztFQUVFLGlDQUFrQztBQUNwQztBQUNBOztFQUVFLGlDQUFrQztBQUNwQztBQUNBOztFQUVFLGlDQUFrQztBQUNwQztBQUNBOztFQUVFLDZCQUE4QjtBQUNoQztBQUNBOztFQUVFLCtCQUFnQztBQUNsQztBQUNBOztFQUVFLCtCQUFnQztBQUNsQztBQUNBOztFQUVFLCtCQUFnQztBQUNsQztBQUNBOztFQUVFLGdDQUFpQztBQUNuQztBQUNBOztFQUVFLGdDQUFpQztBQUNuQztBQUNBOztFQUVFLGdDQUFpQztBQUNuQztBQUNBOztFQUVFLGdDQUFpQztBQUNuQztBQUNBOztFQUVFLGdDQUFpQztBQUNuQztBQUNBOztFQUVFLGdDQUFpQztBQUNuQztBQUNBOztFQUVFLGdDQUFpQztBQUNuQztBQUNBOztFQUVFLGdDQUFpQztBQUNuQztBQUNBOztFQUVFLGdDQUFpQztBQUNuQztBQUNBOztFQUVFLGdDQUFpQztBQUNuQztBQUNBOztFQUVFLGdDQUFpQztBQUNuQztBQUNBOztFQUVFLGdDQUFpQztBQUNuQztBQUNBOztFQUVFLGdDQUFpQztBQUNuQztBQUNBOztFQUVFLGdDQUFpQztBQUNuQztBQUNBOztFQUVFLGdDQUFpQztBQUNuQztBQUNBOztFQUVFLGdDQUFpQztBQUNuQztBQUNBOztFQUVFLGdDQUFpQztBQUNuQztBQUNBOztFQUVFLGdDQUFpQztBQUNuQztBQUNBOztFQUVFLGdDQUFpQztBQUNuQztBQUNBOztFQUVFLGdDQUFpQztBQUNuQztBQUNBOztFQUVFLGdDQUFpQztBQUNuQztBQUNBOztFQUVFLGdDQUFpQztBQUNuQztBQUNBOztFQUVFLGdDQUFpQztBQUNuQztBQUNBOztFQUVFLGdDQUFpQztBQUNuQztBQUNBOztFQUVFLGdDQUFpQztBQUNuQztBQUNBOztFQUVFLGdDQUFpQztBQUNuQztBQUNBOztFQUVFLGdDQUFpQztBQUNuQztBQUNBOztFQUVFLGdDQUFpQztBQUNuQztBQUNBOztFQUVFLGdDQUFpQztBQUNuQztBQUNBOztFQUVFLGdDQUFpQztBQUNuQztBQUNBOztFQUVFLGdDQUFpQztBQUNuQztBQUNBOztFQUVFLGdDQUFpQztBQUNuQztBQUNBOztFQUVFLGdDQUFpQztBQUNuQztBQUNBOztFQUVFLGdDQUFpQztBQUNuQztBQUNBOztFQUVFLGdDQUFpQztBQUNuQztBQUNBOztFQUVFLGlDQUFrQztBQUNwQztBQUNBOztFQUVFLGlDQUFrQztBQUNwQztBQUNBOztFQUVFLGlDQUFrQztBQUNwQztBQUNBOztFQUVFLGlDQUFrQztBQUNwQztBQUNBOztFQUVFLGlDQUFrQztBQUNwQztBQUNBOztFQUVFLGlDQUFrQztBQUNwQztBQUNBOzs7RUFHRSxpQ0FBa0M7QUFDcEM7QUFDQTs7RUFFRSxpQ0FBa0M7QUFDcEM7QUFDQTs7RUFFRSxpQ0FBa0M7QUFDcEM7QUFDQTs7RUFFRSxpQ0FBa0M7QUFDcEM7QUFDQTs7RUFFRSxpQ0FBa0M7QUFDcEM7QUFDQTs7RUFFRSxpQ0FBa0M7QUFDcEM7QUFDQTs7RUFFRSxpQ0FBa0M7QUFDcEM7QUFDQTs7RUFFRSxpQ0FBa0M7QUFDcEM7QUFDQTs7RUFFRSxpQ0FBa0M7QUFDcEM7QUFDQTs7RUFFRSxpQ0FBa0M7QUFDcEM7QUFDQTs7RUFFRSxpQ0FBa0M7QUFDcEM7QUFDQTs7RUFFRSxpQ0FBa0M7QUFDcEM7QUFDQTs7RUFFRSxpQ0FBa0M7QUFDcEM7QUFDQTs7RUFFRSxpQ0FBa0M7QUFDcEM7QUFDQTs7RUFFRSxpQ0FBa0M7QUFDcEM7QUFDQTs7RUFFRSxpQ0FBa0M7QUFDcEM7QUFDQTs7RUFFRSxpQ0FBa0M7QUFDcEM7QUFDQTs7RUFFRSxpQ0FBa0M7QUFDcEM7QUFDQTs7RUFFRSxpQ0FBa0M7QUFDcEM7QUFDQTs7RUFFRSxpQ0FBa0M7QUFDcEM7QUFDQTs7RUFFRSxpQ0FBa0M7QUFDcEM7QUFDQTs7RUFFRSxpQ0FBa0M7QUFDcEM7QUFDQTs7RUFFRSxpQ0FBa0M7QUFDcEM7QUFDQTs7RUFFRSxpQ0FBa0M7QUFDcEM7QUFDQTs7RUFFRSxpQ0FBa0M7QUFDcEM7QUFDQTs7RUFFRSxpQ0FBa0M7QUFDcEM7QUFDQTs7RUFFRSxpQ0FBa0M7QUFDcEM7QUFDQTs7RUFFRSxpQ0FBa0M7QUFDcEM7QUFDQTs7RUFFRSxpQ0FBa0M7QUFDcEM7QUFDQTs7RUFFRSxpQ0FBa0M7QUFDcEM7QUFDQTs7O0VBR0UsaUNBQWtDO0FBQ3BDO0FBQ0E7O0VBRUUsaUNBQWtDO0FBQ3BDO0FBQ0E7O0VBRUUsOEJBQStCO0FBQ2pDO0FBQ0E7O0VBRUUsZ0NBQWlDO0FBQ25DO0FBQ0E7O0VBRUUsZ0NBQWlDO0FBQ25DO0FBQ0E7O0VBRUUsZ0NBQWlDO0FBQ25DO0FBQ0E7O0VBRUUsaUNBQWtDO0FBQ3BDO0FBQ0E7O0VBRUUsaUNBQWtDO0FBQ3BDO0FBQ0E7O0VBRUUsaUNBQWtDO0FBQ3BDO0FBQ0E7O0VBRUUsaUNBQWtDO0FBQ3BDO0FBQ0E7O0VBRUUsaUNBQWtDO0FBQ3BDO0FBQ0E7O0VBRUUsaUNBQWtDO0FBQ3BDO0FBQ0E7O0VBRUUsaUNBQWtDO0FBQ3BDO0FBQ0E7O0VBRUUsaUNBQWtDO0FBQ3BDO0FBQ0E7O0VBRUUsaUNBQWtDO0FBQ3BDO0FBQ0E7O0VBRUUsaUNBQWtDO0FBQ3BDO0FBQ0E7O0VBRUUsaUNBQWtDO0FBQ3BDO0FBQ0E7O0VBRUUsaUNBQWtDO0FBQ3BDO0FBSUE7Ozs7Ozs7O0VBUUU7QUEycUJGO0VBQ0UsV0FBWTtFQUNaLGlEQUFrRDtFQUNsRCxlQUFnQjtFQUNoQix5REFBMEQ7RUFDMUQsZ0JBQWlC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RSwrQkFBZ0M7QUFDbEM7QUFFQTtFQUNFLHdCQUF5QjtBQUMzQjtBQUNBO0VBQ0Usd0JBQXlCO0FBQzNCO0FBRUE7RUFDRSx3QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHdCQUF5QjtBQUMzQjtBQUNBO0VBQ0UsK0JBQWdDO0FBQ2xDO0FBRUE7RUFDRSx3QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHdCQUF5QjtBQUMzQjtBQUVBO0VBQ0Usd0JBQXlCO0FBQzNCO0FBQ0E7RUFDRSx3QkFBeUI7QUFDM0I7QUFDQTtFQUNFLCtCQUFnQztBQUNsQztBQUVBO0VBQ0Usd0JBQXlCO0FBQzNCO0FBQ0E7RUFDRSx3QkFBeUI7QUFDM0I7QUFFQTtFQUNFLHdCQUF5QjtBQUMzQjtBQUNBO0VBQ0Usd0JBQXlCO0FBQzNCO0FBQ0E7RUFDRSwrQkFBZ0M7QUFDbEM7QUFFQTtFQUNFLHdCQUF5QjtBQUMzQjtBQUNBO0VBQ0Usd0JBQXlCO0FBQzNCO0FBRUE7RUFDRSx3QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHdCQUF5QjtBQUMzQjtBQUNBO0VBQ0UsK0JBQWdDO0FBQ2xDO0FBRUE7RUFDRSx3QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHdCQUF5QjtBQUMzQjtBQUVBO0VBQ0Usd0JBQXlCO0FBQzNCO0FBQ0E7RUFDRSx3QkFBeUI7QUFDM0I7QUFDQTtFQUNFLCtCQUFnQztBQUNsQztBQUVBO0VBQ0Usd0JBQXlCO0FBQzNCO0FBQ0E7RUFDRSx3QkFBeUI7QUFDM0I7QUFFQTtFQUNFLHdCQUF5QjtBQUMzQjtBQUNBO0VBQ0Usd0JBQXlCO0FBQzNCO0FBQ0E7RUFDRSwrQkFBZ0M7QUFDbEM7QUFFQTtFQUNFLHdCQUF5QjtBQUMzQjtBQUNBO0VBQ0Usd0JBQXlCO0FBQzNCO0FBRUE7RUFDRSx3QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHdCQUF5QjtBQUMzQjtBQUNBO0VBQ0UsK0JBQWdDO0FBQ2xDO0FBRUE7RUFDRSx3QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHdCQUF5QjtBQUMzQjtBQUVBO0VBQ0Usd0JBQXlCO0FBQzNCO0FBQ0E7RUFDRSx3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QUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFFQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUVBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFFQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFFQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFFQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFFQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUVBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBRUE7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUVBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUVBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFFQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFFQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBRUE7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBRUE7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBRUE7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBRUE7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFFQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUVBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBRUE7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBRUE7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFFQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFFQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFFQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBRUE7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBRUE7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBRUE7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFLQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFnQjtBQUNsQjtB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QVk7RUFDZDtFQUNBO0lBQ0Usa0JBQW1CO0lBQ25CLFNBQVU7RUFDWjtBQUNGO0FBRUE7RUFDRTtJQUNFLDBCQUEyQjtFQUM3QjtFQUNBO0lBQ0UsZ0NBQWlDO0VBQ25DO0VBQ0E7SUFDRSxnQ0FBaUM7RUFDbkM7RUFDQTtJQUNFLGdDQUFpQztFQUNuQztFQUNBO0lBQ0UsZ0NBQWlDO0VBQ25DO0VBQ0E7SUFDRSxnQ0FBaUM7RUFDbkM7RUFDQTtJQUNFLDBCQUEyQjtFQUM3QjtBQUNGOztBQTk1aENBLG8zaHJFQUFvM2hyRSIsInNvdXJjZXMiOlsid2VicGFjazovL2tpc2tlcnNob3AvLi9wdWJsaWMvdGhlbWUvbWFyc28vYXNzZXRzL2Nzcy9zZW1hbnRpYy5jc3MiXSwic291cmNlc0NvbnRlbnQiOlsiLypcblxu4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4pWXICAg4paI4paI4paI4pWXIOKWiOKWiOKWiOKWiOKWiOKVlyDilojilojilojilZcgICDilojilojilZfilojilojilojilojilojilojilojilojilZfilojilojilZcg4paI4paI4paI4paI4paI4paI4pWXICAgIOKWiOKWiOKVlyAgIOKWiOKWiOKVl+KWiOKWiOKVl1xu4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWd4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWd4paI4paI4paI4paI4pWXIOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKVlyAg4paI4paI4pWR4pWa4pWQ4pWQ4paI4paI4pWU4pWQ4pWQ4pWd4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWdICAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVkeKWiOKWiOKVkVxu4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4pWXICDilojilojilZTilojilojilojilojilZTilojilojilZHilojilojilojilojilojilojilojilZHilojilojilZTilojilojilZcg4paI4paI4pWRICAg4paI4paI4pWRICAg4paI4paI4pWR4paI4paI4pWRICAgICAgICAg4paI4paI4pWRICAg4paI4paI4pWR4paI4paI4pWRXG7ilZrilZDilZDilZDilZDilojilojilZHilojilojilZTilZDilZDilZ0gIOKWiOKWiOKVkeKVmuKWiOKWiOKVlOKVneKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKWiOKWiOKVkeKWiOKWiOKVkeKVmuKWiOKWiOKVl+KWiOKWiOKVkSAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVkeKWiOKWiOKVkSAgICAgICAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVkeKWiOKWiOKVkVxu4paI4paI4paI4paI4paI4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWRIOKVmuKVkOKVnSDilojilojilZHilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKVkSDilZrilojilojilojilojilZEgICDilojilojilZEgICDilojilojilZHilZrilojilojilojilojilojilojilZcgICAg4pWa4paI4paI4paI4paI4paI4paI4pWU4pWd4paI4paI4pWRXG7ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZ0gICAgIOKVmuKVkOKVneKVmuKVkOKVnSAg4pWa4pWQ4pWd4pWa4pWQ4pWdICDilZrilZDilZDilZDilZ0gICDilZrilZDilZ0gICDilZrilZDilZ0g4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWdICAgICDilZrilZDilZDilZDilZDilZDilZ0g4pWa4pWQ4pWdXG5cbiAgSW1wb3J0IHRoaXMgZmlsZSBpbnRvIHlvdXIgTEVTUyBwcm9qZWN0IHRvIHVzZSBTZW1hbnRpYyBVSSB3aXRob3V0IGJ1aWxkIHRvb2xzXG4qL1xuLyogR2xvYmFsICovXG4vKiFcbiAqICMgU2VtYW50aWMgVUkgLSBSZXNldFxuICogaHR0cDovL2dpdGh1Yi5jb20vc2VtYW50aWMtb3JnL3NlbWFudGljLXVpL1xuICpcbiAqXG4gKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2VcbiAqIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVRcbiAqXG4gKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qXG5cbuKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVlyAg4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4pWXICAg4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWXXG7ilZrilZDilZDilojilojilZTilZDilZDilZ3ilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKWiOKWiOKVlyDilojilojilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilZTilZDilZDilZDilZDilZ1cbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4pWU4paI4paI4paI4paI4pWU4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilojilojilojilojilojilZdcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVlOKVkOKVkOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4paI4paI4pWR4pWa4paI4paI4pWU4pWd4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilZrilZDilZDilZDilZDilojilojilZFcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWRIOKVmuKVkOKVnSDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZFcbiAgIOKVmuKVkOKVnSAgIOKVmuKVkOKVnSAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWdICAgICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ1cblxuKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIFRoZW1lIFNlbGVjdGlvblxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFRvIG92ZXJyaWRlIGEgdGhlbWUgZm9yIGFuIGluZGl2aWR1YWwgZWxlbWVudFxuICAgc3BlY2lmeSB0aGVtZSBuYW1lIGJlbG93XG4qL1xuLyogR2xvYmFsICovXG4vKiBFbGVtZW50cyAqL1xuLyogQ29sbGVjdGlvbnMgKi9cbi8qIE1vZHVsZXMgKi9cbi8qIFZpZXdzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgRm9sZGVyc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFBhdGggdG8gdGhlbWUgcGFja2FnZXMgKi9cbi8qIFBhdGggdG8gc2l0ZSBvdmVycmlkZSBmb2xkZXIgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBJbXBvcnQgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBJbXBvcnQgRGlyZWN0aXZlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgVGhlbWVcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgU2l0ZSBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0IHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRvcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogUGFja2FnZWQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZG9ycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBDb21wb25lbnQncyBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kb3JzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFNpdGUgdGhlbWUgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgIFVzZXIgR2xvYmFsIFZhcmlhYmxlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIG1hcnNvIGNvbG9ycyAqL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuIENvbXBvbmVudCBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0ICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFJlc2V0XG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogUGFja2FnZWQgVGhlbWUgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgUmVzZXRcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBTaXRlIFRoZW1lICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICBVc2VyIEdsb2JhbCBWYXJpYWJsZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIE1peC1pbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE92ZXJyaWRlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBFbmQgQ29uZmlnICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFJlc2V0XG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogQm9yZGVyLUJveCAqL1xuQGltcG9ydCB1cmwoJ2h0dHBzOi8vZm9udHMuZ29vZ2xlYXBpcy5jb20vY3NzP2ZhbWlseT1FeG8rMjozMDAsNzAwfExvYnN0ZXImZGlzcGxheT1zd2FwJnN1YnNldD1sYXRpbi1leHQnKTtcbiosXG4qOmJlZm9yZSxcbio6YWZ0ZXIge1xuICBib3gtc2l6aW5nOiBpbmhlcml0O1xufVxuaHRtbCB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG4vKiBpUGFkIElucHV0IFNoYWRvd3MgKi9cbmlucHV0W3R5cGU9XCJ0ZXh0XCJdLFxuaW5wdXRbdHlwZT1cImVtYWlsXCJdLFxuaW5wdXRbdHlwZT1cInNlYXJjaFwiXSxcbmlucHV0W3R5cGU9XCJwYXNzd29yZFwiXSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgLW1vei1hcHBlYXJhbmNlOiBub25lO1xuICAvKiBtb2JpbGUgZmlyZWZveCB0b28hICovXG59XG4vKiEgbm9ybWFsaXplLmNzcyB2Ny4wLjAgfCBNSVQgTGljZW5zZSB8IGdpdGh1Yi5jb20vbmVjb2xhcy9ub3JtYWxpemUuY3NzICovXG4vKiBEb2N1bWVudFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgbGluZSBoZWlnaHQgaW4gYWxsIGJyb3dzZXJzLlxuICogMi4gUHJldmVudCBhZGp1c3RtZW50cyBvZiBmb250IHNpemUgYWZ0ZXIgb3JpZW50YXRpb24gY2hhbmdlcyBpblxuICogICAgSUUgb24gV2luZG93cyBQaG9uZSBhbmQgaW4gaU9TLlxuICovXG5odG1sIHtcbiAgbGluZS1oZWlnaHQ6IDEuMTU7XG4gIC8qIDEgKi9cbiAgLW1zLXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7XG4gIC8qIDIgKi9cbiAgLXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiAxMDAlO1xuICAvKiAyICovXG59XG4vKiBTZWN0aW9uc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICogUmVtb3ZlIHRoZSBtYXJnaW4gaW4gYWxsIGJyb3dzZXJzIChvcGluaW9uYXRlZCkuXG4gKi9cbmJvZHkge1xuICBtYXJnaW46IDA7XG59XG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDktLlxuICovXG5hcnRpY2xlLFxuYXNpZGUsXG5mb290ZXIsXG5oZWFkZXIsXG5uYXYsXG5zZWN0aW9uIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG4vKipcbiAqIENvcnJlY3QgdGhlIGZvbnQgc2l6ZSBhbmQgbWFyZ2luIG9uIGBoMWAgZWxlbWVudHMgd2l0aGluIGBzZWN0aW9uYCBhbmRcbiAqIGBhcnRpY2xlYCBjb250ZXh0cyBpbiBDaHJvbWUsIEZpcmVmb3gsIGFuZCBTYWZhcmkuXG4gKi9cbmgxIHtcbiAgZm9udC1zaXplOiAyZW07XG4gIG1hcmdpbjogMC42N2VtIDA7XG59XG4vKiBHcm91cGluZyBjb250ZW50XG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSA5LS5cbiAqIDEuIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFLlxuICovXG5maWdjYXB0aW9uLFxuZmlndXJlLFxubWFpbiB7XG4gIC8qIDEgKi9cbiAgZGlzcGxheTogYmxvY2s7XG59XG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBtYXJnaW4gaW4gSUUgOC5cbiAqL1xuZmlndXJlIHtcbiAgbWFyZ2luOiAxZW0gNDBweDtcbn1cbi8qKlxuICogMS4gQWRkIHRoZSBjb3JyZWN0IGJveCBzaXppbmcgaW4gRmlyZWZveC5cbiAqIDIuIFNob3cgdGhlIG92ZXJmbG93IGluIEVkZ2UgYW5kIElFLlxuICovXG5ociB7XG4gIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICAvKiAxICovXG4gIGhlaWdodDogMDtcbiAgLyogMSAqL1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgLyogMiAqL1xufVxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSBpbmhlcml0YW5jZSBhbmQgc2NhbGluZyBvZiBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICogMi4gQ29ycmVjdCB0aGUgb2RkIGBlbWAgZm9udCBzaXppbmcgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5wcmUge1xuICBmb250LWZhbWlseTogbW9ub3NwYWNlLCBtb25vc3BhY2U7XG4gIC8qIDEgKi9cbiAgZm9udC1zaXplOiAxZW07XG4gIC8qIDIgKi9cbn1cbi8qIFRleHQtbGV2ZWwgc2VtYW50aWNzXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gKiAxLiBSZW1vdmUgdGhlIGdyYXkgYmFja2dyb3VuZCBvbiBhY3RpdmUgbGlua3MgaW4gSUUgMTAuXG4gKiAyLiBSZW1vdmUgZ2FwcyBpbiBsaW5rcyB1bmRlcmxpbmUgaW4gaU9TIDgrIGFuZCBTYWZhcmkgOCsuXG4gKi9cbmEge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgLyogMSAqL1xuICAtd2Via2l0LXRleHQtZGVjb3JhdGlvbi1za2lwOiBvYmplY3RzO1xuICAvKiAyICovXG59XG4vKipcbiAqIDEuIFJlbW92ZSB0aGUgYm90dG9tIGJvcmRlciBpbiBDaHJvbWUgNTctIGFuZCBGaXJlZm94IDM5LS5cbiAqIDIuIEFkZCB0aGUgY29ycmVjdCB0ZXh0IGRlY29yYXRpb24gaW4gQ2hyb21lLCBFZGdlLCBJRSwgT3BlcmEsIGFuZCBTYWZhcmkuXG4gKi9cbmFiYnJbdGl0bGVdIHtcbiAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgLyogMSAqL1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgLyogMiAqL1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSBkb3R0ZWQ7XG4gIC8qIDIgKi9cbn1cbi8qKlxuICogUHJldmVudCB0aGUgZHVwbGljYXRlIGFwcGxpY2F0aW9uIG9mIGBib2xkZXJgIGJ5IHRoZSBuZXh0IHJ1bGUgaW4gU2FmYXJpIDYuXG4gKi9cbmIsXG5zdHJvbmcge1xuICBmb250LXdlaWdodDogaW5oZXJpdDtcbn1cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGZvbnQgd2VpZ2h0IGluIENocm9tZSwgRWRnZSwgYW5kIFNhZmFyaS5cbiAqL1xuYixcbnN0cm9uZyB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkZXI7XG59XG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIGluaGVyaXRhbmNlIGFuZCBzY2FsaW5nIG9mIGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG4gKiAyLiBDb3JyZWN0IHRoZSBvZGQgYGVtYCBmb250IHNpemluZyBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cbmNvZGUsXG5rYmQsXG5zYW1wIHtcbiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgbW9ub3NwYWNlO1xuICAvKiAxICovXG4gIGZvbnQtc2l6ZTogMWVtO1xuICAvKiAyICovXG59XG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBmb250IHN0eWxlIGluIEFuZHJvaWQgNC4zLS5cbiAqL1xuZGZuIHtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xufVxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgYmFja2dyb3VuZCBhbmQgY29sb3IgaW4gSUUgOS0uXG4gKi9cbm1hcmsge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmYwO1xuICBjb2xvcjogIzAwMDtcbn1cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cbnNtYWxsIHtcbiAgZm9udC1zaXplOiA4MCU7XG59XG4vKipcbiAqIFByZXZlbnQgYHN1YmAgYW5kIGBzdXBgIGVsZW1lbnRzIGZyb20gYWZmZWN0aW5nIHRoZSBsaW5lIGhlaWdodCBpblxuICogYWxsIGJyb3dzZXJzLlxuICovXG5zdWIsXG5zdXAge1xuICBmb250LXNpemU6IDc1JTtcbiAgbGluZS1oZWlnaHQ6IDA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xufVxuc3ViIHtcbiAgYm90dG9tOiAtMC4yNWVtO1xufVxuc3VwIHtcbiAgdG9wOiAtMC41ZW07XG59XG4vKiBFbWJlZGRlZCBjb250ZW50XG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSA5LS5cbiAqL1xuYXVkaW8sXG52aWRlbyB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gaU9TIDQtNy5cbiAqL1xuYXVkaW86bm90KFtjb250cm9sc10pIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgaGVpZ2h0OiAwO1xufVxuLyoqXG4gKiBSZW1vdmUgdGhlIGJvcmRlciBvbiBpbWFnZXMgaW5zaWRlIGxpbmtzIGluIElFIDEwLS5cbiAqL1xuaW1nIHtcbiAgYm9yZGVyLXN0eWxlOiBub25lO1xufVxuLyoqXG4gKiBIaWRlIHRoZSBvdmVyZmxvdyBpbiBJRS5cbiAqL1xuc3ZnOm5vdCg6cm9vdCkge1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuLyogRm9ybXNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAqIDEuIENoYW5nZSB0aGUgZm9udCBzdHlsZXMgaW4gYWxsIGJyb3dzZXJzIChvcGluaW9uYXRlZCkuXG4gKiAyLiBSZW1vdmUgdGhlIG1hcmdpbiBpbiBGaXJlZm94IGFuZCBTYWZhcmkuXG4gKi9cbmJ1dHRvbixcbmlucHV0LFxub3B0Z3JvdXAsXG5zZWxlY3QsXG50ZXh0YXJlYSB7XG4gIGZvbnQtZmFtaWx5OiBzYW5zLXNlcmlmO1xuICAvKiAxICovXG4gIGZvbnQtc2l6ZTogMTAwJTtcbiAgLyogMSAqL1xuICBsaW5lLWhlaWdodDogMS4xNTtcbiAgLyogMSAqL1xuICBtYXJnaW46IDA7XG4gIC8qIDIgKi9cbn1cbi8qKlxuICogU2hvdyB0aGUgb3ZlcmZsb3cgaW4gSUUuXG4gKiAxLiBTaG93IHRoZSBvdmVyZmxvdyBpbiBFZGdlLlxuICovXG5idXR0b24sXG5pbnB1dCB7XG4gIC8qIDEgKi9cbiAgb3ZlcmZsb3c6IHZpc2libGU7XG59XG4vKipcbiAqIFJlbW92ZSB0aGUgaW5oZXJpdGFuY2Ugb2YgdGV4dCB0cmFuc2Zvcm0gaW4gRWRnZSwgRmlyZWZveCwgYW5kIElFLlxuICogMS4gUmVtb3ZlIHRoZSBpbmhlcml0YW5jZSBvZiB0ZXh0IHRyYW5zZm9ybSBpbiBGaXJlZm94LlxuICovXG5idXR0b24sXG5zZWxlY3Qge1xuICAvKiAxICovXG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xufVxuLyoqXG4gKiAxLiBQcmV2ZW50IGEgV2ViS2l0IGJ1ZyB3aGVyZSAoMikgZGVzdHJveXMgbmF0aXZlIGBhdWRpb2AgYW5kIGB2aWRlb2BcbiAqICAgIGNvbnRyb2xzIGluIEFuZHJvaWQgNC5cbiAqIDIuIENvcnJlY3QgdGhlIGluYWJpbGl0eSB0byBzdHlsZSBjbGlja2FibGUgdHlwZXMgaW4gaU9TIGFuZCBTYWZhcmkuXG4gKi9cbmJ1dHRvbixcbmh0bWwgW3R5cGU9XCJidXR0b25cIl0sXG5bdHlwZT1cInJlc2V0XCJdLFxuW3R5cGU9XCJzdWJtaXRcIl0ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjtcbiAgLyogMiAqL1xufVxuLyoqXG4gKiBSZW1vdmUgdGhlIGlubmVyIGJvcmRlciBhbmQgcGFkZGluZyBpbiBGaXJlZm94LlxuICovXG5idXR0b246Oi1tb3otZm9jdXMtaW5uZXIsXG5bdHlwZT1cImJ1dHRvblwiXTo6LW1vei1mb2N1cy1pbm5lcixcblt0eXBlPVwicmVzZXRcIl06Oi1tb3otZm9jdXMtaW5uZXIsXG5bdHlwZT1cInN1Ym1pdFwiXTo6LW1vei1mb2N1cy1pbm5lciB7XG4gIGJvcmRlci1zdHlsZTogbm9uZTtcbiAgcGFkZGluZzogMDtcbn1cbi8qKlxuICogUmVzdG9yZSB0aGUgZm9jdXMgc3R5bGVzIHVuc2V0IGJ5IHRoZSBwcmV2aW91cyBydWxlLlxuICovXG5idXR0b246LW1vei1mb2N1c3JpbmcsXG5bdHlwZT1cImJ1dHRvblwiXTotbW96LWZvY3VzcmluZyxcblt0eXBlPVwicmVzZXRcIl06LW1vei1mb2N1c3JpbmcsXG5bdHlwZT1cInN1Ym1pdFwiXTotbW96LWZvY3VzcmluZyB7XG4gIG91dGxpbmU6IDFweCBkb3R0ZWQgQnV0dG9uVGV4dDtcbn1cbi8qKlxuICogQ29ycmVjdCB0aGUgcGFkZGluZyBpbiBGaXJlZm94LlxuICovXG5maWVsZHNldCB7XG4gIHBhZGRpbmc6IDAuMzVlbSAwLjc1ZW0gMC42MjVlbTtcbn1cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgdGV4dCB3cmFwcGluZyBpbiBFZGdlIGFuZCBJRS5cbiAqIDIuIENvcnJlY3QgdGhlIGNvbG9yIGluaGVyaXRhbmNlIGZyb20gYGZpZWxkc2V0YCBlbGVtZW50cyBpbiBJRS5cbiAqIDMuIFJlbW92ZSB0aGUgcGFkZGluZyBzbyBkZXZlbG9wZXJzIGFyZSBub3QgY2F1Z2h0IG91dCB3aGVuIHRoZXkgemVybyBvdXRcbiAqICAgIGBmaWVsZHNldGAgZWxlbWVudHMgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5sZWdlbmQge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAvKiAxICovXG4gIGNvbG9yOiBpbmhlcml0O1xuICAvKiAyICovXG4gIGRpc3BsYXk6IHRhYmxlO1xuICAvKiAxICovXG4gIG1heC13aWR0aDogMTAwJTtcbiAgLyogMSAqL1xuICBwYWRkaW5nOiAwO1xuICAvKiAzICovXG4gIHdoaXRlLXNwYWNlOiBub3JtYWw7XG4gIC8qIDEgKi9cbn1cbi8qKlxuICogMS4gQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgOS0uXG4gKiAyLiBBZGQgdGhlIGNvcnJlY3QgdmVydGljYWwgYWxpZ25tZW50IGluIENocm9tZSwgRmlyZWZveCwgYW5kIE9wZXJhLlxuICovXG5wcm9ncmVzcyB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgLyogMSAqL1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG4gIC8qIDIgKi9cbn1cbi8qKlxuICogUmVtb3ZlIHRoZSBkZWZhdWx0IHZlcnRpY2FsIHNjcm9sbGJhciBpbiBJRS5cbiAqL1xudGV4dGFyZWEge1xuICBvdmVyZmxvdzogYXV0bztcbn1cbi8qKlxuICogMS4gQWRkIHRoZSBjb3JyZWN0IGJveCBzaXppbmcgaW4gSUUgMTAtLlxuICogMi4gUmVtb3ZlIHRoZSBwYWRkaW5nIGluIElFIDEwLS5cbiAqL1xuW3R5cGU9XCJjaGVja2JveFwiXSxcblt0eXBlPVwicmFkaW9cIl0ge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAvKiAxICovXG4gIHBhZGRpbmc6IDA7XG4gIC8qIDIgKi9cbn1cbi8qKlxuICogQ29ycmVjdCB0aGUgY3Vyc29yIHN0eWxlIG9mIGluY3JlbWVudCBhbmQgZGVjcmVtZW50IGJ1dHRvbnMgaW4gQ2hyb21lLlxuICovXG5bdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbixcblt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uIHtcbiAgaGVpZ2h0OiBhdXRvO1xufVxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSBvZGQgYXBwZWFyYW5jZSBpbiBDaHJvbWUgYW5kIFNhZmFyaS5cbiAqIDIuIENvcnJlY3QgdGhlIG91dGxpbmUgc3R5bGUgaW4gU2FmYXJpLlxuICovXG5bdHlwZT1cInNlYXJjaFwiXSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogdGV4dGZpZWxkO1xuICAvKiAxICovXG4gIG91dGxpbmUtb2Zmc2V0OiAtMnB4O1xuICAvKiAyICovXG59XG4vKipcbiAqIFJlbW92ZSB0aGUgaW5uZXIgcGFkZGluZyBhbmQgY2FuY2VsIGJ1dHRvbnMgaW4gQ2hyb21lIGFuZCBTYWZhcmkgb24gbWFjT1MuXG4gKi9cblt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1jYW5jZWwtYnV0dG9uLFxuW3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG59XG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIGluYWJpbGl0eSB0byBzdHlsZSBjbGlja2FibGUgdHlwZXMgaW4gaU9TIGFuZCBTYWZhcmkuXG4gKiAyLiBDaGFuZ2UgZm9udCBwcm9wZXJ0aWVzIHRvIGBpbmhlcml0YCBpbiBTYWZhcmkuXG4gKi9cbjo6LXdlYmtpdC1maWxlLXVwbG9hZC1idXR0b24ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjtcbiAgLyogMSAqL1xuICBmb250OiBpbmhlcml0O1xuICAvKiAyICovXG59XG4vKiBJbnRlcmFjdGl2ZVxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSA5LS5cbiAqIDEuIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIEVkZ2UsIElFLCBhbmQgRmlyZWZveC5cbiAqL1xuZGV0YWlscyxcbm1lbnUge1xuICBkaXNwbGF5OiBibG9jaztcbn1cbi8qXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cbnN1bW1hcnkge1xuICBkaXNwbGF5OiBsaXN0LWl0ZW07XG59XG4vKiBTY3JpcHRpbmdcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDktLlxuICovXG5jYW52YXMge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFLlxuICovXG50ZW1wbGF0ZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4vKiBIaWRkZW5cbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDEwLS5cbiAqL1xuW2hpZGRlbl0ge1xuICBkaXNwbGF5OiBub25lO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgT3ZlcnJpZGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyohXG4gKiAjIFNlbWFudGljIFVJIC0gU2l0ZVxuICogaHR0cDovL2dpdGh1Yi5jb20vc2VtYW50aWMtb3JnL3NlbWFudGljLXVpL1xuICpcbiAqXG4gKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2VcbiAqIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVRcbiAqXG4gKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qXG5cbuKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVlyAg4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4pWXICAg4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWXXG7ilZrilZDilZDilojilojilZTilZDilZDilZ3ilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKWiOKWiOKVlyDilojilojilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilZTilZDilZDilZDilZDilZ1cbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4pWU4paI4paI4paI4paI4pWU4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilojilojilojilojilojilZdcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVlOKVkOKVkOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4paI4paI4pWR4pWa4paI4paI4pWU4pWd4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilZrilZDilZDilZDilZDilojilojilZFcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWRIOKVmuKVkOKVnSDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZFcbiAgIOKVmuKVkOKVnSAgIOKVmuKVkOKVnSAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWdICAgICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ1cblxuKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIFRoZW1lIFNlbGVjdGlvblxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFRvIG92ZXJyaWRlIGEgdGhlbWUgZm9yIGFuIGluZGl2aWR1YWwgZWxlbWVudFxuICAgc3BlY2lmeSB0aGVtZSBuYW1lIGJlbG93XG4qL1xuLyogR2xvYmFsICovXG4vKiBFbGVtZW50cyAqL1xuLyogQ29sbGVjdGlvbnMgKi9cbi8qIE1vZHVsZXMgKi9cbi8qIFZpZXdzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgRm9sZGVyc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFBhdGggdG8gdGhlbWUgcGFja2FnZXMgKi9cbi8qIFBhdGggdG8gc2l0ZSBvdmVycmlkZSBmb2xkZXIgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBJbXBvcnQgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBJbXBvcnQgRGlyZWN0aXZlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgVGhlbWVcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgU2l0ZSBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0IHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRvcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogUGFja2FnZWQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZG9ycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBDb21wb25lbnQncyBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kb3JzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFNpdGUgdGhlbWUgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgIFVzZXIgR2xvYmFsIFZhcmlhYmxlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIG1hcnNvIGNvbG9ycyAqL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuIENvbXBvbmVudCBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0ICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRvcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogUGFja2FnZWQgVGhlbWUgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZG9ycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBTaXRlIFRoZW1lICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICBVc2VyIEdsb2JhbCBWYXJpYWJsZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBtYXJzbyBjb2xvcnMgKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIE1peC1pbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE92ZXJyaWRlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBFbmQgQ29uZmlnICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFBhZ2VcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5odG1sLFxuYm9keSB7XG4gIGhlaWdodDogMTAwJTtcbn1cbmh0bWwge1xuICBmb250LXNpemU6IDEwcHg7XG59XG5ib2R5IHtcbiAgbWFyZ2luOiAwcHg7XG4gIHBhZGRpbmc6IDBweDtcbiAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICBtaW4td2lkdGg6IDMyMHB4O1xuICBiYWNrZ3JvdW5kOiAjRkZGRkZGO1xuICBmb250LWZhbWlseTogJ0V4byAyJywgJ0xhdG8nLCBBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDE2cHg7XG4gIGxpbmUtaGVpZ2h0OiAxLjQyODVlbTtcbiAgY29sb3I6ICMzMzMzMzM7XG4gIGZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgSGVhZGVyc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbmgxLFxuaDIsXG5oMyxcbmg0LFxuaDUge1xuICBmb250LWZhbWlseTogJ0V4byAyJywgJ0xhdG8nLCBBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmO1xuICBsaW5lLWhlaWdodDogMS4yODU3MTQyOWVtO1xuICBtYXJnaW46IGNhbGMoMnJlbSAtIDAuMTQyODU3MTQyODU3MTQyOWVtKSAwZW0gMXJlbTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIHBhZGRpbmc6IDBlbTtcbn1cbmgxIHtcbiAgbWluLWhlaWdodDogMXJlbTtcbiAgZm9udC1zaXplOiAzcmVtO1xufVxuaDIge1xuICBmb250LXNpemU6IDIuNXJlbTtcbn1cbmgzIHtcbiAgZm9udC1zaXplOiAycmVtO1xufVxuaDQge1xuICBmb250LXNpemU6IDEuNnJlbTtcbn1cbmg1IHtcbiAgZm9udC1zaXplOiAxLjRyZW07XG59XG5oMTpmaXJzdC1jaGlsZCxcbmgyOmZpcnN0LWNoaWxkLFxuaDM6Zmlyc3QtY2hpbGQsXG5oNDpmaXJzdC1jaGlsZCxcbmg1OmZpcnN0LWNoaWxkIHtcbiAgbWFyZ2luLXRvcDogMGVtO1xufVxuaDE6bGFzdC1jaGlsZCxcbmgyOmxhc3QtY2hpbGQsXG5oMzpsYXN0LWNoaWxkLFxuaDQ6bGFzdC1jaGlsZCxcbmg1Omxhc3QtY2hpbGQge1xuICBtYXJnaW4tYm90dG9tOiAwZW07XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFRleHRcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5wIHtcbiAgbWFyZ2luOiAwZW0gMGVtIDFlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNDI4NWVtO1xufVxucDpmaXJzdC1jaGlsZCB7XG4gIG1hcmdpbi10b3A6IDBlbTtcbn1cbnA6bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1ib3R0b206IDBlbTtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuYSB7XG4gIGNvbG9yOiAjNDE4M0M0O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG5hOmhvdmVyIHtcbiAgY29sb3I6ICMxZTcwYmY7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgSGlnaGxpZ2h0aW5nXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogU2l0ZSAqL1xuOjotd2Via2l0LXNlbGVjdGlvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNDQ0UyRkY7XG4gIGNvbG9yOiAjMzMzMzMzO1xufVxuOjotbW96LXNlbGVjdGlvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNDQ0UyRkY7XG4gIGNvbG9yOiAjMzMzMzMzO1xufVxuOjpzZWxlY3Rpb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjQ0NFMkZGO1xuICBjb2xvcjogIzMzMzMzMztcbn1cbi8qIEZvcm0gKi9cbnRleHRhcmVhOjotd2Via2l0LXNlbGVjdGlvbixcbmlucHV0Ojotd2Via2l0LXNlbGVjdGlvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMTAwLCAxMDAsIDEwMCwgMC40KTtcbiAgY29sb3I6ICMzMzMzMzM7XG59XG50ZXh0YXJlYTo6LW1vei1zZWxlY3Rpb24sXG5pbnB1dDo6LW1vei1zZWxlY3Rpb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDEwMCwgMTAwLCAxMDAsIDAuNCk7XG4gIGNvbG9yOiAjMzMzMzMzO1xufVxudGV4dGFyZWE6OnNlbGVjdGlvbixcbmlucHV0OjpzZWxlY3Rpb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDEwMCwgMTAwLCAxMDAsIDAuNCk7XG4gIGNvbG9yOiAjMzMzMzMzO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgR2xvYmFsIE92ZXJyaWRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIE92ZXJyaWRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIEVsZW1lbnRzICovXG4vKiFcbiAqICMgU2VtYW50aWMgVUkgLSBCdXR0b25cbiAqIGh0dHA6Ly9naXRodWIuY29tL3NlbWFudGljLW9yZy9zZW1hbnRpYy11aS9cbiAqXG4gKlxuICogUmVsZWFzZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlXG4gKiBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUXG4gKlxuICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKlxuXG7ilojilojilojilojilojilojilojilojilZfilojilojilZcgIOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKVlyAgIOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl1xu4pWa4pWQ4pWQ4paI4paI4pWU4pWQ4pWQ4pWd4paI4paI4pWRICDilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilojilojilZcg4paI4paI4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWd4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWdXG4gICDilojilojilZEgICDilojilojilojilojilojilojilojilZHilojilojilojilojilojilZcgIOKWiOKWiOKVlOKWiOKWiOKWiOKWiOKVlOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4paI4paI4paI4paI4paI4pWXXG4gICDilojilojilZEgICDilojilojilZTilZDilZDilojilojilZHilojilojilZTilZDilZDilZ0gIOKWiOKWiOKVkeKVmuKWiOKWiOKVlOKVneKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4pWa4pWQ4pWQ4pWQ4pWQ4paI4paI4pWRXG4gICDilojilojilZEgICDilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVkSDilZrilZDilZ0g4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWRXG4gICDilZrilZDilZ0gICDilZrilZDilZ0gIOKVmuKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVneKVmuKVkOKVnSAgICAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWdXG5cbiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBUaGVtZSBTZWxlY3Rpb25cbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBUbyBvdmVycmlkZSBhIHRoZW1lIGZvciBhbiBpbmRpdmlkdWFsIGVsZW1lbnRcbiAgIHNwZWNpZnkgdGhlbWUgbmFtZSBiZWxvd1xuKi9cbi8qIEdsb2JhbCAqL1xuLyogRWxlbWVudHMgKi9cbi8qIENvbGxlY3Rpb25zICovXG4vKiBNb2R1bGVzICovXG4vKiBWaWV3cyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIEZvbGRlcnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBQYXRoIHRvIHRoZW1lIHBhY2thZ2VzICovXG4vKiBQYXRoIHRvIHNpdGUgb3ZlcnJpZGUgZm9sZGVyICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgSW1wb3J0IFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgSW1wb3J0IERpcmVjdGl2ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIFRoZW1lXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgIFNpdGUgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kb3JzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFBhY2thZ2VkIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRvcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogQ29tcG9uZW50J3Mgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZG9ycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBTaXRlIHRoZW1lIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICBVc2VyIEdsb2JhbCBWYXJpYWJsZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBtYXJzbyBjb2xvcnMgKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiBDb21wb25lbnQgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIEJ1dHRvblxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVsZW1lbnRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEJ1dHRvbiAqL1xuLyogQnV0dG9uIGRlZmF1bHRzIHRvIHVzaW5nIHNhbWUgaGVpZ2h0IGFzIGlucHV0IGdsb2JhbGx5ICovXG4vKiBUZXh0ICovXG4vKiBJbnRlcm5hbCBTaGFkb3cgKi9cbi8qIEJveCBTaGFkb3cgKi9cbi8qIEljb24gKi9cbi8qIExvYWRlciAqL1xuLypcbkB3aWxsQ2hhbmdlOiBib3gtc2hhZG93LCB0cmFuc2Zvcm0sIG9wYWNpdHksIGNvbG9yLCBiYWNrZ3JvdW5kO1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcm91cFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFN0YXRlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSG92ZXJlZCAqL1xuLyogRm9jdXNlZCAqL1xuLyogRGlzYWJsZWQgKi9cbi8qIFByZXNzZWQgRG93biAqL1xuLyogQWN0aXZlICovXG4vKiBBY3RpdmUgKyBIb3ZlcmVkICovXG4vKiBMb2FkaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgVHlwZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE9yICovXG4vKiBJY29uICovXG4vKiBMYWJlbGVkICovXG4vKiBoeXBvdGVudXNlIG9mIHRyaWFuZ2xlICovXG4vKiBMYWJlbGVkIEljb24gKi9cbi8qIEludmVydGVkICovXG4vKiBCYXNpYyAqL1xuLyogQmFzaWMgSG92ZXIgKi9cbi8qIEJhc2ljIEZvY3VzICovXG4vKiBCYXNpYyBEb3duICovXG4vKiBCYXNpYyBBY3RpdmUgKi9cbi8qIEJhc2ljIEludmVydGVkICovXG4vKiBCYXNpYyBHcm91cCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBWYXJpYXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBDb2xvcnMgKi9cbi8qIENvbG9yZWQgKi9cbi8qIEludmVydGVkICovXG4vKiBPcmRpbmFsaXR5ICovXG4vKiBDb21wYWN0ICovXG4vKiBBdHRhY2hlZCAqL1xuLyogRmxvYXRlZCAqL1xuLyogQW5pbWF0ZWQgKi9cbi8qIFBhY2thZ2VkIFRoZW1lICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgQnV0dG9uXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRWxlbWVudFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogQnV0dG9uICovXG4vKiBCdXR0b24gZGVmYXVsdHMgdG8gdXNpbmcgc2FtZSBoZWlnaHQgYXMgaW5wdXQgZ2xvYmFsbHkgKi9cbi8qIFRleHQgKi9cbi8qIEludGVybmFsIFNoYWRvdyAqL1xuLyogQm94IFNoYWRvdyAqL1xuLyogSWNvbiAqL1xuLyogTG9hZGVyICovXG4vKlxuQHdpbGxDaGFuZ2U6IGJveC1zaGFkb3csIHRyYW5zZm9ybSwgb3BhY2l0eSwgY29sb3IsIGJhY2tncm91bmQ7XG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyb3VwXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU3RhdGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBIb3ZlcmVkICovXG4vKiBGb2N1c2VkICovXG4vKiBEaXNhYmxlZCAqL1xuLyogUHJlc3NlZCBEb3duICovXG4vKiBBY3RpdmUgKi9cbi8qIEFjdGl2ZSArIEhvdmVyZWQgKi9cbi8qIExvYWRpbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBUeXBlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogT3IgKi9cbi8qIEljb24gKi9cbi8qIExhYmVsZWQgKi9cbi8qIGh5cG90ZW51c2Ugb2YgdHJpYW5nbGUgKi9cbi8qIExhYmVsZWQgSWNvbiAqL1xuLyogSW52ZXJ0ZWQgKi9cbi8qIEJhc2ljICovXG4vKiBCYXNpYyBIb3ZlciAqL1xuLyogQmFzaWMgRm9jdXMgKi9cbi8qIEJhc2ljIERvd24gKi9cbi8qIEJhc2ljIEFjdGl2ZSAqL1xuLyogQmFzaWMgSW52ZXJ0ZWQgKi9cbi8qIEJhc2ljIEdyb3VwICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFZhcmlhdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIENvbG9ycyAqL1xuLyogQ29sb3JlZCAqL1xuLyogSW52ZXJ0ZWQgKi9cbi8qIE9yZGluYWxpdHkgKi9cbi8qIENvbXBhY3QgKi9cbi8qIEF0dGFjaGVkICovXG4vKiBGbG9hdGVkICovXG4vKiBBbmltYXRlZCAqL1xuLyogU2l0ZSBUaGVtZSAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICBVc2VyIFZhcmlhYmxlIE92ZXJyaWRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgTWl4LWluc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgT3ZlcnJpZGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEVuZCBDb25maWcgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBCdXR0b25cbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4udWkuYnV0dG9uIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1pbi1oZWlnaHQ6IDFlbTtcbiAgb3V0bGluZTogbm9uZTtcbiAgYm9yZGVyOiBub25lO1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG4gIGJhY2tncm91bmQ6ICNFMEUxRTIgbm9uZTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC42KTtcbiAgZm9udC1mYW1pbHk6ICdFeG8gMicsICdMYXRvJywgQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZjtcbiAgbWFyZ2luOiAwZW0gMC4yNWVtIDBlbSAwZW07XG4gIHBhZGRpbmc6IDEuMWVtIDEuNWVtIDEuMWVtO1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBsaW5lLWhlaWdodDogMWVtO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBib3JkZXItcmFkaXVzOiAwLjRyZW07XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCB0cmFuc3BhcmVudCBpbnNldCwgMHB4IDBlbSAwcHggMHB4IHJnYmEoMzQsIDM2LCAzOCwgMC4xNSkgaW5zZXQ7XG4gIHVzZXItc2VsZWN0OiBub25lO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMXMgZWFzZSwgYmFja2dyb3VuZC1jb2xvciAwLjFzIGVhc2UsIGNvbG9yIDAuMXMgZWFzZSwgYm94LXNoYWRvdyAwLjFzIGVhc2UsIGJhY2tncm91bmQgMC4xcyBlYXNlO1xuICB3aWxsLWNoYW5nZTogJyc7XG4gIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuYnV0dG9uOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0NBQ0JDRDtcbiAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4IHRyYW5zcGFyZW50IGluc2V0LCAwcHggMGVtIDBweCAwcHggcmdiYSgzNCwgMzYsIDM4LCAwLjE1KSBpbnNldDtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44KTtcbn1cbi51aS5idXR0b246aG92ZXIgLmljb24ge1xuICBvcGFjaXR5OiAwLjg1O1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuYnV0dG9uOmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0NBQ0JDRDtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44KTtcbiAgYmFja2dyb3VuZC1pbWFnZTogJycgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogJycgIWltcG9ydGFudDtcbn1cbi51aS5idXR0b246Zm9jdXMgLmljb24ge1xuICBvcGFjaXR5OiAwLjg1O1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICAgRG93blxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5idXR0b246YWN0aXZlLFxuLnVpLmFjdGl2ZS5idXR0b246YWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0JBQkJCQztcbiAgYmFja2dyb3VuZC1pbWFnZTogJyc7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuOSk7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCB0cmFuc3BhcmVudCBpbnNldCwgbm9uZTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmFjdGl2ZS5idXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjQzBDMUMyO1xuICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggdHJhbnNwYXJlbnQgaW5zZXQ7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuOTUpO1xufVxuLnVpLmFjdGl2ZS5idXR0b246aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjQzBDMUMyO1xuICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjk1KTtcbn1cbi51aS5hY3RpdmUuYnV0dG9uOmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNDMEMxQzI7XG4gIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgTG9hZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNwZWNpZmljaXR5IGhhY2sgKi9cbi51aS5sb2FkaW5nLmxvYWRpbmcubG9hZGluZy5sb2FkaW5nLmxvYWRpbmcubG9hZGluZy5idXR0b24ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGN1cnNvcjogZGVmYXVsdDtcbiAgdGV4dC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gIG9wYWNpdHk6IDE7XG4gIHBvaW50ZXItZXZlbnRzOiBhdXRvO1xuICB0cmFuc2l0aW9uOiBhbGwgMHMgbGluZWFyLCBvcGFjaXR5IDAuMXMgZWFzZTtcbn1cbi51aS5sb2FkaW5nLmJ1dHRvbjpiZWZvcmUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGNvbnRlbnQ6ICcnO1xuICB0b3A6IDUwJTtcbiAgbGVmdDogNTAlO1xuICBtYXJnaW46IC0wLjY1ZW0gMGVtIDBlbSAtMC42NWVtO1xuICB3aWR0aDogMS4zZW07XG4gIGhlaWdodDogMS4zZW07XG4gIGJvcmRlci1yYWRpdXM6IDUwMHJlbTtcbiAgYm9yZGVyOiAwLjJlbSBzb2xpZCByZ2JhKDAsIDAsIDAsIDAuMTUpO1xufVxuLnVpLmxvYWRpbmcuYnV0dG9uOmFmdGVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBjb250ZW50OiAnJztcbiAgdG9wOiA1MCU7XG4gIGxlZnQ6IDUwJTtcbiAgbWFyZ2luOiAtMC42NWVtIDBlbSAwZW0gLTAuNjVlbTtcbiAgd2lkdGg6IDEuM2VtO1xuICBoZWlnaHQ6IDEuM2VtO1xuICBhbmltYXRpb246IGJ1dHRvbi1zcGluIDAuNnMgbGluZWFyO1xuICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgYm9yZGVyLXJhZGl1czogNTAwcmVtO1xuICBib3JkZXItY29sb3I6ICNmZmZmZmYgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1zdHlsZTogc29saWQ7XG4gIGJvcmRlci13aWR0aDogMC4yZW07XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCB0cmFuc3BhcmVudDtcbn1cbi51aS5sYWJlbGVkLmljb24ubG9hZGluZy5idXR0b24gLmljb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm94LXNoYWRvdzogbm9uZTtcbn1cbkBrZXlmcmFtZXMgYnV0dG9uLXNwaW4ge1xuICBmcm9tIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcbiAgfVxuICB0byB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTtcbiAgfVxufVxuLnVpLmJhc2ljLmxvYWRpbmcuYnV0dG9uOm5vdCguaW52ZXJ0ZWQpOmJlZm9yZSB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjEpO1xufVxuLnVpLmJhc2ljLmxvYWRpbmcuYnV0dG9uOm5vdCguaW52ZXJ0ZWQpOmFmdGVyIHtcbiAgYm9yZGVyLXRvcC1jb2xvcjogIzc2NzY3Njtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5idXR0b25zIC5kaXNhYmxlZC5idXR0b24sXG4udWkuZGlzYWJsZWQuYnV0dG9uLFxuLnVpLmJ1dHRvbjpkaXNhYmxlZCxcbi51aS5kaXNhYmxlZC5idXR0b246aG92ZXIsXG4udWkuZGlzYWJsZWQuYWN0aXZlLmJ1dHRvbiB7XG4gIGN1cnNvcjogZGVmYXVsdDtcbiAgb3BhY2l0eTogMC40NSAhaW1wb3J0YW50O1xuICBiYWNrZ3JvdW5kLWltYWdlOiBub25lICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmUgIWltcG9ydGFudDtcbn1cbi8qIEJhc2ljIEdyb3VwIFdpdGggRGlzYWJsZWQgKi9cbi51aS5iYXNpYy5idXR0b25zIC51aS5kaXNhYmxlZC5idXR0b24ge1xuICBib3JkZXItY29sb3I6IHJnYmEoMzQsIDM2LCAzOCwgMC41KTtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgVHlwZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBbmltYXRlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmFuaW1hdGVkLmJ1dHRvbiB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcGFkZGluZy1yaWdodDogMGVtICFpbXBvcnRhbnQ7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIHotaW5kZXg6IDE7XG59XG4udWkuYW5pbWF0ZWQuYnV0dG9uIC5jb250ZW50IHtcbiAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbn1cbi51aS5hbmltYXRlZC5idXR0b24gLnZpc2libGUuY29udGVudCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWFyZ2luLXJpZ2h0OiAxLjVlbTtcbn1cbi51aS5hbmltYXRlZC5idXR0b24gLmhpZGRlbi5jb250ZW50IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogMTAwJTtcbn1cbi8qIEhvcml6b250YWwgKi9cbi51aS5hbmltYXRlZC5idXR0b24gLnZpc2libGUuY29udGVudCxcbi51aS5hbmltYXRlZC5idXR0b24gLmhpZGRlbi5jb250ZW50IHtcbiAgdHJhbnNpdGlvbjogcmlnaHQgMC4zcyBlYXNlIDBzO1xufVxuLnVpLmFuaW1hdGVkLmJ1dHRvbiAudmlzaWJsZS5jb250ZW50IHtcbiAgbGVmdDogYXV0bztcbiAgcmlnaHQ6IDAlO1xufVxuLnVpLmFuaW1hdGVkLmJ1dHRvbiAuaGlkZGVuLmNvbnRlbnQge1xuICB0b3A6IDUwJTtcbiAgbGVmdDogYXV0bztcbiAgcmlnaHQ6IC0xMDAlO1xuICBtYXJnaW4tdG9wOiAtMC41ZW07XG59XG4udWkuYW5pbWF0ZWQuYnV0dG9uOmZvY3VzIC52aXNpYmxlLmNvbnRlbnQsXG4udWkuYW5pbWF0ZWQuYnV0dG9uOmhvdmVyIC52aXNpYmxlLmNvbnRlbnQge1xuICBsZWZ0OiBhdXRvO1xuICByaWdodDogMjAwJTtcbn1cbi51aS5hbmltYXRlZC5idXR0b246Zm9jdXMgLmhpZGRlbi5jb250ZW50LFxuLnVpLmFuaW1hdGVkLmJ1dHRvbjpob3ZlciAuaGlkZGVuLmNvbnRlbnQge1xuICBsZWZ0OiBhdXRvO1xuICByaWdodDogMCU7XG59XG4vKiBWZXJ0aWNhbCAqL1xuLnVpLnZlcnRpY2FsLmFuaW1hdGVkLmJ1dHRvbiAudmlzaWJsZS5jb250ZW50LFxuLnVpLnZlcnRpY2FsLmFuaW1hdGVkLmJ1dHRvbiAuaGlkZGVuLmNvbnRlbnQge1xuICB0cmFuc2l0aW9uOiB0b3AgMC4zcyBlYXNlLCB0cmFuc2Zvcm0gMC4zcyBlYXNlO1xufVxuLnVpLnZlcnRpY2FsLmFuaW1hdGVkLmJ1dHRvbiAudmlzaWJsZS5jb250ZW50IHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDAlKTtcbiAgcmlnaHQ6IGF1dG87XG59XG4udWkudmVydGljYWwuYW5pbWF0ZWQuYnV0dG9uIC5oaWRkZW4uY29udGVudCB7XG4gIHRvcDogLTUwJTtcbiAgbGVmdDogMCU7XG4gIHJpZ2h0OiBhdXRvO1xufVxuLnVpLnZlcnRpY2FsLmFuaW1hdGVkLmJ1dHRvbjpmb2N1cyAudmlzaWJsZS5jb250ZW50LFxuLnVpLnZlcnRpY2FsLmFuaW1hdGVkLmJ1dHRvbjpob3ZlciAudmlzaWJsZS5jb250ZW50IHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDIwMCUpO1xuICByaWdodDogYXV0bztcbn1cbi51aS52ZXJ0aWNhbC5hbmltYXRlZC5idXR0b246Zm9jdXMgLmhpZGRlbi5jb250ZW50LFxuLnVpLnZlcnRpY2FsLmFuaW1hdGVkLmJ1dHRvbjpob3ZlciAuaGlkZGVuLmNvbnRlbnQge1xuICB0b3A6IDUwJTtcbiAgcmlnaHQ6IGF1dG87XG59XG4vKiBGYWRlICovXG4udWkuZmFkZS5hbmltYXRlZC5idXR0b24gLnZpc2libGUuY29udGVudCxcbi51aS5mYWRlLmFuaW1hdGVkLmJ1dHRvbiAuaGlkZGVuLmNvbnRlbnQge1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3MgZWFzZSwgdHJhbnNmb3JtIDAuM3MgZWFzZTtcbn1cbi51aS5mYWRlLmFuaW1hdGVkLmJ1dHRvbiAudmlzaWJsZS5jb250ZW50IHtcbiAgbGVmdDogYXV0bztcbiAgcmlnaHQ6IGF1dG87XG4gIG9wYWNpdHk6IDE7XG4gIHRyYW5zZm9ybTogc2NhbGUoMSk7XG59XG4udWkuZmFkZS5hbmltYXRlZC5idXR0b24gLmhpZGRlbi5jb250ZW50IHtcbiAgb3BhY2l0eTogMDtcbiAgbGVmdDogMCU7XG4gIHJpZ2h0OiBhdXRvO1xuICB0cmFuc2Zvcm06IHNjYWxlKDEuNSk7XG59XG4udWkuZmFkZS5hbmltYXRlZC5idXR0b246Zm9jdXMgLnZpc2libGUuY29udGVudCxcbi51aS5mYWRlLmFuaW1hdGVkLmJ1dHRvbjpob3ZlciAudmlzaWJsZS5jb250ZW50IHtcbiAgbGVmdDogYXV0bztcbiAgcmlnaHQ6IGF1dG87XG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zZm9ybTogc2NhbGUoMC43NSk7XG59XG4udWkuZmFkZS5hbmltYXRlZC5idXR0b246Zm9jdXMgLmhpZGRlbi5jb250ZW50LFxuLnVpLmZhZGUuYW5pbWF0ZWQuYnV0dG9uOmhvdmVyIC5oaWRkZW4uY29udGVudCB7XG4gIGxlZnQ6IDAlO1xuICByaWdodDogYXV0bztcbiAgb3BhY2l0eTogMTtcbiAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEludmVydGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkuaW52ZXJ0ZWQuYnV0dG9uIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMnB4ICNmZmZmZmYgaW5zZXQgIWltcG9ydGFudDtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgbm9uZTtcbiAgY29sb3I6ICNmZmZmZmY7XG4gIHRleHQtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG59XG4vKiBHcm91cCAqL1xuLnVpLmludmVydGVkLmJ1dHRvbnMgLmJ1dHRvbiB7XG4gIG1hcmdpbjogMHB4IDBweCAwcHggLTJweDtcbn1cbi51aS5pbnZlcnRlZC5idXR0b25zIC5idXR0b246Zmlyc3QtY2hpbGQge1xuICBtYXJnaW4tbGVmdDogMGVtO1xufVxuLnVpLmludmVydGVkLnZlcnRpY2FsLmJ1dHRvbnMgLmJ1dHRvbiB7XG4gIG1hcmdpbjogMHB4IDBweCAtMnB4IDBweDtcbn1cbi51aS5pbnZlcnRlZC52ZXJ0aWNhbC5idXR0b25zIC5idXR0b246Zmlyc3QtY2hpbGQge1xuICBtYXJnaW4tdG9wOiAwZW07XG59XG4vKiBTdGF0ZXMgKi9cbi8qIEhvdmVyICovXG4udWkuaW52ZXJ0ZWQuYnV0dG9uOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMnB4ICNmZmZmZmYgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44KTtcbn1cbi8qIEFjdGl2ZSAvIEZvY3VzICovXG4udWkuaW52ZXJ0ZWQuYnV0dG9uOmZvY3VzLFxuLnVpLmludmVydGVkLmJ1dHRvbi5hY3RpdmUge1xuICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAycHggI2ZmZmZmZiBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjgpO1xufVxuLyogQWN0aXZlIEZvY3VzICovXG4udWkuaW52ZXJ0ZWQuYnV0dG9uLmFjdGl2ZTpmb2N1cyB7XG4gIGJhY2tncm91bmQ6ICNEQ0REREU7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDJweCAjRENERERFIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuOCk7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBMYWJlbGVkIEJ1dHRvblxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmxhYmVsZWQuYnV0dG9uOm5vdCguaWNvbikge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgYmFja2dyb3VuZDogbm9uZSAhaW1wb3J0YW50O1xuICBwYWRkaW5nOiAwcHggIWltcG9ydGFudDtcbiAgYm9yZGVyOiBub25lICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbn1cbi51aS5sYWJlbGVkLmJ1dHRvbiA+IC5idXR0b24ge1xuICBtYXJnaW46IDBweDtcbn1cbi51aS5sYWJlbGVkLmJ1dHRvbiA+IC5sYWJlbCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIG1hcmdpbjogMHB4IDBweCAwcHggLTFweCAhaW1wb3J0YW50O1xuICBwYWRkaW5nOiAnJztcbiAgZm9udC1zaXplOiAxZW07XG4gIGJvcmRlci1jb2xvcjogcmdiYSgzNCwgMzYsIDM4LCAwLjE1KTtcbn1cbi8qIFRhZyAqL1xuLnVpLmxhYmVsZWQuYnV0dG9uID4gLnRhZy5sYWJlbDpiZWZvcmUge1xuICB3aWR0aDogMS44NWVtO1xuICBoZWlnaHQ6IDEuODVlbTtcbn1cbi8qIFJpZ2h0ICovXG4udWkubGFiZWxlZC5idXR0b246bm90KFtjbGFzcyo9XCJsZWZ0IGxhYmVsZWRcIl0pID4gLmJ1dHRvbiB7XG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwcHg7XG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwcHg7XG59XG4udWkubGFiZWxlZC5idXR0b246bm90KFtjbGFzcyo9XCJsZWZ0IGxhYmVsZWRcIl0pID4gLmxhYmVsIHtcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMHB4O1xuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwcHg7XG59XG4vKiBMZWZ0IFNpZGUgKi9cbi51aVtjbGFzcyo9XCJsZWZ0IGxhYmVsZWRcIl0uYnV0dG9uID4gLmJ1dHRvbiB7XG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDBweDtcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMHB4O1xufVxuLnVpW2NsYXNzKj1cImxlZnQgbGFiZWxlZFwiXS5idXR0b24gPiAubGFiZWwge1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMHB4O1xuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMHB4O1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgU29jaWFsXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGYWNlYm9vayAqL1xuLnVpLmZhY2Vib29rLmJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzQjU5OTg7XG4gIGNvbG9yOiAjZmZmZmZmO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbiAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbiAgYm94LXNoYWRvdzogMHB4IDBlbSAwcHggMHB4IHJnYmEoMzQsIDM2LCAzOCwgMC4xNSkgaW5zZXQ7XG59XG4udWkuZmFjZWJvb2suYnV0dG9uOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzMwNGQ4YTtcbiAgY29sb3I6ICNmZmZmZmY7XG4gIHRleHQtc2hhZG93OiBub25lO1xufVxuLnVpLmZhY2Vib29rLmJ1dHRvbjphY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMmQ0MzczO1xuICBjb2xvcjogI2ZmZmZmZjtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG59XG4vKiBUd2l0dGVyICovXG4udWkudHdpdHRlci5idXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTVBQ0VFO1xuICBjb2xvcjogI2ZmZmZmZjtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG4gIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG4gIGJveC1zaGFkb3c6IDBweCAwZW0gMHB4IDBweCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpIGluc2V0O1xufVxuLnVpLnR3aXR0ZXIuYnV0dG9uOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzM1YTJmNDtcbiAgY29sb3I6ICNmZmZmZmY7XG4gIHRleHQtc2hhZG93OiBub25lO1xufVxuLnVpLnR3aXR0ZXIuYnV0dG9uOmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyNzk1ZTk7XG4gIGNvbG9yOiAjZmZmZmZmO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbn1cbi8qIEdvb2dsZSBQbHVzICovXG4udWkuZ29vZ2xlLnBsdXMuYnV0dG9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0RENEIzOTtcbiAgY29sb3I6ICNmZmZmZmY7XG4gIHRleHQtc2hhZG93OiBub25lO1xuICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xuICBib3gtc2hhZG93OiAwcHggMGVtIDBweCAwcHggcmdiYSgzNCwgMzYsIDM4LCAwLjE1KSBpbnNldDtcbn1cbi51aS5nb29nbGUucGx1cy5idXR0b246aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTAzMjFjO1xuICBjb2xvcjogI2ZmZmZmZjtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG59XG4udWkuZ29vZ2xlLnBsdXMuYnV0dG9uOmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNjMjMzMjE7XG4gIGNvbG9yOiAjZmZmZmZmO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbn1cbi8qIExpbmtlZCBJbiAqL1xuLnVpLmxpbmtlZGluLmJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxRjg4QkU7XG4gIGNvbG9yOiAjZmZmZmZmO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbn1cbi51aS5saW5rZWRpbi5idXR0b246aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTQ3YmFmO1xuICBjb2xvcjogI2ZmZmZmZjtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG59XG4udWkubGlua2VkaW4uYnV0dG9uOmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxODY5OTI7XG4gIGNvbG9yOiAjZmZmZmZmO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbn1cbi8qIFlvdVR1YmUgKi9cbi51aS55b3V0dWJlLmJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGRjAwMDA7XG4gIGNvbG9yOiAjZmZmZmZmO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbiAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbiAgYm94LXNoYWRvdzogMHB4IDBlbSAwcHggMHB4IHJnYmEoMzQsIDM2LCAzOCwgMC4xNSkgaW5zZXQ7XG59XG4udWkueW91dHViZS5idXR0b246aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTYwMDAwO1xuICBjb2xvcjogI2ZmZmZmZjtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG59XG4udWkueW91dHViZS5idXR0b246YWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2NjMDAwMDtcbiAgY29sb3I6ICNmZmZmZmY7XG4gIHRleHQtc2hhZG93OiBub25lO1xufVxuLyogSW5zdGFncmFtICovXG4udWkuaW5zdGFncmFtLmJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0OTc2OUM7XG4gIGNvbG9yOiAjZmZmZmZmO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbiAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbiAgYm94LXNoYWRvdzogMHB4IDBlbSAwcHggMHB4IHJnYmEoMzQsIDM2LCAzOCwgMC4xNSkgaW5zZXQ7XG59XG4udWkuaW5zdGFncmFtLmJ1dHRvbjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzZDY5OGU7XG4gIGNvbG9yOiAjZmZmZmZmO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbn1cbi51aS5pbnN0YWdyYW0uYnV0dG9uOmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzOTVjNzk7XG4gIGNvbG9yOiAjZmZmZmZmO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbn1cbi8qIFBpbnRlcmVzdCAqL1xuLnVpLnBpbnRlcmVzdC5idXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjQkQwODFDO1xuICBjb2xvcjogI2ZmZmZmZjtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG4gIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG4gIGJveC1zaGFkb3c6IDBweCAwZW0gMHB4IDBweCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpIGluc2V0O1xufVxuLnVpLnBpbnRlcmVzdC5idXR0b246aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYWMwMDEzO1xuICBjb2xvcjogI2ZmZmZmZjtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG59XG4udWkucGludGVyZXN0LmJ1dHRvbjphY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOGMwNjE1O1xuICBjb2xvcjogI2ZmZmZmZjtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG59XG4vKiBWSyAqL1xuLnVpLnZrLmJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0RDcxOTg7XG4gIGNvbG9yOiAjZmZmZmZmO1xuICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xuICBib3gtc2hhZG93OiAwcHggMGVtIDBweCAwcHggcmdiYSgzNCwgMzYsIDM4LCAwLjE1KSBpbnNldDtcbn1cbi51aS52ay5idXR0b246aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDE2NDhhO1xuICBjb2xvcjogI2ZmZmZmZjtcbn1cbi51aS52ay5idXR0b246YWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzNjNTg3NjtcbiAgY29sb3I6ICNmZmZmZmY7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIEljb25cbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuYnV0dG9uID4gLmljb246bm90KC5idXR0b24pIHtcbiAgaGVpZ2h0OiAwLjllbTtcbiAgb3BhY2l0eTogMC44O1xuICBtYXJnaW46IDBlbSAwLjZlbSAwZW0gLTAuM2VtO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMXMgZWFzZTtcbiAgdmVydGljYWwtYWxpZ246ICcnO1xuICBjb2xvcjogJyc7XG59XG4udWkuYnV0dG9uOm5vdCguaWNvbikgPiAuaWNvbjpub3QoLmJ1dHRvbik6bm90KC5kcm9wZG93bikge1xuICBtYXJnaW46IDBlbSAwLjZlbSAwZW0gLTAuM2VtO1xufVxuLnVpLmJ1dHRvbjpub3QoLmljb24pID4gLnJpZ2h0Lmljb246bm90KC5idXR0b24pOm5vdCguZHJvcGRvd24pIHtcbiAgbWFyZ2luOiAwZW0gLTAuM2VtIDBlbSAwLjZlbTtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFZhcmlhdGlvbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGbG9hdGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWlbY2xhc3MqPVwibGVmdCBmbG9hdGVkXCJdLmJ1dHRvbnMsXG4udWlbY2xhc3MqPVwibGVmdCBmbG9hdGVkXCJdLmJ1dHRvbiB7XG4gIGZsb2F0OiBsZWZ0O1xuICBtYXJnaW4tbGVmdDogMGVtO1xuICBtYXJnaW4tcmlnaHQ6IDAuMjVlbTtcbn1cbi51aVtjbGFzcyo9XCJyaWdodCBmbG9hdGVkXCJdLmJ1dHRvbnMsXG4udWlbY2xhc3MqPVwicmlnaHQgZmxvYXRlZFwiXS5idXR0b24ge1xuICBmbG9hdDogcmlnaHQ7XG4gIG1hcmdpbi1yaWdodDogMGVtO1xuICBtYXJnaW4tbGVmdDogMC4yNWVtO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQ29tcGFjdFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmNvbXBhY3QuYnV0dG9ucyAuYnV0dG9uLFxuLnVpLmNvbXBhY3QuYnV0dG9uIHtcbiAgcGFkZGluZzogMC44MjVlbSAxLjEyNWVtIDAuODI1ZW07XG59XG4udWkuY29tcGFjdC5pY29uLmJ1dHRvbnMgLmJ1dHRvbixcbi51aS5jb21wYWN0Lmljb24uYnV0dG9uIHtcbiAgcGFkZGluZzogMC44MjVlbSAwLjgyNWVtIDAuODI1ZW07XG59XG4udWkuY29tcGFjdC5sYWJlbGVkLmljb24uYnV0dG9ucyAuYnV0dG9uLFxuLnVpLmNvbXBhY3QubGFiZWxlZC5pY29uLmJ1dHRvbiB7XG4gIHBhZGRpbmc6IDAuODI1ZW0gNC4zMjVlbSAwLjgyNWVtO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkubWluaS5idXR0b25zIC5idXR0b24sXG4udWkubWluaS5idXR0b25zIC5vcixcbi51aS5taW5pLmJ1dHRvbiB7XG4gIGZvbnQtc2l6ZTogMC44cmVtO1xufVxuLnVpLnRpbnkuYnV0dG9ucyAuYnV0dG9uLFxuLnVpLnRpbnkuYnV0dG9ucyAub3IsXG4udWkudGlueS5idXR0b24ge1xuICBmb250LXNpemU6IDAuOXJlbTtcbn1cbi51aS5zbWFsbC5idXR0b25zIC5idXR0b24sXG4udWkuc21hbGwuYnV0dG9ucyAub3IsXG4udWkuc21hbGwuYnV0dG9uIHtcbiAgZm9udC1zaXplOiAwLjlyZW07XG59XG4udWkuYnV0dG9ucyAuYnV0dG9uLFxuLnVpLmJ1dHRvbnMgLm9yLFxuLnVpLmJ1dHRvbiB7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbn1cbi51aS5sYXJnZS5idXR0b25zIC5idXR0b24sXG4udWkubGFyZ2UuYnV0dG9ucyAub3IsXG4udWkubGFyZ2UuYnV0dG9uIHtcbiAgZm9udC1zaXplOiAxLjFyZW07XG59XG4udWkuYmlnLmJ1dHRvbnMgLmJ1dHRvbixcbi51aS5iaWcuYnV0dG9ucyAub3IsXG4udWkuYmlnLmJ1dHRvbiB7XG4gIGZvbnQtc2l6ZTogMS4zcmVtO1xufVxuLnVpLmh1Z2UuYnV0dG9ucyAuYnV0dG9uLFxuLnVpLmh1Z2UuYnV0dG9ucyAub3IsXG4udWkuaHVnZS5idXR0b24ge1xuICBmb250LXNpemU6IDEuNHJlbTtcbn1cbi51aS5tYXNzaXZlLmJ1dHRvbnMgLmJ1dHRvbixcbi51aS5tYXNzaXZlLmJ1dHRvbnMgLm9yLFxuLnVpLm1hc3NpdmUuYnV0dG9uIHtcbiAgZm9udC1zaXplOiAxLjdyZW07XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgSWNvbiBPbmx5XG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmljb24uYnV0dG9ucyAuYnV0dG9uLFxuLnVpLmljb24uYnV0dG9uIHtcbiAgcGFkZGluZzogMS4xZW0gMS4xZW0gMS4xZW07XG59XG4udWkuaWNvbi5idXR0b25zIC5idXR0b24gPiAuaWNvbixcbi51aS5pY29uLmJ1dHRvbiA+IC5pY29uIHtcbiAgb3BhY2l0eTogMC45O1xuICBtYXJnaW46IDBlbTtcbiAgdmVydGljYWwtYWxpZ246IHRvcDtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBCYXNpY1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmJhc2ljLmJ1dHRvbnMgLmJ1dHRvbixcbi51aS5iYXNpYy5idXR0b24ge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCBub25lICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNikgIWltcG9ydGFudDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgYm9yZGVyLXJhZGl1czogMC40cmVtO1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgdGV4dC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4IHJnYmEoMzQsIDM2LCAzOCwgMC4xNSkgaW5zZXQ7XG59XG4udWkuYmFzaWMuYnV0dG9ucyB7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMzQsIDM2LCAzOCwgMC4xNSk7XG4gIGJvcmRlci1yYWRpdXM6IDAuNHJlbTtcbn1cbi51aS5iYXNpYy5idXR0b25zIC5idXR0b24ge1xuICBib3JkZXItcmFkaXVzOiAwZW07XG59XG4udWkuYmFzaWMuYnV0dG9ucyAuYnV0dG9uOmhvdmVyLFxuLnVpLmJhc2ljLmJ1dHRvbjpob3ZlciB7XG4gIGJhY2tncm91bmQ6ICNGRkZGRkYgIWltcG9ydGFudDtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44KSAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggcmdiYSgzNCwgMzYsIDM4LCAwLjM1KSBpbnNldCwgMHB4IDBweCAwcHggMHB4IHJnYmEoMzQsIDM2LCAzOCwgMC4xNSkgaW5zZXQ7XG59XG4udWkuYmFzaWMuYnV0dG9ucyAuYnV0dG9uOmZvY3VzLFxuLnVpLmJhc2ljLmJ1dHRvbjpmb2N1cyB7XG4gIGJhY2tncm91bmQ6ICNGRkZGRkYgIWltcG9ydGFudDtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44KSAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggcmdiYSgzNCwgMzYsIDM4LCAwLjM1KSBpbnNldCwgMHB4IDBweCAwcHggMHB4IHJnYmEoMzQsIDM2LCAzOCwgMC4xNSkgaW5zZXQ7XG59XG4udWkuYmFzaWMuYnV0dG9ucyAuYnV0dG9uOmFjdGl2ZSxcbi51aS5iYXNpYy5idXR0b246YWN0aXZlIHtcbiAgYmFja2dyb3VuZDogI0Y4RjhGOCAhaW1wb3J0YW50O1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjkpICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMTUpIGluc2V0LCAwcHggMXB4IDRweCAwcHggcmdiYSgzNCwgMzYsIDM4LCAwLjE1KSBpbnNldDtcbn1cbi51aS5iYXNpYy5idXR0b25zIC5hY3RpdmUuYnV0dG9uLFxuLnVpLmJhc2ljLmFjdGl2ZS5idXR0b24ge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMDUpICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6ICcnICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuOTUpO1xuICBib3gtc2hhZG93OiByZ2JhKDM0LCAzNiwgMzgsIDAuMzUpO1xufVxuLnVpLmJhc2ljLmJ1dHRvbnMgLmFjdGl2ZS5idXR0b246aG92ZXIsXG4udWkuYmFzaWMuYWN0aXZlLmJ1dHRvbjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4wNSk7XG59XG4vKiBWZXJ0aWNhbCAqL1xuLnVpLmJhc2ljLmJ1dHRvbnMgLmJ1dHRvbjpob3ZlciB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCByZ2JhKDM0LCAzNiwgMzgsIDAuMzUpIGluc2V0LCAwcHggMHB4IDBweCAwcHggcmdiYSgzNCwgMzYsIDM4LCAwLjE1KSBpbnNldCBpbnNldDtcbn1cbi51aS5iYXNpYy5idXR0b25zIC5idXR0b246YWN0aXZlIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4IHJnYmEoMCwgMCwgMCwgMC4xNSkgaW5zZXQsIDBweCAxcHggNHB4IDBweCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpIGluc2V0IGluc2V0O1xufVxuLnVpLmJhc2ljLmJ1dHRvbnMgLmFjdGl2ZS5idXR0b24ge1xuICBib3gtc2hhZG93OiByZ2JhKDM0LCAzNiwgMzgsIDAuMzUpIGluc2V0O1xufVxuLyogU3RhbmRhcmQgQmFzaWMgSW52ZXJ0ZWQgKi9cbi51aS5iYXNpYy5pbnZlcnRlZC5idXR0b25zIC5idXR0b24sXG4udWkuYmFzaWMuaW52ZXJ0ZWQuYnV0dG9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgY29sb3I6ICNGOUZBRkIgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMnB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KSBpbnNldCAhaW1wb3J0YW50O1xufVxuLnVpLmJhc2ljLmludmVydGVkLmJ1dHRvbnMgLmJ1dHRvbjpob3Zlcixcbi51aS5iYXNpYy5pbnZlcnRlZC5idXR0b246aG92ZXIge1xuICBjb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAycHggI2ZmZmZmZiBpbnNldCAhaW1wb3J0YW50O1xufVxuLnVpLmJhc2ljLmludmVydGVkLmJ1dHRvbnMgLmJ1dHRvbjpmb2N1cyxcbi51aS5iYXNpYy5pbnZlcnRlZC5idXR0b246Zm9jdXMge1xuICBjb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAycHggI2ZmZmZmZiBpbnNldCAhaW1wb3J0YW50O1xufVxuLnVpLmJhc2ljLmludmVydGVkLmJ1dHRvbnMgLmJ1dHRvbjphY3RpdmUsXG4udWkuYmFzaWMuaW52ZXJ0ZWQuYnV0dG9uOmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wOCkgIWltcG9ydGFudDtcbiAgY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMnB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45KSBpbnNldCAhaW1wb3J0YW50O1xufVxuLnVpLmJhc2ljLmludmVydGVkLmJ1dHRvbnMgLmFjdGl2ZS5idXR0b24sXG4udWkuYmFzaWMuaW52ZXJ0ZWQuYWN0aXZlLmJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wOCk7XG4gIGNvbG9yOiAjZmZmZmZmO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMnB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KSBpbnNldDtcbn1cbi51aS5iYXNpYy5pbnZlcnRlZC5idXR0b25zIC5hY3RpdmUuYnV0dG9uOmhvdmVyLFxuLnVpLmJhc2ljLmludmVydGVkLmFjdGl2ZS5idXR0b246aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpO1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAycHggI2ZmZmZmZiBpbnNldCAhaW1wb3J0YW50O1xufVxuLyogQmFzaWMgR3JvdXAgKi9cbi51aS5iYXNpYy5idXR0b25zIC5idXR0b24ge1xuICBib3JkZXItbGVmdDogMXB4IHNvbGlkIHJnYmEoMzQsIDM2LCAzOCwgMC4xNSk7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG59XG4udWkuYmFzaWMudmVydGljYWwuYnV0dG9ucyAuYnV0dG9uIHtcbiAgYm9yZGVyLWxlZnQ6IG5vbmU7XG59XG4udWkuYmFzaWMudmVydGljYWwuYnV0dG9ucyAuYnV0dG9uIHtcbiAgYm9yZGVyLWxlZnQtd2lkdGg6IDBweDtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHJnYmEoMzQsIDM2LCAzOCwgMC4xNSk7XG59XG4udWkuYmFzaWMudmVydGljYWwuYnV0dG9ucyAuYnV0dG9uOmZpcnN0LWNoaWxkIHtcbiAgYm9yZGVyLXRvcC13aWR0aDogMHB4O1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICBMYWJlbGVkIEljb25cbi0tLS0tLS0tLS0tLS0tLSovXG4udWkubGFiZWxlZC5pY29uLmJ1dHRvbnMgLmJ1dHRvbixcbi51aS5sYWJlbGVkLmljb24uYnV0dG9uIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBwYWRkaW5nLWxlZnQ6IDQuN2VtICFpbXBvcnRhbnQ7XG4gIHBhZGRpbmctcmlnaHQ6IDEuNWVtICFpbXBvcnRhbnQ7XG59XG4vKiBMZWZ0IExhYmVsZWQgKi9cbi51aS5sYWJlbGVkLmljb24uYnV0dG9ucyA+IC5idXR0b24gPiAuaWNvbixcbi51aS5sYWJlbGVkLmljb24uYnV0dG9uID4gLmljb24ge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGhlaWdodDogMTAwJTtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGJvcmRlci1yYWRpdXM6IDBweDtcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogaW5oZXJpdDtcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogaW5oZXJpdDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBtYXJnaW46IDBlbTtcbiAgd2lkdGg6IDMuMmVtO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMDUpO1xuICBjb2xvcjogJyc7XG4gIGJveC1zaGFkb3c6IC0xcHggMHB4IDBweCAwcHggdHJhbnNwYXJlbnQgaW5zZXQ7XG59XG4vKiBMZWZ0IExhYmVsZWQgKi9cbi51aS5sYWJlbGVkLmljb24uYnV0dG9ucyA+IC5idXR0b24gPiAuaWNvbixcbi51aS5sYWJlbGVkLmljb24uYnV0dG9uID4gLmljb24ge1xuICB0b3A6IDBlbTtcbiAgbGVmdDogMGVtO1xufVxuLyogUmlnaHQgTGFiZWxlZCAqL1xuLnVpW2NsYXNzKj1cInJpZ2h0IGxhYmVsZWRcIl0uaWNvbi5idXR0b24ge1xuICBwYWRkaW5nLXJpZ2h0OiA0LjdlbSAhaW1wb3J0YW50O1xuICBwYWRkaW5nLWxlZnQ6IDEuNWVtICFpbXBvcnRhbnQ7XG59XG4udWlbY2xhc3MqPVwicmlnaHQgbGFiZWxlZFwiXS5pY29uLmJ1dHRvbiA+IC5pY29uIHtcbiAgbGVmdDogYXV0bztcbiAgcmlnaHQ6IDBlbTtcbiAgYm9yZGVyLXJhZGl1czogMHB4O1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogaW5oZXJpdDtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IGluaGVyaXQ7XG4gIGJveC1zaGFkb3c6IDFweCAwcHggMHB4IDBweCB0cmFuc3BhcmVudCBpbnNldDtcbn1cbi51aS5sYWJlbGVkLmljb24uYnV0dG9ucyA+IC5idXR0b24gPiAuaWNvbjpiZWZvcmUsXG4udWkubGFiZWxlZC5pY29uLmJ1dHRvbiA+IC5pY29uOmJlZm9yZSxcbi51aS5sYWJlbGVkLmljb24uYnV0dG9ucyA+IC5idXR0b24gPiAuaWNvbjphZnRlcixcbi51aS5sYWJlbGVkLmljb24uYnV0dG9uID4gLmljb246YWZ0ZXIge1xuICBkaXNwbGF5OiBibG9jaztcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogMTAwJTtcbiAgdG9wOiA1MCU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xufVxuLnVpLmxhYmVsZWQuaWNvbi5idXR0b25zIC5idXR0b24gPiAuaWNvbiB7XG4gIGJvcmRlci1yYWRpdXM6IDBlbTtcbn1cbi51aS5sYWJlbGVkLmljb24uYnV0dG9ucyAuYnV0dG9uOmZpcnN0LWNoaWxkID4gLmljb24ge1xuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwLjRyZW07XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDAuNHJlbTtcbn1cbi51aS5sYWJlbGVkLmljb24uYnV0dG9ucyAuYnV0dG9uOmxhc3QtY2hpbGQgPiAuaWNvbiB7XG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwLjRyZW07XG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwLjRyZW07XG59XG4udWkudmVydGljYWwubGFiZWxlZC5pY29uLmJ1dHRvbnMgLmJ1dHRvbjpmaXJzdC1jaGlsZCA+IC5pY29uIHtcbiAgYm9yZGVyLXJhZGl1czogMGVtO1xuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwLjRyZW07XG59XG4udWkudmVydGljYWwubGFiZWxlZC5pY29uLmJ1dHRvbnMgLmJ1dHRvbjpsYXN0LWNoaWxkID4gLmljb24ge1xuICBib3JkZXItcmFkaXVzOiAwZW07XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDAuNHJlbTtcbn1cbi8qIEZsdWlkIExhYmVsZWQgKi9cbi51aS5mbHVpZFtjbGFzcyo9XCJsZWZ0IGxhYmVsZWRcIl0uaWNvbi5idXR0b24sXG4udWkuZmx1aWRbY2xhc3MqPVwicmlnaHQgbGFiZWxlZFwiXS5pY29uLmJ1dHRvbiB7XG4gIHBhZGRpbmctbGVmdDogMS41ZW0gIWltcG9ydGFudDtcbiAgcGFkZGluZy1yaWdodDogMS41ZW0gIWltcG9ydGFudDtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgVG9nZ2xlXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVG9nZ2xlIChNb2RpZmllcyBhY3RpdmUgc3RhdGUgdG8gZ2l2ZSBhZmZvcmRhbmNlcykgKi9cbi51aS50b2dnbGUuYnV0dG9ucyAuYWN0aXZlLmJ1dHRvbixcbi51aS5idXR0b25zIC5idXR0b24udG9nZ2xlLmFjdGl2ZSxcbi51aS5idXR0b24udG9nZ2xlLmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxOWE1MzEgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbiAgY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcbn1cbi51aS5idXR0b24udG9nZ2xlLmFjdGl2ZTpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxMDk1MjYgIWltcG9ydGFudDtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG4gIGNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgQ2lyY3VsYXJcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuY2lyY3VsYXIuYnV0dG9uIHtcbiAgYm9yZGVyLXJhZGl1czogMTBlbTtcbn1cbi51aS5jaXJjdWxhci5idXR0b24gPiAuaWNvbiB7XG4gIHdpZHRoOiAxZW07XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgT3IgQnV0dG9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmJ1dHRvbnMgLm9yIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogMC4zZW07XG4gIGhlaWdodDogMy4yZW07XG4gIHotaW5kZXg6IDM7XG59XG4udWkuYnV0dG9ucyAub3I6YmVmb3JlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGJvcmRlci1yYWRpdXM6IDUwMHJlbTtcbiAgY29udGVudDogJ29yJztcbiAgdG9wOiA1MCU7XG4gIGxlZnQ6IDUwJTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG4gIG1hcmdpbi10b3A6IC0xLjA1ZW07XG4gIG1hcmdpbi1sZWZ0OiAtMS4wNWVtO1xuICB3aWR0aDogMi4xZW07XG4gIGhlaWdodDogMi4xZW07XG4gIGxpbmUtaGVpZ2h0OiAyLjFlbTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC40KTtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4IHRyYW5zcGFyZW50IGluc2V0O1xufVxuLnVpLmJ1dHRvbnMgLm9yW2RhdGEtdGV4dF06YmVmb3JlIHtcbiAgY29udGVudDogYXR0cihkYXRhLXRleHQpO1xufVxuLyogRmx1aWQgT3IgKi9cbi51aS5mbHVpZC5idXR0b25zIC5vciB7XG4gIHdpZHRoOiAwZW0gIWltcG9ydGFudDtcbn1cbi51aS5mbHVpZC5idXR0b25zIC5vcjphZnRlciB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBdHRhY2hlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2luZ3VsYXIgKi9cbi51aS5hdHRhY2hlZC5idXR0b24ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW46IDBlbTtcbiAgYm9yZGVyLXJhZGl1czogMGVtO1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggcmdiYSgzNCwgMzYsIDM4LCAwLjE1KSAhaW1wb3J0YW50O1xufVxuLyogVG9wIC8gQm90dG9tICovXG4udWkuYXR0YWNoZWQudG9wLmJ1dHRvbiB7XG4gIGJvcmRlci1yYWRpdXM6IDAuNHJlbSAwLjRyZW0gMGVtIDBlbTtcbn1cbi51aS5hdHRhY2hlZC5ib3R0b20uYnV0dG9uIHtcbiAgYm9yZGVyLXJhZGl1czogMGVtIDBlbSAwLjRyZW0gMC40cmVtO1xufVxuLyogTGVmdCAvIFJpZ2h0ICovXG4udWkubGVmdC5hdHRhY2hlZC5idXR0b24ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGJvcmRlci1sZWZ0OiBub25lO1xuICB0ZXh0LWFsaWduOiByaWdodDtcbiAgcGFkZGluZy1yaWdodDogMC43NWVtO1xuICBib3JkZXItcmFkaXVzOiAwLjRyZW0gMGVtIDBlbSAwLjRyZW07XG59XG4udWkucmlnaHQuYXR0YWNoZWQuYnV0dG9uIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBwYWRkaW5nLWxlZnQ6IDAuNzVlbTtcbiAgYm9yZGVyLXJhZGl1czogMGVtIDAuNHJlbSAwLjRyZW0gMGVtO1xufVxuLyogUGx1cmFsICovXG4udWkuYXR0YWNoZWQuYnV0dG9ucyB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogZmxleDtcbiAgYm9yZGVyLXJhZGl1czogMGVtO1xuICB3aWR0aDogYXV0byAhaW1wb3J0YW50O1xuICB6LWluZGV4OiAyO1xuICBtYXJnaW4tbGVmdDogLTFweDtcbiAgbWFyZ2luLXJpZ2h0OiAtMXB4O1xufVxuLnVpLmF0dGFjaGVkLmJ1dHRvbnMgLmJ1dHRvbiB7XG4gIG1hcmdpbjogMGVtO1xufVxuLnVpLmF0dGFjaGVkLmJ1dHRvbnMgLmJ1dHRvbjpmaXJzdC1jaGlsZCB7XG4gIGJvcmRlci1yYWRpdXM6IDBlbTtcbn1cbi51aS5hdHRhY2hlZC5idXR0b25zIC5idXR0b246bGFzdC1jaGlsZCB7XG4gIGJvcmRlci1yYWRpdXM6IDBlbTtcbn1cbi8qIFRvcCAvIEJvdHRvbSAqL1xuLnVpW2NsYXNzKj1cInRvcCBhdHRhY2hlZFwiXS5idXR0b25zIHtcbiAgbWFyZ2luLWJvdHRvbTogLTFweDtcbiAgYm9yZGVyLXJhZGl1czogMC40cmVtIDAuNHJlbSAwZW0gMGVtO1xufVxuLnVpW2NsYXNzKj1cInRvcCBhdHRhY2hlZFwiXS5idXR0b25zIC5idXR0b246Zmlyc3QtY2hpbGQge1xuICBib3JkZXItcmFkaXVzOiAwLjRyZW0gMGVtIDBlbSAwZW07XG59XG4udWlbY2xhc3MqPVwidG9wIGF0dGFjaGVkXCJdLmJ1dHRvbnMgLmJ1dHRvbjpsYXN0LWNoaWxkIHtcbiAgYm9yZGVyLXJhZGl1czogMGVtIDAuNHJlbSAwZW0gMGVtO1xufVxuLnVpW2NsYXNzKj1cImJvdHRvbSBhdHRhY2hlZFwiXS5idXR0b25zIHtcbiAgbWFyZ2luLXRvcDogLTFweDtcbiAgYm9yZGVyLXJhZGl1czogMGVtIDBlbSAwLjRyZW0gMC40cmVtO1xufVxuLnVpW2NsYXNzKj1cImJvdHRvbSBhdHRhY2hlZFwiXS5idXR0b25zIC5idXR0b246Zmlyc3QtY2hpbGQge1xuICBib3JkZXItcmFkaXVzOiAwZW0gMGVtIDBlbSAwLjRyZW07XG59XG4udWlbY2xhc3MqPVwiYm90dG9tIGF0dGFjaGVkXCJdLmJ1dHRvbnMgLmJ1dHRvbjpsYXN0LWNoaWxkIHtcbiAgYm9yZGVyLXJhZGl1czogMGVtIDBlbSAwLjRyZW0gMGVtO1xufVxuLyogTGVmdCAvIFJpZ2h0ICovXG4udWlbY2xhc3MqPVwibGVmdCBhdHRhY2hlZFwiXS5idXR0b25zIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIG1hcmdpbi1yaWdodDogMGVtO1xuICBtYXJnaW4tbGVmdDogLTFweDtcbiAgYm9yZGVyLXJhZGl1czogMGVtIDAuNHJlbSAwLjRyZW0gMGVtO1xufVxuLnVpW2NsYXNzKj1cImxlZnQgYXR0YWNoZWRcIl0uYnV0dG9ucyAuYnV0dG9uOmZpcnN0LWNoaWxkIHtcbiAgbWFyZ2luLWxlZnQ6IC0xcHg7XG4gIGJvcmRlci1yYWRpdXM6IDBlbSAwLjRyZW0gMGVtIDBlbTtcbn1cbi51aVtjbGFzcyo9XCJsZWZ0IGF0dGFjaGVkXCJdLmJ1dHRvbnMgLmJ1dHRvbjpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLWxlZnQ6IC0xcHg7XG4gIGJvcmRlci1yYWRpdXM6IDBlbSAwZW0gMC40cmVtIDBlbTtcbn1cbi51aVtjbGFzcyo9XCJyaWdodCBhdHRhY2hlZFwiXS5idXR0b25zIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIG1hcmdpbi1sZWZ0OiAwZW07XG4gIG1hcmdpbi1yaWdodDogLTFweDtcbiAgYm9yZGVyLXJhZGl1czogMC40cmVtIDBlbSAwZW0gMC40cmVtO1xufVxuLnVpW2NsYXNzKj1cInJpZ2h0IGF0dGFjaGVkXCJdLmJ1dHRvbnMgLmJ1dHRvbjpmaXJzdC1jaGlsZCB7XG4gIG1hcmdpbi1sZWZ0OiAtMXB4O1xuICBib3JkZXItcmFkaXVzOiAwLjRyZW0gMGVtIDBlbSAwZW07XG59XG4udWlbY2xhc3MqPVwicmlnaHQgYXR0YWNoZWRcIl0uYnV0dG9ucyAuYnV0dG9uOmxhc3QtY2hpbGQge1xuICBtYXJnaW4tbGVmdDogLTFweDtcbiAgYm9yZGVyLXJhZGl1czogMGVtIDBlbSAwZW0gMC40cmVtO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZsdWlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkuZmx1aWQuYnV0dG9ucyxcbi51aS5mbHVpZC5idXR0b24ge1xuICB3aWR0aDogMTAwJTtcbn1cbi51aS5mbHVpZC5idXR0b24ge1xuICBkaXNwbGF5OiBibG9jaztcbn1cbi51aS50d28uYnV0dG9ucyB7XG4gIHdpZHRoOiAxMDAlO1xufVxuLnVpLnR3by5idXR0b25zID4gLmJ1dHRvbiB7XG4gIHdpZHRoOiA1MCU7XG59XG4udWkudGhyZWUuYnV0dG9ucyB7XG4gIHdpZHRoOiAxMDAlO1xufVxuLnVpLnRocmVlLmJ1dHRvbnMgPiAuYnV0dG9uIHtcbiAgd2lkdGg6IDMzLjMzMyU7XG59XG4udWkuZm91ci5idXR0b25zIHtcbiAgd2lkdGg6IDEwMCU7XG59XG4udWkuZm91ci5idXR0b25zID4gLmJ1dHRvbiB7XG4gIHdpZHRoOiAyNSU7XG59XG4udWkuZml2ZS5idXR0b25zIHtcbiAgd2lkdGg6IDEwMCU7XG59XG4udWkuZml2ZS5idXR0b25zID4gLmJ1dHRvbiB7XG4gIHdpZHRoOiAyMCU7XG59XG4udWkuc2l4LmJ1dHRvbnMge1xuICB3aWR0aDogMTAwJTtcbn1cbi51aS5zaXguYnV0dG9ucyA+IC5idXR0b24ge1xuICB3aWR0aDogMTYuNjY2JTtcbn1cbi51aS5zZXZlbi5idXR0b25zIHtcbiAgd2lkdGg6IDEwMCU7XG59XG4udWkuc2V2ZW4uYnV0dG9ucyA+IC5idXR0b24ge1xuICB3aWR0aDogMTQuMjg1JTtcbn1cbi51aS5laWdodC5idXR0b25zIHtcbiAgd2lkdGg6IDEwMCU7XG59XG4udWkuZWlnaHQuYnV0dG9ucyA+IC5idXR0b24ge1xuICB3aWR0aDogMTIuNSU7XG59XG4udWkubmluZS5idXR0b25zIHtcbiAgd2lkdGg6IDEwMCU7XG59XG4udWkubmluZS5idXR0b25zID4gLmJ1dHRvbiB7XG4gIHdpZHRoOiAxMS4xMSU7XG59XG4udWkudGVuLmJ1dHRvbnMge1xuICB3aWR0aDogMTAwJTtcbn1cbi51aS50ZW4uYnV0dG9ucyA+IC5idXR0b24ge1xuICB3aWR0aDogMTAlO1xufVxuLnVpLmVsZXZlbi5idXR0b25zIHtcbiAgd2lkdGg6IDEwMCU7XG59XG4udWkuZWxldmVuLmJ1dHRvbnMgPiAuYnV0dG9uIHtcbiAgd2lkdGg6IDkuMDklO1xufVxuLnVpLnR3ZWx2ZS5idXR0b25zIHtcbiAgd2lkdGg6IDEwMCU7XG59XG4udWkudHdlbHZlLmJ1dHRvbnMgPiAuYnV0dG9uIHtcbiAgd2lkdGg6IDguMzMzMyU7XG59XG4vKiBGbHVpZCBWZXJ0aWNhbCBCdXR0b25zICovXG4udWkuZmx1aWQudmVydGljYWwuYnV0dG9ucyxcbi51aS5mbHVpZC52ZXJ0aWNhbC5idXR0b25zID4gLmJ1dHRvbiB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIHdpZHRoOiBhdXRvO1xufVxuLnVpLnR3by52ZXJ0aWNhbC5idXR0b25zID4gLmJ1dHRvbiB7XG4gIGhlaWdodDogNTAlO1xufVxuLnVpLnRocmVlLnZlcnRpY2FsLmJ1dHRvbnMgPiAuYnV0dG9uIHtcbiAgaGVpZ2h0OiAzMy4zMzMlO1xufVxuLnVpLmZvdXIudmVydGljYWwuYnV0dG9ucyA+IC5idXR0b24ge1xuICBoZWlnaHQ6IDI1JTtcbn1cbi51aS5maXZlLnZlcnRpY2FsLmJ1dHRvbnMgPiAuYnV0dG9uIHtcbiAgaGVpZ2h0OiAyMCU7XG59XG4udWkuc2l4LnZlcnRpY2FsLmJ1dHRvbnMgPiAuYnV0dG9uIHtcbiAgaGVpZ2h0OiAxNi42NjYlO1xufVxuLnVpLnNldmVuLnZlcnRpY2FsLmJ1dHRvbnMgPiAuYnV0dG9uIHtcbiAgaGVpZ2h0OiAxNC4yODUlO1xufVxuLnVpLmVpZ2h0LnZlcnRpY2FsLmJ1dHRvbnMgPiAuYnV0dG9uIHtcbiAgaGVpZ2h0OiAxMi41JTtcbn1cbi51aS5uaW5lLnZlcnRpY2FsLmJ1dHRvbnMgPiAuYnV0dG9uIHtcbiAgaGVpZ2h0OiAxMS4xMSU7XG59XG4udWkudGVuLnZlcnRpY2FsLmJ1dHRvbnMgPiAuYnV0dG9uIHtcbiAgaGVpZ2h0OiAxMCU7XG59XG4udWkuZWxldmVuLnZlcnRpY2FsLmJ1dHRvbnMgPiAuYnV0dG9uIHtcbiAgaGVpZ2h0OiA5LjA5JTtcbn1cbi51aS50d2VsdmUudmVydGljYWwuYnV0dG9ucyA+IC5idXR0b24ge1xuICBoZWlnaHQ6IDguMzMzMyU7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tIEJsYWNrIC0tLSovXG4udWkuYmxhY2suYnV0dG9ucyAuYnV0dG9uLFxuLnVpLmJsYWNrLmJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDAwMDA7XG4gIGNvbG9yOiAjZmZmZmZmO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbiAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbn1cbi51aS5ibGFjay5idXR0b24ge1xuICBib3gtc2hhZG93OiAwcHggMGVtIDBweCAwcHggcmdiYSgzNCwgMzYsIDM4LCAwLjE1KSBpbnNldDtcbn1cbi51aS5ibGFjay5idXR0b25zIC5idXR0b246aG92ZXIsXG4udWkuYmxhY2suYnV0dG9uOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzBkMGQwZDtcbiAgY29sb3I6ICNmZmZmZmY7XG4gIHRleHQtc2hhZG93OiBub25lO1xufVxuLnVpLmJsYWNrLmJ1dHRvbnMgLmJ1dHRvbjpmb2N1cyxcbi51aS5ibGFjay5idXR0b246Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTQxNDE0O1xuICBjb2xvcjogI2ZmZmZmZjtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG59XG4udWkuYmxhY2suYnV0dG9ucyAuYnV0dG9uOmFjdGl2ZSxcbi51aS5ibGFjay5idXR0b246YWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzFhMWExYTtcbiAgY29sb3I6ICNmZmZmZmY7XG4gIHRleHQtc2hhZG93OiBub25lO1xufVxuLnVpLmJsYWNrLmJ1dHRvbnMgLmFjdGl2ZS5idXR0b24sXG4udWkuYmxhY2suYnV0dG9ucyAuYWN0aXZlLmJ1dHRvbjphY3RpdmUsXG4udWkuYmxhY2suYWN0aXZlLmJ1dHRvbixcbi51aS5ibGFjay5idXR0b24gLmFjdGl2ZS5idXR0b246YWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDAwMDtcbiAgY29sb3I6ICNmZmZmZmY7XG4gIHRleHQtc2hhZG93OiBub25lO1xufVxuLyogQmFzaWMgKi9cbi51aS5iYXNpYy5ibGFjay5idXR0b25zIC5idXR0b24sXG4udWkuYmFzaWMuYmxhY2suYnV0dG9uIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICMwMDAwMDAgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICMwMDAwMDAgIWltcG9ydGFudDtcbn1cbi51aS5iYXNpYy5ibGFjay5idXR0b25zIC5idXR0b246aG92ZXIsXG4udWkuYmFzaWMuYmxhY2suYnV0dG9uOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICMwZDBkMGQgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICMwZDBkMGQgIWltcG9ydGFudDtcbn1cbi51aS5iYXNpYy5ibGFjay5idXR0b25zIC5idXR0b246Zm9jdXMsXG4udWkuYmFzaWMuYmxhY2suYnV0dG9uOmZvY3VzIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICMxNDE0MTQgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICMwZDBkMGQgIWltcG9ydGFudDtcbn1cbi51aS5iYXNpYy5ibGFjay5idXR0b25zIC5hY3RpdmUuYnV0dG9uLFxuLnVpLmJhc2ljLmJsYWNrLmFjdGl2ZS5idXR0b24ge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggIzAwMDAwMCBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogIzFhMWExYSAhaW1wb3J0YW50O1xufVxuLnVpLmJhc2ljLmJsYWNrLmJ1dHRvbnMgLmJ1dHRvbjphY3RpdmUsXG4udWkuYmFzaWMuYmxhY2suYnV0dG9uOmFjdGl2ZSB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjMWExYTFhIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjMWExYTFhICFpbXBvcnRhbnQ7XG59XG4udWkuYnV0dG9uczpub3QoLnZlcnRpY2FsKSA+IC5iYXNpYy5ibGFjay5idXR0b246bm90KDpmaXJzdC1jaGlsZCkge1xuICBtYXJnaW4tbGVmdDogLTFweDtcbn1cbi8qIEludmVydGVkICovXG4udWkuaW52ZXJ0ZWQuYmxhY2suYnV0dG9ucyAuYnV0dG9uLFxuLnVpLmludmVydGVkLmJsYWNrLmJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAycHggI0Q0RDRENSBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogI2ZmZmZmZjtcbn1cbi51aS5pbnZlcnRlZC5ibGFjay5idXR0b25zIC5idXR0b246aG92ZXIsXG4udWkuaW52ZXJ0ZWQuYmxhY2suYnV0dG9uOmhvdmVyLFxuLnVpLmludmVydGVkLmJsYWNrLmJ1dHRvbnMgLmJ1dHRvbjpmb2N1cyxcbi51aS5pbnZlcnRlZC5ibGFjay5idXR0b246Zm9jdXMsXG4udWkuaW52ZXJ0ZWQuYmxhY2suYnV0dG9ucyAuYnV0dG9uLmFjdGl2ZSxcbi51aS5pbnZlcnRlZC5ibGFjay5idXR0b24uYWN0aXZlLFxuLnVpLmludmVydGVkLmJsYWNrLmJ1dHRvbnMgLmJ1dHRvbjphY3RpdmUsXG4udWkuaW52ZXJ0ZWQuYmxhY2suYnV0dG9uOmFjdGl2ZSB7XG4gIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgY29sb3I6ICNmZmZmZmY7XG59XG4udWkuaW52ZXJ0ZWQuYmxhY2suYnV0dG9ucyAuYnV0dG9uOmhvdmVyLFxuLnVpLmludmVydGVkLmJsYWNrLmJ1dHRvbjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDAwMDA7XG59XG4udWkuaW52ZXJ0ZWQuYmxhY2suYnV0dG9ucyAuYnV0dG9uOmZvY3VzLFxuLnVpLmludmVydGVkLmJsYWNrLmJ1dHRvbjpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDAwMDA7XG59XG4udWkuaW52ZXJ0ZWQuYmxhY2suYnV0dG9ucyAuYWN0aXZlLmJ1dHRvbixcbi51aS5pbnZlcnRlZC5ibGFjay5hY3RpdmUuYnV0dG9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDAwMDtcbn1cbi51aS5pbnZlcnRlZC5ibGFjay5idXR0b25zIC5idXR0b246YWN0aXZlLFxuLnVpLmludmVydGVkLmJsYWNrLmJ1dHRvbjphY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwMDAwO1xufVxuLyogSW52ZXJ0ZWQgQmFzaWMgKi9cbi51aS5pbnZlcnRlZC5ibGFjay5iYXNpYy5idXR0b25zIC5idXR0b24sXG4udWkuaW52ZXJ0ZWQuYmxhY2suYnV0dG9ucyAuYmFzaWMuYnV0dG9uLFxuLnVpLmludmVydGVkLmJsYWNrLmJhc2ljLmJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAycHggcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG59XG4udWkuaW52ZXJ0ZWQuYmxhY2suYmFzaWMuYnV0dG9ucyAuYnV0dG9uOmhvdmVyLFxuLnVpLmludmVydGVkLmJsYWNrLmJ1dHRvbnMgLmJhc2ljLmJ1dHRvbjpob3Zlcixcbi51aS5pbnZlcnRlZC5ibGFjay5iYXNpYy5idXR0b246aG92ZXIge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAycHggIzAwMDAwMCBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xufVxuLnVpLmludmVydGVkLmJsYWNrLmJhc2ljLmJ1dHRvbnMgLmJ1dHRvbjpmb2N1cyxcbi51aS5pbnZlcnRlZC5ibGFjay5iYXNpYy5idXR0b25zIC5idXR0b246Zm9jdXMsXG4udWkuaW52ZXJ0ZWQuYmxhY2suYmFzaWMuYnV0dG9uOmZvY3VzIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMnB4ICMwMDAwMDAgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICM1NDU0NTQgIWltcG9ydGFudDtcbn1cbi51aS5pbnZlcnRlZC5ibGFjay5iYXNpYy5idXR0b25zIC5hY3RpdmUuYnV0dG9uLFxuLnVpLmludmVydGVkLmJsYWNrLmJ1dHRvbnMgLmJhc2ljLmFjdGl2ZS5idXR0b24sXG4udWkuaW52ZXJ0ZWQuYmxhY2suYmFzaWMuYWN0aXZlLmJ1dHRvbiB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDJweCAjMDAwMDAwIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG59XG4udWkuaW52ZXJ0ZWQuYmxhY2suYmFzaWMuYnV0dG9ucyAuYnV0dG9uOmFjdGl2ZSxcbi51aS5pbnZlcnRlZC5ibGFjay5idXR0b25zIC5iYXNpYy5idXR0b246YWN0aXZlLFxuLnVpLmludmVydGVkLmJsYWNrLmJhc2ljLmJ1dHRvbjphY3RpdmUge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAycHggIzAwMDAwMCBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xufVxuLyotLS0gR3JleSAtLS0qL1xuLnVpLmdyZXkuYnV0dG9ucyAuYnV0dG9uLFxuLnVpLmdyZXkuYnV0dG9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzc2NzY3NjtcbiAgY29sb3I6ICNmZmZmZmY7XG4gIHRleHQtc2hhZG93OiBub25lO1xuICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xufVxuLnVpLmdyZXkuYnV0dG9uIHtcbiAgYm94LXNoYWRvdzogMHB4IDBlbSAwcHggMHB4IHJnYmEoMzQsIDM2LCAzOCwgMC4xNSkgaW5zZXQ7XG59XG4udWkuZ3JleS5idXR0b25zIC5idXR0b246aG92ZXIsXG4udWkuZ3JleS5idXR0b246aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjODM4MzgzO1xuICBjb2xvcjogI2ZmZmZmZjtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG59XG4udWkuZ3JleS5idXR0b25zIC5idXR0b246Zm9jdXMsXG4udWkuZ3JleS5idXR0b246Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOGE4YThhO1xuICBjb2xvcjogI2ZmZmZmZjtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG59XG4udWkuZ3JleS5idXR0b25zIC5idXR0b246YWN0aXZlLFxuLnVpLmdyZXkuYnV0dG9uOmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM5MDkwOTA7XG4gIGNvbG9yOiAjZmZmZmZmO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbn1cbi51aS5ncmV5LmJ1dHRvbnMgLmFjdGl2ZS5idXR0b24sXG4udWkuZ3JleS5idXR0b25zIC5hY3RpdmUuYnV0dG9uOmFjdGl2ZSxcbi51aS5ncmV5LmFjdGl2ZS5idXR0b24sXG4udWkuZ3JleS5idXR0b24gLmFjdGl2ZS5idXR0b246YWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzY5Njk2OTtcbiAgY29sb3I6ICNmZmZmZmY7XG4gIHRleHQtc2hhZG93OiBub25lO1xufVxuLyogQmFzaWMgKi9cbi51aS5iYXNpYy5ncmV5LmJ1dHRvbnMgLmJ1dHRvbixcbi51aS5iYXNpYy5ncmV5LmJ1dHRvbiB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjNzY3Njc2IGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjNzY3Njc2ICFpbXBvcnRhbnQ7XG59XG4udWkuYmFzaWMuZ3JleS5idXR0b25zIC5idXR0b246aG92ZXIsXG4udWkuYmFzaWMuZ3JleS5idXR0b246aG92ZXIge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggIzgzODM4MyBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogIzgzODM4MyAhaW1wb3J0YW50O1xufVxuLnVpLmJhc2ljLmdyZXkuYnV0dG9ucyAuYnV0dG9uOmZvY3VzLFxuLnVpLmJhc2ljLmdyZXkuYnV0dG9uOmZvY3VzIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICM4YThhOGEgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICM4MzgzODMgIWltcG9ydGFudDtcbn1cbi51aS5iYXNpYy5ncmV5LmJ1dHRvbnMgLmFjdGl2ZS5idXR0b24sXG4udWkuYmFzaWMuZ3JleS5hY3RpdmUuYnV0dG9uIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICM2OTY5NjkgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICM5MDkwOTAgIWltcG9ydGFudDtcbn1cbi51aS5iYXNpYy5ncmV5LmJ1dHRvbnMgLmJ1dHRvbjphY3RpdmUsXG4udWkuYmFzaWMuZ3JleS5idXR0b246YWN0aXZlIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICM5MDkwOTAgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICM5MDkwOTAgIWltcG9ydGFudDtcbn1cbi51aS5idXR0b25zOm5vdCgudmVydGljYWwpID4gLmJhc2ljLmdyZXkuYnV0dG9uOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgbWFyZ2luLWxlZnQ6IC0xcHg7XG59XG4vKiBJbnZlcnRlZCAqL1xuLnVpLmludmVydGVkLmdyZXkuYnV0dG9ucyAuYnV0dG9uLFxuLnVpLmludmVydGVkLmdyZXkuYnV0dG9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDJweCAjRDRENEQ1IGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjZmZmZmZmO1xufVxuLnVpLmludmVydGVkLmdyZXkuYnV0dG9ucyAuYnV0dG9uOmhvdmVyLFxuLnVpLmludmVydGVkLmdyZXkuYnV0dG9uOmhvdmVyLFxuLnVpLmludmVydGVkLmdyZXkuYnV0dG9ucyAuYnV0dG9uOmZvY3VzLFxuLnVpLmludmVydGVkLmdyZXkuYnV0dG9uOmZvY3VzLFxuLnVpLmludmVydGVkLmdyZXkuYnV0dG9ucyAuYnV0dG9uLmFjdGl2ZSxcbi51aS5pbnZlcnRlZC5ncmV5LmJ1dHRvbi5hY3RpdmUsXG4udWkuaW52ZXJ0ZWQuZ3JleS5idXR0b25zIC5idXR0b246YWN0aXZlLFxuLnVpLmludmVydGVkLmdyZXkuYnV0dG9uOmFjdGl2ZSB7XG4gIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC42KTtcbn1cbi51aS5pbnZlcnRlZC5ncmV5LmJ1dHRvbnMgLmJ1dHRvbjpob3Zlcixcbi51aS5pbnZlcnRlZC5ncmV5LmJ1dHRvbjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNjZmQwZDI7XG59XG4udWkuaW52ZXJ0ZWQuZ3JleS5idXR0b25zIC5idXR0b246Zm9jdXMsXG4udWkuaW52ZXJ0ZWQuZ3JleS5idXR0b246Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYzdjOWNiO1xufVxuLnVpLmludmVydGVkLmdyZXkuYnV0dG9ucyAuYWN0aXZlLmJ1dHRvbixcbi51aS5pbnZlcnRlZC5ncmV5LmFjdGl2ZS5idXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2ZkMGQyO1xufVxuLnVpLmludmVydGVkLmdyZXkuYnV0dG9ucyAuYnV0dG9uOmFjdGl2ZSxcbi51aS5pbnZlcnRlZC5ncmV5LmJ1dHRvbjphY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYzJjNGM1O1xufVxuLyogSW52ZXJ0ZWQgQmFzaWMgKi9cbi51aS5pbnZlcnRlZC5ncmV5LmJhc2ljLmJ1dHRvbnMgLmJ1dHRvbixcbi51aS5pbnZlcnRlZC5ncmV5LmJ1dHRvbnMgLmJhc2ljLmJ1dHRvbixcbi51aS5pbnZlcnRlZC5ncmV5LmJhc2ljLmJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAycHggcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG59XG4udWkuaW52ZXJ0ZWQuZ3JleS5iYXNpYy5idXR0b25zIC5idXR0b246aG92ZXIsXG4udWkuaW52ZXJ0ZWQuZ3JleS5idXR0b25zIC5iYXNpYy5idXR0b246aG92ZXIsXG4udWkuaW52ZXJ0ZWQuZ3JleS5iYXNpYy5idXR0b246aG92ZXIge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAycHggI2NmZDBkMiBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xufVxuLnVpLmludmVydGVkLmdyZXkuYmFzaWMuYnV0dG9ucyAuYnV0dG9uOmZvY3VzLFxuLnVpLmludmVydGVkLmdyZXkuYmFzaWMuYnV0dG9ucyAuYnV0dG9uOmZvY3VzLFxuLnVpLmludmVydGVkLmdyZXkuYmFzaWMuYnV0dG9uOmZvY3VzIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMnB4ICNjN2M5Y2IgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICNEQ0REREUgIWltcG9ydGFudDtcbn1cbi51aS5pbnZlcnRlZC5ncmV5LmJhc2ljLmJ1dHRvbnMgLmFjdGl2ZS5idXR0b24sXG4udWkuaW52ZXJ0ZWQuZ3JleS5idXR0b25zIC5iYXNpYy5hY3RpdmUuYnV0dG9uLFxuLnVpLmludmVydGVkLmdyZXkuYmFzaWMuYWN0aXZlLmJ1dHRvbiB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDJweCAjY2ZkMGQyIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG59XG4udWkuaW52ZXJ0ZWQuZ3JleS5iYXNpYy5idXR0b25zIC5idXR0b246YWN0aXZlLFxuLnVpLmludmVydGVkLmdyZXkuYnV0dG9ucyAuYmFzaWMuYnV0dG9uOmFjdGl2ZSxcbi51aS5pbnZlcnRlZC5ncmV5LmJhc2ljLmJ1dHRvbjphY3RpdmUge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAycHggI2MyYzRjNSBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xufVxuLyotLS0gQnJvd24gLS0tKi9cbi51aS5icm93bi5idXR0b25zIC5idXR0b24sXG4udWkuYnJvd24uYnV0dG9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0E1NjczRjtcbiAgY29sb3I6ICNmZmZmZmY7XG4gIHRleHQtc2hhZG93OiBub25lO1xuICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xufVxuLnVpLmJyb3duLmJ1dHRvbiB7XG4gIGJveC1zaGFkb3c6IDBweCAwZW0gMHB4IDBweCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpIGluc2V0O1xufVxuLnVpLmJyb3duLmJ1dHRvbnMgLmJ1dHRvbjpob3Zlcixcbi51aS5icm93bi5idXR0b246aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOTc1YjMzO1xuICBjb2xvcjogI2ZmZmZmZjtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG59XG4udWkuYnJvd24uYnV0dG9ucyAuYnV0dG9uOmZvY3VzLFxuLnVpLmJyb3duLmJ1dHRvbjpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM5MDUzMmI7XG4gIGNvbG9yOiAjZmZmZmZmO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbn1cbi51aS5icm93bi5idXR0b25zIC5idXR0b246YWN0aXZlLFxuLnVpLmJyb3duLmJ1dHRvbjphY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjODA1MDMxO1xuICBjb2xvcjogI2ZmZmZmZjtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG59XG4udWkuYnJvd24uYnV0dG9ucyAuYWN0aXZlLmJ1dHRvbixcbi51aS5icm93bi5idXR0b25zIC5hY3RpdmUuYnV0dG9uOmFjdGl2ZSxcbi51aS5icm93bi5hY3RpdmUuYnV0dG9uLFxuLnVpLmJyb3duLmJ1dHRvbiAuYWN0aXZlLmJ1dHRvbjphY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOTk1YTMxO1xuICBjb2xvcjogI2ZmZmZmZjtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG59XG4vKiBCYXNpYyAqL1xuLnVpLmJhc2ljLmJyb3duLmJ1dHRvbnMgLmJ1dHRvbixcbi51aS5iYXNpYy5icm93bi5idXR0b24ge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggI0E1NjczRiBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogI0E1NjczRiAhaW1wb3J0YW50O1xufVxuLnVpLmJhc2ljLmJyb3duLmJ1dHRvbnMgLmJ1dHRvbjpob3Zlcixcbi51aS5iYXNpYy5icm93bi5idXR0b246aG92ZXIge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggIzk3NWIzMyBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogIzk3NWIzMyAhaW1wb3J0YW50O1xufVxuLnVpLmJhc2ljLmJyb3duLmJ1dHRvbnMgLmJ1dHRvbjpmb2N1cyxcbi51aS5iYXNpYy5icm93bi5idXR0b246Zm9jdXMge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggIzkwNTMyYiBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogIzk3NWIzMyAhaW1wb3J0YW50O1xufVxuLnVpLmJhc2ljLmJyb3duLmJ1dHRvbnMgLmFjdGl2ZS5idXR0b24sXG4udWkuYmFzaWMuYnJvd24uYWN0aXZlLmJ1dHRvbiB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjOTk1YTMxIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjODA1MDMxICFpbXBvcnRhbnQ7XG59XG4udWkuYmFzaWMuYnJvd24uYnV0dG9ucyAuYnV0dG9uOmFjdGl2ZSxcbi51aS5iYXNpYy5icm93bi5idXR0b246YWN0aXZlIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICM4MDUwMzEgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICM4MDUwMzEgIWltcG9ydGFudDtcbn1cbi51aS5idXR0b25zOm5vdCgudmVydGljYWwpID4gLmJhc2ljLmJyb3duLmJ1dHRvbjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gIG1hcmdpbi1sZWZ0OiAtMXB4O1xufVxuLyogSW52ZXJ0ZWQgKi9cbi51aS5pbnZlcnRlZC5icm93bi5idXR0b25zIC5idXR0b24sXG4udWkuaW52ZXJ0ZWQuYnJvd24uYnV0dG9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDJweCAjRDY3QzFDIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRDY3QzFDO1xufVxuLnVpLmludmVydGVkLmJyb3duLmJ1dHRvbnMgLmJ1dHRvbjpob3Zlcixcbi51aS5pbnZlcnRlZC5icm93bi5idXR0b246aG92ZXIsXG4udWkuaW52ZXJ0ZWQuYnJvd24uYnV0dG9ucyAuYnV0dG9uOmZvY3VzLFxuLnVpLmludmVydGVkLmJyb3duLmJ1dHRvbjpmb2N1cyxcbi51aS5pbnZlcnRlZC5icm93bi5idXR0b25zIC5idXR0b24uYWN0aXZlLFxuLnVpLmludmVydGVkLmJyb3duLmJ1dHRvbi5hY3RpdmUsXG4udWkuaW52ZXJ0ZWQuYnJvd24uYnV0dG9ucyAuYnV0dG9uOmFjdGl2ZSxcbi51aS5pbnZlcnRlZC5icm93bi5idXR0b246YWN0aXZlIHtcbiAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICBjb2xvcjogI2ZmZmZmZjtcbn1cbi51aS5pbnZlcnRlZC5icm93bi5idXR0b25zIC5idXR0b246aG92ZXIsXG4udWkuaW52ZXJ0ZWQuYnJvd24uYnV0dG9uOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2M4NmYxMTtcbn1cbi51aS5pbnZlcnRlZC5icm93bi5idXR0b25zIC5idXR0b246Zm9jdXMsXG4udWkuaW52ZXJ0ZWQuYnJvd24uYnV0dG9uOmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2MxNjgwODtcbn1cbi51aS5pbnZlcnRlZC5icm93bi5idXR0b25zIC5hY3RpdmUuYnV0dG9uLFxuLnVpLmludmVydGVkLmJyb3duLmFjdGl2ZS5idXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2M2ZjBkO1xufVxuLnVpLmludmVydGVkLmJyb3duLmJ1dHRvbnMgLmJ1dHRvbjphY3RpdmUsXG4udWkuaW52ZXJ0ZWQuYnJvd24uYnV0dG9uOmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNhOTYyMTY7XG59XG4vKiBJbnZlcnRlZCBCYXNpYyAqL1xuLnVpLmludmVydGVkLmJyb3duLmJhc2ljLmJ1dHRvbnMgLmJ1dHRvbixcbi51aS5pbnZlcnRlZC5icm93bi5idXR0b25zIC5iYXNpYy5idXR0b24sXG4udWkuaW52ZXJ0ZWQuYnJvd24uYmFzaWMuYnV0dG9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDJweCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSkgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcbn1cbi51aS5pbnZlcnRlZC5icm93bi5iYXNpYy5idXR0b25zIC5idXR0b246aG92ZXIsXG4udWkuaW52ZXJ0ZWQuYnJvd24uYnV0dG9ucyAuYmFzaWMuYnV0dG9uOmhvdmVyLFxuLnVpLmludmVydGVkLmJyb3duLmJhc2ljLmJ1dHRvbjpob3ZlciB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDJweCAjYzg2ZjExIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRDY3QzFDICFpbXBvcnRhbnQ7XG59XG4udWkuaW52ZXJ0ZWQuYnJvd24uYmFzaWMuYnV0dG9ucyAuYnV0dG9uOmZvY3VzLFxuLnVpLmludmVydGVkLmJyb3duLmJhc2ljLmJ1dHRvbnMgLmJ1dHRvbjpmb2N1cyxcbi51aS5pbnZlcnRlZC5icm93bi5iYXNpYy5idXR0b246Zm9jdXMge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAycHggI2MxNjgwOCBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogI0Q2N0MxQyAhaW1wb3J0YW50O1xufVxuLnVpLmludmVydGVkLmJyb3duLmJhc2ljLmJ1dHRvbnMgLmFjdGl2ZS5idXR0b24sXG4udWkuaW52ZXJ0ZWQuYnJvd24uYnV0dG9ucyAuYmFzaWMuYWN0aXZlLmJ1dHRvbixcbi51aS5pbnZlcnRlZC5icm93bi5iYXNpYy5hY3RpdmUuYnV0dG9uIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMnB4ICNjYzZmMGQgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICNENjdDMUMgIWltcG9ydGFudDtcbn1cbi51aS5pbnZlcnRlZC5icm93bi5iYXNpYy5idXR0b25zIC5idXR0b246YWN0aXZlLFxuLnVpLmludmVydGVkLmJyb3duLmJ1dHRvbnMgLmJhc2ljLmJ1dHRvbjphY3RpdmUsXG4udWkuaW52ZXJ0ZWQuYnJvd24uYmFzaWMuYnV0dG9uOmFjdGl2ZSB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDJweCAjYTk2MjE2IGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRDY3QzFDICFpbXBvcnRhbnQ7XG59XG4vKi0tLSBCbHVlIC0tLSovXG4udWkuYmx1ZS5idXR0b25zIC5idXR0b24sXG4udWkuYmx1ZS5idXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjM2Y1MWI1O1xuICBjb2xvcjogI2ZmZmZmZjtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG4gIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG59XG4udWkuYmx1ZS5idXR0b24ge1xuICBib3gtc2hhZG93OiAwcHggMGVtIDBweCAwcHggcmdiYSgzNCwgMzYsIDM4LCAwLjE1KSBpbnNldDtcbn1cbi51aS5ibHVlLmJ1dHRvbnMgLmJ1dHRvbjpob3Zlcixcbi51aS5ibHVlLmJ1dHRvbjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzMzQ1YTc7XG4gIGNvbG9yOiAjZmZmZmZmO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbn1cbi51aS5ibHVlLmJ1dHRvbnMgLmJ1dHRvbjpmb2N1cyxcbi51aS5ibHVlLmJ1dHRvbjpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyYjNkYTE7XG4gIGNvbG9yOiAjZmZmZmZmO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbn1cbi51aS5ibHVlLmJ1dHRvbnMgLmJ1dHRvbjphY3RpdmUsXG4udWkuYmx1ZS5idXR0b246YWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzMyNDA4ZjtcbiAgY29sb3I6ICNmZmZmZmY7XG4gIHRleHQtc2hhZG93OiBub25lO1xufVxuLnVpLmJsdWUuYnV0dG9ucyAuYWN0aXZlLmJ1dHRvbixcbi51aS5ibHVlLmJ1dHRvbnMgLmFjdGl2ZS5idXR0b246YWN0aXZlLFxuLnVpLmJsdWUuYWN0aXZlLmJ1dHRvbixcbi51aS5ibHVlLmJ1dHRvbiAuYWN0aXZlLmJ1dHRvbjphY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzA0M2FhO1xuICBjb2xvcjogI2ZmZmZmZjtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG59XG4vKiBCYXNpYyAqL1xuLnVpLmJhc2ljLmJsdWUuYnV0dG9ucyAuYnV0dG9uLFxuLnVpLmJhc2ljLmJsdWUuYnV0dG9uIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICMzZjUxYjUgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICMzZjUxYjUgIWltcG9ydGFudDtcbn1cbi51aS5iYXNpYy5ibHVlLmJ1dHRvbnMgLmJ1dHRvbjpob3Zlcixcbi51aS5iYXNpYy5ibHVlLmJ1dHRvbjpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjMzM0NWE3IGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjMzM0NWE3ICFpbXBvcnRhbnQ7XG59XG4udWkuYmFzaWMuYmx1ZS5idXR0b25zIC5idXR0b246Zm9jdXMsXG4udWkuYmFzaWMuYmx1ZS5idXR0b246Zm9jdXMge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggIzJiM2RhMSBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogIzMzNDVhNyAhaW1wb3J0YW50O1xufVxuLnVpLmJhc2ljLmJsdWUuYnV0dG9ucyAuYWN0aXZlLmJ1dHRvbixcbi51aS5iYXNpYy5ibHVlLmFjdGl2ZS5idXR0b24ge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggIzMwNDNhYSBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogIzMyNDA4ZiAhaW1wb3J0YW50O1xufVxuLnVpLmJhc2ljLmJsdWUuYnV0dG9ucyAuYnV0dG9uOmFjdGl2ZSxcbi51aS5iYXNpYy5ibHVlLmJ1dHRvbjphY3RpdmUge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggIzMyNDA4ZiBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogIzMyNDA4ZiAhaW1wb3J0YW50O1xufVxuLnVpLmJ1dHRvbnM6bm90KC52ZXJ0aWNhbCkgPiAuYmFzaWMuYmx1ZS5idXR0b246bm90KDpmaXJzdC1jaGlsZCkge1xuICBtYXJnaW4tbGVmdDogLTFweDtcbn1cbi8qIEludmVydGVkICovXG4udWkuaW52ZXJ0ZWQuYmx1ZS5idXR0b25zIC5idXR0b24sXG4udWkuaW52ZXJ0ZWQuYmx1ZS5idXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMnB4ICM1NEM4RkYgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICM1NEM4RkY7XG59XG4udWkuaW52ZXJ0ZWQuYmx1ZS5idXR0b25zIC5idXR0b246aG92ZXIsXG4udWkuaW52ZXJ0ZWQuYmx1ZS5idXR0b246aG92ZXIsXG4udWkuaW52ZXJ0ZWQuYmx1ZS5idXR0b25zIC5idXR0b246Zm9jdXMsXG4udWkuaW52ZXJ0ZWQuYmx1ZS5idXR0b246Zm9jdXMsXG4udWkuaW52ZXJ0ZWQuYmx1ZS5idXR0b25zIC5idXR0b24uYWN0aXZlLFxuLnVpLmludmVydGVkLmJsdWUuYnV0dG9uLmFjdGl2ZSxcbi51aS5pbnZlcnRlZC5ibHVlLmJ1dHRvbnMgLmJ1dHRvbjphY3RpdmUsXG4udWkuaW52ZXJ0ZWQuYmx1ZS5idXR0b246YWN0aXZlIHtcbiAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICBjb2xvcjogI2ZmZmZmZjtcbn1cbi51aS5pbnZlcnRlZC5ibHVlLmJ1dHRvbnMgLmJ1dHRvbjpob3Zlcixcbi51aS5pbnZlcnRlZC5ibHVlLmJ1dHRvbjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzYWMwZmY7XG59XG4udWkuaW52ZXJ0ZWQuYmx1ZS5idXR0b25zIC5idXR0b246Zm9jdXMsXG4udWkuaW52ZXJ0ZWQuYmx1ZS5idXR0b246Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMmJiYmZmO1xufVxuLnVpLmludmVydGVkLmJsdWUuYnV0dG9ucyAuYWN0aXZlLmJ1dHRvbixcbi51aS5pbnZlcnRlZC5ibHVlLmFjdGl2ZS5idXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjM2FjMGZmO1xufVxuLnVpLmludmVydGVkLmJsdWUuYnV0dG9ucyAuYnV0dG9uOmFjdGl2ZSxcbi51aS5pbnZlcnRlZC5ibHVlLmJ1dHRvbjphY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjFiOGZmO1xufVxuLyogSW52ZXJ0ZWQgQmFzaWMgKi9cbi51aS5pbnZlcnRlZC5ibHVlLmJhc2ljLmJ1dHRvbnMgLmJ1dHRvbixcbi51aS5pbnZlcnRlZC5ibHVlLmJ1dHRvbnMgLmJhc2ljLmJ1dHRvbixcbi51aS5pbnZlcnRlZC5ibHVlLmJhc2ljLmJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAycHggcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG59XG4udWkuaW52ZXJ0ZWQuYmx1ZS5iYXNpYy5idXR0b25zIC5idXR0b246aG92ZXIsXG4udWkuaW52ZXJ0ZWQuYmx1ZS5idXR0b25zIC5iYXNpYy5idXR0b246aG92ZXIsXG4udWkuaW52ZXJ0ZWQuYmx1ZS5iYXNpYy5idXR0b246aG92ZXIge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAycHggIzNhYzBmZiBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogIzU0QzhGRiAhaW1wb3J0YW50O1xufVxuLnVpLmludmVydGVkLmJsdWUuYmFzaWMuYnV0dG9ucyAuYnV0dG9uOmZvY3VzLFxuLnVpLmludmVydGVkLmJsdWUuYmFzaWMuYnV0dG9ucyAuYnV0dG9uOmZvY3VzLFxuLnVpLmludmVydGVkLmJsdWUuYmFzaWMuYnV0dG9uOmZvY3VzIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMnB4ICMyYmJiZmYgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICM1NEM4RkYgIWltcG9ydGFudDtcbn1cbi51aS5pbnZlcnRlZC5ibHVlLmJhc2ljLmJ1dHRvbnMgLmFjdGl2ZS5idXR0b24sXG4udWkuaW52ZXJ0ZWQuYmx1ZS5idXR0b25zIC5iYXNpYy5hY3RpdmUuYnV0dG9uLFxuLnVpLmludmVydGVkLmJsdWUuYmFzaWMuYWN0aXZlLmJ1dHRvbiB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDJweCAjM2FjMGZmIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjNTRDOEZGICFpbXBvcnRhbnQ7XG59XG4udWkuaW52ZXJ0ZWQuYmx1ZS5iYXNpYy5idXR0b25zIC5idXR0b246YWN0aXZlLFxuLnVpLmludmVydGVkLmJsdWUuYnV0dG9ucyAuYmFzaWMuYnV0dG9uOmFjdGl2ZSxcbi51aS5pbnZlcnRlZC5ibHVlLmJhc2ljLmJ1dHRvbjphY3RpdmUge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAycHggIzIxYjhmZiBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogIzU0QzhGRiAhaW1wb3J0YW50O1xufVxuLyotLS0gR3JlZW4gLS0tKi9cbi51aS5ncmVlbi5idXR0b25zIC5idXR0b24sXG4udWkuZ3JlZW4uYnV0dG9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzE5YTUzMTtcbiAgY29sb3I6ICNmZmZmZmY7XG4gIHRleHQtc2hhZG93OiBub25lO1xuICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xufVxuLnVpLmdyZWVuLmJ1dHRvbiB7XG4gIGJveC1zaGFkb3c6IDBweCAwZW0gMHB4IDBweCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpIGluc2V0O1xufVxuLnVpLmdyZWVuLmJ1dHRvbnMgLmJ1dHRvbjpob3Zlcixcbi51aS5ncmVlbi5idXR0b246aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTA5NTI2O1xuICBjb2xvcjogI2ZmZmZmZjtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG59XG4udWkuZ3JlZW4uYnV0dG9ucyAuYnV0dG9uOmZvY3VzLFxuLnVpLmdyZWVuLmJ1dHRvbjpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwOThkMWY7XG4gIGNvbG9yOiAjZmZmZmZmO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbn1cbi51aS5ncmVlbi5idXR0b25zIC5idXR0b246YWN0aXZlLFxuLnVpLmdyZWVuLmJ1dHRvbjphY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTI3OTI0O1xuICBjb2xvcjogI2ZmZmZmZjtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG59XG4udWkuZ3JlZW4uYnV0dG9ucyAuYWN0aXZlLmJ1dHRvbixcbi51aS5ncmVlbi5idXR0b25zIC5hY3RpdmUuYnV0dG9uOmFjdGl2ZSxcbi51aS5ncmVlbi5hY3RpdmUuYnV0dG9uLFxuLnVpLmdyZWVuLmJ1dHRvbiAuYWN0aXZlLmJ1dHRvbjphY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMGQ5ODI0O1xuICBjb2xvcjogI2ZmZmZmZjtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG59XG4vKiBCYXNpYyAqL1xuLnVpLmJhc2ljLmdyZWVuLmJ1dHRvbnMgLmJ1dHRvbixcbi51aS5iYXNpYy5ncmVlbi5idXR0b24ge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggIzE5YTUzMSBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogIzE5YTUzMSAhaW1wb3J0YW50O1xufVxuLnVpLmJhc2ljLmdyZWVuLmJ1dHRvbnMgLmJ1dHRvbjpob3Zlcixcbi51aS5iYXNpYy5ncmVlbi5idXR0b246aG92ZXIge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggIzEwOTUyNiBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogIzEwOTUyNiAhaW1wb3J0YW50O1xufVxuLnVpLmJhc2ljLmdyZWVuLmJ1dHRvbnMgLmJ1dHRvbjpmb2N1cyxcbi51aS5iYXNpYy5ncmVlbi5idXR0b246Zm9jdXMge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggIzA5OGQxZiBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogIzEwOTUyNiAhaW1wb3J0YW50O1xufVxuLnVpLmJhc2ljLmdyZWVuLmJ1dHRvbnMgLmFjdGl2ZS5idXR0b24sXG4udWkuYmFzaWMuZ3JlZW4uYWN0aXZlLmJ1dHRvbiB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjMGQ5ODI0IGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjMTI3OTI0ICFpbXBvcnRhbnQ7XG59XG4udWkuYmFzaWMuZ3JlZW4uYnV0dG9ucyAuYnV0dG9uOmFjdGl2ZSxcbi51aS5iYXNpYy5ncmVlbi5idXR0b246YWN0aXZlIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICMxMjc5MjQgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICMxMjc5MjQgIWltcG9ydGFudDtcbn1cbi51aS5idXR0b25zOm5vdCgudmVydGljYWwpID4gLmJhc2ljLmdyZWVuLmJ1dHRvbjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gIG1hcmdpbi1sZWZ0OiAtMXB4O1xufVxuLyogSW52ZXJ0ZWQgKi9cbi51aS5pbnZlcnRlZC5ncmVlbi5idXR0b25zIC5idXR0b24sXG4udWkuaW52ZXJ0ZWQuZ3JlZW4uYnV0dG9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDJweCAjMkVDQzQwIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjMkVDQzQwO1xufVxuLnVpLmludmVydGVkLmdyZWVuLmJ1dHRvbnMgLmJ1dHRvbjpob3Zlcixcbi51aS5pbnZlcnRlZC5ncmVlbi5idXR0b246aG92ZXIsXG4udWkuaW52ZXJ0ZWQuZ3JlZW4uYnV0dG9ucyAuYnV0dG9uOmZvY3VzLFxuLnVpLmludmVydGVkLmdyZWVuLmJ1dHRvbjpmb2N1cyxcbi51aS5pbnZlcnRlZC5ncmVlbi5idXR0b25zIC5idXR0b24uYWN0aXZlLFxuLnVpLmludmVydGVkLmdyZWVuLmJ1dHRvbi5hY3RpdmUsXG4udWkuaW52ZXJ0ZWQuZ3JlZW4uYnV0dG9ucyAuYnV0dG9uOmFjdGl2ZSxcbi51aS5pbnZlcnRlZC5ncmVlbi5idXR0b246YWN0aXZlIHtcbiAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICBjb2xvcjogI2ZmZmZmZjtcbn1cbi51aS5pbnZlcnRlZC5ncmVlbi5idXR0b25zIC5idXR0b246aG92ZXIsXG4udWkuaW52ZXJ0ZWQuZ3JlZW4uYnV0dG9uOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzIyYmUzNDtcbn1cbi51aS5pbnZlcnRlZC5ncmVlbi5idXR0b25zIC5idXR0b246Zm9jdXMsXG4udWkuaW52ZXJ0ZWQuZ3JlZW4uYnV0dG9uOmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzE5YjgyYjtcbn1cbi51aS5pbnZlcnRlZC5ncmVlbi5idXR0b25zIC5hY3RpdmUuYnV0dG9uLFxuLnVpLmludmVydGVkLmdyZWVuLmFjdGl2ZS5idXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMWZjMjMxO1xufVxuLnVpLmludmVydGVkLmdyZWVuLmJ1dHRvbnMgLmJ1dHRvbjphY3RpdmUsXG4udWkuaW52ZXJ0ZWQuZ3JlZW4uYnV0dG9uOmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyNWEyMzM7XG59XG4vKiBJbnZlcnRlZCBCYXNpYyAqL1xuLnVpLmludmVydGVkLmdyZWVuLmJhc2ljLmJ1dHRvbnMgLmJ1dHRvbixcbi51aS5pbnZlcnRlZC5ncmVlbi5idXR0b25zIC5iYXNpYy5idXR0b24sXG4udWkuaW52ZXJ0ZWQuZ3JlZW4uYmFzaWMuYnV0dG9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDJweCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSkgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcbn1cbi51aS5pbnZlcnRlZC5ncmVlbi5iYXNpYy5idXR0b25zIC5idXR0b246aG92ZXIsXG4udWkuaW52ZXJ0ZWQuZ3JlZW4uYnV0dG9ucyAuYmFzaWMuYnV0dG9uOmhvdmVyLFxuLnVpLmludmVydGVkLmdyZWVuLmJhc2ljLmJ1dHRvbjpob3ZlciB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDJweCAjMjJiZTM0IGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjMkVDQzQwICFpbXBvcnRhbnQ7XG59XG4udWkuaW52ZXJ0ZWQuZ3JlZW4uYmFzaWMuYnV0dG9ucyAuYnV0dG9uOmZvY3VzLFxuLnVpLmludmVydGVkLmdyZWVuLmJhc2ljLmJ1dHRvbnMgLmJ1dHRvbjpmb2N1cyxcbi51aS5pbnZlcnRlZC5ncmVlbi5iYXNpYy5idXR0b246Zm9jdXMge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAycHggIzE5YjgyYiBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogIzJFQ0M0MCAhaW1wb3J0YW50O1xufVxuLnVpLmludmVydGVkLmdyZWVuLmJhc2ljLmJ1dHRvbnMgLmFjdGl2ZS5idXR0b24sXG4udWkuaW52ZXJ0ZWQuZ3JlZW4uYnV0dG9ucyAuYmFzaWMuYWN0aXZlLmJ1dHRvbixcbi51aS5pbnZlcnRlZC5ncmVlbi5iYXNpYy5hY3RpdmUuYnV0dG9uIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMnB4ICMxZmMyMzEgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICMyRUNDNDAgIWltcG9ydGFudDtcbn1cbi51aS5pbnZlcnRlZC5ncmVlbi5iYXNpYy5idXR0b25zIC5idXR0b246YWN0aXZlLFxuLnVpLmludmVydGVkLmdyZWVuLmJ1dHRvbnMgLmJhc2ljLmJ1dHRvbjphY3RpdmUsXG4udWkuaW52ZXJ0ZWQuZ3JlZW4uYmFzaWMuYnV0dG9uOmFjdGl2ZSB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDJweCAjMjVhMjMzIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjMkVDQzQwICFpbXBvcnRhbnQ7XG59XG4vKi0tLSBPcmFuZ2UgLS0tKi9cbi51aS5vcmFuZ2UuYnV0dG9ucyAuYnV0dG9uLFxuLnVpLm9yYW5nZS5idXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmY5NTMzO1xuICBjb2xvcjogI2ZmZmZmZjtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG4gIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG59XG4udWkub3JhbmdlLmJ1dHRvbiB7XG4gIGJveC1zaGFkb3c6IDBweCAwZW0gMHB4IDBweCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpIGluc2V0O1xufVxuLnVpLm9yYW5nZS5idXR0b25zIC5idXR0b246aG92ZXIsXG4udWkub3JhbmdlLmJ1dHRvbjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZjg4MTk7XG4gIGNvbG9yOiAjZmZmZmZmO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbn1cbi51aS5vcmFuZ2UuYnV0dG9ucyAuYnV0dG9uOmZvY3VzLFxuLnVpLm9yYW5nZS5idXR0b246Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmY4MDBhO1xuICBjb2xvcjogI2ZmZmZmZjtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG59XG4udWkub3JhbmdlLmJ1dHRvbnMgLmJ1dHRvbjphY3RpdmUsXG4udWkub3JhbmdlLmJ1dHRvbjphY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmY3YjAwO1xuICBjb2xvcjogI2ZmZmZmZjtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG59XG4udWkub3JhbmdlLmJ1dHRvbnMgLmFjdGl2ZS5idXR0b24sXG4udWkub3JhbmdlLmJ1dHRvbnMgLmFjdGl2ZS5idXR0b246YWN0aXZlLFxuLnVpLm9yYW5nZS5hY3RpdmUuYnV0dG9uLFxuLnVpLm9yYW5nZS5idXR0b24gLmFjdGl2ZS5idXR0b246YWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmODgxOTtcbiAgY29sb3I6ICNmZmZmZmY7XG4gIHRleHQtc2hhZG93OiBub25lO1xufVxuLyogQmFzaWMgKi9cbi51aS5iYXNpYy5vcmFuZ2UuYnV0dG9ucyAuYnV0dG9uLFxuLnVpLmJhc2ljLm9yYW5nZS5idXR0b24ge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggI2ZmOTUzMyBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogI2ZmOTUzMyAhaW1wb3J0YW50O1xufVxuLnVpLmJhc2ljLm9yYW5nZS5idXR0b25zIC5idXR0b246aG92ZXIsXG4udWkuYmFzaWMub3JhbmdlLmJ1dHRvbjpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjZmY4ODE5IGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjZmY4ODE5ICFpbXBvcnRhbnQ7XG59XG4udWkuYmFzaWMub3JhbmdlLmJ1dHRvbnMgLmJ1dHRvbjpmb2N1cyxcbi51aS5iYXNpYy5vcmFuZ2UuYnV0dG9uOmZvY3VzIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICNmZjgwMGEgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICNmZjg4MTkgIWltcG9ydGFudDtcbn1cbi51aS5iYXNpYy5vcmFuZ2UuYnV0dG9ucyAuYWN0aXZlLmJ1dHRvbixcbi51aS5iYXNpYy5vcmFuZ2UuYWN0aXZlLmJ1dHRvbiB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjZmY4ODE5IGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjZmY3YjAwICFpbXBvcnRhbnQ7XG59XG4udWkuYmFzaWMub3JhbmdlLmJ1dHRvbnMgLmJ1dHRvbjphY3RpdmUsXG4udWkuYmFzaWMub3JhbmdlLmJ1dHRvbjphY3RpdmUge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggI2ZmN2IwMCBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogI2ZmN2IwMCAhaW1wb3J0YW50O1xufVxuLnVpLmJ1dHRvbnM6bm90KC52ZXJ0aWNhbCkgPiAuYmFzaWMub3JhbmdlLmJ1dHRvbjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gIG1hcmdpbi1sZWZ0OiAtMXB4O1xufVxuLyogSW52ZXJ0ZWQgKi9cbi51aS5pbnZlcnRlZC5vcmFuZ2UuYnV0dG9ucyAuYnV0dG9uLFxuLnVpLmludmVydGVkLm9yYW5nZS5idXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMnB4ICNGRjg1MUIgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICNGRjg1MUI7XG59XG4udWkuaW52ZXJ0ZWQub3JhbmdlLmJ1dHRvbnMgLmJ1dHRvbjpob3Zlcixcbi51aS5pbnZlcnRlZC5vcmFuZ2UuYnV0dG9uOmhvdmVyLFxuLnVpLmludmVydGVkLm9yYW5nZS5idXR0b25zIC5idXR0b246Zm9jdXMsXG4udWkuaW52ZXJ0ZWQub3JhbmdlLmJ1dHRvbjpmb2N1cyxcbi51aS5pbnZlcnRlZC5vcmFuZ2UuYnV0dG9ucyAuYnV0dG9uLmFjdGl2ZSxcbi51aS5pbnZlcnRlZC5vcmFuZ2UuYnV0dG9uLmFjdGl2ZSxcbi51aS5pbnZlcnRlZC5vcmFuZ2UuYnV0dG9ucyAuYnV0dG9uOmFjdGl2ZSxcbi51aS5pbnZlcnRlZC5vcmFuZ2UuYnV0dG9uOmFjdGl2ZSB7XG4gIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgY29sb3I6ICNmZmZmZmY7XG59XG4udWkuaW52ZXJ0ZWQub3JhbmdlLmJ1dHRvbnMgLmJ1dHRvbjpob3Zlcixcbi51aS5pbnZlcnRlZC5vcmFuZ2UuYnV0dG9uOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmNzcwMTtcbn1cbi51aS5pbnZlcnRlZC5vcmFuZ2UuYnV0dG9ucyAuYnV0dG9uOmZvY3VzLFxuLnVpLmludmVydGVkLm9yYW5nZS5idXR0b246Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjE3MDAwO1xufVxuLnVpLmludmVydGVkLm9yYW5nZS5idXR0b25zIC5hY3RpdmUuYnV0dG9uLFxuLnVpLmludmVydGVkLm9yYW5nZS5hY3RpdmUuYnV0dG9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmNzcwMTtcbn1cbi51aS5pbnZlcnRlZC5vcmFuZ2UuYnV0dG9ucyAuYnV0dG9uOmFjdGl2ZSxcbi51aS5pbnZlcnRlZC5vcmFuZ2UuYnV0dG9uOmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlNzZiMDA7XG59XG4vKiBJbnZlcnRlZCBCYXNpYyAqL1xuLnVpLmludmVydGVkLm9yYW5nZS5iYXNpYy5idXR0b25zIC5idXR0b24sXG4udWkuaW52ZXJ0ZWQub3JhbmdlLmJ1dHRvbnMgLmJhc2ljLmJ1dHRvbixcbi51aS5pbnZlcnRlZC5vcmFuZ2UuYmFzaWMuYnV0dG9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDJweCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSkgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcbn1cbi51aS5pbnZlcnRlZC5vcmFuZ2UuYmFzaWMuYnV0dG9ucyAuYnV0dG9uOmhvdmVyLFxuLnVpLmludmVydGVkLm9yYW5nZS5idXR0b25zIC5iYXNpYy5idXR0b246aG92ZXIsXG4udWkuaW52ZXJ0ZWQub3JhbmdlLmJhc2ljLmJ1dHRvbjpob3ZlciB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDJweCAjZmY3NzAxIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRkY4NTFCICFpbXBvcnRhbnQ7XG59XG4udWkuaW52ZXJ0ZWQub3JhbmdlLmJhc2ljLmJ1dHRvbnMgLmJ1dHRvbjpmb2N1cyxcbi51aS5pbnZlcnRlZC5vcmFuZ2UuYmFzaWMuYnV0dG9ucyAuYnV0dG9uOmZvY3VzLFxuLnVpLmludmVydGVkLm9yYW5nZS5iYXNpYy5idXR0b246Zm9jdXMge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAycHggI2YxNzAwMCBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogI0ZGODUxQiAhaW1wb3J0YW50O1xufVxuLnVpLmludmVydGVkLm9yYW5nZS5iYXNpYy5idXR0b25zIC5hY3RpdmUuYnV0dG9uLFxuLnVpLmludmVydGVkLm9yYW5nZS5idXR0b25zIC5iYXNpYy5hY3RpdmUuYnV0dG9uLFxuLnVpLmludmVydGVkLm9yYW5nZS5iYXNpYy5hY3RpdmUuYnV0dG9uIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMnB4ICNmZjc3MDEgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICNGRjg1MUIgIWltcG9ydGFudDtcbn1cbi51aS5pbnZlcnRlZC5vcmFuZ2UuYmFzaWMuYnV0dG9ucyAuYnV0dG9uOmFjdGl2ZSxcbi51aS5pbnZlcnRlZC5vcmFuZ2UuYnV0dG9ucyAuYmFzaWMuYnV0dG9uOmFjdGl2ZSxcbi51aS5pbnZlcnRlZC5vcmFuZ2UuYmFzaWMuYnV0dG9uOmFjdGl2ZSB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDJweCAjZTc2YjAwIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRkY4NTFCICFpbXBvcnRhbnQ7XG59XG4vKi0tLSBQaW5rIC0tLSovXG4udWkucGluay5idXR0b25zIC5idXR0b24sXG4udWkucGluay5idXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRTAzOTk3O1xuICBjb2xvcjogI2ZmZmZmZjtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG4gIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG59XG4udWkucGluay5idXR0b24ge1xuICBib3gtc2hhZG93OiAwcHggMGVtIDBweCAwcHggcmdiYSgzNCwgMzYsIDM4LCAwLjE1KSBpbnNldDtcbn1cbi51aS5waW5rLmJ1dHRvbnMgLmJ1dHRvbjpob3Zlcixcbi51aS5waW5rLmJ1dHRvbjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlNjFhOGQ7XG4gIGNvbG9yOiAjZmZmZmZmO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbn1cbi51aS5waW5rLmJ1dHRvbnMgLmJ1dHRvbjpmb2N1cyxcbi51aS5waW5rLmJ1dHRvbjpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlMTBmODU7XG4gIGNvbG9yOiAjZmZmZmZmO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbn1cbi51aS5waW5rLmJ1dHRvbnMgLmJ1dHRvbjphY3RpdmUsXG4udWkucGluay5idXR0b246YWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2M3MWY3ZTtcbiAgY29sb3I6ICNmZmZmZmY7XG4gIHRleHQtc2hhZG93OiBub25lO1xufVxuLnVpLnBpbmsuYnV0dG9ucyAuYWN0aXZlLmJ1dHRvbixcbi51aS5waW5rLmJ1dHRvbnMgLmFjdGl2ZS5idXR0b246YWN0aXZlLFxuLnVpLnBpbmsuYWN0aXZlLmJ1dHRvbixcbi51aS5waW5rLmJ1dHRvbiAuYWN0aXZlLmJ1dHRvbjphY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWExNThkO1xuICBjb2xvcjogI2ZmZmZmZjtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG59XG4vKiBCYXNpYyAqL1xuLnVpLmJhc2ljLnBpbmsuYnV0dG9ucyAuYnV0dG9uLFxuLnVpLmJhc2ljLnBpbmsuYnV0dG9uIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICNFMDM5OTcgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICNFMDM5OTcgIWltcG9ydGFudDtcbn1cbi51aS5iYXNpYy5waW5rLmJ1dHRvbnMgLmJ1dHRvbjpob3Zlcixcbi51aS5iYXNpYy5waW5rLmJ1dHRvbjpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjZTYxYThkIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjZTYxYThkICFpbXBvcnRhbnQ7XG59XG4udWkuYmFzaWMucGluay5idXR0b25zIC5idXR0b246Zm9jdXMsXG4udWkuYmFzaWMucGluay5idXR0b246Zm9jdXMge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggI2UxMGY4NSBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogI2U2MWE4ZCAhaW1wb3J0YW50O1xufVxuLnVpLmJhc2ljLnBpbmsuYnV0dG9ucyAuYWN0aXZlLmJ1dHRvbixcbi51aS5iYXNpYy5waW5rLmFjdGl2ZS5idXR0b24ge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggI2VhMTU4ZCBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogI2M3MWY3ZSAhaW1wb3J0YW50O1xufVxuLnVpLmJhc2ljLnBpbmsuYnV0dG9ucyAuYnV0dG9uOmFjdGl2ZSxcbi51aS5iYXNpYy5waW5rLmJ1dHRvbjphY3RpdmUge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggI2M3MWY3ZSBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogI2M3MWY3ZSAhaW1wb3J0YW50O1xufVxuLnVpLmJ1dHRvbnM6bm90KC52ZXJ0aWNhbCkgPiAuYmFzaWMucGluay5idXR0b246bm90KDpmaXJzdC1jaGlsZCkge1xuICBtYXJnaW4tbGVmdDogLTFweDtcbn1cbi8qIEludmVydGVkICovXG4udWkuaW52ZXJ0ZWQucGluay5idXR0b25zIC5idXR0b24sXG4udWkuaW52ZXJ0ZWQucGluay5idXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMnB4ICNGRjhFREYgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICNGRjhFREY7XG59XG4udWkuaW52ZXJ0ZWQucGluay5idXR0b25zIC5idXR0b246aG92ZXIsXG4udWkuaW52ZXJ0ZWQucGluay5idXR0b246aG92ZXIsXG4udWkuaW52ZXJ0ZWQucGluay5idXR0b25zIC5idXR0b246Zm9jdXMsXG4udWkuaW52ZXJ0ZWQucGluay5idXR0b246Zm9jdXMsXG4udWkuaW52ZXJ0ZWQucGluay5idXR0b25zIC5idXR0b24uYWN0aXZlLFxuLnVpLmludmVydGVkLnBpbmsuYnV0dG9uLmFjdGl2ZSxcbi51aS5pbnZlcnRlZC5waW5rLmJ1dHRvbnMgLmJ1dHRvbjphY3RpdmUsXG4udWkuaW52ZXJ0ZWQucGluay5idXR0b246YWN0aXZlIHtcbiAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICBjb2xvcjogI2ZmZmZmZjtcbn1cbi51aS5pbnZlcnRlZC5waW5rLmJ1dHRvbnMgLmJ1dHRvbjpob3Zlcixcbi51aS5pbnZlcnRlZC5waW5rLmJ1dHRvbjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZjc0ZDg7XG59XG4udWkuaW52ZXJ0ZWQucGluay5idXR0b25zIC5idXR0b246Zm9jdXMsXG4udWkuaW52ZXJ0ZWQucGluay5idXR0b246Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmY2NWQzO1xufVxuLnVpLmludmVydGVkLnBpbmsuYnV0dG9ucyAuYWN0aXZlLmJ1dHRvbixcbi51aS5pbnZlcnRlZC5waW5rLmFjdGl2ZS5idXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmY3NGQ4O1xufVxuLnVpLmludmVydGVkLnBpbmsuYnV0dG9ucyAuYnV0dG9uOmFjdGl2ZSxcbi51aS5pbnZlcnRlZC5waW5rLmJ1dHRvbjphY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmY1YmQxO1xufVxuLyogSW52ZXJ0ZWQgQmFzaWMgKi9cbi51aS5pbnZlcnRlZC5waW5rLmJhc2ljLmJ1dHRvbnMgLmJ1dHRvbixcbi51aS5pbnZlcnRlZC5waW5rLmJ1dHRvbnMgLmJhc2ljLmJ1dHRvbixcbi51aS5pbnZlcnRlZC5waW5rLmJhc2ljLmJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAycHggcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG59XG4udWkuaW52ZXJ0ZWQucGluay5iYXNpYy5idXR0b25zIC5idXR0b246aG92ZXIsXG4udWkuaW52ZXJ0ZWQucGluay5idXR0b25zIC5iYXNpYy5idXR0b246aG92ZXIsXG4udWkuaW52ZXJ0ZWQucGluay5iYXNpYy5idXR0b246aG92ZXIge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAycHggI2ZmNzRkOCBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogI0ZGOEVERiAhaW1wb3J0YW50O1xufVxuLnVpLmludmVydGVkLnBpbmsuYmFzaWMuYnV0dG9ucyAuYnV0dG9uOmZvY3VzLFxuLnVpLmludmVydGVkLnBpbmsuYmFzaWMuYnV0dG9ucyAuYnV0dG9uOmZvY3VzLFxuLnVpLmludmVydGVkLnBpbmsuYmFzaWMuYnV0dG9uOmZvY3VzIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMnB4ICNmZjY1ZDMgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICNGRjhFREYgIWltcG9ydGFudDtcbn1cbi51aS5pbnZlcnRlZC5waW5rLmJhc2ljLmJ1dHRvbnMgLmFjdGl2ZS5idXR0b24sXG4udWkuaW52ZXJ0ZWQucGluay5idXR0b25zIC5iYXNpYy5hY3RpdmUuYnV0dG9uLFxuLnVpLmludmVydGVkLnBpbmsuYmFzaWMuYWN0aXZlLmJ1dHRvbiB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDJweCAjZmY3NGQ4IGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRkY4RURGICFpbXBvcnRhbnQ7XG59XG4udWkuaW52ZXJ0ZWQucGluay5iYXNpYy5idXR0b25zIC5idXR0b246YWN0aXZlLFxuLnVpLmludmVydGVkLnBpbmsuYnV0dG9ucyAuYmFzaWMuYnV0dG9uOmFjdGl2ZSxcbi51aS5pbnZlcnRlZC5waW5rLmJhc2ljLmJ1dHRvbjphY3RpdmUge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAycHggI2ZmNWJkMSBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogI0ZGOEVERiAhaW1wb3J0YW50O1xufVxuLyotLS0gVmlvbGV0IC0tLSovXG4udWkudmlvbGV0LmJ1dHRvbnMgLmJ1dHRvbixcbi51aS52aW9sZXQuYnV0dG9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzY0MzVDOTtcbiAgY29sb3I6ICNmZmZmZmY7XG4gIHRleHQtc2hhZG93OiBub25lO1xuICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xufVxuLnVpLnZpb2xldC5idXR0b24ge1xuICBib3gtc2hhZG93OiAwcHggMGVtIDBweCAwcHggcmdiYSgzNCwgMzYsIDM4LCAwLjE1KSBpbnNldDtcbn1cbi51aS52aW9sZXQuYnV0dG9ucyAuYnV0dG9uOmhvdmVyLFxuLnVpLnZpb2xldC5idXR0b246aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTgyOWJiO1xuICBjb2xvcjogI2ZmZmZmZjtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG59XG4udWkudmlvbGV0LmJ1dHRvbnMgLmJ1dHRvbjpmb2N1cyxcbi51aS52aW9sZXQuYnV0dG9uOmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzRmMjBiNTtcbiAgY29sb3I6ICNmZmZmZmY7XG4gIHRleHQtc2hhZG93OiBub25lO1xufVxuLnVpLnZpb2xldC5idXR0b25zIC5idXR0b246YWN0aXZlLFxuLnVpLnZpb2xldC5idXR0b246YWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzUwMmFhMTtcbiAgY29sb3I6ICNmZmZmZmY7XG4gIHRleHQtc2hhZG93OiBub25lO1xufVxuLnVpLnZpb2xldC5idXR0b25zIC5hY3RpdmUuYnV0dG9uLFxuLnVpLnZpb2xldC5idXR0b25zIC5hY3RpdmUuYnV0dG9uOmFjdGl2ZSxcbi51aS52aW9sZXQuYWN0aXZlLmJ1dHRvbixcbi51aS52aW9sZXQuYnV0dG9uIC5hY3RpdmUuYnV0dG9uOmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM1NjI2YmY7XG4gIGNvbG9yOiAjZmZmZmZmO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbn1cbi8qIEJhc2ljICovXG4udWkuYmFzaWMudmlvbGV0LmJ1dHRvbnMgLmJ1dHRvbixcbi51aS5iYXNpYy52aW9sZXQuYnV0dG9uIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICM2NDM1QzkgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICM2NDM1QzkgIWltcG9ydGFudDtcbn1cbi51aS5iYXNpYy52aW9sZXQuYnV0dG9ucyAuYnV0dG9uOmhvdmVyLFxuLnVpLmJhc2ljLnZpb2xldC5idXR0b246aG92ZXIge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggIzU4MjliYiBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogIzU4MjliYiAhaW1wb3J0YW50O1xufVxuLnVpLmJhc2ljLnZpb2xldC5idXR0b25zIC5idXR0b246Zm9jdXMsXG4udWkuYmFzaWMudmlvbGV0LmJ1dHRvbjpmb2N1cyB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjNGYyMGI1IGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjNTgyOWJiICFpbXBvcnRhbnQ7XG59XG4udWkuYmFzaWMudmlvbGV0LmJ1dHRvbnMgLmFjdGl2ZS5idXR0b24sXG4udWkuYmFzaWMudmlvbGV0LmFjdGl2ZS5idXR0b24ge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggIzU2MjZiZiBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogIzUwMmFhMSAhaW1wb3J0YW50O1xufVxuLnVpLmJhc2ljLnZpb2xldC5idXR0b25zIC5idXR0b246YWN0aXZlLFxuLnVpLmJhc2ljLnZpb2xldC5idXR0b246YWN0aXZlIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICM1MDJhYTEgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICM1MDJhYTEgIWltcG9ydGFudDtcbn1cbi51aS5idXR0b25zOm5vdCgudmVydGljYWwpID4gLmJhc2ljLnZpb2xldC5idXR0b246bm90KDpmaXJzdC1jaGlsZCkge1xuICBtYXJnaW4tbGVmdDogLTFweDtcbn1cbi8qIEludmVydGVkICovXG4udWkuaW52ZXJ0ZWQudmlvbGV0LmJ1dHRvbnMgLmJ1dHRvbixcbi51aS5pbnZlcnRlZC52aW9sZXQuYnV0dG9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDJweCAjQTI5MUZCIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjQTI5MUZCO1xufVxuLnVpLmludmVydGVkLnZpb2xldC5idXR0b25zIC5idXR0b246aG92ZXIsXG4udWkuaW52ZXJ0ZWQudmlvbGV0LmJ1dHRvbjpob3Zlcixcbi51aS5pbnZlcnRlZC52aW9sZXQuYnV0dG9ucyAuYnV0dG9uOmZvY3VzLFxuLnVpLmludmVydGVkLnZpb2xldC5idXR0b246Zm9jdXMsXG4udWkuaW52ZXJ0ZWQudmlvbGV0LmJ1dHRvbnMgLmJ1dHRvbi5hY3RpdmUsXG4udWkuaW52ZXJ0ZWQudmlvbGV0LmJ1dHRvbi5hY3RpdmUsXG4udWkuaW52ZXJ0ZWQudmlvbGV0LmJ1dHRvbnMgLmJ1dHRvbjphY3RpdmUsXG4udWkuaW52ZXJ0ZWQudmlvbGV0LmJ1dHRvbjphY3RpdmUge1xuICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjZmZmZmZmO1xufVxuLnVpLmludmVydGVkLnZpb2xldC5idXR0b25zIC5idXR0b246aG92ZXIsXG4udWkuaW52ZXJ0ZWQudmlvbGV0LmJ1dHRvbjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM4YTczZmY7XG59XG4udWkuaW52ZXJ0ZWQudmlvbGV0LmJ1dHRvbnMgLmJ1dHRvbjpmb2N1cyxcbi51aS5pbnZlcnRlZC52aW9sZXQuYnV0dG9uOmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzdkNjRmZjtcbn1cbi51aS5pbnZlcnRlZC52aW9sZXQuYnV0dG9ucyAuYWN0aXZlLmJ1dHRvbixcbi51aS5pbnZlcnRlZC52aW9sZXQuYWN0aXZlLmJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM4YTczZmY7XG59XG4udWkuaW52ZXJ0ZWQudmlvbGV0LmJ1dHRvbnMgLmJ1dHRvbjphY3RpdmUsXG4udWkuaW52ZXJ0ZWQudmlvbGV0LmJ1dHRvbjphY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNzg2MGY5O1xufVxuLyogSW52ZXJ0ZWQgQmFzaWMgKi9cbi51aS5pbnZlcnRlZC52aW9sZXQuYmFzaWMuYnV0dG9ucyAuYnV0dG9uLFxuLnVpLmludmVydGVkLnZpb2xldC5idXR0b25zIC5iYXNpYy5idXR0b24sXG4udWkuaW52ZXJ0ZWQudmlvbGV0LmJhc2ljLmJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAycHggcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG59XG4udWkuaW52ZXJ0ZWQudmlvbGV0LmJhc2ljLmJ1dHRvbnMgLmJ1dHRvbjpob3Zlcixcbi51aS5pbnZlcnRlZC52aW9sZXQuYnV0dG9ucyAuYmFzaWMuYnV0dG9uOmhvdmVyLFxuLnVpLmludmVydGVkLnZpb2xldC5iYXNpYy5idXR0b246aG92ZXIge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAycHggIzhhNzNmZiBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogI0EyOTFGQiAhaW1wb3J0YW50O1xufVxuLnVpLmludmVydGVkLnZpb2xldC5iYXNpYy5idXR0b25zIC5idXR0b246Zm9jdXMsXG4udWkuaW52ZXJ0ZWQudmlvbGV0LmJhc2ljLmJ1dHRvbnMgLmJ1dHRvbjpmb2N1cyxcbi51aS5pbnZlcnRlZC52aW9sZXQuYmFzaWMuYnV0dG9uOmZvY3VzIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMnB4ICM3ZDY0ZmYgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICNBMjkxRkIgIWltcG9ydGFudDtcbn1cbi51aS5pbnZlcnRlZC52aW9sZXQuYmFzaWMuYnV0dG9ucyAuYWN0aXZlLmJ1dHRvbixcbi51aS5pbnZlcnRlZC52aW9sZXQuYnV0dG9ucyAuYmFzaWMuYWN0aXZlLmJ1dHRvbixcbi51aS5pbnZlcnRlZC52aW9sZXQuYmFzaWMuYWN0aXZlLmJ1dHRvbiB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDJweCAjOGE3M2ZmIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjQTI5MUZCICFpbXBvcnRhbnQ7XG59XG4udWkuaW52ZXJ0ZWQudmlvbGV0LmJhc2ljLmJ1dHRvbnMgLmJ1dHRvbjphY3RpdmUsXG4udWkuaW52ZXJ0ZWQudmlvbGV0LmJ1dHRvbnMgLmJhc2ljLmJ1dHRvbjphY3RpdmUsXG4udWkuaW52ZXJ0ZWQudmlvbGV0LmJhc2ljLmJ1dHRvbjphY3RpdmUge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAycHggIzc4NjBmOSBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogI0EyOTFGQiAhaW1wb3J0YW50O1xufVxuLyotLS0gUHVycGxlIC0tLSovXG4udWkucHVycGxlLmJ1dHRvbnMgLmJ1dHRvbixcbi51aS5wdXJwbGUuYnV0dG9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0EzMzNDODtcbiAgY29sb3I6ICNmZmZmZmY7XG4gIHRleHQtc2hhZG93OiBub25lO1xuICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xufVxuLnVpLnB1cnBsZS5idXR0b24ge1xuICBib3gtc2hhZG93OiAwcHggMGVtIDBweCAwcHggcmdiYSgzNCwgMzYsIDM4LCAwLjE1KSBpbnNldDtcbn1cbi51aS5wdXJwbGUuYnV0dG9ucyAuYnV0dG9uOmhvdmVyLFxuLnVpLnB1cnBsZS5idXR0b246aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOTYyN2JhO1xuICBjb2xvcjogI2ZmZmZmZjtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG59XG4udWkucHVycGxlLmJ1dHRvbnMgLmJ1dHRvbjpmb2N1cyxcbi51aS5wdXJwbGUuYnV0dG9uOmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzhmMWViNDtcbiAgY29sb3I6ICNmZmZmZmY7XG4gIHRleHQtc2hhZG93OiBub25lO1xufVxuLnVpLnB1cnBsZS5idXR0b25zIC5idXR0b246YWN0aXZlLFxuLnVpLnB1cnBsZS5idXR0b246YWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzgyMjk5ZjtcbiAgY29sb3I6ICNmZmZmZmY7XG4gIHRleHQtc2hhZG93OiBub25lO1xufVxuLnVpLnB1cnBsZS5idXR0b25zIC5hY3RpdmUuYnV0dG9uLFxuLnVpLnB1cnBsZS5idXR0b25zIC5hY3RpdmUuYnV0dG9uOmFjdGl2ZSxcbi51aS5wdXJwbGUuYWN0aXZlLmJ1dHRvbixcbi51aS5wdXJwbGUuYnV0dG9uIC5hY3RpdmUuYnV0dG9uOmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM5NzI0YmU7XG4gIGNvbG9yOiAjZmZmZmZmO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbn1cbi8qIEJhc2ljICovXG4udWkuYmFzaWMucHVycGxlLmJ1dHRvbnMgLmJ1dHRvbixcbi51aS5iYXNpYy5wdXJwbGUuYnV0dG9uIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICNBMzMzQzggaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICNBMzMzQzggIWltcG9ydGFudDtcbn1cbi51aS5iYXNpYy5wdXJwbGUuYnV0dG9ucyAuYnV0dG9uOmhvdmVyLFxuLnVpLmJhc2ljLnB1cnBsZS5idXR0b246aG92ZXIge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggIzk2MjdiYSBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogIzk2MjdiYSAhaW1wb3J0YW50O1xufVxuLnVpLmJhc2ljLnB1cnBsZS5idXR0b25zIC5idXR0b246Zm9jdXMsXG4udWkuYmFzaWMucHVycGxlLmJ1dHRvbjpmb2N1cyB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjOGYxZWI0IGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjOTYyN2JhICFpbXBvcnRhbnQ7XG59XG4udWkuYmFzaWMucHVycGxlLmJ1dHRvbnMgLmFjdGl2ZS5idXR0b24sXG4udWkuYmFzaWMucHVycGxlLmFjdGl2ZS5idXR0b24ge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggIzk3MjRiZSBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogIzgyMjk5ZiAhaW1wb3J0YW50O1xufVxuLnVpLmJhc2ljLnB1cnBsZS5idXR0b25zIC5idXR0b246YWN0aXZlLFxuLnVpLmJhc2ljLnB1cnBsZS5idXR0b246YWN0aXZlIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICM4MjI5OWYgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICM4MjI5OWYgIWltcG9ydGFudDtcbn1cbi51aS5idXR0b25zOm5vdCgudmVydGljYWwpID4gLmJhc2ljLnB1cnBsZS5idXR0b246bm90KDpmaXJzdC1jaGlsZCkge1xuICBtYXJnaW4tbGVmdDogLTFweDtcbn1cbi8qIEludmVydGVkICovXG4udWkuaW52ZXJ0ZWQucHVycGxlLmJ1dHRvbnMgLmJ1dHRvbixcbi51aS5pbnZlcnRlZC5wdXJwbGUuYnV0dG9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDJweCAjREM3M0ZGIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjREM3M0ZGO1xufVxuLnVpLmludmVydGVkLnB1cnBsZS5idXR0b25zIC5idXR0b246aG92ZXIsXG4udWkuaW52ZXJ0ZWQucHVycGxlLmJ1dHRvbjpob3Zlcixcbi51aS5pbnZlcnRlZC5wdXJwbGUuYnV0dG9ucyAuYnV0dG9uOmZvY3VzLFxuLnVpLmludmVydGVkLnB1cnBsZS5idXR0b246Zm9jdXMsXG4udWkuaW52ZXJ0ZWQucHVycGxlLmJ1dHRvbnMgLmJ1dHRvbi5hY3RpdmUsXG4udWkuaW52ZXJ0ZWQucHVycGxlLmJ1dHRvbi5hY3RpdmUsXG4udWkuaW52ZXJ0ZWQucHVycGxlLmJ1dHRvbnMgLmJ1dHRvbjphY3RpdmUsXG4udWkuaW52ZXJ0ZWQucHVycGxlLmJ1dHRvbjphY3RpdmUge1xuICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjZmZmZmZmO1xufVxuLnVpLmludmVydGVkLnB1cnBsZS5idXR0b25zIC5idXR0b246aG92ZXIsXG4udWkuaW52ZXJ0ZWQucHVycGxlLmJ1dHRvbjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkNjVhZmY7XG59XG4udWkuaW52ZXJ0ZWQucHVycGxlLmJ1dHRvbnMgLmJ1dHRvbjpmb2N1cyxcbi51aS5pbnZlcnRlZC5wdXJwbGUuYnV0dG9uOmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2QyNGFmZjtcbn1cbi51aS5pbnZlcnRlZC5wdXJwbGUuYnV0dG9ucyAuYWN0aXZlLmJ1dHRvbixcbi51aS5pbnZlcnRlZC5wdXJwbGUuYWN0aXZlLmJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkNjVhZmY7XG59XG4udWkuaW52ZXJ0ZWQucHVycGxlLmJ1dHRvbnMgLmJ1dHRvbjphY3RpdmUsXG4udWkuaW52ZXJ0ZWQucHVycGxlLmJ1dHRvbjphY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2Y0MGZmO1xufVxuLyogSW52ZXJ0ZWQgQmFzaWMgKi9cbi51aS5pbnZlcnRlZC5wdXJwbGUuYmFzaWMuYnV0dG9ucyAuYnV0dG9uLFxuLnVpLmludmVydGVkLnB1cnBsZS5idXR0b25zIC5iYXNpYy5idXR0b24sXG4udWkuaW52ZXJ0ZWQucHVycGxlLmJhc2ljLmJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAycHggcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG59XG4udWkuaW52ZXJ0ZWQucHVycGxlLmJhc2ljLmJ1dHRvbnMgLmJ1dHRvbjpob3Zlcixcbi51aS5pbnZlcnRlZC5wdXJwbGUuYnV0dG9ucyAuYmFzaWMuYnV0dG9uOmhvdmVyLFxuLnVpLmludmVydGVkLnB1cnBsZS5iYXNpYy5idXR0b246aG92ZXIge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAycHggI2Q2NWFmZiBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogI0RDNzNGRiAhaW1wb3J0YW50O1xufVxuLnVpLmludmVydGVkLnB1cnBsZS5iYXNpYy5idXR0b25zIC5idXR0b246Zm9jdXMsXG4udWkuaW52ZXJ0ZWQucHVycGxlLmJhc2ljLmJ1dHRvbnMgLmJ1dHRvbjpmb2N1cyxcbi51aS5pbnZlcnRlZC5wdXJwbGUuYmFzaWMuYnV0dG9uOmZvY3VzIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMnB4ICNkMjRhZmYgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICNEQzczRkYgIWltcG9ydGFudDtcbn1cbi51aS5pbnZlcnRlZC5wdXJwbGUuYmFzaWMuYnV0dG9ucyAuYWN0aXZlLmJ1dHRvbixcbi51aS5pbnZlcnRlZC5wdXJwbGUuYnV0dG9ucyAuYmFzaWMuYWN0aXZlLmJ1dHRvbixcbi51aS5pbnZlcnRlZC5wdXJwbGUuYmFzaWMuYWN0aXZlLmJ1dHRvbiB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDJweCAjZDY1YWZmIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjREM3M0ZGICFpbXBvcnRhbnQ7XG59XG4udWkuaW52ZXJ0ZWQucHVycGxlLmJhc2ljLmJ1dHRvbnMgLmJ1dHRvbjphY3RpdmUsXG4udWkuaW52ZXJ0ZWQucHVycGxlLmJ1dHRvbnMgLmJhc2ljLmJ1dHRvbjphY3RpdmUsXG4udWkuaW52ZXJ0ZWQucHVycGxlLmJhc2ljLmJ1dHRvbjphY3RpdmUge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAycHggI2NmNDBmZiBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogI0RDNzNGRiAhaW1wb3J0YW50O1xufVxuLyotLS0gUmVkIC0tLSovXG4udWkucmVkLmJ1dHRvbnMgLmJ1dHRvbixcbi51aS5yZWQuYnV0dG9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2RlM2EzZTtcbiAgY29sb3I6ICNmZmZmZmY7XG4gIHRleHQtc2hhZG93OiBub25lO1xuICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xufVxuLnVpLnJlZC5idXR0b24ge1xuICBib3gtc2hhZG93OiAwcHggMGVtIDBweCAwcHggcmdiYSgzNCwgMzYsIDM4LCAwLjE1KSBpbnNldDtcbn1cbi51aS5yZWQuYnV0dG9ucyAuYnV0dG9uOmhvdmVyLFxuLnVpLnJlZC5idXR0b246aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTMxYjIwO1xuICBjb2xvcjogI2ZmZmZmZjtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG59XG4udWkucmVkLmJ1dHRvbnMgLmJ1dHRvbjpmb2N1cyxcbi51aS5yZWQuYnV0dG9uOmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2RlMTExNjtcbiAgY29sb3I6ICNmZmZmZmY7XG4gIHRleHQtc2hhZG93OiBub25lO1xufVxuLnVpLnJlZC5idXR0b25zIC5idXR0b246YWN0aXZlLFxuLnVpLnJlZC5idXR0b246YWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2M0MjEyNTtcbiAgY29sb3I6ICNmZmZmZmY7XG4gIHRleHQtc2hhZG93OiBub25lO1xufVxuLnVpLnJlZC5idXR0b25zIC5hY3RpdmUuYnV0dG9uLFxuLnVpLnJlZC5idXR0b25zIC5hY3RpdmUuYnV0dG9uOmFjdGl2ZSxcbi51aS5yZWQuYWN0aXZlLmJ1dHRvbixcbi51aS5yZWQuYnV0dG9uIC5hY3RpdmUuYnV0dG9uOmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlODE3MWM7XG4gIGNvbG9yOiAjZmZmZmZmO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbn1cbi8qIEJhc2ljICovXG4udWkuYmFzaWMucmVkLmJ1dHRvbnMgLmJ1dHRvbixcbi51aS5iYXNpYy5yZWQuYnV0dG9uIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICNkZTNhM2UgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICNkZTNhM2UgIWltcG9ydGFudDtcbn1cbi51aS5iYXNpYy5yZWQuYnV0dG9ucyAuYnV0dG9uOmhvdmVyLFxuLnVpLmJhc2ljLnJlZC5idXR0b246aG92ZXIge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggI2UzMWIyMCBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogI2UzMWIyMCAhaW1wb3J0YW50O1xufVxuLnVpLmJhc2ljLnJlZC5idXR0b25zIC5idXR0b246Zm9jdXMsXG4udWkuYmFzaWMucmVkLmJ1dHRvbjpmb2N1cyB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjZGUxMTE2IGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjZTMxYjIwICFpbXBvcnRhbnQ7XG59XG4udWkuYmFzaWMucmVkLmJ1dHRvbnMgLmFjdGl2ZS5idXR0b24sXG4udWkuYmFzaWMucmVkLmFjdGl2ZS5idXR0b24ge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggI2U4MTcxYyBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogI2M0MjEyNSAhaW1wb3J0YW50O1xufVxuLnVpLmJhc2ljLnJlZC5idXR0b25zIC5idXR0b246YWN0aXZlLFxuLnVpLmJhc2ljLnJlZC5idXR0b246YWN0aXZlIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICNjNDIxMjUgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICNjNDIxMjUgIWltcG9ydGFudDtcbn1cbi51aS5idXR0b25zOm5vdCgudmVydGljYWwpID4gLmJhc2ljLnJlZC5idXR0b246bm90KDpmaXJzdC1jaGlsZCkge1xuICBtYXJnaW4tbGVmdDogLTFweDtcbn1cbi8qIEludmVydGVkICovXG4udWkuaW52ZXJ0ZWQucmVkLmJ1dHRvbnMgLmJ1dHRvbixcbi51aS5pbnZlcnRlZC5yZWQuYnV0dG9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDJweCAjRkY2OTVFIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRkY2OTVFO1xufVxuLnVpLmludmVydGVkLnJlZC5idXR0b25zIC5idXR0b246aG92ZXIsXG4udWkuaW52ZXJ0ZWQucmVkLmJ1dHRvbjpob3Zlcixcbi51aS5pbnZlcnRlZC5yZWQuYnV0dG9ucyAuYnV0dG9uOmZvY3VzLFxuLnVpLmludmVydGVkLnJlZC5idXR0b246Zm9jdXMsXG4udWkuaW52ZXJ0ZWQucmVkLmJ1dHRvbnMgLmJ1dHRvbi5hY3RpdmUsXG4udWkuaW52ZXJ0ZWQucmVkLmJ1dHRvbi5hY3RpdmUsXG4udWkuaW52ZXJ0ZWQucmVkLmJ1dHRvbnMgLmJ1dHRvbjphY3RpdmUsXG4udWkuaW52ZXJ0ZWQucmVkLmJ1dHRvbjphY3RpdmUge1xuICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjZmZmZmZmO1xufVxuLnVpLmludmVydGVkLnJlZC5idXR0b25zIC5idXR0b246aG92ZXIsXG4udWkuaW52ZXJ0ZWQucmVkLmJ1dHRvbjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZjUxNDQ7XG59XG4udWkuaW52ZXJ0ZWQucmVkLmJ1dHRvbnMgLmJ1dHRvbjpmb2N1cyxcbi51aS5pbnZlcnRlZC5yZWQuYnV0dG9uOmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmNDMzNTtcbn1cbi51aS5pbnZlcnRlZC5yZWQuYnV0dG9ucyAuYWN0aXZlLmJ1dHRvbixcbi51aS5pbnZlcnRlZC5yZWQuYWN0aXZlLmJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZjUxNDQ7XG59XG4udWkuaW52ZXJ0ZWQucmVkLmJ1dHRvbnMgLmJ1dHRvbjphY3RpdmUsXG4udWkuaW52ZXJ0ZWQucmVkLmJ1dHRvbjphY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmYzOTJiO1xufVxuLyogSW52ZXJ0ZWQgQmFzaWMgKi9cbi51aS5pbnZlcnRlZC5yZWQuYmFzaWMuYnV0dG9ucyAuYnV0dG9uLFxuLnVpLmludmVydGVkLnJlZC5idXR0b25zIC5iYXNpYy5idXR0b24sXG4udWkuaW52ZXJ0ZWQucmVkLmJhc2ljLmJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAycHggcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG59XG4udWkuaW52ZXJ0ZWQucmVkLmJhc2ljLmJ1dHRvbnMgLmJ1dHRvbjpob3Zlcixcbi51aS5pbnZlcnRlZC5yZWQuYnV0dG9ucyAuYmFzaWMuYnV0dG9uOmhvdmVyLFxuLnVpLmludmVydGVkLnJlZC5iYXNpYy5idXR0b246aG92ZXIge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAycHggI2ZmNTE0NCBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogI0ZGNjk1RSAhaW1wb3J0YW50O1xufVxuLnVpLmludmVydGVkLnJlZC5iYXNpYy5idXR0b25zIC5idXR0b246Zm9jdXMsXG4udWkuaW52ZXJ0ZWQucmVkLmJhc2ljLmJ1dHRvbnMgLmJ1dHRvbjpmb2N1cyxcbi51aS5pbnZlcnRlZC5yZWQuYmFzaWMuYnV0dG9uOmZvY3VzIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMnB4ICNmZjQzMzUgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICNGRjY5NUUgIWltcG9ydGFudDtcbn1cbi51aS5pbnZlcnRlZC5yZWQuYmFzaWMuYnV0dG9ucyAuYWN0aXZlLmJ1dHRvbixcbi51aS5pbnZlcnRlZC5yZWQuYnV0dG9ucyAuYmFzaWMuYWN0aXZlLmJ1dHRvbixcbi51aS5pbnZlcnRlZC5yZWQuYmFzaWMuYWN0aXZlLmJ1dHRvbiB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDJweCAjZmY1MTQ0IGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRkY2OTVFICFpbXBvcnRhbnQ7XG59XG4udWkuaW52ZXJ0ZWQucmVkLmJhc2ljLmJ1dHRvbnMgLmJ1dHRvbjphY3RpdmUsXG4udWkuaW52ZXJ0ZWQucmVkLmJ1dHRvbnMgLmJhc2ljLmJ1dHRvbjphY3RpdmUsXG4udWkuaW52ZXJ0ZWQucmVkLmJhc2ljLmJ1dHRvbjphY3RpdmUge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAycHggI2ZmMzkyYiBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogI0ZGNjk1RSAhaW1wb3J0YW50O1xufVxuLyotLS0gVGVhbCAtLS0qL1xuLnVpLnRlYWwuYnV0dG9ucyAuYnV0dG9uLFxuLnVpLnRlYWwuYnV0dG9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwQjVBRDtcbiAgY29sb3I6ICNmZmZmZmY7XG4gIHRleHQtc2hhZG93OiBub25lO1xuICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xufVxuLnVpLnRlYWwuYnV0dG9uIHtcbiAgYm94LXNoYWRvdzogMHB4IDBlbSAwcHggMHB4IHJnYmEoMzQsIDM2LCAzOCwgMC4xNSkgaW5zZXQ7XG59XG4udWkudGVhbC5idXR0b25zIC5idXR0b246aG92ZXIsXG4udWkudGVhbC5idXR0b246aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA5Yzk1O1xuICBjb2xvcjogI2ZmZmZmZjtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG59XG4udWkudGVhbC5idXR0b25zIC5idXR0b246Zm9jdXMsXG4udWkudGVhbC5idXR0b246Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA4Yzg2O1xuICBjb2xvcjogI2ZmZmZmZjtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG59XG4udWkudGVhbC5idXR0b25zIC5idXR0b246YWN0aXZlLFxuLnVpLnRlYWwuYnV0dG9uOmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDgyN2M7XG4gIGNvbG9yOiAjZmZmZmZmO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbn1cbi51aS50ZWFsLmJ1dHRvbnMgLmFjdGl2ZS5idXR0b24sXG4udWkudGVhbC5idXR0b25zIC5hY3RpdmUuYnV0dG9uOmFjdGl2ZSxcbi51aS50ZWFsLmFjdGl2ZS5idXR0b24sXG4udWkudGVhbC5idXR0b24gLmFjdGl2ZS5idXR0b246YWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwOWM5NTtcbiAgY29sb3I6ICNmZmZmZmY7XG4gIHRleHQtc2hhZG93OiBub25lO1xufVxuLyogQmFzaWMgKi9cbi51aS5iYXNpYy50ZWFsLmJ1dHRvbnMgLmJ1dHRvbixcbi51aS5iYXNpYy50ZWFsLmJ1dHRvbiB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjMDBCNUFEIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjMDBCNUFEICFpbXBvcnRhbnQ7XG59XG4udWkuYmFzaWMudGVhbC5idXR0b25zIC5idXR0b246aG92ZXIsXG4udWkuYmFzaWMudGVhbC5idXR0b246aG92ZXIge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggIzAwOWM5NSBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogIzAwOWM5NSAhaW1wb3J0YW50O1xufVxuLnVpLmJhc2ljLnRlYWwuYnV0dG9ucyAuYnV0dG9uOmZvY3VzLFxuLnVpLmJhc2ljLnRlYWwuYnV0dG9uOmZvY3VzIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICMwMDhjODYgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICMwMDljOTUgIWltcG9ydGFudDtcbn1cbi51aS5iYXNpYy50ZWFsLmJ1dHRvbnMgLmFjdGl2ZS5idXR0b24sXG4udWkuYmFzaWMudGVhbC5hY3RpdmUuYnV0dG9uIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICMwMDljOTUgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICMwMDgyN2MgIWltcG9ydGFudDtcbn1cbi51aS5iYXNpYy50ZWFsLmJ1dHRvbnMgLmJ1dHRvbjphY3RpdmUsXG4udWkuYmFzaWMudGVhbC5idXR0b246YWN0aXZlIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICMwMDgyN2MgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICMwMDgyN2MgIWltcG9ydGFudDtcbn1cbi51aS5idXR0b25zOm5vdCgudmVydGljYWwpID4gLmJhc2ljLnRlYWwuYnV0dG9uOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgbWFyZ2luLWxlZnQ6IC0xcHg7XG59XG4vKiBJbnZlcnRlZCAqL1xuLnVpLmludmVydGVkLnRlYWwuYnV0dG9ucyAuYnV0dG9uLFxuLnVpLmludmVydGVkLnRlYWwuYnV0dG9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDJweCAjNkRGRkZGIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjNkRGRkZGO1xufVxuLnVpLmludmVydGVkLnRlYWwuYnV0dG9ucyAuYnV0dG9uOmhvdmVyLFxuLnVpLmludmVydGVkLnRlYWwuYnV0dG9uOmhvdmVyLFxuLnVpLmludmVydGVkLnRlYWwuYnV0dG9ucyAuYnV0dG9uOmZvY3VzLFxuLnVpLmludmVydGVkLnRlYWwuYnV0dG9uOmZvY3VzLFxuLnVpLmludmVydGVkLnRlYWwuYnV0dG9ucyAuYnV0dG9uLmFjdGl2ZSxcbi51aS5pbnZlcnRlZC50ZWFsLmJ1dHRvbi5hY3RpdmUsXG4udWkuaW52ZXJ0ZWQudGVhbC5idXR0b25zIC5idXR0b246YWN0aXZlLFxuLnVpLmludmVydGVkLnRlYWwuYnV0dG9uOmFjdGl2ZSB7XG4gIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC42KTtcbn1cbi51aS5pbnZlcnRlZC50ZWFsLmJ1dHRvbnMgLmJ1dHRvbjpob3Zlcixcbi51aS5pbnZlcnRlZC50ZWFsLmJ1dHRvbjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM1NGZmZmY7XG59XG4udWkuaW52ZXJ0ZWQudGVhbC5idXR0b25zIC5idXR0b246Zm9jdXMsXG4udWkuaW52ZXJ0ZWQudGVhbC5idXR0b246Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDRmZmZmO1xufVxuLnVpLmludmVydGVkLnRlYWwuYnV0dG9ucyAuYWN0aXZlLmJ1dHRvbixcbi51aS5pbnZlcnRlZC50ZWFsLmFjdGl2ZS5idXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTRmZmZmO1xufVxuLnVpLmludmVydGVkLnRlYWwuYnV0dG9ucyAuYnV0dG9uOmFjdGl2ZSxcbi51aS5pbnZlcnRlZC50ZWFsLmJ1dHRvbjphY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjM2FmZmZmO1xufVxuLyogSW52ZXJ0ZWQgQmFzaWMgKi9cbi51aS5pbnZlcnRlZC50ZWFsLmJhc2ljLmJ1dHRvbnMgLmJ1dHRvbixcbi51aS5pbnZlcnRlZC50ZWFsLmJ1dHRvbnMgLmJhc2ljLmJ1dHRvbixcbi51aS5pbnZlcnRlZC50ZWFsLmJhc2ljLmJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAycHggcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG59XG4udWkuaW52ZXJ0ZWQudGVhbC5iYXNpYy5idXR0b25zIC5idXR0b246aG92ZXIsXG4udWkuaW52ZXJ0ZWQudGVhbC5idXR0b25zIC5iYXNpYy5idXR0b246aG92ZXIsXG4udWkuaW52ZXJ0ZWQudGVhbC5iYXNpYy5idXR0b246aG92ZXIge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAycHggIzU0ZmZmZiBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogIzZERkZGRiAhaW1wb3J0YW50O1xufVxuLnVpLmludmVydGVkLnRlYWwuYmFzaWMuYnV0dG9ucyAuYnV0dG9uOmZvY3VzLFxuLnVpLmludmVydGVkLnRlYWwuYmFzaWMuYnV0dG9ucyAuYnV0dG9uOmZvY3VzLFxuLnVpLmludmVydGVkLnRlYWwuYmFzaWMuYnV0dG9uOmZvY3VzIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMnB4ICM0NGZmZmYgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICM2REZGRkYgIWltcG9ydGFudDtcbn1cbi51aS5pbnZlcnRlZC50ZWFsLmJhc2ljLmJ1dHRvbnMgLmFjdGl2ZS5idXR0b24sXG4udWkuaW52ZXJ0ZWQudGVhbC5idXR0b25zIC5iYXNpYy5hY3RpdmUuYnV0dG9uLFxuLnVpLmludmVydGVkLnRlYWwuYmFzaWMuYWN0aXZlLmJ1dHRvbiB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDJweCAjNTRmZmZmIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjNkRGRkZGICFpbXBvcnRhbnQ7XG59XG4udWkuaW52ZXJ0ZWQudGVhbC5iYXNpYy5idXR0b25zIC5idXR0b246YWN0aXZlLFxuLnVpLmludmVydGVkLnRlYWwuYnV0dG9ucyAuYmFzaWMuYnV0dG9uOmFjdGl2ZSxcbi51aS5pbnZlcnRlZC50ZWFsLmJhc2ljLmJ1dHRvbjphY3RpdmUge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAycHggIzNhZmZmZiBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogIzZERkZGRiAhaW1wb3J0YW50O1xufVxuLyotLS0gT2xpdmUgLS0tKi9cbi51aS5vbGl2ZS5idXR0b25zIC5idXR0b24sXG4udWkub2xpdmUuYnV0dG9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0I1Q0MxODtcbiAgY29sb3I6ICNmZmZmZmY7XG4gIHRleHQtc2hhZG93OiBub25lO1xuICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xufVxuLnVpLm9saXZlLmJ1dHRvbiB7XG4gIGJveC1zaGFkb3c6IDBweCAwZW0gMHB4IDBweCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpIGluc2V0O1xufVxuLnVpLm9saXZlLmJ1dHRvbnMgLmJ1dHRvbjpob3Zlcixcbi51aS5vbGl2ZS5idXR0b246aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYTdiZDBkO1xuICBjb2xvcjogI2ZmZmZmZjtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG59XG4udWkub2xpdmUuYnV0dG9ucyAuYnV0dG9uOmZvY3VzLFxuLnVpLm9saXZlLmJ1dHRvbjpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNhMGI2MDU7XG4gIGNvbG9yOiAjZmZmZmZmO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbn1cbi51aS5vbGl2ZS5idXR0b25zIC5idXR0b246YWN0aXZlLFxuLnVpLm9saXZlLmJ1dHRvbjphY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOGQ5ZTEzO1xuICBjb2xvcjogI2ZmZmZmZjtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG59XG4udWkub2xpdmUuYnV0dG9ucyAuYWN0aXZlLmJ1dHRvbixcbi51aS5vbGl2ZS5idXR0b25zIC5hY3RpdmUuYnV0dG9uOmFjdGl2ZSxcbi51aS5vbGl2ZS5hY3RpdmUuYnV0dG9uLFxuLnVpLm9saXZlLmJ1dHRvbiAuYWN0aXZlLmJ1dHRvbjphY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYWFjMTA5O1xuICBjb2xvcjogI2ZmZmZmZjtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG59XG4vKiBCYXNpYyAqL1xuLnVpLmJhc2ljLm9saXZlLmJ1dHRvbnMgLmJ1dHRvbixcbi51aS5iYXNpYy5vbGl2ZS5idXR0b24ge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggI0I1Q0MxOCBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogI0I1Q0MxOCAhaW1wb3J0YW50O1xufVxuLnVpLmJhc2ljLm9saXZlLmJ1dHRvbnMgLmJ1dHRvbjpob3Zlcixcbi51aS5iYXNpYy5vbGl2ZS5idXR0b246aG92ZXIge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggI2E3YmQwZCBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogI2E3YmQwZCAhaW1wb3J0YW50O1xufVxuLnVpLmJhc2ljLm9saXZlLmJ1dHRvbnMgLmJ1dHRvbjpmb2N1cyxcbi51aS5iYXNpYy5vbGl2ZS5idXR0b246Zm9jdXMge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggI2EwYjYwNSBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogI2E3YmQwZCAhaW1wb3J0YW50O1xufVxuLnVpLmJhc2ljLm9saXZlLmJ1dHRvbnMgLmFjdGl2ZS5idXR0b24sXG4udWkuYmFzaWMub2xpdmUuYWN0aXZlLmJ1dHRvbiB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjYWFjMTA5IGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjOGQ5ZTEzICFpbXBvcnRhbnQ7XG59XG4udWkuYmFzaWMub2xpdmUuYnV0dG9ucyAuYnV0dG9uOmFjdGl2ZSxcbi51aS5iYXNpYy5vbGl2ZS5idXR0b246YWN0aXZlIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICM4ZDllMTMgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICM4ZDllMTMgIWltcG9ydGFudDtcbn1cbi51aS5idXR0b25zOm5vdCgudmVydGljYWwpID4gLmJhc2ljLm9saXZlLmJ1dHRvbjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gIG1hcmdpbi1sZWZ0OiAtMXB4O1xufVxuLyogSW52ZXJ0ZWQgKi9cbi51aS5pbnZlcnRlZC5vbGl2ZS5idXR0b25zIC5idXR0b24sXG4udWkuaW52ZXJ0ZWQub2xpdmUuYnV0dG9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDJweCAjRDlFNzc4IGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRDlFNzc4O1xufVxuLnVpLmludmVydGVkLm9saXZlLmJ1dHRvbnMgLmJ1dHRvbjpob3Zlcixcbi51aS5pbnZlcnRlZC5vbGl2ZS5idXR0b246aG92ZXIsXG4udWkuaW52ZXJ0ZWQub2xpdmUuYnV0dG9ucyAuYnV0dG9uOmZvY3VzLFxuLnVpLmludmVydGVkLm9saXZlLmJ1dHRvbjpmb2N1cyxcbi51aS5pbnZlcnRlZC5vbGl2ZS5idXR0b25zIC5idXR0b24uYWN0aXZlLFxuLnVpLmludmVydGVkLm9saXZlLmJ1dHRvbi5hY3RpdmUsXG4udWkuaW52ZXJ0ZWQub2xpdmUuYnV0dG9ucyAuYnV0dG9uOmFjdGl2ZSxcbi51aS5pbnZlcnRlZC5vbGl2ZS5idXR0b246YWN0aXZlIHtcbiAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjYpO1xufVxuLnVpLmludmVydGVkLm9saXZlLmJ1dHRvbnMgLmJ1dHRvbjpob3Zlcixcbi51aS5pbnZlcnRlZC5vbGl2ZS5idXR0b246aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZDhlYTVjO1xufVxuLnVpLmludmVydGVkLm9saXZlLmJ1dHRvbnMgLmJ1dHRvbjpmb2N1cyxcbi51aS5pbnZlcnRlZC5vbGl2ZS5idXR0b246Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGFlZjQ3O1xufVxuLnVpLmludmVydGVkLm9saXZlLmJ1dHRvbnMgLmFjdGl2ZS5idXR0b24sXG4udWkuaW52ZXJ0ZWQub2xpdmUuYWN0aXZlLmJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkYWVkNTk7XG59XG4udWkuaW52ZXJ0ZWQub2xpdmUuYnV0dG9ucyAuYnV0dG9uOmFjdGl2ZSxcbi51aS5pbnZlcnRlZC5vbGl2ZS5idXR0b246YWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2NkZGY0ZDtcbn1cbi8qIEludmVydGVkIEJhc2ljICovXG4udWkuaW52ZXJ0ZWQub2xpdmUuYmFzaWMuYnV0dG9ucyAuYnV0dG9uLFxuLnVpLmludmVydGVkLm9saXZlLmJ1dHRvbnMgLmJhc2ljLmJ1dHRvbixcbi51aS5pbnZlcnRlZC5vbGl2ZS5iYXNpYy5idXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMnB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KSBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xufVxuLnVpLmludmVydGVkLm9saXZlLmJhc2ljLmJ1dHRvbnMgLmJ1dHRvbjpob3Zlcixcbi51aS5pbnZlcnRlZC5vbGl2ZS5idXR0b25zIC5iYXNpYy5idXR0b246aG92ZXIsXG4udWkuaW52ZXJ0ZWQub2xpdmUuYmFzaWMuYnV0dG9uOmhvdmVyIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMnB4ICNkOGVhNWMgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICNEOUU3NzggIWltcG9ydGFudDtcbn1cbi51aS5pbnZlcnRlZC5vbGl2ZS5iYXNpYy5idXR0b25zIC5idXR0b246Zm9jdXMsXG4udWkuaW52ZXJ0ZWQub2xpdmUuYmFzaWMuYnV0dG9ucyAuYnV0dG9uOmZvY3VzLFxuLnVpLmludmVydGVkLm9saXZlLmJhc2ljLmJ1dHRvbjpmb2N1cyB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDJweCAjZGFlZjQ3IGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRDlFNzc4ICFpbXBvcnRhbnQ7XG59XG4udWkuaW52ZXJ0ZWQub2xpdmUuYmFzaWMuYnV0dG9ucyAuYWN0aXZlLmJ1dHRvbixcbi51aS5pbnZlcnRlZC5vbGl2ZS5idXR0b25zIC5iYXNpYy5hY3RpdmUuYnV0dG9uLFxuLnVpLmludmVydGVkLm9saXZlLmJhc2ljLmFjdGl2ZS5idXR0b24ge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAycHggI2RhZWQ1OSBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogI0Q5RTc3OCAhaW1wb3J0YW50O1xufVxuLnVpLmludmVydGVkLm9saXZlLmJhc2ljLmJ1dHRvbnMgLmJ1dHRvbjphY3RpdmUsXG4udWkuaW52ZXJ0ZWQub2xpdmUuYnV0dG9ucyAuYmFzaWMuYnV0dG9uOmFjdGl2ZSxcbi51aS5pbnZlcnRlZC5vbGl2ZS5iYXNpYy5idXR0b246YWN0aXZlIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMnB4ICNjZGRmNGQgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICNEOUU3NzggIWltcG9ydGFudDtcbn1cbi8qLS0tIFllbGxvdyAtLS0qL1xuLnVpLnllbGxvdy5idXR0b25zIC5idXR0b24sXG4udWkueWVsbG93LmJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGQkJEMDg7XG4gIGNvbG9yOiAjZmZmZmZmO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbiAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbn1cbi51aS55ZWxsb3cuYnV0dG9uIHtcbiAgYm94LXNoYWRvdzogMHB4IDBlbSAwcHggMHB4IHJnYmEoMzQsIDM2LCAzOCwgMC4xNSkgaW5zZXQ7XG59XG4udWkueWVsbG93LmJ1dHRvbnMgLmJ1dHRvbjpob3Zlcixcbi51aS55ZWxsb3cuYnV0dG9uOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2VhYWUwMDtcbiAgY29sb3I6ICNmZmZmZmY7XG4gIHRleHQtc2hhZG93OiBub25lO1xufVxuLnVpLnllbGxvdy5idXR0b25zIC5idXR0b246Zm9jdXMsXG4udWkueWVsbG93LmJ1dHRvbjpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkYWEzMDA7XG4gIGNvbG9yOiAjZmZmZmZmO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbn1cbi51aS55ZWxsb3cuYnV0dG9ucyAuYnV0dG9uOmFjdGl2ZSxcbi51aS55ZWxsb3cuYnV0dG9uOmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNjZDk5MDM7XG4gIGNvbG9yOiAjZmZmZmZmO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbn1cbi51aS55ZWxsb3cuYnV0dG9ucyAuYWN0aXZlLmJ1dHRvbixcbi51aS55ZWxsb3cuYnV0dG9ucyAuYWN0aXZlLmJ1dHRvbjphY3RpdmUsXG4udWkueWVsbG93LmFjdGl2ZS5idXR0b24sXG4udWkueWVsbG93LmJ1dHRvbiAuYWN0aXZlLmJ1dHRvbjphY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWFhZTAwO1xuICBjb2xvcjogI2ZmZmZmZjtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG59XG4vKiBCYXNpYyAqL1xuLnVpLmJhc2ljLnllbGxvdy5idXR0b25zIC5idXR0b24sXG4udWkuYmFzaWMueWVsbG93LmJ1dHRvbiB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjRkJCRDA4IGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRkJCRDA4ICFpbXBvcnRhbnQ7XG59XG4udWkuYmFzaWMueWVsbG93LmJ1dHRvbnMgLmJ1dHRvbjpob3Zlcixcbi51aS5iYXNpYy55ZWxsb3cuYnV0dG9uOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICNlYWFlMDAgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICNlYWFlMDAgIWltcG9ydGFudDtcbn1cbi51aS5iYXNpYy55ZWxsb3cuYnV0dG9ucyAuYnV0dG9uOmZvY3VzLFxuLnVpLmJhc2ljLnllbGxvdy5idXR0b246Zm9jdXMge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggI2RhYTMwMCBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogI2VhYWUwMCAhaW1wb3J0YW50O1xufVxuLnVpLmJhc2ljLnllbGxvdy5idXR0b25zIC5hY3RpdmUuYnV0dG9uLFxuLnVpLmJhc2ljLnllbGxvdy5hY3RpdmUuYnV0dG9uIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICNlYWFlMDAgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICNjZDk5MDMgIWltcG9ydGFudDtcbn1cbi51aS5iYXNpYy55ZWxsb3cuYnV0dG9ucyAuYnV0dG9uOmFjdGl2ZSxcbi51aS5iYXNpYy55ZWxsb3cuYnV0dG9uOmFjdGl2ZSB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjY2Q5OTAzIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjY2Q5OTAzICFpbXBvcnRhbnQ7XG59XG4udWkuYnV0dG9uczpub3QoLnZlcnRpY2FsKSA+IC5iYXNpYy55ZWxsb3cuYnV0dG9uOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgbWFyZ2luLWxlZnQ6IC0xcHg7XG59XG4vKiBJbnZlcnRlZCAqL1xuLnVpLmludmVydGVkLnllbGxvdy5idXR0b25zIC5idXR0b24sXG4udWkuaW52ZXJ0ZWQueWVsbG93LmJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAycHggI0ZGRTIxRiBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogI0ZGRTIxRjtcbn1cbi51aS5pbnZlcnRlZC55ZWxsb3cuYnV0dG9ucyAuYnV0dG9uOmhvdmVyLFxuLnVpLmludmVydGVkLnllbGxvdy5idXR0b246aG92ZXIsXG4udWkuaW52ZXJ0ZWQueWVsbG93LmJ1dHRvbnMgLmJ1dHRvbjpmb2N1cyxcbi51aS5pbnZlcnRlZC55ZWxsb3cuYnV0dG9uOmZvY3VzLFxuLnVpLmludmVydGVkLnllbGxvdy5idXR0b25zIC5idXR0b24uYWN0aXZlLFxuLnVpLmludmVydGVkLnllbGxvdy5idXR0b24uYWN0aXZlLFxuLnVpLmludmVydGVkLnllbGxvdy5idXR0b25zIC5idXR0b246YWN0aXZlLFxuLnVpLmludmVydGVkLnllbGxvdy5idXR0b246YWN0aXZlIHtcbiAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjYpO1xufVxuLnVpLmludmVydGVkLnllbGxvdy5idXR0b25zIC5idXR0b246aG92ZXIsXG4udWkuaW52ZXJ0ZWQueWVsbG93LmJ1dHRvbjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmRmMDU7XG59XG4udWkuaW52ZXJ0ZWQueWVsbG93LmJ1dHRvbnMgLmJ1dHRvbjpmb2N1cyxcbi51aS5pbnZlcnRlZC55ZWxsb3cuYnV0dG9uOmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y1ZDUwMDtcbn1cbi51aS5pbnZlcnRlZC55ZWxsb3cuYnV0dG9ucyAuYWN0aXZlLmJ1dHRvbixcbi51aS5pbnZlcnRlZC55ZWxsb3cuYWN0aXZlLmJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmRmMDU7XG59XG4udWkuaW52ZXJ0ZWQueWVsbG93LmJ1dHRvbnMgLmJ1dHRvbjphY3RpdmUsXG4udWkuaW52ZXJ0ZWQueWVsbG93LmJ1dHRvbjphY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWJjZDAwO1xufVxuLyogSW52ZXJ0ZWQgQmFzaWMgKi9cbi51aS5pbnZlcnRlZC55ZWxsb3cuYmFzaWMuYnV0dG9ucyAuYnV0dG9uLFxuLnVpLmludmVydGVkLnllbGxvdy5idXR0b25zIC5iYXNpYy5idXR0b24sXG4udWkuaW52ZXJ0ZWQueWVsbG93LmJhc2ljLmJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAycHggcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG59XG4udWkuaW52ZXJ0ZWQueWVsbG93LmJhc2ljLmJ1dHRvbnMgLmJ1dHRvbjpob3Zlcixcbi51aS5pbnZlcnRlZC55ZWxsb3cuYnV0dG9ucyAuYmFzaWMuYnV0dG9uOmhvdmVyLFxuLnVpLmludmVydGVkLnllbGxvdy5iYXNpYy5idXR0b246aG92ZXIge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAycHggI2ZmZGYwNSBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogI0ZGRTIxRiAhaW1wb3J0YW50O1xufVxuLnVpLmludmVydGVkLnllbGxvdy5iYXNpYy5idXR0b25zIC5idXR0b246Zm9jdXMsXG4udWkuaW52ZXJ0ZWQueWVsbG93LmJhc2ljLmJ1dHRvbnMgLmJ1dHRvbjpmb2N1cyxcbi51aS5pbnZlcnRlZC55ZWxsb3cuYmFzaWMuYnV0dG9uOmZvY3VzIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMnB4ICNmNWQ1MDAgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICNGRkUyMUYgIWltcG9ydGFudDtcbn1cbi51aS5pbnZlcnRlZC55ZWxsb3cuYmFzaWMuYnV0dG9ucyAuYWN0aXZlLmJ1dHRvbixcbi51aS5pbnZlcnRlZC55ZWxsb3cuYnV0dG9ucyAuYmFzaWMuYWN0aXZlLmJ1dHRvbixcbi51aS5pbnZlcnRlZC55ZWxsb3cuYmFzaWMuYWN0aXZlLmJ1dHRvbiB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDJweCAjZmZkZjA1IGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRkZFMjFGICFpbXBvcnRhbnQ7XG59XG4udWkuaW52ZXJ0ZWQueWVsbG93LmJhc2ljLmJ1dHRvbnMgLmJ1dHRvbjphY3RpdmUsXG4udWkuaW52ZXJ0ZWQueWVsbG93LmJ1dHRvbnMgLmJhc2ljLmJ1dHRvbjphY3RpdmUsXG4udWkuaW52ZXJ0ZWQueWVsbG93LmJhc2ljLmJ1dHRvbjphY3RpdmUge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAycHggI2ViY2QwMCBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogI0ZGRTIxRiAhaW1wb3J0YW50O1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgUHJpbWFyeVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gU3RhbmRhcmQgLS0tKi9cbi51aS5wcmltYXJ5LmJ1dHRvbnMgLmJ1dHRvbixcbi51aS5wcmltYXJ5LmJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkZTNhM2U7XG4gIGNvbG9yOiAjZmZmZmZmO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbiAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbn1cbi51aS5wcmltYXJ5LmJ1dHRvbiB7XG4gIGJveC1zaGFkb3c6IDBweCAwZW0gMHB4IDBweCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpIGluc2V0O1xufVxuLnVpLnByaW1hcnkuYnV0dG9ucyAuYnV0dG9uOmhvdmVyLFxuLnVpLnByaW1hcnkuYnV0dG9uOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2UzMWIyMDtcbiAgY29sb3I6ICNmZmZmZmY7XG4gIHRleHQtc2hhZG93OiBub25lO1xufVxuLnVpLnByaW1hcnkuYnV0dG9ucyAuYnV0dG9uOmZvY3VzLFxuLnVpLnByaW1hcnkuYnV0dG9uOmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2RlMTExNjtcbiAgY29sb3I6ICNmZmZmZmY7XG4gIHRleHQtc2hhZG93OiBub25lO1xufVxuLnVpLnByaW1hcnkuYnV0dG9ucyAuYnV0dG9uOmFjdGl2ZSxcbi51aS5wcmltYXJ5LmJ1dHRvbjphY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYzQyMTI1O1xuICBjb2xvcjogI2ZmZmZmZjtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG59XG4udWkucHJpbWFyeS5idXR0b25zIC5hY3RpdmUuYnV0dG9uLFxuLnVpLnByaW1hcnkuYnV0dG9ucyAuYWN0aXZlLmJ1dHRvbjphY3RpdmUsXG4udWkucHJpbWFyeS5hY3RpdmUuYnV0dG9uLFxuLnVpLnByaW1hcnkuYnV0dG9uIC5hY3RpdmUuYnV0dG9uOmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlODE3MWM7XG4gIGNvbG9yOiAjZmZmZmZmO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbn1cbi8qIEJhc2ljICovXG4udWkuYmFzaWMucHJpbWFyeS5idXR0b25zIC5idXR0b24sXG4udWkuYmFzaWMucHJpbWFyeS5idXR0b24ge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggI2RlM2EzZSBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogI2RlM2EzZSAhaW1wb3J0YW50O1xufVxuLnVpLmJhc2ljLnByaW1hcnkuYnV0dG9ucyAuYnV0dG9uOmhvdmVyLFxuLnVpLmJhc2ljLnByaW1hcnkuYnV0dG9uOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICNlMzFiMjAgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICNlMzFiMjAgIWltcG9ydGFudDtcbn1cbi51aS5iYXNpYy5wcmltYXJ5LmJ1dHRvbnMgLmJ1dHRvbjpmb2N1cyxcbi51aS5iYXNpYy5wcmltYXJ5LmJ1dHRvbjpmb2N1cyB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjZGUxMTE2IGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjZTMxYjIwICFpbXBvcnRhbnQ7XG59XG4udWkuYmFzaWMucHJpbWFyeS5idXR0b25zIC5hY3RpdmUuYnV0dG9uLFxuLnVpLmJhc2ljLnByaW1hcnkuYWN0aXZlLmJ1dHRvbiB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjZTgxNzFjIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjYzQyMTI1ICFpbXBvcnRhbnQ7XG59XG4udWkuYmFzaWMucHJpbWFyeS5idXR0b25zIC5idXR0b246YWN0aXZlLFxuLnVpLmJhc2ljLnByaW1hcnkuYnV0dG9uOmFjdGl2ZSB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjYzQyMTI1IGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjYzQyMTI1ICFpbXBvcnRhbnQ7XG59XG4udWkuYnV0dG9uczpub3QoLnZlcnRpY2FsKSA+IC5iYXNpYy5wcmltYXJ5LmJ1dHRvbjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gIG1hcmdpbi1sZWZ0OiAtMXB4O1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTZWNvbmRhcnlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFN0YW5kYXJkICovXG4udWkuc2Vjb25kYXJ5LmJ1dHRvbnMgLmJ1dHRvbixcbi51aS5zZWNvbmRhcnkuYnV0dG9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDAwMDtcbiAgY29sb3I6ICNmZmZmZmY7XG4gIHRleHQtc2hhZG93OiBub25lO1xuICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xufVxuLnVpLnNlY29uZGFyeS5idXR0b24ge1xuICBib3gtc2hhZG93OiAwcHggMGVtIDBweCAwcHggcmdiYSgzNCwgMzYsIDM4LCAwLjE1KSBpbnNldDtcbn1cbi51aS5zZWNvbmRhcnkuYnV0dG9ucyAuYnV0dG9uOmhvdmVyLFxuLnVpLnNlY29uZGFyeS5idXR0b246aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMGQwZDBkO1xuICBjb2xvcjogI2ZmZmZmZjtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG59XG4udWkuc2Vjb25kYXJ5LmJ1dHRvbnMgLmJ1dHRvbjpmb2N1cyxcbi51aS5zZWNvbmRhcnkuYnV0dG9uOmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzE0MTQxNDtcbiAgY29sb3I6ICNmZmZmZmY7XG4gIHRleHQtc2hhZG93OiBub25lO1xufVxuLnVpLnNlY29uZGFyeS5idXR0b25zIC5idXR0b246YWN0aXZlLFxuLnVpLnNlY29uZGFyeS5idXR0b246YWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzFhMWExYTtcbiAgY29sb3I6ICNmZmZmZmY7XG4gIHRleHQtc2hhZG93OiBub25lO1xufVxuLnVpLnNlY29uZGFyeS5idXR0b25zIC5hY3RpdmUuYnV0dG9uLFxuLnVpLnNlY29uZGFyeS5idXR0b25zIC5hY3RpdmUuYnV0dG9uOmFjdGl2ZSxcbi51aS5zZWNvbmRhcnkuYWN0aXZlLmJ1dHRvbixcbi51aS5zZWNvbmRhcnkuYnV0dG9uIC5hY3RpdmUuYnV0dG9uOmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwZDBkMGQ7XG4gIGNvbG9yOiAjZmZmZmZmO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbn1cbi8qIEJhc2ljICovXG4udWkuYmFzaWMuc2Vjb25kYXJ5LmJ1dHRvbnMgLmJ1dHRvbixcbi51aS5iYXNpYy5zZWNvbmRhcnkuYnV0dG9uIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICMwMDAwMDAgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICMwMDAwMDAgIWltcG9ydGFudDtcbn1cbi51aS5iYXNpYy5zZWNvbmRhcnkuYnV0dG9ucyAuYnV0dG9uOmhvdmVyLFxuLnVpLmJhc2ljLnNlY29uZGFyeS5idXR0b246aG92ZXIge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggIzBkMGQwZCBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogIzBkMGQwZCAhaW1wb3J0YW50O1xufVxuLnVpLmJhc2ljLnNlY29uZGFyeS5idXR0b25zIC5idXR0b246Zm9jdXMsXG4udWkuYmFzaWMuc2Vjb25kYXJ5LmJ1dHRvbjpmb2N1cyB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjMTQxNDE0IGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjMGQwZDBkICFpbXBvcnRhbnQ7XG59XG4udWkuYmFzaWMuc2Vjb25kYXJ5LmJ1dHRvbnMgLmFjdGl2ZS5idXR0b24sXG4udWkuYmFzaWMuc2Vjb25kYXJ5LmFjdGl2ZS5idXR0b24ge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggIzBkMGQwZCBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogIzFhMWExYSAhaW1wb3J0YW50O1xufVxuLnVpLmJhc2ljLnNlY29uZGFyeS5idXR0b25zIC5idXR0b246YWN0aXZlLFxuLnVpLmJhc2ljLnNlY29uZGFyeS5idXR0b246YWN0aXZlIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICMxYTFhMWEgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICMxYTFhMWEgIWltcG9ydGFudDtcbn1cbi51aS5idXR0b25zOm5vdCgudmVydGljYWwpID4gLmJhc2ljLnByaW1hcnkuYnV0dG9uOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgbWFyZ2luLWxlZnQ6IC0xcHg7XG59XG4vKi0tLS0tLS0tLS0tLS0tLVxuICAgIFBvc2l0aXZlXG4tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFN0YW5kYXJkICovXG4udWkucG9zaXRpdmUuYnV0dG9ucyAuYnV0dG9uLFxuLnVpLnBvc2l0aXZlLmJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxOWE1MzE7XG4gIGNvbG9yOiAjZmZmZmZmO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbiAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbn1cbi51aS5wb3NpdGl2ZS5idXR0b24ge1xuICBib3gtc2hhZG93OiAwcHggMGVtIDBweCAwcHggcmdiYSgzNCwgMzYsIDM4LCAwLjE1KSBpbnNldDtcbn1cbi51aS5wb3NpdGl2ZS5idXR0b25zIC5idXR0b246aG92ZXIsXG4udWkucG9zaXRpdmUuYnV0dG9uOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzEwOTUyNjtcbiAgY29sb3I6ICNmZmZmZmY7XG4gIHRleHQtc2hhZG93OiBub25lO1xufVxuLnVpLnBvc2l0aXZlLmJ1dHRvbnMgLmJ1dHRvbjpmb2N1cyxcbi51aS5wb3NpdGl2ZS5idXR0b246Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDk4ZDFmO1xuICBjb2xvcjogI2ZmZmZmZjtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG59XG4udWkucG9zaXRpdmUuYnV0dG9ucyAuYnV0dG9uOmFjdGl2ZSxcbi51aS5wb3NpdGl2ZS5idXR0b246YWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzEyNzkyNDtcbiAgY29sb3I6ICNmZmZmZmY7XG4gIHRleHQtc2hhZG93OiBub25lO1xufVxuLnVpLnBvc2l0aXZlLmJ1dHRvbnMgLmFjdGl2ZS5idXR0b24sXG4udWkucG9zaXRpdmUuYnV0dG9ucyAuYWN0aXZlLmJ1dHRvbjphY3RpdmUsXG4udWkucG9zaXRpdmUuYWN0aXZlLmJ1dHRvbixcbi51aS5wb3NpdGl2ZS5idXR0b24gLmFjdGl2ZS5idXR0b246YWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzBkOTgyNDtcbiAgY29sb3I6ICNmZmZmZmY7XG4gIHRleHQtc2hhZG93OiBub25lO1xufVxuLyogQmFzaWMgKi9cbi51aS5iYXNpYy5wb3NpdGl2ZS5idXR0b25zIC5idXR0b24sXG4udWkuYmFzaWMucG9zaXRpdmUuYnV0dG9uIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICMxOWE1MzEgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICMxOWE1MzEgIWltcG9ydGFudDtcbn1cbi51aS5iYXNpYy5wb3NpdGl2ZS5idXR0b25zIC5idXR0b246aG92ZXIsXG4udWkuYmFzaWMucG9zaXRpdmUuYnV0dG9uOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICMxMDk1MjYgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICMxMDk1MjYgIWltcG9ydGFudDtcbn1cbi51aS5iYXNpYy5wb3NpdGl2ZS5idXR0b25zIC5idXR0b246Zm9jdXMsXG4udWkuYmFzaWMucG9zaXRpdmUuYnV0dG9uOmZvY3VzIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICMwOThkMWYgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICMxMDk1MjYgIWltcG9ydGFudDtcbn1cbi51aS5iYXNpYy5wb3NpdGl2ZS5idXR0b25zIC5hY3RpdmUuYnV0dG9uLFxuLnVpLmJhc2ljLnBvc2l0aXZlLmFjdGl2ZS5idXR0b24ge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggIzBkOTgyNCBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogIzEyNzkyNCAhaW1wb3J0YW50O1xufVxuLnVpLmJhc2ljLnBvc2l0aXZlLmJ1dHRvbnMgLmJ1dHRvbjphY3RpdmUsXG4udWkuYmFzaWMucG9zaXRpdmUuYnV0dG9uOmFjdGl2ZSB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjMTI3OTI0IGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjMTI3OTI0ICFpbXBvcnRhbnQ7XG59XG4udWkuYnV0dG9uczpub3QoLnZlcnRpY2FsKSA+IC5iYXNpYy5wcmltYXJ5LmJ1dHRvbjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gIG1hcmdpbi1sZWZ0OiAtMXB4O1xufVxuLyotLS0tLS0tLS0tLS0tLS1cbiAgICAgTmVnYXRpdmVcbi0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU3RhbmRhcmQgKi9cbi51aS5uZWdhdGl2ZS5idXR0b25zIC5idXR0b24sXG4udWkubmVnYXRpdmUuYnV0dG9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2RlM2EzZTtcbiAgY29sb3I6ICNmZmZmZmY7XG4gIHRleHQtc2hhZG93OiBub25lO1xuICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xufVxuLnVpLm5lZ2F0aXZlLmJ1dHRvbiB7XG4gIGJveC1zaGFkb3c6IDBweCAwZW0gMHB4IDBweCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpIGluc2V0O1xufVxuLnVpLm5lZ2F0aXZlLmJ1dHRvbnMgLmJ1dHRvbjpob3Zlcixcbi51aS5uZWdhdGl2ZS5idXR0b246aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTMxYjIwO1xuICBjb2xvcjogI2ZmZmZmZjtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG59XG4udWkubmVnYXRpdmUuYnV0dG9ucyAuYnV0dG9uOmZvY3VzLFxuLnVpLm5lZ2F0aXZlLmJ1dHRvbjpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkZTExMTY7XG4gIGNvbG9yOiAjZmZmZmZmO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbn1cbi51aS5uZWdhdGl2ZS5idXR0b25zIC5idXR0b246YWN0aXZlLFxuLnVpLm5lZ2F0aXZlLmJ1dHRvbjphY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYzQyMTI1O1xuICBjb2xvcjogI2ZmZmZmZjtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG59XG4udWkubmVnYXRpdmUuYnV0dG9ucyAuYWN0aXZlLmJ1dHRvbixcbi51aS5uZWdhdGl2ZS5idXR0b25zIC5hY3RpdmUuYnV0dG9uOmFjdGl2ZSxcbi51aS5uZWdhdGl2ZS5hY3RpdmUuYnV0dG9uLFxuLnVpLm5lZ2F0aXZlLmJ1dHRvbiAuYWN0aXZlLmJ1dHRvbjphY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTgxNzFjO1xuICBjb2xvcjogI2ZmZmZmZjtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG59XG4vKiBCYXNpYyAqL1xuLnVpLmJhc2ljLm5lZ2F0aXZlLmJ1dHRvbnMgLmJ1dHRvbixcbi51aS5iYXNpYy5uZWdhdGl2ZS5idXR0b24ge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggI2RlM2EzZSBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogI2RlM2EzZSAhaW1wb3J0YW50O1xufVxuLnVpLmJhc2ljLm5lZ2F0aXZlLmJ1dHRvbnMgLmJ1dHRvbjpob3Zlcixcbi51aS5iYXNpYy5uZWdhdGl2ZS5idXR0b246aG92ZXIge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggI2UzMWIyMCBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogI2UzMWIyMCAhaW1wb3J0YW50O1xufVxuLnVpLmJhc2ljLm5lZ2F0aXZlLmJ1dHRvbnMgLmJ1dHRvbjpmb2N1cyxcbi51aS5iYXNpYy5uZWdhdGl2ZS5idXR0b246Zm9jdXMge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggI2RlMTExNiBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogI2UzMWIyMCAhaW1wb3J0YW50O1xufVxuLnVpLmJhc2ljLm5lZ2F0aXZlLmJ1dHRvbnMgLmFjdGl2ZS5idXR0b24sXG4udWkuYmFzaWMubmVnYXRpdmUuYWN0aXZlLmJ1dHRvbiB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjZTgxNzFjIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjYzQyMTI1ICFpbXBvcnRhbnQ7XG59XG4udWkuYmFzaWMubmVnYXRpdmUuYnV0dG9ucyAuYnV0dG9uOmFjdGl2ZSxcbi51aS5iYXNpYy5uZWdhdGl2ZS5idXR0b246YWN0aXZlIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICNjNDIxMjUgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICNjNDIxMjUgIWltcG9ydGFudDtcbn1cbi51aS5idXR0b25zOm5vdCgudmVydGljYWwpID4gLmJhc2ljLnByaW1hcnkuYnV0dG9uOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgbWFyZ2luLWxlZnQ6IC0xcHg7XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgR3JvdXBzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLnVpLmJ1dHRvbnMge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgZm9udC1zaXplOiAwZW07XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbiAgbWFyZ2luOiAwZW0gMC4yNWVtIDBlbSAwZW07XG59XG4udWkuYnV0dG9uczpub3QoLmJhc2ljKTpub3QoLmludmVydGVkKSB7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG59XG4vKiBDbGVhcmZpeCAqL1xuLnVpLmJ1dHRvbnM6YWZ0ZXIge1xuICBjb250ZW50OiBcIi5cIjtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGhlaWdodDogMDtcbiAgY2xlYXI6IGJvdGg7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbn1cbi8qIFN0YW5kYXJkIEdyb3VwICovXG4udWkuYnV0dG9ucyAuYnV0dG9uIHtcbiAgZmxleDogMSAwIGF1dG87XG4gIG1hcmdpbjogMGVtO1xuICBib3JkZXItcmFkaXVzOiAwZW07XG4gIG1hcmdpbjogMHB4IDBweCAwcHggMHB4O1xufVxuLnVpLmJ1dHRvbnMgPiAudWkuYnV0dG9uOm5vdCguYmFzaWMpOm5vdCguaW52ZXJ0ZWQpLFxuLnVpLmJ1dHRvbnM6bm90KC5iYXNpYyk6bm90KC5pbnZlcnRlZCkgPiAuYnV0dG9uIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4IHRyYW5zcGFyZW50IGluc2V0LCAwcHggMGVtIDBweCAwcHggcmdiYSgzNCwgMzYsIDM4LCAwLjE1KSBpbnNldDtcbn1cbi51aS5idXR0b25zIC5idXR0b246Zmlyc3QtY2hpbGQge1xuICBib3JkZXItbGVmdDogbm9uZTtcbiAgbWFyZ2luLWxlZnQ6IDBlbTtcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMC40cmVtO1xuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwLjRyZW07XG59XG4udWkuYnV0dG9ucyAuYnV0dG9uOmxhc3QtY2hpbGQge1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMC40cmVtO1xuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMC40cmVtO1xufVxuLyogVmVydGljYWwgIFN0eWxlICovXG4udWkudmVydGljYWwuYnV0dG9ucyB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xufVxuLnVpLnZlcnRpY2FsLmJ1dHRvbnMgLmJ1dHRvbiB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmbG9hdDogbm9uZTtcbiAgd2lkdGg6IDEwMCU7XG4gIG1hcmdpbjogMHB4IDBweCAwcHggMHB4O1xuICBib3gtc2hhZG93OiBub25lO1xuICBib3JkZXItcmFkaXVzOiAwZW07XG59XG4udWkudmVydGljYWwuYnV0dG9ucyAuYnV0dG9uOmZpcnN0LWNoaWxkIHtcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMC40cmVtO1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMC40cmVtO1xufVxuLnVpLnZlcnRpY2FsLmJ1dHRvbnMgLmJ1dHRvbjpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLWJvdHRvbTogMHB4O1xuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwLjRyZW07XG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwLjRyZW07XG59XG4udWkudmVydGljYWwuYnV0dG9ucyAuYnV0dG9uOm9ubHktY2hpbGQge1xuICBib3JkZXItcmFkaXVzOiAwLjRyZW07XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgVGhlbWUgT3ZlcnJpZGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgT3ZlcnJpZGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyohXG4gKiAjIFNlbWFudGljIFVJIC0gQ29udGFpbmVyXG4gKiBodHRwOi8vZ2l0aHViLmNvbS9zZW1hbnRpYy1vcmcvc2VtYW50aWMtdWkvXG4gKlxuICpcbiAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZVxuICogaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVFxuICpcbiAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLypcblxu4paI4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWXICDilojilojilZfilojilojilojilojilojilojilojilZfilojilojilojilZcgICDilojilojilojilZfilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZdcbuKVmuKVkOKVkOKWiOKWiOKVlOKVkOKVkOKVneKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWd4paI4paI4paI4paI4pWXIOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVnVxuICAg4paI4paI4pWRICAg4paI4paI4paI4paI4paI4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilZTilojilojilojilojilZTilojilojilZHilojilojilojilojilojilZcgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl1xuICAg4paI4paI4pWRICAg4paI4paI4pWU4pWQ4pWQ4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilojilojilZHilZrilojilojilZTilZ3ilojilojilZHilojilojilZTilZDilZDilZ0gIOKVmuKVkOKVkOKVkOKVkOKWiOKWiOKVkVxuICAg4paI4paI4pWRICAg4paI4paI4pWRICDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilZEg4pWa4pWQ4pWdIOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkVxuICAg4pWa4pWQ4pWdICAg4pWa4pWQ4pWdICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZ0gICAgIOKVmuKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVnVxuXG4qL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgVGhlbWUgU2VsZWN0aW9uXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogVG8gb3ZlcnJpZGUgYSB0aGVtZSBmb3IgYW4gaW5kaXZpZHVhbCBlbGVtZW50XG4gICBzcGVjaWZ5IHRoZW1lIG5hbWUgYmVsb3dcbiovXG4vKiBHbG9iYWwgKi9cbi8qIEVsZW1lbnRzICovXG4vKiBDb2xsZWN0aW9ucyAqL1xuLyogTW9kdWxlcyAqL1xuLyogVmlld3MgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBGb2xkZXJzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogUGF0aCB0byB0aGVtZSBwYWNrYWdlcyAqL1xuLyogUGF0aCB0byBzaXRlIG92ZXJyaWRlIGZvbGRlciAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIEltcG9ydCBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIEltcG9ydCBEaXJlY3RpdmVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBUaGVtZVxuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICBTaXRlIFZhcmlhYmxlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERlZmF1bHQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZG9ycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBQYWNrYWdlZCBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kb3JzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIENvbXBvbmVudCdzIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRvcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogU2l0ZSB0aGVtZSBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgVXNlciBHbG9iYWwgVmFyaWFibGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogbWFyc28gY29sb3JzICovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gQ29tcG9uZW50IFZhcmlhYmxlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERlZmF1bHQgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBDb250YWluZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbGVtZW50XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNaW5pbXVtIEd1dHRlciBpcyB1c2VkIHRvIGRldGVybWluZSAgdGhlIG1heGltdW0gY29udGFpbmVyIHdpZHRoIGZvciBhIGdpdmVuIGRldmljZSAqL1xuLyogRGV2aWNlcyAqL1xuLyogQ291cGxpbmcgKEFkZCBOZWdhdGl2ZSBNYXJnaW4gdG8gY29udGFpbmVyIHNpemUpICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBUeXBlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGV4dCAqL1xuLyogUGFja2FnZWQgVGhlbWUgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBDb250YWluZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbGVtZW50XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNaW5pbXVtIEd1dHRlciBpcyB1c2VkIHRvIGRldGVybWluZSAgdGhlIG1heGltdW0gY29udGFpbmVyIHdpZHRoIGZvciBhIGdpdmVuIGRldmljZSAqL1xuLyogRGV2aWNlcyAqL1xuLyogQ291cGxpbmcgKEFkZCBOZWdhdGl2ZSBNYXJnaW4gdG8gY29udGFpbmVyIHNpemUpICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBUeXBlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGV4dCAqL1xuLyogU2l0ZSBUaGVtZSAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICBVc2VyIFZhcmlhYmxlIE92ZXJyaWRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgTWl4LWluc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgT3ZlcnJpZGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEVuZCBDb25maWcgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBDb250YWluZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBBbGwgU2l6ZXMgKi9cbi51aS5jb250YWluZXIge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWF4LXdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG59XG4vKiBNb2JpbGUgKi9cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgLnVpLmNvbnRhaW5lciB7XG4gICAgd2lkdGg6IGF1dG8gIWltcG9ydGFudDtcbiAgICBtYXJnaW4tbGVmdDogMWVtICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luLXJpZ2h0OiAxZW0gIWltcG9ydGFudDtcbiAgfVxuICAudWkuZ3JpZC5jb250YWluZXIge1xuICAgIHdpZHRoOiBhdXRvICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLnJlbGF4ZWQuZ3JpZC5jb250YWluZXIge1xuICAgIHdpZHRoOiBhdXRvICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLnZlcnkucmVsYXhlZC5ncmlkLmNvbnRhaW5lciB7XG4gICAgd2lkdGg6IGF1dG8gIWltcG9ydGFudDtcbiAgfVxufVxuLyogVGFibGV0ICovXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc2OHB4KSBhbmQgKG1heC13aWR0aDogOTkxcHgpIHtcbiAgLnVpLmNvbnRhaW5lciB7XG4gICAgd2lkdGg6IDczMXB4O1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLmdyaWQuY29udGFpbmVyIHtcbiAgICB3aWR0aDogY2FsYyg3MzFweCArIDJyZW0pICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLnJlbGF4ZWQuZ3JpZC5jb250YWluZXIge1xuICAgIHdpZHRoOiBjYWxjKDczMXB4ICsgM3JlbSkgIWltcG9ydGFudDtcbiAgfVxuICAudWkudmVyeS5yZWxheGVkLmdyaWQuY29udGFpbmVyIHtcbiAgICB3aWR0aDogY2FsYyg3MzFweCArIDVyZW0pICFpbXBvcnRhbnQ7XG4gIH1cbn1cbi8qIFNtYWxsIE1vbml0b3IgKi9cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogOTkycHgpIGFuZCAobWF4LXdpZHRoOiAxMTk5cHgpIHtcbiAgLnVpLmNvbnRhaW5lciB7XG4gICAgd2lkdGg6IDk0NXB4O1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLmdyaWQuY29udGFpbmVyIHtcbiAgICB3aWR0aDogY2FsYyg5NDVweCArIDJyZW0pICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLnJlbGF4ZWQuZ3JpZC5jb250YWluZXIge1xuICAgIHdpZHRoOiBjYWxjKDk0NXB4ICsgM3JlbSkgIWltcG9ydGFudDtcbiAgfVxuICAudWkudmVyeS5yZWxheGVkLmdyaWQuY29udGFpbmVyIHtcbiAgICB3aWR0aDogY2FsYyg5NDVweCArIDVyZW0pICFpbXBvcnRhbnQ7XG4gIH1cbn1cbi8qIExhcmdlIE1vbml0b3IgKi9cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTIwMHB4KSB7XG4gIC51aS5jb250YWluZXIge1xuICAgIHdpZHRoOiAxMTQzcHg7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG8gIWltcG9ydGFudDtcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbiAgfVxuICAudWkuZ3JpZC5jb250YWluZXIge1xuICAgIHdpZHRoOiBjYWxjKDExNDNweCArIDJyZW0pICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLnJlbGF4ZWQuZ3JpZC5jb250YWluZXIge1xuICAgIHdpZHRoOiBjYWxjKDExNDNweCArIDNyZW0pICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLnZlcnkucmVsYXhlZC5ncmlkLmNvbnRhaW5lciB7XG4gICAgd2lkdGg6IGNhbGMoMTE0M3B4ICsgNXJlbSkgIWltcG9ydGFudDtcbiAgfVxufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBUeXBlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFRleHQgQ29udGFpbmVyICovXG4udWkudGV4dC5jb250YWluZXIge1xuICBmb250LWZhbWlseTogJ0V4byAyJywgJ0xhdG8nLCBBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmO1xuICBtYXgtd2lkdGg6IDcwMHB4ICFpbXBvcnRhbnQ7XG4gIGxpbmUtaGVpZ2h0OiAxLjU7XG59XG4udWkudGV4dC5jb250YWluZXIge1xuICBmb250LXNpemU6IDEuMXJlbTtcbn1cbi8qIEZsdWlkICovXG4udWkuZmx1aWQuY29udGFpbmVyIHtcbiAgd2lkdGg6IDEwMCU7XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBWYXJpYXRpb25zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLnVpW2NsYXNzKj1cImxlZnQgYWxpZ25lZFwiXS5jb250YWluZXIge1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxuLnVpW2NsYXNzKj1cImNlbnRlciBhbGlnbmVkXCJdLmNvbnRhaW5lciB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi51aVtjbGFzcyo9XCJyaWdodCBhbGlnbmVkXCJdLmNvbnRhaW5lciB7XG4gIHRleHQtYWxpZ246IHJpZ2h0O1xufVxuLnVpLmp1c3RpZmllZC5jb250YWluZXIge1xuICB0ZXh0LWFsaWduOiBqdXN0aWZ5O1xuICBoeXBoZW5zOiBhdXRvO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFRoZW1lIE92ZXJyaWRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIE92ZXJyaWRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIVxuICogIyBTZW1hbnRpYyBVSSAtIERpdmlkZXJcbiAqIGh0dHA6Ly9naXRodWIuY29tL3NlbWFudGljLW9yZy9zZW1hbnRpYy11aS9cbiAqXG4gKlxuICogUmVsZWFzZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlXG4gKiBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUXG4gKlxuICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKlxuXG7ilojilojilojilojilojilojilojilojilZfilojilojilZcgIOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKVlyAgIOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl1xu4pWa4pWQ4pWQ4paI4paI4pWU4pWQ4pWQ4pWd4paI4paI4pWRICDilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilojilojilZcg4paI4paI4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWd4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWdXG4gICDilojilojilZEgICDilojilojilojilojilojilojilojilZHilojilojilojilojilojilZcgIOKWiOKWiOKVlOKWiOKWiOKWiOKWiOKVlOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4paI4paI4paI4paI4paI4pWXXG4gICDilojilojilZEgICDilojilojilZTilZDilZDilojilojilZHilojilojilZTilZDilZDilZ0gIOKWiOKWiOKVkeKVmuKWiOKWiOKVlOKVneKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4pWa4pWQ4pWQ4pWQ4pWQ4paI4paI4pWRXG4gICDilojilojilZEgICDilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVkSDilZrilZDilZ0g4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWRXG4gICDilZrilZDilZ0gICDilZrilZDilZ0gIOKVmuKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVneKVmuKVkOKVnSAgICAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWdXG5cbiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBUaGVtZSBTZWxlY3Rpb25cbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBUbyBvdmVycmlkZSBhIHRoZW1lIGZvciBhbiBpbmRpdmlkdWFsIGVsZW1lbnRcbiAgIHNwZWNpZnkgdGhlbWUgbmFtZSBiZWxvd1xuKi9cbi8qIEdsb2JhbCAqL1xuLyogRWxlbWVudHMgKi9cbi8qIENvbGxlY3Rpb25zICovXG4vKiBNb2R1bGVzICovXG4vKiBWaWV3cyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIEZvbGRlcnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBQYXRoIHRvIHRoZW1lIHBhY2thZ2VzICovXG4vKiBQYXRoIHRvIHNpdGUgb3ZlcnJpZGUgZm9sZGVyICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgSW1wb3J0IFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgSW1wb3J0IERpcmVjdGl2ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIFRoZW1lXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgIFNpdGUgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kb3JzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFBhY2thZ2VkIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRvcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogQ29tcG9uZW50J3Mgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZG9ycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBTaXRlIHRoZW1lIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICBVc2VyIEdsb2JhbCBWYXJpYWJsZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBtYXJzbyBjb2xvcnMgKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiBDb21wb25lbnQgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIERpdmlkZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbGVtZW50XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUZXh0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBDb3VwbGluZ1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSWNvbiAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFZhcmlhdGlvbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBIb3Jpem9udGFsIC8gVmVydGljYWwgKi9cbi8qIEludmVydGVkICovXG4vKiBTZWN0aW9uICovXG4vKiBTaXplcyAqL1xuLyogUGFja2FnZWQgVGhlbWUgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBEaXZpZGVyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRWxlbWVudFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGV4dCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQ291cGxpbmdcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEljb24gKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBWYXJpYXRpb25zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogSG9yaXpvbnRhbCAvIFZlcnRpY2FsICovXG4vKiBJbnZlcnRlZCAqL1xuLyogU2VjdGlvbiAqL1xuLyogU2l6ZXMgKi9cbi8qIFNpdGUgVGhlbWUgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgVXNlciBWYXJpYWJsZSBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIE1peC1pbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE92ZXJyaWRlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBFbmQgQ29uZmlnICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgRGl2aWRlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi51aS5kaXZpZGVyIHtcbiAgbWFyZ2luOiAxcmVtIDByZW07XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBoZWlnaHQ6IDBlbTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGxldHRlci1zcGFjaW5nOiAwLjA1ZW07XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODUpO1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiByZ2JhKDAsIDAsIDAsIDApO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzaWNcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuZGl2aWRlcjpub3QoLnZlcnRpY2FsKTpub3QoLmhvcml6b250YWwpIHtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHJnYmEoMzQsIDM2LCAzOCwgMC4xNSk7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSk7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgQ291cGxpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBBbGxvdyBkaXZpZGVyIGJldHdlZW4gZWFjaCBjb2x1bW4gcm93ICovXG4udWkuZ3JpZCA+IC5jb2x1bW4gKyAuZGl2aWRlcixcbi51aS5ncmlkID4gLnJvdyA+IC5jb2x1bW4gKyAuZGl2aWRlciB7XG4gIGxlZnQ6IGF1dG87XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICBIb3Jpem9udGFsXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmhvcml6b250YWwuZGl2aWRlciB7XG4gIGRpc3BsYXk6IHRhYmxlO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBoZWlnaHQ6IGF1dG87XG4gIG1hcmdpbjogJyc7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG4udWkuaG9yaXpvbnRhbC5kaXZpZGVyOmJlZm9yZSxcbi51aS5ob3Jpem9udGFsLmRpdmlkZXI6YWZ0ZXIge1xuICBjb250ZW50OiAnJztcbiAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0b3A6IDUwJTtcbiAgd2lkdGg6IDUwJTtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbn1cbi51aS5ob3Jpem9udGFsLmRpdmlkZXI6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogcmlnaHQgMWVtIHRvcCA1MCU7XG59XG4udWkuaG9yaXpvbnRhbC5kaXZpZGVyOmFmdGVyIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogbGVmdCAxZW0gdG9wIDUwJTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBWZXJ0aWNhbFxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS52ZXJ0aWNhbC5kaXZpZGVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAyO1xuICB0b3A6IDUwJTtcbiAgbGVmdDogNTAlO1xuICBtYXJnaW46IDByZW07XG4gIHBhZGRpbmc6IDBlbTtcbiAgd2lkdGg6IGF1dG87XG4gIGhlaWdodDogNTAlO1xuICBsaW5lLWhlaWdodDogMGVtO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbn1cbi51aS52ZXJ0aWNhbC5kaXZpZGVyOmJlZm9yZSxcbi51aS52ZXJ0aWNhbC5kaXZpZGVyOmFmdGVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiA1MCU7XG4gIGNvbnRlbnQ6ICcnO1xuICB6LWluZGV4OiAzO1xuICBib3JkZXItbGVmdDogMXB4IHNvbGlkIHJnYmEoMzQsIDM2LCAzOCwgMC4xNSk7XG4gIGJvcmRlci1yaWdodDogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKTtcbiAgd2lkdGg6IDAlO1xuICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDFyZW0pO1xufVxuLnVpLnZlcnRpY2FsLmRpdmlkZXI6YmVmb3JlIHtcbiAgdG9wOiAtMTAwJTtcbn1cbi51aS52ZXJ0aWNhbC5kaXZpZGVyOmFmdGVyIHtcbiAgdG9wOiBhdXRvO1xuICBib3R0b206IDBweDtcbn1cbi8qIEluc2lkZSBncmlkICovXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC51aS5zdGFja2FibGUuZ3JpZCAudWkudmVydGljYWwuZGl2aWRlcixcbiAgLnVpLmdyaWQgLnN0YWNrYWJsZS5yb3cgLnVpLnZlcnRpY2FsLmRpdmlkZXIge1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIG1hcmdpbjogJyc7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgcG9zaXRpb246IHN0YXRpYztcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICB0cmFuc2Zvcm06IG5vbmU7XG4gIH1cbiAgLnVpLnN0YWNrYWJsZS5ncmlkIC51aS52ZXJ0aWNhbC5kaXZpZGVyOmJlZm9yZSxcbiAgLnVpLmdyaWQgLnN0YWNrYWJsZS5yb3cgLnVpLnZlcnRpY2FsLmRpdmlkZXI6YmVmb3JlLFxuICAudWkuc3RhY2thYmxlLmdyaWQgLnVpLnZlcnRpY2FsLmRpdmlkZXI6YWZ0ZXIsXG4gIC51aS5ncmlkIC5zdGFja2FibGUucm93IC51aS52ZXJ0aWNhbC5kaXZpZGVyOmFmdGVyIHtcbiAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgIGxlZnQ6IDA7XG4gICAgYm9yZGVyLWxlZnQ6IG5vbmU7XG4gICAgYm9yZGVyLXJpZ2h0OiBub25lO1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogNTAlO1xuICAgIHdpZHRoOiA1MCU7XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgfVxuICAudWkuc3RhY2thYmxlLmdyaWQgLnVpLnZlcnRpY2FsLmRpdmlkZXI6YmVmb3JlLFxuICAudWkuZ3JpZCAuc3RhY2thYmxlLnJvdyAudWkudmVydGljYWwuZGl2aWRlcjpiZWZvcmUge1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IHJpZ2h0IDFlbSB0b3AgNTAlO1xuICB9XG4gIC51aS5zdGFja2FibGUuZ3JpZCAudWkudmVydGljYWwuZGl2aWRlcjphZnRlcixcbiAgLnVpLmdyaWQgLnN0YWNrYWJsZS5yb3cgLnVpLnZlcnRpY2FsLmRpdmlkZXI6YWZ0ZXIge1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IGxlZnQgMWVtIHRvcCA1MCU7XG4gIH1cbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgIEljb25cbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuZGl2aWRlciA+IC5pY29uIHtcbiAgbWFyZ2luOiAwcmVtO1xuICBmb250LXNpemU6IDFyZW07XG4gIGhlaWdodDogMWVtO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICBWYXJpYXRpb25zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgIEhpZGRlblxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5oaWRkZW4uZGl2aWRlciB7XG4gIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbn1cbi51aS5oaWRkZW4uZGl2aWRlcjpiZWZvcmUsXG4udWkuaGlkZGVuLmRpdmlkZXI6YWZ0ZXIge1xuICBkaXNwbGF5OiBub25lO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgIEludmVydGVkXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmRpdmlkZXIuaW52ZXJ0ZWQsXG4udWkudmVydGljYWwuaW52ZXJ0ZWQuZGl2aWRlcixcbi51aS5ob3Jpem9udGFsLmludmVydGVkLmRpdmlkZXIge1xuICBjb2xvcjogI2ZmZmZmZjtcbn1cbi51aS5kaXZpZGVyLmludmVydGVkLFxuLnVpLmRpdmlkZXIuaW52ZXJ0ZWQ6YWZ0ZXIsXG4udWkuZGl2aWRlci5pbnZlcnRlZDpiZWZvcmUge1xuICBib3JkZXItdG9wLWNvbG9yOiByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1sZWZ0LWNvbG9yOiByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1ib3R0b20tY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSkgIWltcG9ydGFudDtcbiAgYm9yZGVyLXJpZ2h0LWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpICFpbXBvcnRhbnQ7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgRml0dGVkXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmZpdHRlZC5kaXZpZGVyIHtcbiAgbWFyZ2luOiAwZW07XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgQ2xlYXJpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuY2xlYXJpbmcuZGl2aWRlciB7XG4gIGNsZWFyOiBib3RoO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgIFNlY3Rpb25cbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuc2VjdGlvbi5kaXZpZGVyIHtcbiAgbWFyZ2luLXRvcDogMnJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMnJlbTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuZGl2aWRlciB7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBUaGVtZSBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4udWkuaG9yaXpvbnRhbC5kaXZpZGVyOmJlZm9yZSxcbi51aS5ob3Jpem9udGFsLmRpdmlkZXI6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ2RhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFCYUFBQUFBQ0NBWUFBQUN1VEh1S0FBQUFHWFJGV0hSVGIyWjBkMkZ5WlFCQlpHOWlaU0JKYldGblpWSmxZV1I1Y2NsbFBBQUFBeUZwVkZoMFdFMU1PbU52YlM1aFpHOWlaUzU0YlhBQUFBQUFBRHcvZUhCaFkydGxkQ0JpWldkcGJqMGk3N3UvSWlCcFpEMGlWelZOTUUxd1EyVm9hVWg2Y21WVGVrNVVZM3ByWXpsa0lqOCtJRHg0T25odGNHMWxkR0VnZUcxc2JuTTZlRDBpWVdSdlltVTZibk02YldWMFlTOGlJSGc2ZUcxd2RHczlJa0ZrYjJKbElGaE5VQ0JEYjNKbElEVXVOUzFqTURFMElEYzVMakUxTVRRNE1Td2dNakF4TXk4d015OHhNeTB4TWpvd09Ub3hOU0FnSUNBZ0lDQWdJajRnUEhKa1pqcFNSRVlnZUcxc2JuTTZjbVJtUFNKb2RIUndPaTh2ZDNkM0xuY3pMbTl5Wnk4eE9UazVMekF5THpJeUxYSmtaaTF6ZVc1MFlYZ3Ribk1qSWo0Z1BISmtaanBFWlhOamNtbHdkR2x2YmlCeVpHWTZZV0p2ZFhROUlpSWdlRzFzYm5NNmVHMXdQU0pvZEhSd09pOHZibk11WVdSdlltVXVZMjl0TDNoaGNDOHhMakF2SWlCNGJXeHVjenA0YlhCTlRUMGlhSFIwY0RvdkwyNXpMbUZrYjJKbExtTnZiUzk0WVhBdk1TNHdMMjF0THlJZ2VHMXNibk02YzNSU1pXWTlJbWgwZEhBNkx5OXVjeTVoWkc5aVpTNWpiMjB2ZUdGd0x6RXVNQzl6Vkhsd1pTOVNaWE52ZFhKalpWSmxaaU1pSUhodGNEcERjbVZoZEc5eVZHOXZiRDBpUVdSdlltVWdVR2h2ZEc5emFHOXdJRU5ESUNoWGFXNWtiM2R6S1NJZ2VHMXdUVTA2U1c1emRHRnVZMlZKUkQwaWVHMXdMbWxwWkRvMU9UaEJSRFk0T1VORE1UWXhNVVUwT1VFM05VVkdPRUpETXpNek1qRTJOeUlnZUcxd1RVMDZSRzlqZFcxbGJuUkpSRDBpZUcxd0xtUnBaRG8xT1RoQlJEWTRRVU5ETVRZeE1VVTBPVUUzTlVWR09FSkRNek16TWpFMk55SStJRHg0YlhCTlRUcEVaWEpwZG1Wa1JuSnZiU0J6ZEZKbFpqcHBibk4wWVc1alpVbEVQU0o0YlhBdWFXbGtPalU1T0VGRU5qZzNRME14TmpFeFJUUTVRVGMxUlVZNFFrTXpNek15TVRZM0lpQnpkRkpsWmpwa2IyTjFiV1Z1ZEVsRVBTSjRiWEF1Wkdsa09qVTVPRUZFTmpnNFEwTXhOakV4UlRRNVFUYzFSVVk0UWtNek16TXlNVFkzSWk4K0lEd3ZjbVJtT2tSbGMyTnlhWEIwYVc5dVBpQThMM0prWmpwU1JFWStJRHd2ZURwNGJYQnRaWFJoUGlBOFAzaHdZV05yWlhRZ1pXNWtQU0p5SWo4K1ZVNTEzZ0FBQURWSlJFRlVlTnJzMERFTkFDQVFCREJJV0xHQkpRYnkvbVVjSm41c0pYUW1PUU1BQUFBQUFKcXQrMnByQUFBQUFBQ2cyeGRnQU5rNkJFVnVKZ3lNQUFBQUFFbEZUa1N1UW1DQycpO1xufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAudWkuc3RhY2thYmxlLmdyaWQgLnVpLnZlcnRpY2FsLmRpdmlkZXI6YmVmb3JlLFxuICAudWkuZ3JpZCAuc3RhY2thYmxlLnJvdyAudWkudmVydGljYWwuZGl2aWRlcjpiZWZvcmUsXG4gIC51aS5zdGFja2FibGUuZ3JpZCAudWkudmVydGljYWwuZGl2aWRlcjphZnRlcixcbiAgLnVpLmdyaWQgLnN0YWNrYWJsZS5yb3cgLnVpLnZlcnRpY2FsLmRpdmlkZXI6YWZ0ZXIge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUJhQUFBQUFDQ0FZQUFBQ3VUSHVLQUFBQUdYUkZXSFJUYjJaMGQyRnlaUUJCWkc5aVpTQkpiV0ZuWlZKbFlXUjVjY2xsUEFBQUF5RnBWRmgwV0UxTU9tTnZiUzVoWkc5aVpTNTRiWEFBQUFBQUFEdy9lSEJoWTJ0bGRDQmlaV2RwYmowaTc3dS9JaUJwWkQwaVZ6Vk5NRTF3UTJWb2FVaDZjbVZUZWs1VVkzcHJZemxrSWo4K0lEeDRPbmh0Y0cxbGRHRWdlRzFzYm5NNmVEMGlZV1J2WW1VNmJuTTZiV1YwWVM4aUlIZzZlRzF3ZEdzOUlrRmtiMkpsSUZoTlVDQkRiM0psSURVdU5TMWpNREUwSURjNUxqRTFNVFE0TVN3Z01qQXhNeTh3TXk4eE15MHhNam93T1RveE5TQWdJQ0FnSUNBZ0lqNGdQSEprWmpwU1JFWWdlRzFzYm5NNmNtUm1QU0pvZEhSd09pOHZkM2QzTG5jekxtOXlaeTh4T1RrNUx6QXlMekl5TFhKa1ppMXplVzUwWVhndGJuTWpJajRnUEhKa1pqcEVaWE5qY21sd2RHbHZiaUJ5WkdZNllXSnZkWFE5SWlJZ2VHMXNibk02ZUcxd1BTSm9kSFJ3T2k4dmJuTXVZV1J2WW1VdVkyOXRMM2hoY0M4eExqQXZJaUI0Yld4dWN6cDRiWEJOVFQwaWFIUjBjRG92TDI1ekxtRmtiMkpsTG1OdmJTOTRZWEF2TVM0d0wyMXRMeUlnZUcxc2JuTTZjM1JTWldZOUltaDBkSEE2THk5dWN5NWhaRzlpWlM1amIyMHZlR0Z3THpFdU1DOXpWSGx3WlM5U1pYTnZkWEpqWlZKbFppTWlJSGh0Y0RwRGNtVmhkRzl5Vkc5dmJEMGlRV1J2WW1VZ1VHaHZkRzl6YUc5d0lFTkRJQ2hYYVc1a2IzZHpLU0lnZUcxd1RVMDZTVzV6ZEdGdVkyVkpSRDBpZUcxd0xtbHBaRG8xT1RoQlJEWTRPVU5ETVRZeE1VVTBPVUUzTlVWR09FSkRNek16TWpFMk55SWdlRzF3VFUwNlJHOWpkVzFsYm5SSlJEMGllRzF3TG1ScFpEbzFPVGhCUkRZNFFVTkRNVFl4TVVVME9VRTNOVVZHT0VKRE16TXpNakUyTnlJK0lEeDRiWEJOVFRwRVpYSnBkbVZrUm5KdmJTQnpkRkpsWmpwcGJuTjBZVzVqWlVsRVBTSjRiWEF1YVdsa09qVTVPRUZFTmpnM1EwTXhOakV4UlRRNVFUYzFSVVk0UWtNek16TXlNVFkzSWlCemRGSmxaanBrYjJOMWJXVnVkRWxFUFNKNGJYQXVaR2xrT2pVNU9FRkVOamc0UTBNeE5qRXhSVFE1UVRjMVJVWTRRa016TXpNeU1UWTNJaTgrSUR3dmNtUm1Pa1JsYzJOeWFYQjBhVzl1UGlBOEwzSmtaanBTUkVZK0lEd3ZlRHA0YlhCdFpYUmhQaUE4UDNod1lXTnJaWFFnWlc1a1BTSnlJajgrVlU1MTNnQUFBRFZKUkVGVWVOcnMwREVOQUNBUUJEQklXTEdCSlFieS9tVWNKbjVzSlhRbU9RTUFBQUFBQUpxdCsycHJBQUFBQUFDZzJ4ZGdBTms2QkVWdUpneU1BQUFBQUVsRlRrU3VRbUNDJyk7XG4gIH1cbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIE92ZXJyaWRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIVxuICogIyBTZW1hbnRpYyBVSSAtIEZsYWdcbiAqIGh0dHA6Ly9naXRodWIuY29tL3NlbWFudGljLW9yZy9zZW1hbnRpYy11aS9cbiAqXG4gKlxuICogUmVsZWFzZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlXG4gKiBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUXG4gKlxuICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKlxuXG7ilojilojilojilojilojilojilojilojilZfilojilojilZcgIOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKVlyAgIOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl1xu4pWa4pWQ4pWQ4paI4paI4pWU4pWQ4pWQ4pWd4paI4paI4pWRICDilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilojilojilZcg4paI4paI4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWd4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWdXG4gICDilojilojilZEgICDilojilojilojilojilojilojilojilZHilojilojilojilojilojilZcgIOKWiOKWiOKVlOKWiOKWiOKWiOKWiOKVlOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4paI4paI4paI4paI4paI4pWXXG4gICDilojilojilZEgICDilojilojilZTilZDilZDilojilojilZHilojilojilZTilZDilZDilZ0gIOKWiOKWiOKVkeKVmuKWiOKWiOKVlOKVneKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4pWa4pWQ4pWQ4pWQ4pWQ4paI4paI4pWRXG4gICDilojilojilZEgICDilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVkSDilZrilZDilZ0g4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWRXG4gICDilZrilZDilZ0gICDilZrilZDilZ0gIOKVmuKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVneKVmuKVkOKVnSAgICAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWdXG5cbiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBUaGVtZSBTZWxlY3Rpb25cbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBUbyBvdmVycmlkZSBhIHRoZW1lIGZvciBhbiBpbmRpdmlkdWFsIGVsZW1lbnRcbiAgIHNwZWNpZnkgdGhlbWUgbmFtZSBiZWxvd1xuKi9cbi8qIEdsb2JhbCAqL1xuLyogRWxlbWVudHMgKi9cbi8qIENvbGxlY3Rpb25zICovXG4vKiBNb2R1bGVzICovXG4vKiBWaWV3cyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIEZvbGRlcnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBQYXRoIHRvIHRoZW1lIHBhY2thZ2VzICovXG4vKiBQYXRoIHRvIHNpdGUgb3ZlcnJpZGUgZm9sZGVyICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgSW1wb3J0IFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgSW1wb3J0IERpcmVjdGl2ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIFRoZW1lXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgIFNpdGUgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kb3JzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFBhY2thZ2VkIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRvcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogQ29tcG9uZW50J3Mgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZG9ycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBTaXRlIHRoZW1lIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICBVc2VyIEdsb2JhbCBWYXJpYWJsZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBtYXJzbyBjb2xvcnMgKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiBDb21wb25lbnQgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIEZsYWdcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbGVtZW50XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQYWNrYWdlZCBUaGVtZSAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIEZsYWdcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbGVtZW50XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTaXRlIFRoZW1lICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgIEZsYWcgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIE1peC1pbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE92ZXJyaWRlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBFbmQgQ29uZmlnICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIEZsYWdcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5pLmZsYWc6bm90KC5pY29uKSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgd2lkdGg6IDE2cHg7XG4gIGhlaWdodDogMTFweDtcbiAgbGluZS1oZWlnaHQ6IDExcHg7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbiAgbWFyZ2luOiAwZW0gMC41ZW0gMGVtIDBlbTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBpbmhlcml0O1xuICBzcGVhazogbm9uZTtcbiAgZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG59XG4vKiBTcHJpdGUgKi9cbmkuZmxhZzpub3QoLmljb24pOmJlZm9yZSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgY29udGVudDogJyc7XG4gIGJhY2tncm91bmQ6IHVybChcIi4uLy4uLy4uL2ltYWdlcy9zZW1hbnRpYy11aS9mbGFncy5wbmdcIikgbm8tcmVwZWF0IC0xMDhweCAtMTk3NnB4O1xuICB3aWR0aDogMTZweDtcbiAgaGVpZ2h0OiAxMXB4O1xufVxuLyogRmxhZyBTcHJpdGUgQmFzZWQgT24gaHR0cDovL3d3dy5mYW1mYW1mYW0uY29tL2xhYi9pY29ucy9mbGFncy8gKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBUaGVtZSBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5pLmZsYWcuYWQ6YmVmb3JlLFxuaS5mbGFnLmFuZG9ycmE6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogMHB4IDBweDtcbn1cbmkuZmxhZy5hZTpiZWZvcmUsXG5pLmZsYWcudW5pdGVkLmFyYWIuZW1pcmF0ZXM6YmVmb3JlLFxuaS5mbGFnLnVhZTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwcHggLTI2cHg7XG59XG5pLmZsYWcuYWY6YmVmb3JlLFxuaS5mbGFnLmFmZ2hhbmlzdGFuOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IDBweCAtNTJweDtcbn1cbmkuZmxhZy5hZzpiZWZvcmUsXG5pLmZsYWcuYW50aWd1YTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwcHggLTc4cHg7XG59XG5pLmZsYWcuYWk6YmVmb3JlLFxuaS5mbGFnLmFuZ3VpbGxhOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IDBweCAtMTA0cHg7XG59XG5pLmZsYWcuYWw6YmVmb3JlLFxuaS5mbGFnLmFsYmFuaWE6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogMHB4IC0xMzBweDtcbn1cbmkuZmxhZy5hbTpiZWZvcmUsXG5pLmZsYWcuYXJtZW5pYTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwcHggLTE1NnB4O1xufVxuaS5mbGFnLmFuOmJlZm9yZSxcbmkuZmxhZy5uZXRoZXJsYW5kcy5hbnRpbGxlczpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwcHggLTE4MnB4O1xufVxuaS5mbGFnLmFvOmJlZm9yZSxcbmkuZmxhZy5hbmdvbGE6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogMHB4IC0yMDhweDtcbn1cbmkuZmxhZy5hcjpiZWZvcmUsXG5pLmZsYWcuYXJnZW50aW5hOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IDBweCAtMjM0cHg7XG59XG5pLmZsYWcuYXM6YmVmb3JlLFxuaS5mbGFnLmFtZXJpY2FuLnNhbW9hOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IDBweCAtMjYwcHg7XG59XG5pLmZsYWcuYXQ6YmVmb3JlLFxuaS5mbGFnLmF1c3RyaWE6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogMHB4IC0yODZweDtcbn1cbmkuZmxhZy5hdTpiZWZvcmUsXG5pLmZsYWcuYXVzdHJhbGlhOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IDBweCAtMzEycHg7XG59XG5pLmZsYWcuYXc6YmVmb3JlLFxuaS5mbGFnLmFydWJhOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IDBweCAtMzM4cHg7XG59XG5pLmZsYWcuYXg6YmVmb3JlLFxuaS5mbGFnLmFsYW5kLmlzbGFuZHM6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogMHB4IC0zNjRweDtcbn1cbmkuZmxhZy5hejpiZWZvcmUsXG5pLmZsYWcuYXplcmJhaWphbjpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwcHggLTM5MHB4O1xufVxuaS5mbGFnLmJhOmJlZm9yZSxcbmkuZmxhZy5ib3NuaWE6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogMHB4IC00MTZweDtcbn1cbmkuZmxhZy5iYjpiZWZvcmUsXG5pLmZsYWcuYmFyYmFkb3M6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogMHB4IC00NDJweDtcbn1cbmkuZmxhZy5iZDpiZWZvcmUsXG5pLmZsYWcuYmFuZ2xhZGVzaDpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwcHggLTQ2OHB4O1xufVxuaS5mbGFnLmJlOmJlZm9yZSxcbmkuZmxhZy5iZWxnaXVtOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IDBweCAtNDk0cHg7XG59XG5pLmZsYWcuYmY6YmVmb3JlLFxuaS5mbGFnLmJ1cmtpbmEuZmFzbzpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwcHggLTUyMHB4O1xufVxuaS5mbGFnLmJnOmJlZm9yZSxcbmkuZmxhZy5idWxnYXJpYTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwcHggLTU0NnB4O1xufVxuaS5mbGFnLmJoOmJlZm9yZSxcbmkuZmxhZy5iYWhyYWluOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IDBweCAtNTcycHg7XG59XG5pLmZsYWcuYmk6YmVmb3JlLFxuaS5mbGFnLmJ1cnVuZGk6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogMHB4IC01OThweDtcbn1cbmkuZmxhZy5iajpiZWZvcmUsXG5pLmZsYWcuYmVuaW46YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogMHB4IC02MjRweDtcbn1cbmkuZmxhZy5ibTpiZWZvcmUsXG5pLmZsYWcuYmVybXVkYTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwcHggLTY1MHB4O1xufVxuaS5mbGFnLmJuOmJlZm9yZSxcbmkuZmxhZy5icnVuZWk6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogMHB4IC02NzZweDtcbn1cbmkuZmxhZy5ibzpiZWZvcmUsXG5pLmZsYWcuYm9saXZpYTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwcHggLTcwMnB4O1xufVxuaS5mbGFnLmJyOmJlZm9yZSxcbmkuZmxhZy5icmF6aWw6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogMHB4IC03MjhweDtcbn1cbmkuZmxhZy5iczpiZWZvcmUsXG5pLmZsYWcuYmFoYW1hczpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwcHggLTc1NHB4O1xufVxuaS5mbGFnLmJ0OmJlZm9yZSxcbmkuZmxhZy5iaHV0YW46YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogMHB4IC03ODBweDtcbn1cbmkuZmxhZy5idjpiZWZvcmUsXG5pLmZsYWcuYm91dmV0LmlzbGFuZDpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwcHggLTgwNnB4O1xufVxuaS5mbGFnLmJ3OmJlZm9yZSxcbmkuZmxhZy5ib3Rzd2FuYTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwcHggLTgzMnB4O1xufVxuaS5mbGFnLmJ5OmJlZm9yZSxcbmkuZmxhZy5iZWxhcnVzOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IDBweCAtODU4cHg7XG59XG5pLmZsYWcuYno6YmVmb3JlLFxuaS5mbGFnLmJlbGl6ZTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwcHggLTg4NHB4O1xufVxuaS5mbGFnLmNhOmJlZm9yZSxcbmkuZmxhZy5jYW5hZGE6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogMHB4IC05MTBweDtcbn1cbmkuZmxhZy5jYzpiZWZvcmUsXG5pLmZsYWcuY29jb3MuaXNsYW5kczpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwcHggLTk2MnB4O1xufVxuaS5mbGFnLmNkOmJlZm9yZSxcbmkuZmxhZy5jb25nbzpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwcHggLTk4OHB4O1xufVxuaS5mbGFnLmNmOmJlZm9yZSxcbmkuZmxhZy5jZW50cmFsLmFmcmljYW4ucmVwdWJsaWM6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogMHB4IC0xMDE0cHg7XG59XG5pLmZsYWcuY2c6YmVmb3JlLFxuaS5mbGFnLmNvbmdvLmJyYXp6YXZpbGxlOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IDBweCAtMTA0MHB4O1xufVxuaS5mbGFnLmNoOmJlZm9yZSxcbmkuZmxhZy5zd2l0emVybGFuZDpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwcHggLTEwNjZweDtcbn1cbmkuZmxhZy5jaTpiZWZvcmUsXG5pLmZsYWcuY290ZS5kaXZvaXJlOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IDBweCAtMTA5MnB4O1xufVxuaS5mbGFnLmNrOmJlZm9yZSxcbmkuZmxhZy5jb29rLmlzbGFuZHM6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogMHB4IC0xMTE4cHg7XG59XG5pLmZsYWcuY2w6YmVmb3JlLFxuaS5mbGFnLmNoaWxlOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IDBweCAtMTE0NHB4O1xufVxuaS5mbGFnLmNtOmJlZm9yZSxcbmkuZmxhZy5jYW1lcm9vbjpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwcHggLTExNzBweDtcbn1cbmkuZmxhZy5jbjpiZWZvcmUsXG5pLmZsYWcuY2hpbmE6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogMHB4IC0xMTk2cHg7XG59XG5pLmZsYWcuY286YmVmb3JlLFxuaS5mbGFnLmNvbG9tYmlhOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IDBweCAtMTIyMnB4O1xufVxuaS5mbGFnLmNyOmJlZm9yZSxcbmkuZmxhZy5jb3N0YS5yaWNhOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IDBweCAtMTI0OHB4O1xufVxuaS5mbGFnLmNzOmJlZm9yZSxcbmkuZmxhZy5zZXJiaWE6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogMHB4IC0xMjc0cHg7XG59XG5pLmZsYWcuY3U6YmVmb3JlLFxuaS5mbGFnLmN1YmE6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogMHB4IC0xMzAwcHg7XG59XG5pLmZsYWcuY3Y6YmVmb3JlLFxuaS5mbGFnLmNhcGUudmVyZGU6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogMHB4IC0xMzI2cHg7XG59XG5pLmZsYWcuY3g6YmVmb3JlLFxuaS5mbGFnLmNocmlzdG1hcy5pc2xhbmQ6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogMHB4IC0xMzUycHg7XG59XG5pLmZsYWcuY3k6YmVmb3JlLFxuaS5mbGFnLmN5cHJ1czpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwcHggLTEzNzhweDtcbn1cbmkuZmxhZy5jejpiZWZvcmUsXG5pLmZsYWcuY3plY2gucmVwdWJsaWM6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogMHB4IC0xNDA0cHg7XG59XG5pLmZsYWcuZGU6YmVmb3JlLFxuaS5mbGFnLmdlcm1hbnk6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogMHB4IC0xNDMwcHg7XG59XG5pLmZsYWcuZGo6YmVmb3JlLFxuaS5mbGFnLmRqaWJvdXRpOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IDBweCAtMTQ1NnB4O1xufVxuaS5mbGFnLmRrOmJlZm9yZSxcbmkuZmxhZy5kZW5tYXJrOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IDBweCAtMTQ4MnB4O1xufVxuaS5mbGFnLmRtOmJlZm9yZSxcbmkuZmxhZy5kb21pbmljYTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwcHggLTE1MDhweDtcbn1cbmkuZmxhZy5kbzpiZWZvcmUsXG5pLmZsYWcuZG9taW5pY2FuLnJlcHVibGljOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IDBweCAtMTUzNHB4O1xufVxuaS5mbGFnLmR6OmJlZm9yZSxcbmkuZmxhZy5hbGdlcmlhOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IDBweCAtMTU2MHB4O1xufVxuaS5mbGFnLmVjOmJlZm9yZSxcbmkuZmxhZy5lY3VhZG9yOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IDBweCAtMTU4NnB4O1xufVxuaS5mbGFnLmVlOmJlZm9yZSxcbmkuZmxhZy5lc3RvbmlhOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IDBweCAtMTYxMnB4O1xufVxuaS5mbGFnLmVnOmJlZm9yZSxcbmkuZmxhZy5lZ3lwdDpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwcHggLTE2MzhweDtcbn1cbmkuZmxhZy5laDpiZWZvcmUsXG5pLmZsYWcud2VzdGVybi5zYWhhcmE6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogMHB4IC0xNjY0cHg7XG59XG5pLmZsYWcuZXI6YmVmb3JlLFxuaS5mbGFnLmVyaXRyZWE6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogMHB4IC0xNzE2cHg7XG59XG5pLmZsYWcuZXM6YmVmb3JlLFxuaS5mbGFnLnNwYWluOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IDBweCAtMTc0MnB4O1xufVxuaS5mbGFnLmV0OmJlZm9yZSxcbmkuZmxhZy5ldGhpb3BpYTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwcHggLTE3NjhweDtcbn1cbmkuZmxhZy5ldTpiZWZvcmUsXG5pLmZsYWcuZXVyb3BlYW4udW5pb246YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogMHB4IC0xNzk0cHg7XG59XG5pLmZsYWcuZmk6YmVmb3JlLFxuaS5mbGFnLmZpbmxhbmQ6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogMHB4IC0xODQ2cHg7XG59XG5pLmZsYWcuZmo6YmVmb3JlLFxuaS5mbGFnLmZpamk6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogMHB4IC0xODcycHg7XG59XG5pLmZsYWcuZms6YmVmb3JlLFxuaS5mbGFnLmZhbGtsYW5kLmlzbGFuZHM6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogMHB4IC0xODk4cHg7XG59XG5pLmZsYWcuZm06YmVmb3JlLFxuaS5mbGFnLm1pY3JvbmVzaWE6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogMHB4IC0xOTI0cHg7XG59XG5pLmZsYWcuZm86YmVmb3JlLFxuaS5mbGFnLmZhcm9lLmlzbGFuZHM6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogMHB4IC0xOTUwcHg7XG59XG5pLmZsYWcuZnI6YmVmb3JlLFxuaS5mbGFnLmZyYW5jZTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwcHggLTE5NzZweDtcbn1cbmkuZmxhZy5nYTpiZWZvcmUsXG5pLmZsYWcuZ2Fib246YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTM2cHggMHB4O1xufVxuaS5mbGFnLmdiOmJlZm9yZSxcbmkuZmxhZy51bml0ZWQua2luZ2RvbTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzZweCAtMjZweDtcbn1cbmkuZmxhZy5nZDpiZWZvcmUsXG5pLmZsYWcuZ3JlbmFkYTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzZweCAtNTJweDtcbn1cbmkuZmxhZy5nZTpiZWZvcmUsXG5pLmZsYWcuZ2VvcmdpYTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzZweCAtNzhweDtcbn1cbmkuZmxhZy5nZjpiZWZvcmUsXG5pLmZsYWcuZnJlbmNoLmd1aWFuYTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzZweCAtMTA0cHg7XG59XG5pLmZsYWcuZ2g6YmVmb3JlLFxuaS5mbGFnLmdoYW5hOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0zNnB4IC0xMzBweDtcbn1cbmkuZmxhZy5naTpiZWZvcmUsXG5pLmZsYWcuZ2licmFsdGFyOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0zNnB4IC0xNTZweDtcbn1cbmkuZmxhZy5nbDpiZWZvcmUsXG5pLmZsYWcuZ3JlZW5sYW5kOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0zNnB4IC0xODJweDtcbn1cbmkuZmxhZy5nbTpiZWZvcmUsXG5pLmZsYWcuZ2FtYmlhOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0zNnB4IC0yMDhweDtcbn1cbmkuZmxhZy5nbjpiZWZvcmUsXG5pLmZsYWcuZ3VpbmVhOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0zNnB4IC0yMzRweDtcbn1cbmkuZmxhZy5ncDpiZWZvcmUsXG5pLmZsYWcuZ3VhZGVsb3VwZTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzZweCAtMjYwcHg7XG59XG5pLmZsYWcuZ3E6YmVmb3JlLFxuaS5mbGFnLmVxdWF0b3JpYWwuZ3VpbmVhOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0zNnB4IC0yODZweDtcbn1cbmkuZmxhZy5ncjpiZWZvcmUsXG5pLmZsYWcuZ3JlZWNlOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0zNnB4IC0zMTJweDtcbn1cbmkuZmxhZy5nczpiZWZvcmUsXG5pLmZsYWcuc2FuZHdpY2guaXNsYW5kczpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzZweCAtMzM4cHg7XG59XG5pLmZsYWcuZ3Q6YmVmb3JlLFxuaS5mbGFnLmd1YXRlbWFsYTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzZweCAtMzY0cHg7XG59XG5pLmZsYWcuZ3U6YmVmb3JlLFxuaS5mbGFnLmd1YW06YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTM2cHggLTM5MHB4O1xufVxuaS5mbGFnLmd3OmJlZm9yZSxcbmkuZmxhZy5ndWluZWEtYmlzc2F1OmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0zNnB4IC00MTZweDtcbn1cbmkuZmxhZy5neTpiZWZvcmUsXG5pLmZsYWcuZ3V5YW5hOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0zNnB4IC00NDJweDtcbn1cbmkuZmxhZy5oazpiZWZvcmUsXG5pLmZsYWcuaG9uZy5rb25nOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0zNnB4IC00NjhweDtcbn1cbmkuZmxhZy5obTpiZWZvcmUsXG5pLmZsYWcuaGVhcmQuaXNsYW5kOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0zNnB4IC00OTRweDtcbn1cbmkuZmxhZy5objpiZWZvcmUsXG5pLmZsYWcuaG9uZHVyYXM6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTM2cHggLTUyMHB4O1xufVxuaS5mbGFnLmhyOmJlZm9yZSxcbmkuZmxhZy5jcm9hdGlhOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0zNnB4IC01NDZweDtcbn1cbmkuZmxhZy5odDpiZWZvcmUsXG5pLmZsYWcuaGFpdGk6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTM2cHggLTU3MnB4O1xufVxuaS5mbGFnLmh1OmJlZm9yZSxcbmkuZmxhZy5odW5nYXJ5OmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0zNnB4IC01OThweDtcbn1cbmkuZmxhZy5pZDpiZWZvcmUsXG5pLmZsYWcuaW5kb25lc2lhOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0zNnB4IC02MjRweDtcbn1cbmkuZmxhZy5pZTpiZWZvcmUsXG5pLmZsYWcuaXJlbGFuZDpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzZweCAtNjUwcHg7XG59XG5pLmZsYWcuaWw6YmVmb3JlLFxuaS5mbGFnLmlzcmFlbDpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzZweCAtNjc2cHg7XG59XG5pLmZsYWcuaW46YmVmb3JlLFxuaS5mbGFnLmluZGlhOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0zNnB4IC03MDJweDtcbn1cbmkuZmxhZy5pbzpiZWZvcmUsXG5pLmZsYWcuaW5kaWFuLm9jZWFuLnRlcnJpdG9yeTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzZweCAtNzI4cHg7XG59XG5pLmZsYWcuaXE6YmVmb3JlLFxuaS5mbGFnLmlyYXE6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTM2cHggLTc1NHB4O1xufVxuaS5mbGFnLmlyOmJlZm9yZSxcbmkuZmxhZy5pcmFuOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0zNnB4IC03ODBweDtcbn1cbmkuZmxhZy5pczpiZWZvcmUsXG5pLmZsYWcuaWNlbGFuZDpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzZweCAtODA2cHg7XG59XG5pLmZsYWcuaXQ6YmVmb3JlLFxuaS5mbGFnLml0YWx5OmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0zNnB4IC04MzJweDtcbn1cbmkuZmxhZy5qbTpiZWZvcmUsXG5pLmZsYWcuamFtYWljYTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzZweCAtODU4cHg7XG59XG5pLmZsYWcuam86YmVmb3JlLFxuaS5mbGFnLmpvcmRhbjpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzZweCAtODg0cHg7XG59XG5pLmZsYWcuanA6YmVmb3JlLFxuaS5mbGFnLmphcGFuOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0zNnB4IC05MTBweDtcbn1cbmkuZmxhZy5rZTpiZWZvcmUsXG5pLmZsYWcua2VueWE6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTM2cHggLTkzNnB4O1xufVxuaS5mbGFnLmtnOmJlZm9yZSxcbmkuZmxhZy5reXJneXpzdGFuOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0zNnB4IC05NjJweDtcbn1cbmkuZmxhZy5raDpiZWZvcmUsXG5pLmZsYWcuY2FtYm9kaWE6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTM2cHggLTk4OHB4O1xufVxuaS5mbGFnLmtpOmJlZm9yZSxcbmkuZmxhZy5raXJpYmF0aTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzZweCAtMTAxNHB4O1xufVxuaS5mbGFnLmttOmJlZm9yZSxcbmkuZmxhZy5jb21vcm9zOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0zNnB4IC0xMDQwcHg7XG59XG5pLmZsYWcua246YmVmb3JlLFxuaS5mbGFnLnNhaW50LmtpdHRzLmFuZC5uZXZpczpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzZweCAtMTA2NnB4O1xufVxuaS5mbGFnLmtwOmJlZm9yZSxcbmkuZmxhZy5ub3J0aC5rb3JlYTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzZweCAtMTA5MnB4O1xufVxuaS5mbGFnLmtyOmJlZm9yZSxcbmkuZmxhZy5zb3V0aC5rb3JlYTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzZweCAtMTExOHB4O1xufVxuaS5mbGFnLmt3OmJlZm9yZSxcbmkuZmxhZy5rdXdhaXQ6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTM2cHggLTExNDRweDtcbn1cbmkuZmxhZy5reTpiZWZvcmUsXG5pLmZsYWcuY2F5bWFuLmlzbGFuZHM6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTM2cHggLTExNzBweDtcbn1cbmkuZmxhZy5rejpiZWZvcmUsXG5pLmZsYWcua2F6YWtoc3RhbjpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzZweCAtMTE5NnB4O1xufVxuaS5mbGFnLmxhOmJlZm9yZSxcbmkuZmxhZy5sYW9zOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0zNnB4IC0xMjIycHg7XG59XG5pLmZsYWcubGI6YmVmb3JlLFxuaS5mbGFnLmxlYmFub246YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTM2cHggLTEyNDhweDtcbn1cbmkuZmxhZy5sYzpiZWZvcmUsXG5pLmZsYWcuc2FpbnQubHVjaWE6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTM2cHggLTEyNzRweDtcbn1cbmkuZmxhZy5saTpiZWZvcmUsXG5pLmZsYWcubGllY2h0ZW5zdGVpbjpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzZweCAtMTMwMHB4O1xufVxuaS5mbGFnLmxrOmJlZm9yZSxcbmkuZmxhZy5zcmkubGFua2E6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTM2cHggLTEzMjZweDtcbn1cbmkuZmxhZy5scjpiZWZvcmUsXG5pLmZsYWcubGliZXJpYTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzZweCAtMTM1MnB4O1xufVxuaS5mbGFnLmxzOmJlZm9yZSxcbmkuZmxhZy5sZXNvdGhvOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0zNnB4IC0xMzc4cHg7XG59XG5pLmZsYWcubHQ6YmVmb3JlLFxuaS5mbGFnLmxpdGh1YW5pYTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzZweCAtMTQwNHB4O1xufVxuaS5mbGFnLmx1OmJlZm9yZSxcbmkuZmxhZy5sdXhlbWJvdXJnOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0zNnB4IC0xNDMwcHg7XG59XG5pLmZsYWcubHY6YmVmb3JlLFxuaS5mbGFnLmxhdHZpYTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzZweCAtMTQ1NnB4O1xufVxuaS5mbGFnLmx5OmJlZm9yZSxcbmkuZmxhZy5saWJ5YTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzZweCAtMTQ4MnB4O1xufVxuaS5mbGFnLm1hOmJlZm9yZSxcbmkuZmxhZy5tb3JvY2NvOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0zNnB4IC0xNTA4cHg7XG59XG5pLmZsYWcubWM6YmVmb3JlLFxuaS5mbGFnLm1vbmFjbzpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzZweCAtMTUzNHB4O1xufVxuaS5mbGFnLm1kOmJlZm9yZSxcbmkuZmxhZy5tb2xkb3ZhOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0zNnB4IC0xNTYwcHg7XG59XG5pLmZsYWcubWU6YmVmb3JlLFxuaS5mbGFnLm1vbnRlbmVncm86YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTM2cHggLTE1ODZweDtcbn1cbmkuZmxhZy5tZzpiZWZvcmUsXG5pLmZsYWcubWFkYWdhc2NhcjpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzZweCAtMTYxM3B4O1xufVxuaS5mbGFnLm1oOmJlZm9yZSxcbmkuZmxhZy5tYXJzaGFsbC5pc2xhbmRzOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0zNnB4IC0xNjM5cHg7XG59XG5pLmZsYWcubWs6YmVmb3JlLFxuaS5mbGFnLm1hY2Vkb25pYTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzZweCAtMTY2NXB4O1xufVxuaS5mbGFnLm1sOmJlZm9yZSxcbmkuZmxhZy5tYWxpOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0zNnB4IC0xNjkxcHg7XG59XG5pLmZsYWcubW06YmVmb3JlLFxuaS5mbGFnLm15YW5tYXI6YmVmb3JlLFxuaS5mbGFnLmJ1cm1hOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0zNnB4IC0xNzE3cHg7XG59XG5pLmZsYWcubW46YmVmb3JlLFxuaS5mbGFnLm1vbmdvbGlhOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0zNnB4IC0xNzQzcHg7XG59XG5pLmZsYWcubW86YmVmb3JlLFxuaS5mbGFnLm1hY2F1OmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0zNnB4IC0xNzY5cHg7XG59XG5pLmZsYWcubXA6YmVmb3JlLFxuaS5mbGFnLm5vcnRoZXJuLm1hcmlhbmEuaXNsYW5kczpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzZweCAtMTc5NXB4O1xufVxuaS5mbGFnLm1xOmJlZm9yZSxcbmkuZmxhZy5tYXJ0aW5pcXVlOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0zNnB4IC0xODIxcHg7XG59XG5pLmZsYWcubXI6YmVmb3JlLFxuaS5mbGFnLm1hdXJpdGFuaWE6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTM2cHggLTE4NDdweDtcbn1cbmkuZmxhZy5tczpiZWZvcmUsXG5pLmZsYWcubW9udHNlcnJhdDpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzZweCAtMTg3M3B4O1xufVxuaS5mbGFnLm10OmJlZm9yZSxcbmkuZmxhZy5tYWx0YTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzZweCAtMTg5OXB4O1xufVxuaS5mbGFnLm11OmJlZm9yZSxcbmkuZmxhZy5tYXVyaXRpdXM6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTM2cHggLTE5MjVweDtcbn1cbmkuZmxhZy5tdjpiZWZvcmUsXG5pLmZsYWcubWFsZGl2ZXM6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTM2cHggLTE5NTFweDtcbn1cbmkuZmxhZy5tdzpiZWZvcmUsXG5pLmZsYWcubWFsYXdpOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0zNnB4IC0xOTc3cHg7XG59XG5pLmZsYWcubXg6YmVmb3JlLFxuaS5mbGFnLm1leGljbzpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNzJweCAwcHg7XG59XG5pLmZsYWcubXk6YmVmb3JlLFxuaS5mbGFnLm1hbGF5c2lhOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC03MnB4IC0yNnB4O1xufVxuaS5mbGFnLm16OmJlZm9yZSxcbmkuZmxhZy5tb3phbWJpcXVlOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC03MnB4IC01MnB4O1xufVxuaS5mbGFnLm5hOmJlZm9yZSxcbmkuZmxhZy5uYW1pYmlhOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC03MnB4IC03OHB4O1xufVxuaS5mbGFnLm5jOmJlZm9yZSxcbmkuZmxhZy5uZXcuY2FsZWRvbmlhOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC03MnB4IC0xMDRweDtcbn1cbmkuZmxhZy5uZTpiZWZvcmUsXG5pLmZsYWcubmlnZXI6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTcycHggLTEzMHB4O1xufVxuaS5mbGFnLm5mOmJlZm9yZSxcbmkuZmxhZy5ub3Jmb2xrLmlzbGFuZDpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNzJweCAtMTU2cHg7XG59XG5pLmZsYWcubmc6YmVmb3JlLFxuaS5mbGFnLm5pZ2VyaWE6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTcycHggLTE4MnB4O1xufVxuaS5mbGFnLm5pOmJlZm9yZSxcbmkuZmxhZy5uaWNhcmFndWE6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTcycHggLTIwOHB4O1xufVxuaS5mbGFnLm5sOmJlZm9yZSxcbmkuZmxhZy5uZXRoZXJsYW5kczpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNzJweCAtMjM0cHg7XG59XG5pLmZsYWcubm86YmVmb3JlLFxuaS5mbGFnLm5vcndheTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNzJweCAtMjYwcHg7XG59XG5pLmZsYWcubnA6YmVmb3JlLFxuaS5mbGFnLm5lcGFsOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC03MnB4IC0yODZweDtcbn1cbmkuZmxhZy5ucjpiZWZvcmUsXG5pLmZsYWcubmF1cnU6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTcycHggLTMxMnB4O1xufVxuaS5mbGFnLm51OmJlZm9yZSxcbmkuZmxhZy5uaXVlOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC03MnB4IC0zMzhweDtcbn1cbmkuZmxhZy5uejpiZWZvcmUsXG5pLmZsYWcubmV3LnplYWxhbmQ6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTcycHggLTM2NHB4O1xufVxuaS5mbGFnLm9tOmJlZm9yZSxcbmkuZmxhZy5vbWFuOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC03MnB4IC0zOTBweDtcbn1cbmkuZmxhZy5wYTpiZWZvcmUsXG5pLmZsYWcucGFuYW1hOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC03MnB4IC00MTZweDtcbn1cbmkuZmxhZy5wZTpiZWZvcmUsXG5pLmZsYWcucGVydTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNzJweCAtNDQycHg7XG59XG5pLmZsYWcucGY6YmVmb3JlLFxuaS5mbGFnLmZyZW5jaC5wb2x5bmVzaWE6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTcycHggLTQ2OHB4O1xufVxuaS5mbGFnLnBnOmJlZm9yZSxcbmkuZmxhZy5uZXcuZ3VpbmVhOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC03MnB4IC00OTRweDtcbn1cbmkuZmxhZy5waDpiZWZvcmUsXG5pLmZsYWcucGhpbGlwcGluZXM6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTcycHggLTUyMHB4O1xufVxuaS5mbGFnLnBrOmJlZm9yZSxcbmkuZmxhZy5wYWtpc3RhbjpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNzJweCAtNTQ2cHg7XG59XG5pLmZsYWcucGw6YmVmb3JlLFxuaS5mbGFnLnBvbGFuZDpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNzJweCAtNTcycHg7XG59XG5pLmZsYWcucG06YmVmb3JlLFxuaS5mbGFnLnNhaW50LnBpZXJyZTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNzJweCAtNTk4cHg7XG59XG5pLmZsYWcucG46YmVmb3JlLFxuaS5mbGFnLnBpdGNhaXJuLmlzbGFuZHM6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTcycHggLTYyNHB4O1xufVxuaS5mbGFnLnByOmJlZm9yZSxcbmkuZmxhZy5wdWVydG8ucmljbzpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNzJweCAtNjUwcHg7XG59XG5pLmZsYWcucHM6YmVmb3JlLFxuaS5mbGFnLnBhbGVzdGluZTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNzJweCAtNjc2cHg7XG59XG5pLmZsYWcucHQ6YmVmb3JlLFxuaS5mbGFnLnBvcnR1Z2FsOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC03MnB4IC03MDJweDtcbn1cbmkuZmxhZy5wdzpiZWZvcmUsXG5pLmZsYWcucGFsYXU6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTcycHggLTcyOHB4O1xufVxuaS5mbGFnLnB5OmJlZm9yZSxcbmkuZmxhZy5wYXJhZ3VheTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNzJweCAtNzU0cHg7XG59XG5pLmZsYWcucWE6YmVmb3JlLFxuaS5mbGFnLnFhdGFyOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC03MnB4IC03ODBweDtcbn1cbmkuZmxhZy5yZTpiZWZvcmUsXG5pLmZsYWcucmV1bmlvbjpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNzJweCAtODA2cHg7XG59XG5pLmZsYWcucm86YmVmb3JlLFxuaS5mbGFnLnJvbWFuaWE6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTcycHggLTgzMnB4O1xufVxuaS5mbGFnLnJzOmJlZm9yZSxcbmkuZmxhZy5zZXJiaWE6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTcycHggLTg1OHB4O1xufVxuaS5mbGFnLnJ1OmJlZm9yZSxcbmkuZmxhZy5ydXNzaWE6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTcycHggLTg4NHB4O1xufVxuaS5mbGFnLnJ3OmJlZm9yZSxcbmkuZmxhZy5yd2FuZGE6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTcycHggLTkxMHB4O1xufVxuaS5mbGFnLnNhOmJlZm9yZSxcbmkuZmxhZy5zYXVkaS5hcmFiaWE6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTcycHggLTkzNnB4O1xufVxuaS5mbGFnLnNiOmJlZm9yZSxcbmkuZmxhZy5zb2xvbW9uLmlzbGFuZHM6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTcycHggLTk2MnB4O1xufVxuaS5mbGFnLnNjOmJlZm9yZSxcbmkuZmxhZy5zZXljaGVsbGVzOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC03MnB4IC05ODhweDtcbn1cbmkuZmxhZy5nYi5zY3Q6YmVmb3JlLFxuaS5mbGFnLnNjb3RsYW5kOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC03MnB4IC0xMDE0cHg7XG59XG5pLmZsYWcuc2Q6YmVmb3JlLFxuaS5mbGFnLnN1ZGFuOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC03MnB4IC0xMDQwcHg7XG59XG5pLmZsYWcuc2U6YmVmb3JlLFxuaS5mbGFnLnN3ZWRlbjpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNzJweCAtMTA2NnB4O1xufVxuaS5mbGFnLnNnOmJlZm9yZSxcbmkuZmxhZy5zaW5nYXBvcmU6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTcycHggLTEwOTJweDtcbn1cbmkuZmxhZy5zaDpiZWZvcmUsXG5pLmZsYWcuc2FpbnQuaGVsZW5hOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC03MnB4IC0xMTE4cHg7XG59XG5pLmZsYWcuc2k6YmVmb3JlLFxuaS5mbGFnLnNsb3ZlbmlhOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC03MnB4IC0xMTQ0cHg7XG59XG5pLmZsYWcuc2o6YmVmb3JlLFxuaS5mbGFnLnN2YWxiYXJkOmJlZm9yZSxcbmkuZmxhZy5qYW4ubWF5ZW46YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTcycHggLTExNzBweDtcbn1cbmkuZmxhZy5zazpiZWZvcmUsXG5pLmZsYWcuc2xvdmFraWE6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTcycHggLTExOTZweDtcbn1cbmkuZmxhZy5zbDpiZWZvcmUsXG5pLmZsYWcuc2llcnJhLmxlb25lOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC03MnB4IC0xMjIycHg7XG59XG5pLmZsYWcuc206YmVmb3JlLFxuaS5mbGFnLnNhbi5tYXJpbm86YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTcycHggLTEyNDhweDtcbn1cbmkuZmxhZy5zbjpiZWZvcmUsXG5pLmZsYWcuc2VuZWdhbDpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNzJweCAtMTI3NHB4O1xufVxuaS5mbGFnLnNvOmJlZm9yZSxcbmkuZmxhZy5zb21hbGlhOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC03MnB4IC0xMzAwcHg7XG59XG5pLmZsYWcuc3I6YmVmb3JlLFxuaS5mbGFnLnN1cmluYW1lOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC03MnB4IC0xMzI2cHg7XG59XG5pLmZsYWcuc3Q6YmVmb3JlLFxuaS5mbGFnLnNhby50b21lOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC03MnB4IC0xMzUycHg7XG59XG5pLmZsYWcuc3Y6YmVmb3JlLFxuaS5mbGFnLmVsLnNhbHZhZG9yOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC03MnB4IC0xMzc4cHg7XG59XG5pLmZsYWcuc3k6YmVmb3JlLFxuaS5mbGFnLnN5cmlhOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC03MnB4IC0xNDA0cHg7XG59XG5pLmZsYWcuc3o6YmVmb3JlLFxuaS5mbGFnLnN3YXppbGFuZDpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNzJweCAtMTQzMHB4O1xufVxuaS5mbGFnLnRjOmJlZm9yZSxcbmkuZmxhZy5jYWljb3MuaXNsYW5kczpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNzJweCAtMTQ1NnB4O1xufVxuaS5mbGFnLnRkOmJlZm9yZSxcbmkuZmxhZy5jaGFkOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC03MnB4IC0xNDgycHg7XG59XG5pLmZsYWcudGY6YmVmb3JlLFxuaS5mbGFnLmZyZW5jaC50ZXJyaXRvcmllczpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNzJweCAtMTUwOHB4O1xufVxuaS5mbGFnLnRnOmJlZm9yZSxcbmkuZmxhZy50b2dvOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC03MnB4IC0xNTM0cHg7XG59XG5pLmZsYWcudGg6YmVmb3JlLFxuaS5mbGFnLnRoYWlsYW5kOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC03MnB4IC0xNTYwcHg7XG59XG5pLmZsYWcudGo6YmVmb3JlLFxuaS5mbGFnLnRhamlraXN0YW46YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTcycHggLTE1ODZweDtcbn1cbmkuZmxhZy50azpiZWZvcmUsXG5pLmZsYWcudG9rZWxhdTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNzJweCAtMTYxMnB4O1xufVxuaS5mbGFnLnRsOmJlZm9yZSxcbmkuZmxhZy50aW1vcmxlc3RlOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC03MnB4IC0xNjM4cHg7XG59XG5pLmZsYWcudG06YmVmb3JlLFxuaS5mbGFnLnR1cmttZW5pc3RhbjpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNzJweCAtMTY2NHB4O1xufVxuaS5mbGFnLnRuOmJlZm9yZSxcbmkuZmxhZy50dW5pc2lhOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC03MnB4IC0xNjkwcHg7XG59XG5pLmZsYWcudG86YmVmb3JlLFxuaS5mbGFnLnRvbmdhOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC03MnB4IC0xNzE2cHg7XG59XG5pLmZsYWcudHI6YmVmb3JlLFxuaS5mbGFnLnR1cmtleTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNzJweCAtMTc0MnB4O1xufVxuaS5mbGFnLnR0OmJlZm9yZSxcbmkuZmxhZy50cmluaWRhZDpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNzJweCAtMTc2OHB4O1xufVxuaS5mbGFnLnR2OmJlZm9yZSxcbmkuZmxhZy50dXZhbHU6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTcycHggLTE3OTRweDtcbn1cbmkuZmxhZy50dzpiZWZvcmUsXG5pLmZsYWcudGFpd2FuOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC03MnB4IC0xODIwcHg7XG59XG5pLmZsYWcudHo6YmVmb3JlLFxuaS5mbGFnLnRhbnphbmlhOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC03MnB4IC0xODQ2cHg7XG59XG5pLmZsYWcudWE6YmVmb3JlLFxuaS5mbGFnLnVrcmFpbmU6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTcycHggLTE4NzJweDtcbn1cbmkuZmxhZy51ZzpiZWZvcmUsXG5pLmZsYWcudWdhbmRhOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC03MnB4IC0xODk4cHg7XG59XG5pLmZsYWcudW06YmVmb3JlLFxuaS5mbGFnLnVzLm1pbm9yLmlzbGFuZHM6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTcycHggLTE5MjRweDtcbn1cbmkuZmxhZy51czpiZWZvcmUsXG5pLmZsYWcuYW1lcmljYTpiZWZvcmUsXG5pLmZsYWcudW5pdGVkLnN0YXRlczpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNzJweCAtMTk1MHB4O1xufVxuaS5mbGFnLnV5OmJlZm9yZSxcbmkuZmxhZy51cnVndWF5OmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC03MnB4IC0xOTc2cHg7XG59XG5pLmZsYWcudXo6YmVmb3JlLFxuaS5mbGFnLnV6YmVraXN0YW46YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTEwOHB4IDBweDtcbn1cbmkuZmxhZy52YTpiZWZvcmUsXG5pLmZsYWcudmF0aWNhbi5jaXR5OmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0xMDhweCAtMjZweDtcbn1cbmkuZmxhZy52YzpiZWZvcmUsXG5pLmZsYWcuc2FpbnQudmluY2VudDpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTA4cHggLTUycHg7XG59XG5pLmZsYWcudmU6YmVmb3JlLFxuaS5mbGFnLnZlbmV6dWVsYTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTA4cHggLTc4cHg7XG59XG5pLmZsYWcudmc6YmVmb3JlLFxuaS5mbGFnLmJyaXRpc2gudmlyZ2luLmlzbGFuZHM6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTEwOHB4IC0xMDRweDtcbn1cbmkuZmxhZy52aTpiZWZvcmUsXG5pLmZsYWcudXMudmlyZ2luLmlzbGFuZHM6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTEwOHB4IC0xMzBweDtcbn1cbmkuZmxhZy52bjpiZWZvcmUsXG5pLmZsYWcudmlldG5hbTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTA4cHggLTE1NnB4O1xufVxuaS5mbGFnLnZ1OmJlZm9yZSxcbmkuZmxhZy52YW51YXR1OmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0xMDhweCAtMTgycHg7XG59XG5pLmZsYWcuZ2Iud2xzOmJlZm9yZSxcbmkuZmxhZy53YWxlczpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTA4cHggLTIwOHB4O1xufVxuaS5mbGFnLndmOmJlZm9yZSxcbmkuZmxhZy53YWxsaXMuYW5kLmZ1dHVuYTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTA4cHggLTIzNHB4O1xufVxuaS5mbGFnLndzOmJlZm9yZSxcbmkuZmxhZy5zYW1vYTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTA4cHggLTI2MHB4O1xufVxuaS5mbGFnLnllOmJlZm9yZSxcbmkuZmxhZy55ZW1lbjpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTA4cHggLTI4NnB4O1xufVxuaS5mbGFnLnl0OmJlZm9yZSxcbmkuZmxhZy5tYXlvdHRlOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0xMDhweCAtMzEycHg7XG59XG5pLmZsYWcuemE6YmVmb3JlLFxuaS5mbGFnLnNvdXRoLmFmcmljYTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTA4cHggLTMzOHB4O1xufVxuaS5mbGFnLnptOmJlZm9yZSxcbmkuZmxhZy56YW1iaWE6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTEwOHB4IC0zNjRweDtcbn1cbmkuZmxhZy56dzpiZWZvcmUsXG5pLmZsYWcuemltYmFid2U6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTEwOHB4IC0zOTBweDtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIE92ZXJyaWRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIVxuICogIyBTZW1hbnRpYyBVSSAtIEhlYWRlclxuICogaHR0cDovL2dpdGh1Yi5jb20vc2VtYW50aWMtb3JnL3NlbWFudGljLXVpL1xuICpcbiAqXG4gKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2VcbiAqIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVRcbiAqXG4gKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qXG5cbuKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVlyAg4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4pWXICAg4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWXXG7ilZrilZDilZDilojilojilZTilZDilZDilZ3ilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKWiOKWiOKVlyDilojilojilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilZTilZDilZDilZDilZDilZ1cbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4pWU4paI4paI4paI4paI4pWU4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilojilojilojilojilojilZdcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVlOKVkOKVkOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4paI4paI4pWR4pWa4paI4paI4pWU4pWd4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilZrilZDilZDilZDilZDilojilojilZFcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWRIOKVmuKVkOKVnSDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZFcbiAgIOKVmuKVkOKVnSAgIOKVmuKVkOKVnSAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWdICAgICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ1cblxuKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIFRoZW1lIFNlbGVjdGlvblxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFRvIG92ZXJyaWRlIGEgdGhlbWUgZm9yIGFuIGluZGl2aWR1YWwgZWxlbWVudFxuICAgc3BlY2lmeSB0aGVtZSBuYW1lIGJlbG93XG4qL1xuLyogR2xvYmFsICovXG4vKiBFbGVtZW50cyAqL1xuLyogQ29sbGVjdGlvbnMgKi9cbi8qIE1vZHVsZXMgKi9cbi8qIFZpZXdzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgRm9sZGVyc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFBhdGggdG8gdGhlbWUgcGFja2FnZXMgKi9cbi8qIFBhdGggdG8gc2l0ZSBvdmVycmlkZSBmb2xkZXIgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBJbXBvcnQgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBJbXBvcnQgRGlyZWN0aXZlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgVGhlbWVcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgU2l0ZSBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0IHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRvcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogUGFja2FnZWQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZG9ycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBDb21wb25lbnQncyBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kb3JzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFNpdGUgdGhlbWUgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgIFVzZXIgR2xvYmFsIFZhcmlhYmxlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIG1hcnNvIGNvbG9ycyAqL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuIENvbXBvbmVudCBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0ICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgSGVhZGVyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRWxlbWVudFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU3ViIEhlYWRpbmcgKi9cbi8qIFN1YiBIZWFkZXIgKi9cbi8qIEljb24gKi9cbi8qIEltYWdlICovXG4vKiBMYWJlbCAqL1xuLyogQ29udGVudCAqL1xuLyogUGFyYWdyYXBoIGFmdGVyIEhlYWRlciAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBWYXJpYXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTaXppbmcgKi9cbi8qIFN1YiBIZWFkZXIgKi9cbi8qIEljb24gSGVhZGVyICovXG4vKiBObyBMaW5lIEhlaWdodCBPZmZzZXQgKi9cbi8qIERpdmlkZWQgKi9cbi8qIEJsb2NrICovXG4vKiBBdHRhY2hlZCAqL1xuLyogSW52ZXJ0ZWQgKi9cbi8qIEZsb2F0ZWQgKi9cbi8qIFBhY2thZ2VkIFRoZW1lICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgSGVhZGVyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRWxlbWVudFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU3ViIEhlYWRpbmcgKi9cbi8qIFN1YiBIZWFkZXIgKi9cbi8qIEljb24gKi9cbi8qIEltYWdlICovXG4vKiBMYWJlbCAqL1xuLyogQ29udGVudCAqL1xuLyogUGFyYWdyYXBoIGFmdGVyIEhlYWRlciAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBWYXJpYXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTaXppbmcgKi9cbi8qIFN1YiBIZWFkZXIgKi9cbi8qIEljb24gSGVhZGVyICovXG4vKiBObyBMaW5lIEhlaWdodCBPZmZzZXQgKi9cbi8qIERpdmlkZWQgKi9cbi8qIEJsb2NrICovXG4vKiBBdHRhY2hlZCAqL1xuLyogSW52ZXJ0ZWQgKi9cbi8qIEZsb2F0ZWQgKi9cbi8qIFNpdGUgVGhlbWUgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgVXNlciBWYXJpYWJsZSBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIE1peC1pbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE92ZXJyaWRlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBFbmQgQ29uZmlnICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgSGVhZGVyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogU3RhbmRhcmQgKi9cbi51aS5oZWFkZXIge1xuICBib3JkZXI6IG5vbmU7XG4gIG1hcmdpbjogY2FsYygycmVtIC0gMC4xNDI4NTcxNDI4NTcxNDI5ZW0pIDBlbSAxcmVtO1xuICBwYWRkaW5nOiAwZW0gMGVtO1xuICBmb250LWZhbWlseTogJ0V4byAyJywgJ0xhdG8nLCBBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgbGluZS1oZWlnaHQ6IDEuMjg1NzE0MjllbTtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gIGNvbG9yOiAjMzMzMzMzO1xufVxuLnVpLmhlYWRlcjpmaXJzdC1jaGlsZCB7XG4gIG1hcmdpbi10b3A6IC0wLjE0Mjg1NzE0ZW07XG59XG4udWkuaGVhZGVyOmxhc3QtY2hpbGQge1xuICBtYXJnaW4tYm90dG9tOiAwZW07XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICBTdWIgSGVhZGVyXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmhlYWRlciAuc3ViLmhlYWRlciB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBwYWRkaW5nOiAwZW07XG4gIG1hcmdpbjogMGVtO1xuICBmb250LXNpemU6IDFyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjJlbTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC42KTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgIEljb25cbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuaGVhZGVyID4gLmljb24ge1xuICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICBvcGFjaXR5OiAxO1xuICBmb250LXNpemU6IDEuNWVtO1xuICBwYWRkaW5nLXRvcDogMC4xNDI4NTcxNGVtO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuLyogV2l0aCBUZXh0IE5vZGUgKi9cbi51aS5oZWFkZXIgLmljb246b25seS1jaGlsZCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcGFkZGluZzogMGVtO1xuICBtYXJnaW4tcmlnaHQ6IDAuNzVyZW07XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSW1hZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5oZWFkZXIgPiAuaW1hZ2UsXG4udWkuaGVhZGVyID4gaW1nIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXJnaW4tdG9wOiAwLjE0Mjg1NzE0ZW07XG4gIHdpZHRoOiAyLjVlbTtcbiAgaGVpZ2h0OiBhdXRvO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuLnVpLmhlYWRlciA+IC5pbWFnZTpvbmx5LWNoaWxkLFxuLnVpLmhlYWRlciA+IGltZzpvbmx5LWNoaWxkIHtcbiAgbWFyZ2luLXJpZ2h0OiAwLjc1cmVtO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBDb250ZW50XG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmhlYWRlciAuY29udGVudCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdmVydGljYWwtYWxpZ246IHRvcDtcbn1cbi8qIEFmdGVyIEltYWdlICovXG4udWkuaGVhZGVyID4gaW1nICsgLmNvbnRlbnQsXG4udWkuaGVhZGVyID4gLmltYWdlICsgLmNvbnRlbnQge1xuICBwYWRkaW5nLWxlZnQ6IDAuNzVyZW07XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG4vKiBBZnRlciBJY29uICovXG4udWkuaGVhZGVyID4gLmljb24gKyAuY29udGVudCB7XG4gIHBhZGRpbmctbGVmdDogMC43NXJlbTtcbiAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiBMb29zZSBDb3VwbGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5oZWFkZXIgLnVpLmxhYmVsIHtcbiAgZm9udC1zaXplOiAnJztcbiAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cbi8qIFBvc2l0aW9uaW5nICovXG4udWkuaGVhZGVyICsgcCB7XG4gIG1hcmdpbi10b3A6IDBlbTtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBUeXBlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tKi9cbmgxLnVpLmhlYWRlciB7XG4gIGZvbnQtc2l6ZTogM3JlbTtcbn1cbmgyLnVpLmhlYWRlciB7XG4gIGZvbnQtc2l6ZTogMi41cmVtO1xufVxuaDMudWkuaGVhZGVyIHtcbiAgZm9udC1zaXplOiAycmVtO1xufVxuaDQudWkuaGVhZGVyIHtcbiAgZm9udC1zaXplOiAxLjZyZW07XG59XG5oNS51aS5oZWFkZXIge1xuICBmb250LXNpemU6IDEuNHJlbTtcbn1cbi8qIFN1YiBIZWFkZXIgKi9cbmgxLnVpLmhlYWRlciAuc3ViLmhlYWRlciB7XG4gIGZvbnQtc2l6ZTogMS4xcmVtO1xufVxuaDIudWkuaGVhZGVyIC5zdWIuaGVhZGVyIHtcbiAgZm9udC1zaXplOiAxLjFyZW07XG59XG5oMy51aS5oZWFkZXIgLnN1Yi5oZWFkZXIge1xuICBmb250LXNpemU6IDFyZW07XG59XG5oNC51aS5oZWFkZXIgLnN1Yi5oZWFkZXIge1xuICBmb250LXNpemU6IDFyZW07XG59XG5oNS51aS5oZWFkZXIgLnN1Yi5oZWFkZXIge1xuICBmb250LXNpemU6IDAuOXJlbTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiBDb250ZW50IEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuaHVnZS5oZWFkZXIge1xuICBtaW4taGVpZ2h0OiAxZW07XG4gIGZvbnQtc2l6ZTogM2VtO1xufVxuLnVpLmxhcmdlLmhlYWRlciB7XG4gIGZvbnQtc2l6ZTogMi41ZW07XG59XG4udWkubWVkaXVtLmhlYWRlciB7XG4gIGZvbnQtc2l6ZTogMmVtO1xufVxuLnVpLnNtYWxsLmhlYWRlciB7XG4gIGZvbnQtc2l6ZTogMS42ZW07XG59XG4udWkudGlueS5oZWFkZXIge1xuICBmb250LXNpemU6IDEuNGVtO1xufVxuLyogU3ViIEhlYWRlciAqL1xuLnVpLmh1Z2UuaGVhZGVyIC5zdWIuaGVhZGVyIHtcbiAgZm9udC1zaXplOiAxLjFyZW07XG59XG4udWkubGFyZ2UuaGVhZGVyIC5zdWIuaGVhZGVyIHtcbiAgZm9udC1zaXplOiAxLjFyZW07XG59XG4udWkuaGVhZGVyIC5zdWIuaGVhZGVyIHtcbiAgZm9udC1zaXplOiAxcmVtO1xufVxuLnVpLnNtYWxsLmhlYWRlciAuc3ViLmhlYWRlciB7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbn1cbi51aS50aW55LmhlYWRlciAuc3ViLmhlYWRlciB7XG4gIGZvbnQtc2l6ZTogMC45cmVtO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgU3ViIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuc3ViLmhlYWRlciB7XG4gIHBhZGRpbmc6IDBlbTtcbiAgbWFyZ2luLWJvdHRvbTogMC4ycmVtO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgZm9udC1zaXplOiAwLjllbTtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgY29sb3I6ICcnO1xufVxuLnVpLnNtYWxsLnN1Yi5oZWFkZXIge1xuICBmb250LXNpemU6IDAuOGVtO1xufVxuLnVpLnN1Yi5oZWFkZXIge1xuICBmb250LXNpemU6IDAuOWVtO1xufVxuLnVpLmxhcmdlLnN1Yi5oZWFkZXIge1xuICBmb250LXNpemU6IDAuOWVtO1xufVxuLnVpLmh1Z2Uuc3ViLmhlYWRlciB7XG4gIGZvbnQtc2l6ZTogMWVtO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEljb25cbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5pY29uLmhlYWRlciB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBtYXJnaW46IDJyZW0gMGVtIDFyZW07XG59XG4udWkuaWNvbi5oZWFkZXI6YWZ0ZXIge1xuICBjb250ZW50OiAnJztcbiAgZGlzcGxheTogYmxvY2s7XG4gIGhlaWdodDogMHB4O1xuICBjbGVhcjogYm90aDtcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xufVxuLnVpLmljb24uaGVhZGVyOmZpcnN0LWNoaWxkIHtcbiAgbWFyZ2luLXRvcDogMGVtO1xufVxuLnVpLmljb24uaGVhZGVyIC5pY29uIHtcbiAgZmxvYXQ6IG5vbmU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogYXV0bztcbiAgaGVpZ2h0OiBhdXRvO1xuICBsaW5lLWhlaWdodDogMTtcbiAgcGFkZGluZzogMGVtO1xuICBmb250LXNpemU6IDNlbTtcbiAgbWFyZ2luOiAwZW0gYXV0byAwLjVyZW07XG4gIG9wYWNpdHk6IDE7XG59XG4udWkuaWNvbi5oZWFkZXIgLmNvbnRlbnQge1xuICBkaXNwbGF5OiBibG9jaztcbiAgcGFkZGluZzogMGVtO1xufVxuLnVpLmljb24uaGVhZGVyIC5jaXJjdWxhci5pY29uIHtcbiAgZm9udC1zaXplOiAyZW07XG59XG4udWkuaWNvbi5oZWFkZXIgLnNxdWFyZS5pY29uIHtcbiAgZm9udC1zaXplOiAyZW07XG59XG4udWkuYmxvY2suaWNvbi5oZWFkZXIgLmljb24ge1xuICBtYXJnaW4tYm90dG9tOiAwZW07XG59XG4udWkuaWNvbi5oZWFkZXIuYWxpZ25lZCB7XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi51aS5kaXNhYmxlZC5oZWFkZXIge1xuICBvcGFjaXR5OiAwLjQ1O1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgVmFyaWF0aW9uc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgSW52ZXJ0ZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5pbnZlcnRlZC5oZWFkZXIge1xuICBjb2xvcjogI2ZmZmZmZjtcbn1cbi51aS5pbnZlcnRlZC5oZWFkZXIgLnN1Yi5oZWFkZXIge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjgpO1xufVxuLnVpLmludmVydGVkLmF0dGFjaGVkLmhlYWRlciB7XG4gIGJhY2tncm91bmQ6ICM1NDU0NTQgbGluZWFyLWdyYWRpZW50KHRyYW5zcGFyZW50LCByZ2JhKDAsIDAsIDAsIDAuMDUpKTtcbiAgYm94LXNoYWRvdzogbm9uZTtcbiAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cbi51aS5pbnZlcnRlZC5ibG9jay5oZWFkZXIge1xuICBiYWNrZ3JvdW5kOiAjNTQ1NDU0IGxpbmVhci1ncmFkaWVudCh0cmFuc3BhcmVudCwgcmdiYSgwLCAwLCAwLCAwLjA1KSk7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG59XG4udWkuaW52ZXJ0ZWQuYmxvY2suaGVhZGVyIHtcbiAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gUmVkIC0tLSovXG4udWkucmVkLmhlYWRlciB7XG4gIGNvbG9yOiAjZGUzYTNlICFpbXBvcnRhbnQ7XG59XG5hLnVpLnJlZC5oZWFkZXI6aG92ZXIge1xuICBjb2xvcjogI2UzMWIyMCAhaW1wb3J0YW50O1xufVxuLnVpLnJlZC5kaXZpZGluZy5oZWFkZXIge1xuICBib3JkZXItYm90dG9tOiAycHggc29saWQgI2RlM2EzZTtcbn1cbi8qIEludmVydGVkICovXG4udWkuaW52ZXJ0ZWQucmVkLmhlYWRlciB7XG4gIGNvbG9yOiAjRkY2OTVFICFpbXBvcnRhbnQ7XG59XG5hLnVpLmludmVydGVkLnJlZC5oZWFkZXI6aG92ZXIge1xuICBjb2xvcjogI2ZmNTE0NCAhaW1wb3J0YW50O1xufVxuLyotLS0gT3JhbmdlIC0tLSovXG4udWkub3JhbmdlLmhlYWRlciB7XG4gIGNvbG9yOiAjZmY5NTMzICFpbXBvcnRhbnQ7XG59XG5hLnVpLm9yYW5nZS5oZWFkZXI6aG92ZXIge1xuICBjb2xvcjogI2ZmODgxOSAhaW1wb3J0YW50O1xufVxuLnVpLm9yYW5nZS5kaXZpZGluZy5oZWFkZXIge1xuICBib3JkZXItYm90dG9tOiAycHggc29saWQgI2ZmOTUzMztcbn1cbi8qIEludmVydGVkICovXG4udWkuaW52ZXJ0ZWQub3JhbmdlLmhlYWRlciB7XG4gIGNvbG9yOiAjRkY4NTFCICFpbXBvcnRhbnQ7XG59XG5hLnVpLmludmVydGVkLm9yYW5nZS5oZWFkZXI6aG92ZXIge1xuICBjb2xvcjogI2ZmNzcwMSAhaW1wb3J0YW50O1xufVxuLyotLS0gT2xpdmUgLS0tKi9cbi51aS5vbGl2ZS5oZWFkZXIge1xuICBjb2xvcjogI0I1Q0MxOCAhaW1wb3J0YW50O1xufVxuYS51aS5vbGl2ZS5oZWFkZXI6aG92ZXIge1xuICBjb2xvcjogI2E3YmQwZCAhaW1wb3J0YW50O1xufVxuLnVpLm9saXZlLmRpdmlkaW5nLmhlYWRlciB7XG4gIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCAjQjVDQzE4O1xufVxuLyogSW52ZXJ0ZWQgKi9cbi51aS5pbnZlcnRlZC5vbGl2ZS5oZWFkZXIge1xuICBjb2xvcjogI0Q5RTc3OCAhaW1wb3J0YW50O1xufVxuYS51aS5pbnZlcnRlZC5vbGl2ZS5oZWFkZXI6aG92ZXIge1xuICBjb2xvcjogI2Q4ZWE1YyAhaW1wb3J0YW50O1xufVxuLyotLS0gWWVsbG93IC0tLSovXG4udWkueWVsbG93LmhlYWRlciB7XG4gIGNvbG9yOiAjRkJCRDA4ICFpbXBvcnRhbnQ7XG59XG5hLnVpLnllbGxvdy5oZWFkZXI6aG92ZXIge1xuICBjb2xvcjogI2VhYWUwMCAhaW1wb3J0YW50O1xufVxuLnVpLnllbGxvdy5kaXZpZGluZy5oZWFkZXIge1xuICBib3JkZXItYm90dG9tOiAycHggc29saWQgI0ZCQkQwODtcbn1cbi8qIEludmVydGVkICovXG4udWkuaW52ZXJ0ZWQueWVsbG93LmhlYWRlciB7XG4gIGNvbG9yOiAjRkZFMjFGICFpbXBvcnRhbnQ7XG59XG5hLnVpLmludmVydGVkLnllbGxvdy5oZWFkZXI6aG92ZXIge1xuICBjb2xvcjogI2ZmZGYwNSAhaW1wb3J0YW50O1xufVxuLyotLS0gR3JlZW4gLS0tKi9cbi51aS5ncmVlbi5oZWFkZXIge1xuICBjb2xvcjogIzE5YTUzMSAhaW1wb3J0YW50O1xufVxuYS51aS5ncmVlbi5oZWFkZXI6aG92ZXIge1xuICBjb2xvcjogIzEwOTUyNiAhaW1wb3J0YW50O1xufVxuLnVpLmdyZWVuLmRpdmlkaW5nLmhlYWRlciB7XG4gIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCAjMTlhNTMxO1xufVxuLyogSW52ZXJ0ZWQgKi9cbi51aS5pbnZlcnRlZC5ncmVlbi5oZWFkZXIge1xuICBjb2xvcjogIzJFQ0M0MCAhaW1wb3J0YW50O1xufVxuYS51aS5pbnZlcnRlZC5ncmVlbi5oZWFkZXI6aG92ZXIge1xuICBjb2xvcjogIzIyYmUzNCAhaW1wb3J0YW50O1xufVxuLyotLS0gVGVhbCAtLS0qL1xuLnVpLnRlYWwuaGVhZGVyIHtcbiAgY29sb3I6ICMwMEI1QUQgIWltcG9ydGFudDtcbn1cbmEudWkudGVhbC5oZWFkZXI6aG92ZXIge1xuICBjb2xvcjogIzAwOWM5NSAhaW1wb3J0YW50O1xufVxuLnVpLnRlYWwuZGl2aWRpbmcuaGVhZGVyIHtcbiAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkICMwMEI1QUQ7XG59XG4vKiBJbnZlcnRlZCAqL1xuLnVpLmludmVydGVkLnRlYWwuaGVhZGVyIHtcbiAgY29sb3I6ICM2REZGRkYgIWltcG9ydGFudDtcbn1cbmEudWkuaW52ZXJ0ZWQudGVhbC5oZWFkZXI6aG92ZXIge1xuICBjb2xvcjogIzU0ZmZmZiAhaW1wb3J0YW50O1xufVxuLyotLS0gQmx1ZSAtLS0qL1xuLnVpLmJsdWUuaGVhZGVyIHtcbiAgY29sb3I6ICMzZjUxYjUgIWltcG9ydGFudDtcbn1cbmEudWkuYmx1ZS5oZWFkZXI6aG92ZXIge1xuICBjb2xvcjogIzMzNDVhNyAhaW1wb3J0YW50O1xufVxuLnVpLmJsdWUuZGl2aWRpbmcuaGVhZGVyIHtcbiAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkICMzZjUxYjU7XG59XG4vKiBJbnZlcnRlZCAqL1xuLnVpLmludmVydGVkLmJsdWUuaGVhZGVyIHtcbiAgY29sb3I6ICM1NEM4RkYgIWltcG9ydGFudDtcbn1cbmEudWkuaW52ZXJ0ZWQuYmx1ZS5oZWFkZXI6aG92ZXIge1xuICBjb2xvcjogIzNhYzBmZiAhaW1wb3J0YW50O1xufVxuLyotLS0gVmlvbGV0IC0tLSovXG4udWkudmlvbGV0LmhlYWRlciB7XG4gIGNvbG9yOiAjNjQzNUM5ICFpbXBvcnRhbnQ7XG59XG5hLnVpLnZpb2xldC5oZWFkZXI6aG92ZXIge1xuICBjb2xvcjogIzU4MjliYiAhaW1wb3J0YW50O1xufVxuLnVpLnZpb2xldC5kaXZpZGluZy5oZWFkZXIge1xuICBib3JkZXItYm90dG9tOiAycHggc29saWQgIzY0MzVDOTtcbn1cbi8qIEludmVydGVkICovXG4udWkuaW52ZXJ0ZWQudmlvbGV0LmhlYWRlciB7XG4gIGNvbG9yOiAjQTI5MUZCICFpbXBvcnRhbnQ7XG59XG5hLnVpLmludmVydGVkLnZpb2xldC5oZWFkZXI6aG92ZXIge1xuICBjb2xvcjogIzhhNzNmZiAhaW1wb3J0YW50O1xufVxuLyotLS0gUHVycGxlIC0tLSovXG4udWkucHVycGxlLmhlYWRlciB7XG4gIGNvbG9yOiAjQTMzM0M4ICFpbXBvcnRhbnQ7XG59XG5hLnVpLnB1cnBsZS5oZWFkZXI6aG92ZXIge1xuICBjb2xvcjogIzk2MjdiYSAhaW1wb3J0YW50O1xufVxuLnVpLnB1cnBsZS5kaXZpZGluZy5oZWFkZXIge1xuICBib3JkZXItYm90dG9tOiAycHggc29saWQgI0EzMzNDODtcbn1cbi8qIEludmVydGVkICovXG4udWkuaW52ZXJ0ZWQucHVycGxlLmhlYWRlciB7XG4gIGNvbG9yOiAjREM3M0ZGICFpbXBvcnRhbnQ7XG59XG5hLnVpLmludmVydGVkLnB1cnBsZS5oZWFkZXI6aG92ZXIge1xuICBjb2xvcjogI2Q2NWFmZiAhaW1wb3J0YW50O1xufVxuLyotLS0gUGluayAtLS0qL1xuLnVpLnBpbmsuaGVhZGVyIHtcbiAgY29sb3I6ICNFMDM5OTcgIWltcG9ydGFudDtcbn1cbmEudWkucGluay5oZWFkZXI6aG92ZXIge1xuICBjb2xvcjogI2U2MWE4ZCAhaW1wb3J0YW50O1xufVxuLnVpLnBpbmsuZGl2aWRpbmcuaGVhZGVyIHtcbiAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkICNFMDM5OTc7XG59XG4vKiBJbnZlcnRlZCAqL1xuLnVpLmludmVydGVkLnBpbmsuaGVhZGVyIHtcbiAgY29sb3I6ICNGRjhFREYgIWltcG9ydGFudDtcbn1cbmEudWkuaW52ZXJ0ZWQucGluay5oZWFkZXI6aG92ZXIge1xuICBjb2xvcjogI2ZmNzRkOCAhaW1wb3J0YW50O1xufVxuLyotLS0gQnJvd24gLS0tKi9cbi51aS5icm93bi5oZWFkZXIge1xuICBjb2xvcjogI0E1NjczRiAhaW1wb3J0YW50O1xufVxuYS51aS5icm93bi5oZWFkZXI6aG92ZXIge1xuICBjb2xvcjogIzk3NWIzMyAhaW1wb3J0YW50O1xufVxuLnVpLmJyb3duLmRpdmlkaW5nLmhlYWRlciB7XG4gIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCAjQTU2NzNGO1xufVxuLyogSW52ZXJ0ZWQgKi9cbi51aS5pbnZlcnRlZC5icm93bi5oZWFkZXIge1xuICBjb2xvcjogI0Q2N0MxQyAhaW1wb3J0YW50O1xufVxuYS51aS5pbnZlcnRlZC5icm93bi5oZWFkZXI6aG92ZXIge1xuICBjb2xvcjogI2M4NmYxMSAhaW1wb3J0YW50O1xufVxuLyotLS0gR3JleSAtLS0qL1xuLnVpLmdyZXkuaGVhZGVyIHtcbiAgY29sb3I6ICM3Njc2NzYgIWltcG9ydGFudDtcbn1cbmEudWkuZ3JleS5oZWFkZXI6aG92ZXIge1xuICBjb2xvcjogIzgzODM4MyAhaW1wb3J0YW50O1xufVxuLnVpLmdyZXkuZGl2aWRpbmcuaGVhZGVyIHtcbiAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkICM3Njc2NzY7XG59XG4vKiBJbnZlcnRlZCAqL1xuLnVpLmludmVydGVkLmdyZXkuaGVhZGVyIHtcbiAgY29sb3I6ICNEQ0REREUgIWltcG9ydGFudDtcbn1cbmEudWkuaW52ZXJ0ZWQuZ3JleS5oZWFkZXI6aG92ZXIge1xuICBjb2xvcjogI2NmZDBkMiAhaW1wb3J0YW50O1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWxpZ25lZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmxlZnQuYWxpZ25lZC5oZWFkZXIge1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxuLnVpLnJpZ2h0LmFsaWduZWQuaGVhZGVyIHtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG59XG4udWkuY2VudGVyZWQuaGVhZGVyLFxuLnVpLmNlbnRlci5hbGlnbmVkLmhlYWRlciB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi51aS5qdXN0aWZpZWQuaGVhZGVyIHtcbiAgdGV4dC1hbGlnbjoganVzdGlmeTtcbn1cbi51aS5qdXN0aWZpZWQuaGVhZGVyOmFmdGVyIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBjb250ZW50OiAnJztcbiAgd2lkdGg6IDEwMCU7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGbG9hdGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkuZmxvYXRlZC5oZWFkZXIsXG4udWlbY2xhc3MqPVwibGVmdCBmbG9hdGVkXCJdLmhlYWRlciB7XG4gIGZsb2F0OiBsZWZ0O1xuICBtYXJnaW4tdG9wOiAwZW07XG4gIG1hcmdpbi1yaWdodDogMC41ZW07XG59XG4udWlbY2xhc3MqPVwicmlnaHQgZmxvYXRlZFwiXS5oZWFkZXIge1xuICBmbG9hdDogcmlnaHQ7XG4gIG1hcmdpbi10b3A6IDBlbTtcbiAgbWFyZ2luLWxlZnQ6IDAuNWVtO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRml0dGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkuZml0dGVkLmhlYWRlciB7XG4gIHBhZGRpbmc6IDBlbTtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGl2aWRpbmdcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5kaXZpZGluZy5oZWFkZXIge1xuICBwYWRkaW5nLWJvdHRvbTogMC4zcmVtO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiYSgzNCwgMzYsIDM4LCAwLjE1KTtcbn1cbi51aS5kaXZpZGluZy5oZWFkZXIgLnN1Yi5oZWFkZXIge1xuICBwYWRkaW5nLWJvdHRvbTogMC4zcmVtO1xufVxuLnVpLmRpdmlkaW5nLmhlYWRlciAuaWNvbiB7XG4gIG1hcmdpbi1ib3R0b206IDBlbTtcbn1cbi51aS5pbnZlcnRlZC5kaXZpZGluZy5oZWFkZXIge1xuICBib3JkZXItYm90dG9tLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSk7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQmxvY2tcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5ibG9jay5oZWFkZXIge1xuICBiYWNrZ3JvdW5kOiAjRjNGNEY1O1xuICBwYWRkaW5nOiAwLjhyZW0gMXJlbTtcbiAgYm94LXNoYWRvdzogbm9uZTtcbiAgYm9yZGVyOiAxcHggc29saWQgI0Q0RDRENTtcbiAgYm9yZGVyLXJhZGl1czogMC40cmVtO1xufVxuLnVpLnRpbnkuYmxvY2suaGVhZGVyIHtcbiAgZm9udC1zaXplOiAwLjlyZW07XG59XG4udWkuc21hbGwuYmxvY2suaGVhZGVyIHtcbiAgZm9udC1zaXplOiAwLjlyZW07XG59XG4udWkuYmxvY2suaGVhZGVyOm5vdChoMSk6bm90KGgyKTpub3QoaDMpOm5vdChoNCk6bm90KGg1KTpub3QoaDYpIHtcbiAgZm9udC1zaXplOiAxcmVtO1xufVxuLnVpLmxhcmdlLmJsb2NrLmhlYWRlciB7XG4gIGZvbnQtc2l6ZTogMS4xcmVtO1xufVxuLnVpLmh1Z2UuYmxvY2suaGVhZGVyIHtcbiAgZm9udC1zaXplOiAxLjRyZW07XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBdHRhY2hlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmF0dGFjaGVkLmhlYWRlciB7XG4gIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gIHBhZGRpbmc6IDAuOHJlbSAxcmVtO1xuICBtYXJnaW4tbGVmdDogLTFweDtcbiAgbWFyZ2luLXJpZ2h0OiAtMXB4O1xuICBib3gtc2hhZG93OiBub25lO1xuICBib3JkZXI6IDFweCBzb2xpZCAjRDRENEQ1O1xufVxuLnVpLmF0dGFjaGVkLmJsb2NrLmhlYWRlciB7XG4gIGJhY2tncm91bmQ6ICNGM0Y0RjU7XG59XG4udWkuYXR0YWNoZWQ6bm90KC50b3ApOm5vdCguYm90dG9tKS5oZWFkZXIge1xuICBtYXJnaW4tdG9wOiAwZW07XG4gIG1hcmdpbi1ib3R0b206IDBlbTtcbiAgYm9yZGVyLXRvcDogbm9uZTtcbiAgYm9yZGVyLXJhZGl1czogMGVtO1xufVxuLnVpLnRvcC5hdHRhY2hlZC5oZWFkZXIge1xuICBtYXJnaW4tYm90dG9tOiAwZW07XG4gIGJvcmRlci1yYWRpdXM6IDAuNHJlbSAwLjRyZW0gMGVtIDBlbTtcbn1cbi51aS5ib3R0b20uYXR0YWNoZWQuaGVhZGVyIHtcbiAgbWFyZ2luLXRvcDogMGVtO1xuICBib3JkZXItdG9wOiBub25lO1xuICBib3JkZXItcmFkaXVzOiAwZW0gMGVtIDAuNHJlbSAwLjRyZW07XG59XG4vKiBBdHRhY2hlZCBTaXplcyAqL1xuLnVpLnRpbnkuYXR0YWNoZWQuaGVhZGVyIHtcbiAgZm9udC1zaXplOiAwLjllbTtcbn1cbi51aS5zbWFsbC5hdHRhY2hlZC5oZWFkZXIge1xuICBmb250LXNpemU6IDAuOWVtO1xufVxuLnVpLmF0dGFjaGVkLmhlYWRlcjpub3QoaDEpOm5vdChoMik6bm90KGgzKTpub3QoaDQpOm5vdChoNSk6bm90KGg2KSB7XG4gIGZvbnQtc2l6ZTogMWVtO1xufVxuLnVpLmxhcmdlLmF0dGFjaGVkLmhlYWRlciB7XG4gIGZvbnQtc2l6ZTogMS4xZW07XG59XG4udWkuaHVnZS5hdHRhY2hlZC5oZWFkZXIge1xuICBmb250LXNpemU6IDEuNGVtO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemluZ1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmhlYWRlcjpub3QoaDEpOm5vdChoMik6bm90KGgzKTpub3QoaDQpOm5vdChoNSk6bm90KGg2KSB7XG4gIGZvbnQtc2l6ZTogMmVtO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFRoZW1lIE92ZXJyaWRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIE92ZXJyaWRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIVxuICogIyBTZW1hbnRpYyBVSSAtIEljb25cbiAqIGh0dHA6Ly9naXRodWIuY29tL3NlbWFudGljLW9yZy9zZW1hbnRpYy11aS9cbiAqXG4gKlxuICogUmVsZWFzZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlXG4gKiBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUXG4gKlxuICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKlxuXG7ilojilojilojilojilojilojilojilojilZfilojilojilZcgIOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKVlyAgIOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl1xu4pWa4pWQ4pWQ4paI4paI4pWU4pWQ4pWQ4pWd4paI4paI4pWRICDilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilojilojilZcg4paI4paI4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWd4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWdXG4gICDilojilojilZEgICDilojilojilojilojilojilojilojilZHilojilojilojilojilojilZcgIOKWiOKWiOKVlOKWiOKWiOKWiOKWiOKVlOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4paI4paI4paI4paI4paI4pWXXG4gICDilojilojilZEgICDilojilojilZTilZDilZDilojilojilZHilojilojilZTilZDilZDilZ0gIOKWiOKWiOKVkeKVmuKWiOKWiOKVlOKVneKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4pWa4pWQ4pWQ4pWQ4pWQ4paI4paI4pWRXG4gICDilojilojilZEgICDilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVkSDilZrilZDilZ0g4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWRXG4gICDilZrilZDilZ0gICDilZrilZDilZ0gIOKVmuKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVneKVmuKVkOKVnSAgICAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWdXG5cbiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBUaGVtZSBTZWxlY3Rpb25cbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBUbyBvdmVycmlkZSBhIHRoZW1lIGZvciBhbiBpbmRpdmlkdWFsIGVsZW1lbnRcbiAgIHNwZWNpZnkgdGhlbWUgbmFtZSBiZWxvd1xuKi9cbi8qIEdsb2JhbCAqL1xuLyogRWxlbWVudHMgKi9cbi8qIENvbGxlY3Rpb25zICovXG4vKiBNb2R1bGVzICovXG4vKiBWaWV3cyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIEZvbGRlcnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBQYXRoIHRvIHRoZW1lIHBhY2thZ2VzICovXG4vKiBQYXRoIHRvIHNpdGUgb3ZlcnJpZGUgZm9sZGVyICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgSW1wb3J0IFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgSW1wb3J0IERpcmVjdGl2ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIFRoZW1lXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgIFNpdGUgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kb3JzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFBhY2thZ2VkIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRvcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogQ29tcG9uZW50J3Mgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZG9ycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBTaXRlIHRoZW1lIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICBVc2VyIEdsb2JhbCBWYXJpYWJsZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBtYXJzbyBjb2xvcnMgKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiBDb21wb25lbnQgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBJY29uXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICBJY29uIFZhcmlhYmxlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVmFyaWF0aW9ucyAqL1xuLyogUGFja2FnZWQgVGhlbWUgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgSWNvblxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgSWNvbiBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFZhcmlhdGlvbnMgKi9cbi8qIFNpdGUgVGhlbWUgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgVXNlciBWYXJpYWJsZSBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIE1peC1pbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE92ZXJyaWRlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBFbmQgQ29uZmlnICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIEljb25cbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdJY29ucyc7XG4gIHNyYzogdXJsKFwiLi4vLi4vLi4vLi4vZm9udHMvc2VtYW50aWMtdWkvaWNvbnMuZW90XCIpO1xuICBzcmM6IHVybChcIi4uLy4uLy4uLy4uL2ZvbnRzL3NlbWFudGljLXVpL2ljb25zLmVvdD8jaWVmaXhcIikgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLCB1cmwoXCIuLi8uLi8uLi8uLi9mb250cy9zZW1hbnRpYy11aS9pY29ucy53b2ZmMlwiKSBmb3JtYXQoJ3dvZmYyJyksIHVybChcIi4uLy4uLy4uLy4uL2ZvbnRzL3NlbWFudGljLXVpL2ljb25zLndvZmZcIikgZm9ybWF0KCd3b2ZmJyksIHVybChcIi4uLy4uLy4uLy4uL2ZvbnRzL3NlbWFudGljLXVpL2ljb25zLnR0ZlwiKSBmb3JtYXQoJ3RydWV0eXBlJyksIHVybChcIi4uLy4uLy4uLy4uL2ZvbnRzL3NlbWFudGljLXVpL2ljb25zLnN2ZyNpY29uc1wiKSBmb3JtYXQoJ3N2ZycpO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtdmFyaWFudDogbm9ybWFsO1xuICB0ZXh0LWRlY29yYXRpb246IGluaGVyaXQ7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICBmb250LWRpc3BsYXk6IHN3YXA7XG59XG5pLmljb24ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG9wYWNpdHk6IDE7XG4gIG1hcmdpbjogMGVtIDAuMjVyZW0gMGVtIDBlbTtcbiAgd2lkdGg6IDEuMThlbTtcbiAgaGVpZ2h0OiAxZW07XG4gIGZvbnQtZmFtaWx5OiAnSWNvbnMnO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIHRleHQtZGVjb3JhdGlvbjogaW5oZXJpdDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBzcGVhazogbm9uZTtcbiAgZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xufVxuaS5pY29uOmJlZm9yZSB7XG4gIGJhY2tncm91bmQ6IG5vbmUgIWltcG9ydGFudDtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgVHlwZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgTG9hZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbmkuaWNvbi5sb2FkaW5nIHtcbiAgaGVpZ2h0OiAxZW07XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBhbmltYXRpb246IGljb24tbG9hZGluZyAycyBsaW5lYXIgaW5maW5pdGU7XG59XG5Aa2V5ZnJhbWVzIGljb24tbG9hZGluZyB7XG4gIGZyb20ge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xuICB9XG4gIHRvIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpO1xuICB9XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbmkuaWNvbi5ob3ZlciB7XG4gIG9wYWNpdHk6IDEgIWltcG9ydGFudDtcbn1cbmkuaWNvbi5hY3RpdmUge1xuICBvcGFjaXR5OiAxICFpbXBvcnRhbnQ7XG59XG5pLmVtcGhhc2l6ZWQuaWNvbiB7XG4gIG9wYWNpdHk6IDEgIWltcG9ydGFudDtcbn1cbmkuZGlzYWJsZWQuaWNvbiB7XG4gIG9wYWNpdHk6IDAuNDUgIWltcG9ydGFudDtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFZhcmlhdGlvbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRml0dGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5pLmZpdHRlZC5pY29uIHtcbiAgd2lkdGg6IGF1dG87XG4gIG1hcmdpbjogMGVtO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgICBMaW5rXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5pLmxpbmsuaWNvbixcbmkubGluay5pY29ucyB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgb3BhY2l0eTogMC44O1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMXMgZWFzZTtcbn1cbmkubGluay5pY29uOmhvdmVyLFxuaS5saW5rLmljb25zOmhvdmVyIHtcbiAgb3BhY2l0eTogMSAhaW1wb3J0YW50O1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBDaXJjdWxhclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuaS5jaXJjdWxhci5pY29uIHtcbiAgYm9yZGVyLXJhZGl1czogNTAwZW0gIWltcG9ydGFudDtcbiAgbGluZS1oZWlnaHQ6IDEgIWltcG9ydGFudDtcbiAgcGFkZGluZzogMC41ZW0gMC41ZW0gIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogMGVtIDBlbSAwZW0gMC4xZW0gcmdiYSgwLCAwLCAwLCAwLjEpIGluc2V0O1xuICB3aWR0aDogMmVtICFpbXBvcnRhbnQ7XG4gIGhlaWdodDogMmVtICFpbXBvcnRhbnQ7XG59XG5pLmNpcmN1bGFyLmludmVydGVkLmljb24ge1xuICBib3JkZXI6IG5vbmU7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEZsaXBwZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbmkuZmxpcHBlZC5pY29uLFxuaS5ob3Jpem9udGFsbHkuZmxpcHBlZC5pY29uIHtcbiAgdHJhbnNmb3JtOiBzY2FsZSgtMSwgMSk7XG59XG5pLnZlcnRpY2FsbHkuZmxpcHBlZC5pY29uIHtcbiAgdHJhbnNmb3JtOiBzY2FsZSgxLCAtMSk7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFJvdGF0ZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbmkucm90YXRlZC5pY29uLFxuaS5yaWdodC5yb3RhdGVkLmljb24sXG5pLmNsb2Nrd2lzZS5yb3RhdGVkLmljb24ge1xuICB0cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZyk7XG59XG5pLmxlZnQucm90YXRlZC5pY29uLFxuaS5jb3VudGVyY2xvY2t3aXNlLnJvdGF0ZWQuaWNvbiB7XG4gIHRyYW5zZm9ybTogcm90YXRlKC05MGRlZyk7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcmVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5pLmJvcmRlcmVkLmljb24ge1xuICBsaW5lLWhlaWdodDogMTtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xuICB3aWR0aDogMmVtO1xuICBoZWlnaHQ6IDJlbTtcbiAgcGFkZGluZzogMC41ZW0gMC40MWVtICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IDBlbSAwZW0gMGVtIDAuMWVtIHJnYmEoMCwgMCwgMCwgMC4xKSBpbnNldDtcbn1cbmkuYm9yZGVyZWQuaW52ZXJ0ZWQuaWNvbiB7XG4gIGJvcmRlcjogbm9uZTtcbiAgYm94LXNoYWRvdzogbm9uZTtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgSW52ZXJ0ZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkIFNoYXBlcyAqL1xuaS5pbnZlcnRlZC5ib3JkZXJlZC5pY29uLFxuaS5pbnZlcnRlZC5jaXJjdWxhci5pY29uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDAwMCAhaW1wb3J0YW50O1xuICBjb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xufVxuaS5pbnZlcnRlZC5pY29uIHtcbiAgY29sb3I6ICNmZmZmZmY7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFJlZCAqL1xuaS5yZWQuaWNvbiB7XG4gIGNvbG9yOiAjZGUzYTNlICFpbXBvcnRhbnQ7XG59XG5pLmludmVydGVkLnJlZC5pY29uIHtcbiAgY29sb3I6ICNGRjY5NUUgIWltcG9ydGFudDtcbn1cbmkuaW52ZXJ0ZWQuYm9yZGVyZWQucmVkLmljb24sXG5pLmludmVydGVkLmNpcmN1bGFyLnJlZC5pY29uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2RlM2EzZSAhaW1wb3J0YW50O1xuICBjb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xufVxuLyogT3JhbmdlICovXG5pLm9yYW5nZS5pY29uIHtcbiAgY29sb3I6ICNmZjk1MzMgIWltcG9ydGFudDtcbn1cbmkuaW52ZXJ0ZWQub3JhbmdlLmljb24ge1xuICBjb2xvcjogI0ZGODUxQiAhaW1wb3J0YW50O1xufVxuaS5pbnZlcnRlZC5ib3JkZXJlZC5vcmFuZ2UuaWNvbixcbmkuaW52ZXJ0ZWQuY2lyY3VsYXIub3JhbmdlLmljb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmY5NTMzICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG59XG4vKiBZZWxsb3cgKi9cbmkueWVsbG93Lmljb24ge1xuICBjb2xvcjogI0ZCQkQwOCAhaW1wb3J0YW50O1xufVxuaS5pbnZlcnRlZC55ZWxsb3cuaWNvbiB7XG4gIGNvbG9yOiAjRkZFMjFGICFpbXBvcnRhbnQ7XG59XG5pLmludmVydGVkLmJvcmRlcmVkLnllbGxvdy5pY29uLFxuaS5pbnZlcnRlZC5jaXJjdWxhci55ZWxsb3cuaWNvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGQkJEMDggIWltcG9ydGFudDtcbiAgY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcbn1cbi8qIE9saXZlICovXG5pLm9saXZlLmljb24ge1xuICBjb2xvcjogI0I1Q0MxOCAhaW1wb3J0YW50O1xufVxuaS5pbnZlcnRlZC5vbGl2ZS5pY29uIHtcbiAgY29sb3I6ICNEOUU3NzggIWltcG9ydGFudDtcbn1cbmkuaW52ZXJ0ZWQuYm9yZGVyZWQub2xpdmUuaWNvbixcbmkuaW52ZXJ0ZWQuY2lyY3VsYXIub2xpdmUuaWNvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNCNUNDMTggIWltcG9ydGFudDtcbiAgY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcbn1cbi8qIEdyZWVuICovXG5pLmdyZWVuLmljb24ge1xuICBjb2xvcjogIzE5YTUzMSAhaW1wb3J0YW50O1xufVxuaS5pbnZlcnRlZC5ncmVlbi5pY29uIHtcbiAgY29sb3I6ICMyRUNDNDAgIWltcG9ydGFudDtcbn1cbmkuaW52ZXJ0ZWQuYm9yZGVyZWQuZ3JlZW4uaWNvbixcbmkuaW52ZXJ0ZWQuY2lyY3VsYXIuZ3JlZW4uaWNvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxOWE1MzEgIWltcG9ydGFudDtcbiAgY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcbn1cbi8qIFRlYWwgKi9cbmkudGVhbC5pY29uIHtcbiAgY29sb3I6ICMwMEI1QUQgIWltcG9ydGFudDtcbn1cbmkuaW52ZXJ0ZWQudGVhbC5pY29uIHtcbiAgY29sb3I6ICM2REZGRkYgIWltcG9ydGFudDtcbn1cbmkuaW52ZXJ0ZWQuYm9yZGVyZWQudGVhbC5pY29uLFxuaS5pbnZlcnRlZC5jaXJjdWxhci50ZWFsLmljb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDBCNUFEICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG59XG4vKiBCbHVlICovXG5pLmJsdWUuaWNvbiB7XG4gIGNvbG9yOiAjM2Y1MWI1ICFpbXBvcnRhbnQ7XG59XG5pLmludmVydGVkLmJsdWUuaWNvbiB7XG4gIGNvbG9yOiAjNTRDOEZGICFpbXBvcnRhbnQ7XG59XG5pLmludmVydGVkLmJvcmRlcmVkLmJsdWUuaWNvbixcbmkuaW52ZXJ0ZWQuY2lyY3VsYXIuYmx1ZS5pY29uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzNmNTFiNSAhaW1wb3J0YW50O1xuICBjb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xufVxuLyogVmlvbGV0ICovXG5pLnZpb2xldC5pY29uIHtcbiAgY29sb3I6ICM2NDM1QzkgIWltcG9ydGFudDtcbn1cbmkuaW52ZXJ0ZWQudmlvbGV0Lmljb24ge1xuICBjb2xvcjogI0EyOTFGQiAhaW1wb3J0YW50O1xufVxuaS5pbnZlcnRlZC5ib3JkZXJlZC52aW9sZXQuaWNvbixcbmkuaW52ZXJ0ZWQuY2lyY3VsYXIudmlvbGV0Lmljb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNjQzNUM5ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG59XG4vKiBQdXJwbGUgKi9cbmkucHVycGxlLmljb24ge1xuICBjb2xvcjogI0EzMzNDOCAhaW1wb3J0YW50O1xufVxuaS5pbnZlcnRlZC5wdXJwbGUuaWNvbiB7XG4gIGNvbG9yOiAjREM3M0ZGICFpbXBvcnRhbnQ7XG59XG5pLmludmVydGVkLmJvcmRlcmVkLnB1cnBsZS5pY29uLFxuaS5pbnZlcnRlZC5jaXJjdWxhci5wdXJwbGUuaWNvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNBMzMzQzggIWltcG9ydGFudDtcbiAgY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcbn1cbi8qIFBpbmsgKi9cbmkucGluay5pY29uIHtcbiAgY29sb3I6ICNFMDM5OTcgIWltcG9ydGFudDtcbn1cbmkuaW52ZXJ0ZWQucGluay5pY29uIHtcbiAgY29sb3I6ICNGRjhFREYgIWltcG9ydGFudDtcbn1cbmkuaW52ZXJ0ZWQuYm9yZGVyZWQucGluay5pY29uLFxuaS5pbnZlcnRlZC5jaXJjdWxhci5waW5rLmljb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRTAzOTk3ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG59XG4vKiBCcm93biAqL1xuaS5icm93bi5pY29uIHtcbiAgY29sb3I6ICNBNTY3M0YgIWltcG9ydGFudDtcbn1cbmkuaW52ZXJ0ZWQuYnJvd24uaWNvbiB7XG4gIGNvbG9yOiAjRDY3QzFDICFpbXBvcnRhbnQ7XG59XG5pLmludmVydGVkLmJvcmRlcmVkLmJyb3duLmljb24sXG5pLmludmVydGVkLmNpcmN1bGFyLmJyb3duLmljb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjQTU2NzNGICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG59XG4vKiBHcmV5ICovXG5pLmdyZXkuaWNvbiB7XG4gIGNvbG9yOiAjNzY3Njc2ICFpbXBvcnRhbnQ7XG59XG5pLmludmVydGVkLmdyZXkuaWNvbiB7XG4gIGNvbG9yOiAjRENERERFICFpbXBvcnRhbnQ7XG59XG5pLmludmVydGVkLmJvcmRlcmVkLmdyZXkuaWNvbixcbmkuaW52ZXJ0ZWQuY2lyY3VsYXIuZ3JleS5pY29uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzc2NzY3NiAhaW1wb3J0YW50O1xuICBjb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xufVxuLyogQmxhY2sgKi9cbmkuYmxhY2suaWNvbiB7XG4gIGNvbG9yOiAjMDAwMDAwICFpbXBvcnRhbnQ7XG59XG5pLmludmVydGVkLmJsYWNrLmljb24ge1xuICBjb2xvcjogIzU0NTQ1NCAhaW1wb3J0YW50O1xufVxuaS5pbnZlcnRlZC5ib3JkZXJlZC5ibGFjay5pY29uLFxuaS5pbnZlcnRlZC5jaXJjdWxhci5ibGFjay5pY29uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDAwMCAhaW1wb3J0YW50O1xuICBjb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5pLm1pbmkuaWNvbixcbmkubWluaS5pY29ucyB7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBmb250LXNpemU6IDAuNGVtO1xufVxuaS50aW55Lmljb24sXG5pLnRpbnkuaWNvbnMge1xuICBsaW5lLWhlaWdodDogMTtcbiAgZm9udC1zaXplOiAwLjVlbTtcbn1cbmkuc21hbGwuaWNvbixcbmkuc21hbGwuaWNvbnMge1xuICBsaW5lLWhlaWdodDogMTtcbiAgZm9udC1zaXplOiAwLjc1ZW07XG59XG5pLmljb24sXG5pLmljb25zIHtcbiAgZm9udC1zaXplOiAxZW07XG59XG5pLmxhcmdlLmljb24sXG5pLmxhcmdlLmljb25zIHtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIGZvbnQtc2l6ZTogMS41ZW07XG59XG5pLmJpZy5pY29uLFxuaS5iaWcuaWNvbnMge1xuICBsaW5lLWhlaWdodDogMTtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgZm9udC1zaXplOiAyZW07XG59XG5pLmh1Z2UuaWNvbixcbmkuaHVnZS5pY29ucyB7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBmb250LXNpemU6IDRlbTtcbn1cbmkubWFzc2l2ZS5pY29uLFxuaS5tYXNzaXZlLmljb25zIHtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIGZvbnQtc2l6ZTogOGVtO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIEdyb3Vwc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbmkuaWNvbnMge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbGluZS1oZWlnaHQ6IDE7XG59XG5pLmljb25zIC5pY29uIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgbGVmdDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSkgdHJhbnNsYXRlWSgtNTAlKTtcbiAgbWFyZ2luOiAwZW07XG4gIG1hcmdpbjogMDtcbn1cbmkuaWNvbnMgLmljb246Zmlyc3QtY2hpbGQge1xuICBwb3NpdGlvbjogc3RhdGljO1xuICB3aWR0aDogYXV0bztcbiAgaGVpZ2h0OiBhdXRvO1xuICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICB0cmFuc2Zvcm06IG5vbmU7XG4gIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbn1cbi8qIENvcm5lciBJY29uICovXG5pLmljb25zIC5jb3JuZXIuaWNvbiB7XG4gIHRvcDogYXV0bztcbiAgbGVmdDogYXV0bztcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgdHJhbnNmb3JtOiBub25lO1xuICBmb250LXNpemU6IDAuNDVlbTtcbiAgdGV4dC1zaGFkb3c6IC0xcHggLTFweCAwICNmZmZmZmYsIDFweCAtMXB4IDAgI2ZmZmZmZiwgLTFweCAxcHggMCAjZmZmZmZmLCAxcHggMXB4IDAgI2ZmZmZmZjtcbn1cbmkuaWNvbnMgLmludmVydGVkLmNvcm5lci5pY29uIHtcbiAgdGV4dC1zaGFkb3c6IC0xcHggLTFweCAwICMwMDAwMDAsIDFweCAtMXB4IDAgIzAwMDAwMCwgLTFweCAxcHggMCAjMDAwMDAwLCAxcHggMXB4IDAgIzAwMDAwMDtcbn1cbi8qXG4gKiBGb250IEF3ZXNvbWUgNS4wLjYgYnkgQGZvbnRhd2Vzb21lIC0gaHR0cDovL2ZvbnRhd2Vzb21lLmlvIC0gQGZvbnRhd2Vzb21lXG4gKiBMaWNlbnNlIC0gaHR0cHM6Ly9mb250YXdlc29tZS5jb20vbGljZW5zZSAoSWNvbnM6IENDIEJZIDQuMCBMaWNlbnNlLCBGb250czogU0lMIE9GTCAxLjEgTGljZW5zZSwgQ1NTOiBNSVQgTGljZW5zZSlcbiAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcblxuU2VtYW50aWMtVUkgaW50ZWdyYXRpb24gb2YgZm9udC1hd2Vzb21lIDpcblxuLy8vY2xhc3MgbmFtZXMgYXJlIHNlcGFyYXRlZFxuaS5pY29uLmNpcmNsZSA9PiBpLmljb24uY2lyY2xlXG5pLmljb24uY2lyY2xlLW8gPT4gaS5pY29uLmNpcmNsZS5vdXRsaW5lXG5cbi8vYWJicmV2aWF0aW9uIGFyZSByZXBsYWNlZCBieSBmdWxsIGxldHRlcnM6XG5pLmljb24uZWxsaXBzaXMtaCA9PiBpLmljb24uZWxsaXBzaXMuaG9yaXpvbnRhbFxuaS5pY29uLmVsbGlwc2lzLXYgPT4gaS5pY29uLmVsbGlwc2lzLnZlcnRpY2FsXG4uYWxwaGEgPT4gLmkuaWNvbi5hbHBoYWJldFxuLmFzYyA9PiAuaS5pY29uLmFzY2VuZGluZ1xuLmRlc2MgPT4gLmkuaWNvbi5kZXNjZW5kaW5nXG4uYWx0ID0+LmFsdGVybmF0ZVxuXG5BU0NJSSBvcmRlciBpcyBjb25zZXJ2ZWQgZm9yIGVhc2llciBtYWludGVuYW5jZS5cblxuSWNvbnMgdGhhdCBvbmx5IGhhdmUgb25lIHN0eWxlICdvdXRsaW5lJywgJ3NxdWFyZScgZXRjIGRvIG5vdCByZXF1aXJlIHRoaXMgY2xhc3NcbmZvciBpbnN0YW5jZSBgbGVtb24gaWNvbmAgbm90IGBsZW1vbiBvdXRsaW5lIGljb25gIHNpbmNlIHRoZXJlIGlzIG9ubHkgb25lIGxlbW9uXG5cbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgSWNvbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBBY2Nlc3NpYmlsaXR5ICovXG5pLmljb24uYW1lcmljYW4uc2lnbi5sYW5ndWFnZS5pbnRlcnByZXRpbmc6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyYTNcIjtcbn1cbmkuaWNvbi5hc3Npc3RpdmUubGlzdGVuaW5nLnN5c3RlbXM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyYTJcIjtcbn1cbmkuaWNvbi5hdWRpby5kZXNjcmlwdGlvbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI5ZVwiO1xufVxuaS5pY29uLmJsaW5kOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjlkXCI7XG59XG5pLmljb24uYnJhaWxsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJhMVwiO1xufVxuaS5pY29uLmNsb3NlZC5jYXB0aW9uaW5nLm91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzMjdcIjtcbn1cbmkuaWNvbi5jbG9zZWQuY2FwdGlvbmluZzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIwYVwiO1xufVxuaS5pY29uLmRlYWY6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyYTRcIjtcbn1cbmkuaWNvbi5sb3cudmlzaW9uOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmE4XCI7XG59XG5pLmljb24ucGhvbmUudm9sdW1lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmEwXCI7XG59XG5pLmljb24ucXVlc3Rpb24uY2lyY2xlLm91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY2MjhcIjtcbn1cbmkuaWNvbi5xdWVzdGlvbi5jaXJjbGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwNTlcIjtcbn1cbmkuaWNvbi5zaWduLmxhbmd1YWdlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmE3XCI7XG59XG5pLmljb24udHR5OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWU0XCI7XG59XG5pLmljb24udW5pdmVyc2FsLmFjY2VzczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI5YVwiO1xufVxuaS5pY29uLndoZWVsY2hhaXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxOTNcIjtcbn1cbi8qIEFycm93cyAqL1xuaS5pY29uLmFuZ2xlLmRvdWJsZS5kb3duOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTAzXCI7XG59XG5pLmljb24uYW5nbGUuZG91YmxlLmxlZnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMDBcIjtcbn1cbmkuaWNvbi5hbmdsZS5kb3VibGUucmlnaHQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMDFcIjtcbn1cbmkuaWNvbi5hbmdsZS5kb3VibGUudXA6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMDJcIjtcbn1cbmkuaWNvbi5hbmdsZS5kb3duOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTA3XCI7XG59XG5pLmljb24uYW5nbGUubGVmdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEwNFwiO1xufVxuaS5pY29uLmFuZ2xlLnJpZ2h0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTA1XCI7XG59XG5pLmljb24uYW5nbGUudXA6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMDZcIjtcbn1cbmkuaWNvbi5hcnJvdy5hbHRlcm5hdGUuY2lyY2xlLmRvd24ub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjYwOFwiO1xufVxuaS5pY29uLmFycm93LmFsdGVybmF0ZS5jaXJjbGUuZG93bjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjM1OFwiO1xufVxuaS5pY29uLmFycm93LmFsdGVybmF0ZS5jaXJjbGUubGVmdC5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNjA1XCI7XG59XG5pLmljb24uYXJyb3cuYWx0ZXJuYXRlLmNpcmNsZS5sZWZ0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzU5XCI7XG59XG5pLmljb24uYXJyb3cuYWx0ZXJuYXRlLmNpcmNsZS5yaWdodC5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzA0XCI7XG59XG5pLmljb24uYXJyb3cuYWx0ZXJuYXRlLmNpcmNsZS5yaWdodDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjM1YVwiO1xufVxuaS5pY29uLmFycm93LmFsdGVybmF0ZS5jaXJjbGUudXAub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjMwNVwiO1xufVxuaS5pY29uLmFycm93LmFsdGVybmF0ZS5jaXJjbGUudXA6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzNWJcIjtcbn1cbmkuaWNvbi5hcnJvdy5jaXJjbGUuZG93bjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBhYlwiO1xufVxuaS5pY29uLmFycm93LmNpcmNsZS5sZWZ0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGE4XCI7XG59XG5pLmljb24uYXJyb3cuY2lyY2xlLnJpZ2h0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGE5XCI7XG59XG5pLmljb24uYXJyb3cuY2lyY2xlLnVwOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGFhXCI7XG59XG5pLmljb24uYXJyb3cuZG93bjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA2M1wiO1xufVxuaS5pY29uLmFycm93LmxlZnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwNjBcIjtcbn1cbmkuaWNvbi5hcnJvdy5yaWdodDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA2MVwiO1xufVxuaS5pY29uLmFycm93LnVwOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDYyXCI7XG59XG5pLmljb24uYXJyb3dzLmFsdGVybmF0ZS5ob3Jpem9udGFsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzM3XCI7XG59XG5pLmljb24uYXJyb3dzLmFsdGVybmF0ZS52ZXJ0aWNhbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjMzOFwiO1xufVxuaS5pY29uLmFycm93cy5hbHRlcm5hdGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwYjJcIjtcbn1cbmkuaWNvbi5jYXJldC5kb3duOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGQ3XCI7XG59XG5pLmljb24uY2FyZXQubGVmdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBkOVwiO1xufVxuaS5pY29uLmNhcmV0LnJpZ2h0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGRhXCI7XG59XG5pLmljb24uY2FyZXQuc3F1YXJlLmRvd24ub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjMxNlwiO1xufVxuaS5pY29uLmNhcmV0LnNxdWFyZS5kb3duOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTUwXCI7XG59XG5pLmljb24uY2FyZXQuc3F1YXJlLmxlZnQub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjMxN1wiO1xufVxuaS5pY29uLmNhcmV0LnNxdWFyZS5sZWZ0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTkxXCI7XG59XG5pLmljb24uY2FyZXQuc3F1YXJlLnJpZ2h0Lm91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzMThcIjtcbn1cbmkuaWNvbi5jYXJldC5zcXVhcmUucmlnaHQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNTJcIjtcbn1cbmkuaWNvbi5jYXJldC5zcXVhcmUudXAub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjMxOVwiO1xufVxuaS5pY29uLmNhcmV0LnNxdWFyZS51cDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE1MVwiO1xufVxuaS5pY29uLmNhcmV0LnVwOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGQ4XCI7XG59XG5pLmljb24uY2FydC5hcnJvdy5kb3duOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjE4XCI7XG59XG5pLmljb24uY2hhcnQubGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIwMVwiO1xufVxuaS5pY29uLmNoZXZyb24uY2lyY2xlLmRvd246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxM2FcIjtcbn1cbmkuaWNvbi5jaGV2cm9uLmNpcmNsZS5sZWZ0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTM3XCI7XG59XG5pLmljb24uY2hldnJvbi5jaXJjbGUucmlnaHQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMzhcIjtcbn1cbmkuaWNvbi5jaGV2cm9uLmNpcmNsZS51cDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEzOVwiO1xufVxuaS5pY29uLmNoZXZyb24uZG93bjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA3OFwiO1xufVxuaS5pY29uLmNoZXZyb24ubGVmdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA1M1wiO1xufVxuaS5pY29uLmNoZXZyb24ucmlnaHQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwNTRcIjtcbn1cbmkuaWNvbi5jaGV2cm9uLnVwOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDc3XCI7XG59XG5pLmljb24uY2xvdWQuZG93bmxvYWQuYWx0ZXJuYXRlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNjAwXCI7XG59XG5pLmljb24uY2xvdWQudXBsb2FkLmFsdGVybmF0ZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjYwMVwiO1xufVxuaS5pY29uLmRvd25sb2FkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDE5XCI7XG59XG5pLmljb24uZXhjaGFuZ2UuYWx0ZXJuYXRlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzYyXCI7XG59XG5pLmljb24uZXhwYW5kLmFycm93cy5hbHRlcm5hdGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzMWVcIjtcbn1cbmkuaWNvbi5leHRlcm5hbC5saW5rLmFsdGVybmF0ZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjM1ZFwiO1xufVxuaS5pY29uLmV4dGVybmFsLmxpbmsuc3F1YXJlLmFsdGVybmF0ZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjM2MFwiO1xufVxuaS5pY29uLmhhbmQucG9pbnQuZG93bi5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNjAyXCI7XG59XG5pLmljb24uaGFuZC5wb2ludC5kb3duOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGE3XCI7XG59XG5pLmljb24uaGFuZC5wb2ludC5sZWZ0Lm91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzNjFcIjtcbn1cbmkuaWNvbi5oYW5kLnBvaW50LmxlZnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwYTVcIjtcbn1cbmkuaWNvbi5oYW5kLnBvaW50LnJpZ2h0Lm91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzNjJcIjtcbn1cbmkuaWNvbi5oYW5kLnBvaW50LnJpZ2h0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGE0XCI7XG59XG5pLmljb24uaGFuZC5wb2ludC51cC5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzYzXCI7XG59XG5pLmljb24uaGFuZC5wb2ludC51cDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBhNlwiO1xufVxuaS5pY29uLmhhbmQucG9pbnRlci5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzY0XCI7XG59XG5pLmljb24uaGFuZC5wb2ludGVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjVhXCI7XG59XG5pLmljb24uaGlzdG9yeTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFkYVwiO1xufVxuaS5pY29uLmxldmVsLmRvd24uYWx0ZXJuYXRlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2JlXCI7XG59XG5pLmljb24ubGV2ZWwudXAuYWx0ZXJuYXRlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2JmXCI7XG59XG5pLmljb24ubG9jYXRpb24uYXJyb3c6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMjRcIjtcbn1cbmkuaWNvbi5sb25nLmFycm93LmFsdGVybmF0ZS5kb3duOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzA5XCI7XG59XG5pLmljb24ubG9uZy5hcnJvdy5hbHRlcm5hdGUubGVmdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjMwYVwiO1xufVxuaS5pY29uLmxvbmcuYXJyb3cuYWx0ZXJuYXRlLnJpZ2h0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzBiXCI7XG59XG5pLmljb24ubG9uZy5hcnJvdy5hbHRlcm5hdGUudXA6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzMGNcIjtcbn1cbmkuaWNvbi5tb3VzZS5wb2ludGVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjQ1XCI7XG59XG5pLmljb24ucGxheTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA0YlwiO1xufVxuaS5pY29uLnJhbmRvbTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA3NFwiO1xufVxuaS5pY29uLnJlY3ljbGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxYjhcIjtcbn1cbmkuaWNvbi5yZWRvLmFsdGVybmF0ZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJmOVwiO1xufVxuaS5pY29uLnJlZG86YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMWVcIjtcbn1cbmkuaWNvbi5yZXBseS5hbGw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMjJcIjtcbn1cbmkuaWNvbi5yZXBseTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNlNVwiO1xufVxuaS5pY29uLnJldHdlZXQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwNzlcIjtcbn1cbmkuaWNvbi5zaGFyZS5zcXVhcmUub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjYzMVwiO1xufVxuaS5pY29uLnNoYXJlLnNxdWFyZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE0ZFwiO1xufVxuaS5pY29uLnNoYXJlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDY0XCI7XG59XG5pLmljb24uc2lnbi5pbi5hbHRlcm5hdGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyZjZcIjtcbn1cbmkuaWNvbi5zaWduLm91dC5hbHRlcm5hdGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyZjVcIjtcbn1cbmkuaWNvbi5zb3J0LmFscGhhYmV0LmRvd246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNWRcIjtcbn1cbmkuaWNvbi5zb3J0LmFscGhhYmV0LnVwOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTVlXCI7XG59XG5pLmljb24uc29ydC5hbW91bnQuZG93bjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE2MFwiO1xufVxuaS5pY29uLnNvcnQuYW1vdW50LnVwOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTYxXCI7XG59XG5pLmljb24uc29ydC5kb3duOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGRkXCI7XG59XG5pLmljb24uc29ydC5udW1lcmljLmRvd246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNjJcIjtcbn1cbmkuaWNvbi5zb3J0Lm51bWVyaWMudXA6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNjNcIjtcbn1cbmkuaWNvbi5zb3J0LnVwOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGRlXCI7XG59XG5pLmljb24uc29ydDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBkY1wiO1xufVxuaS5pY29uLnN5bmMuYWx0ZXJuYXRlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmYxXCI7XG59XG5pLmljb24uc3luYzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAyMVwiO1xufVxuaS5pY29uLnRleHQuaGVpZ2h0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDM0XCI7XG59XG5pLmljb24udGV4dC53aWR0aDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAzNVwiO1xufVxuaS5pY29uLnVuZG8uYWx0ZXJuYXRlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmVhXCI7XG59XG5pLmljb24udW5kbzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBlMlwiO1xufVxuaS5pY29uLnVwbG9hZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA5M1wiO1xufVxuLyogQXVkaW8gJiBWaWRlbyAqL1xuaS5pY29uLmJhY2t3YXJkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDRhXCI7XG59XG5pLmljb24uY2lyY2xlLm91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzMjNcIjtcbn1cbmkuaWNvbi5jaXJjbGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMTFcIjtcbn1cbmkuaWNvbi5jb21wcmVzczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA2NlwiO1xufVxuaS5pY29uLmVqZWN0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDUyXCI7XG59XG5pLmljb24uZXhwYW5kOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDY1XCI7XG59XG5pLmljb24uZmFzdC5iYWNrd2FyZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA0OVwiO1xufVxuaS5pY29uLmZhc3QuZm9yd2FyZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA1MFwiO1xufVxuaS5pY29uLmZpbGUuYXVkaW8ub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjM0MlwiO1xufVxuaS5pY29uLmZpbGUuYXVkaW86YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxYzdcIjtcbn1cbmkuaWNvbi5maWxlLnZpZGVvLm91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzNDhcIjtcbn1cbmkuaWNvbi5maWxlLnZpZGVvOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWM4XCI7XG59XG5pLmljb24uZmlsbTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAwOFwiO1xufVxuaS5pY29uLmZvcndhcmQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwNGVcIjtcbn1cbmkuaWNvbi5oZWFkcGhvbmVzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDI1XCI7XG59XG5pLmljb24ubWljcm9waG9uZS5zbGFzaDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEzMVwiO1xufVxuaS5pY29uLm1pY3JvcGhvbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMzBcIjtcbn1cbmkuaWNvbi5tdXNpYzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAwMVwiO1xufVxuaS5pY29uLnBhdXNlLmNpcmNsZS5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNjI1XCI7XG59XG5pLmljb24ucGF1c2UuY2lyY2xlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjhiXCI7XG59XG5pLmljb24ucGF1c2U6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwNGNcIjtcbn1cbmkuaWNvbi5wbGF5LmNpcmNsZS5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNjI2XCI7XG59XG5pLmljb24ucGxheS5jaXJjbGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNDRcIjtcbn1cbmkuaWNvbi5wb2RjYXN0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmNlXCI7XG59XG5pLmljb24ucnNzLnNxdWFyZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE0M1wiO1xufVxuaS5pY29uLnJzczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA5ZVwiO1xufVxuaS5pY29uLnN0ZXAuYmFja3dhcmQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwNDhcIjtcbn1cbmkuaWNvbi5zdGVwLmZvcndhcmQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwNTFcIjtcbn1cbmkuaWNvbi5zdG9wLmNpcmNsZS5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNjM2XCI7XG59XG5pLmljb24uc3RvcC5jaXJjbGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyOGRcIjtcbn1cbmkuaWNvbi5zdG9wOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDRkXCI7XG59XG5pLmljb24udmlkZW86YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwM2RcIjtcbn1cbmkuaWNvbi52b2x1bWUuZG93bjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAyN1wiO1xufVxuaS5pY29uLnZvbHVtZS5vZmY6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMjZcIjtcbn1cbmkuaWNvbi52b2x1bWUudXA6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMjhcIjtcbn1cbi8qIEJ1c2luZXNzICovXG5pLmljb24uYWRkcmVzcy5ib29rLm91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzMDBcIjtcbn1cbmkuaWNvbi5hZGRyZXNzLmJvb2s6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyYjlcIjtcbn1cbmkuaWNvbi5hZGRyZXNzLmNhcmQub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjMwMVwiO1xufVxuaS5pY29uLmFkZHJlc3MuY2FyZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJiYlwiO1xufVxuaS5pY29uLmFyY2hpdmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxODdcIjtcbn1cbmkuaWNvbi5iYWxhbmNlLnNjYWxlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjRlXCI7XG59XG5pLmljb24uYmlydGhkYXkuY2FrZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFmZFwiO1xufVxuaS5pY29uLmJvb2s6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMmRcIjtcbn1cbmkuaWNvbi5icmllZmNhc2U6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwYjFcIjtcbn1cbmkuaWNvbi5idWlsZGluZy5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNjAzXCI7XG59XG5pLmljb24uYnVpbGRpbmc6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxYWRcIjtcbn1cbmkuaWNvbi5idWxsaG9ybjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBhMVwiO1xufVxuaS5pY29uLmNhbGN1bGF0b3I6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxZWNcIjtcbn1cbmkuaWNvbi5jYWxlbmRhci5hbHRlcm5hdGUub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjMxMFwiO1xufVxuaS5pY29uLmNhbGVuZGFyLmFsdGVybmF0ZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA3M1wiO1xufVxuaS5pY29uLmNhbGVuZGFyLm91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzMTVcIjtcbn1cbmkuaWNvbi5jYWxlbmRhcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEzM1wiO1xufVxuaS5pY29uLmNlcnRpZmljYXRlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGEzXCI7XG59XG5pLmljb24uY2hhcnQuYXJlYTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFmZVwiO1xufVxuaS5pY29uLmNoYXJ0LmJhci5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzIwXCI7XG59XG5pLmljb24uY2hhcnQuYmFyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDgwXCI7XG59XG5pLmljb24uY2hhcnQucGllOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjAwXCI7XG59XG5pLmljb24uY2xpcGJvYXJkLm91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzMjRcIjtcbn1cbmkuaWNvbi5jbGlwYm9hcmQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzMjhcIjtcbn1cbmkuaWNvbi5jb2ZmZWU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwZjRcIjtcbn1cbmkuaWNvbi5jb2x1bW5zOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGRiXCI7XG59XG5pLmljb24uY29tcGFzcy5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzMxXCI7XG59XG5pLmljb24uY29tcGFzczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE0ZVwiO1xufVxuaS5pY29uLmNvcHkub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjMzMlwiO1xufVxuaS5pY29uLmNvcHk6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwYzVcIjtcbn1cbmkuaWNvbi5jb3B5cmlnaHQub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjMzM1wiO1xufVxuaS5pY29uLmNvcHlyaWdodDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFmOVwiO1xufVxuaS5pY29uLmN1dDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBjNFwiO1xufVxuaS5pY29uLmVkaXQub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjMzNlwiO1xufVxuaS5pY29uLmVkaXQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwNDRcIjtcbn1cbmkuaWNvbi5lbnZlbG9wZS5vcGVuLm91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzMzdcIjtcbn1cbmkuaWNvbi5lbnZlbG9wZS5vcGVuOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmI2XCI7XG59XG5pLmljb24uZW52ZWxvcGUub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjMzOFwiO1xufVxuaS5pY29uLmVudmVsb3BlLnNxdWFyZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE5OVwiO1xufVxuaS5pY29uLmVudmVsb3BlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGUwXCI7XG59XG5pLmljb24uZXJhc2VyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTJkXCI7XG59XG5pLmljb24uZmF4OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWFjXCI7XG59XG5pLmljb24uZmlsZS5hbHRlcm5hdGUub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjM0MFwiO1xufVxuaS5pY29uLmZpbGUuYWx0ZXJuYXRlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTVjXCI7XG59XG5pLmljb24uZmlsZS5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzUwXCI7XG59XG5pLmljb24uZmlsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE1YlwiO1xufVxuaS5pY29uLmZvbGRlci5vcGVuLm91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzNTJcIjtcbn1cbmkuaWNvbi5mb2xkZXIub3BlbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA3Y1wiO1xufVxuaS5pY29uLmZvbGRlci5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzUzXCI7XG59XG5pLmljb24uZm9sZGVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDdiXCI7XG59XG5pLmljb24uZ2xvYmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwYWNcIjtcbn1cbmkuaWNvbi5pbmR1c3RyeTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI3NVwiO1xufVxuaS5pY29uLnBhcGVyY2xpcDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBjNlwiO1xufVxuaS5pY29uLnBhc3RlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGVhXCI7XG59XG5pLmljb24ucGVuLnNxdWFyZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE0YlwiO1xufVxuaS5pY29uLnBlbmNpbC5hbHRlcm5hdGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzMDNcIjtcbn1cbmkuaWNvbi5wZXJjZW50OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjk1XCI7XG59XG5pLmljb24ucGhvbmUuc3F1YXJlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDk4XCI7XG59XG5pLmljb24ucGhvbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwOTVcIjtcbn1cbmkuaWNvbi5yZWdpc3RlcmVkLm91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY2MjlcIjtcbn1cbmkuaWNvbi5yZWdpc3RlcmVkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjVkXCI7XG59XG5pLmljb24uc2F2ZS5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNjMwXCI7XG59XG5pLmljb24uc2F2ZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBjN1wiO1xufVxuaS5pY29uLnNpdGVtYXA6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwZThcIjtcbn1cbmkuaWNvbi5zdGlja3kubm90ZS5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNjM1XCI7XG59XG5pLmljb24uc3RpY2t5Lm5vdGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyNDlcIjtcbn1cbmkuaWNvbi5zdWl0Y2FzZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBmMlwiO1xufVxuaS5pY29uLnRhYmxlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGNlXCI7XG59XG5pLmljb24udGFnOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDJiXCI7XG59XG5pLmljb24udGFnczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAyY1wiO1xufVxuaS5pY29uLnRhc2tzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGFlXCI7XG59XG5pLmljb24udGh1bWJ0YWNrOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDhkXCI7XG59XG5pLmljb24udHJhZGVtYXJrOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjVjXCI7XG59XG4vKiBDaGVzcyAqL1xuaS5pY29uLmNoZXNzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDM5XCI7XG59XG5pLmljb24uY2hlc3MuYmlzaG9wOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDNhXCI7XG59XG5pLmljb24uY2hlc3MuYm9hcmQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0M2NcIjtcbn1cbmkuaWNvbi5jaGVzcy5raW5nOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDNmXCI7XG59XG5pLmljb24uY2hlc3Mua25pZ2h0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDQxXCI7XG59XG5pLmljb24uY2hlc3MucGF3bjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQ0M1wiO1xufVxuaS5pY29uLmNoZXNzLnF1ZWVuOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDQ1XCI7XG59XG5pLmljb24uY2hlc3Mucm9jazpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQ0N1wiO1xufVxuaS5pY29uLnNxdWFyZS5mdWxsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDVjXCI7XG59XG4vKiBDb2RlICovXG5pLmljb24uYmFyY29kZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAyYVwiO1xufVxuaS5pY29uLmJhdGg6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyY2RcIjtcbn1cbmkuaWNvbi5idWc6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxODhcIjtcbn1cbmkuaWNvbi5jb2RlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTIxXCI7XG59XG5pLmljb24uY29kZS5icmFuY2g6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMjZcIjtcbn1cbmkuaWNvbi5maWxlLmNvZGUub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjM0M1wiO1xufVxuaS5pY29uLmZpbGUuY29kZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFjOVwiO1xufVxuaS5pY29uLmZpbHRlcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBiMFwiO1xufVxuaS5pY29uLmZpcmUuZXh0aW5ndWlzaGVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTM0XCI7XG59XG5pLmljb24ua2V5Ym9hcmQub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjM3N1wiO1xufVxuaS5pY29uLmtleWJvYXJkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTFjXCI7XG59XG5pLmljb24ubWljcm9jaGlwOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmRiXCI7XG59XG5pLmljb24ucXJjb2RlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDI5XCI7XG59XG5pLmljb24uc2hpZWxkLmFsdGVybmF0ZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNlZFwiO1xufVxuaS5pY29uLnRlcm1pbmFsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTIwXCI7XG59XG5pLmljb24udXNlci5zZWNyZXQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMWJcIjtcbn1cbmkuaWNvbi53aW5kb3cuY2xvc2Uub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjY0MlwiO1xufVxuaS5pY29uLndpbmRvdy5jbG9zZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQxMFwiO1xufVxuaS5pY29uLndpbmRvdy5tYXhpbWl6ZS5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNjQ0XCI7XG59XG5pLmljb24ud2luZG93Lm1heGltaXplOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmQwXCI7XG59XG5pLmljb24ud2luZG93Lm1pbmltaXplLm91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY2NDNcIjtcbn1cbmkuaWNvbi53aW5kb3cubWluaW1pemU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyZDFcIjtcbn1cbmkuaWNvbi53aW5kb3cucmVzdG9yZS5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDE2XCI7XG59XG5pLmljb24ud2luZG93LnJlc3RvcmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyZDJcIjtcbn1cbi8qIENvbW11bmljYXRpb24gKi9cbmkuaWNvbi5hdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFmYVwiO1xufVxuaS5pY29uLmJlbGwub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjMwN1wiO1xufVxuaS5pY29uLmJlbGwuc2xhc2gub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjMwNlwiO1xufVxuaS5pY29uLmJlbGwuc2xhc2g6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxZjZcIjtcbn1cbmkuaWNvbi5iZWxsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGYzXCI7XG59XG5pLmljb24uY29tbWVudC5hbHRlcm5hdGUub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjYwNFwiO1xufVxuaS5pY29uLmNvbW1lbnQuYWx0ZXJuYXRlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjdhXCI7XG59XG5pLmljb24uY29tbWVudC5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzI5XCI7XG59XG5pLmljb24uY29tbWVudDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA3NVwiO1xufVxuaS5pY29uLmNvbW1lbnRzLm91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzMzBcIjtcbn1cbmkuaWNvbi5jb21tZW50czpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA4NlwiO1xufVxuaS5pY29uLmluYm94OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDFjXCI7XG59XG5pLmljb24ubGFuZ3VhZ2U6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxYWJcIjtcbn1cbmkuaWNvbi5tb2JpbGUuYWx0ZXJuYXRlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2NkXCI7XG59XG5pLmljb24ubW9iaWxlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTBiXCI7XG59XG5pLmljb24ucGFwZXIucGxhbmUub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjM5MFwiO1xufVxuaS5pY29uLnBhcGVyLnBsYW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWQ4XCI7XG59XG5pLmljb24ud2lmaTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFlYlwiO1xufVxuLyogQ29tcHV0ZXJzICovXG5pLmljb24uZGVza3RvcDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEwOFwiO1xufVxuaS5pY29uLmhkZC5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNjExXCI7XG59XG5pLmljb24uaGRkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGEwXCI7XG59XG5pLmljb24ubGFwdG9wOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTA5XCI7XG59XG5pLmljb24ucGx1ZzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFlNlwiO1xufVxuaS5pY29uLnBvd2VyLm9mZjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAxMVwiO1xufVxuaS5pY29uLnByaW50OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDJmXCI7XG59XG5pLmljb24uc2VydmVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjMzXCI7XG59XG5pLmljb24udGFibGV0LmFsdGVybmF0ZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNmYVwiO1xufVxuaS5pY29uLnRhYmxldDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEwYVwiO1xufVxuaS5pY29uLnR2OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjZjXCI7XG59XG4vKiBDdXJyZW5jeSAqL1xuaS5pY29uLmRvbGxhci5zaWduOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTU1XCI7XG59XG5pLmljb24uZXVyby5zaWduOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTUzXCI7XG59XG5pLmljb24ubGlyYS5zaWduOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTk1XCI7XG59XG5pLmljb24ubW9uZXkuYmlsbC5hbHRlcm5hdGUub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjYyM1wiO1xufVxuaS5pY29uLm1vbmV5LmJpbGwuYWx0ZXJuYXRlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2QxXCI7XG59XG5pLmljb24ucG91bmQuc2lnbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE1NFwiO1xufVxuaS5pY29uLnJ1YmxlLnNpZ246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNThcIjtcbn1cbmkuaWNvbi5ydXBlZS5zaWduOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTU2XCI7XG59XG5pLmljb24uc2hla2VsLnNpZ246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMGJcIjtcbn1cbmkuaWNvbi53b24uc2lnbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE1OVwiO1xufVxuaS5pY29uLnllbi5zaWduOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTU3XCI7XG59XG4vKiBEYXRlICYgVGltZSAqL1xuaS5pY29uLmNhbGVuZGFyLmNoZWNrLm91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzMTFcIjtcbn1cbmkuaWNvbi5jYWxlbmRhci5jaGVjazpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI3NFwiO1xufVxuaS5pY29uLmNhbGVuZGFyLm1pbnVzLm91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzMTJcIjtcbn1cbmkuaWNvbi5jYWxlbmRhci5taW51czpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI3MlwiO1xufVxuaS5pY29uLmNhbGVuZGFyLnBsdXMub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjMxM1wiO1xufVxuaS5pY29uLmNhbGVuZGFyLnBsdXM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyNzFcIjtcbn1cbmkuaWNvbi5jYWxlbmRhci50aW1lcy5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzE0XCI7XG59XG5pLmljb24uY2FsZW5kYXIudGltZXM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyNzNcIjtcbn1cbmkuaWNvbi5jbG9jay5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzI1XCI7XG59XG5pLmljb24uY2xvY2s6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMTdcIjtcbn1cbmkuaWNvbi5ob3VyZ2xhc3MuZW5kOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjUzXCI7XG59XG5pLmljb24uaG91cmdsYXNzLmhhbGY6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyNTJcIjtcbn1cbmkuaWNvbi5ob3VyZ2xhc3Mub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjYxNFwiO1xufVxuaS5pY29uLmhvdXJnbGFzcy5zdGFydDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI1MVwiO1xufVxuaS5pY29uLmhvdXJnbGFzczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI1NFwiO1xufVxuaS5pY29uLnN0b3B3YXRjaDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJmMlwiO1xufVxuLyogRGVzaWduICovXG5pLmljb24uYWRqdXN0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDQyXCI7XG59XG5pLmljb24uY2xvbmUub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjMyNlwiO1xufVxuaS5pY29uLmNsb25lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjRkXCI7XG59XG5pLmljb24uY3JvcDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEyNVwiO1xufVxuaS5pY29uLmNyb3NzaGFpcnM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwNWJcIjtcbn1cbmkuaWNvbi5leWUuZHJvcHBlcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFmYlwiO1xufVxuaS5pY29uLmV5ZS5zbGFzaC5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzM5XCI7XG59XG5pLmljb24uZXllLnNsYXNoOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDcwXCI7XG59XG5pLmljb24uZXllOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDZlXCI7XG59XG5pLmljb24ub2JqZWN0Lmdyb3VwLm91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY2MjRcIjtcbn1cbmkuaWNvbi5vYmplY3QuZ3JvdXA6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyNDdcIjtcbn1cbmkuaWNvbi5vYmplY3QudW5ncm91cC5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzg5XCI7XG59XG5pLmljb24ub2JqZWN0LnVuZ3JvdXA6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyNDhcIjtcbn1cbmkuaWNvbi5wYWludC5icnVzaDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFmY1wiO1xufVxuaS5pY29uLnRpbnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwNDNcIjtcbn1cbi8qIEVkaXRvcnMgKi9cbmkuaWNvbi5hbGlnbi5jZW50ZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMzdcIjtcbn1cbmkuaWNvbi5hbGlnbi5qdXN0aWZ5OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDM5XCI7XG59XG5pLmljb24uYWxpZ24ubGVmdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAzNlwiO1xufVxuaS5pY29uLmFsaWduLnJpZ2h0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDM4XCI7XG59XG5pLmljb24uYm9sZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAzMlwiO1xufVxuaS5pY29uLmZvbnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMzFcIjtcbn1cbmkuaWNvbi5oZWFkaW5nOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWRjXCI7XG59XG5pLmljb24uaS5jdXJzb3I6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyNDZcIjtcbn1cbmkuaWNvbi5pbmRlbnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwM2NcIjtcbn1cbmkuaWNvbi5pdGFsaWM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMzNcIjtcbn1cbmkuaWNvbi5saW5rOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGMxXCI7XG59XG5pLmljb24ubGlzdC5hbHRlcm5hdGUub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjM4MVwiO1xufVxuaS5pY29uLmxpc3QuYWx0ZXJuYXRlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDIyXCI7XG59XG5pLmljb24ub3JkZXJlZC5saXN0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGNiXCI7XG59XG5pLmljb24udW5vcmRlcmVkLmxpc3Q6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwY2FcIjtcbn1cbmkuaWNvbi5saXN0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDNhXCI7XG59XG5pLmljb24ub3V0ZGVudDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAzYlwiO1xufVxuaS5pY29uLnBhcmFncmFwaDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFkZFwiO1xufVxuaS5pY29uLnF1b3RlLmxlZnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMGRcIjtcbn1cbmkuaWNvbi5xdW90ZS5yaWdodDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEwZVwiO1xufVxuaS5pY29uLnN0cmlrZXRocm91Z2g6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwY2NcIjtcbn1cbmkuaWNvbi5zdWJzY3JpcHQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMmNcIjtcbn1cbmkuaWNvbi5zdXBlcnNjcmlwdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEyYlwiO1xufVxuaS5pY29uLnRoLmxhcmdlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDA5XCI7XG59XG5pLmljb24udGgubGlzdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAwYlwiO1xufVxuaS5pY29uLnRoOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDBhXCI7XG59XG5pLmljb24udHJhc2guYWx0ZXJuYXRlLm91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY2NDBcIjtcbn1cbmkuaWNvbi50cmFzaC5hbHRlcm5hdGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyZWRcIjtcbn1cbmkuaWNvbi50cmFzaDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFmOFwiO1xufVxuaS5pY29uLnVuZGVybGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBjZFwiO1xufVxuaS5pY29uLnVubGluazpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEyN1wiO1xufVxuLyogRmlsZXMgKi9cbmkuaWNvbi5maWxlLmFyY2hpdmUub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjM0MVwiO1xufVxuaS5pY29uLmZpbGUuYXJjaGl2ZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFjNlwiO1xufVxuaS5pY29uLmZpbGUuZXhjZWwub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjM0NFwiO1xufVxuaS5pY29uLmZpbGUuZXhjZWw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxYzNcIjtcbn1cbmkuaWNvbi5maWxlLmltYWdlLm91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY2MTdcIjtcbn1cbmkuaWNvbi5maWxlLmltYWdlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWM1XCI7XG59XG5pLmljb24uZmlsZS5wZGYub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjM0NlwiO1xufVxuaS5pY29uLmZpbGUucGRmOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWMxXCI7XG59XG5pLmljb24uZmlsZS5wb3dlcnBvaW50Lm91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzNDdcIjtcbn1cbmkuaWNvbi5maWxlLnBvd2VycG9pbnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxYzRcIjtcbn1cbmkuaWNvbi5maWxlLndvcmQub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjM0OVwiO1xufVxuaS5pY29uLmZpbGUud29yZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFjMlwiO1xufVxuLyogR2VuZGVycyAqL1xuaS5pY29uLmdlbmRlcmxlc3M6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMmRcIjtcbn1cbmkuaWNvbi5tYXJzLmRvdWJsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIyN1wiO1xufVxuaS5pY29uLm1hcnMuc3Ryb2tlLmhvcml6b250YWw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMmJcIjtcbn1cbmkuaWNvbi5tYXJzLnN0cm9rZS52ZXJ0aWNhbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIyYVwiO1xufVxuaS5pY29uLm1hcnMuc3Ryb2tlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjI5XCI7XG59XG5pLmljb24ubWFyczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIyMlwiO1xufVxuaS5pY29uLm1lcmN1cnk6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMjNcIjtcbn1cbmkuaWNvbi5uZXV0ZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMmNcIjtcbn1cbmkuaWNvbi50cmFuc2dlbmRlci5hbHRlcm5hdGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMjVcIjtcbn1cbmkuaWNvbi50cmFuc2dlbmRlcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIyNFwiO1xufVxuaS5pY29uLnZlbnVzLmRvdWJsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIyNlwiO1xufVxuaS5pY29uLnZlbnVzLm1hcnM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMjhcIjtcbn1cbmkuaWNvbi52ZW51czpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIyMVwiO1xufVxuLyogSGFuZHMgKi9cbmkuaWNvbi5oYW5kLmxpemFyZC5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzU3XCI7XG59XG5pLmljb24uaGFuZC5saXphcmQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyNThcIjtcbn1cbmkuaWNvbi5oYW5kLnBhcGVyLm91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzNThcIjtcbn1cbmkuaWNvbi5oYW5kLnBhcGVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjU2XCI7XG59XG5pLmljb24uaGFuZC5wZWFjZS5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzU5XCI7XG59XG5pLmljb24uaGFuZC5wZWFjZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI1YlwiO1xufVxuaS5pY29uLmhhbmQucm9jay5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzY1XCI7XG59XG5pLmljb24uaGFuZC5yb2NrOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjU1XCI7XG59XG5pLmljb24uaGFuZC5zY2lzc29ycy5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzY2XCI7XG59XG5pLmljb24uaGFuZC5zY2lzc29yczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI1N1wiO1xufVxuaS5pY29uLmhhbmQuc3BvY2sub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjM2N1wiO1xufVxuaS5pY29uLmhhbmQuc3BvY2s6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyNTlcIjtcbn1cbmkuaWNvbi5oYW5kc2hha2Uub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjYxMFwiO1xufVxuaS5pY29uLmhhbmRzaGFrZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJiNVwiO1xufVxuaS5pY29uLnRodW1icy5kb3duLm91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0MDZcIjtcbn1cbmkuaWNvbi50aHVtYnMuZG93bjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE2NVwiO1xufVxuaS5pY29uLnRodW1icy51cC5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNjM4XCI7XG59XG5pLmljb24udGh1bWJzLnVwOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTY0XCI7XG59XG4vKiBIZWFsdGggKi9cbmkuaWNvbi5hbWJ1bGFuY2U6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwZjlcIjtcbn1cbmkuaWNvbi5oLnNxdWFyZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBmZFwiO1xufVxuaS5pY29uLmhlYXJ0Lm91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY2MTJcIjtcbn1cbmkuaWNvbi5oZWFydDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAwNFwiO1xufVxuaS5pY29uLmhlYXJ0YmVhdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIxZVwiO1xufVxuaS5pY29uLmhvc3BpdGFsLm91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY2MTNcIjtcbn1cbmkuaWNvbi5ob3NwaXRhbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBmOFwiO1xufVxuaS5pY29uLm1lZGtpdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBmYVwiO1xufVxuaS5pY29uLnBsdXMuc3F1YXJlLm91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY2MjdcIjtcbn1cbmkuaWNvbi5wbHVzLnNxdWFyZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBmZVwiO1xufVxuaS5pY29uLnN0ZXRob3Njb3BlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGYxXCI7XG59XG5pLmljb24udXNlci5kb2N0b3I6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwZjBcIjtcbn1cbi8qIEltYWdlcyAqL1xuaS5pY29uLmJvbHQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwZTdcIjtcbn1cbmkuaWNvbi5jYW1lcmEucmV0cm86YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwODNcIjtcbn1cbmkuaWNvbi5jYW1lcmE6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMzBcIjtcbn1cbmkuaWNvbi5pZC5iYWRnZS5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNjE1XCI7XG59XG5pLmljb24uaWQuYmFkZ2U6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyYzFcIjtcbn1cbmkuaWNvbi5pZC5jYXJkLm91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY2MTZcIjtcbn1cbmkuaWNvbi5pZC5jYXJkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmMyXCI7XG59XG5pLmljb24uaW1hZ2Uub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjYxN1wiO1xufVxuaS5pY29uLmltYWdlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDNlXCI7XG59XG5pLmljb24uaW1hZ2VzLm91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzNzZcIjtcbn1cbmkuaWNvbi5pbWFnZXM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzMDJcIjtcbn1cbmkuaWNvbi5zbGlkZXJzLmhvcml6b250YWw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxZGVcIjtcbn1cbi8qIEludGVyZmFjZXMgKi9cbmkuaWNvbi5iYW46YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwNWVcIjtcbn1cbmkuaWNvbi5iYXJzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGM5XCI7XG59XG5pLmljb24uYmVlcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBmY1wiO1xufVxuaS5pY29uLmJ1bGxzZXllOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTQwXCI7XG59XG5pLmljb24uY2hlY2suY2lyY2xlLm91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzMjFcIjtcbn1cbmkuaWNvbi5jaGVjay5jaXJjbGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwNThcIjtcbn1cbmkuaWNvbi5jaGVjay5zcXVhcmUub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjMyMlwiO1xufVxuaS5pY29uLmNoZWNrLnNxdWFyZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE0YVwiO1xufVxuaS5pY29uLmNoZWNrOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDBjXCI7XG59XG5pLmljb24uY2xvdWQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwYzJcIjtcbn1cbmkuaWNvbi5jb2c6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMTNcIjtcbn1cbmkuaWNvbi5jb2dzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDg1XCI7XG59XG5pLmljb24uZGF0YWJhc2U6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxYzBcIjtcbn1cbmkuaWNvbi5kb3QuY2lyY2xlLm91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzMzVcIjtcbn1cbmkuaWNvbi5kb3QuY2lyY2xlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTkyXCI7XG59XG5pLmljb24uZWxsaXBzaXMuaG9yaXpvbnRhbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE0MVwiO1xufVxuaS5pY29uLmVsbGlwc2lzLnZlcnRpY2FsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTQyXCI7XG59XG5pLmljb24uZXhjbGFtYXRpb24uY2lyY2xlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDZhXCI7XG59XG5pLmljb24uZXhjbGFtYXRpb24udHJpYW5nbGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwNzFcIjtcbn1cbmkuaWNvbi5leGNsYW1hdGlvbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEyYVwiO1xufVxuaS5pY29uLmZsYWcuY2hlY2tlcmVkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTFlXCI7XG59XG5pLmljb24uZmxhZy5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzUxXCI7XG59XG5pLmljb24uZmxhZzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAyNFwiO1xufVxuaS5pY29uLmZyb3duLm91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzNTRcIjtcbn1cbmkuaWNvbi5mcm93bjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjExOVwiO1xufVxuaS5pY29uLmhhc2h0YWc6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyOTJcIjtcbn1cbmkuaWNvbi5ob21lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDE1XCI7XG59XG5pLmljb24uaW5mby5jaXJjbGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwNWFcIjtcbn1cbmkuaWNvbi5pbmZvOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTI5XCI7XG59XG5pLmljb24ubWFnaWM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwZDBcIjtcbn1cbmkuaWNvbi5tZWgub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjYyMVwiO1xufVxuaS5pY29uLm1laDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjExYVwiO1xufVxuaS5pY29uLm1pbnVzLmNpcmNsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA1NlwiO1xufVxuaS5pY29uLm1pbnVzLnNxdWFyZS5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNjIyXCI7XG59XG5pLmljb24ubWludXMuc3F1YXJlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTQ2XCI7XG59XG5pLmljb24ubWludXM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwNjhcIjtcbn1cbmkuaWNvbi5wbHVzLmNpcmNsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA1NVwiO1xufVxuaS5pY29uLnBsdXM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwNjdcIjtcbn1cbmkuaWNvbi5xdWVzdGlvbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEyOFwiO1xufVxuaS5pY29uLnNlYXJjaC5taW51czpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAxMFwiO1xufVxuaS5pY29uLnNlYXJjaC5wbHVzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDBlXCI7XG59XG5pLmljb24uc2VhcmNoOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDAyXCI7XG59XG5pLmljb24uc2hhcmUuYWx0ZXJuYXRlLnNxdWFyZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFlMVwiO1xufVxuaS5pY29uLnNoYXJlLmFsdGVybmF0ZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFlMFwiO1xufVxuaS5pY29uLnNoaWVsZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNlZFwiO1xufVxuaS5pY29uLnNpZ25hbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAxMlwiO1xufVxuaS5pY29uLnNtaWxlLm91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzOThcIjtcbn1cbmkuaWNvbi5zbWlsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjExOFwiO1xufVxuaS5pY29uLnN0YXIuaGFsZi5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDAxXCI7XG59XG5pLmljb24uc3Rhci5oYWxmOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDg5XCI7XG59XG5pLmljb24uc3Rhci5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNjM0XCI7XG59XG5pLmljb24uc3RhcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAwNVwiO1xufVxuaS5pY29uLnRpbWVzLmNpcmNsZS5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNjM5XCI7XG59XG5pLmljb24udGltZXMuY2lyY2xlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDU3XCI7XG59XG5pLmljb24udGltZXM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMGRcIjtcbn1cbmkuaWNvbi50b2dnbGUub2ZmOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjA0XCI7XG59XG5pLmljb24udG9nZ2xlLm9uOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjA1XCI7XG59XG5pLmljb24udHJvcGh5OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDkxXCI7XG59XG5pLmljb24udXNlci5jaXJjbGUub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjYwNlwiO1xufVxuaS5pY29uLnVzZXIuY2lyY2xlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmJkXCI7XG59XG5pLmljb24udXNlci5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNjQxXCI7XG59XG5pLmljb24udXNlcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAwN1wiO1xufVxuLyogTWFwcyAqL1xuaS5pY29uLmFuY2hvcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEzZFwiO1xufVxuaS5pY29uLmJlZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIzNlwiO1xufVxuaS5pY29uLmJpY3ljbGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMDZcIjtcbn1cbmkuaWNvbi5iaW5vY3VsYXJzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWU1XCI7XG59XG5pLmljb24uYm9tYjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFlMlwiO1xufVxuaS5pY29uLmJvb2ttYXJrLm91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzMDhcIjtcbn1cbmkuaWNvbi5ib29rbWFyazpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAyZVwiO1xufVxuaS5pY29uLmNhcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFiOVwiO1xufVxuaS5pY29uLmZpZ2h0ZXIuamV0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGZiXCI7XG59XG5pLmljb24uZmlyZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA2ZFwiO1xufVxuaS5pY29uLmZsYXNrOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGMzXCI7XG59XG5pLmljb24uZ2FtZXBhZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjExYlwiO1xufVxuaS5pY29uLmdhdmVsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGUzXCI7XG59XG5pLmljb24uZ2lmdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA2YlwiO1xufVxuaS5pY29uLmdsYXNzLm1hcnRpbmk6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMDBcIjtcbn1cbmkuaWNvbi5ncmFkdWF0aW9uLmNhcDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE5ZFwiO1xufVxuaS5pY29uLmtleTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA4NFwiO1xufVxuaS5pY29uLmxlYWY6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwNmNcIjtcbn1cbmkuaWNvbi5sZW1vbi5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNjE4XCI7XG59XG5pLmljb24ubGVtb246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwOTRcIjtcbn1cbmkuaWNvbi5saWZlLnJpbmcub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjYxOVwiO1xufVxuaS5pY29uLmxpZmUucmluZzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFjZFwiO1xufVxuaS5pY29uLmxpZ2h0YnVsYi5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNjIwXCI7XG59XG5pLmljb24ubGlnaHRidWxiOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGViXCI7XG59XG5pLmljb24ubWFnbmV0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDc2XCI7XG59XG5pLmljb24ubWFsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE4M1wiO1xufVxuaS5pY29uLm1hcC5tYXJrZXIuYWx0ZXJuYXRlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2M1XCI7XG59XG5pLmljb24ubWFwLm1hcmtlcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA0MVwiO1xufVxuaS5pY29uLm1hcC5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzgyXCI7XG59XG5pLmljb24ubWFwLnBpbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI3NlwiO1xufVxuaS5pY29uLm1hcC5zaWduczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI3N1wiO1xufVxuaS5pY29uLm1hcDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI3OVwiO1xufVxuaS5pY29uLm1vdG9yY3ljbGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMWNcIjtcbn1cbmkuaWNvbi5uZXdzcGFwZXIub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjM4N1wiO1xufVxuaS5pY29uLm5ld3NwYXBlcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFlYVwiO1xufVxuaS5pY29uLnBhdzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFiMFwiO1xufVxuaS5pY29uLnBsYW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDcyXCI7XG59XG5pLmljb24ucm9hZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAxOFwiO1xufVxuaS5pY29uLnJvY2tldDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEzNVwiO1xufVxuaS5pY29uLnNoaXA6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMWFcIjtcbn1cbmkuaWNvbi5zaG9wcGluZy5iYWc6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyOTBcIjtcbn1cbmkuaWNvbi5zaG9wcGluZy5iYXNrZXQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyOTFcIjtcbn1cbmkuaWNvbi5zaG9wcGluZy5jYXJ0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDdhXCI7XG59XG5pLmljb24uc2hvd2VyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmNjXCI7XG59XG5pLmljb24uc3RyZWV0LnZpZXc6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMWRcIjtcbn1cbmkuaWNvbi5zdWJ3YXk6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMzlcIjtcbn1cbmkuaWNvbi50YXhpOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWJhXCI7XG59XG5pLmljb24udGlja2V0LmFsdGVybmF0ZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNmZlwiO1xufVxuaS5pY29uLnRyYWluOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjM4XCI7XG59XG5pLmljb24udHJlZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFiYlwiO1xufVxuaS5pY29uLnRydWNrOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGQxXCI7XG59XG5pLmljb24udW1icmVsbGE6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwZTlcIjtcbn1cbmkuaWNvbi51bml2ZXJzaXR5OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTljXCI7XG59XG5pLmljb24udXRlbnNpbC5zcG9vbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJlNVwiO1xufVxuaS5pY29uLnV0ZW5zaWxzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmU3XCI7XG59XG5pLmljb24ud3JlbmNoOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGFkXCI7XG59XG4vKiBPYmplY3RzICovXG5pLmljb24uYnVzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjA3XCI7XG59XG5pLmljb24uY3ViZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFiMlwiO1xufVxuaS5pY29uLmN1YmVzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWIzXCI7XG59XG5pLmljb24uZnV0Ym9sLm91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY2MzNcIjtcbn1cbmkuaWNvbi5mdXRib2w6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxZTNcIjtcbn1cbmkuaWNvbi5nZW0ub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjM1NlwiO1xufVxuaS5pY29uLmdlbTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNhNVwiO1xufVxuaS5pY29uLmxvY2sub3BlbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNjMVwiO1xufVxuaS5pY29uLmxvY2s6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMjNcIjtcbn1cbmkuaWNvbi5tb29uLm91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzODZcIjtcbn1cbmkuaWNvbi5tb29uOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTg2XCI7XG59XG5pLmljb24ucHV6emxlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTJlXCI7XG59XG5pLmljb24uc25vd2ZsYWtlLm91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY2MzJcIjtcbn1cbmkuaWNvbi5zbm93Zmxha2U6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyZGNcIjtcbn1cbmkuaWNvbi5zcGFjZS5zaHV0dGxlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTk3XCI7XG59XG5pLmljb24uc3VuLm91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY2MzdcIjtcbn1cbmkuaWNvbi5zdW46YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxODVcIjtcbn1cbmkuaWNvbi50YWNob21ldGVyLmFsdGVybmF0ZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNmZFwiO1xufVxuaS5pY29uLnVubG9jay5hbHRlcm5hdGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxM2VcIjtcbn1cbmkuaWNvbi51bmxvY2s6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwOWNcIjtcbn1cbi8qIFBheW1lbnRzICYgU2hvcHBpbmcgKi9cbmkuaWNvbi5jYXJ0LnBsdXM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMTdcIjtcbn1cbmkuaWNvbi5jcmVkaXQuY2FyZC5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzM0XCI7XG59XG5pLmljb24uY3JlZGl0LmNhcmQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwOWRcIjtcbn1cbi8qIFNoYXBlcyAqL1xuaS5pY29uLnNxdWFyZS5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDAwXCI7XG59XG5pLmljb24uc3F1YXJlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGM4XCI7XG59XG4vKiBTcGlubmVycyAqL1xuaS5pY29uLmFzdGVyaXNrOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDY5XCI7XG59XG5pLmljb24uY2lyY2xlLm5vdGNoOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWNlXCI7XG59XG5pLmljb24uc3Bpbm5lcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjExMFwiO1xufVxuLyogU3BvcnRzICovXG5pLmljb24uYmFzZWJhbGwuYmFsbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQzM1wiO1xufVxuaS5pY29uLmJhc2tldGJhbGwuYmFsbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQzNFwiO1xufVxuaS5pY29uLmJvd2xpbmcuYmFsbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQzNlwiO1xufVxuaS5pY29uLmZvb3RiYWxsLmJhbGw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0NGVcIjtcbn1cbmkuaWNvbi5nb2xmLmJhbGw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0NTBcIjtcbn1cbmkuaWNvbi5ob2NrZXkucHVjazpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQ1M1wiO1xufVxuaS5pY29uLnF1aWRkaXRjaDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQ1OFwiO1xufVxuaS5pY29uLnRhYmxlLnRlbm5pczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQ1ZFwiO1xufVxuaS5pY29uLnZvbGxleWJhbGwuYmFsbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQ1ZlwiO1xufVxuLyogU3RhdHVzICovXG5pLmljb24uYmF0dGVyeS5lbXB0eTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI0NFwiO1xufVxuaS5pY29uLmJhdHRlcnkuZnVsbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI0MFwiO1xufVxuaS5pY29uLmJhdHRlcnkuaGFsZjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI0MlwiO1xufVxuaS5pY29uLmJhdHRlcnkucXVhcnRlcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI0M1wiO1xufVxuaS5pY29uLmJhdHRlcnkudGhyZWUucXVhcnRlcnM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyNDFcIjtcbn1cbmkuaWNvbi50aGVybW9tZXRlci5lbXB0eTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJjYlwiO1xufVxuaS5pY29uLnRoZXJtb21ldGVyLmZ1bGw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyYzdcIjtcbn1cbmkuaWNvbi50aGVybW9tZXRlci5oYWxmOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmM5XCI7XG59XG5pLmljb24udGhlcm1vbWV0ZXIucXVhcnRlcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJjYVwiO1xufVxuaS5pY29uLnRoZXJtb21ldGVyLnRocmVlLnF1YXJ0ZXJzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmM4XCI7XG59XG4vKiBVc2VycyAmIFBlb3BsZSAqL1xuaS5pY29uLmNoaWxkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWFlXCI7XG59XG5pLmljb24uZmVtYWxlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTgyXCI7XG59XG5pLmljb24udXNlci5jaXJjbGUub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQxMFwiO1xufVxuaS5pY29uLnVzZXIucGx1czpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIzNFwiO1xufVxuaS5pY29uLnVzZXIudGltZXM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMzVcIjtcbn1cbmkuaWNvbi51c2VyczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBjMFwiO1xufVxuLyogQnJhbmRzICovXG5pLmljb24uXFwzNSAwMHB4OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjZlXCI7XG59XG5pLmljb24uYWNjZXNzaWJsZS5pY29uOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzY4XCI7XG59XG5pLmljb24uYWNjdXNvZnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzNjlcIjtcbn1cbmkuaWNvbi5hZG46YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNzBcIjtcbn1cbmkuaWNvbi5hZHZlcnNhbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjM2YVwiO1xufVxuaS5pY29uLmFmZmlsaWF0ZXRoZW1lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzZiXCI7XG59XG5pLmljb24uYWxnb2xpYTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjM2Y1wiO1xufVxuaS5pY29uLmFtYXpvbi5wYXk6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0MmNcIjtcbn1cbmkuaWNvbi5hbWF6b246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyNzBcIjtcbn1cbmkuaWNvbi5hbWlsaWE6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzNmRcIjtcbn1cbmkuaWNvbi5hbmRyb2lkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTdiXCI7XG59XG5pLmljb24uYW5nZWxsaXN0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjA5XCI7XG59XG5pLmljb24uYW5ncnljcmVhdGl2ZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjM2ZVwiO1xufVxuaS5pY29uLmFuZ3VsYXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0MjBcIjtcbn1cbmkuaWNvbi5hcHAuc3RvcmUuaW9zOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzcwXCI7XG59XG5pLmljb24uYXBwLnN0b3JlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzZmXCI7XG59XG5pLmljb24uYXBwZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzNzFcIjtcbn1cbmkuaWNvbi5hcHBsZS5wYXk6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY2MDlcIjtcbn1cbmkuaWNvbi5hcHBsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE3OVwiO1xufVxuaS5pY29uLmFzeW1tZXRyaWs6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzNzJcIjtcbn1cbmkuaWNvbi5hdWRpYmxlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzczXCI7XG59XG5pLmljb24uYXV0b3ByZWZpeGVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDFjXCI7XG59XG5pLmljb24uYXZpYW5leDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjM3NFwiO1xufVxuaS5pY29uLmF2aWF0bzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQyMVwiO1xufVxuaS5pY29uLmF3czpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjM3NVwiO1xufVxuaS5pY29uLmJhbmRjYW1wOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmQ1XCI7XG59XG5pLmljb24uYmVoYW5jZS5zcXVhcmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxYjVcIjtcbn1cbmkuaWNvbi5iZWhhbmNlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWI0XCI7XG59XG5pLmljb24uYmltb2JqZWN0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzc4XCI7XG59XG5pLmljb24uYml0YnVja2V0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTcxXCI7XG59XG5pLmljb24uYml0Y29pbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjM3OVwiO1xufVxuaS5pY29uLmJpdHk6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzN2FcIjtcbn1cbmkuaWNvbi5ibGFjay50aWU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyN2VcIjtcbn1cbmkuaWNvbi5ibGFja2JlcnJ5OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzdiXCI7XG59XG5pLmljb24uYmxvZ2dlci5iOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzdkXCI7XG59XG5pLmljb24uYmxvZ2dlcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjM3Y1wiO1xufVxuaS5pY29uLmJsdWV0b290aC5iOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjk0XCI7XG59XG5pLmljb24uYmx1ZXRvb3RoOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjkzXCI7XG59XG5pLmljb24uYnRjOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTVhXCI7XG59XG5pLmljb24uYnVyb21vYmVsZXhwZXJ0ZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjM3ZlwiO1xufVxuaS5pY29uLmJ1eXNlbGxhZHM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMGRcIjtcbn1cbmkuaWNvbi5jcmVkaXQuY2FyZC5hbWF6b24ucGF5OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDJkXCI7XG59XG5pLmljb24uY3JlZGl0LmNhcmQuYW1lcmljYW4uZXhwcmVzczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFmM1wiO1xufVxuaS5pY29uLmNyZWRpdC5jYXJkLmFwcGxlLnBheTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjYwN1wiO1xufVxuaS5pY29uLmNyZWRpdC5jYXJkLmRpbmVycy5jbHViOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjRjXCI7XG59XG5pLmljb24uY3JlZGl0LmNhcmQuZGlzY292ZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxZjJcIjtcbn1cbmkuaWNvbi5jcmVkaXQuY2FyZC5qY2I6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyNGJcIjtcbn1cbmkuaWNvbi5jcmVkaXQuY2FyZC5tYXN0ZXJjYXJkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWYxXCI7XG59XG5pLmljb24uY3JlZGl0LmNhcmQucGF5cGFsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWY0XCI7XG59XG5pLmljb24uY3JlZGl0LmNhcmQuc3RyaXBlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWY1XCI7XG59XG5pLmljb24uY3JlZGl0LmNhcmQudmlzYTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFmMFwiO1xufVxuaS5pY29uLmNlbnRlcmNvZGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzODBcIjtcbn1cbmkuaWNvbi5jaHJvbWU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyNjhcIjtcbn1cbmkuaWNvbi5jbG91ZHNjYWxlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzgzXCI7XG59XG5pLmljb24uY2xvdWRzbWl0aDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjM4NFwiO1xufVxuaS5pY29uLmNsb3VkdmVyc2lmeTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjM4NVwiO1xufVxuaS5pY29uLmNvZGVwZW46YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxY2JcIjtcbn1cbmkuaWNvbi5jb2RpZXBpZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI4NFwiO1xufVxuaS5pY29uLmNvbm5lY3RkZXZlbG9wOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjBlXCI7XG59XG5pLmljb24uY29udGFvOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjZkXCI7XG59XG5pLmljb24uY3BhbmVsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzg4XCI7XG59XG5pLmljb24uY3JlYXRpdmUuY29tbW9uczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI1ZVwiO1xufVxuaS5pY29uLmNzczMuYWx0ZXJuYXRlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzhiXCI7XG59XG5pLmljb24uY3NzMzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEzY1wiO1xufVxuaS5pY29uLmN1dHRsZWZpc2g6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzOGNcIjtcbn1cbmkuaWNvbi5kLmFuZC5kOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzhkXCI7XG59XG5pLmljb24uZGFzaGN1YmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMTBcIjtcbn1cbmkuaWNvbi5kZWxpY2lvdXM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxYTVcIjtcbn1cbmkuaWNvbi5kZXBsb3lkb2c6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzOGVcIjtcbn1cbmkuaWNvbi5kZXNrcHJvOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzhmXCI7XG59XG5pLmljb24uZGV2aWFudGFydDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFiZFwiO1xufVxuaS5pY29uLmRpZ2c6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxYTZcIjtcbn1cbmkuaWNvbi5kaWdpdGFsLm9jZWFuOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzkxXCI7XG59XG5pLmljb24uZGlzY29yZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjM5MlwiO1xufVxuaS5pY29uLmRpc2NvdXJzZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjM5M1wiO1xufVxuaS5pY29uLmRvY2h1YjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjM5NFwiO1xufVxuaS5pY29uLmRvY2tlcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjM5NVwiO1xufVxuaS5pY29uLmRyYWZ0MmRpZ2l0YWw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzOTZcIjtcbn1cbmkuaWNvbi5kcmliYmJsZS5zcXVhcmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzOTdcIjtcbn1cbmkuaWNvbi5kcmliYmJsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE3ZFwiO1xufVxuaS5pY29uLmRyb3Bib3g6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNmJcIjtcbn1cbmkuaWNvbi5kcnVwYWw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxYTlcIjtcbn1cbmkuaWNvbi5keWFsb2c6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzOTlcIjtcbn1cbmkuaWNvbi5lYXJseWJpcmRzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzlhXCI7XG59XG5pLmljb24uZWRnZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI4MlwiO1xufVxuaS5pY29uLmVsZW1lbnRvcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQzMFwiO1xufVxuaS5pY29uLmVtYmVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDIzXCI7XG59XG5pLmljb24uZW1waXJlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWQxXCI7XG59XG5pLmljb24uZW52aXJhOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjk5XCI7XG59XG5pLmljb24uZXJsYW5nOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzlkXCI7XG59XG5pLmljb24uZXRoZXJldW06YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0MmVcIjtcbn1cbmkuaWNvbi5ldHN5OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmQ3XCI7XG59XG5pLmljb24uZXhwZWRpdGVkc3NsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjNlXCI7XG59XG5pLmljb24uZmFjZWJvb2suZjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjM5ZVwiO1xufVxuaS5pY29uLmZhY2Vib29rLm1lc3NlbmdlcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjM5ZlwiO1xufVxuaS5pY29uLmZhY2Vib29rLnNxdWFyZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA4MlwiO1xufVxuaS5pY29uLmZhY2Vib29rOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDlhXCI7XG59XG5pLmljb24uZmlyZWZveDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI2OVwiO1xufVxuaS5pY29uLmZpcnN0Lm9yZGVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmIwXCI7XG59XG5pLmljb24uZmlyc3RkcmFmdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNhMVwiO1xufVxuaS5pY29uLmZsaWNrcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE2ZVwiO1xufVxuaS5pY29uLmZsaXBib2FyZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQ0ZFwiO1xufVxuaS5pY29uLmZseTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQxN1wiO1xufVxuaS5pY29uLmZvbnQuYXdlc29tZS5hbHRlcm5hdGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzNWNcIjtcbn1cbmkuaWNvbi5mb250LmF3ZXNvbWUuZmxhZzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQyNVwiO1xufVxuaS5pY29uLmZvbnQuYXdlc29tZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJiNFwiO1xufVxuaS5pY29uLmZvbnRpY29ucy5maTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNhMlwiO1xufVxuaS5pY29uLmZvbnRpY29uczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI4MFwiO1xufVxuaS5pY29uLmZvcnQuYXdlc29tZS5hbHRlcm5hdGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzYTNcIjtcbn1cbmkuaWNvbi5mb3J0LmF3ZXNvbWU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyODZcIjtcbn1cbmkuaWNvbi5mb3J1bWJlZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIxMVwiO1xufVxuaS5pY29uLmZvdXJzcXVhcmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxODBcIjtcbn1cbmkuaWNvbi5mcmVlLmNvZGUuY2FtcDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJjNVwiO1xufVxuaS5pY29uLmZyZWVic2Q6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzYTRcIjtcbn1cbmkuaWNvbi5nZXQucG9ja2V0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjY1XCI7XG59XG5pLmljb24uZ2cuY2lyY2xlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjYxXCI7XG59XG5pLmljb24uZ2c6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyNjBcIjtcbn1cbmkuaWNvbi5naXQuc3F1YXJlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWQyXCI7XG59XG5pLmljb24uZ2l0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWQzXCI7XG59XG5pLmljb24uZ2l0aHViLmFsdGVybmF0ZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjExM1wiO1xufVxuaS5pY29uLmdpdGh1Yi5zcXVhcmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwOTJcIjtcbn1cbmkuaWNvbi5naXRodWI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwOWJcIjtcbn1cbmkuaWNvbi5naXRrcmFrZW46YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzYTZcIjtcbn1cbmkuaWNvbi5naXRsYWI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyOTZcIjtcbn1cbmkuaWNvbi5naXR0ZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0MjZcIjtcbn1cbmkuaWNvbi5nbGlkZS5nOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmE2XCI7XG59XG5pLmljb24uZ2xpZGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyYTVcIjtcbn1cbmkuaWNvbi5nb2ZvcmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzYTdcIjtcbn1cbmkuaWNvbi5nb29kcmVhZHMuZzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNhOVwiO1xufVxuaS5pY29uLmdvb2RyZWFkczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNhOFwiO1xufVxuaS5pY29uLmdvb2dsZS5kcml2ZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNhYVwiO1xufVxuaS5pY29uLmdvb2dsZS5wbGF5OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2FiXCI7XG59XG5pLmljb24uZ29vZ2xlLnBsdXMuZzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBkNVwiO1xufVxuaS5pY29uLmdvb2dsZS5wbHVzLnNxdWFyZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBkNFwiO1xufVxuaS5pY29uLmdvb2dsZS5wbHVzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmIzXCI7XG59XG5pLmljb24uZ29vZ2xlLndhbGxldDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFlZVwiO1xufVxuaS5pY29uLmdvb2dsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFhMFwiO1xufVxuaS5pY29uLmdyYXRpcGF5OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTg0XCI7XG59XG5pLmljb24uZ3JhdjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJkNlwiO1xufVxuaS5pY29uLmdyaXBmaXJlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2FjXCI7XG59XG5pLmljb24uZ3J1bnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzYWRcIjtcbn1cbmkuaWNvbi5ndWxwOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2FlXCI7XG59XG5pLmljb24uaGFja2VyLm5ld3Muc3F1YXJlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2FmXCI7XG59XG5pLmljb24uaGFja2VyLm5ld3M6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxZDRcIjtcbn1cbmkuaWNvbi5oaXBzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDUyXCI7XG59XG5pLmljb24uaGlyZS5hLmhlbHBlcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNiMFwiO1xufVxuaS5pY29uLmhvb2xpOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDI3XCI7XG59XG5pLmljb24uaG90amFyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2IxXCI7XG59XG5pLmljb24uaG91eno6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyN2NcIjtcbn1cbmkuaWNvbi5odG1sNTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEzYlwiO1xufVxuaS5pY29uLmh1YnNwb3Q6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzYjJcIjtcbn1cbmkuaWNvbi5pbWRiOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmQ4XCI7XG59XG5pLmljb24uaW5zdGFncmFtOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTZkXCI7XG59XG5pLmljb24uaW50ZXJuZXQuZXhwbG9yZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyNmJcIjtcbn1cbmkuaWNvbi5pb3hob3N0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjA4XCI7XG59XG5pLmljb24uaXR1bmVzLm5vdGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzYjVcIjtcbn1cbmkuaWNvbi5pdHVuZXM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzYjRcIjtcbn1cbmkuaWNvbi5qZW5raW5zOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2I2XCI7XG59XG5pLmljb24uam9nZXQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzYjdcIjtcbn1cbmkuaWNvbi5qb29tbGE6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxYWFcIjtcbn1cbmkuaWNvbi5qcy5zcXVhcmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzYjlcIjtcbn1cbmkuaWNvbi5qczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNiOFwiO1xufVxuaS5pY29uLmpzZmlkZGxlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWNjXCI7XG59XG5pLmljb24ua2V5Y2RuOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2JhXCI7XG59XG5pLmljb24ua2lja3N0YXJ0ZXIuazpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNiY1wiO1xufVxuaS5pY29uLmtpY2tzdGFydGVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2JiXCI7XG59XG5pLmljb24ua29ydnVlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDJmXCI7XG59XG5pLmljb24ubGFyYXZlbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNiZFwiO1xufVxuaS5pY29uLmxhc3RmbS5zcXVhcmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMDNcIjtcbn1cbmkuaWNvbi5sYXN0Zm06YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMDJcIjtcbn1cbmkuaWNvbi5sZWFucHViOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjEyXCI7XG59XG5pLmljb24ubGVzczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQxZFwiO1xufVxuaS5pY29uLmxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzYzBcIjtcbn1cbmkuaWNvbi5saW5rZWRpbi5pbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBlMVwiO1xufVxuaS5pY29uLmxpbmtlZGluOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDhjXCI7XG59XG5pLmljb24ubGlub2RlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmI4XCI7XG59XG5pLmljb24ubGludXg6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxN2NcIjtcbn1cbmkuaWNvbi5seWZ0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2MzXCI7XG59XG5pLmljb24ubWFnZW50bzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNjNFwiO1xufVxuaS5pY29uLm1heGNkbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEzNlwiO1xufVxuaS5pY29uLm1lZGFwcHM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzYzZcIjtcbn1cbmkuaWNvbi5tZWRpdW0ubTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNjN1wiO1xufVxuaS5pY29uLm1lZGl1bTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIzYVwiO1xufVxuaS5pY29uLm1lZHJ0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2M4XCI7XG59XG5pLmljb24ubWVldHVwOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmUwXCI7XG59XG5pLmljb24ubWljcm9zb2Z0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2NhXCI7XG59XG5pLmljb24ubWl4OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2NiXCI7XG59XG5pLmljb24ubWl4Y2xvdWQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyODlcIjtcbn1cbmkuaWNvbi5taXp1bmk6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzY2NcIjtcbn1cbmkuaWNvbi5tb2R4OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjg1XCI7XG59XG5pLmljb24ubW9uZXJvOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2QwXCI7XG59XG5pLmljb24ubmFwc3RlcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNkMlwiO1xufVxuaS5pY29uLm5pbnRlbmRvLnN3aXRjaDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQxOFwiO1xufVxuaS5pY29uLm5vZGUuanM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzZDNcIjtcbn1cbmkuaWNvbi5ub2RlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDE5XCI7XG59XG5pLmljb24ubnBtOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2Q0XCI7XG59XG5pLmljb24ubnM4OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2Q1XCI7XG59XG5pLmljb24ubnV0cml0aW9uaXg6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzZDZcIjtcbn1cbmkuaWNvbi5vZG5va2xhc3NuaWtpLnNxdWFyZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI2NFwiO1xufVxuaS5pY29uLm9kbm9rbGFzc25pa2k6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyNjNcIjtcbn1cbmkuaWNvbi5vcGVuY2FydDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIzZFwiO1xufVxuaS5pY29uLm9wZW5pZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE5YlwiO1xufVxuaS5pY29uLm9wZXJhOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjZhXCI7XG59XG5pLmljb24ub3B0aW4ubW9uc3RlcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIzY1wiO1xufVxuaS5pY29uLm9zaTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQxYVwiO1xufVxuaS5pY29uLnBhZ2U0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2Q3XCI7XG59XG5pLmljb24ucGFnZWxpbmVzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMThjXCI7XG59XG5pLmljb24ucGFsZmVkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2Q4XCI7XG59XG5pLmljb24ucGF0cmVvbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNkOVwiO1xufVxuaS5pY29uLnBheXBhbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFlZFwiO1xufVxuaS5pY29uLnBlcmlzY29wZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNkYVwiO1xufVxuaS5pY29uLnBoYWJyaWNhdG9yOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2RiXCI7XG59XG5pLmljb24ucGhvZW5peC5mcmFtZXdvcms6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzZGNcIjtcbn1cbmkuaWNvbi5waHA6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0NTdcIjtcbn1cbmkuaWNvbi5waWVkLnBpcGVyLmFsdGVybmF0ZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFhOFwiO1xufVxuaS5pY29uLnBpZWQucGlwZXIucHA6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxYTdcIjtcbn1cbmkuaWNvbi5waWVkLnBpcGVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmFlXCI7XG59XG5pLmljb24ucGludGVyZXN0LnA6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMzFcIjtcbn1cbmkuaWNvbi5waW50ZXJlc3Quc3F1YXJlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGQzXCI7XG59XG5pLmljb24ucGludGVyZXN0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGQyXCI7XG59XG5pLmljb24ucGxheXN0YXRpb246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzZGZcIjtcbn1cbmkuaWNvbi5wcm9kdWN0Lmh1bnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyODhcIjtcbn1cbmkuaWNvbi5wdXNoZWQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzZTFcIjtcbn1cbmkuaWNvbi5weXRob246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzZTJcIjtcbn1cbmkuaWNvbi5xcTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFkNlwiO1xufVxuaS5pY29uLnF1aW5zY2FwZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQ1OVwiO1xufVxuaS5pY29uLnF1b3JhOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmM0XCI7XG59XG5pLmljb24ucmF2ZWxyeTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJkOVwiO1xufVxuaS5pY29uLnJlYWN0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDFiXCI7XG59XG5pLmljb24ucmViZWw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxZDBcIjtcbn1cbmkuaWNvbi5yZWRyaXZlcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNlM1wiO1xufVxuaS5pY29uLnJlZGRpdC5hbGllbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI4MVwiO1xufVxuaS5pY29uLnJlZGRpdC5zcXVhcmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxYTJcIjtcbn1cbmkuaWNvbi5yZWRkaXQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxYTFcIjtcbn1cbmkuaWNvbi5yZW5kYWN0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2U0XCI7XG59XG5pLmljb24ucmVucmVuOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMThiXCI7XG59XG5pLmljb24ucmVwbHlkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2U2XCI7XG59XG5pLmljb24ucmVzb2x2aW5nOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2U3XCI7XG59XG5pLmljb24ucm9ja2V0Y2hhdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNlOFwiO1xufVxuaS5pY29uLnJvY2tybXM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzZTlcIjtcbn1cbmkuaWNvbi5zYWZhcmk6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyNjdcIjtcbn1cbmkuaWNvbi5zYXNzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDFlXCI7XG59XG5pLmljb24uc2NobGl4OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2VhXCI7XG59XG5pLmljb24uc2NyaWJkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjhhXCI7XG59XG5pLmljb24uc2VhcmNoZW5naW46YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzZWJcIjtcbn1cbmkuaWNvbi5zZWxsY2FzdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJkYVwiO1xufVxuaS5pY29uLnNlbGxzeTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIxM1wiO1xufVxuaS5pY29uLnNlcnZpY2VzdGFjazpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNlY1wiO1xufVxuaS5pY29uLnNoaXJ0c2luYnVsazpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIxNFwiO1xufVxuaS5pY29uLnNpbXBseWJ1aWx0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjE1XCI7XG59XG5pLmljb24uc2lzdHJpeDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNlZVwiO1xufVxuaS5pY29uLnNreWF0bGFzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjE2XCI7XG59XG5pLmljb24uc2t5cGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxN2VcIjtcbn1cbmkuaWNvbi5zbGFjay5oYXNoOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2VmXCI7XG59XG5pLmljb24uc2xhY2s6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxOThcIjtcbn1cbmkuaWNvbi5zbGlkZXNoYXJlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWU3XCI7XG59XG5pLmljb24uc25hcGNoYXQuZ2hvc3Q6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyYWNcIjtcbn1cbmkuaWNvbi5zbmFwY2hhdC5zcXVhcmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyYWRcIjtcbn1cbmkuaWNvbi5zbmFwY2hhdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJhYlwiO1xufVxuaS5pY29uLnNvdW5kY2xvdWQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxYmVcIjtcbn1cbmkuaWNvbi5zcGVha2FwOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2YzXCI7XG59XG5pLmljb24uc3BvdGlmeTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFiY1wiO1xufVxuaS5pY29uLnN0YWNrLmV4Y2hhbmdlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMThkXCI7XG59XG5pLmljb24uc3RhY2sub3ZlcmZsb3c6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNmNcIjtcbn1cbmkuaWNvbi5zdGF5bGlua2VkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2Y1XCI7XG59XG5pLmljb24uc3RlYW0uc3F1YXJlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWI3XCI7XG59XG5pLmljb24uc3RlYW0uc3ltYm9sOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2Y2XCI7XG59XG5pLmljb24uc3RlYW06YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxYjZcIjtcbn1cbmkuaWNvbi5zdGlja2VyLm11bGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzZjdcIjtcbn1cbmkuaWNvbi5zdHJhdmE6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0MjhcIjtcbn1cbmkuaWNvbi5zdHJpcGUuczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQyYVwiO1xufVxuaS5pY29uLnN0cmlwZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQyOVwiO1xufVxuaS5pY29uLnN0dWRpb3ZpbmFyaTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNmOFwiO1xufVxuaS5pY29uLnN0dW1ibGV1cG9uLmNpcmNsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFhM1wiO1xufVxuaS5pY29uLnN0dW1ibGV1cG9uOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWE0XCI7XG59XG5pLmljb24uc3VwZXJwb3dlcnM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyZGRcIjtcbn1cbmkuaWNvbi5zdXBwbGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzZjlcIjtcbn1cbmkuaWNvbi50ZWxlZ3JhbS5wbGFuZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNmZVwiO1xufVxuaS5pY29uLnRlbGVncmFtOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmM2XCI7XG59XG5pLmljb24udGVuY2VudC53ZWlibzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFkNVwiO1xufVxuaS5pY29uLnRoZW1laXNsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJiMlwiO1xufVxuaS5pY29uLnRyZWxsbzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE4MVwiO1xufVxuaS5pY29uLnRyaXBhZHZpc29yOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjYyXCI7XG59XG5pLmljb24udHVtYmxyLnNxdWFyZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE3NFwiO1xufVxuaS5pY29uLnR1bWJscjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE3M1wiO1xufVxuaS5pY29uLnR3aXRjaDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFlOFwiO1xufVxuaS5pY29uLnR3aXR0ZXIuc3F1YXJlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDgxXCI7XG59XG5pLmljb24udHdpdHRlcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA5OVwiO1xufVxuaS5pY29uLnR5cG8zOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDJiXCI7XG59XG5pLmljb24udWJlcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQwMlwiO1xufVxuaS5pY29uLnVpa2l0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDAzXCI7XG59XG5pLmljb24udW5pcmVnaXN0cnk6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0MDRcIjtcbn1cbmkuaWNvbi51bnRhcHBkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDA1XCI7XG59XG5pLmljb24udXNiOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjg3XCI7XG59XG5pLmljb24udXNzdW5uYWg6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0MDdcIjtcbn1cbmkuaWNvbi52YWFkaW46YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0MDhcIjtcbn1cbmkuaWNvbi52aWFjb2luOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjM3XCI7XG59XG5pLmljb24udmlhZGVvLnNxdWFyZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJhYVwiO1xufVxuaS5pY29uLnZpYWRlbzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJhOVwiO1xufVxuaS5pY29uLnZpYmVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDA5XCI7XG59XG5pLmljb24udmltZW8uc3F1YXJlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTk0XCI7XG59XG5pLmljb24udmltZW8udjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI3ZFwiO1xufVxuaS5pY29uLnZpbWVvOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDBhXCI7XG59XG5pLmljb24udmluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFjYVwiO1xufVxuaS5pY29uLnZrOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTg5XCI7XG59XG5pLmljb24udm52OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDBiXCI7XG59XG5pLmljb24udnVlanM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0MWZcIjtcbn1cbmkuaWNvbi53ZWlibzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE4YVwiO1xufVxuaS5pY29uLndlaXhpbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFkN1wiO1xufVxuaS5pY29uLndoYXRzYXBwLnNxdWFyZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQwY1wiO1xufVxuaS5pY29uLndoYXRzYXBwOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjMyXCI7XG59XG5pLmljb24ud2htY3M6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0MGRcIjtcbn1cbmkuaWNvbi53aWtpcGVkaWEudzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI2NlwiO1xufVxuaS5pY29uLndpbmRvd3M6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxN2FcIjtcbn1cbmkuaWNvbi53b3JkcHJlc3Muc2ltcGxlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDExXCI7XG59XG5pLmljb24ud29yZHByZXNzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTlhXCI7XG59XG5pLmljb24ud3BiZWdpbm5lcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI5N1wiO1xufVxuaS5pY29uLndwZXhwbG9yZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyZGVcIjtcbn1cbmkuaWNvbi53cGZvcm1zOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjk4XCI7XG59XG5pLmljb24ueGJveDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQxMlwiO1xufVxuaS5pY29uLnhpbmcuc3F1YXJlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTY5XCI7XG59XG5pLmljb24ueGluZzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE2OFwiO1xufVxuaS5pY29uLnkuY29tYmluYXRvcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIzYlwiO1xufVxuaS5pY29uLnlhaG9vOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTllXCI7XG59XG5pLmljb24ueWFuZGV4LmludGVybmF0aW9uYWw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0MTRcIjtcbn1cbmkuaWNvbi55YW5kZXg6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0MTNcIjtcbn1cbmkuaWNvbi55ZWxwOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWU5XCI7XG59XG5pLmljb24ueW9hc3Q6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyYjFcIjtcbn1cbmkuaWNvbi55b3V0dWJlLnNxdWFyZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQzMVwiO1xufVxuaS5pY29uLnlvdXR1YmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNjdcIjtcbn1cbi8qICBBbGlhc2VzICovXG5pLmljb24uYWRkLmNpcmNsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA1NVwiO1xufVxuaS5pY29uLmFkZC5zcXVhcmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwZmVcIjtcbn1cbmkuaWNvbi5hZGQudG8uY2FsZW5kYXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyNzFcIjtcbn1cbmkuaWNvbi5hZGQudG8uY2FydDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIxN1wiO1xufVxuaS5pY29uLmFkZC51c2VyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjM0XCI7XG59XG5pLmljb24uYWRkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDY3XCI7XG59XG5pLmljb24uYWxhcm0ubXV0ZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFmNlwiO1xufVxuaS5pY29uLmFsYXJtOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGYzXCI7XG59XG5pLmljb24uYWxkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmEyXCI7XG59XG5pLmljb24uYWxzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmEyXCI7XG59XG5pLmljb24uYW1lcmljYW4uZXhwcmVzcy5jYXJkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWYzXCI7XG59XG5pLmljb24uYW1lcmljYW4uZXhwcmVzczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFmM1wiO1xufVxuaS5pY29uLmFtZXg6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxZjNcIjtcbn1cbmkuaWNvbi5hbm5vdW5jZW1lbnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwYTFcIjtcbn1cbmkuaWNvbi5hcmVhLmNoYXJ0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWZlXCI7XG59XG5pLmljb24uYXJlYS5ncmFwaDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFmZVwiO1xufVxuaS5pY29uLmFycm93LmRvd24uY2FydDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIxOFwiO1xufVxuaS5pY29uLmFzZXh1YWw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMmRcIjtcbn1cbmkuaWNvbi5hc2wuaW50ZXJwcmV0aW5nOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmEzXCI7XG59XG5pLmljb24uYXNsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmEzXCI7XG59XG5pLmljb24uYXNzaXN0aXZlLmxpc3RlbmluZy5kZXZpY2VzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmEyXCI7XG59XG5pLmljb24uYXR0YWNoOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGM2XCI7XG59XG5pLmljb24uYXR0ZW50aW9uOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDZhXCI7XG59XG5pLmljb24uYmFsYW5jZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI0ZVwiO1xufVxuaS5pY29uLmJhci5jaGFydDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA4MFwiO1xufVxuaS5pY29uLmJhci5ncmFwaDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA4MFwiO1xufVxuaS5pY29uLmJhcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBmY1wiO1xufVxuaS5pY29uLmJhdGh0dWI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyY2RcIjtcbn1cbmkuaWNvbi5iYXR0ZXJ5LmZvdXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyNDBcIjtcbn1cbmkuaWNvbi5iYXR0ZXJ5LmhpZ2g6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyNDFcIjtcbn1cbmkuaWNvbi5iYXR0ZXJ5LmxvdzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI0M1wiO1xufVxuaS5pY29uLmJhdHRlcnkubWVkaXVtOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjQyXCI7XG59XG5pLmljb24uYmF0dGVyeS5vbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyNDNcIjtcbn1cbmkuaWNvbi5iYXR0ZXJ5LnRocmVlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjQxXCI7XG59XG5pLmljb24uYmF0dGVyeS50d286YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyNDJcIjtcbn1cbmkuaWNvbi5iYXR0ZXJ5Lnplcm86YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyNDRcIjtcbn1cbmkuaWNvbi5iaXJ0aGRheTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFmZFwiO1xufVxuaS5pY29uLmJsb2NrLmxheW91dDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAwOVwiO1xufVxuaS5pY29uLmJsdWV0b290aC5hbHRlcm5hdGl2ZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI5NFwiO1xufVxuaS5pY29uLmJyb2tlbi5jaGFpbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEyN1wiO1xufVxuaS5pY29uLmJyb3dzZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMjJcIjtcbn1cbmkuaWNvbi5jYWxsLnNxdWFyZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA5OFwiO1xufVxuaS5pY29uLmNhbGw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwOTVcIjtcbn1cbmkuaWNvbi5jYW5jZWw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMGRcIjtcbn1cbmkuaWNvbi5jYXJ0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDdhXCI7XG59XG5pLmljb24uY2M6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMGFcIjtcbn1cbmkuaWNvbi5jaGFpbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBjMVwiO1xufVxuaS5pY29uLmNoYXQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwNzVcIjtcbn1cbmkuaWNvbi5jaGVja2VkLmNhbGVuZGFyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjc0XCI7XG59XG5pLmljb24uY2hlY2ttYXJrOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDBjXCI7XG59XG5pLmljb24uY2lyY2xlLm5vdGNoZWQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxY2VcIjtcbn1cbmkuaWNvbi5jbG9zZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAwZFwiO1xufVxuaS5pY29uLmNueTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE1N1wiO1xufVxuaS5pY29uLmNvY2t0YWlsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDAwXCI7XG59XG5pLmljb24uY29tbWVudGluZzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI3YVwiO1xufVxuaS5pY29uLmNvbXB1dGVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTA4XCI7XG59XG5pLmljb24uY29uZmlndXJlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGFkXCI7XG59XG5pLmljb24uY29udGVudDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBjOVwiO1xufVxuaS5pY29uLmRlYWZuZXNzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmE0XCI7XG59XG5pLmljb24uZGVsZXRlLmNhbGVuZGFyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjczXCI7XG59XG5pLmljb24uZGVsZXRlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDBkXCI7XG59XG5pLmljb24uZGV0ZWN0aXZlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjFiXCI7XG59XG5pLmljb24uZGluZXJzLmNsdWIuY2FyZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI0Y1wiO1xufVxuaS5pY29uLmRpbmVycy5jbHViOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjRjXCI7XG59XG5pLmljb24uZGlzY292ZXIuY2FyZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFmMlwiO1xufVxuaS5pY29uLmRpc2NvdmVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWYyXCI7XG59XG5pLmljb24uZGlzY3Vzc2lvbnM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwODZcIjtcbn1cbmkuaWNvbi5kb2N0b3I6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwZjBcIjtcbn1cbmkuaWNvbi5kb2xsYXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNTVcIjtcbn1cbmkuaWNvbi5kb250OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDVlXCI7XG59XG5pLmljb24uZHJpYmJsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE3ZFwiO1xufVxuaS5pY29uLmRyaXZlcnMubGljZW5zZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJjMlwiO1xufVxuaS5pY29uLmRyb3Bkb3duOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGQ3XCI7XG59XG5pLmljb24uZWVyY2FzdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJkYVwiO1xufVxuaS5pY29uLmVtZXJnZW5jeTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBmOVwiO1xufVxuaS5pY29uLmVudmlyYS5nYWxsZXJ5OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjk5XCI7XG59XG5pLmljb24uZXJhc2U6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMmRcIjtcbn1cbmkuaWNvbi5ldXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNTNcIjtcbn1cbmkuaWNvbi5ldXJvOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTUzXCI7XG59XG5pLmljb24uZXllZHJvcHBlcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFmYlwiO1xufVxuaS5pY29uLmZhOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmI0XCI7XG59XG5pLmljb24uZmFjdG9yeTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI3NVwiO1xufVxuaS5pY29uLmZhdm9yaXRlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDA1XCI7XG59XG5pLmljb24uZmVlZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA5ZVwiO1xufVxuaS5pY29uLmZlbWFsZS5ob21vc2V4dWFsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjI2XCI7XG59XG5pLmljb24uZmlsZS50ZXh0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTVjXCI7XG59XG5pLmljb24uZmluZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFlNVwiO1xufVxuaS5pY29uLmZpcnN0LmFpZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBmYVwiO1xufVxuaS5pY29uLmZpdmUuaHVuZHJlZC5waXhlbHM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyNmVcIjtcbn1cbmkuaWNvbi5mb3JrOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTI2XCI7XG59XG5pLmljb24uZ2FtZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjExYlwiO1xufVxuaS5pY29uLmdheTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIyN1wiO1xufVxuaS5pY29uLmdicDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE1NFwiO1xufVxuaS5pY29uLmdpdHRpcDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE4NFwiO1xufVxuaS5pY29uLmdvb2dsZS5wbHVzLmNpcmNsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJiM1wiO1xufVxuaS5pY29uLmdvb2dsZS5wbHVzLm9mZmljaWFsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmIzXCI7XG59XG5pLmljb24uZ3JhYjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI1NVwiO1xufVxuaS5pY29uLmdyYWR1YXRpb246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxOWRcIjtcbn1cbmkuaWNvbi5ncmlkLmxheW91dDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAwYVwiO1xufVxuaS5pY29uLmdyb3VwOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGMwXCI7XG59XG5pLmljb24uaDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBmZFwiO1xufVxuaS5pY29uLmhhbmQudmljdG9yeTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI1YlwiO1xufVxuaS5pY29uLmhhbmRpY2FwOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTkzXCI7XG59XG5pLmljb24uaGFyZC5vZi5oZWFyaW5nOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmE0XCI7XG59XG5pLmljb24uaGVhZGVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWRjXCI7XG59XG5pLmljb24uaGVscC5jaXJjbGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwNTlcIjtcbn1cbmkuaWNvbi5oZWxwOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTI4XCI7XG59XG5pLmljb24uaGV0ZXJvc2V4dWFsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjI4XCI7XG59XG5pLmljb24uaGlkZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA3MFwiO1xufVxuaS5pY29uLmhvdGVsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjM2XCI7XG59XG5pLmljb24uaG91cmdsYXNzLmZvdXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyNTRcIjtcbn1cbmkuaWNvbi5ob3VyZ2xhc3MuZnVsbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI1NFwiO1xufVxuaS5pY29uLmhvdXJnbGFzcy5vbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyNTFcIjtcbn1cbmkuaWNvbi5ob3VyZ2xhc3MudGhyZWU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyNTNcIjtcbn1cbmkuaWNvbi5ob3VyZ2xhc3MudHdvOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjUyXCI7XG59XG5pLmljb24uaWRlYTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBlYlwiO1xufVxuaS5pY29uLmlsczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIwYlwiO1xufVxuaS5pY29uLmluLmNhcnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMThcIjtcbn1cbmkuaWNvbi5pbnI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNTZcIjtcbn1cbmkuaWNvbi5pbnRlcmdlbmRlcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIyNFwiO1xufVxuaS5pY29uLmludGVyc2V4OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjI0XCI7XG59XG5pLmljb24uamFwYW4uY3JlZGl0LmJ1cmVhdS5jYXJkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjRiXCI7XG59XG5pLmljb24uamFwYW4uY3JlZGl0LmJ1cmVhdTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI0YlwiO1xufVxuaS5pY29uLmpjYjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI0YlwiO1xufVxuaS5pY29uLmpweTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE1N1wiO1xufVxuaS5pY29uLmtydzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE1OVwiO1xufVxuaS5pY29uLmxhYjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBjM1wiO1xufVxuaS5pY29uLmxhdzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI0ZVwiO1xufVxuaS5pY29uLmxlZ2FsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGUzXCI7XG59XG5pLmljb24ubGVzYmlhbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIyNlwiO1xufVxuaS5pY29uLmxpZ2h0bmluZzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBlN1wiO1xufVxuaS5pY29uLmxpa2U6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMDRcIjtcbn1cbmkuaWNvbi5saW5lLmNoYXJ0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjAxXCI7XG59XG5pLmljb24ubGluZS5ncmFwaDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIwMVwiO1xufVxuaS5pY29uLmxpbmtlZGluLnNxdWFyZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA4Y1wiO1xufVxuaS5pY29uLmxpbmtpZnk6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwYzFcIjtcbn1cbmkuaWNvbi5saXJhOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTk1XCI7XG59XG5pLmljb24ubGlzdC5sYXlvdXQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMGJcIjtcbn1cbmkuaWNvbi5tYWduaWZ5OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDBlXCI7XG59XG5pLmljb24ubWFpbC5mb3J3YXJkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDY0XCI7XG59XG5pLmljb24ubWFpbC5zcXVhcmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxOTlcIjtcbn1cbmkuaWNvbi5tYWlsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGUwXCI7XG59XG5pLmljb24ubWFsZS5ob21vc2V4dWFsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjI3XCI7XG59XG5pLmljb24ubWFuOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjIyXCI7XG59XG5pLmljb24ubWFya2VyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDQxXCI7XG59XG5pLmljb24ubWFycy5hbHRlcm5hdGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMjlcIjtcbn1cbmkuaWNvbi5tYXJzLmhvcml6b250YWw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMmJcIjtcbn1cbmkuaWNvbi5tYXJzLnZlcnRpY2FsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjJhXCI7XG59XG5pLmljb24ubWFzdGVyY2FyZC5jYXJkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWYxXCI7XG59XG5pLmljb24ubWFzdGVyY2FyZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFmMVwiO1xufVxuaS5pY29uLm1heGltaXplOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGIyXCI7XG59XG5pLmljb24ubWljcm9zb2Z0LmVkZ2U6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyODJcIjtcbn1cbmkuaWNvbi5taWxpdGFyeTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBmYlwiO1xufVxuaS5pY29uLm1pbmltaXplOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDY2XCI7XG59XG5pLmljb24ubXMuZWRnZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI4MlwiO1xufVxuaS5pY29uLm11dGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMzFcIjtcbn1cbmkuaWNvbi5uZXcucGllZC5waXBlcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJhZVwiO1xufVxuaS5pY29uLm5vbi5iaW5hcnkudHJhbnNnZW5kZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMjNcIjtcbn1cbmkuaWNvbi5udW1iZXJlZC5saXN0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGNiXCI7XG59XG5pLmljb24ub3B0aW5tb25zdGVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjNjXCI7XG59XG5pLmljb24ub3B0aW9uczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFkZVwiO1xufVxuaS5pY29uLm90aGVyLmdlbmRlci5ob3Jpem9udGFsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjJiXCI7XG59XG5pLmljb24ub3RoZXIuZ2VuZGVyLnZlcnRpY2FsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjJhXCI7XG59XG5pLmljb24ub3RoZXIuZ2VuZGVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjI5XCI7XG59XG5pLmljb24ucGF5bWVudDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA5ZFwiO1xufVxuaS5pY29uLnBheXBhbC5jYXJkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWY0XCI7XG59XG5pLmljb24ucGVuY2lsLnNxdWFyZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE0YlwiO1xufVxuaS5pY29uLnBob3RvOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDMwXCI7XG59XG5pLmljb24ucGljdHVyZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAzZVwiO1xufVxuaS5pY29uLnBpZS5jaGFydDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIwMFwiO1xufVxuaS5pY29uLnBpZS5ncmFwaDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIwMFwiO1xufVxuaS5pY29uLnBpZWQucGlwZXIuaGF0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmFlXCI7XG59XG5pLmljb24ucGluOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDhkXCI7XG59XG5pLmljb24ucGx1cy5jYXJ0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjE3XCI7XG59XG5pLmljb24ucG9ja2V0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjY1XCI7XG59XG5pLmljb24ucG9pbnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwNDFcIjtcbn1cbmkuaWNvbi5wb2ludGluZy5kb3duOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGE3XCI7XG59XG5pLmljb24ucG9pbnRpbmcubGVmdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBhNVwiO1xufVxuaS5pY29uLnBvaW50aW5nLnJpZ2h0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGE0XCI7XG59XG5pLmljb24ucG9pbnRpbmcudXA6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwYTZcIjtcbn1cbmkuaWNvbi5wb3VuZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE1NFwiO1xufVxuaS5pY29uLnBvd2VyLmNvcmQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxZTZcIjtcbn1cbmkuaWNvbi5wb3dlcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAxMVwiO1xufVxuaS5pY29uLnByaXZhY3k6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwODRcIjtcbn1cbmkuaWNvbi5yLmNpcmNsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI1ZFwiO1xufVxuaS5pY29uLnJhaW46YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwZTlcIjtcbn1cbmkuaWNvbi5yZWNvcmQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwM2RcIjtcbn1cbmkuaWNvbi5yZWZyZXNoOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDIxXCI7XG59XG5pLmljb24ucmVtb3ZlLmNpcmNsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA1N1wiO1xufVxuaS5pY29uLnJlbW92ZS5mcm9tLmNhbGVuZGFyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjcyXCI7XG59XG5pLmljb24ucmVtb3ZlLnVzZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMzVcIjtcbn1cbmkuaWNvbi5yZW1vdmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMGRcIjtcbn1cbmkuaWNvbi5yZXBlYXQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMWVcIjtcbn1cbmkuaWNvbi5ybWI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNTdcIjtcbn1cbmkuaWNvbi5yb3VibGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNThcIjtcbn1cbmkuaWNvbi5ydWI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNThcIjtcbn1cbmkuaWNvbi5ydWJsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE1OFwiO1xufVxuaS5pY29uLnJ1cGVlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTU2XCI7XG59XG5pLmljb24uczE1OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmNkXCI7XG59XG5pLmljb24uc2VsZWN0ZWQucmFkaW86YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxOTJcIjtcbn1cbmkuaWNvbi5zZW5kOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWQ4XCI7XG59XG5pLmljb24uc2V0dGluZzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAxM1wiO1xufVxuaS5pY29uLnNldHRpbmdzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDg1XCI7XG59XG5pLmljb24uc2hla2VsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjBiXCI7XG59XG5pLmljb24uc2hlcWVsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjBiXCI7XG59XG5pLmljb24uc2hpcHBpbmc6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwZDFcIjtcbn1cbmkuaWNvbi5zaG9wOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDdhXCI7XG59XG5pLmljb24uc2h1ZmZsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA3NFwiO1xufVxuaS5pY29uLnNodXRkb3duOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDExXCI7XG59XG5pLmljb24uc2lkZWJhcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBjOVwiO1xufVxuaS5pY29uLnNpZ25pbmc6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyYTdcIjtcbn1cbmkuaWNvbi5zaWdudXA6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwNDRcIjtcbn1cbmkuaWNvbi5zbGlkZXJzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWRlXCI7XG59XG5pLmljb24uc29jY2VyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWUzXCI7XG59XG5pLmljb24uc29ydC5hbHBoYWJldC5hc2NlbmRpbmc6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNWRcIjtcbn1cbmkuaWNvbi5zb3J0LmFscGhhYmV0LmRlc2NlbmRpbmc6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNWVcIjtcbn1cbmkuaWNvbi5zb3J0LmFzY2VuZGluZzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBkZVwiO1xufVxuaS5pY29uLnNvcnQuY29udGVudC5hc2NlbmRpbmc6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNjBcIjtcbn1cbmkuaWNvbi5zb3J0LmNvbnRlbnQuZGVzY2VuZGluZzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE2MVwiO1xufVxuaS5pY29uLnNvcnQuZGVzY2VuZGluZzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBkZFwiO1xufVxuaS5pY29uLnNvcnQubnVtZXJpYy5hc2NlbmRpbmc6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNjJcIjtcbn1cbmkuaWNvbi5zb3J0Lm51bWVyaWMuZGVzY2VuZGluZzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE2M1wiO1xufVxuaS5pY29uLnNvdW5kOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDI1XCI7XG59XG5pLmljb24uc3B5OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjFiXCI7XG59XG5pLmljb24uc3RyaXBlLmNhcmQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxZjVcIjtcbn1cbmkuaWNvbi5zdHVkZW50OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTlkXCI7XG59XG5pLmljb24udGFsazpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI3YVwiO1xufVxuaS5pY29uLnRhcmdldDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE0MFwiO1xufVxuaS5pY29uLnRlbGV0eXBlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWU0XCI7XG59XG5pLmljb24udGVsZXZpc2lvbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI2Y1wiO1xufVxuaS5pY29uLnRleHQuY3Vyc29yOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjQ2XCI7XG59XG5pLmljb24udGV4dC50ZWxlcGhvbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxZTRcIjtcbn1cbmkuaWNvbi50aGVtZS5pc2xlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmIyXCI7XG59XG5pLmljb24udGhlbWU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwNDNcIjtcbn1cbmkuaWNvbi50aGVybW9tZXRlcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJjN1wiO1xufVxuaS5pY29uLnRodW1iLnRhY2s6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwOGRcIjtcbn1cbmkuaWNvbi50aW1lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDE3XCI7XG59XG5pLmljb24udG06YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyNWNcIjtcbn1cbmkuaWNvbi50b2dnbGUuZG93bjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE1MFwiO1xufVxuaS5pY29uLnRvZ2dsZS5sZWZ0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTkxXCI7XG59XG5pLmljb24udG9nZ2xlLnJpZ2h0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTUyXCI7XG59XG5pLmljb24udG9nZ2xlLnVwOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTUxXCI7XG59XG5pLmljb24udHJhbnNsYXRlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWFiXCI7XG59XG5pLmljb24udHJhdmVsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGIxXCI7XG59XG5pLmljb24udHJlYXRtZW50OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGYxXCI7XG59XG5pLmljb24udHJpYW5nbGUuZG93bjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBkN1wiO1xufVxuaS5pY29uLnRyaWFuZ2xlLmxlZnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwZDlcIjtcbn1cbmkuaWNvbi50cmlhbmdsZS5yaWdodDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBkYVwiO1xufVxuaS5pY29uLnRyaWFuZ2xlLnVwOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGQ4XCI7XG59XG5pLmljb24udHJ5OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTk1XCI7XG59XG5pLmljb24udW5oaWRlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDZlXCI7XG59XG5pLmljb24udW5saW5raWZ5OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTI3XCI7XG59XG5pLmljb24udW5tdXRlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTMwXCI7XG59XG5pLmljb24udXNkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTU1XCI7XG59XG5pLmljb24udXNlci5jYW5jZWw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMzVcIjtcbn1cbmkuaWNvbi51c2VyLmNsb3NlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjM1XCI7XG59XG5pLmljb24udXNlci5kZWxldGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMzVcIjtcbn1cbmkuaWNvbi51c2VyLng6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMzVcIjtcbn1cbmkuaWNvbi52Y2FyZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJiYlwiO1xufVxuaS5pY29uLnZpZGVvLmNhbWVyYTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAzZFwiO1xufVxuaS5pY29uLnZpZGVvLnBsYXk6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNDRcIjtcbn1cbmkuaWNvbi52aXNhLmNhcmQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxZjBcIjtcbn1cbmkuaWNvbi52aXNhOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWYwXCI7XG59XG5pLmljb24udm9sdW1lLmNvbnRyb2wucGhvbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyYTBcIjtcbn1cbmkuaWNvbi53YWl0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDE3XCI7XG59XG5pLmljb24ud2FybmluZy5jaXJjbGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwNmFcIjtcbn1cbmkuaWNvbi53YXJuaW5nLnNpZ246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwNzFcIjtcbn1cbmkuaWNvbi53YXJuaW5nOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTJhXCI7XG59XG5pLmljb24ud2VjaGF0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWQ3XCI7XG59XG5pLmljb24ud2ktZmk6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxZWJcIjtcbn1cbmkuaWNvbi53aWtpcGVkaWE6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyNjZcIjtcbn1cbmkuaWNvbi53aW5uZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwOTFcIjtcbn1cbmkuaWNvbi53aXphcmQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwZDBcIjtcbn1cbmkuaWNvbi53b21hbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIyMVwiO1xufVxuaS5pY29uLndvbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE1OVwiO1xufVxuaS5pY29uLndvcmRwcmVzcy5iZWdpbm5lcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI5N1wiO1xufVxuaS5pY29uLndvcmRwcmVzcy5mb3JtczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI5OFwiO1xufVxuaS5pY29uLndvcmxkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGFjXCI7XG59XG5pLmljb24ud3JpdGUuc3F1YXJlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTRiXCI7XG59XG5pLmljb24ueDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAwZFwiO1xufVxuaS5pY29uLnljOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjNiXCI7XG59XG5pLmljb24ueWNvbWJpbmF0b3I6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyM2JcIjtcbn1cbmkuaWNvbi55ZW46YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNTdcIjtcbn1cbmkuaWNvbi56aXA6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxODdcIjtcbn1cbmkuaWNvbi56b29tLmluOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDBlXCI7XG59XG5pLmljb24uem9vbS5vdXQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMTBcIjtcbn1cbmkuaWNvbi56b29tOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDBlXCI7XG59XG4vKlxuICBJY29ucyB3aGljaCB3aGVyZSByZW1vdmVkIGluIEZvbnRBd2Vzb21lIDVcbiAgKEFkZGVkIHRoZSBjbGFzc2VzIGJ1dCBwb2ludGVkIHRoZW0gdG8gYW5vdGhlciBpY29uIHdoaWNoIG1hdGNoZXMgb3IgaXMgc2ltaWxhciBmb3IgY29tcGF0aWJpbGl0eSByZWFzb25zKVxuICovXG5pLmljb24uYml0YnVja2V0LnNxdWFyZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE3MVwiO1xufVxuaS5pY29uLmNoZWNrbWFyay5ib3g6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNGFcIjtcbn1cbmkuaWNvbi5jaXJjbGUudGhpbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjExMVwiO1xufVxuaS5pY29uLmNsb3VkLmRvd25sb2FkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzgxXCI7XG59XG5pLmljb24uY2xvdWQudXBsb2FkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzgyXCI7XG59XG5pLmljb24uY29tcG9zZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjMwM1wiO1xufVxuaS5pY29uLmNvbnZlcnNhdGlvbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA4NlwiO1xufVxuaS5pY29uLmNyZWRpdC5jYXJkLmFsdGVybmF0aXZlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDlkXCI7XG59XG5pLmljb24uY3VycmVuY3k6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzZDFcIjtcbn1cbmkuaWNvbi5kYXNoYm9hcmQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzZmRcIjtcbn1cbmkuaWNvbi5kaWFtb25kOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2E1XCI7XG59XG5pLmljb24uZGlzay5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzY5XCI7XG59XG5pLmljb24uZGlzazpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBhMFwiO1xufVxuaS5pY29uLmV4Y2hhbmdlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzYyXCI7XG59XG5pLmljb24uZXh0ZXJuYWwuc2hhcmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNGRcIjtcbn1cbmkuaWNvbi5leHRlcm5hbC5zcXVhcmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzNjBcIjtcbn1cbmkuaWNvbi5leHRlcm5hbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjM1ZFwiO1xufVxuaS5pY29uLmZhY2Vib29rLm9mZmljaWFsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDgyXCI7XG59XG5pLmljb24uZm9vZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJlN1wiO1xufVxuaS5pY29uLmhlYXJ0LmVtcHR5OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDA0XCI7XG59XG5pLmljb24uaG91cmdsYXNzLnplcm86YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyNTNcIjtcbn1cbmkuaWNvbi5sZXZlbC5kb3duOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2JlXCI7XG59XG5pLmljb24ubGV2ZWwudXA6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzYmZcIjtcbn1cbmkuaWNvbi5sb2cub3V0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmY1XCI7XG59XG5pLmljb24ubWVhbnBhdGg6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwYzhcIjtcbn1cbmkuaWNvbi5tb25leTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNkMVwiO1xufVxuaS5pY29uLm1vdmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwYjJcIjtcbn1cbmkuaWNvbi5wZW5jaWw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzMDNcIjtcbn1cbmkuaWNvbi5wcm90ZWN0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDIzXCI7XG59XG5pLmljb24ucmFkaW86YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxOTJcIjtcbn1cbmkuaWNvbi5yZW1vdmUuYm9va21hcms6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMmVcIjtcbn1cbmkuaWNvbi5yZXNpemUuaG9yaXpvbnRhbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjMzN1wiO1xufVxuaS5pY29uLnJlc2l6ZS52ZXJ0aWNhbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjMzOFwiO1xufVxuaS5pY29uLnNpZ24uaW46YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyZjZcIjtcbn1cbmkuaWNvbi5zaWduLm91dDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJmNVwiO1xufVxuaS5pY29uLnNwb29uOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmU1XCI7XG59XG5pLmljb24uc3Rhci5lbXB0eTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA4OVwiO1xufVxuaS5pY29uLnN0YXIuaGFsZi5lbXB0eTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA4OVwiO1xufVxuaS5pY29uLnN0YXIuaGFsZi5mdWxsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDg5XCI7XG59XG5pLmljb24udGlja2V0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2ZmXCI7XG59XG5pLmljb24udGltZXMucmVjdGFuZ2xlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDEwXCI7XG59XG5pLmljb24ud3JpdGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzMDNcIjtcbn1cbmkuaWNvbi55b3V0dWJlLnBsYXk6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNjdcIjtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIE92ZXJyaWRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIVxuICogIyBTZW1hbnRpYyBVSSAtIEltYWdlXG4gKiBodHRwOi8vZ2l0aHViLmNvbS9zZW1hbnRpYy1vcmcvc2VtYW50aWMtdWkvXG4gKlxuICpcbiAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZVxuICogaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVFxuICpcbiAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLypcblxu4paI4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWXICDilojilojilZfilojilojilojilojilojilojilojilZfilojilojilojilZcgICDilojilojilojilZfilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZdcbuKVmuKVkOKVkOKWiOKWiOKVlOKVkOKVkOKVneKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWd4paI4paI4paI4paI4pWXIOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVnVxuICAg4paI4paI4pWRICAg4paI4paI4paI4paI4paI4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilZTilojilojilojilojilZTilojilojilZHilojilojilojilojilojilZcgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl1xuICAg4paI4paI4pWRICAg4paI4paI4pWU4pWQ4pWQ4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilojilojilZHilZrilojilojilZTilZ3ilojilojilZHilojilojilZTilZDilZDilZ0gIOKVmuKVkOKVkOKVkOKVkOKWiOKWiOKVkVxuICAg4paI4paI4pWRICAg4paI4paI4pWRICDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilZEg4pWa4pWQ4pWdIOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkVxuICAg4pWa4pWQ4pWdICAg4pWa4pWQ4pWdICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZ0gICAgIOKVmuKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVnVxuXG4qL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgVGhlbWUgU2VsZWN0aW9uXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogVG8gb3ZlcnJpZGUgYSB0aGVtZSBmb3IgYW4gaW5kaXZpZHVhbCBlbGVtZW50XG4gICBzcGVjaWZ5IHRoZW1lIG5hbWUgYmVsb3dcbiovXG4vKiBHbG9iYWwgKi9cbi8qIEVsZW1lbnRzICovXG4vKiBDb2xsZWN0aW9ucyAqL1xuLyogTW9kdWxlcyAqL1xuLyogVmlld3MgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBGb2xkZXJzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogUGF0aCB0byB0aGVtZSBwYWNrYWdlcyAqL1xuLyogUGF0aCB0byBzaXRlIG92ZXJyaWRlIGZvbGRlciAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIEltcG9ydCBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIEltcG9ydCBEaXJlY3RpdmVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBUaGVtZVxuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICBTaXRlIFZhcmlhYmxlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERlZmF1bHQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZG9ycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBQYWNrYWdlZCBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kb3JzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIENvbXBvbmVudCdzIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRvcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogU2l0ZSB0aGVtZSBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgVXNlciBHbG9iYWwgVmFyaWFibGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogbWFyc28gY29sb3JzICovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gQ29tcG9uZW50IFZhcmlhYmxlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERlZmF1bHQgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBJbWFnZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVsZW1lbnRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIFR5cGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBBdmF0YXIgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIFZhcmlhdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNwYWNlZCAqL1xuLyogRmxvYXRlZCAqL1xuLyogU2l6ZSAqL1xuLyogUGFja2FnZWQgVGhlbWUgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBJbWFnZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVsZW1lbnRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIFR5cGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBBdmF0YXIgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIFZhcmlhdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNwYWNlZCAqL1xuLyogRmxvYXRlZCAqL1xuLyogU2l6ZSAqL1xuLyogU2l0ZSBUaGVtZSAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICBVc2VyIFZhcmlhYmxlIE92ZXJyaWRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgTWl4LWluc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgT3ZlcnJpZGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEVuZCBDb25maWcgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgSW1hZ2VcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4udWkuaW1hZ2Uge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cbmltZy51aS5pbWFnZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuLnVpLmltYWdlIHN2Zyxcbi51aS5pbWFnZSBpbWcge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IGF1dG87XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLnVpLmhpZGRlbi5pbWFnZXMsXG4udWkuaGlkZGVuLmltYWdlIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi51aS5oaWRkZW4udHJhbnNpdGlvbi5pbWFnZXMsXG4udWkuaGlkZGVuLnRyYW5zaXRpb24uaW1hZ2Uge1xuICBkaXNwbGF5OiBibG9jaztcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xufVxuLnVpLmRpc2FibGVkLmltYWdlcyxcbi51aS5kaXNhYmxlZC5pbWFnZSB7XG4gIGN1cnNvcjogZGVmYXVsdDtcbiAgb3BhY2l0eTogMC40NTtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgVmFyaWF0aW9uc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgSW5saW5lXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmlubGluZS5pbWFnZSxcbi51aS5pbmxpbmUuaW1hZ2Ugc3ZnLFxuLnVpLmlubGluZS5pbWFnZSBpbWcge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICBWZXJ0aWNhbCBBbGlnbmVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS50b3AuYWxpZ25lZC5pbWFnZXMgLmltYWdlLFxuLnVpLnRvcC5hbGlnbmVkLmltYWdlLFxuLnVpLnRvcC5hbGlnbmVkLmltYWdlIHN2Zyxcbi51aS50b3AuYWxpZ25lZC5pbWFnZSBpbWcge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHZlcnRpY2FsLWFsaWduOiB0b3A7XG59XG4udWkubWlkZGxlLmFsaWduZWQuaW1hZ2VzIC5pbWFnZSxcbi51aS5taWRkbGUuYWxpZ25lZC5pbWFnZSxcbi51aS5taWRkbGUuYWxpZ25lZC5pbWFnZSBzdmcsXG4udWkubWlkZGxlLmFsaWduZWQuaW1hZ2UgaW1nIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuLnVpLmJvdHRvbS5hbGlnbmVkLmltYWdlcyAuaW1hZ2UsXG4udWkuYm90dG9tLmFsaWduZWQuaW1hZ2UsXG4udWkuYm90dG9tLmFsaWduZWQuaW1hZ2Ugc3ZnLFxuLnVpLmJvdHRvbS5hbGlnbmVkLmltYWdlIGltZyB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdmVydGljYWwtYWxpZ246IGJvdHRvbTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgUm91bmRlZFxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5yb3VuZGVkLmltYWdlcyAuaW1hZ2UsXG4udWkucm91bmRlZC5pbWFnZSxcbi51aS5yb3VuZGVkLmltYWdlcyAuaW1hZ2UgPiAqLFxuLnVpLnJvdW5kZWQuaW1hZ2UgPiAqIHtcbiAgYm9yZGVyLXJhZGl1czogMC4zMTI1ZW07XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyZWRcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuYm9yZGVyZWQuaW1hZ2VzIC5pbWFnZSxcbi51aS5ib3JkZXJlZC5pbWFnZXMgaW1nLFxuLnVpLmJvcmRlcmVkLmltYWdlcyBzdmcsXG4udWkuYm9yZGVyZWQuaW1hZ2UgaW1nLFxuLnVpLmJvcmRlcmVkLmltYWdlIHN2ZyxcbmltZy51aS5ib3JkZXJlZC5pbWFnZSB7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgMC4xKTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBDaXJjdWxhclxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5jaXJjdWxhci5pbWFnZXMsXG4udWkuY2lyY3VsYXIuaW1hZ2Uge1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuLnVpLmNpcmN1bGFyLmltYWdlcyAuaW1hZ2UsXG4udWkuY2lyY3VsYXIuaW1hZ2UsXG4udWkuY2lyY3VsYXIuaW1hZ2VzIC5pbWFnZSA+ICosXG4udWkuY2lyY3VsYXIuaW1hZ2UgPiAqIHtcbiAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiA1MDByZW07XG4gIC1tb3otYm9yZGVyLXJhZGl1czogNTAwcmVtO1xuICBib3JkZXItcmFkaXVzOiA1MDByZW07XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIEZsdWlkXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmZsdWlkLmltYWdlcyxcbi51aS5mbHVpZC5pbWFnZSxcbi51aS5mbHVpZC5pbWFnZXMgaW1nLFxuLnVpLmZsdWlkLmltYWdlcyBzdmcsXG4udWkuZmx1aWQuaW1hZ2Ugc3ZnLFxuLnVpLmZsdWlkLmltYWdlIGltZyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiBhdXRvO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBBdmF0YXJcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuYXZhdGFyLmltYWdlcyAuaW1hZ2UsXG4udWkuYXZhdGFyLmltYWdlcyBpbWcsXG4udWkuYXZhdGFyLmltYWdlcyBzdmcsXG4udWkuYXZhdGFyLmltYWdlIGltZyxcbi51aS5hdmF0YXIuaW1hZ2Ugc3ZnLFxuLnVpLmF2YXRhci5pbWFnZSB7XG4gIG1hcmdpbi1yaWdodDogMC4yNWVtO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiAyZW07XG4gIGhlaWdodDogMmVtO1xuICAtd2Via2l0LWJvcmRlci1yYWRpdXM6IDUwMHJlbTtcbiAgLW1vei1ib3JkZXItcmFkaXVzOiA1MDByZW07XG4gIGJvcmRlci1yYWRpdXM6IDUwMHJlbTtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIFNwYWNlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLnNwYWNlZC5pbWFnZSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jayAhaW1wb3J0YW50O1xuICBtYXJnaW4tbGVmdDogMC41ZW07XG4gIG1hcmdpbi1yaWdodDogMC41ZW07XG59XG4udWlbY2xhc3MqPVwibGVmdCBzcGFjZWRcIl0uaW1hZ2Uge1xuICBtYXJnaW4tbGVmdDogMC41ZW07XG4gIG1hcmdpbi1yaWdodDogMGVtO1xufVxuLnVpW2NsYXNzKj1cInJpZ2h0IHNwYWNlZFwiXS5pbWFnZSB7XG4gIG1hcmdpbi1sZWZ0OiAwZW07XG4gIG1hcmdpbi1yaWdodDogMC41ZW07XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGbG9hdGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkuZmxvYXRlZC5pbWFnZSxcbi51aS5mbG9hdGVkLmltYWdlcyB7XG4gIGZsb2F0OiBsZWZ0O1xuICBtYXJnaW4tcmlnaHQ6IDFlbTtcbiAgbWFyZ2luLWJvdHRvbTogMWVtO1xufVxuLnVpLnJpZ2h0LmZsb2F0ZWQuaW1hZ2VzLFxuLnVpLnJpZ2h0LmZsb2F0ZWQuaW1hZ2Uge1xuICBmbG9hdDogcmlnaHQ7XG4gIG1hcmdpbi1yaWdodDogMGVtO1xuICBtYXJnaW4tYm90dG9tOiAxZW07XG4gIG1hcmdpbi1sZWZ0OiAxZW07XG59XG4udWkuZmxvYXRlZC5pbWFnZXM6bGFzdC1jaGlsZCxcbi51aS5mbG9hdGVkLmltYWdlOmxhc3QtY2hpbGQge1xuICBtYXJnaW4tYm90dG9tOiAwZW07XG59XG4udWkuY2VudGVyZWQuaW1hZ2VzLFxuLnVpLmNlbnRlcmVkLmltYWdlIHtcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkubWluaS5pbWFnZXMgLmltYWdlLFxuLnVpLm1pbmkuaW1hZ2VzIGltZyxcbi51aS5taW5pLmltYWdlcyBzdmcsXG4udWkubWluaS5pbWFnZSB7XG4gIHdpZHRoOiAzNXB4O1xuICBoZWlnaHQ6IGF1dG87XG4gIGZvbnQtc2l6ZTogMC44cmVtO1xufVxuLnVpLnRpbnkuaW1hZ2VzIC5pbWFnZSxcbi51aS50aW55LmltYWdlcyBpbWcsXG4udWkudGlueS5pbWFnZXMgc3ZnLFxuLnVpLnRpbnkuaW1hZ2Uge1xuICB3aWR0aDogODBweDtcbiAgaGVpZ2h0OiBhdXRvO1xuICBmb250LXNpemU6IDAuOXJlbTtcbn1cbi51aS5zbWFsbC5pbWFnZXMgLmltYWdlLFxuLnVpLnNtYWxsLmltYWdlcyBpbWcsXG4udWkuc21hbGwuaW1hZ2VzIHN2Zyxcbi51aS5zbWFsbC5pbWFnZSB7XG4gIHdpZHRoOiAxNTBweDtcbiAgaGVpZ2h0OiBhdXRvO1xuICBmb250LXNpemU6IDAuOXJlbTtcbn1cbi51aS5tZWRpdW0uaW1hZ2VzIC5pbWFnZSxcbi51aS5tZWRpdW0uaW1hZ2VzIGltZyxcbi51aS5tZWRpdW0uaW1hZ2VzIHN2Zyxcbi51aS5tZWRpdW0uaW1hZ2Uge1xuICB3aWR0aDogMzAwcHg7XG4gIGhlaWdodDogYXV0bztcbiAgZm9udC1zaXplOiAxcmVtO1xufVxuLnVpLmxhcmdlLmltYWdlcyAuaW1hZ2UsXG4udWkubGFyZ2UuaW1hZ2VzIGltZyxcbi51aS5sYXJnZS5pbWFnZXMgc3ZnLFxuLnVpLmxhcmdlLmltYWdlIHtcbiAgd2lkdGg6IDQ1MHB4O1xuICBoZWlnaHQ6IGF1dG87XG4gIGZvbnQtc2l6ZTogMS4xcmVtO1xufVxuLnVpLmJpZy5pbWFnZXMgLmltYWdlLFxuLnVpLmJpZy5pbWFnZXMgaW1nLFxuLnVpLmJpZy5pbWFnZXMgc3ZnLFxuLnVpLmJpZy5pbWFnZSB7XG4gIHdpZHRoOiA2MDBweDtcbiAgaGVpZ2h0OiBhdXRvO1xuICBmb250LXNpemU6IDEuM3JlbTtcbn1cbi51aS5odWdlLmltYWdlcyAuaW1hZ2UsXG4udWkuaHVnZS5pbWFnZXMgaW1nLFxuLnVpLmh1Z2UuaW1hZ2VzIHN2Zyxcbi51aS5odWdlLmltYWdlIHtcbiAgd2lkdGg6IDgwMHB4O1xuICBoZWlnaHQ6IGF1dG87XG4gIGZvbnQtc2l6ZTogMS40cmVtO1xufVxuLnVpLm1hc3NpdmUuaW1hZ2VzIC5pbWFnZSxcbi51aS5tYXNzaXZlLmltYWdlcyBpbWcsXG4udWkubWFzc2l2ZS5pbWFnZXMgc3ZnLFxuLnVpLm1hc3NpdmUuaW1hZ2Uge1xuICB3aWR0aDogOTYwcHg7XG4gIGhlaWdodDogYXV0bztcbiAgZm9udC1zaXplOiAxLjdyZW07XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgICBHcm91cHNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4udWkuaW1hZ2VzIHtcbiAgZm9udC1zaXplOiAwZW07XG4gIG1hcmdpbjogMGVtIC0wLjI1cmVtIDByZW07XG59XG4udWkuaW1hZ2VzIC5pbWFnZSxcbi51aS5pbWFnZXMgaW1nLFxuLnVpLmltYWdlcyBzdmcge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1hcmdpbjogMGVtIDAuMjVyZW0gMC41cmVtO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFRoZW1lIE92ZXJyaWRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIE92ZXJyaWRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIVxuICogIyBTZW1hbnRpYyBVSSAtIElucHV0XG4gKiBodHRwOi8vZ2l0aHViLmNvbS9zZW1hbnRpYy1vcmcvc2VtYW50aWMtdWkvXG4gKlxuICpcbiAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZVxuICogaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVFxuICpcbiAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLypcblxu4paI4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWXICDilojilojilZfilojilojilojilojilojilojilojilZfilojilojilojilZcgICDilojilojilojilZfilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZdcbuKVmuKVkOKVkOKWiOKWiOKVlOKVkOKVkOKVneKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWd4paI4paI4paI4paI4pWXIOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVnVxuICAg4paI4paI4pWRICAg4paI4paI4paI4paI4paI4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilZTilojilojilojilojilZTilojilojilZHilojilojilojilojilojilZcgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl1xuICAg4paI4paI4pWRICAg4paI4paI4pWU4pWQ4pWQ4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilojilojilZHilZrilojilojilZTilZ3ilojilojilZHilojilojilZTilZDilZDilZ0gIOKVmuKVkOKVkOKVkOKVkOKWiOKWiOKVkVxuICAg4paI4paI4pWRICAg4paI4paI4pWRICDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilZEg4pWa4pWQ4pWdIOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkVxuICAg4pWa4pWQ4pWdICAg4pWa4pWQ4pWdICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZ0gICAgIOKVmuKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVnVxuXG4qL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgVGhlbWUgU2VsZWN0aW9uXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogVG8gb3ZlcnJpZGUgYSB0aGVtZSBmb3IgYW4gaW5kaXZpZHVhbCBlbGVtZW50XG4gICBzcGVjaWZ5IHRoZW1lIG5hbWUgYmVsb3dcbiovXG4vKiBHbG9iYWwgKi9cbi8qIEVsZW1lbnRzICovXG4vKiBDb2xsZWN0aW9ucyAqL1xuLyogTW9kdWxlcyAqL1xuLyogVmlld3MgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBGb2xkZXJzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogUGF0aCB0byB0aGVtZSBwYWNrYWdlcyAqL1xuLyogUGF0aCB0byBzaXRlIG92ZXJyaWRlIGZvbGRlciAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIEltcG9ydCBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIEltcG9ydCBEaXJlY3RpdmVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBUaGVtZVxuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICBTaXRlIFZhcmlhYmxlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERlZmF1bHQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZG9ycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBQYWNrYWdlZCBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kb3JzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIENvbXBvbmVudCdzIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRvcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogU2l0ZSB0aGVtZSBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgVXNlciBHbG9iYWwgVmFyaWFibGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogbWFyc28gY29sb3JzICovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gQ29tcG9uZW50IFZhcmlhYmxlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERlZmF1bHQgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBJbnB1dFxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRWxlbWVudFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFR5cGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJY29uIElucHV0ICovXG4vKiBDaXJjdWxhciBJY29uIElucHV0ICovXG4vKiBMYWJlbGVkIElucHV0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU3RhdGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQbGFjZWhvbGRlciAqL1xuLyogRG93biAqL1xuLyogRm9jdXMgKi9cbi8qIEVycm9yICovXG4vKiBMb2FkZXIgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgVmFyaWF0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qIFBhY2thZ2VkIFRoZW1lICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgSW5wdXRcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEVsZW1lbnRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBUeXBlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSWNvbiBJbnB1dCAqL1xuLyogQ2lyY3VsYXIgSWNvbiBJbnB1dCAqL1xuLyogTGFiZWxlZCBJbnB1dCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFN0YXRlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUGxhY2Vob2xkZXIgKi9cbi8qIERvd24gKi9cbi8qIEZvY3VzICovXG4vKiBFcnJvciAqL1xuLyogTG9hZGVyICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFZhcmlhdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKiBTaXRlIFRoZW1lICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgIFVzZXIgVmFyaWFibGUgT3ZlcnJpZGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBNaXgtaW5zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBPdmVycmlkZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRW5kIENvbmZpZyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgU3RhbmRhcmRcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIElucHV0c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5pbnB1dCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgY29sb3I6ICMzMzMzMzM7XG59XG4udWkuaW5wdXQgaW5wdXQge1xuICBtYXJnaW46IDBlbTtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBmbGV4OiAxIDAgYXV0bztcbiAgb3V0bGluZTogbm9uZTtcbiAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDApO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBsaW5lLWhlaWdodDogMS4yMTQyODU3MWVtO1xuICBmb250LWZhbWlseTogJ0V4byAyJywgJ0xhdG8nLCBBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmO1xuICBwYWRkaW5nOiAwLjk5Mjg1NzE0ZW0gMS40ZW07XG4gIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMzQsIDM2LCAzOCwgMC4xNSk7XG4gIGNvbG9yOiAjMzMzMzMzO1xuICBib3JkZXItcmFkaXVzOiAwLjRyZW07XG4gIHRyYW5zaXRpb246IGJveC1zaGFkb3cgMC4xcyBlYXNlLCBib3JkZXItY29sb3IgMC4xcyBlYXNlO1xuICBib3gtc2hhZG93OiBub25lO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGxhY2Vob2xkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBicm93c2VycyByZXF1aXJlIHRoZXNlIHJ1bGVzIHNlcGFyYXRlICovXG4udWkuaW5wdXQgaW5wdXQ6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIge1xuICBjb2xvcjogI2YyZjJmMjtcbn1cbi51aS5pbnB1dCBpbnB1dDo6LW1vei1wbGFjZWhvbGRlciB7XG4gIGNvbG9yOiAjZjJmMmYyO1xufVxuLnVpLmlucHV0IGlucHV0Oi1tcy1pbnB1dC1wbGFjZWhvbGRlciB7XG4gIGNvbG9yOiAjZjJmMmYyO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkuZGlzYWJsZWQuaW5wdXQsXG4udWkuaW5wdXQgaW5wdXRbZGlzYWJsZWRdIHtcbiAgb3BhY2l0eTogMC40NTtcbn1cbi51aS5kaXNhYmxlZC5pbnB1dCBpbnB1dCxcbi51aS5pbnB1dCBpbnB1dFtkaXNhYmxlZF0ge1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmlucHV0IGlucHV0OmFjdGl2ZSxcbi51aS5pbnB1dC5kb3duIGlucHV0IHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMyk7XG4gIGJhY2tncm91bmQ6ICNGQUZBRkE7XG4gIGNvbG9yOiAjMzMzMzMzO1xuICBib3gtc2hhZG93OiBub25lO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRpbmdcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkubG9hZGluZy5sb2FkaW5nLmlucHV0ID4gaS5pY29uOmJlZm9yZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgY29udGVudDogJyc7XG4gIHRvcDogNTAlO1xuICBsZWZ0OiA1MCU7XG4gIG1hcmdpbjogLTAuNjVlbSAwZW0gMGVtIC0wLjY1ZW07XG4gIHdpZHRoOiAxLjNlbTtcbiAgaGVpZ2h0OiAxLjNlbTtcbiAgYm9yZGVyLXJhZGl1czogNTAwcmVtO1xuICBib3JkZXI6IDAuMmVtIHNvbGlkIHJnYmEoMCwgMCwgMCwgMC4xKTtcbn1cbi51aS5sb2FkaW5nLmxvYWRpbmcuaW5wdXQgPiBpLmljb246YWZ0ZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGNvbnRlbnQ6ICcnO1xuICB0b3A6IDUwJTtcbiAgbGVmdDogNTAlO1xuICBtYXJnaW46IC0wLjY1ZW0gMGVtIDBlbSAtMC42NWVtO1xuICB3aWR0aDogMS4zZW07XG4gIGhlaWdodDogMS4zZW07XG4gIGFuaW1hdGlvbjogYnV0dG9uLXNwaW4gMC42cyBsaW5lYXI7XG4gIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xuICBib3JkZXItcmFkaXVzOiA1MDByZW07XG4gIGJvcmRlci1jb2xvcjogIzc2NzY3NiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgYm9yZGVyLXdpZHRoOiAwLjJlbTtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4IHRyYW5zcGFyZW50O1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5pbnB1dC5mb2N1cyBpbnB1dCxcbi51aS5pbnB1dCBpbnB1dDpmb2N1cyB7XG4gIGJvcmRlci1jb2xvcjogIzg1QjdEOTtcbiAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44KTtcbiAgYm94LXNoYWRvdzogbm9uZTtcbn1cbi51aS5pbnB1dC5mb2N1cyBpbnB1dDo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlcixcbi51aS5pbnB1dCBpbnB1dDpmb2N1czo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciB7XG4gIGNvbG9yOiAjYTZhNmE2O1xufVxuLnVpLmlucHV0LmZvY3VzIGlucHV0OjotbW96LXBsYWNlaG9sZGVyLFxuLnVpLmlucHV0IGlucHV0OmZvY3VzOjotbW96LXBsYWNlaG9sZGVyIHtcbiAgY29sb3I6ICNhNmE2YTY7XG59XG4udWkuaW5wdXQuZm9jdXMgaW5wdXQ6LW1zLWlucHV0LXBsYWNlaG9sZGVyLFxuLnVpLmlucHV0IGlucHV0OmZvY3VzOi1tcy1pbnB1dC1wbGFjZWhvbGRlciB7XG4gIGNvbG9yOiAjYTZhNmE2O1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBFcnJvclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5pbnB1dC5lcnJvciBpbnB1dCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGRkY2RjY7XG4gIGJvcmRlci1jb2xvcjogI0UwQjRCNDtcbiAgY29sb3I6ICM5RjNBMzg7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG59XG4vKiBFcnJvciBQbGFjZWhvbGRlciAqL1xuLnVpLmlucHV0LmVycm9yIGlucHV0Ojotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIHtcbiAgY29sb3I6ICNlN2JkYmM7XG59XG4udWkuaW5wdXQuZXJyb3IgaW5wdXQ6Oi1tb3otcGxhY2Vob2xkZXIge1xuICBjb2xvcjogI2U3YmRiYztcbn1cbi51aS5pbnB1dC5lcnJvciBpbnB1dDotbXMtaW5wdXQtcGxhY2Vob2xkZXIge1xuICBjb2xvcjogI2U3YmRiYyAhaW1wb3J0YW50O1xufVxuLyogRm9jdXNlZCBFcnJvciBQbGFjZWhvbGRlciAqL1xuLnVpLmlucHV0LmVycm9yIGlucHV0OmZvY3VzOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIHtcbiAgY29sb3I6ICNkYTk3OTY7XG59XG4udWkuaW5wdXQuZXJyb3IgaW5wdXQ6Zm9jdXM6Oi1tb3otcGxhY2Vob2xkZXIge1xuICBjb2xvcjogI2RhOTc5Njtcbn1cbi51aS5pbnB1dC5lcnJvciBpbnB1dDpmb2N1czotbXMtaW5wdXQtcGxhY2Vob2xkZXIge1xuICBjb2xvcjogI2RhOTc5NiAhaW1wb3J0YW50O1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgVmFyaWF0aW9uc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFRyYW5zcGFyZW50XG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLnRyYW5zcGFyZW50LmlucHV0IGlucHV0IHtcbiAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICBwYWRkaW5nOiAwZW0gIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xufVxuLyogVHJhbnNwYXJlbnQgSWNvbiAqL1xuLnVpLnRyYW5zcGFyZW50Lmljb24uaW5wdXQgPiBpLmljb24ge1xuICB3aWR0aDogMS4xZW07XG59XG4udWkudHJhbnNwYXJlbnQuaWNvbi5pbnB1dCA+IGlucHV0IHtcbiAgcGFkZGluZy1sZWZ0OiAwZW0gIWltcG9ydGFudDtcbiAgcGFkZGluZy1yaWdodDogMmVtICFpbXBvcnRhbnQ7XG59XG4udWkudHJhbnNwYXJlbnRbY2xhc3MqPVwibGVmdCBpY29uXCJdLmlucHV0ID4gaW5wdXQge1xuICBwYWRkaW5nLWxlZnQ6IDJlbSAhaW1wb3J0YW50O1xuICBwYWRkaW5nLXJpZ2h0OiAwZW0gIWltcG9ydGFudDtcbn1cbi8qIFRyYW5zcGFyZW50IEludmVydGVkICovXG4udWkudHJhbnNwYXJlbnQuaW52ZXJ0ZWQuaW5wdXQge1xuICBjb2xvcjogI2ZmZmZmZjtcbn1cbi51aS50cmFuc3BhcmVudC5pbnZlcnRlZC5pbnB1dCBpbnB1dCB7XG4gIGNvbG9yOiBpbmhlcml0O1xufVxuLnVpLnRyYW5zcGFyZW50LmludmVydGVkLmlucHV0IGlucHV0Ojotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KTtcbn1cbi51aS50cmFuc3BhcmVudC5pbnZlcnRlZC5pbnB1dCBpbnB1dDo6LW1vei1wbGFjZWhvbGRlciB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7XG59XG4udWkudHJhbnNwYXJlbnQuaW52ZXJ0ZWQuaW5wdXQgaW5wdXQ6LW1zLWlucHV0LXBsYWNlaG9sZGVyIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KTtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgIEljb25cbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkuaWNvbi5pbnB1dCA+IGkuaWNvbiB7XG4gIGN1cnNvcjogZGVmYXVsdDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsaW5lLWhlaWdodDogMTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB0b3A6IDBweDtcbiAgcmlnaHQ6IDBweDtcbiAgbWFyZ2luOiAwZW07XG4gIGhlaWdodDogMTAwJTtcbiAgd2lkdGg6IDMuM2VtO1xuICBvcGFjaXR5OiAwLjU7XG4gIGJvcmRlci1yYWRpdXM6IDBlbSAwLjRyZW0gMC40cmVtIDBlbTtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzIGVhc2U7XG59XG4udWkuaWNvbi5pbnB1dCA+IGkuaWNvbjpub3QoLmxpbmspIHtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG4udWkuaWNvbi5pbnB1dCBpbnB1dCB7XG4gIHBhZGRpbmctcmlnaHQ6IDMuM2VtICFpbXBvcnRhbnQ7XG59XG4udWkuaWNvbi5pbnB1dCA+IGkuaWNvbjpiZWZvcmUsXG4udWkuaWNvbi5pbnB1dCA+IGkuaWNvbjphZnRlciB7XG4gIGxlZnQ6IDA7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB0b3A6IDUwJTtcbiAgd2lkdGg6IDEwMCU7XG4gIG1hcmdpbi10b3A6IC0wLjVlbTtcbn1cbi51aS5pY29uLmlucHV0ID4gaS5saW5rLmljb24ge1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4udWkuaWNvbi5pbnB1dCA+IGkuY2lyY3VsYXIuaWNvbiB7XG4gIHRvcDogMC4zNWVtO1xuICByaWdodDogMC41ZW07XG59XG4vKiBMZWZ0IEljb24gSW5wdXQgKi9cbi51aVtjbGFzcyo9XCJsZWZ0IGljb25cIl0uaW5wdXQgPiBpLmljb24ge1xuICByaWdodDogYXV0bztcbiAgbGVmdDogMXB4O1xuICBib3JkZXItcmFkaXVzOiAwLjRyZW0gMGVtIDBlbSAwLjRyZW07XG59XG4udWlbY2xhc3MqPVwibGVmdCBpY29uXCJdLmlucHV0ID4gaS5jaXJjdWxhci5pY29uIHtcbiAgcmlnaHQ6IGF1dG87XG4gIGxlZnQ6IDAuNWVtO1xufVxuLnVpW2NsYXNzKj1cImxlZnQgaWNvblwiXS5pbnB1dCA+IGlucHV0IHtcbiAgcGFkZGluZy1sZWZ0OiAzLjNlbSAhaW1wb3J0YW50O1xuICBwYWRkaW5nLXJpZ2h0OiAxLjRlbSAhaW1wb3J0YW50O1xufVxuLyogRm9jdXMgKi9cbi51aS5pY29uLmlucHV0ID4gaW5wdXQ6Zm9jdXMgfiBpLmljb24ge1xuICBvcGFjaXR5OiAxO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBMYWJlbGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogQWRqYWNlbnQgTGFiZWwgKi9cbi51aS5sYWJlbGVkLmlucHV0ID4gLmxhYmVsIHtcbiAgZmxleDogMCAwIGF1dG87XG4gIG1hcmdpbjogMDtcbiAgZm9udC1zaXplOiAxZW07XG59XG4udWkubGFiZWxlZC5pbnB1dCA+IC5sYWJlbDpub3QoLmNvcm5lcikge1xuICBwYWRkaW5nLXRvcDogMS4xZW07XG4gIHBhZGRpbmctYm90dG9tOiAxLjFlbTtcbn1cbi8qIFJlZ3VsYXIgTGFiZWwgb24gTGVmdCAqL1xuLnVpLmxhYmVsZWQuaW5wdXQ6bm90KFtjbGFzcyo9XCJjb3JuZXIgbGFiZWxlZFwiXSkgLmxhYmVsOmZpcnN0LWNoaWxkIHtcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDBweDtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDBweDtcbn1cbi51aS5sYWJlbGVkLmlucHV0Om5vdChbY2xhc3MqPVwiY29ybmVyIGxhYmVsZWRcIl0pIC5sYWJlbDpmaXJzdC1jaGlsZCArIGlucHV0IHtcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMHB4O1xuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwcHg7XG4gIGJvcmRlci1sZWZ0LWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cbi51aS5sYWJlbGVkLmlucHV0Om5vdChbY2xhc3MqPVwiY29ybmVyIGxhYmVsZWRcIl0pIC5sYWJlbDpmaXJzdC1jaGlsZCArIGlucHV0OmZvY3VzIHtcbiAgYm9yZGVyLWxlZnQtY29sb3I6ICM4NUI3RDk7XG59XG4vKiBSZWd1bGFyIExhYmVsIG9uIFJpZ2h0ICovXG4udWlbY2xhc3MqPVwicmlnaHQgbGFiZWxlZFwiXS5pbnB1dCBpbnB1dCB7XG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwcHggIWltcG9ydGFudDtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDBweCAhaW1wb3J0YW50O1xuICBib3JkZXItcmlnaHQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG59XG4udWlbY2xhc3MqPVwicmlnaHQgbGFiZWxlZFwiXS5pbnB1dCBpbnB1dCArIC5sYWJlbCB7XG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDBweDtcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMHB4O1xufVxuLnVpW2NsYXNzKj1cInJpZ2h0IGxhYmVsZWRcIl0uaW5wdXQgaW5wdXQ6Zm9jdXMge1xuICBib3JkZXItcmlnaHQtY29sb3I6ICM4NUI3RDkgIWltcG9ydGFudDtcbn1cbi8qIENvcm5lciBMYWJlbCAqL1xuLnVpLmxhYmVsZWQuaW5wdXQgLmNvcm5lci5sYWJlbCB7XG4gIHRvcDogMXB4O1xuICByaWdodDogMXB4O1xuICBmb250LXNpemU6IDAuOWVtO1xuICBib3JkZXItcmFkaXVzOiAwZW0gMC40cmVtIDBlbSAwZW07XG59XG4vKiBTcGFjaW5nIHdpdGggY29ybmVyIGxhYmVsICovXG4udWlbY2xhc3MqPVwiY29ybmVyIGxhYmVsZWRcIl06bm90KFtjbGFzcyo9XCJsZWZ0IGNvcm5lciBsYWJlbGVkXCJdKS5sYWJlbGVkLmlucHV0IGlucHV0IHtcbiAgcGFkZGluZy1yaWdodDogMi41ZW0gIWltcG9ydGFudDtcbn1cbi51aVtjbGFzcyo9XCJjb3JuZXIgbGFiZWxlZFwiXS5pY29uLmlucHV0Om5vdChbY2xhc3MqPVwibGVmdCBjb3JuZXIgbGFiZWxlZFwiXSkgPiBpbnB1dCB7XG4gIHBhZGRpbmctcmlnaHQ6IDMuMjVlbSAhaW1wb3J0YW50O1xufVxuLnVpW2NsYXNzKj1cImNvcm5lciBsYWJlbGVkXCJdLmljb24uaW5wdXQ6bm90KFtjbGFzcyo9XCJsZWZ0IGNvcm5lciBsYWJlbGVkXCJdKSA+IC5pY29uIHtcbiAgbWFyZ2luLXJpZ2h0OiAxLjI1ZW07XG59XG4vKiBMZWZ0IExhYmVsZWQgKi9cbi51aVtjbGFzcyo9XCJsZWZ0IGNvcm5lciBsYWJlbGVkXCJdLmxhYmVsZWQuaW5wdXQgaW5wdXQge1xuICBwYWRkaW5nLWxlZnQ6IDIuNWVtICFpbXBvcnRhbnQ7XG59XG4udWlbY2xhc3MqPVwibGVmdCBjb3JuZXIgbGFiZWxlZFwiXS5pY29uLmlucHV0ID4gaW5wdXQge1xuICBwYWRkaW5nLWxlZnQ6IDMuMjVlbSAhaW1wb3J0YW50O1xufVxuLnVpW2NsYXNzKj1cImxlZnQgY29ybmVyIGxhYmVsZWRcIl0uaWNvbi5pbnB1dCA+IC5pY29uIHtcbiAgbWFyZ2luLWxlZnQ6IDEuMjVlbTtcbn1cbi8qIENvcm5lciBMYWJlbCBQb3NpdGlvbiAgKi9cbi51aS5pbnB1dCA+IC51aS5jb3JuZXIubGFiZWwge1xuICB0b3A6IDFweDtcbiAgcmlnaHQ6IDFweDtcbn1cbi51aS5pbnB1dCA+IC51aS5sZWZ0LmNvcm5lci5sYWJlbCB7XG4gIHJpZ2h0OiBhdXRvO1xuICBsZWZ0OiAxcHg7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGlvblxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5hY3Rpb24uaW5wdXQgPiAuYnV0dG9uLFxuLnVpLmFjdGlvbi5pbnB1dCA+IC5idXR0b25zIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZmxleDogMCAwIGF1dG87XG59XG4udWkuYWN0aW9uLmlucHV0ID4gLmJ1dHRvbixcbi51aS5hY3Rpb24uaW5wdXQgPiAuYnV0dG9ucyA+IC5idXR0b24ge1xuICBwYWRkaW5nLXRvcDogMS4xZW07XG4gIHBhZGRpbmctYm90dG9tOiAxLjFlbTtcbiAgbWFyZ2luOiAwO1xufVxuLyogQnV0dG9uIG9uIFJpZ2h0ICovXG4udWkuYWN0aW9uLmlucHV0Om5vdChbY2xhc3MqPVwibGVmdCBhY3Rpb25cIl0pID4gaW5wdXQge1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMHB4ICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwcHggIWltcG9ydGFudDtcbiAgYm9yZGVyLXJpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xufVxuLnVpLmFjdGlvbi5pbnB1dDpub3QoW2NsYXNzKj1cImxlZnQgYWN0aW9uXCJdKSA+IC5kcm9wZG93bjpub3QoOmZpcnN0LWNoaWxkKSxcbi51aS5hY3Rpb24uaW5wdXQ6bm90KFtjbGFzcyo9XCJsZWZ0IGFjdGlvblwiXSkgPiAuYnV0dG9uOm5vdCg6Zmlyc3QtY2hpbGQpLFxuLnVpLmFjdGlvbi5pbnB1dDpub3QoW2NsYXNzKj1cImxlZnQgYWN0aW9uXCJdKSA+IC5idXR0b25zOm5vdCg6Zmlyc3QtY2hpbGQpID4gLmJ1dHRvbiB7XG4gIGJvcmRlci1yYWRpdXM6IDBweDtcbn1cbi51aS5hY3Rpb24uaW5wdXQ6bm90KFtjbGFzcyo9XCJsZWZ0IGFjdGlvblwiXSkgPiAuZHJvcGRvd246bGFzdC1jaGlsZCxcbi51aS5hY3Rpb24uaW5wdXQ6bm90KFtjbGFzcyo9XCJsZWZ0IGFjdGlvblwiXSkgPiAuYnV0dG9uOmxhc3QtY2hpbGQsXG4udWkuYWN0aW9uLmlucHV0Om5vdChbY2xhc3MqPVwibGVmdCBhY3Rpb25cIl0pID4gLmJ1dHRvbnM6bGFzdC1jaGlsZCA+IC5idXR0b24ge1xuICBib3JkZXItcmFkaXVzOiAwcHggMC40cmVtIDAuNHJlbSAwcHg7XG59XG4vKiBJbnB1dCBGb2N1cyAqL1xuLnVpLmFjdGlvbi5pbnB1dDpub3QoW2NsYXNzKj1cImxlZnQgYWN0aW9uXCJdKSBpbnB1dDpmb2N1cyB7XG4gIGJvcmRlci1yaWdodC1jb2xvcjogIzg1QjdEOSAhaW1wb3J0YW50O1xufVxuLyogQnV0dG9uIG9uIExlZnQgKi9cbi51aVtjbGFzcyo9XCJsZWZ0IGFjdGlvblwiXS5pbnB1dCA+IGlucHV0IHtcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMHB4ICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDBweCAhaW1wb3J0YW50O1xuICBib3JkZXItbGVmdC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbn1cbi51aVtjbGFzcyo9XCJsZWZ0IGFjdGlvblwiXS5pbnB1dCA+IC5kcm9wZG93bixcbi51aVtjbGFzcyo9XCJsZWZ0IGFjdGlvblwiXS5pbnB1dCA+IC5idXR0b24sXG4udWlbY2xhc3MqPVwibGVmdCBhY3Rpb25cIl0uaW5wdXQgPiAuYnV0dG9ucyA+IC5idXR0b24ge1xuICBib3JkZXItcmFkaXVzOiAwcHg7XG59XG4udWlbY2xhc3MqPVwibGVmdCBhY3Rpb25cIl0uaW5wdXQgPiAuZHJvcGRvd246Zmlyc3QtY2hpbGQsXG4udWlbY2xhc3MqPVwibGVmdCBhY3Rpb25cIl0uaW5wdXQgPiAuYnV0dG9uOmZpcnN0LWNoaWxkLFxuLnVpW2NsYXNzKj1cImxlZnQgYWN0aW9uXCJdLmlucHV0ID4gLmJ1dHRvbnM6Zmlyc3QtY2hpbGQgPiAuYnV0dG9uIHtcbiAgYm9yZGVyLXJhZGl1czogMC40cmVtIDBweCAwcHggMC40cmVtO1xufVxuLyogSW5wdXQgRm9jdXMgKi9cbi51aVtjbGFzcyo9XCJsZWZ0IGFjdGlvblwiXS5pbnB1dCA+IGlucHV0OmZvY3VzIHtcbiAgYm9yZGVyLWxlZnQtY29sb3I6ICM4NUI3RDkgIWltcG9ydGFudDtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJbnZlcnRlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFN0YW5kYXJkICovXG4udWkuaW52ZXJ0ZWQuaW5wdXQgaW5wdXQge1xuICBib3JkZXI6IG5vbmU7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZsdWlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmZsdWlkLmlucHV0IHtcbiAgZGlzcGxheTogZmxleDtcbn1cbi51aS5mbHVpZC5pbnB1dCA+IGlucHV0IHtcbiAgd2lkdGg6IDBweCAhaW1wb3J0YW50O1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLm1pbmkuaW5wdXQge1xuICBmb250LXNpemU6IDAuOGVtO1xufVxuLnVpLnNtYWxsLmlucHV0IHtcbiAgZm9udC1zaXplOiAwLjllbTtcbn1cbi51aS5pbnB1dCB7XG4gIGZvbnQtc2l6ZTogMWVtO1xufVxuLnVpLmxhcmdlLmlucHV0IHtcbiAgZm9udC1zaXplOiAxLjFlbTtcbn1cbi51aS5iaWcuaW5wdXQge1xuICBmb250LXNpemU6IDEuM2VtO1xufVxuLnVpLmh1Z2UuaW5wdXQge1xuICBmb250LXNpemU6IDEuNGVtO1xufVxuLnVpLm1hc3NpdmUuaW5wdXQge1xuICBmb250LXNpemU6IDEuN2VtO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFRoZW1lIE92ZXJyaWRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIE92ZXJyaWRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIVxuICogIyBTZW1hbnRpYyBVSSAtIExhYmVsXG4gKiBodHRwOi8vZ2l0aHViLmNvbS9zZW1hbnRpYy1vcmcvc2VtYW50aWMtdWkvXG4gKlxuICpcbiAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZVxuICogaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVFxuICpcbiAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLypcblxu4paI4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWXICDilojilojilZfilojilojilojilojilojilojilojilZfilojilojilojilZcgICDilojilojilojilZfilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZdcbuKVmuKVkOKVkOKWiOKWiOKVlOKVkOKVkOKVneKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWd4paI4paI4paI4paI4pWXIOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVnVxuICAg4paI4paI4pWRICAg4paI4paI4paI4paI4paI4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilZTilojilojilojilojilZTilojilojilZHilojilojilojilojilojilZcgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl1xuICAg4paI4paI4pWRICAg4paI4paI4pWU4pWQ4pWQ4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilojilojilZHilZrilojilojilZTilZ3ilojilojilZHilojilojilZTilZDilZDilZ0gIOKVmuKVkOKVkOKVkOKVkOKWiOKWiOKVkVxuICAg4paI4paI4pWRICAg4paI4paI4pWRICDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilZEg4pWa4pWQ4pWdIOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkVxuICAg4pWa4pWQ4pWdICAg4pWa4pWQ4pWdICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZ0gICAgIOKVmuKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVnVxuXG4qL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgVGhlbWUgU2VsZWN0aW9uXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogVG8gb3ZlcnJpZGUgYSB0aGVtZSBmb3IgYW4gaW5kaXZpZHVhbCBlbGVtZW50XG4gICBzcGVjaWZ5IHRoZW1lIG5hbWUgYmVsb3dcbiovXG4vKiBHbG9iYWwgKi9cbi8qIEVsZW1lbnRzICovXG4vKiBDb2xsZWN0aW9ucyAqL1xuLyogTW9kdWxlcyAqL1xuLyogVmlld3MgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBGb2xkZXJzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogUGF0aCB0byB0aGVtZSBwYWNrYWdlcyAqL1xuLyogUGF0aCB0byBzaXRlIG92ZXJyaWRlIGZvbGRlciAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIEltcG9ydCBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIEltcG9ydCBEaXJlY3RpdmVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBUaGVtZVxuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICBTaXRlIFZhcmlhYmxlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERlZmF1bHQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZG9ycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBQYWNrYWdlZCBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kb3JzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIENvbXBvbmVudCdzIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRvcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogU2l0ZSB0aGVtZSBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgVXNlciBHbG9iYWwgVmFyaWFibGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogbWFyc28gY29sb3JzICovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gQ29tcG9uZW50IFZhcmlhYmxlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERlZmF1bHQgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgTGFiZWxcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbGVtZW50XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBtZWRpdW0gaXMgbm90IEBlbVNpemUgY3VzdG9tIHZhbHVlIHJlcXVpcmVkICovXG4vKiBHcm91cCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhcnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMaW5rICovXG4vKiBJY29uICovXG4vKiBJbWFnZSAqL1xuLyogRGV0YWlsICovXG4vKiBEZWxldGUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBUeXBlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW1hZ2UgTGFiZWwgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTdGF0ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEhvdmVyICovXG4vKiBBY3RpdmUgKi9cbi8qIEFjdGl2ZSBIb3ZlciAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBWYXJpYXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBCYXNpYyAqL1xuLyogVGFnICovXG4vKiBBdm9pZHMgZXJyb3Igd2l0aCBiYWNrZ3JvdW5kOiBpbmhlcml0OyBvbiBhbmltYXRpb24gKi9cbi8qIFJpYmJvbiAqL1xuLyogUm91bmRpbmcgT2Zmc2V0IG9uIFRyaWFuZ2xlICovXG4vKiBSb3VuZGluZyBPZmZzZXQgb24gVHJpYW5nbGUgKi9cbi8qIENvbG9ycyAqL1xuLyogQXR0YWNoZWQgKi9cbi8qIENvcm5lciAqL1xuLyogQ29ybmVyIFRleHQgKi9cbi8qIEhvcml6b250YWwgKi9cbi8qIENpcmN1bGFyIFBhZGRpbmcgKi9cbi8qIFBvaW50aW5nICovXG4vKiBCYXNpYyBQb2ludGluZyAqL1xuLyogRmxvYXRpbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcm91cFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2l6aW5nICovXG4vKiBQYWNrYWdlZCBUaGVtZSAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBMYWJlbFxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVsZW1lbnRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIG1lZGl1bSBpcyBub3QgQGVtU2l6ZSBjdXN0b20gdmFsdWUgcmVxdWlyZWQgKi9cbi8qIEdyb3VwICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFydHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExpbmsgKi9cbi8qIEljb24gKi9cbi8qIEltYWdlICovXG4vKiBEZXRhaWwgKi9cbi8qIERlbGV0ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFR5cGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbWFnZSBMYWJlbCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFN0YXRlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSG92ZXIgKi9cbi8qIEFjdGl2ZSAqL1xuLyogQWN0aXZlIEhvdmVyICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFZhcmlhdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEJhc2ljICovXG4vKiBUYWcgKi9cbi8qIEF2b2lkcyBlcnJvciB3aXRoIGJhY2tncm91bmQ6IGluaGVyaXQ7IG9uIGFuaW1hdGlvbiAqL1xuLyogUmliYm9uICovXG4vKiBSb3VuZGluZyBPZmZzZXQgb24gVHJpYW5nbGUgKi9cbi8qIFJvdW5kaW5nIE9mZnNldCBvbiBUcmlhbmdsZSAqL1xuLyogQ29sb3JzICovXG4vKiBBdHRhY2hlZCAqL1xuLyogQ29ybmVyICovXG4vKiBDb3JuZXIgVGV4dCAqL1xuLyogSG9yaXpvbnRhbCAqL1xuLyogQ2lyY3VsYXIgUGFkZGluZyAqL1xuLyogUG9pbnRpbmcgKi9cbi8qIEJhc2ljIFBvaW50aW5nICovXG4vKiBGbG9hdGluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyb3VwXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTaXppbmcgKi9cbi8qIFNpdGUgVGhlbWUgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgVXNlciBWYXJpYWJsZSBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIE1peC1pbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE92ZXJyaWRlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBFbmQgQ29uZmlnICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgTGFiZWxcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4udWkubGFiZWwge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG4gIG1hcmdpbjogMGVtIDAuMmVtO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRThFOEU4O1xuICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xuICBwYWRkaW5nOiAwLjU4MzNlbSAwLjgzM2VtO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjYpO1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGJvcmRlcjogMHB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItcmFkaXVzOiAwLjRyZW07XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xcyBlYXNlO1xufVxuLnVpLmxhYmVsOmZpcnN0LWNoaWxkIHtcbiAgbWFyZ2luLWxlZnQ6IDBlbTtcbn1cbi51aS5sYWJlbDpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLXJpZ2h0OiAwZW07XG59XG4vKiBMaW5rICovXG5hLnVpLmxhYmVsIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuLyogSW5zaWRlIExpbmsgKi9cbi51aS5sYWJlbCA+IGEge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGNvbG9yOiBpbmhlcml0O1xuICBvcGFjaXR5OiAwLjU7XG4gIHRyYW5zaXRpb246IDAuMXMgb3BhY2l0eSBlYXNlO1xufVxuLnVpLmxhYmVsID4gYTpob3ZlciB7XG4gIG9wYWNpdHk6IDE7XG59XG4vKiBJbWFnZSAqL1xuLnVpLmxhYmVsID4gaW1nIHtcbiAgd2lkdGg6IGF1dG8gIWltcG9ydGFudDtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgaGVpZ2h0OiAyLjE2NjZlbSAhaW1wb3J0YW50O1xufVxuLyogSWNvbiAqL1xuLnVpLmxhYmVsID4gLmljb24ge1xuICB3aWR0aDogYXV0bztcbiAgbWFyZ2luOiAwZW0gMC43NWVtIDBlbSAwZW07XG59XG4vKiBEZXRhaWwgKi9cbi51aS5sYWJlbCA+IC5kZXRhaWwge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBtYXJnaW4tbGVmdDogMWVtO1xuICBvcGFjaXR5OiAwLjg7XG59XG4udWkubGFiZWwgPiAuZGV0YWlsIC5pY29uIHtcbiAgbWFyZ2luOiAwZW0gMC4yNWVtIDBlbSAwZW07XG59XG4vKiBSZW1vdmFibGUgbGFiZWwgKi9cbi51aS5sYWJlbCA+IC5jbG9zZS5pY29uLFxuLnVpLmxhYmVsID4gLmRlbGV0ZS5pY29uIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBtYXJnaW4tcmlnaHQ6IDBlbTtcbiAgbWFyZ2luLWxlZnQ6IDAuNWVtO1xuICBmb250LXNpemU6IDAuOWVtO1xuICBvcGFjaXR5OiAwLjU7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xcyBlYXNlO1xufVxuLnVpLmxhYmVsID4gLmRlbGV0ZS5pY29uOmhvdmVyIHtcbiAgb3BhY2l0eTogMTtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEdyb3VwXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkubGFiZWxzID4gLmxhYmVsIHtcbiAgbWFyZ2luOiAwZW0gMC41ZW0gMC41ZW0gMGVtO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQ291cGxpbmdcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5oZWFkZXIgPiAudWkubGFiZWwge1xuICBtYXJnaW4tdG9wOiAtMC4yOTE2NWVtO1xufVxuLyogUmVtb3ZlIGJvcmRlciByYWRpdXMgb24gYXR0YWNoZWQgc2VnbWVudCAqL1xuLnVpLmF0dGFjaGVkLnNlZ21lbnQgPiAudWkudG9wLmxlZnQuYXR0YWNoZWQubGFiZWwsXG4udWkuYm90dG9tLmF0dGFjaGVkLnNlZ21lbnQgPiAudWkudG9wLmxlZnQuYXR0YWNoZWQubGFiZWwge1xuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwO1xufVxuLnVpLmF0dGFjaGVkLnNlZ21lbnQgPiAudWkudG9wLnJpZ2h0LmF0dGFjaGVkLmxhYmVsLFxuLnVpLmJvdHRvbS5hdHRhY2hlZC5zZWdtZW50ID4gLnVpLnRvcC5yaWdodC5hdHRhY2hlZC5sYWJlbCB7XG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwO1xufVxuLnVpLnRvcC5hdHRhY2hlZC5zZWdtZW50ID4gLnVpLmJvdHRvbS5sZWZ0LmF0dGFjaGVkLmxhYmVsIHtcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMDtcbn1cbi51aS50b3AuYXR0YWNoZWQuc2VnbWVudCA+IC51aS5ib3R0b20ucmlnaHQuYXR0YWNoZWQubGFiZWwge1xuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMDtcbn1cbi8qIFBhZGRpbmcgb24gbmV4dCBjb250ZW50IGFmdGVyIGEgbGFiZWwgKi9cbi51aS50b3AuYXR0YWNoZWQubGFiZWw6Zmlyc3QtY2hpbGQgKyA6bm90KC5hdHRhY2hlZCksXG4udWkudG9wLmF0dGFjaGVkLmxhYmVsICsgW2NsYXNzKj1cInJpZ2h0IGZsb2F0ZWRcIl0gKyAqIHtcbiAgbWFyZ2luLXRvcDogMnJlbSAhaW1wb3J0YW50O1xufVxuLnVpLmJvdHRvbS5hdHRhY2hlZC5sYWJlbDpmaXJzdC1jaGlsZCB+IDpsYXN0LWNoaWxkOm5vdCguYXR0YWNoZWQpIHtcbiAgbWFyZ2luLXRvcDogMGVtO1xuICBtYXJnaW4tYm90dG9tOiAycmVtICFpbXBvcnRhbnQ7XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFR5cGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLnVpLmltYWdlLmxhYmVsIHtcbiAgd2lkdGg6IGF1dG8gIWltcG9ydGFudDtcbiAgbWFyZ2luLXRvcDogMGVtO1xuICBtYXJnaW4tYm90dG9tOiAwZW07XG4gIG1heC13aWR0aDogOTk5OXB4O1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICBiYWNrZ3JvdW5kOiAjRThFOEU4O1xuICBwYWRkaW5nOiAwLjU4MzNlbSAwLjgzM2VtIDAuNTgzM2VtIDAuNWVtO1xuICBib3JkZXItcmFkaXVzOiAwLjRyZW07XG4gIGJveC1zaGFkb3c6IG5vbmU7XG59XG4udWkuaW1hZ2UubGFiZWwgaW1nIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICBoZWlnaHQ6IDIuMTY2NmVtO1xuICBtYXJnaW46IC0wLjU4MzNlbSAwLjVlbSAtMC41ODMzZW0gLTAuNWVtO1xuICBib3JkZXItcmFkaXVzOiAwLjRyZW0gMGVtIDBlbSAwLjRyZW07XG59XG4udWkuaW1hZ2UubGFiZWwgLmRldGFpbCB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgbWFyZ2luOiAtMC41ODMzZW0gLTAuODMzZW0gLTAuNTgzM2VtIDAuNWVtO1xuICBwYWRkaW5nOiAwLjU4MzNlbSAwLjgzM2VtO1xuICBib3JkZXItcmFkaXVzOiAwZW0gMC40cmVtIDAuNHJlbSAwZW07XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgIFRhZ1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLnRhZy5sYWJlbHMgLmxhYmVsLFxuLnVpLnRhZy5sYWJlbCB7XG4gIG1hcmdpbi1sZWZ0OiAxZW07XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgcGFkZGluZy1sZWZ0OiAxLjVlbTtcbiAgcGFkZGluZy1yaWdodDogMS41ZW07XG4gIGJvcmRlci1yYWRpdXM6IDBlbSAwLjRyZW0gMC40cmVtIDBlbTtcbiAgdHJhbnNpdGlvbjogbm9uZTtcbn1cbi51aS50YWcubGFiZWxzIC5sYWJlbDpiZWZvcmUsXG4udWkudGFnLmxhYmVsOmJlZm9yZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHRyYW5zbGF0ZVgoNTAlKSByb3RhdGUoLTQ1ZGVnKTtcbiAgdG9wOiA1MCU7XG4gIHJpZ2h0OiAxMDAlO1xuICBjb250ZW50OiAnJztcbiAgYmFja2dyb3VuZC1jb2xvcjogaW5oZXJpdDtcbiAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbiAgd2lkdGg6IDEuNTZlbTtcbiAgaGVpZ2h0OiAxLjU2ZW07XG4gIHRyYW5zaXRpb246IG5vbmU7XG59XG4udWkudGFnLmxhYmVscyAubGFiZWw6YWZ0ZXIsXG4udWkudGFnLmxhYmVsOmFmdGVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBjb250ZW50OiAnJztcbiAgdG9wOiA1MCU7XG4gIGxlZnQ6IC0wLjI1ZW07XG4gIG1hcmdpbi10b3A6IC0wLjI1ZW07XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcbiAgd2lkdGg6IDAuNWVtO1xuICBoZWlnaHQ6IDAuNWVtO1xuICBib3gtc2hhZG93OiAwIC0xcHggMXB4IDAgcmdiYSgwLCAwLCAwLCAwLjMpO1xuICBib3JkZXItcmFkaXVzOiA1MDByZW07XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBDb3JuZXIgTGFiZWxcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5jb3JuZXIubGFiZWwge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMGVtO1xuICByaWdodDogMGVtO1xuICBtYXJnaW46IDBlbTtcbiAgcGFkZGluZzogMGVtO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGJvcmRlci1jb2xvcjogI0U4RThFODtcbiAgd2lkdGg6IDRlbTtcbiAgaGVpZ2h0OiA0ZW07XG4gIHotaW5kZXg6IDE7XG4gIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAwLjFzIGVhc2U7XG59XG4vKiBJY29uIExhYmVsICovXG4udWkuY29ybmVyLmxhYmVsIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbn1cbi51aS5jb3JuZXIubGFiZWw6YWZ0ZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIHJpZ2h0OiAwZW07XG4gIHRvcDogMGVtO1xuICB6LWluZGV4OiAtMTtcbiAgd2lkdGg6IDBlbTtcbiAgaGVpZ2h0OiAwZW07XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gIGJvcmRlci10b3A6IDBlbSBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXJpZ2h0OiA0ZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1ib3R0b206IDRlbSBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLWxlZnQ6IDBlbSBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXJpZ2h0LWNvbG9yOiBpbmhlcml0O1xuICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMC4xcyBlYXNlO1xufVxuLnVpLmNvcm5lci5sYWJlbCAuaWNvbiB7XG4gIGN1cnNvcjogZGVmYXVsdDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0b3A6IDAuOWVtO1xuICBsZWZ0OiAxLjFlbTtcbiAgZm9udC1zaXplOiAxLjFlbTtcbiAgbWFyZ2luOiAwZW07XG59XG4vKiBMZWZ0IENvcm5lciAqL1xuLnVpLmxlZnQuY29ybmVyLmxhYmVsLFxuLnVpLmxlZnQuY29ybmVyLmxhYmVsOmFmdGVyIHtcbiAgcmlnaHQ6IGF1dG87XG4gIGxlZnQ6IDBlbTtcbn1cbi51aS5sZWZ0LmNvcm5lci5sYWJlbDphZnRlciB7XG4gIGJvcmRlci10b3A6IDRlbSBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXJpZ2h0OiA0ZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1ib3R0b206IDBlbSBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLWxlZnQ6IDBlbSBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXRvcC1jb2xvcjogaW5oZXJpdDtcbn1cbi51aS5sZWZ0LmNvcm5lci5sYWJlbCAuaWNvbiB7XG4gIGxlZnQ6IC0xLjFlbTtcbn1cbi8qIFNlZ21lbnQgKi9cbi51aS5zZWdtZW50ID4gLnVpLmNvcm5lci5sYWJlbCB7XG4gIHRvcDogLTFweDtcbiAgcmlnaHQ6IC0xcHg7XG59XG4udWkuc2VnbWVudCA+IC51aS5sZWZ0LmNvcm5lci5sYWJlbCB7XG4gIHJpZ2h0OiBhdXRvO1xuICBsZWZ0OiAtMXB4O1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgUmliYm9uXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkucmliYm9uLmxhYmVsIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtYXJnaW46IDBlbTtcbiAgbWluLXdpZHRoOiBtYXgtY29udGVudDtcbiAgYm9yZGVyLXJhZGl1czogMGVtIDAuNHJlbSAwLjRyZW0gMGVtO1xuICBib3JkZXItY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xNSk7XG59XG4udWkucmliYm9uLmxhYmVsOmFmdGVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBjb250ZW50OiAnJztcbiAgdG9wOiAxMDAlO1xuICBsZWZ0OiAwJTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgYm9yZGVyLXdpZHRoOiAwZW0gMS4yZW0gMS4yZW0gMGVtO1xuICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3JkZXItcmlnaHQtY29sb3I6IGluaGVyaXQ7XG4gIHdpZHRoOiAwZW07XG4gIGhlaWdodDogMGVtO1xufVxuLyogUG9zaXRpb25pbmcgKi9cbi51aS5yaWJib24ubGFiZWwge1xuICBsZWZ0OiBjYWxjKC0xcmVtIC0gMS4yZW0pO1xuICBtYXJnaW4tcmlnaHQ6IC0xLjJlbTtcbiAgcGFkZGluZy1sZWZ0OiBjYWxjKDFyZW0gKyAxLjJlbSk7XG4gIHBhZGRpbmctcmlnaHQ6IDEuMmVtO1xufVxuLnVpW2NsYXNzKj1cInJpZ2h0IHJpYmJvblwiXS5sYWJlbCB7XG4gIGxlZnQ6IGNhbGMoMTAwJSArIDFyZW0gKyAxLjJlbSk7XG4gIHBhZGRpbmctbGVmdDogMS4yZW07XG4gIHBhZGRpbmctcmlnaHQ6IGNhbGMoMXJlbSArIDEuMmVtKTtcbn1cbi8qIFJpZ2h0IFJpYmJvbiAqL1xuLnVpW2NsYXNzKj1cInJpZ2h0IHJpYmJvblwiXS5sYWJlbCB7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTAwJSk7XG4gIGJvcmRlci1yYWRpdXM6IDAuNHJlbSAwZW0gMGVtIDAuNHJlbTtcbn1cbi51aVtjbGFzcyo9XCJyaWdodCByaWJib25cIl0ubGFiZWw6YWZ0ZXIge1xuICBsZWZ0OiBhdXRvO1xuICByaWdodDogMCU7XG4gIGJvcmRlci1zdHlsZTogc29saWQ7XG4gIGJvcmRlci13aWR0aDogMS4yZW0gMS4yZW0gMGVtIDBlbTtcbiAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXRvcC1jb2xvcjogaW5oZXJpdDtcbn1cbi8qIEluc2lkZSBUYWJsZSAqL1xuLnVpLmltYWdlID4gLnJpYmJvbi5sYWJlbCxcbi51aS5jYXJkIC5pbWFnZSA+IC5yaWJib24ubGFiZWwge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMXJlbTtcbn1cbi51aS5jYXJkIC5pbWFnZSA+IC51aS5yaWJib24ubGFiZWwsXG4udWkuaW1hZ2UgPiAudWkucmliYm9uLmxhYmVsIHtcbiAgbGVmdDogY2FsYygwLjA1cmVtIC0gMS4yZW0pO1xufVxuLnVpLmNhcmQgLmltYWdlID4gLnVpW2NsYXNzKj1cInJpZ2h0IHJpYmJvblwiXS5sYWJlbCxcbi51aS5pbWFnZSA+IC51aVtjbGFzcyo9XCJyaWdodCByaWJib25cIl0ubGFiZWwge1xuICBsZWZ0OiBjYWxjKDEwMCUgKyAtMC4wNXJlbSArIDEuMmVtKTtcbiAgcGFkZGluZy1sZWZ0OiAwLjgzM2VtO1xufVxuLyogSW5zaWRlIFRhYmxlICovXG4udWkudGFibGUgdGQgPiAudWkucmliYm9uLmxhYmVsIHtcbiAgbGVmdDogY2FsYygtMC44ZW0gLSAxLjJlbSk7XG59XG4udWkudGFibGUgdGQgPiAudWlbY2xhc3MqPVwicmlnaHQgcmliYm9uXCJdLmxhYmVsIHtcbiAgbGVmdDogY2FsYygxMDAlICsgMC44ZW0gKyAxLjJlbSk7XG4gIHBhZGRpbmctbGVmdDogMC44MzNlbTtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQXR0YWNoZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aVtjbGFzcyo9XCJ0b3AgYXR0YWNoZWRcIl0ubGFiZWwsXG4udWkuYXR0YWNoZWQubGFiZWwge1xuICB3aWR0aDogMTAwJTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBtYXJnaW46IDBlbTtcbiAgdG9wOiAwZW07XG4gIGxlZnQ6IDBlbTtcbiAgcGFkZGluZzogMC43NWVtIDFlbTtcbiAgYm9yZGVyLXJhZGl1czogMC4zcmVtIDAuM3JlbSAwZW0gMGVtO1xufVxuLnVpW2NsYXNzKj1cImJvdHRvbSBhdHRhY2hlZFwiXS5sYWJlbCB7XG4gIHRvcDogYXV0bztcbiAgYm90dG9tOiAwZW07XG4gIGJvcmRlci1yYWRpdXM6IDBlbSAwZW0gMC4zcmVtIDAuM3JlbTtcbn1cbi51aVtjbGFzcyo9XCJ0b3AgbGVmdCBhdHRhY2hlZFwiXS5sYWJlbCB7XG4gIHdpZHRoOiBhdXRvO1xuICBtYXJnaW4tdG9wOiAwZW0gIWltcG9ydGFudDtcbiAgYm9yZGVyLXJhZGl1czogMC4zcmVtIDBlbSAwLjRyZW0gMGVtO1xufVxuLnVpW2NsYXNzKj1cInRvcCByaWdodCBhdHRhY2hlZFwiXS5sYWJlbCB7XG4gIHdpZHRoOiBhdXRvO1xuICBsZWZ0OiBhdXRvO1xuICByaWdodDogMGVtO1xuICBib3JkZXItcmFkaXVzOiAwZW0gMC4zcmVtIDBlbSAwLjRyZW07XG59XG4udWlbY2xhc3MqPVwiYm90dG9tIGxlZnQgYXR0YWNoZWRcIl0ubGFiZWwge1xuICB3aWR0aDogYXV0bztcbiAgdG9wOiBhdXRvO1xuICBib3R0b206IDBlbTtcbiAgYm9yZGVyLXJhZGl1czogMGVtIDAuNHJlbSAwZW0gMC4zcmVtO1xufVxuLnVpW2NsYXNzKj1cImJvdHRvbSByaWdodCBhdHRhY2hlZFwiXS5sYWJlbCB7XG4gIHRvcDogYXV0bztcbiAgYm90dG9tOiAwZW07XG4gIGxlZnQ6IGF1dG87XG4gIHJpZ2h0OiAwZW07XG4gIHdpZHRoOiBhdXRvO1xuICBib3JkZXItcmFkaXVzOiAwLjRyZW0gMGVtIDAuM3JlbSAwZW07XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5sYWJlbC5kaXNhYmxlZCB7XG4gIG9wYWNpdHk6IDAuNTtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuYS51aS5sYWJlbHMgLmxhYmVsOmhvdmVyLFxuYS51aS5sYWJlbDpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNFMEUwRTA7XG4gIGJvcmRlci1jb2xvcjogI0UwRTBFMDtcbiAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44KTtcbn1cbi51aS5sYWJlbHMgYS5sYWJlbDpob3ZlcjpiZWZvcmUsXG5hLnVpLmxhYmVsOmhvdmVyOmJlZm9yZSB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuOCk7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkuYWN0aXZlLmxhYmVsIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0QwRDBEMDtcbiAgYm9yZGVyLWNvbG9yOiAjRDBEMEQwO1xuICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjk1KTtcbn1cbi51aS5hY3RpdmUubGFiZWw6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0QwRDBEMDtcbiAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC45NSk7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWN0aXZlIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5hLnVpLmxhYmVscyAuYWN0aXZlLmxhYmVsOmhvdmVyLFxuYS51aS5hY3RpdmUubGFiZWw6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjQzhDOEM4O1xuICBib3JkZXItY29sb3I6ICNDOEM4Qzg7XG4gIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuOTUpO1xufVxuLnVpLmxhYmVscyBhLmFjdGl2ZS5sYWJlbDpBY3RpdmVIb3ZlcjpiZWZvcmUsXG5hLnVpLmFjdGl2ZS5sYWJlbDpBY3RpdmVIb3ZlcjpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjQzhDOEM4O1xuICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjk1KTtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgVmlzaWJsZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmxhYmVscy52aXNpYmxlIC5sYWJlbCxcbi51aS5sYWJlbC52aXNpYmxlOm5vdCguZHJvcGRvd24pIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrICFpbXBvcnRhbnQ7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEhpZGRlblxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmxhYmVscy5oaWRkZW4gLmxhYmVsLFxuLnVpLmxhYmVsLmhpZGRlbiB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFZhcmlhdGlvbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tIFJlZCAtLS0qL1xuLnVpLnJlZC5sYWJlbHMgLmxhYmVsLFxuLnVpLnJlZC5sYWJlbCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkZTNhM2UgIWltcG9ydGFudDtcbiAgYm9yZGVyLWNvbG9yOiAjZGUzYTNlICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG59XG4vKiBMaW5rICovXG4udWkucmVkLmxhYmVscyAubGFiZWw6aG92ZXIsXG5hLnVpLnJlZC5sYWJlbDpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlMzFiMjAgIWltcG9ydGFudDtcbiAgYm9yZGVyLWNvbG9yOiAjZTMxYjIwICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG59XG4vKiBDb3JuZXIgKi9cbi51aS5yZWQuY29ybmVyLmxhYmVsLFxuLnVpLnJlZC5jb3JuZXIubGFiZWw6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xufVxuLyogUmliYm9uICovXG4udWkucmVkLnJpYmJvbi5sYWJlbCB7XG4gIGJvcmRlci1jb2xvcjogI2M0MjEyNSAhaW1wb3J0YW50O1xufVxuLyogQmFzaWMgKi9cbi51aS5iYXNpYy5yZWQubGFiZWwge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjZGUzYTNlICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1jb2xvcjogI2RlM2EzZSAhaW1wb3J0YW50O1xufVxuLnVpLmJhc2ljLnJlZC5sYWJlbHMgYS5sYWJlbDpob3ZlcixcbmEudWkuYmFzaWMucmVkLmxhYmVsOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xuICBjb2xvcjogI2UzMWIyMCAhaW1wb3J0YW50O1xuICBib3JkZXItY29sb3I6ICNlMzFiMjAgIWltcG9ydGFudDtcbn1cbi8qLS0tIE9yYW5nZSAtLS0qL1xuLnVpLm9yYW5nZS5sYWJlbHMgLmxhYmVsLFxuLnVpLm9yYW5nZS5sYWJlbCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZjk1MzMgIWltcG9ydGFudDtcbiAgYm9yZGVyLWNvbG9yOiAjZmY5NTMzICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG59XG4vKiBMaW5rICovXG4udWkub3JhbmdlLmxhYmVscyAubGFiZWw6aG92ZXIsXG5hLnVpLm9yYW5nZS5sYWJlbDpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZjg4MTkgIWltcG9ydGFudDtcbiAgYm9yZGVyLWNvbG9yOiAjZmY4ODE5ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG59XG4vKiBDb3JuZXIgKi9cbi51aS5vcmFuZ2UuY29ybmVyLmxhYmVsLFxuLnVpLm9yYW5nZS5jb3JuZXIubGFiZWw6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xufVxuLyogUmliYm9uICovXG4udWkub3JhbmdlLnJpYmJvbi5sYWJlbCB7XG4gIGJvcmRlci1jb2xvcjogI2ZmN2IwMCAhaW1wb3J0YW50O1xufVxuLyogQmFzaWMgKi9cbi51aS5iYXNpYy5vcmFuZ2UubGFiZWwge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjZmY5NTMzICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1jb2xvcjogI2ZmOTUzMyAhaW1wb3J0YW50O1xufVxuLnVpLmJhc2ljLm9yYW5nZS5sYWJlbHMgYS5sYWJlbDpob3ZlcixcbmEudWkuYmFzaWMub3JhbmdlLmxhYmVsOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xuICBjb2xvcjogI2ZmODgxOSAhaW1wb3J0YW50O1xuICBib3JkZXItY29sb3I6ICNmZjg4MTkgIWltcG9ydGFudDtcbn1cbi8qLS0tIFllbGxvdyAtLS0qL1xuLnVpLnllbGxvdy5sYWJlbHMgLmxhYmVsLFxuLnVpLnllbGxvdy5sYWJlbCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGQkJEMDggIWltcG9ydGFudDtcbiAgYm9yZGVyLWNvbG9yOiAjRkJCRDA4ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG59XG4vKiBMaW5rICovXG4udWkueWVsbG93LmxhYmVscyAubGFiZWw6aG92ZXIsXG5hLnVpLnllbGxvdy5sYWJlbDpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlYWFlMDAgIWltcG9ydGFudDtcbiAgYm9yZGVyLWNvbG9yOiAjZWFhZTAwICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG59XG4vKiBDb3JuZXIgKi9cbi51aS55ZWxsb3cuY29ybmVyLmxhYmVsLFxuLnVpLnllbGxvdy5jb3JuZXIubGFiZWw6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xufVxuLyogUmliYm9uICovXG4udWkueWVsbG93LnJpYmJvbi5sYWJlbCB7XG4gIGJvcmRlci1jb2xvcjogI2NkOTkwMyAhaW1wb3J0YW50O1xufVxuLyogQmFzaWMgKi9cbi51aS5iYXNpYy55ZWxsb3cubGFiZWwge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRkJCRDA4ICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1jb2xvcjogI0ZCQkQwOCAhaW1wb3J0YW50O1xufVxuLnVpLmJhc2ljLnllbGxvdy5sYWJlbHMgYS5sYWJlbDpob3ZlcixcbmEudWkuYmFzaWMueWVsbG93LmxhYmVsOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xuICBjb2xvcjogI2VhYWUwMCAhaW1wb3J0YW50O1xuICBib3JkZXItY29sb3I6ICNlYWFlMDAgIWltcG9ydGFudDtcbn1cbi8qLS0tIE9saXZlIC0tLSovXG4udWkub2xpdmUubGFiZWxzIC5sYWJlbCxcbi51aS5vbGl2ZS5sYWJlbCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNCNUNDMTggIWltcG9ydGFudDtcbiAgYm9yZGVyLWNvbG9yOiAjQjVDQzE4ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG59XG4vKiBMaW5rICovXG4udWkub2xpdmUubGFiZWxzIC5sYWJlbDpob3ZlcixcbmEudWkub2xpdmUubGFiZWw6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYTdiZDBkICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1jb2xvcjogI2E3YmQwZCAhaW1wb3J0YW50O1xuICBjb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xufVxuLyogQ29ybmVyICovXG4udWkub2xpdmUuY29ybmVyLmxhYmVsLFxuLnVpLm9saXZlLmNvcm5lci5sYWJlbDpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG59XG4vKiBSaWJib24gKi9cbi51aS5vbGl2ZS5yaWJib24ubGFiZWwge1xuICBib3JkZXItY29sb3I6ICMxMjc5MjQgIWltcG9ydGFudDtcbn1cbi8qIEJhc2ljICovXG4udWkuYmFzaWMub2xpdmUubGFiZWwge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjQjVDQzE4ICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1jb2xvcjogI0I1Q0MxOCAhaW1wb3J0YW50O1xufVxuLnVpLmJhc2ljLm9saXZlLmxhYmVscyBhLmxhYmVsOmhvdmVyLFxuYS51aS5iYXNpYy5vbGl2ZS5sYWJlbDpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcbiAgY29sb3I6ICNhN2JkMGQgIWltcG9ydGFudDtcbiAgYm9yZGVyLWNvbG9yOiAjYTdiZDBkICFpbXBvcnRhbnQ7XG59XG4vKi0tLSBHcmVlbiAtLS0qL1xuLnVpLmdyZWVuLmxhYmVscyAubGFiZWwsXG4udWkuZ3JlZW4ubGFiZWwge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTlhNTMxICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1jb2xvcjogIzE5YTUzMSAhaW1wb3J0YW50O1xuICBjb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xufVxuLyogTGluayAqL1xuLnVpLmdyZWVuLmxhYmVscyAubGFiZWw6aG92ZXIsXG5hLnVpLmdyZWVuLmxhYmVsOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzEwOTUyNiAhaW1wb3J0YW50O1xuICBib3JkZXItY29sb3I6ICMxMDk1MjYgIWltcG9ydGFudDtcbiAgY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcbn1cbi8qIENvcm5lciAqL1xuLnVpLmdyZWVuLmNvcm5lci5sYWJlbCxcbi51aS5ncmVlbi5jb3JuZXIubGFiZWw6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xufVxuLyogUmliYm9uICovXG4udWkuZ3JlZW4ucmliYm9uLmxhYmVsIHtcbiAgYm9yZGVyLWNvbG9yOiAjMTI3OTI0ICFpbXBvcnRhbnQ7XG59XG4vKiBCYXNpYyAqL1xuLnVpLmJhc2ljLmdyZWVuLmxhYmVsIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xuICBjb2xvcjogIzE5YTUzMSAhaW1wb3J0YW50O1xuICBib3JkZXItY29sb3I6ICMxOWE1MzEgIWltcG9ydGFudDtcbn1cbi51aS5iYXNpYy5ncmVlbi5sYWJlbHMgYS5sYWJlbDpob3ZlcixcbmEudWkuYmFzaWMuZ3JlZW4ubGFiZWw6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjMTA5NTI2ICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1jb2xvcjogIzEwOTUyNiAhaW1wb3J0YW50O1xufVxuLyotLS0gVGVhbCAtLS0qL1xuLnVpLnRlYWwubGFiZWxzIC5sYWJlbCxcbi51aS50ZWFsLmxhYmVsIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwQjVBRCAhaW1wb3J0YW50O1xuICBib3JkZXItY29sb3I6ICMwMEI1QUQgIWltcG9ydGFudDtcbiAgY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcbn1cbi8qIExpbmsgKi9cbi51aS50ZWFsLmxhYmVscyAubGFiZWw6aG92ZXIsXG5hLnVpLnRlYWwubGFiZWw6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA5Yzk1ICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1jb2xvcjogIzAwOWM5NSAhaW1wb3J0YW50O1xuICBjb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xufVxuLyogQ29ybmVyICovXG4udWkudGVhbC5jb3JuZXIubGFiZWwsXG4udWkudGVhbC5jb3JuZXIubGFiZWw6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xufVxuLyogUmliYm9uICovXG4udWkudGVhbC5yaWJib24ubGFiZWwge1xuICBib3JkZXItY29sb3I6ICMwMDgyN2MgIWltcG9ydGFudDtcbn1cbi8qIEJhc2ljICovXG4udWkuYmFzaWMudGVhbC5sYWJlbCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcbiAgY29sb3I6ICMwMEI1QUQgIWltcG9ydGFudDtcbiAgYm9yZGVyLWNvbG9yOiAjMDBCNUFEICFpbXBvcnRhbnQ7XG59XG4udWkuYmFzaWMudGVhbC5sYWJlbHMgYS5sYWJlbDpob3ZlcixcbmEudWkuYmFzaWMudGVhbC5sYWJlbDpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcbiAgY29sb3I6ICMwMDljOTUgIWltcG9ydGFudDtcbiAgYm9yZGVyLWNvbG9yOiAjMDA5Yzk1ICFpbXBvcnRhbnQ7XG59XG4vKi0tLSBCbHVlIC0tLSovXG4udWkuYmx1ZS5sYWJlbHMgLmxhYmVsLFxuLnVpLmJsdWUubGFiZWwge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjM2Y1MWI1ICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1jb2xvcjogIzNmNTFiNSAhaW1wb3J0YW50O1xuICBjb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xufVxuLyogTGluayAqL1xuLnVpLmJsdWUubGFiZWxzIC5sYWJlbDpob3ZlcixcbmEudWkuYmx1ZS5sYWJlbDpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzMzQ1YTcgIWltcG9ydGFudDtcbiAgYm9yZGVyLWNvbG9yOiAjMzM0NWE3ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG59XG4vKiBDb3JuZXIgKi9cbi51aS5ibHVlLmNvcm5lci5sYWJlbCxcbi51aS5ibHVlLmNvcm5lci5sYWJlbDpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG59XG4vKiBSaWJib24gKi9cbi51aS5ibHVlLnJpYmJvbi5sYWJlbCB7XG4gIGJvcmRlci1jb2xvcjogIzMyNDA4ZiAhaW1wb3J0YW50O1xufVxuLyogQmFzaWMgKi9cbi51aS5iYXNpYy5ibHVlLmxhYmVsIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xuICBjb2xvcjogIzNmNTFiNSAhaW1wb3J0YW50O1xuICBib3JkZXItY29sb3I6ICMzZjUxYjUgIWltcG9ydGFudDtcbn1cbi51aS5iYXNpYy5ibHVlLmxhYmVscyBhLmxhYmVsOmhvdmVyLFxuYS51aS5iYXNpYy5ibHVlLmxhYmVsOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xuICBjb2xvcjogIzMzNDVhNyAhaW1wb3J0YW50O1xuICBib3JkZXItY29sb3I6ICMzMzQ1YTcgIWltcG9ydGFudDtcbn1cbi8qLS0tIFZpb2xldCAtLS0qL1xuLnVpLnZpb2xldC5sYWJlbHMgLmxhYmVsLFxuLnVpLnZpb2xldC5sYWJlbCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM2NDM1QzkgIWltcG9ydGFudDtcbiAgYm9yZGVyLWNvbG9yOiAjNjQzNUM5ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG59XG4vKiBMaW5rICovXG4udWkudmlvbGV0LmxhYmVscyAubGFiZWw6aG92ZXIsXG5hLnVpLnZpb2xldC5sYWJlbDpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM1ODI5YmIgIWltcG9ydGFudDtcbiAgYm9yZGVyLWNvbG9yOiAjNTgyOWJiICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG59XG4vKiBDb3JuZXIgKi9cbi51aS52aW9sZXQuY29ybmVyLmxhYmVsLFxuLnVpLnZpb2xldC5jb3JuZXIubGFiZWw6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xufVxuLyogUmliYm9uICovXG4udWkudmlvbGV0LnJpYmJvbi5sYWJlbCB7XG4gIGJvcmRlci1jb2xvcjogIzUwMmFhMSAhaW1wb3J0YW50O1xufVxuLyogQmFzaWMgKi9cbi51aS5iYXNpYy52aW9sZXQubGFiZWwge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjNjQzNUM5ICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1jb2xvcjogIzY0MzVDOSAhaW1wb3J0YW50O1xufVxuLnVpLmJhc2ljLnZpb2xldC5sYWJlbHMgYS5sYWJlbDpob3ZlcixcbmEudWkuYmFzaWMudmlvbGV0LmxhYmVsOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xuICBjb2xvcjogIzU4MjliYiAhaW1wb3J0YW50O1xuICBib3JkZXItY29sb3I6ICM1ODI5YmIgIWltcG9ydGFudDtcbn1cbi8qLS0tIFB1cnBsZSAtLS0qL1xuLnVpLnB1cnBsZS5sYWJlbHMgLmxhYmVsLFxuLnVpLnB1cnBsZS5sYWJlbCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNBMzMzQzggIWltcG9ydGFudDtcbiAgYm9yZGVyLWNvbG9yOiAjQTMzM0M4ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG59XG4vKiBMaW5rICovXG4udWkucHVycGxlLmxhYmVscyAubGFiZWw6aG92ZXIsXG5hLnVpLnB1cnBsZS5sYWJlbDpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM5NjI3YmEgIWltcG9ydGFudDtcbiAgYm9yZGVyLWNvbG9yOiAjOTYyN2JhICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG59XG4vKiBDb3JuZXIgKi9cbi51aS5wdXJwbGUuY29ybmVyLmxhYmVsLFxuLnVpLnB1cnBsZS5jb3JuZXIubGFiZWw6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xufVxuLyogUmliYm9uICovXG4udWkucHVycGxlLnJpYmJvbi5sYWJlbCB7XG4gIGJvcmRlci1jb2xvcjogIzgyMjk5ZiAhaW1wb3J0YW50O1xufVxuLyogQmFzaWMgKi9cbi51aS5iYXNpYy5wdXJwbGUubGFiZWwge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjQTMzM0M4ICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1jb2xvcjogI0EzMzNDOCAhaW1wb3J0YW50O1xufVxuLnVpLmJhc2ljLnB1cnBsZS5sYWJlbHMgYS5sYWJlbDpob3ZlcixcbmEudWkuYmFzaWMucHVycGxlLmxhYmVsOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xuICBjb2xvcjogIzk2MjdiYSAhaW1wb3J0YW50O1xuICBib3JkZXItY29sb3I6ICM5NjI3YmEgIWltcG9ydGFudDtcbn1cbi8qLS0tIFBpbmsgLS0tKi9cbi51aS5waW5rLmxhYmVscyAubGFiZWwsXG4udWkucGluay5sYWJlbCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNFMDM5OTcgIWltcG9ydGFudDtcbiAgYm9yZGVyLWNvbG9yOiAjRTAzOTk3ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG59XG4vKiBMaW5rICovXG4udWkucGluay5sYWJlbHMgLmxhYmVsOmhvdmVyLFxuYS51aS5waW5rLmxhYmVsOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2U2MWE4ZCAhaW1wb3J0YW50O1xuICBib3JkZXItY29sb3I6ICNlNjFhOGQgIWltcG9ydGFudDtcbiAgY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcbn1cbi8qIENvcm5lciAqL1xuLnVpLnBpbmsuY29ybmVyLmxhYmVsLFxuLnVpLnBpbmsuY29ybmVyLmxhYmVsOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbn1cbi8qIFJpYmJvbiAqL1xuLnVpLnBpbmsucmliYm9uLmxhYmVsIHtcbiAgYm9yZGVyLWNvbG9yOiAjYzcxZjdlICFpbXBvcnRhbnQ7XG59XG4vKiBCYXNpYyAqL1xuLnVpLmJhc2ljLnBpbmsubGFiZWwge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRTAzOTk3ICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1jb2xvcjogI0UwMzk5NyAhaW1wb3J0YW50O1xufVxuLnVpLmJhc2ljLnBpbmsubGFiZWxzIGEubGFiZWw6aG92ZXIsXG5hLnVpLmJhc2ljLnBpbmsubGFiZWw6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjZTYxYThkICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1jb2xvcjogI2U2MWE4ZCAhaW1wb3J0YW50O1xufVxuLyotLS0gQnJvd24gLS0tKi9cbi51aS5icm93bi5sYWJlbHMgLmxhYmVsLFxuLnVpLmJyb3duLmxhYmVsIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0E1NjczRiAhaW1wb3J0YW50O1xuICBib3JkZXItY29sb3I6ICNBNTY3M0YgIWltcG9ydGFudDtcbiAgY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcbn1cbi8qIExpbmsgKi9cbi51aS5icm93bi5sYWJlbHMgLmxhYmVsOmhvdmVyLFxuYS51aS5icm93bi5sYWJlbDpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM5NzViMzMgIWltcG9ydGFudDtcbiAgYm9yZGVyLWNvbG9yOiAjOTc1YjMzICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG59XG4vKiBDb3JuZXIgKi9cbi51aS5icm93bi5jb3JuZXIubGFiZWwsXG4udWkuYnJvd24uY29ybmVyLmxhYmVsOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbn1cbi8qIFJpYmJvbiAqL1xuLnVpLmJyb3duLnJpYmJvbi5sYWJlbCB7XG4gIGJvcmRlci1jb2xvcjogIzgwNTAzMSAhaW1wb3J0YW50O1xufVxuLyogQmFzaWMgKi9cbi51aS5iYXNpYy5icm93bi5sYWJlbCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcbiAgY29sb3I6ICNBNTY3M0YgIWltcG9ydGFudDtcbiAgYm9yZGVyLWNvbG9yOiAjQTU2NzNGICFpbXBvcnRhbnQ7XG59XG4udWkuYmFzaWMuYnJvd24ubGFiZWxzIGEubGFiZWw6aG92ZXIsXG5hLnVpLmJhc2ljLmJyb3duLmxhYmVsOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xuICBjb2xvcjogIzk3NWIzMyAhaW1wb3J0YW50O1xuICBib3JkZXItY29sb3I6ICM5NzViMzMgIWltcG9ydGFudDtcbn1cbi8qLS0tIEdyZXkgLS0tKi9cbi51aS5ncmV5LmxhYmVscyAubGFiZWwsXG4udWkuZ3JleS5sYWJlbCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM3Njc2NzYgIWltcG9ydGFudDtcbiAgYm9yZGVyLWNvbG9yOiAjNzY3Njc2ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG59XG4vKiBMaW5rICovXG4udWkuZ3JleS5sYWJlbHMgLmxhYmVsOmhvdmVyLFxuYS51aS5ncmV5LmxhYmVsOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzgzODM4MyAhaW1wb3J0YW50O1xuICBib3JkZXItY29sb3I6ICM4MzgzODMgIWltcG9ydGFudDtcbiAgY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcbn1cbi8qIENvcm5lciAqL1xuLnVpLmdyZXkuY29ybmVyLmxhYmVsLFxuLnVpLmdyZXkuY29ybmVyLmxhYmVsOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbn1cbi8qIFJpYmJvbiAqL1xuLnVpLmdyZXkucmliYm9uLmxhYmVsIHtcbiAgYm9yZGVyLWNvbG9yOiAjODA1MDMxICFpbXBvcnRhbnQ7XG59XG4vKiBCYXNpYyAqL1xuLnVpLmJhc2ljLmdyZXkubGFiZWwge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjNzY3Njc2ICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1jb2xvcjogIzc2NzY3NiAhaW1wb3J0YW50O1xufVxuLnVpLmJhc2ljLmdyZXkubGFiZWxzIGEubGFiZWw6aG92ZXIsXG5hLnVpLmJhc2ljLmdyZXkubGFiZWw6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjODM4MzgzICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1jb2xvcjogIzgzODM4MyAhaW1wb3J0YW50O1xufVxuLyotLS0gQmxhY2sgLS0tKi9cbi51aS5ibGFjay5sYWJlbHMgLmxhYmVsLFxuLnVpLmJsYWNrLmxhYmVsIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDAwMCAhaW1wb3J0YW50O1xuICBib3JkZXItY29sb3I6ICMwMDAwMDAgIWltcG9ydGFudDtcbiAgY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcbn1cbi8qIExpbmsgKi9cbi51aS5ibGFjay5sYWJlbHMgLmxhYmVsOmhvdmVyLFxuYS51aS5ibGFjay5sYWJlbDpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwZDBkMGQgIWltcG9ydGFudDtcbiAgYm9yZGVyLWNvbG9yOiAjMGQwZDBkICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG59XG4vKiBDb3JuZXIgKi9cbi51aS5ibGFjay5jb3JuZXIubGFiZWwsXG4udWkuYmxhY2suY29ybmVyLmxhYmVsOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbn1cbi8qIFJpYmJvbiAqL1xuLnVpLmJsYWNrLnJpYmJvbi5sYWJlbCB7XG4gIGJvcmRlci1jb2xvcjogIzgwNTAzMSAhaW1wb3J0YW50O1xufVxuLyogQmFzaWMgKi9cbi51aS5iYXNpYy5ibGFjay5sYWJlbCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcbiAgY29sb3I6ICMwMDAwMDAgIWltcG9ydGFudDtcbiAgYm9yZGVyLWNvbG9yOiAjMDAwMDAwICFpbXBvcnRhbnQ7XG59XG4udWkuYmFzaWMuYmxhY2subGFiZWxzIGEubGFiZWw6aG92ZXIsXG5hLnVpLmJhc2ljLmJsYWNrLmxhYmVsOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xuICBjb2xvcjogIzBkMGQwZCAhaW1wb3J0YW50O1xuICBib3JkZXItY29sb3I6ICMwZDBkMGQgIWltcG9ydGFudDtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBCYXNpY1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmJhc2ljLmxhYmVsIHtcbiAgYmFja2dyb3VuZDogbm9uZSAjZmZmZmZmO1xuICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpO1xuICBjb2xvcjogIzMzMzMzMztcbiAgYm94LXNoYWRvdzogbm9uZTtcbn1cbi8qIExpbmsgKi9cbmEudWkuYmFzaWMubGFiZWw6aG92ZXIge1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGJhY2tncm91bmQ6IG5vbmUgI2ZmZmZmZjtcbiAgY29sb3I6ICMxZTcwYmY7XG4gIGJveC1zaGFkb3c6IDFweCBzb2xpZCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpO1xuICBib3gtc2hhZG93OiBub25lO1xufVxuLyogUG9pbnRpbmcgKi9cbi51aS5iYXNpYy5wb2ludGluZy5sYWJlbDpiZWZvcmUge1xuICBib3JkZXItY29sb3I6IGluaGVyaXQ7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGbHVpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmxhYmVsLmZsdWlkLFxuLnVpLmZsdWlkLmxhYmVscyA+IC5sYWJlbCB7XG4gIHdpZHRoOiAxMDAlO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSW52ZXJ0ZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5pbnZlcnRlZC5sYWJlbHMgLmxhYmVsLFxuLnVpLmludmVydGVkLmxhYmVsIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45KSAhaW1wb3J0YW50O1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEhvcml6b250YWxcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5ob3Jpem9udGFsLmxhYmVscyAubGFiZWwsXG4udWkuaG9yaXpvbnRhbC5sYWJlbCB7XG4gIG1hcmdpbjogMGVtIDAuNWVtIDBlbSAwZW07XG4gIHBhZGRpbmc6IDAuNGVtIDAuODMzZW07XG4gIG1pbi13aWR0aDogM2VtO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBDaXJjdWxhclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmNpcmN1bGFyLmxhYmVscyAubGFiZWwsXG4udWkuY2lyY3VsYXIubGFiZWwge1xuICBtaW4td2lkdGg6IDJlbTtcbiAgbWluLWhlaWdodDogMmVtO1xuICBwYWRkaW5nOiAwLjVlbSAhaW1wb3J0YW50O1xuICBsaW5lLWhlaWdodDogMWVtO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGJvcmRlci1yYWRpdXM6IDUwMHJlbTtcbn1cbi51aS5lbXB0eS5jaXJjdWxhci5sYWJlbHMgLmxhYmVsLFxuLnVpLmVtcHR5LmNpcmN1bGFyLmxhYmVsIHtcbiAgbWluLXdpZHRoOiAwZW07XG4gIG1pbi1oZWlnaHQ6IDBlbTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgd2lkdGg6IDAuNWVtO1xuICBoZWlnaHQ6IDAuNWVtO1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBQb2ludGluZ1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLnBvaW50aW5nLmxhYmVsIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuLnVpLmF0dGFjaGVkLnBvaW50aW5nLmxhYmVsIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xufVxuLnVpLnBvaW50aW5nLmxhYmVsOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IGluaGVyaXQ7XG4gIGJhY2tncm91bmQtaW1hZ2U6IGluaGVyaXQ7XG4gIGJvcmRlci13aWR0aDogbm9uZTtcbiAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgYm9yZGVyLWNvbG9yOiBpbmhlcml0O1xufVxuLyogQXJyb3cgKi9cbi51aS5wb2ludGluZy5sYWJlbDpiZWZvcmUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGNvbnRlbnQ6ICcnO1xuICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG4gIHotaW5kZXg6IDI7XG4gIHdpZHRoOiAwLjY2NjZlbTtcbiAgaGVpZ2h0OiAwLjY2NjZlbTtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjFzIGVhc2U7XG59XG4vKi0tLSBBYm92ZSAtLS0qL1xuLnVpLnBvaW50aW5nLmxhYmVsLFxuLnVpW2NsYXNzKj1cInBvaW50aW5nIGFib3ZlXCJdLmxhYmVsIHtcbiAgbWFyZ2luLXRvcDogMWVtO1xufVxuLnVpLnBvaW50aW5nLmxhYmVsOmJlZm9yZSxcbi51aVtjbGFzcyo9XCJwb2ludGluZyBhYm92ZVwiXS5sYWJlbDpiZWZvcmUge1xuICBib3JkZXItd2lkdGg6IDFweCAwcHggMHB4IDFweDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpIHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKDQ1ZGVnKTtcbiAgdG9wOiAwJTtcbiAgbGVmdDogNTAlO1xufVxuLyotLS0gQmVsb3cgLS0tKi9cbi51aVtjbGFzcyo9XCJib3R0b20gcG9pbnRpbmdcIl0ubGFiZWwsXG4udWlbY2xhc3MqPVwicG9pbnRpbmcgYmVsb3dcIl0ubGFiZWwge1xuICBtYXJnaW4tdG9wOiAwZW07XG4gIG1hcmdpbi1ib3R0b206IDFlbTtcbn1cbi51aVtjbGFzcyo9XCJib3R0b20gcG9pbnRpbmdcIl0ubGFiZWw6YmVmb3JlLFxuLnVpW2NsYXNzKj1cInBvaW50aW5nIGJlbG93XCJdLmxhYmVsOmJlZm9yZSB7XG4gIGJvcmRlci13aWR0aDogMHB4IDFweCAxcHggMHB4O1xuICB0b3A6IGF1dG87XG4gIHJpZ2h0OiBhdXRvO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSkgdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoNDVkZWcpO1xuICB0b3A6IDEwMCU7XG4gIGxlZnQ6IDUwJTtcbn1cbi8qLS0tIExlZnQgLS0tKi9cbi51aVtjbGFzcyo9XCJsZWZ0IHBvaW50aW5nXCJdLmxhYmVsIHtcbiAgbWFyZ2luLXRvcDogMGVtO1xuICBtYXJnaW4tbGVmdDogMC42NjY2ZW07XG59XG4udWlbY2xhc3MqPVwibGVmdCBwb2ludGluZ1wiXS5sYWJlbDpiZWZvcmUge1xuICBib3JkZXItd2lkdGg6IDBweCAwcHggMXB4IDFweDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpIHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKDQ1ZGVnKTtcbiAgYm90dG9tOiBhdXRvO1xuICByaWdodDogYXV0bztcbiAgdG9wOiA1MCU7XG4gIGxlZnQ6IDBlbTtcbn1cbi8qLS0tIFJpZ2h0IC0tLSovXG4udWlbY2xhc3MqPVwicmlnaHQgcG9pbnRpbmdcIl0ubGFiZWwge1xuICBtYXJnaW4tdG9wOiAwZW07XG4gIG1hcmdpbi1yaWdodDogMC42NjY2ZW07XG59XG4udWlbY2xhc3MqPVwicmlnaHQgcG9pbnRpbmdcIl0ubGFiZWw6YmVmb3JlIHtcbiAgYm9yZGVyLXdpZHRoOiAxcHggMXB4IDBweCAwcHg7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCg1MCUpIHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKDQ1ZGVnKTtcbiAgdG9wOiA1MCU7XG4gIHJpZ2h0OiAwJTtcbiAgYm90dG9tOiBhdXRvO1xuICBsZWZ0OiBhdXRvO1xufVxuLyogQmFzaWMgUG9pbnRpbmcgKi9cbi8qLS0tIEFib3ZlIC0tLSovXG4udWkuYmFzaWMucG9pbnRpbmcubGFiZWw6YmVmb3JlLFxuLnVpLmJhc2ljW2NsYXNzKj1cInBvaW50aW5nIGFib3ZlXCJdLmxhYmVsOmJlZm9yZSB7XG4gIG1hcmdpbi10b3A6IC0xcHg7XG59XG4vKi0tLSBCZWxvdyAtLS0qL1xuLnVpLmJhc2ljW2NsYXNzKj1cImJvdHRvbSBwb2ludGluZ1wiXS5sYWJlbDpiZWZvcmUsXG4udWkuYmFzaWNbY2xhc3MqPVwicG9pbnRpbmcgYmVsb3dcIl0ubGFiZWw6YmVmb3JlIHtcbiAgYm90dG9tOiBhdXRvO1xuICB0b3A6IDEwMCU7XG4gIG1hcmdpbi10b3A6IDFweDtcbn1cbi8qLS0tIExlZnQgLS0tKi9cbi51aS5iYXNpY1tjbGFzcyo9XCJsZWZ0IHBvaW50aW5nXCJdLmxhYmVsOmJlZm9yZSB7XG4gIHRvcDogNTAlO1xuICBsZWZ0OiAtMXB4O1xufVxuLyotLS0gUmlnaHQgLS0tKi9cbi51aS5iYXNpY1tjbGFzcyo9XCJyaWdodCBwb2ludGluZ1wiXS5sYWJlbDpiZWZvcmUge1xuICB0b3A6IDUwJTtcbiAgcmlnaHQ6IC0xcHg7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgRmxvYXRpbmcgTGFiZWxcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmZsb2F0aW5nLmxhYmVsIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAxMDA7XG4gIHRvcDogLTFlbTtcbiAgbGVmdDogMTAwJTtcbiAgbWFyZ2luOiAwZW0gMGVtIDBlbSAtMS41ZW0gIWltcG9ydGFudDtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLm1pbmkubGFiZWxzIC5sYWJlbCxcbi51aS5taW5pLmxhYmVsIHtcbiAgZm9udC1zaXplOiAwLjlyZW07XG59XG4udWkudGlueS5sYWJlbHMgLmxhYmVsLFxuLnVpLnRpbnkubGFiZWwge1xuICBmb250LXNpemU6IDFyZW07XG59XG4udWkuc21hbGwubGFiZWxzIC5sYWJlbCxcbi51aS5zbWFsbC5sYWJlbCB7XG4gIGZvbnQtc2l6ZTogMS4xcmVtO1xufVxuLnVpLmxhYmVscyAubGFiZWwsXG4udWkubGFiZWwge1xuICBmb250LXNpemU6IDEuMnJlbTtcbn1cbi51aS5sYXJnZS5sYWJlbHMgLmxhYmVsLFxuLnVpLmxhcmdlLmxhYmVsIHtcbiAgZm9udC1zaXplOiAxcmVtO1xufVxuLnVpLmJpZy5sYWJlbHMgLmxhYmVsLFxuLnVpLmJpZy5sYWJlbCB7XG4gIGZvbnQtc2l6ZTogMS4zcmVtO1xufVxuLnVpLmh1Z2UubGFiZWxzIC5sYWJlbCxcbi51aS5odWdlLmxhYmVsIHtcbiAgZm9udC1zaXplOiAxLjRyZW07XG59XG4udWkubWFzc2l2ZS5sYWJlbHMgLmxhYmVsLFxuLnVpLm1hc3NpdmUubGFiZWwge1xuICBmb250LXNpemU6IDEuN3JlbTtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBUaGVtZSBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiFcbiAqICMgU2VtYW50aWMgVUkgLSBMaXN0XG4gKiBodHRwOi8vZ2l0aHViLmNvbS9zZW1hbnRpYy1vcmcvc2VtYW50aWMtdWkvXG4gKlxuICpcbiAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZVxuICogaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVFxuICpcbiAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLypcblxu4paI4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWXICDilojilojilZfilojilojilojilojilojilojilojilZfilojilojilojilZcgICDilojilojilojilZfilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZdcbuKVmuKVkOKVkOKWiOKWiOKVlOKVkOKVkOKVneKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWd4paI4paI4paI4paI4pWXIOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVnVxuICAg4paI4paI4pWRICAg4paI4paI4paI4paI4paI4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilZTilojilojilojilojilZTilojilojilZHilojilojilojilojilojilZcgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl1xuICAg4paI4paI4pWRICAg4paI4paI4pWU4pWQ4pWQ4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilojilojilZHilZrilojilojilZTilZ3ilojilojilZHilojilojilZTilZDilZDilZ0gIOKVmuKVkOKVkOKVkOKVkOKWiOKWiOKVkVxuICAg4paI4paI4pWRICAg4paI4paI4pWRICDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilZEg4pWa4pWQ4pWdIOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkVxuICAg4pWa4pWQ4pWdICAg4pWa4pWQ4pWdICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZ0gICAgIOKVmuKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVnVxuXG4qL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgVGhlbWUgU2VsZWN0aW9uXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogVG8gb3ZlcnJpZGUgYSB0aGVtZSBmb3IgYW4gaW5kaXZpZHVhbCBlbGVtZW50XG4gICBzcGVjaWZ5IHRoZW1lIG5hbWUgYmVsb3dcbiovXG4vKiBHbG9iYWwgKi9cbi8qIEVsZW1lbnRzICovXG4vKiBDb2xsZWN0aW9ucyAqL1xuLyogTW9kdWxlcyAqL1xuLyogVmlld3MgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBGb2xkZXJzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogUGF0aCB0byB0aGVtZSBwYWNrYWdlcyAqL1xuLyogUGF0aCB0byBzaXRlIG92ZXJyaWRlIGZvbGRlciAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIEltcG9ydCBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIEltcG9ydCBEaXJlY3RpdmVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBUaGVtZVxuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICBTaXRlIFZhcmlhYmxlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERlZmF1bHQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZG9ycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBQYWNrYWdlZCBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kb3JzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIENvbXBvbmVudCdzIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRvcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogU2l0ZSB0aGVtZSBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgVXNlciBHbG9iYWwgVmFyaWFibGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogbWFyc28gY29sb3JzICovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gQ29tcG9uZW50IFZhcmlhYmxlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERlZmF1bHQgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgTGlzdFxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICAgVmlld1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTGlzdCAqL1xuLyogTGlzdCBJdGVtICovXG4vKiBTdWIgTGlzdCAqL1xuLyogU3ViIExpc3QgSXRlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBFbGVtZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSWNvbiAqL1xuLyogSW1hZ2UgKi9cbi8qIENvbnRlbnQgKi9cbi8qIEhlYWRlciAqL1xuLyogRGVzY3JpcHRpb24gKi9cbi8qIExpbmsgKi9cbi8qIEhlYWRlciBMaW5rICovXG4vKiBMaW5rZWQgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFN0YXRlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBWYXJpYXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGbG9hdCAqL1xuLyogSG9yaXpvbnRhbCAqL1xuLyogSW52ZXJ0ZWQgKi9cbi8qIExpbmsgTGlzdCAqL1xuLyogSW52ZXJ0ZWQgTGluayBMaXN0ICovXG4vKiBTZWxlY3Rpb24gTGlzdCAqL1xuLyogU2VsZWN0aW9uIExpc3QgU3RhdGVzICovXG4vKiBJbnZlcnRlZCBTZWxlY3Rpb24gTGlzdCAqL1xuLyogQW5pbWF0ZWQgTGlzdCAqL1xuLyogQnVsbGV0ZWQgKi9cbi8qIEhvcml6b250YWwgQnVsbGV0cyAqL1xuLyogT3JkZXJlZCBMaXN0ICovXG4vKiBIb3Jpem9udGFsIE9yZGVyZWQgKi9cbi8qIERpdmlkZWQgKi9cbi8qIERpdmlkZWQgSG9yaXpvbnRhbCAqL1xuLyogRGl2aWRlZCAqL1xuLyogRGl2aWRlZCBIb3Jpem9udGFsICovXG4vKiBSZWxheGVkICovXG4vKiBWZXJ5IFJlbGF4ZWQgKi9cbi8qIFBhY2thZ2VkIFRoZW1lICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIExpc3RcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgIFZpZXdcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExpc3QgKi9cbi8qIExpc3QgSXRlbSAqL1xuLyogU3ViIExpc3QgKi9cbi8qIFN1YiBMaXN0IEl0ZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRWxlbWVudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEljb24gKi9cbi8qIEltYWdlICovXG4vKiBDb250ZW50ICovXG4vKiBIZWFkZXIgKi9cbi8qIERlc2NyaXB0aW9uICovXG4vKiBMaW5rICovXG4vKiBIZWFkZXIgTGluayAqL1xuLyogTGlua2VkIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTdGF0ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgVmFyaWF0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRmxvYXQgKi9cbi8qIEhvcml6b250YWwgKi9cbi8qIEludmVydGVkICovXG4vKiBMaW5rIExpc3QgKi9cbi8qIEludmVydGVkIExpbmsgTGlzdCAqL1xuLyogU2VsZWN0aW9uIExpc3QgKi9cbi8qIFNlbGVjdGlvbiBMaXN0IFN0YXRlcyAqL1xuLyogSW52ZXJ0ZWQgU2VsZWN0aW9uIExpc3QgKi9cbi8qIEFuaW1hdGVkIExpc3QgKi9cbi8qIEJ1bGxldGVkICovXG4vKiBIb3Jpem9udGFsIEJ1bGxldHMgKi9cbi8qIE9yZGVyZWQgTGlzdCAqL1xuLyogSG9yaXpvbnRhbCBPcmRlcmVkICovXG4vKiBEaXZpZGVkICovXG4vKiBEaXZpZGVkIEhvcml6b250YWwgKi9cbi8qIERpdmlkZWQgKi9cbi8qIERpdmlkZWQgSG9yaXpvbnRhbCAqL1xuLyogUmVsYXhlZCAqL1xuLyogVmVyeSBSZWxheGVkICovXG4vKiBTaXRlIFRoZW1lICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgIFVzZXIgVmFyaWFibGUgT3ZlcnJpZGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBNaXgtaW5zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBPdmVycmlkZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRW5kIENvbmZpZyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIExpc3RcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG51bC51aS5saXN0LFxub2wudWkubGlzdCxcbi51aS5saXN0IHtcbiAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICBtYXJnaW46IDFlbSAwZW07XG4gIHBhZGRpbmc6IDBlbSAwZW07XG59XG51bC51aS5saXN0OmZpcnN0LWNoaWxkLFxub2wudWkubGlzdDpmaXJzdC1jaGlsZCxcbi51aS5saXN0OmZpcnN0LWNoaWxkIHtcbiAgbWFyZ2luLXRvcDogMGVtO1xuICBwYWRkaW5nLXRvcDogMGVtO1xufVxudWwudWkubGlzdDpsYXN0LWNoaWxkLFxub2wudWkubGlzdDpsYXN0LWNoaWxkLFxuLnVpLmxpc3Q6bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1ib3R0b206IDBlbTtcbiAgcGFkZGluZy1ib3R0b206IDBlbTtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBDb250ZW50XG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogTGlzdCBJdGVtICovXG51bC51aS5saXN0IGxpLFxub2wudWkubGlzdCBsaSxcbi51aS5saXN0ID4gLml0ZW0sXG4udWkubGlzdCAubGlzdCA+IC5pdGVtIHtcbiAgZGlzcGxheTogbGlzdC1pdGVtO1xuICB0YWJsZS1sYXlvdXQ6IGZpeGVkO1xuICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gIGxpc3Qtc3R5bGUtcG9zaXRpb246IG91dHNpZGU7XG4gIHBhZGRpbmc6IDAuM2VtIDBlbTtcbiAgbGluZS1oZWlnaHQ6IDEuMWVtO1xufVxudWwudWkubGlzdCA+IGxpOmZpcnN0LWNoaWxkOmFmdGVyLFxub2wudWkubGlzdCA+IGxpOmZpcnN0LWNoaWxkOmFmdGVyLFxuLnVpLmxpc3QgPiAubGlzdCA+IC5pdGVtLFxuLnVpLmxpc3QgPiAuaXRlbTphZnRlciB7XG4gIGNvbnRlbnQ6ICcnO1xuICBkaXNwbGF5OiBibG9jaztcbiAgaGVpZ2h0OiAwO1xuICBjbGVhcjogYm90aDtcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xufVxudWwudWkubGlzdCBsaTpmaXJzdC1jaGlsZCxcbm9sLnVpLmxpc3QgbGk6Zmlyc3QtY2hpbGQsXG4udWkubGlzdCAubGlzdCA+IC5pdGVtOmZpcnN0LWNoaWxkLFxuLnVpLmxpc3QgPiAuaXRlbTpmaXJzdC1jaGlsZCB7XG4gIHBhZGRpbmctdG9wOiAwZW07XG59XG51bC51aS5saXN0IGxpOmxhc3QtY2hpbGQsXG5vbC51aS5saXN0IGxpOmxhc3QtY2hpbGQsXG4udWkubGlzdCAubGlzdCA+IC5pdGVtOmxhc3QtY2hpbGQsXG4udWkubGlzdCA+IC5pdGVtOmxhc3QtY2hpbGQge1xuICBwYWRkaW5nLWJvdHRvbTogMGVtO1xufVxuLyogQ2hpbGQgTGlzdCAqL1xudWwudWkubGlzdCB1bCxcbm9sLnVpLmxpc3Qgb2wsXG4udWkubGlzdCAubGlzdCB7XG4gIGNsZWFyOiBib3RoO1xuICBtYXJnaW46IDBlbTtcbiAgcGFkZGluZzogMC43NWVtIDBlbSAwLjI1ZW0gMC41ZW07XG59XG4vKiBDaGlsZCBJdGVtICovXG51bC51aS5saXN0IHVsIGxpLFxub2wudWkubGlzdCBvbCBsaSxcbi51aS5saXN0IC5saXN0ID4gLml0ZW0ge1xuICBwYWRkaW5nOiAwLjJlbSAwZW07XG4gIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xufVxuLyogSWNvbiAqL1xuLnVpLmxpc3QgLmxpc3QgPiAuaXRlbSA+IGkuaWNvbixcbi51aS5saXN0ID4gLml0ZW0gPiBpLmljb24ge1xuICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICBtYXJnaW46IDBlbTtcbiAgcGFkZGluZy10b3A6IDAuMDVlbTtcbiAgcGFkZGluZy1yaWdodDogMC40ZW07XG4gIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gIHRyYW5zaXRpb246IGNvbG9yIDAuMXMgZWFzZTtcbn1cbi51aS5saXN0IC5saXN0ID4gLml0ZW0gPiBpLmljb246b25seS1jaGlsZCxcbi51aS5saXN0ID4gLml0ZW0gPiBpLmljb246b25seS1jaGlsZCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdmVydGljYWwtYWxpZ246IHRvcDtcbn1cbi8qIEltYWdlICovXG4udWkubGlzdCAubGlzdCA+IC5pdGVtID4gLmltYWdlLFxuLnVpLmxpc3QgPiAuaXRlbSA+IC5pbWFnZSB7XG4gIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBtYXJnaW46IDBlbTtcbiAgdmVydGljYWwtYWxpZ246IHRvcDtcbn1cbi51aS5saXN0IC5saXN0ID4gLml0ZW0gPiAuaW1hZ2U6bm90KDpvbmx5LWNoaWxkKTpub3QoaW1nKSxcbi51aS5saXN0ID4gLml0ZW0gPiAuaW1hZ2U6bm90KDpvbmx5LWNoaWxkKTpub3QoaW1nKSB7XG4gIHBhZGRpbmctcmlnaHQ6IDAuNWVtO1xufVxuLnVpLmxpc3QgLmxpc3QgPiAuaXRlbSA+IC5pbWFnZSBpbWcsXG4udWkubGlzdCA+IC5pdGVtID4gLmltYWdlIGltZyB7XG4gIHZlcnRpY2FsLWFsaWduOiB0b3A7XG59XG4udWkubGlzdCAubGlzdCA+IC5pdGVtID4gaW1nLmltYWdlLFxuLnVpLmxpc3QgLmxpc3QgPiAuaXRlbSA+IC5pbWFnZTpvbmx5LWNoaWxkLFxuLnVpLmxpc3QgPiAuaXRlbSA+IGltZy5pbWFnZSxcbi51aS5saXN0ID4gLml0ZW0gPiAuaW1hZ2U6b25seS1jaGlsZCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cbi8qIENvbnRlbnQgKi9cbi51aS5saXN0IC5saXN0ID4gLml0ZW0gPiAuY29udGVudCxcbi51aS5saXN0ID4gLml0ZW0gPiAuY29udGVudCB7XG4gIGxpbmUtaGVpZ2h0OiAxLjFlbTtcbn1cbi51aS5saXN0IC5saXN0ID4gLml0ZW0gPiAuaW1hZ2UgKyAuY29udGVudCxcbi51aS5saXN0IC5saXN0ID4gLml0ZW0gPiAuaWNvbiArIC5jb250ZW50LFxuLnVpLmxpc3QgPiAuaXRlbSA+IC5pbWFnZSArIC5jb250ZW50LFxuLnVpLmxpc3QgPiAuaXRlbSA+IC5pY29uICsgLmNvbnRlbnQge1xuICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICBwYWRkaW5nOiAwZW0gMGVtIDBlbSAwLjVlbTtcbiAgdmVydGljYWwtYWxpZ246IHRvcDtcbn1cbi51aS5saXN0IC5saXN0ID4gLml0ZW0gPiBpbWcuaW1hZ2UgKyAuY29udGVudCxcbi51aS5saXN0ID4gLml0ZW0gPiBpbWcuaW1hZ2UgKyAuY29udGVudCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cbi51aS5saXN0IC5saXN0ID4gLml0ZW0gPiAuY29udGVudCA+IC5saXN0LFxuLnVpLmxpc3QgPiAuaXRlbSA+IC5jb250ZW50ID4gLmxpc3Qge1xuICBtYXJnaW4tbGVmdDogMGVtO1xuICBwYWRkaW5nLWxlZnQ6IDBlbTtcbn1cbi8qIEhlYWRlciAqL1xuLnVpLmxpc3QgLmxpc3QgPiAuaXRlbSAuaGVhZGVyLFxuLnVpLmxpc3QgPiAuaXRlbSAuaGVhZGVyIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbjogMGVtO1xuICBmb250LWZhbWlseTogJ0V4byAyJywgJ0xhdG8nLCBBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgY29sb3I6ICMzMzMzMzM7XG59XG4vKiBEZXNjcmlwdGlvbiAqL1xuLnVpLmxpc3QgLmxpc3QgPiAuaXRlbSAuZGVzY3JpcHRpb24sXG4udWkubGlzdCA+IC5pdGVtIC5kZXNjcmlwdGlvbiB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjcpO1xufVxuLyogQ2hpbGQgTGluayAqL1xuLnVpLmxpc3QgPiAuaXRlbSBhLFxuLnVpLmxpc3QgLmxpc3QgPiAuaXRlbSBhIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuLyogTGlua2luZyBJdGVtICovXG4udWkubGlzdCAubGlzdCA+IGEuaXRlbSxcbi51aS5saXN0ID4gYS5pdGVtIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBjb2xvcjogIzQxODNDNDtcbn1cbi51aS5saXN0IC5saXN0ID4gYS5pdGVtOmhvdmVyLFxuLnVpLmxpc3QgPiBhLml0ZW06aG92ZXIge1xuICBjb2xvcjogIzFlNzBiZjtcbn1cbi8qIExpbmtlZCBJdGVtIEljb25zICovXG4udWkubGlzdCAubGlzdCA+IGEuaXRlbSBpLmljb24sXG4udWkubGlzdCA+IGEuaXRlbSBpLmljb24ge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjQpO1xufVxuLyogSGVhZGVyIExpbmsgKi9cbi51aS5saXN0IC5saXN0ID4gLml0ZW0gYS5oZWFkZXIsXG4udWkubGlzdCA+IC5pdGVtIGEuaGVhZGVyIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBjb2xvcjogIzQxODNDNCAhaW1wb3J0YW50O1xufVxuLnVpLmxpc3QgLmxpc3QgPiAuaXRlbSBhLmhlYWRlcjpob3Zlcixcbi51aS5saXN0ID4gLml0ZW0gYS5oZWFkZXI6aG92ZXIge1xuICBjb2xvcjogIzFlNzBiZiAhaW1wb3J0YW50O1xufVxuLyogRmxvYXRlZCBDb250ZW50ICovXG4udWlbY2xhc3MqPVwibGVmdCBmbG9hdGVkXCJdLmxpc3Qge1xuICBmbG9hdDogbGVmdDtcbn1cbi51aVtjbGFzcyo9XCJyaWdodCBmbG9hdGVkXCJdLmxpc3Qge1xuICBmbG9hdDogcmlnaHQ7XG59XG4udWkubGlzdCAubGlzdCA+IC5pdGVtIFtjbGFzcyo9XCJsZWZ0IGZsb2F0ZWRcIl0sXG4udWkubGlzdCA+IC5pdGVtIFtjbGFzcyo9XCJsZWZ0IGZsb2F0ZWRcIl0ge1xuICBmbG9hdDogbGVmdDtcbiAgbWFyZ2luOiAwZW0gMWVtIDBlbSAwZW07XG59XG4udWkubGlzdCAubGlzdCA+IC5pdGVtIFtjbGFzcyo9XCJyaWdodCBmbG9hdGVkXCJdLFxuLnVpLmxpc3QgPiAuaXRlbSBbY2xhc3MqPVwicmlnaHQgZmxvYXRlZFwiXSB7XG4gIGZsb2F0OiByaWdodDtcbiAgbWFyZ2luOiAwZW0gMGVtIDBlbSAxZW07XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgQ291cGxpbmdcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4udWkubWVudSAudWkubGlzdCA+IC5pdGVtLFxuLnVpLm1lbnUgLnVpLmxpc3QgLmxpc3QgPiAuaXRlbSB7XG4gIGRpc3BsYXk6IGxpc3QtaXRlbTtcbiAgdGFibGUtbGF5b3V0OiBmaXhlZDtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbiAgbGlzdC1zdHlsZS1wb3NpdGlvbjogb3V0c2lkZTtcbiAgcGFkZGluZzogMC4zZW0gMGVtO1xuICBsaW5lLWhlaWdodDogMS4xZW07XG59XG4udWkubWVudSAudWkubGlzdCAubGlzdCA+IC5pdGVtOmJlZm9yZSxcbi51aS5tZW51IC51aS5saXN0ID4gLml0ZW06YmVmb3JlIHtcbiAgYm9yZGVyOiBub25lO1xuICBiYWNrZ3JvdW5kOiBub25lO1xufVxuLnVpLm1lbnUgLnVpLmxpc3QgLmxpc3QgPiAuaXRlbTpmaXJzdC1jaGlsZCxcbi51aS5tZW51IC51aS5saXN0ID4gLml0ZW06Zmlyc3QtY2hpbGQge1xuICBwYWRkaW5nLXRvcDogMGVtO1xufVxuLnVpLm1lbnUgLnVpLmxpc3QgLmxpc3QgPiAuaXRlbTpsYXN0LWNoaWxkLFxuLnVpLm1lbnUgLnVpLmxpc3QgPiAuaXRlbTpsYXN0LWNoaWxkIHtcbiAgcGFkZGluZy1ib3R0b206IDBlbTtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBUeXBlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgSG9yaXpvbnRhbFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmhvcml6b250YWwubGlzdCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZm9udC1zaXplOiAwZW07XG59XG4udWkuaG9yaXpvbnRhbC5saXN0ID4gLml0ZW0ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1hcmdpbi1sZWZ0OiAxZW07XG4gIGZvbnQtc2l6ZTogMXJlbTtcbn1cbi51aS5ob3Jpem9udGFsLmxpc3Q6bm90KC5jZWxsZWQpID4gLml0ZW06Zmlyc3QtY2hpbGQge1xuICBtYXJnaW4tbGVmdDogMGVtICFpbXBvcnRhbnQ7XG4gIHBhZGRpbmctbGVmdDogMGVtICFpbXBvcnRhbnQ7XG59XG4udWkuaG9yaXpvbnRhbC5saXN0IC5saXN0IHtcbiAgcGFkZGluZy1sZWZ0OiAwZW07XG4gIHBhZGRpbmctYm90dG9tOiAwZW07XG59XG4udWkuaG9yaXpvbnRhbC5saXN0ID4gLml0ZW0gPiAuaW1hZ2UsXG4udWkuaG9yaXpvbnRhbC5saXN0IC5saXN0ID4gLml0ZW0gPiAuaW1hZ2UsXG4udWkuaG9yaXpvbnRhbC5saXN0ID4gLml0ZW0gPiAuaWNvbixcbi51aS5ob3Jpem9udGFsLmxpc3QgLmxpc3QgPiAuaXRlbSA+IC5pY29uLFxuLnVpLmhvcml6b250YWwubGlzdCA+IC5pdGVtID4gLmNvbnRlbnQsXG4udWkuaG9yaXpvbnRhbC5saXN0IC5saXN0ID4gLml0ZW0gPiAuY29udGVudCB7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG4vKiBQYWRkaW5nIG9uIGFsbCBlbGVtZW50cyAqL1xuLnVpLmhvcml6b250YWwubGlzdCA+IC5pdGVtOmZpcnN0LWNoaWxkLFxuLnVpLmhvcml6b250YWwubGlzdCA+IC5pdGVtOmxhc3QtY2hpbGQge1xuICBwYWRkaW5nLXRvcDogMC4zZW07XG4gIHBhZGRpbmctYm90dG9tOiAwLjNlbTtcbn1cbi8qIEhvcml6b250YWwgTGlzdCAqL1xuLnVpLmhvcml6b250YWwubGlzdCA+IC5pdGVtID4gaS5pY29uIHtcbiAgbWFyZ2luOiAwZW07XG4gIHBhZGRpbmc6IDBlbSAwLjI1ZW0gMGVtIDBlbTtcbn1cbi51aS5ob3Jpem9udGFsLmxpc3QgPiAuaXRlbSA+IC5pY29uLFxuLnVpLmhvcml6b250YWwubGlzdCA+IC5pdGVtID4gLmljb24gKyAuY29udGVudCB7XG4gIGZsb2F0OiBub25lO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkubGlzdCAubGlzdCA+IC5kaXNhYmxlZC5pdGVtLFxuLnVpLmxpc3QgPiAuZGlzYWJsZWQuaXRlbSB7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICBjb2xvcjogcmdiYSg0MCwgNDAsIDQwLCAwLjMpICFpbXBvcnRhbnQ7XG59XG4udWkuaW52ZXJ0ZWQubGlzdCAubGlzdCA+IC5kaXNhYmxlZC5pdGVtLFxuLnVpLmludmVydGVkLmxpc3QgPiAuZGlzYWJsZWQuaXRlbSB7XG4gIGNvbG9yOiByZ2JhKDIyNSwgMjI1LCAyMjUsIDAuMykgIWltcG9ydGFudDtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmxpc3QgLmxpc3QgPiBhLml0ZW06aG92ZXIgLmljb24sXG4udWkubGlzdCA+IGEuaXRlbTpob3ZlciAuaWNvbiB7XG4gIGNvbG9yOiAjMzMzMzMzO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgVmFyaWF0aW9uc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEludmVydGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkuaW52ZXJ0ZWQubGlzdCAubGlzdCA+IGEuaXRlbSA+IC5pY29uLFxuLnVpLmludmVydGVkLmxpc3QgPiBhLml0ZW0gPiAuaWNvbiB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNyk7XG59XG4udWkuaW52ZXJ0ZWQubGlzdCAubGlzdCA+IC5pdGVtIC5oZWFkZXIsXG4udWkuaW52ZXJ0ZWQubGlzdCA+IC5pdGVtIC5oZWFkZXIge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjkpO1xufVxuLnVpLmludmVydGVkLmxpc3QgLmxpc3QgPiAuaXRlbSAuZGVzY3JpcHRpb24sXG4udWkuaW52ZXJ0ZWQubGlzdCA+IC5pdGVtIC5kZXNjcmlwdGlvbiB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNyk7XG59XG4vKiBJdGVtIExpbmsgKi9cbi51aS5pbnZlcnRlZC5saXN0IC5saXN0ID4gYS5pdGVtLFxuLnVpLmludmVydGVkLmxpc3QgPiBhLml0ZW0ge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOSk7XG59XG4udWkuaW52ZXJ0ZWQubGlzdCAubGlzdCA+IGEuaXRlbTpob3Zlcixcbi51aS5pbnZlcnRlZC5saXN0ID4gYS5pdGVtOmhvdmVyIHtcbiAgY29sb3I6ICMxZTcwYmY7XG59XG4vKiBMaW5raW5nIENvbnRlbnQgKi9cbi51aS5pbnZlcnRlZC5saXN0IC5pdGVtIGE6bm90KC51aSkge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjkpICFpbXBvcnRhbnQ7XG59XG4udWkuaW52ZXJ0ZWQubGlzdCAuaXRlbSBhOm5vdCgudWkpOmhvdmVyIHtcbiAgY29sb3I6ICMxZTcwYmYgIWltcG9ydGFudDtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFsaWduZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5saXN0W2NsYXNzKj1cInRvcCBhbGlnbmVkXCJdIC5pbWFnZSxcbi51aS5saXN0W2NsYXNzKj1cInRvcCBhbGlnbmVkXCJdIC5jb250ZW50LFxuLnVpLmxpc3QgW2NsYXNzKj1cInRvcCBhbGlnbmVkXCJdIHtcbiAgdmVydGljYWwtYWxpZ246IHRvcCAhaW1wb3J0YW50O1xufVxuLnVpLmxpc3RbY2xhc3MqPVwibWlkZGxlIGFsaWduZWRcIl0gLmltYWdlLFxuLnVpLmxpc3RbY2xhc3MqPVwibWlkZGxlIGFsaWduZWRcIl0gLmNvbnRlbnQsXG4udWkubGlzdCBbY2xhc3MqPVwibWlkZGxlIGFsaWduZWRcIl0ge1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlICFpbXBvcnRhbnQ7XG59XG4udWkubGlzdFtjbGFzcyo9XCJib3R0b20gYWxpZ25lZFwiXSAuaW1hZ2UsXG4udWkubGlzdFtjbGFzcyo9XCJib3R0b20gYWxpZ25lZFwiXSAuY29udGVudCxcbi51aS5saXN0IFtjbGFzcyo9XCJib3R0b20gYWxpZ25lZFwiXSB7XG4gIHZlcnRpY2FsLWFsaWduOiBib3R0b20gIWltcG9ydGFudDtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5saW5rLmxpc3QgLml0ZW0sXG4udWkubGluay5saXN0IGEuaXRlbSxcbi51aS5saW5rLmxpc3QgLml0ZW0gYTpub3QoLnVpKSB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNCk7XG4gIHRyYW5zaXRpb246IDAuMXMgY29sb3IgZWFzZTtcbn1cbi51aS5saW5rLmxpc3QgYS5pdGVtOmhvdmVyLFxuLnVpLmxpbmsubGlzdCAuaXRlbSBhOm5vdCgudWkpOmhvdmVyIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44KTtcbn1cbi51aS5saW5rLmxpc3QgYS5pdGVtOmFjdGl2ZSxcbi51aS5saW5rLmxpc3QgLml0ZW0gYTpub3QoLnVpKTphY3RpdmUge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjkpO1xufVxuLnVpLmxpbmsubGlzdCAuYWN0aXZlLml0ZW0sXG4udWkubGluay5saXN0IC5hY3RpdmUuaXRlbSBhOm5vdCgudWkpIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC45NSk7XG59XG4vKiBJbnZlcnRlZCAqL1xuLnVpLmludmVydGVkLmxpbmsubGlzdCAuaXRlbSxcbi51aS5pbnZlcnRlZC5saW5rLmxpc3QgYS5pdGVtLFxuLnVpLmludmVydGVkLmxpbmsubGlzdCAuaXRlbSBhOm5vdCgudWkpIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KTtcbn1cbi51aS5pbnZlcnRlZC5saW5rLmxpc3QgYS5pdGVtOmhvdmVyLFxuLnVpLmludmVydGVkLmxpbmsubGlzdCAuaXRlbSBhOm5vdCgudWkpOmhvdmVyIHtcbiAgY29sb3I6ICNmZmZmZmY7XG59XG4udWkuaW52ZXJ0ZWQubGluay5saXN0IGEuaXRlbTphY3RpdmUsXG4udWkuaW52ZXJ0ZWQubGluay5saXN0IC5pdGVtIGE6bm90KC51aSk6YWN0aXZlIHtcbiAgY29sb3I6ICNmZmZmZmY7XG59XG4udWkuaW52ZXJ0ZWQubGluay5saXN0IGEuYWN0aXZlLml0ZW0sXG4udWkuaW52ZXJ0ZWQubGluay5saXN0IC5hY3RpdmUuaXRlbSBhOm5vdCgudWkpIHtcbiAgY29sb3I6ICNmZmZmZmY7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNlbGVjdGlvblxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLnNlbGVjdGlvbi5saXN0IC5saXN0ID4gLml0ZW0sXG4udWkuc2VsZWN0aW9uLmxpc3QgPiAuaXRlbSB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIHBhZGRpbmc6IDAuNWVtIDAuNWVtO1xuICBtYXJnaW46IDBlbTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC40KTtcbiAgYm9yZGVyLXJhZGl1czogMC41ZW07XG4gIHRyYW5zaXRpb246IDAuMXMgY29sb3IgZWFzZSwgMC4xcyBwYWRkaW5nLWxlZnQgZWFzZSwgMC4xcyBiYWNrZ3JvdW5kLWNvbG9yIGVhc2U7XG59XG4udWkuc2VsZWN0aW9uLmxpc3QgLmxpc3QgPiAuaXRlbTpsYXN0LWNoaWxkLFxuLnVpLnNlbGVjdGlvbi5saXN0ID4gLml0ZW06bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1ib3R0b206IDBlbTtcbn1cbi51aS5zZWxlY3Rpb24ubGlzdC5saXN0ID4gLml0ZW06aG92ZXIsXG4udWkuc2VsZWN0aW9uLmxpc3QgPiAuaXRlbTpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4wMyk7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuOCk7XG59XG4udWkuc2VsZWN0aW9uLmxpc3QgLmxpc3QgPiAuaXRlbTphY3RpdmUsXG4udWkuc2VsZWN0aW9uLmxpc3QgPiAuaXRlbTphY3RpdmUge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMDUpO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjkpO1xufVxuLnVpLnNlbGVjdGlvbi5saXN0IC5saXN0ID4gLml0ZW0uYWN0aXZlLFxuLnVpLnNlbGVjdGlvbi5saXN0ID4gLml0ZW0uYWN0aXZlIHtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjA1KTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC45NSk7XG59XG4vKiBJbnZlcnRlZCAqL1xuLnVpLmludmVydGVkLnNlbGVjdGlvbi5saXN0ID4gLml0ZW0sXG4udWkuaW52ZXJ0ZWQuc2VsZWN0aW9uLmxpc3QgPiAuaXRlbSB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpO1xufVxuLnVpLmludmVydGVkLnNlbGVjdGlvbi5saXN0ID4gLml0ZW06aG92ZXIsXG4udWkuaW52ZXJ0ZWQuc2VsZWN0aW9uLmxpc3QgPiAuaXRlbTpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wMik7XG4gIGNvbG9yOiAjZmZmZmZmO1xufVxuLnVpLmludmVydGVkLnNlbGVjdGlvbi5saXN0ID4gLml0ZW06YWN0aXZlLFxuLnVpLmludmVydGVkLnNlbGVjdGlvbi5saXN0ID4gLml0ZW06YWN0aXZlIHtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA4KTtcbiAgY29sb3I6ICNmZmZmZmY7XG59XG4udWkuaW52ZXJ0ZWQuc2VsZWN0aW9uLmxpc3QgPiAuaXRlbS5hY3RpdmUsXG4udWkuaW52ZXJ0ZWQuc2VsZWN0aW9uLmxpc3QgPiAuaXRlbS5hY3RpdmUge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDgpO1xuICBjb2xvcjogI2ZmZmZmZjtcbn1cbi8qIENlbGxlZCAvIERpdmlkZWQgU2VsZWN0aW9uIExpc3QgKi9cbi51aS5jZWxsZWQuc2VsZWN0aW9uLmxpc3QgLmxpc3QgPiAuaXRlbSxcbi51aS5kaXZpZGVkLnNlbGVjdGlvbi5saXN0IC5saXN0ID4gLml0ZW0sXG4udWkuY2VsbGVkLnNlbGVjdGlvbi5saXN0ID4gLml0ZW0sXG4udWkuZGl2aWRlZC5zZWxlY3Rpb24ubGlzdCA+IC5pdGVtIHtcbiAgYm9yZGVyLXJhZGl1czogMGVtO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQW5pbWF0ZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5hbmltYXRlZC5saXN0ID4gLml0ZW0ge1xuICB0cmFuc2l0aW9uOiAwLjI1cyBjb2xvciBlYXNlIDAuMXMsIDAuMjVzIHBhZGRpbmctbGVmdCBlYXNlIDAuMXMsIDAuMjVzIGJhY2tncm91bmQtY29sb3IgZWFzZSAwLjFzO1xufVxuLnVpLmFuaW1hdGVkLmxpc3Q6bm90KC5ob3Jpem9udGFsKSA+IC5pdGVtOmhvdmVyIHtcbiAgcGFkZGluZy1sZWZ0OiAxZW07XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGaXR0ZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5maXR0ZWQubGlzdDpub3QoLnNlbGVjdGlvbikgLmxpc3QgPiAuaXRlbSxcbi51aS5maXR0ZWQubGlzdDpub3QoLnNlbGVjdGlvbikgPiAuaXRlbSB7XG4gIHBhZGRpbmctbGVmdDogMGVtO1xuICBwYWRkaW5nLXJpZ2h0OiAwZW07XG59XG4udWkuZml0dGVkLnNlbGVjdGlvbi5saXN0IC5saXN0ID4gLml0ZW0sXG4udWkuZml0dGVkLnNlbGVjdGlvbi5saXN0ID4gLml0ZW0ge1xuICBtYXJnaW4tbGVmdDogLTAuNWVtO1xuICBtYXJnaW4tcmlnaHQ6IC0wLjVlbTtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQnVsbGV0ZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbnVsLnVpLmxpc3QsXG4udWkuYnVsbGV0ZWQubGlzdCB7XG4gIG1hcmdpbi1sZWZ0OiAxLjI1cmVtO1xufVxudWwudWkubGlzdCBsaSxcbi51aS5idWxsZXRlZC5saXN0IC5saXN0ID4gLml0ZW0sXG4udWkuYnVsbGV0ZWQubGlzdCA+IC5pdGVtIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxudWwudWkubGlzdCBsaTpiZWZvcmUsXG4udWkuYnVsbGV0ZWQubGlzdCAubGlzdCA+IC5pdGVtOmJlZm9yZSxcbi51aS5idWxsZXRlZC5saXN0ID4gLml0ZW06YmVmb3JlIHtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogYXV0bztcbiAgbGVmdDogYXV0bztcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgbWFyZ2luLWxlZnQ6IC0xLjI1cmVtO1xuICBjb250ZW50OiAn4oCiJztcbiAgb3BhY2l0eTogMTtcbiAgY29sb3I6IGluaGVyaXQ7XG4gIHZlcnRpY2FsLWFsaWduOiB0b3A7XG59XG51bC51aS5saXN0IGxpOmJlZm9yZSxcbi51aS5idWxsZXRlZC5saXN0IC5saXN0ID4gYS5pdGVtOmJlZm9yZSxcbi51aS5idWxsZXRlZC5saXN0ID4gYS5pdGVtOmJlZm9yZSB7XG4gIGNvbG9yOiAjMzMzMzMzO1xufVxudWwudWkubGlzdCB1bCxcbi51aS5idWxsZXRlZC5saXN0IC5saXN0IHtcbiAgcGFkZGluZy1sZWZ0OiAxLjI1cmVtO1xufVxuLyogSG9yaXpvbnRhbCBCdWxsZXRlZCAqL1xudWwudWkuaG9yaXpvbnRhbC5idWxsZXRlZC5saXN0LFxuLnVpLmhvcml6b250YWwuYnVsbGV0ZWQubGlzdCB7XG4gIG1hcmdpbi1sZWZ0OiAwZW07XG59XG51bC51aS5ob3Jpem9udGFsLmJ1bGxldGVkLmxpc3QgbGksXG4udWkuaG9yaXpvbnRhbC5idWxsZXRlZC5saXN0ID4gLml0ZW0ge1xuICBtYXJnaW4tbGVmdDogMS43NXJlbTtcbn1cbnVsLnVpLmhvcml6b250YWwuYnVsbGV0ZWQubGlzdCBsaTpmaXJzdC1jaGlsZCxcbi51aS5ob3Jpem9udGFsLmJ1bGxldGVkLmxpc3QgPiAuaXRlbTpmaXJzdC1jaGlsZCB7XG4gIG1hcmdpbi1sZWZ0OiAwZW07XG59XG51bC51aS5ob3Jpem9udGFsLmJ1bGxldGVkLmxpc3QgbGk6OmJlZm9yZSxcbi51aS5ob3Jpem9udGFsLmJ1bGxldGVkLmxpc3QgPiAuaXRlbTo6YmVmb3JlIHtcbiAgY29sb3I6ICMzMzMzMzM7XG59XG51bC51aS5ob3Jpem9udGFsLmJ1bGxldGVkLmxpc3QgbGk6Zmlyc3QtY2hpbGQ6OmJlZm9yZSxcbi51aS5ob3Jpem9udGFsLmJ1bGxldGVkLmxpc3QgPiAuaXRlbTpmaXJzdC1jaGlsZDo6YmVmb3JlIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIE9yZGVyZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbm9sLnVpLmxpc3QsXG4udWkub3JkZXJlZC5saXN0LFxuLnVpLm9yZGVyZWQubGlzdCAubGlzdCxcbm9sLnVpLmxpc3Qgb2wge1xuICBjb3VudGVyLXJlc2V0OiBvcmRlcmVkO1xuICBtYXJnaW4tbGVmdDogMS4yNXJlbTtcbiAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xufVxub2wudWkubGlzdCBsaSxcbi51aS5vcmRlcmVkLmxpc3QgLmxpc3QgPiAuaXRlbSxcbi51aS5vcmRlcmVkLmxpc3QgPiAuaXRlbSB7XG4gIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxub2wudWkubGlzdCBsaTpiZWZvcmUsXG4udWkub3JkZXJlZC5saXN0IC5saXN0ID4gLml0ZW06YmVmb3JlLFxuLnVpLm9yZGVyZWQubGlzdCA+IC5pdGVtOmJlZm9yZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiBhdXRvO1xuICBsZWZ0OiBhdXRvO1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIG1hcmdpbi1sZWZ0OiAtMS4yNXJlbTtcbiAgY291bnRlci1pbmNyZW1lbnQ6IG9yZGVyZWQ7XG4gIGNvbnRlbnQ6IGNvdW50ZXJzKG9yZGVyZWQsIFwiLlwiKSBcIiBcIjtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gIGNvbG9yOiAjMzMzMzMzO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBvcGFjaXR5OiAwLjg7XG59XG5vbC51aS5pbnZlcnRlZC5saXN0IGxpOmJlZm9yZSxcbi51aS5vcmRlcmVkLmludmVydGVkLmxpc3QgLmxpc3QgPiAuaXRlbTpiZWZvcmUsXG4udWkub3JkZXJlZC5pbnZlcnRlZC5saXN0ID4gLml0ZW06YmVmb3JlIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KTtcbn1cbi8qIFZhbHVlICovXG4udWkub3JkZXJlZC5saXN0ID4gLmxpc3QgPiAuaXRlbVtkYXRhLXZhbHVlXSxcbi51aS5vcmRlcmVkLmxpc3QgPiAuaXRlbVtkYXRhLXZhbHVlXSB7XG4gIGNvbnRlbnQ6IGF0dHIoZGF0YS12YWx1ZSk7XG59XG5vbC51aS5saXN0IGxpW3ZhbHVlXTpiZWZvcmUge1xuICBjb250ZW50OiBhdHRyKHZhbHVlKTtcbn1cbi8qIENoaWxkIExpc3RzICovXG5vbC51aS5saXN0IG9sLFxuLnVpLm9yZGVyZWQubGlzdCAubGlzdCB7XG4gIG1hcmdpbi1sZWZ0OiAxZW07XG59XG5vbC51aS5saXN0IG9sIGxpOmJlZm9yZSxcbi51aS5vcmRlcmVkLmxpc3QgLmxpc3QgPiAuaXRlbTpiZWZvcmUge1xuICBtYXJnaW4tbGVmdDogLTJlbTtcbn1cbi8qIEhvcml6b250YWwgT3JkZXJlZCAqL1xub2wudWkuaG9yaXpvbnRhbC5saXN0LFxuLnVpLm9yZGVyZWQuaG9yaXpvbnRhbC5saXN0IHtcbiAgbWFyZ2luLWxlZnQ6IDBlbTtcbn1cbm9sLnVpLmhvcml6b250YWwubGlzdCBsaTpiZWZvcmUsXG4udWkub3JkZXJlZC5ob3Jpem9udGFsLmxpc3QgLmxpc3QgPiAuaXRlbTpiZWZvcmUsXG4udWkub3JkZXJlZC5ob3Jpem9udGFsLmxpc3QgPiAuaXRlbTpiZWZvcmUge1xuICBwb3NpdGlvbjogc3RhdGljO1xuICBtYXJnaW46IDBlbSAwLjVlbSAwZW0gMGVtO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRGl2aWRlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmRpdmlkZWQubGlzdCA+IC5pdGVtIHtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHJnYmEoMzQsIDM2LCAzOCwgMC4xNSk7XG59XG4udWkuZGl2aWRlZC5saXN0IC5saXN0ID4gLml0ZW0ge1xuICBib3JkZXItdG9wOiBub25lO1xufVxuLnVpLmRpdmlkZWQubGlzdCAuaXRlbSAubGlzdCA+IC5pdGVtIHtcbiAgYm9yZGVyLXRvcDogbm9uZTtcbn1cbi51aS5kaXZpZGVkLmxpc3QgLmxpc3QgPiAuaXRlbTpmaXJzdC1jaGlsZCxcbi51aS5kaXZpZGVkLmxpc3QgPiAuaXRlbTpmaXJzdC1jaGlsZCB7XG4gIGJvcmRlci10b3A6IG5vbmU7XG59XG4vKiBTdWIgTWVudSAqL1xuLnVpLmRpdmlkZWQubGlzdDpub3QoLmhvcml6b250YWwpIC5saXN0ID4gLml0ZW06Zmlyc3QtY2hpbGQge1xuICBib3JkZXItdG9wLXdpZHRoOiAxcHg7XG59XG4vKiBEaXZpZGVkIGJ1bGxldGVkICovXG4udWkuZGl2aWRlZC5idWxsZXRlZC5saXN0Om5vdCguaG9yaXpvbnRhbCksXG4udWkuZGl2aWRlZC5idWxsZXRlZC5saXN0IC5saXN0IHtcbiAgbWFyZ2luLWxlZnQ6IDBlbTtcbiAgcGFkZGluZy1sZWZ0OiAwZW07XG59XG4udWkuZGl2aWRlZC5idWxsZXRlZC5saXN0ID4gLml0ZW06bm90KC5ob3Jpem9udGFsKSB7XG4gIHBhZGRpbmctbGVmdDogMS4yNXJlbTtcbn1cbi8qIERpdmlkZWQgT3JkZXJlZCAqL1xuLnVpLmRpdmlkZWQub3JkZXJlZC5saXN0IHtcbiAgbWFyZ2luLWxlZnQ6IDBlbTtcbn1cbi51aS5kaXZpZGVkLm9yZGVyZWQubGlzdCAubGlzdCA+IC5pdGVtLFxuLnVpLmRpdmlkZWQub3JkZXJlZC5saXN0ID4gLml0ZW0ge1xuICBwYWRkaW5nLWxlZnQ6IDEuMjVyZW07XG59XG4udWkuZGl2aWRlZC5vcmRlcmVkLmxpc3QgLml0ZW0gLmxpc3Qge1xuICBtYXJnaW4tbGVmdDogMGVtO1xuICBtYXJnaW4tcmlnaHQ6IDBlbTtcbiAgcGFkZGluZy1ib3R0b206IDAuM2VtO1xufVxuLnVpLmRpdmlkZWQub3JkZXJlZC5saXN0IC5pdGVtIC5saXN0ID4gLml0ZW0ge1xuICBwYWRkaW5nLWxlZnQ6IDFlbTtcbn1cbi8qIERpdmlkZWQgU2VsZWN0aW9uICovXG4udWkuZGl2aWRlZC5zZWxlY3Rpb24ubGlzdCAubGlzdCA+IC5pdGVtLFxuLnVpLmRpdmlkZWQuc2VsZWN0aW9uLmxpc3QgPiAuaXRlbSB7XG4gIG1hcmdpbjogMGVtO1xuICBib3JkZXItcmFkaXVzOiAwZW07XG59XG4vKiBEaXZpZGVkIGhvcml6b250YWwgKi9cbi51aS5kaXZpZGVkLmhvcml6b250YWwubGlzdCB7XG4gIG1hcmdpbi1sZWZ0OiAwZW07XG59XG4udWkuZGl2aWRlZC5ob3Jpem9udGFsLmxpc3QgPiAuaXRlbTpub3QoOmZpcnN0LWNoaWxkKSB7XG4gIHBhZGRpbmctbGVmdDogMC41ZW07XG59XG4udWkuZGl2aWRlZC5ob3Jpem9udGFsLmxpc3QgPiAuaXRlbTpub3QoOmxhc3QtY2hpbGQpIHtcbiAgcGFkZGluZy1yaWdodDogMC41ZW07XG59XG4udWkuZGl2aWRlZC5ob3Jpem9udGFsLmxpc3QgPiAuaXRlbSB7XG4gIGJvcmRlci10b3A6IG5vbmU7XG4gIGJvcmRlci1sZWZ0OiAxcHggc29saWQgcmdiYSgzNCwgMzYsIDM4LCAwLjE1KTtcbiAgbWFyZ2luOiAwZW07XG4gIGxpbmUtaGVpZ2h0OiAwLjY7XG59XG4udWkuaG9yaXpvbnRhbC5kaXZpZGVkLmxpc3QgPiAuaXRlbTpmaXJzdC1jaGlsZCB7XG4gIGJvcmRlci1sZWZ0OiBub25lO1xufVxuLyogSW52ZXJ0ZWQgKi9cbi51aS5kaXZpZGVkLmludmVydGVkLmxpc3QgPiAuaXRlbSxcbi51aS5kaXZpZGVkLmludmVydGVkLmxpc3QgPiAubGlzdCxcbi51aS5kaXZpZGVkLmludmVydGVkLmhvcml6b250YWwubGlzdCA+IC5pdGVtIHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSk7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQ2VsbGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkuY2VsbGVkLmxpc3QgPiAuaXRlbSxcbi51aS5jZWxsZWQubGlzdCA+IC5saXN0IHtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHJnYmEoMzQsIDM2LCAzOCwgMC4xNSk7XG4gIHBhZGRpbmctbGVmdDogMC41ZW07XG4gIHBhZGRpbmctcmlnaHQ6IDAuNWVtO1xufVxuLnVpLmNlbGxlZC5saXN0ID4gLml0ZW06bGFzdC1jaGlsZCB7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpO1xufVxuLyogUGFkZGluZyBvbiBhbGwgZWxlbWVudHMgKi9cbi51aS5jZWxsZWQubGlzdCA+IC5pdGVtOmZpcnN0LWNoaWxkLFxuLnVpLmNlbGxlZC5saXN0ID4gLml0ZW06bGFzdC1jaGlsZCB7XG4gIHBhZGRpbmctdG9wOiAwLjNlbTtcbiAgcGFkZGluZy1ib3R0b206IDAuM2VtO1xufVxuLyogU3ViIE1lbnUgKi9cbi51aS5jZWxsZWQubGlzdCAuaXRlbSAubGlzdCA+IC5pdGVtIHtcbiAgYm9yZGVyLXdpZHRoOiAwcHg7XG59XG4udWkuY2VsbGVkLmxpc3QgLmxpc3QgPiAuaXRlbTpmaXJzdC1jaGlsZCB7XG4gIGJvcmRlci10b3Atd2lkdGg6IDBweDtcbn1cbi8qIENlbGxlZCBCdWxsZXRlZCAqL1xuLnVpLmNlbGxlZC5idWxsZXRlZC5saXN0IHtcbiAgbWFyZ2luLWxlZnQ6IDBlbTtcbn1cbi51aS5jZWxsZWQuYnVsbGV0ZWQubGlzdCAubGlzdCA+IC5pdGVtLFxuLnVpLmNlbGxlZC5idWxsZXRlZC5saXN0ID4gLml0ZW0ge1xuICBwYWRkaW5nLWxlZnQ6IDEuMjVyZW07XG59XG4udWkuY2VsbGVkLmJ1bGxldGVkLmxpc3QgLml0ZW0gLmxpc3Qge1xuICBtYXJnaW4tbGVmdDogLTEuMjVyZW07XG4gIG1hcmdpbi1yaWdodDogLTEuMjVyZW07XG4gIHBhZGRpbmctYm90dG9tOiAwLjNlbTtcbn1cbi8qIENlbGxlZCBPcmRlcmVkICovXG4udWkuY2VsbGVkLm9yZGVyZWQubGlzdCB7XG4gIG1hcmdpbi1sZWZ0OiAwZW07XG59XG4udWkuY2VsbGVkLm9yZGVyZWQubGlzdCAubGlzdCA+IC5pdGVtLFxuLnVpLmNlbGxlZC5vcmRlcmVkLmxpc3QgPiAuaXRlbSB7XG4gIHBhZGRpbmctbGVmdDogMS4yNXJlbTtcbn1cbi51aS5jZWxsZWQub3JkZXJlZC5saXN0IC5pdGVtIC5saXN0IHtcbiAgbWFyZ2luLWxlZnQ6IDBlbTtcbiAgbWFyZ2luLXJpZ2h0OiAwZW07XG4gIHBhZGRpbmctYm90dG9tOiAwLjNlbTtcbn1cbi51aS5jZWxsZWQub3JkZXJlZC5saXN0IC5saXN0ID4gLml0ZW0ge1xuICBwYWRkaW5nLWxlZnQ6IDFlbTtcbn1cbi8qIENlbGxlZCBIb3Jpem9udGFsICovXG4udWkuaG9yaXpvbnRhbC5jZWxsZWQubGlzdCB7XG4gIG1hcmdpbi1sZWZ0OiAwZW07XG59XG4udWkuaG9yaXpvbnRhbC5jZWxsZWQubGlzdCAubGlzdCA+IC5pdGVtLFxuLnVpLmhvcml6b250YWwuY2VsbGVkLmxpc3QgPiAuaXRlbSB7XG4gIGJvcmRlci10b3A6IG5vbmU7XG4gIGJvcmRlci1sZWZ0OiAxcHggc29saWQgcmdiYSgzNCwgMzYsIDM4LCAwLjE1KTtcbiAgbWFyZ2luOiAwZW07XG4gIHBhZGRpbmctbGVmdDogMC41ZW07XG4gIHBhZGRpbmctcmlnaHQ6IDAuNWVtO1xuICBsaW5lLWhlaWdodDogMC42O1xufVxuLnVpLmhvcml6b250YWwuY2VsbGVkLmxpc3QgLmxpc3QgPiAuaXRlbTpsYXN0LWNoaWxkLFxuLnVpLmhvcml6b250YWwuY2VsbGVkLmxpc3QgPiAuaXRlbTpsYXN0LWNoaWxkIHtcbiAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgcmdiYSgzNCwgMzYsIDM4LCAwLjE1KTtcbn1cbi8qIEludmVydGVkICovXG4udWkuY2VsbGVkLmludmVydGVkLmxpc3QgPiAuaXRlbSxcbi51aS5jZWxsZWQuaW52ZXJ0ZWQubGlzdCA+IC5saXN0IHtcbiAgYm9yZGVyLWNvbG9yOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpO1xufVxuLnVpLmNlbGxlZC5pbnZlcnRlZC5ob3Jpem9udGFsLmxpc3QgLmxpc3QgPiAuaXRlbSxcbi51aS5jZWxsZWQuaW52ZXJ0ZWQuaG9yaXpvbnRhbC5saXN0ID4gLml0ZW0ge1xuICBib3JkZXItY29sb3I6IDFweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSk7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBSZWxheGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkucmVsYXhlZC5saXN0Om5vdCguaG9yaXpvbnRhbCkgPiAuaXRlbTpub3QoOmZpcnN0LWNoaWxkKSB7XG4gIHBhZGRpbmctdG9wOiAwLjZlbTtcbn1cbi51aS5yZWxheGVkLmxpc3Q6bm90KC5ob3Jpem9udGFsKSA+IC5pdGVtOm5vdCg6bGFzdC1jaGlsZCkge1xuICBwYWRkaW5nLWJvdHRvbTogMC42ZW07XG59XG4udWkuaG9yaXpvbnRhbC5yZWxheGVkLmxpc3QgLmxpc3QgPiAuaXRlbTpub3QoOmZpcnN0LWNoaWxkKSxcbi51aS5ob3Jpem9udGFsLnJlbGF4ZWQubGlzdCA+IC5pdGVtOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgcGFkZGluZy1sZWZ0OiAxcmVtO1xufVxuLnVpLmhvcml6b250YWwucmVsYXhlZC5saXN0IC5saXN0ID4gLml0ZW06bm90KDpsYXN0LWNoaWxkKSxcbi51aS5ob3Jpem9udGFsLnJlbGF4ZWQubGlzdCA+IC5pdGVtOm5vdCg6bGFzdC1jaGlsZCkge1xuICBwYWRkaW5nLXJpZ2h0OiAxcmVtO1xufVxuLyogVmVyeSBSZWxheGVkICovXG4udWlbY2xhc3MqPVwidmVyeSByZWxheGVkXCJdLmxpc3Q6bm90KC5ob3Jpem9udGFsKSA+IC5pdGVtOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgcGFkZGluZy10b3A6IDEuMmVtO1xufVxuLnVpW2NsYXNzKj1cInZlcnkgcmVsYXhlZFwiXS5saXN0Om5vdCguaG9yaXpvbnRhbCkgPiAuaXRlbTpub3QoOmxhc3QtY2hpbGQpIHtcbiAgcGFkZGluZy1ib3R0b206IDEuMmVtO1xufVxuLnVpLmhvcml6b250YWxbY2xhc3MqPVwidmVyeSByZWxheGVkXCJdLmxpc3QgLmxpc3QgPiAuaXRlbTpub3QoOmZpcnN0LWNoaWxkKSxcbi51aS5ob3Jpem9udGFsW2NsYXNzKj1cInZlcnkgcmVsYXhlZFwiXS5saXN0ID4gLml0ZW06bm90KDpmaXJzdC1jaGlsZCkge1xuICBwYWRkaW5nLWxlZnQ6IDEuNXJlbTtcbn1cbi51aS5ob3Jpem9udGFsW2NsYXNzKj1cInZlcnkgcmVsYXhlZFwiXS5saXN0IC5saXN0ID4gLml0ZW06bm90KDpsYXN0LWNoaWxkKSxcbi51aS5ob3Jpem9udGFsW2NsYXNzKj1cInZlcnkgcmVsYXhlZFwiXS5saXN0ID4gLml0ZW06bm90KDpsYXN0LWNoaWxkKSB7XG4gIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5taW5pLmxpc3Qge1xuICBmb250LXNpemU6IDAuOGVtO1xufVxuLnVpLnRpbnkubGlzdCB7XG4gIGZvbnQtc2l6ZTogMC45ZW07XG59XG4udWkuc21hbGwubGlzdCB7XG4gIGZvbnQtc2l6ZTogMC45ZW07XG59XG4udWkubGlzdCB7XG4gIGZvbnQtc2l6ZTogMWVtO1xufVxuLnVpLmxhcmdlLmxpc3Qge1xuICBmb250LXNpemU6IDEuMWVtO1xufVxuLnVpLmJpZy5saXN0IHtcbiAgZm9udC1zaXplOiAxLjNlbTtcbn1cbi51aS5odWdlLmxpc3Qge1xuICBmb250LXNpemU6IDEuNGVtO1xufVxuLnVpLm1hc3NpdmUubGlzdCB7XG4gIGZvbnQtc2l6ZTogMS43ZW07XG59XG4udWkubWluaS5ob3Jpem9udGFsLmxpc3QgLmxpc3QgPiAuaXRlbSxcbi51aS5taW5pLmhvcml6b250YWwubGlzdCA+IC5pdGVtIHtcbiAgZm9udC1zaXplOiAwLjhyZW07XG59XG4udWkudGlueS5ob3Jpem9udGFsLmxpc3QgLmxpc3QgPiAuaXRlbSxcbi51aS50aW55Lmhvcml6b250YWwubGlzdCA+IC5pdGVtIHtcbiAgZm9udC1zaXplOiAwLjlyZW07XG59XG4udWkuc21hbGwuaG9yaXpvbnRhbC5saXN0IC5saXN0ID4gLml0ZW0sXG4udWkuc21hbGwuaG9yaXpvbnRhbC5saXN0ID4gLml0ZW0ge1xuICBmb250LXNpemU6IDAuOXJlbTtcbn1cbi51aS5ob3Jpem9udGFsLmxpc3QgLmxpc3QgPiAuaXRlbSxcbi51aS5ob3Jpem9udGFsLmxpc3QgPiAuaXRlbSB7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbn1cbi51aS5sYXJnZS5ob3Jpem9udGFsLmxpc3QgLmxpc3QgPiAuaXRlbSxcbi51aS5sYXJnZS5ob3Jpem9udGFsLmxpc3QgPiAuaXRlbSB7XG4gIGZvbnQtc2l6ZTogMS4xcmVtO1xufVxuLnVpLmJpZy5ob3Jpem9udGFsLmxpc3QgLmxpc3QgPiAuaXRlbSxcbi51aS5iaWcuaG9yaXpvbnRhbC5saXN0ID4gLml0ZW0ge1xuICBmb250LXNpemU6IDEuM3JlbTtcbn1cbi51aS5odWdlLmhvcml6b250YWwubGlzdCAubGlzdCA+IC5pdGVtLFxuLnVpLmh1Z2UuaG9yaXpvbnRhbC5saXN0ID4gLml0ZW0ge1xuICBmb250LXNpemU6IDEuNHJlbTtcbn1cbi51aS5tYXNzaXZlLmhvcml6b250YWwubGlzdCAubGlzdCA+IC5pdGVtLFxuLnVpLm1hc3NpdmUuaG9yaXpvbnRhbC5saXN0ID4gLml0ZW0ge1xuICBmb250LXNpemU6IDEuN3JlbTtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBUaGVtZSBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgIFVzZXIgVmFyaWFibGUgT3ZlcnJpZGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyohXG4gKiAjIFNlbWFudGljIFVJIC0gTG9hZGVyXG4gKiBodHRwOi8vZ2l0aHViLmNvbS9zZW1hbnRpYy1vcmcvc2VtYW50aWMtdWkvXG4gKlxuICpcbiAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZVxuICogaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVFxuICpcbiAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLypcblxu4paI4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWXICDilojilojilZfilojilojilojilojilojilojilojilZfilojilojilojilZcgICDilojilojilojilZfilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZdcbuKVmuKVkOKVkOKWiOKWiOKVlOKVkOKVkOKVneKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWd4paI4paI4paI4paI4pWXIOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVnVxuICAg4paI4paI4pWRICAg4paI4paI4paI4paI4paI4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilZTilojilojilojilojilZTilojilojilZHilojilojilojilojilojilZcgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl1xuICAg4paI4paI4pWRICAg4paI4paI4pWU4pWQ4pWQ4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilojilojilZHilZrilojilojilZTilZ3ilojilojilZHilojilojilZTilZDilZDilZ0gIOKVmuKVkOKVkOKVkOKVkOKWiOKWiOKVkVxuICAg4paI4paI4pWRICAg4paI4paI4pWRICDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilZEg4pWa4pWQ4pWdIOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkVxuICAg4pWa4pWQ4pWdICAg4pWa4pWQ4pWdICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZ0gICAgIOKVmuKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVnVxuXG4qL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgVGhlbWUgU2VsZWN0aW9uXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogVG8gb3ZlcnJpZGUgYSB0aGVtZSBmb3IgYW4gaW5kaXZpZHVhbCBlbGVtZW50XG4gICBzcGVjaWZ5IHRoZW1lIG5hbWUgYmVsb3dcbiovXG4vKiBHbG9iYWwgKi9cbi8qIEVsZW1lbnRzICovXG4vKiBDb2xsZWN0aW9ucyAqL1xuLyogTW9kdWxlcyAqL1xuLyogVmlld3MgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBGb2xkZXJzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogUGF0aCB0byB0aGVtZSBwYWNrYWdlcyAqL1xuLyogUGF0aCB0byBzaXRlIG92ZXJyaWRlIGZvbGRlciAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIEltcG9ydCBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIEltcG9ydCBEaXJlY3RpdmVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBUaGVtZVxuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICBTaXRlIFZhcmlhYmxlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERlZmF1bHQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZG9ycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBQYWNrYWdlZCBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kb3JzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIENvbXBvbmVudCdzIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRvcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogU2l0ZSB0aGVtZSBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgVXNlciBHbG9iYWwgVmFyaWFibGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogbWFyc28gY29sb3JzICovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gQ29tcG9uZW50IFZhcmlhYmxlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERlZmF1bHQgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgTG9hZGVyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogU29tZSBnbG9iYWwgbG9hZGVyIHN0eWxlcyBkZWZpbmVkIGluIHNpdGUudmFyaWFibGVzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFN0YW5kYXJkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgVHlwZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRleHQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTdGF0ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgVmFyaWF0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRXhhY3QgU2l6ZXMgKEF2b2lkcyBSb3VuZGluZyBFcnJvcnMpICovXG4vKiBQYWNrYWdlZCBUaGVtZSAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBMb2FkZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBTb21lIGdsb2JhbCBsb2FkZXIgc3R5bGVzIGRlZmluZWQgaW4gc2l0ZS52YXJpYWJsZXMgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU3RhbmRhcmRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBUeXBlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGV4dCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFN0YXRlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBWYXJpYXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBFeGFjdCBTaXplcyAoQXZvaWRzIFJvdW5kaW5nIEVycm9ycykgKi9cbi8qIFNpdGUgVGhlbWUgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgVXNlciBWYXJpYWJsZSBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIE1peC1pbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE92ZXJyaWRlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBFbmQgQ29uZmlnICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgTG9hZGVyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogU3RhbmRhcmQgU2l6ZSAqL1xuLnVpLmxvYWRlciB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIGxlZnQ6IDUwJTtcbiAgbWFyZ2luOiAwcHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgei1pbmRleDogMTAwMDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpIHRyYW5zbGF0ZVkoLTUwJSk7XG59XG4vKiBTdGF0aWMgU2hhcGUgKi9cbi51aS5sb2FkZXI6YmVmb3JlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBjb250ZW50OiAnJztcbiAgdG9wOiAwJTtcbiAgbGVmdDogNTAlO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBib3JkZXItcmFkaXVzOiA1MDByZW07XG4gIGJvcmRlcjogMC4yZW0gc29saWQgcmdiYSgwLCAwLCAwLCAwLjEpO1xufVxuLyogQWN0aXZlIFNoYXBlICovXG4udWkubG9hZGVyOmFmdGVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBjb250ZW50OiAnJztcbiAgdG9wOiAwJTtcbiAgbGVmdDogNTAlO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBhbmltYXRpb246IGxvYWRlciAwLjZzIGxpbmVhcjtcbiAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XG4gIGJvcmRlci1yYWRpdXM6IDUwMHJlbTtcbiAgYm9yZGVyLWNvbG9yOiAjNzY3Njc2IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICBib3JkZXItd2lkdGg6IDAuMmVtO1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggdHJhbnNwYXJlbnQ7XG59XG4vKiBBY3RpdmUgQW5pbWF0aW9uICovXG5Aa2V5ZnJhbWVzIGxvYWRlciB7XG4gIGZyb20ge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xuICB9XG4gIHRvIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpO1xuICB9XG59XG4vKiBTaXplcyAqL1xuLnVpLm1pbmkubG9hZGVyOmJlZm9yZSxcbi51aS5taW5pLmxvYWRlcjphZnRlciB7XG4gIHdpZHRoOiAxLjRyZW07XG4gIGhlaWdodDogMS40cmVtO1xuICBtYXJnaW46IDBlbSAwZW0gMGVtIC0wLjdyZW07XG59XG4udWkudGlueS5sb2FkZXI6YmVmb3JlLFxuLnVpLnRpbnkubG9hZGVyOmFmdGVyIHtcbiAgd2lkdGg6IDEuNnJlbTtcbiAgaGVpZ2h0OiAxLjZyZW07XG4gIG1hcmdpbjogMGVtIDBlbSAwZW0gLTAuOHJlbTtcbn1cbi51aS5zbWFsbC5sb2FkZXI6YmVmb3JlLFxuLnVpLnNtYWxsLmxvYWRlcjphZnRlciB7XG4gIHdpZHRoOiAyLjRyZW07XG4gIGhlaWdodDogMi40cmVtO1xuICBtYXJnaW46IDBlbSAwZW0gMGVtIC0xLjJyZW07XG59XG4udWkubG9hZGVyOmJlZm9yZSxcbi51aS5sb2FkZXI6YWZ0ZXIge1xuICB3aWR0aDogMy4ycmVtO1xuICBoZWlnaHQ6IDMuMnJlbTtcbiAgbWFyZ2luOiAwZW0gMGVtIDBlbSAtMS42cmVtO1xufVxuLnVpLmxhcmdlLmxvYWRlcjpiZWZvcmUsXG4udWkubGFyZ2UubG9hZGVyOmFmdGVyIHtcbiAgd2lkdGg6IDQuOHJlbTtcbiAgaGVpZ2h0OiA0LjhyZW07XG4gIG1hcmdpbjogMGVtIDBlbSAwZW0gLTIuNHJlbTtcbn1cbi51aS5iaWcubG9hZGVyOmJlZm9yZSxcbi51aS5iaWcubG9hZGVyOmFmdGVyIHtcbiAgd2lkdGg6IDUuMnJlbTtcbiAgaGVpZ2h0OiA1LjJyZW07XG4gIG1hcmdpbjogMGVtIDBlbSAwZW0gLTIuNnJlbTtcbn1cbi51aS5odWdlLmxvYWRlcjpiZWZvcmUsXG4udWkuaHVnZS5sb2FkZXI6YWZ0ZXIge1xuICB3aWR0aDogNS44cmVtO1xuICBoZWlnaHQ6IDUuOHJlbTtcbiAgbWFyZ2luOiAwZW0gMGVtIDBlbSAtMi45cmVtO1xufVxuLnVpLm1hc3NpdmUubG9hZGVyOmJlZm9yZSxcbi51aS5tYXNzaXZlLmxvYWRlcjphZnRlciB7XG4gIHdpZHRoOiA2LjRyZW07XG4gIGhlaWdodDogNi40cmVtO1xuICBtYXJnaW46IDBlbSAwZW0gMGVtIC0zLjJyZW07XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIENvdXBsaW5nXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTaG93IGluc2lkZSBhY3RpdmUgZGltbWVyICovXG4udWkuZGltbWVyIC5sb2FkZXIge1xuICBkaXNwbGF5OiBibG9jaztcbn1cbi8qIEJsYWNrIERpbW1lciAqL1xuLnVpLmRpbW1lciAudWkubG9hZGVyIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45KTtcbn1cbi51aS5kaW1tZXIgLnVpLmxvYWRlcjpiZWZvcmUge1xuICBib3JkZXItY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSk7XG59XG4udWkuZGltbWVyIC51aS5sb2FkZXI6YWZ0ZXIge1xuICBib3JkZXItY29sb3I6ICNmZmZmZmYgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG59XG4vKiBXaGl0ZSBEaW1tZXIgKEludmVydGVkKSAqL1xuLnVpLmludmVydGVkLmRpbW1lciAudWkubG9hZGVyIHtcbiAgY29sb3I6ICMzMzMzMzM7XG59XG4udWkuaW52ZXJ0ZWQuZGltbWVyIC51aS5sb2FkZXI6YmVmb3JlIHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMSk7XG59XG4udWkuaW52ZXJ0ZWQuZGltbWVyIC51aS5sb2FkZXI6YWZ0ZXIge1xuICBib3JkZXItY29sb3I6ICM3Njc2NzYgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFR5cGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS50ZXh0LmxvYWRlciB7XG4gIHdpZHRoOiBhdXRvICFpbXBvcnRhbnQ7XG4gIGhlaWdodDogYXV0byAhaW1wb3J0YW50O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4udWkuaW5kZXRlcm1pbmF0ZS5sb2FkZXI6YWZ0ZXIge1xuICBhbmltYXRpb24tZGlyZWN0aW9uOiByZXZlcnNlO1xuICBhbmltYXRpb24tZHVyYXRpb246IDEuMnM7XG59XG4udWkubG9hZGVyLmFjdGl2ZSxcbi51aS5sb2FkZXIudmlzaWJsZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuLnVpLmxvYWRlci5kaXNhYmxlZCxcbi51aS5sb2FkZXIuaGlkZGVuIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBWYXJpYXRpb25zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXIgKi9cbi51aS5pbnZlcnRlZC5kaW1tZXIgLnVpLm1pbmkubG9hZGVyLFxuLnVpLm1pbmkubG9hZGVyIHtcbiAgd2lkdGg6IDEuNHJlbTtcbiAgaGVpZ2h0OiAxLjRyZW07XG4gIGZvbnQtc2l6ZTogMC44ZW07XG59XG4udWkuaW52ZXJ0ZWQuZGltbWVyIC51aS50aW55LmxvYWRlcixcbi51aS50aW55LmxvYWRlciB7XG4gIHdpZHRoOiAxLjZyZW07XG4gIGhlaWdodDogMS42cmVtO1xuICBmb250LXNpemU6IDAuOWVtO1xufVxuLnVpLmludmVydGVkLmRpbW1lciAudWkuc21hbGwubG9hZGVyLFxuLnVpLnNtYWxsLmxvYWRlciB7XG4gIHdpZHRoOiAyLjRyZW07XG4gIGhlaWdodDogMi40cmVtO1xuICBmb250LXNpemU6IDAuOWVtO1xufVxuLnVpLmludmVydGVkLmRpbW1lciAudWkubG9hZGVyLFxuLnVpLmxvYWRlciB7XG4gIHdpZHRoOiAzLjJyZW07XG4gIGhlaWdodDogMy4ycmVtO1xuICBmb250LXNpemU6IDFlbTtcbn1cbi51aS5pbnZlcnRlZC5kaW1tZXIgLnVpLmxhcmdlLmxvYWRlcixcbi51aS5sYXJnZS5sb2FkZXIge1xuICB3aWR0aDogNC44cmVtO1xuICBoZWlnaHQ6IDQuOHJlbTtcbiAgZm9udC1zaXplOiAxLjFlbTtcbn1cbi51aS5pbnZlcnRlZC5kaW1tZXIgLnVpLmJpZy5sb2FkZXIsXG4udWkuYmlnLmxvYWRlciB7XG4gIHdpZHRoOiA1LjJyZW07XG4gIGhlaWdodDogNS4ycmVtO1xuICBmb250LXNpemU6IDEuM2VtO1xufVxuLnVpLmludmVydGVkLmRpbW1lciAudWkuaHVnZS5sb2FkZXIsXG4udWkuaHVnZS5sb2FkZXIge1xuICB3aWR0aDogNS44cmVtO1xuICBoZWlnaHQ6IDUuOHJlbTtcbiAgZm9udC1zaXplOiAxLjRlbTtcbn1cbi51aS5pbnZlcnRlZC5kaW1tZXIgLnVpLm1hc3NpdmUubG9hZGVyLFxuLnVpLm1hc3NpdmUubG9hZGVyIHtcbiAgd2lkdGg6IDYuNHJlbTtcbiAgaGVpZ2h0OiA2LjRyZW07XG4gIGZvbnQtc2l6ZTogMS43ZW07XG59XG4vKiBUZXh0IExvYWRlciAqL1xuLnVpLm1pbmkudGV4dC5sb2FkZXIge1xuICBtaW4td2lkdGg6IDEuNHJlbTtcbiAgcGFkZGluZy10b3A6IDIuMnJlbTtcbn1cbi51aS50aW55LnRleHQubG9hZGVyIHtcbiAgbWluLXdpZHRoOiAxLjZyZW07XG4gIHBhZGRpbmctdG9wOiAyLjRyZW07XG59XG4udWkuc21hbGwudGV4dC5sb2FkZXIge1xuICBtaW4td2lkdGg6IDIuNHJlbTtcbiAgcGFkZGluZy10b3A6IDMuMnJlbTtcbn1cbi51aS50ZXh0LmxvYWRlciB7XG4gIG1pbi13aWR0aDogMy4ycmVtO1xuICBwYWRkaW5nLXRvcDogNHJlbTtcbn1cbi51aS5sYXJnZS50ZXh0LmxvYWRlciB7XG4gIG1pbi13aWR0aDogNC44cmVtO1xuICBwYWRkaW5nLXRvcDogNS42cmVtO1xufVxuLnVpLmJpZy50ZXh0LmxvYWRlciB7XG4gIG1pbi13aWR0aDogNS4ycmVtO1xuICBwYWRkaW5nLXRvcDogNnJlbTtcbn1cbi51aS5odWdlLnRleHQubG9hZGVyIHtcbiAgbWluLXdpZHRoOiA1LjhyZW07XG4gIHBhZGRpbmctdG9wOiA2LjZyZW07XG59XG4udWkubWFzc2l2ZS50ZXh0LmxvYWRlciB7XG4gIG1pbi13aWR0aDogNi40cmVtO1xuICBwYWRkaW5nLXRvcDogNy4ycmVtO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSW52ZXJ0ZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5pbnZlcnRlZC5sb2FkZXIge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjkpO1xufVxuLnVpLmludmVydGVkLmxvYWRlcjpiZWZvcmUge1xuICBib3JkZXItY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSk7XG59XG4udWkuaW52ZXJ0ZWQubG9hZGVyOmFmdGVyIHtcbiAgYm9yZGVyLXRvcC1jb2xvcjogI2ZmZmZmZjtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIElubGluZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmlubGluZS5sb2FkZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIG1hcmdpbjogMGVtO1xuICBsZWZ0OiAwZW07XG4gIHRvcDogMGVtO1xuICB0cmFuc2Zvcm06IG5vbmU7XG59XG4udWkuaW5saW5lLmxvYWRlci5hY3RpdmUsXG4udWkuaW5saW5lLmxvYWRlci52aXNpYmxlIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuLyogQ2VudGVyZWQgSW5saW5lICovXG4udWkuY2VudGVyZWQuaW5saW5lLmxvYWRlci5hY3RpdmUsXG4udWkuY2VudGVyZWQuaW5saW5lLmxvYWRlci52aXNpYmxlIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgVGhlbWUgT3ZlcnJpZGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgT3ZlcnJpZGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyohXG4gKiAjIFNlbWFudGljIFVJIC0gUmFpbFxuICogaHR0cDovL2dpdGh1Yi5jb20vc2VtYW50aWMtb3JnL3NlbWFudGljLXVpL1xuICpcbiAqXG4gKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2VcbiAqIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVRcbiAqXG4gKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qXG5cbuKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVlyAg4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4pWXICAg4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWXXG7ilZrilZDilZDilojilojilZTilZDilZDilZ3ilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKWiOKWiOKVlyDilojilojilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilZTilZDilZDilZDilZDilZ1cbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4pWU4paI4paI4paI4paI4pWU4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilojilojilojilojilojilZdcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVlOKVkOKVkOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4paI4paI4pWR4pWa4paI4paI4pWU4pWd4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilZrilZDilZDilZDilZDilojilojilZFcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWRIOKVmuKVkOKVnSDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZFcbiAgIOKVmuKVkOKVnSAgIOKVmuKVkOKVnSAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWdICAgICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ1cblxuKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIFRoZW1lIFNlbGVjdGlvblxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFRvIG92ZXJyaWRlIGEgdGhlbWUgZm9yIGFuIGluZGl2aWR1YWwgZWxlbWVudFxuICAgc3BlY2lmeSB0aGVtZSBuYW1lIGJlbG93XG4qL1xuLyogR2xvYmFsICovXG4vKiBFbGVtZW50cyAqL1xuLyogQ29sbGVjdGlvbnMgKi9cbi8qIE1vZHVsZXMgKi9cbi8qIFZpZXdzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgRm9sZGVyc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFBhdGggdG8gdGhlbWUgcGFja2FnZXMgKi9cbi8qIFBhdGggdG8gc2l0ZSBvdmVycmlkZSBmb2xkZXIgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBJbXBvcnQgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBJbXBvcnQgRGlyZWN0aXZlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgVGhlbWVcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgU2l0ZSBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0IHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRvcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogUGFja2FnZWQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZG9ycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBDb21wb25lbnQncyBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kb3JzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFNpdGUgdGhlbWUgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgIFVzZXIgR2xvYmFsIFZhcmlhYmxlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIG1hcnNvIGNvbG9ycyAqL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuIENvbXBvbmVudCBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0ICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgUmFpbFxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVsZW1lbnRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgVmFyaWF0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogQ2xvc2UgKi9cbi8qIERpdmlkaW5nICovXG4vKiBQYWNrYWdlZCBUaGVtZSAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFJhaWxcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbGVtZW50XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFZhcmlhdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIENsb3NlICovXG4vKiBEaXZpZGluZyAqL1xuLyogU2l0ZSBUaGVtZSAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICBVc2VyIFZhcmlhYmxlIE92ZXJyaWRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgTWl4LWluc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgT3ZlcnJpZGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEVuZCBDb25maWcgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgUmFpbHNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4udWkucmFpbCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwJTtcbiAgd2lkdGg6IDMwMHB4O1xuICBoZWlnaHQ6IDEwMCU7XG59XG4udWkubGVmdC5yYWlsIHtcbiAgbGVmdDogYXV0bztcbiAgcmlnaHQ6IDEwMCU7XG4gIHBhZGRpbmc6IDBlbSAycmVtIDBlbSAwZW07XG4gIG1hcmdpbjogMGVtIDJyZW0gMGVtIDBlbTtcbn1cbi51aS5yaWdodC5yYWlsIHtcbiAgbGVmdDogMTAwJTtcbiAgcmlnaHQ6IGF1dG87XG4gIHBhZGRpbmc6IDBlbSAwZW0gMGVtIDJyZW07XG4gIG1hcmdpbjogMGVtIDBlbSAwZW0gMnJlbTtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFZhcmlhdGlvbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIEludGVybmFsXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmxlZnQuaW50ZXJuYWwucmFpbCB7XG4gIGxlZnQ6IDAlO1xuICByaWdodDogYXV0bztcbiAgcGFkZGluZzogMGVtIDBlbSAwZW0gMnJlbTtcbiAgbWFyZ2luOiAwZW0gMGVtIDBlbSAycmVtO1xufVxuLnVpLnJpZ2h0LmludGVybmFsLnJhaWwge1xuICBsZWZ0OiBhdXRvO1xuICByaWdodDogMCU7XG4gIHBhZGRpbmc6IDBlbSAycmVtIDBlbSAwZW07XG4gIG1hcmdpbjogMGVtIDJyZW0gMGVtIDBlbTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBEaXZpZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5kaXZpZGluZy5yYWlsIHtcbiAgd2lkdGg6IDMwMi41cHg7XG59XG4udWkubGVmdC5kaXZpZGluZy5yYWlsIHtcbiAgcGFkZGluZzogMGVtIDIuNXJlbSAwZW0gMGVtO1xuICBtYXJnaW46IDBlbSAyLjVyZW0gMGVtIDBlbTtcbiAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgcmdiYSgzNCwgMzYsIDM4LCAwLjE1KTtcbn1cbi51aS5yaWdodC5kaXZpZGluZy5yYWlsIHtcbiAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpO1xuICBwYWRkaW5nOiAwZW0gMGVtIDBlbSAyLjVyZW07XG4gIG1hcmdpbjogMGVtIDBlbSAwZW0gMi41cmVtO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgIERpc3RhbmNlXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmNsb3NlLnJhaWwge1xuICB3aWR0aDogY2FsYygzMDBweCArIDFlbSk7XG59XG4udWkuY2xvc2UubGVmdC5yYWlsIHtcbiAgcGFkZGluZzogMGVtIDFlbSAwZW0gMGVtO1xuICBtYXJnaW46IDBlbSAxZW0gMGVtIDBlbTtcbn1cbi51aS5jbG9zZS5yaWdodC5yYWlsIHtcbiAgcGFkZGluZzogMGVtIDBlbSAwZW0gMWVtO1xuICBtYXJnaW46IDBlbSAwZW0gMGVtIDFlbTtcbn1cbi51aS52ZXJ5LmNsb3NlLnJhaWwge1xuICB3aWR0aDogY2FsYygzMDBweCArIDAuNWVtKTtcbn1cbi51aS52ZXJ5LmNsb3NlLmxlZnQucmFpbCB7XG4gIHBhZGRpbmc6IDBlbSAwLjVlbSAwZW0gMGVtO1xuICBtYXJnaW46IDBlbSAwLjVlbSAwZW0gMGVtO1xufVxuLnVpLnZlcnkuY2xvc2UucmlnaHQucmFpbCB7XG4gIHBhZGRpbmc6IDBlbSAwZW0gMGVtIDAuNWVtO1xuICBtYXJnaW46IDBlbSAwZW0gMGVtIDAuNWVtO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgIEF0dGFjaGVkXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmF0dGFjaGVkLmxlZnQucmFpbCxcbi51aS5hdHRhY2hlZC5yaWdodC5yYWlsIHtcbiAgcGFkZGluZzogMGVtO1xuICBtYXJnaW46IDBlbTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgU2l6aW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLm1pbmkucmFpbCB7XG4gIGZvbnQtc2l6ZTogMC44cmVtO1xufVxuLnVpLnRpbnkucmFpbCB7XG4gIGZvbnQtc2l6ZTogMC45cmVtO1xufVxuLnVpLnNtYWxsLnJhaWwge1xuICBmb250LXNpemU6IDAuOXJlbTtcbn1cbi51aS5yYWlsIHtcbiAgZm9udC1zaXplOiAxcmVtO1xufVxuLnVpLmxhcmdlLnJhaWwge1xuICBmb250LXNpemU6IDEuMXJlbTtcbn1cbi51aS5iaWcucmFpbCB7XG4gIGZvbnQtc2l6ZTogMS4zcmVtO1xufVxuLnVpLmh1Z2UucmFpbCB7XG4gIGZvbnQtc2l6ZTogMS40cmVtO1xufVxuLnVpLm1hc3NpdmUucmFpbCB7XG4gIGZvbnQtc2l6ZTogMS43cmVtO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFRoZW1lIE92ZXJyaWRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIE92ZXJyaWRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIVxuICogIyBTZW1hbnRpYyBVSSAtIFJldmVhbFxuICogaHR0cDovL2dpdGh1Yi5jb20vc2VtYW50aWMtb3JnL3NlbWFudGljLXVpL1xuICpcbiAqXG4gKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2VcbiAqIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVRcbiAqXG4gKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qXG5cbuKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVlyAg4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4pWXICAg4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWXXG7ilZrilZDilZDilojilojilZTilZDilZDilZ3ilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKWiOKWiOKVlyDilojilojilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilZTilZDilZDilZDilZDilZ1cbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4pWU4paI4paI4paI4paI4pWU4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilojilojilojilojilojilZdcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVlOKVkOKVkOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4paI4paI4pWR4pWa4paI4paI4pWU4pWd4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilZrilZDilZDilZDilZDilojilojilZFcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWRIOKVmuKVkOKVnSDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZFcbiAgIOKVmuKVkOKVnSAgIOKVmuKVkOKVnSAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWdICAgICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ1cblxuKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIFRoZW1lIFNlbGVjdGlvblxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFRvIG92ZXJyaWRlIGEgdGhlbWUgZm9yIGFuIGluZGl2aWR1YWwgZWxlbWVudFxuICAgc3BlY2lmeSB0aGVtZSBuYW1lIGJlbG93XG4qL1xuLyogR2xvYmFsICovXG4vKiBFbGVtZW50cyAqL1xuLyogQ29sbGVjdGlvbnMgKi9cbi8qIE1vZHVsZXMgKi9cbi8qIFZpZXdzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgRm9sZGVyc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFBhdGggdG8gdGhlbWUgcGFja2FnZXMgKi9cbi8qIFBhdGggdG8gc2l0ZSBvdmVycmlkZSBmb2xkZXIgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBJbXBvcnQgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBJbXBvcnQgRGlyZWN0aXZlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgVGhlbWVcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgU2l0ZSBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0IHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRvcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogUGFja2FnZWQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZG9ycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBDb21wb25lbnQncyBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kb3JzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFNpdGUgdGhlbWUgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgIFVzZXIgR2xvYmFsIFZhcmlhYmxlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIG1hcnNvIGNvbG9ycyAqL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuIENvbXBvbmVudCBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0ICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgUmV2ZWFsXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogVHlwZXMgKi9cbi8qIFBhY2thZ2VkIFRoZW1lICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgUmV2ZWFsXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogVHlwZXMgKi9cbi8qIFNpdGUgVGhlbWUgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgVXNlciBWYXJpYWJsZSBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIE1peC1pbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE92ZXJyaWRlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBFbmQgQ29uZmlnICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgUmV2ZWFsXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLnVpLnJldmVhbCB7XG4gIGRpc3BsYXk6IGluaGVyaXQ7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZSAhaW1wb3J0YW50O1xuICBmb250LXNpemU6IDBlbSAhaW1wb3J0YW50O1xufVxuLnVpLnJldmVhbCA+IC52aXNpYmxlLmNvbnRlbnQge1xuICBwb3NpdGlvbjogYWJzb2x1dGUgIWltcG9ydGFudDtcbiAgdG9wOiAwZW0gIWltcG9ydGFudDtcbiAgbGVmdDogMGVtICFpbXBvcnRhbnQ7XG4gIHotaW5kZXg6IDMgIWltcG9ydGFudDtcbiAgdHJhbnNpdGlvbjogYWxsIDAuNXMgZWFzZSAwLjFzO1xufVxuLnVpLnJldmVhbCA+IC5oaWRkZW4uY29udGVudCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZSAhaW1wb3J0YW50O1xuICB6LWluZGV4OiAyICFpbXBvcnRhbnQ7XG59XG4vKiBNYWtlIHN1cmUgaG92ZXJlZCBlbGVtZW50IGlzIG9uIHRvcCBvZiBvdGhlciByZXZlYWwgKi9cbi51aS5hY3RpdmUucmV2ZWFsIC52aXNpYmxlLmNvbnRlbnQsXG4udWkucmV2ZWFsOmhvdmVyIC52aXNpYmxlLmNvbnRlbnQge1xuICB6LWluZGV4OiA0ICFpbXBvcnRhbnQ7XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgICBUeXBlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNsaWRlXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLnNsaWRlLnJldmVhbCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZSAhaW1wb3J0YW50O1xuICBvdmVyZmxvdzogaGlkZGVuICFpbXBvcnRhbnQ7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG4udWkuc2xpZGUucmV2ZWFsID4gLmNvbnRlbnQge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDEwMCU7XG4gIGZsb2F0OiBsZWZ0O1xuICBtYXJnaW46IDBlbTtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuNXMgZWFzZSAwLjFzO1xufVxuLnVpLnNsaWRlLnJldmVhbCA+IC52aXNpYmxlLmNvbnRlbnQge1xuICBwb3NpdGlvbjogcmVsYXRpdmUgIWltcG9ydGFudDtcbn1cbi51aS5zbGlkZS5yZXZlYWwgPiAuaGlkZGVuLmNvbnRlbnQge1xuICBwb3NpdGlvbjogYWJzb2x1dGUgIWltcG9ydGFudDtcbiAgbGVmdDogMCUgIWltcG9ydGFudDtcbiAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDEwMCUpICFpbXBvcnRhbnQ7XG59XG4udWkuc2xpZGUuYWN0aXZlLnJldmVhbCA+IC52aXNpYmxlLmNvbnRlbnQsXG4udWkuc2xpZGUucmV2ZWFsOmhvdmVyID4gLnZpc2libGUuY29udGVudCB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTAwJSkgIWltcG9ydGFudDtcbn1cbi51aS5zbGlkZS5hY3RpdmUucmV2ZWFsID4gLmhpZGRlbi5jb250ZW50LFxuLnVpLnNsaWRlLnJldmVhbDpob3ZlciA+IC5oaWRkZW4uY29udGVudCB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwJSkgIWltcG9ydGFudDtcbn1cbi51aS5zbGlkZS5yaWdodC5yZXZlYWwgPiAudmlzaWJsZS5jb250ZW50IHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDAlKSAhaW1wb3J0YW50O1xufVxuLnVpLnNsaWRlLnJpZ2h0LnJldmVhbCA+IC5oaWRkZW4uY29udGVudCB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTAwJSkgIWltcG9ydGFudDtcbn1cbi51aS5zbGlkZS5yaWdodC5hY3RpdmUucmV2ZWFsID4gLnZpc2libGUuY29udGVudCxcbi51aS5zbGlkZS5yaWdodC5yZXZlYWw6aG92ZXIgPiAudmlzaWJsZS5jb250ZW50IHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDEwMCUpICFpbXBvcnRhbnQ7XG59XG4udWkuc2xpZGUucmlnaHQuYWN0aXZlLnJldmVhbCA+IC5oaWRkZW4uY29udGVudCxcbi51aS5zbGlkZS5yaWdodC5yZXZlYWw6aG92ZXIgPiAuaGlkZGVuLmNvbnRlbnQge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCUpICFpbXBvcnRhbnQ7XG59XG4udWkuc2xpZGUudXAucmV2ZWFsID4gLmhpZGRlbi5jb250ZW50IHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDEwMCUpICFpbXBvcnRhbnQ7XG59XG4udWkuc2xpZGUudXAuYWN0aXZlLnJldmVhbCA+IC52aXNpYmxlLmNvbnRlbnQsXG4udWkuc2xpZGUudXAucmV2ZWFsOmhvdmVyID4gLnZpc2libGUuY29udGVudCB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTAwJSkgIWltcG9ydGFudDtcbn1cbi51aS5zbGlkZS51cC5hY3RpdmUucmV2ZWFsID4gLmhpZGRlbi5jb250ZW50LFxuLnVpLnNsaWRlLnVwLnJldmVhbDpob3ZlciA+IC5oaWRkZW4uY29udGVudCB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwJSkgIWltcG9ydGFudDtcbn1cbi51aS5zbGlkZS5kb3duLnJldmVhbCA+IC5oaWRkZW4uY29udGVudCB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTAwJSkgIWltcG9ydGFudDtcbn1cbi51aS5zbGlkZS5kb3duLmFjdGl2ZS5yZXZlYWwgPiAudmlzaWJsZS5jb250ZW50LFxuLnVpLnNsaWRlLmRvd24ucmV2ZWFsOmhvdmVyID4gLnZpc2libGUuY29udGVudCB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxMDAlKSAhaW1wb3J0YW50O1xufVxuLnVpLnNsaWRlLmRvd24uYWN0aXZlLnJldmVhbCA+IC5oaWRkZW4uY29udGVudCxcbi51aS5zbGlkZS5kb3duLnJldmVhbDpob3ZlciA+IC5oaWRkZW4uY29udGVudCB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwJSkgIWltcG9ydGFudDtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgIEZhZGVcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuZmFkZS5yZXZlYWwgPiAudmlzaWJsZS5jb250ZW50IHtcbiAgb3BhY2l0eTogMTtcbn1cbi51aS5mYWRlLmFjdGl2ZS5yZXZlYWwgPiAudmlzaWJsZS5jb250ZW50LFxuLnVpLmZhZGUucmV2ZWFsOmhvdmVyID4gLnZpc2libGUuY29udGVudCB7XG4gIG9wYWNpdHk6IDA7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgICBNb3ZlXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLm1vdmUucmV2ZWFsIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlICFpbXBvcnRhbnQ7XG4gIG92ZXJmbG93OiBoaWRkZW4gIWltcG9ydGFudDtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cbi51aS5tb3ZlLnJldmVhbCA+IC5jb250ZW50IHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZsb2F0OiBsZWZ0O1xuICBtYXJnaW46IDBlbTtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuNXMgY3ViaWMtYmV6aWVyKDAuMTc1LCAwLjg4NSwgMC4zMiwgMSkgMC4xcztcbn1cbi51aS5tb3ZlLnJldmVhbCA+IC52aXNpYmxlLmNvbnRlbnQge1xuICBwb3NpdGlvbjogcmVsYXRpdmUgIWltcG9ydGFudDtcbn1cbi51aS5tb3ZlLnJldmVhbCA+IC5oaWRkZW4uY29udGVudCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZSAhaW1wb3J0YW50O1xuICBsZWZ0OiAwJSAhaW1wb3J0YW50O1xuICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xufVxuLnVpLm1vdmUuYWN0aXZlLnJldmVhbCA+IC52aXNpYmxlLmNvbnRlbnQsXG4udWkubW92ZS5yZXZlYWw6aG92ZXIgPiAudmlzaWJsZS5jb250ZW50IHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xMDAlKSAhaW1wb3J0YW50O1xufVxuLnVpLm1vdmUucmlnaHQuYWN0aXZlLnJldmVhbCA+IC52aXNpYmxlLmNvbnRlbnQsXG4udWkubW92ZS5yaWdodC5yZXZlYWw6aG92ZXIgPiAudmlzaWJsZS5jb250ZW50IHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDEwMCUpICFpbXBvcnRhbnQ7XG59XG4udWkubW92ZS51cC5hY3RpdmUucmV2ZWFsID4gLnZpc2libGUuY29udGVudCxcbi51aS5tb3ZlLnVwLnJldmVhbDpob3ZlciA+IC52aXNpYmxlLmNvbnRlbnQge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEwMCUpICFpbXBvcnRhbnQ7XG59XG4udWkubW92ZS5kb3duLmFjdGl2ZS5yZXZlYWwgPiAudmlzaWJsZS5jb250ZW50LFxuLnVpLm1vdmUuZG93bi5yZXZlYWw6aG92ZXIgPiAudmlzaWJsZS5jb250ZW50IHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDEwMCUpICFpbXBvcnRhbnQ7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIFJvdGF0ZVxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5yb3RhdGUucmV2ZWFsID4gLnZpc2libGUuY29udGVudCB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDAuNXM7XG4gIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xufVxuLnVpLnJvdGF0ZS5yZXZlYWwgPiAudmlzaWJsZS5jb250ZW50LFxuLnVpLnJvdGF0ZS5yaWdodC5yZXZlYWwgPiAudmlzaWJsZS5jb250ZW50IHtcbiAgdHJhbnNmb3JtLW9yaWdpbjogYm90dG9tIHJpZ2h0O1xufVxuLnVpLnJvdGF0ZS5hY3RpdmUucmV2ZWFsID4gLnZpc2libGUuY29udGVudCxcbi51aS5yb3RhdGUucmV2ZWFsOmhvdmVyID4gLnZpc2libGUuY29udGVudCxcbi51aS5yb3RhdGUucmlnaHQuYWN0aXZlLnJldmVhbCA+IC52aXNpYmxlLmNvbnRlbnQsXG4udWkucm90YXRlLnJpZ2h0LnJldmVhbDpob3ZlciA+IC52aXNpYmxlLmNvbnRlbnQge1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgxMTBkZWcpO1xufVxuLnVpLnJvdGF0ZS5sZWZ0LnJldmVhbCA+IC52aXNpYmxlLmNvbnRlbnQge1xuICB0cmFuc2Zvcm0tb3JpZ2luOiBib3R0b20gbGVmdDtcbn1cbi51aS5yb3RhdGUubGVmdC5hY3RpdmUucmV2ZWFsID4gLnZpc2libGUuY29udGVudCxcbi51aS5yb3RhdGUubGVmdC5yZXZlYWw6aG92ZXIgPiAudmlzaWJsZS5jb250ZW50IHtcbiAgdHJhbnNmb3JtOiByb3RhdGUoLTExMGRlZyk7XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4udWkuZGlzYWJsZWQucmV2ZWFsOmhvdmVyID4gLnZpc2libGUudmlzaWJsZS5jb250ZW50IHtcbiAgcG9zaXRpb246IHN0YXRpYyAhaW1wb3J0YW50O1xuICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICBvcGFjaXR5OiAxICFpbXBvcnRhbnQ7XG4gIHRvcDogMCAhaW1wb3J0YW50O1xuICBsZWZ0OiAwICFpbXBvcnRhbnQ7XG4gIHJpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG4gIGJvdHRvbTogYXV0byAhaW1wb3J0YW50O1xuICB0cmFuc2Zvcm06IG5vbmUgIWltcG9ydGFudDtcbn1cbi51aS5kaXNhYmxlZC5yZXZlYWw6aG92ZXIgPiAuaGlkZGVuLmhpZGRlbi5jb250ZW50IHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgVmFyaWF0aW9uc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgVmlzaWJsZVxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS52aXNpYmxlLnJldmVhbCB7XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBJbnN0YW50XG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmluc3RhbnQucmV2ZWFsID4gLmNvbnRlbnQge1xuICB0cmFuc2l0aW9uLWRlbGF5OiAwcyAhaW1wb3J0YW50O1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBTaXppbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkucmV2ZWFsID4gLmNvbnRlbnQge1xuICBmb250LXNpemU6IDFyZW0gIWltcG9ydGFudDtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBUaGVtZSBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiFcbiAqICMgU2VtYW50aWMgVUkgLSBTZWdtZW50XG4gKiBodHRwOi8vZ2l0aHViLmNvbS9zZW1hbnRpYy1vcmcvc2VtYW50aWMtdWkvXG4gKlxuICpcbiAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZVxuICogaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVFxuICpcbiAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLypcblxu4paI4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWXICDilojilojilZfilojilojilojilojilojilojilojilZfilojilojilojilZcgICDilojilojilojilZfilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZdcbuKVmuKVkOKVkOKWiOKWiOKVlOKVkOKVkOKVneKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWd4paI4paI4paI4paI4pWXIOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVnVxuICAg4paI4paI4pWRICAg4paI4paI4paI4paI4paI4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilZTilojilojilojilojilZTilojilojilZHilojilojilojilojilojilZcgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl1xuICAg4paI4paI4pWRICAg4paI4paI4pWU4pWQ4pWQ4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilojilojilZHilZrilojilojilZTilZ3ilojilojilZHilojilojilZTilZDilZDilZ0gIOKVmuKVkOKVkOKVkOKVkOKWiOKWiOKVkVxuICAg4paI4paI4pWRICAg4paI4paI4pWRICDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilZEg4pWa4pWQ4pWdIOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkVxuICAg4pWa4pWQ4pWdICAg4pWa4pWQ4pWdICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZ0gICAgIOKVmuKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVnVxuXG4qL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgVGhlbWUgU2VsZWN0aW9uXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogVG8gb3ZlcnJpZGUgYSB0aGVtZSBmb3IgYW4gaW5kaXZpZHVhbCBlbGVtZW50XG4gICBzcGVjaWZ5IHRoZW1lIG5hbWUgYmVsb3dcbiovXG4vKiBHbG9iYWwgKi9cbi8qIEVsZW1lbnRzICovXG4vKiBDb2xsZWN0aW9ucyAqL1xuLyogTW9kdWxlcyAqL1xuLyogVmlld3MgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBGb2xkZXJzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogUGF0aCB0byB0aGVtZSBwYWNrYWdlcyAqL1xuLyogUGF0aCB0byBzaXRlIG92ZXJyaWRlIGZvbGRlciAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIEltcG9ydCBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIEltcG9ydCBEaXJlY3RpdmVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBUaGVtZVxuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICBTaXRlIFZhcmlhYmxlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERlZmF1bHQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZG9ycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBQYWNrYWdlZCBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kb3JzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIENvbXBvbmVudCdzIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRvcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogU2l0ZSB0aGVtZSBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgVXNlciBHbG9iYWwgVmFyaWFibGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogbWFyc28gY29sb3JzICovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gQ29tcG9uZW50IFZhcmlhYmxlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERlZmF1bHQgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBTZWdtZW50XG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRWxlbWVudFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgR3JvdXBcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIENvdXBsaW5nXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQYWdlIEdyaWQgU2VnbWVudCAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIExvYWRpbmcgRGltbWVyICovXG4vKiBMb2FkaW5nIFNwaW5uZXIgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBWYXJpYXRpb25zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogUGlsZWQgKi9cbi8qIENpcmN1bGFyICovXG4vKiBTdGFja2VkICovXG4vKiBSYWlzZWQgKi9cbi8qIFBhZGRlZCAqL1xuLyogQXR0YWNoZWQgKi9cbi8qIEludmVydGVkICovXG4vKiBGbG9hdGVkICovXG4vKiBCYXNpYyAqL1xuLyogQ29sb3JzICovXG4vKiBPcmRpbmFsaXR5ICovXG4vKiBQYWNrYWdlZCBUaGVtZSAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFNlZ21lbnRcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbGVtZW50XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBHcm91cFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQ291cGxpbmdcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBhZ2UgR3JpZCBTZWdtZW50ICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogTG9hZGluZyBEaW1tZXIgKi9cbi8qIExvYWRpbmcgU3Bpbm5lciAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFZhcmlhdGlvbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBQaWxlZCAqL1xuLyogQ2lyY3VsYXIgKi9cbi8qIFN0YWNrZWQgKi9cbi8qIFJhaXNlZCAqL1xuLyogUGFkZGVkICovXG4vKiBBdHRhY2hlZCAqL1xuLyogSW52ZXJ0ZWQgKi9cbi8qIEZsb2F0ZWQgKi9cbi8qIEJhc2ljICovXG4vKiBDb2xvcnMgKi9cbi8qIE9yZGluYWxpdHkgKi9cbi8qIFNpdGUgVGhlbWUgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgVXNlciBWYXJpYWJsZSBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIE1peC1pbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE92ZXJyaWRlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBFbmQgQ29uZmlnICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgU2VnbWVudFxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi51aS5zZWdtZW50IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICBib3gtc2hhZG93OiAwcHggMXB4IDJweCAwIHJnYmEoMzQsIDM2LCAzOCwgMC4xNSk7XG4gIG1hcmdpbjogMXJlbSAwZW07XG4gIHBhZGRpbmc6IDFlbSAxZW07XG4gIGJvcmRlci1yYWRpdXM6IDAuNHJlbTtcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgzNCwgMzYsIDM4LCAwLjE1KTtcbn1cbi51aS5zZWdtZW50OmZpcnN0LWNoaWxkIHtcbiAgbWFyZ2luLXRvcDogMGVtO1xufVxuLnVpLnNlZ21lbnQ6bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1ib3R0b206IDBlbTtcbn1cbi8qIFZlcnRpY2FsICovXG4udWkudmVydGljYWwuc2VnbWVudCB7XG4gIG1hcmdpbjogMGVtO1xuICBwYWRkaW5nLWxlZnQ6IDBlbTtcbiAgcGFkZGluZy1yaWdodDogMGVtO1xuICBiYWNrZ3JvdW5kOiBub25lIHRyYW5zcGFyZW50O1xuICBib3JkZXItcmFkaXVzOiAwcHg7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG4gIGJvcmRlcjogbm9uZTtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYmEoMzQsIDM2LCAzOCwgMC4xNSk7XG59XG4udWkudmVydGljYWwuc2VnbWVudDpsYXN0LWNoaWxkIHtcbiAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIExvb3NlIENvdXBsaW5nXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBIZWFkZXIgKi9cbi51aS5pbnZlcnRlZC5zZWdtZW50ID4gLnVpLmhlYWRlciB7XG4gIGNvbG9yOiAjZmZmZmZmO1xufVxuLyogTGFiZWwgKi9cbi51aVtjbGFzcyo9XCJib3R0b20gYXR0YWNoZWRcIl0uc2VnbWVudCA+IFtjbGFzcyo9XCJ0b3AgYXR0YWNoZWRcIl0ubGFiZWwge1xuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwZW07XG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwZW07XG59XG4udWlbY2xhc3MqPVwidG9wIGF0dGFjaGVkXCJdLnNlZ21lbnQgPiBbY2xhc3MqPVwiYm90dG9tIGF0dGFjaGVkXCJdLmxhYmVsIHtcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMGVtO1xuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMGVtO1xufVxuLnVpLmF0dGFjaGVkLnNlZ21lbnQ6bm90KC50b3ApOm5vdCguYm90dG9tKSA+IFtjbGFzcyo9XCJ0b3AgYXR0YWNoZWRcIl0ubGFiZWwge1xuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwZW07XG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwZW07XG59XG4udWkuYXR0YWNoZWQuc2VnbWVudDpub3QoLnRvcCk6bm90KC5ib3R0b20pID4gW2NsYXNzKj1cImJvdHRvbSBhdHRhY2hlZFwiXS5sYWJlbCB7XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDBlbTtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDBlbTtcbn1cbi8qIEdyaWQgKi9cbi51aS5wYWdlLmdyaWQuc2VnbWVudCxcbi51aS5ncmlkID4gLnJvdyA+IC51aS5zZWdtZW50LmNvbHVtbixcbi51aS5ncmlkID4gLnVpLnNlZ21lbnQuY29sdW1uIHtcbiAgcGFkZGluZy10b3A6IDJlbTtcbiAgcGFkZGluZy1ib3R0b206IDJlbTtcbn1cbi51aS5ncmlkLnNlZ21lbnQge1xuICBtYXJnaW46IDFyZW0gMGVtO1xuICBib3JkZXItcmFkaXVzOiAwLjRyZW07XG59XG4vKiBUYWJsZSAqL1xuLnVpLmJhc2ljLnRhYmxlLnNlZ21lbnQge1xuICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpO1xuICBib3gtc2hhZG93OiAwcHggMXB4IDJweCAwIHJnYmEoMzQsIDM2LCAzOCwgMC4xNSk7XG59XG4udWlbY2xhc3MqPVwidmVyeSBiYXNpY1wiXS50YWJsZS5zZWdtZW50IHtcbiAgcGFkZGluZzogMWVtIDFlbTtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgVHlwZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGlsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5waWxlZC5zZWdtZW50cyxcbi51aS5waWxlZC5zZWdtZW50IHtcbiAgbWFyZ2luOiAzZW0gMGVtO1xuICBib3gtc2hhZG93OiAnJztcbiAgei1pbmRleDogYXV0bztcbn1cbi51aS5waWxlZC5zZWdtZW50OmZpcnN0LWNoaWxkIHtcbiAgbWFyZ2luLXRvcDogMGVtO1xufVxuLnVpLnBpbGVkLnNlZ21lbnQ6bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1ib3R0b206IDBlbTtcbn1cbi51aS5waWxlZC5zZWdtZW50czphZnRlcixcbi51aS5waWxlZC5zZWdtZW50czpiZWZvcmUsXG4udWkucGlsZWQuc2VnbWVudDphZnRlcixcbi51aS5waWxlZC5zZWdtZW50OmJlZm9yZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG4gIHZpc2liaWxpdHk6IHZpc2libGU7XG4gIGNvbnRlbnQ6ICcnO1xuICBkaXNwbGF5OiBibG9jaztcbiAgaGVpZ2h0OiAxMDAlO1xuICBsZWZ0OiAwcHg7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IDEwMCU7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMzQsIDM2LCAzOCwgMC4xNSk7XG4gIGJveC1zaGFkb3c6ICcnO1xufVxuLnVpLnBpbGVkLnNlZ21lbnRzOmJlZm9yZSxcbi51aS5waWxlZC5zZWdtZW50OmJlZm9yZSB7XG4gIHRyYW5zZm9ybTogcm90YXRlKC0xLjJkZWcpO1xuICB0b3A6IDA7XG4gIHotaW5kZXg6IC0yO1xufVxuLnVpLnBpbGVkLnNlZ21lbnRzOmFmdGVyLFxuLnVpLnBpbGVkLnNlZ21lbnQ6YWZ0ZXIge1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgxLjJkZWcpO1xuICB0b3A6IDA7XG4gIHotaW5kZXg6IC0xO1xufVxuLyogUGlsZWQgQXR0YWNoZWQgKi9cbi51aVtjbGFzcyo9XCJ0b3AgYXR0YWNoZWRcIl0ucGlsZWQuc2VnbWVudCB7XG4gIG1hcmdpbi10b3A6IDNlbTtcbiAgbWFyZ2luLWJvdHRvbTogMGVtO1xufVxuLnVpLnBpbGVkLnNlZ21lbnRbY2xhc3MqPVwidG9wIGF0dGFjaGVkXCJdOmZpcnN0LWNoaWxkIHtcbiAgbWFyZ2luLXRvcDogMGVtO1xufVxuLnVpLnBpbGVkLnNlZ21lbnRbY2xhc3MqPVwiYm90dG9tIGF0dGFjaGVkXCJdIHtcbiAgbWFyZ2luLXRvcDogMGVtO1xuICBtYXJnaW4tYm90dG9tOiAzZW07XG59XG4udWkucGlsZWQuc2VnbWVudFtjbGFzcyo9XCJib3R0b20gYXR0YWNoZWRcIl06bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1ib3R0b206IDBlbTtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIFN0YWNrZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5zdGFja2VkLnNlZ21lbnQge1xuICBwYWRkaW5nLWJvdHRvbTogMS40ZW07XG59XG4udWkuc3RhY2tlZC5zZWdtZW50czpiZWZvcmUsXG4udWkuc3RhY2tlZC5zZWdtZW50czphZnRlcixcbi51aS5zdGFja2VkLnNlZ21lbnQ6YmVmb3JlLFxuLnVpLnN0YWNrZWQuc2VnbWVudDphZnRlciB7XG4gIGNvbnRlbnQ6ICcnO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJvdHRvbTogLTNweDtcbiAgbGVmdDogMCU7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMDMpO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiA2cHg7XG4gIHZpc2liaWxpdHk6IHZpc2libGU7XG59XG4udWkuc3RhY2tlZC5zZWdtZW50czpiZWZvcmUsXG4udWkuc3RhY2tlZC5zZWdtZW50OmJlZm9yZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4vKiBBZGQgYWRkaXRpb25hbCBwYWdlICovXG4udWkudGFsbC5zdGFja2VkLnNlZ21lbnRzOmJlZm9yZSxcbi51aS50YWxsLnN0YWNrZWQuc2VnbWVudDpiZWZvcmUge1xuICBkaXNwbGF5OiBibG9jaztcbiAgYm90dG9tOiAwcHg7XG59XG4vKiBJbnZlcnRlZCAqL1xuLnVpLnN0YWNrZWQuaW52ZXJ0ZWQuc2VnbWVudHM6YmVmb3JlLFxuLnVpLnN0YWNrZWQuaW52ZXJ0ZWQuc2VnbWVudHM6YWZ0ZXIsXG4udWkuc3RhY2tlZC5pbnZlcnRlZC5zZWdtZW50OmJlZm9yZSxcbi51aS5zdGFja2VkLmludmVydGVkLnNlZ21lbnQ6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMDMpO1xuICBib3JkZXItdG9wOiAxcHggc29saWQgcmdiYSgzNCwgMzYsIDM4LCAwLjM1KTtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIFBhZGRlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLnBhZGRlZC5zZWdtZW50IHtcbiAgcGFkZGluZzogMS41ZW07XG59XG4udWlbY2xhc3MqPVwidmVyeSBwYWRkZWRcIl0uc2VnbWVudCB7XG4gIHBhZGRpbmc6IDNlbTtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIENvbXBhY3Rcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5jb21wYWN0LnNlZ21lbnQge1xuICBkaXNwbGF5OiB0YWJsZTtcbn1cbi8qIENvbXBhY3QgR3JvdXAgKi9cbi51aS5jb21wYWN0LnNlZ21lbnRzIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG59XG4udWkuY29tcGFjdC5zZWdtZW50cyAuc2VnbWVudCxcbi51aS5zZWdtZW50cyAuY29tcGFjdC5zZWdtZW50IHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZsZXg6IDAgMSBhdXRvO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQ2lyY3VsYXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5jaXJjdWxhci5zZWdtZW50IHtcbiAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgcGFkZGluZzogMmVtO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIGJvcmRlci1yYWRpdXM6IDUwMGVtO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgUmFpc2VkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkucmFpc2VkLnNlZ21lbnRzLFxuLnVpLnJhaXNlZC5zZWdtZW50IHtcbiAgYm94LXNoYWRvdzogMHB4IDJweCA0cHggMHB4IHJnYmEoMzQsIDM2LCAzOCwgMC4xMiksIDBweCAycHggMTBweCAwcHggcmdiYSgzNCwgMzYsIDM4LCAwLjE1KTtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBHcm91cHNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBHcm91cCAqL1xuLnVpLnNlZ21lbnRzIHtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtYXJnaW46IDFyZW0gMGVtO1xuICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpO1xuICBib3gtc2hhZG93OiAwcHggMXB4IDJweCAwIHJnYmEoMzQsIDM2LCAzOCwgMC4xNSk7XG4gIGJvcmRlci1yYWRpdXM6IDAuNHJlbTtcbn1cbi51aS5zZWdtZW50czpmaXJzdC1jaGlsZCB7XG4gIG1hcmdpbi10b3A6IDBlbTtcbn1cbi51aS5zZWdtZW50czpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLWJvdHRvbTogMGVtO1xufVxuLyogTmVzdGVkIFNlZ21lbnQgKi9cbi51aS5zZWdtZW50cyA+IC5zZWdtZW50IHtcbiAgdG9wOiAwcHg7XG4gIGJvdHRvbTogMHB4O1xuICBib3JkZXItcmFkaXVzOiAwcHg7XG4gIG1hcmdpbjogMGVtO1xuICB3aWR0aDogYXV0bztcbiAgYm94LXNoYWRvdzogbm9uZTtcbiAgYm9yZGVyOiBub25lO1xuICBib3JkZXItdG9wOiAxcHggc29saWQgcmdiYSgzNCwgMzYsIDM4LCAwLjE1KTtcbn1cbi51aS5zZWdtZW50czpub3QoLmhvcml6b250YWwpID4gLnNlZ21lbnQ6Zmlyc3QtY2hpbGQge1xuICBib3JkZXItdG9wOiBub25lO1xuICBtYXJnaW4tdG9wOiAwZW07XG4gIGJvdHRvbTogMHB4O1xuICBtYXJnaW4tYm90dG9tOiAwZW07XG4gIHRvcDogMHB4O1xuICBib3JkZXItcmFkaXVzOiAwLjRyZW0gMC40cmVtIDBlbSAwZW07XG59XG4vKiBCb3R0b20gKi9cbi51aS5zZWdtZW50czpub3QoLmhvcml6b250YWwpID4gLnNlZ21lbnQ6bGFzdC1jaGlsZCB7XG4gIHRvcDogMHB4O1xuICBib3R0b206IDBweDtcbiAgbWFyZ2luLXRvcDogMGVtO1xuICBtYXJnaW4tYm90dG9tOiAwZW07XG4gIGJveC1zaGFkb3c6IDBweCAxcHggMnB4IDAgcmdiYSgzNCwgMzYsIDM4LCAwLjE1KSwgbm9uZTtcbiAgYm9yZGVyLXJhZGl1czogMGVtIDBlbSAwLjRyZW0gMC40cmVtO1xufVxuLyogT25seSAqL1xuLnVpLnNlZ21lbnRzOm5vdCguaG9yaXpvbnRhbCkgPiAuc2VnbWVudDpvbmx5LWNoaWxkIHtcbiAgYm9yZGVyLXJhZGl1czogMC40cmVtO1xufVxuLyogTmVzdGVkIEdyb3VwICovXG4udWkuc2VnbWVudHMgPiAudWkuc2VnbWVudHMge1xuICBib3JkZXItdG9wOiAxcHggc29saWQgcmdiYSgzNCwgMzYsIDM4LCAwLjE1KTtcbiAgbWFyZ2luOiAxcmVtIDFyZW07XG59XG4udWkuc2VnbWVudHMgPiAuc2VnbWVudHM6Zmlyc3QtY2hpbGQge1xuICBib3JkZXItdG9wOiBub25lO1xufVxuLnVpLnNlZ21lbnRzID4gLnNlZ21lbnQgKyAuc2VnbWVudHM6bm90KC5ob3Jpem9udGFsKSB7XG4gIG1hcmdpbi10b3A6IDBlbTtcbn1cbi8qIEhvcml6b250YWwgR3JvdXAgKi9cbi51aS5ob3Jpem9udGFsLnNlZ21lbnRzIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDBweDtcbiAgcGFkZGluZzogMGVtO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xuICBib3gtc2hhZG93OiAwcHggMXB4IDJweCAwIHJnYmEoMzQsIDM2LCAzOCwgMC4xNSk7XG4gIG1hcmdpbjogMXJlbSAwZW07XG4gIGJvcmRlci1yYWRpdXM6IDAuNHJlbTtcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgzNCwgMzYsIDM4LCAwLjE1KTtcbn1cbi8qIE5lc3RlZCBIb3Jpem9udGFsIEdyb3VwICovXG4udWkuc2VnbWVudHMgPiAuaG9yaXpvbnRhbC5zZWdtZW50cyB7XG4gIG1hcmdpbjogMGVtO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXJhZGl1czogMHB4O1xuICBib3JkZXI6IG5vbmU7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpO1xufVxuLyogSG9yaXpvbnRhbCBTZWdtZW50ICovXG4udWkuaG9yaXpvbnRhbC5zZWdtZW50cyA+IC5zZWdtZW50IHtcbiAgZmxleDogMSAxIGF1dG87XG4gIC1tcy1mbGV4OiAxIDEgMHB4O1xuICAvKiBTb2x2ZXMgIzI1NTAgTVMgRmxleCAqL1xuICBtYXJnaW46IDBlbTtcbiAgbWluLXdpZHRoOiAwcHg7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3JkZXItcmFkaXVzOiAwcHg7XG4gIGJvcmRlcjogbm9uZTtcbiAgYm94LXNoYWRvdzogbm9uZTtcbiAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpO1xufVxuLyogQm9yZGVyIEZpeGVzICovXG4udWkuc2VnbWVudHMgPiAuaG9yaXpvbnRhbC5zZWdtZW50czpmaXJzdC1jaGlsZCB7XG4gIGJvcmRlci10b3A6IG5vbmU7XG59XG4udWkuaG9yaXpvbnRhbC5zZWdtZW50cyA+IC5zZWdtZW50OmZpcnN0LWNoaWxkIHtcbiAgYm9yZGVyLWxlZnQ6IG5vbmU7XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmRpc2FibGVkLnNlZ21lbnQge1xuICBvcGFjaXR5OiAwLjQ1O1xuICBjb2xvcjogcmdiYSg0MCwgNDAsIDQwLCAwLjMpO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgIExvYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkubG9hZGluZy5zZWdtZW50IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBjdXJzb3I6IGRlZmF1bHQ7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICB0ZXh0LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICBjb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgdHJhbnNpdGlvbjogYWxsIDBzIGxpbmVhcjtcbn1cbi51aS5sb2FkaW5nLnNlZ21lbnQ6YmVmb3JlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBjb250ZW50OiAnJztcbiAgdG9wOiAwJTtcbiAgbGVmdDogMCU7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44KTtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgYm9yZGVyLXJhZGl1czogMC40cmVtO1xuICB6LWluZGV4OiAxMDA7XG59XG4udWkubG9hZGluZy5zZWdtZW50OmFmdGVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBjb250ZW50OiAnJztcbiAgdG9wOiA1MCU7XG4gIGxlZnQ6IDUwJTtcbiAgbWFyZ2luOiAtMS41ZW0gMGVtIDBlbSAtMS41ZW07XG4gIHdpZHRoOiAzZW07XG4gIGhlaWdodDogM2VtO1xuICBhbmltYXRpb246IHNlZ21lbnQtc3BpbiAwLjZzIGxpbmVhcjtcbiAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XG4gIGJvcmRlci1yYWRpdXM6IDUwMHJlbTtcbiAgYm9yZGVyLWNvbG9yOiAjNzY3Njc2IHJnYmEoMCwgMCwgMCwgMC4xKSByZ2JhKDAsIDAsIDAsIDAuMSkgcmdiYSgwLCAwLCAwLCAwLjEpO1xuICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICBib3JkZXItd2lkdGg6IDAuMmVtO1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggdHJhbnNwYXJlbnQ7XG4gIHZpc2liaWxpdHk6IHZpc2libGU7XG4gIHotaW5kZXg6IDEwMTtcbn1cbkBrZXlmcmFtZXMgc2VnbWVudC1zcGluIHtcbiAgZnJvbSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XG4gIH1cbiAgdG8ge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7XG4gIH1cbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFZhcmlhdGlvbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBCYXNpY1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmJhc2ljLnNlZ21lbnQge1xuICBiYWNrZ3JvdW5kOiBub25lIHRyYW5zcGFyZW50O1xuICBib3gtc2hhZG93OiBub25lO1xuICBib3JkZXI6IG5vbmU7XG4gIGJvcmRlci1yYWRpdXM6IDBweDtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIENsZWFyaW5nXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkuY2xlYXJpbmcuc2VnbWVudDphZnRlciB7XG4gIGNvbnRlbnQ6IFwiLlwiO1xuICBkaXNwbGF5OiBibG9jaztcbiAgaGVpZ2h0OiAwO1xuICBjbGVhcjogYm90aDtcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBSZWQgKi9cbi51aS5yZWQuc2VnbWVudDpub3QoLmludmVydGVkKSB7XG4gIGJvcmRlci10b3A6IDJweCBzb2xpZCAjZGUzYTNlO1xufVxuLnVpLmludmVydGVkLnJlZC5zZWdtZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2RlM2EzZSAhaW1wb3J0YW50O1xuICBjb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xufVxuLyogT3JhbmdlICovXG4udWkub3JhbmdlLnNlZ21lbnQ6bm90KC5pbnZlcnRlZCkge1xuICBib3JkZXItdG9wOiAycHggc29saWQgI2ZmOTUzMztcbn1cbi51aS5pbnZlcnRlZC5vcmFuZ2Uuc2VnbWVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZjk1MzMgIWltcG9ydGFudDtcbiAgY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcbn1cbi8qIFllbGxvdyAqL1xuLnVpLnllbGxvdy5zZWdtZW50Om5vdCguaW52ZXJ0ZWQpIHtcbiAgYm9yZGVyLXRvcDogMnB4IHNvbGlkICNGQkJEMDg7XG59XG4udWkuaW52ZXJ0ZWQueWVsbG93LnNlZ21lbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkJCRDA4ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG59XG4vKiBPbGl2ZSAqL1xuLnVpLm9saXZlLnNlZ21lbnQ6bm90KC5pbnZlcnRlZCkge1xuICBib3JkZXItdG9wOiAycHggc29saWQgI0I1Q0MxODtcbn1cbi51aS5pbnZlcnRlZC5vbGl2ZS5zZWdtZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0I1Q0MxOCAhaW1wb3J0YW50O1xuICBjb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xufVxuLyogR3JlZW4gKi9cbi51aS5ncmVlbi5zZWdtZW50Om5vdCguaW52ZXJ0ZWQpIHtcbiAgYm9yZGVyLXRvcDogMnB4IHNvbGlkICMxOWE1MzE7XG59XG4udWkuaW52ZXJ0ZWQuZ3JlZW4uc2VnbWVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxOWE1MzEgIWltcG9ydGFudDtcbiAgY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcbn1cbi8qIFRlYWwgKi9cbi51aS50ZWFsLnNlZ21lbnQ6bm90KC5pbnZlcnRlZCkge1xuICBib3JkZXItdG9wOiAycHggc29saWQgIzAwQjVBRDtcbn1cbi51aS5pbnZlcnRlZC50ZWFsLnNlZ21lbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDBCNUFEICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG59XG4vKiBCbHVlICovXG4udWkuYmx1ZS5zZWdtZW50Om5vdCguaW52ZXJ0ZWQpIHtcbiAgYm9yZGVyLXRvcDogMnB4IHNvbGlkICMzZjUxYjU7XG59XG4udWkuaW52ZXJ0ZWQuYmx1ZS5zZWdtZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzNmNTFiNSAhaW1wb3J0YW50O1xuICBjb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xufVxuLyogVmlvbGV0ICovXG4udWkudmlvbGV0LnNlZ21lbnQ6bm90KC5pbnZlcnRlZCkge1xuICBib3JkZXItdG9wOiAycHggc29saWQgIzY0MzVDOTtcbn1cbi51aS5pbnZlcnRlZC52aW9sZXQuc2VnbWVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM2NDM1QzkgIWltcG9ydGFudDtcbiAgY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcbn1cbi8qIFB1cnBsZSAqL1xuLnVpLnB1cnBsZS5zZWdtZW50Om5vdCguaW52ZXJ0ZWQpIHtcbiAgYm9yZGVyLXRvcDogMnB4IHNvbGlkICNBMzMzQzg7XG59XG4udWkuaW52ZXJ0ZWQucHVycGxlLnNlZ21lbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjQTMzM0M4ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG59XG4vKiBQaW5rICovXG4udWkucGluay5zZWdtZW50Om5vdCguaW52ZXJ0ZWQpIHtcbiAgYm9yZGVyLXRvcDogMnB4IHNvbGlkICNFMDM5OTc7XG59XG4udWkuaW52ZXJ0ZWQucGluay5zZWdtZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0UwMzk5NyAhaW1wb3J0YW50O1xuICBjb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xufVxuLyogQnJvd24gKi9cbi51aS5icm93bi5zZWdtZW50Om5vdCguaW52ZXJ0ZWQpIHtcbiAgYm9yZGVyLXRvcDogMnB4IHNvbGlkICNBNTY3M0Y7XG59XG4udWkuaW52ZXJ0ZWQuYnJvd24uc2VnbWVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNBNTY3M0YgIWltcG9ydGFudDtcbiAgY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcbn1cbi8qIEdyZXkgKi9cbi51aS5ncmV5LnNlZ21lbnQ6bm90KC5pbnZlcnRlZCkge1xuICBib3JkZXItdG9wOiAycHggc29saWQgIzc2NzY3Njtcbn1cbi51aS5pbnZlcnRlZC5ncmV5LnNlZ21lbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNzY3Njc2ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG59XG4vKiBCbGFjayAqL1xuLnVpLmJsYWNrLnNlZ21lbnQ6bm90KC5pbnZlcnRlZCkge1xuICBib3JkZXItdG9wOiAycHggc29saWQgIzAwMDAwMDtcbn1cbi51aS5pbnZlcnRlZC5ibGFjay5zZWdtZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDAwMCAhaW1wb3J0YW50O1xuICBjb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWxpZ25lZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpW2NsYXNzKj1cImxlZnQgYWxpZ25lZFwiXS5zZWdtZW50IHtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbn1cbi51aVtjbGFzcyo9XCJyaWdodCBhbGlnbmVkXCJdLnNlZ21lbnQge1xuICB0ZXh0LWFsaWduOiByaWdodDtcbn1cbi51aVtjbGFzcyo9XCJjZW50ZXIgYWxpZ25lZFwiXS5zZWdtZW50IHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRmxvYXRlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmZsb2F0ZWQuc2VnbWVudCxcbi51aVtjbGFzcyo9XCJsZWZ0IGZsb2F0ZWRcIl0uc2VnbWVudCB7XG4gIGZsb2F0OiBsZWZ0O1xuICBtYXJnaW4tcmlnaHQ6IDFlbTtcbn1cbi51aVtjbGFzcyo9XCJyaWdodCBmbG9hdGVkXCJdLnNlZ21lbnQge1xuICBmbG9hdDogcmlnaHQ7XG4gIG1hcmdpbi1sZWZ0OiAxZW07XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEludmVydGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkuaW52ZXJ0ZWQuc2VnbWVudCB7XG4gIGJvcmRlcjogbm9uZTtcbiAgYm94LXNoYWRvdzogbm9uZTtcbn1cbi51aS5pbnZlcnRlZC5zZWdtZW50LFxuLnVpLnByaW1hcnkuaW52ZXJ0ZWQuc2VnbWVudCB7XG4gIGJhY2tncm91bmQ6ICMwMDAwMDA7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOSk7XG59XG4vKiBOZXN0ZWQgKi9cbi51aS5pbnZlcnRlZC5zZWdtZW50IC5zZWdtZW50IHtcbiAgY29sb3I6ICMzMzMzMzM7XG59XG4udWkuaW52ZXJ0ZWQuc2VnbWVudCAuaW52ZXJ0ZWQuc2VnbWVudCB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOSk7XG59XG4vKiBBdHRhY2hlZCAqL1xuLnVpLmludmVydGVkLmF0dGFjaGVkLnNlZ21lbnQge1xuICBib3JkZXItY29sb3I6ICM1NTU1NTU7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgRW1waGFzaXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlY29uZGFyeSAqL1xuLnVpLnNlY29uZGFyeS5zZWdtZW50IHtcbiAgYmFja2dyb3VuZDogI0YzRjRGNTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC42KTtcbn1cbi51aS5zZWNvbmRhcnkuaW52ZXJ0ZWQuc2VnbWVudCB7XG4gIGJhY2tncm91bmQ6ICMzMzMzMzMgbGluZWFyLWdyYWRpZW50KHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yKSAwJSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjIpIDEwMCUpO1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjgpO1xufVxuLyogVGVydGlhcnkgKi9cbi51aS50ZXJ0aWFyeS5zZWdtZW50IHtcbiAgYmFja2dyb3VuZDogI0RDRERERTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC42KTtcbn1cbi51aS50ZXJ0aWFyeS5pbnZlcnRlZC5zZWdtZW50IHtcbiAgYmFja2dyb3VuZDogIzU5NTk1OSBsaW5lYXItZ3JhZGllbnQocmdiYSgyNTUsIDI1NSwgMjU1LCAwLjM1KSAwJSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjM1KSAxMDAlKTtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44KTtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQXR0YWNoZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1pZGRsZSAqL1xuLnVpLmF0dGFjaGVkLnNlZ21lbnQge1xuICB0b3A6IDBweDtcbiAgYm90dG9tOiAwcHg7XG4gIGJvcmRlci1yYWRpdXM6IDBweDtcbiAgbWFyZ2luOiAwZW0gLTFweDtcbiAgd2lkdGg6IGNhbGMoMTAwJSArIDJweCk7XG4gIG1heC13aWR0aDogY2FsYygxMDAlICsgMnB4KTtcbiAgYm94LXNoYWRvdzogbm9uZTtcbiAgYm9yZGVyOiAxcHggc29saWQgI0Q0RDRENTtcbn1cbi51aS5hdHRhY2hlZDpub3QoLm1lc3NhZ2UpICsgLnVpLmF0dGFjaGVkLnNlZ21lbnQ6bm90KC50b3ApIHtcbiAgYm9yZGVyLXRvcDogbm9uZTtcbn1cbi8qIFRvcCAqL1xuLnVpW2NsYXNzKj1cInRvcCBhdHRhY2hlZFwiXS5zZWdtZW50IHtcbiAgYm90dG9tOiAwcHg7XG4gIG1hcmdpbi1ib3R0b206IDBlbTtcbiAgdG9wOiAwcHg7XG4gIG1hcmdpbi10b3A6IDFyZW07XG4gIGJvcmRlci1yYWRpdXM6IDAuNHJlbSAwLjRyZW0gMGVtIDBlbTtcbn1cbi51aS5zZWdtZW50W2NsYXNzKj1cInRvcCBhdHRhY2hlZFwiXTpmaXJzdC1jaGlsZCB7XG4gIG1hcmdpbi10b3A6IDBlbTtcbn1cbi8qIEJvdHRvbSAqL1xuLnVpLnNlZ21lbnRbY2xhc3MqPVwiYm90dG9tIGF0dGFjaGVkXCJdIHtcbiAgYm90dG9tOiAwcHg7XG4gIG1hcmdpbi10b3A6IDBlbTtcbiAgdG9wOiAwcHg7XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG4gIGJveC1zaGFkb3c6IDBweCAxcHggMnB4IDAgcmdiYSgzNCwgMzYsIDM4LCAwLjE1KSwgbm9uZTtcbiAgYm9yZGVyLXJhZGl1czogMGVtIDBlbSAwLjRyZW0gMC40cmVtO1xufVxuLnVpLnNlZ21lbnRbY2xhc3MqPVwiYm90dG9tIGF0dGFjaGVkXCJdOmxhc3QtY2hpbGQge1xuICBtYXJnaW4tYm90dG9tOiAwZW07XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLm1pbmkuc2VnbWVudHMgLnNlZ21lbnQsXG4udWkubWluaS5zZWdtZW50IHtcbiAgZm9udC1zaXplOiAwLjhyZW07XG59XG4udWkudGlueS5zZWdtZW50cyAuc2VnbWVudCxcbi51aS50aW55LnNlZ21lbnQge1xuICBmb250LXNpemU6IDAuOXJlbTtcbn1cbi51aS5zbWFsbC5zZWdtZW50cyAuc2VnbWVudCxcbi51aS5zbWFsbC5zZWdtZW50IHtcbiAgZm9udC1zaXplOiAwLjlyZW07XG59XG4udWkuc2VnbWVudHMgLnNlZ21lbnQsXG4udWkuc2VnbWVudCB7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbn1cbi51aS5sYXJnZS5zZWdtZW50cyAuc2VnbWVudCxcbi51aS5sYXJnZS5zZWdtZW50IHtcbiAgZm9udC1zaXplOiAxLjFyZW07XG59XG4udWkuYmlnLnNlZ21lbnRzIC5zZWdtZW50LFxuLnVpLmJpZy5zZWdtZW50IHtcbiAgZm9udC1zaXplOiAxLjNyZW07XG59XG4udWkuaHVnZS5zZWdtZW50cyAuc2VnbWVudCxcbi51aS5odWdlLnNlZ21lbnQge1xuICBmb250LXNpemU6IDEuNHJlbTtcbn1cbi51aS5tYXNzaXZlLnNlZ21lbnRzIC5zZWdtZW50LFxuLnVpLm1hc3NpdmUuc2VnbWVudCB7XG4gIGZvbnQtc2l6ZTogMS43cmVtO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFRoZW1lIE92ZXJyaWRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIE92ZXJyaWRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIVxuICogIyBTZW1hbnRpYyBVSSAtIFN0ZXBcbiAqIGh0dHA6Ly9naXRodWIuY29tL3NlbWFudGljLW9yZy9zZW1hbnRpYy11aS9cbiAqXG4gKlxuICogUmVsZWFzZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlXG4gKiBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUXG4gKlxuICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0ZXBcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBMb2FkIFRoZW1lXG4tLS0tLS0tLS0tLS0tLS0qL1xuLypcblxu4paI4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWXICDilojilojilZfilojilojilojilojilojilojilojilZfilojilojilojilZcgICDilojilojilojilZfilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZdcbuKVmuKVkOKVkOKWiOKWiOKVlOKVkOKVkOKVneKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWd4paI4paI4paI4paI4pWXIOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVnVxuICAg4paI4paI4pWRICAg4paI4paI4paI4paI4paI4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilZTilojilojilojilojilZTilojilojilZHilojilojilojilojilojilZcgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl1xuICAg4paI4paI4pWRICAg4paI4paI4pWU4pWQ4pWQ4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilojilojilZHilZrilojilojilZTilZ3ilojilojilZHilojilojilZTilZDilZDilZ0gIOKVmuKVkOKVkOKVkOKVkOKWiOKWiOKVkVxuICAg4paI4paI4pWRICAg4paI4paI4pWRICDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilZEg4pWa4pWQ4pWdIOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkVxuICAg4pWa4pWQ4pWdICAg4pWa4pWQ4pWdICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZ0gICAgIOKVmuKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVnVxuXG4qL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgVGhlbWUgU2VsZWN0aW9uXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogVG8gb3ZlcnJpZGUgYSB0aGVtZSBmb3IgYW4gaW5kaXZpZHVhbCBlbGVtZW50XG4gICBzcGVjaWZ5IHRoZW1lIG5hbWUgYmVsb3dcbiovXG4vKiBHbG9iYWwgKi9cbi8qIEVsZW1lbnRzICovXG4vKiBDb2xsZWN0aW9ucyAqL1xuLyogTW9kdWxlcyAqL1xuLyogVmlld3MgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBGb2xkZXJzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogUGF0aCB0byB0aGVtZSBwYWNrYWdlcyAqL1xuLyogUGF0aCB0byBzaXRlIG92ZXJyaWRlIGZvbGRlciAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIEltcG9ydCBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIEltcG9ydCBEaXJlY3RpdmVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBUaGVtZVxuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICBTaXRlIFZhcmlhYmxlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERlZmF1bHQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZG9ycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBQYWNrYWdlZCBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kb3JzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIENvbXBvbmVudCdzIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRvcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogU2l0ZSB0aGVtZSBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgVXNlciBHbG9iYWwgVmFyaWFibGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogbWFyc28gY29sb3JzICovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gQ29tcG9uZW50IFZhcmlhYmxlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERlZmF1bHQgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RlcFxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEdyb3VwXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEVsZW1lbnRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEljb24gKi9cbi8qIFRpdGxlICovXG4vKiBEZXNjcmlwdGlvbiAqL1xuLyogQXJyb3cgKi9cbi8qIE1vYmlsZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgVHlwZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFZlcnRpY2FsICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFZhcmlhdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIFN0YXRlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogQ29tcGxldGVkICovXG4vKiBIb3ZlciAqL1xuLyogRG93biAqL1xuLyogQWN0aXZlICovXG4vKiBBY3RpdmUgKyBIb3ZlciAqL1xuLyogRGlzYWJsZWQgKi9cbi8qIFBhY2thZ2VkIFRoZW1lICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0ZXBcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBHcm91cFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBFbGVtZW50XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJY29uICovXG4vKiBUaXRsZSAqL1xuLyogRGVzY3JpcHRpb24gKi9cbi8qIEFycm93ICovXG4vKiBNb2JpbGUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIFR5cGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBWZXJ0aWNhbCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBWYXJpYXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBTdGF0ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIENvbXBsZXRlZCAqL1xuLyogSG92ZXIgKi9cbi8qIERvd24gKi9cbi8qIEFjdGl2ZSAqL1xuLyogQWN0aXZlICsgSG92ZXIgKi9cbi8qIERpc2FibGVkICovXG4vKiBTaXRlIFRoZW1lICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgIFVzZXIgVmFyaWFibGUgT3ZlcnJpZGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBNaXgtaW5zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBPdmVycmlkZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRW5kIENvbmZpZyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFBsdXJhbFxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi51aS5zdGVwcyB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgbWFyZ2luOiAxZW0gMGVtO1xuICBiYWNrZ3JvdW5kOiAnJztcbiAgYm94LXNoYWRvdzogbm9uZTtcbiAgbGluZS1oZWlnaHQ6IDEuMWVtO1xuICBib3JkZXItcmFkaXVzOiAwLjRyZW07XG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMzQsIDM2LCAzOCwgMC4xNSk7XG59XG4vKiBGaXJzdCBTdGVwcyAqL1xuLnVpLnN0ZXBzOmZpcnN0LWNoaWxkIHtcbiAgbWFyZ2luLXRvcDogMGVtO1xufVxuLyogTGFzdCBTdGVwcyAqL1xuLnVpLnN0ZXBzOmxhc3QtY2hpbGQge1xuICBtYXJnaW4tYm90dG9tOiAwZW07XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBTaW5ndWxhclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi51aS5zdGVwcyAuc3RlcCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleDogMSAwIGF1dG87XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIG1hcmdpbjogMGVtIDBlbTtcbiAgcGFkZGluZzogMS4xZW0gMmVtO1xuICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICBjb2xvcjogIzMzMzMzMztcbiAgYm94LXNoYWRvdzogbm9uZTtcbiAgYm9yZGVyLXJhZGl1czogMGVtO1xuICBib3JkZXI6IG5vbmU7XG4gIGJvcmRlci1yaWdodDogMXB4IHNvbGlkIHJnYmEoMzQsIDM2LCAzOCwgMC4xNSk7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4xcyBlYXNlLCBvcGFjaXR5IDAuMXMgZWFzZSwgY29sb3IgMC4xcyBlYXNlLCBib3gtc2hhZG93IDAuMXMgZWFzZTtcbn1cbi8qIEFycm93ICovXG4udWkuc3RlcHMgLnN0ZXA6YWZ0ZXIge1xuICBkaXNwbGF5OiBub25lO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHotaW5kZXg6IDI7XG4gIGNvbnRlbnQ6ICcnO1xuICB0b3A6IDUwJTtcbiAgcmlnaHQ6IDAlO1xuICBib3JkZXI6IG1lZGl1bSBub25lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xuICB3aWR0aDogMS4xZW07XG4gIGhlaWdodDogMS4xZW07XG4gIGJvcmRlci1zdHlsZTogc29saWQ7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgzNCwgMzYsIDM4LCAwLjE1KTtcbiAgYm9yZGVyLXdpZHRoOiAwcHggMXB4IDFweCAwcHg7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4xcyBlYXNlLCBvcGFjaXR5IDAuMXMgZWFzZSwgY29sb3IgMC4xcyBlYXNlLCBib3gtc2hhZG93IDAuMXMgZWFzZTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHRyYW5zbGF0ZVgoNTAlKSByb3RhdGUoLTQ1ZGVnKTtcbn1cbi8qIEZpcnN0IFN0ZXAgKi9cbi51aS5zdGVwcyAuc3RlcDpmaXJzdC1jaGlsZCB7XG4gIHBhZGRpbmctbGVmdDogMmVtO1xuICBib3JkZXItcmFkaXVzOiAwLjRyZW0gMGVtIDBlbSAwLjRyZW07XG59XG4vKiBMYXN0IFN0ZXAgKi9cbi51aS5zdGVwcyAuc3RlcDpsYXN0LWNoaWxkIHtcbiAgYm9yZGVyLXJhZGl1czogMGVtIDAuNHJlbSAwLjRyZW0gMGVtO1xufVxuLnVpLnN0ZXBzIC5zdGVwOmxhc3QtY2hpbGQge1xuICBib3JkZXItcmlnaHQ6IG5vbmU7XG4gIG1hcmdpbi1yaWdodDogMGVtO1xufVxuLyogT25seSBTdGVwICovXG4udWkuc3RlcHMgLnN0ZXA6b25seS1jaGlsZCB7XG4gIGJvcmRlci1yYWRpdXM6IDAuNHJlbTtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBDb250ZW50XG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogVGl0bGUgKi9cbi51aS5zdGVwcyAuc3RlcCAudGl0bGUge1xuICBmb250LWZhbWlseTogJ0V4byAyJywgJ0xhdG8nLCBBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDEuMWVtO1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cbi51aS5zdGVwcyAuc3RlcCA+IC50aXRsZSB7XG4gIHdpZHRoOiAxMDAlO1xufVxuLyogRGVzY3JpcHRpb24gKi9cbi51aS5zdGVwcyAuc3RlcCAuZGVzY3JpcHRpb24ge1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXNpemU6IDAuOWVtO1xuICBjb2xvcjogIzMzMzMzMztcbn1cbi51aS5zdGVwcyAuc3RlcCA+IC5kZXNjcmlwdGlvbiB7XG4gIHdpZHRoOiAxMDAlO1xufVxuLnVpLnN0ZXBzIC5zdGVwIC50aXRsZSB+IC5kZXNjcmlwdGlvbiB7XG4gIG1hcmdpbi10b3A6IDAuMjVlbTtcbn1cbi8qIEljb24gKi9cbi51aS5zdGVwcyAuc3RlcCA+IC5pY29uIHtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGZvbnQtc2l6ZTogMi41ZW07XG4gIG1hcmdpbjogMGVtIDFyZW0gMGVtIDBlbTtcbn1cbi51aS5zdGVwcyAuc3RlcCA+IC5pY29uLFxuLnVpLnN0ZXBzIC5zdGVwID4gLmljb24gfiAuY29udGVudCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmbGV4OiAwIDEgYXV0bztcbiAgYWxpZ24tc2VsZjogbWlkZGxlO1xufVxuLnVpLnN0ZXBzIC5zdGVwID4gLmljb24gfiAuY29udGVudCB7XG4gIGZsZXgtZ3JvdzogMSAwIGF1dG87XG59XG4vKiBIb3Jpem9udGFsIEljb24gKi9cbi51aS5zdGVwczpub3QoLnZlcnRpY2FsKSAuc3RlcCA+IC5pY29uIHtcbiAgd2lkdGg6IGF1dG87XG59XG4vKiBMaW5rICovXG4udWkuc3RlcHMgLmxpbmsuc3RlcCxcbi51aS5zdGVwcyBhLnN0ZXAge1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgVHlwZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIE9yZGVyZWRcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkub3JkZXJlZC5zdGVwcyB7XG4gIGNvdW50ZXItcmVzZXQ6IG9yZGVyZWQ7XG59XG4udWkub3JkZXJlZC5zdGVwcyAuc3RlcDpiZWZvcmUge1xuICBkaXNwbGF5OiBibG9jaztcbiAgcG9zaXRpb246IHN0YXRpYztcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBjb250ZW50OiBjb3VudGVycyhvcmRlcmVkLCBcIi5cIik7XG4gIGFsaWduLXNlbGY6IG1pZGRsZTtcbiAgbWFyZ2luLXJpZ2h0OiAxcmVtO1xuICBmb250LXNpemU6IDIuNWVtO1xuICBjb3VudGVyLWluY3JlbWVudDogb3JkZXJlZDtcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuLnVpLm9yZGVyZWQuc3RlcHMgLnN0ZXAgPiAqIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGFsaWduLXNlbGY6IG1pZGRsZTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBWZXJ0aWNhbFxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS52ZXJ0aWNhbC5zdGVwcyB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbn1cbi51aS52ZXJ0aWNhbC5zdGVwcyAuc3RlcCB7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgYm9yZGVyLXJhZGl1czogMGVtO1xuICBwYWRkaW5nOiAxLjFlbSAyZW07XG4gIGJvcmRlci1yaWdodDogbm9uZTtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYmEoMzQsIDM2LCAzOCwgMC4xNSk7XG59XG4udWkudmVydGljYWwuc3RlcHMgLnN0ZXA6Zmlyc3QtY2hpbGQge1xuICBwYWRkaW5nOiAxLjFlbSAyZW07XG4gIGJvcmRlci1yYWRpdXM6IDAuNHJlbSAwLjRyZW0gMGVtIDBlbTtcbn1cbi51aS52ZXJ0aWNhbC5zdGVwcyAuc3RlcDpsYXN0LWNoaWxkIHtcbiAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgYm9yZGVyLXJhZGl1czogMGVtIDBlbSAwLjRyZW0gMC40cmVtO1xufVxuLnVpLnZlcnRpY2FsLnN0ZXBzIC5zdGVwOm9ubHktY2hpbGQge1xuICBib3JkZXItcmFkaXVzOiAwLjRyZW07XG59XG4vKiBBcnJvdyAqL1xuLnVpLnZlcnRpY2FsLnN0ZXBzIC5zdGVwOmFmdGVyIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi51aS52ZXJ0aWNhbC5zdGVwcyAuc3RlcDphZnRlciB7XG4gIHRvcDogNTAlO1xuICByaWdodDogMCU7XG4gIGJvcmRlci13aWR0aDogMHB4IDFweCAxcHggMHB4O1xufVxuLnVpLnZlcnRpY2FsLnN0ZXBzIC5zdGVwOmFmdGVyIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi51aS52ZXJ0aWNhbC5zdGVwcyAuYWN0aXZlLnN0ZXA6YWZ0ZXIge1xuICBkaXNwbGF5OiBibG9jaztcbn1cbi51aS52ZXJ0aWNhbC5zdGVwcyAuc3RlcDpsYXN0LWNoaWxkOmFmdGVyIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi51aS52ZXJ0aWNhbC5zdGVwcyAuYWN0aXZlLnN0ZXA6bGFzdC1jaGlsZDphZnRlciB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuLyotLS0tLS0tLS0tLS0tLS1cbiAgICBSZXNwb25zaXZlXG4tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1vYmlsZSAoRGVmYXVsdCkgKi9cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgLnVpLnN0ZXBzIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICB9XG4gIC51aS5zdGVwcyAuc3RlcCB7XG4gICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGJvcmRlci1yYWRpdXM6IDBlbTtcbiAgICBwYWRkaW5nOiAxLjFlbSAyZW07XG4gIH1cbiAgLnVpLnN0ZXBzIC5zdGVwOmZpcnN0LWNoaWxkIHtcbiAgICBwYWRkaW5nOiAxLjFlbSAyZW07XG4gICAgYm9yZGVyLXJhZGl1czogMC40cmVtIDAuNHJlbSAwZW0gMGVtO1xuICB9XG4gIC51aS5zdGVwcyAuc3RlcDpsYXN0LWNoaWxkIHtcbiAgICBib3JkZXItcmFkaXVzOiAwZW0gMGVtIDAuNHJlbSAwLjRyZW07XG4gIH1cbiAgLyogQXJyb3cgKi9cbiAgLnVpLnN0ZXBzIC5zdGVwOmFmdGVyIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbiAgLyogQ29udGVudCAqL1xuICAudWkuc3RlcHMgLnN0ZXAgLmNvbnRlbnQge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxuICAvKiBJY29uICovXG4gIC51aS5zdGVwcyAuc3RlcCA+IC5pY29uLFxuICAudWkub3JkZXJlZC5zdGVwcyAuc3RlcDpiZWZvcmUge1xuICAgIG1hcmdpbjogMGVtIDBlbSAxcmVtIDBlbTtcbiAgfVxufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBMaW5rIEhvdmVyICovXG4udWkuc3RlcHMgLmxpbmsuc3RlcDpob3Zlcjo6YWZ0ZXIsXG4udWkuc3RlcHMgLmxpbmsuc3RlcDpob3Zlcixcbi51aS5zdGVwcyBhLnN0ZXA6aG92ZXI6OmFmdGVyLFxuLnVpLnN0ZXBzIGEuc3RlcDpob3ZlciB7XG4gIGJhY2tncm91bmQ6ICNGOUZBRkI7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuOCk7XG59XG4vKiBMaW5rIERvd24gKi9cbi51aS5zdGVwcyAubGluay5zdGVwOmFjdGl2ZTo6YWZ0ZXIsXG4udWkuc3RlcHMgLmxpbmsuc3RlcDphY3RpdmUsXG4udWkuc3RlcHMgYS5zdGVwOmFjdGl2ZTo6YWZ0ZXIsXG4udWkuc3RlcHMgYS5zdGVwOmFjdGl2ZSB7XG4gIGJhY2tncm91bmQ6ICNGM0Y0RjU7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuOSk7XG59XG4vKiBBY3RpdmUgKi9cbi51aS5zdGVwcyAuc3RlcC5hY3RpdmUge1xuICBjdXJzb3I6IGF1dG87XG4gIGJhY2tncm91bmQ6ICNGM0Y0RjU7XG59XG4udWkuc3RlcHMgLnN0ZXAuYWN0aXZlOmFmdGVyIHtcbiAgYmFja2dyb3VuZDogI0YzRjRGNTtcbn1cbi51aS5zdGVwcyAuc3RlcC5hY3RpdmUgLnRpdGxlIHtcbiAgY29sb3I6ICM0MTgzQzQ7XG59XG4udWkub3JkZXJlZC5zdGVwcyAuc3RlcC5hY3RpdmU6YmVmb3JlLFxuLnVpLnN0ZXBzIC5hY3RpdmUuc3RlcCAuaWNvbiB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODUpO1xufVxuLyogQWN0aXZlIEFycm93ICovXG4udWkuc3RlcHMgLnN0ZXA6YWZ0ZXIge1xuICBkaXNwbGF5OiBibG9jaztcbn1cbi51aS5zdGVwcyAuYWN0aXZlLnN0ZXA6YWZ0ZXIge1xuICBkaXNwbGF5OiBibG9jaztcbn1cbi51aS5zdGVwcyAuc3RlcDpsYXN0LWNoaWxkOmFmdGVyIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi51aS5zdGVwcyAuYWN0aXZlLnN0ZXA6bGFzdC1jaGlsZDphZnRlciB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4vKiBBY3RpdmUgSG92ZXIgKi9cbi51aS5zdGVwcyAubGluay5hY3RpdmUuc3RlcDpob3Zlcjo6YWZ0ZXIsXG4udWkuc3RlcHMgLmxpbmsuYWN0aXZlLnN0ZXA6aG92ZXIsXG4udWkuc3RlcHMgYS5hY3RpdmUuc3RlcDpob3Zlcjo6YWZ0ZXIsXG4udWkuc3RlcHMgYS5hY3RpdmUuc3RlcDpob3ZlciB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgYmFja2dyb3VuZDogI0RDRERERTtcbiAgY29sb3I6ICMzMzMzMzM7XG59XG4vKiBDb21wbGV0ZWQgKi9cbi51aS5zdGVwcyAuc3RlcC5jb21wbGV0ZWQgPiAuaWNvbjpiZWZvcmUsXG4udWkub3JkZXJlZC5zdGVwcyAuc3RlcC5jb21wbGV0ZWQ6YmVmb3JlIHtcbiAgY29sb3I6ICMxOWE1MzE7XG59XG4vKiBEaXNhYmxlZCAqL1xuLnVpLnN0ZXBzIC5kaXNhYmxlZC5zdGVwIHtcbiAgY3Vyc29yOiBhdXRvO1xuICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cbi51aS5zdGVwcyAuZGlzYWJsZWQuc3RlcCxcbi51aS5zdGVwcyAuZGlzYWJsZWQuc3RlcCAudGl0bGUsXG4udWkuc3RlcHMgLmRpc2FibGVkLnN0ZXAgLmRlc2NyaXB0aW9uIHtcbiAgY29sb3I6IHJnYmEoNDAsIDQwLCA0MCwgMC4zKTtcbn1cbi51aS5zdGVwcyAuZGlzYWJsZWQuc3RlcDphZnRlciB7XG4gIGJhY2tncm91bmQ6ICNmZmZmZmY7XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBWYXJpYXRpb25zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgU3RhY2thYmxlXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGFibGV0IE9yIEJlbG93ICovXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDk5MXB4KSB7XG4gIC51aVtjbGFzcyo9XCJ0YWJsZXQgc3RhY2thYmxlXCJdLnN0ZXBzIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICB9XG4gIC8qIFN0ZXBzICovXG4gIC51aVtjbGFzcyo9XCJ0YWJsZXQgc3RhY2thYmxlXCJdLnN0ZXBzIC5zdGVwIHtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGJvcmRlci1yYWRpdXM6IDBlbTtcbiAgICBwYWRkaW5nOiAxLjFlbSAyZW07XG4gIH1cbiAgLnVpW2NsYXNzKj1cInRhYmxldCBzdGFja2FibGVcIl0uc3RlcHMgLnN0ZXA6Zmlyc3QtY2hpbGQge1xuICAgIHBhZGRpbmc6IDEuMWVtIDJlbTtcbiAgICBib3JkZXItcmFkaXVzOiAwLjRyZW0gMC40cmVtIDBlbSAwZW07XG4gIH1cbiAgLnVpW2NsYXNzKj1cInRhYmxldCBzdGFja2FibGVcIl0uc3RlcHMgLnN0ZXA6bGFzdC1jaGlsZCB7XG4gICAgYm9yZGVyLXJhZGl1czogMGVtIDBlbSAwLjRyZW0gMC40cmVtO1xuICB9XG4gIC8qIEFycm93ICovXG4gIC51aVtjbGFzcyo9XCJ0YWJsZXQgc3RhY2thYmxlXCJdLnN0ZXBzIC5zdGVwOmFmdGVyIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbiAgLyogQ29udGVudCAqL1xuICAudWlbY2xhc3MqPVwidGFibGV0IHN0YWNrYWJsZVwiXS5zdGVwcyAuc3RlcCAuY29udGVudCB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB9XG4gIC8qIEljb24gKi9cbiAgLnVpW2NsYXNzKj1cInRhYmxldCBzdGFja2FibGVcIl0uc3RlcHMgLnN0ZXAgPiAuaWNvbixcbiAgLnVpW2NsYXNzKj1cInRhYmxldCBzdGFja2FibGVcIl0ub3JkZXJlZC5zdGVwcyAuc3RlcDpiZWZvcmUge1xuICAgIG1hcmdpbjogMGVtIDBlbSAxcmVtIDBlbTtcbiAgfVxufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICAgRmx1aWRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBGbHVpZCAqL1xuLnVpLmZsdWlkLnN0ZXBzIHtcbiAgZGlzcGxheTogZmxleDtcbiAgd2lkdGg6IDEwMCU7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgQXR0YWNoZWRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUb3AgKi9cbi51aS5hdHRhY2hlZC5zdGVwcyB7XG4gIHdpZHRoOiBjYWxjKDEwMCUgKyAycHgpICFpbXBvcnRhbnQ7XG4gIG1hcmdpbjogMGVtIC0xcHggMDtcbiAgbWF4LXdpZHRoOiBjYWxjKDEwMCUgKyAycHgpO1xuICBib3JkZXItcmFkaXVzOiAwLjRyZW0gMC40cmVtIDBlbSAwZW07XG59XG4udWkuYXR0YWNoZWQuc3RlcHMgLnN0ZXA6Zmlyc3QtY2hpbGQge1xuICBib3JkZXItcmFkaXVzOiAwLjRyZW0gMGVtIDBlbSAwZW07XG59XG4udWkuYXR0YWNoZWQuc3RlcHMgLnN0ZXA6bGFzdC1jaGlsZCB7XG4gIGJvcmRlci1yYWRpdXM6IDBlbSAwLjRyZW0gMGVtIDBlbTtcbn1cbi8qIEJvdHRvbSAqL1xuLnVpLmJvdHRvbS5hdHRhY2hlZC5zdGVwcyB7XG4gIG1hcmdpbjogMCAtMXB4IDBlbTtcbiAgYm9yZGVyLXJhZGl1czogMGVtIDBlbSAwLjRyZW0gMC40cmVtO1xufVxuLnVpLmJvdHRvbS5hdHRhY2hlZC5zdGVwcyAuc3RlcDpmaXJzdC1jaGlsZCB7XG4gIGJvcmRlci1yYWRpdXM6IDBlbSAwZW0gMGVtIDAuNHJlbTtcbn1cbi51aS5ib3R0b20uYXR0YWNoZWQuc3RlcHMgLnN0ZXA6bGFzdC1jaGlsZCB7XG4gIGJvcmRlci1yYWRpdXM6IDBlbSAwZW0gMC40cmVtIDBlbTtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEV2ZW5seSBEaXZpZGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkub25lLnN0ZXBzLFxuLnVpLnR3by5zdGVwcyxcbi51aS50aHJlZS5zdGVwcyxcbi51aS5mb3VyLnN0ZXBzLFxuLnVpLmZpdmUuc3RlcHMsXG4udWkuc2l4LnN0ZXBzLFxuLnVpLnNldmVuLnN0ZXBzLFxuLnVpLmVpZ2h0LnN0ZXBzIHtcbiAgd2lkdGg6IDEwMCU7XG59XG4udWkub25lLnN0ZXBzID4gLnN0ZXAsXG4udWkudHdvLnN0ZXBzID4gLnN0ZXAsXG4udWkudGhyZWUuc3RlcHMgPiAuc3RlcCxcbi51aS5mb3VyLnN0ZXBzID4gLnN0ZXAsXG4udWkuZml2ZS5zdGVwcyA+IC5zdGVwLFxuLnVpLnNpeC5zdGVwcyA+IC5zdGVwLFxuLnVpLnNldmVuLnN0ZXBzID4gLnN0ZXAsXG4udWkuZWlnaHQuc3RlcHMgPiAuc3RlcCB7XG4gIGZsZXgtd3JhcDogbm93cmFwO1xufVxuLnVpLm9uZS5zdGVwcyA+IC5zdGVwIHtcbiAgd2lkdGg6IDEwMCU7XG59XG4udWkudHdvLnN0ZXBzID4gLnN0ZXAge1xuICB3aWR0aDogNTAlO1xufVxuLnVpLnRocmVlLnN0ZXBzID4gLnN0ZXAge1xuICB3aWR0aDogMzMuMzMzJTtcbn1cbi51aS5mb3VyLnN0ZXBzID4gLnN0ZXAge1xuICB3aWR0aDogMjUlO1xufVxuLnVpLmZpdmUuc3RlcHMgPiAuc3RlcCB7XG4gIHdpZHRoOiAyMCU7XG59XG4udWkuc2l4LnN0ZXBzID4gLnN0ZXAge1xuICB3aWR0aDogMTYuNjY2JTtcbn1cbi51aS5zZXZlbi5zdGVwcyA+IC5zdGVwIHtcbiAgd2lkdGg6IDE0LjI4NSU7XG59XG4udWkuZWlnaHQuc3RlcHMgPiAuc3RlcCB7XG4gIHdpZHRoOiAxMi41JTtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkubWluaS5zdGVwcyAuc3RlcCxcbi51aS5taW5pLnN0ZXAge1xuICBmb250LXNpemU6IDAuOHJlbTtcbn1cbi51aS50aW55LnN0ZXBzIC5zdGVwLFxuLnVpLnRpbnkuc3RlcCB7XG4gIGZvbnQtc2l6ZTogMC45cmVtO1xufVxuLnVpLnNtYWxsLnN0ZXBzIC5zdGVwLFxuLnVpLnNtYWxsLnN0ZXAge1xuICBmb250LXNpemU6IDAuOXJlbTtcbn1cbi51aS5zdGVwcyAuc3RlcCxcbi51aS5zdGVwIHtcbiAgZm9udC1zaXplOiAxcmVtO1xufVxuLnVpLmxhcmdlLnN0ZXBzIC5zdGVwLFxuLnVpLmxhcmdlLnN0ZXAge1xuICBmb250LXNpemU6IDEuMXJlbTtcbn1cbi51aS5iaWcuc3RlcHMgLnN0ZXAsXG4udWkuYmlnLnN0ZXAge1xuICBmb250LXNpemU6IDEuM3JlbTtcbn1cbi51aS5odWdlLnN0ZXBzIC5zdGVwLFxuLnVpLmh1Z2Uuc3RlcCB7XG4gIGZvbnQtc2l6ZTogMS40cmVtO1xufVxuLnVpLm1hc3NpdmUuc3RlcHMgLnN0ZXAsXG4udWkubWFzc2l2ZS5zdGVwIHtcbiAgZm9udC1zaXplOiAxLjdyZW07XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgVGhlbWUgT3ZlcnJpZGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnU3RlcCc7XG4gIHNyYzogdXJsKGRhdGE6YXBwbGljYXRpb24veC1mb250LXR0ZjtjaGFyc2V0PXV0Zi04OztiYXNlNjQsQUFFQUFBQU9BSUFBQXdCZ1QxTXZNajNoU1FFQUFBRHNBQUFBVm1OdFlYRFFFaG0zQUFBQlJBQUFBVXBqZG5RZ0Jrbi9sQUFBQnV3QUFBQWNabkJuYllvS2VEc0FBQWNJQUFBSmtXZGhjM0FBQUFBUUFBQUc1QUFBQUFobmJIbG0zMmNFZGdBQUFwQUFBQUMyYUdWaFpBRXJQSHNBQUFOSUFBQUFObWhvWldFSFV3Tk5BQUFEZ0FBQUFDUm9iWFI0Q3lrQUFBQUFBNlFBQUFBTWJHOWpZUUE0QUZzQUFBT3dBQUFBQ0cxaGVIQUFwZ204QUFBRHVBQUFBQ0J1WVcxbHpKMGFIQUFBQTlnQUFBTE5jRzl6ZEs2OVFKZ0FBQWFvQUFBQU8zQnlaWENTb1pyL0FBQVFuQUFBQUZZQUFRTzRBWkFBQlFBSUFub0N2QUFBQUl3Q2VnSzhBQUFCNEFBeEFRSUFBQUlBQlFNQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFVR1pGWkFCQTZBRG9BUU5TLzJvQVdnTUxBRThBQUFBQkFBQUFBQUFBQUFBQUF3QUFBQU1BQUFBY0FBRUFBQUFBQUVRQUF3QUJBQUFBSEFBRUFDZ0FBQUFHQUFRQUFRQUNBQURvQWYvL0FBQUFBT2dBLy84QUFCZ0JBQUVBQUFBQUFBQUFBQUVHQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQVFBQUFBQURwQUtZQUJVQUhFQVpEd0VBQVFGQ0FBSUJBbW9BQVFBQmFnQUFBR0VVRnhRREVpc0JGQWNCQmlJbkFTWTBQd0UyTWg4QkFUWXlId0VXQTZRUC9pQVFMQkQrNmc4UFRCQXNFS1FCYmhBc0VFd1BBaFlXRVA0Z0R3OEJGaEFzRUV3UUVLVUJieEFRVEJBQUFBSC8vZit4QTE4REN3QU1BQkpBRHdBQkFRcERBQUFBQ3dCRUZSTUNFU3NCRkE0QklpNENQZ0V5SGdFRFdYTEc2TWh1Qm5xODlMcCtBVjUxeEhSMHhPckVkSFRFQUFBQUFBRUFBQUFCQUFERGVScGRYdzg4OVFBTEErZ0FBQUFBenpXWWpRQUFBQURQTldCTi8vMy9zUU9rQXdzQUFBQUlBQUlBQUFBQUFBQUFBUUFBQTFML2FnQmFBK2dBQVAvM0E2UUFBUUFBQUFBQUFBQUFBQUFBQUFBQUFBTUQ2QUFBQStnQUFBTlpBQUFBQUFBQUFEZ0FXd0FCQUFBQUF3QVdBQUVBQUFBQUFBSUFCZ0FUQUc0QUFBQXRDWkVBQUFBQUFBQUFFZ0RlQUFFQUFBQUFBQUFBTlFBQUFBRUFBQUFBQUFFQUNBQTFBQUVBQUFBQUFBSUFCd0E5QUFFQUFBQUFBQU1BQ0FCRUFBRUFBQUFBQUFRQUNBQk1BQUVBQUFBQUFBVUFDd0JVQUFFQUFBQUFBQVlBQ0FCZkFBRUFBQUFBQUFvQUt3Qm5BQUVBQUFBQUFBc0FFd0NTQUFNQUFRUUpBQUFBYWdDbEFBTUFBUVFKQUFFQUVBRVBBQU1BQVFRSkFBSUFEZ0VmQUFNQUFRUUpBQU1BRUFFdEFBTUFBUVFKQUFRQUVBRTlBQU1BQVFRSkFBVUFGZ0ZOQUFNQUFRUUpBQVlBRUFGakFBTUFBUVFKQUFvQVZnRnpBQU1BQVFRSkFBc0FKZ0hKUTI5d2VYSnBaMmgwSUNoREtTQXlNREUwSUdKNUlHOXlhV2RwYm1Gc0lHRjFkR2h2Y25NZ1FDQm1iMjUwWld4c2J5NWpiMjFtYjI1MFpXeHNiMUpsWjNWc1lYSm1iMjUwWld4c2IyWnZiblJsYkd4dlZtVnljMmx2YmlBeExqQm1iMjUwWld4c2IwZGxibVZ5WVhSbFpDQmllU0J6ZG1jeWRIUm1JR1p5YjIwZ1JtOXVkR1ZzYkc4Z2NISnZhbVZqZEM1b2RIUndPaTh2Wm05dWRHVnNiRzh1WTI5dEFFTUFid0J3QUhrQWNnQnBBR2NBYUFCMEFDQUFLQUJEQUNrQUlBQXlBREFBTVFBMEFDQUFZZ0I1QUNBQWJ3QnlBR2tBWndCcEFHNEFZUUJzQUNBQVlRQjFBSFFBYUFCdkFISUFjd0FnQUVBQUlBQm1BRzhBYmdCMEFHVUFiQUJzQUc4QUxnQmpBRzhBYlFCbUFHOEFiZ0IwQUdVQWJBQnNBRzhBVWdCbEFHY0FkUUJzQUdFQWNnQm1BRzhBYmdCMEFHVUFiQUJzQUc4QVpnQnZBRzRBZEFCbEFHd0FiQUJ2QUZZQVpRQnlBSE1BYVFCdkFHNEFJQUF4QUM0QU1BQm1BRzhBYmdCMEFHVUFiQUJzQUc4QVJ3QmxBRzRBWlFCeUFHRUFkQUJsQUdRQUlBQmlBSGtBSUFCekFIWUFad0F5QUhRQWRBQm1BQ0FBWmdCeUFHOEFiUUFnQUVZQWJ3QnVBSFFBWlFCc0FHd0Fid0FnQUhBQWNnQnZBR29BWlFCakFIUUFMZ0JvQUhRQWRBQndBRG9BTHdBdkFHWUFid0J1QUhRQVpRQnNBR3dBYndBdUFHTUFid0J0QUFBQUFBSUFBQUFBQUFBQUNnQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQXdBQUFRSUJBd2xqYUdWamEyMWhjbXNHWTJseVkyeGxBQUFBQUFFQUFmLy9BQThBQUFBQUFBQUFBQUFBQUFBQUFBQUFBRElBTWdNTC83RURDLyt4c0FBc3NDQmdaaTJ3QVN3Z1pDQ3d3RkN3QkNaYXNBUkZXMWdoSXlFYmlsZ2dzRkJRV0NHd1FGa2JJTEE0VUZnaHNEaFpXU0N3Q2tWaFpMQW9VRmdoc0FwRklMQXdVRmdoc0RCWkd5Q3d3RkJZSUdZZ2lvcGhJTEFLVUZoZ0d5Q3dJRkJZSWJBS1lCc2dzRFpRV0NHd05tQWJZRmxaV1J1d0FDdFpXU093QUZCWVpWbFpMYkFDTENCRklMQUVKV0ZrSUxBRlExQllzQVVqUXJBR0kwSWJJU0Zac0FGZ0xiQURMQ01oSXlFZ1pMRUZZa0lnc0FZalFySUtBQUlxSVNDd0JrTWdpaUNLc0FBcnNUQUZKWXBSV0dCUUcyRlNXVmdqV1NFZ3NFQlRXTEFBS3hzaHNFQlpJN0FBVUZobFdTMndCQ3l3QjBNcnNnQUNBRU5nUWkyd0JTeXdCeU5DSXlDd0FDTkNZYkNBWXJBQllMQUVLaTJ3Qml3Z0lFVWdzQUpGWTdBQlJXSmdSTEFCWUMyd0J5d2dJRVVnc0FBckk3RUNCQ1ZnSUVXS0kyRWdaQ0N3SUZCWUliQUFHN0F3VUZpd0lCdXdRRmxaSTdBQVVGaGxXYkFESlNOaFJFU3dBV0F0c0Fnc3NRVUZSYkFCWVVRdHNBa3NzQUZnSUNDd0NVTktzQUJRV0NDd0NTTkNXYkFLUTBxd0FGSllJTEFLSTBKWkxiQUtMQ0M0QkFCaUlMZ0VBR09LSTJHd0MwTmdJSXBnSUxBTEkwSWpMYkFMTEV0VVdMRUhBVVJaSkxBTlpTTjRMYkFNTEV0UldFdFRXTEVIQVVSWkd5RlpKTEFUWlNONExiQU5MTEVBREVOVldMRU1ERU93QVdGQ3NBb3JXYkFBUTdBQ0pVS3hDUUlsUXJFS0FpVkNzQUVXSXlDd0F5VlFXTEVCQUVOZ3NBUWxRb3FLSUlvalliQUpLaUVqc0FGaElJb2pZYkFKS2lFYnNRRUFRMkN3QWlWQ3NBSWxZYkFKS2lGWnNBbERSN0FLUTBkZ3NJQmlJTEFDUldPd0FVVmlZTEVBQUJNalJMQUJRN0FBUHJJQkFRRkRZRUl0c0E0c3NRQUZSVlJZQUxBTUkwSWdZTEFCWWJVTkRRRUFDd0JDUW9wZ3NRMEZLN0J0S3hzaVdTMndEeXl4QUE0ckxiQVFMTEVCRGlzdHNCRXNzUUlPS3kyd0VpeXhBdzRyTGJBVExMRUVEaXN0c0JRc3NRVU9LeTJ3RlN5eEJnNHJMYkFXTExFSERpc3RzQmNzc1FnT0t5MndHQ3l4Q1E0ckxiQVpMTEFJSzdFQUJVVlVXQUN3RENOQ0lHQ3dBV0cxRFEwQkFBc0FRa0tLWUxFTkJTdXdiU3NiSWxrdHNCb3NzUUFaS3kyd0d5eXhBUmtyTGJBY0xMRUNHU3N0c0Iwc3NRTVpLeTJ3SGl5eEJCa3JMYkFmTExFRkdTc3RzQ0Fzc1FZWkt5MndJU3l4QnhrckxiQWlMTEVJR1NzdHNDTXNzUWtaS3kyd0pDd2dQTEFCWUMyd0pTd2dZTEFOWUNCREk3QUJZRU93QWlWaHNBRmdzQ1FxSVMyd0ppeXdKU3V3SlNvdHNDY3NJQ0JISUNDd0FrVmpzQUZGWW1BallUZ2pJSXBWV0NCSElDQ3dBa1Zqc0FGRlltQWpZVGdiSVZrdHNDZ3NzUUFGUlZSWUFMQUJGckFuS3JBQkZUQWJJbGt0c0Nrc3NBZ3JzUUFGUlZSWUFMQUJGckFuS3JBQkZUQWJJbGt0c0Nvc0lEV3dBV0F0c0Nzc0FMQURSV093QVVWaXNBQXJzQUpGWTdBQlJXS3dBQ3V3QUJhMEFBQUFBQUJFUGlNNHNTb0JGU290c0N3c0lEd2dSeUN3QWtWanNBRkZZbUN3QUVOaE9DMndMU3d1Rnp3dHNDNHNJRHdnUnlDd0FrVmpzQUZGWW1Dd0FFTmhzQUZEWXpndHNDOHNzUUlBRmlVZ0xpQkhzQUFqUXJBQ0pVbUtpa2NqUnlOaElGaGlHeUZac0FFalFySXVBUUVWRkNvdHNEQXNzQUFXc0FRbHNBUWxSeU5ISTJHd0JrVXJaWW91SXlBZ1BJbzRMYkF4TExBQUZyQUVKYkFFSlNBdVJ5TkhJMkVnc0FRalFyQUdSU3Nnc0dCUVdDQ3dRRkZZc3dJZ0F5QWJzd0ltQXhwWlFrSWpJTEFJUXlDS0kwY2pSeU5oSTBaZ3NBUkRzSUJpWUNDd0FDc2dpb3BoSUxBQ1EyQmtJN0FEUTJGa1VGaXdBa05oRzdBRFEyQlpzQU1sc0lCaVlTTWdJTEFFSmlOR1lUZ2JJN0FJUTBhd0FpV3dDRU5ISTBjallXQWdzQVJEc0lCaVlDTWdzQUFySTdBRVEyQ3dBQ3V3QlNWaHNBVWxzSUJpc0FRbVlTQ3dCQ1ZnWkNPd0F5VmdaRkJZSVJzaklWa2pJQ0N3QkNZalJtRTRXUzJ3TWl5d0FCWWdJQ0N3QlNZZ0xrY2pSeU5oSXp3NExiQXpMTEFBRmlDd0NDTkNJQ0FnUmlOSHNBQXJJMkU0TGJBMExMQUFGckFESmJBQ0pVY2pSeU5oc0FCVVdDNGdQQ01oRzdBQ0piQUNKVWNqUnlOaElMQUZKYkFFSlVjalJ5TmhzQVlsc0FVbFNiQUNKV0d3QVVWakl5QllZaHNoV1dPd0FVVmlZQ011SXlBZ1BJbzRJeUZaTGJBMUxMQUFGaUN3Q0VNZ0xrY2pSeU5oSUdDd0lHQm1zSUJpSXlBZ1BJbzRMYkEyTENNZ0xrYXdBaVZHVWxnZ1BGa3VzU1lCRkNzdHNEY3NJeUF1UnJBQ0pVWlFXQ0E4V1M2eEpnRVVLeTJ3T0N3aklDNUdzQUlsUmxKWUlEeFpJeUF1UnJBQ0pVWlFXQ0E4V1M2eEpnRVVLeTJ3T1N5d01Dc2pJQzVHc0FJbFJsSllJRHhaTHJFbUFSUXJMYkE2TExBeEs0b2dJRHl3QkNOQ2lqZ2pJQzVHc0FJbFJsSllJRHhaTHJFbUFSUXJzQVJETHJBbUt5MndPeXl3QUJhd0JDV3dCQ1lnTGtjalJ5TmhzQVpGS3lNZ1BDQXVJeml4SmdFVUt5MndQQ3l4Q0FRbFFyQUFGckFFSmJBRUpTQXVSeU5ISTJFZ3NBUWpRckFHUlNzZ3NHQlFXQ0N3UUZGWXN3SWdBeUFic3dJbUF4cFpRa0lqSUVld0JFT3dnR0pnSUxBQUt5Q0tpbUVnc0FKRFlHUWpzQU5EWVdSUVdMQUNRMkVic0FORFlGbXdBeVd3Z0dKaHNBSWxSbUU0SXlBOEl6Z2JJU0FnUmlOSHNBQXJJMkU0SVZteEpnRVVLeTJ3UFN5d01Dc3VzU1lCRkNzdHNENHNzREVySVNNZ0lEeXdCQ05DSXppeEpnRVVLN0FFUXk2d0ppc3RzRDhzc0FBVklFZXdBQ05Dc2dBQkFSVVVFeTZ3TENvdHNFQXNzQUFWSUVld0FDTkNzZ0FCQVJVVUV5NndMQ290c0VFc3NRQUJGQk93TFNvdHNFSXNzQzhxTGJCRExMQUFGa1VqSUM0Z1Jvb2pZVGl4SmdFVUt5MndSQ3l3Q0NOQ3NFTXJMYkJGTExJQUFEd3JMYkJHTExJQUFUd3JMYkJITExJQkFEd3JMYkJJTExJQkFUd3JMYkJKTExJQUFEMHJMYkJLTExJQUFUMHJMYkJMTExJQkFEMHJMYkJNTExJQkFUMHJMYkJOTExJQUFEa3JMYkJPTExJQUFUa3JMYkJQTExJQkFEa3JMYkJRTExJQkFUa3JMYkJSTExJQUFEc3JMYkJTTExJQUFUc3JMYkJUTExJQkFEc3JMYkJVTExJQkFUc3JMYkJWTExJQUFENHJMYkJXTExJQUFUNHJMYkJYTExJQkFENHJMYkJZTExJQkFUNHJMYkJaTExJQUFEb3JMYkJhTExJQUFUb3JMYkJiTExJQkFEb3JMYkJjTExJQkFUb3JMYkJkTExBeUt5NnhKZ0VVS3kyd1hpeXdNaXV3TmlzdHNGOHNzRElyc0RjckxiQmdMTEFBRnJBeUs3QTRLeTJ3WVN5d015c3VzU1lCRkNzdHNHSXNzRE1yc0RZckxiQmpMTEF6SzdBM0t5MndaQ3l3TXl1d09Dc3RzR1Vzc0RRckxyRW1BUlFyTGJCbUxMQTBLN0EyS3kyd1p5eXdOQ3V3TnlzdHNHZ3NzRFFyc0RnckxiQnBMTEExS3k2eEpnRVVLeTJ3YWl5d05TdXdOaXN0c0dzc3NEVXJzRGNyTGJCc0xMQTFLN0E0S3kyd2JTd3JzQWhsc0FNa1VIaXdBUlV3TFFBQUFFdTRBTWhTV0xFQkFZNVp1UWdBQ0FCaklMQUJJMFN3QXlOd3NnUW9DVVZTUkxJS0FnY3FzUVlCUkxFa0FZaFJXTEJBaUZpeEJnTkVzU1lCaUZGWXVBUUFpRml4QmdGRVdWbFpXYmdCLzRXd0JJMnhCUUJFQUFBPSkgZm9ybWF0KCd0cnVldHlwZScpLCB1cmwoZGF0YTphcHBsaWNhdGlvbi9mb250LXdvZmY7Y2hhcnNldD11dGYtODtiYXNlNjQsZDA5R1JnQUJBQUFBQUFvVUFBNEFBQUFBRVBRQUFRQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUJQVXk4eUFBQUJSQUFBQUVRQUFBQldQZUZKQVdOdFlYQUFBQUdJQUFBQU9nQUFBVXJRRWhtM1kzWjBJQUFBQWNRQUFBQVVBQUFBSEFaSi81Um1jR2R0QUFBQjJBQUFCUGtBQUFtUmlncDRPMmRoYzNBQUFBYlVBQUFBQ0FBQUFBZ0FBQUFRWjJ4NVpnQUFCdHdBQUFDdUFBQUF0dDluQkhab1pXRmtBQUFIakFBQUFEVUFBQUEyQVNzOGUyaG9aV0VBQUFmRUFBQUFJQUFBQUNRSFV3Tk5hRzEwZUFBQUIrUUFBQUFNQUFBQURBc3BBQUJzYjJOaEFBQUg4QUFBQUFnQUFBQUlBRGdBVzIxaGVIQUFBQWY0QUFBQUlBQUFBQ0FBcGdtOGJtRnRaUUFBQ0JnQUFBRjNBQUFDemN5ZEdoeHdiM04wQUFBSmtBQUFBQ29BQUFBN3JyMUFtSEJ5WlhBQUFBbThBQUFBVmdBQUFGYVNvWnIvZUp4allHVGV3VGlCZ1pXQmc2bUthUThEQTBNUGhHWjh3R0RJeU1UQXdNVEF5c3lBRlFTa3VhWXdPTHhnZU1ISUhQUS9peUdLbVp2Qkh5ak1DSklEQVBlOUMyQjRuR05nWUdCbWdHQVpCa1lHRUhBQjhoakJmQllHRFNETkJxUVpHWmdZR0Y0dy92OFBVdkNDQVVSTE1FTFZBd0VqRzhPSUJ3Qms1QWF2QUFCNG5HTmdRQU5HREViTTNQODNnakFBRUxRRDRYaWNuVlhaZHROV0ZKVThaSEFTT21TZ29BN1gzRGhRNjhxRUtSZ3dhU3JGZGlFZEhBaXRCQjJrREhUa25jYys2MnVPUXJ0V0gvbTA3bjA5SkxSMHJiWXNscysrUjF0bjJEcm5SaHdqS24wYWlHdlVvWktYQTZtc1BaWks5MGxjMTNVdmo1VU1CbkZkdGhKUFNadW9uU1JLYXQzc1VDN3hXT3NxV1NkWUorUGxJRlpQVlo1bm9BemlGQjVsU1VRYlJCdXBseVpKNG9uako0a1daeEFmSlVrZ0phTVFwOUxJVUVJMUdzUlMxYUZNNmRDcjF4TngwMERLUnFNZWRWaFU5MFBGSjhjMXA5U3NBMFlxVnpuQ0ZldlZScjRicHdNdmU1REVPc0d6clljeEhuaXNmcFFxa0lxUjZjZy9ka3BPbElhQlZISFVvVmJpNkRDVFgvZVJUQ3JOUUthTVlrV2w3b0c0M2YxMDJ4WXhQWFE2dmk1S2xVYXF1cm5PS0pydDBmR29neWdQMmNicHBOelEyZmJ3NVJsVFZLdGRjYlB0UUdZTlhFckpiSFNmUkFBZEpsTGo2UUZPTlp3Q3FSbjFSOFhaNTg4QkVzbGNsS284VlRLSGVnT1pNenQ3Y1RIdGJpZXJzbkNrbndjeWIzWjI0NTJIUTZkWGgzL1IraGRNNGN4SGorSmlmajVDK2xCcWZpSk9KS1ZHV016eXA0WWZjVmNnUXJreGlBc1h5dUJUaERsMFJkclpabDNqdFRIMmhzLzVTcWxoUFFuYTZLUDRmZ3I5VGlRckhHZFJvL1ZJbk0xajEzV3QzR2RRUzdXN0Z6c3lyME9WSXU3dkN3dXVNK2VFWVo0V0MxVmZudm5lQlRUL0JvaG4vRURlTklWTCs1WXBTclJ2bTZKTXUyaUtDdTBTVktWZE5zVVU3WW9wcG1uUG1tS0c5aDFUek5LZU16TGovOHZjNTVIN0hON3hrSnYyWGVTbWZRKzVhZDlIYnRvUGtKdFdJVGR0SGJscEx5QTNyVVp1MmxXak9uWUVHZ1pwRjFJVlFkQTBzdnBoM0ZhYjlVRFdqRFI4YVdEeUxtTEkrdXBFUjUyMXRjb2Z4WDkxNGdzSGNtbWlwN3NpRjV2aUxxL2JGajQ4M2U2cmo1cEczYkRWK01hUjhqQWVSbm9jbXRCWitjM2h2KzFOM1M2YTdqS3FNdWdCRlV3S3dBQmw3VUFDMHpyYkNhVDFtcWY0OGdkZ1hJWjR6a3BEdFZTZk80YW03K1Y1WC9leE9mRyt4KzNHTHJkY2Qza0pXZFlOY21QMjhOOVNaS3JySCtVdHJWUW5SNndySjQ5VmF4aERLcndvdXI2U2xIdTB0UnUvS0tteThsNlUxc3JuazVDYlBZTWJRbHUyN21Hd0kweHB5aVVlWGxPbEtEM1VVbzZ5UXl4dktjbzg0SlNMQzFxR3hMZ09kUTlxYThUcG9Yb1lHd3NoaHFHMHZSQndTQ2xkRmQrMHluZnhIcXRyMk9qNHhSWGg2WHB5RWhHZjRpcjdVZkJVMTBiOTZBN2F2R2JkTW9NcFZhcW4rNHhQc2EvYjlsRlphYVNPc3hlM1ZBZlhOT3NhT1JYVFQrUnI0SFJ2T0dqZEF6MVVmRFJCSTFVMXgrakdLR00wbGpYbDN3UjBNVlordzJqVll2czkzRStkcEZXc3VVdVk3SnNUOStDMHUvMHErN1djVzBiVy9kY0d2VzNraXA4ak1iOHRDdnc3QjJLM1pBM1VPNU9CR0F2SVdkQVl4aFltZHhpdWcyM0ViZlkvSnFmLzM0YUZSWEpYT3hxN2VlckQxWk5SSlhmWjhyakxUWFpaMTZNMlI5Vk9HdnNJalMwUE4rYlk0WElzdHNSZ1FiYit3Zjh4N2dGM2FWRUM0TkRJWlppSTJuU2hudXJoNmg2cnNXMDRWeElCZHMyeDQzUUFlZ0F1UWQ4Y3U5YnpDWUQxM0NQbkxzQjljZ2gyeUNINGxCeUN6OGk1QmZBNU9RUmZrRU13SUlkZ2w1dzdBQS9JSVhoSURzRWVPUVNQeU5rRStKSWNncS9JSVlqSklVakl1UTN3bUJ5Q0orUVFmRTBPd1RkR3JrNWsvcFlIMlFENnpxS2JRS21kR2h6YU9HUkdyazNZK3p4WTlvRkZaQjlhUk9xUmtlc1Q2bE1lTFBWN2kwajl3U0pTZnpSeVkwTDlpUWRML2RraVVuK3hpTlJueHBlWkl5bXZEcDd6amc3K0JKZnFyVjRBQUFBQUFRQUIvLzhBRDNpY1kyQmtBQUxtSlV3ekdFUVpaQndrK1JrWkdCbWRHSmdZbWJJWWdNd3NvR1NpaUxnSXM1QTJvd2c3STV1U09xT2FpVDJqbVpFOEk1Z1FZMTdDLzA5QlFFZmczeXQrZmg4Z3ZZUXhEMGo2OERPSmlRbjhVK0RuWnhRRGNRVUVsakxtQ3dCcEJnYkcvMy8vYjJTT1orWm00R0VRY3VBSDJzYmxETFNFbThGRlZKaEpFR2dMSDZPU0hwTWRvNUVjSTNOazBiRVhKL0xZcXZaODJWWEhHRmQ2cEtUa3lDc1F3UUFBcStRa3FBQUFlSnhqWUdSZ1lBRGl3NVZTc2ZIOE5sOFp1SmxmQUVVWXpwdk82SVhRQ2I3Ly8vN2Z5THlFbVJ2STVXQmdBb2tDQUZiL0RKQUFBQUI0bkdOZ1pHQmdEdnFmeFJERi9JS0I0ZjkzNWlVTVFCRVV3QXdBaTVZRnBnUG9BQUFENkFBQUExa0FBQUFBQUFBQU9BQmJBQUVBQUFBREFCWUFBUUFBQUFBQUFnQUdBQk1BYmdBQUFDMEprUUFBQUFCNG5IV1F5MnJDUUJTRy8vSFNpMEpiV3VpMnN5cEthYnhnTjRJZ1dIVFRicVM0TFRIR0pCSXpNaGtGWDZQdjBJZnBTL1JaK3B1TXBTaE5tTXgzdmpsejVtUUFYT01iQXZuenhKR3p3Qm1qbkFzNFJjOXlrZjdaY29uOFlybU1LdDRzbjlDL1c2N2dBWUhsS203d3dRcWlkTTVvZ1UvTEFsZmkwbklCRitMT2NwSCswWEtKM0xOY3hxMTR0WHhDNzFtdVlDSlN5MVhjaTYrQldtMTFGSVJHMWdaMTJXNjJPbks2bFlvcVN0eFl1bXNUS3AzS3ZweXJ4UGh4ckJ4UExmYzg5b04xN09wOXVKOG52azRqbGNpVzA5eXJrWi80MmpYK2JGYzkzUVJ0WStaeXJ0VlNEbTJHWEdtMThEM2poTWFzdW8zRzMvTXdnTUlLVzJoRXZLb1FCaEkxMmpybk5wcG9vVU9hTWtNeU04K0trTUJGVE9OaXpSMWh0cEl5N25QTUdTVzBQak5pc2dPUDMrV1JINU1DN285WlJSK3RIc1lUMHU2TUtQT1NmVG5zN2pCclJFcXlURGV6czkvZVUyeDRXcHZXY05ldVM1MTFKVEU4cUNGNUg3dTFCWTFINzJTM1ltaTdhUEQ5NS85K0FOMWZoRXNBZUp4allHS0FBQzRHN0lDWmdZR1JpWkdaTXprak5UazdON0VvbXkwNXN5ZzVKNVdCQVFCRTFRWkJBQUJMdUFESVVsaXhBUUdPV2JrSUFBZ0FZeUN3QVNORXNBTWpjTElFS0FsRlVrU3lDZ0lIS3JFR0FVU3hKQUdJVVZpd1FJaFlzUVlEUkxFbUFZaFJXTGdFQUloWXNRWUJSRmxaV1ZtNEFmK0ZzQVNOc1FVQVJBQUEpIGZvcm1hdCgnd29mZicpO1xufVxuLnVpLnN0ZXBzIC5zdGVwLmNvbXBsZXRlZCA+IC5pY29uOmJlZm9yZSxcbi51aS5vcmRlcmVkLnN0ZXBzIC5zdGVwLmNvbXBsZXRlZDpiZWZvcmUge1xuICBmb250LWZhbWlseTogJ1N0ZXAnO1xuICBjb250ZW50OiAnXFxlODAwJztcbiAgLyogJ+6ggCcgKi9cbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIE92ZXJyaWRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIENvbGxlY3Rpb25zICovXG4vKiFcbiAqICMgU2VtYW50aWMgVUkgLSBCcmVhZGNydW1iXG4gKiBodHRwOi8vZ2l0aHViLmNvbS9zZW1hbnRpYy1vcmcvc2VtYW50aWMtdWkvXG4gKlxuICpcbiAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZVxuICogaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVFxuICpcbiAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLypcblxu4paI4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWXICDilojilojilZfilojilojilojilojilojilojilojilZfilojilojilojilZcgICDilojilojilojilZfilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZdcbuKVmuKVkOKVkOKWiOKWiOKVlOKVkOKVkOKVneKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWd4paI4paI4paI4paI4pWXIOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVnVxuICAg4paI4paI4pWRICAg4paI4paI4paI4paI4paI4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilZTilojilojilojilojilZTilojilojilZHilojilojilojilojilojilZcgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl1xuICAg4paI4paI4pWRICAg4paI4paI4pWU4pWQ4pWQ4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilojilojilZHilZrilojilojilZTilZ3ilojilojilZHilojilojilZTilZDilZDilZ0gIOKVmuKVkOKVkOKVkOKVkOKWiOKWiOKVkVxuICAg4paI4paI4pWRICAg4paI4paI4pWRICDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilZEg4pWa4pWQ4pWdIOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkVxuICAg4pWa4pWQ4pWdICAg4pWa4pWQ4pWdICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZ0gICAgIOKVmuKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVnVxuXG4qL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgVGhlbWUgU2VsZWN0aW9uXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogVG8gb3ZlcnJpZGUgYSB0aGVtZSBmb3IgYW4gaW5kaXZpZHVhbCBlbGVtZW50XG4gICBzcGVjaWZ5IHRoZW1lIG5hbWUgYmVsb3dcbiovXG4vKiBHbG9iYWwgKi9cbi8qIEVsZW1lbnRzICovXG4vKiBDb2xsZWN0aW9ucyAqL1xuLyogTW9kdWxlcyAqL1xuLyogVmlld3MgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBGb2xkZXJzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogUGF0aCB0byB0aGVtZSBwYWNrYWdlcyAqL1xuLyogUGF0aCB0byBzaXRlIG92ZXJyaWRlIGZvbGRlciAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIEltcG9ydCBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIEltcG9ydCBEaXJlY3RpdmVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBUaGVtZVxuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICBTaXRlIFZhcmlhYmxlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERlZmF1bHQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZG9ycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBQYWNrYWdlZCBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kb3JzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIENvbXBvbmVudCdzIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRvcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogU2l0ZSB0aGVtZSBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgVXNlciBHbG9iYWwgVmFyaWFibGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogbWFyc28gY29sb3JzICovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gQ29tcG9uZW50IFZhcmlhYmxlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERlZmF1bHQgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgQnJlYWRjcnVtYlxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVhZGNydW1iXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBDb3VwbGluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgU3RhdGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQYWNrYWdlZCBUaGVtZSAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICBCcmVhZGNydW1iXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFkY3J1bWJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIENvdXBsaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBTdGF0ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNpdGUgVGhlbWUgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIE92ZXJyaWRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgTWl4LWluc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgT3ZlcnJpZGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEVuZCBDb25maWcgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIEJyZWFkY3J1bWJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4udWkuYnJlYWRjcnVtYiB7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1hcmdpbjogMGVtIDBlbTtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cbi51aS5icmVhZGNydW1iOmZpcnN0LWNoaWxkIHtcbiAgbWFyZ2luLXRvcDogMGVtO1xufVxuLnVpLmJyZWFkY3J1bWI6bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1ib3R0b206IDBlbTtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgQ29udGVudFxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIERpdmlkZXIgKi9cbi51aS5icmVhZGNydW1iIC5kaXZpZGVyIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBvcGFjaXR5OiAwLjc7XG4gIG1hcmdpbjogMGVtIDAuM3JlbSAwZW07XG4gIGZvbnQtc2l6ZTogMC45ZW07XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNCk7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbn1cbi8qIExpbmsgKi9cbi51aS5icmVhZGNydW1iIGEge1xuICBjb2xvcjogIzQxODNDNDtcbn1cbi51aS5icmVhZGNydW1iIGE6aG92ZXIge1xuICBjb2xvcjogIzFlNzBiZjtcbn1cbi8qIEljb24gRGl2aWRlciAqL1xuLnVpLmJyZWFkY3J1bWIgLmljb24uZGl2aWRlciB7XG4gIGZvbnQtc2l6ZTogMC45ZW07XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbn1cbi8qIFNlY3Rpb24gKi9cbi51aS5icmVhZGNydW1iIGEuc2VjdGlvbiB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbi51aS5icmVhZGNydW1iIC5zZWN0aW9uIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXJnaW46IDBlbTtcbiAgcGFkZGluZzogMGVtO1xufVxuLyogTG9vc2UgQ291cGxpbmcgKi9cbi51aS5icmVhZGNydW1iLnNlZ21lbnQge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBhZGRpbmc6IDAuOGVtIDFlbTtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4udWkuYnJlYWRjcnVtYiAuYWN0aXZlLnNlY3Rpb24ge1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFZhcmlhdGlvbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4udWkubWluaS5icmVhZGNydW1iIHtcbiAgZm9udC1zaXplOiAwLjhyZW07XG59XG4udWkudGlueS5icmVhZGNydW1iIHtcbiAgZm9udC1zaXplOiAwLjlyZW07XG59XG4udWkuc21hbGwuYnJlYWRjcnVtYiB7XG4gIGZvbnQtc2l6ZTogMC45cmVtO1xufVxuLnVpLmJyZWFkY3J1bWIge1xuICBmb250LXNpemU6IDFyZW07XG59XG4udWkubGFyZ2UuYnJlYWRjcnVtYiB7XG4gIGZvbnQtc2l6ZTogMS4xcmVtO1xufVxuLnVpLmJpZy5icmVhZGNydW1iIHtcbiAgZm9udC1zaXplOiAxLjNyZW07XG59XG4udWkuaHVnZS5icmVhZGNydW1iIHtcbiAgZm9udC1zaXplOiAxLjRyZW07XG59XG4udWkubWFzc2l2ZS5icmVhZGNydW1iIHtcbiAgZm9udC1zaXplOiAxLjdyZW07XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgVGhlbWUgT3ZlcnJpZGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgT3ZlcnJpZGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyohXG4gKiAjIFNlbWFudGljIFVJIC0gRm9ybVxuICogaHR0cDovL2dpdGh1Yi5jb20vc2VtYW50aWMtb3JnL3NlbWFudGljLXVpL1xuICpcbiAqXG4gKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2VcbiAqIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVRcbiAqXG4gKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qXG5cbuKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVlyAg4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4pWXICAg4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWXXG7ilZrilZDilZDilojilojilZTilZDilZDilZ3ilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKWiOKWiOKVlyDilojilojilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilZTilZDilZDilZDilZDilZ1cbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4pWU4paI4paI4paI4paI4pWU4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilojilojilojilojilojilZdcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVlOKVkOKVkOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4paI4paI4pWR4pWa4paI4paI4pWU4pWd4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilZrilZDilZDilZDilZDilojilojilZFcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWRIOKVmuKVkOKVnSDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZFcbiAgIOKVmuKVkOKVnSAgIOKVmuKVkOKVnSAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWdICAgICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ1cblxuKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIFRoZW1lIFNlbGVjdGlvblxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFRvIG92ZXJyaWRlIGEgdGhlbWUgZm9yIGFuIGluZGl2aWR1YWwgZWxlbWVudFxuICAgc3BlY2lmeSB0aGVtZSBuYW1lIGJlbG93XG4qL1xuLyogR2xvYmFsICovXG4vKiBFbGVtZW50cyAqL1xuLyogQ29sbGVjdGlvbnMgKi9cbi8qIE1vZHVsZXMgKi9cbi8qIFZpZXdzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgRm9sZGVyc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFBhdGggdG8gdGhlbWUgcGFja2FnZXMgKi9cbi8qIFBhdGggdG8gc2l0ZSBvdmVycmlkZSBmb2xkZXIgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBJbXBvcnQgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBJbXBvcnQgRGlyZWN0aXZlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgVGhlbWVcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgU2l0ZSBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0IHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRvcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogUGFja2FnZWQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZG9ycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBDb21wb25lbnQncyBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kb3JzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFNpdGUgdGhlbWUgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgIFVzZXIgR2xvYmFsIFZhcmlhYmxlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIG1hcnNvIGNvbG9ycyAqL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuIENvbXBvbmVudCBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0ICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIEZvcm1cbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbGVtZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9ybSAqL1xuLyogVGV4dCAqL1xuLyogRmllbGQgKi9cbi8qIEZpZWxkcyAqL1xuLyogRm9ybSBMYWJlbCAqL1xuLyogSW5wdXQgKi9cbi8qIFNlbGVjdCAqL1xuLyogVGV4dCBBcmVhICovXG4vKiBDaGVja2JveCAqL1xuLyogSW5saW5lIFZhbGlkYXRpb24gUHJvbXB0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU3RhdGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb2N1cyAqL1xuLyogSW5wdXQgRm9jdXMgKi9cbi8qIFRleHQgQXJlYSBGb2N1cyAqL1xuLyogRGlzYWJsZWQgKi9cbi8qIEVycm9yZWQgSW5wdXQgKi9cbi8qIEF1dG9GaWxsICovXG4vKiBJbnB1dCBFcnJvciAqL1xuLyogRHJvcGRvd24gRXJyb3IgKi9cbi8qIEZvY3VzZWQgRXJyb3IgKi9cbi8qIFBsYWNlaG9sZGVyIEVycm9yICovXG4vKiBMb2FkaW5nIERpbW1lciAqL1xuLyogTG9hZGluZyBTcGlubmVyICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgVHlwZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFJlcXVpcmVkICovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBWYXJpYXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBHcm91cGVkIEZpZWxkcyAqL1xuLyogSW5saW5lICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBHcm91cHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBhY2thZ2VkIFRoZW1lICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIEZvcm1cbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbGVtZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9ybSAqL1xuLyogVGV4dCAqL1xuLyogRmllbGQgKi9cbi8qIEZpZWxkcyAqL1xuLyogRm9ybSBMYWJlbCAqL1xuLyogSW5wdXQgKi9cbi8qIFNlbGVjdCAqL1xuLyogVGV4dCBBcmVhICovXG4vKiBDaGVja2JveCAqL1xuLyogSW5saW5lIFZhbGlkYXRpb24gUHJvbXB0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU3RhdGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb2N1cyAqL1xuLyogSW5wdXQgRm9jdXMgKi9cbi8qIFRleHQgQXJlYSBGb2N1cyAqL1xuLyogRGlzYWJsZWQgKi9cbi8qIEVycm9yZWQgSW5wdXQgKi9cbi8qIEF1dG9GaWxsICovXG4vKiBJbnB1dCBFcnJvciAqL1xuLyogRHJvcGRvd24gRXJyb3IgKi9cbi8qIEZvY3VzZWQgRXJyb3IgKi9cbi8qIFBsYWNlaG9sZGVyIEVycm9yICovXG4vKiBMb2FkaW5nIERpbW1lciAqL1xuLyogTG9hZGluZyBTcGlubmVyICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgVHlwZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFJlcXVpcmVkICovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBWYXJpYXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBHcm91cGVkIEZpZWxkcyAqL1xuLyogSW5saW5lICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBHcm91cHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNpdGUgVGhlbWUgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgVXNlciBWYXJpYWJsZSBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIE1peC1pbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE92ZXJyaWRlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBFbmQgQ29uZmlnICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgRWxlbWVudHNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvcm1cbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkuZm9ybSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWF4LXdpZHRoOiAxMDAlO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBDb250ZW50XG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmZvcm0gPiBwIHtcbiAgbWFyZ2luOiAxZW0gMGVtO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGaWVsZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5mb3JtIC5maWVsZCB7XG4gIGNsZWFyOiBib3RoO1xuICBtYXJnaW46IDBlbSAwZW0gMWVtO1xufVxuLnVpLmZvcm0gLmZpZWxkOmxhc3QtY2hpbGQsXG4udWkuZm9ybSAuZmllbGRzOmxhc3QtY2hpbGQgLmZpZWxkIHtcbiAgbWFyZ2luLWJvdHRvbTogMGVtO1xufVxuLnVpLmZvcm0gLmZpZWxkcyAuZmllbGQge1xuICBjbGVhcjogYm90aDtcbiAgbWFyZ2luOiAwZW07XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIExhYmVsc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5mb3JtIC5maWVsZCA+IGxhYmVsIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbjogMGVtIDBlbSAwLjRyZW0gMGVtO1xuICBjb2xvcjogIzMzMzMzMztcbiAgZm9udC1zaXplOiAwLjllbTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFN0YW5kYXJkIElucHV0c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5mb3JtIHRleHRhcmVhLFxuLnVpLmZvcm0gaW5wdXQ6bm90KFt0eXBlXSksXG4udWkuZm9ybSBpbnB1dFt0eXBlPVwiZGF0ZVwiXSxcbi51aS5mb3JtIGlucHV0W3R5cGU9XCJkYXRldGltZS1sb2NhbFwiXSxcbi51aS5mb3JtIGlucHV0W3R5cGU9XCJlbWFpbFwiXSxcbi51aS5mb3JtIGlucHV0W3R5cGU9XCJudW1iZXJcIl0sXG4udWkuZm9ybSBpbnB1dFt0eXBlPVwicGFzc3dvcmRcIl0sXG4udWkuZm9ybSBpbnB1dFt0eXBlPVwic2VhcmNoXCJdLFxuLnVpLmZvcm0gaW5wdXRbdHlwZT1cInRlbFwiXSxcbi51aS5mb3JtIGlucHV0W3R5cGU9XCJ0aW1lXCJdLFxuLnVpLmZvcm0gaW5wdXRbdHlwZT1cInRleHRcIl0sXG4udWkuZm9ybSBpbnB1dFt0eXBlPVwiZmlsZVwiXSxcbi51aS5mb3JtIGlucHV0W3R5cGU9XCJ1cmxcIl0ge1xuICB3aWR0aDogMTAwJTtcbiAgdmVydGljYWwtYWxpZ246IHRvcDtcbn1cbi8qIFNldCBtYXggaGVpZ2h0IG9uIHVudXN1YWwgaW5wdXQgKi9cbi51aS5mb3JtIDo6LXdlYmtpdC1kYXRldGltZS1lZGl0LFxuLnVpLmZvcm0gOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uIHtcbiAgaGVpZ2h0OiAxLjIxNDI4NTcxZW07XG59XG4udWkuZm9ybSBpbnB1dDpub3QoW3R5cGVdKSxcbi51aS5mb3JtIGlucHV0W3R5cGU9XCJkYXRlXCJdLFxuLnVpLmZvcm0gaW5wdXRbdHlwZT1cImRhdGV0aW1lLWxvY2FsXCJdLFxuLnVpLmZvcm0gaW5wdXRbdHlwZT1cImVtYWlsXCJdLFxuLnVpLmZvcm0gaW5wdXRbdHlwZT1cIm51bWJlclwiXSxcbi51aS5mb3JtIGlucHV0W3R5cGU9XCJwYXNzd29yZFwiXSxcbi51aS5mb3JtIGlucHV0W3R5cGU9XCJzZWFyY2hcIl0sXG4udWkuZm9ybSBpbnB1dFt0eXBlPVwidGVsXCJdLFxuLnVpLmZvcm0gaW5wdXRbdHlwZT1cInRpbWVcIl0sXG4udWkuZm9ybSBpbnB1dFt0eXBlPVwidGV4dFwiXSxcbi51aS5mb3JtIGlucHV0W3R5cGU9XCJmaWxlXCJdLFxuLnVpLmZvcm0gaW5wdXRbdHlwZT1cInVybFwiXSB7XG4gIGZvbnQtZmFtaWx5OiAnRXhvIDInLCAnTGF0bycsIEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7XG4gIG1hcmdpbjogMGVtO1xuICBvdXRsaW5lOiBub25lO1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIHRhcC1oaWdobGlnaHQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMCk7XG4gIGxpbmUtaGVpZ2h0OiAxLjIxNDI4NTcxZW07XG4gIHBhZGRpbmc6IDAuOTkyODU3MTRlbSAxLjRlbTtcbiAgZm9udC1zaXplOiAxZW07XG4gIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMzQsIDM2LCAzOCwgMC4xNSk7XG4gIGNvbG9yOiAjMzMzMzMzO1xuICBib3JkZXItcmFkaXVzOiAwLjRyZW07XG4gIGJveC1zaGFkb3c6IDBlbSAwZW0gMGVtIDBlbSB0cmFuc3BhcmVudCBpbnNldDtcbiAgdHJhbnNpdGlvbjogY29sb3IgMC4xcyBlYXNlLCBib3JkZXItY29sb3IgMC4xcyBlYXNlO1xufVxuLyogVGV4dCBBcmVhICovXG4udWkuZm9ybSB0ZXh0YXJlYSB7XG4gIG1hcmdpbjogMGVtO1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIHRhcC1oaWdobGlnaHQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMCk7XG4gIHBhZGRpbmc6IDEuMWVtIDEuNGVtO1xuICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpO1xuICBvdXRsaW5lOiBub25lO1xuICBjb2xvcjogIzMzMzMzMztcbiAgYm9yZGVyLXJhZGl1czogMC40cmVtO1xuICBib3gtc2hhZG93OiAwZW0gMGVtIDBlbSAwZW0gdHJhbnNwYXJlbnQgaW5zZXQ7XG4gIHRyYW5zaXRpb246IGNvbG9yIDAuMXMgZWFzZSwgYm9yZGVyLWNvbG9yIDAuMXMgZWFzZTtcbiAgZm9udC1zaXplOiAxZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjI4NTc7XG4gIHJlc2l6ZTogdmVydGljYWw7XG59XG4udWkuZm9ybSB0ZXh0YXJlYTpub3QoW3Jvd3NdKSB7XG4gIGhlaWdodDogMTJlbTtcbiAgbWluLWhlaWdodDogOGVtO1xuICBtYXgtaGVpZ2h0OiAyNGVtO1xufVxuLnVpLmZvcm0gdGV4dGFyZWEsXG4udWkuZm9ybSBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0ge1xuICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBJbnB1dCB3LyBhdHRhY2hlZCBCdXR0b25cbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkuZm9ybSBpbnB1dC5hdHRhY2hlZCB7XG4gIHdpZHRoOiBhdXRvO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCYXNpYyBTZWxlY3Rcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkuZm9ybSBzZWxlY3Qge1xuICBkaXNwbGF5OiBibG9jaztcbiAgaGVpZ2h0OiBhdXRvO1xuICB3aWR0aDogMTAwJTtcbiAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgzNCwgMzYsIDM4LCAwLjE1KTtcbiAgYm9yZGVyLXJhZGl1czogMC40cmVtO1xuICBib3gtc2hhZG93OiAwZW0gMGVtIDBlbSAwZW0gdHJhbnNwYXJlbnQgaW5zZXQ7XG4gIHBhZGRpbmc6IDAuNjJlbSAxLjRlbTtcbiAgY29sb3I6ICMzMzMzMzM7XG4gIHRyYW5zaXRpb246IGNvbG9yIDAuMXMgZWFzZSwgYm9yZGVyLWNvbG9yIDAuMXMgZWFzZTtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBEcm9wZG93blxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEJsb2NrICovXG4udWkuZm9ybSAuZmllbGQgPiAuc2VsZWN0aW9uLmRyb3Bkb3duIHtcbiAgd2lkdGg6IDEwMCU7XG59XG4udWkuZm9ybSAuZmllbGQgPiAuc2VsZWN0aW9uLmRyb3Bkb3duID4gLmRyb3Bkb3duLmljb24ge1xuICBmbG9hdDogcmlnaHQ7XG59XG4vKiBJbmxpbmUgKi9cbi51aS5mb3JtIC5pbmxpbmUuZmllbGRzIC5maWVsZCA+IC5zZWxlY3Rpb24uZHJvcGRvd24sXG4udWkuZm9ybSAuaW5saW5lLmZpZWxkID4gLnNlbGVjdGlvbi5kcm9wZG93biB7XG4gIHdpZHRoOiBhdXRvO1xufVxuLnVpLmZvcm0gLmlubGluZS5maWVsZHMgLmZpZWxkID4gLnNlbGVjdGlvbi5kcm9wZG93biA+IC5kcm9wZG93bi5pY29uLFxuLnVpLmZvcm0gLmlubGluZS5maWVsZCA+IC5zZWxlY3Rpb24uZHJvcGRvd24gPiAuZHJvcGRvd24uaWNvbiB7XG4gIGZsb2F0OiBub25lO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIFVJIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogQmxvY2sgKi9cbi51aS5mb3JtIC5maWVsZCAudWkuaW5wdXQsXG4udWkuZm9ybSAuZmllbGRzIC5maWVsZCAudWkuaW5wdXQsXG4udWkuZm9ybSAud2lkZS5maWVsZCAudWkuaW5wdXQge1xuICB3aWR0aDogMTAwJTtcbn1cbi8qIElubGluZSAgKi9cbi51aS5mb3JtIC5pbmxpbmUuZmllbGRzIC5maWVsZDpub3QoLndpZGUpIC51aS5pbnB1dCxcbi51aS5mb3JtIC5pbmxpbmUuZmllbGQ6bm90KC53aWRlKSAudWkuaW5wdXQge1xuICB3aWR0aDogYXV0bztcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cbi8qIEF1dG8gSW5wdXQgKi9cbi51aS5mb3JtIC5maWVsZHMgLmZpZWxkIC51aS5pbnB1dCBpbnB1dCxcbi51aS5mb3JtIC5maWVsZCAudWkuaW5wdXQgaW5wdXQge1xuICB3aWR0aDogYXV0bztcbn1cbi8qIEZ1bGwgV2lkdGggSW5wdXQgKi9cbi51aS5mb3JtIC50ZW4uZmllbGRzIC51aS5pbnB1dCBpbnB1dCxcbi51aS5mb3JtIC5uaW5lLmZpZWxkcyAudWkuaW5wdXQgaW5wdXQsXG4udWkuZm9ybSAuZWlnaHQuZmllbGRzIC51aS5pbnB1dCBpbnB1dCxcbi51aS5mb3JtIC5zZXZlbi5maWVsZHMgLnVpLmlucHV0IGlucHV0LFxuLnVpLmZvcm0gLnNpeC5maWVsZHMgLnVpLmlucHV0IGlucHV0LFxuLnVpLmZvcm0gLmZpdmUuZmllbGRzIC51aS5pbnB1dCBpbnB1dCxcbi51aS5mb3JtIC5mb3VyLmZpZWxkcyAudWkuaW5wdXQgaW5wdXQsXG4udWkuZm9ybSAudGhyZWUuZmllbGRzIC51aS5pbnB1dCBpbnB1dCxcbi51aS5mb3JtIC50d28uZmllbGRzIC51aS5pbnB1dCBpbnB1dCxcbi51aS5mb3JtIC53aWRlLmZpZWxkIC51aS5pbnB1dCBpbnB1dCB7XG4gIGZsZXg6IDEgMCBhdXRvO1xuICB3aWR0aDogMHB4O1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgVHlwZXMgb2YgTWVzc2FnZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkuZm9ybSAuc3VjY2Vzcy5tZXNzYWdlLFxuLnVpLmZvcm0gLndhcm5pbmcubWVzc2FnZSxcbi51aS5mb3JtIC5lcnJvci5tZXNzYWdlIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi8qIEFzc3VtcHRpb25zICovXG4udWkuZm9ybSAubWVzc2FnZTpmaXJzdC1jaGlsZCB7XG4gIG1hcmdpbi10b3A6IDBweDtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgIFZhbGlkYXRpb24gUHJvbXB0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmZvcm0gLmZpZWxkIC5wcm9tcHQubGFiZWwge1xuICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xuICBiYWNrZ3JvdW5kOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNFMEI0QjQgIWltcG9ydGFudDtcbiAgY29sb3I6ICM5RjNBMzggIWltcG9ydGFudDtcbn1cbi51aS5mb3JtIC5pbmxpbmUuZmllbGRzIC5maWVsZCAucHJvbXB0LFxuLnVpLmZvcm0gLmlubGluZS5maWVsZCAucHJvbXB0IHtcbiAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgbWFyZ2luOiAtMC4yNWVtIDBlbSAtMC41ZW0gMC41ZW07XG59XG4udWkuZm9ybSAuaW5saW5lLmZpZWxkcyAuZmllbGQgLnByb21wdDpiZWZvcmUsXG4udWkuZm9ybSAuaW5saW5lLmZpZWxkIC5wcm9tcHQ6YmVmb3JlIHtcbiAgYm9yZGVyLXdpZHRoOiAwcHggMHB4IDFweCAxcHg7XG4gIGJvdHRvbTogYXV0bztcbiAgcmlnaHQ6IGF1dG87XG4gIHRvcDogNTAlO1xuICBsZWZ0OiAwZW07XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQXV0b2ZpbGxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5mb3JtIC5maWVsZC5maWVsZCBpbnB1dDotd2Via2l0LWF1dG9maWxsIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMTAwcHggI0ZGRkZGMCBpbnNldCAhaW1wb3J0YW50O1xuICBib3JkZXItY29sb3I6ICNFNURGQTEgIWltcG9ydGFudDtcbn1cbi8qIEZvY3VzICovXG4udWkuZm9ybSAuZmllbGQuZmllbGQgaW5wdXQ6LXdlYmtpdC1hdXRvZmlsbDpmb2N1cyB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDEwMHB4ICNGRkZGRjAgaW5zZXQgIWltcG9ydGFudDtcbiAgYm9yZGVyLWNvbG9yOiAjRDVDMzE1ICFpbXBvcnRhbnQ7XG59XG4vKiBFcnJvciAqL1xuLnVpLmZvcm0gLmVycm9yLmVycm9yIGlucHV0Oi13ZWJraXQtYXV0b2ZpbGwge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxMDBweCAjRkZGQUYwIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1jb2xvcjogI0UwQjRCNCAhaW1wb3J0YW50O1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGxhY2Vob2xkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBicm93c2VycyByZXF1aXJlIHRoZXNlIHJ1bGVzIHNlcGFyYXRlICovXG4udWkuZm9ybSA6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIge1xuICBjb2xvcjogI2YyZjJmMjtcbn1cbi51aS5mb3JtIDotbXMtaW5wdXQtcGxhY2Vob2xkZXIge1xuICBjb2xvcjogI2YyZjJmMjtcbn1cbi51aS5mb3JtIDo6LW1vei1wbGFjZWhvbGRlciB7XG4gIGNvbG9yOiAjZjJmMmYyO1xufVxuLnVpLmZvcm0gOmZvY3VzOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIHtcbiAgY29sb3I6ICNhNmE2YTY7XG59XG4udWkuZm9ybSA6Zm9jdXM6LW1zLWlucHV0LXBsYWNlaG9sZGVyIHtcbiAgY29sb3I6ICNhNmE2YTY7XG59XG4udWkuZm9ybSA6Zm9jdXM6Oi1tb3otcGxhY2Vob2xkZXIge1xuICBjb2xvcjogI2E2YTZhNjtcbn1cbi8qIEVycm9yIFBsYWNlaG9sZGVyICovXG4udWkuZm9ybSAuZXJyb3IgOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIHtcbiAgY29sb3I6ICNlN2JkYmM7XG59XG4udWkuZm9ybSAuZXJyb3IgOi1tcy1pbnB1dC1wbGFjZWhvbGRlciB7XG4gIGNvbG9yOiAjZTdiZGJjICFpbXBvcnRhbnQ7XG59XG4udWkuZm9ybSAuZXJyb3IgOjotbW96LXBsYWNlaG9sZGVyIHtcbiAgY29sb3I6ICNlN2JkYmM7XG59XG4udWkuZm9ybSAuZXJyb3IgOmZvY3VzOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIHtcbiAgY29sb3I6ICNkYTk3OTY7XG59XG4udWkuZm9ybSAuZXJyb3IgOmZvY3VzOi1tcy1pbnB1dC1wbGFjZWhvbGRlciB7XG4gIGNvbG9yOiAjZGE5Nzk2ICFpbXBvcnRhbnQ7XG59XG4udWkuZm9ybSAuZXJyb3IgOmZvY3VzOjotbW96LXBsYWNlaG9sZGVyIHtcbiAgY29sb3I6ICNkYTk3OTY7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmZvcm0gaW5wdXQ6bm90KFt0eXBlXSk6Zm9jdXMsXG4udWkuZm9ybSBpbnB1dFt0eXBlPVwiZGF0ZVwiXTpmb2N1cyxcbi51aS5mb3JtIGlucHV0W3R5cGU9XCJkYXRldGltZS1sb2NhbFwiXTpmb2N1cyxcbi51aS5mb3JtIGlucHV0W3R5cGU9XCJlbWFpbFwiXTpmb2N1cyxcbi51aS5mb3JtIGlucHV0W3R5cGU9XCJudW1iZXJcIl06Zm9jdXMsXG4udWkuZm9ybSBpbnB1dFt0eXBlPVwicGFzc3dvcmRcIl06Zm9jdXMsXG4udWkuZm9ybSBpbnB1dFt0eXBlPVwic2VhcmNoXCJdOmZvY3VzLFxuLnVpLmZvcm0gaW5wdXRbdHlwZT1cInRlbFwiXTpmb2N1cyxcbi51aS5mb3JtIGlucHV0W3R5cGU9XCJ0aW1lXCJdOmZvY3VzLFxuLnVpLmZvcm0gaW5wdXRbdHlwZT1cInRleHRcIl06Zm9jdXMsXG4udWkuZm9ybSBpbnB1dFt0eXBlPVwiZmlsZVwiXTpmb2N1cyxcbi51aS5mb3JtIGlucHV0W3R5cGU9XCJ1cmxcIl06Zm9jdXMge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjk1KTtcbiAgYm9yZGVyLWNvbG9yOiAjODVCN0Q5O1xuICBib3JkZXItcmFkaXVzOiAwLjRyZW07XG4gIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gIGJveC1zaGFkb3c6IDBweCAwZW0gMGVtIDBlbSByZ2JhKDM0LCAzNiwgMzgsIDAuMzUpIGluc2V0O1xufVxuLnVpLmZvcm0gdGV4dGFyZWE6Zm9jdXMge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjk1KTtcbiAgYm9yZGVyLWNvbG9yOiAjODVCN0Q5O1xuICBib3JkZXItcmFkaXVzOiAwLjRyZW07XG4gIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gIGJveC1zaGFkb3c6IDBweCAwZW0gMGVtIDBlbSByZ2JhKDM0LCAzNiwgMzgsIDAuMzUpIGluc2V0O1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFN1Y2Nlc3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBPbiBGb3JtICovXG4udWkuZm9ybS5zdWNjZXNzIC5zdWNjZXNzLm1lc3NhZ2U6bm90KDplbXB0eSkge1xuICBkaXNwbGF5OiBibG9jaztcbn1cbi51aS5mb3JtLnN1Y2Nlc3MgLmNvbXBhY3Quc3VjY2Vzcy5tZXNzYWdlOm5vdCg6ZW1wdHkpIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuLnVpLmZvcm0uc3VjY2VzcyAuaWNvbi5zdWNjZXNzLm1lc3NhZ2U6bm90KDplbXB0eSkge1xuICBkaXNwbGF5OiBmbGV4O1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBXYXJuaW5nXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogT24gRm9ybSAqL1xuLnVpLmZvcm0ud2FybmluZyAud2FybmluZy5tZXNzYWdlOm5vdCg6ZW1wdHkpIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG4udWkuZm9ybS53YXJuaW5nIC5jb21wYWN0Lndhcm5pbmcubWVzc2FnZTpub3QoOmVtcHR5KSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cbi51aS5mb3JtLndhcm5pbmcgLmljb24ud2FybmluZy5tZXNzYWdlOm5vdCg6ZW1wdHkpIHtcbiAgZGlzcGxheTogZmxleDtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRXJyb3Jcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBPbiBGb3JtICovXG4udWkuZm9ybS5lcnJvciAuZXJyb3IubWVzc2FnZTpub3QoOmVtcHR5KSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuLnVpLmZvcm0uZXJyb3IgLmNvbXBhY3QuZXJyb3IubWVzc2FnZTpub3QoOmVtcHR5KSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cbi51aS5mb3JtLmVycm9yIC5pY29uLmVycm9yLm1lc3NhZ2U6bm90KDplbXB0eSkge1xuICBkaXNwbGF5OiBmbGV4O1xufVxuLyogT24gRmllbGQocykgKi9cbi51aS5mb3JtIC5maWVsZHMuZXJyb3IgLmZpZWxkIGxhYmVsLFxuLnVpLmZvcm0gLmZpZWxkLmVycm9yIGxhYmVsLFxuLnVpLmZvcm0gLmZpZWxkcy5lcnJvciAuZmllbGQgLmlucHV0LFxuLnVpLmZvcm0gLmZpZWxkLmVycm9yIC5pbnB1dCB7XG4gIGNvbG9yOiAjOUYzQTM4O1xufVxuLnVpLmZvcm0gLmZpZWxkcy5lcnJvciAuZmllbGQgLmNvcm5lci5sYWJlbCxcbi51aS5mb3JtIC5maWVsZC5lcnJvciAuY29ybmVyLmxhYmVsIHtcbiAgYm9yZGVyLWNvbG9yOiAjOUYzQTM4O1xuICBjb2xvcjogI2ZmZmZmZjtcbn1cbi51aS5mb3JtIC5maWVsZHMuZXJyb3IgLmZpZWxkIHRleHRhcmVhLFxuLnVpLmZvcm0gLmZpZWxkcy5lcnJvciAuZmllbGQgc2VsZWN0LFxuLnVpLmZvcm0gLmZpZWxkcy5lcnJvciAuZmllbGQgaW5wdXQ6bm90KFt0eXBlXSksXG4udWkuZm9ybSAuZmllbGRzLmVycm9yIC5maWVsZCBpbnB1dFt0eXBlPVwiZGF0ZVwiXSxcbi51aS5mb3JtIC5maWVsZHMuZXJyb3IgLmZpZWxkIGlucHV0W3R5cGU9XCJkYXRldGltZS1sb2NhbFwiXSxcbi51aS5mb3JtIC5maWVsZHMuZXJyb3IgLmZpZWxkIGlucHV0W3R5cGU9XCJlbWFpbFwiXSxcbi51aS5mb3JtIC5maWVsZHMuZXJyb3IgLmZpZWxkIGlucHV0W3R5cGU9XCJudW1iZXJcIl0sXG4udWkuZm9ybSAuZmllbGRzLmVycm9yIC5maWVsZCBpbnB1dFt0eXBlPVwicGFzc3dvcmRcIl0sXG4udWkuZm9ybSAuZmllbGRzLmVycm9yIC5maWVsZCBpbnB1dFt0eXBlPVwic2VhcmNoXCJdLFxuLnVpLmZvcm0gLmZpZWxkcy5lcnJvciAuZmllbGQgaW5wdXRbdHlwZT1cInRlbFwiXSxcbi51aS5mb3JtIC5maWVsZHMuZXJyb3IgLmZpZWxkIGlucHV0W3R5cGU9XCJ0aW1lXCJdLFxuLnVpLmZvcm0gLmZpZWxkcy5lcnJvciAuZmllbGQgaW5wdXRbdHlwZT1cInRleHRcIl0sXG4udWkuZm9ybSAuZmllbGRzLmVycm9yIC5maWVsZCBpbnB1dFt0eXBlPVwiZmlsZVwiXSxcbi51aS5mb3JtIC5maWVsZHMuZXJyb3IgLmZpZWxkIGlucHV0W3R5cGU9XCJ1cmxcIl0sXG4udWkuZm9ybSAuZmllbGQuZXJyb3IgdGV4dGFyZWEsXG4udWkuZm9ybSAuZmllbGQuZXJyb3Igc2VsZWN0LFxuLnVpLmZvcm0gLmZpZWxkLmVycm9yIGlucHV0Om5vdChbdHlwZV0pLFxuLnVpLmZvcm0gLmZpZWxkLmVycm9yIGlucHV0W3R5cGU9XCJkYXRlXCJdLFxuLnVpLmZvcm0gLmZpZWxkLmVycm9yIGlucHV0W3R5cGU9XCJkYXRldGltZS1sb2NhbFwiXSxcbi51aS5mb3JtIC5maWVsZC5lcnJvciBpbnB1dFt0eXBlPVwiZW1haWxcIl0sXG4udWkuZm9ybSAuZmllbGQuZXJyb3IgaW5wdXRbdHlwZT1cIm51bWJlclwiXSxcbi51aS5mb3JtIC5maWVsZC5lcnJvciBpbnB1dFt0eXBlPVwicGFzc3dvcmRcIl0sXG4udWkuZm9ybSAuZmllbGQuZXJyb3IgaW5wdXRbdHlwZT1cInNlYXJjaFwiXSxcbi51aS5mb3JtIC5maWVsZC5lcnJvciBpbnB1dFt0eXBlPVwidGVsXCJdLFxuLnVpLmZvcm0gLmZpZWxkLmVycm9yIGlucHV0W3R5cGU9XCJ0aW1lXCJdLFxuLnVpLmZvcm0gLmZpZWxkLmVycm9yIGlucHV0W3R5cGU9XCJ0ZXh0XCJdLFxuLnVpLmZvcm0gLmZpZWxkLmVycm9yIGlucHV0W3R5cGU9XCJmaWxlXCJdLFxuLnVpLmZvcm0gLmZpZWxkLmVycm9yIGlucHV0W3R5cGU9XCJ1cmxcIl0ge1xuICBiYWNrZ3JvdW5kOiAjRkZGNkY2O1xuICBib3JkZXItY29sb3I6ICNFMEI0QjQ7XG4gIGNvbG9yOiAjOUYzQTM4O1xuICBib3JkZXItcmFkaXVzOiAnJztcbiAgYm94LXNoYWRvdzogbm9uZTtcbn1cbi51aS5mb3JtIC5maWVsZC5lcnJvciB0ZXh0YXJlYTpmb2N1cyxcbi51aS5mb3JtIC5maWVsZC5lcnJvciBzZWxlY3Q6Zm9jdXMsXG4udWkuZm9ybSAuZmllbGQuZXJyb3IgaW5wdXQ6bm90KFt0eXBlXSk6Zm9jdXMsXG4udWkuZm9ybSAuZmllbGQuZXJyb3IgaW5wdXRbdHlwZT1cImRhdGVcIl06Zm9jdXMsXG4udWkuZm9ybSAuZmllbGQuZXJyb3IgaW5wdXRbdHlwZT1cImRhdGV0aW1lLWxvY2FsXCJdOmZvY3VzLFxuLnVpLmZvcm0gLmZpZWxkLmVycm9yIGlucHV0W3R5cGU9XCJlbWFpbFwiXTpmb2N1cyxcbi51aS5mb3JtIC5maWVsZC5lcnJvciBpbnB1dFt0eXBlPVwibnVtYmVyXCJdOmZvY3VzLFxuLnVpLmZvcm0gLmZpZWxkLmVycm9yIGlucHV0W3R5cGU9XCJwYXNzd29yZFwiXTpmb2N1cyxcbi51aS5mb3JtIC5maWVsZC5lcnJvciBpbnB1dFt0eXBlPVwic2VhcmNoXCJdOmZvY3VzLFxuLnVpLmZvcm0gLmZpZWxkLmVycm9yIGlucHV0W3R5cGU9XCJ0ZWxcIl06Zm9jdXMsXG4udWkuZm9ybSAuZmllbGQuZXJyb3IgaW5wdXRbdHlwZT1cInRpbWVcIl06Zm9jdXMsXG4udWkuZm9ybSAuZmllbGQuZXJyb3IgaW5wdXRbdHlwZT1cInRleHRcIl06Zm9jdXMsXG4udWkuZm9ybSAuZmllbGQuZXJyb3IgaW5wdXRbdHlwZT1cImZpbGVcIl06Zm9jdXMsXG4udWkuZm9ybSAuZmllbGQuZXJyb3IgaW5wdXRbdHlwZT1cInVybFwiXTpmb2N1cyB7XG4gIGJhY2tncm91bmQ6ICNGRkY2RjY7XG4gIGJvcmRlci1jb2xvcjogI0UwQjRCNDtcbiAgY29sb3I6ICM5RjNBMzg7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgYm94LXNoYWRvdzogbm9uZTtcbn1cbi8qIFByZXNlcnZlIE5hdGl2ZSBTZWxlY3QgU3R5bGluZ3MgKi9cbi51aS5mb3JtIC5maWVsZC5lcnJvciBzZWxlY3Qge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG1lbnVsaXN0LWJ1dHRvbjtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRHJvcGRvd24gRXJyb3Jcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5mb3JtIC5maWVsZHMuZXJyb3IgLmZpZWxkIC51aS5kcm9wZG93bixcbi51aS5mb3JtIC5maWVsZHMuZXJyb3IgLmZpZWxkIC51aS5kcm9wZG93biAuaXRlbSxcbi51aS5mb3JtIC5maWVsZC5lcnJvciAudWkuZHJvcGRvd24sXG4udWkuZm9ybSAuZmllbGQuZXJyb3IgLnVpLmRyb3Bkb3duIC50ZXh0LFxuLnVpLmZvcm0gLmZpZWxkLmVycm9yIC51aS5kcm9wZG93biAuaXRlbSB7XG4gIGJhY2tncm91bmQ6ICNGRkY2RjY7XG4gIGNvbG9yOiAjOUYzQTM4O1xufVxuLnVpLmZvcm0gLmZpZWxkcy5lcnJvciAuZmllbGQgLnVpLmRyb3Bkb3duLFxuLnVpLmZvcm0gLmZpZWxkLmVycm9yIC51aS5kcm9wZG93biB7XG4gIGJvcmRlci1jb2xvcjogI0UwQjRCNCAhaW1wb3J0YW50O1xufVxuLnVpLmZvcm0gLmZpZWxkcy5lcnJvciAuZmllbGQgLnVpLmRyb3Bkb3duOmhvdmVyLFxuLnVpLmZvcm0gLmZpZWxkLmVycm9yIC51aS5kcm9wZG93bjpob3ZlciB7XG4gIGJvcmRlci1jb2xvcjogI0UwQjRCNCAhaW1wb3J0YW50O1xufVxuLnVpLmZvcm0gLmZpZWxkcy5lcnJvciAuZmllbGQgLnVpLmRyb3Bkb3duOmhvdmVyIC5tZW51LFxuLnVpLmZvcm0gLmZpZWxkLmVycm9yIC51aS5kcm9wZG93bjpob3ZlciAubWVudSB7XG4gIGJvcmRlci1jb2xvcjogI0UwQjRCNDtcbn1cbi51aS5mb3JtIC5maWVsZHMuZXJyb3IgLmZpZWxkIC51aS5tdWx0aXBsZS5zZWxlY3Rpb24uZHJvcGRvd24gPiAubGFiZWwsXG4udWkuZm9ybSAuZmllbGQuZXJyb3IgLnVpLm11bHRpcGxlLnNlbGVjdGlvbi5kcm9wZG93biA+IC5sYWJlbCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNFQUNCQ0I7XG4gIGNvbG9yOiAjOUYzQTM4O1xufVxuLyogSG92ZXIgKi9cbi51aS5mb3JtIC5maWVsZHMuZXJyb3IgLmZpZWxkIC51aS5kcm9wZG93biAubWVudSAuaXRlbTpob3Zlcixcbi51aS5mb3JtIC5maWVsZC5lcnJvciAudWkuZHJvcGRvd24gLm1lbnUgLml0ZW06aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkJFN0U3O1xufVxuLyogU2VsZWN0ZWQgKi9cbi51aS5mb3JtIC5maWVsZHMuZXJyb3IgLmZpZWxkIC51aS5kcm9wZG93biAubWVudSAuc2VsZWN0ZWQuaXRlbSxcbi51aS5mb3JtIC5maWVsZC5lcnJvciAudWkuZHJvcGRvd24gLm1lbnUgLnNlbGVjdGVkLml0ZW0ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkJFN0U3O1xufVxuLyogQWN0aXZlICovXG4udWkuZm9ybSAuZmllbGRzLmVycm9yIC5maWVsZCAudWkuZHJvcGRvd24gLm1lbnUgLmFjdGl2ZS5pdGVtLFxuLnVpLmZvcm0gLmZpZWxkLmVycm9yIC51aS5kcm9wZG93biAubWVudSAuYWN0aXZlLml0ZW0ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkRDRkNGICFpbXBvcnRhbnQ7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQ2hlY2tib3ggRXJyb3Jcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkuZm9ybSAuZmllbGRzLmVycm9yIC5maWVsZCAuY2hlY2tib3g6bm90KC50b2dnbGUpOm5vdCguc2xpZGVyKSBsYWJlbCxcbi51aS5mb3JtIC5maWVsZC5lcnJvciAuY2hlY2tib3g6bm90KC50b2dnbGUpOm5vdCguc2xpZGVyKSBsYWJlbCxcbi51aS5mb3JtIC5maWVsZHMuZXJyb3IgLmZpZWxkIC5jaGVja2JveDpub3QoLnRvZ2dsZSk6bm90KC5zbGlkZXIpIC5ib3gsXG4udWkuZm9ybSAuZmllbGQuZXJyb3IgLmNoZWNrYm94Om5vdCgudG9nZ2xlKTpub3QoLnNsaWRlcikgLmJveCB7XG4gIGNvbG9yOiAjOUYzQTM4O1xufVxuLnVpLmZvcm0gLmZpZWxkcy5lcnJvciAuZmllbGQgLmNoZWNrYm94Om5vdCgudG9nZ2xlKTpub3QoLnNsaWRlcikgbGFiZWw6YmVmb3JlLFxuLnVpLmZvcm0gLmZpZWxkLmVycm9yIC5jaGVja2JveDpub3QoLnRvZ2dsZSk6bm90KC5zbGlkZXIpIGxhYmVsOmJlZm9yZSxcbi51aS5mb3JtIC5maWVsZHMuZXJyb3IgLmZpZWxkIC5jaGVja2JveDpub3QoLnRvZ2dsZSk6bm90KC5zbGlkZXIpIC5ib3g6YmVmb3JlLFxuLnVpLmZvcm0gLmZpZWxkLmVycm9yIC5jaGVja2JveDpub3QoLnRvZ2dsZSk6bm90KC5zbGlkZXIpIC5ib3g6YmVmb3JlIHtcbiAgYmFja2dyb3VuZDogI0ZGRjZGNjtcbiAgYm9yZGVyLWNvbG9yOiAjRTBCNEI0O1xufVxuLnVpLmZvcm0gLmZpZWxkcy5lcnJvciAuZmllbGQgLmNoZWNrYm94IGxhYmVsOmFmdGVyLFxuLnVpLmZvcm0gLmZpZWxkLmVycm9yIC5jaGVja2JveCBsYWJlbDphZnRlcixcbi51aS5mb3JtIC5maWVsZHMuZXJyb3IgLmZpZWxkIC5jaGVja2JveCAuYm94OmFmdGVyLFxuLnVpLmZvcm0gLmZpZWxkLmVycm9yIC5jaGVja2JveCAuYm94OmFmdGVyIHtcbiAgY29sb3I6ICM5RjNBMzg7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkuZm9ybSAuZGlzYWJsZWQuZmllbGRzIC5maWVsZCxcbi51aS5mb3JtIC5kaXNhYmxlZC5maWVsZCxcbi51aS5mb3JtIC5maWVsZCA6ZGlzYWJsZWQge1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgb3BhY2l0eTogMC40NTtcbn1cbi51aS5mb3JtIC5maWVsZC5kaXNhYmxlZCA+IGxhYmVsLFxuLnVpLmZvcm0gLmZpZWxkcy5kaXNhYmxlZCA+IGxhYmVsIHtcbiAgb3BhY2l0eTogMC40NTtcbn1cbi51aS5mb3JtIC5maWVsZC5kaXNhYmxlZCA6ZGlzYWJsZWQge1xuICBvcGFjaXR5OiAxO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgIExvYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkubG9hZGluZy5mb3JtIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBjdXJzb3I6IGRlZmF1bHQ7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuLnVpLmxvYWRpbmcuZm9ybTpiZWZvcmUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGNvbnRlbnQ6ICcnO1xuICB0b3A6IDAlO1xuICBsZWZ0OiAwJTtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjgpO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICB6LWluZGV4OiAxMDA7XG59XG4udWkubG9hZGluZy5mb3JtOmFmdGVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBjb250ZW50OiAnJztcbiAgdG9wOiA1MCU7XG4gIGxlZnQ6IDUwJTtcbiAgbWFyZ2luOiAtMS41ZW0gMGVtIDBlbSAtMS41ZW07XG4gIHdpZHRoOiAzZW07XG4gIGhlaWdodDogM2VtO1xuICBhbmltYXRpb246IGZvcm0tc3BpbiAwLjZzIGxpbmVhcjtcbiAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XG4gIGJvcmRlci1yYWRpdXM6IDUwMHJlbTtcbiAgYm9yZGVyLWNvbG9yOiAjNzY3Njc2IHJnYmEoMCwgMCwgMCwgMC4xKSByZ2JhKDAsIDAsIDAsIDAuMSkgcmdiYSgwLCAwLCAwLCAwLjEpO1xuICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICBib3JkZXItd2lkdGg6IDAuMmVtO1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggdHJhbnNwYXJlbnQ7XG4gIHZpc2liaWxpdHk6IHZpc2libGU7XG4gIHotaW5kZXg6IDEwMTtcbn1cbkBrZXlmcmFtZXMgZm9ybS1zcGluIHtcbiAgZnJvbSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XG4gIH1cbiAgdG8ge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7XG4gIH1cbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBFbGVtZW50IFR5cGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBSZXF1aXJlZCBGaWVsZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5mb3JtIC5yZXF1aXJlZC5maWVsZHM6bm90KC5ncm91cGVkKSA+IC5maWVsZCA+IGxhYmVsOmFmdGVyLFxuLnVpLmZvcm0gLnJlcXVpcmVkLmZpZWxkcy5ncm91cGVkID4gbGFiZWw6YWZ0ZXIsXG4udWkuZm9ybSAucmVxdWlyZWQuZmllbGQgPiBsYWJlbDphZnRlcixcbi51aS5mb3JtIC5yZXF1aXJlZC5maWVsZHM6bm90KC5ncm91cGVkKSA+IC5maWVsZCA+IC5jaGVja2JveDphZnRlcixcbi51aS5mb3JtIC5yZXF1aXJlZC5maWVsZCA+IC5jaGVja2JveDphZnRlciB7XG4gIG1hcmdpbjogLTAuMmVtIDBlbSAwZW0gMC4yZW07XG4gIGNvbnRlbnQ6ICcqJztcbiAgY29sb3I6ICNkZTNhM2U7XG59XG4udWkuZm9ybSAucmVxdWlyZWQuZmllbGRzOm5vdCguZ3JvdXBlZCkgPiAuZmllbGQgPiBsYWJlbDphZnRlcixcbi51aS5mb3JtIC5yZXF1aXJlZC5maWVsZHMuZ3JvdXBlZCA+IGxhYmVsOmFmdGVyLFxuLnVpLmZvcm0gLnJlcXVpcmVkLmZpZWxkID4gbGFiZWw6YWZ0ZXIge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHZlcnRpY2FsLWFsaWduOiB0b3A7XG59XG4udWkuZm9ybSAucmVxdWlyZWQuZmllbGRzOm5vdCguZ3JvdXBlZCkgPiAuZmllbGQgPiAuY2hlY2tib3g6YWZ0ZXIsXG4udWkuZm9ybSAucmVxdWlyZWQuZmllbGQgPiAuY2hlY2tib3g6YWZ0ZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMCU7XG4gIGxlZnQ6IDEwMCU7XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBWYXJpYXRpb25zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEludmVydGVkIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5pbnZlcnRlZC5mb3JtIGxhYmVsLFxuLnVpLmZvcm0gLmludmVydGVkLnNlZ21lbnQgbGFiZWwsXG4udWkuZm9ybSAuaW52ZXJ0ZWQuc2VnbWVudCAudWkuY2hlY2tib3ggbGFiZWwsXG4udWkuZm9ybSAuaW52ZXJ0ZWQuc2VnbWVudCAudWkuY2hlY2tib3ggLmJveCxcbi51aS5pbnZlcnRlZC5mb3JtIC51aS5jaGVja2JveCBsYWJlbCxcbi51aS5pbnZlcnRlZC5mb3JtIC51aS5jaGVja2JveCAuYm94LFxuLnVpLmludmVydGVkLmZvcm0gLmlubGluZS5maWVsZHMgPiBsYWJlbCxcbi51aS5pbnZlcnRlZC5mb3JtIC5pbmxpbmUuZmllbGRzIC5maWVsZCA+IGxhYmVsLFxuLnVpLmludmVydGVkLmZvcm0gLmlubGluZS5maWVsZHMgLmZpZWxkID4gcCxcbi51aS5pbnZlcnRlZC5mb3JtIC5pbmxpbmUuZmllbGQgPiBsYWJlbCxcbi51aS5pbnZlcnRlZC5mb3JtIC5pbmxpbmUuZmllbGQgPiBwIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45KTtcbn1cbi8qIEludmVydGVkIEZpZWxkICovXG4udWkuaW52ZXJ0ZWQuZm9ybSBpbnB1dDpub3QoW3R5cGVdKSxcbi51aS5pbnZlcnRlZC5mb3JtIGlucHV0W3R5cGU9XCJkYXRlXCJdLFxuLnVpLmludmVydGVkLmZvcm0gaW5wdXRbdHlwZT1cImRhdGV0aW1lLWxvY2FsXCJdLFxuLnVpLmludmVydGVkLmZvcm0gaW5wdXRbdHlwZT1cImVtYWlsXCJdLFxuLnVpLmludmVydGVkLmZvcm0gaW5wdXRbdHlwZT1cIm51bWJlclwiXSxcbi51aS5pbnZlcnRlZC5mb3JtIGlucHV0W3R5cGU9XCJwYXNzd29yZFwiXSxcbi51aS5pbnZlcnRlZC5mb3JtIGlucHV0W3R5cGU9XCJzZWFyY2hcIl0sXG4udWkuaW52ZXJ0ZWQuZm9ybSBpbnB1dFt0eXBlPVwidGVsXCJdLFxuLnVpLmludmVydGVkLmZvcm0gaW5wdXRbdHlwZT1cInRpbWVcIl0sXG4udWkuaW52ZXJ0ZWQuZm9ybSBpbnB1dFt0eXBlPVwidGV4dFwiXSxcbi51aS5pbnZlcnRlZC5mb3JtIGlucHV0W3R5cGU9XCJmaWxlXCJdLFxuLnVpLmludmVydGVkLmZvcm0gaW5wdXRbdHlwZT1cInVybFwiXSB7XG4gIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpO1xuICBjb2xvcjogIzMzMzMzMztcbiAgYm94LXNoYWRvdzogbm9uZTtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgRmllbGQgR3JvdXBzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogR3JvdXBlZCBWZXJ0aWNhbGx5ICovXG4udWkuZm9ybSAuZ3JvdXBlZC5maWVsZHMge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luOiAwZW0gMGVtIDFlbTtcbn1cbi51aS5mb3JtIC5ncm91cGVkLmZpZWxkczpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLWJvdHRvbTogMGVtO1xufVxuLnVpLmZvcm0gLmdyb3VwZWQuZmllbGRzID4gbGFiZWwge1xuICBtYXJnaW46IDBlbSAwZW0gMC40cmVtIDBlbTtcbiAgY29sb3I6ICMzMzMzMzM7XG4gIGZvbnQtc2l6ZTogMC45ZW07XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbn1cbi51aS5mb3JtIC5ncm91cGVkLmZpZWxkcyAuZmllbGQsXG4udWkuZm9ybSAuZ3JvdXBlZC5pbmxpbmUuZmllbGRzIC5maWVsZCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW46IDAuNWVtIDBlbTtcbiAgcGFkZGluZzogMGVtO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGaWVsZHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTcGxpdCBmaWVsZHMgKi9cbi51aS5mb3JtIC5maWVsZHMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICBtYXJnaW46IDBlbSAtMC41ZW0gMWVtO1xufVxuLnVpLmZvcm0gLmZpZWxkcyA+IC5maWVsZCB7XG4gIGZsZXg6IDAgMSBhdXRvO1xuICBwYWRkaW5nLWxlZnQ6IDAuNWVtO1xuICBwYWRkaW5nLXJpZ2h0OiAwLjVlbTtcbn1cbi51aS5mb3JtIC5maWVsZHMgPiAuZmllbGQ6Zmlyc3QtY2hpbGQge1xuICBib3JkZXItbGVmdDogbm9uZTtcbiAgYm94LXNoYWRvdzogbm9uZTtcbn1cbi8qIE90aGVyIENvbWJpbmF0aW9ucyAqL1xuLnVpLmZvcm0gLnR3by5maWVsZHMgPiAuZmllbGRzLFxuLnVpLmZvcm0gLnR3by5maWVsZHMgPiAuZmllbGQge1xuICB3aWR0aDogNTAlO1xufVxuLnVpLmZvcm0gLnRocmVlLmZpZWxkcyA+IC5maWVsZHMsXG4udWkuZm9ybSAudGhyZWUuZmllbGRzID4gLmZpZWxkIHtcbiAgd2lkdGg6IDMzLjMzMzMzMzMzJTtcbn1cbi51aS5mb3JtIC5mb3VyLmZpZWxkcyA+IC5maWVsZHMsXG4udWkuZm9ybSAuZm91ci5maWVsZHMgPiAuZmllbGQge1xuICB3aWR0aDogMjUlO1xufVxuLnVpLmZvcm0gLmZpdmUuZmllbGRzID4gLmZpZWxkcyxcbi51aS5mb3JtIC5maXZlLmZpZWxkcyA+IC5maWVsZCB7XG4gIHdpZHRoOiAyMCU7XG59XG4udWkuZm9ybSAuc2l4LmZpZWxkcyA+IC5maWVsZHMsXG4udWkuZm9ybSAuc2l4LmZpZWxkcyA+IC5maWVsZCB7XG4gIHdpZHRoOiAxNi42NjY2NjY2NyU7XG59XG4udWkuZm9ybSAuc2V2ZW4uZmllbGRzID4gLmZpZWxkcyxcbi51aS5mb3JtIC5zZXZlbi5maWVsZHMgPiAuZmllbGQge1xuICB3aWR0aDogMTQuMjg1NzE0MjklO1xufVxuLnVpLmZvcm0gLmVpZ2h0LmZpZWxkcyA+IC5maWVsZHMsXG4udWkuZm9ybSAuZWlnaHQuZmllbGRzID4gLmZpZWxkIHtcbiAgd2lkdGg6IDEyLjUlO1xufVxuLnVpLmZvcm0gLm5pbmUuZmllbGRzID4gLmZpZWxkcyxcbi51aS5mb3JtIC5uaW5lLmZpZWxkcyA+IC5maWVsZCB7XG4gIHdpZHRoOiAxMS4xMTExMTExMSU7XG59XG4udWkuZm9ybSAudGVuLmZpZWxkcyA+IC5maWVsZHMsXG4udWkuZm9ybSAudGVuLmZpZWxkcyA+IC5maWVsZCB7XG4gIHdpZHRoOiAxMCU7XG59XG4vKiBTd2FwIHRvIGZ1bGwgd2lkdGggb24gbW9iaWxlICovXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC51aS5mb3JtIC5maWVsZHMge1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgfVxuICAudWlbY2xhc3MqPVwiZXF1YWwgd2lkdGhcIl0uZm9ybSAuZmllbGRzID4gLmZpZWxkLFxuICAudWkuZm9ybSBbY2xhc3MqPVwiZXF1YWwgd2lkdGhcIl0uZmllbGRzID4gLmZpZWxkLFxuICAudWkuZm9ybSAudHdvLmZpZWxkcyA+IC5maWVsZHMsXG4gIC51aS5mb3JtIC50d28uZmllbGRzID4gLmZpZWxkLFxuICAudWkuZm9ybSAudGhyZWUuZmllbGRzID4gLmZpZWxkcyxcbiAgLnVpLmZvcm0gLnRocmVlLmZpZWxkcyA+IC5maWVsZCxcbiAgLnVpLmZvcm0gLmZvdXIuZmllbGRzID4gLmZpZWxkcyxcbiAgLnVpLmZvcm0gLmZvdXIuZmllbGRzID4gLmZpZWxkLFxuICAudWkuZm9ybSAuZml2ZS5maWVsZHMgPiAuZmllbGRzLFxuICAudWkuZm9ybSAuZml2ZS5maWVsZHMgPiAuZmllbGQsXG4gIC51aS5mb3JtIC5zaXguZmllbGRzID4gLmZpZWxkcyxcbiAgLnVpLmZvcm0gLnNpeC5maWVsZHMgPiAuZmllbGQsXG4gIC51aS5mb3JtIC5zZXZlbi5maWVsZHMgPiAuZmllbGRzLFxuICAudWkuZm9ybSAuc2V2ZW4uZmllbGRzID4gLmZpZWxkLFxuICAudWkuZm9ybSAuZWlnaHQuZmllbGRzID4gLmZpZWxkcyxcbiAgLnVpLmZvcm0gLmVpZ2h0LmZpZWxkcyA+IC5maWVsZCxcbiAgLnVpLmZvcm0gLm5pbmUuZmllbGRzID4gLmZpZWxkcyxcbiAgLnVpLmZvcm0gLm5pbmUuZmllbGRzID4gLmZpZWxkLFxuICAudWkuZm9ybSAudGVuLmZpZWxkcyA+IC5maWVsZHMsXG4gIC51aS5mb3JtIC50ZW4uZmllbGRzID4gLmZpZWxkIHtcbiAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICAgIG1hcmdpbjogMGVtIDBlbSAxZW07XG4gIH1cbn1cbi8qIFNpemluZyBDb21iaW5hdGlvbnMgKi9cbi51aS5mb3JtIC5maWVsZHMgLndpZGUuZmllbGQge1xuICB3aWR0aDogNi4yNSU7XG4gIHBhZGRpbmctbGVmdDogMC41ZW07XG4gIHBhZGRpbmctcmlnaHQ6IDAuNWVtO1xufVxuLnVpLmZvcm0gLm9uZS53aWRlLmZpZWxkIHtcbiAgd2lkdGg6IDYuMjUlICFpbXBvcnRhbnQ7XG59XG4udWkuZm9ybSAudHdvLndpZGUuZmllbGQge1xuICB3aWR0aDogMTIuNSUgIWltcG9ydGFudDtcbn1cbi51aS5mb3JtIC50aHJlZS53aWRlLmZpZWxkIHtcbiAgd2lkdGg6IDE4Ljc1JSAhaW1wb3J0YW50O1xufVxuLnVpLmZvcm0gLmZvdXIud2lkZS5maWVsZCB7XG4gIHdpZHRoOiAyNSUgIWltcG9ydGFudDtcbn1cbi51aS5mb3JtIC5maXZlLndpZGUuZmllbGQge1xuICB3aWR0aDogMzEuMjUlICFpbXBvcnRhbnQ7XG59XG4udWkuZm9ybSAuc2l4LndpZGUuZmllbGQge1xuICB3aWR0aDogMzcuNSUgIWltcG9ydGFudDtcbn1cbi51aS5mb3JtIC5zZXZlbi53aWRlLmZpZWxkIHtcbiAgd2lkdGg6IDQzLjc1JSAhaW1wb3J0YW50O1xufVxuLnVpLmZvcm0gLmVpZ2h0LndpZGUuZmllbGQge1xuICB3aWR0aDogNTAlICFpbXBvcnRhbnQ7XG59XG4udWkuZm9ybSAubmluZS53aWRlLmZpZWxkIHtcbiAgd2lkdGg6IDU2LjI1JSAhaW1wb3J0YW50O1xufVxuLnVpLmZvcm0gLnRlbi53aWRlLmZpZWxkIHtcbiAgd2lkdGg6IDYyLjUlICFpbXBvcnRhbnQ7XG59XG4udWkuZm9ybSAuZWxldmVuLndpZGUuZmllbGQge1xuICB3aWR0aDogNjguNzUlICFpbXBvcnRhbnQ7XG59XG4udWkuZm9ybSAudHdlbHZlLndpZGUuZmllbGQge1xuICB3aWR0aDogNzUlICFpbXBvcnRhbnQ7XG59XG4udWkuZm9ybSAudGhpcnRlZW4ud2lkZS5maWVsZCB7XG4gIHdpZHRoOiA4MS4yNSUgIWltcG9ydGFudDtcbn1cbi51aS5mb3JtIC5mb3VydGVlbi53aWRlLmZpZWxkIHtcbiAgd2lkdGg6IDg3LjUlICFpbXBvcnRhbnQ7XG59XG4udWkuZm9ybSAuZmlmdGVlbi53aWRlLmZpZWxkIHtcbiAgd2lkdGg6IDkzLjc1JSAhaW1wb3J0YW50O1xufVxuLnVpLmZvcm0gLnNpeHRlZW4ud2lkZS5maWVsZCB7XG4gIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG59XG4vKiBTd2FwIHRvIGZ1bGwgd2lkdGggb24gbW9iaWxlICovXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC51aS5mb3JtIC50d28uZmllbGRzID4gLmZpZWxkcyxcbiAgLnVpLmZvcm0gLnR3by5maWVsZHMgPiAuZmllbGQsXG4gIC51aS5mb3JtIC50aHJlZS5maWVsZHMgPiAuZmllbGRzLFxuICAudWkuZm9ybSAudGhyZWUuZmllbGRzID4gLmZpZWxkLFxuICAudWkuZm9ybSAuZm91ci5maWVsZHMgPiAuZmllbGRzLFxuICAudWkuZm9ybSAuZm91ci5maWVsZHMgPiAuZmllbGQsXG4gIC51aS5mb3JtIC5maXZlLmZpZWxkcyA+IC5maWVsZHMsXG4gIC51aS5mb3JtIC5maXZlLmZpZWxkcyA+IC5maWVsZCxcbiAgLnVpLmZvcm0gLmZpZWxkcyA+IC50d28ud2lkZS5maWVsZCxcbiAgLnVpLmZvcm0gLmZpZWxkcyA+IC50aHJlZS53aWRlLmZpZWxkLFxuICAudWkuZm9ybSAuZmllbGRzID4gLmZvdXIud2lkZS5maWVsZCxcbiAgLnVpLmZvcm0gLmZpZWxkcyA+IC5maXZlLndpZGUuZmllbGQsXG4gIC51aS5mb3JtIC5maWVsZHMgPiAuc2l4LndpZGUuZmllbGQsXG4gIC51aS5mb3JtIC5maWVsZHMgPiAuc2V2ZW4ud2lkZS5maWVsZCxcbiAgLnVpLmZvcm0gLmZpZWxkcyA+IC5laWdodC53aWRlLmZpZWxkLFxuICAudWkuZm9ybSAuZmllbGRzID4gLm5pbmUud2lkZS5maWVsZCxcbiAgLnVpLmZvcm0gLmZpZWxkcyA+IC50ZW4ud2lkZS5maWVsZCxcbiAgLnVpLmZvcm0gLmZpZWxkcyA+IC5lbGV2ZW4ud2lkZS5maWVsZCxcbiAgLnVpLmZvcm0gLmZpZWxkcyA+IC50d2VsdmUud2lkZS5maWVsZCxcbiAgLnVpLmZvcm0gLmZpZWxkcyA+IC50aGlydGVlbi53aWRlLmZpZWxkLFxuICAudWkuZm9ybSAuZmllbGRzID4gLmZvdXJ0ZWVuLndpZGUuZmllbGQsXG4gIC51aS5mb3JtIC5maWVsZHMgPiAuZmlmdGVlbi53aWRlLmZpZWxkLFxuICAudWkuZm9ybSAuZmllbGRzID4gLnNpeHRlZW4ud2lkZS5maWVsZCB7XG4gICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgfVxuICAudWkuZm9ybSAuZmllbGRzIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwZW07XG4gIH1cbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgRXF1YWwgV2lkdGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWlbY2xhc3MqPVwiZXF1YWwgd2lkdGhcIl0uZm9ybSAuZmllbGRzID4gLmZpZWxkLFxuLnVpLmZvcm0gW2NsYXNzKj1cImVxdWFsIHdpZHRoXCJdLmZpZWxkcyA+IC5maWVsZCB7XG4gIHdpZHRoOiAxMDAlO1xuICBmbGV4OiAxIDEgYXV0bztcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBJbmxpbmUgRmllbGRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmZvcm0gLmlubGluZS5maWVsZHMge1xuICBtYXJnaW46IDBlbSAwZW0gMWVtO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuLnVpLmZvcm0gLmlubGluZS5maWVsZHMgLmZpZWxkIHtcbiAgbWFyZ2luOiAwZW07XG4gIHBhZGRpbmc6IDBlbSAxZW0gMGVtIDBlbTtcbn1cbi8qIElubGluZSBMYWJlbCAqL1xuLnVpLmZvcm0gLmlubGluZS5maWVsZHMgPiBsYWJlbCxcbi51aS5mb3JtIC5pbmxpbmUuZmllbGRzIC5maWVsZCA+IGxhYmVsLFxuLnVpLmZvcm0gLmlubGluZS5maWVsZHMgLmZpZWxkID4gcCxcbi51aS5mb3JtIC5pbmxpbmUuZmllbGQgPiBsYWJlbCxcbi51aS5mb3JtIC5pbmxpbmUuZmllbGQgPiBwIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB3aWR0aDogYXV0bztcbiAgbWFyZ2luLXRvcDogMGVtO1xuICBtYXJnaW4tYm90dG9tOiAwZW07XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbiAgZm9udC1zaXplOiAwLjllbTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGNvbG9yOiAjMzMzMzMzO1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbn1cbi8qIEdyb3VwZWQgSW5saW5lIExhYmVsICovXG4udWkuZm9ybSAuaW5saW5lLmZpZWxkcyA+IGxhYmVsIHtcbiAgbWFyZ2luOiAwLjAzNTcxNGVtIDFlbSAwZW0gMGVtO1xufVxuLyogSW5saW5lIElucHV0ICovXG4udWkuZm9ybSAuaW5saW5lLmZpZWxkcyAuZmllbGQgPiBpbnB1dCxcbi51aS5mb3JtIC5pbmxpbmUuZmllbGRzIC5maWVsZCA+IHNlbGVjdCxcbi51aS5mb3JtIC5pbmxpbmUuZmllbGQgPiBpbnB1dCxcbi51aS5mb3JtIC5pbmxpbmUuZmllbGQgPiBzZWxlY3Qge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiBhdXRvO1xuICBtYXJnaW4tdG9wOiAwZW07XG4gIG1hcmdpbi1ib3R0b206IDBlbTtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgZm9udC1zaXplOiAxZW07XG59XG4vKiBMYWJlbCAqL1xuLnVpLmZvcm0gLmlubGluZS5maWVsZHMgLmZpZWxkID4gOmZpcnN0LWNoaWxkLFxuLnVpLmZvcm0gLmlubGluZS5maWVsZCA+IDpmaXJzdC1jaGlsZCB7XG4gIG1hcmdpbjogMGVtIDAuOWVtIDBlbSAwZW07XG59XG4udWkuZm9ybSAuaW5saW5lLmZpZWxkcyAuZmllbGQgPiA6b25seS1jaGlsZCxcbi51aS5mb3JtIC5pbmxpbmUuZmllbGQgPiA6b25seS1jaGlsZCB7XG4gIG1hcmdpbjogMGVtO1xufVxuLyogV2lkZSAqL1xuLnVpLmZvcm0gLmlubGluZS5maWVsZHMgLndpZGUuZmllbGQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuLnVpLmZvcm0gLmlubGluZS5maWVsZHMgLndpZGUuZmllbGQgPiBpbnB1dCxcbi51aS5mb3JtIC5pbmxpbmUuZmllbGRzIC53aWRlLmZpZWxkID4gc2VsZWN0IHtcbiAgd2lkdGg6IDEwMCU7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLm1pbmkuZm9ybSB7XG4gIGZvbnQtc2l6ZTogMC44cmVtO1xufVxuLnVpLnRpbnkuZm9ybSB7XG4gIGZvbnQtc2l6ZTogMC45cmVtO1xufVxuLnVpLnNtYWxsLmZvcm0ge1xuICBmb250LXNpemU6IDAuOXJlbTtcbn1cbi51aS5mb3JtIHtcbiAgZm9udC1zaXplOiAxcmVtO1xufVxuLnVpLmxhcmdlLmZvcm0ge1xuICBmb250LXNpemU6IDEuMXJlbTtcbn1cbi51aS5iaWcuZm9ybSB7XG4gIGZvbnQtc2l6ZTogMS4zcmVtO1xufVxuLnVpLmh1Z2UuZm9ybSB7XG4gIGZvbnQtc2l6ZTogMS40cmVtO1xufVxuLnVpLm1hc3NpdmUuZm9ybSB7XG4gIGZvbnQtc2l6ZTogMS43cmVtO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFRoZW1lIE92ZXJyaWRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIE92ZXJyaWRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIVxuICogIyBTZW1hbnRpYyBVSSAtIEdyaWRcbiAqIGh0dHA6Ly9naXRodWIuY29tL3NlbWFudGljLW9yZy9zZW1hbnRpYy11aS9cbiAqXG4gKlxuICogUmVsZWFzZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlXG4gKiBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUXG4gKlxuICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKlxuXG7ilojilojilojilojilojilojilojilojilZfilojilojilZcgIOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKVlyAgIOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl1xu4pWa4pWQ4pWQ4paI4paI4pWU4pWQ4pWQ4pWd4paI4paI4pWRICDilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilojilojilZcg4paI4paI4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWd4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWdXG4gICDilojilojilZEgICDilojilojilojilojilojilojilojilZHilojilojilojilojilojilZcgIOKWiOKWiOKVlOKWiOKWiOKWiOKWiOKVlOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4paI4paI4paI4paI4paI4pWXXG4gICDilojilojilZEgICDilojilojilZTilZDilZDilojilojilZHilojilojilZTilZDilZDilZ0gIOKWiOKWiOKVkeKVmuKWiOKWiOKVlOKVneKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4pWa4pWQ4pWQ4pWQ4pWQ4paI4paI4pWRXG4gICDilojilojilZEgICDilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVkSDilZrilZDilZ0g4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWRXG4gICDilZrilZDilZ0gICDilZrilZDilZ0gIOKVmuKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVneKVmuKVkOKVnSAgICAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWdXG5cbiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBUaGVtZSBTZWxlY3Rpb25cbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBUbyBvdmVycmlkZSBhIHRoZW1lIGZvciBhbiBpbmRpdmlkdWFsIGVsZW1lbnRcbiAgIHNwZWNpZnkgdGhlbWUgbmFtZSBiZWxvd1xuKi9cbi8qIEdsb2JhbCAqL1xuLyogRWxlbWVudHMgKi9cbi8qIENvbGxlY3Rpb25zICovXG4vKiBNb2R1bGVzICovXG4vKiBWaWV3cyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIEZvbGRlcnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBQYXRoIHRvIHRoZW1lIHBhY2thZ2VzICovXG4vKiBQYXRoIHRvIHNpdGUgb3ZlcnJpZGUgZm9sZGVyICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgSW1wb3J0IFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgSW1wb3J0IERpcmVjdGl2ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIFRoZW1lXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgIFNpdGUgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kb3JzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFBhY2thZ2VkIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRvcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogQ29tcG9uZW50J3Mgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZG9ycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBTaXRlIHRoZW1lIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICBVc2VyIEdsb2JhbCBWYXJpYWJsZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBtYXJzbyBjb2xvcnMgKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiBDb21wb25lbnQgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBHcmlkXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogSW5oZXJpdGVkIEZyb20gU2l0ZSAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIEdyaWRcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBWYXJpYXRpb25zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgICBSZWxheGVkXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgICBEaXZpZGVkXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgIENlbGxlZFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBTdGFja2FibGVcbi0tLS0tLS0tLS0tLS0tLSovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIExlZ2FjeVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExlZ2FjeSAoRE8gTk9UIFVTRSlcbiAqL1xuLyogUGFja2FnZWQgVGhlbWUgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgR3JpZFxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIEluaGVyaXRlZCBGcm9tIFNpdGUgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBHcmlkXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgVmFyaWF0aW9uc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgUmVsYXhlZFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgRGl2aWRlZFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBDZWxsZWRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgU3RhY2thYmxlXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBMZWdhY3lcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBMZWdhY3kgKERPIE5PVCBVU0UpXG4gKi9cbi8qIFNpdGUgVGhlbWUgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgVXNlciBWYXJpYWJsZSBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIE1peC1pbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE92ZXJyaWRlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBFbmQgQ29uZmlnICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgU3RhbmRhcmRcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4udWkuZ3JpZCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gIHBhZGRpbmc6IDBlbTtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUmVtb3ZlIEd1dHRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5ncmlkIHtcbiAgbWFyZ2luLXRvcDogLTFyZW07XG4gIG1hcmdpbi1ib3R0b206IC0xcmVtO1xuICBtYXJnaW4tbGVmdDogLTFyZW07XG4gIG1hcmdpbi1yaWdodDogLTFyZW07XG59XG4udWkucmVsYXhlZC5ncmlkIHtcbiAgbWFyZ2luLWxlZnQ6IC0xLjVyZW07XG4gIG1hcmdpbi1yaWdodDogLTEuNXJlbTtcbn1cbi51aVtjbGFzcyo9XCJ2ZXJ5IHJlbGF4ZWRcIl0uZ3JpZCB7XG4gIG1hcmdpbi1sZWZ0OiAtMi41cmVtO1xuICBtYXJnaW4tcmlnaHQ6IC0yLjVyZW07XG59XG4vKiBQcmVzZXJ2ZSBSb3dzIFNwYWNpbmcgb24gQ29uc2VjdXRpdmUgR3JpZHMgKi9cbi51aS5ncmlkICsgLmdyaWQge1xuICBtYXJnaW4tdG9wOiAxcmVtO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQ29sdW1uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU3RhbmRhcmQgMTYgY29sdW1uICovXG4udWkuZ3JpZCA+IC5jb2x1bW46bm90KC5yb3cpLFxuLnVpLmdyaWQgPiAucm93ID4gLmNvbHVtbiB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB3aWR0aDogNi4yNSU7XG4gIHBhZGRpbmctbGVmdDogMXJlbTtcbiAgcGFkZGluZy1yaWdodDogMXJlbTtcbiAgdmVydGljYWwtYWxpZ246IHRvcDtcbn1cbi51aS5ncmlkID4gKiB7XG4gIHBhZGRpbmctbGVmdDogMXJlbTtcbiAgcGFkZGluZy1yaWdodDogMXJlbTtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBSb3dzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkuZ3JpZCA+IC5yb3cge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAganVzdGlmeS1jb250ZW50OiBpbmhlcml0O1xuICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgcGFkZGluZzogMHJlbTtcbiAgcGFkZGluZy10b3A6IDFyZW07XG4gIHBhZGRpbmctYm90dG9tOiAxcmVtO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQ29sdW1uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVmVydGljYWwgcGFkZGluZyB3aGVuIG5vIHJvd3MgKi9cbi51aS5ncmlkID4gLmNvbHVtbjpub3QoLnJvdykge1xuICBwYWRkaW5nLXRvcDogMXJlbTtcbiAgcGFkZGluZy1ib3R0b206IDFyZW07XG59XG4udWkuZ3JpZCA+IC5yb3cgPiAuY29sdW1uIHtcbiAgbWFyZ2luLXRvcDogMGVtO1xuICBtYXJnaW4tYm90dG9tOiAwZW07XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIENvbnRlbnRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5ncmlkID4gLnJvdyA+IGltZyxcbi51aS5ncmlkID4gLnJvdyA+IC5jb2x1bW4gPiBpbWcge1xuICBtYXgtd2lkdGg6IDEwMCU7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBMb29zZSBDb3VwbGluZ1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogQ29sbGFwc2UgTWFyZ2luIG9uIENvbnNlY3V0aXZlIEdyaWQgKi9cbi51aS5ncmlkID4gLnVpLmdyaWQ6Zmlyc3QtY2hpbGQge1xuICBtYXJnaW4tdG9wOiAwZW07XG59XG4udWkuZ3JpZCA+IC51aS5ncmlkOmxhc3QtY2hpbGQge1xuICBtYXJnaW4tYm90dG9tOiAwZW07XG59XG4vKiBTZWdtZW50IGluc2lkZSBBbGlnbmVkIEdyaWQgKi9cbi51aS5ncmlkIC5hbGlnbmVkLnJvdyA+IC5jb2x1bW4gPiAuc2VnbWVudDpub3QoLmNvbXBhY3QpOm5vdCguYXR0YWNoZWQpLFxuLnVpLmFsaWduZWQuZ3JpZCAuY29sdW1uID4gLnNlZ21lbnQ6bm90KC5jb21wYWN0KTpub3QoLmF0dGFjaGVkKSB7XG4gIHdpZHRoOiAxMDAlO1xufVxuLyogQWxpZ24gRGl2aWRlcnMgd2l0aCBHdXR0ZXIgKi9cbi51aS5ncmlkIC5yb3cgKyAudWkuZGl2aWRlciB7XG4gIGZsZXgtZ3JvdzogMTtcbiAgbWFyZ2luOiAxcmVtIDFyZW07XG59XG4udWkuZ3JpZCAuY29sdW1uICsgLnVpLnZlcnRpY2FsLmRpdmlkZXIge1xuICBoZWlnaHQ6IGNhbGMoNTAlIC0gMXJlbSk7XG59XG4vKiBSZW1vdmUgQm9yZGVyIG9uIExhc3QgSG9yaXpvbnRhbCBTZWdtZW50ICovXG4udWkuZ3JpZCA+IC5yb3cgPiAuY29sdW1uOmxhc3QtY2hpbGQgPiAuaG9yaXpvbnRhbC5zZWdtZW50LFxuLnVpLmdyaWQgPiAuY29sdW1uOmxhc3QtY2hpbGQgPiAuaG9yaXpvbnRhbC5zZWdtZW50IHtcbiAgYm94LXNoYWRvdzogbm9uZTtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFZhcmlhdGlvbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgUGFnZSBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgLnVpLnBhZ2UuZ3JpZCB7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgcGFkZGluZy1sZWZ0OiAwZW07XG4gICAgcGFkZGluZy1yaWdodDogMGVtO1xuICAgIG1hcmdpbi1sZWZ0OiAwZW07XG4gICAgbWFyZ2luLXJpZ2h0OiAwZW07XG4gIH1cbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzY4cHgpIGFuZCAobWF4LXdpZHRoOiA5OTFweCkge1xuICAudWkucGFnZS5ncmlkIHtcbiAgICB3aWR0aDogYXV0bztcbiAgICBtYXJnaW4tbGVmdDogMGVtO1xuICAgIG1hcmdpbi1yaWdodDogMGVtO1xuICAgIHBhZGRpbmctbGVmdDogMmVtO1xuICAgIHBhZGRpbmctcmlnaHQ6IDJlbTtcbiAgfVxufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA5OTJweCkgYW5kIChtYXgtd2lkdGg6IDExOTlweCkge1xuICAudWkucGFnZS5ncmlkIHtcbiAgICB3aWR0aDogYXV0bztcbiAgICBtYXJnaW4tbGVmdDogMGVtO1xuICAgIG1hcmdpbi1yaWdodDogMGVtO1xuICAgIHBhZGRpbmctbGVmdDogMyU7XG4gICAgcGFkZGluZy1yaWdodDogMyU7XG4gIH1cbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTIwMHB4KSBhbmQgKG1heC13aWR0aDogMTkxOXB4KSB7XG4gIC51aS5wYWdlLmdyaWQge1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIG1hcmdpbi1sZWZ0OiAwZW07XG4gICAgbWFyZ2luLXJpZ2h0OiAwZW07XG4gICAgcGFkZGluZy1sZWZ0OiAxNSU7XG4gICAgcGFkZGluZy1yaWdodDogMTUlO1xuICB9XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDE5MjBweCkge1xuICAudWkucGFnZS5ncmlkIHtcbiAgICB3aWR0aDogYXV0bztcbiAgICBtYXJnaW4tbGVmdDogMGVtO1xuICAgIG1hcmdpbi1yaWdodDogMGVtO1xuICAgIHBhZGRpbmctbGVmdDogMjMlO1xuICAgIHBhZGRpbmctcmlnaHQ6IDIzJTtcbiAgfVxufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIENvbHVtbiBDb3VudFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogQXNzdW1lIGZ1bGwgd2lkdGggd2l0aCBvbmUgY29sdW1uICovXG4udWkuZ3JpZCA+IC5jb2x1bW46b25seS1jaGlsZCxcbi51aS5ncmlkID4gLnJvdyA+IC5jb2x1bW46b25seS1jaGlsZCB7XG4gIHdpZHRoOiAxMDAlO1xufVxuLyogR3JpZCBCYXNlZCAqL1xuLnVpW2NsYXNzKj1cIm9uZSBjb2x1bW5cIl0uZ3JpZCA+IC5yb3cgPiAuY29sdW1uLFxuLnVpW2NsYXNzKj1cIm9uZSBjb2x1bW5cIl0uZ3JpZCA+IC5jb2x1bW46bm90KC5yb3cpIHtcbiAgd2lkdGg6IDEwMCU7XG59XG4udWlbY2xhc3MqPVwidHdvIGNvbHVtblwiXS5ncmlkID4gLnJvdyA+IC5jb2x1bW4sXG4udWlbY2xhc3MqPVwidHdvIGNvbHVtblwiXS5ncmlkID4gLmNvbHVtbjpub3QoLnJvdykge1xuICB3aWR0aDogNTAlO1xufVxuLnVpW2NsYXNzKj1cInRocmVlIGNvbHVtblwiXS5ncmlkID4gLnJvdyA+IC5jb2x1bW4sXG4udWlbY2xhc3MqPVwidGhyZWUgY29sdW1uXCJdLmdyaWQgPiAuY29sdW1uOm5vdCgucm93KSB7XG4gIHdpZHRoOiAzMy4zMzMzMzMzMyU7XG59XG4udWlbY2xhc3MqPVwiZm91ciBjb2x1bW5cIl0uZ3JpZCA+IC5yb3cgPiAuY29sdW1uLFxuLnVpW2NsYXNzKj1cImZvdXIgY29sdW1uXCJdLmdyaWQgPiAuY29sdW1uOm5vdCgucm93KSB7XG4gIHdpZHRoOiAyNSU7XG59XG4udWlbY2xhc3MqPVwiZml2ZSBjb2x1bW5cIl0uZ3JpZCA+IC5yb3cgPiAuY29sdW1uLFxuLnVpW2NsYXNzKj1cImZpdmUgY29sdW1uXCJdLmdyaWQgPiAuY29sdW1uOm5vdCgucm93KSB7XG4gIHdpZHRoOiAyMCU7XG59XG4udWlbY2xhc3MqPVwic2l4IGNvbHVtblwiXS5ncmlkID4gLnJvdyA+IC5jb2x1bW4sXG4udWlbY2xhc3MqPVwic2l4IGNvbHVtblwiXS5ncmlkID4gLmNvbHVtbjpub3QoLnJvdykge1xuICB3aWR0aDogMTYuNjY2NjY2NjclO1xufVxuLnVpW2NsYXNzKj1cInNldmVuIGNvbHVtblwiXS5ncmlkID4gLnJvdyA+IC5jb2x1bW4sXG4udWlbY2xhc3MqPVwic2V2ZW4gY29sdW1uXCJdLmdyaWQgPiAuY29sdW1uOm5vdCgucm93KSB7XG4gIHdpZHRoOiAxNC4yODU3MTQyOSU7XG59XG4udWlbY2xhc3MqPVwiZWlnaHQgY29sdW1uXCJdLmdyaWQgPiAucm93ID4gLmNvbHVtbixcbi51aVtjbGFzcyo9XCJlaWdodCBjb2x1bW5cIl0uZ3JpZCA+IC5jb2x1bW46bm90KC5yb3cpIHtcbiAgd2lkdGg6IDEyLjUlO1xufVxuLnVpW2NsYXNzKj1cIm5pbmUgY29sdW1uXCJdLmdyaWQgPiAucm93ID4gLmNvbHVtbixcbi51aVtjbGFzcyo9XCJuaW5lIGNvbHVtblwiXS5ncmlkID4gLmNvbHVtbjpub3QoLnJvdykge1xuICB3aWR0aDogMTEuMTExMTExMTElO1xufVxuLnVpW2NsYXNzKj1cInRlbiBjb2x1bW5cIl0uZ3JpZCA+IC5yb3cgPiAuY29sdW1uLFxuLnVpW2NsYXNzKj1cInRlbiBjb2x1bW5cIl0uZ3JpZCA+IC5jb2x1bW46bm90KC5yb3cpIHtcbiAgd2lkdGg6IDEwJTtcbn1cbi51aVtjbGFzcyo9XCJlbGV2ZW4gY29sdW1uXCJdLmdyaWQgPiAucm93ID4gLmNvbHVtbixcbi51aVtjbGFzcyo9XCJlbGV2ZW4gY29sdW1uXCJdLmdyaWQgPiAuY29sdW1uOm5vdCgucm93KSB7XG4gIHdpZHRoOiA5LjA5MDkwOTA5JTtcbn1cbi51aVtjbGFzcyo9XCJ0d2VsdmUgY29sdW1uXCJdLmdyaWQgPiAucm93ID4gLmNvbHVtbixcbi51aVtjbGFzcyo9XCJ0d2VsdmUgY29sdW1uXCJdLmdyaWQgPiAuY29sdW1uOm5vdCgucm93KSB7XG4gIHdpZHRoOiA4LjMzMzMzMzMzJTtcbn1cbi51aVtjbGFzcyo9XCJ0aGlydGVlbiBjb2x1bW5cIl0uZ3JpZCA+IC5yb3cgPiAuY29sdW1uLFxuLnVpW2NsYXNzKj1cInRoaXJ0ZWVuIGNvbHVtblwiXS5ncmlkID4gLmNvbHVtbjpub3QoLnJvdykge1xuICB3aWR0aDogNy42OTIzMDc2OSU7XG59XG4udWlbY2xhc3MqPVwiZm91cnRlZW4gY29sdW1uXCJdLmdyaWQgPiAucm93ID4gLmNvbHVtbixcbi51aVtjbGFzcyo9XCJmb3VydGVlbiBjb2x1bW5cIl0uZ3JpZCA+IC5jb2x1bW46bm90KC5yb3cpIHtcbiAgd2lkdGg6IDcuMTQyODU3MTQlO1xufVxuLnVpW2NsYXNzKj1cImZpZnRlZW4gY29sdW1uXCJdLmdyaWQgPiAucm93ID4gLmNvbHVtbixcbi51aVtjbGFzcyo9XCJmaWZ0ZWVuIGNvbHVtblwiXS5ncmlkID4gLmNvbHVtbjpub3QoLnJvdykge1xuICB3aWR0aDogNi42NjY2NjY2NyU7XG59XG4udWlbY2xhc3MqPVwic2l4dGVlbiBjb2x1bW5cIl0uZ3JpZCA+IC5yb3cgPiAuY29sdW1uLFxuLnVpW2NsYXNzKj1cInNpeHRlZW4gY29sdW1uXCJdLmdyaWQgPiAuY29sdW1uOm5vdCgucm93KSB7XG4gIHdpZHRoOiA2LjI1JTtcbn1cbi8qIFJvdyBCYXNlZCBPdmVycmlkZXMgKi9cbi51aS5ncmlkID4gW2NsYXNzKj1cIm9uZSBjb2x1bW5cIl0ucm93ID4gLmNvbHVtbiB7XG4gIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG59XG4udWkuZ3JpZCA+IFtjbGFzcyo9XCJ0d28gY29sdW1uXCJdLnJvdyA+IC5jb2x1bW4ge1xuICB3aWR0aDogNTAlICFpbXBvcnRhbnQ7XG59XG4udWkuZ3JpZCA+IFtjbGFzcyo9XCJ0aHJlZSBjb2x1bW5cIl0ucm93ID4gLmNvbHVtbiB7XG4gIHdpZHRoOiAzMy4zMzMzMzMzMyUgIWltcG9ydGFudDtcbn1cbi51aS5ncmlkID4gW2NsYXNzKj1cImZvdXIgY29sdW1uXCJdLnJvdyA+IC5jb2x1bW4ge1xuICB3aWR0aDogMjUlICFpbXBvcnRhbnQ7XG59XG4udWkuZ3JpZCA+IFtjbGFzcyo9XCJmaXZlIGNvbHVtblwiXS5yb3cgPiAuY29sdW1uIHtcbiAgd2lkdGg6IDIwJSAhaW1wb3J0YW50O1xufVxuLnVpLmdyaWQgPiBbY2xhc3MqPVwic2l4IGNvbHVtblwiXS5yb3cgPiAuY29sdW1uIHtcbiAgd2lkdGg6IDE2LjY2NjY2NjY3JSAhaW1wb3J0YW50O1xufVxuLnVpLmdyaWQgPiBbY2xhc3MqPVwic2V2ZW4gY29sdW1uXCJdLnJvdyA+IC5jb2x1bW4ge1xuICB3aWR0aDogMTQuMjg1NzE0MjklICFpbXBvcnRhbnQ7XG59XG4udWkuZ3JpZCA+IFtjbGFzcyo9XCJlaWdodCBjb2x1bW5cIl0ucm93ID4gLmNvbHVtbiB7XG4gIHdpZHRoOiAxMi41JSAhaW1wb3J0YW50O1xufVxuLnVpLmdyaWQgPiBbY2xhc3MqPVwibmluZSBjb2x1bW5cIl0ucm93ID4gLmNvbHVtbiB7XG4gIHdpZHRoOiAxMS4xMTExMTExMSUgIWltcG9ydGFudDtcbn1cbi51aS5ncmlkID4gW2NsYXNzKj1cInRlbiBjb2x1bW5cIl0ucm93ID4gLmNvbHVtbiB7XG4gIHdpZHRoOiAxMCUgIWltcG9ydGFudDtcbn1cbi51aS5ncmlkID4gW2NsYXNzKj1cImVsZXZlbiBjb2x1bW5cIl0ucm93ID4gLmNvbHVtbiB7XG4gIHdpZHRoOiA5LjA5MDkwOTA5JSAhaW1wb3J0YW50O1xufVxuLnVpLmdyaWQgPiBbY2xhc3MqPVwidHdlbHZlIGNvbHVtblwiXS5yb3cgPiAuY29sdW1uIHtcbiAgd2lkdGg6IDguMzMzMzMzMzMlICFpbXBvcnRhbnQ7XG59XG4udWkuZ3JpZCA+IFtjbGFzcyo9XCJ0aGlydGVlbiBjb2x1bW5cIl0ucm93ID4gLmNvbHVtbiB7XG4gIHdpZHRoOiA3LjY5MjMwNzY5JSAhaW1wb3J0YW50O1xufVxuLnVpLmdyaWQgPiBbY2xhc3MqPVwiZm91cnRlZW4gY29sdW1uXCJdLnJvdyA+IC5jb2x1bW4ge1xuICB3aWR0aDogNy4xNDI4NTcxNCUgIWltcG9ydGFudDtcbn1cbi51aS5ncmlkID4gW2NsYXNzKj1cImZpZnRlZW4gY29sdW1uXCJdLnJvdyA+IC5jb2x1bW4ge1xuICB3aWR0aDogNi42NjY2NjY2NyUgIWltcG9ydGFudDtcbn1cbi51aS5ncmlkID4gW2NsYXNzKj1cInNpeHRlZW4gY29sdW1uXCJdLnJvdyA+IC5jb2x1bW4ge1xuICB3aWR0aDogNi4yNSUgIWltcG9ydGFudDtcbn1cbi8qIENlbGxlZCBQYWdlICovXG4udWkuY2VsbGVkLnBhZ2UuZ3JpZCB7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBDb2x1bW4gV2lkdGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNpemluZyBDb21iaW5hdGlvbnMgKi9cbi51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJvbmUgd2lkZVwiXS5jb2x1bW4sXG4udWkuZ3JpZCA+IC5jb2x1bW4ucm93ID4gW2NsYXNzKj1cIm9uZSB3aWRlXCJdLmNvbHVtbixcbi51aS5ncmlkID4gW2NsYXNzKj1cIm9uZSB3aWRlXCJdLmNvbHVtbixcbi51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJvbmUgd2lkZVwiXS5jb2x1bW4ge1xuICB3aWR0aDogNi4yNSUgIWltcG9ydGFudDtcbn1cbi51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJ0d28gd2lkZVwiXS5jb2x1bW4sXG4udWkuZ3JpZCA+IC5jb2x1bW4ucm93ID4gW2NsYXNzKj1cInR3byB3aWRlXCJdLmNvbHVtbixcbi51aS5ncmlkID4gW2NsYXNzKj1cInR3byB3aWRlXCJdLmNvbHVtbixcbi51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJ0d28gd2lkZVwiXS5jb2x1bW4ge1xuICB3aWR0aDogMTIuNSUgIWltcG9ydGFudDtcbn1cbi51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJ0aHJlZSB3aWRlXCJdLmNvbHVtbixcbi51aS5ncmlkID4gLmNvbHVtbi5yb3cgPiBbY2xhc3MqPVwidGhyZWUgd2lkZVwiXS5jb2x1bW4sXG4udWkuZ3JpZCA+IFtjbGFzcyo9XCJ0aHJlZSB3aWRlXCJdLmNvbHVtbixcbi51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJ0aHJlZSB3aWRlXCJdLmNvbHVtbiB7XG4gIHdpZHRoOiAxOC43NSUgIWltcG9ydGFudDtcbn1cbi51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJmb3VyIHdpZGVcIl0uY29sdW1uLFxuLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJmb3VyIHdpZGVcIl0uY29sdW1uLFxuLnVpLmdyaWQgPiBbY2xhc3MqPVwiZm91ciB3aWRlXCJdLmNvbHVtbixcbi51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJmb3VyIHdpZGVcIl0uY29sdW1uIHtcbiAgd2lkdGg6IDI1JSAhaW1wb3J0YW50O1xufVxuLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cImZpdmUgd2lkZVwiXS5jb2x1bW4sXG4udWkuZ3JpZCA+IC5jb2x1bW4ucm93ID4gW2NsYXNzKj1cImZpdmUgd2lkZVwiXS5jb2x1bW4sXG4udWkuZ3JpZCA+IFtjbGFzcyo9XCJmaXZlIHdpZGVcIl0uY29sdW1uLFxuLnVpLmNvbHVtbi5ncmlkID4gW2NsYXNzKj1cImZpdmUgd2lkZVwiXS5jb2x1bW4ge1xuICB3aWR0aDogMzEuMjUlICFpbXBvcnRhbnQ7XG59XG4udWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwic2l4IHdpZGVcIl0uY29sdW1uLFxuLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJzaXggd2lkZVwiXS5jb2x1bW4sXG4udWkuZ3JpZCA+IFtjbGFzcyo9XCJzaXggd2lkZVwiXS5jb2x1bW4sXG4udWkuY29sdW1uLmdyaWQgPiBbY2xhc3MqPVwic2l4IHdpZGVcIl0uY29sdW1uIHtcbiAgd2lkdGg6IDM3LjUlICFpbXBvcnRhbnQ7XG59XG4udWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwic2V2ZW4gd2lkZVwiXS5jb2x1bW4sXG4udWkuZ3JpZCA+IC5jb2x1bW4ucm93ID4gW2NsYXNzKj1cInNldmVuIHdpZGVcIl0uY29sdW1uLFxuLnVpLmdyaWQgPiBbY2xhc3MqPVwic2V2ZW4gd2lkZVwiXS5jb2x1bW4sXG4udWkuY29sdW1uLmdyaWQgPiBbY2xhc3MqPVwic2V2ZW4gd2lkZVwiXS5jb2x1bW4ge1xuICB3aWR0aDogNDMuNzUlICFpbXBvcnRhbnQ7XG59XG4udWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwiZWlnaHQgd2lkZVwiXS5jb2x1bW4sXG4udWkuZ3JpZCA+IC5jb2x1bW4ucm93ID4gW2NsYXNzKj1cImVpZ2h0IHdpZGVcIl0uY29sdW1uLFxuLnVpLmdyaWQgPiBbY2xhc3MqPVwiZWlnaHQgd2lkZVwiXS5jb2x1bW4sXG4udWkuY29sdW1uLmdyaWQgPiBbY2xhc3MqPVwiZWlnaHQgd2lkZVwiXS5jb2x1bW4ge1xuICB3aWR0aDogNTAlICFpbXBvcnRhbnQ7XG59XG4udWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwibmluZSB3aWRlXCJdLmNvbHVtbixcbi51aS5ncmlkID4gLmNvbHVtbi5yb3cgPiBbY2xhc3MqPVwibmluZSB3aWRlXCJdLmNvbHVtbixcbi51aS5ncmlkID4gW2NsYXNzKj1cIm5pbmUgd2lkZVwiXS5jb2x1bW4sXG4udWkuY29sdW1uLmdyaWQgPiBbY2xhc3MqPVwibmluZSB3aWRlXCJdLmNvbHVtbiB7XG4gIHdpZHRoOiA1Ni4yNSUgIWltcG9ydGFudDtcbn1cbi51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJ0ZW4gd2lkZVwiXS5jb2x1bW4sXG4udWkuZ3JpZCA+IC5jb2x1bW4ucm93ID4gW2NsYXNzKj1cInRlbiB3aWRlXCJdLmNvbHVtbixcbi51aS5ncmlkID4gW2NsYXNzKj1cInRlbiB3aWRlXCJdLmNvbHVtbixcbi51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJ0ZW4gd2lkZVwiXS5jb2x1bW4ge1xuICB3aWR0aDogNjIuNSUgIWltcG9ydGFudDtcbn1cbi51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJlbGV2ZW4gd2lkZVwiXS5jb2x1bW4sXG4udWkuZ3JpZCA+IC5jb2x1bW4ucm93ID4gW2NsYXNzKj1cImVsZXZlbiB3aWRlXCJdLmNvbHVtbixcbi51aS5ncmlkID4gW2NsYXNzKj1cImVsZXZlbiB3aWRlXCJdLmNvbHVtbixcbi51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJlbGV2ZW4gd2lkZVwiXS5jb2x1bW4ge1xuICB3aWR0aDogNjguNzUlICFpbXBvcnRhbnQ7XG59XG4udWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwidHdlbHZlIHdpZGVcIl0uY29sdW1uLFxuLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJ0d2VsdmUgd2lkZVwiXS5jb2x1bW4sXG4udWkuZ3JpZCA+IFtjbGFzcyo9XCJ0d2VsdmUgd2lkZVwiXS5jb2x1bW4sXG4udWkuY29sdW1uLmdyaWQgPiBbY2xhc3MqPVwidHdlbHZlIHdpZGVcIl0uY29sdW1uIHtcbiAgd2lkdGg6IDc1JSAhaW1wb3J0YW50O1xufVxuLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cInRoaXJ0ZWVuIHdpZGVcIl0uY29sdW1uLFxuLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJ0aGlydGVlbiB3aWRlXCJdLmNvbHVtbixcbi51aS5ncmlkID4gW2NsYXNzKj1cInRoaXJ0ZWVuIHdpZGVcIl0uY29sdW1uLFxuLnVpLmNvbHVtbi5ncmlkID4gW2NsYXNzKj1cInRoaXJ0ZWVuIHdpZGVcIl0uY29sdW1uIHtcbiAgd2lkdGg6IDgxLjI1JSAhaW1wb3J0YW50O1xufVxuLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cImZvdXJ0ZWVuIHdpZGVcIl0uY29sdW1uLFxuLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJmb3VydGVlbiB3aWRlXCJdLmNvbHVtbixcbi51aS5ncmlkID4gW2NsYXNzKj1cImZvdXJ0ZWVuIHdpZGVcIl0uY29sdW1uLFxuLnVpLmNvbHVtbi5ncmlkID4gW2NsYXNzKj1cImZvdXJ0ZWVuIHdpZGVcIl0uY29sdW1uIHtcbiAgd2lkdGg6IDg3LjUlICFpbXBvcnRhbnQ7XG59XG4udWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwiZmlmdGVlbiB3aWRlXCJdLmNvbHVtbixcbi51aS5ncmlkID4gLmNvbHVtbi5yb3cgPiBbY2xhc3MqPVwiZmlmdGVlbiB3aWRlXCJdLmNvbHVtbixcbi51aS5ncmlkID4gW2NsYXNzKj1cImZpZnRlZW4gd2lkZVwiXS5jb2x1bW4sXG4udWkuY29sdW1uLmdyaWQgPiBbY2xhc3MqPVwiZmlmdGVlbiB3aWRlXCJdLmNvbHVtbiB7XG4gIHdpZHRoOiA5My43NSUgIWltcG9ydGFudDtcbn1cbi51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJzaXh0ZWVuIHdpZGVcIl0uY29sdW1uLFxuLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJzaXh0ZWVuIHdpZGVcIl0uY29sdW1uLFxuLnVpLmdyaWQgPiBbY2xhc3MqPVwic2l4dGVlbiB3aWRlXCJdLmNvbHVtbixcbi51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJzaXh0ZWVuIHdpZGVcIl0uY29sdW1uIHtcbiAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFdpZHRoIHBlciBEZXZpY2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1vYmlsZSBTaXppbmcgQ29tYmluYXRpb25zICovXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDMyMHB4KSBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cIm9uZSB3aWRlIG1vYmlsZVwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gLmNvbHVtbi5yb3cgPiBbY2xhc3MqPVwib25lIHdpZGUgbW9iaWxlXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwib25lIHdpZGUgbW9iaWxlXCJdLmNvbHVtbixcbiAgLnVpLmNvbHVtbi5ncmlkID4gW2NsYXNzKj1cIm9uZSB3aWRlIG1vYmlsZVwiXS5jb2x1bW4ge1xuICAgIHdpZHRoOiA2LjI1JSAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJ0d28gd2lkZSBtb2JpbGVcIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IC5jb2x1bW4ucm93ID4gW2NsYXNzKj1cInR3byB3aWRlIG1vYmlsZVwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cInR3byB3aWRlIG1vYmlsZVwiXS5jb2x1bW4sXG4gIC51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJ0d28gd2lkZSBtb2JpbGVcIl0uY29sdW1uIHtcbiAgICB3aWR0aDogMTIuNSUgIWltcG9ydGFudDtcbiAgfVxuICAudWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwidGhyZWUgd2lkZSBtb2JpbGVcIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IC5jb2x1bW4ucm93ID4gW2NsYXNzKj1cInRocmVlIHdpZGUgbW9iaWxlXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwidGhyZWUgd2lkZSBtb2JpbGVcIl0uY29sdW1uLFxuICAudWkuY29sdW1uLmdyaWQgPiBbY2xhc3MqPVwidGhyZWUgd2lkZSBtb2JpbGVcIl0uY29sdW1uIHtcbiAgICB3aWR0aDogMTguNzUlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cImZvdXIgd2lkZSBtb2JpbGVcIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IC5jb2x1bW4ucm93ID4gW2NsYXNzKj1cImZvdXIgd2lkZSBtb2JpbGVcIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJmb3VyIHdpZGUgbW9iaWxlXCJdLmNvbHVtbixcbiAgLnVpLmNvbHVtbi5ncmlkID4gW2NsYXNzKj1cImZvdXIgd2lkZSBtb2JpbGVcIl0uY29sdW1uIHtcbiAgICB3aWR0aDogMjUlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cImZpdmUgd2lkZSBtb2JpbGVcIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IC5jb2x1bW4ucm93ID4gW2NsYXNzKj1cImZpdmUgd2lkZSBtb2JpbGVcIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJmaXZlIHdpZGUgbW9iaWxlXCJdLmNvbHVtbixcbiAgLnVpLmNvbHVtbi5ncmlkID4gW2NsYXNzKj1cImZpdmUgd2lkZSBtb2JpbGVcIl0uY29sdW1uIHtcbiAgICB3aWR0aDogMzEuMjUlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cInNpeCB3aWRlIG1vYmlsZVwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gLmNvbHVtbi5yb3cgPiBbY2xhc3MqPVwic2l4IHdpZGUgbW9iaWxlXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwic2l4IHdpZGUgbW9iaWxlXCJdLmNvbHVtbixcbiAgLnVpLmNvbHVtbi5ncmlkID4gW2NsYXNzKj1cInNpeCB3aWRlIG1vYmlsZVwiXS5jb2x1bW4ge1xuICAgIHdpZHRoOiAzNy41JSAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJzZXZlbiB3aWRlIG1vYmlsZVwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gLmNvbHVtbi5yb3cgPiBbY2xhc3MqPVwic2V2ZW4gd2lkZSBtb2JpbGVcIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJzZXZlbiB3aWRlIG1vYmlsZVwiXS5jb2x1bW4sXG4gIC51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJzZXZlbiB3aWRlIG1vYmlsZVwiXS5jb2x1bW4ge1xuICAgIHdpZHRoOiA0My43NSUgIWltcG9ydGFudDtcbiAgfVxuICAudWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwiZWlnaHQgd2lkZSBtb2JpbGVcIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IC5jb2x1bW4ucm93ID4gW2NsYXNzKj1cImVpZ2h0IHdpZGUgbW9iaWxlXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwiZWlnaHQgd2lkZSBtb2JpbGVcIl0uY29sdW1uLFxuICAudWkuY29sdW1uLmdyaWQgPiBbY2xhc3MqPVwiZWlnaHQgd2lkZSBtb2JpbGVcIl0uY29sdW1uIHtcbiAgICB3aWR0aDogNTAlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cIm5pbmUgd2lkZSBtb2JpbGVcIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IC5jb2x1bW4ucm93ID4gW2NsYXNzKj1cIm5pbmUgd2lkZSBtb2JpbGVcIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJuaW5lIHdpZGUgbW9iaWxlXCJdLmNvbHVtbixcbiAgLnVpLmNvbHVtbi5ncmlkID4gW2NsYXNzKj1cIm5pbmUgd2lkZSBtb2JpbGVcIl0uY29sdW1uIHtcbiAgICB3aWR0aDogNTYuMjUlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cInRlbiB3aWRlIG1vYmlsZVwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gLmNvbHVtbi5yb3cgPiBbY2xhc3MqPVwidGVuIHdpZGUgbW9iaWxlXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwidGVuIHdpZGUgbW9iaWxlXCJdLmNvbHVtbixcbiAgLnVpLmNvbHVtbi5ncmlkID4gW2NsYXNzKj1cInRlbiB3aWRlIG1vYmlsZVwiXS5jb2x1bW4ge1xuICAgIHdpZHRoOiA2Mi41JSAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJlbGV2ZW4gd2lkZSBtb2JpbGVcIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IC5jb2x1bW4ucm93ID4gW2NsYXNzKj1cImVsZXZlbiB3aWRlIG1vYmlsZVwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cImVsZXZlbiB3aWRlIG1vYmlsZVwiXS5jb2x1bW4sXG4gIC51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJlbGV2ZW4gd2lkZSBtb2JpbGVcIl0uY29sdW1uIHtcbiAgICB3aWR0aDogNjguNzUlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cInR3ZWx2ZSB3aWRlIG1vYmlsZVwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gLmNvbHVtbi5yb3cgPiBbY2xhc3MqPVwidHdlbHZlIHdpZGUgbW9iaWxlXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwidHdlbHZlIHdpZGUgbW9iaWxlXCJdLmNvbHVtbixcbiAgLnVpLmNvbHVtbi5ncmlkID4gW2NsYXNzKj1cInR3ZWx2ZSB3aWRlIG1vYmlsZVwiXS5jb2x1bW4ge1xuICAgIHdpZHRoOiA3NSUgIWltcG9ydGFudDtcbiAgfVxuICAudWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwidGhpcnRlZW4gd2lkZSBtb2JpbGVcIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IC5jb2x1bW4ucm93ID4gW2NsYXNzKj1cInRoaXJ0ZWVuIHdpZGUgbW9iaWxlXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwidGhpcnRlZW4gd2lkZSBtb2JpbGVcIl0uY29sdW1uLFxuICAudWkuY29sdW1uLmdyaWQgPiBbY2xhc3MqPVwidGhpcnRlZW4gd2lkZSBtb2JpbGVcIl0uY29sdW1uIHtcbiAgICB3aWR0aDogODEuMjUlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cImZvdXJ0ZWVuIHdpZGUgbW9iaWxlXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJmb3VydGVlbiB3aWRlIG1vYmlsZVwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cImZvdXJ0ZWVuIHdpZGUgbW9iaWxlXCJdLmNvbHVtbixcbiAgLnVpLmNvbHVtbi5ncmlkID4gW2NsYXNzKj1cImZvdXJ0ZWVuIHdpZGUgbW9iaWxlXCJdLmNvbHVtbiB7XG4gICAgd2lkdGg6IDg3LjUlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cImZpZnRlZW4gd2lkZSBtb2JpbGVcIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IC5jb2x1bW4ucm93ID4gW2NsYXNzKj1cImZpZnRlZW4gd2lkZSBtb2JpbGVcIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJmaWZ0ZWVuIHdpZGUgbW9iaWxlXCJdLmNvbHVtbixcbiAgLnVpLmNvbHVtbi5ncmlkID4gW2NsYXNzKj1cImZpZnRlZW4gd2lkZSBtb2JpbGVcIl0uY29sdW1uIHtcbiAgICB3aWR0aDogOTMuNzUlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cInNpeHRlZW4gd2lkZSBtb2JpbGVcIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IC5jb2x1bW4ucm93ID4gW2NsYXNzKj1cInNpeHRlZW4gd2lkZSBtb2JpbGVcIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJzaXh0ZWVuIHdpZGUgbW9iaWxlXCJdLmNvbHVtbixcbiAgLnVpLmNvbHVtbi5ncmlkID4gW2NsYXNzKj1cInNpeHRlZW4gd2lkZSBtb2JpbGVcIl0uY29sdW1uIHtcbiAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICB9XG59XG4vKiBUYWJsZXQgU2l6aW5nIENvbWJpbmF0aW9ucyAqL1xuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NjhweCkgYW5kIChtYXgtd2lkdGg6IDk5MXB4KSB7XG4gIC51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJvbmUgd2lkZSB0YWJsZXRcIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IC5jb2x1bW4ucm93ID4gW2NsYXNzKj1cIm9uZSB3aWRlIHRhYmxldFwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cIm9uZSB3aWRlIHRhYmxldFwiXS5jb2x1bW4sXG4gIC51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJvbmUgd2lkZSB0YWJsZXRcIl0uY29sdW1uIHtcbiAgICB3aWR0aDogNi4yNSUgIWltcG9ydGFudDtcbiAgfVxuICAudWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwidHdvIHdpZGUgdGFibGV0XCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJ0d28gd2lkZSB0YWJsZXRcIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJ0d28gd2lkZSB0YWJsZXRcIl0uY29sdW1uLFxuICAudWkuY29sdW1uLmdyaWQgPiBbY2xhc3MqPVwidHdvIHdpZGUgdGFibGV0XCJdLmNvbHVtbiB7XG4gICAgd2lkdGg6IDEyLjUlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cInRocmVlIHdpZGUgdGFibGV0XCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJ0aHJlZSB3aWRlIHRhYmxldFwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cInRocmVlIHdpZGUgdGFibGV0XCJdLmNvbHVtbixcbiAgLnVpLmNvbHVtbi5ncmlkID4gW2NsYXNzKj1cInRocmVlIHdpZGUgdGFibGV0XCJdLmNvbHVtbiB7XG4gICAgd2lkdGg6IDE4Ljc1JSAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJmb3VyIHdpZGUgdGFibGV0XCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJmb3VyIHdpZGUgdGFibGV0XCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwiZm91ciB3aWRlIHRhYmxldFwiXS5jb2x1bW4sXG4gIC51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJmb3VyIHdpZGUgdGFibGV0XCJdLmNvbHVtbiB7XG4gICAgd2lkdGg6IDI1JSAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJmaXZlIHdpZGUgdGFibGV0XCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJmaXZlIHdpZGUgdGFibGV0XCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwiZml2ZSB3aWRlIHRhYmxldFwiXS5jb2x1bW4sXG4gIC51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJmaXZlIHdpZGUgdGFibGV0XCJdLmNvbHVtbiB7XG4gICAgd2lkdGg6IDMxLjI1JSAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJzaXggd2lkZSB0YWJsZXRcIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IC5jb2x1bW4ucm93ID4gW2NsYXNzKj1cInNpeCB3aWRlIHRhYmxldFwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cInNpeCB3aWRlIHRhYmxldFwiXS5jb2x1bW4sXG4gIC51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJzaXggd2lkZSB0YWJsZXRcIl0uY29sdW1uIHtcbiAgICB3aWR0aDogMzcuNSUgIWltcG9ydGFudDtcbiAgfVxuICAudWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwic2V2ZW4gd2lkZSB0YWJsZXRcIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IC5jb2x1bW4ucm93ID4gW2NsYXNzKj1cInNldmVuIHdpZGUgdGFibGV0XCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwic2V2ZW4gd2lkZSB0YWJsZXRcIl0uY29sdW1uLFxuICAudWkuY29sdW1uLmdyaWQgPiBbY2xhc3MqPVwic2V2ZW4gd2lkZSB0YWJsZXRcIl0uY29sdW1uIHtcbiAgICB3aWR0aDogNDMuNzUlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cImVpZ2h0IHdpZGUgdGFibGV0XCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJlaWdodCB3aWRlIHRhYmxldFwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cImVpZ2h0IHdpZGUgdGFibGV0XCJdLmNvbHVtbixcbiAgLnVpLmNvbHVtbi5ncmlkID4gW2NsYXNzKj1cImVpZ2h0IHdpZGUgdGFibGV0XCJdLmNvbHVtbiB7XG4gICAgd2lkdGg6IDUwJSAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJuaW5lIHdpZGUgdGFibGV0XCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJuaW5lIHdpZGUgdGFibGV0XCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwibmluZSB3aWRlIHRhYmxldFwiXS5jb2x1bW4sXG4gIC51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJuaW5lIHdpZGUgdGFibGV0XCJdLmNvbHVtbiB7XG4gICAgd2lkdGg6IDU2LjI1JSAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJ0ZW4gd2lkZSB0YWJsZXRcIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IC5jb2x1bW4ucm93ID4gW2NsYXNzKj1cInRlbiB3aWRlIHRhYmxldFwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cInRlbiB3aWRlIHRhYmxldFwiXS5jb2x1bW4sXG4gIC51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJ0ZW4gd2lkZSB0YWJsZXRcIl0uY29sdW1uIHtcbiAgICB3aWR0aDogNjIuNSUgIWltcG9ydGFudDtcbiAgfVxuICAudWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwiZWxldmVuIHdpZGUgdGFibGV0XCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJlbGV2ZW4gd2lkZSB0YWJsZXRcIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJlbGV2ZW4gd2lkZSB0YWJsZXRcIl0uY29sdW1uLFxuICAudWkuY29sdW1uLmdyaWQgPiBbY2xhc3MqPVwiZWxldmVuIHdpZGUgdGFibGV0XCJdLmNvbHVtbiB7XG4gICAgd2lkdGg6IDY4Ljc1JSAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJ0d2VsdmUgd2lkZSB0YWJsZXRcIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IC5jb2x1bW4ucm93ID4gW2NsYXNzKj1cInR3ZWx2ZSB3aWRlIHRhYmxldFwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cInR3ZWx2ZSB3aWRlIHRhYmxldFwiXS5jb2x1bW4sXG4gIC51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJ0d2VsdmUgd2lkZSB0YWJsZXRcIl0uY29sdW1uIHtcbiAgICB3aWR0aDogNzUlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cInRoaXJ0ZWVuIHdpZGUgdGFibGV0XCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJ0aGlydGVlbiB3aWRlIHRhYmxldFwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cInRoaXJ0ZWVuIHdpZGUgdGFibGV0XCJdLmNvbHVtbixcbiAgLnVpLmNvbHVtbi5ncmlkID4gW2NsYXNzKj1cInRoaXJ0ZWVuIHdpZGUgdGFibGV0XCJdLmNvbHVtbiB7XG4gICAgd2lkdGg6IDgxLjI1JSAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJmb3VydGVlbiB3aWRlIHRhYmxldFwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gLmNvbHVtbi5yb3cgPiBbY2xhc3MqPVwiZm91cnRlZW4gd2lkZSB0YWJsZXRcIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJmb3VydGVlbiB3aWRlIHRhYmxldFwiXS5jb2x1bW4sXG4gIC51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJmb3VydGVlbiB3aWRlIHRhYmxldFwiXS5jb2x1bW4ge1xuICAgIHdpZHRoOiA4Ny41JSAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJmaWZ0ZWVuIHdpZGUgdGFibGV0XCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJmaWZ0ZWVuIHdpZGUgdGFibGV0XCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwiZmlmdGVlbiB3aWRlIHRhYmxldFwiXS5jb2x1bW4sXG4gIC51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJmaWZ0ZWVuIHdpZGUgdGFibGV0XCJdLmNvbHVtbiB7XG4gICAgd2lkdGg6IDkzLjc1JSAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJzaXh0ZWVuIHdpZGUgdGFibGV0XCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJzaXh0ZWVuIHdpZGUgdGFibGV0XCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwic2l4dGVlbiB3aWRlIHRhYmxldFwiXS5jb2x1bW4sXG4gIC51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJzaXh0ZWVuIHdpZGUgdGFibGV0XCJdLmNvbHVtbiB7XG4gICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgfVxufVxuLyogQ29tcHV0ZXIvRGVza3RvcCBTaXppbmcgQ29tYmluYXRpb25zICovXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDk5MnB4KSB7XG4gIC51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJvbmUgd2lkZSBjb21wdXRlclwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gLmNvbHVtbi5yb3cgPiBbY2xhc3MqPVwib25lIHdpZGUgY29tcHV0ZXJcIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJvbmUgd2lkZSBjb21wdXRlclwiXS5jb2x1bW4sXG4gIC51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJvbmUgd2lkZSBjb21wdXRlclwiXS5jb2x1bW4ge1xuICAgIHdpZHRoOiA2LjI1JSAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJ0d28gd2lkZSBjb21wdXRlclwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gLmNvbHVtbi5yb3cgPiBbY2xhc3MqPVwidHdvIHdpZGUgY29tcHV0ZXJcIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJ0d28gd2lkZSBjb21wdXRlclwiXS5jb2x1bW4sXG4gIC51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJ0d28gd2lkZSBjb21wdXRlclwiXS5jb2x1bW4ge1xuICAgIHdpZHRoOiAxMi41JSAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJ0aHJlZSB3aWRlIGNvbXB1dGVyXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJ0aHJlZSB3aWRlIGNvbXB1dGVyXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwidGhyZWUgd2lkZSBjb21wdXRlclwiXS5jb2x1bW4sXG4gIC51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJ0aHJlZSB3aWRlIGNvbXB1dGVyXCJdLmNvbHVtbiB7XG4gICAgd2lkdGg6IDE4Ljc1JSAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJmb3VyIHdpZGUgY29tcHV0ZXJcIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IC5jb2x1bW4ucm93ID4gW2NsYXNzKj1cImZvdXIgd2lkZSBjb21wdXRlclwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cImZvdXIgd2lkZSBjb21wdXRlclwiXS5jb2x1bW4sXG4gIC51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJmb3VyIHdpZGUgY29tcHV0ZXJcIl0uY29sdW1uIHtcbiAgICB3aWR0aDogMjUlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cImZpdmUgd2lkZSBjb21wdXRlclwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gLmNvbHVtbi5yb3cgPiBbY2xhc3MqPVwiZml2ZSB3aWRlIGNvbXB1dGVyXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwiZml2ZSB3aWRlIGNvbXB1dGVyXCJdLmNvbHVtbixcbiAgLnVpLmNvbHVtbi5ncmlkID4gW2NsYXNzKj1cImZpdmUgd2lkZSBjb21wdXRlclwiXS5jb2x1bW4ge1xuICAgIHdpZHRoOiAzMS4yNSUgIWltcG9ydGFudDtcbiAgfVxuICAudWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwic2l4IHdpZGUgY29tcHV0ZXJcIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IC5jb2x1bW4ucm93ID4gW2NsYXNzKj1cInNpeCB3aWRlIGNvbXB1dGVyXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwic2l4IHdpZGUgY29tcHV0ZXJcIl0uY29sdW1uLFxuICAudWkuY29sdW1uLmdyaWQgPiBbY2xhc3MqPVwic2l4IHdpZGUgY29tcHV0ZXJcIl0uY29sdW1uIHtcbiAgICB3aWR0aDogMzcuNSUgIWltcG9ydGFudDtcbiAgfVxuICAudWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwic2V2ZW4gd2lkZSBjb21wdXRlclwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gLmNvbHVtbi5yb3cgPiBbY2xhc3MqPVwic2V2ZW4gd2lkZSBjb21wdXRlclwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cInNldmVuIHdpZGUgY29tcHV0ZXJcIl0uY29sdW1uLFxuICAudWkuY29sdW1uLmdyaWQgPiBbY2xhc3MqPVwic2V2ZW4gd2lkZSBjb21wdXRlclwiXS5jb2x1bW4ge1xuICAgIHdpZHRoOiA0My43NSUgIWltcG9ydGFudDtcbiAgfVxuICAudWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwiZWlnaHQgd2lkZSBjb21wdXRlclwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gLmNvbHVtbi5yb3cgPiBbY2xhc3MqPVwiZWlnaHQgd2lkZSBjb21wdXRlclwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cImVpZ2h0IHdpZGUgY29tcHV0ZXJcIl0uY29sdW1uLFxuICAudWkuY29sdW1uLmdyaWQgPiBbY2xhc3MqPVwiZWlnaHQgd2lkZSBjb21wdXRlclwiXS5jb2x1bW4ge1xuICAgIHdpZHRoOiA1MCUgIWltcG9ydGFudDtcbiAgfVxuICAudWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwibmluZSB3aWRlIGNvbXB1dGVyXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJuaW5lIHdpZGUgY29tcHV0ZXJcIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJuaW5lIHdpZGUgY29tcHV0ZXJcIl0uY29sdW1uLFxuICAudWkuY29sdW1uLmdyaWQgPiBbY2xhc3MqPVwibmluZSB3aWRlIGNvbXB1dGVyXCJdLmNvbHVtbiB7XG4gICAgd2lkdGg6IDU2LjI1JSAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJ0ZW4gd2lkZSBjb21wdXRlclwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gLmNvbHVtbi5yb3cgPiBbY2xhc3MqPVwidGVuIHdpZGUgY29tcHV0ZXJcIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJ0ZW4gd2lkZSBjb21wdXRlclwiXS5jb2x1bW4sXG4gIC51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJ0ZW4gd2lkZSBjb21wdXRlclwiXS5jb2x1bW4ge1xuICAgIHdpZHRoOiA2Mi41JSAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJlbGV2ZW4gd2lkZSBjb21wdXRlclwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gLmNvbHVtbi5yb3cgPiBbY2xhc3MqPVwiZWxldmVuIHdpZGUgY29tcHV0ZXJcIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJlbGV2ZW4gd2lkZSBjb21wdXRlclwiXS5jb2x1bW4sXG4gIC51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJlbGV2ZW4gd2lkZSBjb21wdXRlclwiXS5jb2x1bW4ge1xuICAgIHdpZHRoOiA2OC43NSUgIWltcG9ydGFudDtcbiAgfVxuICAudWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwidHdlbHZlIHdpZGUgY29tcHV0ZXJcIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IC5jb2x1bW4ucm93ID4gW2NsYXNzKj1cInR3ZWx2ZSB3aWRlIGNvbXB1dGVyXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwidHdlbHZlIHdpZGUgY29tcHV0ZXJcIl0uY29sdW1uLFxuICAudWkuY29sdW1uLmdyaWQgPiBbY2xhc3MqPVwidHdlbHZlIHdpZGUgY29tcHV0ZXJcIl0uY29sdW1uIHtcbiAgICB3aWR0aDogNzUlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cInRoaXJ0ZWVuIHdpZGUgY29tcHV0ZXJcIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IC5jb2x1bW4ucm93ID4gW2NsYXNzKj1cInRoaXJ0ZWVuIHdpZGUgY29tcHV0ZXJcIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJ0aGlydGVlbiB3aWRlIGNvbXB1dGVyXCJdLmNvbHVtbixcbiAgLnVpLmNvbHVtbi5ncmlkID4gW2NsYXNzKj1cInRoaXJ0ZWVuIHdpZGUgY29tcHV0ZXJcIl0uY29sdW1uIHtcbiAgICB3aWR0aDogODEuMjUlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cImZvdXJ0ZWVuIHdpZGUgY29tcHV0ZXJcIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IC5jb2x1bW4ucm93ID4gW2NsYXNzKj1cImZvdXJ0ZWVuIHdpZGUgY29tcHV0ZXJcIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJmb3VydGVlbiB3aWRlIGNvbXB1dGVyXCJdLmNvbHVtbixcbiAgLnVpLmNvbHVtbi5ncmlkID4gW2NsYXNzKj1cImZvdXJ0ZWVuIHdpZGUgY29tcHV0ZXJcIl0uY29sdW1uIHtcbiAgICB3aWR0aDogODcuNSUgIWltcG9ydGFudDtcbiAgfVxuICAudWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwiZmlmdGVlbiB3aWRlIGNvbXB1dGVyXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJmaWZ0ZWVuIHdpZGUgY29tcHV0ZXJcIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJmaWZ0ZWVuIHdpZGUgY29tcHV0ZXJcIl0uY29sdW1uLFxuICAudWkuY29sdW1uLmdyaWQgPiBbY2xhc3MqPVwiZmlmdGVlbiB3aWRlIGNvbXB1dGVyXCJdLmNvbHVtbiB7XG4gICAgd2lkdGg6IDkzLjc1JSAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJzaXh0ZWVuIHdpZGUgY29tcHV0ZXJcIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IC5jb2x1bW4ucm93ID4gW2NsYXNzKj1cInNpeHRlZW4gd2lkZSBjb21wdXRlclwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cInNpeHRlZW4gd2lkZSBjb21wdXRlclwiXS5jb2x1bW4sXG4gIC51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJzaXh0ZWVuIHdpZGUgY29tcHV0ZXJcIl0uY29sdW1uIHtcbiAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICB9XG59XG4vKiBMYXJnZSBNb25pdG9yIFNpemluZyBDb21iaW5hdGlvbnMgKi9cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTIwMHB4KSBhbmQgKG1heC13aWR0aDogMTkxOXB4KSB7XG4gIC51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJvbmUgd2lkZSBsYXJnZSBzY3JlZW5cIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IC5jb2x1bW4ucm93ID4gW2NsYXNzKj1cIm9uZSB3aWRlIGxhcmdlIHNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cIm9uZSB3aWRlIGxhcmdlIHNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJvbmUgd2lkZSBsYXJnZSBzY3JlZW5cIl0uY29sdW1uIHtcbiAgICB3aWR0aDogNi4yNSUgIWltcG9ydGFudDtcbiAgfVxuICAudWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwidHdvIHdpZGUgbGFyZ2Ugc2NyZWVuXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJ0d28gd2lkZSBsYXJnZSBzY3JlZW5cIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJ0d28gd2lkZSBsYXJnZSBzY3JlZW5cIl0uY29sdW1uLFxuICAudWkuY29sdW1uLmdyaWQgPiBbY2xhc3MqPVwidHdvIHdpZGUgbGFyZ2Ugc2NyZWVuXCJdLmNvbHVtbiB7XG4gICAgd2lkdGg6IDEyLjUlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cInRocmVlIHdpZGUgbGFyZ2Ugc2NyZWVuXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJ0aHJlZSB3aWRlIGxhcmdlIHNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cInRocmVlIHdpZGUgbGFyZ2Ugc2NyZWVuXCJdLmNvbHVtbixcbiAgLnVpLmNvbHVtbi5ncmlkID4gW2NsYXNzKj1cInRocmVlIHdpZGUgbGFyZ2Ugc2NyZWVuXCJdLmNvbHVtbiB7XG4gICAgd2lkdGg6IDE4Ljc1JSAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJmb3VyIHdpZGUgbGFyZ2Ugc2NyZWVuXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJmb3VyIHdpZGUgbGFyZ2Ugc2NyZWVuXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwiZm91ciB3aWRlIGxhcmdlIHNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJmb3VyIHdpZGUgbGFyZ2Ugc2NyZWVuXCJdLmNvbHVtbiB7XG4gICAgd2lkdGg6IDI1JSAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJmaXZlIHdpZGUgbGFyZ2Ugc2NyZWVuXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJmaXZlIHdpZGUgbGFyZ2Ugc2NyZWVuXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwiZml2ZSB3aWRlIGxhcmdlIHNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJmaXZlIHdpZGUgbGFyZ2Ugc2NyZWVuXCJdLmNvbHVtbiB7XG4gICAgd2lkdGg6IDMxLjI1JSAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJzaXggd2lkZSBsYXJnZSBzY3JlZW5cIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IC5jb2x1bW4ucm93ID4gW2NsYXNzKj1cInNpeCB3aWRlIGxhcmdlIHNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cInNpeCB3aWRlIGxhcmdlIHNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJzaXggd2lkZSBsYXJnZSBzY3JlZW5cIl0uY29sdW1uIHtcbiAgICB3aWR0aDogMzcuNSUgIWltcG9ydGFudDtcbiAgfVxuICAudWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwic2V2ZW4gd2lkZSBsYXJnZSBzY3JlZW5cIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IC5jb2x1bW4ucm93ID4gW2NsYXNzKj1cInNldmVuIHdpZGUgbGFyZ2Ugc2NyZWVuXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwic2V2ZW4gd2lkZSBsYXJnZSBzY3JlZW5cIl0uY29sdW1uLFxuICAudWkuY29sdW1uLmdyaWQgPiBbY2xhc3MqPVwic2V2ZW4gd2lkZSBsYXJnZSBzY3JlZW5cIl0uY29sdW1uIHtcbiAgICB3aWR0aDogNDMuNzUlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cImVpZ2h0IHdpZGUgbGFyZ2Ugc2NyZWVuXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJlaWdodCB3aWRlIGxhcmdlIHNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cImVpZ2h0IHdpZGUgbGFyZ2Ugc2NyZWVuXCJdLmNvbHVtbixcbiAgLnVpLmNvbHVtbi5ncmlkID4gW2NsYXNzKj1cImVpZ2h0IHdpZGUgbGFyZ2Ugc2NyZWVuXCJdLmNvbHVtbiB7XG4gICAgd2lkdGg6IDUwJSAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJuaW5lIHdpZGUgbGFyZ2Ugc2NyZWVuXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJuaW5lIHdpZGUgbGFyZ2Ugc2NyZWVuXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwibmluZSB3aWRlIGxhcmdlIHNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJuaW5lIHdpZGUgbGFyZ2Ugc2NyZWVuXCJdLmNvbHVtbiB7XG4gICAgd2lkdGg6IDU2LjI1JSAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJ0ZW4gd2lkZSBsYXJnZSBzY3JlZW5cIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IC5jb2x1bW4ucm93ID4gW2NsYXNzKj1cInRlbiB3aWRlIGxhcmdlIHNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cInRlbiB3aWRlIGxhcmdlIHNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJ0ZW4gd2lkZSBsYXJnZSBzY3JlZW5cIl0uY29sdW1uIHtcbiAgICB3aWR0aDogNjIuNSUgIWltcG9ydGFudDtcbiAgfVxuICAudWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwiZWxldmVuIHdpZGUgbGFyZ2Ugc2NyZWVuXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJlbGV2ZW4gd2lkZSBsYXJnZSBzY3JlZW5cIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJlbGV2ZW4gd2lkZSBsYXJnZSBzY3JlZW5cIl0uY29sdW1uLFxuICAudWkuY29sdW1uLmdyaWQgPiBbY2xhc3MqPVwiZWxldmVuIHdpZGUgbGFyZ2Ugc2NyZWVuXCJdLmNvbHVtbiB7XG4gICAgd2lkdGg6IDY4Ljc1JSAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJ0d2VsdmUgd2lkZSBsYXJnZSBzY3JlZW5cIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IC5jb2x1bW4ucm93ID4gW2NsYXNzKj1cInR3ZWx2ZSB3aWRlIGxhcmdlIHNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cInR3ZWx2ZSB3aWRlIGxhcmdlIHNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJ0d2VsdmUgd2lkZSBsYXJnZSBzY3JlZW5cIl0uY29sdW1uIHtcbiAgICB3aWR0aDogNzUlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cInRoaXJ0ZWVuIHdpZGUgbGFyZ2Ugc2NyZWVuXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJ0aGlydGVlbiB3aWRlIGxhcmdlIHNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cInRoaXJ0ZWVuIHdpZGUgbGFyZ2Ugc2NyZWVuXCJdLmNvbHVtbixcbiAgLnVpLmNvbHVtbi5ncmlkID4gW2NsYXNzKj1cInRoaXJ0ZWVuIHdpZGUgbGFyZ2Ugc2NyZWVuXCJdLmNvbHVtbiB7XG4gICAgd2lkdGg6IDgxLjI1JSAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJmb3VydGVlbiB3aWRlIGxhcmdlIHNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gLmNvbHVtbi5yb3cgPiBbY2xhc3MqPVwiZm91cnRlZW4gd2lkZSBsYXJnZSBzY3JlZW5cIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJmb3VydGVlbiB3aWRlIGxhcmdlIHNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJmb3VydGVlbiB3aWRlIGxhcmdlIHNjcmVlblwiXS5jb2x1bW4ge1xuICAgIHdpZHRoOiA4Ny41JSAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJmaWZ0ZWVuIHdpZGUgbGFyZ2Ugc2NyZWVuXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJmaWZ0ZWVuIHdpZGUgbGFyZ2Ugc2NyZWVuXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwiZmlmdGVlbiB3aWRlIGxhcmdlIHNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJmaWZ0ZWVuIHdpZGUgbGFyZ2Ugc2NyZWVuXCJdLmNvbHVtbiB7XG4gICAgd2lkdGg6IDkzLjc1JSAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJzaXh0ZWVuIHdpZGUgbGFyZ2Ugc2NyZWVuXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJzaXh0ZWVuIHdpZGUgbGFyZ2Ugc2NyZWVuXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwic2l4dGVlbiB3aWRlIGxhcmdlIHNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJzaXh0ZWVuIHdpZGUgbGFyZ2Ugc2NyZWVuXCJdLmNvbHVtbiB7XG4gICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgfVxufVxuLyogV2lkZXNjcmVlbiBTaXppbmcgQ29tYmluYXRpb25zICovXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDE5MjBweCkge1xuICAudWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwib25lIHdpZGUgd2lkZXNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gLmNvbHVtbi5yb3cgPiBbY2xhc3MqPVwib25lIHdpZGUgd2lkZXNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cIm9uZSB3aWRlIHdpZGVzY3JlZW5cIl0uY29sdW1uLFxuICAudWkuY29sdW1uLmdyaWQgPiBbY2xhc3MqPVwib25lIHdpZGUgd2lkZXNjcmVlblwiXS5jb2x1bW4ge1xuICAgIHdpZHRoOiA2LjI1JSAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJ0d28gd2lkZSB3aWRlc2NyZWVuXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJ0d28gd2lkZSB3aWRlc2NyZWVuXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwidHdvIHdpZGUgd2lkZXNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJ0d28gd2lkZSB3aWRlc2NyZWVuXCJdLmNvbHVtbiB7XG4gICAgd2lkdGg6IDEyLjUlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cInRocmVlIHdpZGUgd2lkZXNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gLmNvbHVtbi5yb3cgPiBbY2xhc3MqPVwidGhyZWUgd2lkZSB3aWRlc2NyZWVuXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwidGhyZWUgd2lkZSB3aWRlc2NyZWVuXCJdLmNvbHVtbixcbiAgLnVpLmNvbHVtbi5ncmlkID4gW2NsYXNzKj1cInRocmVlIHdpZGUgd2lkZXNjcmVlblwiXS5jb2x1bW4ge1xuICAgIHdpZHRoOiAxOC43NSUgIWltcG9ydGFudDtcbiAgfVxuICAudWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwiZm91ciB3aWRlIHdpZGVzY3JlZW5cIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IC5jb2x1bW4ucm93ID4gW2NsYXNzKj1cImZvdXIgd2lkZSB3aWRlc2NyZWVuXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwiZm91ciB3aWRlIHdpZGVzY3JlZW5cIl0uY29sdW1uLFxuICAudWkuY29sdW1uLmdyaWQgPiBbY2xhc3MqPVwiZm91ciB3aWRlIHdpZGVzY3JlZW5cIl0uY29sdW1uIHtcbiAgICB3aWR0aDogMjUlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cImZpdmUgd2lkZSB3aWRlc2NyZWVuXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJmaXZlIHdpZGUgd2lkZXNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cImZpdmUgd2lkZSB3aWRlc2NyZWVuXCJdLmNvbHVtbixcbiAgLnVpLmNvbHVtbi5ncmlkID4gW2NsYXNzKj1cImZpdmUgd2lkZSB3aWRlc2NyZWVuXCJdLmNvbHVtbiB7XG4gICAgd2lkdGg6IDMxLjI1JSAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJzaXggd2lkZSB3aWRlc2NyZWVuXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJzaXggd2lkZSB3aWRlc2NyZWVuXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwic2l4IHdpZGUgd2lkZXNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJzaXggd2lkZSB3aWRlc2NyZWVuXCJdLmNvbHVtbiB7XG4gICAgd2lkdGg6IDM3LjUlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cInNldmVuIHdpZGUgd2lkZXNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gLmNvbHVtbi5yb3cgPiBbY2xhc3MqPVwic2V2ZW4gd2lkZSB3aWRlc2NyZWVuXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwic2V2ZW4gd2lkZSB3aWRlc2NyZWVuXCJdLmNvbHVtbixcbiAgLnVpLmNvbHVtbi5ncmlkID4gW2NsYXNzKj1cInNldmVuIHdpZGUgd2lkZXNjcmVlblwiXS5jb2x1bW4ge1xuICAgIHdpZHRoOiA0My43NSUgIWltcG9ydGFudDtcbiAgfVxuICAudWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwiZWlnaHQgd2lkZSB3aWRlc2NyZWVuXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJlaWdodCB3aWRlIHdpZGVzY3JlZW5cIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJlaWdodCB3aWRlIHdpZGVzY3JlZW5cIl0uY29sdW1uLFxuICAudWkuY29sdW1uLmdyaWQgPiBbY2xhc3MqPVwiZWlnaHQgd2lkZSB3aWRlc2NyZWVuXCJdLmNvbHVtbiB7XG4gICAgd2lkdGg6IDUwJSAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJuaW5lIHdpZGUgd2lkZXNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gLmNvbHVtbi5yb3cgPiBbY2xhc3MqPVwibmluZSB3aWRlIHdpZGVzY3JlZW5cIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJuaW5lIHdpZGUgd2lkZXNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJuaW5lIHdpZGUgd2lkZXNjcmVlblwiXS5jb2x1bW4ge1xuICAgIHdpZHRoOiA1Ni4yNSUgIWltcG9ydGFudDtcbiAgfVxuICAudWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwidGVuIHdpZGUgd2lkZXNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gLmNvbHVtbi5yb3cgPiBbY2xhc3MqPVwidGVuIHdpZGUgd2lkZXNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cInRlbiB3aWRlIHdpZGVzY3JlZW5cIl0uY29sdW1uLFxuICAudWkuY29sdW1uLmdyaWQgPiBbY2xhc3MqPVwidGVuIHdpZGUgd2lkZXNjcmVlblwiXS5jb2x1bW4ge1xuICAgIHdpZHRoOiA2Mi41JSAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJlbGV2ZW4gd2lkZSB3aWRlc2NyZWVuXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJlbGV2ZW4gd2lkZSB3aWRlc2NyZWVuXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwiZWxldmVuIHdpZGUgd2lkZXNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJlbGV2ZW4gd2lkZSB3aWRlc2NyZWVuXCJdLmNvbHVtbiB7XG4gICAgd2lkdGg6IDY4Ljc1JSAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJ0d2VsdmUgd2lkZSB3aWRlc2NyZWVuXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJ0d2VsdmUgd2lkZSB3aWRlc2NyZWVuXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwidHdlbHZlIHdpZGUgd2lkZXNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJ0d2VsdmUgd2lkZSB3aWRlc2NyZWVuXCJdLmNvbHVtbiB7XG4gICAgd2lkdGg6IDc1JSAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJ0aGlydGVlbiB3aWRlIHdpZGVzY3JlZW5cIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IC5jb2x1bW4ucm93ID4gW2NsYXNzKj1cInRoaXJ0ZWVuIHdpZGUgd2lkZXNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cInRoaXJ0ZWVuIHdpZGUgd2lkZXNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJ0aGlydGVlbiB3aWRlIHdpZGVzY3JlZW5cIl0uY29sdW1uIHtcbiAgICB3aWR0aDogODEuMjUlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cImZvdXJ0ZWVuIHdpZGUgd2lkZXNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gLmNvbHVtbi5yb3cgPiBbY2xhc3MqPVwiZm91cnRlZW4gd2lkZSB3aWRlc2NyZWVuXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwiZm91cnRlZW4gd2lkZSB3aWRlc2NyZWVuXCJdLmNvbHVtbixcbiAgLnVpLmNvbHVtbi5ncmlkID4gW2NsYXNzKj1cImZvdXJ0ZWVuIHdpZGUgd2lkZXNjcmVlblwiXS5jb2x1bW4ge1xuICAgIHdpZHRoOiA4Ny41JSAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJmaWZ0ZWVuIHdpZGUgd2lkZXNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gLmNvbHVtbi5yb3cgPiBbY2xhc3MqPVwiZmlmdGVlbiB3aWRlIHdpZGVzY3JlZW5cIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJmaWZ0ZWVuIHdpZGUgd2lkZXNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJmaWZ0ZWVuIHdpZGUgd2lkZXNjcmVlblwiXS5jb2x1bW4ge1xuICAgIHdpZHRoOiA5My43NSUgIWltcG9ydGFudDtcbiAgfVxuICAudWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwic2l4dGVlbiB3aWRlIHdpZGVzY3JlZW5cIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IC5jb2x1bW4ucm93ID4gW2NsYXNzKj1cInNpeHRlZW4gd2lkZSB3aWRlc2NyZWVuXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwic2l4dGVlbiB3aWRlIHdpZGVzY3JlZW5cIl0uY29sdW1uLFxuICAudWkuY29sdW1uLmdyaWQgPiBbY2xhc3MqPVwic2l4dGVlbiB3aWRlIHdpZGVzY3JlZW5cIl0uY29sdW1uIHtcbiAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICB9XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQ2VudGVyZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5jZW50ZXJlZC5ncmlkLFxuLnVpLmNlbnRlcmVkLmdyaWQgPiAucm93LFxuLnVpLmdyaWQgPiAuY2VudGVyZWQucm93IHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbn1cbi51aS5jZW50ZXJlZC5ncmlkID4gLmNvbHVtbjpub3QoLmFsaWduZWQpOm5vdCguanVzdGlmaWVkKTpub3QoLnJvdyksXG4udWkuY2VudGVyZWQuZ3JpZCA+IC5yb3cgPiAuY29sdW1uOm5vdCguYWxpZ25lZCk6bm90KC5qdXN0aWZpZWQpLFxuLnVpLmdyaWQgLmNlbnRlcmVkLnJvdyA+IC5jb2x1bW46bm90KC5hbGlnbmVkKTpub3QoLmp1c3RpZmllZCkge1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxuLnVpLmdyaWQgPiAuY2VudGVyZWQuY29sdW1uLFxuLnVpLmdyaWQgPiAucm93ID4gLmNlbnRlcmVkLmNvbHVtbiB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFJlbGF4ZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5yZWxheGVkLmdyaWQgPiAuY29sdW1uOm5vdCgucm93KSxcbi51aS5yZWxheGVkLmdyaWQgPiAucm93ID4gLmNvbHVtbixcbi51aS5ncmlkID4gLnJlbGF4ZWQucm93ID4gLmNvbHVtbiB7XG4gIHBhZGRpbmctbGVmdDogMS41cmVtO1xuICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW07XG59XG4udWlbY2xhc3MqPVwidmVyeSByZWxheGVkXCJdLmdyaWQgPiAuY29sdW1uOm5vdCgucm93KSxcbi51aVtjbGFzcyo9XCJ2ZXJ5IHJlbGF4ZWRcIl0uZ3JpZCA+IC5yb3cgPiAuY29sdW1uLFxuLnVpLmdyaWQgPiBbY2xhc3MqPVwidmVyeSByZWxheGVkXCJdLnJvdyA+IC5jb2x1bW4ge1xuICBwYWRkaW5nLWxlZnQ6IDIuNXJlbTtcbiAgcGFkZGluZy1yaWdodDogMi41cmVtO1xufVxuLyogQ291cGxpbmcgd2l0aCBVSSBEaXZpZGVyICovXG4udWkucmVsYXhlZC5ncmlkIC5yb3cgKyAudWkuZGl2aWRlcixcbi51aS5ncmlkIC5yZWxheGVkLnJvdyArIC51aS5kaXZpZGVyIHtcbiAgbWFyZ2luLWxlZnQ6IDEuNXJlbTtcbiAgbWFyZ2luLXJpZ2h0OiAxLjVyZW07XG59XG4udWlbY2xhc3MqPVwidmVyeSByZWxheGVkXCJdLmdyaWQgLnJvdyArIC51aS5kaXZpZGVyLFxuLnVpLmdyaWQgW2NsYXNzKj1cInZlcnkgcmVsYXhlZFwiXS5yb3cgKyAudWkuZGl2aWRlciB7XG4gIG1hcmdpbi1sZWZ0OiAyLjVyZW07XG4gIG1hcmdpbi1yaWdodDogMi41cmVtO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZGRlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLnBhZGRlZC5ncmlkOm5vdCgudmVydGljYWxseSk6bm90KC5ob3Jpem9udGFsbHkpIHtcbiAgbWFyZ2luOiAwZW0gIWltcG9ydGFudDtcbn1cbltjbGFzcyo9XCJob3Jpem9udGFsbHkgcGFkZGVkXCJdLnVpLmdyaWQge1xuICBtYXJnaW4tbGVmdDogMGVtICFpbXBvcnRhbnQ7XG4gIG1hcmdpbi1yaWdodDogMGVtICFpbXBvcnRhbnQ7XG59XG5bY2xhc3MqPVwidmVydGljYWxseSBwYWRkZWRcIl0udWkuZ3JpZCB7XG4gIG1hcmdpbi10b3A6IDBlbSAhaW1wb3J0YW50O1xuICBtYXJnaW4tYm90dG9tOiAwZW0gIWltcG9ydGFudDtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIFwiRmxvYXRlZFwiXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkuZ3JpZCBbY2xhc3MqPVwibGVmdCBmbG9hdGVkXCJdLmNvbHVtbiB7XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbn1cbi51aS5ncmlkIFtjbGFzcyo9XCJyaWdodCBmbG9hdGVkXCJdLmNvbHVtbiB7XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIERpdmlkZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5kaXZpZGVkLmdyaWQ6bm90KFtjbGFzcyo9XCJ2ZXJ0aWNhbGx5IGRpdmlkZWRcIl0pID4gLmNvbHVtbjpub3QoLnJvdyksXG4udWkuZGl2aWRlZC5ncmlkOm5vdChbY2xhc3MqPVwidmVydGljYWxseSBkaXZpZGVkXCJdKSA+IC5yb3cgPiAuY29sdW1uIHtcbiAgYm94LXNoYWRvdzogLTFweCAwcHggMHB4IDBweCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpO1xufVxuLyogU3dhcCBmcm9tIHBhZGRpbmcgdG8gbWFyZ2luIG9uIGNvbHVtbnMgdG8gaGF2ZSBkaXZpZGVycyBhbGlnbiAqL1xuLnVpW2NsYXNzKj1cInZlcnRpY2FsbHkgZGl2aWRlZFwiXS5ncmlkID4gLmNvbHVtbjpub3QoLnJvdyksXG4udWlbY2xhc3MqPVwidmVydGljYWxseSBkaXZpZGVkXCJdLmdyaWQgPiAucm93ID4gLmNvbHVtbiB7XG4gIG1hcmdpbi10b3A6IDFyZW07XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG4gIHBhZGRpbmctdG9wOiAwcmVtO1xuICBwYWRkaW5nLWJvdHRvbTogMHJlbTtcbn1cbi51aVtjbGFzcyo9XCJ2ZXJ0aWNhbGx5IGRpdmlkZWRcIl0uZ3JpZCA+IC5yb3cge1xuICBtYXJnaW4tdG9wOiAwZW07XG4gIG1hcmdpbi1ib3R0b206IDBlbTtcbn1cbi8qIE5vIGRpdmlkZXIgb24gZmlyc3QgY29sdW1uIG9uIHJvdyAqL1xuLnVpLmRpdmlkZWQuZ3JpZDpub3QoW2NsYXNzKj1cInZlcnRpY2FsbHkgZGl2aWRlZFwiXSkgPiAuY29sdW1uOmZpcnN0LWNoaWxkLFxuLnVpLmRpdmlkZWQuZ3JpZDpub3QoW2NsYXNzKj1cInZlcnRpY2FsbHkgZGl2aWRlZFwiXSkgPiAucm93ID4gLmNvbHVtbjpmaXJzdC1jaGlsZCB7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG59XG4vKiBObyBzcGFjZSBvbiB0b3Agb2YgZmlyc3Qgcm93ICovXG4udWlbY2xhc3MqPVwidmVydGljYWxseSBkaXZpZGVkXCJdLmdyaWQgPiAucm93OmZpcnN0LWNoaWxkID4gLmNvbHVtbiB7XG4gIG1hcmdpbi10b3A6IDBlbTtcbn1cbi8qIERpdmlkZWQgUm93ICovXG4udWkuZ3JpZCA+IC5kaXZpZGVkLnJvdyA+IC5jb2x1bW4ge1xuICBib3gtc2hhZG93OiAtMXB4IDBweCAwcHggMHB4IHJnYmEoMzQsIDM2LCAzOCwgMC4xNSk7XG59XG4udWkuZ3JpZCA+IC5kaXZpZGVkLnJvdyA+IC5jb2x1bW46Zmlyc3QtY2hpbGQge1xuICBib3gtc2hhZG93OiBub25lO1xufVxuLyogVmVydGljYWxseSBEaXZpZGVkICovXG4udWlbY2xhc3MqPVwidmVydGljYWxseSBkaXZpZGVkXCJdLmdyaWQgPiAucm93IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuLnVpW2NsYXNzKj1cInZlcnRpY2FsbHkgZGl2aWRlZFwiXS5ncmlkID4gLnJvdzpiZWZvcmUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIHRvcDogMGVtO1xuICBsZWZ0OiAwcHg7XG4gIHdpZHRoOiBjYWxjKDEwMCUgLSAycmVtKTtcbiAgaGVpZ2h0OiAxcHg7XG4gIG1hcmdpbjogMCUgMXJlbTtcbiAgYm94LXNoYWRvdzogMHB4IC0xcHggMHB4IDBweCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpO1xufVxuLyogUGFkZGVkIEhvcml6b250YWxseSBEaXZpZGVkICovXG5bY2xhc3MqPVwiaG9yaXpvbnRhbGx5IHBhZGRlZFwiXS51aS5kaXZpZGVkLmdyaWQsXG4udWkucGFkZGVkLmRpdmlkZWQuZ3JpZDpub3QoLnZlcnRpY2FsbHkpOm5vdCguaG9yaXpvbnRhbGx5KSB7XG4gIHdpZHRoOiAxMDAlO1xufVxuLyogRmlyc3QgUm93IFZlcnRpY2FsbHkgRGl2aWRlZCAqL1xuLnVpW2NsYXNzKj1cInZlcnRpY2FsbHkgZGl2aWRlZFwiXS5ncmlkID4gLnJvdzpmaXJzdC1jaGlsZDpiZWZvcmUge1xuICBib3gtc2hhZG93OiBub25lO1xufVxuLyogSW52ZXJ0ZWQgRGl2aWRlZCAqL1xuLnVpLmludmVydGVkLmRpdmlkZWQuZ3JpZDpub3QoW2NsYXNzKj1cInZlcnRpY2FsbHkgZGl2aWRlZFwiXSkgPiAuY29sdW1uOm5vdCgucm93KSxcbi51aS5pbnZlcnRlZC5kaXZpZGVkLmdyaWQ6bm90KFtjbGFzcyo9XCJ2ZXJ0aWNhbGx5IGRpdmlkZWRcIl0pID4gLnJvdyA+IC5jb2x1bW4ge1xuICBib3gtc2hhZG93OiAtMXB4IDBweCAwcHggMHB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKTtcbn1cbi51aS5pbnZlcnRlZC5kaXZpZGVkLmdyaWQ6bm90KFtjbGFzcyo9XCJ2ZXJ0aWNhbGx5IGRpdmlkZWRcIl0pID4gLmNvbHVtbjpub3QoLnJvdyk6Zmlyc3QtY2hpbGQsXG4udWkuaW52ZXJ0ZWQuZGl2aWRlZC5ncmlkOm5vdChbY2xhc3MqPVwidmVydGljYWxseSBkaXZpZGVkXCJdKSA+IC5yb3cgPiAuY29sdW1uOmZpcnN0LWNoaWxkIHtcbiAgYm94LXNoYWRvdzogbm9uZTtcbn1cbi51aS5pbnZlcnRlZFtjbGFzcyo9XCJ2ZXJ0aWNhbGx5IGRpdmlkZWRcIl0uZ3JpZCA+IC5yb3c6YmVmb3JlIHtcbiAgYm94LXNoYWRvdzogMHB4IC0xcHggMHB4IDBweCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSk7XG59XG4vKiBSZWxheGVkICovXG4udWkucmVsYXhlZFtjbGFzcyo9XCJ2ZXJ0aWNhbGx5IGRpdmlkZWRcIl0uZ3JpZCA+IC5yb3c6YmVmb3JlIHtcbiAgbWFyZ2luLWxlZnQ6IDEuNXJlbTtcbiAgbWFyZ2luLXJpZ2h0OiAxLjVyZW07XG4gIHdpZHRoOiBjYWxjKDEwMCUgLSAzcmVtKTtcbn1cbi51aVtjbGFzcyo9XCJ2ZXJ5IHJlbGF4ZWRcIl1bY2xhc3MqPVwidmVydGljYWxseSBkaXZpZGVkXCJdLmdyaWQgPiAucm93OmJlZm9yZSB7XG4gIG1hcmdpbi1sZWZ0OiA1cmVtO1xuICBtYXJnaW4tcmlnaHQ6IDVyZW07XG4gIHdpZHRoOiBjYWxjKDEwMCUgLSA1cmVtKTtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICAgQ2VsbGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkuY2VsbGVkLmdyaWQge1xuICB3aWR0aDogMTAwJTtcbiAgbWFyZ2luOiAxZW0gMGVtO1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggI0Q0RDRENTtcbn1cbi51aS5jZWxsZWQuZ3JpZCA+IC5yb3cge1xuICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICBtYXJnaW46IDBlbTtcbiAgcGFkZGluZzogMGVtO1xuICBib3gtc2hhZG93OiAwcHggLTFweCAwcHggMHB4ICNENEQ0RDU7XG59XG4udWkuY2VsbGVkLmdyaWQgPiAuY29sdW1uOm5vdCgucm93KSxcbi51aS5jZWxsZWQuZ3JpZCA+IC5yb3cgPiAuY29sdW1uIHtcbiAgYm94LXNoYWRvdzogLTFweCAwcHggMHB4IDBweCAjRDRENEQ1O1xufVxuLnVpLmNlbGxlZC5ncmlkID4gLmNvbHVtbjpmaXJzdC1jaGlsZCxcbi51aS5jZWxsZWQuZ3JpZCA+IC5yb3cgPiAuY29sdW1uOmZpcnN0LWNoaWxkIHtcbiAgYm94LXNoYWRvdzogbm9uZTtcbn1cbi51aS5jZWxsZWQuZ3JpZCA+IC5jb2x1bW46bm90KC5yb3cpLFxuLnVpLmNlbGxlZC5ncmlkID4gLnJvdyA+IC5jb2x1bW4ge1xuICBwYWRkaW5nOiAxZW07XG59XG4udWkucmVsYXhlZC5jZWxsZWQuZ3JpZCA+IC5jb2x1bW46bm90KC5yb3cpLFxuLnVpLnJlbGF4ZWQuY2VsbGVkLmdyaWQgPiAucm93ID4gLmNvbHVtbiB7XG4gIHBhZGRpbmc6IDEuNWVtO1xufVxuLnVpW2NsYXNzKj1cInZlcnkgcmVsYXhlZFwiXS5jZWxsZWQuZ3JpZCA+IC5jb2x1bW46bm90KC5yb3cpLFxuLnVpW2NsYXNzKj1cInZlcnkgcmVsYXhlZFwiXS5jZWxsZWQuZ3JpZCA+IC5yb3cgPiAuY29sdW1uIHtcbiAgcGFkZGluZzogMmVtO1xufVxuLyogSW50ZXJuYWxseSBDZWxsZWQgKi9cbi51aVtjbGFzcyo9XCJpbnRlcm5hbGx5IGNlbGxlZFwiXS5ncmlkIHtcbiAgYm94LXNoYWRvdzogbm9uZTtcbiAgbWFyZ2luOiAwZW07XG59XG4udWlbY2xhc3MqPVwiaW50ZXJuYWxseSBjZWxsZWRcIl0uZ3JpZCA+IC5yb3c6Zmlyc3QtY2hpbGQge1xuICBib3gtc2hhZG93OiBub25lO1xufVxuLnVpW2NsYXNzKj1cImludGVybmFsbHkgY2VsbGVkXCJdLmdyaWQgPiAucm93ID4gLmNvbHVtbjpmaXJzdC1jaGlsZCB7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgIFZlcnRpY2FsbHkgQWxpZ25lZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVG9wIEFsaWduZWQgKi9cbi51aVtjbGFzcyo9XCJ0b3AgYWxpZ25lZFwiXS5ncmlkID4gLmNvbHVtbjpub3QoLnJvdyksXG4udWlbY2xhc3MqPVwidG9wIGFsaWduZWRcIl0uZ3JpZCA+IC5yb3cgPiAuY29sdW1uLFxuLnVpLmdyaWQgPiBbY2xhc3MqPVwidG9wIGFsaWduZWRcIl0ucm93ID4gLmNvbHVtbixcbi51aS5ncmlkID4gW2NsYXNzKj1cInRvcCBhbGlnbmVkXCJdLmNvbHVtbjpub3QoLnJvdyksXG4udWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwidG9wIGFsaWduZWRcIl0uY29sdW1uIHtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgYWxpZ24tc2VsZjogZmxleC1zdGFydCAhaW1wb3J0YW50O1xufVxuLyogTWlkZGxlIEFsaWduZWQgKi9cbi51aVtjbGFzcyo9XCJtaWRkbGUgYWxpZ25lZFwiXS5ncmlkID4gLmNvbHVtbjpub3QoLnJvdyksXG4udWlbY2xhc3MqPVwibWlkZGxlIGFsaWduZWRcIl0uZ3JpZCA+IC5yb3cgPiAuY29sdW1uLFxuLnVpLmdyaWQgPiBbY2xhc3MqPVwibWlkZGxlIGFsaWduZWRcIl0ucm93ID4gLmNvbHVtbixcbi51aS5ncmlkID4gW2NsYXNzKj1cIm1pZGRsZSBhbGlnbmVkXCJdLmNvbHVtbjpub3QoLnJvdyksXG4udWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwibWlkZGxlIGFsaWduZWRcIl0uY29sdW1uIHtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgYWxpZ24tc2VsZjogY2VudGVyICFpbXBvcnRhbnQ7XG59XG4vKiBCb3R0b20gQWxpZ25lZCAqL1xuLnVpW2NsYXNzKj1cImJvdHRvbSBhbGlnbmVkXCJdLmdyaWQgPiAuY29sdW1uOm5vdCgucm93KSxcbi51aVtjbGFzcyo9XCJib3R0b20gYWxpZ25lZFwiXS5ncmlkID4gLnJvdyA+IC5jb2x1bW4sXG4udWkuZ3JpZCA+IFtjbGFzcyo9XCJib3R0b20gYWxpZ25lZFwiXS5yb3cgPiAuY29sdW1uLFxuLnVpLmdyaWQgPiBbY2xhc3MqPVwiYm90dG9tIGFsaWduZWRcIl0uY29sdW1uOm5vdCgucm93KSxcbi51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJib3R0b20gYWxpZ25lZFwiXS5jb2x1bW4ge1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICB2ZXJ0aWNhbC1hbGlnbjogYm90dG9tO1xuICBhbGlnbi1zZWxmOiBmbGV4LWVuZCAhaW1wb3J0YW50O1xufVxuLyogU3RyZXRjaGVkICovXG4udWkuc3RyZXRjaGVkLmdyaWQgPiAucm93ID4gLmNvbHVtbixcbi51aS5zdHJldGNoZWQuZ3JpZCA+IC5jb2x1bW4sXG4udWkuZ3JpZCA+IC5zdHJldGNoZWQucm93ID4gLmNvbHVtbixcbi51aS5ncmlkID4gLnN0cmV0Y2hlZC5jb2x1bW46bm90KC5yb3cpLFxuLnVpLmdyaWQgPiAucm93ID4gLnN0cmV0Y2hlZC5jb2x1bW4ge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleCAhaW1wb3J0YW50O1xuICBhbGlnbi1zZWxmOiBzdHJldGNoO1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xufVxuLnVpLnN0cmV0Y2hlZC5ncmlkID4gLnJvdyA+IC5jb2x1bW4gPiAqLFxuLnVpLnN0cmV0Y2hlZC5ncmlkID4gLmNvbHVtbiA+ICosXG4udWkuZ3JpZCA+IC5zdHJldGNoZWQucm93ID4gLmNvbHVtbiA+ICosXG4udWkuZ3JpZCA+IC5zdHJldGNoZWQuY29sdW1uOm5vdCgucm93KSA+ICosXG4udWkuZ3JpZCA+IC5yb3cgPiAuc3RyZXRjaGVkLmNvbHVtbiA+ICoge1xuICBmbGV4LWdyb3c6IDE7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSG9yaXpvbnRhbGx5IENlbnRlcmVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMZWZ0IEFsaWduZWQgKi9cbi51aVtjbGFzcyo9XCJsZWZ0IGFsaWduZWRcIl0uZ3JpZCA+IC5jb2x1bW4sXG4udWlbY2xhc3MqPVwibGVmdCBhbGlnbmVkXCJdLmdyaWQgPiAucm93ID4gLmNvbHVtbixcbi51aS5ncmlkID4gW2NsYXNzKj1cImxlZnQgYWxpZ25lZFwiXS5yb3cgPiAuY29sdW1uLFxuLnVpLmdyaWQgPiBbY2xhc3MqPVwibGVmdCBhbGlnbmVkXCJdLmNvbHVtbi5jb2x1bW4sXG4udWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwibGVmdCBhbGlnbmVkXCJdLmNvbHVtbi5jb2x1bW4ge1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBhbGlnbi1zZWxmOiBpbmhlcml0O1xufVxuLyogQ2VudGVyIEFsaWduZWQgKi9cbi51aVtjbGFzcyo9XCJjZW50ZXIgYWxpZ25lZFwiXS5ncmlkID4gLmNvbHVtbixcbi51aVtjbGFzcyo9XCJjZW50ZXIgYWxpZ25lZFwiXS5ncmlkID4gLnJvdyA+IC5jb2x1bW4sXG4udWkuZ3JpZCA+IFtjbGFzcyo9XCJjZW50ZXIgYWxpZ25lZFwiXS5yb3cgPiAuY29sdW1uLFxuLnVpLmdyaWQgPiBbY2xhc3MqPVwiY2VudGVyIGFsaWduZWRcIl0uY29sdW1uLmNvbHVtbixcbi51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJjZW50ZXIgYWxpZ25lZFwiXS5jb2x1bW4uY29sdW1uIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBhbGlnbi1zZWxmOiBpbmhlcml0O1xufVxuLnVpW2NsYXNzKj1cImNlbnRlciBhbGlnbmVkXCJdLmdyaWQge1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbn1cbi8qIFJpZ2h0IEFsaWduZWQgKi9cbi51aVtjbGFzcyo9XCJyaWdodCBhbGlnbmVkXCJdLmdyaWQgPiAuY29sdW1uLFxuLnVpW2NsYXNzKj1cInJpZ2h0IGFsaWduZWRcIl0uZ3JpZCA+IC5yb3cgPiAuY29sdW1uLFxuLnVpLmdyaWQgPiBbY2xhc3MqPVwicmlnaHQgYWxpZ25lZFwiXS5yb3cgPiAuY29sdW1uLFxuLnVpLmdyaWQgPiBbY2xhc3MqPVwicmlnaHQgYWxpZ25lZFwiXS5jb2x1bW4uY29sdW1uLFxuLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cInJpZ2h0IGFsaWduZWRcIl0uY29sdW1uLmNvbHVtbiB7XG4gIHRleHQtYWxpZ246IHJpZ2h0O1xuICBhbGlnbi1zZWxmOiBpbmhlcml0O1xufVxuLyogSnVzdGlmaWVkICovXG4udWkuanVzdGlmaWVkLmdyaWQgPiAuY29sdW1uLFxuLnVpLmp1c3RpZmllZC5ncmlkID4gLnJvdyA+IC5jb2x1bW4sXG4udWkuZ3JpZCA+IC5qdXN0aWZpZWQucm93ID4gLmNvbHVtbixcbi51aS5ncmlkID4gLmp1c3RpZmllZC5jb2x1bW4uY29sdW1uLFxuLnVpLmdyaWQgPiAucm93ID4gLmp1c3RpZmllZC5jb2x1bW4uY29sdW1uIHtcbiAgdGV4dC1hbGlnbjoganVzdGlmeTtcbiAgaHlwaGVuczogYXV0bztcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICAgQ29sb3JlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmdyaWQgPiAucm93ID4gLnJlZC5jb2x1bW4sXG4udWkuZ3JpZCA+IC5yb3cgPiAub3JhbmdlLmNvbHVtbixcbi51aS5ncmlkID4gLnJvdyA+IC55ZWxsb3cuY29sdW1uLFxuLnVpLmdyaWQgPiAucm93ID4gLm9saXZlLmNvbHVtbixcbi51aS5ncmlkID4gLnJvdyA+IC5ncmVlbi5jb2x1bW4sXG4udWkuZ3JpZCA+IC5yb3cgPiAudGVhbC5jb2x1bW4sXG4udWkuZ3JpZCA+IC5yb3cgPiAuYmx1ZS5jb2x1bW4sXG4udWkuZ3JpZCA+IC5yb3cgPiAudmlvbGV0LmNvbHVtbixcbi51aS5ncmlkID4gLnJvdyA+IC5wdXJwbGUuY29sdW1uLFxuLnVpLmdyaWQgPiAucm93ID4gLnBpbmsuY29sdW1uLFxuLnVpLmdyaWQgPiAucm93ID4gLmJyb3duLmNvbHVtbixcbi51aS5ncmlkID4gLnJvdyA+IC5ncmV5LmNvbHVtbixcbi51aS5ncmlkID4gLnJvdyA+IC5ibGFjay5jb2x1bW4ge1xuICBtYXJnaW4tdG9wOiAtMXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogLTFyZW07XG4gIHBhZGRpbmctdG9wOiAxcmVtO1xuICBwYWRkaW5nLWJvdHRvbTogMXJlbTtcbn1cbi8qIFJlZCAqL1xuLnVpLmdyaWQgPiAucmVkLnJvdyxcbi51aS5ncmlkID4gLnJlZC5jb2x1bW4sXG4udWkuZ3JpZCA+IC5yb3cgPiAucmVkLmNvbHVtbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkZTNhM2UgIWltcG9ydGFudDtcbiAgY29sb3I6ICNmZmZmZmY7XG59XG4vKiBPcmFuZ2UgKi9cbi51aS5ncmlkID4gLm9yYW5nZS5yb3csXG4udWkuZ3JpZCA+IC5vcmFuZ2UuY29sdW1uLFxuLnVpLmdyaWQgPiAucm93ID4gLm9yYW5nZS5jb2x1bW4ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmY5NTMzICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjZmZmZmZmO1xufVxuLyogWWVsbG93ICovXG4udWkuZ3JpZCA+IC55ZWxsb3cucm93LFxuLnVpLmdyaWQgPiAueWVsbG93LmNvbHVtbixcbi51aS5ncmlkID4gLnJvdyA+IC55ZWxsb3cuY29sdW1uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0ZCQkQwOCAhaW1wb3J0YW50O1xuICBjb2xvcjogI2ZmZmZmZjtcbn1cbi8qIE9saXZlICovXG4udWkuZ3JpZCA+IC5vbGl2ZS5yb3csXG4udWkuZ3JpZCA+IC5vbGl2ZS5jb2x1bW4sXG4udWkuZ3JpZCA+IC5yb3cgPiAub2xpdmUuY29sdW1uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0I1Q0MxOCAhaW1wb3J0YW50O1xuICBjb2xvcjogI2ZmZmZmZjtcbn1cbi8qIEdyZWVuICovXG4udWkuZ3JpZCA+IC5ncmVlbi5yb3csXG4udWkuZ3JpZCA+IC5ncmVlbi5jb2x1bW4sXG4udWkuZ3JpZCA+IC5yb3cgPiAuZ3JlZW4uY29sdW1uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzE5YTUzMSAhaW1wb3J0YW50O1xuICBjb2xvcjogI2ZmZmZmZjtcbn1cbi8qIFRlYWwgKi9cbi51aS5ncmlkID4gLnRlYWwucm93LFxuLnVpLmdyaWQgPiAudGVhbC5jb2x1bW4sXG4udWkuZ3JpZCA+IC5yb3cgPiAudGVhbC5jb2x1bW4ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDBCNUFEICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjZmZmZmZmO1xufVxuLyogQmx1ZSAqL1xuLnVpLmdyaWQgPiAuYmx1ZS5yb3csXG4udWkuZ3JpZCA+IC5ibHVlLmNvbHVtbixcbi51aS5ncmlkID4gLnJvdyA+IC5ibHVlLmNvbHVtbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzZjUxYjUgIWltcG9ydGFudDtcbiAgY29sb3I6ICNmZmZmZmY7XG59XG4vKiBWaW9sZXQgKi9cbi51aS5ncmlkID4gLnZpb2xldC5yb3csXG4udWkuZ3JpZCA+IC52aW9sZXQuY29sdW1uLFxuLnVpLmdyaWQgPiAucm93ID4gLnZpb2xldC5jb2x1bW4ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNjQzNUM5ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjZmZmZmZmO1xufVxuLyogUHVycGxlICovXG4udWkuZ3JpZCA+IC5wdXJwbGUucm93LFxuLnVpLmdyaWQgPiAucHVycGxlLmNvbHVtbixcbi51aS5ncmlkID4gLnJvdyA+IC5wdXJwbGUuY29sdW1uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0EzMzNDOCAhaW1wb3J0YW50O1xuICBjb2xvcjogI2ZmZmZmZjtcbn1cbi8qIFBpbmsgKi9cbi51aS5ncmlkID4gLnBpbmsucm93LFxuLnVpLmdyaWQgPiAucGluay5jb2x1bW4sXG4udWkuZ3JpZCA+IC5yb3cgPiAucGluay5jb2x1bW4ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRTAzOTk3ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjZmZmZmZmO1xufVxuLyogQnJvd24gKi9cbi51aS5ncmlkID4gLmJyb3duLnJvdyxcbi51aS5ncmlkID4gLmJyb3duLmNvbHVtbixcbi51aS5ncmlkID4gLnJvdyA+IC5icm93bi5jb2x1bW4ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjQTU2NzNGICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjZmZmZmZmO1xufVxuLyogR3JleSAqL1xuLnVpLmdyaWQgPiAuZ3JleS5yb3csXG4udWkuZ3JpZCA+IC5ncmV5LmNvbHVtbixcbi51aS5ncmlkID4gLnJvdyA+IC5ncmV5LmNvbHVtbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM3Njc2NzYgIWltcG9ydGFudDtcbiAgY29sb3I6ICNmZmZmZmY7XG59XG4vKiBCbGFjayAqL1xuLnVpLmdyaWQgPiAuYmxhY2sucm93LFxuLnVpLmdyaWQgPiAuYmxhY2suY29sdW1uLFxuLnVpLmdyaWQgPiAucm93ID4gLmJsYWNrLmNvbHVtbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDAwMDAgIWltcG9ydGFudDtcbiAgY29sb3I6ICNmZmZmZmY7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEVxdWFsIFdpZHRoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWlbY2xhc3MqPVwiZXF1YWwgd2lkdGhcIl0uZ3JpZCA+IC5jb2x1bW46bm90KC5yb3cpLFxuLnVpW2NsYXNzKj1cImVxdWFsIHdpZHRoXCJdLmdyaWQgPiAucm93ID4gLmNvbHVtbixcbi51aS5ncmlkID4gW2NsYXNzKj1cImVxdWFsIHdpZHRoXCJdLnJvdyA+IC5jb2x1bW4ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZsZXgtZ3JvdzogMTtcbn1cbi51aVtjbGFzcyo9XCJlcXVhbCB3aWR0aFwiXS5ncmlkID4gLndpZGUuY29sdW1uLFxuLnVpW2NsYXNzKj1cImVxdWFsIHdpZHRoXCJdLmdyaWQgPiAucm93ID4gLndpZGUuY29sdW1uLFxuLnVpLmdyaWQgPiBbY2xhc3MqPVwiZXF1YWwgd2lkdGhcIl0ucm93ID4gLndpZGUuY29sdW1uIHtcbiAgZmxleC1ncm93OiAwO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFJldmVyc2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1vYmlsZSAqL1xuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAudWlbY2xhc3MqPVwibW9iaWxlIHJldmVyc2VkXCJdLmdyaWQsXG4gIC51aVtjbGFzcyo9XCJtb2JpbGUgcmV2ZXJzZWRcIl0uZ3JpZCA+IC5yb3csXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cIm1vYmlsZSByZXZlcnNlZFwiXS5yb3cge1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTtcbiAgfVxuICAudWlbY2xhc3MqPVwibW9iaWxlIHZlcnRpY2FsbHkgcmV2ZXJzZWRcIl0uZ3JpZCxcbiAgLnVpLnN0YWNrYWJsZVtjbGFzcyo9XCJtb2JpbGUgcmV2ZXJzZWRcIl0ge1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW4tcmV2ZXJzZTtcbiAgfVxuICAvKiBEaXZpZGVkIFJldmVyc2VkICovXG4gIC51aVtjbGFzcyo9XCJtb2JpbGUgcmV2ZXJzZWRcIl0uZGl2aWRlZC5ncmlkOm5vdChbY2xhc3MqPVwidmVydGljYWxseSBkaXZpZGVkXCJdKSA+IC5jb2x1bW46Zmlyc3QtY2hpbGQsXG4gIC51aVtjbGFzcyo9XCJtb2JpbGUgcmV2ZXJzZWRcIl0uZGl2aWRlZC5ncmlkOm5vdChbY2xhc3MqPVwidmVydGljYWxseSBkaXZpZGVkXCJdKSA+IC5yb3cgPiAuY29sdW1uOmZpcnN0LWNoaWxkIHtcbiAgICBib3gtc2hhZG93OiAtMXB4IDBweCAwcHggMHB4IHJnYmEoMzQsIDM2LCAzOCwgMC4xNSk7XG4gIH1cbiAgLnVpW2NsYXNzKj1cIm1vYmlsZSByZXZlcnNlZFwiXS5kaXZpZGVkLmdyaWQ6bm90KFtjbGFzcyo9XCJ2ZXJ0aWNhbGx5IGRpdmlkZWRcIl0pID4gLmNvbHVtbjpsYXN0LWNoaWxkLFxuICAudWlbY2xhc3MqPVwibW9iaWxlIHJldmVyc2VkXCJdLmRpdmlkZWQuZ3JpZDpub3QoW2NsYXNzKj1cInZlcnRpY2FsbHkgZGl2aWRlZFwiXSkgPiAucm93ID4gLmNvbHVtbjpsYXN0LWNoaWxkIHtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICB9XG4gIC8qIFZlcnRpY2FsbHkgRGl2aWRlZCBSZXZlcnNlZCAqL1xuICAudWkuZ3JpZFtjbGFzcyo9XCJ2ZXJ0aWNhbGx5IGRpdmlkZWRcIl1bY2xhc3MqPVwibW9iaWxlIHZlcnRpY2FsbHkgcmV2ZXJzZWRcIl0gPiAucm93OmZpcnN0LWNoaWxkOmJlZm9yZSB7XG4gICAgYm94LXNoYWRvdzogMHB4IC0xcHggMHB4IDBweCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpO1xuICB9XG4gIC51aS5ncmlkW2NsYXNzKj1cInZlcnRpY2FsbHkgZGl2aWRlZFwiXVtjbGFzcyo9XCJtb2JpbGUgdmVydGljYWxseSByZXZlcnNlZFwiXSA+IC5yb3c6bGFzdC1jaGlsZDpiZWZvcmUge1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gIH1cbiAgLyogQ2VsbGVkIFJldmVyc2VkICovXG4gIC51aVtjbGFzcyo9XCJtb2JpbGUgcmV2ZXJzZWRcIl0uY2VsbGVkLmdyaWQgPiAucm93ID4gLmNvbHVtbjpmaXJzdC1jaGlsZCB7XG4gICAgYm94LXNoYWRvdzogLTFweCAwcHggMHB4IDBweCAjRDRENEQ1O1xuICB9XG4gIC51aVtjbGFzcyo9XCJtb2JpbGUgcmV2ZXJzZWRcIl0uY2VsbGVkLmdyaWQgPiAucm93ID4gLmNvbHVtbjpsYXN0LWNoaWxkIHtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICB9XG59XG4vKiBUYWJsZXQgKi9cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzY4cHgpIGFuZCAobWF4LXdpZHRoOiA5OTFweCkge1xuICAudWlbY2xhc3MqPVwidGFibGV0IHJldmVyc2VkXCJdLmdyaWQsXG4gIC51aVtjbGFzcyo9XCJ0YWJsZXQgcmV2ZXJzZWRcIl0uZ3JpZCA+IC5yb3csXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cInRhYmxldCByZXZlcnNlZFwiXS5yb3cge1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTtcbiAgfVxuICAudWlbY2xhc3MqPVwidGFibGV0IHZlcnRpY2FsbHkgcmV2ZXJzZWRcIl0uZ3JpZCB7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbi1yZXZlcnNlO1xuICB9XG4gIC8qIERpdmlkZWQgUmV2ZXJzZWQgKi9cbiAgLnVpW2NsYXNzKj1cInRhYmxldCByZXZlcnNlZFwiXS5kaXZpZGVkLmdyaWQ6bm90KFtjbGFzcyo9XCJ2ZXJ0aWNhbGx5IGRpdmlkZWRcIl0pID4gLmNvbHVtbjpmaXJzdC1jaGlsZCxcbiAgLnVpW2NsYXNzKj1cInRhYmxldCByZXZlcnNlZFwiXS5kaXZpZGVkLmdyaWQ6bm90KFtjbGFzcyo9XCJ2ZXJ0aWNhbGx5IGRpdmlkZWRcIl0pID4gLnJvdyA+IC5jb2x1bW46Zmlyc3QtY2hpbGQge1xuICAgIGJveC1zaGFkb3c6IC0xcHggMHB4IDBweCAwcHggcmdiYSgzNCwgMzYsIDM4LCAwLjE1KTtcbiAgfVxuICAudWlbY2xhc3MqPVwidGFibGV0IHJldmVyc2VkXCJdLmRpdmlkZWQuZ3JpZDpub3QoW2NsYXNzKj1cInZlcnRpY2FsbHkgZGl2aWRlZFwiXSkgPiAuY29sdW1uOmxhc3QtY2hpbGQsXG4gIC51aVtjbGFzcyo9XCJ0YWJsZXQgcmV2ZXJzZWRcIl0uZGl2aWRlZC5ncmlkOm5vdChbY2xhc3MqPVwidmVydGljYWxseSBkaXZpZGVkXCJdKSA+IC5yb3cgPiAuY29sdW1uOmxhc3QtY2hpbGQge1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gIH1cbiAgLyogVmVydGljYWxseSBEaXZpZGVkIFJldmVyc2VkICovXG4gIC51aS5ncmlkW2NsYXNzKj1cInZlcnRpY2FsbHkgZGl2aWRlZFwiXVtjbGFzcyo9XCJ0YWJsZXQgdmVydGljYWxseSByZXZlcnNlZFwiXSA+IC5yb3c6Zmlyc3QtY2hpbGQ6YmVmb3JlIHtcbiAgICBib3gtc2hhZG93OiAwcHggLTFweCAwcHggMHB4IHJnYmEoMzQsIDM2LCAzOCwgMC4xNSk7XG4gIH1cbiAgLnVpLmdyaWRbY2xhc3MqPVwidmVydGljYWxseSBkaXZpZGVkXCJdW2NsYXNzKj1cInRhYmxldCB2ZXJ0aWNhbGx5IHJldmVyc2VkXCJdID4gLnJvdzpsYXN0LWNoaWxkOmJlZm9yZSB7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgfVxuICAvKiBDZWxsZWQgUmV2ZXJzZWQgKi9cbiAgLnVpW2NsYXNzKj1cInRhYmxldCByZXZlcnNlZFwiXS5jZWxsZWQuZ3JpZCA+IC5yb3cgPiAuY29sdW1uOmZpcnN0LWNoaWxkIHtcbiAgICBib3gtc2hhZG93OiAtMXB4IDBweCAwcHggMHB4ICNENEQ0RDU7XG4gIH1cbiAgLnVpW2NsYXNzKj1cInRhYmxldCByZXZlcnNlZFwiXS5jZWxsZWQuZ3JpZCA+IC5yb3cgPiAuY29sdW1uOmxhc3QtY2hpbGQge1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gIH1cbn1cbi8qIENvbXB1dGVyICovXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDk5MnB4KSB7XG4gIC51aVtjbGFzcyo9XCJjb21wdXRlciByZXZlcnNlZFwiXS5ncmlkLFxuICAudWlbY2xhc3MqPVwiY29tcHV0ZXIgcmV2ZXJzZWRcIl0uZ3JpZCA+IC5yb3csXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cImNvbXB1dGVyIHJldmVyc2VkXCJdLnJvdyB7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlO1xuICB9XG4gIC51aVtjbGFzcyo9XCJjb21wdXRlciB2ZXJ0aWNhbGx5IHJldmVyc2VkXCJdLmdyaWQge1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW4tcmV2ZXJzZTtcbiAgfVxuICAvKiBEaXZpZGVkIFJldmVyc2VkICovXG4gIC51aVtjbGFzcyo9XCJjb21wdXRlciByZXZlcnNlZFwiXS5kaXZpZGVkLmdyaWQ6bm90KFtjbGFzcyo9XCJ2ZXJ0aWNhbGx5IGRpdmlkZWRcIl0pID4gLmNvbHVtbjpmaXJzdC1jaGlsZCxcbiAgLnVpW2NsYXNzKj1cImNvbXB1dGVyIHJldmVyc2VkXCJdLmRpdmlkZWQuZ3JpZDpub3QoW2NsYXNzKj1cInZlcnRpY2FsbHkgZGl2aWRlZFwiXSkgPiAucm93ID4gLmNvbHVtbjpmaXJzdC1jaGlsZCB7XG4gICAgYm94LXNoYWRvdzogLTFweCAwcHggMHB4IDBweCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpO1xuICB9XG4gIC51aVtjbGFzcyo9XCJjb21wdXRlciByZXZlcnNlZFwiXS5kaXZpZGVkLmdyaWQ6bm90KFtjbGFzcyo9XCJ2ZXJ0aWNhbGx5IGRpdmlkZWRcIl0pID4gLmNvbHVtbjpsYXN0LWNoaWxkLFxuICAudWlbY2xhc3MqPVwiY29tcHV0ZXIgcmV2ZXJzZWRcIl0uZGl2aWRlZC5ncmlkOm5vdChbY2xhc3MqPVwidmVydGljYWxseSBkaXZpZGVkXCJdKSA+IC5yb3cgPiAuY29sdW1uOmxhc3QtY2hpbGQge1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gIH1cbiAgLyogVmVydGljYWxseSBEaXZpZGVkIFJldmVyc2VkICovXG4gIC51aS5ncmlkW2NsYXNzKj1cInZlcnRpY2FsbHkgZGl2aWRlZFwiXVtjbGFzcyo9XCJjb21wdXRlciB2ZXJ0aWNhbGx5IHJldmVyc2VkXCJdID4gLnJvdzpmaXJzdC1jaGlsZDpiZWZvcmUge1xuICAgIGJveC1zaGFkb3c6IDBweCAtMXB4IDBweCAwcHggcmdiYSgzNCwgMzYsIDM4LCAwLjE1KTtcbiAgfVxuICAudWkuZ3JpZFtjbGFzcyo9XCJ2ZXJ0aWNhbGx5IGRpdmlkZWRcIl1bY2xhc3MqPVwiY29tcHV0ZXIgdmVydGljYWxseSByZXZlcnNlZFwiXSA+IC5yb3c6bGFzdC1jaGlsZDpiZWZvcmUge1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gIH1cbiAgLyogQ2VsbGVkIFJldmVyc2VkICovXG4gIC51aVtjbGFzcyo9XCJjb21wdXRlciByZXZlcnNlZFwiXS5jZWxsZWQuZ3JpZCA+IC5yb3cgPiAuY29sdW1uOmZpcnN0LWNoaWxkIHtcbiAgICBib3gtc2hhZG93OiAtMXB4IDBweCAwcHggMHB4ICNENEQ0RDU7XG4gIH1cbiAgLnVpW2NsYXNzKj1cImNvbXB1dGVyIHJldmVyc2VkXCJdLmNlbGxlZC5ncmlkID4gLnJvdyA+IC5jb2x1bW46bGFzdC1jaGlsZCB7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgfVxufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEb3VibGluZ1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGFibGV0IE9ubHkgKi9cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzY4cHgpIGFuZCAobWF4LXdpZHRoOiA5OTFweCkge1xuICAudWkuZG91YmxpbmcuZ3JpZCB7XG4gICAgd2lkdGg6IGF1dG87XG4gIH1cbiAgLnVpLmdyaWQgPiAuZG91Ymxpbmcucm93LFxuICAudWkuZG91YmxpbmcuZ3JpZCA+IC5yb3cge1xuICAgIG1hcmdpbjogMGVtICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZzogMGVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLmdyaWQgPiAuZG91Ymxpbmcucm93ID4gLmNvbHVtbixcbiAgLnVpLmRvdWJsaW5nLmdyaWQgPiAucm93ID4gLmNvbHVtbiB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZy10b3A6IDFyZW0gIWltcG9ydGFudDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMXJlbSAhaW1wb3J0YW50O1xuICAgIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgICBtYXJnaW46IDBlbTtcbiAgfVxuICAudWlbY2xhc3MqPVwidHdvIGNvbHVtblwiXS5kb3VibGluZy5ncmlkID4gLnJvdyA+IC5jb2x1bW4sXG4gIC51aVtjbGFzcyo9XCJ0d28gY29sdW1uXCJdLmRvdWJsaW5nLmdyaWQgPiAuY29sdW1uOm5vdCgucm93KSxcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwidHdvIGNvbHVtblwiXS5kb3VibGluZy5yb3cucm93ID4gLmNvbHVtbiB7XG4gICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgfVxuICAudWlbY2xhc3MqPVwidGhyZWUgY29sdW1uXCJdLmRvdWJsaW5nLmdyaWQgPiAucm93ID4gLmNvbHVtbixcbiAgLnVpW2NsYXNzKj1cInRocmVlIGNvbHVtblwiXS5kb3VibGluZy5ncmlkID4gLmNvbHVtbjpub3QoLnJvdyksXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cInRocmVlIGNvbHVtblwiXS5kb3VibGluZy5yb3cucm93ID4gLmNvbHVtbiB7XG4gICAgd2lkdGg6IDUwJSAhaW1wb3J0YW50O1xuICB9XG4gIC51aVtjbGFzcyo9XCJmb3VyIGNvbHVtblwiXS5kb3VibGluZy5ncmlkID4gLnJvdyA+IC5jb2x1bW4sXG4gIC51aVtjbGFzcyo9XCJmb3VyIGNvbHVtblwiXS5kb3VibGluZy5ncmlkID4gLmNvbHVtbjpub3QoLnJvdyksXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cImZvdXIgY29sdW1uXCJdLmRvdWJsaW5nLnJvdy5yb3cgPiAuY29sdW1uIHtcbiAgICB3aWR0aDogNTAlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpW2NsYXNzKj1cImZpdmUgY29sdW1uXCJdLmRvdWJsaW5nLmdyaWQgPiAucm93ID4gLmNvbHVtbixcbiAgLnVpW2NsYXNzKj1cImZpdmUgY29sdW1uXCJdLmRvdWJsaW5nLmdyaWQgPiAuY29sdW1uOm5vdCgucm93KSxcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwiZml2ZSBjb2x1bW5cIl0uZG91Ymxpbmcucm93LnJvdyA+IC5jb2x1bW4ge1xuICAgIHdpZHRoOiAzMy4zMzMzMzMzMyUgIWltcG9ydGFudDtcbiAgfVxuICAudWlbY2xhc3MqPVwic2l4IGNvbHVtblwiXS5kb3VibGluZy5ncmlkID4gLnJvdyA+IC5jb2x1bW4sXG4gIC51aVtjbGFzcyo9XCJzaXggY29sdW1uXCJdLmRvdWJsaW5nLmdyaWQgPiAuY29sdW1uOm5vdCgucm93KSxcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwic2l4IGNvbHVtblwiXS5kb3VibGluZy5yb3cucm93ID4gLmNvbHVtbiB7XG4gICAgd2lkdGg6IDMzLjMzMzMzMzMzJSAhaW1wb3J0YW50O1xuICB9XG4gIC51aVtjbGFzcyo9XCJzZXZlbiBjb2x1bW5cIl0uZG91YmxpbmcuZ3JpZCA+IC5yb3cgPiAuY29sdW1uLFxuICAudWlbY2xhc3MqPVwic2V2ZW4gY29sdW1uXCJdLmRvdWJsaW5nLmdyaWQgPiAuY29sdW1uOm5vdCgucm93KSxcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwic2V2ZW4gY29sdW1uXCJdLmRvdWJsaW5nLnJvdy5yb3cgPiAuY29sdW1uIHtcbiAgICB3aWR0aDogMzMuMzMzMzMzMzMlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpW2NsYXNzKj1cImVpZ2h0IGNvbHVtblwiXS5kb3VibGluZy5ncmlkID4gLnJvdyA+IC5jb2x1bW4sXG4gIC51aVtjbGFzcyo9XCJlaWdodCBjb2x1bW5cIl0uZG91YmxpbmcuZ3JpZCA+IC5jb2x1bW46bm90KC5yb3cpLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJlaWdodCBjb2x1bW5cIl0uZG91Ymxpbmcucm93LnJvdyA+IC5jb2x1bW4ge1xuICAgIHdpZHRoOiAyNSUgIWltcG9ydGFudDtcbiAgfVxuICAudWlbY2xhc3MqPVwibmluZSBjb2x1bW5cIl0uZG91YmxpbmcuZ3JpZCA+IC5yb3cgPiAuY29sdW1uLFxuICAudWlbY2xhc3MqPVwibmluZSBjb2x1bW5cIl0uZG91YmxpbmcuZ3JpZCA+IC5jb2x1bW46bm90KC5yb3cpLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJuaW5lIGNvbHVtblwiXS5kb3VibGluZy5yb3cucm93ID4gLmNvbHVtbiB7XG4gICAgd2lkdGg6IDI1JSAhaW1wb3J0YW50O1xuICB9XG4gIC51aVtjbGFzcyo9XCJ0ZW4gY29sdW1uXCJdLmRvdWJsaW5nLmdyaWQgPiAucm93ID4gLmNvbHVtbixcbiAgLnVpW2NsYXNzKj1cInRlbiBjb2x1bW5cIl0uZG91YmxpbmcuZ3JpZCA+IC5jb2x1bW46bm90KC5yb3cpLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJ0ZW4gY29sdW1uXCJdLmRvdWJsaW5nLnJvdy5yb3cgPiAuY29sdW1uIHtcbiAgICB3aWR0aDogMjAlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpW2NsYXNzKj1cImVsZXZlbiBjb2x1bW5cIl0uZG91YmxpbmcuZ3JpZCA+IC5yb3cgPiAuY29sdW1uLFxuICAudWlbY2xhc3MqPVwiZWxldmVuIGNvbHVtblwiXS5kb3VibGluZy5ncmlkID4gLmNvbHVtbjpub3QoLnJvdyksXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cImVsZXZlbiBjb2x1bW5cIl0uZG91Ymxpbmcucm93LnJvdyA+IC5jb2x1bW4ge1xuICAgIHdpZHRoOiAyMCUgIWltcG9ydGFudDtcbiAgfVxuICAudWlbY2xhc3MqPVwidHdlbHZlIGNvbHVtblwiXS5kb3VibGluZy5ncmlkID4gLnJvdyA+IC5jb2x1bW4sXG4gIC51aVtjbGFzcyo9XCJ0d2VsdmUgY29sdW1uXCJdLmRvdWJsaW5nLmdyaWQgPiAuY29sdW1uOm5vdCgucm93KSxcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwidHdlbHZlIGNvbHVtblwiXS5kb3VibGluZy5yb3cucm93ID4gLmNvbHVtbiB7XG4gICAgd2lkdGg6IDE2LjY2NjY2NjY3JSAhaW1wb3J0YW50O1xuICB9XG4gIC51aVtjbGFzcyo9XCJ0aGlydGVlbiBjb2x1bW5cIl0uZG91YmxpbmcuZ3JpZCA+IC5yb3cgPiAuY29sdW1uLFxuICAudWlbY2xhc3MqPVwidGhpcnRlZW4gY29sdW1uXCJdLmRvdWJsaW5nLmdyaWQgPiAuY29sdW1uOm5vdCgucm93KSxcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwidGhpcnRlZW4gY29sdW1uXCJdLmRvdWJsaW5nLnJvdy5yb3cgPiAuY29sdW1uIHtcbiAgICB3aWR0aDogMTYuNjY2NjY2NjclICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpW2NsYXNzKj1cImZvdXJ0ZWVuIGNvbHVtblwiXS5kb3VibGluZy5ncmlkID4gLnJvdyA+IC5jb2x1bW4sXG4gIC51aVtjbGFzcyo9XCJmb3VydGVlbiBjb2x1bW5cIl0uZG91YmxpbmcuZ3JpZCA+IC5jb2x1bW46bm90KC5yb3cpLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJmb3VydGVlbiBjb2x1bW5cIl0uZG91Ymxpbmcucm93LnJvdyA+IC5jb2x1bW4ge1xuICAgIHdpZHRoOiAxNC4yODU3MTQyOSUgIWltcG9ydGFudDtcbiAgfVxuICAudWlbY2xhc3MqPVwiZmlmdGVlbiBjb2x1bW5cIl0uZG91YmxpbmcuZ3JpZCA+IC5yb3cgPiAuY29sdW1uLFxuICAudWlbY2xhc3MqPVwiZmlmdGVlbiBjb2x1bW5cIl0uZG91YmxpbmcuZ3JpZCA+IC5jb2x1bW46bm90KC5yb3cpLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJmaWZ0ZWVuIGNvbHVtblwiXS5kb3VibGluZy5yb3cucm93ID4gLmNvbHVtbiB7XG4gICAgd2lkdGg6IDE0LjI4NTcxNDI5JSAhaW1wb3J0YW50O1xuICB9XG4gIC51aVtjbGFzcyo9XCJzaXh0ZWVuIGNvbHVtblwiXS5kb3VibGluZy5ncmlkID4gLnJvdyA+IC5jb2x1bW4sXG4gIC51aVtjbGFzcyo9XCJzaXh0ZWVuIGNvbHVtblwiXS5kb3VibGluZy5ncmlkID4gLmNvbHVtbjpub3QoLnJvdyksXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cInNpeHRlZW4gY29sdW1uXCJdLmRvdWJsaW5nLnJvdy5yb3cgPiAuY29sdW1uIHtcbiAgICB3aWR0aDogMTIuNSUgIWltcG9ydGFudDtcbiAgfVxufVxuLyogTW9iaWxlIE9ubHkgKi9cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgLnVpLmdyaWQgPiAuZG91Ymxpbmcucm93LFxuICAudWkuZG91YmxpbmcuZ3JpZCA+IC5yb3cge1xuICAgIG1hcmdpbjogMGVtICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZzogMGVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLmdyaWQgPiAuZG91Ymxpbmcucm93ID4gLmNvbHVtbixcbiAgLnVpLmRvdWJsaW5nLmdyaWQgPiAucm93ID4gLmNvbHVtbiB7XG4gICAgcGFkZGluZy10b3A6IDFyZW0gIWltcG9ydGFudDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMXJlbSAhaW1wb3J0YW50O1xuICAgIG1hcmdpbjogMGVtICFpbXBvcnRhbnQ7XG4gICAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICB9XG4gIC51aVtjbGFzcyo9XCJ0d28gY29sdW1uXCJdLmRvdWJsaW5nOm5vdCguc3RhY2thYmxlKS5ncmlkID4gLnJvdyA+IC5jb2x1bW4sXG4gIC51aVtjbGFzcyo9XCJ0d28gY29sdW1uXCJdLmRvdWJsaW5nOm5vdCguc3RhY2thYmxlKS5ncmlkID4gLmNvbHVtbjpub3QoLnJvdyksXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cInR3byBjb2x1bW5cIl0uZG91Ymxpbmc6bm90KC5zdGFja2FibGUpLnJvdy5yb3cgPiAuY29sdW1uIHtcbiAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICB9XG4gIC51aVtjbGFzcyo9XCJ0aHJlZSBjb2x1bW5cIl0uZG91Ymxpbmc6bm90KC5zdGFja2FibGUpLmdyaWQgPiAucm93ID4gLmNvbHVtbixcbiAgLnVpW2NsYXNzKj1cInRocmVlIGNvbHVtblwiXS5kb3VibGluZzpub3QoLnN0YWNrYWJsZSkuZ3JpZCA+IC5jb2x1bW46bm90KC5yb3cpLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJ0aHJlZSBjb2x1bW5cIl0uZG91Ymxpbmc6bm90KC5zdGFja2FibGUpLnJvdy5yb3cgPiAuY29sdW1uIHtcbiAgICB3aWR0aDogNTAlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpW2NsYXNzKj1cImZvdXIgY29sdW1uXCJdLmRvdWJsaW5nOm5vdCguc3RhY2thYmxlKS5ncmlkID4gLnJvdyA+IC5jb2x1bW4sXG4gIC51aVtjbGFzcyo9XCJmb3VyIGNvbHVtblwiXS5kb3VibGluZzpub3QoLnN0YWNrYWJsZSkuZ3JpZCA+IC5jb2x1bW46bm90KC5yb3cpLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJmb3VyIGNvbHVtblwiXS5kb3VibGluZzpub3QoLnN0YWNrYWJsZSkucm93LnJvdyA+IC5jb2x1bW4ge1xuICAgIHdpZHRoOiA1MCUgIWltcG9ydGFudDtcbiAgfVxuICAudWlbY2xhc3MqPVwiZml2ZSBjb2x1bW5cIl0uZG91Ymxpbmc6bm90KC5zdGFja2FibGUpLmdyaWQgPiAucm93ID4gLmNvbHVtbixcbiAgLnVpW2NsYXNzKj1cImZpdmUgY29sdW1uXCJdLmRvdWJsaW5nOm5vdCguc3RhY2thYmxlKS5ncmlkID4gLmNvbHVtbjpub3QoLnJvdyksXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cImZpdmUgY29sdW1uXCJdLmRvdWJsaW5nOm5vdCguc3RhY2thYmxlKS5yb3cucm93ID4gLmNvbHVtbiB7XG4gICAgd2lkdGg6IDUwJSAhaW1wb3J0YW50O1xuICB9XG4gIC51aVtjbGFzcyo9XCJzaXggY29sdW1uXCJdLmRvdWJsaW5nOm5vdCguc3RhY2thYmxlKS5ncmlkID4gLnJvdyA+IC5jb2x1bW4sXG4gIC51aVtjbGFzcyo9XCJzaXggY29sdW1uXCJdLmRvdWJsaW5nOm5vdCguc3RhY2thYmxlKS5ncmlkID4gLmNvbHVtbjpub3QoLnJvdyksXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cInNpeCBjb2x1bW5cIl0uZG91Ymxpbmc6bm90KC5zdGFja2FibGUpLnJvdy5yb3cgPiAuY29sdW1uIHtcbiAgICB3aWR0aDogNTAlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpW2NsYXNzKj1cInNldmVuIGNvbHVtblwiXS5kb3VibGluZzpub3QoLnN0YWNrYWJsZSkuZ3JpZCA+IC5yb3cgPiAuY29sdW1uLFxuICAudWlbY2xhc3MqPVwic2V2ZW4gY29sdW1uXCJdLmRvdWJsaW5nOm5vdCguc3RhY2thYmxlKS5ncmlkID4gLmNvbHVtbjpub3QoLnJvdyksXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cInNldmVuIGNvbHVtblwiXS5kb3VibGluZzpub3QoLnN0YWNrYWJsZSkucm93LnJvdyA+IC5jb2x1bW4ge1xuICAgIHdpZHRoOiA1MCUgIWltcG9ydGFudDtcbiAgfVxuICAudWlbY2xhc3MqPVwiZWlnaHQgY29sdW1uXCJdLmRvdWJsaW5nOm5vdCguc3RhY2thYmxlKS5ncmlkID4gLnJvdyA+IC5jb2x1bW4sXG4gIC51aVtjbGFzcyo9XCJlaWdodCBjb2x1bW5cIl0uZG91Ymxpbmc6bm90KC5zdGFja2FibGUpLmdyaWQgPiAuY29sdW1uOm5vdCgucm93KSxcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwiZWlnaHQgY29sdW1uXCJdLmRvdWJsaW5nOm5vdCguc3RhY2thYmxlKS5yb3cucm93ID4gLmNvbHVtbiB7XG4gICAgd2lkdGg6IDUwJSAhaW1wb3J0YW50O1xuICB9XG4gIC51aVtjbGFzcyo9XCJuaW5lIGNvbHVtblwiXS5kb3VibGluZzpub3QoLnN0YWNrYWJsZSkuZ3JpZCA+IC5yb3cgPiAuY29sdW1uLFxuICAudWlbY2xhc3MqPVwibmluZSBjb2x1bW5cIl0uZG91Ymxpbmc6bm90KC5zdGFja2FibGUpLmdyaWQgPiAuY29sdW1uOm5vdCgucm93KSxcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwibmluZSBjb2x1bW5cIl0uZG91Ymxpbmc6bm90KC5zdGFja2FibGUpLnJvdy5yb3cgPiAuY29sdW1uIHtcbiAgICB3aWR0aDogMzMuMzMzMzMzMzMlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpW2NsYXNzKj1cInRlbiBjb2x1bW5cIl0uZG91Ymxpbmc6bm90KC5zdGFja2FibGUpLmdyaWQgPiAucm93ID4gLmNvbHVtbixcbiAgLnVpW2NsYXNzKj1cInRlbiBjb2x1bW5cIl0uZG91Ymxpbmc6bm90KC5zdGFja2FibGUpLmdyaWQgPiAuY29sdW1uOm5vdCgucm93KSxcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwidGVuIGNvbHVtblwiXS5kb3VibGluZzpub3QoLnN0YWNrYWJsZSkucm93LnJvdyA+IC5jb2x1bW4ge1xuICAgIHdpZHRoOiAzMy4zMzMzMzMzMyUgIWltcG9ydGFudDtcbiAgfVxuICAudWlbY2xhc3MqPVwiZWxldmVuIGNvbHVtblwiXS5kb3VibGluZzpub3QoLnN0YWNrYWJsZSkuZ3JpZCA+IC5yb3cgPiAuY29sdW1uLFxuICAudWlbY2xhc3MqPVwiZWxldmVuIGNvbHVtblwiXS5kb3VibGluZzpub3QoLnN0YWNrYWJsZSkuZ3JpZCA+IC5jb2x1bW46bm90KC5yb3cpLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJlbGV2ZW4gY29sdW1uXCJdLmRvdWJsaW5nOm5vdCguc3RhY2thYmxlKS5yb3cucm93ID4gLmNvbHVtbiB7XG4gICAgd2lkdGg6IDMzLjMzMzMzMzMzJSAhaW1wb3J0YW50O1xuICB9XG4gIC51aVtjbGFzcyo9XCJ0d2VsdmUgY29sdW1uXCJdLmRvdWJsaW5nOm5vdCguc3RhY2thYmxlKS5ncmlkID4gLnJvdyA+IC5jb2x1bW4sXG4gIC51aVtjbGFzcyo9XCJ0d2VsdmUgY29sdW1uXCJdLmRvdWJsaW5nOm5vdCguc3RhY2thYmxlKS5ncmlkID4gLmNvbHVtbjpub3QoLnJvdyksXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cInR3ZWx2ZSBjb2x1bW5cIl0uZG91Ymxpbmc6bm90KC5zdGFja2FibGUpLnJvdy5yb3cgPiAuY29sdW1uIHtcbiAgICB3aWR0aDogMzMuMzMzMzMzMzMlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpW2NsYXNzKj1cInRoaXJ0ZWVuIGNvbHVtblwiXS5kb3VibGluZzpub3QoLnN0YWNrYWJsZSkuZ3JpZCA+IC5yb3cgPiAuY29sdW1uLFxuICAudWlbY2xhc3MqPVwidGhpcnRlZW4gY29sdW1uXCJdLmRvdWJsaW5nOm5vdCguc3RhY2thYmxlKS5ncmlkID4gLmNvbHVtbjpub3QoLnJvdyksXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cInRoaXJ0ZWVuIGNvbHVtblwiXS5kb3VibGluZzpub3QoLnN0YWNrYWJsZSkucm93LnJvdyA+IC5jb2x1bW4ge1xuICAgIHdpZHRoOiAzMy4zMzMzMzMzMyUgIWltcG9ydGFudDtcbiAgfVxuICAudWlbY2xhc3MqPVwiZm91cnRlZW4gY29sdW1uXCJdLmRvdWJsaW5nOm5vdCguc3RhY2thYmxlKS5ncmlkID4gLnJvdyA+IC5jb2x1bW4sXG4gIC51aVtjbGFzcyo9XCJmb3VydGVlbiBjb2x1bW5cIl0uZG91Ymxpbmc6bm90KC5zdGFja2FibGUpLmdyaWQgPiAuY29sdW1uOm5vdCgucm93KSxcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwiZm91cnRlZW4gY29sdW1uXCJdLmRvdWJsaW5nOm5vdCguc3RhY2thYmxlKS5yb3cucm93ID4gLmNvbHVtbiB7XG4gICAgd2lkdGg6IDI1JSAhaW1wb3J0YW50O1xuICB9XG4gIC51aVtjbGFzcyo9XCJmaWZ0ZWVuIGNvbHVtblwiXS5kb3VibGluZzpub3QoLnN0YWNrYWJsZSkuZ3JpZCA+IC5yb3cgPiAuY29sdW1uLFxuICAudWlbY2xhc3MqPVwiZmlmdGVlbiBjb2x1bW5cIl0uZG91Ymxpbmc6bm90KC5zdGFja2FibGUpLmdyaWQgPiAuY29sdW1uOm5vdCgucm93KSxcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwiZmlmdGVlbiBjb2x1bW5cIl0uZG91Ymxpbmc6bm90KC5zdGFja2FibGUpLnJvdy5yb3cgPiAuY29sdW1uIHtcbiAgICB3aWR0aDogMjUlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpW2NsYXNzKj1cInNpeHRlZW4gY29sdW1uXCJdLmRvdWJsaW5nOm5vdCguc3RhY2thYmxlKS5ncmlkID4gLnJvdyA+IC5jb2x1bW4sXG4gIC51aVtjbGFzcyo9XCJzaXh0ZWVuIGNvbHVtblwiXS5kb3VibGluZzpub3QoLnN0YWNrYWJsZSkuZ3JpZCA+IC5jb2x1bW46bm90KC5yb3cpLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJzaXh0ZWVuIGNvbHVtblwiXS5kb3VibGluZzpub3QoLnN0YWNrYWJsZSkucm93LnJvdyA+IC5jb2x1bW4ge1xuICAgIHdpZHRoOiAyNSUgIWltcG9ydGFudDtcbiAgfVxufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTdGFja2FibGVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgLnVpLnN0YWNrYWJsZS5ncmlkIHtcbiAgICB3aWR0aDogYXV0bztcbiAgICBtYXJnaW4tbGVmdDogMGVtICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luLXJpZ2h0OiAwZW0gIWltcG9ydGFudDtcbiAgfVxuICAudWkuc3RhY2thYmxlLmdyaWQgPiAucm93ID4gLndpZGUuY29sdW1uLFxuICAudWkuc3RhY2thYmxlLmdyaWQgPiAud2lkZS5jb2x1bW4sXG4gIC51aS5zdGFja2FibGUuZ3JpZCA+IC5jb2x1bW4uZ3JpZCA+IC5jb2x1bW4sXG4gIC51aS5zdGFja2FibGUuZ3JpZCA+IC5jb2x1bW4ucm93ID4gLmNvbHVtbixcbiAgLnVpLnN0YWNrYWJsZS5ncmlkID4gLnJvdyA+IC5jb2x1bW4sXG4gIC51aS5zdGFja2FibGUuZ3JpZCA+IC5jb2x1bW46bm90KC5yb3cpLFxuICAudWkuZ3JpZCA+IC5zdGFja2FibGUuc3RhY2thYmxlLnJvdyA+IC5jb2x1bW4ge1xuICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luOiAwZW0gMGVtICFpbXBvcnRhbnQ7XG4gICAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmc6IDFyZW0gMXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5zdGFja2FibGUuZ3JpZDpub3QoLnZlcnRpY2FsbHkpID4gLnJvdyB7XG4gICAgbWFyZ2luOiAwZW07XG4gICAgcGFkZGluZzogMGVtO1xuICB9XG4gIC8qIENvdXBsaW5nICovXG4gIC51aS5jb250YWluZXIgPiAudWkuc3RhY2thYmxlLmdyaWQgPiAuY29sdW1uLFxuICAudWkuY29udGFpbmVyID4gLnVpLnN0YWNrYWJsZS5ncmlkID4gLnJvdyA+IC5jb2x1bW4ge1xuICAgIHBhZGRpbmctbGVmdDogMGVtICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZy1yaWdodDogMGVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLyogRG9uJ3QgcGFkIGluc2lkZSBzZWdtZW50IG9yIG5lc3RlZCBncmlkICovXG4gIC51aS5ncmlkIC51aS5zdGFja2FibGUuZ3JpZCxcbiAgLnVpLnNlZ21lbnQ6bm90KC52ZXJ0aWNhbCkgLnVpLnN0YWNrYWJsZS5wYWdlLmdyaWQge1xuICAgIG1hcmdpbi1sZWZ0OiAtMXJlbSAhaW1wb3J0YW50O1xuICAgIG1hcmdpbi1yaWdodDogLTFyZW0gIWltcG9ydGFudDtcbiAgfVxuICAvKiBEaXZpZGVkIFN0YWNrYWJsZSAqL1xuICAudWkuc3RhY2thYmxlLmRpdmlkZWQuZ3JpZCA+IC5yb3c6Zmlyc3QtY2hpbGQgPiAuY29sdW1uOmZpcnN0LWNoaWxkLFxuICAudWkuc3RhY2thYmxlLmNlbGxlZC5ncmlkID4gLnJvdzpmaXJzdC1jaGlsZCA+IC5jb2x1bW46Zmlyc3QtY2hpbGQsXG4gIC51aS5zdGFja2FibGUuZGl2aWRlZC5ncmlkID4gLmNvbHVtbjpub3QoLnJvdyk6Zmlyc3QtY2hpbGQsXG4gIC51aS5zdGFja2FibGUuY2VsbGVkLmdyaWQgPiAuY29sdW1uOm5vdCgucm93KTpmaXJzdC1jaGlsZCB7XG4gICAgYm9yZGVyLXRvcDogbm9uZSAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5pbnZlcnRlZC5zdGFja2FibGUuY2VsbGVkLmdyaWQgPiAuY29sdW1uOm5vdCgucm93KSxcbiAgLnVpLmludmVydGVkLnN0YWNrYWJsZS5kaXZpZGVkLmdyaWQgPiAuY29sdW1uOm5vdCgucm93KSxcbiAgLnVpLmludmVydGVkLnN0YWNrYWJsZS5jZWxsZWQuZ3JpZCA+IC5yb3cgPiAuY29sdW1uLFxuICAudWkuaW52ZXJ0ZWQuc3RhY2thYmxlLmRpdmlkZWQuZ3JpZCA+IC5yb3cgPiAuY29sdW1uIHtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpO1xuICB9XG4gIC51aS5zdGFja2FibGUuY2VsbGVkLmdyaWQgPiAuY29sdW1uOm5vdCgucm93KSxcbiAgLnVpLnN0YWNrYWJsZS5kaXZpZGVkOm5vdCgudmVydGljYWxseSkuZ3JpZCA+IC5jb2x1bW46bm90KC5yb3cpLFxuICAudWkuc3RhY2thYmxlLmNlbGxlZC5ncmlkID4gLnJvdyA+IC5jb2x1bW4sXG4gIC51aS5zdGFja2FibGUuZGl2aWRlZDpub3QoLnZlcnRpY2FsbHkpLmdyaWQgPiAucm93ID4gLmNvbHVtbiB7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHJnYmEoMzQsIDM2LCAzOCwgMC4xNSk7XG4gICAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmctdG9wOiAycmVtICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZy1ib3R0b206IDJyZW0gIWltcG9ydGFudDtcbiAgfVxuICAudWkuc3RhY2thYmxlLmNlbGxlZC5ncmlkID4gLnJvdyB7XG4gICAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5zdGFja2FibGUuZGl2aWRlZDpub3QoLnZlcnRpY2FsbHkpLmdyaWQgPiAuY29sdW1uOm5vdCgucm93KSxcbiAgLnVpLnN0YWNrYWJsZS5kaXZpZGVkOm5vdCgudmVydGljYWxseSkuZ3JpZCA+IC5yb3cgPiAuY29sdW1uIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDBlbSAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmctcmlnaHQ6IDBlbSAhaW1wb3J0YW50O1xuICB9XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgT25seSAoRGV2aWNlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhlc2UgaW5jbHVkZSBhcmJpdHJhcnkgY2xhc3MgcmVwZXRpdGlvbnMgZm9yIGZvcmNlZCBzcGVjaWZpY2l0eSAqL1xuLyogTW9iaWxlIE9ubHkgSGlkZSAqL1xuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAudWlbY2xhc3MqPVwidGFibGV0IG9ubHlcIl0uZ3JpZC5ncmlkLmdyaWQ6bm90KC5tb2JpbGUpLFxuICAudWkuZ3JpZC5ncmlkLmdyaWQgPiBbY2xhc3MqPVwidGFibGV0IG9ubHlcIl0ucm93Om5vdCgubW9iaWxlKSxcbiAgLnVpLmdyaWQuZ3JpZC5ncmlkID4gW2NsYXNzKj1cInRhYmxldCBvbmx5XCJdLmNvbHVtbjpub3QoLm1vYmlsZSksXG4gIC51aS5ncmlkLmdyaWQuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwidGFibGV0IG9ubHlcIl0uY29sdW1uOm5vdCgubW9iaWxlKSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG4gIC51aVtjbGFzcyo9XCJjb21wdXRlciBvbmx5XCJdLmdyaWQuZ3JpZC5ncmlkOm5vdCgubW9iaWxlKSxcbiAgLnVpLmdyaWQuZ3JpZC5ncmlkID4gW2NsYXNzKj1cImNvbXB1dGVyIG9ubHlcIl0ucm93Om5vdCgubW9iaWxlKSxcbiAgLnVpLmdyaWQuZ3JpZC5ncmlkID4gW2NsYXNzKj1cImNvbXB1dGVyIG9ubHlcIl0uY29sdW1uOm5vdCgubW9iaWxlKSxcbiAgLnVpLmdyaWQuZ3JpZC5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJjb21wdXRlciBvbmx5XCJdLmNvbHVtbjpub3QoLm1vYmlsZSkge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxuICAudWlbY2xhc3MqPVwibGFyZ2Ugc2NyZWVuIG9ubHlcIl0uZ3JpZC5ncmlkLmdyaWQ6bm90KC5tb2JpbGUpLFxuICAudWkuZ3JpZC5ncmlkLmdyaWQgPiBbY2xhc3MqPVwibGFyZ2Ugc2NyZWVuIG9ubHlcIl0ucm93Om5vdCgubW9iaWxlKSxcbiAgLnVpLmdyaWQuZ3JpZC5ncmlkID4gW2NsYXNzKj1cImxhcmdlIHNjcmVlbiBvbmx5XCJdLmNvbHVtbjpub3QoLm1vYmlsZSksXG4gIC51aS5ncmlkLmdyaWQuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwibGFyZ2Ugc2NyZWVuIG9ubHlcIl0uY29sdW1uOm5vdCgubW9iaWxlKSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG4gIC51aVtjbGFzcyo9XCJ3aWRlc2NyZWVuIG9ubHlcIl0uZ3JpZC5ncmlkLmdyaWQ6bm90KC5tb2JpbGUpLFxuICAudWkuZ3JpZC5ncmlkLmdyaWQgPiBbY2xhc3MqPVwid2lkZXNjcmVlbiBvbmx5XCJdLnJvdzpub3QoLm1vYmlsZSksXG4gIC51aS5ncmlkLmdyaWQuZ3JpZCA+IFtjbGFzcyo9XCJ3aWRlc2NyZWVuIG9ubHlcIl0uY29sdW1uOm5vdCgubW9iaWxlKSxcbiAgLnVpLmdyaWQuZ3JpZC5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJ3aWRlc2NyZWVuIG9ubHlcIl0uY29sdW1uOm5vdCgubW9iaWxlKSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG59XG4vKiBUYWJsZXQgT25seSBIaWRlICovXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc2OHB4KSBhbmQgKG1heC13aWR0aDogOTkxcHgpIHtcbiAgLnVpW2NsYXNzKj1cIm1vYmlsZSBvbmx5XCJdLmdyaWQuZ3JpZC5ncmlkOm5vdCgudGFibGV0KSxcbiAgLnVpLmdyaWQuZ3JpZC5ncmlkID4gW2NsYXNzKj1cIm1vYmlsZSBvbmx5XCJdLnJvdzpub3QoLnRhYmxldCksXG4gIC51aS5ncmlkLmdyaWQuZ3JpZCA+IFtjbGFzcyo9XCJtb2JpbGUgb25seVwiXS5jb2x1bW46bm90KC50YWJsZXQpLFxuICAudWkuZ3JpZC5ncmlkLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cIm1vYmlsZSBvbmx5XCJdLmNvbHVtbjpub3QoLnRhYmxldCkge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxuICAudWlbY2xhc3MqPVwiY29tcHV0ZXIgb25seVwiXS5ncmlkLmdyaWQuZ3JpZDpub3QoLnRhYmxldCksXG4gIC51aS5ncmlkLmdyaWQuZ3JpZCA+IFtjbGFzcyo9XCJjb21wdXRlciBvbmx5XCJdLnJvdzpub3QoLnRhYmxldCksXG4gIC51aS5ncmlkLmdyaWQuZ3JpZCA+IFtjbGFzcyo9XCJjb21wdXRlciBvbmx5XCJdLmNvbHVtbjpub3QoLnRhYmxldCksXG4gIC51aS5ncmlkLmdyaWQuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwiY29tcHV0ZXIgb25seVwiXS5jb2x1bW46bm90KC50YWJsZXQpIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpW2NsYXNzKj1cImxhcmdlIHNjcmVlbiBvbmx5XCJdLmdyaWQuZ3JpZC5ncmlkOm5vdCgubW9iaWxlKSxcbiAgLnVpLmdyaWQuZ3JpZC5ncmlkID4gW2NsYXNzKj1cImxhcmdlIHNjcmVlbiBvbmx5XCJdLnJvdzpub3QoLm1vYmlsZSksXG4gIC51aS5ncmlkLmdyaWQuZ3JpZCA+IFtjbGFzcyo9XCJsYXJnZSBzY3JlZW4gb25seVwiXS5jb2x1bW46bm90KC5tb2JpbGUpLFxuICAudWkuZ3JpZC5ncmlkLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cImxhcmdlIHNjcmVlbiBvbmx5XCJdLmNvbHVtbjpub3QoLm1vYmlsZSkge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxuICAudWlbY2xhc3MqPVwid2lkZXNjcmVlbiBvbmx5XCJdLmdyaWQuZ3JpZC5ncmlkOm5vdCgubW9iaWxlKSxcbiAgLnVpLmdyaWQuZ3JpZC5ncmlkID4gW2NsYXNzKj1cIndpZGVzY3JlZW4gb25seVwiXS5yb3c6bm90KC5tb2JpbGUpLFxuICAudWkuZ3JpZC5ncmlkLmdyaWQgPiBbY2xhc3MqPVwid2lkZXNjcmVlbiBvbmx5XCJdLmNvbHVtbjpub3QoLm1vYmlsZSksXG4gIC51aS5ncmlkLmdyaWQuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwid2lkZXNjcmVlbiBvbmx5XCJdLmNvbHVtbjpub3QoLm1vYmlsZSkge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxufVxuLyogQ29tcHV0ZXIgT25seSBIaWRlICovXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDk5MnB4KSBhbmQgKG1heC13aWR0aDogMTE5OXB4KSB7XG4gIC51aVtjbGFzcyo9XCJtb2JpbGUgb25seVwiXS5ncmlkLmdyaWQuZ3JpZDpub3QoLmNvbXB1dGVyKSxcbiAgLnVpLmdyaWQuZ3JpZC5ncmlkID4gW2NsYXNzKj1cIm1vYmlsZSBvbmx5XCJdLnJvdzpub3QoLmNvbXB1dGVyKSxcbiAgLnVpLmdyaWQuZ3JpZC5ncmlkID4gW2NsYXNzKj1cIm1vYmlsZSBvbmx5XCJdLmNvbHVtbjpub3QoLmNvbXB1dGVyKSxcbiAgLnVpLmdyaWQuZ3JpZC5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJtb2JpbGUgb25seVwiXS5jb2x1bW46bm90KC5jb21wdXRlcikge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxuICAudWlbY2xhc3MqPVwidGFibGV0IG9ubHlcIl0uZ3JpZC5ncmlkLmdyaWQ6bm90KC5jb21wdXRlciksXG4gIC51aS5ncmlkLmdyaWQuZ3JpZCA+IFtjbGFzcyo9XCJ0YWJsZXQgb25seVwiXS5yb3c6bm90KC5jb21wdXRlciksXG4gIC51aS5ncmlkLmdyaWQuZ3JpZCA+IFtjbGFzcyo9XCJ0YWJsZXQgb25seVwiXS5jb2x1bW46bm90KC5jb21wdXRlciksXG4gIC51aS5ncmlkLmdyaWQuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwidGFibGV0IG9ubHlcIl0uY29sdW1uOm5vdCguY29tcHV0ZXIpIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpW2NsYXNzKj1cImxhcmdlIHNjcmVlbiBvbmx5XCJdLmdyaWQuZ3JpZC5ncmlkOm5vdCgubW9iaWxlKSxcbiAgLnVpLmdyaWQuZ3JpZC5ncmlkID4gW2NsYXNzKj1cImxhcmdlIHNjcmVlbiBvbmx5XCJdLnJvdzpub3QoLm1vYmlsZSksXG4gIC51aS5ncmlkLmdyaWQuZ3JpZCA+IFtjbGFzcyo9XCJsYXJnZSBzY3JlZW4gb25seVwiXS5jb2x1bW46bm90KC5tb2JpbGUpLFxuICAudWkuZ3JpZC5ncmlkLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cImxhcmdlIHNjcmVlbiBvbmx5XCJdLmNvbHVtbjpub3QoLm1vYmlsZSkge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxuICAudWlbY2xhc3MqPVwid2lkZXNjcmVlbiBvbmx5XCJdLmdyaWQuZ3JpZC5ncmlkOm5vdCgubW9iaWxlKSxcbiAgLnVpLmdyaWQuZ3JpZC5ncmlkID4gW2NsYXNzKj1cIndpZGVzY3JlZW4gb25seVwiXS5yb3c6bm90KC5tb2JpbGUpLFxuICAudWkuZ3JpZC5ncmlkLmdyaWQgPiBbY2xhc3MqPVwid2lkZXNjcmVlbiBvbmx5XCJdLmNvbHVtbjpub3QoLm1vYmlsZSksXG4gIC51aS5ncmlkLmdyaWQuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwid2lkZXNjcmVlbiBvbmx5XCJdLmNvbHVtbjpub3QoLm1vYmlsZSkge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxufVxuLyogTGFyZ2UgU2NyZWVuIE9ubHkgSGlkZSAqL1xuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMjAwcHgpIGFuZCAobWF4LXdpZHRoOiAxOTE5cHgpIHtcbiAgLnVpW2NsYXNzKj1cIm1vYmlsZSBvbmx5XCJdLmdyaWQuZ3JpZC5ncmlkOm5vdCguY29tcHV0ZXIpLFxuICAudWkuZ3JpZC5ncmlkLmdyaWQgPiBbY2xhc3MqPVwibW9iaWxlIG9ubHlcIl0ucm93Om5vdCguY29tcHV0ZXIpLFxuICAudWkuZ3JpZC5ncmlkLmdyaWQgPiBbY2xhc3MqPVwibW9iaWxlIG9ubHlcIl0uY29sdW1uOm5vdCguY29tcHV0ZXIpLFxuICAudWkuZ3JpZC5ncmlkLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cIm1vYmlsZSBvbmx5XCJdLmNvbHVtbjpub3QoLmNvbXB1dGVyKSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG4gIC51aVtjbGFzcyo9XCJ0YWJsZXQgb25seVwiXS5ncmlkLmdyaWQuZ3JpZDpub3QoLmNvbXB1dGVyKSxcbiAgLnVpLmdyaWQuZ3JpZC5ncmlkID4gW2NsYXNzKj1cInRhYmxldCBvbmx5XCJdLnJvdzpub3QoLmNvbXB1dGVyKSxcbiAgLnVpLmdyaWQuZ3JpZC5ncmlkID4gW2NsYXNzKj1cInRhYmxldCBvbmx5XCJdLmNvbHVtbjpub3QoLmNvbXB1dGVyKSxcbiAgLnVpLmdyaWQuZ3JpZC5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJ0YWJsZXQgb25seVwiXS5jb2x1bW46bm90KC5jb21wdXRlcikge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxuICAudWlbY2xhc3MqPVwid2lkZXNjcmVlbiBvbmx5XCJdLmdyaWQuZ3JpZC5ncmlkOm5vdCgubW9iaWxlKSxcbiAgLnVpLmdyaWQuZ3JpZC5ncmlkID4gW2NsYXNzKj1cIndpZGVzY3JlZW4gb25seVwiXS5yb3c6bm90KC5tb2JpbGUpLFxuICAudWkuZ3JpZC5ncmlkLmdyaWQgPiBbY2xhc3MqPVwid2lkZXNjcmVlbiBvbmx5XCJdLmNvbHVtbjpub3QoLm1vYmlsZSksXG4gIC51aS5ncmlkLmdyaWQuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwid2lkZXNjcmVlbiBvbmx5XCJdLmNvbHVtbjpub3QoLm1vYmlsZSkge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxufVxuLyogV2lkZXNjcmVlbiBPbmx5IEhpZGUgKi9cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTkyMHB4KSB7XG4gIC51aVtjbGFzcyo9XCJtb2JpbGUgb25seVwiXS5ncmlkLmdyaWQuZ3JpZDpub3QoLmNvbXB1dGVyKSxcbiAgLnVpLmdyaWQuZ3JpZC5ncmlkID4gW2NsYXNzKj1cIm1vYmlsZSBvbmx5XCJdLnJvdzpub3QoLmNvbXB1dGVyKSxcbiAgLnVpLmdyaWQuZ3JpZC5ncmlkID4gW2NsYXNzKj1cIm1vYmlsZSBvbmx5XCJdLmNvbHVtbjpub3QoLmNvbXB1dGVyKSxcbiAgLnVpLmdyaWQuZ3JpZC5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJtb2JpbGUgb25seVwiXS5jb2x1bW46bm90KC5jb21wdXRlcikge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxuICAudWlbY2xhc3MqPVwidGFibGV0IG9ubHlcIl0uZ3JpZC5ncmlkLmdyaWQ6bm90KC5jb21wdXRlciksXG4gIC51aS5ncmlkLmdyaWQuZ3JpZCA+IFtjbGFzcyo9XCJ0YWJsZXQgb25seVwiXS5yb3c6bm90KC5jb21wdXRlciksXG4gIC51aS5ncmlkLmdyaWQuZ3JpZCA+IFtjbGFzcyo9XCJ0YWJsZXQgb25seVwiXS5jb2x1bW46bm90KC5jb21wdXRlciksXG4gIC51aS5ncmlkLmdyaWQuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwidGFibGV0IG9ubHlcIl0uY29sdW1uOm5vdCguY29tcHV0ZXIpIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBUaGVtZSBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKlxuICogIyBTZW1hbnRpYyAtIE1lbnVcbiAqIGh0dHA6Ly9naXRodWIuY29tL3NlbWFudGljLW9yZy9zZW1hbnRpYy11aS9cbiAqXG4gKlxuICogQ29weXJpZ2h0IDIwMTUgQ29udHJpYnV0b3JcbiAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZVxuICogaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVFxuICpcbiAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLypcblxu4paI4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWXICDilojilojilZfilojilojilojilojilojilojilojilZfilojilojilojilZcgICDilojilojilojilZfilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZdcbuKVmuKVkOKVkOKWiOKWiOKVlOKVkOKVkOKVneKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWd4paI4paI4paI4paI4pWXIOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVnVxuICAg4paI4paI4pWRICAg4paI4paI4paI4paI4paI4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilZTilojilojilojilojilZTilojilojilZHilojilojilojilojilojilZcgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl1xuICAg4paI4paI4pWRICAg4paI4paI4pWU4pWQ4pWQ4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilojilojilZHilZrilojilojilZTilZ3ilojilojilZHilojilojilZTilZDilZDilZ0gIOKVmuKVkOKVkOKVkOKVkOKWiOKWiOKVkVxuICAg4paI4paI4pWRICAg4paI4paI4pWRICDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilZEg4pWa4pWQ4pWdIOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkVxuICAg4pWa4pWQ4pWdICAg4pWa4pWQ4pWdICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZ0gICAgIOKVmuKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVnVxuXG4qL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgVGhlbWUgU2VsZWN0aW9uXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogVG8gb3ZlcnJpZGUgYSB0aGVtZSBmb3IgYW4gaW5kaXZpZHVhbCBlbGVtZW50XG4gICBzcGVjaWZ5IHRoZW1lIG5hbWUgYmVsb3dcbiovXG4vKiBHbG9iYWwgKi9cbi8qIEVsZW1lbnRzICovXG4vKiBDb2xsZWN0aW9ucyAqL1xuLyogTW9kdWxlcyAqL1xuLyogVmlld3MgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBGb2xkZXJzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogUGF0aCB0byB0aGVtZSBwYWNrYWdlcyAqL1xuLyogUGF0aCB0byBzaXRlIG92ZXJyaWRlIGZvbGRlciAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIEltcG9ydCBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIEltcG9ydCBEaXJlY3RpdmVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBUaGVtZVxuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICBTaXRlIFZhcmlhYmxlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERlZmF1bHQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZG9ycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBQYWNrYWdlZCBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kb3JzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIENvbXBvbmVudCdzIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRvcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogU2l0ZSB0aGVtZSBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgVXNlciBHbG9iYWwgVmFyaWFibGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogbWFyc28gY29sb3JzICovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gQ29tcG9uZW50IFZhcmlhYmxlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERlZmF1bHQgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgTWVudVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQ29sbGVjdGlvblxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWVudSAqL1xuLyogTWVudSBJdGVtICovXG4vKiBEaXZpZGVyICovXG4vKiBTdWIgTWVudSAqL1xuLyogVGV4dCBJdGVtICovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgRWxlbWVudHNcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBJY29uICovXG4vKiBEcm9wZG93biBJY29uICovXG4vKiBIZWFkZXIgKi9cbi8qIFZlcnRpY2FsIEljb24gKi9cbi8qIFZlcnRpY2FsIEhlYWRlciAqL1xuLyogUG9pbnRpbmcgQXJyb3cgKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBDb3VwbGluZ3Ncbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBCdXR0b24gKi9cbi8qIElucHV0ICovXG4vKiBJbWFnZSAqL1xuLyogTGFiZWwgKi9cbi8qIERyb3Bkb3duIGluIE1lbnUgKi9cbi8qIERyb3Bkb3duIFZhcmlhdGlvbnMgKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgU3RhdGVzXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogSG92ZXJlZCBJdGVtICovXG4vKiBQcmVzc2VkIEl0ZW0gKi9cbi8qIEFjdGl2ZSBJdGVtICovXG4vKiBBY3RpdmUgSG92ZXJlZCBJdGVtICovXG4vKiBTZWxlY3RlZCBEcm9wZG93biAqL1xuLyogQWN0aXZlIERyb3Bkb3duICovXG4vKiBBY3RpdmUgU3ViIE1lbnUgKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgVHlwZXNcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBWZXJ0aWNhbCAqL1xuLyogU2Vjb25kYXJ5ICovXG4vKiBQb2ludGluZyAqL1xuLyogSW52ZXJ0ZWQgU2Vjb25kYXJ5ICovXG4vKiBJbnZlcnRlZCBQb2ludGluZyAqL1xuLyogVGllcmVkICovXG4vKiBJY29uICovXG4vKiBUYWJ1bGFyICovXG4vKiBQYWdpbmF0aW9uICovXG4vKiBMYWJlbGVkIEljb24gKi9cbi8qIFRleHQgKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIFZhcmlhdGlvbnNcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyogSW52ZXJ0ZWQgU3ViIE1lbnUgKi9cbi8qIEludmVydGVkIEhvdmVyICovXG4vKiBQcmVzc2VkICovXG4vKiBJbnZlcnRlZCBBY3RpdmUgKi9cbi8qIEludmVydGVkIEFjdGl2ZSBIb3ZlciAgKi9cbi8qIEludmVydGVkIE1lbnUgRGl2aWRlciAqL1xuLyogSW52ZXJ0ZWQgQ29sb3JlZCAqL1xuLyogRml4ZWQgKi9cbi8qIEZsb2F0ZWQgKi9cbi8qIEF0dGFjaGVkICovXG4vKiBSZXNpemUgbGFyZ2Ugc2l6ZXMgKi9cbi8qIFNpemVzICovXG4vKiBQYWNrYWdlZCBUaGVtZSAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBNZW51XG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBDb2xsZWN0aW9uXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNZW51ICovXG4vKiBNZW51IEl0ZW0gKi9cbi8qIERpdmlkZXIgKi9cbi8qIFN1YiBNZW51ICovXG4vKiBUZXh0IEl0ZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBFbGVtZW50c1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEljb24gKi9cbi8qIERyb3Bkb3duIEljb24gKi9cbi8qIEhlYWRlciAqL1xuLyogVmVydGljYWwgSWNvbiAqL1xuLyogVmVydGljYWwgSGVhZGVyICovXG4vKiBQb2ludGluZyBBcnJvdyAqL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgIENvdXBsaW5nc1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEJ1dHRvbiAqL1xuLyogSW5wdXQgKi9cbi8qIEltYWdlICovXG4vKiBMYWJlbCAqL1xuLyogRHJvcGRvd24gaW4gTWVudSAqL1xuLyogRHJvcGRvd24gVmFyaWF0aW9ucyAqL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgICBTdGF0ZXNcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBIb3ZlcmVkIEl0ZW0gKi9cbi8qIFByZXNzZWQgSXRlbSAqL1xuLyogQWN0aXZlIEl0ZW0gKi9cbi8qIEFjdGl2ZSBIb3ZlcmVkIEl0ZW0gKi9cbi8qIFNlbGVjdGVkIERyb3Bkb3duICovXG4vKiBBY3RpdmUgRHJvcGRvd24gKi9cbi8qIEFjdGl2ZSBTdWIgTWVudSAqL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgICBUeXBlc1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFZlcnRpY2FsICovXG4vKiBTZWNvbmRhcnkgKi9cbi8qIFBvaW50aW5nICovXG4vKiBJbnZlcnRlZCBTZWNvbmRhcnkgKi9cbi8qIEludmVydGVkIFBvaW50aW5nICovXG4vKiBUaWVyZWQgKi9cbi8qIEljb24gKi9cbi8qIFRhYnVsYXIgKi9cbi8qIFBhZ2luYXRpb24gKi9cbi8qIExhYmVsZWQgSWNvbiAqL1xuLyogVGV4dCAqL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgVmFyaWF0aW9uc1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKiBJbnZlcnRlZCBTdWIgTWVudSAqL1xuLyogSW52ZXJ0ZWQgSG92ZXIgKi9cbi8qIFByZXNzZWQgKi9cbi8qIEludmVydGVkIEFjdGl2ZSAqL1xuLyogSW52ZXJ0ZWQgQWN0aXZlIEhvdmVyICAqL1xuLyogSW52ZXJ0ZWQgTWVudSBEaXZpZGVyICovXG4vKiBJbnZlcnRlZCBDb2xvcmVkICovXG4vKiBGaXhlZCAqL1xuLyogRmxvYXRlZCAqL1xuLyogQXR0YWNoZWQgKi9cbi8qIFJlc2l6ZSBsYXJnZSBzaXplcyAqL1xuLyogU2l6ZXMgKi9cbi8qIFNpdGUgVGhlbWUgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgVXNlciBWYXJpYWJsZSBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIE1peC1pbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE92ZXJyaWRlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBFbmQgQ29uZmlnICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgU3RhbmRhcmRcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgICBNZW51XG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLm1lbnUge1xuICBkaXNwbGF5OiBmbGV4O1xuICBtYXJnaW46IDFyZW0gMGVtO1xuICBmb250LWZhbWlseTogJ0V4byAyJywgJ0xhdG8nLCBBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmO1xuICBiYWNrZ3JvdW5kOiAjRkZGRkZGO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpO1xuICBib3gtc2hhZG93OiAwcHggMXB4IDJweCAwIHJnYmEoMzQsIDM2LCAzOCwgMC4xNSk7XG4gIGJvcmRlci1yYWRpdXM6IDAuNHJlbTtcbiAgbWluLWhlaWdodDogMi44ZW07XG59XG4udWkubWVudTphZnRlciB7XG4gIGNvbnRlbnQ6ICcnO1xuICBkaXNwbGF5OiBibG9jaztcbiAgaGVpZ2h0OiAwcHg7XG4gIGNsZWFyOiBib3RoO1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG59XG4udWkubWVudTpmaXJzdC1jaGlsZCB7XG4gIG1hcmdpbi10b3A6IDByZW07XG59XG4udWkubWVudTpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLWJvdHRvbTogMHJlbTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBTdWItTWVudVxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5tZW51IC5tZW51IHtcbiAgbWFyZ2luOiAwZW07XG59XG4udWkubWVudTpub3QoLnZlcnRpY2FsKSA+IC5tZW51IHtcbiAgZGlzcGxheTogZmxleDtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgIEl0ZW1cbi0tLS0tLS0tLS0tLS0tLSovXG4udWkubWVudTpub3QoLnZlcnRpY2FsKSAuaXRlbSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG4udWkubWVudSAuaXRlbSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgZmxleDogMCAwIGF1dG87XG4gIHVzZXItc2VsZWN0OiBub25lO1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICBwYWRkaW5nOiAwLjllbSAxLjFlbTtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gIGNvbG9yOiAjMzMzMzMzO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMXMgZWFzZSwgYm94LXNoYWRvdyAwLjFzIGVhc2UsIGNvbG9yIDAuMXMgZWFzZTtcbn1cbi51aS5tZW51ID4gLml0ZW06Zmlyc3QtY2hpbGQge1xuICBib3JkZXItcmFkaXVzOiAwLjRyZW0gMHB4IDBweCAwLjRyZW07XG59XG4vKiBCb3JkZXIgKi9cbi51aS5tZW51IC5pdGVtOmJlZm9yZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgY29udGVudDogJyc7XG4gIHRvcDogMCU7XG4gIHJpZ2h0OiAwcHg7XG4gIGhlaWdodDogMTAwJTtcbiAgd2lkdGg6IDFweDtcbiAgYmFja2dyb3VuZDogcmdiYSgzNCwgMzYsIDM4LCAwLjEpO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICBUZXh0IENvbnRlbnRcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkubWVudSAudGV4dC5pdGVtID4gKixcbi51aS5tZW51IC5pdGVtID4gYTpub3QoLnVpKSxcbi51aS5tZW51IC5pdGVtID4gcDpvbmx5LWNoaWxkIHtcbiAgdXNlci1zZWxlY3Q6IHRleHQ7XG4gIGxpbmUtaGVpZ2h0OiAxLjM7XG59XG4udWkubWVudSAuaXRlbSA+IHA6Zmlyc3QtY2hpbGQge1xuICBtYXJnaW4tdG9wOiAwO1xufVxuLnVpLm1lbnUgLml0ZW0gPiBwOmxhc3QtY2hpbGQge1xuICBtYXJnaW4tYm90dG9tOiAwO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkubWVudSAuaXRlbSA+IGkuaWNvbiB7XG4gIG9wYWNpdHk6IDAuOTtcbiAgZmxvYXQ6IG5vbmU7XG4gIG1hcmdpbjogMGVtIDAuNWVtIDBlbSAwZW07XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIEJ1dHRvblxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5tZW51Om5vdCgudmVydGljYWwpIC5pdGVtID4gLmJ1dHRvbiB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdG9wOiAwZW07XG4gIG1hcmdpbjogLTAuNWVtIDBlbTtcbiAgcGFkZGluZy1ib3R0b206IDAuOGVtO1xuICBwYWRkaW5nLXRvcDogMC44ZW07XG4gIGZvbnQtc2l6ZTogMWVtO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tXG4gR3JpZCAvIENvbnRhaW5lclxuLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLm1lbnUgPiAuZ3JpZCxcbi51aS5tZW51ID4gLmNvbnRhaW5lciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBpbmhlcml0O1xuICBmbGV4LWRpcmVjdGlvbjogaW5oZXJpdDtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgSW5wdXRzXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLm1lbnUgLml0ZW0gPiAuaW5wdXQge1xuICB3aWR0aDogMTAwJTtcbn1cbi51aS5tZW51Om5vdCgudmVydGljYWwpIC5pdGVtID4gLmlucHV0IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0b3A6IDBlbTtcbiAgbWFyZ2luOiAtMC41ZW0gMGVtO1xufVxuLnVpLm1lbnUgLml0ZW0gPiAuaW5wdXQgaW5wdXQge1xuICBmb250LXNpemU6IDFlbTtcbiAgcGFkZGluZy10b3A6IDAuOGVtO1xuICBwYWRkaW5nLWJvdHRvbTogMC44ZW07XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIEhlYWRlclxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5tZW51IC5oZWFkZXIuaXRlbSxcbi51aS52ZXJ0aWNhbC5tZW51IC5oZWFkZXIuaXRlbSB7XG4gIG1hcmdpbjogMGVtO1xuICBiYWNrZ3JvdW5kOiAnJztcbiAgdGV4dC10cmFuc2Zvcm06IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG4udWkudmVydGljYWwubWVudSAuaXRlbSA+IC5oZWFkZXI6bm90KC51aSkge1xuICBtYXJnaW46IDBlbSAwZW0gMC41ZW07XG4gIGZvbnQtc2l6ZTogMWVtO1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBEcm9wZG93bnNcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBEcm9wZG93biBJY29uICovXG4udWkubWVudSAuaXRlbSA+IGkuZHJvcGRvd24uaWNvbiB7XG4gIHBhZGRpbmc6IDBlbTtcbiAgZmxvYXQ6IHJpZ2h0O1xuICBtYXJnaW46IDBlbSAwZW0gMGVtIDFlbTtcbn1cbi8qIE1lbnUgKi9cbi51aS5tZW51IC5kcm9wZG93bi5pdGVtIC5tZW51IHtcbiAgbGVmdDogMHB4O1xuICBtaW4td2lkdGg6IGNhbGMoMTAwJSAtIDFweCk7XG4gIGJvcmRlci1yYWRpdXM6IDBlbSAwZW0gMC40cmVtIDAuNHJlbTtcbiAgYmFja2dyb3VuZDogI0ZGRkZGRjtcbiAgbWFyZ2luOiAwZW0gMHB4IDBweDtcbiAgYm94LXNoYWRvdzogMHB4IDFweCAzcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4wOCk7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW4gIWltcG9ydGFudDtcbn1cbi8qIE1lbnUgSXRlbXMgKi9cbi51aS5tZW51IC51aS5kcm9wZG93biAubWVudSA+IC5pdGVtIHtcbiAgbWFyZ2luOiAwO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBmb250LXNpemU6IDFlbSAhaW1wb3J0YW50O1xuICBwYWRkaW5nOiAwLjhlbSAxLjFlbSAhaW1wb3J0YW50O1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICBjb2xvcjogIzMzMzMzMyAhaW1wb3J0YW50O1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZSAhaW1wb3J0YW50O1xuICBmb250LXdlaWdodDogbm9ybWFsICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgdHJhbnNpdGlvbjogbm9uZSAhaW1wb3J0YW50O1xufVxuLnVpLm1lbnUgLnVpLmRyb3Bkb3duIC5tZW51ID4gLml0ZW06aG92ZXIge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMDUpICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuOTUpICFpbXBvcnRhbnQ7XG59XG4udWkubWVudSAudWkuZHJvcGRvd24gLm1lbnUgPiAuc2VsZWN0ZWQuaXRlbSB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4wNSkgIWltcG9ydGFudDtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC45NSkgIWltcG9ydGFudDtcbn1cbi51aS5tZW51IC51aS5kcm9wZG93biAubWVudSA+IC5hY3RpdmUuaXRlbSB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4wMykgIWltcG9ydGFudDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQgIWltcG9ydGFudDtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC45NSkgIWltcG9ydGFudDtcbn1cbi51aS5tZW51IC51aS5kcm9wZG93bi5pdGVtIC5tZW51IC5pdGVtOm5vdCguZmlsdGVyZWQpIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG4udWkubWVudSAudWkuZHJvcGRvd24gLm1lbnUgPiAuaXRlbSAuaWNvbjpub3QoLmRyb3Bkb3duKSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZm9udC1zaXplOiAxZW0gIWltcG9ydGFudDtcbiAgZmxvYXQ6IG5vbmU7XG4gIG1hcmdpbjogMGVtIDAuNzVlbSAwZW0gMGVtO1xufVxuLyogU2Vjb25kYXJ5ICovXG4udWkuc2Vjb25kYXJ5Lm1lbnUgLmRyb3Bkb3duLml0ZW0gPiAubWVudSxcbi51aS50ZXh0Lm1lbnUgLmRyb3Bkb3duLml0ZW0gPiAubWVudSB7XG4gIGJvcmRlci1yYWRpdXM6IDAuNHJlbTtcbiAgbWFyZ2luLXRvcDogMC41ZW07XG59XG4vKiBQb2ludGluZyAqL1xuLnVpLm1lbnUgLnBvaW50aW5nLmRyb3Bkb3duLml0ZW0gLm1lbnUge1xuICBtYXJnaW4tdG9wOiAwLjc1ZW07XG59XG4vKiBJbnZlcnRlZCAqL1xuLnVpLmludmVydGVkLm1lbnUgLnNlYXJjaC5kcm9wZG93bi5pdGVtID4gLnNlYXJjaCxcbi51aS5pbnZlcnRlZC5tZW51IC5zZWFyY2guZHJvcGRvd24uaXRlbSA+IC50ZXh0IHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45KTtcbn1cbi8qIFZlcnRpY2FsICovXG4udWkudmVydGljYWwubWVudSAuZHJvcGRvd24uaXRlbSA+IC5pY29uIHtcbiAgZmxvYXQ6IHJpZ2h0O1xuICBjb250ZW50OiBcIlxcZjBkYVwiO1xuICBtYXJnaW4tbGVmdDogMWVtO1xufVxuLnVpLnZlcnRpY2FsLm1lbnUgLmRyb3Bkb3duLml0ZW0gLm1lbnUge1xuICBsZWZ0OiAxMDAlO1xuICBtaW4td2lkdGg6IDA7XG4gIG1hcmdpbjogMGVtIDBlbSAwZW0gMGVtO1xuICBib3gtc2hhZG93OiAwIDFweCAzcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4wOCk7XG4gIGJvcmRlci1yYWRpdXM6IDBlbSAwLjRyZW0gMC40cmVtIDAuNHJlbTtcbn1cbi51aS52ZXJ0aWNhbC5tZW51IC5kcm9wZG93bi5pdGVtLnVwd2FyZCAubWVudSB7XG4gIGJvdHRvbTogMDtcbn1cbi51aS52ZXJ0aWNhbC5tZW51IC5kcm9wZG93bi5pdGVtOm5vdCgudXB3YXJkKSAubWVudSB7XG4gIHRvcDogMDtcbn1cbi51aS52ZXJ0aWNhbC5tZW51IC5hY3RpdmUuZHJvcGRvd24uaXRlbSB7XG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwZW07XG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwZW07XG59XG4udWkudmVydGljYWwubWVudSAuZHJvcGRvd24uYWN0aXZlLml0ZW0ge1xuICBib3gtc2hhZG93OiBub25lO1xufVxuLyogRXZlbmx5IERpdmlkZWQgKi9cbi51aS5pdGVtLm1lbnUgLmRyb3Bkb3duIC5tZW51IC5pdGVtIHtcbiAgd2lkdGg6IDEwMCU7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIExhYmVsc1xuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5tZW51IC5pdGVtID4gLmxhYmVsIHtcbiAgYmFja2dyb3VuZDogIzk5OTk5OTtcbiAgY29sb3I6ICNmZmZmZmY7XG4gIG1hcmdpbi1sZWZ0OiAxZW07XG4gIHBhZGRpbmc6IDAuM2VtIDAuOGVtO1xufVxuLnVpLnZlcnRpY2FsLm1lbnUgLml0ZW0gPiAubGFiZWwge1xuICBiYWNrZ3JvdW5kOiAjOTk5OTk5O1xuICBjb2xvcjogI2ZmZmZmZjtcbiAgbWFyZ2luLXRvcDogLTAuMTVlbTtcbiAgbWFyZ2luLWJvdHRvbTogLTAuMTVlbTtcbiAgcGFkZGluZzogMC4zZW0gMC44ZW07XG59XG4udWkubWVudSAuaXRlbSA+IC5mbG9hdGluZy5sYWJlbCB7XG4gIHBhZGRpbmc6IDAuM2VtIDAuOGVtO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBJbWFnZXNcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkubWVudSAuaXRlbSA+IGltZzpub3QoLnVpKSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgbWFyZ2luOiAtMC4zZW0gMGVtO1xuICB3aWR0aDogMi41ZW07XG59XG4udWkudmVydGljYWwubWVudSAuaXRlbSA+IGltZzpub3QoLnVpKTpvbmx5LWNoaWxkIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgd2lkdGg6IGF1dG87XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgIENvdXBsaW5nXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgICBTaWRlYmFyXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2hvdyB2ZXJ0aWNhbCBkaXZpZGVycyBiZWxvdyBsYXN0ICovXG4udWkudmVydGljYWwuc2lkZWJhci5tZW51ID4gLml0ZW06Zmlyc3QtY2hpbGQ6YmVmb3JlIHtcbiAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbn1cbi51aS52ZXJ0aWNhbC5zaWRlYmFyLm1lbnUgPiAuaXRlbTo6YmVmb3JlIHtcbiAgdG9wOiBhdXRvO1xuICBib3R0b206IDBweDtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBDb250YWluZXJcbi0tLS0tLS0tLS0tLS0tLSovXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC51aS5tZW51ID4gLnVpLmNvbnRhaW5lciB7XG4gICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgICBtYXJnaW4tbGVmdDogMGVtICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luLXJpZ2h0OiAwZW0gIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NjhweCkge1xuICAudWkubWVudTpub3QoLnNlY29uZGFyeSk6bm90KC50ZXh0KTpub3QoLnRhYnVsYXIpOm5vdCguYm9yZGVybGVzcykgPiAuY29udGFpbmVyID4gLml0ZW06bm90KC5yaWdodCk6bm90KC5ib3JkZXJsZXNzKTpmaXJzdC1jaGlsZCB7XG4gICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCByZ2JhKDM0LCAzNiwgMzgsIDAuMSk7XG4gIH1cbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkubGluay5tZW51IC5pdGVtOmhvdmVyLFxuLnVpLm1lbnUgLmRyb3Bkb3duLml0ZW06aG92ZXIsXG4udWkubWVudSAubGluay5pdGVtOmhvdmVyLFxuLnVpLm1lbnUgYS5pdGVtOmhvdmVyIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMDMpO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjk1KTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgUHJlc3NlZFxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5saW5rLm1lbnUgLml0ZW06YWN0aXZlLFxuLnVpLm1lbnUgLmxpbmsuaXRlbTphY3RpdmUsXG4udWkubWVudSBhLml0ZW06YWN0aXZlIHtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjAzKTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC45NSk7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5tZW51IC5hY3RpdmUuaXRlbSB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4wNSk7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuOTUpO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBib3gtc2hhZG93OiBub25lO1xufVxuLnVpLm1lbnUgLmFjdGl2ZS5pdGVtID4gaS5pY29uIHtcbiAgb3BhY2l0eTogMTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgQWN0aXZlIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLm1lbnUgLmFjdGl2ZS5pdGVtOmhvdmVyLFxuLnVpLnZlcnRpY2FsLm1lbnUgLmFjdGl2ZS5pdGVtOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjA1KTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC45NSk7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLm1lbnUgLml0ZW0uZGlzYWJsZWQsXG4udWkubWVudSAuaXRlbS5kaXNhYmxlZDpob3ZlciB7XG4gIGN1cnNvcjogZGVmYXVsdDtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgY29sb3I6IHJnYmEoNDAsIDQwLCA0MCwgMC4zKTtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgVHlwZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuRmxvYXRlZCBNZW51IC8gSXRlbVxuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMZWZ0IEZsb2F0ZWQgKi9cbi51aS5tZW51Om5vdCgudmVydGljYWwpIC5sZWZ0Lml0ZW0sXG4udWkubWVudTpub3QoLnZlcnRpY2FsKSAubGVmdC5tZW51IHtcbiAgZGlzcGxheTogZmxleDtcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG59XG4vKiBSaWdodCBGbG9hdGVkICovXG4udWkubWVudTpub3QoLnZlcnRpY2FsKSAucmlnaHQuaXRlbSxcbi51aS5tZW51Om5vdCgudmVydGljYWwpIC5yaWdodC5tZW51IHtcbiAgZGlzcGxheTogZmxleDtcbiAgbWFyZ2luLWxlZnQ6IGF1dG8gIWltcG9ydGFudDtcbn1cbi8qIFN3YXBwZWQgQm9yZGVycyAqL1xuLnVpLm1lbnUgLnJpZ2h0Lml0ZW06OmJlZm9yZSxcbi51aS5tZW51IC5yaWdodC5tZW51ID4gLml0ZW06OmJlZm9yZSB7XG4gIHJpZ2h0OiBhdXRvO1xuICBsZWZ0OiAwO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgIFZlcnRpY2FsXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLnZlcnRpY2FsLm1lbnUge1xuICBkaXNwbGF5OiBibG9jaztcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYmFja2dyb3VuZDogI0ZGRkZGRjtcbiAgYm94LXNoYWRvdzogMHB4IDFweCAycHggMCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpO1xufVxuLyotLS0gSXRlbSAtLS0qL1xuLnVpLnZlcnRpY2FsLm1lbnUgLml0ZW0ge1xuICBkaXNwbGF5OiBibG9jaztcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgYm9yZGVyLXRvcDogbm9uZTtcbiAgYm9yZGVyLXJpZ2h0OiBub25lO1xufVxuLnVpLnZlcnRpY2FsLm1lbnUgPiAuaXRlbTpmaXJzdC1jaGlsZCB7XG4gIGJvcmRlci1yYWRpdXM6IDAuNHJlbSAwLjRyZW0gMHB4IDBweDtcbn1cbi51aS52ZXJ0aWNhbC5tZW51ID4gLml0ZW06bGFzdC1jaGlsZCB7XG4gIGJvcmRlci1yYWRpdXM6IDBweCAwcHggMC40cmVtIDAuNHJlbTtcbn1cbi8qLS0tIExhYmVsIC0tLSovXG4udWkudmVydGljYWwubWVudSAuaXRlbSA+IC5sYWJlbCB7XG4gIGZsb2F0OiByaWdodDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuLyotLS0gSWNvbiAtLS0qL1xuLnVpLnZlcnRpY2FsLm1lbnUgLml0ZW0gPiBpLmljb24ge1xuICB3aWR0aDogMS4xOGVtO1xuICBmbG9hdDogcmlnaHQ7XG4gIG1hcmdpbjogMGVtIDBlbSAwZW0gMC41ZW07XG59XG4udWkudmVydGljYWwubWVudSAuaXRlbSA+IC5sYWJlbCArIGkuaWNvbiB7XG4gIGZsb2F0OiBub25lO1xuICBtYXJnaW46IDBlbSAwLjVlbSAwZW0gMGVtO1xufVxuLyotLS0gQm9yZGVyIC0tLSovXG4udWkudmVydGljYWwubWVudSAuaXRlbTpiZWZvcmUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGNvbnRlbnQ6ICcnO1xuICB0b3A6IDAlO1xuICBsZWZ0OiAwcHg7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDFweDtcbiAgYmFja2dyb3VuZDogcmdiYSgzNCwgMzYsIDM4LCAwLjEpO1xufVxuLnVpLnZlcnRpY2FsLm1lbnUgLml0ZW06Zmlyc3QtY2hpbGQ6YmVmb3JlIHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xufVxuLyotLS0gU3ViIE1lbnUgLS0tKi9cbi51aS52ZXJ0aWNhbC5tZW51IC5pdGVtID4gLm1lbnUge1xuICBtYXJnaW46IDAuNWVtIC0xLjFlbSAwZW07XG59XG4udWkudmVydGljYWwubWVudSAubWVudSAuaXRlbSB7XG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIHBhZGRpbmc6IDAuNWVtIDEuMjgzMzMzMzNlbTtcbiAgZm9udC1zaXplOiAwLjllbTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC41KTtcbn1cbi51aS52ZXJ0aWNhbC5tZW51IC5pdGVtIC5tZW51IGEuaXRlbTpob3Zlcixcbi51aS52ZXJ0aWNhbC5tZW51IC5pdGVtIC5tZW51IC5saW5rLml0ZW06aG92ZXIge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg1KTtcbn1cbi51aS52ZXJ0aWNhbC5tZW51IC5tZW51IC5pdGVtOmJlZm9yZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4vKiBWZXJ0aWNhbCBBY3RpdmUgKi9cbi51aS52ZXJ0aWNhbC5tZW51IC5hY3RpdmUuaXRlbSB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4wNSk7XG4gIGJvcmRlci1yYWRpdXM6IDBlbTtcbiAgYm94LXNoYWRvdzogbm9uZTtcbn1cbi51aS52ZXJ0aWNhbC5tZW51ID4gLmFjdGl2ZS5pdGVtOmZpcnN0LWNoaWxkIHtcbiAgYm9yZGVyLXJhZGl1czogMC40cmVtIDAuNHJlbSAwZW0gMGVtO1xufVxuLnVpLnZlcnRpY2FsLm1lbnUgPiAuYWN0aXZlLml0ZW06bGFzdC1jaGlsZCB7XG4gIGJvcmRlci1yYWRpdXM6IDBlbSAwZW0gMC40cmVtIDAuNHJlbTtcbn1cbi51aS52ZXJ0aWNhbC5tZW51ID4gLmFjdGl2ZS5pdGVtOm9ubHktY2hpbGQge1xuICBib3JkZXItcmFkaXVzOiAwLjRyZW07XG59XG4udWkudmVydGljYWwubWVudSAuYWN0aXZlLml0ZW0gLm1lbnUgLmFjdGl2ZS5pdGVtIHtcbiAgYm9yZGVyLWxlZnQ6IG5vbmU7XG59XG4udWkudmVydGljYWwubWVudSAuaXRlbSAubWVudSAuYWN0aXZlLml0ZW0ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuOTUpO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBUYWJ1bGFyXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLnRhYnVsYXIubWVudSB7XG4gIGJvcmRlci1yYWRpdXM6IDBlbTtcbiAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICBib3JkZXI6IG5vbmU7XG4gIGJhY2tncm91bmQ6IG5vbmUgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjRDRENEQ1O1xufVxuLnVpLnRhYnVsYXIuZmx1aWQubWVudSB7XG4gIHdpZHRoOiBjYWxjKDEwMCUgKyAycHgpICFpbXBvcnRhbnQ7XG59XG4udWkudGFidWxhci5tZW51IC5pdGVtIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1ib3R0b206IG5vbmU7XG4gIGJvcmRlci1sZWZ0OiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1yaWdodDogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItdG9wOiAycHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIHBhZGRpbmc6IDAuOWVtIDEuNGVtO1xuICBjb2xvcjogIzMzMzMzMztcbn1cbi51aS50YWJ1bGFyLm1lbnUgLml0ZW06YmVmb3JlIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi8qIEhvdmVyICovXG4udWkudGFidWxhci5tZW51IC5pdGVtOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuOCk7XG59XG4vKiBBY3RpdmUgKi9cbi51aS50YWJ1bGFyLm1lbnUgLmFjdGl2ZS5pdGVtIHtcbiAgYmFja2dyb3VuZDogbm9uZSAjZmZmZmZmO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjk1KTtcbiAgYm9yZGVyLXRvcC13aWR0aDogMXB4O1xuICBib3JkZXItY29sb3I6ICNENEQ0RDU7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBtYXJnaW4tYm90dG9tOiAtMXB4O1xuICBib3gtc2hhZG93OiBub25lO1xuICBib3JkZXItcmFkaXVzOiAwLjRyZW0gMC40cmVtIDBweCAwcHggIWltcG9ydGFudDtcbn1cbi8qIENvdXBsaW5nIHdpdGggc2VnbWVudCBmb3IgYXR0YWNobWVudCAqL1xuLnVpLnRhYnVsYXIubWVudSArIC5hdHRhY2hlZDpub3QoLnRvcCkuc2VnbWVudCxcbi51aS50YWJ1bGFyLm1lbnUgKyAuYXR0YWNoZWQ6bm90KC50b3ApLnNlZ21lbnQgKyAuYXR0YWNoZWQ6bm90KC50b3ApLnNlZ21lbnQge1xuICBib3JkZXItdG9wOiBub25lO1xuICBtYXJnaW4tbGVmdDogMHB4O1xuICBtYXJnaW4tdG9wOiAwcHg7XG4gIG1hcmdpbi1yaWdodDogMHB4O1xuICB3aWR0aDogMTAwJTtcbn1cbi50b3AuYXR0YWNoZWQuc2VnbWVudCArIC51aS5ib3R0b20udGFidWxhci5tZW51IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogY2FsYygxMDAlICsgMnB4KTtcbiAgbGVmdDogLTFweDtcbn1cbi8qIEJvdHRvbSBWZXJ0aWNhbCBUYWJ1bGFyICovXG4udWkuYm90dG9tLnRhYnVsYXIubWVudSB7XG4gIGJhY2tncm91bmQ6IG5vbmUgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDBlbTtcbiAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICBib3JkZXItYm90dG9tOiBub25lO1xuICBib3JkZXItdG9wOiAxcHggc29saWQgI0Q0RDRENTtcbn1cbi51aS5ib3R0b20udGFidWxhci5tZW51IC5pdGVtIHtcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXRvcDogbm9uZTtcbn1cbi51aS5ib3R0b20udGFidWxhci5tZW51IC5hY3RpdmUuaXRlbSB7XG4gIGJhY2tncm91bmQ6IG5vbmUgI2ZmZmZmZjtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC45NSk7XG4gIGJvcmRlci1jb2xvcjogI0Q0RDRENTtcbiAgbWFyZ2luOiAtMXB4IDBweCAwcHggMHB4O1xuICBib3JkZXItcmFkaXVzOiAwcHggMHB4IDAuNHJlbSAwLjRyZW0gIWltcG9ydGFudDtcbn1cbi8qIFZlcnRpY2FsIFRhYnVsYXIgKExlZnQpICovXG4udWkudmVydGljYWwudGFidWxhci5tZW51IHtcbiAgYmFja2dyb3VuZDogbm9uZSB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXJhZGl1czogMGVtO1xuICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1ib3R0b206IG5vbmU7XG4gIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICNENEQ0RDU7XG59XG4udWkudmVydGljYWwudGFidWxhci5tZW51IC5pdGVtIHtcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItdG9wOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1yaWdodDogbm9uZTtcbn1cbi51aS52ZXJ0aWNhbC50YWJ1bGFyLm1lbnUgLmFjdGl2ZS5pdGVtIHtcbiAgYmFja2dyb3VuZDogbm9uZSAjZmZmZmZmO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjk1KTtcbiAgYm9yZGVyLWNvbG9yOiAjRDRENEQ1O1xuICBtYXJnaW46IDBweCAtMXB4IDBweCAwcHg7XG4gIGJvcmRlci1yYWRpdXM6IDAuNHJlbSAwcHggMHB4IDAuNHJlbSAhaW1wb3J0YW50O1xufVxuLyogVmVydGljYWwgUmlnaHQgVGFidWxhciAqL1xuLnVpLnZlcnRpY2FsLnJpZ2h0LnRhYnVsYXIubWVudSB7XG4gIGJhY2tncm91bmQ6IG5vbmUgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDBlbTtcbiAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICBib3JkZXItYm90dG9tOiBub25lO1xuICBib3JkZXItcmlnaHQ6IG5vbmU7XG4gIGJvcmRlci1sZWZ0OiAxcHggc29saWQgI0Q0RDRENTtcbn1cbi51aS52ZXJ0aWNhbC5yaWdodC50YWJ1bGFyLm1lbnUgLml0ZW0ge1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItdG9wOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1sZWZ0OiBub25lO1xufVxuLnVpLnZlcnRpY2FsLnJpZ2h0LnRhYnVsYXIubWVudSAuYWN0aXZlLml0ZW0ge1xuICBiYWNrZ3JvdW5kOiBub25lICNmZmZmZmY7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuOTUpO1xuICBib3JkZXItY29sb3I6ICNENEQ0RDU7XG4gIG1hcmdpbjogMHB4IDBweCAwcHggLTFweDtcbiAgYm9yZGVyLXJhZGl1czogMHB4IDAuNHJlbSAwLjRyZW0gMHB4ICFpbXBvcnRhbnQ7XG59XG4vKiBEcm9wZG93biAqL1xuLnVpLnRhYnVsYXIubWVudSAuYWN0aXZlLmRyb3Bkb3duLml0ZW0ge1xuICBtYXJnaW4tYm90dG9tOiAwcHg7XG4gIGJvcmRlci1sZWZ0OiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1yaWdodDogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItdG9wOiAycHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1ib3R0b206IG5vbmU7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICBQYWdpbmF0aW9uXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLnBhZ2luYXRpb24ubWVudSB7XG4gIG1hcmdpbjogMGVtO1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cbi51aS5wYWdpbmF0aW9uLm1lbnUgLml0ZW06bGFzdC1jaGlsZCB7XG4gIGJvcmRlci1yYWRpdXM6IDBlbSAwLjRyZW0gMC40cmVtIDBlbTtcbn1cbi51aS5jb21wYWN0Lm1lbnUgLml0ZW06bGFzdC1jaGlsZCB7XG4gIGJvcmRlci1yYWRpdXM6IDBlbSAwLjRyZW0gMC40cmVtIDBlbTtcbn1cbi51aS5wYWdpbmF0aW9uLm1lbnUgLml0ZW06bGFzdC1jaGlsZDpiZWZvcmUge1xuICBkaXNwbGF5OiBub25lO1xufVxuLnVpLnBhZ2luYXRpb24ubWVudSAuaXRlbSB7XG4gIG1pbi13aWR0aDogM2VtO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG4udWkucGFnaW5hdGlvbi5tZW51IC5pY29uLml0ZW0gaS5pY29uIHtcbiAgdmVydGljYWwtYWxpZ246IHRvcDtcbn1cbi8qIEFjdGl2ZSAqL1xuLnVpLnBhZ2luYXRpb24ubWVudSAuYWN0aXZlLml0ZW0ge1xuICBib3JkZXItdG9wOiBub25lO1xuICBwYWRkaW5nLXRvcDogMC45ZW07XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4wNSk7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuOTUpO1xuICBib3gtc2hhZG93OiBub25lO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgU2Vjb25kYXJ5XG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLnNlY29uZGFyeS5tZW51IHtcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgbWFyZ2luLWxlZnQ6IC0wLjVlbTtcbiAgbWFyZ2luLXJpZ2h0OiAtMC41ZW07XG4gIGJvcmRlci1yYWRpdXM6IDBlbTtcbiAgYm9yZGVyOiBub25lO1xuICBib3gtc2hhZG93OiBub25lO1xufVxuLyogSXRlbSAqL1xuLnVpLnNlY29uZGFyeS5tZW51IC5pdGVtIHtcbiAgYWxpZ24tc2VsZjogY2VudGVyO1xuICBib3gtc2hhZG93OiBub25lO1xuICBib3JkZXI6IG5vbmU7XG4gIHBhZGRpbmc6IDAuOGVtIDAuOWVtO1xuICBtYXJnaW46IDBlbSAwLjVlbTtcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgdHJhbnNpdGlvbjogY29sb3IgMC4xcyBlYXNlO1xuICBib3JkZXItcmFkaXVzOiAwLjRyZW07XG59XG4vKiBObyBEaXZpZGVyICovXG4udWkuc2Vjb25kYXJ5Lm1lbnUgLml0ZW06YmVmb3JlIHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xufVxuLyogSGVhZGVyICovXG4udWkuc2Vjb25kYXJ5Lm1lbnUgLmhlYWRlci5pdGVtIHtcbiAgYm9yZGVyLXJhZGl1czogMGVtO1xuICBib3JkZXItcmlnaHQ6IG5vbmU7XG4gIGJhY2tncm91bmQ6IG5vbmUgdHJhbnNwYXJlbnQ7XG59XG4vKiBJbWFnZSAqL1xuLnVpLnNlY29uZGFyeS5tZW51IC5pdGVtID4gaW1nOm5vdCgudWkpIHtcbiAgbWFyZ2luOiAwZW07XG59XG4vKiBIb3ZlciAqL1xuLnVpLnNlY29uZGFyeS5tZW51IC5kcm9wZG93bi5pdGVtOmhvdmVyLFxuLnVpLnNlY29uZGFyeS5tZW51IC5saW5rLml0ZW06aG92ZXIsXG4udWkuc2Vjb25kYXJ5Lm1lbnUgYS5pdGVtOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjA1KTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC45NSk7XG59XG4vKiBBY3RpdmUgKi9cbi51aS5zZWNvbmRhcnkubWVudSAuYWN0aXZlLml0ZW0ge1xuICBib3gtc2hhZG93OiBub25lO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMDUpO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjk1KTtcbiAgYm9yZGVyLXJhZGl1czogMC40cmVtO1xufVxuLyogQWN0aXZlIEhvdmVyICovXG4udWkuc2Vjb25kYXJ5Lm1lbnUgLmFjdGl2ZS5pdGVtOmhvdmVyIHtcbiAgYm94LXNoYWRvdzogbm9uZTtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjA1KTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC45NSk7XG59XG4vKiBJbnZlcnRlZCAqL1xuLnVpLnNlY29uZGFyeS5pbnZlcnRlZC5tZW51IC5saW5rLml0ZW0sXG4udWkuc2Vjb25kYXJ5LmludmVydGVkLm1lbnUgYS5pdGVtIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KSAhaW1wb3J0YW50O1xufVxuLnVpLnNlY29uZGFyeS5pbnZlcnRlZC5tZW51IC5kcm9wZG93bi5pdGVtOmhvdmVyLFxuLnVpLnNlY29uZGFyeS5pbnZlcnRlZC5tZW51IC5saW5rLml0ZW06aG92ZXIsXG4udWkuc2Vjb25kYXJ5LmludmVydGVkLm1lbnUgYS5pdGVtOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA4KTtcbiAgY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcbn1cbi51aS5zZWNvbmRhcnkuaW52ZXJ0ZWQubWVudSAuYWN0aXZlLml0ZW0ge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpO1xuICBjb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xufVxuLyogRml4IGl0ZW0gbWFyZ2lucyAqL1xuLnVpLnNlY29uZGFyeS5pdGVtLm1lbnUge1xuICBtYXJnaW4tbGVmdDogMGVtO1xuICBtYXJnaW4tcmlnaHQ6IDBlbTtcbn1cbi51aS5zZWNvbmRhcnkuaXRlbS5tZW51IC5pdGVtOmxhc3QtY2hpbGQge1xuICBtYXJnaW4tcmlnaHQ6IDBlbTtcbn1cbi51aS5zZWNvbmRhcnkuYXR0YWNoZWQubWVudSB7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG59XG4vKiBTdWIgTWVudSAqL1xuLnVpLnZlcnRpY2FsLnNlY29uZGFyeS5tZW51IC5pdGVtOm5vdCguZHJvcGRvd24pID4gLm1lbnUge1xuICBtYXJnaW46IDBlbSAtMC45ZW07XG59XG4udWkudmVydGljYWwuc2Vjb25kYXJ5Lm1lbnUgLml0ZW06bm90KC5kcm9wZG93bikgPiAubWVudSA+IC5pdGVtIHtcbiAgbWFyZ2luOiAwZW07XG4gIHBhZGRpbmc6IDAuN2VtIDEuMjgzMzMzMzNlbTtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICBTZWNvbmRhcnkgVmVydGljYWxcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5zZWNvbmRhcnkudmVydGljYWwubWVudSA+IC5pdGVtIHtcbiAgYm9yZGVyOiBub25lO1xuICBtYXJnaW46IDBlbSAwZW0gMC41ZW07XG4gIGJvcmRlci1yYWRpdXM6IDAuNHJlbSAhaW1wb3J0YW50O1xufVxuLnVpLnNlY29uZGFyeS52ZXJ0aWNhbC5tZW51ID4gLmhlYWRlci5pdGVtIHtcbiAgYm9yZGVyLXJhZGl1czogMGVtO1xufVxuLyogU3ViIE1lbnUgKi9cbi51aS52ZXJ0aWNhbC5zZWNvbmRhcnkubWVudSAuaXRlbSA+IC5tZW51IC5pdGVtIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG4vKiBJbnZlcnRlZCAqL1xuLnVpLnNlY29uZGFyeS5pbnZlcnRlZC5tZW51IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgU2Vjb25kYXJ5IFBvaW50aW5nXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkuc2Vjb25kYXJ5LnBvaW50aW5nLm1lbnUge1xuICBtYXJnaW4tbGVmdDogMGVtO1xuICBtYXJnaW4tcmlnaHQ6IDBlbTtcbiAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkIHJnYmEoMzQsIDM2LCAzOCwgMC4xNSk7XG59XG4udWkuc2Vjb25kYXJ5LnBvaW50aW5nLm1lbnUgLml0ZW0ge1xuICBib3JkZXItYm90dG9tLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLWJvdHRvbS1zdHlsZTogc29saWQ7XG4gIGJvcmRlci1yYWRpdXM6IDBlbTtcbiAgYWxpZ24tc2VsZjogZmxleC1lbmQ7XG4gIG1hcmdpbjogMGVtIDBlbSAtMnB4O1xuICBwYWRkaW5nOiAwLjllbSAxLjFlbTtcbiAgYm9yZGVyLWJvdHRvbS13aWR0aDogMnB4O1xuICB0cmFuc2l0aW9uOiBjb2xvciAwLjFzIGVhc2U7XG59XG4vKiBJdGVtIFR5cGVzICovXG4udWkuc2Vjb25kYXJ5LnBvaW50aW5nLm1lbnUgLmhlYWRlci5pdGVtIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44NSkgIWltcG9ydGFudDtcbn1cbi51aS5zZWNvbmRhcnkucG9pbnRpbmcubWVudSAudGV4dC5pdGVtIHtcbiAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xufVxuLnVpLnNlY29uZGFyeS5wb2ludGluZy5tZW51IC5pdGVtOmFmdGVyIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi8qIEhvdmVyICovXG4udWkuc2Vjb25kYXJ5LnBvaW50aW5nLm1lbnUgLmRyb3Bkb3duLml0ZW06aG92ZXIsXG4udWkuc2Vjb25kYXJ5LnBvaW50aW5nLm1lbnUgLmxpbmsuaXRlbTpob3Zlcixcbi51aS5zZWNvbmRhcnkucG9pbnRpbmcubWVudSBhLml0ZW06aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgY29sb3I6ICMzMzMzMzM7XG59XG4vKiBQcmVzc2VkICovXG4udWkuc2Vjb25kYXJ5LnBvaW50aW5nLm1lbnUgLmRyb3Bkb3duLml0ZW06YWN0aXZlLFxuLnVpLnNlY29uZGFyeS5wb2ludGluZy5tZW51IC5saW5rLml0ZW06YWN0aXZlLFxuLnVpLnNlY29uZGFyeS5wb2ludGluZy5tZW51IGEuaXRlbTphY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpO1xufVxuLyogQWN0aXZlICovXG4udWkuc2Vjb25kYXJ5LnBvaW50aW5nLm1lbnUgLmFjdGl2ZS5pdGVtIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG4gIGJvcmRlci1jb2xvcjogIzAwMDAwMDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuOTUpO1xufVxuLyogQWN0aXZlIEhvdmVyICovXG4udWkuc2Vjb25kYXJ5LnBvaW50aW5nLm1lbnUgLmFjdGl2ZS5pdGVtOmhvdmVyIHtcbiAgYm9yZGVyLWNvbG9yOiAjMDAwMDAwO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjk1KTtcbn1cbi8qIEFjdGl2ZSBEcm9wZG93biAqL1xuLnVpLnNlY29uZGFyeS5wb2ludGluZy5tZW51IC5hY3RpdmUuZHJvcGRvd24uaXRlbSB7XG4gIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG4vKiBWZXJ0aWNhbCBQb2ludGluZyAqL1xuLnVpLnNlY29uZGFyeS52ZXJ0aWNhbC5wb2ludGluZy5tZW51IHtcbiAgYm9yZGVyLWJvdHRvbS13aWR0aDogMHB4O1xuICBib3JkZXItcmlnaHQtd2lkdGg6IDJweDtcbiAgYm9yZGVyLXJpZ2h0LXN0eWxlOiBzb2xpZDtcbiAgYm9yZGVyLXJpZ2h0LWNvbG9yOiByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpO1xufVxuLnVpLnNlY29uZGFyeS52ZXJ0aWNhbC5wb2ludGluZy5tZW51IC5pdGVtIHtcbiAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgYm9yZGVyLXJpZ2h0LXN0eWxlOiBzb2xpZDtcbiAgYm9yZGVyLXJpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXJhZGl1czogMGVtICFpbXBvcnRhbnQ7XG4gIG1hcmdpbjogMGVtIC0ycHggMGVtIDBlbTtcbiAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAycHg7XG59XG4vKiBWZXJ0aWNhbCBBY3RpdmUgKi9cbi51aS5zZWNvbmRhcnkudmVydGljYWwucG9pbnRpbmcubWVudSAuYWN0aXZlLml0ZW0ge1xuICBib3JkZXItY29sb3I6ICMwMDAwMDA7XG59XG4vKiBJbnZlcnRlZCAqL1xuLnVpLnNlY29uZGFyeS5pbnZlcnRlZC5wb2ludGluZy5tZW51IHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSk7XG59XG4udWkuc2Vjb25kYXJ5LmludmVydGVkLnBvaW50aW5nLm1lbnUge1xuICBib3JkZXItd2lkdGg6IDJweDtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpO1xufVxuLnVpLnNlY29uZGFyeS5pbnZlcnRlZC5wb2ludGluZy5tZW51IC5pdGVtIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45KTtcbn1cbi51aS5zZWNvbmRhcnkuaW52ZXJ0ZWQucG9pbnRpbmcubWVudSAuaGVhZGVyLml0ZW0ge1xuICBjb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xufVxuLyogSG92ZXIgKi9cbi51aS5zZWNvbmRhcnkuaW52ZXJ0ZWQucG9pbnRpbmcubWVudSAubGluay5pdGVtOmhvdmVyLFxuLnVpLnNlY29uZGFyeS5pbnZlcnRlZC5wb2ludGluZy5tZW51IGEuaXRlbTpob3ZlciB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuOTUpO1xufVxuLyogQWN0aXZlICovXG4udWkuc2Vjb25kYXJ5LmludmVydGVkLnBvaW50aW5nLm1lbnUgLmFjdGl2ZS5pdGVtIHtcbiAgYm9yZGVyLWNvbG9yOiAjZmZmZmZmO1xuICBjb2xvcjogI2ZmZmZmZjtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBUZXh0IE1lbnVcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkudGV4dC5tZW51IHtcbiAgYmFja2dyb3VuZDogbm9uZSB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXJhZGl1czogMHB4O1xuICBib3gtc2hhZG93OiBub25lO1xuICBib3JkZXI6IG5vbmU7XG4gIG1hcmdpbjogMWVtIC0wLjdlbTtcbn1cbi51aS50ZXh0Lm1lbnUgLml0ZW0ge1xuICBib3JkZXItcmFkaXVzOiAwcHg7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG4gIGFsaWduLXNlbGY6IGNlbnRlcjtcbiAgbWFyZ2luOiAwZW0gMGVtO1xuICBwYWRkaW5nOiAwLjVlbSAwLjdlbTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC42KTtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjFzIGVhc2U7XG59XG4vKiBCb3JkZXIgKi9cbi51aS50ZXh0Lm1lbnUgLml0ZW06YmVmb3JlLFxuLnVpLnRleHQubWVudSAubWVudSAuaXRlbTpiZWZvcmUge1xuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG59XG4vKiBIZWFkZXIgKi9cbi51aS50ZXh0Lm1lbnUgLmhlYWRlci5pdGVtIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIG9wYWNpdHk6IDE7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODUpO1xuICBmb250LXNpemU6IDAuOWVtO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cbi8qIEltYWdlICovXG4udWkudGV4dC5tZW51IC5pdGVtID4gaW1nOm5vdCgudWkpIHtcbiAgbWFyZ2luOiAwZW07XG59XG4vKi0tLSBmbHVpZCB0ZXh0IC0tLSovXG4udWkudGV4dC5pdGVtLm1lbnUgLml0ZW0ge1xuICBtYXJnaW46IDBlbTtcbn1cbi8qLS0tIHZlcnRpY2FsIHRleHQgLS0tKi9cbi51aS52ZXJ0aWNhbC50ZXh0Lm1lbnUge1xuICBtYXJnaW46IDFlbSAwZW07XG59XG4udWkudmVydGljYWwudGV4dC5tZW51OmZpcnN0LWNoaWxkIHtcbiAgbWFyZ2luLXRvcDogMHJlbTtcbn1cbi51aS52ZXJ0aWNhbC50ZXh0Lm1lbnU6bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1ib3R0b206IDByZW07XG59XG4udWkudmVydGljYWwudGV4dC5tZW51IC5pdGVtIHtcbiAgbWFyZ2luOiAwLjhlbSAwZW07XG4gIHBhZGRpbmctbGVmdDogMGVtO1xuICBwYWRkaW5nLXJpZ2h0OiAwZW07XG59XG4udWkudmVydGljYWwudGV4dC5tZW51IC5pdGVtID4gaS5pY29uIHtcbiAgZmxvYXQ6IG5vbmU7XG4gIG1hcmdpbjogMGVtIDAuNWVtIDBlbSAwZW07XG59XG4udWkudmVydGljYWwudGV4dC5tZW51IC5oZWFkZXIuaXRlbSB7XG4gIG1hcmdpbjogMC44ZW0gMGVtIDFlbTtcbn1cbi8qIFZlcnRpY2FsIFN1YiBNZW51ICovXG4udWkudmVydGljYWwudGV4dC5tZW51IC5pdGVtOm5vdCguZHJvcGRvd24pID4gLm1lbnUge1xuICBtYXJnaW46IDBlbTtcbn1cbi51aS52ZXJ0aWNhbC50ZXh0Lm1lbnUgLml0ZW06bm90KC5kcm9wZG93bikgPiAubWVudSA+IC5pdGVtIHtcbiAgbWFyZ2luOiAwZW07XG4gIHBhZGRpbmc6IDAuN2VtIDBlbTtcbn1cbi8qLS0tIGhvdmVyIC0tLSovXG4udWkudGV4dC5tZW51IC5pdGVtOmhvdmVyIHtcbiAgb3BhY2l0eTogMTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG4vKi0tLSBhY3RpdmUgLS0tKi9cbi51aS50ZXh0Lm1lbnUgLmFjdGl2ZS5pdGVtIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlcjogbm9uZTtcbiAgYm94LXNoYWRvdzogbm9uZTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC45NSk7XG59XG4vKi0tLSBhY3RpdmUgaG92ZXIgLS0tKi9cbi51aS50ZXh0Lm1lbnUgLmFjdGl2ZS5pdGVtOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG4vKiBEaXNhYmxlIEJhcmlhdGlvbnMgKi9cbi51aS50ZXh0LnBvaW50aW5nLm1lbnUgLmFjdGl2ZS5pdGVtOmFmdGVyIHtcbiAgYm94LXNoYWRvdzogbm9uZTtcbn1cbi51aS50ZXh0LmF0dGFjaGVkLm1lbnUge1xuICBib3gtc2hhZG93OiBub25lO1xufVxuLyogSW52ZXJ0ZWQgKi9cbi51aS5pbnZlcnRlZC50ZXh0Lm1lbnUsXG4udWkuaW52ZXJ0ZWQudGV4dC5tZW51IC5pdGVtLFxuLnVpLmludmVydGVkLnRleHQubWVudSAuaXRlbTpob3Zlcixcbi51aS5pbnZlcnRlZC50ZXh0Lm1lbnUgLmFjdGl2ZS5pdGVtIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbn1cbi8qIEZsdWlkICovXG4udWkuZmx1aWQudGV4dC5tZW51IHtcbiAgbWFyZ2luLWxlZnQ6IDBlbTtcbiAgbWFyZ2luLXJpZ2h0OiAwZW07XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgSWNvbiBPbmx5XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVmVydGljYWwgTWVudSAqL1xuLnVpLnZlcnRpY2FsLmljb24ubWVudSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgd2lkdGg6IGF1dG87XG59XG4vKiBJdGVtICovXG4udWkuaWNvbi5tZW51IC5pdGVtIHtcbiAgaGVpZ2h0OiBhdXRvO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGNvbG9yOiAjMDAwMDAwO1xufVxuLyogSWNvbiAqL1xuLnVpLmljb24ubWVudSAuaXRlbSA+IC5pY29uOm5vdCguZHJvcGRvd24pIHtcbiAgbWFyZ2luOiAwO1xuICBvcGFjaXR5OiAxO1xufVxuLyogSWNvbiBHeWxwaCAqL1xuLnVpLmljb24ubWVudSAuaWNvbjpiZWZvcmUge1xuICBvcGFjaXR5OiAxO1xufVxuLyogKHgpIEl0ZW0gSWNvbiAqL1xuLnVpLm1lbnUgLmljb24uaXRlbSA+IC5pY29uIHtcbiAgd2lkdGg6IGF1dG87XG4gIG1hcmdpbjogMGVtIGF1dG87XG59XG4vKiBWZXJ0aWNhbCBJY29uICovXG4udWkudmVydGljYWwuaWNvbi5tZW51IC5pdGVtID4gLmljb246bm90KC5kcm9wZG93bikge1xuICBkaXNwbGF5OiBibG9jaztcbiAgb3BhY2l0eTogMTtcbiAgbWFyZ2luOiAwZW0gYXV0bztcbiAgZmxvYXQ6IG5vbmU7XG59XG4vKiBJbnZlcnRlZCAqL1xuLnVpLmludmVydGVkLmljb24ubWVudSAuaXRlbSB7XG4gIGNvbG9yOiAjZmZmZmZmO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgTGFiZWxlZCBJY29uXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWVudSAqL1xuLnVpLmxhYmVsZWQuaWNvbi5tZW51IHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuLyogSXRlbSAqL1xuLnVpLmxhYmVsZWQuaWNvbi5tZW51IC5pdGVtIHtcbiAgbWluLXdpZHRoOiA2ZW07XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG59XG4vKiBJY29uICovXG4udWkubGFiZWxlZC5pY29uLm1lbnUgLml0ZW0gPiAuaWNvbjpub3QoLmRyb3Bkb3duKSB7XG4gIGhlaWdodDogMWVtO1xuICBkaXNwbGF5OiBibG9jaztcbiAgZm9udC1zaXplOiAxLjdlbSAhaW1wb3J0YW50O1xuICBtYXJnaW46IDBlbSBhdXRvIDAuNXJlbSAhaW1wb3J0YW50O1xufVxuLyogRmx1aWQgKi9cbi51aS5mbHVpZC5sYWJlbGVkLmljb24ubWVudSA+IC5pdGVtIHtcbiAgbWluLXdpZHRoOiAwZW07XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBWYXJpYXRpb25zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgIFN0YWNrYWJsZVxuLS0tLS0tLS0tLS0tLS0tKi9cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgLnVpLnN0YWNrYWJsZS5tZW51IHtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICB9XG4gIC51aS5zdGFja2FibGUubWVudSAuaXRlbSB7XG4gICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgfVxuICAudWkuc3RhY2thYmxlLm1lbnUgLml0ZW06YmVmb3JlIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgY29udGVudDogJyc7XG4gICAgdG9wOiBhdXRvO1xuICAgIGJvdHRvbTogMHB4O1xuICAgIGxlZnQ6IDBweDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDFweDtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDM0LCAzNiwgMzgsIDAuMSk7XG4gIH1cbiAgLnVpLnN0YWNrYWJsZS5tZW51IC5sZWZ0Lm1lbnUsXG4gIC51aS5zdGFja2FibGUubWVudSAubGVmdC5pdGVtIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDAgIWltcG9ydGFudDtcbiAgfVxuICAudWkuc3RhY2thYmxlLm1lbnUgLnJpZ2h0Lm1lbnUsXG4gIC51aS5zdGFja2FibGUubWVudSAucmlnaHQuaXRlbSB7XG4gICAgbWFyZ2luLWxlZnQ6IDAgIWltcG9ydGFudDtcbiAgfVxufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSBTdGFuZGFyZCBDb2xvcnMgIC0tLSovXG4udWkubWVudSAucmVkLmFjdGl2ZS5pdGVtLFxuLnVpLnJlZC5tZW51IC5hY3RpdmUuaXRlbSB7XG4gIGJvcmRlci1jb2xvcjogI2RlM2EzZSAhaW1wb3J0YW50O1xuICBjb2xvcjogI2RlM2EzZSAhaW1wb3J0YW50O1xufVxuLnVpLm1lbnUgLm9yYW5nZS5hY3RpdmUuaXRlbSxcbi51aS5vcmFuZ2UubWVudSAuYWN0aXZlLml0ZW0ge1xuICBib3JkZXItY29sb3I6ICNmZjk1MzMgIWltcG9ydGFudDtcbiAgY29sb3I6ICNmZjk1MzMgIWltcG9ydGFudDtcbn1cbi51aS5tZW51IC55ZWxsb3cuYWN0aXZlLml0ZW0sXG4udWkueWVsbG93Lm1lbnUgLmFjdGl2ZS5pdGVtIHtcbiAgYm9yZGVyLWNvbG9yOiAjRkJCRDA4ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRkJCRDA4ICFpbXBvcnRhbnQ7XG59XG4udWkubWVudSAub2xpdmUuYWN0aXZlLml0ZW0sXG4udWkub2xpdmUubWVudSAuYWN0aXZlLml0ZW0ge1xuICBib3JkZXItY29sb3I6ICNCNUNDMTggIWltcG9ydGFudDtcbiAgY29sb3I6ICNCNUNDMTggIWltcG9ydGFudDtcbn1cbi51aS5tZW51IC5ncmVlbi5hY3RpdmUuaXRlbSxcbi51aS5ncmVlbi5tZW51IC5hY3RpdmUuaXRlbSB7XG4gIGJvcmRlci1jb2xvcjogIzE5YTUzMSAhaW1wb3J0YW50O1xuICBjb2xvcjogIzE5YTUzMSAhaW1wb3J0YW50O1xufVxuLnVpLm1lbnUgLnRlYWwuYWN0aXZlLml0ZW0sXG4udWkudGVhbC5tZW51IC5hY3RpdmUuaXRlbSB7XG4gIGJvcmRlci1jb2xvcjogIzAwQjVBRCAhaW1wb3J0YW50O1xuICBjb2xvcjogIzAwQjVBRCAhaW1wb3J0YW50O1xufVxuLnVpLm1lbnUgLmJsdWUuYWN0aXZlLml0ZW0sXG4udWkuYmx1ZS5tZW51IC5hY3RpdmUuaXRlbSB7XG4gIGJvcmRlci1jb2xvcjogIzNmNTFiNSAhaW1wb3J0YW50O1xuICBjb2xvcjogIzNmNTFiNSAhaW1wb3J0YW50O1xufVxuLnVpLm1lbnUgLnZpb2xldC5hY3RpdmUuaXRlbSxcbi51aS52aW9sZXQubWVudSAuYWN0aXZlLml0ZW0ge1xuICBib3JkZXItY29sb3I6ICM2NDM1QzkgIWltcG9ydGFudDtcbiAgY29sb3I6ICM2NDM1QzkgIWltcG9ydGFudDtcbn1cbi51aS5tZW51IC5wdXJwbGUuYWN0aXZlLml0ZW0sXG4udWkucHVycGxlLm1lbnUgLmFjdGl2ZS5pdGVtIHtcbiAgYm9yZGVyLWNvbG9yOiAjQTMzM0M4ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjQTMzM0M4ICFpbXBvcnRhbnQ7XG59XG4udWkubWVudSAucGluay5hY3RpdmUuaXRlbSxcbi51aS5waW5rLm1lbnUgLmFjdGl2ZS5pdGVtIHtcbiAgYm9yZGVyLWNvbG9yOiAjRTAzOTk3ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRTAzOTk3ICFpbXBvcnRhbnQ7XG59XG4udWkubWVudSAuYnJvd24uYWN0aXZlLml0ZW0sXG4udWkuYnJvd24ubWVudSAuYWN0aXZlLml0ZW0ge1xuICBib3JkZXItY29sb3I6ICNBNTY3M0YgIWltcG9ydGFudDtcbiAgY29sb3I6ICNBNTY3M0YgIWltcG9ydGFudDtcbn1cbi51aS5tZW51IC5ncmV5LmFjdGl2ZS5pdGVtLFxuLnVpLmdyZXkubWVudSAuYWN0aXZlLml0ZW0ge1xuICBib3JkZXItY29sb3I6ICM3Njc2NzYgIWltcG9ydGFudDtcbiAgY29sb3I6ICM3Njc2NzYgIWltcG9ydGFudDtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBJbnZlcnRlZFxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5pbnZlcnRlZC5tZW51IHtcbiAgYm9yZGVyOiAwcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJhY2tncm91bmQ6ICMwMDAwMDA7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG59XG4vKiBNZW51IEl0ZW0gKi9cbi51aS5pbnZlcnRlZC5tZW51IC5pdGVtLFxuLnVpLmludmVydGVkLm1lbnUgLml0ZW0gPiBhOm5vdCgudWkpIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOSk7XG59XG4udWkuaW52ZXJ0ZWQubWVudSAuaXRlbS5tZW51IHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG59XG4vKi0tLSBCb3JkZXIgLS0tKi9cbi51aS5pbnZlcnRlZC5tZW51IC5pdGVtOmJlZm9yZSB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wOCk7XG59XG4udWkudmVydGljYWwuaW52ZXJ0ZWQubWVudSAuaXRlbTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDgpO1xufVxuLyogU3ViIE1lbnUgKi9cbi51aS52ZXJ0aWNhbC5pbnZlcnRlZC5tZW51IC5tZW51IC5pdGVtLFxuLnVpLnZlcnRpY2FsLmludmVydGVkLm1lbnUgLm1lbnUgLml0ZW0gYTpub3QoLnVpKSB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7XG59XG4vKiBIZWFkZXIgKi9cbi51aS5pbnZlcnRlZC5tZW51IC5oZWFkZXIuaXRlbSB7XG4gIG1hcmdpbjogMGVtO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgYm94LXNoYWRvdzogbm9uZTtcbn1cbi8qIERpc2FibGVkICovXG4udWkuaW52ZXJ0ZWQubWVudSAuaXRlbS5kaXNhYmxlZCxcbi51aS5pbnZlcnRlZC5tZW51IC5pdGVtLmRpc2FibGVkOmhvdmVyIHtcbiAgY29sb3I6IHJnYmEoMjI1LCAyMjUsIDIyNSwgMC4zKTtcbn1cbi8qLS0tIEhvdmVyIC0tLSovXG4udWkubGluay5pbnZlcnRlZC5tZW51IC5pdGVtOmhvdmVyLFxuLnVpLmludmVydGVkLm1lbnUgLmRyb3Bkb3duLml0ZW06aG92ZXIsXG4udWkuaW52ZXJ0ZWQubWVudSAubGluay5pdGVtOmhvdmVyLFxuLnVpLmludmVydGVkLm1lbnUgYS5pdGVtOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA4KTtcbiAgY29sb3I6ICNmZmZmZmY7XG59XG4udWkudmVydGljYWwuaW52ZXJ0ZWQubWVudSAuaXRlbSAubWVudSBhLml0ZW06aG92ZXIsXG4udWkudmVydGljYWwuaW52ZXJ0ZWQubWVudSAuaXRlbSAubWVudSAubGluay5pdGVtOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiAjZmZmZmZmO1xufVxuLyotLS0gUHJlc3NlZCAtLS0qL1xuLnVpLmludmVydGVkLm1lbnUgYS5pdGVtOmFjdGl2ZSxcbi51aS5pbnZlcnRlZC5tZW51IC5saW5rLml0ZW06YWN0aXZlIHtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA4KTtcbiAgY29sb3I6ICNmZmZmZmY7XG59XG4vKi0tLSBBY3RpdmUgLS0tKi9cbi51aS5pbnZlcnRlZC5tZW51IC5hY3RpdmUuaXRlbSB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSk7XG4gIGNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG59XG4udWkuaW52ZXJ0ZWQudmVydGljYWwubWVudSAuaXRlbSAubWVudSAuYWN0aXZlLml0ZW0ge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgY29sb3I6ICNmZmZmZmY7XG59XG4udWkuaW52ZXJ0ZWQucG9pbnRpbmcubWVudSAuYWN0aXZlLml0ZW06YWZ0ZXIge1xuICBiYWNrZ3JvdW5kOiAjM0QzRTNGICFpbXBvcnRhbnQ7XG4gIG1hcmdpbjogMGVtICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgYm9yZGVyOiBub25lICFpbXBvcnRhbnQ7XG59XG4vKi0tLSBBY3RpdmUgSG92ZXIgLS0tKi9cbi51aS5pbnZlcnRlZC5tZW51IC5hY3RpdmUuaXRlbTpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSk7XG4gIGNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG59XG4udWkuaW52ZXJ0ZWQucG9pbnRpbmcubWVudSAuYWN0aXZlLml0ZW06aG92ZXI6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kOiAjM0QzRTNGICFpbXBvcnRhbnQ7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIEZsb2F0ZWRcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuZmxvYXRlZC5tZW51IHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIG1hcmdpbjogMHJlbSAwLjVyZW0gMHJlbSAwcmVtO1xufVxuLnVpLmZsb2F0ZWQubWVudSAuaXRlbTpsYXN0LWNoaWxkOmJlZm9yZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4udWkucmlnaHQuZmxvYXRlZC5tZW51IHtcbiAgZmxvYXQ6IHJpZ2h0O1xuICBtYXJnaW46IDByZW0gMHJlbSAwcmVtIDAuNXJlbTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBJbnZlcnRlZFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFJlZCAqL1xuLnVpLmludmVydGVkLm1lbnUgLnJlZC5hY3RpdmUuaXRlbSxcbi51aS5pbnZlcnRlZC5yZWQubWVudSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkZTNhM2U7XG59XG4udWkuaW52ZXJ0ZWQucmVkLm1lbnUgLml0ZW06YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgzNCwgMzYsIDM4LCAwLjEpO1xufVxuLnVpLmludmVydGVkLnJlZC5tZW51IC5hY3RpdmUuaXRlbSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xKSAhaW1wb3J0YW50O1xufVxuLyogT3JhbmdlICovXG4udWkuaW52ZXJ0ZWQubWVudSAub3JhbmdlLmFjdGl2ZS5pdGVtLFxuLnVpLmludmVydGVkLm9yYW5nZS5tZW51IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmOTUzMztcbn1cbi51aS5pbnZlcnRlZC5vcmFuZ2UubWVudSAuaXRlbTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDM0LCAzNiwgMzgsIDAuMSk7XG59XG4udWkuaW52ZXJ0ZWQub3JhbmdlLm1lbnUgLmFjdGl2ZS5pdGVtIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjEpICFpbXBvcnRhbnQ7XG59XG4vKiBZZWxsb3cgKi9cbi51aS5pbnZlcnRlZC5tZW51IC55ZWxsb3cuYWN0aXZlLml0ZW0sXG4udWkuaW52ZXJ0ZWQueWVsbG93Lm1lbnUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkJCRDA4O1xufVxuLnVpLmludmVydGVkLnllbGxvdy5tZW51IC5pdGVtOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMzQsIDM2LCAzOCwgMC4xKTtcbn1cbi51aS5pbnZlcnRlZC55ZWxsb3cubWVudSAuYWN0aXZlLml0ZW0ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMSkgIWltcG9ydGFudDtcbn1cbi8qIE9saXZlICovXG4udWkuaW52ZXJ0ZWQubWVudSAub2xpdmUuYWN0aXZlLml0ZW0sXG4udWkuaW52ZXJ0ZWQub2xpdmUubWVudSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNCNUNDMTg7XG59XG4udWkuaW52ZXJ0ZWQub2xpdmUubWVudSAuaXRlbTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDM0LCAzNiwgMzgsIDAuMSk7XG59XG4udWkuaW52ZXJ0ZWQub2xpdmUubWVudSAuYWN0aXZlLml0ZW0ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMSkgIWltcG9ydGFudDtcbn1cbi8qIEdyZWVuICovXG4udWkuaW52ZXJ0ZWQubWVudSAuZ3JlZW4uYWN0aXZlLml0ZW0sXG4udWkuaW52ZXJ0ZWQuZ3JlZW4ubWVudSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxOWE1MzE7XG59XG4udWkuaW52ZXJ0ZWQuZ3JlZW4ubWVudSAuaXRlbTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDM0LCAzNiwgMzgsIDAuMSk7XG59XG4udWkuaW52ZXJ0ZWQuZ3JlZW4ubWVudSAuYWN0aXZlLml0ZW0ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMSkgIWltcG9ydGFudDtcbn1cbi8qIFRlYWwgKi9cbi51aS5pbnZlcnRlZC5tZW51IC50ZWFsLmFjdGl2ZS5pdGVtLFxuLnVpLmludmVydGVkLnRlYWwubWVudSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMEI1QUQ7XG59XG4udWkuaW52ZXJ0ZWQudGVhbC5tZW51IC5pdGVtOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMzQsIDM2LCAzOCwgMC4xKTtcbn1cbi51aS5pbnZlcnRlZC50ZWFsLm1lbnUgLmFjdGl2ZS5pdGVtIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjEpICFpbXBvcnRhbnQ7XG59XG4vKiBCbHVlICovXG4udWkuaW52ZXJ0ZWQubWVudSAuYmx1ZS5hY3RpdmUuaXRlbSxcbi51aS5pbnZlcnRlZC5ibHVlLm1lbnUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjM2Y1MWI1O1xufVxuLnVpLmludmVydGVkLmJsdWUubWVudSAuaXRlbTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDM0LCAzNiwgMzgsIDAuMSk7XG59XG4udWkuaW52ZXJ0ZWQuYmx1ZS5tZW51IC5hY3RpdmUuaXRlbSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xKSAhaW1wb3J0YW50O1xufVxuLyogVmlvbGV0ICovXG4udWkuaW52ZXJ0ZWQubWVudSAudmlvbGV0LmFjdGl2ZS5pdGVtLFxuLnVpLmludmVydGVkLnZpb2xldC5tZW51IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzY0MzVDOTtcbn1cbi51aS5pbnZlcnRlZC52aW9sZXQubWVudSAuaXRlbTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDM0LCAzNiwgMzgsIDAuMSk7XG59XG4udWkuaW52ZXJ0ZWQudmlvbGV0Lm1lbnUgLmFjdGl2ZS5pdGVtIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjEpICFpbXBvcnRhbnQ7XG59XG4vKiBQdXJwbGUgKi9cbi51aS5pbnZlcnRlZC5tZW51IC5wdXJwbGUuYWN0aXZlLml0ZW0sXG4udWkuaW52ZXJ0ZWQucHVycGxlLm1lbnUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjQTMzM0M4O1xufVxuLnVpLmludmVydGVkLnB1cnBsZS5tZW51IC5pdGVtOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMzQsIDM2LCAzOCwgMC4xKTtcbn1cbi51aS5pbnZlcnRlZC5wdXJwbGUubWVudSAuYWN0aXZlLml0ZW0ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMSkgIWltcG9ydGFudDtcbn1cbi8qIFBpbmsgKi9cbi51aS5pbnZlcnRlZC5tZW51IC5waW5rLmFjdGl2ZS5pdGVtLFxuLnVpLmludmVydGVkLnBpbmsubWVudSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNFMDM5OTc7XG59XG4udWkuaW52ZXJ0ZWQucGluay5tZW51IC5pdGVtOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMzQsIDM2LCAzOCwgMC4xKTtcbn1cbi51aS5pbnZlcnRlZC5waW5rLm1lbnUgLmFjdGl2ZS5pdGVtIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjEpICFpbXBvcnRhbnQ7XG59XG4vKiBCcm93biAqL1xuLnVpLmludmVydGVkLm1lbnUgLmJyb3duLmFjdGl2ZS5pdGVtLFxuLnVpLmludmVydGVkLmJyb3duLm1lbnUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjQTU2NzNGO1xufVxuLnVpLmludmVydGVkLmJyb3duLm1lbnUgLml0ZW06YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgzNCwgMzYsIDM4LCAwLjEpO1xufVxuLnVpLmludmVydGVkLmJyb3duLm1lbnUgLmFjdGl2ZS5pdGVtIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjEpICFpbXBvcnRhbnQ7XG59XG4vKiBHcmV5ICovXG4udWkuaW52ZXJ0ZWQubWVudSAuZ3JleS5hY3RpdmUuaXRlbSxcbi51aS5pbnZlcnRlZC5ncmV5Lm1lbnUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNzY3Njc2O1xufVxuLnVpLmludmVydGVkLmdyZXkubWVudSAuaXRlbTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDM0LCAzNiwgMzgsIDAuMSk7XG59XG4udWkuaW52ZXJ0ZWQuZ3JleS5tZW51IC5hY3RpdmUuaXRlbSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xKSAhaW1wb3J0YW50O1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBGaXR0ZWRcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuZml0dGVkLm1lbnUgLml0ZW0sXG4udWkuZml0dGVkLm1lbnUgLml0ZW0gLm1lbnUgLml0ZW0sXG4udWkubWVudSAuZml0dGVkLml0ZW0ge1xuICBwYWRkaW5nOiAwZW07XG59XG4udWkuaG9yaXpvbnRhbGx5LmZpdHRlZC5tZW51IC5pdGVtLFxuLnVpLmhvcml6b250YWxseS5maXR0ZWQubWVudSAuaXRlbSAubWVudSAuaXRlbSxcbi51aS5tZW51IC5ob3Jpem9udGFsbHkuZml0dGVkLml0ZW0ge1xuICBwYWRkaW5nLXRvcDogMC45ZW07XG4gIHBhZGRpbmctYm90dG9tOiAwLjllbTtcbn1cbi51aS52ZXJ0aWNhbGx5LmZpdHRlZC5tZW51IC5pdGVtLFxuLnVpLnZlcnRpY2FsbHkuZml0dGVkLm1lbnUgLml0ZW0gLm1lbnUgLml0ZW0sXG4udWkubWVudSAudmVydGljYWxseS5maXR0ZWQuaXRlbSB7XG4gIHBhZGRpbmctbGVmdDogMS4xZW07XG4gIHBhZGRpbmctcmlnaHQ6IDEuMWVtO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgQm9yZGVybGVzc1xuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5ib3JkZXJsZXNzLm1lbnUgLml0ZW06YmVmb3JlLFxuLnVpLmJvcmRlcmxlc3MubWVudSAuaXRlbSAubWVudSAuaXRlbTpiZWZvcmUsXG4udWkubWVudSAuYm9yZGVybGVzcy5pdGVtOmJlZm9yZSB7XG4gIGJhY2tncm91bmQ6IG5vbmUgIWltcG9ydGFudDtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIENvbXBhY3Rcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5jb21wYWN0Lm1lbnUge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgbWFyZ2luOiAwZW07XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG4udWkuY29tcGFjdC52ZXJ0aWNhbC5tZW51IHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuLnVpLmNvbXBhY3QubWVudSAuaXRlbTpsYXN0LWNoaWxkIHtcbiAgYm9yZGVyLXJhZGl1czogMGVtIDAuNHJlbSAwLjRyZW0gMGVtO1xufVxuLnVpLmNvbXBhY3QubWVudSAuaXRlbTpsYXN0LWNoaWxkOmJlZm9yZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4udWkuY29tcGFjdC52ZXJ0aWNhbC5tZW51IHtcbiAgd2lkdGg6IGF1dG8gIWltcG9ydGFudDtcbn1cbi51aS5jb21wYWN0LnZlcnRpY2FsLm1lbnUgLml0ZW06bGFzdC1jaGlsZDo6YmVmb3JlIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRmx1aWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5tZW51LmZsdWlkLFxuLnVpLnZlcnRpY2FsLm1lbnUuZmx1aWQge1xuICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBFdmVubHkgU2l6ZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5pdGVtLm1lbnUsXG4udWkuaXRlbS5tZW51IC5pdGVtIHtcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmctbGVmdDogMGVtICFpbXBvcnRhbnQ7XG4gIHBhZGRpbmctcmlnaHQ6IDBlbSAhaW1wb3J0YW50O1xuICBtYXJnaW4tbGVmdDogMGVtICFpbXBvcnRhbnQ7XG4gIG1hcmdpbi1yaWdodDogMGVtICFpbXBvcnRhbnQ7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG4udWkuaXRlbS5tZW51IC5pdGVtOmxhc3QtY2hpbGQ6YmVmb3JlIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi51aS5tZW51LnR3by5pdGVtIC5pdGVtIHtcbiAgd2lkdGg6IDUwJTtcbn1cbi51aS5tZW51LnRocmVlLml0ZW0gLml0ZW0ge1xuICB3aWR0aDogMzMuMzMzJTtcbn1cbi51aS5tZW51LmZvdXIuaXRlbSAuaXRlbSB7XG4gIHdpZHRoOiAyNSU7XG59XG4udWkubWVudS5maXZlLml0ZW0gLml0ZW0ge1xuICB3aWR0aDogMjAlO1xufVxuLnVpLm1lbnUuc2l4Lml0ZW0gLml0ZW0ge1xuICB3aWR0aDogMTYuNjY2JTtcbn1cbi51aS5tZW51LnNldmVuLml0ZW0gLml0ZW0ge1xuICB3aWR0aDogMTQuMjg1JTtcbn1cbi51aS5tZW51LmVpZ2h0Lml0ZW0gLml0ZW0ge1xuICB3aWR0aDogMTIuNSU7XG59XG4udWkubWVudS5uaW5lLml0ZW0gLml0ZW0ge1xuICB3aWR0aDogMTEuMTElO1xufVxuLnVpLm1lbnUudGVuLml0ZW0gLml0ZW0ge1xuICB3aWR0aDogMTAlO1xufVxuLnVpLm1lbnUuZWxldmVuLml0ZW0gLml0ZW0ge1xuICB3aWR0aDogOS4wOSU7XG59XG4udWkubWVudS50d2VsdmUuaXRlbSAuaXRlbSB7XG4gIHdpZHRoOiA4LjMzMyU7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIEZpeGVkXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLm1lbnUuZml4ZWQge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHotaW5kZXg6IDEwMTtcbiAgbWFyZ2luOiAwZW07XG4gIHdpZHRoOiAxMDAlO1xufVxuLnVpLm1lbnUuZml4ZWQsXG4udWkubWVudS5maXhlZCAuaXRlbTpmaXJzdC1jaGlsZCxcbi51aS5tZW51LmZpeGVkIC5pdGVtOmxhc3QtY2hpbGQge1xuICBib3JkZXItcmFkaXVzOiAwcHggIWltcG9ydGFudDtcbn1cbi51aS5maXhlZC5tZW51LFxuLnVpW2NsYXNzKj1cInRvcCBmaXhlZFwiXS5tZW51IHtcbiAgdG9wOiAwcHg7XG4gIGxlZnQ6IDBweDtcbiAgcmlnaHQ6IGF1dG87XG4gIGJvdHRvbTogYXV0bztcbn1cbi51aVtjbGFzcyo9XCJ0b3AgZml4ZWRcIl0ubWVudSB7XG4gIGJvcmRlci10b3A6IG5vbmU7XG4gIGJvcmRlci1sZWZ0OiBub25lO1xuICBib3JkZXItcmlnaHQ6IG5vbmU7XG59XG4udWlbY2xhc3MqPVwicmlnaHQgZml4ZWRcIl0ubWVudSB7XG4gIGJvcmRlci10b3A6IG5vbmU7XG4gIGJvcmRlci1ib3R0b206IG5vbmU7XG4gIGJvcmRlci1yaWdodDogbm9uZTtcbiAgdG9wOiAwcHg7XG4gIHJpZ2h0OiAwcHg7XG4gIGxlZnQ6IGF1dG87XG4gIGJvdHRvbTogYXV0bztcbiAgd2lkdGg6IGF1dG87XG4gIGhlaWdodDogMTAwJTtcbn1cbi51aVtjbGFzcyo9XCJib3R0b20gZml4ZWRcIl0ubWVudSB7XG4gIGJvcmRlci1ib3R0b206IG5vbmU7XG4gIGJvcmRlci1sZWZ0OiBub25lO1xuICBib3JkZXItcmlnaHQ6IG5vbmU7XG4gIGJvdHRvbTogMHB4O1xuICBsZWZ0OiAwcHg7XG4gIHRvcDogYXV0bztcbiAgcmlnaHQ6IGF1dG87XG59XG4udWlbY2xhc3MqPVwibGVmdCBmaXhlZFwiXS5tZW51IHtcbiAgYm9yZGVyLXRvcDogbm9uZTtcbiAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgYm9yZGVyLWxlZnQ6IG5vbmU7XG4gIHRvcDogMHB4O1xuICBsZWZ0OiAwcHg7XG4gIHJpZ2h0OiBhdXRvO1xuICBib3R0b206IGF1dG87XG4gIHdpZHRoOiBhdXRvO1xuICBoZWlnaHQ6IDEwMCU7XG59XG4vKiBDb3VwbGluZyB3aXRoIEdyaWQgKi9cbi51aS5maXhlZC5tZW51ICsgLnVpLmdyaWQge1xuICBwYWRkaW5nLXRvcDogMi43NXJlbTtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIFBvaW50aW5nXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkucG9pbnRpbmcubWVudSAuaXRlbTphZnRlciB7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBjb250ZW50OiAnJztcbiAgdG9wOiAxMDAlO1xuICBsZWZ0OiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKSB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSg0NWRlZyk7XG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIG1hcmdpbjogMC41cHggMGVtIDBlbTtcbiAgd2lkdGg6IDAuOGVtO1xuICBoZWlnaHQ6IDAuOGVtO1xuICBib3JkZXI6IG5vbmU7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjRDRENEQ1O1xuICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAjRDRENEQ1O1xuICB6LWluZGV4OiAyO1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMXMgZWFzZTtcbn1cbi51aS52ZXJ0aWNhbC5wb2ludGluZy5tZW51IC5pdGVtOmFmdGVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgcmlnaHQ6IDAlO1xuICBib3R0b206IGF1dG87XG4gIGxlZnQ6IGF1dG87XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCg1MCUpIHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKDQ1ZGVnKTtcbiAgbWFyZ2luOiAwZW0gLTAuNXB4IDBlbSAwZW07XG4gIGJvcmRlcjogbm9uZTtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNENEQ0RDU7XG4gIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICNENEQ0RDU7XG59XG4vKiBBY3RpdmUgKi9cbi51aS5wb2ludGluZy5tZW51IC5hY3RpdmUuaXRlbTphZnRlciB7XG4gIHZpc2liaWxpdHk6IHZpc2libGU7XG59XG4udWkucG9pbnRpbmcubWVudSAuYWN0aXZlLmRyb3Bkb3duLml0ZW06YWZ0ZXIge1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG59XG4vKiBEb24ndCBkb3VibGUgdXAgcG9pbnRlcnMgKi9cbi51aS5wb2ludGluZy5tZW51IC5kcm9wZG93bi5hY3RpdmUuaXRlbTphZnRlcixcbi51aS5wb2ludGluZy5tZW51IC5hY3RpdmUuaXRlbSAubWVudSAuYWN0aXZlLml0ZW06YWZ0ZXIge1xuICBkaXNwbGF5OiBub25lO1xufVxuLyogQ29sb3JzICovXG4udWkucG9pbnRpbmcubWVudSAuYWN0aXZlLml0ZW06aG92ZXI6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRjJGMkYyO1xufVxuLnVpLnBvaW50aW5nLm1lbnUgLmFjdGl2ZS5pdGVtOmFmdGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0YyRjJGMjtcbn1cbi51aS5wb2ludGluZy5tZW51IC5hY3RpdmUuaXRlbTpob3ZlcjphZnRlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGMkYyRjI7XG59XG4udWkudmVydGljYWwucG9pbnRpbmcubWVudSAuYWN0aXZlLml0ZW06aG92ZXI6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRjJGMkYyO1xufVxuLnVpLnZlcnRpY2FsLnBvaW50aW5nLm1lbnUgLmFjdGl2ZS5pdGVtOmFmdGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0YyRjJGMjtcbn1cbi51aS52ZXJ0aWNhbC5wb2ludGluZy5tZW51IC5tZW51IC5hY3RpdmUuaXRlbTphZnRlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgQXR0YWNoZWRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBNaWRkbGUgKi9cbi51aS5hdHRhY2hlZC5tZW51IHtcbiAgdG9wOiAwcHg7XG4gIGJvdHRvbTogMHB4O1xuICBib3JkZXItcmFkaXVzOiAwcHg7XG4gIG1hcmdpbjogMGVtIC0xcHg7XG4gIHdpZHRoOiBjYWxjKDEwMCUgKyAycHgpO1xuICBtYXgtd2lkdGg6IGNhbGMoMTAwJSArIDJweCk7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG59XG4udWkuYXR0YWNoZWQgKyAudWkuYXR0YWNoZWQubWVudTpub3QoLnRvcCkge1xuICBib3JkZXItdG9wOiBub25lO1xufVxuLyogVG9wICovXG4udWlbY2xhc3MqPVwidG9wIGF0dGFjaGVkXCJdLm1lbnUge1xuICBib3R0b206IDBweDtcbiAgbWFyZ2luLWJvdHRvbTogMGVtO1xuICB0b3A6IDBweDtcbiAgbWFyZ2luLXRvcDogMXJlbTtcbiAgYm9yZGVyLXJhZGl1czogMC40cmVtIDAuNHJlbSAwZW0gMGVtO1xufVxuLnVpLm1lbnVbY2xhc3MqPVwidG9wIGF0dGFjaGVkXCJdOmZpcnN0LWNoaWxkIHtcbiAgbWFyZ2luLXRvcDogMGVtO1xufVxuLyogQm90dG9tICovXG4udWlbY2xhc3MqPVwiYm90dG9tIGF0dGFjaGVkXCJdLm1lbnUge1xuICBib3R0b206IDBweDtcbiAgbWFyZ2luLXRvcDogMGVtO1xuICB0b3A6IDBweDtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgYm94LXNoYWRvdzogMHB4IDFweCAycHggMCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpLCBub25lO1xuICBib3JkZXItcmFkaXVzOiAwZW0gMGVtIDAuNHJlbSAwLjRyZW07XG59XG4udWlbY2xhc3MqPVwiYm90dG9tIGF0dGFjaGVkXCJdLm1lbnU6bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1ib3R0b206IDBlbTtcbn1cbi8qIEF0dGFjaGVkIE1lbnUgSXRlbSAqL1xuLnVpLnRvcC5hdHRhY2hlZC5tZW51ID4gLml0ZW06Zmlyc3QtY2hpbGQge1xuICBib3JkZXItcmFkaXVzOiAwLjRyZW0gMGVtIDBlbSAwZW07XG59XG4udWkuYm90dG9tLmF0dGFjaGVkLm1lbnUgPiAuaXRlbTpmaXJzdC1jaGlsZCB7XG4gIGJvcmRlci1yYWRpdXM6IDBlbSAwZW0gMGVtIDAuNHJlbTtcbn1cbi8qIFRhYnVsYXIgQXR0YWNoZWQgKi9cbi51aS5hdHRhY2hlZC5tZW51Om5vdCgudGFidWxhcikge1xuICBib3JkZXI6IDFweCBzb2xpZCAjRDRENEQ1O1xufVxuLnVpLmF0dGFjaGVkLmludmVydGVkLm1lbnUge1xuICBib3JkZXI6IG5vbmU7XG59XG4udWkuYXR0YWNoZWQudGFidWxhci5tZW51IHtcbiAgbWFyZ2luLWxlZnQ6IDA7XG4gIG1hcmdpbi1yaWdodDogMDtcbiAgd2lkdGg6IDEwMCU7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWluaSAqL1xuLnVpLm1pbmkubWVudSB7XG4gIGZvbnQtc2l6ZTogMS4xcmVtO1xufVxuLnVpLm1pbmkudmVydGljYWwubWVudSB7XG4gIHdpZHRoOiA5cmVtO1xufVxuLyogVGlueSAqL1xuLnVpLnRpbnkubWVudSB7XG4gIGZvbnQtc2l6ZTogMS4ycmVtO1xufVxuLnVpLnRpbnkudmVydGljYWwubWVudSB7XG4gIHdpZHRoOiAxMXJlbTtcbn1cbi8qIFNtYWxsICovXG4udWkuc21hbGwubWVudSB7XG4gIGZvbnQtc2l6ZTogMS4zcmVtO1xufVxuLnVpLnNtYWxsLnZlcnRpY2FsLm1lbnUge1xuICB3aWR0aDogMTNyZW07XG59XG4vKiBNZWRpdW0gKi9cbi51aS5tZW51IHtcbiAgZm9udC1zaXplOiAxcmVtO1xufVxuLnVpLnZlcnRpY2FsLm1lbnUge1xuICB3aWR0aDogMTVyZW07XG59XG4vKiBMYXJnZSAqL1xuLnVpLmxhcmdlLm1lbnUge1xuICBmb250LXNpemU6IDEuNXJlbTtcbn1cbi51aS5sYXJnZS52ZXJ0aWNhbC5tZW51IHtcbiAgd2lkdGg6IDE4cmVtO1xufVxuLyogSHVnZSAqL1xuLnVpLmh1Z2UubWVudSB7XG4gIGZvbnQtc2l6ZTogMS42cmVtO1xufVxuLnVpLmh1Z2UudmVydGljYWwubWVudSB7XG4gIHdpZHRoOiAyMHJlbTtcbn1cbi8qIEJpZyAqL1xuLnVpLmJpZy5tZW51IHtcbiAgZm9udC1zaXplOiAxLjdyZW07XG59XG4udWkuYmlnLnZlcnRpY2FsLm1lbnUge1xuICB3aWR0aDogMjJyZW07XG59XG4vKiBNYXNzaXZlICovXG4udWkubWFzc2l2ZS5tZW51IHtcbiAgZm9udC1zaXplOiAxLjhyZW07XG59XG4udWkubWFzc2l2ZS52ZXJ0aWNhbC5tZW51IHtcbiAgd2lkdGg6IDI1cmVtO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFRoZW1lIE92ZXJyaWRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIE92ZXJyaWRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIVxuICogIyBTZW1hbnRpYyBVSSAtIE1lc3NhZ2VcbiAqIGh0dHA6Ly9naXRodWIuY29tL3NlbWFudGljLW9yZy9zZW1hbnRpYy11aS9cbiAqXG4gKlxuICogUmVsZWFzZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlXG4gKiBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUXG4gKlxuICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKlxuXG7ilojilojilojilojilojilojilojilojilZfilojilojilZcgIOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKVlyAgIOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl1xu4pWa4pWQ4pWQ4paI4paI4pWU4pWQ4pWQ4pWd4paI4paI4pWRICDilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilojilojilZcg4paI4paI4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWd4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWdXG4gICDilojilojilZEgICDilojilojilojilojilojilojilojilZHilojilojilojilojilojilZcgIOKWiOKWiOKVlOKWiOKWiOKWiOKWiOKVlOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4paI4paI4paI4paI4paI4pWXXG4gICDilojilojilZEgICDilojilojilZTilZDilZDilojilojilZHilojilojilZTilZDilZDilZ0gIOKWiOKWiOKVkeKVmuKWiOKWiOKVlOKVneKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4pWa4pWQ4pWQ4pWQ4pWQ4paI4paI4pWRXG4gICDilojilojilZEgICDilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVkSDilZrilZDilZ0g4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWRXG4gICDilZrilZDilZ0gICDilZrilZDilZ0gIOKVmuKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVneKVmuKVkOKVnSAgICAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWdXG5cbiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBUaGVtZSBTZWxlY3Rpb25cbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBUbyBvdmVycmlkZSBhIHRoZW1lIGZvciBhbiBpbmRpdmlkdWFsIGVsZW1lbnRcbiAgIHNwZWNpZnkgdGhlbWUgbmFtZSBiZWxvd1xuKi9cbi8qIEdsb2JhbCAqL1xuLyogRWxlbWVudHMgKi9cbi8qIENvbGxlY3Rpb25zICovXG4vKiBNb2R1bGVzICovXG4vKiBWaWV3cyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIEZvbGRlcnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBQYXRoIHRvIHRoZW1lIHBhY2thZ2VzICovXG4vKiBQYXRoIHRvIHNpdGUgb3ZlcnJpZGUgZm9sZGVyICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgSW1wb3J0IFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgSW1wb3J0IERpcmVjdGl2ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIFRoZW1lXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgIFNpdGUgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kb3JzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFBhY2thZ2VkIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRvcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogQ29tcG9uZW50J3Mgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZG9ycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBTaXRlIHRoZW1lIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICBVc2VyIEdsb2JhbCBWYXJpYWJsZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBtYXJzbyBjb2xvcnMgKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiBDb21wb25lbnQgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIE1lc3NhZ2VcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbGVtZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSGVhZGVyICovXG4vKiBQYXJhZ3JhcGggKi9cbi8qIExpc3QgKi9cbi8qIEljb24gKi9cbi8qIENsb3NlIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBUeXBlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSWNvbiBNZXNzYWdlICovXG4vKiBBdHRhY2hlZCAqL1xuLyogRmxvYXRpbmcgKi9cbi8qIENvbG9ycyAqL1xuLyogV2FybmluZyAvIFBvc2l0aXZlIC8gTmVnYXRpdmUgLyBJbmZvICovXG4vKiBQYWNrYWdlZCBUaGVtZSAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIE1lc3NhZ2VcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbGVtZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSGVhZGVyICovXG4vKiBQYXJhZ3JhcGggKi9cbi8qIExpc3QgKi9cbi8qIEljb24gKi9cbi8qIENsb3NlIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBUeXBlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSWNvbiBNZXNzYWdlICovXG4vKiBBdHRhY2hlZCAqL1xuLyogRmxvYXRpbmcgKi9cbi8qIENvbG9ycyAqL1xuLyogV2FybmluZyAvIFBvc2l0aXZlIC8gTmVnYXRpdmUgLyBJbmZvICovXG4vKiBTaXRlIFRoZW1lICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgIFVzZXIgVmFyaWFibGUgT3ZlcnJpZGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBNaXgtaW5zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBPdmVycmlkZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRW5kIENvbmZpZyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIE1lc3NhZ2VcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4udWkubWVzc2FnZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWluLWhlaWdodDogMWVtO1xuICBtYXJnaW46IDFlbSAwZW07XG4gIGJhY2tncm91bmQ6ICNGOEY4Rjk7XG4gIHBhZGRpbmc6IDFlbSAxLjVlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNDI4NWVtO1xuICBjb2xvcjogIzMzMzMzMztcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjFzIGVhc2UsIGNvbG9yIDAuMXMgZWFzZSwgYmFja2dyb3VuZCAwLjFzIGVhc2UsIGJveC1zaGFkb3cgMC4xcyBlYXNlO1xuICBib3JkZXItcmFkaXVzOiAwLjRyZW07XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCByZ2JhKDM0LCAzNiwgMzgsIDAuMjIpIGluc2V0LCAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwKTtcbn1cbi51aS5tZXNzYWdlOmZpcnN0LWNoaWxkIHtcbiAgbWFyZ2luLXRvcDogMGVtO1xufVxuLnVpLm1lc3NhZ2U6bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1ib3R0b206IDBlbTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgQ29udGVudFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEhlYWRlciAqL1xuLnVpLm1lc3NhZ2UgLmhlYWRlciB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmb250LWZhbWlseTogJ0V4byAyJywgJ0xhdG8nLCBBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgbWFyZ2luOiAtMC4xNDI4NTcxNGVtIDBlbSAwcmVtIDBlbTtcbn1cbi8qIERlZmF1bHQgZm9udCBzaXplICovXG4udWkubWVzc2FnZSAuaGVhZGVyOm5vdCgudWkpIHtcbiAgZm9udC1zaXplOiAxLjFlbTtcbn1cbi8qIFBhcmFncmFwaCAqL1xuLnVpLm1lc3NhZ2UgcCB7XG4gIG9wYWNpdHk6IDAuODU7XG4gIG1hcmdpbjogMC43NWVtIDBlbTtcbn1cbi51aS5tZXNzYWdlIHA6Zmlyc3QtY2hpbGQge1xuICBtYXJnaW4tdG9wOiAwZW07XG59XG4udWkubWVzc2FnZSBwOmxhc3QtY2hpbGQge1xuICBtYXJnaW4tYm90dG9tOiAwZW07XG59XG4udWkubWVzc2FnZSAuaGVhZGVyICsgcCB7XG4gIG1hcmdpbi10b3A6IDAuMjVlbTtcbn1cbi8qIExpc3QgKi9cbi51aS5tZXNzYWdlIC5saXN0Om5vdCgudWkpIHtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgcGFkZGluZzogMGVtO1xuICBvcGFjaXR5OiAwLjg1O1xuICBsaXN0LXN0eWxlLXBvc2l0aW9uOiBpbnNpZGU7XG4gIG1hcmdpbjogMC41ZW0gMGVtIDBlbTtcbn1cbi51aS5tZXNzYWdlIC5saXN0Om5vdCgudWkpOmZpcnN0LWNoaWxkIHtcbiAgbWFyZ2luLXRvcDogMGVtO1xufVxuLnVpLm1lc3NhZ2UgLmxpc3Q6bm90KC51aSk6bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1ib3R0b206IDBlbTtcbn1cbi51aS5tZXNzYWdlIC5saXN0Om5vdCgudWkpIGxpIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gIG1hcmdpbjogMGVtIDBlbSAwLjNlbSAxZW07XG4gIHBhZGRpbmc6IDBlbTtcbn1cbi51aS5tZXNzYWdlIC5saXN0Om5vdCgudWkpIGxpOmJlZm9yZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgY29udGVudDogJ+KAoic7XG4gIGxlZnQ6IC0xZW07XG4gIGhlaWdodDogMTAwJTtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xufVxuLnVpLm1lc3NhZ2UgLmxpc3Q6bm90KC51aSkgbGk6bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1ib3R0b206IDBlbTtcbn1cbi8qIEljb24gKi9cbi51aS5tZXNzYWdlID4gLmljb24ge1xuICBtYXJnaW4tcmlnaHQ6IDAuNmVtO1xufVxuLyogQ2xvc2UgSWNvbiAqL1xuLnVpLm1lc3NhZ2UgPiAuY2xvc2UuaWNvbiB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBtYXJnaW46IDBlbTtcbiAgdG9wOiAwLjc4NTc1ZW07XG4gIHJpZ2h0OiAwLjVlbTtcbiAgb3BhY2l0eTogMC43O1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMXMgZWFzZTtcbn1cbi51aS5tZXNzYWdlID4gLmNsb3NlLmljb246aG92ZXIge1xuICBvcGFjaXR5OiAxO1xufVxuLyogRmlyc3QgLyBMYXN0IEVsZW1lbnQgKi9cbi51aS5tZXNzYWdlID4gOmZpcnN0LWNoaWxkIHtcbiAgbWFyZ2luLXRvcDogMGVtO1xufVxuLnVpLm1lc3NhZ2UgPiA6bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1ib3R0b206IDBlbTtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBDb3VwbGluZ1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi51aS5kcm9wZG93biAubWVudSA+IC5tZXNzYWdlIHtcbiAgbWFyZ2luOiAwcHggLTFweDtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgVmlzaWJsZVxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS52aXNpYmxlLnZpc2libGUudmlzaWJsZS52aXNpYmxlLm1lc3NhZ2Uge1xuICBkaXNwbGF5OiBibG9jaztcbn1cbi51aS5pY29uLnZpc2libGUudmlzaWJsZS52aXNpYmxlLnZpc2libGUubWVzc2FnZSB7XG4gIGRpc3BsYXk6IGZsZXg7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIEhpZGRlblxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5oaWRkZW4uaGlkZGVuLmhpZGRlbi5oaWRkZW4ubWVzc2FnZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgVmFyaWF0aW9uc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBDb21wYWN0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmNvbXBhY3QubWVzc2FnZSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBBdHRhY2hlZFxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5hdHRhY2hlZC5tZXNzYWdlIHtcbiAgbWFyZ2luLWJvdHRvbTogLTFweDtcbiAgYm9yZGVyLXJhZGl1czogMC40cmVtIDAuNHJlbSAwZW0gMGVtO1xuICBib3gtc2hhZG93OiAwZW0gMGVtIDBlbSAxcHggcmdiYSgzNCwgMzYsIDM4LCAwLjE1KSBpbnNldDtcbiAgbWFyZ2luLWxlZnQ6IC0xcHg7XG4gIG1hcmdpbi1yaWdodDogLTFweDtcbn1cbi51aS5hdHRhY2hlZCArIC51aS5hdHRhY2hlZC5tZXNzYWdlOm5vdCgudG9wKTpub3QoLmJvdHRvbSkge1xuICBtYXJnaW4tdG9wOiAtMXB4O1xuICBib3JkZXItcmFkaXVzOiAwZW07XG59XG4udWkuYm90dG9tLmF0dGFjaGVkLm1lc3NhZ2Uge1xuICBtYXJnaW4tdG9wOiAtMXB4O1xuICBib3JkZXItcmFkaXVzOiAwZW0gMGVtIDAuNHJlbSAwLjRyZW07XG4gIGJveC1zaGFkb3c6IDBlbSAwZW0gMGVtIDFweCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpIGluc2V0LCAwcHggMXB4IDJweCAwIHJnYmEoMzQsIDM2LCAzOCwgMC4xNSk7XG59XG4udWkuYm90dG9tLmF0dGFjaGVkLm1lc3NhZ2U6bm90KDpsYXN0LWNoaWxkKSB7XG4gIG1hcmdpbi1ib3R0b206IDFlbTtcbn1cbi51aS5hdHRhY2hlZC5pY29uLm1lc3NhZ2Uge1xuICB3aWR0aDogYXV0bztcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgIEljb25cbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuaWNvbi5tZXNzYWdlIHtcbiAgZGlzcGxheTogZmxleDtcbiAgd2lkdGg6IDEwMCU7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG4udWkuaWNvbi5tZXNzYWdlID4gLmljb246bm90KC5jbG9zZSkge1xuICBkaXNwbGF5OiBibG9jaztcbiAgZmxleDogMCAwIGF1dG87XG4gIHdpZHRoOiBhdXRvO1xuICBsaW5lLWhlaWdodDogMTtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgZm9udC1zaXplOiAzZW07XG4gIG9wYWNpdHk6IDAuODtcbn1cbi51aS5pY29uLm1lc3NhZ2UgPiAuY29udGVudCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmbGV4OiAxIDEgYXV0bztcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cbi51aS5pY29uLm1lc3NhZ2UgLmljb246bm90KC5jbG9zZSkgKyAuY29udGVudCB7XG4gIHBhZGRpbmctbGVmdDogMHJlbTtcbn1cbi51aS5pY29uLm1lc3NhZ2UgLmNpcmN1bGFyLmljb24ge1xuICB3aWR0aDogMWVtO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgIEZsb2F0aW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmZsb2F0aW5nLm1lc3NhZ2Uge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggcmdiYSgzNCwgMzYsIDM4LCAwLjIyKSBpbnNldCwgMHB4IDJweCA0cHggMHB4IHJnYmEoMzQsIDM2LCAzOCwgMC4xMiksIDBweCAycHggMTBweCAwcHggcmdiYSgzNCwgMzYsIDM4LCAwLjE1KTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmJsYWNrLm1lc3NhZ2Uge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwMDAwO1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjkpO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBUeXBlc1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4udWkucG9zaXRpdmUubWVzc2FnZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGQ0ZGRjU7XG4gIGNvbG9yOiAjMkM2NjJEO1xufVxuLnVpLnBvc2l0aXZlLm1lc3NhZ2UsXG4udWkuYXR0YWNoZWQucG9zaXRpdmUubWVzc2FnZSB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjQTNDMjkzIGluc2V0LCAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwKTtcbn1cbi51aS5wb3NpdGl2ZS5tZXNzYWdlIC5oZWFkZXIge1xuICBjb2xvcjogIzFBNTMxQjtcbn1cbi8qIE5lZ2F0aXZlICovXG4udWkubmVnYXRpdmUubWVzc2FnZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGRkY2RjY7XG4gIGNvbG9yOiAjOUYzQTM4O1xufVxuLnVpLm5lZ2F0aXZlLm1lc3NhZ2UsXG4udWkuYXR0YWNoZWQubmVnYXRpdmUubWVzc2FnZSB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjRTBCNEI0IGluc2V0LCAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwKTtcbn1cbi51aS5uZWdhdGl2ZS5tZXNzYWdlIC5oZWFkZXIge1xuICBjb2xvcjogIzkxMkQyQjtcbn1cbi8qIEluZm8gKi9cbi51aS5pbmZvLm1lc3NhZ2Uge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRjhGRkZGO1xuICBjb2xvcjogIzI3NkY4Njtcbn1cbi51aS5pbmZvLm1lc3NhZ2UsXG4udWkuYXR0YWNoZWQuaW5mby5tZXNzYWdlIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICNBOUQ1REUgaW5zZXQsIDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDApO1xufVxuLnVpLmluZm8ubWVzc2FnZSAuaGVhZGVyIHtcbiAgY29sb3I6ICMwRTU2NkM7XG59XG4vKiBXYXJuaW5nICovXG4udWkud2FybmluZy5tZXNzYWdlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0ZGRkFGMztcbiAgY29sb3I6ICM1NzNBMDg7XG59XG4udWkud2FybmluZy5tZXNzYWdlLFxuLnVpLmF0dGFjaGVkLndhcm5pbmcubWVzc2FnZSB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjQzlCQTlCIGluc2V0LCAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwKTtcbn1cbi51aS53YXJuaW5nLm1lc3NhZ2UgLmhlYWRlciB7XG4gIGNvbG9yOiAjNzk0QjAyO1xufVxuLyogRXJyb3IgKi9cbi51aS5lcnJvci5tZXNzYWdlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0ZGRjZGNjtcbiAgY29sb3I6ICM5RjNBMzg7XG59XG4udWkuZXJyb3IubWVzc2FnZSxcbi51aS5hdHRhY2hlZC5lcnJvci5tZXNzYWdlIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICNFMEI0QjQgaW5zZXQsIDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDApO1xufVxuLnVpLmVycm9yLm1lc3NhZ2UgLmhlYWRlciB7XG4gIGNvbG9yOiAjOTEyRDJCO1xufVxuLyogU3VjY2VzcyAqL1xuLnVpLnN1Y2Nlc3MubWVzc2FnZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGQ0ZGRjU7XG4gIGNvbG9yOiAjMkM2NjJEO1xufVxuLnVpLnN1Y2Nlc3MubWVzc2FnZSxcbi51aS5hdHRhY2hlZC5zdWNjZXNzLm1lc3NhZ2Uge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggI0EzQzI5MyBpbnNldCwgMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMCk7XG59XG4udWkuc3VjY2Vzcy5tZXNzYWdlIC5oZWFkZXIge1xuICBjb2xvcjogIzFBNTMxQjtcbn1cbi8qIENvbG9ycyAqL1xuLnVpLmludmVydGVkLm1lc3NhZ2UsXG4udWkuYmxhY2subWVzc2FnZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDAwMDA7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOSk7XG59XG4udWkucmVkLm1lc3NhZ2Uge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkZFOEU2O1xuICBjb2xvcjogI2RlM2EzZTtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICNkZTNhM2UgaW5zZXQsIDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDApO1xufVxuLnVpLnJlZC5tZXNzYWdlIC5oZWFkZXIge1xuICBjb2xvcjogI2RhMjUyOTtcbn1cbi51aS5vcmFuZ2UubWVzc2FnZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGRkVEREU7XG4gIGNvbG9yOiAjZmY5NTMzO1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggI2ZmOTUzMyBpbnNldCwgMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMCk7XG59XG4udWkub3JhbmdlLm1lc3NhZ2UgLmhlYWRlciB7XG4gIGNvbG9yOiAjZmY4ODE5O1xufVxuLnVpLnllbGxvdy5tZXNzYWdlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0ZGRjhEQjtcbiAgY29sb3I6ICNCNTgxMDU7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjQjU4MTA1IGluc2V0LCAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwKTtcbn1cbi51aS55ZWxsb3cubWVzc2FnZSAuaGVhZGVyIHtcbiAgY29sb3I6ICM5YzZmMDQ7XG59XG4udWkub2xpdmUubWVzc2FnZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGQkZERUY7XG4gIGNvbG9yOiAjOEFCQzFFO1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggIzhBQkMxRSBpbnNldCwgMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMCk7XG59XG4udWkub2xpdmUubWVzc2FnZSAuaGVhZGVyIHtcbiAgY29sb3I6ICM3YWE2MWE7XG59XG4udWkuZ3JlZW4ubWVzc2FnZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNFNUY5RTc7XG4gIGNvbG9yOiAjMUVCQzMwO1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggIzFFQkMzMCBpbnNldCwgMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMCk7XG59XG4udWkuZ3JlZW4ubWVzc2FnZSAuaGVhZGVyIHtcbiAgY29sb3I6ICMxYWE2MmE7XG59XG4udWkudGVhbC5tZXNzYWdlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0UxRjdGNztcbiAgY29sb3I6ICMxMEEzQTM7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjMTBBM0EzIGluc2V0LCAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwKTtcbn1cbi51aS50ZWFsLm1lc3NhZ2UgLmhlYWRlciB7XG4gIGNvbG9yOiAjMGU4YzhjO1xufVxuLnVpLmJsdWUubWVzc2FnZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNERkYwRkY7XG4gIGNvbG9yOiAjM2Y1MWI1O1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggIzNmNTFiNSBpbnNldCwgMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMCk7XG59XG4udWkuYmx1ZS5tZXNzYWdlIC5oZWFkZXIge1xuICBjb2xvcjogIzM4NDlhMjtcbn1cbi51aS52aW9sZXQubWVzc2FnZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNFQUU3RkY7XG4gIGNvbG9yOiAjNjQzNUM5O1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggIzY0MzVDOSBpbnNldCwgMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMCk7XG59XG4udWkudmlvbGV0Lm1lc3NhZ2UgLmhlYWRlciB7XG4gIGNvbG9yOiAjNWEzMGI1O1xufVxuLnVpLnB1cnBsZS5tZXNzYWdlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0Y2RTdGRjtcbiAgY29sb3I6ICNBMzMzQzg7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjQTMzM0M4IGluc2V0LCAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwKTtcbn1cbi51aS5wdXJwbGUubWVzc2FnZSAuaGVhZGVyIHtcbiAgY29sb3I6ICM5MjJlYjQ7XG59XG4udWkucGluay5tZXNzYWdlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0ZGRTNGQjtcbiAgY29sb3I6ICNFMDM5OTc7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjRTAzOTk3IGluc2V0LCAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwKTtcbn1cbi51aS5waW5rLm1lc3NhZ2UgLmhlYWRlciB7XG4gIGNvbG9yOiAjZGQyMzhiO1xufVxuLnVpLmJyb3duLm1lc3NhZ2Uge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRjFFMkQzO1xuICBjb2xvcjogI0E1NjczRjtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICNBNTY3M0YgaW5zZXQsIDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDApO1xufVxuLnVpLmJyb3duLm1lc3NhZ2UgLmhlYWRlciB7XG4gIGNvbG9yOiAjOTM1YjM4O1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5taW5pLm1lc3NhZ2Uge1xuICBmb250LXNpemU6IDAuOGVtO1xufVxuLnVpLnRpbnkubWVzc2FnZSB7XG4gIGZvbnQtc2l6ZTogMC45ZW07XG59XG4udWkuc21hbGwubWVzc2FnZSB7XG4gIGZvbnQtc2l6ZTogMC45ZW07XG59XG4udWkubWVzc2FnZSB7XG4gIGZvbnQtc2l6ZTogMWVtO1xufVxuLnVpLmxhcmdlLm1lc3NhZ2Uge1xuICBmb250LXNpemU6IDEuMWVtO1xufVxuLnVpLmJpZy5tZXNzYWdlIHtcbiAgZm9udC1zaXplOiAxLjNlbTtcbn1cbi51aS5odWdlLm1lc3NhZ2Uge1xuICBmb250LXNpemU6IDEuNGVtO1xufVxuLnVpLm1hc3NpdmUubWVzc2FnZSB7XG4gIGZvbnQtc2l6ZTogMS43ZW07XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgVGhlbWUgT3ZlcnJpZGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgU2l0ZSBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiFcbiAqICMgU2VtYW50aWMgVUkgLSBUYWJsZVxuICogaHR0cDovL2dpdGh1Yi5jb20vc2VtYW50aWMtb3JnL3NlbWFudGljLXVpL1xuICpcbiAqXG4gKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2VcbiAqIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVRcbiAqXG4gKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qXG5cbuKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVlyAg4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4pWXICAg4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWXXG7ilZrilZDilZDilojilojilZTilZDilZDilZ3ilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKWiOKWiOKVlyDilojilojilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilZTilZDilZDilZDilZDilZ1cbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4pWU4paI4paI4paI4paI4pWU4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilojilojilojilojilojilZdcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVlOKVkOKVkOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4paI4paI4pWR4pWa4paI4paI4pWU4pWd4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilZrilZDilZDilZDilZDilojilojilZFcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWRIOKVmuKVkOKVnSDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZFcbiAgIOKVmuKVkOKVnSAgIOKVmuKVkOKVnSAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWdICAgICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ1cblxuKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIFRoZW1lIFNlbGVjdGlvblxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFRvIG92ZXJyaWRlIGEgdGhlbWUgZm9yIGFuIGluZGl2aWR1YWwgZWxlbWVudFxuICAgc3BlY2lmeSB0aGVtZSBuYW1lIGJlbG93XG4qL1xuLyogR2xvYmFsICovXG4vKiBFbGVtZW50cyAqL1xuLyogQ29sbGVjdGlvbnMgKi9cbi8qIE1vZHVsZXMgKi9cbi8qIFZpZXdzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgRm9sZGVyc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFBhdGggdG8gdGhlbWUgcGFja2FnZXMgKi9cbi8qIFBhdGggdG8gc2l0ZSBvdmVycmlkZSBmb2xkZXIgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBJbXBvcnQgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBJbXBvcnQgRGlyZWN0aXZlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgVGhlbWVcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgU2l0ZSBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0IHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRvcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogUGFja2FnZWQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZG9ycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBDb21wb25lbnQncyBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kb3JzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFNpdGUgdGhlbWUgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgIFVzZXIgR2xvYmFsIFZhcmlhYmxlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIG1hcnNvIGNvbG9ycyAqL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuIENvbXBvbmVudCBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0ICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFRhYmxlXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRWxlbWVudFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgICBQYXJ0c1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRhYmxlIFJvdyAqL1xuLyogVGFibGUgQ2VsbCAqL1xuLyogVGFibGUgSGVhZGVyICovXG4vKiBUYWJsZSBGb290ZXIgKi9cbi8qIFJlc3BvbnNpdmUgU2l6ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgVHlwZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERlZmluaXRpb24gKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBDb3VwbGluZ3Ncbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIFN0YXRlc1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogRXJyb3IgKi9cbi8qIFdhcm5pbmcgKi9cbi8qIEFjdGl2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgICBUeXBlc1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEF0dGFjaGVkICovXG4vKiBTdHJpcGVkICovXG4vKiBTZWxlY3RhYmxlICovXG4vKiBTb3J0YWJsZSAqL1xuLyogQ29sb3JzICovXG4vKiBJbnZlcnRlZCAqL1xuLyogQmFzaWMgKi9cbi8qIFBhZGRlZCAqL1xuLyogQ29tcGFjdCAqL1xuLyogU2l6ZXMgKi9cbi8qIFBhY2thZ2VkIFRoZW1lICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFRhYmxlXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRWxlbWVudFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgICBQYXJ0c1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRhYmxlIFJvdyAqL1xuLyogVGFibGUgQ2VsbCAqL1xuLyogVGFibGUgSGVhZGVyICovXG4vKiBUYWJsZSBGb290ZXIgKi9cbi8qIFJlc3BvbnNpdmUgU2l6ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgVHlwZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERlZmluaXRpb24gKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBDb3VwbGluZ3Ncbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIFN0YXRlc1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogRXJyb3IgKi9cbi8qIFdhcm5pbmcgKi9cbi8qIEFjdGl2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgICBUeXBlc1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEF0dGFjaGVkICovXG4vKiBTdHJpcGVkICovXG4vKiBTZWxlY3RhYmxlICovXG4vKiBTb3J0YWJsZSAqL1xuLyogQ29sb3JzICovXG4vKiBJbnZlcnRlZCAqL1xuLyogQmFzaWMgKi9cbi8qIFBhZGRlZCAqL1xuLyogQ29tcGFjdCAqL1xuLyogU2l6ZXMgKi9cbi8qIFNpdGUgVGhlbWUgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgVXNlciBWYXJpYWJsZSBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIE1peC1pbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE92ZXJyaWRlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBFbmQgQ29uZmlnICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFRhYmxlXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogUHJvdG90eXBlICovXG4udWkudGFibGUge1xuICB3aWR0aDogMTAwJTtcbiAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbiAgbWFyZ2luOiAxZW0gMGVtO1xuICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpO1xuICBib3gtc2hhZG93OiBub25lO1xuICBib3JkZXItcmFkaXVzOiAwLjRyZW07XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIGNvbG9yOiAjMzMzMzMzO1xuICBib3JkZXItY29sbGFwc2U6IHNlcGFyYXRlO1xuICBib3JkZXItc3BhY2luZzogMHB4O1xufVxuLnVpLnRhYmxlOmZpcnN0LWNoaWxkIHtcbiAgbWFyZ2luLXRvcDogMGVtO1xufVxuLnVpLnRhYmxlOmxhc3QtY2hpbGQge1xuICBtYXJnaW4tYm90dG9tOiAwZW07XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFBhcnRzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogVGFibGUgQ29udGVudCAqL1xuLnVpLnRhYmxlIHRoLFxuLnVpLnRhYmxlIHRkIHtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjFzIGVhc2UsIGNvbG9yIDAuMXMgZWFzZTtcbn1cbi8qIEhlYWRlcnMgKi9cbi51aS50YWJsZSB0aGVhZCB7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG59XG4udWkudGFibGUgdGhlYWQgdGgge1xuICBjdXJzb3I6IGF1dG87XG4gIGJhY2tncm91bmQ6ICNGOUZBRkI7XG4gIHRleHQtYWxpZ246IGluaGVyaXQ7XG4gIGNvbG9yOiAjMzMzMzMzO1xuICBwYWRkaW5nOiAwLjllbSAwLjhlbTtcbiAgdmVydGljYWwtYWxpZ246IGluaGVyaXQ7XG4gIGZvbnQtc3R5bGU6IG5vbmU7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYmEoMzQsIDM2LCAzOCwgMC4xKTtcbiAgYm9yZGVyLWxlZnQ6IG5vbmU7XG59XG4udWkudGFibGUgdGhlYWQgdHIgPiB0aDpmaXJzdC1jaGlsZCB7XG4gIGJvcmRlci1sZWZ0OiBub25lO1xufVxuLnVpLnRhYmxlIHRoZWFkIHRyOmZpcnN0LWNoaWxkID4gdGg6Zmlyc3QtY2hpbGQge1xuICBib3JkZXItcmFkaXVzOiAwLjRyZW0gMGVtIDBlbSAwZW07XG59XG4udWkudGFibGUgdGhlYWQgdHI6Zmlyc3QtY2hpbGQgPiB0aDpsYXN0LWNoaWxkIHtcbiAgYm9yZGVyLXJhZGl1czogMGVtIDAuNHJlbSAwZW0gMGVtO1xufVxuLnVpLnRhYmxlIHRoZWFkIHRyOmZpcnN0LWNoaWxkID4gdGg6b25seS1jaGlsZCB7XG4gIGJvcmRlci1yYWRpdXM6IDAuNHJlbSAwLjRyZW0gMGVtIDBlbTtcbn1cbi8qIEZvb3RlciAqL1xuLnVpLnRhYmxlIHRmb290IHtcbiAgYm94LXNoYWRvdzogbm9uZTtcbn1cbi51aS50YWJsZSB0Zm9vdCB0aCB7XG4gIGN1cnNvcjogYXV0bztcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHJnYmEoMzQsIDM2LCAzOCwgMC4xNSk7XG4gIGJhY2tncm91bmQ6ICNGOUZBRkI7XG4gIHRleHQtYWxpZ246IGluaGVyaXQ7XG4gIGNvbG9yOiAjMzMzMzMzO1xuICBwYWRkaW5nOiAwLjhlbSAwLjhlbTtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbn1cbi51aS50YWJsZSB0Zm9vdCB0ciA+IHRoOmZpcnN0LWNoaWxkIHtcbiAgYm9yZGVyLWxlZnQ6IG5vbmU7XG59XG4udWkudGFibGUgdGZvb3QgdHI6Zmlyc3QtY2hpbGQgPiB0aDpmaXJzdC1jaGlsZCB7XG4gIGJvcmRlci1yYWRpdXM6IDBlbSAwZW0gMGVtIDAuNHJlbTtcbn1cbi51aS50YWJsZSB0Zm9vdCB0cjpmaXJzdC1jaGlsZCA+IHRoOmxhc3QtY2hpbGQge1xuICBib3JkZXItcmFkaXVzOiAwZW0gMGVtIDAuNHJlbSAwZW07XG59XG4udWkudGFibGUgdGZvb3QgdHI6Zmlyc3QtY2hpbGQgPiB0aDpvbmx5LWNoaWxkIHtcbiAgYm9yZGVyLXJhZGl1czogMGVtIDBlbSAwLjRyZW0gMC40cmVtO1xufVxuLyogVGFibGUgUm93ICovXG4udWkudGFibGUgdHIgdGQge1xuICBib3JkZXItdG9wOiAxcHggc29saWQgcmdiYSgzNCwgMzYsIDM4LCAwLjEpO1xufVxuLnVpLnRhYmxlIHRyOmZpcnN0LWNoaWxkIHRkIHtcbiAgYm9yZGVyLXRvcDogbm9uZTtcbn1cbi8qIFRhYmxlIENlbGxzICovXG4udWkudGFibGUgdGQge1xuICBwYWRkaW5nOiAwLjhlbSAwLjhlbTtcbiAgdGV4dC1hbGlnbjogaW5oZXJpdDtcbn1cbi8qIEljb25zICovXG4udWkudGFibGUgPiAuaWNvbiB7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbn1cbi51aS50YWJsZSA+IC5pY29uOm9ubHktY2hpbGQge1xuICBtYXJnaW46IDBlbTtcbn1cbi8qIFRhYmxlIFNlZ21lbnQgKi9cbi51aS50YWJsZS5zZWdtZW50IHtcbiAgcGFkZGluZzogMGVtO1xufVxuLnVpLnRhYmxlLnNlZ21lbnQ6YWZ0ZXIge1xuICBkaXNwbGF5OiBub25lO1xufVxuLnVpLnRhYmxlLnNlZ21lbnQuc3RhY2tlZDphZnRlciB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuLyogUmVzcG9uc2l2ZSAqL1xuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAudWkudGFibGU6bm90KC51bnN0YWNrYWJsZSkge1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG4gIC51aS50YWJsZTpub3QoLnVuc3RhY2thYmxlKSB0Ym9keSxcbiAgLnVpLnRhYmxlOm5vdCgudW5zdGFja2FibGUpIHRyLFxuICAudWkudGFibGU6bm90KC51bnN0YWNrYWJsZSkgdHIgPiB0aCxcbiAgLnVpLnRhYmxlOm5vdCgudW5zdGFja2FibGUpIHRyID4gdGQge1xuICAgIHdpZHRoOiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgfVxuICAudWkudGFibGU6bm90KC51bnN0YWNrYWJsZSkge1xuICAgIHBhZGRpbmc6IDBlbTtcbiAgfVxuICAudWkudGFibGU6bm90KC51bnN0YWNrYWJsZSkgdGhlYWQge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG4gIC51aS50YWJsZTpub3QoLnVuc3RhY2thYmxlKSB0Zm9vdCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cbiAgLnVpLnRhYmxlOm5vdCgudW5zdGFja2FibGUpIHRyIHtcbiAgICBwYWRkaW5nLXRvcDogMWVtO1xuICAgIHBhZGRpbmctYm90dG9tOiAxZW07XG4gICAgYm94LXNoYWRvdzogMHB4IC0xcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMSkgaW5zZXQgIWltcG9ydGFudDtcbiAgfVxuICAudWkudGFibGU6bm90KC51bnN0YWNrYWJsZSkgdHIgPiB0aCxcbiAgLnVpLnRhYmxlOm5vdCgudW5zdGFja2FibGUpIHRyID4gdGQge1xuICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgYm9yZGVyOiBub25lICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZzogMC4yNWVtIDAuNzVlbSAhaW1wb3J0YW50O1xuICAgIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxuICAudWkudGFibGU6bm90KC51bnN0YWNrYWJsZSkgdGg6Zmlyc3QtY2hpbGQsXG4gIC51aS50YWJsZTpub3QoLnVuc3RhY2thYmxlKSB0ZDpmaXJzdC1jaGlsZCB7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIH1cbiAgLyogRGVmaW5pdGlvbiBUYWJsZSAqL1xuICAudWkuZGVmaW5pdGlvbi50YWJsZTpub3QoLnVuc3RhY2thYmxlKSB0aGVhZCB0aDpmaXJzdC1jaGlsZCB7XG4gICAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICB9XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgQ291cGxpbmdcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBVSSBJbWFnZSAqL1xuLnVpLnRhYmxlIHRoIC5pbWFnZSxcbi51aS50YWJsZSB0aCAuaW1hZ2UgaW1nLFxuLnVpLnRhYmxlIHRkIC5pbWFnZSxcbi51aS50YWJsZSB0ZCAuaW1hZ2UgaW1nIHtcbiAgbWF4LXdpZHRoOiBub25lO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBUeXBlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBDb21wbGV4XG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLnN0cnVjdHVyZWQudGFibGUge1xuICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xufVxuLnVpLnN0cnVjdHVyZWQudGFibGUgdGhlYWQgdGgge1xuICBib3JkZXItbGVmdDogbm9uZTtcbiAgYm9yZGVyLXJpZ2h0OiBub25lO1xufVxuLnVpLnN0cnVjdHVyZWQuc29ydGFibGUudGFibGUgdGhlYWQgdGgge1xuICBib3JkZXItbGVmdDogMXB4IHNvbGlkIHJnYmEoMzQsIDM2LCAzOCwgMC4xNSk7XG4gIGJvcmRlci1yaWdodDogMXB4IHNvbGlkIHJnYmEoMzQsIDM2LCAzOCwgMC4xNSk7XG59XG4udWkuc3RydWN0dXJlZC5iYXNpYy50YWJsZSB0aCB7XG4gIGJvcmRlci1sZWZ0OiBub25lO1xuICBib3JkZXItcmlnaHQ6IG5vbmU7XG59XG4udWkuc3RydWN0dXJlZC5jZWxsZWQudGFibGUgdHIgdGgsXG4udWkuc3RydWN0dXJlZC5jZWxsZWQudGFibGUgdHIgdGQge1xuICBib3JkZXItbGVmdDogMXB4IHNvbGlkIHJnYmEoMzQsIDM2LCAzOCwgMC4xKTtcbiAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgcmdiYSgzNCwgMzYsIDM4LCAwLjEpO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgRGVmaW5pdGlvblxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5kZWZpbml0aW9uLnRhYmxlIHRoZWFkOm5vdCguZnVsbC13aWR0aCkgdGg6Zmlyc3QtY2hpbGQge1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNCk7XG4gIGJveC1zaGFkb3c6IC0xcHggLTFweCAwcHggMXB4ICNmZmZmZmY7XG59XG4udWkuZGVmaW5pdGlvbi50YWJsZSB0Zm9vdDpub3QoLmZ1bGwtd2lkdGgpIHRoOmZpcnN0LWNoaWxkIHtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBmb250LXdlaWdodDogcmdiYSgwLCAwLCAwLCAwLjQpO1xuICBjb2xvcjogbm9ybWFsO1xuICBib3gtc2hhZG93OiAxcHggMXB4IDBweCAxcHggI2ZmZmZmZjtcbn1cbi8qIFJlbW92ZSBCb3JkZXIgKi9cbi51aS5jZWxsZWQuZGVmaW5pdGlvbi50YWJsZSB0aGVhZDpub3QoLmZ1bGwtd2lkdGgpIHRoOmZpcnN0LWNoaWxkIHtcbiAgYm94LXNoYWRvdzogMHB4IC0xcHggMHB4IDFweCAjZmZmZmZmO1xufVxuLnVpLmNlbGxlZC5kZWZpbml0aW9uLnRhYmxlIHRmb290Om5vdCguZnVsbC13aWR0aCkgdGg6Zmlyc3QtY2hpbGQge1xuICBib3gtc2hhZG93OiAwcHggMXB4IDBweCAxcHggI2ZmZmZmZjtcbn1cbi8qIEhpZ2hsaWdodCBEZWZpbmluZyBDb2x1bW4gKi9cbi51aS5kZWZpbml0aW9uLnRhYmxlIHRyIHRkOmZpcnN0LWNoaWxkOm5vdCguaWdub3JlZCksXG4udWkuZGVmaW5pdGlvbi50YWJsZSB0ciB0ZC5kZWZpbml0aW9uIHtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjAzKTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuOTUpO1xuICB0ZXh0LXRyYW5zZm9ybTogJyc7XG4gIGJveC1zaGFkb3c6ICcnO1xuICB0ZXh0LWFsaWduOiAnJztcbiAgZm9udC1zaXplOiAxZW07XG4gIHBhZGRpbmctbGVmdDogJyc7XG4gIHBhZGRpbmctcmlnaHQ6ICcnO1xufVxuLyogRml4IDJuZCBDb2x1bW4gKi9cbi51aS5kZWZpbml0aW9uLnRhYmxlIHRoZWFkOm5vdCguZnVsbC13aWR0aCkgdGg6bnRoLWNoaWxkKDIpIHtcbiAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpO1xufVxuLnVpLmRlZmluaXRpb24udGFibGUgdGZvb3Q6bm90KC5mdWxsLXdpZHRoKSB0aDpudGgtY2hpbGQoMikge1xuICBib3JkZXItbGVmdDogMXB4IHNvbGlkIHJnYmEoMzQsIDM2LCAzOCwgMC4xNSk7XG59XG4udWkuZGVmaW5pdGlvbi50YWJsZSB0ZDpudGgtY2hpbGQoMikge1xuICBib3JkZXItbGVmdDogMXB4IHNvbGlkIHJnYmEoMzQsIDM2LCAzOCwgMC4xNSk7XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBQb3NpdGl2ZVxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS50YWJsZSB0ci5wb3NpdGl2ZSxcbi51aS50YWJsZSB0ZC5wb3NpdGl2ZSB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4ICNBM0MyOTMgaW5zZXQ7XG59XG4udWkudGFibGUgdHIucG9zaXRpdmUsXG4udWkudGFibGUgdGQucG9zaXRpdmUge1xuICBiYWNrZ3JvdW5kOiAjRkNGRkY1ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjMkM2NjJEICFpbXBvcnRhbnQ7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIE5lZ2F0aXZlXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLnRhYmxlIHRyLm5lZ2F0aXZlLFxuLnVpLnRhYmxlIHRkLm5lZ2F0aXZlIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggI0UwQjRCNCBpbnNldDtcbn1cbi51aS50YWJsZSB0ci5uZWdhdGl2ZSxcbi51aS50YWJsZSB0ZC5uZWdhdGl2ZSB7XG4gIGJhY2tncm91bmQ6ICNGRkY2RjYgIWltcG9ydGFudDtcbiAgY29sb3I6ICM5RjNBMzggIWltcG9ydGFudDtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgIEVycm9yXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLnRhYmxlIHRyLmVycm9yLFxuLnVpLnRhYmxlIHRkLmVycm9yIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggI0UwQjRCNCBpbnNldDtcbn1cbi51aS50YWJsZSB0ci5lcnJvcixcbi51aS50YWJsZSB0ZC5lcnJvciB7XG4gIGJhY2tncm91bmQ6ICNGRkY2RjYgIWltcG9ydGFudDtcbiAgY29sb3I6ICM5RjNBMzggIWltcG9ydGFudDtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgV2FybmluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS50YWJsZSB0ci53YXJuaW5nLFxuLnVpLnRhYmxlIHRkLndhcm5pbmcge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAjQzlCQTlCIGluc2V0O1xufVxuLnVpLnRhYmxlIHRyLndhcm5pbmcsXG4udWkudGFibGUgdGQud2FybmluZyB7XG4gIGJhY2tncm91bmQ6ICNGRkZBRjMgIWltcG9ydGFudDtcbiAgY29sb3I6ICM1NzNBMDggIWltcG9ydGFudDtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLnRhYmxlIHRyLmFjdGl2ZSxcbi51aS50YWJsZSB0ZC5hY3RpdmUge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAjMzMzMzMzIGluc2V0O1xufVxuLnVpLnRhYmxlIHRyLmFjdGl2ZSxcbi51aS50YWJsZSB0ZC5hY3RpdmUge1xuICBiYWNrZ3JvdW5kOiAjRTBFMEUwICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjMzMzMzMzICFpbXBvcnRhbnQ7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLnRhYmxlIHRyLmRpc2FibGVkIHRkLFxuLnVpLnRhYmxlIHRyIHRkLmRpc2FibGVkLFxuLnVpLnRhYmxlIHRyLmRpc2FibGVkOmhvdmVyLFxuLnVpLnRhYmxlIHRyOmhvdmVyIHRkLmRpc2FibGVkIHtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIGNvbG9yOiByZ2JhKDQwLCA0MCwgNDAsIDAuMyk7XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgIFZhcmlhdGlvbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgU3RhY2thYmxlXG4tLS0tLS0tLS0tLS0tLS0qL1xuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA5OTFweCkge1xuICAudWlbY2xhc3MqPVwidGFibGV0IHN0YWNrYWJsZVwiXS50YWJsZSxcbiAgLnVpW2NsYXNzKj1cInRhYmxldCBzdGFja2FibGVcIl0udGFibGUgdGJvZHksXG4gIC51aVtjbGFzcyo9XCJ0YWJsZXQgc3RhY2thYmxlXCJdLnRhYmxlIHRyLFxuICAudWlbY2xhc3MqPVwidGFibGV0IHN0YWNrYWJsZVwiXS50YWJsZSB0ciA+IHRoLFxuICAudWlbY2xhc3MqPVwidGFibGV0IHN0YWNrYWJsZVwiXS50YWJsZSB0ciA+IHRkIHtcbiAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpW2NsYXNzKj1cInRhYmxldCBzdGFja2FibGVcIl0udGFibGUge1xuICAgIHBhZGRpbmc6IDBlbTtcbiAgfVxuICAudWlbY2xhc3MqPVwidGFibGV0IHN0YWNrYWJsZVwiXS50YWJsZSB0aGVhZCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cbiAgLnVpW2NsYXNzKj1cInRhYmxldCBzdGFja2FibGVcIl0udGFibGUgdGZvb3Qge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG4gIC51aVtjbGFzcyo9XCJ0YWJsZXQgc3RhY2thYmxlXCJdLnRhYmxlIHRyIHtcbiAgICBwYWRkaW5nLXRvcDogMWVtO1xuICAgIHBhZGRpbmctYm90dG9tOiAxZW07XG4gICAgYm94LXNoYWRvdzogMHB4IC0xcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMSkgaW5zZXQgIWltcG9ydGFudDtcbiAgfVxuICAudWlbY2xhc3MqPVwidGFibGV0IHN0YWNrYWJsZVwiXS50YWJsZSB0ciA+IHRoLFxuICAudWlbY2xhc3MqPVwidGFibGV0IHN0YWNrYWJsZVwiXS50YWJsZSB0ciA+IHRkIHtcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgIGJvcmRlcjogbm9uZSAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmc6IDAuMjVlbSAwLjc1ZW07XG4gICAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICB9XG4gIC8qIERlZmluaXRpb24gVGFibGUgKi9cbiAgLnVpLmRlZmluaXRpb25bY2xhc3MqPVwidGFibGV0IHN0YWNrYWJsZVwiXS50YWJsZSB0aGVhZCB0aDpmaXJzdC1jaGlsZCB7XG4gICAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICB9XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gVGV4dCBBbGlnbm1lbnRcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkudGFibGVbY2xhc3MqPVwibGVmdCBhbGlnbmVkXCJdLFxuLnVpLnRhYmxlIFtjbGFzcyo9XCJsZWZ0IGFsaWduZWRcIl0ge1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxuLnVpLnRhYmxlW2NsYXNzKj1cImNlbnRlciBhbGlnbmVkXCJdLFxuLnVpLnRhYmxlIFtjbGFzcyo9XCJjZW50ZXIgYWxpZ25lZFwiXSB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi51aS50YWJsZVtjbGFzcyo9XCJyaWdodCBhbGlnbmVkXCJdLFxuLnVpLnRhYmxlIFtjbGFzcyo9XCJyaWdodCBhbGlnbmVkXCJdIHtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuIFZlcnRpY2FsIEFsaWdubWVudFxuLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS50YWJsZVtjbGFzcyo9XCJ0b3AgYWxpZ25lZFwiXSxcbi51aS50YWJsZSBbY2xhc3MqPVwidG9wIGFsaWduZWRcIl0ge1xuICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xufVxuLnVpLnRhYmxlW2NsYXNzKj1cIm1pZGRsZSBhbGlnbmVkXCJdLFxuLnVpLnRhYmxlIFtjbGFzcyo9XCJtaWRkbGUgYWxpZ25lZFwiXSB7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG4udWkudGFibGVbY2xhc3MqPVwiYm90dG9tIGFsaWduZWRcIl0sXG4udWkudGFibGUgW2NsYXNzKj1cImJvdHRvbSBhbGlnbmVkXCJdIHtcbiAgdmVydGljYWwtYWxpZ246IGJvdHRvbTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBDb2xsYXBzaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLnRhYmxlIHRoLmNvbGxhcHNpbmcsXG4udWkudGFibGUgdGQuY29sbGFwc2luZyB7XG4gIHdpZHRoOiAxcHg7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIEZpeGVkXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmZpeGVkLnRhYmxlIHtcbiAgdGFibGUtbGF5b3V0OiBmaXhlZDtcbn1cbi51aS5maXhlZC50YWJsZSB0aCxcbi51aS5maXhlZC50YWJsZSB0ZCB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgU2VsZWN0YWJsZVxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5zZWxlY3RhYmxlLnRhYmxlIHRib2R5IHRyOmhvdmVyLFxuLnVpLnRhYmxlIHRib2R5IHRyIHRkLnNlbGVjdGFibGU6aG92ZXIge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMDUpICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuOTUpICFpbXBvcnRhbnQ7XG59XG4udWkuc2VsZWN0YWJsZS5pbnZlcnRlZC50YWJsZSB0Ym9keSB0cjpob3Zlcixcbi51aS5pbnZlcnRlZC50YWJsZSB0Ym9keSB0ciB0ZC5zZWxlY3RhYmxlOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA4KSAhaW1wb3J0YW50O1xuICBjb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xufVxuLyogU2VsZWN0YWJsZSBDZWxsIExpbmsgKi9cbi51aS50YWJsZSB0Ym9keSB0ciB0ZC5zZWxlY3RhYmxlIHtcbiAgcGFkZGluZzogMGVtO1xufVxuLnVpLnRhYmxlIHRib2R5IHRyIHRkLnNlbGVjdGFibGUgPiBhOm5vdCgudWkpIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGNvbG9yOiBpbmhlcml0O1xuICBwYWRkaW5nOiAwLjhlbSAwLjhlbTtcbn1cbi8qIE90aGVyIFN0YXRlcyAqL1xuLnVpLnNlbGVjdGFibGUudGFibGUgdHIuZXJyb3I6aG92ZXIsXG4udWkudGFibGUgdHIgdGQuc2VsZWN0YWJsZS5lcnJvcjpob3Zlcixcbi51aS5zZWxlY3RhYmxlLnRhYmxlIHRyOmhvdmVyIHRkLmVycm9yIHtcbiAgYmFja2dyb3VuZDogI2ZmZTdlNyAhaW1wb3J0YW50O1xuICBjb2xvcjogIzk0MzYzNCAhaW1wb3J0YW50O1xufVxuLnVpLnNlbGVjdGFibGUudGFibGUgdHIud2FybmluZzpob3Zlcixcbi51aS50YWJsZSB0ciB0ZC5zZWxlY3RhYmxlLndhcm5pbmc6aG92ZXIsXG4udWkuc2VsZWN0YWJsZS50YWJsZSB0cjpob3ZlciB0ZC53YXJuaW5nIHtcbiAgYmFja2dyb3VuZDogI2ZmZjRlNCAhaW1wb3J0YW50O1xuICBjb2xvcjogIzQ5MzEwNyAhaW1wb3J0YW50O1xufVxuLnVpLnNlbGVjdGFibGUudGFibGUgdHIuYWN0aXZlOmhvdmVyLFxuLnVpLnRhYmxlIHRyIHRkLnNlbGVjdGFibGUuYWN0aXZlOmhvdmVyLFxuLnVpLnNlbGVjdGFibGUudGFibGUgdHI6aG92ZXIgdGQuYWN0aXZlIHtcbiAgYmFja2dyb3VuZDogI0UwRTBFMCAhaW1wb3J0YW50O1xuICBjb2xvcjogIzMzMzMzMyAhaW1wb3J0YW50O1xufVxuLnVpLnNlbGVjdGFibGUudGFibGUgdHIucG9zaXRpdmU6aG92ZXIsXG4udWkudGFibGUgdHIgdGQuc2VsZWN0YWJsZS5wb3NpdGl2ZTpob3Zlcixcbi51aS5zZWxlY3RhYmxlLnRhYmxlIHRyOmhvdmVyIHRkLnBvc2l0aXZlIHtcbiAgYmFja2dyb3VuZDogI2Y3ZmZlNiAhaW1wb3J0YW50O1xuICBjb2xvcjogIzI3NWIyOCAhaW1wb3J0YW50O1xufVxuLnVpLnNlbGVjdGFibGUudGFibGUgdHIubmVnYXRpdmU6aG92ZXIsXG4udWkudGFibGUgdHIgdGQuc2VsZWN0YWJsZS5uZWdhdGl2ZTpob3Zlcixcbi51aS5zZWxlY3RhYmxlLnRhYmxlIHRyOmhvdmVyIHRkLm5lZ2F0aXZlIHtcbiAgYmFja2dyb3VuZDogI2ZmZTdlNyAhaW1wb3J0YW50O1xuICBjb2xvcjogIzk0MzYzNCAhaW1wb3J0YW50O1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBBdHRhY2hlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWlkZGxlICovXG4udWkuYXR0YWNoZWQudGFibGUge1xuICB0b3A6IDBweDtcbiAgYm90dG9tOiAwcHg7XG4gIGJvcmRlci1yYWRpdXM6IDBweDtcbiAgbWFyZ2luOiAwZW0gLTFweDtcbiAgd2lkdGg6IGNhbGMoMTAwJSArIDJweCk7XG4gIG1heC13aWR0aDogY2FsYygxMDAlICsgMnB4KTtcbiAgYm94LXNoYWRvdzogbm9uZTtcbiAgYm9yZGVyOiAxcHggc29saWQgI0Q0RDRENTtcbn1cbi51aS5hdHRhY2hlZCArIC51aS5hdHRhY2hlZC50YWJsZTpub3QoLnRvcCkge1xuICBib3JkZXItdG9wOiBub25lO1xufVxuLyogVG9wICovXG4udWlbY2xhc3MqPVwidG9wIGF0dGFjaGVkXCJdLnRhYmxlIHtcbiAgYm90dG9tOiAwcHg7XG4gIG1hcmdpbi1ib3R0b206IDBlbTtcbiAgdG9wOiAwcHg7XG4gIG1hcmdpbi10b3A6IDFlbTtcbiAgYm9yZGVyLXJhZGl1czogMC40cmVtIDAuNHJlbSAwZW0gMGVtO1xufVxuLnVpLnRhYmxlW2NsYXNzKj1cInRvcCBhdHRhY2hlZFwiXTpmaXJzdC1jaGlsZCB7XG4gIG1hcmdpbi10b3A6IDBlbTtcbn1cbi8qIEJvdHRvbSAqL1xuLnVpW2NsYXNzKj1cImJvdHRvbSBhdHRhY2hlZFwiXS50YWJsZSB7XG4gIGJvdHRvbTogMHB4O1xuICBtYXJnaW4tdG9wOiAwZW07XG4gIHRvcDogMHB4O1xuICBtYXJnaW4tYm90dG9tOiAxZW07XG4gIGJveC1zaGFkb3c6IG5vbmUsIG5vbmU7XG4gIGJvcmRlci1yYWRpdXM6IDBlbSAwZW0gMC40cmVtIDAuNHJlbTtcbn1cbi51aVtjbGFzcyo9XCJib3R0b20gYXR0YWNoZWRcIl0udGFibGU6bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1ib3R0b206IDBlbTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgU3RyaXBlZFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRhYmxlIFN0cmlwaW5nICovXG4udWkuc3RyaXBlZC50YWJsZSA+IHRyOm50aC1jaGlsZCgybiksXG4udWkuc3RyaXBlZC50YWJsZSB0Ym9keSB0cjpudGgtY2hpbGQoMm4pIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCA1MCwgMC4wMik7XG59XG4vKiBTdHJpcGVzICovXG4udWkuaW52ZXJ0ZWQuc3RyaXBlZC50YWJsZSA+IHRyOm50aC1jaGlsZCgybiksXG4udWkuaW52ZXJ0ZWQuc3RyaXBlZC50YWJsZSB0Ym9keSB0cjpudGgtY2hpbGQoMm4pIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA1KTtcbn1cbi8qIEFsbG93IHN0cmlwZWQgYWN0aXZlIGhvdmVyICovXG4udWkuc3RyaXBlZC5zZWxlY3RhYmxlLnNlbGVjdGFibGUuc2VsZWN0YWJsZS50YWJsZSB0Ym9keSB0ci5hY3RpdmU6aG92ZXIge1xuICBiYWNrZ3JvdW5kOiAjRUZFRkVGICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuOTUpICFpbXBvcnRhbnQ7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICBTaW5nbGUgTGluZVxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS50YWJsZVtjbGFzcyo9XCJzaW5nbGUgbGluZVwiXSxcbi51aS50YWJsZSBbY2xhc3MqPVwic2luZ2xlIGxpbmVcIl0ge1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuLnVpLnRhYmxlW2NsYXNzKj1cInNpbmdsZSBsaW5lXCJdLFxuLnVpLnRhYmxlIFtjbGFzcyo9XCJzaW5nbGUgbGluZVwiXSB7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFJlZCAqL1xuLnVpLnJlZC50YWJsZSB7XG4gIGJvcmRlci10b3A6IDAuMmVtIHNvbGlkICNkZTNhM2U7XG59XG4udWkuaW52ZXJ0ZWQucmVkLnRhYmxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2RlM2EzZSAhaW1wb3J0YW50O1xuICBjb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xufVxuLyogT3JhbmdlICovXG4udWkub3JhbmdlLnRhYmxlIHtcbiAgYm9yZGVyLXRvcDogMC4yZW0gc29saWQgI2ZmOTUzMztcbn1cbi51aS5pbnZlcnRlZC5vcmFuZ2UudGFibGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmY5NTMzICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG59XG4vKiBZZWxsb3cgKi9cbi51aS55ZWxsb3cudGFibGUge1xuICBib3JkZXItdG9wOiAwLjJlbSBzb2xpZCAjRkJCRDA4O1xufVxuLnVpLmludmVydGVkLnllbGxvdy50YWJsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGQkJEMDggIWltcG9ydGFudDtcbiAgY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcbn1cbi8qIE9saXZlICovXG4udWkub2xpdmUudGFibGUge1xuICBib3JkZXItdG9wOiAwLjJlbSBzb2xpZCAjQjVDQzE4O1xufVxuLnVpLmludmVydGVkLm9saXZlLnRhYmxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0I1Q0MxOCAhaW1wb3J0YW50O1xuICBjb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xufVxuLyogR3JlZW4gKi9cbi51aS5ncmVlbi50YWJsZSB7XG4gIGJvcmRlci10b3A6IDAuMmVtIHNvbGlkICMxOWE1MzE7XG59XG4udWkuaW52ZXJ0ZWQuZ3JlZW4udGFibGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTlhNTMxICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG59XG4vKiBUZWFsICovXG4udWkudGVhbC50YWJsZSB7XG4gIGJvcmRlci10b3A6IDAuMmVtIHNvbGlkICMwMEI1QUQ7XG59XG4udWkuaW52ZXJ0ZWQudGVhbC50YWJsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMEI1QUQgIWltcG9ydGFudDtcbiAgY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcbn1cbi8qIEJsdWUgKi9cbi51aS5ibHVlLnRhYmxlIHtcbiAgYm9yZGVyLXRvcDogMC4yZW0gc29saWQgIzNmNTFiNTtcbn1cbi51aS5pbnZlcnRlZC5ibHVlLnRhYmxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzNmNTFiNSAhaW1wb3J0YW50O1xuICBjb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xufVxuLyogVmlvbGV0ICovXG4udWkudmlvbGV0LnRhYmxlIHtcbiAgYm9yZGVyLXRvcDogMC4yZW0gc29saWQgIzY0MzVDOTtcbn1cbi51aS5pbnZlcnRlZC52aW9sZXQudGFibGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNjQzNUM5ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG59XG4vKiBQdXJwbGUgKi9cbi51aS5wdXJwbGUudGFibGUge1xuICBib3JkZXItdG9wOiAwLjJlbSBzb2xpZCAjQTMzM0M4O1xufVxuLnVpLmludmVydGVkLnB1cnBsZS50YWJsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNBMzMzQzggIWltcG9ydGFudDtcbiAgY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcbn1cbi8qIFBpbmsgKi9cbi51aS5waW5rLnRhYmxlIHtcbiAgYm9yZGVyLXRvcDogMC4yZW0gc29saWQgI0UwMzk5Nztcbn1cbi51aS5pbnZlcnRlZC5waW5rLnRhYmxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0UwMzk5NyAhaW1wb3J0YW50O1xuICBjb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xufVxuLyogQnJvd24gKi9cbi51aS5icm93bi50YWJsZSB7XG4gIGJvcmRlci10b3A6IDAuMmVtIHNvbGlkICNBNTY3M0Y7XG59XG4udWkuaW52ZXJ0ZWQuYnJvd24udGFibGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjQTU2NzNGICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG59XG4vKiBHcmV5ICovXG4udWkuZ3JleS50YWJsZSB7XG4gIGJvcmRlci10b3A6IDAuMmVtIHNvbGlkICM3Njc2NzY7XG59XG4udWkuaW52ZXJ0ZWQuZ3JleS50YWJsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM3Njc2NzYgIWltcG9ydGFudDtcbiAgY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcbn1cbi8qIEJsYWNrICovXG4udWkuYmxhY2sudGFibGUge1xuICBib3JkZXItdG9wOiAwLjJlbSBzb2xpZCAjMDAwMDAwO1xufVxuLnVpLmludmVydGVkLmJsYWNrLnRhYmxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDAwMCAhaW1wb3J0YW50O1xuICBjb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICBDb2x1bW4gQ291bnRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBHcmlkIEJhc2VkICovXG4udWkub25lLmNvbHVtbi50YWJsZSB0ZCB7XG4gIHdpZHRoOiAxMDAlO1xufVxuLnVpLnR3by5jb2x1bW4udGFibGUgdGQge1xuICB3aWR0aDogNTAlO1xufVxuLnVpLnRocmVlLmNvbHVtbi50YWJsZSB0ZCB7XG4gIHdpZHRoOiAzMy4zMzMzMzMzMyU7XG59XG4udWkuZm91ci5jb2x1bW4udGFibGUgdGQge1xuICB3aWR0aDogMjUlO1xufVxuLnVpLmZpdmUuY29sdW1uLnRhYmxlIHRkIHtcbiAgd2lkdGg6IDIwJTtcbn1cbi51aS5zaXguY29sdW1uLnRhYmxlIHRkIHtcbiAgd2lkdGg6IDE2LjY2NjY2NjY3JTtcbn1cbi51aS5zZXZlbi5jb2x1bW4udGFibGUgdGQge1xuICB3aWR0aDogMTQuMjg1NzE0MjklO1xufVxuLnVpLmVpZ2h0LmNvbHVtbi50YWJsZSB0ZCB7XG4gIHdpZHRoOiAxMi41JTtcbn1cbi51aS5uaW5lLmNvbHVtbi50YWJsZSB0ZCB7XG4gIHdpZHRoOiAxMS4xMTExMTExMSU7XG59XG4udWkudGVuLmNvbHVtbi50YWJsZSB0ZCB7XG4gIHdpZHRoOiAxMCU7XG59XG4udWkuZWxldmVuLmNvbHVtbi50YWJsZSB0ZCB7XG4gIHdpZHRoOiA5LjA5MDkwOTA5JTtcbn1cbi51aS50d2VsdmUuY29sdW1uLnRhYmxlIHRkIHtcbiAgd2lkdGg6IDguMzMzMzMzMzMlO1xufVxuLnVpLnRoaXJ0ZWVuLmNvbHVtbi50YWJsZSB0ZCB7XG4gIHdpZHRoOiA3LjY5MjMwNzY5JTtcbn1cbi51aS5mb3VydGVlbi5jb2x1bW4udGFibGUgdGQge1xuICB3aWR0aDogNy4xNDI4NTcxNCU7XG59XG4udWkuZmlmdGVlbi5jb2x1bW4udGFibGUgdGQge1xuICB3aWR0aDogNi42NjY2NjY2NyU7XG59XG4udWkuc2l4dGVlbi5jb2x1bW4udGFibGUgdGQge1xuICB3aWR0aDogNi4yNSU7XG59XG4vKiBDb2x1bW4gV2lkdGggKi9cbi51aS50YWJsZSB0aC5vbmUud2lkZSxcbi51aS50YWJsZSB0ZC5vbmUud2lkZSB7XG4gIHdpZHRoOiA2LjI1JTtcbn1cbi51aS50YWJsZSB0aC50d28ud2lkZSxcbi51aS50YWJsZSB0ZC50d28ud2lkZSB7XG4gIHdpZHRoOiAxMi41JTtcbn1cbi51aS50YWJsZSB0aC50aHJlZS53aWRlLFxuLnVpLnRhYmxlIHRkLnRocmVlLndpZGUge1xuICB3aWR0aDogMTguNzUlO1xufVxuLnVpLnRhYmxlIHRoLmZvdXIud2lkZSxcbi51aS50YWJsZSB0ZC5mb3VyLndpZGUge1xuICB3aWR0aDogMjUlO1xufVxuLnVpLnRhYmxlIHRoLmZpdmUud2lkZSxcbi51aS50YWJsZSB0ZC5maXZlLndpZGUge1xuICB3aWR0aDogMzEuMjUlO1xufVxuLnVpLnRhYmxlIHRoLnNpeC53aWRlLFxuLnVpLnRhYmxlIHRkLnNpeC53aWRlIHtcbiAgd2lkdGg6IDM3LjUlO1xufVxuLnVpLnRhYmxlIHRoLnNldmVuLndpZGUsXG4udWkudGFibGUgdGQuc2V2ZW4ud2lkZSB7XG4gIHdpZHRoOiA0My43NSU7XG59XG4udWkudGFibGUgdGguZWlnaHQud2lkZSxcbi51aS50YWJsZSB0ZC5laWdodC53aWRlIHtcbiAgd2lkdGg6IDUwJTtcbn1cbi51aS50YWJsZSB0aC5uaW5lLndpZGUsXG4udWkudGFibGUgdGQubmluZS53aWRlIHtcbiAgd2lkdGg6IDU2LjI1JTtcbn1cbi51aS50YWJsZSB0aC50ZW4ud2lkZSxcbi51aS50YWJsZSB0ZC50ZW4ud2lkZSB7XG4gIHdpZHRoOiA2Mi41JTtcbn1cbi51aS50YWJsZSB0aC5lbGV2ZW4ud2lkZSxcbi51aS50YWJsZSB0ZC5lbGV2ZW4ud2lkZSB7XG4gIHdpZHRoOiA2OC43NSU7XG59XG4udWkudGFibGUgdGgudHdlbHZlLndpZGUsXG4udWkudGFibGUgdGQudHdlbHZlLndpZGUge1xuICB3aWR0aDogNzUlO1xufVxuLnVpLnRhYmxlIHRoLnRoaXJ0ZWVuLndpZGUsXG4udWkudGFibGUgdGQudGhpcnRlZW4ud2lkZSB7XG4gIHdpZHRoOiA4MS4yNSU7XG59XG4udWkudGFibGUgdGguZm91cnRlZW4ud2lkZSxcbi51aS50YWJsZSB0ZC5mb3VydGVlbi53aWRlIHtcbiAgd2lkdGg6IDg3LjUlO1xufVxuLnVpLnRhYmxlIHRoLmZpZnRlZW4ud2lkZSxcbi51aS50YWJsZSB0ZC5maWZ0ZWVuLndpZGUge1xuICB3aWR0aDogOTMuNzUlO1xufVxuLnVpLnRhYmxlIHRoLnNpeHRlZW4ud2lkZSxcbi51aS50YWJsZSB0ZC5zaXh0ZWVuLndpZGUge1xuICB3aWR0aDogMTAwJTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBTb3J0YWJsZVxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5zb3J0YWJsZS50YWJsZSB0aGVhZCB0aCB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpO1xuICBjb2xvcjogIzMzMzMzMztcbn1cbi51aS5zb3J0YWJsZS50YWJsZSB0aGVhZCB0aDpmaXJzdC1jaGlsZCB7XG4gIGJvcmRlci1sZWZ0OiBub25lO1xufVxuLnVpLnNvcnRhYmxlLnRhYmxlIHRoZWFkIHRoLnNvcnRlZCxcbi51aS5zb3J0YWJsZS50YWJsZSB0aGVhZCB0aC5zb3J0ZWQ6aG92ZXIge1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbn1cbi51aS5zb3J0YWJsZS50YWJsZSB0aGVhZCB0aDphZnRlciB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBpbmhlcml0O1xuICBjb250ZW50OiAnJztcbiAgaGVpZ2h0OiAxZW07XG4gIHdpZHRoOiBhdXRvO1xuICBvcGFjaXR5OiAwLjg7XG4gIG1hcmdpbjogMGVtIDBlbSAwZW0gMC41ZW07XG4gIGZvbnQtZmFtaWx5OiAnSWNvbnMnO1xufVxuLnVpLnNvcnRhYmxlLnRhYmxlIHRoZWFkIHRoLmFzY2VuZGluZzphZnRlciB7XG4gIGNvbnRlbnQ6ICdcXGYwZDgnO1xufVxuLnVpLnNvcnRhYmxlLnRhYmxlIHRoZWFkIHRoLmRlc2NlbmRpbmc6YWZ0ZXIge1xuICBjb250ZW50OiAnXFxmMGQ3Jztcbn1cbi8qIEhvdmVyICovXG4udWkuc29ydGFibGUudGFibGUgdGguZGlzYWJsZWQ6aG92ZXIge1xuICBjdXJzb3I6IGF1dG87XG4gIGNvbG9yOiByZ2JhKDQwLCA0MCwgNDAsIDAuMyk7XG59XG4udWkuc29ydGFibGUudGFibGUgdGhlYWQgdGg6aG92ZXIge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMDUpO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjgpO1xufVxuLyogU29ydGVkICovXG4udWkuc29ydGFibGUudGFibGUgdGhlYWQgdGguc29ydGVkIHtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjA1KTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC45NSk7XG59XG4udWkuc29ydGFibGUudGFibGUgdGhlYWQgdGguc29ydGVkOmFmdGVyIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuLyogU29ydGVkIEhvdmVyICovXG4udWkuc29ydGFibGUudGFibGUgdGhlYWQgdGguc29ydGVkOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjA1KTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC45NSk7XG59XG4vKiBJbnZlcnRlZCAqL1xuLnVpLmludmVydGVkLnNvcnRhYmxlLnRhYmxlIHRoZWFkIHRoLnNvcnRlZCB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSkgbGluZWFyLWdyYWRpZW50KHRyYW5zcGFyZW50LCByZ2JhKDAsIDAsIDAsIDAuMDUpKTtcbiAgY29sb3I6ICNmZmZmZmY7XG59XG4udWkuaW52ZXJ0ZWQuc29ydGFibGUudGFibGUgdGhlYWQgdGg6aG92ZXIge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDgpIGxpbmVhci1ncmFkaWVudCh0cmFuc3BhcmVudCwgcmdiYSgwLCAwLCAwLCAwLjA1KSk7XG4gIGNvbG9yOiAjZmZmZmZmO1xufVxuLnVpLmludmVydGVkLnNvcnRhYmxlLnRhYmxlIHRoZWFkIHRoIHtcbiAgYm9yZGVyLWxlZnQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3JkZXItcmlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgIEludmVydGVkXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGV4dCBDb2xvciAqL1xuLnVpLmludmVydGVkLnRhYmxlIHtcbiAgYmFja2dyb3VuZDogIzMzMzMzMztcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45KTtcbiAgYm9yZGVyOiBub25lO1xufVxuLnVpLmludmVydGVkLnRhYmxlIHRoIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjE1KTtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSkgIWltcG9ydGFudDtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45KTtcbn1cbi51aS5pbnZlcnRlZC50YWJsZSB0ciB0ZCB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpICFpbXBvcnRhbnQ7XG59XG4udWkuaW52ZXJ0ZWQudGFibGUgdHIuZGlzYWJsZWQgdGQsXG4udWkuaW52ZXJ0ZWQudGFibGUgdHIgdGQuZGlzYWJsZWQsXG4udWkuaW52ZXJ0ZWQudGFibGUgdHIuZGlzYWJsZWQ6aG92ZXIgdGQsXG4udWkuaW52ZXJ0ZWQudGFibGUgdHI6aG92ZXIgdGQuZGlzYWJsZWQge1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgY29sb3I6IHJnYmEoMjI1LCAyMjUsIDIyNSwgMC4zKTtcbn1cbi8qIERlZmluaXRpb24gKi9cbi51aS5pbnZlcnRlZC5kZWZpbml0aW9uLnRhYmxlIHRmb290Om5vdCguZnVsbC13aWR0aCkgdGg6Zmlyc3QtY2hpbGQsXG4udWkuaW52ZXJ0ZWQuZGVmaW5pdGlvbi50YWJsZSB0aGVhZDpub3QoLmZ1bGwtd2lkdGgpIHRoOmZpcnN0LWNoaWxkIHtcbiAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbn1cbi51aS5pbnZlcnRlZC5kZWZpbml0aW9uLnRhYmxlIHRyIHRkOmZpcnN0LWNoaWxkIHtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjAyKTtcbiAgY29sb3I6ICNmZmZmZmY7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICBDb2xsYXBzaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmNvbGxhcHNpbmcudGFibGUge1xuICB3aWR0aDogYXV0bztcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2ljXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmJhc2ljLnRhYmxlIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMzQsIDM2LCAzOCwgMC4xNSk7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG59XG4udWkuYmFzaWMudGFibGUgdGhlYWQsXG4udWkuYmFzaWMudGFibGUgdGZvb3Qge1xuICBib3gtc2hhZG93OiBub25lO1xufVxuLnVpLmJhc2ljLnRhYmxlIHRoIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1sZWZ0OiBub25lO1xufVxuLnVpLmJhc2ljLnRhYmxlIHRib2R5IHRyIHtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgMC4xKTtcbn1cbi51aS5iYXNpYy50YWJsZSB0ZCB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xufVxuLnVpLmJhc2ljLnN0cmlwZWQudGFibGUgdGJvZHkgdHI6bnRoLWNoaWxkKDJuKSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4wNSkgIWltcG9ydGFudDtcbn1cbi8qIFZlcnkgQmFzaWMgKi9cbi51aVtjbGFzcyo9XCJ2ZXJ5IGJhc2ljXCJdLnRhYmxlIHtcbiAgYm9yZGVyOiBub25lO1xufVxuLnVpW2NsYXNzKj1cInZlcnkgYmFzaWNcIl0udGFibGU6bm90KC5zb3J0YWJsZSk6bm90KC5zdHJpcGVkKSB0aCxcbi51aVtjbGFzcyo9XCJ2ZXJ5IGJhc2ljXCJdLnRhYmxlOm5vdCguc29ydGFibGUpOm5vdCguc3RyaXBlZCkgdGQge1xuICBwYWRkaW5nOiAnJztcbn1cbi51aVtjbGFzcyo9XCJ2ZXJ5IGJhc2ljXCJdLnRhYmxlOm5vdCguc29ydGFibGUpOm5vdCguc3RyaXBlZCkgdGg6Zmlyc3QtY2hpbGQsXG4udWlbY2xhc3MqPVwidmVyeSBiYXNpY1wiXS50YWJsZTpub3QoLnNvcnRhYmxlKTpub3QoLnN0cmlwZWQpIHRkOmZpcnN0LWNoaWxkIHtcbiAgcGFkZGluZy1sZWZ0OiAwZW07XG59XG4udWlbY2xhc3MqPVwidmVyeSBiYXNpY1wiXS50YWJsZTpub3QoLnNvcnRhYmxlKTpub3QoLnN0cmlwZWQpIHRoOmxhc3QtY2hpbGQsXG4udWlbY2xhc3MqPVwidmVyeSBiYXNpY1wiXS50YWJsZTpub3QoLnNvcnRhYmxlKTpub3QoLnN0cmlwZWQpIHRkOmxhc3QtY2hpbGQge1xuICBwYWRkaW5nLXJpZ2h0OiAwZW07XG59XG4udWlbY2xhc3MqPVwidmVyeSBiYXNpY1wiXS50YWJsZTpub3QoLnNvcnRhYmxlKTpub3QoLnN0cmlwZWQpIHRoZWFkIHRyOmZpcnN0LWNoaWxkIHRoIHtcbiAgcGFkZGluZy10b3A6IDBlbTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgQ2VsbGVkXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmNlbGxlZC50YWJsZSB0ciB0aCxcbi51aS5jZWxsZWQudGFibGUgdHIgdGQge1xuICBib3JkZXItbGVmdDogMXB4IHNvbGlkIHJnYmEoMzQsIDM2LCAzOCwgMC4xKTtcbn1cbi51aS5jZWxsZWQudGFibGUgdHIgdGg6Zmlyc3QtY2hpbGQsXG4udWkuY2VsbGVkLnRhYmxlIHRyIHRkOmZpcnN0LWNoaWxkIHtcbiAgYm9yZGVyLWxlZnQ6IG5vbmU7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIFBhZGRlZFxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5wYWRkZWQudGFibGUgdGgge1xuICBwYWRkaW5nLWxlZnQ6IDFlbTtcbiAgcGFkZGluZy1yaWdodDogMWVtO1xufVxuLnVpLnBhZGRlZC50YWJsZSB0aCxcbi51aS5wYWRkZWQudGFibGUgdGQge1xuICBwYWRkaW5nOiAxZW0gMWVtO1xufVxuLyogVmVyeSAqL1xuLnVpW2NsYXNzKj1cInZlcnkgcGFkZGVkXCJdLnRhYmxlIHRoIHtcbiAgcGFkZGluZy1sZWZ0OiAxLjVlbTtcbiAgcGFkZGluZy1yaWdodDogMS41ZW07XG59XG4udWlbY2xhc3MqPVwidmVyeSBwYWRkZWRcIl0udGFibGUgdGQge1xuICBwYWRkaW5nOiAxLjVlbSAxLjVlbTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgQ29tcGFjdFxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5jb21wYWN0LnRhYmxlIHRoIHtcbiAgcGFkZGluZy1sZWZ0OiAwLjdlbTtcbiAgcGFkZGluZy1yaWdodDogMC43ZW07XG59XG4udWkuY29tcGFjdC50YWJsZSB0ZCB7XG4gIHBhZGRpbmc6IDAuNWVtIDAuN2VtO1xufVxuLyogVmVyeSAqL1xuLnVpW2NsYXNzKj1cInZlcnkgY29tcGFjdFwiXS50YWJsZSB0aCB7XG4gIHBhZGRpbmctbGVmdDogMC42ZW07XG4gIHBhZGRpbmctcmlnaHQ6IDAuNmVtO1xufVxuLnVpW2NsYXNzKj1cInZlcnkgY29tcGFjdFwiXS50YWJsZSB0ZCB7XG4gIHBhZGRpbmc6IDAuNGVtIDAuNmVtO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBTbWFsbCAqL1xuLnVpLnNtYWxsLnRhYmxlIHtcbiAgZm9udC1zaXplOiAwLjllbTtcbn1cbi8qIFN0YW5kYXJkICovXG4udWkudGFibGUge1xuICBmb250LXNpemU6IDFlbTtcbn1cbi8qIExhcmdlICovXG4udWkubGFyZ2UudGFibGUge1xuICBmb250LXNpemU6IDEuMWVtO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgT3ZlcnJpZGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogVmlld3MgKi9cbi8qIVxuICogIyBTZW1hbnRpYyBVSSAtIEFkXG4gKiBodHRwOi8vZ2l0aHViLmNvbS9zZW1hbnRpYy1vcmcvc2VtYW50aWMtdWkvXG4gKlxuICpcbiAqIENvcHlyaWdodCAyMDEzIENvbnRyaWJ1dG9yc1xuICogUmVsZWFzZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlXG4gKiBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUXG4gKlxuICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKlxuXG7ilojilojilojilojilojilojilojilojilZfilojilojilZcgIOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKVlyAgIOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl1xu4pWa4pWQ4pWQ4paI4paI4pWU4pWQ4pWQ4pWd4paI4paI4pWRICDilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilojilojilZcg4paI4paI4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWd4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWdXG4gICDilojilojilZEgICDilojilojilojilojilojilojilojilZHilojilojilojilojilojilZcgIOKWiOKWiOKVlOKWiOKWiOKWiOKWiOKVlOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4paI4paI4paI4paI4paI4pWXXG4gICDilojilojilZEgICDilojilojilZTilZDilZDilojilojilZHilojilojilZTilZDilZDilZ0gIOKWiOKWiOKVkeKVmuKWiOKWiOKVlOKVneKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4pWa4pWQ4pWQ4pWQ4pWQ4paI4paI4pWRXG4gICDilojilojilZEgICDilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVkSDilZrilZDilZ0g4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWRXG4gICDilZrilZDilZ0gICDilZrilZDilZ0gIOKVmuKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVneKVmuKVkOKVnSAgICAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWdXG5cbiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBUaGVtZSBTZWxlY3Rpb25cbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBUbyBvdmVycmlkZSBhIHRoZW1lIGZvciBhbiBpbmRpdmlkdWFsIGVsZW1lbnRcbiAgIHNwZWNpZnkgdGhlbWUgbmFtZSBiZWxvd1xuKi9cbi8qIEdsb2JhbCAqL1xuLyogRWxlbWVudHMgKi9cbi8qIENvbGxlY3Rpb25zICovXG4vKiBNb2R1bGVzICovXG4vKiBWaWV3cyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIEZvbGRlcnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBQYXRoIHRvIHRoZW1lIHBhY2thZ2VzICovXG4vKiBQYXRoIHRvIHNpdGUgb3ZlcnJpZGUgZm9sZGVyICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgSW1wb3J0IFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgSW1wb3J0IERpcmVjdGl2ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIFRoZW1lXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgIFNpdGUgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kb3JzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFBhY2thZ2VkIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRvcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogQ29tcG9uZW50J3Mgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZG9ycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBTaXRlIHRoZW1lIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICBVc2VyIEdsb2JhbCBWYXJpYWJsZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBtYXJzbyBjb2xvcnMgKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiBDb21wb25lbnQgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICBBZHZlcnRpc2VtZW50XG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogUGFja2FnZWQgVGhlbWUgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgQWR2ZXJ0aXNlbWVudFxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFNpdGUgVGhlbWUgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgVXNlciBWYXJpYWJsZSBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIE1peC1pbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE92ZXJyaWRlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBFbmQgQ29uZmlnICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgQWR2ZXJ0aXNlbWVudFxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi51aS5hZCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBtYXJnaW46IDFlbSAwZW07XG59XG4udWkuYWQ6Zmlyc3QtY2hpbGQge1xuICBtYXJnaW46IDBlbTtcbn1cbi51aS5hZDpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luOiAwZW07XG59XG4udWkuYWQgaWZyYW1lIHtcbiAgbWFyZ2luOiAwZW07XG4gIHBhZGRpbmc6IDBlbTtcbiAgYm9yZGVyOiBub25lO1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBDb21tb25cbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBMZWFkZXJib2FyZCAqL1xuLnVpLmxlYWRlcmJvYXJkLmFkIHtcbiAgd2lkdGg6IDcyOHB4O1xuICBoZWlnaHQ6IDkwcHg7XG59XG4vKiBNZWRpdW0gUmVjdGFuZ2xlICovXG4udWlbY2xhc3MqPVwibWVkaXVtIHJlY3RhbmdsZVwiXS5hZCB7XG4gIHdpZHRoOiAzMDBweDtcbiAgaGVpZ2h0OiAyNTBweDtcbn1cbi8qIExhcmdlIFJlY3RhbmdsZSAqL1xuLnVpW2NsYXNzKj1cImxhcmdlIHJlY3RhbmdsZVwiXS5hZCB7XG4gIHdpZHRoOiAzMzZweDtcbiAgaGVpZ2h0OiAyODBweDtcbn1cbi8qIEhhbGYgUGFnZSAqL1xuLnVpW2NsYXNzKj1cImhhbGYgcGFnZVwiXS5hZCB7XG4gIHdpZHRoOiAzMDBweDtcbiAgaGVpZ2h0OiA2MDBweDtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgU3F1YXJlXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogU3F1YXJlICovXG4udWkuc3F1YXJlLmFkIHtcbiAgd2lkdGg6IDI1MHB4O1xuICBoZWlnaHQ6IDI1MHB4O1xufVxuLyogU21hbGwgU3F1YXJlICovXG4udWlbY2xhc3MqPVwic21hbGwgc3F1YXJlXCJdLmFkIHtcbiAgd2lkdGg6IDIwMHB4O1xuICBoZWlnaHQ6IDIwMHB4O1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgIFJlY3RhbmdsZVxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNtYWxsIFJlY3RhbmdsZSAqL1xuLnVpW2NsYXNzKj1cInNtYWxsIHJlY3RhbmdsZVwiXS5hZCB7XG4gIHdpZHRoOiAxODBweDtcbiAgaGVpZ2h0OiAxNTBweDtcbn1cbi8qIFZlcnRpY2FsIFJlY3RhbmdsZSAqL1xuLnVpW2NsYXNzKj1cInZlcnRpY2FsIHJlY3RhbmdsZVwiXS5hZCB7XG4gIHdpZHRoOiAyNDBweDtcbiAgaGVpZ2h0OiA0MDBweDtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgQnV0dG9uXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmJ1dHRvbi5hZCB7XG4gIHdpZHRoOiAxMjBweDtcbiAgaGVpZ2h0OiA5MHB4O1xufVxuLnVpW2NsYXNzKj1cInNxdWFyZSBidXR0b25cIl0uYWQge1xuICB3aWR0aDogMTI1cHg7XG4gIGhlaWdodDogMTI1cHg7XG59XG4udWlbY2xhc3MqPVwic21hbGwgYnV0dG9uXCJdLmFkIHtcbiAgd2lkdGg6IDEyMHB4O1xuICBoZWlnaHQ6IDYwcHg7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICBTa3lzY3JhcGVyc1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNreXNjcmFwZXIgKi9cbi51aS5za3lzY3JhcGVyLmFkIHtcbiAgd2lkdGg6IDEyMHB4O1xuICBoZWlnaHQ6IDYwMHB4O1xufVxuLyogV2lkZSBTa3lzY3JhcGVyICovXG4udWlbY2xhc3MqPVwid2lkZSBza3lzY3JhcGVyXCJdLmFkIHtcbiAgd2lkdGg6IDE2MHB4O1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBCYW5uZXJzXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogQmFubmVyICovXG4udWkuYmFubmVyLmFkIHtcbiAgd2lkdGg6IDQ2OHB4O1xuICBoZWlnaHQ6IDYwcHg7XG59XG4vKiBWZXJ0aWNhbCBCYW5uZXIgKi9cbi51aVtjbGFzcyo9XCJ2ZXJ0aWNhbCBiYW5uZXJcIl0uYWQge1xuICB3aWR0aDogMTIwcHg7XG4gIGhlaWdodDogMjQwcHg7XG59XG4vKiBUb3AgQmFubmVyICovXG4udWlbY2xhc3MqPVwidG9wIGJhbm5lclwiXS5hZCB7XG4gIHdpZHRoOiA5MzBweDtcbiAgaGVpZ2h0OiAxODBweDtcbn1cbi8qIEhhbGYgQmFubmVyICovXG4udWlbY2xhc3MqPVwiaGFsZiBiYW5uZXJcIl0uYWQge1xuICB3aWR0aDogMjM0cHg7XG4gIGhlaWdodDogNjBweDtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBCb2FyZHNcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBMZWFkZXJib2FyZCAqL1xuLnVpW2NsYXNzKj1cImxhcmdlIGxlYWRlcmJvYXJkXCJdLmFkIHtcbiAgd2lkdGg6IDk3MHB4O1xuICBoZWlnaHQ6IDkwcHg7XG59XG4vKiBCaWxsYm9hcmQgKi9cbi51aS5iaWxsYm9hcmQuYWQge1xuICB3aWR0aDogOTcwcHg7XG4gIGhlaWdodDogMjUwcHg7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgUGFub3JhbWFcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBQYW5vcmFtYSAqL1xuLnVpLnBhbm9yYW1hLmFkIHtcbiAgd2lkdGg6IDk4MHB4O1xuICBoZWlnaHQ6IDEyMHB4O1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBOZXRib2FyZFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE5ldGJvYXJkICovXG4udWkubmV0Ym9hcmQuYWQge1xuICB3aWR0aDogNTgwcHg7XG4gIGhlaWdodDogNDAwcHg7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIE1vYmlsZVxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExhcmdlIE1vYmlsZSBCYW5uZXIgKi9cbi51aVtjbGFzcyo9XCJsYXJnZSBtb2JpbGUgYmFubmVyXCJdLmFkIHtcbiAgd2lkdGg6IDMyMHB4O1xuICBoZWlnaHQ6IDEwMHB4O1xufVxuLyogTW9iaWxlIExlYWRlcmJvYXJkICovXG4udWlbY2xhc3MqPVwibW9iaWxlIGxlYWRlcmJvYXJkXCJdLmFkIHtcbiAgd2lkdGg6IDMyMHB4O1xuICBoZWlnaHQ6IDUwcHg7XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFR5cGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogTW9iaWxlIFNpemVzICovXG4udWkubW9iaWxlLmFkIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgLnVpLm1vYmlsZS5hZCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFZhcmlhdGlvbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4udWkuY2VudGVyZWQuYWQge1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xufVxuLnVpLnRlc3QuYWQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJhY2tncm91bmQ6ICM1NDU0NTQ7XG59XG4udWkudGVzdC5hZDphZnRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIGxlZnQ6IDUwJTtcbiAgd2lkdGg6IDEwMCU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpIHRyYW5zbGF0ZVkoLTUwJSk7XG4gIGNvbnRlbnQ6ICdBZCc7XG4gIGNvbG9yOiAjZmZmZmZmO1xuICBmb250LXNpemU6IDFlbTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG4udWkubW9iaWxlLnRlc3QuYWQ6YWZ0ZXIge1xuICBmb250LXNpemU6IDAuOWVtO1xufVxuLnVpLnRlc3QuYWRbZGF0YS10ZXh0XTphZnRlciB7XG4gIGNvbnRlbnQ6IGF0dHIoZGF0YS10ZXh0KTtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBUaGVtZSBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgIFVzZXIgVmFyaWFibGUgT3ZlcnJpZGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyohXG4gKiAjIFNlbWFudGljIFVJIC0gSXRlbVxuICogaHR0cDovL2dpdGh1Yi5jb20vc2VtYW50aWMtb3JnL3NlbWFudGljLXVpL1xuICpcbiAqXG4gKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2VcbiAqIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVRcbiAqXG4gKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qXG5cbuKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVlyAg4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4pWXICAg4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWXXG7ilZrilZDilZDilojilojilZTilZDilZDilZ3ilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKWiOKWiOKVlyDilojilojilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilZTilZDilZDilZDilZDilZ1cbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4pWU4paI4paI4paI4paI4pWU4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilojilojilojilojilojilZdcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVlOKVkOKVkOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4paI4paI4pWR4pWa4paI4paI4pWU4pWd4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilZrilZDilZDilZDilZDilojilojilZFcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWRIOKVmuKVkOKVnSDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZFcbiAgIOKVmuKVkOKVnSAgIOKVmuKVkOKVnSAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWdICAgICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ1cblxuKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIFRoZW1lIFNlbGVjdGlvblxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFRvIG92ZXJyaWRlIGEgdGhlbWUgZm9yIGFuIGluZGl2aWR1YWwgZWxlbWVudFxuICAgc3BlY2lmeSB0aGVtZSBuYW1lIGJlbG93XG4qL1xuLyogR2xvYmFsICovXG4vKiBFbGVtZW50cyAqL1xuLyogQ29sbGVjdGlvbnMgKi9cbi8qIE1vZHVsZXMgKi9cbi8qIFZpZXdzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgRm9sZGVyc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFBhdGggdG8gdGhlbWUgcGFja2FnZXMgKi9cbi8qIFBhdGggdG8gc2l0ZSBvdmVycmlkZSBmb2xkZXIgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBJbXBvcnQgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBJbXBvcnQgRGlyZWN0aXZlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgVGhlbWVcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgU2l0ZSBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0IHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRvcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogUGFja2FnZWQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZG9ycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBDb21wb25lbnQncyBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kb3JzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFNpdGUgdGhlbWUgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgIFVzZXIgR2xvYmFsIFZhcmlhYmxlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIG1hcnNvIGNvbG9ycyAqL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuIENvbXBvbmVudCBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0ICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIENhcmRcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgIFZpZXdcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNoYWRvdyAqL1xuLyogQ2FyZCAqL1xuLyogQ2FyZCBHcm91cCAqL1xuLyogQ29uc2VjdXRpdmUgQ2FyZHMgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIENvbnRlbnRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEltYWdlICovXG4vKiBDb250ZW50ICovXG4vKiBIZWFkZXIgKi9cbi8qIE1ldGFkYXRhICovXG4vKiBJY29ucyAqL1xuLyogTGlua3MgKi9cbi8qIERlc2NyaXB0aW9uICovXG4vKiBDb250ZW50IEltYWdlICovXG4vKiBBdmF0YXIgSW1hZ2UgKi9cbi8qIFBhcmFncmFwaCAqL1xuLyogRGltbWVyICovXG4vKiBBZGRpdGlvbmFsIENvbnRlbnQgKi9cbi8qIEV4dHJhIExpbmtzICovXG4vKiBCdXR0b25zICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFZhcmlhdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExpbmsgKi9cbi8qIFJhaXNlZCAqL1xuLyogQ2FyZCBDb3VudCAqL1xuLyogU3RhY2thYmxlICovXG4vKiBTaXplcyAqL1xuLyogQ29sb3JlZCAqL1xuLyogUGFja2FnZWQgVGhlbWUgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgQ2FyZFxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICAgVmlld1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2hhZG93ICovXG4vKiBDYXJkICovXG4vKiBDYXJkIEdyb3VwICovXG4vKiBDb25zZWN1dGl2ZSBDYXJkcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQ29udGVudFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW1hZ2UgKi9cbi8qIENvbnRlbnQgKi9cbi8qIEhlYWRlciAqL1xuLyogTWV0YWRhdGEgKi9cbi8qIEljb25zICovXG4vKiBMaW5rcyAqL1xuLyogRGVzY3JpcHRpb24gKi9cbi8qIENvbnRlbnQgSW1hZ2UgKi9cbi8qIEF2YXRhciBJbWFnZSAqL1xuLyogUGFyYWdyYXBoICovXG4vKiBEaW1tZXIgKi9cbi8qIEFkZGl0aW9uYWwgQ29udGVudCAqL1xuLyogRXh0cmEgTGlua3MgKi9cbi8qIEJ1dHRvbnMgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgVmFyaWF0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTGluayAqL1xuLyogUmFpc2VkICovXG4vKiBDYXJkIENvdW50ICovXG4vKiBTdGFja2FibGUgKi9cbi8qIFNpemVzICovXG4vKiBDb2xvcmVkICovXG4vKiBTaXRlIFRoZW1lICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgIFVzZXIgVmFyaWFibGUgT3ZlcnJpZGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBNaXgtaW5zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBPdmVycmlkZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRW5kIENvbmZpZyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFN0YW5kYXJkXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgICAgQ2FyZFxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5jYXJkcyA+IC5jYXJkLFxuLnVpLmNhcmQge1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgd2lkdGg6IDI5MHB4O1xuICBtaW4taGVpZ2h0OiAwcHg7XG4gIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gIHBhZGRpbmc6IDBlbTtcbiAgYm9yZGVyOiBub25lO1xuICBib3JkZXItcmFkaXVzOiAwLjRyZW07XG4gIGJveC1zaGFkb3c6IDBweCAxcHggM3B4IDBweCAjRDRENEQ1LCAwcHggMHB4IDBweCAxcHggI0Q0RDRENTtcbiAgdHJhbnNpdGlvbjogYm94LXNoYWRvdyAwLjFzIGVhc2UsIHRyYW5zZm9ybSAwLjFzIGVhc2U7XG4gIHotaW5kZXg6ICcnO1xufVxuLnVpLmNhcmQge1xuICBtYXJnaW46IDFlbSAwZW07XG59XG4udWkuY2FyZHMgPiAuY2FyZCBhLFxuLnVpLmNhcmQgYSB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbi51aS5jYXJkOmZpcnN0LWNoaWxkIHtcbiAgbWFyZ2luLXRvcDogMGVtO1xufVxuLnVpLmNhcmQ6bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1ib3R0b206IDBlbTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgIENhcmRzXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmNhcmRzIHtcbiAgZGlzcGxheTogZmxleDtcbiAgbWFyZ2luOiAtMC44NzVlbSAtMC41ZW07XG4gIGZsZXgtd3JhcDogd3JhcDtcbn1cbi51aS5jYXJkcyA+IC5jYXJkIHtcbiAgZGlzcGxheTogZmxleDtcbiAgbWFyZ2luOiAwLjg3NWVtIDAuNWVtO1xuICBmbG9hdDogbm9uZTtcbn1cbi8qIENsZWFyaW5nICovXG4udWkuY2FyZHM6YWZ0ZXIsXG4udWkuY2FyZDphZnRlciB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBjb250ZW50OiAnICc7XG4gIGhlaWdodDogMHB4O1xuICBjbGVhcjogYm90aDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xufVxuLyogQ29uc2VjdXRpdmUgQ2FyZCBHcm91cHMgUHJlc2VydmUgUm93IFNwYWNpbmcgKi9cbi51aS5jYXJkcyB+IC51aS5jYXJkcyB7XG4gIG1hcmdpbi10b3A6IDAuODc1ZW07XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gIFJvdW5kZWQgRWRnZXNcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuY2FyZHMgPiAuY2FyZCA+IDpmaXJzdC1jaGlsZCxcbi51aS5jYXJkID4gOmZpcnN0LWNoaWxkIHtcbiAgYm9yZGVyLXJhZGl1czogMC40cmVtIDAuNHJlbSAwZW0gMGVtICFpbXBvcnRhbnQ7XG4gIGJvcmRlci10b3A6IG5vbmUgIWltcG9ydGFudDtcbn1cbi51aS5jYXJkcyA+IC5jYXJkID4gOmxhc3QtY2hpbGQsXG4udWkuY2FyZCA+IDpsYXN0LWNoaWxkIHtcbiAgYm9yZGVyLXJhZGl1czogMGVtIDBlbSAwLjRyZW0gMC40cmVtICFpbXBvcnRhbnQ7XG59XG4udWkuY2FyZHMgPiAuY2FyZCA+IDpvbmx5LWNoaWxkLFxuLnVpLmNhcmQgPiA6b25seS1jaGlsZCB7XG4gIGJvcmRlci1yYWRpdXM6IDAuNHJlbSAhaW1wb3J0YW50O1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBJbWFnZXNcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuY2FyZHMgPiAuY2FyZCA+IC5pbWFnZSxcbi51aS5jYXJkID4gLmltYWdlIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgZmxleDogMCAwIGF1dG87XG4gIHBhZGRpbmc6IDBlbTtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjA1KTtcbn1cbi51aS5jYXJkcyA+IC5jYXJkID4gLmltYWdlID4gaW1nLFxuLnVpLmNhcmQgPiAuaW1hZ2UgPiBpbWcge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogYXV0bztcbiAgYm9yZGVyLXJhZGl1czogaW5oZXJpdDtcbn1cbi51aS5jYXJkcyA+IC5jYXJkID4gLmltYWdlOm5vdCgudWkpID4gaW1nLFxuLnVpLmNhcmQgPiAuaW1hZ2U6bm90KC51aSkgPiBpbWcge1xuICBib3JkZXI6IG5vbmU7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIENvbnRlbnRcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuY2FyZHMgPiAuY2FyZCA+IC5jb250ZW50LFxuLnVpLmNhcmQgPiAuY29udGVudCB7XG4gIGZsZXgtZ3JvdzogMTtcbiAgYm9yZGVyOiBub25lO1xuICBib3JkZXItdG9wOiAxcHggc29saWQgcmdiYSgzNCwgMzYsIDM4LCAwLjEpO1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICBtYXJnaW46IDBlbTtcbiAgcGFkZGluZzogMWVtIDFlbTtcbiAgYm94LXNoYWRvdzogbm9uZTtcbiAgZm9udC1zaXplOiAxZW07XG4gIGJvcmRlci1yYWRpdXM6IDBlbTtcbn1cbi51aS5jYXJkcyA+IC5jYXJkID4gLmNvbnRlbnQ6YWZ0ZXIsXG4udWkuY2FyZCA+IC5jb250ZW50OmFmdGVyIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGNvbnRlbnQ6ICcgJztcbiAgaGVpZ2h0OiAwcHg7XG4gIGNsZWFyOiBib3RoO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG59XG4udWkuY2FyZHMgPiAuY2FyZCA+IC5jb250ZW50ID4gLmhlYWRlcixcbi51aS5jYXJkID4gLmNvbnRlbnQgPiAuaGVhZGVyIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbjogJyc7XG4gIGZvbnQtZmFtaWx5OiAnRXhvIDInLCAnTGF0bycsIEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODUpO1xufVxuLyogRGVmYXVsdCBIZWFkZXIgU2l6ZSAqL1xuLnVpLmNhcmRzID4gLmNhcmQgPiAuY29udGVudCA+IC5oZWFkZXI6bm90KC51aSksXG4udWkuY2FyZCA+IC5jb250ZW50ID4gLmhlYWRlcjpub3QoLnVpKSB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBmb250LXNpemU6IDEuM2VtO1xuICBtYXJnaW4tdG9wOiAtMC4yMTQyNWVtO1xuICBsaW5lLWhlaWdodDogMS4yODU3MTQyOWVtO1xufVxuLnVpLmNhcmRzID4gLmNhcmQgPiAuY29udGVudCA+IC5tZXRhICsgLmRlc2NyaXB0aW9uLFxuLnVpLmNhcmRzID4gLmNhcmQgPiAuY29udGVudCA+IC5oZWFkZXIgKyAuZGVzY3JpcHRpb24sXG4udWkuY2FyZCA+IC5jb250ZW50ID4gLm1ldGEgKyAuZGVzY3JpcHRpb24sXG4udWkuY2FyZCA+IC5jb250ZW50ID4gLmhlYWRlciArIC5kZXNjcmlwdGlvbiB7XG4gIG1hcmdpbi10b3A6IDAuNWVtO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tXG4gRmxvYXRlZCBDb250ZW50XG4tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkuY2FyZHMgPiAuY2FyZCBbY2xhc3MqPVwibGVmdCBmbG9hdGVkXCJdLFxuLnVpLmNhcmQgW2NsYXNzKj1cImxlZnQgZmxvYXRlZFwiXSB7XG4gIGZsb2F0OiBsZWZ0O1xufVxuLnVpLmNhcmRzID4gLmNhcmQgW2NsYXNzKj1cInJpZ2h0IGZsb2F0ZWRcIl0sXG4udWkuY2FyZCBbY2xhc3MqPVwicmlnaHQgZmxvYXRlZFwiXSB7XG4gIGZsb2F0OiByaWdodDtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxpZ25lZFxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5jYXJkcyA+IC5jYXJkIFtjbGFzcyo9XCJsZWZ0IGFsaWduZWRcIl0sXG4udWkuY2FyZCBbY2xhc3MqPVwibGVmdCBhbGlnbmVkXCJdIHtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbn1cbi51aS5jYXJkcyA+IC5jYXJkIFtjbGFzcyo9XCJjZW50ZXIgYWxpZ25lZFwiXSxcbi51aS5jYXJkIFtjbGFzcyo9XCJjZW50ZXIgYWxpZ25lZFwiXSB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi51aS5jYXJkcyA+IC5jYXJkIFtjbGFzcyo9XCJyaWdodCBhbGlnbmVkXCJdLFxuLnVpLmNhcmQgW2NsYXNzKj1cInJpZ2h0IGFsaWduZWRcIl0ge1xuICB0ZXh0LWFsaWduOiByaWdodDtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgQ29udGVudCBJbWFnZVxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5jYXJkcyA+IC5jYXJkIC5jb250ZW50IGltZyxcbi51aS5jYXJkIC5jb250ZW50IGltZyB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgd2lkdGg6ICcnO1xufVxuLnVpLmNhcmRzID4gLmNhcmQgaW1nLmF2YXRhcixcbi51aS5jYXJkcyA+IC5jYXJkIC5hdmF0YXIgaW1nLFxuLnVpLmNhcmQgaW1nLmF2YXRhcixcbi51aS5jYXJkIC5hdmF0YXIgaW1nIHtcbiAgd2lkdGg6IDJlbTtcbiAgaGVpZ2h0OiAyZW07XG4gIGJvcmRlci1yYWRpdXM6IDUwMHJlbTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIERlc2NyaXB0aW9uXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmNhcmRzID4gLmNhcmQgPiAuY29udGVudCA+IC5kZXNjcmlwdGlvbixcbi51aS5jYXJkID4gLmNvbnRlbnQgPiAuZGVzY3JpcHRpb24ge1xuICBjbGVhcjogYm90aDtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC42OCk7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmNhcmRzID4gLmNhcmQgPiAuY29udGVudCBwLFxuLnVpLmNhcmQgPiAuY29udGVudCBwIHtcbiAgbWFyZ2luOiAwZW0gMGVtIDAuNWVtO1xufVxuLnVpLmNhcmRzID4gLmNhcmQgPiAuY29udGVudCBwOmxhc3QtY2hpbGQsXG4udWkuY2FyZCA+IC5jb250ZW50IHA6bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1ib3R0b206IDBlbTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgIE1ldGFcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuY2FyZHMgPiAuY2FyZCAubWV0YSxcbi51aS5jYXJkIC5tZXRhIHtcbiAgZm9udC1zaXplOiAxZW07XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNCk7XG59XG4udWkuY2FyZHMgPiAuY2FyZCAubWV0YSAqLFxuLnVpLmNhcmQgLm1ldGEgKiB7XG4gIG1hcmdpbi1yaWdodDogMC4zZW07XG59XG4udWkuY2FyZHMgPiAuY2FyZCAubWV0YSA6bGFzdC1jaGlsZCxcbi51aS5jYXJkIC5tZXRhIDpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLXJpZ2h0OiAwZW07XG59XG4udWkuY2FyZHMgPiAuY2FyZCAubWV0YSBbY2xhc3MqPVwicmlnaHQgZmxvYXRlZFwiXSxcbi51aS5jYXJkIC5tZXRhIFtjbGFzcyo9XCJyaWdodCBmbG9hdGVkXCJdIHtcbiAgbWFyZ2luLXJpZ2h0OiAwZW07XG4gIG1hcmdpbi1sZWZ0OiAwLjNlbTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogR2VuZXJpYyAqL1xuLnVpLmNhcmRzID4gLmNhcmQgPiAuY29udGVudCBhOm5vdCgudWkpLFxuLnVpLmNhcmQgPiAuY29udGVudCBhOm5vdCgudWkpIHtcbiAgY29sb3I6ICcnO1xuICB0cmFuc2l0aW9uOiBjb2xvciAwLjFzIGVhc2U7XG59XG4udWkuY2FyZHMgPiAuY2FyZCA+IC5jb250ZW50IGE6bm90KC51aSk6aG92ZXIsXG4udWkuY2FyZCA+IC5jb250ZW50IGE6bm90KC51aSk6aG92ZXIge1xuICBjb2xvcjogJyc7XG59XG4vKiBIZWFkZXIgKi9cbi51aS5jYXJkcyA+IC5jYXJkID4gLmNvbnRlbnQgPiBhLmhlYWRlcixcbi51aS5jYXJkID4gLmNvbnRlbnQgPiBhLmhlYWRlciB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODUpO1xufVxuLnVpLmNhcmRzID4gLmNhcmQgPiAuY29udGVudCA+IGEuaGVhZGVyOmhvdmVyLFxuLnVpLmNhcmQgPiAuY29udGVudCA+IGEuaGVhZGVyOmhvdmVyIHtcbiAgY29sb3I6ICMxZTcwYmY7XG59XG4vKiBNZXRhICovXG4udWkuY2FyZHMgPiAuY2FyZCAubWV0YSA+IGE6bm90KC51aSksXG4udWkuY2FyZCAubWV0YSA+IGE6bm90KC51aSkge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjQpO1xufVxuLnVpLmNhcmRzID4gLmNhcmQgLm1ldGEgPiBhOm5vdCgudWkpOmhvdmVyLFxuLnVpLmNhcmQgLm1ldGEgPiBhOm5vdCgudWkpOmhvdmVyIHtcbiAgY29sb3I6ICMzMzMzMzM7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIEJ1dHRvbnNcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuY2FyZHMgPiAuY2FyZCA+IC5idXR0b25zLFxuLnVpLmNhcmQgPiAuYnV0dG9ucyxcbi51aS5jYXJkcyA+IC5jYXJkID4gLmJ1dHRvbixcbi51aS5jYXJkID4gLmJ1dHRvbiB7XG4gIG1hcmdpbjogMHB4IC0xcHg7XG4gIHdpZHRoOiBjYWxjKDEwMCUgKyAycHgpO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICAgRGltbWVyXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmNhcmRzID4gLmNhcmQgLmRpbW1lcixcbi51aS5jYXJkIC5kaW1tZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAnJztcbiAgei1pbmRleDogMTA7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIExhYmVsc1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS1TdGFyLS0tLS0gKi9cbi8qIEljb24gKi9cbi51aS5jYXJkcyA+IC5jYXJkID4gLmNvbnRlbnQgLnN0YXIuaWNvbixcbi51aS5jYXJkID4gLmNvbnRlbnQgLnN0YXIuaWNvbiB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgb3BhY2l0eTogMC43NTtcbiAgdHJhbnNpdGlvbjogY29sb3IgMC4xcyBlYXNlO1xufVxuLnVpLmNhcmRzID4gLmNhcmQgPiAuY29udGVudCAuc3Rhci5pY29uOmhvdmVyLFxuLnVpLmNhcmQgPiAuY29udGVudCAuc3Rhci5pY29uOmhvdmVyIHtcbiAgb3BhY2l0eTogMTtcbiAgY29sb3I6ICNGRkI3MEE7XG59XG4udWkuY2FyZHMgPiAuY2FyZCA+IC5jb250ZW50IC5hY3RpdmUuc3Rhci5pY29uLFxuLnVpLmNhcmQgPiAuY29udGVudCAuYWN0aXZlLnN0YXIuaWNvbiB7XG4gIGNvbG9yOiAjRkZFNjIzO1xufVxuLyotLS0tLUxpa2UtLS0tLSAqL1xuLyogSWNvbiAqL1xuLnVpLmNhcmRzID4gLmNhcmQgPiAuY29udGVudCAubGlrZS5pY29uLFxuLnVpLmNhcmQgPiAuY29udGVudCAubGlrZS5pY29uIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBvcGFjaXR5OiAwLjc1O1xuICB0cmFuc2l0aW9uOiBjb2xvciAwLjFzIGVhc2U7XG59XG4udWkuY2FyZHMgPiAuY2FyZCA+IC5jb250ZW50IC5saWtlLmljb246aG92ZXIsXG4udWkuY2FyZCA+IC5jb250ZW50IC5saWtlLmljb246aG92ZXIge1xuICBvcGFjaXR5OiAxO1xuICBjb2xvcjogI0ZGMjczMztcbn1cbi51aS5jYXJkcyA+IC5jYXJkID4gLmNvbnRlbnQgLmFjdGl2ZS5saWtlLmljb24sXG4udWkuY2FyZCA+IC5jb250ZW50IC5hY3RpdmUubGlrZS5pY29uIHtcbiAgY29sb3I6ICNGRjI3MzM7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS1cbiAgRXh0cmEgQ29udGVudFxuLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmNhcmRzID4gLmNhcmQgPiAuZXh0cmEsXG4udWkuY2FyZCA+IC5leHRyYSB7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgbWluLWhlaWdodDogMGVtICFpbXBvcnRhbnQ7XG4gIGZsZXgtZ3JvdzogMDtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgMC4wNSkgIWltcG9ydGFudDtcbiAgcG9zaXRpb246IHN0YXRpYztcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgd2lkdGg6IGF1dG87XG4gIG1hcmdpbjogMGVtIDBlbTtcbiAgcGFkZGluZzogMC43NWVtIDFlbTtcbiAgdG9wOiAwZW07XG4gIGxlZnQ6IDBlbTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC40KTtcbiAgYm94LXNoYWRvdzogbm9uZTtcbiAgdHJhbnNpdGlvbjogY29sb3IgMC4xcyBlYXNlO1xufVxuLnVpLmNhcmRzID4gLmNhcmQgPiAuZXh0cmEgYTpub3QoLnVpKSxcbi51aS5jYXJkID4gLmV4dHJhIGE6bm90KC51aSkge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjQpO1xufVxuLnVpLmNhcmRzID4gLmNhcmQgPiAuZXh0cmEgYTpub3QoLnVpKTpob3Zlcixcbi51aS5jYXJkID4gLmV4dHJhIGE6bm90KC51aSk6aG92ZXIge1xuICBjb2xvcjogIzFlNzBiZjtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFZhcmlhdGlvbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBSYWlzZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5yYWlzZWQuY2FyZHMgPiAuY2FyZCxcbi51aS5yYWlzZWQuY2FyZCB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjRDRENEQ1LCAwcHggMnB4IDRweCAwcHggcmdiYSgzNCwgMzYsIDM4LCAwLjEyKSwgMHB4IDJweCAxMHB4IDBweCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpO1xufVxuLnVpLnJhaXNlZC5jYXJkcyBhLmNhcmQ6aG92ZXIsXG4udWkubGluay5jYXJkcyAucmFpc2VkLmNhcmQ6aG92ZXIsXG5hLnVpLnJhaXNlZC5jYXJkOmhvdmVyLFxuLnVpLmxpbmsucmFpc2VkLmNhcmQ6aG92ZXIge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggI0Q0RDRENSwgMHB4IDJweCA0cHggMHB4IHJnYmEoMzQsIDM2LCAzOCwgMC4xNSksIDBweCAycHggMTBweCAwcHggcmdiYSgzNCwgMzYsIDM4LCAwLjI1KTtcbn1cbi51aS5yYWlzZWQuY2FyZHMgPiAuY2FyZCxcbi51aS5yYWlzZWQuY2FyZCB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjRDRENEQ1LCAwcHggMnB4IDRweCAwcHggcmdiYSgzNCwgMzYsIDM4LCAwLjEyKSwgMHB4IDJweCAxMHB4IDBweCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQ2VudGVyZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5jZW50ZXJlZC5jYXJkcyB7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxuLnVpLmNlbnRlcmVkLmNhcmQge1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZsdWlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkuZmx1aWQuY2FyZCB7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXgtd2lkdGg6IDk5OTlweDtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBMaW5rXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkuY2FyZHMgYS5jYXJkLFxuLnVpLmxpbmsuY2FyZHMgLmNhcmQsXG5hLnVpLmNhcmQsXG4udWkubGluay5jYXJkIHtcbiAgdHJhbnNmb3JtOiBub25lO1xufVxuLnVpLmNhcmRzIGEuY2FyZDpob3Zlcixcbi51aS5saW5rLmNhcmRzIC5jYXJkOmhvdmVyLFxuYS51aS5jYXJkOmhvdmVyLFxuLnVpLmxpbmsuY2FyZDpob3ZlciB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgei1pbmRleDogNTtcbiAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbiAgYm9yZGVyOiBub25lO1xuICBib3gtc2hhZG93OiAwcHggMXB4IDNweCAwcHggI0JDQkRCRCwgMHB4IDBweCAwcHggMXB4ICNENEQ0RDU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtM3B4KTtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUmVkICovXG4udWkucmVkLmNhcmRzID4gLmNhcmQsXG4udWkuY2FyZHMgPiAucmVkLmNhcmQsXG4udWkucmVkLmNhcmQge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggI0Q0RDRENSwgMHB4IDJweCAwcHggMHB4ICNkZTNhM2UsIDBweCAxcHggM3B4IDBweCAjRDRENEQ1O1xufVxuLnVpLnJlZC5jYXJkcyA+IC5jYXJkOmhvdmVyLFxuLnVpLmNhcmRzID4gLnJlZC5jYXJkOmhvdmVyLFxuLnVpLnJlZC5jYXJkOmhvdmVyIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICNENEQ0RDUsIDBweCAycHggMHB4IDBweCAjZTMxYjIwLCAwcHggMXB4IDNweCAwcHggI0JDQkRCRDtcbn1cbi8qIE9yYW5nZSAqL1xuLnVpLm9yYW5nZS5jYXJkcyA+IC5jYXJkLFxuLnVpLmNhcmRzID4gLm9yYW5nZS5jYXJkLFxuLnVpLm9yYW5nZS5jYXJkIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICNENEQ0RDUsIDBweCAycHggMHB4IDBweCAjZmY5NTMzLCAwcHggMXB4IDNweCAwcHggI0Q0RDRENTtcbn1cbi51aS5vcmFuZ2UuY2FyZHMgPiAuY2FyZDpob3Zlcixcbi51aS5jYXJkcyA+IC5vcmFuZ2UuY2FyZDpob3Zlcixcbi51aS5vcmFuZ2UuY2FyZDpob3ZlciB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjRDRENEQ1LCAwcHggMnB4IDBweCAwcHggI2ZmODgxOSwgMHB4IDFweCAzcHggMHB4ICNCQ0JEQkQ7XG59XG4vKiBZZWxsb3cgKi9cbi51aS55ZWxsb3cuY2FyZHMgPiAuY2FyZCxcbi51aS5jYXJkcyA+IC55ZWxsb3cuY2FyZCxcbi51aS55ZWxsb3cuY2FyZCB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjRDRENEQ1LCAwcHggMnB4IDBweCAwcHggI0ZCQkQwOCwgMHB4IDFweCAzcHggMHB4ICNENEQ0RDU7XG59XG4udWkueWVsbG93LmNhcmRzID4gLmNhcmQ6aG92ZXIsXG4udWkuY2FyZHMgPiAueWVsbG93LmNhcmQ6aG92ZXIsXG4udWkueWVsbG93LmNhcmQ6aG92ZXIge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggI0Q0RDRENSwgMHB4IDJweCAwcHggMHB4ICNlYWFlMDAsIDBweCAxcHggM3B4IDBweCAjQkNCREJEO1xufVxuLyogT2xpdmUgKi9cbi51aS5vbGl2ZS5jYXJkcyA+IC5jYXJkLFxuLnVpLmNhcmRzID4gLm9saXZlLmNhcmQsXG4udWkub2xpdmUuY2FyZCB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjRDRENEQ1LCAwcHggMnB4IDBweCAwcHggI0I1Q0MxOCwgMHB4IDFweCAzcHggMHB4ICNENEQ0RDU7XG59XG4udWkub2xpdmUuY2FyZHMgPiAuY2FyZDpob3Zlcixcbi51aS5jYXJkcyA+IC5vbGl2ZS5jYXJkOmhvdmVyLFxuLnVpLm9saXZlLmNhcmQ6aG92ZXIge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggI0Q0RDRENSwgMHB4IDJweCAwcHggMHB4ICNhN2JkMGQsIDBweCAxcHggM3B4IDBweCAjQkNCREJEO1xufVxuLyogR3JlZW4gKi9cbi51aS5ncmVlbi5jYXJkcyA+IC5jYXJkLFxuLnVpLmNhcmRzID4gLmdyZWVuLmNhcmQsXG4udWkuZ3JlZW4uY2FyZCB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjRDRENEQ1LCAwcHggMnB4IDBweCAwcHggIzE5YTUzMSwgMHB4IDFweCAzcHggMHB4ICNENEQ0RDU7XG59XG4udWkuZ3JlZW4uY2FyZHMgPiAuY2FyZDpob3Zlcixcbi51aS5jYXJkcyA+IC5ncmVlbi5jYXJkOmhvdmVyLFxuLnVpLmdyZWVuLmNhcmQ6aG92ZXIge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggI0Q0RDRENSwgMHB4IDJweCAwcHggMHB4ICMxMDk1MjYsIDBweCAxcHggM3B4IDBweCAjQkNCREJEO1xufVxuLyogVGVhbCAqL1xuLnVpLnRlYWwuY2FyZHMgPiAuY2FyZCxcbi51aS5jYXJkcyA+IC50ZWFsLmNhcmQsXG4udWkudGVhbC5jYXJkIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICNENEQ0RDUsIDBweCAycHggMHB4IDBweCAjMDBCNUFELCAwcHggMXB4IDNweCAwcHggI0Q0RDRENTtcbn1cbi51aS50ZWFsLmNhcmRzID4gLmNhcmQ6aG92ZXIsXG4udWkuY2FyZHMgPiAudGVhbC5jYXJkOmhvdmVyLFxuLnVpLnRlYWwuY2FyZDpob3ZlciB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjRDRENEQ1LCAwcHggMnB4IDBweCAwcHggIzAwOWM5NSwgMHB4IDFweCAzcHggMHB4ICNCQ0JEQkQ7XG59XG4vKiBCbHVlICovXG4udWkuYmx1ZS5jYXJkcyA+IC5jYXJkLFxuLnVpLmNhcmRzID4gLmJsdWUuY2FyZCxcbi51aS5ibHVlLmNhcmQge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggI0Q0RDRENSwgMHB4IDJweCAwcHggMHB4ICMzZjUxYjUsIDBweCAxcHggM3B4IDBweCAjRDRENEQ1O1xufVxuLnVpLmJsdWUuY2FyZHMgPiAuY2FyZDpob3Zlcixcbi51aS5jYXJkcyA+IC5ibHVlLmNhcmQ6aG92ZXIsXG4udWkuYmx1ZS5jYXJkOmhvdmVyIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICNENEQ0RDUsIDBweCAycHggMHB4IDBweCAjMzM0NWE3LCAwcHggMXB4IDNweCAwcHggI0JDQkRCRDtcbn1cbi8qIFZpb2xldCAqL1xuLnVpLnZpb2xldC5jYXJkcyA+IC5jYXJkLFxuLnVpLmNhcmRzID4gLnZpb2xldC5jYXJkLFxuLnVpLnZpb2xldC5jYXJkIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICNENEQ0RDUsIDBweCAycHggMHB4IDBweCAjNjQzNUM5LCAwcHggMXB4IDNweCAwcHggI0Q0RDRENTtcbn1cbi51aS52aW9sZXQuY2FyZHMgPiAuY2FyZDpob3Zlcixcbi51aS5jYXJkcyA+IC52aW9sZXQuY2FyZDpob3Zlcixcbi51aS52aW9sZXQuY2FyZDpob3ZlciB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjRDRENEQ1LCAwcHggMnB4IDBweCAwcHggIzU4MjliYiwgMHB4IDFweCAzcHggMHB4ICNCQ0JEQkQ7XG59XG4vKiBQdXJwbGUgKi9cbi51aS5wdXJwbGUuY2FyZHMgPiAuY2FyZCxcbi51aS5jYXJkcyA+IC5wdXJwbGUuY2FyZCxcbi51aS5wdXJwbGUuY2FyZCB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjRDRENEQ1LCAwcHggMnB4IDBweCAwcHggI0EzMzNDOCwgMHB4IDFweCAzcHggMHB4ICNENEQ0RDU7XG59XG4udWkucHVycGxlLmNhcmRzID4gLmNhcmQ6aG92ZXIsXG4udWkuY2FyZHMgPiAucHVycGxlLmNhcmQ6aG92ZXIsXG4udWkucHVycGxlLmNhcmQ6aG92ZXIge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggI0Q0RDRENSwgMHB4IDJweCAwcHggMHB4ICM5NjI3YmEsIDBweCAxcHggM3B4IDBweCAjQkNCREJEO1xufVxuLyogUGluayAqL1xuLnVpLnBpbmsuY2FyZHMgPiAuY2FyZCxcbi51aS5jYXJkcyA+IC5waW5rLmNhcmQsXG4udWkucGluay5jYXJkIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICNENEQ0RDUsIDBweCAycHggMHB4IDBweCAjRTAzOTk3LCAwcHggMXB4IDNweCAwcHggI0Q0RDRENTtcbn1cbi51aS5waW5rLmNhcmRzID4gLmNhcmQ6aG92ZXIsXG4udWkuY2FyZHMgPiAucGluay5jYXJkOmhvdmVyLFxuLnVpLnBpbmsuY2FyZDpob3ZlciB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjRDRENEQ1LCAwcHggMnB4IDBweCAwcHggI2U2MWE4ZCwgMHB4IDFweCAzcHggMHB4ICNCQ0JEQkQ7XG59XG4vKiBCcm93biAqL1xuLnVpLmJyb3duLmNhcmRzID4gLmNhcmQsXG4udWkuY2FyZHMgPiAuYnJvd24uY2FyZCxcbi51aS5icm93bi5jYXJkIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICNENEQ0RDUsIDBweCAycHggMHB4IDBweCAjQTU2NzNGLCAwcHggMXB4IDNweCAwcHggI0Q0RDRENTtcbn1cbi51aS5icm93bi5jYXJkcyA+IC5jYXJkOmhvdmVyLFxuLnVpLmNhcmRzID4gLmJyb3duLmNhcmQ6aG92ZXIsXG4udWkuYnJvd24uY2FyZDpob3ZlciB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjRDRENEQ1LCAwcHggMnB4IDBweCAwcHggIzk3NWIzMywgMHB4IDFweCAzcHggMHB4ICNCQ0JEQkQ7XG59XG4vKiBHcmV5ICovXG4udWkuZ3JleS5jYXJkcyA+IC5jYXJkLFxuLnVpLmNhcmRzID4gLmdyZXkuY2FyZCxcbi51aS5ncmV5LmNhcmQge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggI0Q0RDRENSwgMHB4IDJweCAwcHggMHB4ICM3Njc2NzYsIDBweCAxcHggM3B4IDBweCAjRDRENEQ1O1xufVxuLnVpLmdyZXkuY2FyZHMgPiAuY2FyZDpob3Zlcixcbi51aS5jYXJkcyA+IC5ncmV5LmNhcmQ6aG92ZXIsXG4udWkuZ3JleS5jYXJkOmhvdmVyIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICNENEQ0RDUsIDBweCAycHggMHB4IDBweCAjODM4MzgzLCAwcHggMXB4IDNweCAwcHggI0JDQkRCRDtcbn1cbi8qIEJsYWNrICovXG4udWkuYmxhY2suY2FyZHMgPiAuY2FyZCxcbi51aS5jYXJkcyA+IC5ibGFjay5jYXJkLFxuLnVpLmJsYWNrLmNhcmQge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggI0Q0RDRENSwgMHB4IDJweCAwcHggMHB4ICMwMDAwMDAsIDBweCAxcHggM3B4IDBweCAjRDRENEQ1O1xufVxuLnVpLmJsYWNrLmNhcmRzID4gLmNhcmQ6aG92ZXIsXG4udWkuY2FyZHMgPiAuYmxhY2suY2FyZDpob3Zlcixcbi51aS5ibGFjay5jYXJkOmhvdmVyIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICNENEQ0RDUsIDBweCAycHggMHB4IDBweCAjMGQwZDBkLCAwcHggMXB4IDNweCAwcHggI0JDQkRCRDtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIENhcmQgQ291bnRcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkub25lLmNhcmRzIHtcbiAgbWFyZ2luLWxlZnQ6IDBlbTtcbiAgbWFyZ2luLXJpZ2h0OiAwZW07XG59XG4udWkub25lLmNhcmRzID4gLmNhcmQge1xuICB3aWR0aDogMTAwJTtcbn1cbi51aS50d28uY2FyZHMge1xuICBtYXJnaW4tbGVmdDogLTFlbTtcbiAgbWFyZ2luLXJpZ2h0OiAtMWVtO1xufVxuLnVpLnR3by5jYXJkcyA+IC5jYXJkIHtcbiAgd2lkdGg6IGNhbGMoNTAlIC0gMmVtKTtcbiAgbWFyZ2luLWxlZnQ6IDFlbTtcbiAgbWFyZ2luLXJpZ2h0OiAxZW07XG59XG4udWkudGhyZWUuY2FyZHMge1xuICBtYXJnaW4tbGVmdDogLTFlbTtcbiAgbWFyZ2luLXJpZ2h0OiAtMWVtO1xufVxuLnVpLnRocmVlLmNhcmRzID4gLmNhcmQge1xuICB3aWR0aDogY2FsYygzMy4zMzMzMzMzMzMzMzMzMyUgLSAyZW0pO1xuICBtYXJnaW4tbGVmdDogMWVtO1xuICBtYXJnaW4tcmlnaHQ6IDFlbTtcbn1cbi51aS5mb3VyLmNhcmRzIHtcbiAgbWFyZ2luLWxlZnQ6IC0wLjc1ZW07XG4gIG1hcmdpbi1yaWdodDogLTAuNzVlbTtcbn1cbi51aS5mb3VyLmNhcmRzID4gLmNhcmQge1xuICB3aWR0aDogY2FsYygyNSUgLSAxLjVlbSk7XG4gIG1hcmdpbi1sZWZ0OiAwLjc1ZW07XG4gIG1hcmdpbi1yaWdodDogMC43NWVtO1xufVxuLnVpLmZpdmUuY2FyZHMge1xuICBtYXJnaW4tbGVmdDogLTAuNzVlbTtcbiAgbWFyZ2luLXJpZ2h0OiAtMC43NWVtO1xufVxuLnVpLmZpdmUuY2FyZHMgPiAuY2FyZCB7XG4gIHdpZHRoOiBjYWxjKDIwJSAtIDEuNWVtKTtcbiAgbWFyZ2luLWxlZnQ6IDAuNzVlbTtcbiAgbWFyZ2luLXJpZ2h0OiAwLjc1ZW07XG59XG4udWkuc2l4LmNhcmRzIHtcbiAgbWFyZ2luLWxlZnQ6IC0wLjc1ZW07XG4gIG1hcmdpbi1yaWdodDogLTAuNzVlbTtcbn1cbi51aS5zaXguY2FyZHMgPiAuY2FyZCB7XG4gIHdpZHRoOiBjYWxjKDE2LjY2NjY2NjY2NjY2NjY2NCUgLSAxLjVlbSk7XG4gIG1hcmdpbi1sZWZ0OiAwLjc1ZW07XG4gIG1hcmdpbi1yaWdodDogMC43NWVtO1xufVxuLnVpLnNldmVuLmNhcmRzIHtcbiAgbWFyZ2luLWxlZnQ6IC0wLjVlbTtcbiAgbWFyZ2luLXJpZ2h0OiAtMC41ZW07XG59XG4udWkuc2V2ZW4uY2FyZHMgPiAuY2FyZCB7XG4gIHdpZHRoOiBjYWxjKDE0LjI4NTcxNDI4NTcxNDI4NSUgLSAxZW0pO1xuICBtYXJnaW4tbGVmdDogMC41ZW07XG4gIG1hcmdpbi1yaWdodDogMC41ZW07XG59XG4udWkuZWlnaHQuY2FyZHMge1xuICBtYXJnaW4tbGVmdDogLTAuNWVtO1xuICBtYXJnaW4tcmlnaHQ6IC0wLjVlbTtcbn1cbi51aS5laWdodC5jYXJkcyA+IC5jYXJkIHtcbiAgd2lkdGg6IGNhbGMoMTIuNSUgLSAxZW0pO1xuICBtYXJnaW4tbGVmdDogMC41ZW07XG4gIG1hcmdpbi1yaWdodDogMC41ZW07XG4gIGZvbnQtc2l6ZTogMTFweDtcbn1cbi51aS5uaW5lLmNhcmRzIHtcbiAgbWFyZ2luLWxlZnQ6IC0wLjVlbTtcbiAgbWFyZ2luLXJpZ2h0OiAtMC41ZW07XG59XG4udWkubmluZS5jYXJkcyA+IC5jYXJkIHtcbiAgd2lkdGg6IGNhbGMoMTEuMTExMTExMTExMTExMTElIC0gMWVtKTtcbiAgbWFyZ2luLWxlZnQ6IDAuNWVtO1xuICBtYXJnaW4tcmlnaHQ6IDAuNWVtO1xuICBmb250LXNpemU6IDEwcHg7XG59XG4udWkudGVuLmNhcmRzIHtcbiAgbWFyZ2luLWxlZnQ6IC0wLjVlbTtcbiAgbWFyZ2luLXJpZ2h0OiAtMC41ZW07XG59XG4udWkudGVuLmNhcmRzID4gLmNhcmQge1xuICB3aWR0aDogY2FsYygxMCUgLSAxZW0pO1xuICBtYXJnaW4tbGVmdDogMC41ZW07XG4gIG1hcmdpbi1yaWdodDogMC41ZW07XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERvdWJsaW5nXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNb2JpbGUgT25seSAqL1xuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAudWkudHdvLmRvdWJsaW5nLmNhcmRzIHtcbiAgICBtYXJnaW4tbGVmdDogMGVtO1xuICAgIG1hcmdpbi1yaWdodDogMGVtO1xuICB9XG4gIC51aS50d28uZG91YmxpbmcuY2FyZHMgLmNhcmQge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbi1sZWZ0OiAwZW07XG4gICAgbWFyZ2luLXJpZ2h0OiAwZW07XG4gIH1cbiAgLnVpLnRocmVlLmRvdWJsaW5nLmNhcmRzIHtcbiAgICBtYXJnaW4tbGVmdDogLTFlbTtcbiAgICBtYXJnaW4tcmlnaHQ6IC0xZW07XG4gIH1cbiAgLnVpLnRocmVlLmRvdWJsaW5nLmNhcmRzIC5jYXJkIHtcbiAgICB3aWR0aDogY2FsYyg1MCUgLSAyZW0pO1xuICAgIG1hcmdpbi1sZWZ0OiAxZW07XG4gICAgbWFyZ2luLXJpZ2h0OiAxZW07XG4gIH1cbiAgLnVpLmZvdXIuZG91YmxpbmcuY2FyZHMge1xuICAgIG1hcmdpbi1sZWZ0OiAtMWVtO1xuICAgIG1hcmdpbi1yaWdodDogLTFlbTtcbiAgfVxuICAudWkuZm91ci5kb3VibGluZy5jYXJkcyAuY2FyZCB7XG4gICAgd2lkdGg6IGNhbGMoNTAlIC0gMmVtKTtcbiAgICBtYXJnaW4tbGVmdDogMWVtO1xuICAgIG1hcmdpbi1yaWdodDogMWVtO1xuICB9XG4gIC51aS5maXZlLmRvdWJsaW5nLmNhcmRzIHtcbiAgICBtYXJnaW4tbGVmdDogLTFlbTtcbiAgICBtYXJnaW4tcmlnaHQ6IC0xZW07XG4gIH1cbiAgLnVpLmZpdmUuZG91YmxpbmcuY2FyZHMgLmNhcmQge1xuICAgIHdpZHRoOiBjYWxjKDUwJSAtIDJlbSk7XG4gICAgbWFyZ2luLWxlZnQ6IDFlbTtcbiAgICBtYXJnaW4tcmlnaHQ6IDFlbTtcbiAgfVxuICAudWkuc2l4LmRvdWJsaW5nLmNhcmRzIHtcbiAgICBtYXJnaW4tbGVmdDogLTFlbTtcbiAgICBtYXJnaW4tcmlnaHQ6IC0xZW07XG4gIH1cbiAgLnVpLnNpeC5kb3VibGluZy5jYXJkcyAuY2FyZCB7XG4gICAgd2lkdGg6IGNhbGMoNTAlIC0gMmVtKTtcbiAgICBtYXJnaW4tbGVmdDogMWVtO1xuICAgIG1hcmdpbi1yaWdodDogMWVtO1xuICB9XG4gIC51aS5zZXZlbi5kb3VibGluZy5jYXJkcyB7XG4gICAgbWFyZ2luLWxlZnQ6IC0xZW07XG4gICAgbWFyZ2luLXJpZ2h0OiAtMWVtO1xuICB9XG4gIC51aS5zZXZlbi5kb3VibGluZy5jYXJkcyAuY2FyZCB7XG4gICAgd2lkdGg6IGNhbGMoMzMuMzMzMzMzMzMzMzMzMzMlIC0gMmVtKTtcbiAgICBtYXJnaW4tbGVmdDogMWVtO1xuICAgIG1hcmdpbi1yaWdodDogMWVtO1xuICB9XG4gIC51aS5laWdodC5kb3VibGluZy5jYXJkcyB7XG4gICAgbWFyZ2luLWxlZnQ6IC0xZW07XG4gICAgbWFyZ2luLXJpZ2h0OiAtMWVtO1xuICB9XG4gIC51aS5laWdodC5kb3VibGluZy5jYXJkcyAuY2FyZCB7XG4gICAgd2lkdGg6IGNhbGMoMzMuMzMzMzMzMzMzMzMzMzMlIC0gMmVtKTtcbiAgICBtYXJnaW4tbGVmdDogMWVtO1xuICAgIG1hcmdpbi1yaWdodDogMWVtO1xuICB9XG4gIC51aS5uaW5lLmRvdWJsaW5nLmNhcmRzIHtcbiAgICBtYXJnaW4tbGVmdDogLTFlbTtcbiAgICBtYXJnaW4tcmlnaHQ6IC0xZW07XG4gIH1cbiAgLnVpLm5pbmUuZG91YmxpbmcuY2FyZHMgLmNhcmQge1xuICAgIHdpZHRoOiBjYWxjKDMzLjMzMzMzMzMzMzMzMzMzJSAtIDJlbSk7XG4gICAgbWFyZ2luLWxlZnQ6IDFlbTtcbiAgICBtYXJnaW4tcmlnaHQ6IDFlbTtcbiAgfVxuICAudWkudGVuLmRvdWJsaW5nLmNhcmRzIHtcbiAgICBtYXJnaW4tbGVmdDogLTFlbTtcbiAgICBtYXJnaW4tcmlnaHQ6IC0xZW07XG4gIH1cbiAgLnVpLnRlbi5kb3VibGluZy5jYXJkcyAuY2FyZCB7XG4gICAgd2lkdGg6IGNhbGMoMzMuMzMzMzMzMzMzMzMzMzMlIC0gMmVtKTtcbiAgICBtYXJnaW4tbGVmdDogMWVtO1xuICAgIG1hcmdpbi1yaWdodDogMWVtO1xuICB9XG59XG4vKiBUYWJsZXQgT25seSAqL1xuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NjhweCkgYW5kIChtYXgtd2lkdGg6IDk5MXB4KSB7XG4gIC51aS50d28uZG91YmxpbmcuY2FyZHMge1xuICAgIG1hcmdpbi1sZWZ0OiAwZW07XG4gICAgbWFyZ2luLXJpZ2h0OiAwZW07XG4gIH1cbiAgLnVpLnR3by5kb3VibGluZy5jYXJkcyAuY2FyZCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luLWxlZnQ6IDBlbTtcbiAgICBtYXJnaW4tcmlnaHQ6IDBlbTtcbiAgfVxuICAudWkudGhyZWUuZG91YmxpbmcuY2FyZHMge1xuICAgIG1hcmdpbi1sZWZ0OiAtMWVtO1xuICAgIG1hcmdpbi1yaWdodDogLTFlbTtcbiAgfVxuICAudWkudGhyZWUuZG91YmxpbmcuY2FyZHMgLmNhcmQge1xuICAgIHdpZHRoOiBjYWxjKDUwJSAtIDJlbSk7XG4gICAgbWFyZ2luLWxlZnQ6IDFlbTtcbiAgICBtYXJnaW4tcmlnaHQ6IDFlbTtcbiAgfVxuICAudWkuZm91ci5kb3VibGluZy5jYXJkcyB7XG4gICAgbWFyZ2luLWxlZnQ6IC0xZW07XG4gICAgbWFyZ2luLXJpZ2h0OiAtMWVtO1xuICB9XG4gIC51aS5mb3VyLmRvdWJsaW5nLmNhcmRzIC5jYXJkIHtcbiAgICB3aWR0aDogY2FsYyg1MCUgLSAyZW0pO1xuICAgIG1hcmdpbi1sZWZ0OiAxZW07XG4gICAgbWFyZ2luLXJpZ2h0OiAxZW07XG4gIH1cbiAgLnVpLmZpdmUuZG91YmxpbmcuY2FyZHMge1xuICAgIG1hcmdpbi1sZWZ0OiAtMWVtO1xuICAgIG1hcmdpbi1yaWdodDogLTFlbTtcbiAgfVxuICAudWkuZml2ZS5kb3VibGluZy5jYXJkcyAuY2FyZCB7XG4gICAgd2lkdGg6IGNhbGMoMzMuMzMzMzMzMzMzMzMzMzMlIC0gMmVtKTtcbiAgICBtYXJnaW4tbGVmdDogMWVtO1xuICAgIG1hcmdpbi1yaWdodDogMWVtO1xuICB9XG4gIC51aS5zaXguZG91YmxpbmcuY2FyZHMge1xuICAgIG1hcmdpbi1sZWZ0OiAtMWVtO1xuICAgIG1hcmdpbi1yaWdodDogLTFlbTtcbiAgfVxuICAudWkuc2l4LmRvdWJsaW5nLmNhcmRzIC5jYXJkIHtcbiAgICB3aWR0aDogY2FsYygzMy4zMzMzMzMzMzMzMzMzMyUgLSAyZW0pO1xuICAgIG1hcmdpbi1sZWZ0OiAxZW07XG4gICAgbWFyZ2luLXJpZ2h0OiAxZW07XG4gIH1cbiAgLnVpLmVpZ2h0LmRvdWJsaW5nLmNhcmRzIHtcbiAgICBtYXJnaW4tbGVmdDogLTFlbTtcbiAgICBtYXJnaW4tcmlnaHQ6IC0xZW07XG4gIH1cbiAgLnVpLmVpZ2h0LmRvdWJsaW5nLmNhcmRzIC5jYXJkIHtcbiAgICB3aWR0aDogY2FsYygzMy4zMzMzMzMzMzMzMzMzMyUgLSAyZW0pO1xuICAgIG1hcmdpbi1sZWZ0OiAxZW07XG4gICAgbWFyZ2luLXJpZ2h0OiAxZW07XG4gIH1cbiAgLnVpLmVpZ2h0LmRvdWJsaW5nLmNhcmRzIHtcbiAgICBtYXJnaW4tbGVmdDogLTAuNzVlbTtcbiAgICBtYXJnaW4tcmlnaHQ6IC0wLjc1ZW07XG4gIH1cbiAgLnVpLmVpZ2h0LmRvdWJsaW5nLmNhcmRzIC5jYXJkIHtcbiAgICB3aWR0aDogY2FsYygyNSUgLSAxLjVlbSk7XG4gICAgbWFyZ2luLWxlZnQ6IDAuNzVlbTtcbiAgICBtYXJnaW4tcmlnaHQ6IDAuNzVlbTtcbiAgfVxuICAudWkubmluZS5kb3VibGluZy5jYXJkcyB7XG4gICAgbWFyZ2luLWxlZnQ6IC0wLjc1ZW07XG4gICAgbWFyZ2luLXJpZ2h0OiAtMC43NWVtO1xuICB9XG4gIC51aS5uaW5lLmRvdWJsaW5nLmNhcmRzIC5jYXJkIHtcbiAgICB3aWR0aDogY2FsYygyNSUgLSAxLjVlbSk7XG4gICAgbWFyZ2luLWxlZnQ6IDAuNzVlbTtcbiAgICBtYXJnaW4tcmlnaHQ6IDAuNzVlbTtcbiAgfVxuICAudWkudGVuLmRvdWJsaW5nLmNhcmRzIHtcbiAgICBtYXJnaW4tbGVmdDogLTAuNzVlbTtcbiAgICBtYXJnaW4tcmlnaHQ6IC0wLjc1ZW07XG4gIH1cbiAgLnVpLnRlbi5kb3VibGluZy5jYXJkcyAuY2FyZCB7XG4gICAgd2lkdGg6IGNhbGMoMjAlIC0gMS41ZW0pO1xuICAgIG1hcmdpbi1sZWZ0OiAwLjc1ZW07XG4gICAgbWFyZ2luLXJpZ2h0OiAwLjc1ZW07XG4gIH1cbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU3RhY2thYmxlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC51aS5zdGFja2FibGUuY2FyZHMge1xuICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLnN0YWNrYWJsZS5jYXJkcyAuY2FyZDpmaXJzdC1jaGlsZCB7XG4gICAgbWFyZ2luLXRvcDogMGVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLnN0YWNrYWJsZS5jYXJkcyA+IC5jYXJkIHtcbiAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICAgIGhlaWdodDogYXV0byAhaW1wb3J0YW50O1xuICAgIG1hcmdpbjogMWVtIDFlbTtcbiAgICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSAtIDJlbSkgIWltcG9ydGFudDtcbiAgfVxufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICAgU2l6ZVxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5jYXJkcyA+IC5jYXJkIHtcbiAgZm9udC1zaXplOiAxZW07XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgVGhlbWUgT3ZlcnJpZGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICBVc2VyIFZhcmlhYmxlIE92ZXJyaWRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIVxuICogIyBTZW1hbnRpYyBVSSAtIENvbW1lbnRcbiAqIGh0dHA6Ly9naXRodWIuY29tL3NlbWFudGljLW9yZy9zZW1hbnRpYy11aS9cbiAqXG4gKlxuICogUmVsZWFzZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlXG4gKiBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUXG4gKlxuICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKlxuXG7ilojilojilojilojilojilojilojilojilZfilojilojilZcgIOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKVlyAgIOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl1xu4pWa4pWQ4pWQ4paI4paI4pWU4pWQ4pWQ4pWd4paI4paI4pWRICDilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilojilojilZcg4paI4paI4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWd4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWdXG4gICDilojilojilZEgICDilojilojilojilojilojilojilojilZHilojilojilojilojilojilZcgIOKWiOKWiOKVlOKWiOKWiOKWiOKWiOKVlOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4paI4paI4paI4paI4paI4pWXXG4gICDilojilojilZEgICDilojilojilZTilZDilZDilojilojilZHilojilojilZTilZDilZDilZ0gIOKWiOKWiOKVkeKVmuKWiOKWiOKVlOKVneKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4pWa4pWQ4pWQ4pWQ4pWQ4paI4paI4pWRXG4gICDilojilojilZEgICDilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVkSDilZrilZDilZ0g4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWRXG4gICDilZrilZDilZ0gICDilZrilZDilZ0gIOKVmuKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVneKVmuKVkOKVnSAgICAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWdXG5cbiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBUaGVtZSBTZWxlY3Rpb25cbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBUbyBvdmVycmlkZSBhIHRoZW1lIGZvciBhbiBpbmRpdmlkdWFsIGVsZW1lbnRcbiAgIHNwZWNpZnkgdGhlbWUgbmFtZSBiZWxvd1xuKi9cbi8qIEdsb2JhbCAqL1xuLyogRWxlbWVudHMgKi9cbi8qIENvbGxlY3Rpb25zICovXG4vKiBNb2R1bGVzICovXG4vKiBWaWV3cyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIEZvbGRlcnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBQYXRoIHRvIHRoZW1lIHBhY2thZ2VzICovXG4vKiBQYXRoIHRvIHNpdGUgb3ZlcnJpZGUgZm9sZGVyICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgSW1wb3J0IFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgSW1wb3J0IERpcmVjdGl2ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIFRoZW1lXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgIFNpdGUgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kb3JzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFBhY2thZ2VkIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRvcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogQ29tcG9uZW50J3Mgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZG9ycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBTaXRlIHRoZW1lIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICBVc2VyIEdsb2JhbCBWYXJpYWJsZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBtYXJzbyBjb2xvcnMgKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiBDb21wb25lbnQgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIENvbW1lbnRzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgVmlld1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBFbGVtZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogQ29tbWVudCAqL1xuLyogTmVzdGVkIENvbW1lbnQgKi9cbi8qIEF2YXRhciAqL1xuLyogQ29udGVudCAqL1xuLyogQXV0aG9yICovXG4vKiBNZXRhZGF0YSAqL1xuLyogVGV4dCAqL1xuLyogQWN0aW9ucyAqL1xuLyogUmVwbHkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgVmFyaWF0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhyZWFkZWQgKi9cbi8qIE1pbmltYWwgKi9cbi8qIFNpemVzICovXG4vKiBQYWNrYWdlZCBUaGVtZSAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIENvbW1lbnRzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgVmlld1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBFbGVtZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogQ29tbWVudCAqL1xuLyogTmVzdGVkIENvbW1lbnQgKi9cbi8qIEF2YXRhciAqL1xuLyogQ29udGVudCAqL1xuLyogQXV0aG9yICovXG4vKiBNZXRhZGF0YSAqL1xuLyogVGV4dCAqL1xuLyogQWN0aW9ucyAqL1xuLyogUmVwbHkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgVmFyaWF0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhyZWFkZWQgKi9cbi8qIE1pbmltYWwgKi9cbi8qIFNpemVzICovXG4vKiBTaXRlIFRoZW1lICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgIFVzZXIgVmFyaWFibGUgT3ZlcnJpZGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBNaXgtaW5zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBPdmVycmlkZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRW5kIENvbmZpZyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFN0YW5kYXJkXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgIENvbW1lbnRzXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmNvbW1lbnRzIHtcbiAgbWFyZ2luOiAxLjVlbSAwZW07XG4gIG1heC13aWR0aDogNjUwcHg7XG59XG4udWkuY29tbWVudHM6Zmlyc3QtY2hpbGQge1xuICBtYXJnaW4tdG9wOiAwZW07XG59XG4udWkuY29tbWVudHM6bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1ib3R0b206IDBlbTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgQ29tbWVudFxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5jb21tZW50cyAuY29tbWVudCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgbWFyZ2luOiAwLjVlbSAwZW0gMGVtO1xuICBwYWRkaW5nOiAwLjVlbSAwZW0gMGVtO1xuICBib3JkZXI6IG5vbmU7XG4gIGJvcmRlci10b3A6IG5vbmU7XG4gIGxpbmUtaGVpZ2h0OiAxLjI7XG59XG4udWkuY29tbWVudHMgLmNvbW1lbnQ6Zmlyc3QtY2hpbGQge1xuICBtYXJnaW4tdG9wOiAwZW07XG4gIHBhZGRpbmctdG9wOiAwZW07XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgTmVzdGVkIENvbW1lbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmNvbW1lbnRzIC5jb21tZW50IC5jb21tZW50cyB7XG4gIG1hcmdpbjogMGVtIDBlbSAwLjVlbSAwLjVlbTtcbiAgcGFkZGluZzogMWVtIDBlbSAxZW0gMWVtO1xufVxuLnVpLmNvbW1lbnRzIC5jb21tZW50IC5jb21tZW50czpiZWZvcmUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMHB4O1xuICBsZWZ0OiAwcHg7XG59XG4udWkuY29tbWVudHMgLmNvbW1lbnQgLmNvbW1lbnRzIC5jb21tZW50IHtcbiAgYm9yZGVyOiBub25lO1xuICBib3JkZXItdG9wOiBub25lO1xuICBiYWNrZ3JvdW5kOiBub25lO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBBdmF0YXJcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuY29tbWVudHMgLmNvbW1lbnQgLmF2YXRhciB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMi41ZW07XG4gIGhlaWdodDogYXV0bztcbiAgZmxvYXQ6IGxlZnQ7XG4gIG1hcmdpbjogMC4yZW0gMGVtIDBlbTtcbn1cbi51aS5jb21tZW50cyAuY29tbWVudCBpbWcuYXZhdGFyLFxuLnVpLmNvbW1lbnRzIC5jb21tZW50IC5hdmF0YXIgaW1nIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbjogMGVtIGF1dG87XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGJvcmRlci1yYWRpdXM6IDAuMjVyZW07XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIENvbnRlbnRcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuY29tbWVudHMgLmNvbW1lbnQgPiAuY29udGVudCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuLyogSWYgdGhlcmUgaXMgYW4gYXZhdGFyIG1vdmUgY29udGVudCBvdmVyICovXG4udWkuY29tbWVudHMgLmNvbW1lbnQgPiAuYXZhdGFyIH4gLmNvbnRlbnQge1xuICBtYXJnaW4tbGVmdDogMy41ZW07XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIEF1dGhvclxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5jb21tZW50cyAuY29tbWVudCAuYXV0aG9yIHtcbiAgZm9udC1zaXplOiAxZW07XG4gIGNvbG9yOiAjMzMzMzMzO1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cbi51aS5jb21tZW50cyAuY29tbWVudCBhLmF1dGhvciB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbi51aS5jb21tZW50cyAuY29tbWVudCBhLmF1dGhvcjpob3ZlciB7XG4gIGNvbG9yOiAjMWU3MGJmO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBNZXRhZGF0YVxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5jb21tZW50cyAuY29tbWVudCAubWV0YWRhdGEge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1hcmdpbi1sZWZ0OiAwLjVlbTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC40KTtcbiAgZm9udC1zaXplOiAwLjg3NWVtO1xufVxuLnVpLmNvbW1lbnRzIC5jb21tZW50IC5tZXRhZGF0YSA+ICoge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1hcmdpbjogMGVtIDAuNWVtIDBlbSAwZW07XG59XG4udWkuY29tbWVudHMgLmNvbW1lbnQgLm1ldGFkYXRhID4gOmxhc3QtY2hpbGQge1xuICBtYXJnaW4tcmlnaHQ6IDBlbTtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQ29tbWVudCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmNvbW1lbnRzIC5jb21tZW50IC50ZXh0IHtcbiAgbWFyZ2luOiAwLjI1ZW0gMGVtIDAuNWVtO1xuICBmb250LXNpemU6IDFlbTtcbiAgd29yZC13cmFwOiBicmVhay13b3JkO1xuICBjb2xvcjogIzMzMzMzMztcbiAgbGluZS1oZWlnaHQ6IDEuMztcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVXNlciBBY3Rpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmNvbW1lbnRzIC5jb21tZW50IC5hY3Rpb25zIHtcbiAgZm9udC1zaXplOiAwLjg3NWVtO1xufVxuLnVpLmNvbW1lbnRzIC5jb21tZW50IC5hY3Rpb25zIGEge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWFyZ2luOiAwZW0gMC43NWVtIDBlbSAwZW07XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNCk7XG59XG4udWkuY29tbWVudHMgLmNvbW1lbnQgLmFjdGlvbnMgYTpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLXJpZ2h0OiAwZW07XG59XG4udWkuY29tbWVudHMgLmNvbW1lbnQgLmFjdGlvbnMgYS5hY3RpdmUsXG4udWkuY29tbWVudHMgLmNvbW1lbnQgLmFjdGlvbnMgYTpob3ZlciB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuOCk7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBSZXBseSBGb3JtXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmNvbW1lbnRzID4gLnJlcGx5LmZvcm0ge1xuICBtYXJnaW4tdG9wOiAxZW07XG59XG4udWkuY29tbWVudHMgLmNvbW1lbnQgLnJlcGx5LmZvcm0ge1xuICB3aWR0aDogMTAwJTtcbiAgbWFyZ2luLXRvcDogMWVtO1xufVxuLnVpLmNvbW1lbnRzIC5yZXBseS5mb3JtIHRleHRhcmVhIHtcbiAgZm9udC1zaXplOiAxZW07XG4gIGhlaWdodDogMTJlbTtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBTdGF0ZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi51aS5jb2xsYXBzZWQuY29tbWVudHMsXG4udWkuY29tbWVudHMgLmNvbGxhcHNlZC5jb21tZW50cyxcbi51aS5jb21tZW50cyAuY29sbGFwc2VkLmNvbW1lbnQge1xuICBkaXNwbGF5OiBub25lO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgVmFyaWF0aW9uc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgVGhyZWFkZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkudGhyZWFkZWQuY29tbWVudHMgLmNvbW1lbnQgLmNvbW1lbnRzIHtcbiAgbWFyZ2luOiAtMS41ZW0gMCAtMWVtIDEuMjVlbTtcbiAgcGFkZGluZzogM2VtIDBlbSAyZW0gMi4yNWVtO1xuICBib3gtc2hhZG93OiAtMXB4IDBweCAwcHggcmdiYSgzNCwgMzYsIDM4LCAwLjE1KTtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgTWluaW1hbFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5taW5pbWFsLmNvbW1lbnRzIC5jb21tZW50IC5hY3Rpb25zIHtcbiAgb3BhY2l0eTogMDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDBweDtcbiAgcmlnaHQ6IDBweDtcbiAgbGVmdDogYXV0bztcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzIGVhc2U7XG4gIHRyYW5zaXRpb24tZGVsYXk6IDAuMXM7XG59XG4udWkubWluaW1hbC5jb21tZW50cyAuY29tbWVudCA+IC5jb250ZW50OmhvdmVyID4gLmFjdGlvbnMge1xuICBvcGFjaXR5OiAxO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkubWluaS5jb21tZW50cyB7XG4gIGZvbnQtc2l6ZTogMC44cmVtO1xufVxuLnVpLnRpbnkuY29tbWVudHMge1xuICBmb250LXNpemU6IDAuOXJlbTtcbn1cbi51aS5zbWFsbC5jb21tZW50cyB7XG4gIGZvbnQtc2l6ZTogMC45ZW07XG59XG4udWkuY29tbWVudHMge1xuICBmb250LXNpemU6IDFlbTtcbn1cbi51aS5sYXJnZS5jb21tZW50cyB7XG4gIGZvbnQtc2l6ZTogMS4xZW07XG59XG4udWkuYmlnLmNvbW1lbnRzIHtcbiAgZm9udC1zaXplOiAxLjNyZW07XG59XG4udWkuaHVnZS5jb21tZW50cyB7XG4gIGZvbnQtc2l6ZTogMS4yZW07XG59XG4udWkubWFzc2l2ZS5jb21tZW50cyB7XG4gIGZvbnQtc2l6ZTogMS43cmVtO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFRoZW1lIE92ZXJyaWRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgVXNlciBWYXJpYWJsZSBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiFcbiAqICMgU2VtYW50aWMgVUkgLSBGZWVkXG4gKiBodHRwOi8vZ2l0aHViLmNvbS9zZW1hbnRpYy1vcmcvc2VtYW50aWMtdWkvXG4gKlxuICpcbiAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZVxuICogaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVFxuICpcbiAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLypcblxu4paI4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWXICDilojilojilZfilojilojilojilojilojilojilojilZfilojilojilojilZcgICDilojilojilojilZfilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZdcbuKVmuKVkOKVkOKWiOKWiOKVlOKVkOKVkOKVneKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWd4paI4paI4paI4paI4pWXIOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVnVxuICAg4paI4paI4pWRICAg4paI4paI4paI4paI4paI4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilZTilojilojilojilojilZTilojilojilZHilojilojilojilojilojilZcgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl1xuICAg4paI4paI4pWRICAg4paI4paI4pWU4pWQ4pWQ4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilojilojilZHilZrilojilojilZTilZ3ilojilojilZHilojilojilZTilZDilZDilZ0gIOKVmuKVkOKVkOKVkOKVkOKWiOKWiOKVkVxuICAg4paI4paI4pWRICAg4paI4paI4pWRICDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilZEg4pWa4pWQ4pWdIOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkVxuICAg4pWa4pWQ4pWdICAg4pWa4pWQ4pWdICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZ0gICAgIOKVmuKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVnVxuXG4qL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgVGhlbWUgU2VsZWN0aW9uXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogVG8gb3ZlcnJpZGUgYSB0aGVtZSBmb3IgYW4gaW5kaXZpZHVhbCBlbGVtZW50XG4gICBzcGVjaWZ5IHRoZW1lIG5hbWUgYmVsb3dcbiovXG4vKiBHbG9iYWwgKi9cbi8qIEVsZW1lbnRzICovXG4vKiBDb2xsZWN0aW9ucyAqL1xuLyogTW9kdWxlcyAqL1xuLyogVmlld3MgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBGb2xkZXJzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogUGF0aCB0byB0aGVtZSBwYWNrYWdlcyAqL1xuLyogUGF0aCB0byBzaXRlIG92ZXJyaWRlIGZvbGRlciAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIEltcG9ydCBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIEltcG9ydCBEaXJlY3RpdmVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBUaGVtZVxuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICBTaXRlIFZhcmlhYmxlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERlZmF1bHQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZG9ycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBQYWNrYWdlZCBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kb3JzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIENvbXBvbmVudCdzIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRvcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogU2l0ZSB0aGVtZSBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgVXNlciBHbG9iYWwgVmFyaWFibGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogbWFyc28gY29sb3JzICovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gQ29tcG9uZW50IFZhcmlhYmxlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERlZmF1bHQgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgRmVlZFxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGZWVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEVsZW1lbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBFdmVudCAqL1xuLyogRXZlbnQgTGFiZWwgKi9cbi8qIEljb24gTGFiZWwgKi9cbi8qIEltYWdlIExhYmVsICovXG4vKiBDb250ZW50IHcvIExhYmVsICovXG4vKiBDb250ZW50ICovXG4vKiBEYXRlICovXG4vKiBTdW1tYXJ5ICovXG4vKiBTdW1tYXJ5IEltYWdlICovXG4vKiBTdW1tYXJ5IERhdGUgKi9cbi8qIFVzZXIgKi9cbi8qIEV4dHJhIFN1bW1hcnkgRGF0YSAqL1xuLyogRXh0cmEgSW1hZ2VzICovXG4vKiBFeHRyYSBUZXh0ICovXG4vKiBNZXRhZGF0YSBHcm91cCAqL1xuLyogTGlrZSAqL1xuLyogTWV0YWRhdGEgRGl2aWRlciAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBWYXJpYXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQYWNrYWdlZCBUaGVtZSAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBGZWVkXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZlZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRWxlbWVudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEV2ZW50ICovXG4vKiBFdmVudCBMYWJlbCAqL1xuLyogSWNvbiBMYWJlbCAqL1xuLyogSW1hZ2UgTGFiZWwgKi9cbi8qIENvbnRlbnQgdy8gTGFiZWwgKi9cbi8qIENvbnRlbnQgKi9cbi8qIERhdGUgKi9cbi8qIFN1bW1hcnkgKi9cbi8qIFN1bW1hcnkgSW1hZ2UgKi9cbi8qIFN1bW1hcnkgRGF0ZSAqL1xuLyogVXNlciAqL1xuLyogRXh0cmEgU3VtbWFyeSBEYXRhICovXG4vKiBFeHRyYSBJbWFnZXMgKi9cbi8qIEV4dHJhIFRleHQgKi9cbi8qIE1ldGFkYXRhIEdyb3VwICovXG4vKiBMaWtlICovXG4vKiBNZXRhZGF0YSBEaXZpZGVyICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFZhcmlhdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNpdGUgVGhlbWUgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgVXNlciBWYXJpYWJsZSBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIE1peC1pbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE92ZXJyaWRlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBFbmQgQ29uZmlnICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgQWN0aXZpdHkgRmVlZFxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi51aS5mZWVkIHtcbiAgbWFyZ2luOiAxZW0gMGVtO1xufVxuLnVpLmZlZWQ6Zmlyc3QtY2hpbGQge1xuICBtYXJnaW4tdG9wOiAwZW07XG59XG4udWkuZmVlZDpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLWJvdHRvbTogMGVtO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIENvbnRlbnRcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBFdmVudCAqL1xuLnVpLmZlZWQgPiAuZXZlbnQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZzogMC4zcmVtIDBlbTtcbiAgbWFyZ2luOiAwZW07XG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIGJvcmRlci10b3A6IG5vbmU7XG59XG4udWkuZmVlZCA+IC5ldmVudDpmaXJzdC1jaGlsZCB7XG4gIGJvcmRlci10b3A6IDBweDtcbiAgcGFkZGluZy10b3A6IDBlbTtcbn1cbi51aS5mZWVkID4gLmV2ZW50Omxhc3QtY2hpbGQge1xuICBwYWRkaW5nLWJvdHRvbTogMGVtO1xufVxuLyogRXZlbnQgTGFiZWwgKi9cbi51aS5mZWVkID4gLmV2ZW50ID4gLmxhYmVsIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZsZXg6IDAgMCBhdXRvO1xuICB3aWR0aDogMi41ZW07XG4gIGhlaWdodDogYXV0bztcbiAgYWxpZ24tc2VsZjogc3RyZXRjaDtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbn1cbi51aS5mZWVkID4gLmV2ZW50ID4gLmxhYmVsIC5pY29uIHtcbiAgb3BhY2l0eTogMTtcbiAgZm9udC1zaXplOiAxLjVlbTtcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmc6IDAuMjVlbTtcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgYm9yZGVyOiBub25lO1xuICBib3JkZXItcmFkaXVzOiBub25lO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjYpO1xufVxuLnVpLmZlZWQgPiAuZXZlbnQgPiAubGFiZWwgaW1nIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogYXV0bztcbiAgYm9yZGVyLXJhZGl1czogNTAwcmVtO1xufVxuLnVpLmZlZWQgPiAuZXZlbnQgPiAubGFiZWwgKyAuY29udGVudCB7XG4gIG1hcmdpbjogMC41ZW0gMGVtIDAuNWVtIDEuMWVtO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBDb250ZW50XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogQ29udGVudCAqL1xuLnVpLmZlZWQgPiAuZXZlbnQgPiAuY29udGVudCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmbGV4OiAxIDEgYXV0bztcbiAgYWxpZ24tc2VsZjogc3RyZXRjaDtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgd29yZC13cmFwOiBicmVhay13b3JkO1xufVxuLnVpLmZlZWQgPiAuZXZlbnQ6bGFzdC1jaGlsZCA+IC5jb250ZW50IHtcbiAgcGFkZGluZy1ib3R0b206IDBlbTtcbn1cbi8qIExpbmsgKi9cbi51aS5mZWVkID4gLmV2ZW50ID4gLmNvbnRlbnQgYSB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgIERhdGVcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuZmVlZCA+IC5ldmVudCA+IC5jb250ZW50IC5kYXRlIHtcbiAgbWFyZ2luOiAtMC41cmVtIDBlbSAwZW07XG4gIHBhZGRpbmc6IDBlbTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zaXplOiAxZW07XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC40KTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgU3VtbWFyeVxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5mZWVkID4gLmV2ZW50ID4gLmNvbnRlbnQgLnN1bW1hcnkge1xuICBtYXJnaW46IDBlbTtcbiAgZm9udC1zaXplOiAxZW07XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBjb2xvcjogIzMzMzMzMztcbn1cbi8qIFN1bW1hcnkgSW1hZ2UgKi9cbi51aS5mZWVkID4gLmV2ZW50ID4gLmNvbnRlbnQgLnN1bW1hcnkgaW1nIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB3aWR0aDogYXV0bztcbiAgaGVpZ2h0OiAxMGVtO1xuICBtYXJnaW46IC0wLjI1ZW0gMC4yNWVtIDBlbSAwZW07XG4gIGJvcmRlci1yYWRpdXM6IDAuMjVlbTtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgIFVzZXJcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuZmVlZCA+IC5ldmVudCA+IC5jb250ZW50IC51c2VyIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgbWFyZ2luLXJpZ2h0OiAwZW07XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbn1cbi51aS5mZWVkID4gLmV2ZW50ID4gLmNvbnRlbnQgLnVzZXIgaW1nIHtcbiAgbWFyZ2luOiAtMC4yNWVtIDAuMjVlbSAwZW0gMGVtO1xuICB3aWR0aDogYXV0bztcbiAgaGVpZ2h0OiAxMGVtO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgSW5saW5lIERhdGVcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBEYXRlIGluc2lkZSBTdW1tYXJ5ICovXG4udWkuZmVlZCA+IC5ldmVudCA+IC5jb250ZW50IC5zdW1tYXJ5ID4gLmRhdGUge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZsb2F0OiBub25lO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXNpemU6IDAuOWVtO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIG1hcmdpbjogMGVtIDBlbSAwZW0gMC41ZW07XG4gIHBhZGRpbmc6IDBlbTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC40KTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgRXh0cmEgU3VtbWFyeVxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5mZWVkID4gLmV2ZW50ID4gLmNvbnRlbnQgLmV4dHJhIHtcbiAgbWFyZ2luOiAwLjVlbSAwZW0gMGVtO1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICBwYWRkaW5nOiAwZW07XG4gIGNvbG9yOiAjMzMzMzMzO1xufVxuLyogSW1hZ2VzICovXG4udWkuZmVlZCA+IC5ldmVudCA+IC5jb250ZW50IC5leHRyYS5pbWFnZXMgaW1nIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXJnaW46IDBlbSAwLjI1ZW0gMGVtIDBlbTtcbiAgd2lkdGg6IDZlbTtcbn1cbi8qIFRleHQgKi9cbi51aS5mZWVkID4gLmV2ZW50ID4gLmNvbnRlbnQgLmV4dHJhLnRleHQge1xuICBwYWRkaW5nOiAwZW07XG4gIGJvcmRlci1sZWZ0OiBub25lO1xuICBmb250LXNpemU6IDFlbTtcbiAgbWF4LXdpZHRoOiA1MDBweDtcbiAgbGluZS1oZWlnaHQ6IDEuNDI4NWVtO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICAgTWV0YVxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5mZWVkID4gLmV2ZW50ID4gLmNvbnRlbnQgLm1ldGEge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZvbnQtc2l6ZTogMC45ZW07XG4gIG1hcmdpbjogMC41ZW0gMGVtIDBlbTtcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgYm9yZGVyOiBub25lO1xuICBib3JkZXItcmFkaXVzOiAwO1xuICBib3gtc2hhZG93OiBub25lO1xuICBwYWRkaW5nOiAwZW07XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNik7XG59XG4udWkuZmVlZCA+IC5ldmVudCA+IC5jb250ZW50IC5tZXRhID4gKiB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWFyZ2luLWxlZnQ6IDAuNzVlbTtcbn1cbi51aS5mZWVkID4gLmV2ZW50ID4gLmNvbnRlbnQgLm1ldGEgPiAqOmFmdGVyIHtcbiAgY29udGVudDogJyc7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMik7XG4gIHRvcDogMGVtO1xuICBsZWZ0OiAtMWVtO1xuICBvcGFjaXR5OiAxO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHZlcnRpY2FsLWFsaWduOiB0b3A7XG59XG4udWkuZmVlZCA+IC5ldmVudCA+IC5jb250ZW50IC5tZXRhIC5saWtlIHtcbiAgY29sb3I6ICcnO1xuICB0cmFuc2l0aW9uOiAwLjJzIGNvbG9yIGVhc2U7XG59XG4udWkuZmVlZCA+IC5ldmVudCA+IC5jb250ZW50IC5tZXRhIC5saWtlOmhvdmVyIC5pY29uIHtcbiAgY29sb3I6ICNGRjI3MzM7XG59XG4udWkuZmVlZCA+IC5ldmVudCA+IC5jb250ZW50IC5tZXRhIC5hY3RpdmUubGlrZSAuaWNvbiB7XG4gIGNvbG9yOiAjRUY0MDRBO1xufVxuLyogRmlyc3QgZWxlbWVudCAqL1xuLnVpLmZlZWQgPiAuZXZlbnQgPiAuY29udGVudCAubWV0YSA+IDpmaXJzdC1jaGlsZCB7XG4gIG1hcmdpbi1sZWZ0OiAwZW07XG59XG4udWkuZmVlZCA+IC5ldmVudCA+IC5jb250ZW50IC5tZXRhID4gOmZpcnN0LWNoaWxkOjphZnRlciB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4vKiBBY3Rpb24gKi9cbi51aS5mZWVkID4gLmV2ZW50ID4gLmNvbnRlbnQgLm1ldGEgYSxcbi51aS5mZWVkID4gLmV2ZW50ID4gLmNvbnRlbnQgLm1ldGEgPiAuaWNvbiB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgb3BhY2l0eTogMTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC41KTtcbiAgdHJhbnNpdGlvbjogY29sb3IgMC4xcyBlYXNlO1xufVxuLnVpLmZlZWQgPiAuZXZlbnQgPiAuY29udGVudCAubWV0YSBhOmhvdmVyLFxuLnVpLmZlZWQgPiAuZXZlbnQgPiAuY29udGVudCAubWV0YSBhOmhvdmVyIC5pY29uLFxuLnVpLmZlZWQgPiAuZXZlbnQgPiAuY29udGVudCAubWV0YSA+IC5pY29uOmhvdmVyIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC45NSk7XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgVmFyaWF0aW9uc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi51aS5zbWFsbC5mZWVkIHtcbiAgZm9udC1zaXplOiAwLjlyZW07XG59XG4udWkuZmVlZCB7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbn1cbi51aS5sYXJnZS5mZWVkIHtcbiAgZm9udC1zaXplOiAxLjFyZW07XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgVGhlbWUgT3ZlcnJpZGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICBVc2VyIFZhcmlhYmxlIE92ZXJyaWRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIVxuICogIyBTZW1hbnRpYyBVSSAtIEl0ZW1cbiAqIGh0dHA6Ly9naXRodWIuY29tL3NlbWFudGljLW9yZy9zZW1hbnRpYy11aS9cbiAqXG4gKlxuICogUmVsZWFzZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlXG4gKiBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUXG4gKlxuICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKlxuXG7ilojilojilojilojilojilojilojilojilZfilojilojilZcgIOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKVlyAgIOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl1xu4pWa4pWQ4pWQ4paI4paI4pWU4pWQ4pWQ4pWd4paI4paI4pWRICDilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilojilojilZcg4paI4paI4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWd4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWdXG4gICDilojilojilZEgICDilojilojilojilojilojilojilojilZHilojilojilojilojilojilZcgIOKWiOKWiOKVlOKWiOKWiOKWiOKWiOKVlOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4paI4paI4paI4paI4paI4pWXXG4gICDilojilojilZEgICDilojilojilZTilZDilZDilojilojilZHilojilojilZTilZDilZDilZ0gIOKWiOKWiOKVkeKVmuKWiOKWiOKVlOKVneKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4pWa4pWQ4pWQ4pWQ4pWQ4paI4paI4pWRXG4gICDilojilojilZEgICDilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVkSDilZrilZDilZ0g4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWRXG4gICDilZrilZDilZ0gICDilZrilZDilZ0gIOKVmuKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVneKVmuKVkOKVnSAgICAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWdXG5cbiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBUaGVtZSBTZWxlY3Rpb25cbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBUbyBvdmVycmlkZSBhIHRoZW1lIGZvciBhbiBpbmRpdmlkdWFsIGVsZW1lbnRcbiAgIHNwZWNpZnkgdGhlbWUgbmFtZSBiZWxvd1xuKi9cbi8qIEdsb2JhbCAqL1xuLyogRWxlbWVudHMgKi9cbi8qIENvbGxlY3Rpb25zICovXG4vKiBNb2R1bGVzICovXG4vKiBWaWV3cyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIEZvbGRlcnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBQYXRoIHRvIHRoZW1lIHBhY2thZ2VzICovXG4vKiBQYXRoIHRvIHNpdGUgb3ZlcnJpZGUgZm9sZGVyICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgSW1wb3J0IFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgSW1wb3J0IERpcmVjdGl2ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIFRoZW1lXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgIFNpdGUgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kb3JzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFBhY2thZ2VkIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRvcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogQ29tcG9uZW50J3Mgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZG9ycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBTaXRlIHRoZW1lIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICBVc2VyIEdsb2JhbCBWYXJpYWJsZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBtYXJzbyBjb2xvcnMgKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiBDb21wb25lbnQgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBJdGVtXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgICBWaWV3XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBHcm91cCAqL1xuLyogSXRlbSAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQ29udGVudFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW1hZ2UgKi9cbi8qIENvbnRlbnQgKi9cbi8qIEhlYWRlciAqL1xuLyogTWV0YWRhdGEgKi9cbi8qIEljb25zICovXG4vKiBBY3Rpb25zICovXG4vKiBMaW5rcyAqL1xuLyogRGVzY3JpcHRpb24gKi9cbi8qIENvbnRlbnQgSW1hZ2UgKi9cbi8qIEF2YXRhciBJbWFnZSAqL1xuLyogUGFyYWdyYXBoICovXG4vKiBBZGRpdGlvbmFsIENvbnRlbnQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgVmFyaWF0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUmVsYXhlZCAqL1xuLyogRGl2aWRlZCAqL1xuLyogVW5zdGFja2FibGUgKi9cbi8qIFBhY2thZ2VkIFRoZW1lICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIEl0ZW1cbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgIFZpZXdcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEdyb3VwICovXG4vKiBJdGVtICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBDb250ZW50XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbWFnZSAqL1xuLyogQ29udGVudCAqL1xuLyogSGVhZGVyICovXG4vKiBNZXRhZGF0YSAqL1xuLyogSWNvbnMgKi9cbi8qIEFjdGlvbnMgKi9cbi8qIExpbmtzICovXG4vKiBEZXNjcmlwdGlvbiAqL1xuLyogQ29udGVudCBJbWFnZSAqL1xuLyogQXZhdGFyIEltYWdlICovXG4vKiBQYXJhZ3JhcGggKi9cbi8qIEFkZGl0aW9uYWwgQ29udGVudCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBWYXJpYXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBSZWxheGVkICovXG4vKiBEaXZpZGVkICovXG4vKiBVbnN0YWNrYWJsZSAqL1xuLyogU2l0ZSBUaGVtZSAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICBVc2VyIFZhcmlhYmxlIE92ZXJyaWRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgTWl4LWluc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgT3ZlcnJpZGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEVuZCBDb25maWcgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBTdGFuZGFyZFxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgIEl0ZW1cbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuaXRlbXMgPiAuaXRlbSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIG1hcmdpbjogMWVtIDBlbTtcbiAgd2lkdGg6IDEwMCU7XG4gIG1pbi1oZWlnaHQ6IDBweDtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIHBhZGRpbmc6IDBlbTtcbiAgYm9yZGVyOiBub25lO1xuICBib3JkZXItcmFkaXVzOiAwcmVtO1xuICBib3gtc2hhZG93OiBub25lO1xuICB0cmFuc2l0aW9uOiBib3gtc2hhZG93IDAuMXMgZWFzZTtcbiAgei1pbmRleDogJyc7XG59XG4udWkuaXRlbXMgPiAuaXRlbSBhIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICAgSXRlbXNcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuaXRlbXMge1xuICBtYXJnaW46IDEuNWVtIDBlbTtcbn1cbi51aS5pdGVtczpmaXJzdC1jaGlsZCB7XG4gIG1hcmdpbi10b3A6IDBlbSAhaW1wb3J0YW50O1xufVxuLnVpLml0ZW1zOmxhc3QtY2hpbGQge1xuICBtYXJnaW4tYm90dG9tOiAwZW0gIWltcG9ydGFudDtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgIEl0ZW1cbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuaXRlbXMgPiAuaXRlbTphZnRlciB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBjb250ZW50OiAnICc7XG4gIGhlaWdodDogMHB4O1xuICBjbGVhcjogYm90aDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xufVxuLnVpLml0ZW1zID4gLml0ZW06Zmlyc3QtY2hpbGQge1xuICBtYXJnaW4tdG9wOiAwZW07XG59XG4udWkuaXRlbXMgPiAuaXRlbTpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLWJvdHRvbTogMGVtO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBJbWFnZXNcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuaXRlbXMgPiAuaXRlbSA+IC5pbWFnZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZmxleDogMCAwIGF1dG87XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmbG9hdDogbm9uZTtcbiAgbWFyZ2luOiAwZW07XG4gIHBhZGRpbmc6IDBlbTtcbiAgbWF4LWhlaWdodDogJyc7XG4gIGFsaWduLXNlbGY6IHRvcDtcbn1cbi51aS5pdGVtcyA+IC5pdGVtID4gLmltYWdlID4gaW1nIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IGF1dG87XG4gIGJvcmRlci1yYWRpdXM6IDAuMTI1cmVtO1xuICBib3JkZXI6IG5vbmU7XG59XG4udWkuaXRlbXMgPiAuaXRlbSA+IC5pbWFnZTpvbmx5LWNoaWxkID4gaW1nIHtcbiAgYm9yZGVyLXJhZGl1czogMHJlbTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgQ29udGVudFxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5pdGVtcyA+IC5pdGVtID4gLmNvbnRlbnQge1xuICBkaXNwbGF5OiBibG9jaztcbiAgZmxleDogMSAxIGF1dG87XG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIG1hcmdpbjogMGVtO1xuICBwYWRkaW5nOiAwZW07XG4gIGJveC1zaGFkb3c6IG5vbmU7XG4gIGZvbnQtc2l6ZTogMWVtO1xuICBib3JkZXI6IG5vbmU7XG4gIGJvcmRlci1yYWRpdXM6IDBlbTtcbn1cbi51aS5pdGVtcyA+IC5pdGVtID4gLmNvbnRlbnQ6YWZ0ZXIge1xuICBkaXNwbGF5OiBibG9jaztcbiAgY29udGVudDogJyAnO1xuICBoZWlnaHQ6IDBweDtcbiAgY2xlYXI6IGJvdGg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbn1cbi51aS5pdGVtcyA+IC5pdGVtID4gLmltYWdlICsgLmNvbnRlbnQge1xuICBtaW4td2lkdGg6IDA7XG4gIHdpZHRoOiBhdXRvO1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luLWxlZnQ6IDBlbTtcbiAgYWxpZ24tc2VsZjogdG9wO1xuICBwYWRkaW5nLWxlZnQ6IDEuNWVtO1xufVxuLnVpLml0ZW1zID4gLml0ZW0gPiAuY29udGVudCA+IC5oZWFkZXIge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1hcmdpbjogLTAuMjE0MjVlbSAwZW0gMGVtO1xuICBmb250LWZhbWlseTogJ0V4byAyJywgJ0xhdG8nLCBBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44NSk7XG59XG4vKiBEZWZhdWx0IEhlYWRlciBTaXplICovXG4udWkuaXRlbXMgPiAuaXRlbSA+IC5jb250ZW50ID4gLmhlYWRlcjpub3QoLnVpKSB7XG4gIGZvbnQtc2l6ZTogMS4zZW07XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIEZsb2F0ZWRcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuaXRlbXMgPiAuaXRlbSBbY2xhc3MqPVwibGVmdCBmbG9hdGVkXCJdIHtcbiAgZmxvYXQ6IGxlZnQ7XG59XG4udWkuaXRlbXMgPiAuaXRlbSBbY2xhc3MqPVwicmlnaHQgZmxvYXRlZFwiXSB7XG4gIGZsb2F0OiByaWdodDtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgQ29udGVudCBJbWFnZVxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5pdGVtcyA+IC5pdGVtIC5jb250ZW50IGltZyB7XG4gIGFsaWduLXNlbGY6IG1pZGRsZTtcbiAgd2lkdGg6ICcnO1xufVxuLnVpLml0ZW1zID4gLml0ZW0gaW1nLmF2YXRhcixcbi51aS5pdGVtcyA+IC5pdGVtIC5hdmF0YXIgaW1nIHtcbiAgd2lkdGg6ICcnO1xuICBoZWlnaHQ6ICcnO1xuICBib3JkZXItcmFkaXVzOiA1MDByZW07XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICBEZXNjcmlwdGlvblxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5pdGVtcyA+IC5pdGVtID4gLmNvbnRlbnQgPiAuZGVzY3JpcHRpb24ge1xuICBtYXJnaW4tdG9wOiAwLjZlbTtcbiAgbWF4LXdpZHRoOiBhdXRvO1xuICBmb250LXNpemU6IDFlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNDI4NWVtO1xuICBjb2xvcjogIzMzMzMzMztcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuaXRlbXMgPiAuaXRlbSA+IC5jb250ZW50IHAge1xuICBtYXJnaW46IDBlbSAwZW0gMC41ZW07XG59XG4udWkuaXRlbXMgPiAuaXRlbSA+IC5jb250ZW50IHA6bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1ib3R0b206IDBlbTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgIE1ldGFcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuaXRlbXMgPiAuaXRlbSAubWV0YSB7XG4gIG1hcmdpbjogMC41ZW0gMGVtIDAuNWVtO1xuICBmb250LXNpemU6IDFlbTtcbiAgbGluZS1oZWlnaHQ6IDFlbTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC42KTtcbn1cbi51aS5pdGVtcyA+IC5pdGVtIC5tZXRhICoge1xuICBtYXJnaW4tcmlnaHQ6IDAuM2VtO1xufVxuLnVpLml0ZW1zID4gLml0ZW0gLm1ldGEgOmxhc3QtY2hpbGQge1xuICBtYXJnaW4tcmlnaHQ6IDBlbTtcbn1cbi51aS5pdGVtcyA+IC5pdGVtIC5tZXRhIFtjbGFzcyo9XCJyaWdodCBmbG9hdGVkXCJdIHtcbiAgbWFyZ2luLXJpZ2h0OiAwZW07XG4gIG1hcmdpbi1sZWZ0OiAwLjNlbTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogR2VuZXJpYyAqL1xuLnVpLml0ZW1zID4gLml0ZW0gPiAuY29udGVudCBhOm5vdCgudWkpIHtcbiAgY29sb3I6ICcnO1xuICB0cmFuc2l0aW9uOiBjb2xvciAwLjFzIGVhc2U7XG59XG4udWkuaXRlbXMgPiAuaXRlbSA+IC5jb250ZW50IGE6bm90KC51aSk6aG92ZXIge1xuICBjb2xvcjogJyc7XG59XG4vKiBIZWFkZXIgKi9cbi51aS5pdGVtcyA+IC5pdGVtID4gLmNvbnRlbnQgPiBhLmhlYWRlciB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODUpO1xufVxuLnVpLml0ZW1zID4gLml0ZW0gPiAuY29udGVudCA+IGEuaGVhZGVyOmhvdmVyIHtcbiAgY29sb3I6ICMxZTcwYmY7XG59XG4vKiBNZXRhICovXG4udWkuaXRlbXMgPiAuaXRlbSAubWV0YSA+IGE6bm90KC51aSkge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjQpO1xufVxuLnVpLml0ZW1zID4gLml0ZW0gLm1ldGEgPiBhOm5vdCgudWkpOmhvdmVyIHtcbiAgY29sb3I6ICMzMzMzMzM7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIExhYmVsc1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS1TdGFyLS0tLS0gKi9cbi8qIEljb24gKi9cbi51aS5pdGVtcyA+IC5pdGVtID4gLmNvbnRlbnQgLmZhdm9yaXRlLmljb24ge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIG9wYWNpdHk6IDAuNzU7XG4gIHRyYW5zaXRpb246IGNvbG9yIDAuMXMgZWFzZTtcbn1cbi51aS5pdGVtcyA+IC5pdGVtID4gLmNvbnRlbnQgLmZhdm9yaXRlLmljb246aG92ZXIge1xuICBvcGFjaXR5OiAxO1xuICBjb2xvcjogI0ZGQjcwQTtcbn1cbi51aS5pdGVtcyA+IC5pdGVtID4gLmNvbnRlbnQgLmFjdGl2ZS5mYXZvcml0ZS5pY29uIHtcbiAgY29sb3I6ICNGRkU2MjM7XG59XG4vKi0tLS0tTGlrZS0tLS0tICovXG4vKiBJY29uICovXG4udWkuaXRlbXMgPiAuaXRlbSA+IC5jb250ZW50IC5saWtlLmljb24ge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIG9wYWNpdHk6IDAuNzU7XG4gIHRyYW5zaXRpb246IGNvbG9yIDAuMXMgZWFzZTtcbn1cbi51aS5pdGVtcyA+IC5pdGVtID4gLmNvbnRlbnQgLmxpa2UuaWNvbjpob3ZlciB7XG4gIG9wYWNpdHk6IDE7XG4gIGNvbG9yOiAjRkYyNzMzO1xufVxuLnVpLml0ZW1zID4gLml0ZW0gPiAuY29udGVudCAuYWN0aXZlLmxpa2UuaWNvbiB7XG4gIGNvbG9yOiAjRkYyNzMzO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tXG4gIEV4dHJhIENvbnRlbnRcbi0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5pdGVtcyA+IC5pdGVtIC5leHRyYSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIG1hcmdpbjogMC41cmVtIDBlbSAwZW07XG4gIHdpZHRoOiAxMDAlO1xuICBwYWRkaW5nOiAwZW0gMGVtIDBlbTtcbiAgdG9wOiAwZW07XG4gIGxlZnQ6IDBlbTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC40KTtcbiAgYm94LXNoYWRvdzogbm9uZTtcbiAgdHJhbnNpdGlvbjogY29sb3IgMC4xcyBlYXNlO1xuICBib3JkZXItdG9wOiBub25lO1xufVxuLnVpLml0ZW1zID4gLml0ZW0gLmV4dHJhID4gKiB7XG4gIG1hcmdpbjogMC4yNXJlbSAwLjVyZW0gMC4yNXJlbSAwZW07XG59XG4udWkuaXRlbXMgPiAuaXRlbSAuZXh0cmEgPiBbY2xhc3MqPVwicmlnaHQgZmxvYXRlZFwiXSB7XG4gIG1hcmdpbjogMC4yNXJlbSAwZW0gMC4yNXJlbSAwLjVyZW07XG59XG4udWkuaXRlbXMgPiAuaXRlbSAuZXh0cmE6YWZ0ZXIge1xuICBkaXNwbGF5OiBibG9jaztcbiAgY29udGVudDogJyAnO1xuICBoZWlnaHQ6IDBweDtcbiAgY2xlYXI6IGJvdGg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgUmVzcG9uc2l2ZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIERlZmF1bHQgSW1hZ2UgV2lkdGggKi9cbi51aS5pdGVtcyA+IC5pdGVtID4gLmltYWdlOm5vdCgudWkpIHtcbiAgd2lkdGg6IDE3NXB4O1xufVxuLyogVGFibGV0IE9ubHkgKi9cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzY4cHgpIGFuZCAobWF4LXdpZHRoOiA5OTFweCkge1xuICAudWkuaXRlbXMgPiAuaXRlbSB7XG4gICAgbWFyZ2luOiAxZW0gMGVtO1xuICB9XG4gIC51aS5pdGVtcyA+IC5pdGVtID4gLmltYWdlOm5vdCgudWkpIHtcbiAgICB3aWR0aDogMTUwcHg7XG4gIH1cbiAgLnVpLml0ZW1zID4gLml0ZW0gPiAuaW1hZ2UgKyAuY29udGVudCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcGFkZGluZzogMGVtIDBlbSAwZW0gMWVtO1xuICB9XG59XG4vKiBNb2JpbGUgT25seSAqL1xuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAudWkuaXRlbXM6bm90KC51bnN0YWNrYWJsZSkgPiAuaXRlbSB7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBtYXJnaW46IDJlbSAwZW07XG4gIH1cbiAgLnVpLml0ZW1zOm5vdCgudW5zdGFja2FibGUpID4gLml0ZW0gPiAuaW1hZ2Uge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgfVxuICAudWkuaXRlbXM6bm90KC51bnN0YWNrYWJsZSkgPiAuaXRlbSA+IC5pbWFnZSxcbiAgLnVpLml0ZW1zOm5vdCgudW5zdGFja2FibGUpID4gLml0ZW0gPiAuaW1hZ2UgPiBpbWcge1xuICAgIG1heC13aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICAgIHdpZHRoOiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgbWF4LWhlaWdodDogMjUwcHggIWltcG9ydGFudDtcbiAgfVxuICAudWkuaXRlbXM6bm90KC51bnN0YWNrYWJsZSkgPiAuaXRlbSA+IC5pbWFnZSArIC5jb250ZW50IHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwYWRkaW5nOiAxLjVlbSAwZW0gMGVtO1xuICB9XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBWYXJpYXRpb25zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWxpZ25lZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLml0ZW1zID4gLml0ZW0gPiAuaW1hZ2UgKyBbY2xhc3MqPVwidG9wIGFsaWduZWRcIl0uY29udGVudCB7XG4gIGFsaWduLXNlbGY6IGZsZXgtc3RhcnQ7XG59XG4udWkuaXRlbXMgPiAuaXRlbSA+IC5pbWFnZSArIFtjbGFzcyo9XCJtaWRkbGUgYWxpZ25lZFwiXS5jb250ZW50IHtcbiAgYWxpZ24tc2VsZjogY2VudGVyO1xufVxuLnVpLml0ZW1zID4gLml0ZW0gPiAuaW1hZ2UgKyBbY2xhc3MqPVwiYm90dG9tIGFsaWduZWRcIl0uY29udGVudCB7XG4gIGFsaWduLXNlbGY6IGZsZXgtZW5kO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBSZWxheGVkXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLnJlbGF4ZWQuaXRlbXMgPiAuaXRlbSB7XG4gIG1hcmdpbjogMS41ZW0gMGVtO1xufVxuLnVpW2NsYXNzKj1cInZlcnkgcmVsYXhlZFwiXS5pdGVtcyA+IC5pdGVtIHtcbiAgbWFyZ2luOiAyZW0gMGVtO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXZpZGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkuZGl2aWRlZC5pdGVtcyA+IC5pdGVtIHtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHJnYmEoMzQsIDM2LCAzOCwgMC4xNSk7XG4gIG1hcmdpbjogMGVtO1xuICBwYWRkaW5nOiAxZW0gMGVtO1xufVxuLnVpLmRpdmlkZWQuaXRlbXMgPiAuaXRlbTpmaXJzdC1jaGlsZCB7XG4gIGJvcmRlci10b3A6IG5vbmU7XG4gIG1hcmdpbi10b3A6IDBlbSAhaW1wb3J0YW50O1xuICBwYWRkaW5nLXRvcDogMGVtICFpbXBvcnRhbnQ7XG59XG4udWkuZGl2aWRlZC5pdGVtcyA+IC5pdGVtOmxhc3QtY2hpbGQge1xuICBtYXJnaW4tYm90dG9tOiAwZW0gIWltcG9ydGFudDtcbiAgcGFkZGluZy1ib3R0b206IDBlbSAhaW1wb3J0YW50O1xufVxuLyogUmVsYXhlZCBEaXZpZGVkICovXG4udWkucmVsYXhlZC5kaXZpZGVkLml0ZW1zID4gLml0ZW0ge1xuICBtYXJnaW46IDBlbTtcbiAgcGFkZGluZzogMS41ZW0gMGVtO1xufVxuLnVpW2NsYXNzKj1cInZlcnkgcmVsYXhlZFwiXS5kaXZpZGVkLml0ZW1zID4gLml0ZW0ge1xuICBtYXJnaW46IDBlbTtcbiAgcGFkZGluZzogMmVtIDBlbTtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBMaW5rXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkuaXRlbXMgYS5pdGVtOmhvdmVyLFxuLnVpLmxpbmsuaXRlbXMgPiAuaXRlbTpob3ZlciB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbi51aS5pdGVtcyBhLml0ZW06aG92ZXIgLmNvbnRlbnQgLmhlYWRlcixcbi51aS5saW5rLml0ZW1zID4gLml0ZW06aG92ZXIgLmNvbnRlbnQgLmhlYWRlciB7XG4gIGNvbG9yOiAjMWU3MGJmO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICAgU2l6ZVxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5pdGVtcyA+IC5pdGVtIHtcbiAgZm9udC1zaXplOiAxZW07XG59XG4vKi0tLS0tLS0tLS0tLS0tLVxuICAgVW5zdGFja2FibGVcbi0tLS0tLS0tLS0tLS0tLS0qL1xuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAudWkudW5zdGFja2FibGUuaXRlbXMgPiAuaXRlbSA+IC5pbWFnZSxcbiAgLnVpLnVuc3RhY2thYmxlLml0ZW1zID4gLml0ZW0gPiAuaW1hZ2UgPiBpbWcge1xuICAgIHdpZHRoOiAxMjVweCAhaW1wb3J0YW50O1xuICB9XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgVGhlbWUgT3ZlcnJpZGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICBVc2VyIFZhcmlhYmxlIE92ZXJyaWRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIVxuICogIyBTZW1hbnRpYyBVSSAtIFN0YXRpc3RpY1xuICogaHR0cDovL2dpdGh1Yi5jb20vc2VtYW50aWMtb3JnL3NlbWFudGljLXVpL1xuICpcbiAqXG4gKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2VcbiAqIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVRcbiAqXG4gKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qXG5cbuKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVlyAg4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4pWXICAg4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWXXG7ilZrilZDilZDilojilojilZTilZDilZDilZ3ilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKWiOKWiOKVlyDilojilojilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilZTilZDilZDilZDilZDilZ1cbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4pWU4paI4paI4paI4paI4pWU4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilojilojilojilojilojilZdcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVlOKVkOKVkOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4paI4paI4pWR4pWa4paI4paI4pWU4pWd4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilZrilZDilZDilZDilZDilojilojilZFcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWRIOKVmuKVkOKVnSDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZFcbiAgIOKVmuKVkOKVnSAgIOKVmuKVkOKVnSAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWdICAgICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ1cblxuKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIFRoZW1lIFNlbGVjdGlvblxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFRvIG92ZXJyaWRlIGEgdGhlbWUgZm9yIGFuIGluZGl2aWR1YWwgZWxlbWVudFxuICAgc3BlY2lmeSB0aGVtZSBuYW1lIGJlbG93XG4qL1xuLyogR2xvYmFsICovXG4vKiBFbGVtZW50cyAqL1xuLyogQ29sbGVjdGlvbnMgKi9cbi8qIE1vZHVsZXMgKi9cbi8qIFZpZXdzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgRm9sZGVyc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFBhdGggdG8gdGhlbWUgcGFja2FnZXMgKi9cbi8qIFBhdGggdG8gc2l0ZSBvdmVycmlkZSBmb2xkZXIgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBJbXBvcnQgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBJbXBvcnQgRGlyZWN0aXZlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgVGhlbWVcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgU2l0ZSBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0IHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRvcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogUGFja2FnZWQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZG9ycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBDb21wb25lbnQncyBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kb3JzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFNpdGUgdGhlbWUgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgIFVzZXIgR2xvYmFsIFZhcmlhYmxlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIG1hcnNvIGNvbG9ycyAqL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuIENvbXBvbmVudCBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0ICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBTdGF0aXN0aWNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgIFZpZXdcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEdyb3VwICovXG4vKiBHcm91cCBFbGVtZW50ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBDb250ZW50XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBWYWx1ZSAqL1xuLyogTGFiZWwgKi9cbi8qIFRleHQgKi9cbi8qIExhYmVsIEltYWdlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFR5cGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFZhcmlhdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZsb2F0ZWQgKi9cbi8qIEludmVydGVkICovXG4vKiBJdGVtIFdpZHRoICovXG4vKiBTaXplICovXG4vKiBQYWNrYWdlZCBUaGVtZSAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgU3RhdGlzdGljXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgICBWaWV3XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBHcm91cCAqL1xuLyogR3JvdXAgRWxlbWVudCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQ29udGVudFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVmFsdWUgKi9cbi8qIExhYmVsICovXG4vKiBUZXh0ICovXG4vKiBMYWJlbCBJbWFnZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBUeXBlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBWYXJpYXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGbG9hdGVkICovXG4vKiBJbnZlcnRlZCAqL1xuLyogSXRlbSBXaWR0aCAqL1xuLyogU2l6ZSAqL1xuLyogU2l0ZSBUaGVtZSAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICBVc2VyIFZhcmlhYmxlIE92ZXJyaWRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgTWl4LWluc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgT3ZlcnJpZGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEVuZCBDb25maWcgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFN0YXRpc3RpY1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFN0YW5kYWxvbmUgKi9cbi51aS5zdGF0aXN0aWMge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgbWFyZ2luOiAxZW0gMGVtO1xuICBtYXgtd2lkdGg6IGF1dG87XG59XG4udWkuc3RhdGlzdGljICsgLnVpLnN0YXRpc3RpYyB7XG4gIG1hcmdpbjogMGVtIDBlbSAwZW0gMS41ZW07XG59XG4udWkuc3RhdGlzdGljOmZpcnN0LWNoaWxkIHtcbiAgbWFyZ2luLXRvcDogMGVtO1xufVxuLnVpLnN0YXRpc3RpYzpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLWJvdHRvbTogMGVtO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIEdyb3VwXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogR3JvdXBlZCAqL1xuLnVpLnN0YXRpc3RpY3Mge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgZmxleC13cmFwOiB3cmFwO1xufVxuLnVpLnN0YXRpc3RpY3MgPiAuc3RhdGlzdGljIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGZsZXg6IDAgMSBhdXRvO1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBtYXJnaW46IDBlbSAxLjVlbSAyZW07XG4gIG1heC13aWR0aDogYXV0bztcbn1cbi51aS5zdGF0aXN0aWNzIHtcbiAgZGlzcGxheTogZmxleDtcbiAgbWFyZ2luOiAxZW0gLTEuNWVtIC0yZW07XG59XG4vKiBDbGVhcmluZyAqL1xuLnVpLnN0YXRpc3RpY3M6YWZ0ZXIge1xuICBkaXNwbGF5OiBibG9jaztcbiAgY29udGVudDogJyAnO1xuICBoZWlnaHQ6IDBweDtcbiAgY2xlYXI6IGJvdGg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbn1cbi51aS5zdGF0aXN0aWNzOmZpcnN0LWNoaWxkIHtcbiAgbWFyZ2luLXRvcDogMGVtO1xufVxuLnVpLnN0YXRpc3RpY3M6bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1ib3R0b206IDBlbTtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBDb250ZW50XG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgICAgVmFsdWVcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuc3RhdGlzdGljcyAuc3RhdGlzdGljID4gLnZhbHVlLFxuLnVpLnN0YXRpc3RpYyA+IC52YWx1ZSB7XG4gIGZvbnQtZmFtaWx5OiAnRXhvIDInLCAnTGF0bycsIEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogNHJlbTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgbGluZS1oZWlnaHQ6IDFlbTtcbiAgY29sb3I6ICMwMDAwMDA7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgTGFiZWxcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuc3RhdGlzdGljcyAuc3RhdGlzdGljID4gLmxhYmVsLFxuLnVpLnN0YXRpc3RpYyA+IC5sYWJlbCB7XG4gIGZvbnQtZmFtaWx5OiAnRXhvIDInLCAnTGF0bycsIEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMWVtO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgY29sb3I6ICMzMzMzMzM7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi8qIFRvcCBMYWJlbCAqL1xuLnVpLnN0YXRpc3RpY3MgLnN0YXRpc3RpYyA+IC5sYWJlbCB+IC52YWx1ZSxcbi51aS5zdGF0aXN0aWMgPiAubGFiZWwgfiAudmFsdWUge1xuICBtYXJnaW4tdG9wOiAwcmVtO1xufVxuLyogQm90dG9tIExhYmVsICovXG4udWkuc3RhdGlzdGljcyAuc3RhdGlzdGljID4gLnZhbHVlIH4gLmxhYmVsLFxuLnVpLnN0YXRpc3RpYyA+IC52YWx1ZSB+IC5sYWJlbCB7XG4gIG1hcmdpbi10b3A6IDByZW07XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFR5cGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgSWNvbiBWYWx1ZVxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5zdGF0aXN0aWNzIC5zdGF0aXN0aWMgPiAudmFsdWUgLmljb24sXG4udWkuc3RhdGlzdGljID4gLnZhbHVlIC5pY29uIHtcbiAgb3BhY2l0eTogMTtcbiAgd2lkdGg6IGF1dG87XG4gIG1hcmdpbjogMGVtO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgVGV4dCBWYWx1ZVxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5zdGF0aXN0aWNzIC5zdGF0aXN0aWMgPiAudGV4dC52YWx1ZSxcbi51aS5zdGF0aXN0aWMgPiAudGV4dC52YWx1ZSB7XG4gIGxpbmUtaGVpZ2h0OiAxZW07XG4gIG1pbi1oZWlnaHQ6IDJlbTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi51aS5zdGF0aXN0aWNzIC5zdGF0aXN0aWMgPiAudGV4dC52YWx1ZSArIC5sYWJlbCxcbi51aS5zdGF0aXN0aWMgPiAudGV4dC52YWx1ZSArIC5sYWJlbCB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEltYWdlIFZhbHVlXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLnN0YXRpc3RpY3MgLnN0YXRpc3RpYyA+IC52YWx1ZSBpbWcsXG4udWkuc3RhdGlzdGljID4gLnZhbHVlIGltZyB7XG4gIG1heC1oZWlnaHQ6IDNyZW07XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBWYXJpYXRpb25zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgICAgQ291bnRcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkudGVuLnN0YXRpc3RpY3Mge1xuICBtYXJnaW46IDBlbSAwZW0gLTJlbTtcbn1cbi51aS50ZW4uc3RhdGlzdGljcyAuc3RhdGlzdGljIHtcbiAgbWluLXdpZHRoOiAxMCU7XG4gIG1hcmdpbjogMGVtIDBlbSAyZW07XG59XG4udWkubmluZS5zdGF0aXN0aWNzIHtcbiAgbWFyZ2luOiAwZW0gMGVtIC0yZW07XG59XG4udWkubmluZS5zdGF0aXN0aWNzIC5zdGF0aXN0aWMge1xuICBtaW4td2lkdGg6IDExLjExMTExMTExJTtcbiAgbWFyZ2luOiAwZW0gMGVtIDJlbTtcbn1cbi51aS5laWdodC5zdGF0aXN0aWNzIHtcbiAgbWFyZ2luOiAwZW0gMGVtIC0yZW07XG59XG4udWkuZWlnaHQuc3RhdGlzdGljcyAuc3RhdGlzdGljIHtcbiAgbWluLXdpZHRoOiAxMi41JTtcbiAgbWFyZ2luOiAwZW0gMGVtIDJlbTtcbn1cbi51aS5zZXZlbi5zdGF0aXN0aWNzIHtcbiAgbWFyZ2luOiAwZW0gMGVtIC0yZW07XG59XG4udWkuc2V2ZW4uc3RhdGlzdGljcyAuc3RhdGlzdGljIHtcbiAgbWluLXdpZHRoOiAxNC4yODU3MTQyOSU7XG4gIG1hcmdpbjogMGVtIDBlbSAyZW07XG59XG4udWkuc2l4LnN0YXRpc3RpY3Mge1xuICBtYXJnaW46IDBlbSAwZW0gLTJlbTtcbn1cbi51aS5zaXguc3RhdGlzdGljcyAuc3RhdGlzdGljIHtcbiAgbWluLXdpZHRoOiAxNi42NjY2NjY2NyU7XG4gIG1hcmdpbjogMGVtIDBlbSAyZW07XG59XG4udWkuZml2ZS5zdGF0aXN0aWNzIHtcbiAgbWFyZ2luOiAwZW0gMGVtIC0yZW07XG59XG4udWkuZml2ZS5zdGF0aXN0aWNzIC5zdGF0aXN0aWMge1xuICBtaW4td2lkdGg6IDIwJTtcbiAgbWFyZ2luOiAwZW0gMGVtIDJlbTtcbn1cbi51aS5mb3VyLnN0YXRpc3RpY3Mge1xuICBtYXJnaW46IDBlbSAwZW0gLTJlbTtcbn1cbi51aS5mb3VyLnN0YXRpc3RpY3MgLnN0YXRpc3RpYyB7XG4gIG1pbi13aWR0aDogMjUlO1xuICBtYXJnaW46IDBlbSAwZW0gMmVtO1xufVxuLnVpLnRocmVlLnN0YXRpc3RpY3Mge1xuICBtYXJnaW46IDBlbSAwZW0gLTJlbTtcbn1cbi51aS50aHJlZS5zdGF0aXN0aWNzIC5zdGF0aXN0aWMge1xuICBtaW4td2lkdGg6IDMzLjMzMzMzMzMzJTtcbiAgbWFyZ2luOiAwZW0gMGVtIDJlbTtcbn1cbi51aS50d28uc3RhdGlzdGljcyB7XG4gIG1hcmdpbjogMGVtIDBlbSAtMmVtO1xufVxuLnVpLnR3by5zdGF0aXN0aWNzIC5zdGF0aXN0aWMge1xuICBtaW4td2lkdGg6IDUwJTtcbiAgbWFyZ2luOiAwZW0gMGVtIDJlbTtcbn1cbi51aS5vbmUuc3RhdGlzdGljcyB7XG4gIG1hcmdpbjogMGVtIDBlbSAtMmVtO1xufVxuLnVpLm9uZS5zdGF0aXN0aWNzIC5zdGF0aXN0aWMge1xuICBtaW4td2lkdGg6IDEwMCU7XG4gIG1hcmdpbjogMGVtIDBlbSAyZW07XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICBIb3Jpem9udGFsXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmhvcml6b250YWwuc3RhdGlzdGljIHtcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cbi51aS5ob3Jpem9udGFsLnN0YXRpc3RpY3Mge1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBtYXJnaW46IDBlbTtcbiAgbWF4LXdpZHRoOiBub25lO1xufVxuLnVpLmhvcml6b250YWwuc3RhdGlzdGljcyAuc3RhdGlzdGljIHtcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgbWF4LXdpZHRoOiBub25lO1xuICBtYXJnaW46IDFlbSAwZW07XG59XG4udWkuaG9yaXpvbnRhbC5zdGF0aXN0aWMgPiAudGV4dC52YWx1ZSxcbi51aS5ob3Jpem9udGFsLnN0YXRpc3RpY3MgPiAuc3RhdGlzdGljID4gLnRleHQudmFsdWUge1xuICBtaW4taGVpZ2h0OiAwZW0gIWltcG9ydGFudDtcbn1cbi51aS5ob3Jpem9udGFsLnN0YXRpc3RpY3MgLnN0YXRpc3RpYyA+IC52YWx1ZSAuaWNvbixcbi51aS5ob3Jpem9udGFsLnN0YXRpc3RpYyA+IC52YWx1ZSAuaWNvbiB7XG4gIHdpZHRoOiAxLjE4ZW07XG59XG4udWkuaG9yaXpvbnRhbC5zdGF0aXN0aWNzIC5zdGF0aXN0aWMgPiAudmFsdWUsXG4udWkuaG9yaXpvbnRhbC5zdGF0aXN0aWMgPiAudmFsdWUge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG4udWkuaG9yaXpvbnRhbC5zdGF0aXN0aWNzIC5zdGF0aXN0aWMgPiAubGFiZWwsXG4udWkuaG9yaXpvbnRhbC5zdGF0aXN0aWMgPiAubGFiZWwge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIG1hcmdpbjogMGVtIDBlbSAwZW0gMC43NWVtO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkucmVkLnN0YXRpc3RpY3MgLnN0YXRpc3RpYyA+IC52YWx1ZSxcbi51aS5zdGF0aXN0aWNzIC5yZWQuc3RhdGlzdGljID4gLnZhbHVlLFxuLnVpLnJlZC5zdGF0aXN0aWMgPiAudmFsdWUge1xuICBjb2xvcjogI2RlM2EzZTtcbn1cbi51aS5vcmFuZ2Uuc3RhdGlzdGljcyAuc3RhdGlzdGljID4gLnZhbHVlLFxuLnVpLnN0YXRpc3RpY3MgLm9yYW5nZS5zdGF0aXN0aWMgPiAudmFsdWUsXG4udWkub3JhbmdlLnN0YXRpc3RpYyA+IC52YWx1ZSB7XG4gIGNvbG9yOiAjZmY5NTMzO1xufVxuLnVpLnllbGxvdy5zdGF0aXN0aWNzIC5zdGF0aXN0aWMgPiAudmFsdWUsXG4udWkuc3RhdGlzdGljcyAueWVsbG93LnN0YXRpc3RpYyA+IC52YWx1ZSxcbi51aS55ZWxsb3cuc3RhdGlzdGljID4gLnZhbHVlIHtcbiAgY29sb3I6ICNGQkJEMDg7XG59XG4udWkub2xpdmUuc3RhdGlzdGljcyAuc3RhdGlzdGljID4gLnZhbHVlLFxuLnVpLnN0YXRpc3RpY3MgLm9saXZlLnN0YXRpc3RpYyA+IC52YWx1ZSxcbi51aS5vbGl2ZS5zdGF0aXN0aWMgPiAudmFsdWUge1xuICBjb2xvcjogI0I1Q0MxODtcbn1cbi51aS5ncmVlbi5zdGF0aXN0aWNzIC5zdGF0aXN0aWMgPiAudmFsdWUsXG4udWkuc3RhdGlzdGljcyAuZ3JlZW4uc3RhdGlzdGljID4gLnZhbHVlLFxuLnVpLmdyZWVuLnN0YXRpc3RpYyA+IC52YWx1ZSB7XG4gIGNvbG9yOiAjMTlhNTMxO1xufVxuLnVpLnRlYWwuc3RhdGlzdGljcyAuc3RhdGlzdGljID4gLnZhbHVlLFxuLnVpLnN0YXRpc3RpY3MgLnRlYWwuc3RhdGlzdGljID4gLnZhbHVlLFxuLnVpLnRlYWwuc3RhdGlzdGljID4gLnZhbHVlIHtcbiAgY29sb3I6ICMwMEI1QUQ7XG59XG4udWkuYmx1ZS5zdGF0aXN0aWNzIC5zdGF0aXN0aWMgPiAudmFsdWUsXG4udWkuc3RhdGlzdGljcyAuYmx1ZS5zdGF0aXN0aWMgPiAudmFsdWUsXG4udWkuYmx1ZS5zdGF0aXN0aWMgPiAudmFsdWUge1xuICBjb2xvcjogIzNmNTFiNTtcbn1cbi51aS52aW9sZXQuc3RhdGlzdGljcyAuc3RhdGlzdGljID4gLnZhbHVlLFxuLnVpLnN0YXRpc3RpY3MgLnZpb2xldC5zdGF0aXN0aWMgPiAudmFsdWUsXG4udWkudmlvbGV0LnN0YXRpc3RpYyA+IC52YWx1ZSB7XG4gIGNvbG9yOiAjNjQzNUM5O1xufVxuLnVpLnB1cnBsZS5zdGF0aXN0aWNzIC5zdGF0aXN0aWMgPiAudmFsdWUsXG4udWkuc3RhdGlzdGljcyAucHVycGxlLnN0YXRpc3RpYyA+IC52YWx1ZSxcbi51aS5wdXJwbGUuc3RhdGlzdGljID4gLnZhbHVlIHtcbiAgY29sb3I6ICNBMzMzQzg7XG59XG4udWkucGluay5zdGF0aXN0aWNzIC5zdGF0aXN0aWMgPiAudmFsdWUsXG4udWkuc3RhdGlzdGljcyAucGluay5zdGF0aXN0aWMgPiAudmFsdWUsXG4udWkucGluay5zdGF0aXN0aWMgPiAudmFsdWUge1xuICBjb2xvcjogI0UwMzk5Nztcbn1cbi51aS5icm93bi5zdGF0aXN0aWNzIC5zdGF0aXN0aWMgPiAudmFsdWUsXG4udWkuc3RhdGlzdGljcyAuYnJvd24uc3RhdGlzdGljID4gLnZhbHVlLFxuLnVpLmJyb3duLnN0YXRpc3RpYyA+IC52YWx1ZSB7XG4gIGNvbG9yOiAjQTU2NzNGO1xufVxuLnVpLmdyZXkuc3RhdGlzdGljcyAuc3RhdGlzdGljID4gLnZhbHVlLFxuLnVpLnN0YXRpc3RpY3MgLmdyZXkuc3RhdGlzdGljID4gLnZhbHVlLFxuLnVpLmdyZXkuc3RhdGlzdGljID4gLnZhbHVlIHtcbiAgY29sb3I6ICM3Njc2NzY7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgSW52ZXJ0ZWRcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuaW52ZXJ0ZWQuc3RhdGlzdGljcyAuc3RhdGlzdGljID4gLnZhbHVlLFxuLnVpLmludmVydGVkLnN0YXRpc3RpYyAudmFsdWUge1xuICBjb2xvcjogI2ZmZmZmZjtcbn1cbi51aS5pbnZlcnRlZC5zdGF0aXN0aWNzIC5zdGF0aXN0aWMgPiAubGFiZWwsXG4udWkuaW52ZXJ0ZWQuc3RhdGlzdGljIC5sYWJlbCB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOSk7XG59XG4udWkuaW52ZXJ0ZWQucmVkLnN0YXRpc3RpY3MgLnN0YXRpc3RpYyA+IC52YWx1ZSxcbi51aS5zdGF0aXN0aWNzIC5pbnZlcnRlZC5yZWQuc3RhdGlzdGljID4gLnZhbHVlLFxuLnVpLmludmVydGVkLnJlZC5zdGF0aXN0aWMgPiAudmFsdWUge1xuICBjb2xvcjogI0ZGNjk1RTtcbn1cbi51aS5pbnZlcnRlZC5vcmFuZ2Uuc3RhdGlzdGljcyAuc3RhdGlzdGljID4gLnZhbHVlLFxuLnVpLnN0YXRpc3RpY3MgLmludmVydGVkLm9yYW5nZS5zdGF0aXN0aWMgPiAudmFsdWUsXG4udWkuaW52ZXJ0ZWQub3JhbmdlLnN0YXRpc3RpYyA+IC52YWx1ZSB7XG4gIGNvbG9yOiAjRkY4NTFCO1xufVxuLnVpLmludmVydGVkLnllbGxvdy5zdGF0aXN0aWNzIC5zdGF0aXN0aWMgPiAudmFsdWUsXG4udWkuc3RhdGlzdGljcyAuaW52ZXJ0ZWQueWVsbG93LnN0YXRpc3RpYyA+IC52YWx1ZSxcbi51aS5pbnZlcnRlZC55ZWxsb3cuc3RhdGlzdGljID4gLnZhbHVlIHtcbiAgY29sb3I6ICNGRkUyMUY7XG59XG4udWkuaW52ZXJ0ZWQub2xpdmUuc3RhdGlzdGljcyAuc3RhdGlzdGljID4gLnZhbHVlLFxuLnVpLnN0YXRpc3RpY3MgLmludmVydGVkLm9saXZlLnN0YXRpc3RpYyA+IC52YWx1ZSxcbi51aS5pbnZlcnRlZC5vbGl2ZS5zdGF0aXN0aWMgPiAudmFsdWUge1xuICBjb2xvcjogI0Q5RTc3ODtcbn1cbi51aS5pbnZlcnRlZC5ncmVlbi5zdGF0aXN0aWNzIC5zdGF0aXN0aWMgPiAudmFsdWUsXG4udWkuc3RhdGlzdGljcyAuaW52ZXJ0ZWQuZ3JlZW4uc3RhdGlzdGljID4gLnZhbHVlLFxuLnVpLmludmVydGVkLmdyZWVuLnN0YXRpc3RpYyA+IC52YWx1ZSB7XG4gIGNvbG9yOiAjMkVDQzQwO1xufVxuLnVpLmludmVydGVkLnRlYWwuc3RhdGlzdGljcyAuc3RhdGlzdGljID4gLnZhbHVlLFxuLnVpLnN0YXRpc3RpY3MgLmludmVydGVkLnRlYWwuc3RhdGlzdGljID4gLnZhbHVlLFxuLnVpLmludmVydGVkLnRlYWwuc3RhdGlzdGljID4gLnZhbHVlIHtcbiAgY29sb3I6ICM2REZGRkY7XG59XG4udWkuaW52ZXJ0ZWQuYmx1ZS5zdGF0aXN0aWNzIC5zdGF0aXN0aWMgPiAudmFsdWUsXG4udWkuc3RhdGlzdGljcyAuaW52ZXJ0ZWQuYmx1ZS5zdGF0aXN0aWMgPiAudmFsdWUsXG4udWkuaW52ZXJ0ZWQuYmx1ZS5zdGF0aXN0aWMgPiAudmFsdWUge1xuICBjb2xvcjogIzU0QzhGRjtcbn1cbi51aS5pbnZlcnRlZC52aW9sZXQuc3RhdGlzdGljcyAuc3RhdGlzdGljID4gLnZhbHVlLFxuLnVpLnN0YXRpc3RpY3MgLmludmVydGVkLnZpb2xldC5zdGF0aXN0aWMgPiAudmFsdWUsXG4udWkuaW52ZXJ0ZWQudmlvbGV0LnN0YXRpc3RpYyA+IC52YWx1ZSB7XG4gIGNvbG9yOiAjQTI5MUZCO1xufVxuLnVpLmludmVydGVkLnB1cnBsZS5zdGF0aXN0aWNzIC5zdGF0aXN0aWMgPiAudmFsdWUsXG4udWkuc3RhdGlzdGljcyAuaW52ZXJ0ZWQucHVycGxlLnN0YXRpc3RpYyA+IC52YWx1ZSxcbi51aS5pbnZlcnRlZC5wdXJwbGUuc3RhdGlzdGljID4gLnZhbHVlIHtcbiAgY29sb3I6ICNEQzczRkY7XG59XG4udWkuaW52ZXJ0ZWQucGluay5zdGF0aXN0aWNzIC5zdGF0aXN0aWMgPiAudmFsdWUsXG4udWkuc3RhdGlzdGljcyAuaW52ZXJ0ZWQucGluay5zdGF0aXN0aWMgPiAudmFsdWUsXG4udWkuaW52ZXJ0ZWQucGluay5zdGF0aXN0aWMgPiAudmFsdWUge1xuICBjb2xvcjogI0ZGOEVERjtcbn1cbi51aS5pbnZlcnRlZC5icm93bi5zdGF0aXN0aWNzIC5zdGF0aXN0aWMgPiAudmFsdWUsXG4udWkuc3RhdGlzdGljcyAuaW52ZXJ0ZWQuYnJvd24uc3RhdGlzdGljID4gLnZhbHVlLFxuLnVpLmludmVydGVkLmJyb3duLnN0YXRpc3RpYyA+IC52YWx1ZSB7XG4gIGNvbG9yOiAjRDY3QzFDO1xufVxuLnVpLmludmVydGVkLmdyZXkuc3RhdGlzdGljcyAuc3RhdGlzdGljID4gLnZhbHVlLFxuLnVpLnN0YXRpc3RpY3MgLmludmVydGVkLmdyZXkuc3RhdGlzdGljID4gLnZhbHVlLFxuLnVpLmludmVydGVkLmdyZXkuc3RhdGlzdGljID4gLnZhbHVlIHtcbiAgY29sb3I6ICNEQ0REREU7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgRmxvYXRlZFxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aVtjbGFzcyo9XCJsZWZ0IGZsb2F0ZWRcIl0uc3RhdGlzdGljIHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIG1hcmdpbjogMGVtIDJlbSAxZW0gMGVtO1xufVxuLnVpW2NsYXNzKj1cInJpZ2h0IGZsb2F0ZWRcIl0uc3RhdGlzdGljIHtcbiAgZmxvYXQ6IHJpZ2h0O1xuICBtYXJnaW46IDBlbSAwZW0gMWVtIDJlbTtcbn1cbi51aS5mbG9hdGVkLnN0YXRpc3RpYzpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLWJvdHRvbTogMGVtO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1pbmkgKi9cbi51aS5taW5pLnN0YXRpc3RpY3MgLnN0YXRpc3RpYyA+IC52YWx1ZSxcbi51aS5taW5pLnN0YXRpc3RpYyA+IC52YWx1ZSB7XG4gIGZvbnQtc2l6ZTogMS41cmVtICFpbXBvcnRhbnQ7XG59XG4udWkubWluaS5ob3Jpem9udGFsLnN0YXRpc3RpY3MgLnN0YXRpc3RpYyA+IC52YWx1ZSxcbi51aS5taW5pLmhvcml6b250YWwuc3RhdGlzdGljID4gLnZhbHVlIHtcbiAgZm9udC1zaXplOiAxLjVyZW0gIWltcG9ydGFudDtcbn1cbi51aS5taW5pLnN0YXRpc3RpY3MgLnN0YXRpc3RpYyA+IC50ZXh0LnZhbHVlLFxuLnVpLm1pbmkuc3RhdGlzdGljID4gLnRleHQudmFsdWUge1xuICBmb250LXNpemU6IDFyZW0gIWltcG9ydGFudDtcbn1cbi8qIFRpbnkgKi9cbi51aS50aW55LnN0YXRpc3RpY3MgLnN0YXRpc3RpYyA+IC52YWx1ZSxcbi51aS50aW55LnN0YXRpc3RpYyA+IC52YWx1ZSB7XG4gIGZvbnQtc2l6ZTogMnJlbSAhaW1wb3J0YW50O1xufVxuLnVpLnRpbnkuaG9yaXpvbnRhbC5zdGF0aXN0aWNzIC5zdGF0aXN0aWMgPiAudmFsdWUsXG4udWkudGlueS5ob3Jpem9udGFsLnN0YXRpc3RpYyA+IC52YWx1ZSB7XG4gIGZvbnQtc2l6ZTogMnJlbSAhaW1wb3J0YW50O1xufVxuLnVpLnRpbnkuc3RhdGlzdGljcyAuc3RhdGlzdGljID4gLnRleHQudmFsdWUsXG4udWkudGlueS5zdGF0aXN0aWMgPiAudGV4dC52YWx1ZSB7XG4gIGZvbnQtc2l6ZTogMXJlbSAhaW1wb3J0YW50O1xufVxuLyogU21hbGwgKi9cbi51aS5zbWFsbC5zdGF0aXN0aWNzIC5zdGF0aXN0aWMgPiAudmFsdWUsXG4udWkuc21hbGwuc3RhdGlzdGljID4gLnZhbHVlIHtcbiAgZm9udC1zaXplOiAzcmVtICFpbXBvcnRhbnQ7XG59XG4udWkuc21hbGwuaG9yaXpvbnRhbC5zdGF0aXN0aWNzIC5zdGF0aXN0aWMgPiAudmFsdWUsXG4udWkuc21hbGwuaG9yaXpvbnRhbC5zdGF0aXN0aWMgPiAudmFsdWUge1xuICBmb250LXNpemU6IDJyZW0gIWltcG9ydGFudDtcbn1cbi51aS5zbWFsbC5zdGF0aXN0aWNzIC5zdGF0aXN0aWMgPiAudGV4dC52YWx1ZSxcbi51aS5zbWFsbC5zdGF0aXN0aWMgPiAudGV4dC52YWx1ZSB7XG4gIGZvbnQtc2l6ZTogMXJlbSAhaW1wb3J0YW50O1xufVxuLyogTWVkaXVtICovXG4udWkuc3RhdGlzdGljcyAuc3RhdGlzdGljID4gLnZhbHVlLFxuLnVpLnN0YXRpc3RpYyA+IC52YWx1ZSB7XG4gIGZvbnQtc2l6ZTogNHJlbSAhaW1wb3J0YW50O1xufVxuLnVpLmhvcml6b250YWwuc3RhdGlzdGljcyAuc3RhdGlzdGljID4gLnZhbHVlLFxuLnVpLmhvcml6b250YWwuc3RhdGlzdGljID4gLnZhbHVlIHtcbiAgZm9udC1zaXplOiAzcmVtICFpbXBvcnRhbnQ7XG59XG4udWkuc3RhdGlzdGljcyAuc3RhdGlzdGljID4gLnRleHQudmFsdWUsXG4udWkuc3RhdGlzdGljID4gLnRleHQudmFsdWUge1xuICBmb250LXNpemU6IDJyZW0gIWltcG9ydGFudDtcbn1cbi8qIExhcmdlICovXG4udWkubGFyZ2Uuc3RhdGlzdGljcyAuc3RhdGlzdGljID4gLnZhbHVlLFxuLnVpLmxhcmdlLnN0YXRpc3RpYyA+IC52YWx1ZSB7XG4gIGZvbnQtc2l6ZTogNXJlbSAhaW1wb3J0YW50O1xufVxuLnVpLmxhcmdlLmhvcml6b250YWwuc3RhdGlzdGljcyAuc3RhdGlzdGljID4gLnZhbHVlLFxuLnVpLmxhcmdlLmhvcml6b250YWwuc3RhdGlzdGljID4gLnZhbHVlIHtcbiAgZm9udC1zaXplOiA0cmVtICFpbXBvcnRhbnQ7XG59XG4udWkubGFyZ2Uuc3RhdGlzdGljcyAuc3RhdGlzdGljID4gLnRleHQudmFsdWUsXG4udWkubGFyZ2Uuc3RhdGlzdGljID4gLnRleHQudmFsdWUge1xuICBmb250LXNpemU6IDIuNXJlbSAhaW1wb3J0YW50O1xufVxuLyogSHVnZSAqL1xuLnVpLmh1Z2Uuc3RhdGlzdGljcyAuc3RhdGlzdGljID4gLnZhbHVlLFxuLnVpLmh1Z2Uuc3RhdGlzdGljID4gLnZhbHVlIHtcbiAgZm9udC1zaXplOiA2cmVtICFpbXBvcnRhbnQ7XG59XG4udWkuaHVnZS5ob3Jpem9udGFsLnN0YXRpc3RpY3MgLnN0YXRpc3RpYyA+IC52YWx1ZSxcbi51aS5odWdlLmhvcml6b250YWwuc3RhdGlzdGljID4gLnZhbHVlIHtcbiAgZm9udC1zaXplOiA1cmVtICFpbXBvcnRhbnQ7XG59XG4udWkuaHVnZS5zdGF0aXN0aWNzIC5zdGF0aXN0aWMgPiAudGV4dC52YWx1ZSxcbi51aS5odWdlLnN0YXRpc3RpYyA+IC50ZXh0LnZhbHVlIHtcbiAgZm9udC1zaXplOiAyLjVyZW0gIWltcG9ydGFudDtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBUaGVtZSBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgIFVzZXIgVmFyaWFibGUgT3ZlcnJpZGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogTW9kdWxlcyAqL1xuLyohXG4gKiAjIFNlbWFudGljIFVJIC0gQWNjb3JkaW9uXG4gKiBodHRwOi8vZ2l0aHViLmNvbS9zZW1hbnRpYy1vcmcvc2VtYW50aWMtdWkvXG4gKlxuICpcbiAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZVxuICogaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVFxuICpcbiAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLypcblxu4paI4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWXICDilojilojilZfilojilojilojilojilojilojilojilZfilojilojilojilZcgICDilojilojilojilZfilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZdcbuKVmuKVkOKVkOKWiOKWiOKVlOKVkOKVkOKVneKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWd4paI4paI4paI4paI4pWXIOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVnVxuICAg4paI4paI4pWRICAg4paI4paI4paI4paI4paI4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilZTilojilojilojilojilZTilojilojilZHilojilojilojilojilojilZcgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl1xuICAg4paI4paI4pWRICAg4paI4paI4pWU4pWQ4pWQ4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilojilojilZHilZrilojilojilZTilZ3ilojilojilZHilojilojilZTilZDilZDilZ0gIOKVmuKVkOKVkOKVkOKVkOKWiOKWiOKVkVxuICAg4paI4paI4pWRICAg4paI4paI4pWRICDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilZEg4pWa4pWQ4pWdIOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkVxuICAg4pWa4pWQ4pWdICAg4pWa4pWQ4pWdICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZ0gICAgIOKVmuKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVnVxuXG4qL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgVGhlbWUgU2VsZWN0aW9uXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogVG8gb3ZlcnJpZGUgYSB0aGVtZSBmb3IgYW4gaW5kaXZpZHVhbCBlbGVtZW50XG4gICBzcGVjaWZ5IHRoZW1lIG5hbWUgYmVsb3dcbiovXG4vKiBHbG9iYWwgKi9cbi8qIEVsZW1lbnRzICovXG4vKiBDb2xsZWN0aW9ucyAqL1xuLyogTW9kdWxlcyAqL1xuLyogVmlld3MgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBGb2xkZXJzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogUGF0aCB0byB0aGVtZSBwYWNrYWdlcyAqL1xuLyogUGF0aCB0byBzaXRlIG92ZXJyaWRlIGZvbGRlciAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIEltcG9ydCBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIEltcG9ydCBEaXJlY3RpdmVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBUaGVtZVxuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICBTaXRlIFZhcmlhYmxlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERlZmF1bHQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZG9ycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBQYWNrYWdlZCBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kb3JzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIENvbXBvbmVudCdzIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRvcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogU2l0ZSB0aGVtZSBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgVXNlciBHbG9iYWwgVmFyaWFibGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogbWFyc28gY29sb3JzICovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gQ29tcG9uZW50IFZhcmlhYmxlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERlZmF1bHQgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIEFjY29yZGlvblxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFRpdGxlICovXG4vKiBJY29uICovXG4vKiBDaGlsZCBBY2NvcmRpb24gKi9cbi8qIENvbnRlbnQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIENvdXBsaW5nXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBTdGF0ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgVmFyaWF0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU3R5bGVkICovXG4vKiBDb250ZW50ICovXG4vKiBDaGlsZCBDb250ZW50ICovXG4vKiBTdHlsZWQgVGl0bGUgKi9cbi8qIFN0eWxlZCBUaXRsZSBTdGF0ZXMgKi9cbi8qIFN0eWxlZCBDaGlsZCBUaXRsZSBTdGF0ZXMgKi9cbi8qIEludmVydGVkICovXG4vKiBQYWNrYWdlZCBUaGVtZSAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgQWNjb3JkaW9uXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogVGl0bGUgKi9cbi8qIEljb24gKi9cbi8qIENoaWxkIEFjY29yZGlvbiAqL1xuLyogQ29udGVudCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQ291cGxpbmdcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIFN0YXRlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBWYXJpYXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTdHlsZWQgKi9cbi8qIENvbnRlbnQgKi9cbi8qIENoaWxkIENvbnRlbnQgKi9cbi8qIFN0eWxlZCBUaXRsZSAqL1xuLyogU3R5bGVkIFRpdGxlIFN0YXRlcyAqL1xuLyogU3R5bGVkIENoaWxkIFRpdGxlIFN0YXRlcyAqL1xuLyogSW52ZXJ0ZWQgKi9cbi8qIFNpdGUgVGhlbWUgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgVXNlciBWYXJpYWJsZSBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIE1peC1pbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE92ZXJyaWRlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBFbmQgQ29uZmlnICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgQWNjb3JkaW9uXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLnVpLmFjY29yZGlvbixcbi51aS5hY2NvcmRpb24gLmFjY29yZGlvbiB7XG4gIG1heC13aWR0aDogMTAwJTtcbn1cbi51aS5hY2NvcmRpb24gLmFjY29yZGlvbiB7XG4gIG1hcmdpbjogMWVtIDBlbSAwZW07XG4gIHBhZGRpbmc6IDBlbTtcbn1cbi8qIFRpdGxlICovXG4udWkuYWNjb3JkaW9uIC50aXRsZSxcbi51aS5hY2NvcmRpb24gLmFjY29yZGlvbiAudGl0bGUge1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4vKiBEZWZhdWx0IFN0eWxpbmcgKi9cbi51aS5hY2NvcmRpb24gLnRpdGxlOm5vdCgudWkpIHtcbiAgcGFkZGluZzogMC41ZW0gMGVtO1xuICBmb250LWZhbWlseTogJ0V4byAyJywgJ0xhdG8nLCBBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDFlbTtcbiAgY29sb3I6ICMzMzMzMzM7XG59XG4vKiBDb250ZW50ICovXG4udWkuYWNjb3JkaW9uIC50aXRsZSB+IC5jb250ZW50LFxuLnVpLmFjY29yZGlvbiAuYWNjb3JkaW9uIC50aXRsZSB+IC5jb250ZW50IHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi8qIERlZmF1bHQgU3R5bGluZyAqL1xuLnVpLmFjY29yZGlvbjpub3QoLnN0eWxlZCkgLnRpdGxlIH4gLmNvbnRlbnQ6bm90KC51aSksXG4udWkuYWNjb3JkaW9uOm5vdCguc3R5bGVkKSAuYWNjb3JkaW9uIC50aXRsZSB+IC5jb250ZW50Om5vdCgudWkpIHtcbiAgbWFyZ2luOiAnJztcbiAgcGFkZGluZzogMC41ZW0gMGVtIDFlbTtcbn1cbi51aS5hY2NvcmRpb246bm90KC5zdHlsZWQpIC50aXRsZSB+IC5jb250ZW50Om5vdCgudWkpOmxhc3QtY2hpbGQge1xuICBwYWRkaW5nLWJvdHRvbTogMGVtO1xufVxuLyogQXJyb3cgKi9cbi51aS5hY2NvcmRpb24gLnRpdGxlIC5kcm9wZG93bi5pY29uLFxuLnVpLmFjY29yZGlvbiAuYWNjb3JkaW9uIC50aXRsZSAuZHJvcGRvd24uaWNvbiB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZmxvYXQ6IG5vbmU7XG4gIG9wYWNpdHk6IDE7XG4gIHdpZHRoOiAxLjI1ZW07XG4gIGhlaWdodDogMWVtO1xuICBtYXJnaW46IDBlbSAwLjI1cmVtIDBlbSAwcmVtO1xuICBwYWRkaW5nOiAwZW07XG4gIGZvbnQtc2l6ZTogMWVtO1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4xcyBlYXNlLCBvcGFjaXR5IDAuMXMgZWFzZTtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xuICB0cmFuc2Zvcm06IG5vbmU7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgQ291cGxpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBNZW51ICovXG4udWkuYWNjb3JkaW9uLm1lbnUgLml0ZW0gLnRpdGxlIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBhZGRpbmc6IDBlbTtcbn1cbi51aS5hY2NvcmRpb24ubWVudSAuaXRlbSAudGl0bGUgPiAuZHJvcGRvd24uaWNvbiB7XG4gIGZsb2F0OiByaWdodDtcbiAgbWFyZ2luOiAwLjIxNDI1ZW0gMGVtIDBlbSAxZW07XG4gIHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7XG59XG4vKiBIZWFkZXIgKi9cbi51aS5hY2NvcmRpb24gLnVpLmhlYWRlciAuZHJvcGRvd24uaWNvbiB7XG4gIGZvbnQtc2l6ZTogMWVtO1xuICBtYXJnaW46IDBlbSAwLjI1cmVtIDBlbSAwcmVtO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi51aS5hY2NvcmRpb24gLmFjdGl2ZS50aXRsZSAuZHJvcGRvd24uaWNvbixcbi51aS5hY2NvcmRpb24gLmFjY29yZGlvbiAuYWN0aXZlLnRpdGxlIC5kcm9wZG93bi5pY29uIHtcbiAgdHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpO1xufVxuLnVpLmFjY29yZGlvbi5tZW51IC5pdGVtIC5hY3RpdmUudGl0bGUgPiAuZHJvcGRvd24uaWNvbiB7XG4gIHRyYW5zZm9ybTogcm90YXRlKDkwZGVnKTtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBUeXBlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgU3R5bGVkXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLnN0eWxlZC5hY2NvcmRpb24ge1xuICB3aWR0aDogNjAwcHg7XG59XG4udWkuc3R5bGVkLmFjY29yZGlvbixcbi51aS5zdHlsZWQuYWNjb3JkaW9uIC5hY2NvcmRpb24ge1xuICBib3JkZXItcmFkaXVzOiAwLjRyZW07XG4gIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gIGJveC1zaGFkb3c6IDBweCAxcHggMnB4IDAgcmdiYSgzNCwgMzYsIDM4LCAwLjE1KSwgMHB4IDBweCAwcHggMXB4IHJnYmEoMzQsIDM2LCAzOCwgMC4xNSk7XG59XG4udWkuc3R5bGVkLmFjY29yZGlvbiAudGl0bGUsXG4udWkuc3R5bGVkLmFjY29yZGlvbiAuYWNjb3JkaW9uIC50aXRsZSB7XG4gIG1hcmdpbjogMGVtO1xuICBwYWRkaW5nOiAwLjc1ZW0gMWVtO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjQpO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHJnYmEoMzQsIDM2LCAzOCwgMC4xNSk7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xcyBlYXNlLCBjb2xvciAwLjFzIGVhc2U7XG59XG4udWkuc3R5bGVkLmFjY29yZGlvbiA+IC50aXRsZTpmaXJzdC1jaGlsZCxcbi51aS5zdHlsZWQuYWNjb3JkaW9uIC5hY2NvcmRpb24gLnRpdGxlOmZpcnN0LWNoaWxkIHtcbiAgYm9yZGVyLXRvcDogbm9uZTtcbn1cbi8qIENvbnRlbnQgKi9cbi51aS5zdHlsZWQuYWNjb3JkaW9uIC5jb250ZW50LFxuLnVpLnN0eWxlZC5hY2NvcmRpb24gLmFjY29yZGlvbiAuY29udGVudCB7XG4gIG1hcmdpbjogMGVtO1xuICBwYWRkaW5nOiAwLjVlbSAxZW0gMS41ZW07XG59XG4udWkuc3R5bGVkLmFjY29yZGlvbiAuYWNjb3JkaW9uIC5jb250ZW50IHtcbiAgcGFkZGluZzogMGVtO1xuICBwYWRkaW5nOiAwLjVlbSAxZW0gMS41ZW07XG59XG4vKiBIb3ZlciAqL1xuLnVpLnN0eWxlZC5hY2NvcmRpb24gLnRpdGxlOmhvdmVyLFxuLnVpLnN0eWxlZC5hY2NvcmRpb24gLmFjdGl2ZS50aXRsZSxcbi51aS5zdHlsZWQuYWNjb3JkaW9uIC5hY2NvcmRpb24gLnRpdGxlOmhvdmVyLFxuLnVpLnN0eWxlZC5hY2NvcmRpb24gLmFjY29yZGlvbiAuYWN0aXZlLnRpdGxlIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiAjMzMzMzMzO1xufVxuLnVpLnN0eWxlZC5hY2NvcmRpb24gLmFjY29yZGlvbiAudGl0bGU6aG92ZXIsXG4udWkuc3R5bGVkLmFjY29yZGlvbiAuYWNjb3JkaW9uIC5hY3RpdmUudGl0bGUge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgY29sb3I6ICMzMzMzMzM7XG59XG4vKiBBY3RpdmUgKi9cbi51aS5zdHlsZWQuYWNjb3JkaW9uIC5hY3RpdmUudGl0bGUge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC45NSk7XG59XG4udWkuc3R5bGVkLmFjY29yZGlvbiAuYWNjb3JkaW9uIC5hY3RpdmUudGl0bGUge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC45NSk7XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuYWNjb3JkaW9uIC5hY3RpdmUuY29udGVudCxcbi51aS5hY2NvcmRpb24gLmFjY29yZGlvbiAuYWN0aXZlLmNvbnRlbnQge1xuICBkaXNwbGF5OiBibG9jaztcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFZhcmlhdGlvbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIEZsdWlkXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmZsdWlkLmFjY29yZGlvbixcbi51aS5mbHVpZC5hY2NvcmRpb24gLmFjY29yZGlvbiB7XG4gIHdpZHRoOiAxMDAlO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBJbnZlcnRlZFxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5pbnZlcnRlZC5hY2NvcmRpb24gLnRpdGxlOm5vdCgudWkpIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45KTtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBUaGVtZSBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdBY2NvcmRpb24nO1xuICBzcmM6IHVybChkYXRhOmFwcGxpY2F0aW9uL3gtZm9udC10dGY7Y2hhcnNldD11dGYtODtiYXNlNjQsQUFFQUFBQUxBSUFBQXdBd1QxTXZNZ2dqQjVBQUFBQzhBQUFBWUdOdFlYQVBmT0lLQUFBQkhBQUFBRXhuWVhOd0FBQUFFQUFBQVdnQUFBQUlaMng1WnJ5ajZIZ0FBQUZ3QUFBQXlHaGxZV1QvMEloSEFBQUNPQUFBQURab2FHVmhBcGtCNXdBQUFuQUFBQUFrYUcxMGVBSnVBQklBQUFLVUFBQUFHR3h2WTJFQWpBQldBQUFDckFBQUFBNXRZWGh3QUFnQUZnQUFBcndBQUFBZ2JtRnRaZkMxbjA0QUFBTGNBQUFCUEhCdmMzUUFBd0FBQUFBRUdBQUFBQ0FBQXdJQUFaQUFCUUFBQVV3QlpnQUFBRWNCVEFGbUFBQUE5UUFaQUlRQUFBQUFBQUFBQUFBQUFBQUFBQUFCRUFBQUFBQUFBQUFBQUFBQUFBQUFBQUJBQUFEdzJnSGcvK0QvNEFIZ0FDQUFBQUFCQUFBQUFBQUFBQUFBQUFBZ0FBQUFBQUFDQUFBQUF3QUFBQlFBQXdBQkFBQUFGQUFFQURnQUFBQUtBQWdBQWdBQ0FBRUFJUERhLy8zLy93QUFBQUFBSVBEWi8vMy8vd0FCLytNUEt3QURBQUVBQUFBQUFBQUFBQUFBQUFFQUFmLy9BQThBQVFBQUFBQUFBQUFBQUFJQUFEYzVBUUFBQUFBQkFBQUFBQUFBQUFBQUFnQUFOemtCQUFBQUFBRUFBQUFBQUFBQUFBQUNBQUEzT1FFQUFBQUFBUUFTQUVrQXR3RnVBQk1BQURjMFB3RTJGellYRmgwQkZBY0dKd1l2QVNZMUVnYUFCUWdIQlFZR0JRY0lCWUFHMndjR2Z3Y0JBUWNFQ2Y4SUJBY0JBUWQvQmdZQUFBQUFBUUFBQUVrQXBRRnVBQk1BQURjUk5EYzJNeklmQVJZVkZBOEJCaU1pSnlZMUFBVUdCd2dGZ0FZR2dBVUlCd1lGV3dFQUNBVUdCb0FGQ0FjRmdBWUdCUWNBQUFBQkFBQUFBUUFBcVdZbHMxOFBQUFVBQ3dJQUFBQUFBTS85bys0QUFBQUF6LzJqN2dBQUFBQUF0d0Z1QUFBQUNBQUNBQUFBQUFBQUFBRUFBQUhnLytBQUFBSUFBQUFBQUFDM0FBRUFBQUFBQUFBQUFBQUFBQUFBQUFBR0FBQUFBQUFBQUFBQUFBQUFBUUFBQUFDM0FCSUF0d0FBQUFBQUFBQUtBQlFBSGdCQ0FHUUFBQUFCQUFBQUJnQVVBQUVBQUFBQUFBSUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFEZ0N1QUFFQUFBQUFBQUVBREFBQUFBRUFBQUFBQUFJQURnQkFBQUVBQUFBQUFBTUFEQUFpQUFFQUFBQUFBQVFBREFCT0FBRUFBQUFBQUFVQUZnQU1BQUVBQUFBQUFBWUFCZ0F1QUFFQUFBQUFBQW9BTkFCYUFBTUFBUVFKQUFFQURBQUFBQU1BQVFRSkFBSUFEZ0JBQUFNQUFRUUpBQU1BREFBaUFBTUFBUVFKQUFRQURBQk9BQU1BQVFRSkFBVUFGZ0FNQUFNQUFRUUpBQVlBREFBMEFBTUFBUVFKQUFvQU5BQmFBSElBWVFCMEFHa0FiZ0JuQUZZQVpRQnlBSE1BYVFCdkFHNEFJQUF4QUM0QU1BQnlBR0VBZEFCcEFHNEFaM0poZEdsdVp3QnlBR0VBZEFCcEFHNEFad0JTQUdVQVp3QjFBR3dBWVFCeUFISUFZUUIwQUdrQWJnQm5BRVlBYndCdUFIUUFJQUJuQUdVQWJnQmxBSElBWVFCMEFHVUFaQUFnQUdJQWVRQWdBRWtBWXdCdkFFMEFid0J2QUc0QUxnQURBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBKSBmb3JtYXQoJ3RydWV0eXBlJyksIHVybChkYXRhOmFwcGxpY2F0aW9uL2ZvbnQtd29mZjtjaGFyc2V0PXV0Zi04O2Jhc2U2NCxkMDlHUms5VVZFOEFBQVN3QUFvQUFBQUFCR2dBQVFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQkRSa1lnQUFBQTlBQUFBUzBBQUFFdEZwb3Z1RTlUTHpJQUFBSWtBQUFBWUFBQUFHQUlJd2VRWTIxaGNBQUFBb1FBQUFCTUFBQUFUQTk4NGdwbllYTndBQUFDMEFBQUFBZ0FBQUFJQUFBQUVHaGxZV1FBQUFMWUFBQUFOZ0FBQURiLzBJaEhhR2hsWVFBQUF4QUFBQUFrQUFBQUpBS1pBZWRvYlhSNEFBQUROQUFBQUJnQUFBQVlBbTRBRW0xaGVIQUFBQU5NQUFBQUJnQUFBQVlBQmxBQWJtRnRaUUFBQTFRQUFBRThBQUFCUFBDMW4wNXdiM04wQUFBRWtBQUFBQ0FBQUFBZ0FBTUFBQUVBQkFRQUFRRUJCM0poZEdsdVp3QUJBZ0FCQURyNEhBTDRHd1A0R0FRZUNnQVpVLytMaXg0S0FCbFQvNHVMREFlTGEvaVUrSFFGSFFBQUFIa1BIUUFBQUg0UkhRQUFBQWtkQUFBQkpCSUFCd0VCQncwUEVSUVpIbkpoZEdsdVozSmhkR2x1WjNVd2RURjFNakIxUmpCRU9YVkdNRVJCQUFBQ0FZa0FCQUFHQVFFRUJ3b05WcDM4bEE3OGxBNzhsQTc3bEE3NzNaMzNieFdMa0kyUWo0NEk5eFQzRkFXT2o1Q05rSXVRaTQrSmpvZVBpSTJHaTRZSWkvdVVCWXVHaVllSGlJaUhoNG1HaTRhTGhvMklqd2o3RlBjVUJZZU9pWStMa0FnTys5Mkw1aFdMOTVRRmk1Q05rSTZPajQrUGpaQ0xrSXVRaVk2SENQY1UreFFGajRpTmhvdUdpNGFKaDRlSUNQc1UreFFGaUllR2lZYUxob3VIalllUGlJNkpqNHVRQ0E3NGxCVDRsQldMREFvQUFBQUFBd0lBQVpBQUJRQUFBVXdCWmdBQUFFY0JUQUZtQUFBQTlRQVpBSVFBQUFBQUFBQUFBQUFBQUFBQUFBQUJFQUFBQUFBQUFBQUFBQUFBQUFBQUFBQkFBQUR3MmdIZy8rRC80QUhnQUNBQUFBQUJBQUFBQUFBQUFBQUFBQUFnQUFBQUFBQUNBQUFBQXdBQUFCUUFBd0FCQUFBQUZBQUVBRGdBQUFBS0FBZ0FBZ0FDQUFFQUlQRGEvLzMvL3dBQUFBQUFJUERaLy8zLy93QUIvK01QS3dBREFBRUFBQUFBQUFBQUFBQUFBQUVBQWYvL0FBOEFBUUFBQUFFQUFEZllPSlpmRHp6MUFBc0NBQUFBQUFEUC9hUHVBQUFBQU0vOW8rNEFBQUFBQUxjQmJnQUFBQWdBQWdBQUFBQUFBQUFCQUFBQjRQL2dBQUFDQUFBQUFBQUF0d0FCQUFBQUFBQUFBQUFBQUFBQUFBQUFCZ0FBQUFBQUFBQUFBQUFBQUFFQUFBQUF0d0FTQUxjQUFBQUFVQUFBQmdBQUFBQUFEZ0N1QUFFQUFBQUFBQUVBREFBQUFBRUFBQUFBQUFJQURnQkFBQUVBQUFBQUFBTUFEQUFpQUFFQUFBQUFBQVFBREFCT0FBRUFBQUFBQUFVQUZnQU1BQUVBQUFBQUFBWUFCZ0F1QUFFQUFBQUFBQW9BTkFCYUFBTUFBUVFKQUFFQURBQUFBQU1BQVFRSkFBSUFEZ0JBQUFNQUFRUUpBQU1BREFBaUFBTUFBUVFKQUFRQURBQk9BQU1BQVFRSkFBVUFGZ0FNQUFNQUFRUUpBQVlBREFBMEFBTUFBUVFKQUFvQU5BQmFBSElBWVFCMEFHa0FiZ0JuQUZZQVpRQnlBSE1BYVFCdkFHNEFJQUF4QUM0QU1BQnlBR0VBZEFCcEFHNEFaM0poZEdsdVp3QnlBR0VBZEFCcEFHNEFad0JTQUdVQVp3QjFBR3dBWVFCeUFISUFZUUIwQUdrQWJnQm5BRVlBYndCdUFIUUFJQUJuQUdVQWJnQmxBSElBWVFCMEFHVUFaQUFnQUdJQWVRQWdBRWtBWXdCdkFFMEFid0J2QUc0QUxnQURBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBKSBmb3JtYXQoJ3dvZmYnKTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xufVxuLyogRHJvcGRvd24gSWNvbiAqL1xuLnVpLmFjY29yZGlvbiAudGl0bGUgLmRyb3Bkb3duLmljb24sXG4udWkuYWNjb3JkaW9uIC5hY2NvcmRpb24gLnRpdGxlIC5kcm9wZG93bi5pY29uIHtcbiAgZm9udC1mYW1pbHk6IEFjY29yZGlvbjtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG4udWkuYWNjb3JkaW9uIC50aXRsZSAuZHJvcGRvd24uaWNvbjpiZWZvcmUsXG4udWkuYWNjb3JkaW9uIC5hY2NvcmRpb24gLnRpdGxlIC5kcm9wZG93bi5pY29uOmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICdcXGYwZGEnIC8qcnRsOidcXGYwZDknKi87XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBVc2VyIE92ZXJyaWRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIVxuICogIyBTZW1hbnRpYyBVSSAtIENoZWNrYm94XG4gKiBodHRwOi8vZ2l0aHViLmNvbS9zZW1hbnRpYy1vcmcvc2VtYW50aWMtdWkvXG4gKlxuICpcbiAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZVxuICogaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVFxuICpcbiAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLypcblxu4paI4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWXICDilojilojilZfilojilojilojilojilojilojilojilZfilojilojilojilZcgICDilojilojilojilZfilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZdcbuKVmuKVkOKVkOKWiOKWiOKVlOKVkOKVkOKVneKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWd4paI4paI4paI4paI4pWXIOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVnVxuICAg4paI4paI4pWRICAg4paI4paI4paI4paI4paI4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilZTilojilojilojilojilZTilojilojilZHilojilojilojilojilojilZcgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl1xuICAg4paI4paI4pWRICAg4paI4paI4pWU4pWQ4pWQ4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilojilojilZHilZrilojilojilZTilZ3ilojilojilZHilojilojilZTilZDilZDilZ0gIOKVmuKVkOKVkOKVkOKVkOKWiOKWiOKVkVxuICAg4paI4paI4pWRICAg4paI4paI4pWRICDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilZEg4pWa4pWQ4pWdIOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkVxuICAg4pWa4pWQ4pWdICAg4pWa4pWQ4pWdICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZ0gICAgIOKVmuKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVnVxuXG4qL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgVGhlbWUgU2VsZWN0aW9uXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogVG8gb3ZlcnJpZGUgYSB0aGVtZSBmb3IgYW4gaW5kaXZpZHVhbCBlbGVtZW50XG4gICBzcGVjaWZ5IHRoZW1lIG5hbWUgYmVsb3dcbiovXG4vKiBHbG9iYWwgKi9cbi8qIEVsZW1lbnRzICovXG4vKiBDb2xsZWN0aW9ucyAqL1xuLyogTW9kdWxlcyAqL1xuLyogVmlld3MgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBGb2xkZXJzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogUGF0aCB0byB0aGVtZSBwYWNrYWdlcyAqL1xuLyogUGF0aCB0byBzaXRlIG92ZXJyaWRlIGZvbGRlciAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIEltcG9ydCBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIEltcG9ydCBEaXJlY3RpdmVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBUaGVtZVxuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICBTaXRlIFZhcmlhYmxlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERlZmF1bHQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZG9ycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBQYWNrYWdlZCBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kb3JzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIENvbXBvbmVudCdzIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRvcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogU2l0ZSB0aGVtZSBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgVXNlciBHbG9iYWwgVmFyaWFibGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogbWFyc28gY29sb3JzICovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gQ29tcG9uZW50IFZhcmlhYmxlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERlZmF1bHQgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBDaGVja2JveFxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIExhYmVsICovXG4vKiAyNnB4IEAgMTQvZW0gKi9cbi8qIENoZWNrYm94ICovXG4vKiBDaGVja21hcmsgKi9cbi8qIExhYmVsICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU3RhdGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBIb3ZlciAqL1xuLyogUHJlc3NlZCAqL1xuLyogRm9jdXMgKi9cbi8qIEFjdGl2ZSAqL1xuLyogQWN0aXZlIEZvY3VzICovXG4vKiBJbmRldGVybWluYXRlICovXG4vKiBEaXNhYmxlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFR5cGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBSYWRpbyAqL1xuLyogVXNlcyBweCB0byBhdm9pZCByb3VuZGluZyBpc3N1ZXMgd2l0aCBjaXJjbGVzICovXG4vKiA3cHggYXMgdW5pdGxlc3MgdmFsdWUgZnJvbSByYWRpbyBzaXplICovXG4vKiBTbGlkZXIgJiBUb2dnbGUgSGFuZGxlICovXG4vKiBTbGlkZXIgKi9cbi8qIFNsaWRlciBTdGF0ZXMgKi9cbi8qIFRvZ2dsZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBWYXJpYXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQYWNrYWdlZCBUaGVtZSAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIENoZWNrYm94XG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogTGFiZWwgKi9cbi8qIDI2cHggQCAxNC9lbSAqL1xuLyogQ2hlY2tib3ggKi9cbi8qIENoZWNrbWFyayAqL1xuLyogTGFiZWwgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTdGF0ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEhvdmVyICovXG4vKiBQcmVzc2VkICovXG4vKiBGb2N1cyAqL1xuLyogQWN0aXZlICovXG4vKiBBY3RpdmUgRm9jdXMgKi9cbi8qIEluZGV0ZXJtaW5hdGUgKi9cbi8qIERpc2FibGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgVHlwZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFJhZGlvICovXG4vKiBVc2VzIHB4IHRvIGF2b2lkIHJvdW5kaW5nIGlzc3VlcyB3aXRoIGNpcmNsZXMgKi9cbi8qIDdweCBhcyB1bml0bGVzcyB2YWx1ZSBmcm9tIHJhZGlvIHNpemUgKi9cbi8qIFNsaWRlciAmIFRvZ2dsZSBIYW5kbGUgKi9cbi8qIFNsaWRlciAqL1xuLyogU2xpZGVyIFN0YXRlcyAqL1xuLyogVG9nZ2xlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFZhcmlhdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNpdGUgVGhlbWUgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgVXNlciBWYXJpYWJsZSBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIE1peC1pbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE92ZXJyaWRlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBFbmQgQ29uZmlnICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBDaGVja2JveFxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBDb250ZW50XG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmNoZWNrYm94IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgb3V0bGluZTogbm9uZTtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIG1pbi1oZWlnaHQ6IDE3cHg7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgbGluZS1oZWlnaHQ6IDE3cHg7XG4gIG1pbi13aWR0aDogMTdweDtcbn1cbi8qIEhUTUwgQ2hlY2tib3ggKi9cbi51aS5jaGVja2JveCBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0sXG4udWkuY2hlY2tib3ggaW5wdXRbdHlwZT1cInJhZGlvXCJdIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMHB4O1xuICBsZWZ0OiAwcHg7XG4gIG9wYWNpdHk6IDAgIWltcG9ydGFudDtcbiAgb3V0bGluZTogbm9uZTtcbiAgei1pbmRleDogMztcbiAgd2lkdGg6IDE3cHg7XG4gIGhlaWdodDogMTdweDtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJveFxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5jaGVja2JveCAuYm94LFxuLnVpLmNoZWNrYm94IGxhYmVsIHtcbiAgY3Vyc29yOiBhdXRvO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwYWRkaW5nLWxlZnQ6IDEuODU3MTRlbTtcbiAgb3V0bGluZTogbm9uZTtcbiAgZm9udC1zaXplOiAxZW07XG59XG4udWkuY2hlY2tib3ggLmJveDpiZWZvcmUsXG4udWkuY2hlY2tib3ggbGFiZWw6YmVmb3JlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDBweDtcbiAgbGVmdDogMHB4O1xuICB3aWR0aDogMTdweDtcbiAgaGVpZ2h0OiAxN3B4O1xuICBjb250ZW50OiAnJztcbiAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbiAgYm9yZGVyLXJhZGl1czogMC4zcmVtO1xuICB0cmFuc2l0aW9uOiBib3JkZXIgMC4xcyBlYXNlLCBvcGFjaXR5IDAuMXMgZWFzZSwgdHJhbnNmb3JtIDAuMXMgZWFzZSwgYm94LXNoYWRvdyAwLjFzIGVhc2U7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNENEQ0RDU7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgQ2hlY2ttYXJrXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmNoZWNrYm94IC5ib3g6YWZ0ZXIsXG4udWkuY2hlY2tib3ggbGFiZWw6YWZ0ZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgdG9wOiAwcHg7XG4gIGxlZnQ6IDBweDtcbiAgd2lkdGg6IDE3cHg7XG4gIGhlaWdodDogMTdweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBvcGFjaXR5OiAwO1xuICBjb2xvcjogIzMzMzMzMztcbiAgdHJhbnNpdGlvbjogYm9yZGVyIDAuMXMgZWFzZSwgb3BhY2l0eSAwLjFzIGVhc2UsIHRyYW5zZm9ybSAwLjFzIGVhc2UsIGJveC1zaGFkb3cgMC4xcyBlYXNlO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICAgTGFiZWxcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnNpZGUgKi9cbi51aS5jaGVja2JveCBsYWJlbCxcbi51aS5jaGVja2JveCArIGxhYmVsIHtcbiAgY29sb3I6ICMzMzMzMzM7XG4gIHRyYW5zaXRpb246IGNvbG9yIDAuMXMgZWFzZTtcbn1cbi8qIE91dHNpZGUgKi9cbi51aS5jaGVja2JveCArIGxhYmVsIHtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmNoZWNrYm94IC5ib3g6aG92ZXI6OmJlZm9yZSxcbi51aS5jaGVja2JveCBsYWJlbDpob3Zlcjo6YmVmb3JlIHtcbiAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDM0LCAzNiwgMzgsIDAuMzUpO1xufVxuLnVpLmNoZWNrYm94IGxhYmVsOmhvdmVyLFxuLnVpLmNoZWNrYm94ICsgbGFiZWw6aG92ZXIge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjgpO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICAgRG93blxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5jaGVja2JveCAuYm94OmFjdGl2ZTo6YmVmb3JlLFxuLnVpLmNoZWNrYm94IGxhYmVsOmFjdGl2ZTo6YmVmb3JlIHtcbiAgYmFja2dyb3VuZDogI0Y5RkFGQjtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDM0LCAzNiwgMzgsIDAuMzUpO1xufVxuLnVpLmNoZWNrYm94IC5ib3g6YWN0aXZlOjphZnRlcixcbi51aS5jaGVja2JveCBsYWJlbDphY3RpdmU6OmFmdGVyIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC45NSk7XG59XG4udWkuY2hlY2tib3ggaW5wdXQ6YWN0aXZlIH4gbGFiZWwge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjk1KTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuY2hlY2tib3ggaW5wdXQ6Zm9jdXMgfiAuYm94OmJlZm9yZSxcbi51aS5jaGVja2JveCBpbnB1dDpmb2N1cyB+IGxhYmVsOmJlZm9yZSB7XG4gIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gIGJvcmRlci1jb2xvcjogIzk2QzhEQTtcbn1cbi51aS5jaGVja2JveCBpbnB1dDpmb2N1cyB+IC5ib3g6YWZ0ZXIsXG4udWkuY2hlY2tib3ggaW5wdXQ6Zm9jdXMgfiBsYWJlbDphZnRlciB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuOTUpO1xufVxuLnVpLmNoZWNrYm94IGlucHV0OmZvY3VzIH4gbGFiZWwge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjk1KTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmNoZWNrYm94IGlucHV0OmNoZWNrZWQgfiAuYm94OmJlZm9yZSxcbi51aS5jaGVja2JveCBpbnB1dDpjaGVja2VkIH4gbGFiZWw6YmVmb3JlIHtcbiAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDM0LCAzNiwgMzgsIDAuMzUpO1xufVxuLnVpLmNoZWNrYm94IGlucHV0OmNoZWNrZWQgfiAuYm94OmFmdGVyLFxuLnVpLmNoZWNrYm94IGlucHV0OmNoZWNrZWQgfiBsYWJlbDphZnRlciB7XG4gIG9wYWNpdHk6IDE7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuOTUpO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICBJbmRldGVybWluYXRlXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmNoZWNrYm94IGlucHV0Om5vdChbdHlwZT1yYWRpb10pOmluZGV0ZXJtaW5hdGUgfiAuYm94OmJlZm9yZSxcbi51aS5jaGVja2JveCBpbnB1dDpub3QoW3R5cGU9cmFkaW9dKTppbmRldGVybWluYXRlIH4gbGFiZWw6YmVmb3JlIHtcbiAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDM0LCAzNiwgMzgsIDAuMzUpO1xufVxuLnVpLmNoZWNrYm94IGlucHV0Om5vdChbdHlwZT1yYWRpb10pOmluZGV0ZXJtaW5hdGUgfiAuYm94OmFmdGVyLFxuLnVpLmNoZWNrYm94IGlucHV0Om5vdChbdHlwZT1yYWRpb10pOmluZGV0ZXJtaW5hdGUgfiBsYWJlbDphZnRlciB7XG4gIG9wYWNpdHk6IDE7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuOTUpO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICBBY3RpdmUgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuY2hlY2tib3ggaW5wdXQ6bm90KFt0eXBlPXJhZGlvXSk6aW5kZXRlcm1pbmF0ZTpmb2N1cyB+IC5ib3g6YmVmb3JlLFxuLnVpLmNoZWNrYm94IGlucHV0Om5vdChbdHlwZT1yYWRpb10pOmluZGV0ZXJtaW5hdGU6Zm9jdXMgfiBsYWJlbDpiZWZvcmUsXG4udWkuY2hlY2tib3ggaW5wdXQ6Y2hlY2tlZDpmb2N1cyB+IC5ib3g6YmVmb3JlLFxuLnVpLmNoZWNrYm94IGlucHV0OmNoZWNrZWQ6Zm9jdXMgfiBsYWJlbDpiZWZvcmUge1xuICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICBib3JkZXItY29sb3I6ICM5NkM4REE7XG59XG4udWkuY2hlY2tib3ggaW5wdXQ6bm90KFt0eXBlPXJhZGlvXSk6aW5kZXRlcm1pbmF0ZTpmb2N1cyB+IC5ib3g6YWZ0ZXIsXG4udWkuY2hlY2tib3ggaW5wdXQ6bm90KFt0eXBlPXJhZGlvXSk6aW5kZXRlcm1pbmF0ZTpmb2N1cyB+IGxhYmVsOmFmdGVyLFxuLnVpLmNoZWNrYm94IGlucHV0OmNoZWNrZWQ6Zm9jdXMgfiAuYm94OmFmdGVyLFxuLnVpLmNoZWNrYm94IGlucHV0OmNoZWNrZWQ6Zm9jdXMgfiBsYWJlbDphZnRlciB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuOTUpO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgIFJlYWQtT25seVxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5yZWFkLW9ubHkuY2hlY2tib3gsXG4udWkucmVhZC1vbmx5LmNoZWNrYm94IGxhYmVsIHtcbiAgY3Vyc29yOiBkZWZhdWx0O1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5kaXNhYmxlZC5jaGVja2JveCAuYm94OmFmdGVyLFxuLnVpLmRpc2FibGVkLmNoZWNrYm94IGxhYmVsLFxuLnVpLmNoZWNrYm94IGlucHV0W2Rpc2FibGVkXSB+IC5ib3g6YWZ0ZXIsXG4udWkuY2hlY2tib3ggaW5wdXRbZGlzYWJsZWRdIH4gbGFiZWwge1xuICBjdXJzb3I6IGRlZmF1bHQgIWltcG9ydGFudDtcbiAgb3BhY2l0eTogMC41O1xuICBjb2xvcjogIzAwMDAwMDtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgSGlkZGVuXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW5pdGlhbGl6ZWQgY2hlY2tib3ggbW92ZXMgaW5wdXQgYmVsb3cgZWxlbWVudFxuIHRvIHByZXZlbnQgbWFudWFsbHkgdHJpZ2dlcmluZyAqL1xuLnVpLmNoZWNrYm94IGlucHV0LmhpZGRlbiB7XG4gIHotaW5kZXg6IC0xO1xufVxuLyogU2VsZWN0YWJsZSBMYWJlbCAqL1xuLnVpLmNoZWNrYm94IGlucHV0LmhpZGRlbiArIGxhYmVsIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgVHlwZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIFJhZGlvXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLnJhZGlvLmNoZWNrYm94IHtcbiAgbWluLWhlaWdodDogMTVweDtcbn1cbi51aS5yYWRpby5jaGVja2JveCAuYm94LFxuLnVpLnJhZGlvLmNoZWNrYm94IGxhYmVsIHtcbiAgcGFkZGluZy1sZWZ0OiAxLjg1NzE0ZW07XG59XG4vKiBCb3ggKi9cbi51aS5yYWRpby5jaGVja2JveCAuYm94OmJlZm9yZSxcbi51aS5yYWRpby5jaGVja2JveCBsYWJlbDpiZWZvcmUge1xuICBjb250ZW50OiAnJztcbiAgdHJhbnNmb3JtOiBub25lO1xuICB3aWR0aDogMTVweDtcbiAgaGVpZ2h0OiAxNXB4O1xuICBib3JkZXItcmFkaXVzOiA1MDByZW07XG4gIHRvcDogMXB4O1xuICBsZWZ0OiAwcHg7XG59XG4vKiBCdWxsZXQgKi9cbi51aS5yYWRpby5jaGVja2JveCAuYm94OmFmdGVyLFxuLnVpLnJhZGlvLmNoZWNrYm94IGxhYmVsOmFmdGVyIHtcbiAgYm9yZGVyOiBub25lO1xuICBjb250ZW50OiAnJyAhaW1wb3J0YW50O1xuICB3aWR0aDogMTVweDtcbiAgaGVpZ2h0OiAxNXB4O1xuICBsaW5lLWhlaWdodDogMTVweDtcbn1cbi8qIFJhZGlvIENoZWNrYm94ICovXG4udWkucmFkaW8uY2hlY2tib3ggLmJveDphZnRlcixcbi51aS5yYWRpby5jaGVja2JveCBsYWJlbDphZnRlciB7XG4gIHRvcDogMXB4O1xuICBsZWZ0OiAwcHg7XG4gIHdpZHRoOiAxNXB4O1xuICBoZWlnaHQ6IDE1cHg7XG4gIGJvcmRlci1yYWRpdXM6IDUwMHJlbTtcbiAgdHJhbnNmb3JtOiBzY2FsZSgwLjQ2NjY2NjY3KTtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzMzMzMzMztcbn1cbi8qIEZvY3VzICovXG4udWkucmFkaW8uY2hlY2tib3ggaW5wdXQ6Zm9jdXMgfiAuYm94OmJlZm9yZSxcbi51aS5yYWRpby5jaGVja2JveCBpbnB1dDpmb2N1cyB+IGxhYmVsOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG59XG4udWkucmFkaW8uY2hlY2tib3ggaW5wdXQ6Zm9jdXMgfiAuYm94OmFmdGVyLFxuLnVpLnJhZGlvLmNoZWNrYm94IGlucHV0OmZvY3VzIH4gbGFiZWw6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuOTUpO1xufVxuLyogSW5kZXRlcm1pbmF0ZSAqL1xuLnVpLnJhZGlvLmNoZWNrYm94IGlucHV0OmluZGV0ZXJtaW5hdGUgfiAuYm94OmFmdGVyLFxuLnVpLnJhZGlvLmNoZWNrYm94IGlucHV0OmluZGV0ZXJtaW5hdGUgfiBsYWJlbDphZnRlciB7XG4gIG9wYWNpdHk6IDA7XG59XG4vKiBBY3RpdmUgKi9cbi51aS5yYWRpby5jaGVja2JveCBpbnB1dDpjaGVja2VkIH4gLmJveDpiZWZvcmUsXG4udWkucmFkaW8uY2hlY2tib3ggaW5wdXQ6Y2hlY2tlZCB+IGxhYmVsOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG59XG4udWkucmFkaW8uY2hlY2tib3ggaW5wdXQ6Y2hlY2tlZCB+IC5ib3g6YWZ0ZXIsXG4udWkucmFkaW8uY2hlY2tib3ggaW5wdXQ6Y2hlY2tlZCB+IGxhYmVsOmFmdGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjk1KTtcbn1cbi8qIEFjdGl2ZSBGb2N1cyAqL1xuLnVpLnJhZGlvLmNoZWNrYm94IGlucHV0OmZvY3VzOmNoZWNrZWQgfiAuYm94OmJlZm9yZSxcbi51aS5yYWRpby5jaGVja2JveCBpbnB1dDpmb2N1czpjaGVja2VkIH4gbGFiZWw6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbn1cbi51aS5yYWRpby5jaGVja2JveCBpbnB1dDpmb2N1czpjaGVja2VkIH4gLmJveDphZnRlcixcbi51aS5yYWRpby5jaGVja2JveCBpbnB1dDpmb2N1czpjaGVja2VkIH4gbGFiZWw6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuOTUpO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBTbGlkZXJcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuc2xpZGVyLmNoZWNrYm94IHtcbiAgbWluLWhlaWdodDogMS4yNXJlbTtcbn1cbi8qIElucHV0ICovXG4udWkuc2xpZGVyLmNoZWNrYm94IGlucHV0IHtcbiAgd2lkdGg6IDMuNXJlbTtcbiAgaGVpZ2h0OiAxLjI1cmVtO1xufVxuLyogTGFiZWwgKi9cbi51aS5zbGlkZXIuY2hlY2tib3ggLmJveCxcbi51aS5zbGlkZXIuY2hlY2tib3ggbGFiZWwge1xuICBwYWRkaW5nLWxlZnQ6IDQuNXJlbTtcbiAgbGluZS1oZWlnaHQ6IDFyZW07XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNCk7XG59XG4vKiBMaW5lICovXG4udWkuc2xpZGVyLmNoZWNrYm94IC5ib3g6YmVmb3JlLFxuLnVpLnNsaWRlci5jaGVja2JveCBsYWJlbDpiZWZvcmUge1xuICBkaXNwbGF5OiBibG9jaztcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBjb250ZW50OiAnJztcbiAgYm9yZGVyOiBub25lICFpbXBvcnRhbnQ7XG4gIGxlZnQ6IDBlbTtcbiAgei1pbmRleDogMTtcbiAgdG9wOiAwLjRyZW07XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4wNSk7XG4gIHdpZHRoOiAzLjVyZW07XG4gIGhlaWdodDogMC4zcmVtO1xuICB0cmFuc2Zvcm06IG5vbmU7XG4gIGJvcmRlci1yYWRpdXM6IDUwMHJlbTtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjNzIGVhc2U7XG59XG4vKiBIYW5kbGUgKi9cbi51aS5zbGlkZXIuY2hlY2tib3ggLmJveDphZnRlcixcbi51aS5zbGlkZXIuY2hlY2tib3ggbGFiZWw6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kOiAjZmZmZmZmIGxpbmVhci1ncmFkaWVudCh0cmFuc3BhcmVudCwgcmdiYSgwLCAwLCAwLCAwLjA1KSk7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgY29udGVudDogJycgIWltcG9ydGFudDtcbiAgb3BhY2l0eTogMTtcbiAgei1pbmRleDogMjtcbiAgYm9yZGVyOiBub25lO1xuICBib3gtc2hhZG93OiAwcHggMXB4IDJweCAwIHJnYmEoMzQsIDM2LCAzOCwgMC4xNSksIDBweCAwcHggMHB4IDFweCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpIGluc2V0O1xuICB3aWR0aDogMS41cmVtO1xuICBoZWlnaHQ6IDEuNXJlbTtcbiAgdG9wOiAtMC4yNXJlbTtcbiAgbGVmdDogMGVtO1xuICB0cmFuc2Zvcm06IG5vbmU7XG4gIGJvcmRlci1yYWRpdXM6IDUwMHJlbTtcbiAgdHJhbnNpdGlvbjogbGVmdCAwLjNzIGVhc2U7XG59XG4vKiBGb2N1cyAqL1xuLnVpLnNsaWRlci5jaGVja2JveCBpbnB1dDpmb2N1cyB+IC5ib3g6YmVmb3JlLFxuLnVpLnNsaWRlci5jaGVja2JveCBpbnB1dDpmb2N1cyB+IGxhYmVsOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xNSk7XG4gIGJvcmRlcjogbm9uZTtcbn1cbi8qIEhvdmVyICovXG4udWkuc2xpZGVyLmNoZWNrYm94IC5ib3g6aG92ZXIsXG4udWkuc2xpZGVyLmNoZWNrYm94IGxhYmVsOmhvdmVyIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44KTtcbn1cbi51aS5zbGlkZXIuY2hlY2tib3ggLmJveDpob3Zlcjo6YmVmb3JlLFxuLnVpLnNsaWRlci5jaGVja2JveCBsYWJlbDpob3Zlcjo6YmVmb3JlIHtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjE1KTtcbn1cbi8qIEFjdGl2ZSAqL1xuLnVpLnNsaWRlci5jaGVja2JveCBpbnB1dDpjaGVja2VkIH4gLmJveCxcbi51aS5zbGlkZXIuY2hlY2tib3ggaW5wdXQ6Y2hlY2tlZCB+IGxhYmVsIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC45NSkgIWltcG9ydGFudDtcbn1cbi51aS5zbGlkZXIuY2hlY2tib3ggaW5wdXQ6Y2hlY2tlZCB+IC5ib3g6YmVmb3JlLFxuLnVpLnNsaWRlci5jaGVja2JveCBpbnB1dDpjaGVja2VkIH4gbGFiZWw6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzU0NTQ1NCAhaW1wb3J0YW50O1xufVxuLnVpLnNsaWRlci5jaGVja2JveCBpbnB1dDpjaGVja2VkIH4gLmJveDphZnRlcixcbi51aS5zbGlkZXIuY2hlY2tib3ggaW5wdXQ6Y2hlY2tlZCB+IGxhYmVsOmFmdGVyIHtcbiAgbGVmdDogMnJlbTtcbn1cbi8qIEFjdGl2ZSBGb2N1cyAqL1xuLnVpLnNsaWRlci5jaGVja2JveCBpbnB1dDpmb2N1czpjaGVja2VkIH4gLmJveCxcbi51aS5zbGlkZXIuY2hlY2tib3ggaW5wdXQ6Zm9jdXM6Y2hlY2tlZCB+IGxhYmVsIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC45NSkgIWltcG9ydGFudDtcbn1cbi51aS5zbGlkZXIuY2hlY2tib3ggaW5wdXQ6Zm9jdXM6Y2hlY2tlZCB+IC5ib3g6YmVmb3JlLFxuLnVpLnNsaWRlci5jaGVja2JveCBpbnB1dDpmb2N1czpjaGVja2VkIH4gbGFiZWw6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDAwMCAhaW1wb3J0YW50O1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBUb2dnbGVcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkudG9nZ2xlLmNoZWNrYm94IHtcbiAgbWluLWhlaWdodDogMS41cmVtO1xufVxuLyogSW5wdXQgKi9cbi51aS50b2dnbGUuY2hlY2tib3ggaW5wdXQge1xuICB3aWR0aDogMy41cmVtO1xuICBoZWlnaHQ6IDEuNXJlbTtcbn1cbi8qIExhYmVsICovXG4udWkudG9nZ2xlLmNoZWNrYm94IC5ib3gsXG4udWkudG9nZ2xlLmNoZWNrYm94IGxhYmVsIHtcbiAgbWluLWhlaWdodDogMS41cmVtO1xuICBwYWRkaW5nLWxlZnQ6IDQuNXJlbTtcbiAgY29sb3I6ICMzMzMzMzM7XG59XG4udWkudG9nZ2xlLmNoZWNrYm94IGxhYmVsIHtcbiAgcGFkZGluZy10b3A6IDAuMTVlbTtcbn1cbi8qIFN3aXRjaCAqL1xuLnVpLnRvZ2dsZS5jaGVja2JveCAuYm94OmJlZm9yZSxcbi51aS50b2dnbGUuY2hlY2tib3ggbGFiZWw6YmVmb3JlIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgY29udGVudDogJyc7XG4gIHotaW5kZXg6IDE7XG4gIHRyYW5zZm9ybTogbm9uZTtcbiAgYm9yZGVyOiBub25lO1xuICB0b3A6IDByZW07XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4wNSk7XG4gIHdpZHRoOiAzLjVyZW07XG4gIGhlaWdodDogMS41cmVtO1xuICBib3JkZXItcmFkaXVzOiA1MDByZW07XG59XG4vKiBIYW5kbGUgKi9cbi51aS50b2dnbGUuY2hlY2tib3ggLmJveDphZnRlcixcbi51aS50b2dnbGUuY2hlY2tib3ggbGFiZWw6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kOiAjZmZmZmZmIGxpbmVhci1ncmFkaWVudCh0cmFuc3BhcmVudCwgcmdiYSgwLCAwLCAwLCAwLjA1KSk7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgY29udGVudDogJycgIWltcG9ydGFudDtcbiAgb3BhY2l0eTogMTtcbiAgei1pbmRleDogMjtcbiAgYm9yZGVyOiBub25lO1xuICBib3gtc2hhZG93OiAwcHggMXB4IDJweCAwIHJnYmEoMzQsIDM2LCAzOCwgMC4xNSksIDBweCAwcHggMHB4IDFweCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpIGluc2V0O1xuICB3aWR0aDogMS41cmVtO1xuICBoZWlnaHQ6IDEuNXJlbTtcbiAgdG9wOiAwcmVtO1xuICBsZWZ0OiAwZW07XG4gIGJvcmRlci1yYWRpdXM6IDUwMHJlbTtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjNzIGVhc2UsIGxlZnQgMC4zcyBlYXNlO1xufVxuLnVpLnRvZ2dsZS5jaGVja2JveCBpbnB1dCB+IC5ib3g6YWZ0ZXIsXG4udWkudG9nZ2xlLmNoZWNrYm94IGlucHV0IH4gbGFiZWw6YWZ0ZXIge1xuICBsZWZ0OiAtMC4wNXJlbTtcbn1cbi8qIEZvY3VzICovXG4udWkudG9nZ2xlLmNoZWNrYm94IGlucHV0OmZvY3VzIH4gLmJveDpiZWZvcmUsXG4udWkudG9nZ2xlLmNoZWNrYm94IGlucHV0OmZvY3VzIH4gbGFiZWw6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjE1KTtcbiAgYm9yZGVyOiBub25lO1xufVxuLyogSG92ZXIgKi9cbi51aS50b2dnbGUuY2hlY2tib3ggLmJveDpob3Zlcjo6YmVmb3JlLFxuLnVpLnRvZ2dsZS5jaGVja2JveCBsYWJlbDpob3Zlcjo6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjE1KTtcbiAgYm9yZGVyOiBub25lO1xufVxuLyogQWN0aXZlICovXG4udWkudG9nZ2xlLmNoZWNrYm94IGlucHV0OmNoZWNrZWQgfiAuYm94LFxuLnVpLnRvZ2dsZS5jaGVja2JveCBpbnB1dDpjaGVja2VkIH4gbGFiZWwge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjk1KSAhaW1wb3J0YW50O1xufVxuLnVpLnRvZ2dsZS5jaGVja2JveCBpbnB1dDpjaGVja2VkIH4gLmJveDpiZWZvcmUsXG4udWkudG9nZ2xlLmNoZWNrYm94IGlucHV0OmNoZWNrZWQgfiBsYWJlbDpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjM2Y1MWI1ICFpbXBvcnRhbnQ7XG59XG4udWkudG9nZ2xlLmNoZWNrYm94IGlucHV0OmNoZWNrZWQgfiAuYm94OmFmdGVyLFxuLnVpLnRvZ2dsZS5jaGVja2JveCBpbnB1dDpjaGVja2VkIH4gbGFiZWw6YWZ0ZXIge1xuICBsZWZ0OiAyLjE1cmVtO1xufVxuLyogQWN0aXZlIEZvY3VzICovXG4udWkudG9nZ2xlLmNoZWNrYm94IGlucHV0OmZvY3VzOmNoZWNrZWQgfiAuYm94LFxuLnVpLnRvZ2dsZS5jaGVja2JveCBpbnB1dDpmb2N1czpjaGVja2VkIH4gbGFiZWwge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjk1KSAhaW1wb3J0YW50O1xufVxuLnVpLnRvZ2dsZS5jaGVja2JveCBpbnB1dDpmb2N1czpjaGVja2VkIH4gLmJveDpiZWZvcmUsXG4udWkudG9nZ2xlLmNoZWNrYm94IGlucHV0OmZvY3VzOmNoZWNrZWQgfiBsYWJlbDpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMmIzZGExICFpbXBvcnRhbnQ7XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgVmFyaWF0aW9uc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgRml0dGVkXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmZpdHRlZC5jaGVja2JveCAuYm94LFxuLnVpLmZpdHRlZC5jaGVja2JveCBsYWJlbCB7XG4gIHBhZGRpbmctbGVmdDogMGVtICFpbXBvcnRhbnQ7XG59XG4udWkuZml0dGVkLnRvZ2dsZS5jaGVja2JveCxcbi51aS5maXR0ZWQudG9nZ2xlLmNoZWNrYm94IHtcbiAgd2lkdGg6IDMuNXJlbTtcbn1cbi51aS5maXR0ZWQuc2xpZGVyLmNoZWNrYm94LFxuLnVpLmZpdHRlZC5zbGlkZXIuY2hlY2tib3gge1xuICB3aWR0aDogMy41cmVtO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFRoZW1lIE92ZXJyaWRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ0NoZWNrYm94JztcbiAgc3JjOiB1cmwoZGF0YTphcHBsaWNhdGlvbi94LWZvbnQtdHRmO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LEFBRUFBQUFMQUlBQUF3QXdUMU12TWc4U0JEOEFBQUM4QUFBQVlHTnRZWEFZVnRDSkFBQUJIQUFBQUZSbllYTndBQUFBRUFBQUFYQUFBQUFJWjJ4NVpuNGh1d1VBQUFGNEFBQUJZR2hsWVdRR1BlMVpBQUFDMkFBQUFEWm9hR1ZoQjMwRHlBQUFBeEFBQUFBa2FHMTBlQkJLQUVVQUFBTTBBQUFBSEd4dlkyRUFtZ0VTQUFBRFVBQUFBQkJ0WVhod0FBa0FMd0FBQTJBQUFBQWdibUZ0WlNDOEl1Z0FBQU9BQUFBQmtuQnZjM1FBQXdBQUFBQUZGQUFBQUNBQUF3TVRBWkFBQlFBQUFwa0N6QUFBQUk4Q21RTE1BQUFCNndBekFRa0FBQUFBQUFBQUFBQUFBQUFBQUFBQkVBQUFBQUFBQUFBQUFBQUFBQUFBQUFCQUFBRG9BZ1BBLzhBQVFBUEFBRUFBQUFBQkFBQUFBQUFBQUFBQUFBQWdBQUFBQUFBREFBQUFBd0FBQUJ3QUFRQURBQUFBSEFBREFBRUFBQUFjQUFRQU9BQUFBQW9BQ0FBQ0FBSUFBUUFnNkFMLy9mLy9BQUFBQUFBZzZBRC8vZi8vQUFILzR4Z0VBQU1BQVFBQUFBQUFBQUFBQUFBQUFRQUIvLzhBRHdBQkFBQUFBQUFBQUFBQUFnQUFOemtCQUFBQUFBRUFBQUFBQUFBQUFBQUNBQUEzT1FFQUFBQUFBUUFBQUFBQUFBQUFBQUlBQURjNUFRQUFBQUFCQUVVQVVRTzdBdmdBR2dBQUFSUUhBUVlqSWljQkpqVTBQd0UyTXpJZkFRRTJNeklmQVJZVkE3c1EvaFFRRmhjUS91TVFFRTRRRnhjUXFBRjJFQmNYRUU0UUFuTVdFUDRVRUJBQkhSQVhGaEJPRUJDb0FYY1FFRTRRRndBQUFBQUJBQUFCYmdNbEFra0FGQUFBQVJVVUJ3WWpJU0luSmowQk5EYzJNeUV5RnhZVkF5VVFFQmY5U1JjUUVCQVFGd0szRnhBUUFoSnRGeEFRRUJBWGJSY1FFQkFRRndBQUFBQUJBQUFBU1FNbEEyNEFMQUFBQVJVVUJ3WXJBUlVVQndZckFTSW5KajBCSXlJbkpqMEJORGMyT3dFMU5EYzJPd0V5RnhZZEFUTXlGeFlWQXlVUUVCZnVFQkFYYmhZUUVPNFhFQkFRRUJmdUVCQVdiaGNRRU80WEVCQUNFbTBYRUJEdUZ4QVFFQkFYN2hBUUYyMFhFQkR1RnhBUUVCQVg3aEFRRndBQUFRQUFBQUlBQUhSU3pUOWZEenoxQUFzRUFBQUFBQURSc2RSM0FBQUFBTkd4MUhjQUFBQUFBN3NEYmdBQUFBZ0FBZ0FBQUFBQUFBQUJBQUFEd1AvQUFBQUVBQUFBQUFBRHV3QUJBQUFBQUFBQUFBQUFBQUFBQUFBQUJ3UUFBQUFBQUFBQUFBQUFBQUlBQUFBRUFBQkZBeVVBQUFNbEFBQUFBQUFBQUFvQUZBQWVBRTRBY2dDd0FBRUFBQUFIQUMwQUFRQUFBQUFBQWdBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBT0FLNEFBUUFBQUFBQUFRQUlBQUFBQVFBQUFBQUFBZ0FIQUdrQUFRQUFBQUFBQXdBSUFEa0FBUUFBQUFBQUJBQUlBSDRBQVFBQUFBQUFCUUFMQUJnQUFRQUFBQUFBQmdBSUFGRUFBUUFBQUFBQUNnQWFBSllBQXdBQkJBa0FBUUFRQUFnQUF3QUJCQWtBQWdBT0FIQUFBd0FCQkFrQUF3QVFBRUVBQXdBQkJBa0FCQUFRQUlZQUF3QUJCQWtBQlFBV0FDTUFBd0FCQkFrQUJnQVFBRmtBQXdBQkJBa0FDZ0EwQUxCRGFHVmphMkp2ZUFCREFHZ0FaUUJqQUdzQVlnQnZBSGhXWlhKemFXOXVJREl1TUFCV0FHVUFjZ0J6QUdrQWJ3QnVBQ0FBTWdBdUFEQkRhR1ZqYTJKdmVBQkRBR2dBWlFCakFHc0FZZ0J2QUhoRGFHVmphMkp2ZUFCREFHZ0FaUUJqQUdzQVlnQnZBSGhTWldkMWJHRnlBRklBWlFCbkFIVUFiQUJoQUhKRGFHVmphMkp2ZUFCREFHZ0FaUUJqQUdzQVlnQnZBSGhHYjI1MElHZGxibVZ5WVhSbFpDQmllU0JKWTI5TmIyOXVMZ0JHQUc4QWJnQjBBQ0FBWndCbEFHNEFaUUJ5QUdFQWRBQmxBR1FBSUFCaUFIa0FJQUJKQUdNQWJ3Qk5BRzhBYndCdUFDNEFBQUFEQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQSkgZm9ybWF0KCd0cnVldHlwZScpO1xufVxuLyogQ2hlY2ttYXJrICovXG4udWkuY2hlY2tib3ggbGFiZWw6YWZ0ZXIsXG4udWkuY2hlY2tib3ggLmJveDphZnRlciB7XG4gIGZvbnQtZmFtaWx5OiAnQ2hlY2tib3gnO1xufVxuLyogQ2hlY2tlZCAqL1xuLnVpLmNoZWNrYm94IGlucHV0OmNoZWNrZWQgfiAuYm94OmFmdGVyLFxuLnVpLmNoZWNrYm94IGlucHV0OmNoZWNrZWQgfiBsYWJlbDphZnRlciB7XG4gIGNvbnRlbnQ6ICdcXGU4MDAnO1xufVxuLyogSW5kZXRlcm1pbmF0ZSAqL1xuLnVpLmNoZWNrYm94IGlucHV0OmluZGV0ZXJtaW5hdGUgfiAuYm94OmFmdGVyLFxuLnVpLmNoZWNrYm94IGlucHV0OmluZGV0ZXJtaW5hdGUgfiBsYWJlbDphZnRlciB7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgY29udGVudDogJ1xcZTgwMSc7XG59XG4vKiAgVVRGIFJlZmVyZW5jZVxuLmNoZWNrOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4MDAnOyB9XG4uZGFzaDpiZWZvcmUgIHsgY29udGVudDogJ1xcZTgwMSc7IH1cbi5wbHVzOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4MDInOyB9XG4qL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgT3ZlcnJpZGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyohXG4gKiAjIFNlbWFudGljIFVJIC0gRGltbWVyXG4gKiBodHRwOi8vZ2l0aHViLmNvbS9zZW1hbnRpYy1vcmcvc2VtYW50aWMtdWkvXG4gKlxuICpcbiAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZVxuICogaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVFxuICpcbiAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLypcblxu4paI4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWXICDilojilojilZfilojilojilojilojilojilojilojilZfilojilojilojilZcgICDilojilojilojilZfilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZdcbuKVmuKVkOKVkOKWiOKWiOKVlOKVkOKVkOKVneKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWd4paI4paI4paI4paI4pWXIOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVnVxuICAg4paI4paI4pWRICAg4paI4paI4paI4paI4paI4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilZTilojilojilojilojilZTilojilojilZHilojilojilojilojilojilZcgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl1xuICAg4paI4paI4pWRICAg4paI4paI4pWU4pWQ4pWQ4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilojilojilZHilZrilojilojilZTilZ3ilojilojilZHilojilojilZTilZDilZDilZ0gIOKVmuKVkOKVkOKVkOKVkOKWiOKWiOKVkVxuICAg4paI4paI4pWRICAg4paI4paI4pWRICDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilZEg4pWa4pWQ4pWdIOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkVxuICAg4pWa4pWQ4pWdICAg4pWa4pWQ4pWdICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZ0gICAgIOKVmuKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVnVxuXG4qL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgVGhlbWUgU2VsZWN0aW9uXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogVG8gb3ZlcnJpZGUgYSB0aGVtZSBmb3IgYW4gaW5kaXZpZHVhbCBlbGVtZW50XG4gICBzcGVjaWZ5IHRoZW1lIG5hbWUgYmVsb3dcbiovXG4vKiBHbG9iYWwgKi9cbi8qIEVsZW1lbnRzICovXG4vKiBDb2xsZWN0aW9ucyAqL1xuLyogTW9kdWxlcyAqL1xuLyogVmlld3MgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBGb2xkZXJzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogUGF0aCB0byB0aGVtZSBwYWNrYWdlcyAqL1xuLyogUGF0aCB0byBzaXRlIG92ZXJyaWRlIGZvbGRlciAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIEltcG9ydCBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIEltcG9ydCBEaXJlY3RpdmVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBUaGVtZVxuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICBTaXRlIFZhcmlhYmxlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERlZmF1bHQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZG9ycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBQYWNrYWdlZCBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kb3JzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIENvbXBvbmVudCdzIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRvcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogU2l0ZSB0aGVtZSBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgVXNlciBHbG9iYWwgVmFyaWFibGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogbWFyc28gY29sb3JzICovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gQ29tcG9uZW50IFZhcmlhYmxlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERlZmF1bHQgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBEaW1tZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBIaWRkZW4gKERlZmF1bHQpICovXG4vKiBWaXNpYmxlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgVHlwZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBhZ2UgRGltbWVyKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgVmFyaWF0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qIFNpbXBsZSAqL1xuLyogUGFja2FnZWQgVGhlbWUgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBEaW1tZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBIaWRkZW4gKERlZmF1bHQpICovXG4vKiBWaXNpYmxlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgVHlwZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBhZ2UgRGltbWVyKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgVmFyaWF0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qIFNpbXBsZSAqL1xuLyogU2l0ZSBUaGVtZSAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICBVc2VyIFZhcmlhYmxlIE92ZXJyaWRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgTWl4LWluc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgT3ZlcnJpZGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEVuZCBDb25maWcgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBEaW1tZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4uZGltbWFibGU6bm90KGJvZHkpIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuLnVpLmRpbW1lciB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwZW0gIWltcG9ydGFudDtcbiAgbGVmdDogMGVtICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgcGFkZGluZzogMWVtO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODUpO1xuICBvcGFjaXR5OiAwO1xuICBsaW5lLWhlaWdodDogMTtcbiAgYW5pbWF0aW9uLWZpbGwtbW9kZTogYm90aDtcbiAgYW5pbWF0aW9uLWR1cmF0aW9uOiAwLjVzO1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuNXMgbGluZWFyO1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gIHdpbGwtY2hhbmdlOiBvcGFjaXR5O1xuICB6LWluZGV4OiAxMDAwO1xufVxuLyogRGltbWVyIENvbnRlbnQgKi9cbi51aS5kaW1tZXIgPiAuY29udGVudCB7XG4gIHVzZXItc2VsZWN0OiB0ZXh0O1xuICBjb2xvcjogI2ZmZmZmZjtcbn1cbi8qIExvb3NlIENvdXBsaW5nICovXG4udWkuc2VnbWVudCA+IC51aS5kaW1tZXIge1xuICBib3JkZXItcmFkaXVzOiBpbmhlcml0ICFpbXBvcnRhbnQ7XG59XG4vKiBTY3JvbGxiYXJzICovXG4udWkuZGltbWVyOm5vdCguaW52ZXJ0ZWQpOjotd2Via2l0LXNjcm9sbGJhci10cmFjayB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKTtcbn1cbi51aS5kaW1tZXI6bm90KC5pbnZlcnRlZCk6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjI1KTtcbn1cbi51aS5kaW1tZXI6bm90KC5pbnZlcnRlZCk6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iOndpbmRvdy1pbmFjdGl2ZSB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSk7XG59XG4udWkuZGltbWVyOm5vdCguaW52ZXJ0ZWQpOjotd2Via2l0LXNjcm9sbGJhci10aHVtYjpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4zNSk7XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogQW5pbWF0aW5nICovXG4uYW5pbWF0aW5nLmRpbW1hYmxlOm5vdChib2R5KSxcbi5kaW1tZWQuZGltbWFibGU6bm90KGJvZHkpIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cbi8qIEFuaW1hdGluZyAvIEFjdGl2ZSAvIFZpc2libGUgKi9cbi5kaW1tZWQuZGltbWFibGUgPiAudWkuYW5pbWF0aW5nLmRpbW1lcixcbi5kaW1tZWQuZGltbWFibGUgPiAudWkudmlzaWJsZS5kaW1tZXIsXG4udWkuYWN0aXZlLmRpbW1lciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIG9wYWNpdHk6IDE7XG59XG4vKiBEaXNhYmxlZCAqL1xuLnVpLmRpc2FibGVkLmRpbW1lciB7XG4gIHdpZHRoOiAwICFpbXBvcnRhbnQ7XG4gIGhlaWdodDogMCAhaW1wb3J0YW50O1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgVmFyaWF0aW9uc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBBbGlnbm1lbnRcbi0tLS0tLS0tLS0tLS0tLSovXG4udWlbY2xhc3MqPVwidG9wIGFsaWduZWRcIl0uZGltbWVyIHtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xufVxuLnVpW2NsYXNzKj1cImJvdHRvbSBhbGlnbmVkXCJdLmRpbW1lciB7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLnBhZ2UuZGltbWVyIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0cmFuc2Zvcm0tc3R5bGU6ICcnO1xuICBwZXJzcGVjdGl2ZTogMjAwMHB4O1xuICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXIgY2VudGVyO1xufVxuYm9keS5hbmltYXRpbmcuaW4uZGltbWFibGUsXG5ib2R5LmRpbW1lZC5kaW1tYWJsZSB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5ib2R5LmRpbW1hYmxlID4gLmRpbW1lciB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBCbHVycmluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi5ibHVycmluZy5kaW1tYWJsZSA+IDpub3QoLmRpbW1lcikge1xuICBmaWx0ZXI6IGJsdXIoMHB4KSBncmF5c2NhbGUoMCk7XG4gIHRyYW5zaXRpb246IDgwMG1zIGZpbHRlciBlYXNlO1xufVxuLmJsdXJyaW5nLmRpbW1lZC5kaW1tYWJsZSA+IDpub3QoLmRpbW1lcikge1xuICBmaWx0ZXI6IGJsdXIoNXB4KSBncmF5c2NhbGUoMC43KTtcbn1cbi8qIERpbW1lciBDb2xvciAqL1xuLmJsdXJyaW5nLmRpbW1hYmxlID4gLmRpbW1lciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC42KTtcbn1cbi5ibHVycmluZy5kaW1tYWJsZSA+IC5pbnZlcnRlZC5kaW1tZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNik7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgQWxpZ25lZFxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5kaW1tZXIgPiAudG9wLmFsaWduZWQuY29udGVudCA+ICoge1xuICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xufVxuLnVpLmRpbW1lciA+IC5ib3R0b20uYWxpZ25lZC5jb250ZW50ID4gKiB7XG4gIHZlcnRpY2FsLWFsaWduOiBib3R0b207XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgSW52ZXJ0ZWRcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuaW52ZXJ0ZWQuZGltbWVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjg1KTtcbn1cbi51aS5pbnZlcnRlZC5kaW1tZXIgPiAuY29udGVudCA+ICoge1xuICBjb2xvcjogI2ZmZmZmZjtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgU2ltcGxlXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlzcGxheXMgd2l0aG91dCBqYXZhc2NyaXB0ICovXG4udWkuc2ltcGxlLmRpbW1lciB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBvcGFjaXR5OiAxO1xuICB3aWR0aDogMCU7XG4gIGhlaWdodDogMCU7XG4gIHotaW5kZXg6IC0xMDA7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMCk7XG59XG4uZGltbWVkLmRpbW1hYmxlID4gLnVpLnNpbXBsZS5kaW1tZXIge1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgb3BhY2l0eTogMTtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg1KTtcbiAgei1pbmRleDogMTtcbn1cbi51aS5zaW1wbGUuaW52ZXJ0ZWQuZGltbWVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwKTtcbn1cbi5kaW1tZWQuZGltbWFibGUgPiAudWkuc2ltcGxlLmludmVydGVkLmRpbW1lciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44NSk7XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgVGhlbWUgT3ZlcnJpZGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgVXNlciBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiFcbiAqICMgU2VtYW50aWMgVUkgLSBEcm9wZG93blxuICogaHR0cDovL2dpdGh1Yi5jb20vc2VtYW50aWMtb3JnL3NlbWFudGljLXVpL1xuICpcbiAqXG4gKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2VcbiAqIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVRcbiAqXG4gKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qXG5cbuKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVlyAg4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4pWXICAg4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWXXG7ilZrilZDilZDilojilojilZTilZDilZDilZ3ilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKWiOKWiOKVlyDilojilojilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilZTilZDilZDilZDilZDilZ1cbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4pWU4paI4paI4paI4paI4pWU4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilojilojilojilojilojilZdcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVlOKVkOKVkOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4paI4paI4pWR4pWa4paI4paI4pWU4pWd4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilZrilZDilZDilZDilZDilojilojilZFcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWRIOKVmuKVkOKVnSDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZFcbiAgIOKVmuKVkOKVnSAgIOKVmuKVkOKVnSAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWdICAgICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ1cblxuKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIFRoZW1lIFNlbGVjdGlvblxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFRvIG92ZXJyaWRlIGEgdGhlbWUgZm9yIGFuIGluZGl2aWR1YWwgZWxlbWVudFxuICAgc3BlY2lmeSB0aGVtZSBuYW1lIGJlbG93XG4qL1xuLyogR2xvYmFsICovXG4vKiBFbGVtZW50cyAqL1xuLyogQ29sbGVjdGlvbnMgKi9cbi8qIE1vZHVsZXMgKi9cbi8qIFZpZXdzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgRm9sZGVyc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFBhdGggdG8gdGhlbWUgcGFja2FnZXMgKi9cbi8qIFBhdGggdG8gc2l0ZSBvdmVycmlkZSBmb2xkZXIgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBJbXBvcnQgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBJbXBvcnQgRGlyZWN0aXZlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgVGhlbWVcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgU2l0ZSBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0IHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRvcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogUGFja2FnZWQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZG9ycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBDb21wb25lbnQncyBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kb3JzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFNpdGUgdGhlbWUgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgIFVzZXIgR2xvYmFsIFZhcmlhYmxlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIG1hcnNvIGNvbG9ycyAqL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuIENvbXBvbmVudCBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0ICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgRHJvcGRvd25cbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbGVtZW50XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBDb250ZW50XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJY29uICovXG4vKiBDdXJyZW50IFRleHQgKi9cbi8qIE1lbnUgKi9cbi8qIFRleHQgKi9cbi8qIE1lbnUgSXRlbSAqL1xuLyogU3ViIE1lbnUgKi9cbi8qIE1lbnUgSGVhZGVyICovXG4vKiBNZW51IERpdmlkZXIgKi9cbi8qIE1lbnUgSW5wdXQgKi9cbi8qIE1lbnUgSW1hZ2UgKi9cbi8qIEl0ZW0gU3ViLUVsZW1lbnQgKi9cbi8qIFN1Yi1NZW51IERyb3Bkb3duIEljb24gKi9cbi8qIERlc2NyaXB0aW9uICovXG4vKiBNZXNzYWdlICovXG4vKiBGbG9hdGVkIENvbnRlbnQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBUeXBlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS1cbiAgIFNlbGVjdGlvblxuLS0tLS0tLS0tLS0tLS0qL1xuLyogPHNlbGVjdD4gKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qIERlcml2ZWQgKi9cbi8qIDFweCAvIGVtIHNpemUgKi9cbi8qIEhvdmVyICovXG4vKiBGb2N1cyAqL1xuLyogVmlzaWJsZSAqL1xuLyogVmlzaWJsZSBIb3ZlciAqL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgICBTZWFyY2hcbi0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlYXJjaCBTZWxlY3Rpb24gKi9cbi8qIElubGluZSAqL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgIE11bHRpcGxlXG4tLS0tLS0tLS0tLS0tLSovXG4vKiBTcGxpdCBBY3R1YWwgUGFkZGluZyBCZXR3ZWVuIENoaWxkIGFuZCBQYXJlbnQgKGFsbG93cyBmb3IgbGFiZWwgc3BhY2luZykgKi9cbi8qIENoaWxkIEVsZW1lbnRzICovXG4vKiBEcm9wZG93biBJY29uICovXG4vKiBTZWxlY3Rpb24gTGFiZWwgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIFN0YXRlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSG92ZXJlZCAqL1xuLyogRGVmYXVsdCBUZXh0ICovXG4vKiBMb2FkaW5nICovXG4vKiBBY3RpdmUgTWVudSBJdGVtICovXG4vKiBTZWxlY3RlZCAqL1xuLyogRXJyb3IgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgVmFyaWF0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2Nyb2xsaW5nICovXG4vKiAwcHggLyBlbSBzaXplICovXG4vKiBVcHdhcmQgKi9cbi8qIEZseW91dCBEaXJlY3Rpb24gKi9cbi8qIExlZnQgKi9cbi8qIFNpbXBsZSAqL1xuLyogRmxvYXRpbmcgKi9cbi8qIFBvaW50aW5nICovXG4vKiBQb2ludGluZyBVcHdhcmQgKi9cbi8qIFBhY2thZ2VkIFRoZW1lICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgRHJvcGRvd25cbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbGVtZW50XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBDb250ZW50XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJY29uICovXG4vKiBDdXJyZW50IFRleHQgKi9cbi8qIE1lbnUgKi9cbi8qIFRleHQgKi9cbi8qIE1lbnUgSXRlbSAqL1xuLyogU3ViIE1lbnUgKi9cbi8qIE1lbnUgSGVhZGVyICovXG4vKiBNZW51IERpdmlkZXIgKi9cbi8qIE1lbnUgSW5wdXQgKi9cbi8qIE1lbnUgSW1hZ2UgKi9cbi8qIEl0ZW0gU3ViLUVsZW1lbnQgKi9cbi8qIFN1Yi1NZW51IERyb3Bkb3duIEljb24gKi9cbi8qIERlc2NyaXB0aW9uICovXG4vKiBNZXNzYWdlICovXG4vKiBGbG9hdGVkIENvbnRlbnQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBUeXBlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS1cbiAgIFNlbGVjdGlvblxuLS0tLS0tLS0tLS0tLS0qL1xuLyogPHNlbGVjdD4gKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qIERlcml2ZWQgKi9cbi8qIDFweCAvIGVtIHNpemUgKi9cbi8qIEhvdmVyICovXG4vKiBGb2N1cyAqL1xuLyogVmlzaWJsZSAqL1xuLyogVmlzaWJsZSBIb3ZlciAqL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgICBTZWFyY2hcbi0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlYXJjaCBTZWxlY3Rpb24gKi9cbi8qIElubGluZSAqL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgIE11bHRpcGxlXG4tLS0tLS0tLS0tLS0tLSovXG4vKiBTcGxpdCBBY3R1YWwgUGFkZGluZyBCZXR3ZWVuIENoaWxkIGFuZCBQYXJlbnQgKGFsbG93cyBmb3IgbGFiZWwgc3BhY2luZykgKi9cbi8qIENoaWxkIEVsZW1lbnRzICovXG4vKiBEcm9wZG93biBJY29uICovXG4vKiBTZWxlY3Rpb24gTGFiZWwgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIFN0YXRlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSG92ZXJlZCAqL1xuLyogRGVmYXVsdCBUZXh0ICovXG4vKiBMb2FkaW5nICovXG4vKiBBY3RpdmUgTWVudSBJdGVtICovXG4vKiBTZWxlY3RlZCAqL1xuLyogRXJyb3IgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgVmFyaWF0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2Nyb2xsaW5nICovXG4vKiAwcHggLyBlbSBzaXplICovXG4vKiBVcHdhcmQgKi9cbi8qIEZseW91dCBEaXJlY3Rpb24gKi9cbi8qIExlZnQgKi9cbi8qIFNpbXBsZSAqL1xuLyogRmxvYXRpbmcgKi9cbi8qIFBvaW50aW5nICovXG4vKiBQb2ludGluZyBVcHdhcmQgKi9cbi8qIFNpdGUgVGhlbWUgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgVXNlciBWYXJpYWJsZSBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIE1peC1pbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE92ZXJyaWRlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBFbmQgQ29uZmlnICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgRHJvcGRvd25cbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4udWkuZHJvcGRvd24ge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBvdXRsaW5lOiBub25lO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICB0cmFuc2l0aW9uOiBib3gtc2hhZG93IDAuMXMgZWFzZSwgd2lkdGggMC4xcyBlYXNlO1xuICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMCk7XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgQ29udGVudFxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgIE1lbnVcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuZHJvcGRvd24gLm1lbnUge1xuICBjdXJzb3I6IGF1dG87XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgZGlzcGxheTogbm9uZTtcbiAgb3V0bGluZTogbm9uZTtcbiAgdG9wOiAxMDAlO1xuICBtaW4td2lkdGg6IG1heC1jb250ZW50O1xuICBtYXJnaW46IDBlbTtcbiAgcGFkZGluZzogMGVtIDBlbTtcbiAgYmFja2dyb3VuZDogI0ZGRkZGRjtcbiAgZm9udC1zaXplOiAxZW07XG4gIHRleHQtc2hhZG93OiBub25lO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBib3gtc2hhZG93OiAwcHggMnB4IDNweCAwcHggcmdiYSgzNCwgMzYsIDM4LCAwLjE1KTtcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgzNCwgMzYsIDM4LCAwLjE1KTtcbiAgYm9yZGVyLXJhZGl1czogMC40cmVtO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMXMgZWFzZTtcbiAgei1pbmRleDogMTE7XG4gIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG59XG4udWkuZHJvcGRvd24gLm1lbnUgPiAqIHtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgSGlkZGVuIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmRyb3Bkb3duID4gaW5wdXQ6bm90KC5zZWFyY2gpOmZpcnN0LWNoaWxkLFxuLnVpLmRyb3Bkb3duID4gc2VsZWN0IHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xufVxuLyotLS0tLS0tLS0tLS0tLVxuIERyb3Bkb3duIEljb25cbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuZHJvcGRvd24gPiAuZHJvcGRvd24uaWNvbiB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IGF1dG87XG4gIGZvbnQtc2l6ZTogMS4yZW07XG4gIG1hcmdpbjogMGVtIDBlbSAwZW0gMWVtO1xufVxuLnVpLmRyb3Bkb3duIC5tZW51ID4gLml0ZW0gLmRyb3Bkb3duLmljb24ge1xuICB3aWR0aDogYXV0bztcbiAgZmxvYXQ6IHJpZ2h0O1xuICBtYXJnaW46IDBlbSAwZW0gMGVtIDFlbTtcbn1cbi51aS5kcm9wZG93biAubWVudSA+IC5pdGVtIC5kcm9wZG93bi5pY29uICsgLnRleHQge1xuICBtYXJnaW4tcmlnaHQ6IDFlbTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgIFRleHRcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuZHJvcGRvd24gPiAudGV4dCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdHJhbnNpdGlvbjogbm9uZTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBNZW51IEl0ZW1cbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuZHJvcGRvd24gLm1lbnUgPiAuaXRlbSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBkaXNwbGF5OiBibG9jaztcbiAgYm9yZGVyOiBub25lO1xuICBoZWlnaHQ6IGF1dG87XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIGJvcmRlci10b3A6IG5vbmU7XG4gIGxpbmUtaGVpZ2h0OiAxZW07XG4gIGNvbG9yOiAjMzMzMzMzO1xuICBwYWRkaW5nOiAwLjhyZW0gMS4xcmVtICFpbXBvcnRhbnQ7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG4gIC13ZWJraXQtdG91Y2gtY2FsbG91dDogbm9uZTtcbn1cbi51aS5kcm9wZG93biAubWVudSA+IC5pdGVtOmZpcnN0LWNoaWxkIHtcbiAgYm9yZGVyLXRvcC13aWR0aDogMHB4O1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICBGbG9hdGVkIENvbnRlbnRcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuZHJvcGRvd24gPiAudGV4dCA+IFtjbGFzcyo9XCJyaWdodCBmbG9hdGVkXCJdLFxuLnVpLmRyb3Bkb3duIC5tZW51IC5pdGVtID4gW2NsYXNzKj1cInJpZ2h0IGZsb2F0ZWRcIl0ge1xuICBmbG9hdDogcmlnaHQgIWltcG9ydGFudDtcbiAgbWFyZ2luLXJpZ2h0OiAwZW0gIWltcG9ydGFudDtcbiAgbWFyZ2luLWxlZnQ6IDFlbSAhaW1wb3J0YW50O1xufVxuLnVpLmRyb3Bkb3duID4gLnRleHQgPiBbY2xhc3MqPVwibGVmdCBmbG9hdGVkXCJdLFxuLnVpLmRyb3Bkb3duIC5tZW51IC5pdGVtID4gW2NsYXNzKj1cImxlZnQgZmxvYXRlZFwiXSB7XG4gIGZsb2F0OiBsZWZ0ICFpbXBvcnRhbnQ7XG4gIG1hcmdpbi1sZWZ0OiAwZW0gIWltcG9ydGFudDtcbiAgbWFyZ2luLXJpZ2h0OiAxZW0gIWltcG9ydGFudDtcbn1cbi51aS5kcm9wZG93biAubWVudSAuaXRlbSA+IC5pY29uLmZsb2F0ZWQsXG4udWkuZHJvcGRvd24gLm1lbnUgLml0ZW0gPiAuZmxhZy5mbG9hdGVkLFxuLnVpLmRyb3Bkb3duIC5tZW51IC5pdGVtID4gLmltYWdlLmZsb2F0ZWQsXG4udWkuZHJvcGRvd24gLm1lbnUgLml0ZW0gPiBpbWcuZmxvYXRlZCB7XG4gIG1hcmdpbi10b3A6IDBlbTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgTWVudSBEaXZpZGVyXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmRyb3Bkb3duIC5tZW51ID4gLmhlYWRlciB7XG4gIG1hcmdpbjogMXJlbSAwcmVtIDAuNzVyZW07XG4gIHBhZGRpbmc6IDBlbSAxLjFyZW07XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODUpO1xuICBmb250LXNpemU6IDEuMWVtO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbn1cbi51aS5kcm9wZG93biAubWVudSA+IC5kaXZpZGVyIHtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHJnYmEoMzQsIDM2LCAzOCwgMC4xKTtcbiAgaGVpZ2h0OiAwZW07XG4gIG1hcmdpbjogMC41ZW0gMGVtO1xufVxuLnVpLmRyb3Bkb3duIC5tZW51ID4gLmlucHV0IHtcbiAgd2lkdGg6IGF1dG87XG4gIGRpc3BsYXk6IGZsZXg7XG4gIG1hcmdpbjogMS4xcmVtIDAuOHJlbTtcbiAgbWluLXdpZHRoOiAxMHJlbTtcbn1cbi51aS5kcm9wZG93biAubWVudSA+IC5oZWFkZXIgKyAuaW5wdXQge1xuICBtYXJnaW4tdG9wOiAwZW07XG59XG4udWkuZHJvcGRvd24gLm1lbnUgPiAuaW5wdXQ6bm90KC50cmFuc3BhcmVudCkgaW5wdXQge1xuICBwYWRkaW5nOiAwLjVlbSAxLjRlbTtcbn1cbi51aS5kcm9wZG93biAubWVudSA+IC5pbnB1dDpub3QoLnRyYW5zcGFyZW50KSAuYnV0dG9uLFxuLnVpLmRyb3Bkb3duIC5tZW51ID4gLmlucHV0Om5vdCgudHJhbnNwYXJlbnQpIC5pY29uLFxuLnVpLmRyb3Bkb3duIC5tZW51ID4gLmlucHV0Om5vdCgudHJhbnNwYXJlbnQpIC5sYWJlbCB7XG4gIHBhZGRpbmctdG9wOiAwLjVlbTtcbiAgcGFkZGluZy1ib3R0b206IDAuNWVtO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLVxuICBJdGVtIERlc2NyaXB0aW9uXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5kcm9wZG93biA+IC50ZXh0ID4gLmRlc2NyaXB0aW9uLFxuLnVpLmRyb3Bkb3duIC5tZW51ID4gLml0ZW0gPiAuZGVzY3JpcHRpb24ge1xuICBmbG9hdDogcmlnaHQ7XG4gIG1hcmdpbjogMGVtIDBlbSAwZW0gMWVtO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjQpO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIE1lc3NhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmRyb3Bkb3duIC5tZW51ID4gLm1lc3NhZ2Uge1xuICBwYWRkaW5nOiAwLjhyZW0gMS4xcmVtO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xufVxuLnVpLmRyb3Bkb3duIC5tZW51ID4gLm1lc3NhZ2U6bm90KC51aSkge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjQpO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgIFN1YiBNZW51XG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmRyb3Bkb3duIC5tZW51IC5tZW51IHtcbiAgdG9wOiAwJSAhaW1wb3J0YW50O1xuICBsZWZ0OiAxMDAlICFpbXBvcnRhbnQ7XG4gIHJpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG4gIG1hcmdpbjogMGVtIDBlbSAwZW0gLTAuNWVtICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDAuNHJlbSAhaW1wb3J0YW50O1xuICB6LWluZGV4OiAyMSAhaW1wb3J0YW50O1xufVxuLyogSGlkZSBBcnJvdyAqL1xuLnVpLmRyb3Bkb3duIC5tZW51IC5tZW51OmFmdGVyIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIFN1YiBFbGVtZW50c1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEljb25zIC8gRmxhZ3MgLyBMYWJlbHMgLyBJbWFnZSAqL1xuLnVpLmRyb3Bkb3duID4gLnRleHQgPiAuaWNvbixcbi51aS5kcm9wZG93biA+IC50ZXh0ID4gLmxhYmVsLFxuLnVpLmRyb3Bkb3duID4gLnRleHQgPiAuZmxhZyxcbi51aS5kcm9wZG93biA+IC50ZXh0ID4gaW1nLFxuLnVpLmRyb3Bkb3duID4gLnRleHQgPiAuaW1hZ2Uge1xuICBtYXJnaW4tdG9wOiAwZW07XG59XG4udWkuZHJvcGRvd24gLm1lbnUgPiAuaXRlbSA+IC5pY29uLFxuLnVpLmRyb3Bkb3duIC5tZW51ID4gLml0ZW0gPiAubGFiZWwsXG4udWkuZHJvcGRvd24gLm1lbnUgPiAuaXRlbSA+IC5mbGFnLFxuLnVpLmRyb3Bkb3duIC5tZW51ID4gLml0ZW0gPiAuaW1hZ2UsXG4udWkuZHJvcGRvd24gLm1lbnUgPiAuaXRlbSA+IGltZyB7XG4gIG1hcmdpbi10b3A6IDBlbTtcbn1cbi51aS5kcm9wZG93biA+IC50ZXh0ID4gLmljb24sXG4udWkuZHJvcGRvd24gPiAudGV4dCA+IC5sYWJlbCxcbi51aS5kcm9wZG93biA+IC50ZXh0ID4gLmZsYWcsXG4udWkuZHJvcGRvd24gPiAudGV4dCA+IGltZyxcbi51aS5kcm9wZG93biA+IC50ZXh0ID4gLmltYWdlLFxuLnVpLmRyb3Bkb3duIC5tZW51ID4gLml0ZW0gPiAuaWNvbixcbi51aS5kcm9wZG93biAubWVudSA+IC5pdGVtID4gLmxhYmVsLFxuLnVpLmRyb3Bkb3duIC5tZW51ID4gLml0ZW0gPiAuZmxhZyxcbi51aS5kcm9wZG93biAubWVudSA+IC5pdGVtID4gLmltYWdlLFxuLnVpLmRyb3Bkb3duIC5tZW51ID4gLml0ZW0gPiBpbWcge1xuICBtYXJnaW4tbGVmdDogMGVtO1xuICBmbG9hdDogbm9uZTtcbiAgbWFyZ2luLXJpZ2h0OiAwLjhyZW07XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIEltYWdlXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmRyb3Bkb3duID4gLnRleHQgPiBpbWcsXG4udWkuZHJvcGRvd24gPiAudGV4dCA+IC5pbWFnZSxcbi51aS5kcm9wZG93biAubWVudSA+IC5pdGVtID4gLmltYWdlLFxuLnVpLmRyb3Bkb3duIC5tZW51ID4gLml0ZW0gPiBpbWcge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIHdpZHRoOiBhdXRvO1xuICBtYXgtaGVpZ2h0OiAyZW07XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgQ291cGxpbmdcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgICBNZW51XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogUmVtb3ZlIE1lbnUgSXRlbSBEaXZpZGVyICovXG4udWkuZHJvcGRvd24gLnVpLm1lbnUgPiAuaXRlbTpiZWZvcmUsXG4udWkubWVudSAudWkuZHJvcGRvd24gLm1lbnUgPiAuaXRlbTpiZWZvcmUge1xuICBkaXNwbGF5OiBub25lO1xufVxuLyogUHJldmVudCBNZW51IEl0ZW0gQm9yZGVyICovXG4udWkubWVudSAudWkuZHJvcGRvd24gLm1lbnUgLmFjdGl2ZS5pdGVtIHtcbiAgYm9yZGVyLWxlZnQ6IG5vbmU7XG59XG4vKiBBdXRvbWF0aWNhbGx5IGZsb2F0IGRyb3Bkb3duIG1lbnUgcmlnaHQgb24gbGFzdCBtZW51IGl0ZW0gKi9cbi51aS5tZW51IC5yaWdodC5tZW51IC5kcm9wZG93bjpsYXN0LWNoaWxkIC5tZW51LFxuLnVpLm1lbnUgLnJpZ2h0LmRyb3Bkb3duLml0ZW0gLm1lbnUsXG4udWkuYnV0dG9ucyA+IC51aS5kcm9wZG93bjpsYXN0LWNoaWxkIC5tZW51IHtcbiAgbGVmdDogYXV0bztcbiAgcmlnaHQ6IDBlbTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgIExhYmVsXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogRHJvcGRvd24gTWVudSAqL1xuLnVpLmxhYmVsLmRyb3Bkb3duIC5tZW51IHtcbiAgbWluLXdpZHRoOiAxMDAlO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBCdXR0b25cbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBObyBNYXJnaW4gT24gSWNvbiBCdXR0b24gKi9cbi51aS5kcm9wZG93bi5pY29uLmJ1dHRvbiA+IC5kcm9wZG93bi5pY29uIHtcbiAgbWFyZ2luOiAwZW07XG59XG4udWkuYnV0dG9uLmRyb3Bkb3duIC5tZW51IHtcbiAgbWluLXdpZHRoOiAxMDAlO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICAgVHlwZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgU2VsZWN0aW9uXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlzcGxheXMgbGlrZSBhIHNlbGVjdCBib3ggKi9cbi51aS5zZWxlY3Rpb24uZHJvcGRvd24ge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHdvcmQtd3JhcDogYnJlYWstd29yZDtcbiAgbGluZS1oZWlnaHQ6IDFlbTtcbiAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcbiAgb3V0bGluZTogMDtcbiAgdHJhbnNmb3JtOiByb3RhdGVaKDBkZWcpO1xuICBtaW4td2lkdGg6IDE0ZW07XG4gIG1pbi1oZWlnaHQ6IDMuMzE0Mjg1NzFlbTtcbiAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwYWRkaW5nOiAxLjFlbSAyLjVlbSAxLjFlbSAxLjRlbTtcbiAgY29sb3I6ICMzMzMzMzM7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMzQsIDM2LCAzOCwgMC4xNSk7XG4gIGJvcmRlci1yYWRpdXM6IDAuNHJlbTtcbiAgdHJhbnNpdGlvbjogYm94LXNoYWRvdyAwLjFzIGVhc2UsIHdpZHRoIDAuMXMgZWFzZTtcbn1cbi51aS5zZWxlY3Rpb24uZHJvcGRvd24udmlzaWJsZSxcbi51aS5zZWxlY3Rpb24uZHJvcGRvd24uYWN0aXZlIHtcbiAgei1pbmRleDogMTA7XG59XG5zZWxlY3QudWkuZHJvcGRvd24ge1xuICBoZWlnaHQ6IDM4cHg7XG4gIHBhZGRpbmc6IDAuNWVtO1xuICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpO1xuICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xufVxuLnVpLnNlbGVjdGlvbi5kcm9wZG93biA+IC5zZWFyY2guaWNvbixcbi51aS5zZWxlY3Rpb24uZHJvcGRvd24gPiAuZGVsZXRlLmljb24sXG4udWkuc2VsZWN0aW9uLmRyb3Bkb3duID4gLmRyb3Bkb3duLmljb24ge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IGF1dG87XG4gIGhlaWdodDogYXV0bztcbiAgbGluZS1oZWlnaHQ6IDEuMjE0Mjg1NzFlbTtcbiAgdG9wOiAxLjFlbTtcbiAgcmlnaHQ6IDEuNGVtO1xuICB6LWluZGV4OiAzO1xuICBtYXJnaW46IC0xLjFlbTtcbiAgcGFkZGluZzogMS4xZW07XG4gIG9wYWNpdHk6IDAuODtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjFzIGVhc2U7XG59XG4vKiBDb21wYWN0ICovXG4udWkuY29tcGFjdC5zZWxlY3Rpb24uZHJvcGRvd24ge1xuICBtaW4td2lkdGg6IDBweDtcbn1cbi8qICBTZWxlY3Rpb24gTWVudSAqL1xuLnVpLnNlbGVjdGlvbi5kcm9wZG93biAubWVudSB7XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgb3ZlcmZsb3cteTogYXV0bztcbiAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XG4gIGJvcmRlci10b3Atd2lkdGg6IDBweCAhaW1wb3J0YW50O1xuICB3aWR0aDogYXV0bztcbiAgb3V0bGluZTogbm9uZTtcbiAgbWFyZ2luOiAwcHggLTFweDtcbiAgbWluLXdpZHRoOiBjYWxjKDEwMCUgKyAycHgpO1xuICB3aWR0aDogY2FsYygxMDAlICsgMnB4KTtcbiAgYm9yZGVyLXJhZGl1czogMGVtIDBlbSAwLjRyZW0gMC40cmVtO1xuICBib3gtc2hhZG93OiAwcHggMnB4IDNweCAwcHggcmdiYSgzNCwgMzYsIDM4LCAwLjE1KTtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjFzIGVhc2U7XG59XG4udWkuc2VsZWN0aW9uLmRyb3Bkb3duIC5tZW51OmFmdGVyLFxuLnVpLnNlbGVjdGlvbi5kcm9wZG93biAubWVudTpiZWZvcmUge1xuICBkaXNwbGF5OiBub25lO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgIE1lc3NhZ2Vcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuc2VsZWN0aW9uLmRyb3Bkb3duIC5tZW51ID4gLm1lc3NhZ2Uge1xuICBwYWRkaW5nOiAwLjhyZW0gMS4xcmVtO1xufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAudWkuc2VsZWN0aW9uLmRyb3Bkb3duIC5tZW51IHtcbiAgICBtYXgtaGVpZ2h0OiA4LjFyZW07XG4gIH1cbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLnVpLnNlbGVjdGlvbi5kcm9wZG93biAubWVudSB7XG4gICAgbWF4LWhlaWdodDogMTAuOHJlbTtcbiAgfVxufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA5OTJweCkge1xuICAudWkuc2VsZWN0aW9uLmRyb3Bkb3duIC5tZW51IHtcbiAgICBtYXgtaGVpZ2h0OiAxNi4ycmVtO1xuICB9XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDE5MjBweCkge1xuICAudWkuc2VsZWN0aW9uLmRyb3Bkb3duIC5tZW51IHtcbiAgICBtYXgtaGVpZ2h0OiAyMS42cmVtO1xuICB9XG59XG4vKiBNZW51IEl0ZW0gKi9cbi51aS5zZWxlY3Rpb24uZHJvcGRvd24gLm1lbnUgPiAuaXRlbSB7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAjRkFGQUZBO1xuICBwYWRkaW5nOiAwLjhyZW0gMS4xcmVtICFpbXBvcnRhbnQ7XG4gIHdoaXRlLXNwYWNlOiBub3JtYWw7XG4gIHdvcmQtd3JhcDogbm9ybWFsO1xufVxuLyogVXNlciBJdGVtICovXG4udWkuc2VsZWN0aW9uLmRyb3Bkb3duIC5tZW51ID4gLmhpZGRlbi5hZGRpdGlvbi5pdGVtIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi8qIEhvdmVyICovXG4udWkuc2VsZWN0aW9uLmRyb3Bkb3duOmhvdmVyIHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDM0LCAzNiwgMzgsIDAuMzUpO1xuICBib3gtc2hhZG93OiBub25lO1xufVxuLyogQWN0aXZlICovXG4udWkuc2VsZWN0aW9uLmFjdGl2ZS5kcm9wZG93biB7XG4gIGJvcmRlci1jb2xvcjogIzk2QzhEQTtcbiAgYm94LXNoYWRvdzogMHB4IDJweCAzcHggMHB4IHJnYmEoMzQsIDM2LCAzOCwgMC4xNSk7XG59XG4udWkuc2VsZWN0aW9uLmFjdGl2ZS5kcm9wZG93biAubWVudSB7XG4gIGJvcmRlci1jb2xvcjogIzk2QzhEQTtcbiAgYm94LXNoYWRvdzogMHB4IDJweCAzcHggMHB4IHJnYmEoMzQsIDM2LCAzOCwgMC4xNSk7XG59XG4vKiBGb2N1cyAqL1xuLnVpLnNlbGVjdGlvbi5kcm9wZG93bjpmb2N1cyB7XG4gIGJvcmRlci1jb2xvcjogIzk2QzhEQTtcbiAgYm94LXNoYWRvdzogbm9uZTtcbn1cbi51aS5zZWxlY3Rpb24uZHJvcGRvd246Zm9jdXMgLm1lbnUge1xuICBib3JkZXItY29sb3I6ICM5NkM4REE7XG4gIGJveC1zaGFkb3c6IDBweCAycHggM3B4IDBweCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpO1xufVxuLyogVmlzaWJsZSAqL1xuLnVpLnNlbGVjdGlvbi52aXNpYmxlLmRyb3Bkb3duID4gLnRleHQ6bm90KC5kZWZhdWx0KSB7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuOCk7XG59XG4vKiBWaXNpYmxlIEhvdmVyICovXG4udWkuc2VsZWN0aW9uLmFjdGl2ZS5kcm9wZG93bjpob3ZlciB7XG4gIGJvcmRlci1jb2xvcjogIzk2QzhEQTtcbiAgYm94LXNoYWRvdzogMHB4IDJweCAzcHggMHB4IHJnYmEoMzQsIDM2LCAzOCwgMC4xNSk7XG59XG4udWkuc2VsZWN0aW9uLmFjdGl2ZS5kcm9wZG93bjpob3ZlciAubWVudSB7XG4gIGJvcmRlci1jb2xvcjogIzk2QzhEQTtcbiAgYm94LXNoYWRvdzogMHB4IDJweCAzcHggMHB4IHJnYmEoMzQsIDM2LCAzOCwgMC4xNSk7XG59XG4vKiBEcm9wZG93biBJY29uICovXG4udWkuYWN0aXZlLnNlbGVjdGlvbi5kcm9wZG93biA+IC5kcm9wZG93bi5pY29uLFxuLnVpLnZpc2libGUuc2VsZWN0aW9uLmRyb3Bkb3duID4gLmRyb3Bkb3duLmljb24ge1xuICBvcGFjaXR5OiAxO1xuICB6LWluZGV4OiAzO1xufVxuLyogQ29ubmVjdGluZyBCb3JkZXIgKi9cbi51aS5hY3RpdmUuc2VsZWN0aW9uLmRyb3Bkb3duIHtcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMGVtICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwZW0gIWltcG9ydGFudDtcbn1cbi8qIEVtcHR5IENvbm5lY3RpbmcgQm9yZGVyICovXG4udWkuYWN0aXZlLmVtcHR5LnNlbGVjdGlvbi5kcm9wZG93biB7XG4gIGJvcmRlci1yYWRpdXM6IDAuNHJlbSAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG59XG4udWkuYWN0aXZlLmVtcHR5LnNlbGVjdGlvbi5kcm9wZG93biAubWVudSB7XG4gIGJvcmRlcjogbm9uZSAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICBTZWFyY2hhYmxlXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VhcmNoIFNlbGVjdGlvbiAqL1xuLnVpLnNlYXJjaC5kcm9wZG93biB7XG4gIG1pbi13aWR0aDogJyc7XG59XG4vKiBTZWFyY2ggRHJvcGRvd24gKi9cbi51aS5zZWFyY2guZHJvcGRvd24gPiBpbnB1dC5zZWFyY2gge1xuICBiYWNrZ3JvdW5kOiBub25lIHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gIGJvcmRlcjogbm9uZSAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gIGN1cnNvcjogdGV4dDtcbiAgdG9wOiAwZW07XG4gIGxlZnQ6IDFweDtcbiAgd2lkdGg6IDEwMCU7XG4gIG91dGxpbmU6IG5vbmU7XG4gIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwKTtcbiAgcGFkZGluZzogaW5oZXJpdDtcbn1cbi8qIFRleHQgTGF5ZXJpbmcgKi9cbi51aS5zZWFyY2guZHJvcGRvd24gPiBpbnB1dC5zZWFyY2gge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHotaW5kZXg6IDI7XG59XG4udWkuc2VhcmNoLmRyb3Bkb3duID4gLnRleHQge1xuICBjdXJzb3I6IHRleHQ7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbGVmdDogMXB4O1xuICB6LWluZGV4OiAzO1xufVxuLyogU2VhcmNoIFNlbGVjdGlvbiAqL1xuLnVpLnNlYXJjaC5zZWxlY3Rpb24uZHJvcGRvd24gPiBpbnB1dC5zZWFyY2gge1xuICBsaW5lLWhlaWdodDogMS4yMTQyODU3MWVtO1xuICBwYWRkaW5nOiAwLjk5Mjg1NzE0ZW0gMi41ZW0gMC45OTI4NTcxNGVtIDEuNGVtO1xufVxuLyogVXNlZCB0byBzaXplIG11bHRpIHNlbGVjdCBpbnB1dCB0byBjaGFyYWN0ZXIgd2lkdGggKi9cbi51aS5zZWFyY2guc2VsZWN0aW9uLmRyb3Bkb3duID4gc3Bhbi5zaXplciB7XG4gIGxpbmUtaGVpZ2h0OiAxLjIxNDI4NTcxZW07XG4gIHBhZGRpbmc6IDAuOTkyODU3MTRlbSAyLjVlbSAwLjk5Mjg1NzE0ZW0gMS40ZW07XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHdoaXRlLXNwYWNlOiBwcmU7XG59XG4vKiBBY3RpdmUvVmlzaWJsZSBTZWFyY2ggKi9cbi51aS5zZWFyY2guZHJvcGRvd24uYWN0aXZlID4gaW5wdXQuc2VhcmNoLFxuLnVpLnNlYXJjaC5kcm9wZG93bi52aXNpYmxlID4gaW5wdXQuc2VhcmNoIHtcbiAgY3Vyc29yOiBhdXRvO1xufVxuLnVpLnNlYXJjaC5kcm9wZG93bi5hY3RpdmUgPiAudGV4dCxcbi51aS5zZWFyY2guZHJvcGRvd24udmlzaWJsZSA+IC50ZXh0IHtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG4vKiBGaWx0ZXJlZCBUZXh0ICovXG4udWkuYWN0aXZlLnNlYXJjaC5kcm9wZG93biBpbnB1dC5zZWFyY2g6Zm9jdXMgKyAudGV4dCAuaWNvbixcbi51aS5hY3RpdmUuc2VhcmNoLmRyb3Bkb3duIGlucHV0LnNlYXJjaDpmb2N1cyArIC50ZXh0IC5mbGFnIHtcbiAgb3BhY2l0eTogMC40NTtcbn1cbi51aS5hY3RpdmUuc2VhcmNoLmRyb3Bkb3duIGlucHV0LnNlYXJjaDpmb2N1cyArIC50ZXh0IHtcbiAgY29sb3I6ICNhNmE2YTYgIWltcG9ydGFudDtcbn1cbi8qIFNlYXJjaCBNZW51ICovXG4udWkuc2VhcmNoLmRyb3Bkb3duIC5tZW51IHtcbiAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDtcbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgLnVpLnNlYXJjaC5kcm9wZG93biAubWVudSB7XG4gICAgbWF4LWhlaWdodDogOC4xcmVtO1xuICB9XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC51aS5zZWFyY2guZHJvcGRvd24gLm1lbnUge1xuICAgIG1heC1oZWlnaHQ6IDEwLjhyZW07XG4gIH1cbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogOTkycHgpIHtcbiAgLnVpLnNlYXJjaC5kcm9wZG93biAubWVudSB7XG4gICAgbWF4LWhlaWdodDogMTYuMnJlbTtcbiAgfVxufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxOTIwcHgpIHtcbiAgLnVpLnNlYXJjaC5kcm9wZG93biAubWVudSB7XG4gICAgbWF4LWhlaWdodDogMjEuNnJlbTtcbiAgfVxufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgIE11bHRpcGxlXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogTXVsdGlwbGUgU2VsZWN0aW9uICovXG4udWkubXVsdGlwbGUuZHJvcGRvd24ge1xuICBwYWRkaW5nOiAwLjMzMDk1MjM4ZW0gMi41ZW0gMC4zMzA5NTIzOGVtIDAuNWVtO1xufVxuLnVpLm11bHRpcGxlLmRyb3Bkb3duIC5tZW51IHtcbiAgY3Vyc29yOiBhdXRvO1xufVxuLyogTXVsdGlwbGUgU2VhcmNoIFNlbGVjdGlvbiAqL1xuLnVpLm11bHRpcGxlLnNlYXJjaC5kcm9wZG93bixcbi51aS5tdWx0aXBsZS5zZWFyY2guZHJvcGRvd24gPiBpbnB1dC5zZWFyY2gge1xuICBjdXJzb3I6IHRleHQ7XG59XG4vKiBTZWxlY3Rpb24gTGFiZWwgKi9cbi51aS5tdWx0aXBsZS5kcm9wZG93biA+IC5sYWJlbCB7XG4gIHVzZXItc2VsZWN0OiBub25lO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gIHdoaXRlLXNwYWNlOiBub3JtYWw7XG4gIGZvbnQtc2l6ZTogMWVtO1xuICBwYWRkaW5nOiAwLjVlbSAwLjhlbTtcbiAgbWFyZ2luOiAwLjJyZW0gMC40cmVtIDAuMnJlbSAwZW07XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpIGluc2V0O1xufVxuLyogRHJvcGRvd24gSWNvbiAqL1xuLnVpLm11bHRpcGxlLmRyb3Bkb3duIC5kcm9wZG93bi5pY29uIHtcbiAgbWFyZ2luOiAnJztcbiAgcGFkZGluZzogJyc7XG59XG4vKiBUZXh0ICovXG4udWkubXVsdGlwbGUuZHJvcGRvd24gPiAudGV4dCB7XG4gIHBvc2l0aW9uOiBzdGF0aWM7XG4gIHBhZGRpbmc6IDA7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgbWFyZ2luOiAwLjY2MTkwNDc2ZW0gMGVtIDAuNjYxOTA0NzZlbSAwLjllbTtcbiAgbGluZS1oZWlnaHQ6IDEuN2VtO1xufVxuLnVpLm11bHRpcGxlLmRyb3Bkb3duID4gLmxhYmVsIH4gaW5wdXQuc2VhcmNoIHtcbiAgbWFyZ2luLWxlZnQ6IDAuMmVtICFpbXBvcnRhbnQ7XG59XG4udWkubXVsdGlwbGUuZHJvcGRvd24gPiAubGFiZWwgfiAudGV4dCB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tXG4gIE11bHRpcGxlIFNlYXJjaFxuLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUHJvbXB0IFRleHQgKi9cbi51aS5tdWx0aXBsZS5zZWFyY2guZHJvcGRvd24gPiAudGV4dCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHBhZGRpbmc6IGluaGVyaXQ7XG4gIG1hcmdpbjogMC42NjE5MDQ3NmVtIDBlbSAwLjY2MTkwNDc2ZW0gMC45ZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjdlbTtcbn1cbi51aS5tdWx0aXBsZS5zZWFyY2guZHJvcGRvd24gPiAubGFiZWwgfiAudGV4dCB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4vKiBTZWFyY2ggKi9cbi51aS5tdWx0aXBsZS5zZWFyY2guZHJvcGRvd24gPiBpbnB1dC5zZWFyY2gge1xuICBwb3NpdGlvbjogc3RhdGljO1xuICBwYWRkaW5nOiAwO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIG1hcmdpbjogMC42NjE5MDQ3NmVtIDBlbSAwLjY2MTkwNDc2ZW0gMC45ZW07XG4gIHdpZHRoOiAyLjJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuN2VtO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBJbmxpbmVcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuaW5saW5lLmRyb3Bkb3duIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGNvbG9yOiBpbmhlcml0O1xufVxuLnVpLmlubGluZS5kcm9wZG93biAuZHJvcGRvd24uaWNvbiB7XG4gIG1hcmdpbjogMGVtIDAuN2VtIDBlbSAwLjNlbTtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xufVxuLnVpLmlubGluZS5kcm9wZG93biA+IC50ZXh0IHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG4udWkuaW5saW5lLmRyb3Bkb3duIC5tZW51IHtcbiAgY3Vyc29yOiBhdXRvO1xuICBtYXJnaW4tdG9wOiAwLjNlbTtcbiAgYm9yZGVyLXJhZGl1czogMC40cmVtO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1lbnUgSXRlbSBBY3RpdmUgKi9cbi51aS5kcm9wZG93biAubWVudSAuYWN0aXZlLml0ZW0ge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuOTUpO1xuICBib3gtc2hhZG93OiBub25lO1xuICB6LWluZGV4OiAxMjtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWVudSBJdGVtIEhvdmVyICovXG4udWkuZHJvcGRvd24gLm1lbnUgPiAuaXRlbTpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4wNSk7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuOTUpO1xuICB6LWluZGV4OiAxMztcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkaW5nXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmxvYWRpbmcuZHJvcGRvd24gPiBpLmljb24ge1xuICBoZWlnaHQ6IDEuNGVtICFpbXBvcnRhbnQ7XG4gIHBhZGRpbmc6IDEuNmVtIDEuNWVtICFpbXBvcnRhbnQ7XG59XG4udWkubG9hZGluZy5kcm9wZG93biA+IGkuaWNvbjpiZWZvcmUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGNvbnRlbnQ6ICcnO1xuICB0b3A6IDUwJTtcbiAgbGVmdDogNTAlO1xuICBtYXJnaW46IC0wLjY1ZW0gMGVtIDBlbSAtMC42NWVtO1xuICB3aWR0aDogMS4zZW07XG4gIGhlaWdodDogMS4zZW07XG4gIGJvcmRlci1yYWRpdXM6IDUwMHJlbTtcbiAgYm9yZGVyOiAwLjJlbSBzb2xpZCByZ2JhKDAsIDAsIDAsIDAuMSk7XG59XG4udWkubG9hZGluZy5kcm9wZG93biA+IGkuaWNvbjphZnRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgY29udGVudDogJyc7XG4gIHRvcDogNTAlO1xuICBsZWZ0OiA1MCU7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCB0cmFuc3BhcmVudDtcbiAgbWFyZ2luOiAtMC42NWVtIDBlbSAwZW0gLTAuNjVlbTtcbiAgd2lkdGg6IDEuM2VtO1xuICBoZWlnaHQ6IDEuM2VtO1xuICBhbmltYXRpb246IGRyb3Bkb3duLXNwaW4gMC42cyBsaW5lYXI7XG4gIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xuICBib3JkZXItcmFkaXVzOiA1MDByZW07XG4gIGJvcmRlci1jb2xvcjogIzc2NzY3NiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgYm9yZGVyLXdpZHRoOiAwLjJlbTtcbn1cbi8qIENvdXBsaW5nICovXG4udWkubG9hZGluZy5kcm9wZG93bi5idXR0b24gPiBpLmljb246YmVmb3JlLFxuLnVpLmxvYWRpbmcuZHJvcGRvd24uYnV0dG9uID4gaS5pY29uOmFmdGVyIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbkBrZXlmcmFtZXMgZHJvcGRvd24tc3BpbiB7XG4gIGZyb20ge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xuICB9XG4gIHRvIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpO1xuICB9XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIERlZmF1bHQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkuZHJvcGRvd246bm90KC5idXR0b24pID4gLmRlZmF1bHQudGV4dCxcbi51aS5kZWZhdWx0LmRyb3Bkb3duOm5vdCguYnV0dG9uKSA+IC50ZXh0IHtcbiAgY29sb3I6ICNmMmYyZjI7XG59XG4udWkuZHJvcGRvd246bm90KC5idXR0b24pID4gaW5wdXQ6Zm9jdXMgKyAuZGVmYXVsdC50ZXh0LFxuLnVpLmRlZmF1bHQuZHJvcGRvd246bm90KC5idXR0b24pID4gaW5wdXQ6Zm9jdXMgKyAudGV4dCB7XG4gIGNvbG9yOiAjYTZhNmE2O1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBMb2FkaW5nXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5sb2FkaW5nLmRyb3Bkb3duID4gLnRleHQge1xuICB0cmFuc2l0aW9uOiBub25lO1xufVxuLyogVXNlZCBUbyBDaGVjayBQb3NpdGlvbiAqL1xuLnVpLmRyb3Bkb3duIC5sb2FkaW5nLm1lbnUge1xuICBkaXNwbGF5OiBibG9jaztcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICB6LWluZGV4OiAtMTtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBLZXlib2FyZCBTZWxlY3Rcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VsZWN0ZWQgSXRlbSAqL1xuLnVpLmRyb3Bkb3duLnNlbGVjdGVkLFxuLnVpLmRyb3Bkb3duIC5tZW51IC5zZWxlY3RlZC5pdGVtIHtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjAzKTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC45NSk7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2VhcmNoIEZpbHRlcmVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZpbHRlcmVkIEl0ZW0gKi9cbi51aS5kcm9wZG93biA+IC5maWx0ZXJlZC50ZXh0IHtcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xufVxuLnVpLmRyb3Bkb3duIC5maWx0ZXJlZC5pdGVtIHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBFcnJvclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkuZHJvcGRvd24uZXJyb3IsXG4udWkuZHJvcGRvd24uZXJyb3IgPiAudGV4dCxcbi51aS5kcm9wZG93bi5lcnJvciA+IC5kZWZhdWx0LnRleHQge1xuICBjb2xvcjogIzlGM0EzODtcbn1cbi51aS5zZWxlY3Rpb24uZHJvcGRvd24uZXJyb3Ige1xuICBiYWNrZ3JvdW5kOiAjRkZGNkY2O1xuICBib3JkZXItY29sb3I6ICNFMEI0QjQ7XG59XG4udWkuc2VsZWN0aW9uLmRyb3Bkb3duLmVycm9yOmhvdmVyIHtcbiAgYm9yZGVyLWNvbG9yOiAjRTBCNEI0O1xufVxuLnVpLmRyb3Bkb3duLmVycm9yID4gLm1lbnUsXG4udWkuZHJvcGRvd24uZXJyb3IgPiAubWVudSAubWVudSB7XG4gIGJvcmRlci1jb2xvcjogI0UwQjRCNDtcbn1cbi51aS5kcm9wZG93bi5lcnJvciA+IC5tZW51ID4gLml0ZW0ge1xuICBjb2xvcjogIzlGM0EzODtcbn1cbi51aS5tdWx0aXBsZS5zZWxlY3Rpb24uZXJyb3IuZHJvcGRvd24gPiAubGFiZWwge1xuICBib3JkZXItY29sb3I6ICNFMEI0QjQ7XG59XG4vKiBJdGVtIEhvdmVyICovXG4udWkuZHJvcGRvd24uZXJyb3IgPiAubWVudSA+IC5pdGVtOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0ZGRjJGMjtcbn1cbi8qIEl0ZW0gQWN0aXZlICovXG4udWkuZHJvcGRvd24uZXJyb3IgPiAubWVudSAuYWN0aXZlLml0ZW0ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkRDRkNGO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaXNhYmxlZCAqL1xuLnVpLmRpc2FibGVkLmRyb3Bkb3duLFxuLnVpLmRyb3Bkb3duIC5tZW51ID4gLmRpc2FibGVkLml0ZW0ge1xuICBjdXJzb3I6IGRlZmF1bHQ7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICBvcGFjaXR5OiAwLjQ1O1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgVmFyaWF0aW9uc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBEaXJlY3Rpb25cbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBGbHlvdXQgRGlyZWN0aW9uICovXG4udWkuZHJvcGRvd24gLm1lbnUge1xuICBsZWZ0OiAwcHg7XG59XG4vKiBEZWZhdWx0IFNpZGUgKFJpZ2h0KSAqL1xuLnVpLmRyb3Bkb3duIC5yaWdodC5tZW51ID4gLm1lbnUsXG4udWkuZHJvcGRvd24gLm1lbnUgLnJpZ2h0Lm1lbnUge1xuICBsZWZ0OiAxMDAlICFpbXBvcnRhbnQ7XG4gIHJpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDAuNHJlbSAhaW1wb3J0YW50O1xufVxuLyogTGVmdCBGbHlvdXQgTWVudSAqL1xuLnVpLmRyb3Bkb3duID4gLmxlZnQubWVudSAubWVudSxcbi51aS5kcm9wZG93biAubWVudSAubGVmdC5tZW51IHtcbiAgbGVmdDogYXV0byAhaW1wb3J0YW50O1xuICByaWdodDogMTAwJSAhaW1wb3J0YW50O1xuICBib3JkZXItcmFkaXVzOiAwLjRyZW0gIWltcG9ydGFudDtcbn1cbi51aS5kcm9wZG93biAuaXRlbSAubGVmdC5kcm9wZG93bi5pY29uLFxuLnVpLmRyb3Bkb3duIC5sZWZ0Lm1lbnUgLml0ZW0gLmRyb3Bkb3duLmljb24ge1xuICB3aWR0aDogYXV0bztcbiAgZmxvYXQ6IGxlZnQ7XG4gIG1hcmdpbjogMGVtIDAuOHJlbSAwZW0gMGVtO1xufVxuLnVpLmRyb3Bkb3duIC5pdGVtIC5sZWZ0LmRyb3Bkb3duLmljb24sXG4udWkuZHJvcGRvd24gLmxlZnQubWVudSAuaXRlbSAuZHJvcGRvd24uaWNvbiB7XG4gIHdpZHRoOiBhdXRvO1xuICBmbG9hdDogbGVmdDtcbiAgbWFyZ2luOiAwZW0gMC44cmVtIDBlbSAwZW07XG59XG4udWkuZHJvcGRvd24gLml0ZW0gLmxlZnQuZHJvcGRvd24uaWNvbiArIC50ZXh0LFxuLnVpLmRyb3Bkb3duIC5sZWZ0Lm1lbnUgLml0ZW0gLmRyb3Bkb3duLmljb24gKyAudGV4dCB7XG4gIG1hcmdpbi1sZWZ0OiAxZW07XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIFVwd2FyZFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVwd2FyZCBNYWluIE1lbnUgKi9cbi51aS51cHdhcmQuZHJvcGRvd24gPiAubWVudSB7XG4gIHRvcDogYXV0bztcbiAgYm90dG9tOiAxMDAlO1xuICBib3gtc2hhZG93OiAwcHggMHB4IDNweCAwcHggcmdiYSgwLCAwLCAwLCAwLjA4KTtcbiAgYm9yZGVyLXJhZGl1czogMC40cmVtIDAuNHJlbSAwZW0gMGVtO1xufVxuLyogVXB3YXJkIFN1YiBNZW51ICovXG4udWkuZHJvcGRvd24gLnVwd2FyZC5tZW51IHtcbiAgdG9wOiBhdXRvICFpbXBvcnRhbnQ7XG4gIGJvdHRvbTogMCAhaW1wb3J0YW50O1xufVxuLyogQWN0aXZlIFVwd2FyZCAqL1xuLnVpLnNpbXBsZS51cHdhcmQuYWN0aXZlLmRyb3Bkb3duLFxuLnVpLnNpbXBsZS51cHdhcmQuZHJvcGRvd246aG92ZXIge1xuICBib3JkZXItcmFkaXVzOiAwLjRyZW0gMC40cmVtIDBlbSAwZW0gIWltcG9ydGFudDtcbn1cbi51aS51cHdhcmQuZHJvcGRvd24uYnV0dG9uOm5vdCgucG9pbnRpbmcpOm5vdCguZmxvYXRpbmcpLmFjdGl2ZSB7XG4gIGJvcmRlci1yYWRpdXM6IDAuNHJlbSAwLjRyZW0gMGVtIDBlbTtcbn1cbi8qIFNlbGVjdGlvbiAqL1xuLnVpLnVwd2FyZC5zZWxlY3Rpb24uZHJvcGRvd24gLm1lbnUge1xuICBib3JkZXItdG9wLXdpZHRoOiAxcHggIWltcG9ydGFudDtcbiAgYm9yZGVyLWJvdHRvbS13aWR0aDogMHB4ICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IDBweCAtMnB4IDNweCAwcHggcmdiYSgwLCAwLCAwLCAwLjA4KTtcbn1cbi51aS51cHdhcmQuc2VsZWN0aW9uLmRyb3Bkb3duOmhvdmVyIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAycHggMHB4IHJnYmEoMCwgMCwgMCwgMC4wNSk7XG59XG4vKiBBY3RpdmUgVXB3YXJkICovXG4udWkuYWN0aXZlLnVwd2FyZC5zZWxlY3Rpb24uZHJvcGRvd24ge1xuICBib3JkZXItcmFkaXVzOiAwZW0gMGVtIDAuNHJlbSAwLjRyZW0gIWltcG9ydGFudDtcbn1cbi8qIFZpc2libGUgVXB3YXJkICovXG4udWkudXB3YXJkLnNlbGVjdGlvbi5kcm9wZG93bi52aXNpYmxlIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAzcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4wOCk7XG4gIGJvcmRlci1yYWRpdXM6IDBlbSAwZW0gMC40cmVtIDAuNHJlbSAhaW1wb3J0YW50O1xufVxuLyogVmlzaWJsZSBIb3ZlciBVcHdhcmQgKi9cbi51aS51cHdhcmQuYWN0aXZlLnNlbGVjdGlvbi5kcm9wZG93bjpob3ZlciB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggM3B4IDBweCByZ2JhKDAsIDAsIDAsIDAuMDUpO1xufVxuLnVpLnVwd2FyZC5hY3RpdmUuc2VsZWN0aW9uLmRyb3Bkb3duOmhvdmVyIC5tZW51IHtcbiAgYm94LXNoYWRvdzogMHB4IC0ycHggM3B4IDBweCByZ2JhKDAsIDAsIDAsIDAuMDgpO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBTaW1wbGVcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiAgU2VsZWN0aW9uIE1lbnUgKi9cbi51aS5zY3JvbGxpbmcuZHJvcGRvd24gLm1lbnUsXG4udWkuZHJvcGRvd24gLnNjcm9sbGluZy5tZW51IHtcbiAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICBvdmVyZmxvdy15OiBhdXRvO1xufVxuLnVpLnNjcm9sbGluZy5kcm9wZG93biAubWVudSB7XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgb3ZlcmZsb3cteTogYXV0bztcbiAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XG4gIG1pbi13aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICB3aWR0aDogYXV0byAhaW1wb3J0YW50O1xufVxuLnVpLmRyb3Bkb3duIC5zY3JvbGxpbmcubWVudSB7XG4gIHBvc2l0aW9uOiBzdGF0aWM7XG4gIG92ZXJmbG93LXk6IGF1dG87XG4gIGJvcmRlcjogbm9uZTtcbiAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICBib3JkZXItcmFkaXVzOiAwICFpbXBvcnRhbnQ7XG4gIG1hcmdpbjogMCAhaW1wb3J0YW50O1xuICBtaW4td2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgd2lkdGg6IGF1dG8gIWltcG9ydGFudDtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHJnYmEoMzQsIDM2LCAzOCwgMC4xNSk7XG59XG4udWkuc2Nyb2xsaW5nLmRyb3Bkb3duIC5tZW51IC5pdGVtLml0ZW0uaXRlbSxcbi51aS5kcm9wZG93biAuc2Nyb2xsaW5nLm1lbnUgPiAuaXRlbS5pdGVtLml0ZW0ge1xuICBib3JkZXItdG9wOiBub25lO1xuICBwYWRkaW5nLXJpZ2h0OiBjYWxjKDEuMXJlbSArIDE3cHgpICFpbXBvcnRhbnQ7XG59XG4udWkuc2Nyb2xsaW5nLmRyb3Bkb3duIC5tZW51IC5pdGVtOmZpcnN0LWNoaWxkLFxuLnVpLmRyb3Bkb3duIC5zY3JvbGxpbmcubWVudSAuaXRlbTpmaXJzdC1jaGlsZCB7XG4gIGJvcmRlci10b3A6IG5vbmU7XG59XG4udWkuZHJvcGRvd24gPiAuYW5pbWF0aW5nLm1lbnUgLnNjcm9sbGluZy5tZW51LFxuLnVpLmRyb3Bkb3duID4gLnZpc2libGUubWVudSAuc2Nyb2xsaW5nLm1lbnUge1xuICBkaXNwbGF5OiBibG9jaztcbn1cbi8qIFNjcm9sbGJhciBpbiBJRSAqL1xuQG1lZGlhIGFsbCBhbmQgKC1tcy1oaWdoLWNvbnRyYXN0OiBub25lKSB7XG4gIC51aS5zY3JvbGxpbmcuZHJvcGRvd24gLm1lbnUsXG4gIC51aS5kcm9wZG93biAuc2Nyb2xsaW5nLm1lbnUge1xuICAgIG1pbi13aWR0aDogY2FsYygxMDAlIC0gMTdweCk7XG4gIH1cbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgLnVpLnNjcm9sbGluZy5kcm9wZG93biAubWVudSxcbiAgLnVpLmRyb3Bkb3duIC5zY3JvbGxpbmcubWVudSB7XG4gICAgbWF4LWhlaWdodDogMTAuNHJlbTtcbiAgfVxufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NjhweCkge1xuICAudWkuc2Nyb2xsaW5nLmRyb3Bkb3duIC5tZW51LFxuICAudWkuZHJvcGRvd24gLnNjcm9sbGluZy5tZW51IHtcbiAgICBtYXgtaGVpZ2h0OiAxNS42cmVtO1xuICB9XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDk5MnB4KSB7XG4gIC51aS5zY3JvbGxpbmcuZHJvcGRvd24gLm1lbnUsXG4gIC51aS5kcm9wZG93biAuc2Nyb2xsaW5nLm1lbnUge1xuICAgIG1heC1oZWlnaHQ6IDIwLjhyZW07XG4gIH1cbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTkyMHB4KSB7XG4gIC51aS5zY3JvbGxpbmcuZHJvcGRvd24gLm1lbnUsXG4gIC51aS5kcm9wZG93biAuc2Nyb2xsaW5nLm1lbnUge1xuICAgIG1heC1oZWlnaHQ6IDIwLjhyZW07XG4gIH1cbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgU2ltcGxlXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlzcGxheXMgd2l0aG91dCBqYXZhc2NyaXB0ICovXG4udWkuc2ltcGxlLmRyb3Bkb3duIC5tZW51OmJlZm9yZSxcbi51aS5zaW1wbGUuZHJvcGRvd24gLm1lbnU6YWZ0ZXIge1xuICBkaXNwbGF5OiBub25lO1xufVxuLnVpLnNpbXBsZS5kcm9wZG93biAubWVudSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRvcDogLTk5OTlweCAhaW1wb3J0YW50O1xuICBvcGFjaXR5OiAwO1xuICB3aWR0aDogMDtcbiAgaGVpZ2h0OiAwO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMXMgZWFzZTtcbn1cbi51aS5zaW1wbGUuYWN0aXZlLmRyb3Bkb3duLFxuLnVpLnNpbXBsZS5kcm9wZG93bjpob3ZlciB7XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDBlbSAhaW1wb3J0YW50O1xuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMGVtICFpbXBvcnRhbnQ7XG59XG4udWkuc2ltcGxlLmFjdGl2ZS5kcm9wZG93biA+IC5tZW51LFxuLnVpLnNpbXBsZS5kcm9wZG93bjpob3ZlciA+IC5tZW51IHtcbiAgb3ZlcmZsb3c6IHZpc2libGU7XG4gIHdpZHRoOiBhdXRvO1xuICBoZWlnaHQ6IGF1dG87XG4gIHRvcDogMTAwJSAhaW1wb3J0YW50O1xuICBvcGFjaXR5OiAxO1xufVxuLnVpLnNpbXBsZS5kcm9wZG93biA+IC5tZW51ID4gLml0ZW06YWN0aXZlID4gLm1lbnUsXG4udWkuc2ltcGxlLmRyb3Bkb3duOmhvdmVyID4gLm1lbnUgPiAuaXRlbTpob3ZlciA+IC5tZW51IHtcbiAgb3ZlcmZsb3c6IHZpc2libGU7XG4gIHdpZHRoOiBhdXRvO1xuICBoZWlnaHQ6IGF1dG87XG4gIHRvcDogMCUgIWltcG9ydGFudDtcbiAgbGVmdDogMTAwJSAhaW1wb3J0YW50O1xuICBvcGFjaXR5OiAxO1xufVxuLnVpLnNpbXBsZS5kaXNhYmxlZC5kcm9wZG93bjpob3ZlciAubWVudSB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIGhlaWdodDogMHB4O1xuICB3aWR0aDogMHB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuLyogVmlzaWJsZSAqL1xuLnVpLnNpbXBsZS52aXNpYmxlLmRyb3Bkb3duID4gLm1lbnUge1xuICBkaXNwbGF5OiBibG9jaztcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgIEZsdWlkXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmZsdWlkLmRyb3Bkb3duIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xuICBtaW4td2lkdGg6IDBlbTtcbn1cbi51aS5mbHVpZC5kcm9wZG93biA+IC5kcm9wZG93bi5pY29uIHtcbiAgZmxvYXQ6IHJpZ2h0O1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgIEZsb2F0aW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmZsb2F0aW5nLmRyb3Bkb3duIC5tZW51IHtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IGF1dG87XG4gIGJveC1zaGFkb3c6IDBweCAycHggNHB4IDBweCByZ2JhKDM0LCAzNiwgMzgsIDAuMTIpLCAwcHggMnB4IDEwcHggMHB4IHJnYmEoMzQsIDM2LCAzOCwgMC4xNSkgIWltcG9ydGFudDtcbiAgYm9yZGVyLXJhZGl1czogMC40cmVtICFpbXBvcnRhbnQ7XG59XG4udWkuZmxvYXRpbmcuZHJvcGRvd24gPiAubWVudSB7XG4gIG1hcmdpbi10b3A6IDAuNWVtICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDAuNHJlbSAhaW1wb3J0YW50O1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBQb2ludGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5wb2ludGluZy5kcm9wZG93biA+IC5tZW51IHtcbiAgdG9wOiAxMDAlO1xuICBtYXJnaW4tdG9wOiAwLjhyZW07XG4gIGJvcmRlci1yYWRpdXM6IDAuNHJlbTtcbn1cbi51aS5wb2ludGluZy5kcm9wZG93biA+IC5tZW51OmFmdGVyIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIGNvbnRlbnQ6ICcnO1xuICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gIHdpZHRoOiAwLjdlbTtcbiAgaGVpZ2h0OiAwLjdlbTtcbiAgYm94LXNoYWRvdzogLTFweCAtMXB4IDBweCAxcHggcmdiYSgzNCwgMzYsIDM4LCAwLjE1KTtcbiAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbiAgei1pbmRleDogMjtcbn1cbi51aS5wb2ludGluZy5kcm9wZG93biA+IC5tZW51OmFmdGVyIHtcbiAgdG9wOiAtMC4zNWVtO1xuICBsZWZ0OiA1MCU7XG4gIG1hcmdpbjogMGVtIDBlbSAwZW0gLTAuMzVlbTtcbn1cbi8qIFRvcCBMZWZ0IFBvaW50aW5nICovXG4udWkudG9wLmxlZnQucG9pbnRpbmcuZHJvcGRvd24gPiAubWVudSB7XG4gIHRvcDogMTAwJTtcbiAgYm90dG9tOiBhdXRvO1xuICBsZWZ0OiAwJTtcbiAgcmlnaHQ6IGF1dG87XG4gIG1hcmdpbjogMWVtIDBlbSAwZW07XG59XG4udWkudG9wLmxlZnQucG9pbnRpbmcuZHJvcGRvd24gPiAubWVudSB7XG4gIHRvcDogMTAwJTtcbiAgYm90dG9tOiBhdXRvO1xuICBsZWZ0OiAwJTtcbiAgcmlnaHQ6IGF1dG87XG4gIG1hcmdpbjogMWVtIDBlbSAwZW07XG59XG4udWkudG9wLmxlZnQucG9pbnRpbmcuZHJvcGRvd24gPiAubWVudTphZnRlciB7XG4gIHRvcDogLTAuMzVlbTtcbiAgbGVmdDogMWVtO1xuICByaWdodDogYXV0bztcbiAgbWFyZ2luOiAwZW07XG4gIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbn1cbi8qIFRvcCBSaWdodCAgUG9pbnRpbmcgKi9cbi51aS50b3AucmlnaHQucG9pbnRpbmcuZHJvcGRvd24gPiAubWVudSB7XG4gIHRvcDogMTAwJTtcbiAgYm90dG9tOiBhdXRvO1xuICByaWdodDogMCU7XG4gIGxlZnQ6IGF1dG87XG4gIG1hcmdpbjogMWVtIDBlbSAwZW07XG59XG4udWkudG9wLnJpZ2h0LnBvaW50aW5nLmRyb3Bkb3duID4gLm1lbnU6YWZ0ZXIge1xuICB0b3A6IC0wLjM1ZW07XG4gIGxlZnQ6IGF1dG87XG4gIHJpZ2h0OiAxZW07XG4gIG1hcmdpbjogMGVtO1xuICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG59XG4vKiBMZWZ0IFBvaW50aW5nICovXG4udWkubGVmdC5wb2ludGluZy5kcm9wZG93biA+IC5tZW51IHtcbiAgdG9wOiAwJTtcbiAgbGVmdDogMTAwJTtcbiAgcmlnaHQ6IGF1dG87XG4gIG1hcmdpbjogMGVtIDBlbSAwZW0gMWVtO1xufVxuLnVpLmxlZnQucG9pbnRpbmcuZHJvcGRvd24gPiAubWVudTphZnRlciB7XG4gIHRvcDogMWVtO1xuICBsZWZ0OiAtMC4zNWVtO1xuICBtYXJnaW46IDBlbSAwZW0gMGVtIDBlbTtcbiAgdHJhbnNmb3JtOiByb3RhdGUoLTQ1ZGVnKTtcbn1cbi8qIFJpZ2h0IFBvaW50aW5nICovXG4udWkucmlnaHQucG9pbnRpbmcuZHJvcGRvd24gPiAubWVudSB7XG4gIHRvcDogMCU7XG4gIGxlZnQ6IGF1dG87XG4gIHJpZ2h0OiAxMDAlO1xuICBtYXJnaW46IDBlbSAxZW0gMGVtIDBlbTtcbn1cbi51aS5yaWdodC5wb2ludGluZy5kcm9wZG93biA+IC5tZW51OmFmdGVyIHtcbiAgdG9wOiAxZW07XG4gIGxlZnQ6IGF1dG87XG4gIHJpZ2h0OiAtMC4zNWVtO1xuICBtYXJnaW46IDBlbSAwZW0gMGVtIDBlbTtcbiAgdHJhbnNmb3JtOiByb3RhdGUoMTM1ZGVnKTtcbn1cbi8qIEJvdHRvbSBQb2ludGluZyAqL1xuLnVpLmJvdHRvbS5wb2ludGluZy5kcm9wZG93biA+IC5tZW51IHtcbiAgdG9wOiBhdXRvO1xuICBib3R0b206IDEwMCU7XG4gIGxlZnQ6IDAlO1xuICByaWdodDogYXV0bztcbiAgbWFyZ2luOiAwZW0gMGVtIDFlbTtcbn1cbi51aS5ib3R0b20ucG9pbnRpbmcuZHJvcGRvd24gPiAubWVudTphZnRlciB7XG4gIHRvcDogYXV0bztcbiAgYm90dG9tOiAtMC4zNWVtO1xuICByaWdodDogYXV0bztcbiAgbWFyZ2luOiAwZW07XG4gIHRyYW5zZm9ybTogcm90YXRlKC0xMzVkZWcpO1xufVxuLyogUmV2ZXJzZSBTdWItTWVudSBEaXJlY3Rpb24gKi9cbi51aS5ib3R0b20ucG9pbnRpbmcuZHJvcGRvd24gPiAubWVudSAubWVudSB7XG4gIHRvcDogYXV0byAhaW1wb3J0YW50O1xuICBib3R0b206IDBweCAhaW1wb3J0YW50O1xufVxuLyogQm90dG9tIExlZnQgKi9cbi51aS5ib3R0b20ubGVmdC5wb2ludGluZy5kcm9wZG93biA+IC5tZW51IHtcbiAgbGVmdDogMCU7XG4gIHJpZ2h0OiBhdXRvO1xufVxuLnVpLmJvdHRvbS5sZWZ0LnBvaW50aW5nLmRyb3Bkb3duID4gLm1lbnU6YWZ0ZXIge1xuICBsZWZ0OiAxZW07XG4gIHJpZ2h0OiBhdXRvO1xufVxuLyogQm90dG9tIFJpZ2h0ICovXG4udWkuYm90dG9tLnJpZ2h0LnBvaW50aW5nLmRyb3Bkb3duID4gLm1lbnUge1xuICByaWdodDogMCU7XG4gIGxlZnQ6IGF1dG87XG59XG4udWkuYm90dG9tLnJpZ2h0LnBvaW50aW5nLmRyb3Bkb3duID4gLm1lbnU6YWZ0ZXIge1xuICBsZWZ0OiBhdXRvO1xuICByaWdodDogMWVtO1xufVxuLyogVXB3YXJkIHBvaW50aW5nICovXG4udWkudXB3YXJkLnBvaW50aW5nLmRyb3Bkb3duID4gLm1lbnUsXG4udWkudXB3YXJkLnRvcC5wb2ludGluZy5kcm9wZG93biA+IC5tZW51IHtcbiAgdG9wOiBhdXRvO1xuICBib3R0b206IDEwMCU7XG4gIG1hcmdpbjogMGVtIDBlbSAwLjhyZW07XG4gIGJvcmRlci1yYWRpdXM6IDAuNHJlbTtcbn1cbi51aS51cHdhcmQucG9pbnRpbmcuZHJvcGRvd24gPiAubWVudTphZnRlcixcbi51aS51cHdhcmQudG9wLnBvaW50aW5nLmRyb3Bkb3duID4gLm1lbnU6YWZ0ZXIge1xuICB0b3A6IDEwMCU7XG4gIGJvdHRvbTogYXV0bztcbiAgYm94LXNoYWRvdzogMXB4IDFweCAwcHggMXB4IHJnYmEoMzQsIDM2LCAzOCwgMC4xNSk7XG4gIG1hcmdpbjogLTAuMzVlbSAwZW0gMGVtO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFRoZW1lIE92ZXJyaWRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIERyb3Bkb3duIENhcmV0cyAqL1xuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnRHJvcGRvd24nO1xuICBzcmM6IHVybChkYXRhOmFwcGxpY2F0aW9uL3gtZm9udC10dGY7Y2hhcnNldD11dGYtODtiYXNlNjQsQUFFQUFBQUxBSUFBQXdBd1QxTXZNZ2dqQjVBQUFBQzhBQUFBWUdOdFlYQVBmdUlJQUFBQkhBQUFBRXhuWVhOd0FBQUFFQUFBQVdnQUFBQUlaMng1WmpvODJMZ0FBQUZ3QUFBQlZHaGxZV1FBUTg4YkFBQUN4QUFBQURab2FHVmhBd2NCNlFBQUF2d0FBQUFrYUcxMGVBUzRBQklBQUFNZ0FBQUFJR3h2WTJFQk5nRGVBQUFEUUFBQUFCSnRZWGh3QUFvQUZnQUFBMVFBQUFBZ2JtRnRaVmNacHU0QUFBTjBBQUFCUlhCdmMzUUFBd0FBQUFBRXZBQUFBQ0FBQXdJQUFaQUFCUUFBQVV3QlpnQUFBRWNCVEFGbUFBQUE5UUFaQUlRQUFBQUFBQUFBQUFBQUFBQUFBQUFCRUFBQUFBQUFBQUFBQUFBQUFBQUFBQUJBQUFEdzJnSGcvK0QvNEFIZ0FDQUFBQUFCQUFBQUFBQUFBQUFBQUFBZ0FBQUFBQUFDQUFBQUF3QUFBQlFBQXdBQkFBQUFGQUFFQURnQUFBQUtBQWdBQWdBQ0FBRUFJUERhLy8zLy93QUFBQUFBSVBEWC8vMy8vd0FCLytNUExRQURBQUVBQUFBQUFBQUFBQUFBQUFFQUFmLy9BQThBQVFBQUFBQUFBQUFBQUFJQUFEYzVBUUFBQUFBQkFBQUFBQUFBQUFBQUFnQUFOemtCQUFBQUFBRUFBQUFBQUFBQUFBQUNBQUEzT1FFQUFBQUFBUUFBQUlBQkpRRWxBQk1BQUJNME56WTNCVFlYRmhVVUR3RUdKd1l2QVNZMUFBVUdCd0VBQ0FVR0JvQUZDQWNHZ0FVQkVnY0dCUUVCQVFjRUNRWUhmd1lCQVFaL0J3WUFBUUFBQUc0QkpRRVNBQk1BQURjMFB3RTJNeklmQVJZVkZBY0dJeUVpSnlZMUFBV0FCZ2NJQllBR0JnVUkvd0FIQmdXQUJ3YUFCUVdBQmdjSEJnVUZCZ2NBQUFBQkFCSUFTUUMzQVc0QUV3QUFOelEvQVRZWE5oY1dIUUVVQndZbkJpOEJKalVTQm9BRkNBY0ZCZ1lGQndnRmdBYmJCd1ovQndFQkJ3UUovd2dFQndFQkIzOEdCZ0FBQUFBQkFBQUFTUUNsQVc0QUV3QUFOeEUwTnpZek1oOEJGaFVVRHdFR0l5SW5KalVBQlFZSENBV0FCZ2FBQlFnSEJnVmJBUUFJQlFZR2dBVUlCd1dBQmdZRkJ3QUFBQUVBQUFBQkFBRFp1YUtPWHc4ODlRQUxBZ0FBQUFBQTBBQkhXQUFBQUFEUUFFZFlBQUFBQUFFbEFXNEFBQUFJQUFJQUFBQUFBQUFBQVFBQUFlRC80QUFBQWdBQUFBQUFBU1VBQVFBQUFBQUFBQUFBQUFBQUFBQUFBQWdBQUFBQUFBQUFBQUFBQUFBQkFBQUFBU1VBQUFFbEFBQUF0d0FTQUxjQUFBQUFBQUFBQ2dBVUFCNEFRZ0JrQUlnQXFnQUFBQUVBQUFBSUFCUUFBUUFBQUFBQUFnQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQU9BSzRBQVFBQUFBQUFBUUFPQUFBQUFRQUFBQUFBQWdBT0FFY0FBUUFBQUFBQUF3QU9BQ1FBQVFBQUFBQUFCQUFPQUZVQUFRQUFBQUFBQlFBV0FBNEFBUUFBQUFBQUJnQUhBRElBQVFBQUFBQUFDZ0EwQUdNQUF3QUJCQWtBQVFBT0FBQUFBd0FCQkFrQUFnQU9BRWNBQXdBQkJBa0FBd0FPQUNRQUF3QUJCQWtBQkFBT0FGVUFBd0FCQkFrQUJRQVdBQTRBQXdBQkJBa0FCZ0FPQURrQUF3QUJCQWtBQ2dBMEFHTUFhUUJqQUc4QWJRQnZBRzhBYmdCV0FHVUFjZ0J6QUdrQWJ3QnVBQ0FBTVFBdUFEQUFhUUJqQUc4QWJRQnZBRzhBYm1samIyMXZiMjRBYVFCakFHOEFiUUJ2QUc4QWJnQlNBR1VBWndCMUFHd0FZUUJ5QUdrQVl3QnZBRzBBYndCdkFHNEFSZ0J2QUc0QWRBQWdBR2NBWlFCdUFHVUFjZ0JoQUhRQVpRQmtBQ0FBWWdCNUFDQUFTUUJqQUc4QVRRQnZBRzhBYmdBdUFBQUFBQU1BQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBPSkgZm9ybWF0KCd0cnVldHlwZScpLCB1cmwoZGF0YTphcHBsaWNhdGlvbi9mb250LXdvZmY7Y2hhcnNldD11dGYtODtiYXNlNjQsZDA5R1JrOVVWRThBQUFWd0FBb0FBQUFBQlNnQUFRQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUJEUmtZZ0FBQUE5QUFBQWRrQUFBSFpMRFhFLzA5VEx6SUFBQUxRQUFBQVlBQUFBR0FJSXdlUVkyMWhjQUFBQXpBQUFBQk1BQUFBVEE5KzRnaG5ZWE53QUFBRGZBQUFBQWdBQUFBSUFBQUFFR2hsWVdRQUFBT0VBQUFBTmdBQUFEWUFRODhiYUdobFlRQUFBN3dBQUFBa0FBQUFKQU1IQWVsb2JYUjRBQUFENEFBQUFDQUFBQUFnQkxnQUVtMWhlSEFBQUFRQUFBQUFCZ0FBQUFZQUNGQUFibUZ0WlFBQUJBZ0FBQUZGQUFBQlJWY1pwdTV3YjNOMEFBQUZVQUFBQUNBQUFBQWdBQU1BQUFFQUJBUUFBUUVCQ0dsamIyMXZiMjRBQVFJQUFRQTYrQndDK0JzRCtCZ0VIZ29BR1ZQL2k0c2VDZ0FaVS8rTGl3d0hpMnY0bFBoMEJSMEFBQUNJRHgwQUFBQ05FUjBBQUFBSkhRQUFBZEFTQUFrQkFRZ1BFUk1XR3lBbEttbGpiMjF2YjI1cFkyOXRiMjl1ZFRCMU1YVXlNSFZHTUVRM2RVWXdSRGgxUmpCRU9YVkdNRVJCQUFBQ0FZa0FCZ0FJQWdBQkFBUUFCd0FLQUEwQVZnQ2ZBT2dCTC95VUR2eVVEdnlVRHZ1VUR2dHZpL2VtRll1UWpaQ09qbytQajQyUWl3ajNsSXNGa0l1UWlZNkhqNGlOaG91R2k0YUpoNGVIQ1BzVSt4UUZpSWlHaVlhTGhvdUhqWWVPQ1BzVTl4UUZpSStKajR1UUNBNzdiNHYzRkJXTGtJMlBqbzhJOXhUM0ZBV1BqbytOa0l1UWk1Q0pqb2dJOXhUN0ZBV1BoNDJIaTRhTGhvbUhoNGVJaUlhSmhvc0krNVNMQllhTGg0Mkhqb2lQaVkrTGtBZ08rOTJkOTI4Vmk1Q05rSStPQ1BjVTl4UUZqbytRalpDTGtJdVBpWTZIajRpTmhvdUdDSXY3bEFXTGhvbUhoNGlJaDRlSmhvdUdpNGFOaUk4SSt4VDNGQVdIam9tUGk1QUlEdnZkaStZVmkvZVVCWXVRalpDT2pvK1BqNDJRaTVDTGtJbU9od2ozRlBzVUJZK0lqWWFMaG91R2lZZUhpQWo3RlBzVUJZaUhob21HaTRhTGg0MkhqNGlPaVkrTGtBZ08rSlFVK0pRVml3d0tBQUFBQUFNQ0FBR1FBQVVBQUFGTUFXWUFBQUJIQVV3QlpnQUFBUFVBR1FDRUFBQUFBQUFBQUFBQUFBQUFBQUFBQVJBQUFBQUFBQUFBQUFBQUFBQUFBQUFBUUFBQThOb0I0UC9nLytBQjRBQWdBQUFBQVFBQUFBQUFBQUFBQUFBQUlBQUFBQUFBQWdBQUFBTUFBQUFVQUFNQUFRQUFBQlFBQkFBNEFBQUFDZ0FJQUFJQUFnQUJBQ0R3MnYvOS8vOEFBQUFBQUNEdzEvLzkvLzhBQWYvakR5MEFBd0FCQUFBQUFBQUFBQUFBQUFBQkFBSC8vd0FQQUFFQUFBQUJBQUE1ZW1velh3ODg5UUFMQWdBQUFBQUEwQUJIV0FBQUFBRFFBRWRZQUFBQUFBRWxBVzRBQUFBSUFBSUFBQUFBQUFBQUFRQUFBZUQvNEFBQUFnQUFBQUFBQVNVQUFRQUFBQUFBQUFBQUFBQUFBQUFBQUFnQUFBQUFBQUFBQUFBQUFBQUJBQUFBQVNVQUFBRWxBQUFBdHdBU0FMY0FBQUFBVUFBQUNBQUFBQUFBRGdDdUFBRUFBQUFBQUFFQURnQUFBQUVBQUFBQUFBSUFEZ0JIQUFFQUFBQUFBQU1BRGdBa0FBRUFBQUFBQUFRQURnQlZBQUVBQUFBQUFBVUFGZ0FPQUFFQUFBQUFBQVlBQndBeUFBRUFBQUFBQUFvQU5BQmpBQU1BQVFRSkFBRUFEZ0FBQUFNQUFRUUpBQUlBRGdCSEFBTUFBUVFKQUFNQURnQWtBQU1BQVFRSkFBUUFEZ0JWQUFNQUFRUUpBQVVBRmdBT0FBTUFBUVFKQUFZQURnQTVBQU1BQVFRSkFBb0FOQUJqQUdrQVl3QnZBRzBBYndCdkFHNEFWZ0JsQUhJQWN3QnBBRzhBYmdBZ0FERUFMZ0F3QUdrQVl3QnZBRzBBYndCdkFHNXBZMjl0YjI5dUFHa0FZd0J2QUcwQWJ3QnZBRzRBVWdCbEFHY0FkUUJzQUdFQWNnQnBBR01BYndCdEFHOEFid0J1QUVZQWJ3QnVBSFFBSUFCbkFHVUFiZ0JsQUhJQVlRQjBBR1VBWkFBZ0FHSUFlUUFnQUVrQVl3QnZBRTBBYndCdkFHNEFMZ0FBQUFBREFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEpIGZvcm1hdCgnd29mZicpO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG59XG4udWkuZHJvcGRvd24gPiAuZHJvcGRvd24uaWNvbiB7XG4gIGZvbnQtZmFtaWx5OiAnRHJvcGRvd24nO1xuICBsaW5lLWhlaWdodDogMTtcbiAgaGVpZ2h0OiAxZW07XG4gIHdpZHRoOiAxLjIzZW07XG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG4udWkuZHJvcGRvd24gPiAuZHJvcGRvd24uaWNvbiB7XG4gIHdpZHRoOiBhdXRvO1xufVxuLnVpLmRyb3Bkb3duID4gLmRyb3Bkb3duLmljb246YmVmb3JlIHtcbiAgY29udGVudDogJ1xcZjBkNyc7XG59XG4vKiBTdWIgTWVudSAqL1xuLnVpLmRyb3Bkb3duIC5tZW51IC5pdGVtIC5kcm9wZG93bi5pY29uOmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICdcXGYwZGEnIC8qcnRsOidcXGYwZDknKi87XG59XG4udWkuZHJvcGRvd24gLml0ZW0gLmxlZnQuZHJvcGRvd24uaWNvbjpiZWZvcmUsXG4udWkuZHJvcGRvd24gLmxlZnQubWVudSAuaXRlbSAuZHJvcGRvd24uaWNvbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBkOVwiIC8qcnRsOlwiXFxmMGRhXCIqLztcbn1cbi8qIFZlcnRpY2FsIE1lbnUgRHJvcGRvd24gKi9cbi51aS52ZXJ0aWNhbC5tZW51IC5kcm9wZG93bi5pdGVtID4gLmRyb3Bkb3duLmljb246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwZGFcIiAvKnJ0bDpcIlxcZjBkOVwiKi87XG59XG4vKiBJY29ucyBmb3IgUmVmZXJlbmNlXG4uZHJvcGRvd24uZG93bi5pY29uIHtcbiAgY29udGVudDogXCJcXGYwZDdcIjtcbn1cbi5kcm9wZG93bi51cC5pY29uIHtcbiAgY29udGVudDogXCJcXGYwZDhcIjtcbn1cbi5kcm9wZG93bi5sZWZ0Lmljb24ge1xuICBjb250ZW50OiBcIlxcZjBkOVwiO1xufVxuLmRyb3Bkb3duLmljb24uaWNvbiB7XG4gIGNvbnRlbnQ6IFwiXFxmMGRhXCI7XG59XG4qL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgVXNlciBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiFcbiAqICMgU2VtYW50aWMgVUkgLSBWaWRlb1xuICogaHR0cDovL2dpdGh1Yi5jb20vc2VtYW50aWMtb3JnL3NlbWFudGljLXVpL1xuICpcbiAqXG4gKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2VcbiAqIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVRcbiAqXG4gKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qXG5cbuKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVlyAg4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4pWXICAg4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWXXG7ilZrilZDilZDilojilojilZTilZDilZDilZ3ilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKWiOKWiOKVlyDilojilojilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilZTilZDilZDilZDilZDilZ1cbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4pWU4paI4paI4paI4paI4pWU4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilojilojilojilojilojilZdcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVlOKVkOKVkOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4paI4paI4pWR4pWa4paI4paI4pWU4pWd4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilZrilZDilZDilZDilZDilojilojilZFcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWRIOKVmuKVkOKVnSDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZFcbiAgIOKVmuKVkOKVnSAgIOKVmuKVkOKVnSAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWdICAgICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ1cblxuKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIFRoZW1lIFNlbGVjdGlvblxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFRvIG92ZXJyaWRlIGEgdGhlbWUgZm9yIGFuIGluZGl2aWR1YWwgZWxlbWVudFxuICAgc3BlY2lmeSB0aGVtZSBuYW1lIGJlbG93XG4qL1xuLyogR2xvYmFsICovXG4vKiBFbGVtZW50cyAqL1xuLyogQ29sbGVjdGlvbnMgKi9cbi8qIE1vZHVsZXMgKi9cbi8qIFZpZXdzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgRm9sZGVyc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFBhdGggdG8gdGhlbWUgcGFja2FnZXMgKi9cbi8qIFBhdGggdG8gc2l0ZSBvdmVycmlkZSBmb2xkZXIgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBJbXBvcnQgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBJbXBvcnQgRGlyZWN0aXZlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgVGhlbWVcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgU2l0ZSBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0IHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRvcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogUGFja2FnZWQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZG9ycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBDb21wb25lbnQncyBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kb3JzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFNpdGUgdGhlbWUgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgIFVzZXIgR2xvYmFsIFZhcmlhYmxlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIG1hcnNvIGNvbG9ycyAqL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuIENvbXBvbmVudCBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0ICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFZpZGVvXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRWxlbWVudFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2ltcGxlICovXG4vKiBQbGFjZWhvbGRlciAqL1xuLyogUGxhY2Vob2xkZXIgT3ZlcmxheWVkIEJhY2tncm91bmQgKi9cbi8qIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIFN0YXRlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSG92ZXIgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgVmFyaWF0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogQXNwZWN0IFJhdGlvcyAqL1xuLyogUGFja2FnZWQgVGhlbWUgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgVmlkZW9cbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbGVtZW50XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTaW1wbGUgKi9cbi8qIFBsYWNlaG9sZGVyICovXG4vKiBQbGFjZWhvbGRlciBPdmVybGF5ZWQgQmFja2dyb3VuZCAqL1xuLyogSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgU3RhdGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBIb3ZlciAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBWYXJpYXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBBc3BlY3QgUmF0aW9zICovXG4vKiBTaXRlIFRoZW1lICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIE1peC1pbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE92ZXJyaWRlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBFbmQgQ29uZmlnICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgVHlwZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4udWkuZW1iZWQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAwcHg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGJhY2tncm91bmQ6ICNEQ0REREU7XG4gIHBhZGRpbmctYm90dG9tOiA1Ni4yNSU7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tXG4gIEVtYmVkZGVkIENvbnRlbnRcbi0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkuZW1iZWQgaWZyYW1lLFxuLnVpLmVtYmVkIGVtYmVkLFxuLnVpLmVtYmVkIG9iamVjdCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm9yZGVyOiBub25lO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICB0b3A6IDBweDtcbiAgbGVmdDogMHB4O1xuICBtYXJnaW46IDBlbTtcbiAgcGFkZGluZzogMGVtO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRW1iZWRcbi0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkuZW1iZWQgPiAuZW1iZWQge1xuICBkaXNwbGF5OiBub25lO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgUGxhY2Vob2xkZXJcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuZW1iZWQgPiAucGxhY2Vob2xkZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdG9wOiAwcHg7XG4gIGxlZnQ6IDBweDtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGJhY2tncm91bmQtY29sb3I6IHJhZGlhbC1ncmFkaWVudCh0cmFuc3BhcmVudCA0NSUsIHJnYmEoMCwgMCwgMCwgMC4zKSk7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgICBJY29uXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmVtYmVkID4gLmljb24ge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwcHg7XG4gIGxlZnQ6IDBweDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgei1pbmRleDogMjtcbn1cbi51aS5lbWJlZCA+IC5pY29uOmFmdGVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDAlO1xuICBsZWZ0OiAwJTtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgei1pbmRleDogMztcbiAgY29udGVudDogJyc7XG4gIGJhY2tncm91bmQ6IHJhZGlhbC1ncmFkaWVudCh0cmFuc3BhcmVudCA0NSUsIHJnYmEoMCwgMCwgMCwgMC4zKSk7XG4gIG9wYWNpdHk6IDAuNTtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjVzIGVhc2U7XG59XG4udWkuZW1iZWQgPiAuaWNvbjpiZWZvcmUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICBsZWZ0OiA1MCU7XG4gIHotaW5kZXg6IDQ7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKSB0cmFuc2xhdGVZKC01MCUpO1xuICBjb2xvcjogI2ZmZmZmZjtcbiAgZm9udC1zaXplOiA2cmVtO1xuICB0ZXh0LXNoYWRvdzogMHB4IDJweCAxMHB4IHJnYmEoMzQsIDM2LCAzOCwgMC4yKTtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjVzIGVhc2UsIGNvbG9yIDAuNXMgZWFzZTtcbiAgei1pbmRleDogMTA7XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5lbWJlZCAuaWNvbjpob3ZlcjphZnRlciB7XG4gIGJhY2tncm91bmQ6IHJhZGlhbC1ncmFkaWVudCh0cmFuc3BhcmVudCA0NSUsIHJnYmEoMCwgMCwgMCwgMC4zKSk7XG4gIG9wYWNpdHk6IDE7XG59XG4udWkuZW1iZWQgLmljb246aG92ZXI6YmVmb3JlIHtcbiAgY29sb3I6ICNmZmZmZmY7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5hY3RpdmUuZW1iZWQgPiAuaWNvbixcbi51aS5hY3RpdmUuZW1iZWQgPiAucGxhY2Vob2xkZXIge1xuICBkaXNwbGF5OiBub25lO1xufVxuLnVpLmFjdGl2ZS5lbWJlZCA+IC5lbWJlZCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgVmlkZW8gT3ZlcnJpZGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgT3ZlcnJpZGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICBWYXJpYXRpb25zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLnVpLnNxdWFyZS5lbWJlZCB7XG4gIHBhZGRpbmctYm90dG9tOiAxMDAlO1xufVxuLnVpW2NsYXNzKj1cIjQ6M1wiXS5lbWJlZCB7XG4gIHBhZGRpbmctYm90dG9tOiA3NSU7XG59XG4udWlbY2xhc3MqPVwiMTY6OVwiXS5lbWJlZCB7XG4gIHBhZGRpbmctYm90dG9tOiA1Ni4yNSU7XG59XG4udWlbY2xhc3MqPVwiMjE6OVwiXS5lbWJlZCB7XG4gIHBhZGRpbmctYm90dG9tOiA0Mi44NTcxNDI4NiU7XG59XG4vKiFcbiAqICMgU2VtYW50aWMgVUkgLSBNb2RhbFxuICogaHR0cDovL2dpdGh1Yi5jb20vc2VtYW50aWMtb3JnL3NlbWFudGljLXVpL1xuICpcbiAqXG4gKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2VcbiAqIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVRcbiAqXG4gKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qXG5cbuKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVlyAg4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4pWXICAg4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWXXG7ilZrilZDilZDilojilojilZTilZDilZDilZ3ilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKWiOKWiOKVlyDilojilojilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilZTilZDilZDilZDilZDilZ1cbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4pWU4paI4paI4paI4paI4pWU4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilojilojilojilojilojilZdcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVlOKVkOKVkOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4paI4paI4pWR4pWa4paI4paI4pWU4pWd4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilZrilZDilZDilZDilZDilojilojilZFcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWRIOKVmuKVkOKVnSDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZFcbiAgIOKVmuKVkOKVnSAgIOKVmuKVkOKVnSAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWdICAgICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ1cblxuKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIFRoZW1lIFNlbGVjdGlvblxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFRvIG92ZXJyaWRlIGEgdGhlbWUgZm9yIGFuIGluZGl2aWR1YWwgZWxlbWVudFxuICAgc3BlY2lmeSB0aGVtZSBuYW1lIGJlbG93XG4qL1xuLyogR2xvYmFsICovXG4vKiBFbGVtZW50cyAqL1xuLyogQ29sbGVjdGlvbnMgKi9cbi8qIE1vZHVsZXMgKi9cbi8qIFZpZXdzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgRm9sZGVyc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFBhdGggdG8gdGhlbWUgcGFja2FnZXMgKi9cbi8qIFBhdGggdG8gc2l0ZSBvdmVycmlkZSBmb2xkZXIgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBJbXBvcnQgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBJbXBvcnQgRGlyZWN0aXZlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgVGhlbWVcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgU2l0ZSBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0IHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRvcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogUGFja2FnZWQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZG9ycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBDb21wb25lbnQncyBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kb3JzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFNpdGUgdGhlbWUgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgIFVzZXIgR2xvYmFsIFZhcmlhYmxlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIG1hcnNvIGNvbG9ycyAqL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuIENvbXBvbmVudCBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0ICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIE1vZGFsXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogQ2xvc2UgSWNvbiAqL1xuLyogSGVhZGVyICovXG4vKiBDb250ZW50ICovXG4vKiBJbWFnZSAvIERlc2NyaXB0aW9uICovXG4vKiBNb2RhbCBBY3Rpb25zICovXG4vKiBJbm5lciBDbG9zZSBQb3NpdGlvbiAoVGFibGV0L01vYmlsZSkgKi9cbi8qIE1vYmlsZSBQb3NpdGlvbnMgKi9cbi8qIFJlc3BvbnNpdmUgV2lkdGhzICovXG4vKiBDb3VwbGluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgU3RhdGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgVHlwZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEJhc2ljICovXG4vKiBUb3AgQWxpZ25lZCAqL1xuLyogU2Nyb2xsaW5nIE1hcmdpbiAqL1xuLyogU2Nyb2xsaW5nIENvbnRlbnQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgVmFyaWF0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2l6ZSBXaWR0aHMgKi9cbi8qIERlcml2ZWQgUmVzcG9uc2l2ZSBTaXplcyAqL1xuLyogUGFja2FnZWQgVGhlbWUgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgTW9kYWxcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBDbG9zZSBJY29uICovXG4vKiBIZWFkZXIgKi9cbi8qIENvbnRlbnQgKi9cbi8qIEltYWdlIC8gRGVzY3JpcHRpb24gKi9cbi8qIE1vZGFsIEFjdGlvbnMgKi9cbi8qIElubmVyIENsb3NlIFBvc2l0aW9uIChUYWJsZXQvTW9iaWxlKSAqL1xuLyogTW9iaWxlIFBvc2l0aW9ucyAqL1xuLyogUmVzcG9uc2l2ZSBXaWR0aHMgKi9cbi8qIENvdXBsaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBTdGF0ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBUeXBlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogQmFzaWMgKi9cbi8qIFRvcCBBbGlnbmVkICovXG4vKiBTY3JvbGxpbmcgTWFyZ2luICovXG4vKiBTY3JvbGxpbmcgQ29udGVudCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBWYXJpYXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTaXplIFdpZHRocyAqL1xuLyogRGVyaXZlZCBSZXNwb25zaXZlIFNpemVzICovXG4vKiBTaXRlIFRoZW1lICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIE1peC1pbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE92ZXJyaWRlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBFbmQgQ29uZmlnICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIE1vZGFsXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLnVpLm1vZGFsIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgei1pbmRleDogMTAwMTtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbiAgYm9yZGVyOiBub25lO1xuICBib3gtc2hhZG93OiAxcHggM3B4IDNweCAwcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAxcHggM3B4IDE1cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4yKTtcbiAgdHJhbnNmb3JtLW9yaWdpbjogNTAlIDI1JTtcbiAgZmxleDogMCAwIGF1dG87XG4gIGJvcmRlci1yYWRpdXM6IDAuNHJlbTtcbiAgdXNlci1zZWxlY3Q6IHRleHQ7XG4gIHdpbGwtY2hhbmdlOiB0b3AsIGxlZnQsIG1hcmdpbiwgdHJhbnNmb3JtLCBvcGFjaXR5O1xufVxuLnVpLm1vZGFsID4gOmZpcnN0LWNoaWxkOm5vdCguaWNvbiksXG4udWkubW9kYWwgPiAuaWNvbjpmaXJzdC1jaGlsZCArICoge1xuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwLjRyZW07XG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwLjRyZW07XG59XG4udWkubW9kYWwgPiA6bGFzdC1jaGlsZCB7XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDAuNHJlbTtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDAuNHJlbTtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBDb250ZW50XG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgICBDbG9zZVxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5tb2RhbCA+IC5jbG9zZSB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IC0yLjVyZW07XG4gIHJpZ2h0OiAtMi41cmVtO1xuICB6LWluZGV4OiAxO1xuICBvcGFjaXR5OiAwLjg7XG4gIGZvbnQtc2l6ZTogMS4yNWVtO1xuICBjb2xvcjogI2ZmZmZmZjtcbiAgd2lkdGg6IDIuMjVyZW07XG4gIGhlaWdodDogMi4yNXJlbTtcbiAgcGFkZGluZzogMC42MjVyZW0gMHJlbSAwcmVtIDByZW07XG59XG4udWkubW9kYWwgPiAuY2xvc2U6aG92ZXIge1xuICBvcGFjaXR5OiAxO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBIZWFkZXJcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkubW9kYWwgPiAuaGVhZGVyIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZvbnQtZmFtaWx5OiAnRXhvIDInLCAnTGF0bycsIEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7XG4gIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gIG1hcmdpbjogMGVtO1xuICBwYWRkaW5nOiAxLjI1cmVtIDEuNXJlbTtcbiAgYm94LXNoYWRvdzogbm9uZTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44NSk7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpO1xufVxuLnVpLm1vZGFsID4gLmhlYWRlcjpub3QoLnVpKSB7XG4gIGZvbnQtc2l6ZTogMS40cmVtO1xuICBsaW5lLWhlaWdodDogMS4yODU3MTQyOWVtO1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgQ29udGVudFxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5tb2RhbCA+IC5jb250ZW50IHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xuICBmb250LXNpemU6IDFlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgcGFkZGluZzogMS41cmVtO1xuICBiYWNrZ3JvdW5kOiAjRkZGRkZGO1xufVxuLnVpLm1vZGFsID4gLmltYWdlLmNvbnRlbnQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xufVxuLyogSW1hZ2UgKi9cbi51aS5tb2RhbCA+IC5jb250ZW50ID4gLmltYWdlIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZsZXg6IDAgMSBhdXRvO1xuICB3aWR0aDogJyc7XG4gIGFsaWduLXNlbGY6IHRvcDtcbn1cbi51aS5tb2RhbCA+IFtjbGFzcyo9XCJ0b3AgYWxpZ25lZFwiXSB7XG4gIGFsaWduLXNlbGY6IHRvcDtcbn1cbi51aS5tb2RhbCA+IFtjbGFzcyo9XCJtaWRkbGUgYWxpZ25lZFwiXSB7XG4gIGFsaWduLXNlbGY6IG1pZGRsZTtcbn1cbi51aS5tb2RhbCA+IFtjbGFzcyo9XCJzdHJldGNoZWRcIl0ge1xuICBhbGlnbi1zZWxmOiBzdHJldGNoO1xufVxuLyogRGVzY3JpcHRpb24gKi9cbi51aS5tb2RhbCA+IC5jb250ZW50ID4gLmRlc2NyaXB0aW9uIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZsZXg6IDEgMCBhdXRvO1xuICBtaW4td2lkdGg6IDBweDtcbiAgYWxpZ24tc2VsZjogdG9wO1xufVxuLnVpLm1vZGFsID4gLmNvbnRlbnQgPiAuaWNvbiArIC5kZXNjcmlwdGlvbixcbi51aS5tb2RhbCA+IC5jb250ZW50ID4gLmltYWdlICsgLmRlc2NyaXB0aW9uIHtcbiAgZmxleDogMCAxIGF1dG87XG4gIG1pbi13aWR0aDogJyc7XG4gIHdpZHRoOiBhdXRvO1xuICBwYWRkaW5nLWxlZnQ6IDJlbTtcbn1cbi8qcnRsOmlnbm9yZSovXG4udWkubW9kYWwgPiAuY29udGVudCA+IC5pbWFnZSA+IGkuaWNvbiB7XG4gIG1hcmdpbjogMGVtO1xuICBvcGFjaXR5OiAxO1xuICB3aWR0aDogYXV0bztcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGZvbnQtc2l6ZTogOHJlbTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgQWN0aW9uc1xuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5tb2RhbCA+IC5hY3Rpb25zIHtcbiAgYmFja2dyb3VuZDogI0Y5RkFGQjtcbiAgcGFkZGluZzogMXJlbSAxcmVtO1xuICBib3JkZXItdG9wOiAxcHggc29saWQgcmdiYSgzNCwgMzYsIDM4LCAwLjE1KTtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG59XG4udWkubW9kYWwgLmFjdGlvbnMgPiAuYnV0dG9uIHtcbiAgbWFyZ2luLWxlZnQ6IDAuNzVlbTtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIFJlc3BvbnNpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1vZGFsIFdpZHRoICovXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC51aS5tb2RhbCB7XG4gICAgd2lkdGg6IDk1JTtcbiAgICBtYXJnaW46IDBlbSAwZW0gMGVtIDBlbTtcbiAgfVxufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NjhweCkge1xuICAudWkubW9kYWwge1xuICAgIHdpZHRoOiA4OCU7XG4gICAgbWFyZ2luOiAwZW0gMGVtIDBlbSAwZW07XG4gIH1cbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogOTkycHgpIHtcbiAgLnVpLm1vZGFsIHtcbiAgICB3aWR0aDogODUwcHg7XG4gICAgbWFyZ2luOiAwZW0gMGVtIDBlbSAwZW07XG4gIH1cbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTIwMHB4KSB7XG4gIC51aS5tb2RhbCB7XG4gICAgd2lkdGg6IDkwMHB4O1xuICAgIG1hcmdpbjogMGVtIDBlbSAwZW0gMGVtO1xuICB9XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDE5MjBweCkge1xuICAudWkubW9kYWwge1xuICAgIHdpZHRoOiA5NTBweDtcbiAgICBtYXJnaW46IDBlbSAwZW0gMGVtIDBlbTtcbiAgfVxufVxuLyogVGFibGV0IGFuZCBNb2JpbGUgKi9cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogOTkxcHgpIHtcbiAgLnVpLm1vZGFsID4gLmhlYWRlciB7XG4gICAgcGFkZGluZy1yaWdodDogMi4yNXJlbTtcbiAgfVxuICAudWkubW9kYWwgPiAuY2xvc2Uge1xuICAgIHRvcDogMS4wNTM1cmVtO1xuICAgIHJpZ2h0OiAxcmVtO1xuICAgIGNvbG9yOiAjMzMzMzMzO1xuICB9XG59XG4vKiBNb2JpbGUgKi9cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgLnVpLm1vZGFsID4gLmhlYWRlciB7XG4gICAgcGFkZGluZzogMC43NXJlbSAxcmVtICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZy1yaWdodDogMi4yNXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5tb2RhbCA+IC5jb250ZW50IHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwYWRkaW5nOiAxcmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLm1vZGFsID4gLmNsb3NlIHtcbiAgICB0b3A6IDAuNXJlbSAhaW1wb3J0YW50O1xuICAgIHJpZ2h0OiAwLjVyZW0gIWltcG9ydGFudDtcbiAgfVxuICAvKnJ0bDppZ25vcmUqL1xuICAudWkubW9kYWwgLmltYWdlLmNvbnRlbnQge1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIH1cbiAgLnVpLm1vZGFsIC5jb250ZW50ID4gLmltYWdlIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luOiAwZW0gYXV0byAhaW1wb3J0YW50O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBwYWRkaW5nOiAwcmVtIDByZW0gMXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5tb2RhbCA+IC5jb250ZW50ID4gLmltYWdlID4gaS5pY29uIHtcbiAgICBmb250LXNpemU6IDVyZW07XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB9XG4gIC8qcnRsOmlnbm9yZSovXG4gIC51aS5tb2RhbCAuY29udGVudCA+IC5kZXNjcmlwdGlvbiB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgICBtYXJnaW46IDBlbSAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmc6IDFyZW0gMHJlbSAhaW1wb3J0YW50O1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gIH1cbiAgLyogTGV0IEJ1dHRvbnMgU3RhY2sgKi9cbiAgLnVpLm1vZGFsID4gLmFjdGlvbnMge1xuICAgIHBhZGRpbmc6IDFyZW0gMXJlbSAwcmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLm1vZGFsIC5hY3Rpb25zID4gLmJ1dHRvbnMsXG4gIC51aS5tb2RhbCAuYWN0aW9ucyA+IC5idXR0b24ge1xuICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gIH1cbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBDb3VwbGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5pbnZlcnRlZC5kaW1tZXIgPiAudWkubW9kYWwge1xuICBib3gtc2hhZG93OiAxcHggM3B4IDEwcHggMnB4IHJnYmEoMCwgMCwgMCwgMC4yKTtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgVHlwZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4udWkuYmFzaWMubW9kYWwge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyOiBub25lO1xuICBib3JkZXItcmFkaXVzOiAwZW07XG4gIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgY29sb3I6ICNmZmZmZmY7XG59XG4udWkuYmFzaWMubW9kYWwgPiAuaGVhZGVyLFxuLnVpLmJhc2ljLm1vZGFsID4gLmNvbnRlbnQsXG4udWkuYmFzaWMubW9kYWwgPiAuYWN0aW9ucyB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuLnVpLmJhc2ljLm1vZGFsID4gLmhlYWRlciB7XG4gIGNvbG9yOiAjZmZmZmZmO1xufVxuLnVpLmJhc2ljLm1vZGFsID4gLmNsb3NlIHtcbiAgdG9wOiAxcmVtO1xuICByaWdodDogMS41cmVtO1xufVxuLnVpLmludmVydGVkLmRpbW1lciA+IC5iYXNpYy5tb2RhbCB7XG4gIGNvbG9yOiAjMzMzMzMzO1xufVxuLnVpLmludmVydGVkLmRpbW1lciA+IC51aS5iYXNpYy5tb2RhbCA+IC5oZWFkZXIge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg1KTtcbn1cbi8qIFRhYmxldCBhbmQgTW9iaWxlICovXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDk5MXB4KSB7XG4gIC51aS5iYXNpYy5tb2RhbCA+IC5jbG9zZSB7XG4gICAgY29sb3I6ICNmZmZmZmY7XG4gIH1cbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLnVpLmxvYWRpbmcubW9kYWwge1xuICBkaXNwbGF5OiBibG9jaztcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICB6LWluZGV4OiAtMTtcbn1cbi51aS5hY3RpdmUubW9kYWwge1xuICBkaXNwbGF5OiBibG9jaztcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFZhcmlhdGlvbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBUb3AgQWxpZ25lZFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRvcCBBbGlnbmVkIE1vZGFsICovXG4ubW9kYWxzLmRpbW1lcltjbGFzcyo9XCJ0b3AgYWxpZ25lZFwiXSAubW9kYWwge1xuICBtYXJnaW46IDV2aCBhdXRvO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNjcm9sbGluZyBEaW1tZXIgKi9cbi5zY3JvbGxpbmcuZGltbWFibGUuZGltbWVkIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cbi5zY3JvbGxpbmcuZGltbWFibGUgPiAuZGltbWVyIHtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xufVxuLnNjcm9sbGluZy5kaW1tYWJsZS5kaW1tZWQgPiAuZGltbWVyIHtcbiAgb3ZlcmZsb3c6IGF1dG87XG4gIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDtcbn1cbi5zY3JvbGxpbmcuZGltbWFibGUgPiAuZGltbWVyIHtcbiAgcG9zaXRpb246IGZpeGVkO1xufVxuLm1vZGFscy5kaW1tZXIgLnVpLnNjcm9sbGluZy5tb2RhbCB7XG4gIG1hcmdpbjogMXJlbSBhdXRvICFpbXBvcnRhbnQ7XG59XG4vKiBVbmRldGFjaGVkIFNjcm9sbGluZyAqL1xuLnNjcm9sbGluZy51bmRldGFjaGVkLmRpbW1hYmxlLmRpbW1lZCB7XG4gIG92ZXJmbG93OiBhdXRvO1xuICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XG59XG4uc2Nyb2xsaW5nLnVuZGV0YWNoZWQuZGltbWFibGUuZGltbWVkID4gLmRpbW1lciB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG4uc2Nyb2xsaW5nLnVuZGV0YWNoZWQuZGltbWFibGUgLnVpLnNjcm9sbGluZy5tb2RhbCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogNTAlO1xuICBtYXJnaW4tdG9wOiAxcmVtICFpbXBvcnRhbnQ7XG59XG4vKiBTY3JvbGxpbmcgQ29udGVudCAqL1xuLnVpLm1vZGFsIC5zY3JvbGxpbmcuY29udGVudCB7XG4gIG1heC1oZWlnaHQ6IGNhbGMoODB2aCAtIDEwZW0pO1xuICBvdmVyZmxvdzogYXV0bztcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZ1bGwgU2NyZWVuXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmZ1bGxzY3JlZW4ubW9kYWwge1xuICB3aWR0aDogOTUlICFpbXBvcnRhbnQ7XG4gIGxlZnQ6IDBlbSAhaW1wb3J0YW50O1xuICBtYXJnaW46IDFlbSBhdXRvO1xufVxuLnVpLmZ1bGxzY3JlZW4uc2Nyb2xsaW5nLm1vZGFsIHtcbiAgbGVmdDogMGVtICFpbXBvcnRhbnQ7XG59XG4udWkuZnVsbHNjcmVlbi5tb2RhbCA+IC5oZWFkZXIge1xuICBwYWRkaW5nLXJpZ2h0OiAyLjI1cmVtO1xufVxuLnVpLmZ1bGxzY3JlZW4ubW9kYWwgPiAuY2xvc2Uge1xuICB0b3A6IDEuMDUzNXJlbTtcbiAgcmlnaHQ6IDFyZW07XG4gIGNvbG9yOiAjMzMzMzMzO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICAgU2l6ZVxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5tb2RhbCB7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbn1cbi8qIE1pbmkgKi9cbi51aS5taW5pLm1vZGFsID4gLmhlYWRlcjpub3QoLnVpKSB7XG4gIGZvbnQtc2l6ZTogMS4zZW07XG59XG4vKiBNaW5pIE1vZGFsIFdpZHRoICovXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC51aS5taW5pLm1vZGFsIHtcbiAgICB3aWR0aDogOTUlO1xuICAgIG1hcmdpbjogMGVtIDBlbSAwZW0gMGVtO1xuICB9XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC51aS5taW5pLm1vZGFsIHtcbiAgICB3aWR0aDogMzUuMiU7XG4gICAgbWFyZ2luOiAwZW0gMGVtIDBlbSAwZW07XG4gIH1cbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogOTkycHgpIHtcbiAgLnVpLm1pbmkubW9kYWwge1xuICAgIHdpZHRoOiAzNDBweDtcbiAgICBtYXJnaW46IDBlbSAwZW0gMGVtIDBlbTtcbiAgfVxufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMjAwcHgpIHtcbiAgLnVpLm1pbmkubW9kYWwge1xuICAgIHdpZHRoOiAzNjBweDtcbiAgICBtYXJnaW46IDBlbSAwZW0gMGVtIDBlbTtcbiAgfVxufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxOTIwcHgpIHtcbiAgLnVpLm1pbmkubW9kYWwge1xuICAgIHdpZHRoOiAzODBweDtcbiAgICBtYXJnaW46IDBlbSAwZW0gMGVtIDBlbTtcbiAgfVxufVxuLyogbWluaSAqL1xuLnVpLnNtYWxsLm1vZGFsID4gLmhlYWRlcjpub3QoLnVpKSB7XG4gIGZvbnQtc2l6ZTogMS4zZW07XG59XG4vKiBUaW55IE1vZGFsIFdpZHRoICovXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC51aS50aW55Lm1vZGFsIHtcbiAgICB3aWR0aDogOTUlO1xuICAgIG1hcmdpbjogMGVtIDBlbSAwZW0gMGVtO1xuICB9XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC51aS50aW55Lm1vZGFsIHtcbiAgICB3aWR0aDogNTIuOCU7XG4gICAgbWFyZ2luOiAwZW0gMGVtIDBlbSAwZW07XG4gIH1cbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogOTkycHgpIHtcbiAgLnVpLnRpbnkubW9kYWwge1xuICAgIHdpZHRoOiA1MTBweDtcbiAgICBtYXJnaW46IDBlbSAwZW0gMGVtIDBlbTtcbiAgfVxufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMjAwcHgpIHtcbiAgLnVpLnRpbnkubW9kYWwge1xuICAgIHdpZHRoOiA1NDBweDtcbiAgICBtYXJnaW46IDBlbSAwZW0gMGVtIDBlbTtcbiAgfVxufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxOTIwcHgpIHtcbiAgLnVpLnRpbnkubW9kYWwge1xuICAgIHdpZHRoOiA1NzBweDtcbiAgICBtYXJnaW46IDBlbSAwZW0gMGVtIDBlbTtcbiAgfVxufVxuLyogU21hbGwgKi9cbi51aS5zbWFsbC5tb2RhbCA+IC5oZWFkZXI6bm90KC51aSkge1xuICBmb250LXNpemU6IDEuM2VtO1xufVxuLyogU21hbGwgTW9kYWwgV2lkdGggKi9cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgLnVpLnNtYWxsLm1vZGFsIHtcbiAgICB3aWR0aDogOTUlO1xuICAgIG1hcmdpbjogMGVtIDBlbSAwZW0gMGVtO1xuICB9XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC51aS5zbWFsbC5tb2RhbCB7XG4gICAgd2lkdGg6IDcwLjQlO1xuICAgIG1hcmdpbjogMGVtIDBlbSAwZW0gMGVtO1xuICB9XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDk5MnB4KSB7XG4gIC51aS5zbWFsbC5tb2RhbCB7XG4gICAgd2lkdGg6IDY4MHB4O1xuICAgIG1hcmdpbjogMGVtIDBlbSAwZW0gMGVtO1xuICB9XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEyMDBweCkge1xuICAudWkuc21hbGwubW9kYWwge1xuICAgIHdpZHRoOiA3MjBweDtcbiAgICBtYXJnaW46IDBlbSAwZW0gMGVtIDBlbTtcbiAgfVxufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxOTIwcHgpIHtcbiAgLnVpLnNtYWxsLm1vZGFsIHtcbiAgICB3aWR0aDogNzYwcHg7XG4gICAgbWFyZ2luOiAwZW0gMGVtIDBlbSAwZW07XG4gIH1cbn1cbi8qIExhcmdlIE1vZGFsIFdpZHRoICovXG4udWkubGFyZ2UubW9kYWwgPiAuaGVhZGVyIHtcbiAgZm9udC1zaXplOiAxLjZlbTtcbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgLnVpLmxhcmdlLm1vZGFsIHtcbiAgICB3aWR0aDogOTUlO1xuICAgIG1hcmdpbjogMGVtIDBlbSAwZW0gMGVtO1xuICB9XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC51aS5sYXJnZS5tb2RhbCB7XG4gICAgd2lkdGg6IDg4JTtcbiAgICBtYXJnaW46IDBlbSAwZW0gMGVtIDBlbTtcbiAgfVxufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA5OTJweCkge1xuICAudWkubGFyZ2UubW9kYWwge1xuICAgIHdpZHRoOiAxMDIwcHg7XG4gICAgbWFyZ2luOiAwZW0gMGVtIDBlbSAwZW07XG4gIH1cbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTIwMHB4KSB7XG4gIC51aS5sYXJnZS5tb2RhbCB7XG4gICAgd2lkdGg6IDEwODBweDtcbiAgICBtYXJnaW46IDBlbSAwZW0gMGVtIDBlbTtcbiAgfVxufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxOTIwcHgpIHtcbiAgLnVpLmxhcmdlLm1vZGFsIHtcbiAgICB3aWR0aDogMTE0MHB4O1xuICAgIG1hcmdpbjogMGVtIDBlbSAwZW0gMGVtO1xuICB9XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgVGhlbWUgT3ZlcnJpZGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgT3ZlcnJpZGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyohXG4gKiAjIFNlbWFudGljIFVJIC0gTmFnXG4gKiBodHRwOi8vZ2l0aHViLmNvbS9zZW1hbnRpYy1vcmcvc2VtYW50aWMtdWkvXG4gKlxuICpcbiAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZVxuICogaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVFxuICpcbiAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLypcblxu4paI4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWXICDilojilojilZfilojilojilojilojilojilojilojilZfilojilojilojilZcgICDilojilojilojilZfilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZdcbuKVmuKVkOKVkOKWiOKWiOKVlOKVkOKVkOKVneKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWd4paI4paI4paI4paI4pWXIOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVnVxuICAg4paI4paI4pWRICAg4paI4paI4paI4paI4paI4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilZTilojilojilojilojilZTilojilojilZHilojilojilojilojilojilZcgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl1xuICAg4paI4paI4pWRICAg4paI4paI4pWU4pWQ4pWQ4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilojilojilZHilZrilojilojilZTilZ3ilojilojilZHilojilojilZTilZDilZDilZ0gIOKVmuKVkOKVkOKVkOKVkOKWiOKWiOKVkVxuICAg4paI4paI4pWRICAg4paI4paI4pWRICDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilZEg4pWa4pWQ4pWdIOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkVxuICAg4pWa4pWQ4pWdICAg4pWa4pWQ4pWdICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZ0gICAgIOKVmuKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVnVxuXG4qL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgVGhlbWUgU2VsZWN0aW9uXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogVG8gb3ZlcnJpZGUgYSB0aGVtZSBmb3IgYW4gaW5kaXZpZHVhbCBlbGVtZW50XG4gICBzcGVjaWZ5IHRoZW1lIG5hbWUgYmVsb3dcbiovXG4vKiBHbG9iYWwgKi9cbi8qIEVsZW1lbnRzICovXG4vKiBDb2xsZWN0aW9ucyAqL1xuLyogTW9kdWxlcyAqL1xuLyogVmlld3MgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBGb2xkZXJzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogUGF0aCB0byB0aGVtZSBwYWNrYWdlcyAqL1xuLyogUGF0aCB0byBzaXRlIG92ZXJyaWRlIGZvbGRlciAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIEltcG9ydCBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIEltcG9ydCBEaXJlY3RpdmVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBUaGVtZVxuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICBTaXRlIFZhcmlhYmxlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERlZmF1bHQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZG9ycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBQYWNrYWdlZCBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kb3JzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIENvbXBvbmVudCdzIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRvcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogU2l0ZSB0aGVtZSBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgVXNlciBHbG9iYWwgVmFyaWFibGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogbWFyc28gY29sb3JzICovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gQ29tcG9uZW50IFZhcmlhYmxlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERlZmF1bHQgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgTmFnXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgQ29sbGVjdGlvblxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBFbGVtZW50c1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRpdGxlICovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgICBTdGF0ZXNcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBIb3ZlciAqL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgVmFyaWF0aW9uc1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRvcCAvIEJvdHRvbSAqL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBsdXJhbFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBhY2thZ2VkIFRoZW1lICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIE5hZ1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIENvbGxlY3Rpb25cbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgRWxlbWVudHNcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaXRsZSAqL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgICAgU3RhdGVzXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogSG92ZXIgKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIFZhcmlhdGlvbnNcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUb3AgLyBCb3R0b20gKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgICBQbHVyYWxcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBTaXRlIFRoZW1lICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgIFVzZXIgVmFyaWFibGUgT3ZlcnJpZGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBNaXgtaW5zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBPdmVycmlkZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRW5kIENvbmZpZyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBOYWdcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4udWkubmFnIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgb3BhY2l0eTogMC45NTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0b3A6IDBlbTtcbiAgbGVmdDogMHB4O1xuICB6LWluZGV4OiA5OTk7XG4gIG1pbi1oZWlnaHQ6IDBlbTtcbiAgd2lkdGg6IDEwMCU7XG4gIG1hcmdpbjogMGVtO1xuICBwYWRkaW5nOiAwLjc1ZW0gMWVtO1xuICBiYWNrZ3JvdW5kOiAjNTU1NTU1O1xuICBib3gtc2hhZG93OiAwcHggMXB4IDJweCAwcHggcmdiYSgwLCAwLCAwLCAwLjIpO1xuICBmb250LXNpemU6IDFyZW07XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgY29sb3I6ICMzMzMzMzM7XG4gIGJvcmRlci1yYWRpdXM6IDBlbSAwZW0gMC40cmVtIDAuNHJlbTtcbiAgdHJhbnNpdGlvbjogMC4ycyBiYWNrZ3JvdW5kIGVhc2U7XG59XG5hLnVpLm5hZyB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbi51aS5uYWcgPiAudGl0bGUge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1hcmdpbjogMGVtIDAuNWVtO1xuICBjb2xvcjogI2ZmZmZmZjtcbn1cbi51aS5uYWcgPiAuY2xvc2UuaWNvbiB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgb3BhY2l0eTogMC40O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICByaWdodDogMWVtO1xuICBmb250LXNpemU6IDFlbTtcbiAgbWFyZ2luOiAtMC41ZW0gMGVtIDBlbTtcbiAgY29sb3I6ICNmZmZmZmY7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4ycyBlYXNlO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBIb3ZlciAqL1xuLnVpLm5hZzpob3ZlciB7XG4gIGJhY2tncm91bmQ6ICM1NTU1NTU7XG4gIG9wYWNpdHk6IDE7XG59XG4udWkubmFnIC5jbG9zZTpob3ZlciB7XG4gIG9wYWNpdHk6IDE7XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBWYXJpYXRpb25zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgICBTdGF0aWNcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkub3ZlcmxheS5uYWcge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBGaXhlZFxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5maXhlZC5uYWcge1xuICBwb3NpdGlvbjogZml4ZWQ7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIEJvdHRvbVxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5ib3R0b20ubmFncyxcbi51aS5ib3R0b20ubmFnIHtcbiAgYm9yZGVyLXJhZGl1czogMC40cmVtIDAuNHJlbSAwZW0gMGVtO1xuICB0b3A6IGF1dG87XG4gIGJvdHRvbTogMGVtO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBXaGl0ZVxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5pbnZlcnRlZC5uYWdzIC5uYWcsXG4udWkuaW52ZXJ0ZWQubmFnIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0YzRjRGNTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44NSk7XG59XG4udWkuaW52ZXJ0ZWQubmFncyAubmFnIC5jbG9zZSxcbi51aS5pbnZlcnRlZC5uYWdzIC5uYWcgLnRpdGxlLFxuLnVpLmludmVydGVkLm5hZyAuY2xvc2UsXG4udWkuaW52ZXJ0ZWQubmFnIC50aXRsZSB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNCk7XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBHcm91cHNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4udWkubmFncyAubmFnIHtcbiAgYm9yZGVyLXJhZGl1czogMGVtICFpbXBvcnRhbnQ7XG59XG4udWkubmFncyAubmFnOmxhc3QtY2hpbGQge1xuICBib3JkZXItcmFkaXVzOiAwZW0gMGVtIDAuNHJlbSAwLjRyZW07XG59XG4udWkuYm90dG9tLm5hZ3MgLm5hZzpsYXN0LWNoaWxkIHtcbiAgYm9yZGVyLXJhZGl1czogMC40cmVtIDAuNHJlbSAwZW0gMGVtO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFRoZW1lIE92ZXJyaWRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIFVzZXIgT3ZlcnJpZGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyohXG4gKiAjIFNlbWFudGljIFVJIC0gUG9wdXBcbiAqIGh0dHA6Ly9naXRodWIuY29tL3NlbWFudGljLW9yZy9zZW1hbnRpYy11aS9cbiAqXG4gKlxuICogUmVsZWFzZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlXG4gKiBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUXG4gKlxuICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKlxuXG7ilojilojilojilojilojilojilojilojilZfilojilojilZcgIOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKVlyAgIOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl1xu4pWa4pWQ4pWQ4paI4paI4pWU4pWQ4pWQ4pWd4paI4paI4pWRICDilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilojilojilZcg4paI4paI4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWd4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWdXG4gICDilojilojilZEgICDilojilojilojilojilojilojilojilZHilojilojilojilojilojilZcgIOKWiOKWiOKVlOKWiOKWiOKWiOKWiOKVlOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4paI4paI4paI4paI4paI4pWXXG4gICDilojilojilZEgICDilojilojilZTilZDilZDilojilojilZHilojilojilZTilZDilZDilZ0gIOKWiOKWiOKVkeKVmuKWiOKWiOKVlOKVneKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4pWa4pWQ4pWQ4pWQ4pWQ4paI4paI4pWRXG4gICDilojilojilZEgICDilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVkSDilZrilZDilZ0g4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWRXG4gICDilZrilZDilZ0gICDilZrilZDilZ0gIOKVmuKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVneKVmuKVkOKVnSAgICAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWdXG5cbiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBUaGVtZSBTZWxlY3Rpb25cbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBUbyBvdmVycmlkZSBhIHRoZW1lIGZvciBhbiBpbmRpdmlkdWFsIGVsZW1lbnRcbiAgIHNwZWNpZnkgdGhlbWUgbmFtZSBiZWxvd1xuKi9cbi8qIEdsb2JhbCAqL1xuLyogRWxlbWVudHMgKi9cbi8qIENvbGxlY3Rpb25zICovXG4vKiBNb2R1bGVzICovXG4vKiBWaWV3cyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIEZvbGRlcnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBQYXRoIHRvIHRoZW1lIHBhY2thZ2VzICovXG4vKiBQYXRoIHRvIHNpdGUgb3ZlcnJpZGUgZm9sZGVyICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgSW1wb3J0IFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgSW1wb3J0IERpcmVjdGl2ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIFRoZW1lXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgIFNpdGUgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kb3JzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFBhY2thZ2VkIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRvcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogQ29tcG9uZW50J3Mgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZG9ycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBTaXRlIHRoZW1lIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICBVc2VyIEdsb2JhbCBWYXJpYWJsZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBtYXJzbyBjb2xvcnMgKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiBDb21wb25lbnQgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBQb3B1cFxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVsZW1lbnRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIFBhcnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQbGFjZW1lbnQgKi9cbi8qIEhlYWRlciAqL1xuLyogQ29udGVudCBCb3JkZXIgKi9cbi8qIEFycm93ICovXG4vKiBBcnJvdyBjb2xvciBieSBwb3NpdGlvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgVHlwZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRvb2x0aXAgKi9cbi8qIEludmVydGVkICovXG4vKiBBcnJvdyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQ291cGxpbmdcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEdyaWQgSW5zaWRlIFBvcHVwICovXG4vKiAocGFkZGluZyAqIEBtZWRpdW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBTdGF0ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIFZhcmlhdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFdpZGUgKi9cbi8qIEludmVydGVkICovXG4vKiBBcnJvdyBjb2xvciBieSBwb3NpdGlvbiAqL1xuLyogUGFja2FnZWQgVGhlbWUgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgUG9wdXBcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbGVtZW50XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBQYXJ0c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUGxhY2VtZW50ICovXG4vKiBIZWFkZXIgKi9cbi8qIENvbnRlbnQgQm9yZGVyICovXG4vKiBBcnJvdyAqL1xuLyogQXJyb3cgY29sb3IgYnkgcG9zaXRpb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIFR5cGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUb29sdGlwICovXG4vKiBJbnZlcnRlZCAqL1xuLyogQXJyb3cgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIENvdXBsaW5nXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBHcmlkIEluc2lkZSBQb3B1cCAqL1xuLyogKHBhZGRpbmcgKiBAbWVkaXVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgU3RhdGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBWYXJpYXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBXaWRlICovXG4vKiBJbnZlcnRlZCAqL1xuLyogQXJyb3cgY29sb3IgYnkgcG9zaXRpb24gKi9cbi8qIFNpdGUgVGhlbWUgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgVXNlciBWYXJpYWJsZSBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIE1peC1pbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE92ZXJyaWRlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBFbmQgQ29uZmlnICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgUG9wdXBcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4udWkucG9wdXAge1xuICBkaXNwbGF5OiBub25lO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMHB4O1xuICByaWdodDogMHB4O1xuICAvKiBGaXhlcyBjb250ZW50IGJlaW5nIHNxdWlzaGVkIHdoZW4gaW5saW5lIChtb3ogb25seSkgKi9cbiAgbWluLXdpZHRoOiBtaW4tY29udGVudDtcbiAgei1pbmRleDogMTkwMDtcbiAgYm9yZGVyOiAxcHggc29saWQgI0Q0RDRENTtcbiAgbGluZS1oZWlnaHQ6IDEuNDI4NWVtO1xuICBtYXgtd2lkdGg6IDI1MHB4O1xuICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICBwYWRkaW5nOiAwLjgzM2VtIDFlbTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBjb2xvcjogIzMzMzMzMztcbiAgYm9yZGVyLXJhZGl1czogMC40cmVtO1xuICBib3gtc2hhZG93OiAwcHggMnB4IDRweCAwcHggcmdiYSgzNCwgMzYsIDM4LCAwLjEyKSwgMHB4IDJweCAxMHB4IDBweCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpO1xufVxuLnVpLnBvcHVwID4gLmhlYWRlciB7XG4gIHBhZGRpbmc6IDBlbTtcbiAgZm9udC1mYW1pbHk6ICdFeG8gMicsICdMYXRvJywgQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxLjFlbTtcbiAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG4udWkucG9wdXAgPiAuaGVhZGVyICsgLmNvbnRlbnQge1xuICBwYWRkaW5nLXRvcDogMC43ZW07XG59XG4udWkucG9wdXA6YmVmb3JlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBjb250ZW50OiAnJztcbiAgd2lkdGg6IDFlbTtcbiAgaGVpZ2h0OiAxZW07XG4gIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgei1pbmRleDogMjtcbiAgYm94LXNoYWRvdzogMXB4IDFweCAwcHggMHB4ICNiYWJhYmM7XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgVHlwZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgVG9vbHRpcFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIENvbnRlbnQgKi9cbltkYXRhLXRvb2x0aXBdIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuLyogQXJyb3cgKi9cbltkYXRhLXRvb2x0aXBdOmJlZm9yZSB7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGNvbnRlbnQ6ICcnO1xuICBmb250LXNpemU6IDFyZW07XG4gIHdpZHRoOiAxZW07XG4gIGhlaWdodDogMWVtO1xuICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gIHotaW5kZXg6IDI7XG4gIGJveC1zaGFkb3c6IDFweCAxcHggMHB4IDBweCAjYmFiYWJjO1xufVxuLyogUG9wdXAgKi9cbltkYXRhLXRvb2x0aXBdOmFmdGVyIHtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIGNvbnRlbnQ6IGF0dHIoZGF0YS10b29sdGlwKTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgZm9udC1zaXplOiAxcmVtO1xuICBib3JkZXI6IDFweCBzb2xpZCAjRDRENEQ1O1xuICBsaW5lLWhlaWdodDogMS40Mjg1ZW07XG4gIG1heC13aWR0aDogbm9uZTtcbiAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbiAgcGFkZGluZzogMC44MzNlbSAxZW07XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgY29sb3I6ICMzMzMzMzM7XG4gIGJvcmRlci1yYWRpdXM6IDAuNHJlbTtcbiAgYm94LXNoYWRvdzogMHB4IDJweCA0cHggMHB4IHJnYmEoMzQsIDM2LCAzOCwgMC4xMiksIDBweCAycHggMTBweCAwcHggcmdiYSgzNCwgMzYsIDM4LCAwLjE1KTtcbiAgei1pbmRleDogMTtcbn1cbi8qIERlZmF1bHQgUG9zaXRpb24gKFRvcCBDZW50ZXIpICovXG5bZGF0YS10b29sdGlwXTpub3QoW2RhdGEtcG9zaXRpb25dKTpiZWZvcmUge1xuICB0b3A6IGF1dG87XG4gIHJpZ2h0OiBhdXRvO1xuICBib3R0b206IDEwMCU7XG4gIGxlZnQ6IDUwJTtcbiAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbiAgbWFyZ2luLWxlZnQ6IC0wLjFyZW07XG4gIG1hcmdpbi1ib3R0b206IDAuMnJlbTtcbn1cbltkYXRhLXRvb2x0aXBdOm5vdChbZGF0YS1wb3NpdGlvbl0pOmFmdGVyIHtcbiAgbGVmdDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG4gIGJvdHRvbTogMTAwJTtcbiAgbWFyZ2luLWJvdHRvbTogMC43ZW07XG59XG4vKiBBbmltYXRpb24gKi9cbltkYXRhLXRvb2x0aXBdOmJlZm9yZSxcbltkYXRhLXRvb2x0aXBdOmFmdGVyIHtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbn1cbltkYXRhLXRvb2x0aXBdOmJlZm9yZSB7XG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKSBzY2FsZSgwKSAhaW1wb3J0YW50O1xuICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXIgdG9wO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4xcyBlYXNlO1xufVxuW2RhdGEtdG9vbHRpcF06YWZ0ZXIge1xuICBvcGFjaXR5OiAxO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXIgYm90dG9tO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4xcyBlYXNlO1xufVxuW2RhdGEtdG9vbHRpcF06aG92ZXI6YmVmb3JlLFxuW2RhdGEtdG9vbHRpcF06aG92ZXI6YWZ0ZXIge1xuICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICBwb2ludGVyLWV2ZW50czogYXV0bztcbn1cbltkYXRhLXRvb2x0aXBdOmhvdmVyOmJlZm9yZSB7XG4gIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKSBzY2FsZSgxKSAhaW1wb3J0YW50O1xuICBvcGFjaXR5OiAxO1xufVxuLyogQW5pbWF0aW9uIFBvc2l0aW9uICovXG5bZGF0YS10b29sdGlwXTphZnRlcixcbltkYXRhLXRvb2x0aXBdW2RhdGEtcG9zaXRpb249XCJ0b3AgY2VudGVyXCJdOmFmdGVyLFxuW2RhdGEtdG9vbHRpcF1bZGF0YS1wb3NpdGlvbj1cImJvdHRvbSBjZW50ZXJcIl06YWZ0ZXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSkgc2NhbGUoMCkgIWltcG9ydGFudDtcbn1cbltkYXRhLXRvb2x0aXBdOmhvdmVyOmFmdGVyLFxuW2RhdGEtdG9vbHRpcF1bZGF0YS1wb3NpdGlvbj1cImJvdHRvbSBjZW50ZXJcIl06aG92ZXI6YWZ0ZXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSkgc2NhbGUoMSkgIWltcG9ydGFudDtcbn1cbltkYXRhLXRvb2x0aXBdW2RhdGEtcG9zaXRpb249XCJsZWZ0IGNlbnRlclwiXTphZnRlcixcbltkYXRhLXRvb2x0aXBdW2RhdGEtcG9zaXRpb249XCJyaWdodCBjZW50ZXJcIl06YWZ0ZXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgc2NhbGUoMCkgIWltcG9ydGFudDtcbn1cbltkYXRhLXRvb2x0aXBdW2RhdGEtcG9zaXRpb249XCJsZWZ0IGNlbnRlclwiXTpob3ZlcjphZnRlcixcbltkYXRhLXRvb2x0aXBdW2RhdGEtcG9zaXRpb249XCJyaWdodCBjZW50ZXJcIl06aG92ZXI6YWZ0ZXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgc2NhbGUoMSkgIWltcG9ydGFudDtcbn1cbltkYXRhLXRvb2x0aXBdW2RhdGEtcG9zaXRpb249XCJ0b3AgbGVmdFwiXTphZnRlcixcbltkYXRhLXRvb2x0aXBdW2RhdGEtcG9zaXRpb249XCJ0b3AgcmlnaHRcIl06YWZ0ZXIsXG5bZGF0YS10b29sdGlwXVtkYXRhLXBvc2l0aW9uPVwiYm90dG9tIGxlZnRcIl06YWZ0ZXIsXG5bZGF0YS10b29sdGlwXVtkYXRhLXBvc2l0aW9uPVwiYm90dG9tIHJpZ2h0XCJdOmFmdGVyIHtcbiAgdHJhbnNmb3JtOiBzY2FsZSgwKSAhaW1wb3J0YW50O1xufVxuW2RhdGEtdG9vbHRpcF1bZGF0YS1wb3NpdGlvbj1cInRvcCBsZWZ0XCJdOmhvdmVyOmFmdGVyLFxuW2RhdGEtdG9vbHRpcF1bZGF0YS1wb3NpdGlvbj1cInRvcCByaWdodFwiXTpob3ZlcjphZnRlcixcbltkYXRhLXRvb2x0aXBdW2RhdGEtcG9zaXRpb249XCJib3R0b20gbGVmdFwiXTpob3ZlcjphZnRlcixcbltkYXRhLXRvb2x0aXBdW2RhdGEtcG9zaXRpb249XCJib3R0b20gcmlnaHRcIl06aG92ZXI6YWZ0ZXIge1xuICB0cmFuc2Zvcm06IHNjYWxlKDEpICFpbXBvcnRhbnQ7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgSW52ZXJ0ZWRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBBcnJvdyAqL1xuW2RhdGEtdG9vbHRpcF1bZGF0YS1pbnZlcnRlZF06YmVmb3JlIHtcbiAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xufVxuLyogQXJyb3cgUG9zaXRpb24gKi9cbltkYXRhLXRvb2x0aXBdW2RhdGEtaW52ZXJ0ZWRdOmJlZm9yZSB7XG4gIGJhY2tncm91bmQ6ICMwMDAwMDA7XG59XG4vKiBQb3B1cCAgKi9cbltkYXRhLXRvb2x0aXBdW2RhdGEtaW52ZXJ0ZWRdOmFmdGVyIHtcbiAgYmFja2dyb3VuZDogIzAwMDAwMDtcbiAgY29sb3I6ICNmZmZmZmY7XG4gIGJvcmRlcjogbm9uZTtcbiAgYm94LXNoYWRvdzogbm9uZTtcbn1cbltkYXRhLXRvb2x0aXBdW2RhdGEtaW52ZXJ0ZWRdOmFmdGVyIC5oZWFkZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBub25lO1xuICBjb2xvcjogI2ZmZmZmZjtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBQb3NpdGlvblxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRvcCBDZW50ZXIgKi9cbltkYXRhLXBvc2l0aW9uPVwidG9wIGNlbnRlclwiXVtkYXRhLXRvb2x0aXBdOmFmdGVyIHtcbiAgdG9wOiBhdXRvO1xuICByaWdodDogYXV0bztcbiAgbGVmdDogNTAlO1xuICBib3R0b206IDEwMCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbiAgbWFyZ2luLWJvdHRvbTogMC43ZW07XG59XG5bZGF0YS1wb3NpdGlvbj1cInRvcCBjZW50ZXJcIl1bZGF0YS10b29sdGlwXTpiZWZvcmUge1xuICB0b3A6IGF1dG87XG4gIHJpZ2h0OiBhdXRvO1xuICBib3R0b206IDEwMCU7XG4gIGxlZnQ6IDUwJTtcbiAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbiAgbWFyZ2luLWxlZnQ6IC0wLjFyZW07XG4gIG1hcmdpbi1ib3R0b206IDAuMnJlbTtcbn1cbi8qIFRvcCBMZWZ0ICovXG5bZGF0YS1wb3NpdGlvbj1cInRvcCBsZWZ0XCJdW2RhdGEtdG9vbHRpcF06YWZ0ZXIge1xuICB0b3A6IGF1dG87XG4gIHJpZ2h0OiBhdXRvO1xuICBsZWZ0OiAwO1xuICBib3R0b206IDEwMCU7XG4gIG1hcmdpbi1ib3R0b206IDAuN2VtO1xufVxuW2RhdGEtcG9zaXRpb249XCJ0b3AgbGVmdFwiXVtkYXRhLXRvb2x0aXBdOmJlZm9yZSB7XG4gIHRvcDogYXV0bztcbiAgcmlnaHQ6IGF1dG87XG4gIGJvdHRvbTogMTAwJTtcbiAgbGVmdDogMWVtO1xuICBtYXJnaW4tbGVmdDogLTAuMXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMC4ycmVtO1xufVxuLyogVG9wIFJpZ2h0ICovXG5bZGF0YS1wb3NpdGlvbj1cInRvcCByaWdodFwiXVtkYXRhLXRvb2x0aXBdOmFmdGVyIHtcbiAgdG9wOiBhdXRvO1xuICBsZWZ0OiBhdXRvO1xuICByaWdodDogMDtcbiAgYm90dG9tOiAxMDAlO1xuICBtYXJnaW4tYm90dG9tOiAwLjdlbTtcbn1cbltkYXRhLXBvc2l0aW9uPVwidG9wIHJpZ2h0XCJdW2RhdGEtdG9vbHRpcF06YmVmb3JlIHtcbiAgdG9wOiBhdXRvO1xuICBsZWZ0OiBhdXRvO1xuICBib3R0b206IDEwMCU7XG4gIHJpZ2h0OiAxZW07XG4gIG1hcmdpbi1sZWZ0OiAtMC4xcmVtO1xuICBtYXJnaW4tYm90dG9tOiAwLjJyZW07XG59XG4vKiBCb3R0b20gQ2VudGVyICovXG5bZGF0YS1wb3NpdGlvbj1cImJvdHRvbSBjZW50ZXJcIl1bZGF0YS10b29sdGlwXTphZnRlciB7XG4gIGJvdHRvbTogYXV0bztcbiAgcmlnaHQ6IGF1dG87XG4gIGxlZnQ6IDUwJTtcbiAgdG9wOiAxMDAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG4gIG1hcmdpbi10b3A6IDAuN2VtO1xufVxuW2RhdGEtcG9zaXRpb249XCJib3R0b20gY2VudGVyXCJdW2RhdGEtdG9vbHRpcF06YmVmb3JlIHtcbiAgYm90dG9tOiBhdXRvO1xuICByaWdodDogYXV0bztcbiAgdG9wOiAxMDAlO1xuICBsZWZ0OiA1MCU7XG4gIG1hcmdpbi1sZWZ0OiAtMC4xcmVtO1xuICBtYXJnaW4tdG9wOiAwLjJyZW07XG59XG4vKiBCb3R0b20gTGVmdCAqL1xuW2RhdGEtcG9zaXRpb249XCJib3R0b20gbGVmdFwiXVtkYXRhLXRvb2x0aXBdOmFmdGVyIHtcbiAgbGVmdDogMDtcbiAgdG9wOiAxMDAlO1xuICBtYXJnaW4tdG9wOiAwLjdlbTtcbn1cbltkYXRhLXBvc2l0aW9uPVwiYm90dG9tIGxlZnRcIl1bZGF0YS10b29sdGlwXTpiZWZvcmUge1xuICBib3R0b206IGF1dG87XG4gIHJpZ2h0OiBhdXRvO1xuICB0b3A6IDEwMCU7XG4gIGxlZnQ6IDFlbTtcbiAgbWFyZ2luLWxlZnQ6IC0wLjFyZW07XG4gIG1hcmdpbi10b3A6IDAuMnJlbTtcbn1cbi8qIEJvdHRvbSBSaWdodCAqL1xuW2RhdGEtcG9zaXRpb249XCJib3R0b20gcmlnaHRcIl1bZGF0YS10b29sdGlwXTphZnRlciB7XG4gIHJpZ2h0OiAwO1xuICB0b3A6IDEwMCU7XG4gIG1hcmdpbi10b3A6IDAuN2VtO1xufVxuW2RhdGEtcG9zaXRpb249XCJib3R0b20gcmlnaHRcIl1bZGF0YS10b29sdGlwXTpiZWZvcmUge1xuICBib3R0b206IGF1dG87XG4gIGxlZnQ6IGF1dG87XG4gIHRvcDogMTAwJTtcbiAgcmlnaHQ6IDFlbTtcbiAgbWFyZ2luLWxlZnQ6IC0wLjJyZW07XG4gIG1hcmdpbi10b3A6IDAuMXJlbTtcbn1cbi8qIExlZnQgQ2VudGVyICovXG5bZGF0YS1wb3NpdGlvbj1cImxlZnQgY2VudGVyXCJdW2RhdGEtdG9vbHRpcF06YWZ0ZXIge1xuICByaWdodDogMTAwJTtcbiAgdG9wOiA1MCU7XG4gIG1hcmdpbi1yaWdodDogMC43ZW07XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbn1cbltkYXRhLXBvc2l0aW9uPVwibGVmdCBjZW50ZXJcIl1bZGF0YS10b29sdGlwXTpiZWZvcmUge1xuICByaWdodDogMTAwJTtcbiAgdG9wOiA1MCU7XG4gIG1hcmdpbi10b3A6IC0wLjJyZW07XG4gIG1hcmdpbi1yaWdodDogLTAuMXJlbTtcbn1cbi8qIFJpZ2h0IENlbnRlciAqL1xuW2RhdGEtcG9zaXRpb249XCJyaWdodCBjZW50ZXJcIl1bZGF0YS10b29sdGlwXTphZnRlciB7XG4gIGxlZnQ6IDEwMCU7XG4gIHRvcDogNTAlO1xuICBtYXJnaW4tbGVmdDogMC43ZW07XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbn1cbltkYXRhLXBvc2l0aW9uPVwicmlnaHQgY2VudGVyXCJdW2RhdGEtdG9vbHRpcF06YmVmb3JlIHtcbiAgbGVmdDogMTAwJTtcbiAgdG9wOiA1MCU7XG4gIG1hcmdpbi10b3A6IC0wLjFyZW07XG4gIG1hcmdpbi1sZWZ0OiAwLjJyZW07XG59XG4vKiBBcnJvdyAqL1xuW2RhdGEtcG9zaXRpb25+PVwiYm90dG9tXCJdW2RhdGEtdG9vbHRpcF06YmVmb3JlIHtcbiAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbiAgYm94LXNoYWRvdzogLTFweCAtMXB4IDBweCAwcHggI2JhYmFiYztcbn1cbltkYXRhLXBvc2l0aW9uPVwibGVmdCBjZW50ZXJcIl1bZGF0YS10b29sdGlwXTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICBib3gtc2hhZG93OiAxcHggLTFweCAwcHggMHB4ICNiYWJhYmM7XG59XG5bZGF0YS1wb3NpdGlvbj1cInJpZ2h0IGNlbnRlclwiXVtkYXRhLXRvb2x0aXBdOmJlZm9yZSB7XG4gIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gIGJveC1zaGFkb3c6IC0xcHggMXB4IDBweCAwcHggI2JhYmFiYztcbn1cbltkYXRhLXBvc2l0aW9ufj1cInRvcFwiXVtkYXRhLXRvb2x0aXBdOmJlZm9yZSB7XG4gIGJhY2tncm91bmQ6ICNmZmZmZmY7XG59XG4vKiBJbnZlcnRlZCBBcnJvdyBDb2xvciAqL1xuW2RhdGEtaW52ZXJ0ZWRdW2RhdGEtcG9zaXRpb25+PVwiYm90dG9tXCJdW2RhdGEtdG9vbHRpcF06YmVmb3JlIHtcbiAgYmFja2dyb3VuZDogIzAwMDAwMDtcbiAgYm94LXNoYWRvdzogLTFweCAtMXB4IDBweCAwcHggI2JhYmFiYztcbn1cbltkYXRhLWludmVydGVkXVtkYXRhLXBvc2l0aW9uPVwibGVmdCBjZW50ZXJcIl1bZGF0YS10b29sdGlwXTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kOiAjMDAwMDAwO1xuICBib3gtc2hhZG93OiAxcHggLTFweCAwcHggMHB4ICNiYWJhYmM7XG59XG5bZGF0YS1pbnZlcnRlZF1bZGF0YS1wb3NpdGlvbj1cInJpZ2h0IGNlbnRlclwiXVtkYXRhLXRvb2x0aXBdOmJlZm9yZSB7XG4gIGJhY2tncm91bmQ6ICMwMDAwMDA7XG4gIGJveC1zaGFkb3c6IC0xcHggMXB4IDBweCAwcHggI2JhYmFiYztcbn1cbltkYXRhLWludmVydGVkXVtkYXRhLXBvc2l0aW9ufj1cInRvcFwiXVtkYXRhLXRvb2x0aXBdOmJlZm9yZSB7XG4gIGJhY2tncm91bmQ6ICMwMDAwMDA7XG59XG5bZGF0YS1wb3NpdGlvbn49XCJib3R0b21cIl1bZGF0YS10b29sdGlwXTpiZWZvcmUge1xuICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXIgYm90dG9tO1xufVxuW2RhdGEtcG9zaXRpb25+PVwiYm90dG9tXCJdW2RhdGEtdG9vbHRpcF06YWZ0ZXIge1xuICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXIgdG9wO1xufVxuW2RhdGEtcG9zaXRpb249XCJsZWZ0IGNlbnRlclwiXVtkYXRhLXRvb2x0aXBdOmJlZm9yZSB7XG4gIHRyYW5zZm9ybS1vcmlnaW46IHRvcCBjZW50ZXI7XG59XG5bZGF0YS1wb3NpdGlvbj1cImxlZnQgY2VudGVyXCJdW2RhdGEtdG9vbHRpcF06YWZ0ZXIge1xuICB0cmFuc2Zvcm0tb3JpZ2luOiByaWdodCBjZW50ZXI7XG59XG5bZGF0YS1wb3NpdGlvbj1cInJpZ2h0IGNlbnRlclwiXVtkYXRhLXRvb2x0aXBdOmJlZm9yZSB7XG4gIHRyYW5zZm9ybS1vcmlnaW46IHJpZ2h0IGNlbnRlcjtcbn1cbltkYXRhLXBvc2l0aW9uPVwicmlnaHQgY2VudGVyXCJdW2RhdGEtdG9vbHRpcF06YWZ0ZXIge1xuICB0cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IGNlbnRlcjtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgU3BhY2luZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5wb3B1cCB7XG4gIG1hcmdpbjogMGVtO1xufVxuLyogRXh0ZW5kaW5nIGZyb20gVG9wICovXG4udWkudG9wLnBvcHVwIHtcbiAgbWFyZ2luOiAwZW0gMGVtIDFlbTtcbn1cbi51aS50b3AubGVmdC5wb3B1cCB7XG4gIHRyYW5zZm9ybS1vcmlnaW46IGxlZnQgYm90dG9tO1xufVxuLnVpLnRvcC5jZW50ZXIucG9wdXAge1xuICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXIgYm90dG9tO1xufVxuLnVpLnRvcC5yaWdodC5wb3B1cCB7XG4gIHRyYW5zZm9ybS1vcmlnaW46IHJpZ2h0IGJvdHRvbTtcbn1cbi8qIEV4dGVuZGluZyBmcm9tIFZlcnRpY2FsIENlbnRlciAqL1xuLnVpLmxlZnQuY2VudGVyLnBvcHVwIHtcbiAgbWFyZ2luOiAwZW0gMWVtIDBlbSAwZW07XG4gIHRyYW5zZm9ybS1vcmlnaW46IHJpZ2h0IDUwJTtcbn1cbi51aS5yaWdodC5jZW50ZXIucG9wdXAge1xuICBtYXJnaW46IDBlbSAwZW0gMGVtIDFlbTtcbiAgdHJhbnNmb3JtLW9yaWdpbjogbGVmdCA1MCU7XG59XG4vKiBFeHRlbmRpbmcgZnJvbSBCb3R0b20gKi9cbi51aS5ib3R0b20ucG9wdXAge1xuICBtYXJnaW46IDFlbSAwZW0gMGVtO1xufVxuLnVpLmJvdHRvbS5sZWZ0LnBvcHVwIHtcbiAgdHJhbnNmb3JtLW9yaWdpbjogbGVmdCB0b3A7XG59XG4udWkuYm90dG9tLmNlbnRlci5wb3B1cCB7XG4gIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciB0b3A7XG59XG4udWkuYm90dG9tLnJpZ2h0LnBvcHVwIHtcbiAgdHJhbnNmb3JtLW9yaWdpbjogcmlnaHQgdG9wO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBQb2ludGVyXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gQmVsb3cgLS0tKi9cbi51aS5ib3R0b20uY2VudGVyLnBvcHVwOmJlZm9yZSB7XG4gIG1hcmdpbi1sZWZ0OiAtMC40NWVtO1xuICB0b3A6IC0wLjQ1ZW07XG4gIGxlZnQ6IDUwJTtcbiAgcmlnaHQ6IGF1dG87XG4gIGJvdHRvbTogYXV0bztcbiAgYm94LXNoYWRvdzogLTFweCAtMXB4IDBweCAwcHggI2JhYmFiYztcbn1cbi51aS5ib3R0b20ubGVmdC5wb3B1cCB7XG4gIG1hcmdpbi1sZWZ0OiAwZW07XG59XG4vKnJ0bDpyZW5hbWUqL1xuLnVpLmJvdHRvbS5sZWZ0LnBvcHVwOmJlZm9yZSB7XG4gIHRvcDogLTAuNDVlbTtcbiAgbGVmdDogMWVtO1xuICByaWdodDogYXV0bztcbiAgYm90dG9tOiBhdXRvO1xuICBtYXJnaW4tbGVmdDogMGVtO1xuICBib3gtc2hhZG93OiAtMXB4IC0xcHggMHB4IDBweCAjYmFiYWJjO1xufVxuLnVpLmJvdHRvbS5yaWdodC5wb3B1cCB7XG4gIG1hcmdpbi1yaWdodDogMGVtO1xufVxuLypydGw6cmVuYW1lKi9cbi51aS5ib3R0b20ucmlnaHQucG9wdXA6YmVmb3JlIHtcbiAgdG9wOiAtMC40NWVtO1xuICByaWdodDogMWVtO1xuICBib3R0b206IGF1dG87XG4gIGxlZnQ6IGF1dG87XG4gIG1hcmdpbi1sZWZ0OiAwZW07XG4gIGJveC1zaGFkb3c6IC0xcHggLTFweCAwcHggMHB4ICNiYWJhYmM7XG59XG4vKi0tLSBBYm92ZSAtLS0qL1xuLnVpLnRvcC5jZW50ZXIucG9wdXA6YmVmb3JlIHtcbiAgdG9wOiBhdXRvO1xuICByaWdodDogYXV0bztcbiAgYm90dG9tOiAtMC40NWVtO1xuICBsZWZ0OiA1MCU7XG4gIG1hcmdpbi1sZWZ0OiAtMC40NWVtO1xufVxuLnVpLnRvcC5sZWZ0LnBvcHVwIHtcbiAgbWFyZ2luLWxlZnQ6IDBlbTtcbn1cbi8qcnRsOnJlbmFtZSovXG4udWkudG9wLmxlZnQucG9wdXA6YmVmb3JlIHtcbiAgYm90dG9tOiAtMC40NWVtO1xuICBsZWZ0OiAxZW07XG4gIHRvcDogYXV0bztcbiAgcmlnaHQ6IGF1dG87XG4gIG1hcmdpbi1sZWZ0OiAwZW07XG59XG4udWkudG9wLnJpZ2h0LnBvcHVwIHtcbiAgbWFyZ2luLXJpZ2h0OiAwZW07XG59XG4vKnJ0bDpyZW5hbWUqL1xuLnVpLnRvcC5yaWdodC5wb3B1cDpiZWZvcmUge1xuICBib3R0b206IC0wLjQ1ZW07XG4gIHJpZ2h0OiAxZW07XG4gIHRvcDogYXV0bztcbiAgbGVmdDogYXV0bztcbiAgbWFyZ2luLWxlZnQ6IDBlbTtcbn1cbi8qLS0tIExlZnQgQ2VudGVyIC0tLSovXG4vKnJ0bDpyZW5hbWUqL1xuLnVpLmxlZnQuY2VudGVyLnBvcHVwOmJlZm9yZSB7XG4gIHRvcDogNTAlO1xuICByaWdodDogLTAuNDVlbTtcbiAgYm90dG9tOiBhdXRvO1xuICBsZWZ0OiBhdXRvO1xuICBtYXJnaW4tdG9wOiAtMC40NWVtO1xuICBib3gtc2hhZG93OiAxcHggLTFweCAwcHggMHB4ICNiYWJhYmM7XG59XG4vKi0tLSBSaWdodCBDZW50ZXIgIC0tLSovXG4vKnJ0bDpyZW5hbWUqL1xuLnVpLnJpZ2h0LmNlbnRlci5wb3B1cDpiZWZvcmUge1xuICB0b3A6IDUwJTtcbiAgbGVmdDogLTAuNDVlbTtcbiAgYm90dG9tOiBhdXRvO1xuICByaWdodDogYXV0bztcbiAgbWFyZ2luLXRvcDogLTAuNDVlbTtcbiAgYm94LXNoYWRvdzogLTFweCAxcHggMHB4IDBweCAjYmFiYWJjO1xufVxuLyogQXJyb3cgQ29sb3IgQnkgTG9jYXRpb24gKi9cbi51aS5ib3R0b20ucG9wdXA6YmVmb3JlIHtcbiAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbn1cbi51aS5yaWdodC5jZW50ZXIucG9wdXA6YmVmb3JlLFxuLnVpLmxlZnQuY2VudGVyLnBvcHVwOmJlZm9yZSB7XG4gIGJhY2tncm91bmQ6ICNmZmZmZmY7XG59XG4udWkudG9wLnBvcHVwOmJlZm9yZSB7XG4gIGJhY2tncm91bmQ6ICNmZmZmZmY7XG59XG4vKiBJbnZlcnRlZCBBcnJvdyBDb2xvciAqL1xuLnVpLmludmVydGVkLmJvdHRvbS5wb3B1cDpiZWZvcmUge1xuICBiYWNrZ3JvdW5kOiAjMDAwMDAwO1xufVxuLnVpLmludmVydGVkLnJpZ2h0LmNlbnRlci5wb3B1cDpiZWZvcmUsXG4udWkuaW52ZXJ0ZWQubGVmdC5jZW50ZXIucG9wdXA6YmVmb3JlIHtcbiAgYmFja2dyb3VuZDogIzAwMDAwMDtcbn1cbi51aS5pbnZlcnRlZC50b3AucG9wdXA6YmVmb3JlIHtcbiAgYmFja2dyb3VuZDogIzAwMDAwMDtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBDb3VwbGluZ1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIEltbWVkaWF0ZSBOZXN0ZWQgR3JpZCAqL1xuLnVpLnBvcHVwID4gLnVpLmdyaWQ6bm90KC5wYWRkZWQpIHtcbiAgd2lkdGg6IGNhbGMoMTAwJSArIDEuNzVyZW0pO1xuICBtYXJnaW46IC0wLjdyZW0gLTAuODc1cmVtO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi51aS5sb2FkaW5nLnBvcHVwIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgei1pbmRleDogLTE7XG59XG4udWkuYW5pbWF0aW5nLnBvcHVwLFxuLnVpLnZpc2libGUucG9wdXAge1xuICBkaXNwbGF5OiBibG9jaztcbn1cbi51aS52aXNpYmxlLnBvcHVwIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDBweCk7XG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBWYXJpYXRpb25zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgICBCYXNpY1xuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5iYXNpYy5wb3B1cDpiZWZvcmUge1xuICBkaXNwbGF5OiBub25lO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBXaWRlXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLndpZGUucG9wdXAge1xuICBtYXgtd2lkdGg6IDM1MHB4O1xufVxuLnVpW2NsYXNzKj1cInZlcnkgd2lkZVwiXS5wb3B1cCB7XG4gIG1heC13aWR0aDogNTUwcHg7XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC51aS53aWRlLnBvcHVwLFxuICAudWlbY2xhc3MqPVwidmVyeSB3aWRlXCJdLnBvcHVwIHtcbiAgICBtYXgtd2lkdGg6IDI1MHB4O1xuICB9XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIEZsdWlkXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmZsdWlkLnBvcHVwIHtcbiAgd2lkdGg6IDEwMCU7XG4gIG1heC13aWR0aDogbm9uZTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgY29sb3JzICAqL1xuLnVpLmludmVydGVkLnBvcHVwIHtcbiAgYmFja2dyb3VuZDogIzAwMDAwMDtcbiAgY29sb3I6ICNmZmZmZmY7XG4gIGJvcmRlcjogbm9uZTtcbiAgYm94LXNoYWRvdzogbm9uZTtcbn1cbi51aS5pbnZlcnRlZC5wb3B1cCAuaGVhZGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogbm9uZTtcbiAgY29sb3I6ICNmZmZmZmY7XG59XG4udWkuaW52ZXJ0ZWQucG9wdXA6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDAwMDtcbiAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBGbG93aW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmZsb3dpbmcucG9wdXAge1xuICBtYXgtd2lkdGg6IG5vbmU7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLm1pbmkucG9wdXAge1xuICBmb250LXNpemU6IDAuOHJlbTtcbn1cbi51aS50aW55LnBvcHVwIHtcbiAgZm9udC1zaXplOiAwLjlyZW07XG59XG4udWkuc21hbGwucG9wdXAge1xuICBmb250LXNpemU6IDAuOXJlbTtcbn1cbi51aS5wb3B1cCB7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbn1cbi51aS5sYXJnZS5wb3B1cCB7XG4gIGZvbnQtc2l6ZTogMS4xcmVtO1xufVxuLnVpLmh1Z2UucG9wdXAge1xuICBmb250LXNpemU6IDEuNHJlbTtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBUaGVtZSBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBVc2VyIE92ZXJyaWRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIVxuICogIyBTZW1hbnRpYyBVSSAtIFByb2dyZXNzIEJhclxuICogaHR0cDovL2dpdGh1Yi5jb20vc2VtYW50aWMtb3JnL3NlbWFudGljLXVpL1xuICpcbiAqXG4gKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2VcbiAqIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVRcbiAqXG4gKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qXG5cbuKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVlyAg4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4pWXICAg4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWXXG7ilZrilZDilZDilojilojilZTilZDilZDilZ3ilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKWiOKWiOKVlyDilojilojilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilZTilZDilZDilZDilZDilZ1cbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4pWU4paI4paI4paI4paI4pWU4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilojilojilojilojilojilZdcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVlOKVkOKVkOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4paI4paI4pWR4pWa4paI4paI4pWU4pWd4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilZrilZDilZDilZDilZDilojilojilZFcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWRIOKVmuKVkOKVnSDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZFcbiAgIOKVmuKVkOKVnSAgIOKVmuKVkOKVnSAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWdICAgICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ1cblxuKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIFRoZW1lIFNlbGVjdGlvblxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFRvIG92ZXJyaWRlIGEgdGhlbWUgZm9yIGFuIGluZGl2aWR1YWwgZWxlbWVudFxuICAgc3BlY2lmeSB0aGVtZSBuYW1lIGJlbG93XG4qL1xuLyogR2xvYmFsICovXG4vKiBFbGVtZW50cyAqL1xuLyogQ29sbGVjdGlvbnMgKi9cbi8qIE1vZHVsZXMgKi9cbi8qIFZpZXdzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgRm9sZGVyc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFBhdGggdG8gdGhlbWUgcGFja2FnZXMgKi9cbi8qIFBhdGggdG8gc2l0ZSBvdmVycmlkZSBmb2xkZXIgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBJbXBvcnQgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBJbXBvcnQgRGlyZWN0aXZlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgVGhlbWVcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgU2l0ZSBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0IHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRvcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogUGFja2FnZWQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZG9ycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBDb21wb25lbnQncyBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kb3JzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFNpdGUgdGhlbWUgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgIFVzZXIgR2xvYmFsIFZhcmlhYmxlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIG1hcnNvIGNvbG9ycyAqL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuIENvbXBvbmVudCBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0ICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgUHJvZ3Jlc3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbGVtZW50XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBCYXIgKi9cbi8qIFByb2dyZXNzIEJhciBMYWJlbCAqL1xuLyogTGFiZWwgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBUeXBlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFN0YXRlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogQWN0aXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFZhcmlhdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEF0dGFjaGVkICovXG4vKiBJbnZlcnRlZCAqL1xuLyogU2l6aW5nICovXG4vKiBQYWNrYWdlZCBUaGVtZSAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFByb2dyZXNzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRWxlbWVudFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogQmFyICovXG4vKiBQcm9ncmVzcyBCYXIgTGFiZWwgKi9cbi8qIExhYmVsICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgVHlwZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTdGF0ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEFjdGl2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBWYXJpYXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBBdHRhY2hlZCAqL1xuLyogSW52ZXJ0ZWQgKi9cbi8qIFNpemluZyAqL1xuLyogU2l0ZSBUaGVtZSAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICBVc2VyIFZhcmlhYmxlIE92ZXJyaWRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgTWl4LWluc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgT3ZlcnJpZGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEVuZCBDb25maWcgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBQcm9ncmVzc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi51aS5wcm9ncmVzcyB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgYm9yZGVyOiBub25lO1xuICBtYXJnaW46IDFlbSAwZW0gMi41ZW07XG4gIGJveC1zaGFkb3c6IG5vbmU7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgcGFkZGluZzogMGVtO1xuICBib3JkZXItcmFkaXVzOiAwLjRyZW07XG59XG4udWkucHJvZ3Jlc3M6Zmlyc3QtY2hpbGQge1xuICBtYXJnaW46IDBlbSAwZW0gMi41ZW07XG59XG4udWkucHJvZ3Jlc3M6bGFzdC1jaGlsZCB7XG4gIG1hcmdpbjogMGVtIDBlbSAxLjVlbTtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBDb250ZW50XG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogQWN0aXZpdHkgQmFyICovXG4udWkucHJvZ3Jlc3MgLmJhciB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBsaW5lLWhlaWdodDogMTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogMCU7XG4gIG1pbi13aWR0aDogMmVtO1xuICBiYWNrZ3JvdW5kOiAjODg4ODg4O1xuICBib3JkZXItcmFkaXVzOiAwLjRyZW07XG4gIHRyYW5zaXRpb246IHdpZHRoIDAuMXMgZWFzZSwgYmFja2dyb3VuZC1jb2xvciAwLjFzIGVhc2U7XG59XG4vKiBQZXJjZW50IENvbXBsZXRlICovXG4udWkucHJvZ3Jlc3MgLmJhciA+IC5wcm9ncmVzcyB7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IGF1dG87XG4gIGZvbnQtc2l6ZTogMC45ZW07XG4gIHRvcDogNTAlO1xuICByaWdodDogMC41ZW07XG4gIGxlZnQ6IGF1dG87XG4gIGJvdHRvbTogYXV0bztcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KTtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG4gIG1hcmdpbi10b3A6IC0wLjVlbTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG59XG4vKiBMYWJlbCAqL1xuLnVpLnByb2dyZXNzID4gLmxhYmVsIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogMTAwJTtcbiAgZm9udC1zaXplOiAxZW07XG4gIHRvcDogMTAwJTtcbiAgcmlnaHQ6IGF1dG87XG4gIGxlZnQ6IDAlO1xuICBib3R0b206IGF1dG87XG4gIGNvbG9yOiAjMzMzMzMzO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG4gIG1hcmdpbi10b3A6IDAuMmVtO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHRyYW5zaXRpb246IGNvbG9yIDAuNHMgZWFzZTtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBUeXBlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIEluZGljYXRpbmcgKi9cbi51aS5pbmRpY2F0aW5nLnByb2dyZXNzW2RhdGEtcGVyY2VudF49XCIxXCJdIC5iYXIsXG4udWkuaW5kaWNhdGluZy5wcm9ncmVzc1tkYXRhLXBlcmNlbnRePVwiMlwiXSAuYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0Q5NUM1Qztcbn1cbi51aS5pbmRpY2F0aW5nLnByb2dyZXNzW2RhdGEtcGVyY2VudF49XCIzXCJdIC5iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRUZCQzcyO1xufVxuLnVpLmluZGljYXRpbmcucHJvZ3Jlc3NbZGF0YS1wZXJjZW50Xj1cIjRcIl0gLmJhcixcbi51aS5pbmRpY2F0aW5nLnByb2dyZXNzW2RhdGEtcGVyY2VudF49XCI1XCJdIC5iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRTZCQjQ4O1xufVxuLnVpLmluZGljYXRpbmcucHJvZ3Jlc3NbZGF0YS1wZXJjZW50Xj1cIjZcIl0gLmJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNEREM5Mjg7XG59XG4udWkuaW5kaWNhdGluZy5wcm9ncmVzc1tkYXRhLXBlcmNlbnRePVwiN1wiXSAuYmFyLFxuLnVpLmluZGljYXRpbmcucHJvZ3Jlc3NbZGF0YS1wZXJjZW50Xj1cIjhcIl0gLmJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNCNEQ5NUM7XG59XG4udWkuaW5kaWNhdGluZy5wcm9ncmVzc1tkYXRhLXBlcmNlbnRePVwiOVwiXSAuYmFyLFxuLnVpLmluZGljYXRpbmcucHJvZ3Jlc3NbZGF0YS1wZXJjZW50Xj1cIjEwMFwiXSAuYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzY2REE4MTtcbn1cbi8qIEluZGljYXRpbmcgTGFiZWwgKi9cbi51aS5pbmRpY2F0aW5nLnByb2dyZXNzW2RhdGEtcGVyY2VudF49XCIxXCJdIC5sYWJlbCxcbi51aS5pbmRpY2F0aW5nLnByb2dyZXNzW2RhdGEtcGVyY2VudF49XCIyXCJdIC5sYWJlbCB7XG4gIGNvbG9yOiAjMzMzMzMzO1xufVxuLnVpLmluZGljYXRpbmcucHJvZ3Jlc3NbZGF0YS1wZXJjZW50Xj1cIjNcIl0gLmxhYmVsIHtcbiAgY29sb3I6ICMzMzMzMzM7XG59XG4udWkuaW5kaWNhdGluZy5wcm9ncmVzc1tkYXRhLXBlcmNlbnRePVwiNFwiXSAubGFiZWwsXG4udWkuaW5kaWNhdGluZy5wcm9ncmVzc1tkYXRhLXBlcmNlbnRePVwiNVwiXSAubGFiZWwge1xuICBjb2xvcjogIzMzMzMzMztcbn1cbi51aS5pbmRpY2F0aW5nLnByb2dyZXNzW2RhdGEtcGVyY2VudF49XCI2XCJdIC5sYWJlbCB7XG4gIGNvbG9yOiAjMzMzMzMzO1xufVxuLnVpLmluZGljYXRpbmcucHJvZ3Jlc3NbZGF0YS1wZXJjZW50Xj1cIjdcIl0gLmxhYmVsLFxuLnVpLmluZGljYXRpbmcucHJvZ3Jlc3NbZGF0YS1wZXJjZW50Xj1cIjhcIl0gLmxhYmVsIHtcbiAgY29sb3I6ICMzMzMzMzM7XG59XG4udWkuaW5kaWNhdGluZy5wcm9ncmVzc1tkYXRhLXBlcmNlbnRePVwiOVwiXSAubGFiZWwsXG4udWkuaW5kaWNhdGluZy5wcm9ncmVzc1tkYXRhLXBlcmNlbnRePVwiMTAwXCJdIC5sYWJlbCB7XG4gIGNvbG9yOiAjMzMzMzMzO1xufVxuLyogU2luZ2xlIERpZ2l0cyAqL1xuLnVpLmluZGljYXRpbmcucHJvZ3Jlc3NbZGF0YS1wZXJjZW50PVwiMVwiXSAuYmFyLFxuLnVpLmluZGljYXRpbmcucHJvZ3Jlc3NbZGF0YS1wZXJjZW50PVwiMlwiXSAuYmFyLFxuLnVpLmluZGljYXRpbmcucHJvZ3Jlc3NbZGF0YS1wZXJjZW50PVwiM1wiXSAuYmFyLFxuLnVpLmluZGljYXRpbmcucHJvZ3Jlc3NbZGF0YS1wZXJjZW50PVwiNFwiXSAuYmFyLFxuLnVpLmluZGljYXRpbmcucHJvZ3Jlc3NbZGF0YS1wZXJjZW50PVwiNVwiXSAuYmFyLFxuLnVpLmluZGljYXRpbmcucHJvZ3Jlc3NbZGF0YS1wZXJjZW50PVwiNlwiXSAuYmFyLFxuLnVpLmluZGljYXRpbmcucHJvZ3Jlc3NbZGF0YS1wZXJjZW50PVwiN1wiXSAuYmFyLFxuLnVpLmluZGljYXRpbmcucHJvZ3Jlc3NbZGF0YS1wZXJjZW50PVwiOFwiXSAuYmFyLFxuLnVpLmluZGljYXRpbmcucHJvZ3Jlc3NbZGF0YS1wZXJjZW50PVwiOVwiXSAuYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0Q5NUM1Qztcbn1cbi51aS5pbmRpY2F0aW5nLnByb2dyZXNzW2RhdGEtcGVyY2VudD1cIjFcIl0gLmxhYmVsLFxuLnVpLmluZGljYXRpbmcucHJvZ3Jlc3NbZGF0YS1wZXJjZW50PVwiMlwiXSAubGFiZWwsXG4udWkuaW5kaWNhdGluZy5wcm9ncmVzc1tkYXRhLXBlcmNlbnQ9XCIzXCJdIC5sYWJlbCxcbi51aS5pbmRpY2F0aW5nLnByb2dyZXNzW2RhdGEtcGVyY2VudD1cIjRcIl0gLmxhYmVsLFxuLnVpLmluZGljYXRpbmcucHJvZ3Jlc3NbZGF0YS1wZXJjZW50PVwiNVwiXSAubGFiZWwsXG4udWkuaW5kaWNhdGluZy5wcm9ncmVzc1tkYXRhLXBlcmNlbnQ9XCI2XCJdIC5sYWJlbCxcbi51aS5pbmRpY2F0aW5nLnByb2dyZXNzW2RhdGEtcGVyY2VudD1cIjdcIl0gLmxhYmVsLFxuLnVpLmluZGljYXRpbmcucHJvZ3Jlc3NbZGF0YS1wZXJjZW50PVwiOFwiXSAubGFiZWwsXG4udWkuaW5kaWNhdGluZy5wcm9ncmVzc1tkYXRhLXBlcmNlbnQ9XCI5XCJdIC5sYWJlbCB7XG4gIGNvbG9yOiAjMzMzMzMzO1xufVxuLyogSW5kaWNhdGluZyBTdWNjZXNzICovXG4udWkuaW5kaWNhdGluZy5wcm9ncmVzcy5zdWNjZXNzIC5sYWJlbCB7XG4gIGNvbG9yOiAjMUE1MzFCO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIFN1Y2Nlc3Ncbi0tLS0tLS0tLS0tLS0tLSovXG4udWkucHJvZ3Jlc3Muc3VjY2VzcyAuYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzE5YTUzMSAhaW1wb3J0YW50O1xufVxuLnVpLnByb2dyZXNzLnN1Y2Nlc3MgLmJhcixcbi51aS5wcm9ncmVzcy5zdWNjZXNzIC5iYXI6OmFmdGVyIHtcbiAgYW5pbWF0aW9uOiBub25lICFpbXBvcnRhbnQ7XG59XG4udWkucHJvZ3Jlc3Muc3VjY2VzcyA+IC5sYWJlbCB7XG4gIGNvbG9yOiAjMUE1MzFCO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBXYXJuaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLnByb2dyZXNzLndhcm5pbmcgLmJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGMkMwMzcgIWltcG9ydGFudDtcbn1cbi51aS5wcm9ncmVzcy53YXJuaW5nIC5iYXIsXG4udWkucHJvZ3Jlc3Mud2FybmluZyAuYmFyOjphZnRlciB7XG4gIGFuaW1hdGlvbjogbm9uZSAhaW1wb3J0YW50O1xufVxuLnVpLnByb2dyZXNzLndhcm5pbmcgPiAubGFiZWwge1xuICBjb2xvcjogIzc5NEIwMjtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgRXJyb3Jcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkucHJvZ3Jlc3MuZXJyb3IgLmJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkZTNhM2UgIWltcG9ydGFudDtcbn1cbi51aS5wcm9ncmVzcy5lcnJvciAuYmFyLFxuLnVpLnByb2dyZXNzLmVycm9yIC5iYXI6OmFmdGVyIHtcbiAgYW5pbWF0aW9uOiBub25lICFpbXBvcnRhbnQ7XG59XG4udWkucHJvZ3Jlc3MuZXJyb3IgPiAubGFiZWwge1xuICBjb2xvcjogIzkxMkQyQjtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmFjdGl2ZS5wcm9ncmVzcyAuYmFyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtaW4td2lkdGg6IDJlbTtcbn1cbi51aS5hY3RpdmUucHJvZ3Jlc3MgLmJhcjo6YWZ0ZXIge1xuICBjb250ZW50OiAnJztcbiAgb3BhY2l0eTogMDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDBweDtcbiAgbGVmdDogMHB4O1xuICByaWdodDogMHB4O1xuICBib3R0b206IDBweDtcbiAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbiAgYm9yZGVyLXJhZGl1czogMC40cmVtO1xuICBhbmltYXRpb246IHByb2dyZXNzLWFjdGl2ZSAycyBlYXNlIGluZmluaXRlO1xufVxuQGtleWZyYW1lcyBwcm9ncmVzcy1hY3RpdmUge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMC4zO1xuICAgIHdpZHRoOiAwO1xuICB9XG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5kaXNhYmxlZC5wcm9ncmVzcyB7XG4gIG9wYWNpdHk6IDAuMzU7XG59XG4udWkuZGlzYWJsZWQucHJvZ3Jlc3MgLmJhcixcbi51aS5kaXNhYmxlZC5wcm9ncmVzcyAuYmFyOjphZnRlciB7XG4gIGFuaW1hdGlvbjogbm9uZSAhaW1wb3J0YW50O1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgVmFyaWF0aW9uc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBJbnZlcnRlZFxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5pbnZlcnRlZC5wcm9ncmVzcyB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wOCk7XG4gIGJvcmRlcjogbm9uZTtcbn1cbi51aS5pbnZlcnRlZC5wcm9ncmVzcyAuYmFyIHtcbiAgYmFja2dyb3VuZDogIzg4ODg4ODtcbn1cbi51aS5pbnZlcnRlZC5wcm9ncmVzcyAuYmFyID4gLnByb2dyZXNzIHtcbiAgY29sb3I6ICNGOUZBRkI7XG59XG4udWkuaW52ZXJ0ZWQucHJvZ3Jlc3MgPiAubGFiZWwge1xuICBjb2xvcjogI2ZmZmZmZjtcbn1cbi51aS5pbnZlcnRlZC5wcm9ncmVzcy5zdWNjZXNzID4gLmxhYmVsIHtcbiAgY29sb3I6ICMxOWE1MzE7XG59XG4udWkuaW52ZXJ0ZWQucHJvZ3Jlc3Mud2FybmluZyA+IC5sYWJlbCB7XG4gIGNvbG9yOiAjRjJDMDM3O1xufVxuLnVpLmludmVydGVkLnByb2dyZXNzLmVycm9yID4gLmxhYmVsIHtcbiAgY29sb3I6ICNkZTNhM2U7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgQXR0YWNoZWRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBib3R0b20gYXR0YWNoZWQgKi9cbi51aS5wcm9ncmVzcy5hdHRhY2hlZCB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJvcmRlcjogbm9uZTtcbiAgbWFyZ2luOiAwZW07XG59XG4udWkucHJvZ3Jlc3MuYXR0YWNoZWQsXG4udWkucHJvZ3Jlc3MuYXR0YWNoZWQgLmJhciB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBoZWlnaHQ6IDAuMnJlbTtcbiAgcGFkZGluZzogMHB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBib3JkZXItcmFkaXVzOiAwZW0gMGVtIDAuNHJlbSAwLjRyZW07XG59XG4udWkucHJvZ3Jlc3MuYXR0YWNoZWQgLmJhciB7XG4gIGJvcmRlci1yYWRpdXM6IDBlbTtcbn1cbi8qIHRvcCBhdHRhY2hlZCAqL1xuLnVpLnByb2dyZXNzLnRvcC5hdHRhY2hlZCxcbi51aS5wcm9ncmVzcy50b3AuYXR0YWNoZWQgLmJhciB7XG4gIHRvcDogMHB4O1xuICBib3JkZXItcmFkaXVzOiAwLjRyZW0gMC40cmVtIDBlbSAwZW07XG59XG4udWkucHJvZ3Jlc3MudG9wLmF0dGFjaGVkIC5iYXIge1xuICBib3JkZXItcmFkaXVzOiAwZW07XG59XG4vKiBDb3VwbGluZyAqL1xuLnVpLnNlZ21lbnQgPiAudWkuYXR0YWNoZWQucHJvZ3Jlc3MsXG4udWkuY2FyZCA+IC51aS5hdHRhY2hlZC5wcm9ncmVzcyB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiBhdXRvO1xuICBsZWZ0OiAwO1xuICBib3R0b206IDEwMCU7XG4gIHdpZHRoOiAxMDAlO1xufVxuLnVpLnNlZ21lbnQgPiAudWkuYm90dG9tLmF0dGFjaGVkLnByb2dyZXNzLFxuLnVpLmNhcmQgPiAudWkuYm90dG9tLmF0dGFjaGVkLnByb2dyZXNzIHtcbiAgdG9wOiAxMDAlO1xuICBib3R0b206IGF1dG87XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFJlZCAqL1xuLnVpLnJlZC5wcm9ncmVzcyAuYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2RlM2EzZTtcbn1cbi51aS5yZWQuaW52ZXJ0ZWQucHJvZ3Jlc3MgLmJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGRjY5NUU7XG59XG4vKiBPcmFuZ2UgKi9cbi51aS5vcmFuZ2UucHJvZ3Jlc3MgLmJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZjk1MzM7XG59XG4udWkub3JhbmdlLmludmVydGVkLnByb2dyZXNzIC5iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkY4NTFCO1xufVxuLyogWWVsbG93ICovXG4udWkueWVsbG93LnByb2dyZXNzIC5iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkJCRDA4O1xufVxuLnVpLnllbGxvdy5pbnZlcnRlZC5wcm9ncmVzcyAuYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0ZGRTIxRjtcbn1cbi8qIE9saXZlICovXG4udWkub2xpdmUucHJvZ3Jlc3MgLmJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNCNUNDMTg7XG59XG4udWkub2xpdmUuaW52ZXJ0ZWQucHJvZ3Jlc3MgLmJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNEOUU3Nzg7XG59XG4vKiBHcmVlbiAqL1xuLnVpLmdyZWVuLnByb2dyZXNzIC5iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTlhNTMxO1xufVxuLnVpLmdyZWVuLmludmVydGVkLnByb2dyZXNzIC5iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMkVDQzQwO1xufVxuLyogVGVhbCAqL1xuLnVpLnRlYWwucHJvZ3Jlc3MgLmJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMEI1QUQ7XG59XG4udWkudGVhbC5pbnZlcnRlZC5wcm9ncmVzcyAuYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzZERkZGRjtcbn1cbi8qIEJsdWUgKi9cbi51aS5ibHVlLnByb2dyZXNzIC5iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjM2Y1MWI1O1xufVxuLnVpLmJsdWUuaW52ZXJ0ZWQucHJvZ3Jlc3MgLmJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM1NEM4RkY7XG59XG4vKiBWaW9sZXQgKi9cbi51aS52aW9sZXQucHJvZ3Jlc3MgLmJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM2NDM1Qzk7XG59XG4udWkudmlvbGV0LmludmVydGVkLnByb2dyZXNzIC5iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjQTI5MUZCO1xufVxuLyogUHVycGxlICovXG4udWkucHVycGxlLnByb2dyZXNzIC5iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjQTMzM0M4O1xufVxuLnVpLnB1cnBsZS5pbnZlcnRlZC5wcm9ncmVzcyAuYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0RDNzNGRjtcbn1cbi8qIFBpbmsgKi9cbi51aS5waW5rLnByb2dyZXNzIC5iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRTAzOTk3O1xufVxuLnVpLnBpbmsuaW52ZXJ0ZWQucHJvZ3Jlc3MgLmJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGRjhFREY7XG59XG4vKiBCcm93biAqL1xuLnVpLmJyb3duLnByb2dyZXNzIC5iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjQTU2NzNGO1xufVxuLnVpLmJyb3duLmludmVydGVkLnByb2dyZXNzIC5iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRDY3QzFDO1xufVxuLyogR3JleSAqL1xuLnVpLmdyZXkucHJvZ3Jlc3MgLmJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM3Njc2NzY7XG59XG4udWkuZ3JleS5pbnZlcnRlZC5wcm9ncmVzcyAuYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0RDRERERTtcbn1cbi8qIEJsYWNrICovXG4udWkuYmxhY2sucHJvZ3Jlc3MgLmJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDAwMDA7XG59XG4udWkuYmxhY2suaW52ZXJ0ZWQucHJvZ3Jlc3MgLmJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM1NDU0NTQ7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLnRpbnkucHJvZ3Jlc3Mge1xuICBmb250LXNpemU6IDAuOXJlbTtcbn1cbi51aS50aW55LnByb2dyZXNzIC5iYXIge1xuICBoZWlnaHQ6IDAuNWVtO1xufVxuLnVpLnNtYWxsLnByb2dyZXNzIHtcbiAgZm9udC1zaXplOiAwLjlyZW07XG59XG4udWkuc21hbGwucHJvZ3Jlc3MgLmJhciB7XG4gIGhlaWdodDogMWVtO1xufVxuLnVpLnByb2dyZXNzIHtcbiAgZm9udC1zaXplOiAxcmVtO1xufVxuLnVpLnByb2dyZXNzIC5iYXIge1xuICBoZWlnaHQ6IDEuNzVlbTtcbn1cbi51aS5sYXJnZS5wcm9ncmVzcyB7XG4gIGZvbnQtc2l6ZTogMS4xcmVtO1xufVxuLnVpLmxhcmdlLnByb2dyZXNzIC5iYXIge1xuICBoZWlnaHQ6IDIuNWVtO1xufVxuLnVpLmJpZy5wcm9ncmVzcyB7XG4gIGZvbnQtc2l6ZTogMS4zcmVtO1xufVxuLnVpLmJpZy5wcm9ncmVzcyAuYmFyIHtcbiAgaGVpZ2h0OiAzLjVlbTtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBQcm9ncmVzc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIE92ZXJyaWRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIVxuICogIyBTZW1hbnRpYyBVSSAtIFJhdGluZ1xuICogaHR0cDovL2dpdGh1Yi5jb20vc2VtYW50aWMtb3JnL3NlbWFudGljLXVpL1xuICpcbiAqXG4gKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2VcbiAqIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVRcbiAqXG4gKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qXG5cbuKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVlyAg4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4pWXICAg4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWXXG7ilZrilZDilZDilojilojilZTilZDilZDilZ3ilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKWiOKWiOKVlyDilojilojilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilZTilZDilZDilZDilZDilZ1cbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4pWU4paI4paI4paI4paI4pWU4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilojilojilojilojilojilZdcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVlOKVkOKVkOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4paI4paI4pWR4pWa4paI4paI4pWU4pWd4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilZrilZDilZDilZDilZDilojilojilZFcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWRIOKVmuKVkOKVnSDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZFcbiAgIOKVmuKVkOKVnSAgIOKVmuKVkOKVnSAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWdICAgICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ1cblxuKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIFRoZW1lIFNlbGVjdGlvblxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFRvIG92ZXJyaWRlIGEgdGhlbWUgZm9yIGFuIGluZGl2aWR1YWwgZWxlbWVudFxuICAgc3BlY2lmeSB0aGVtZSBuYW1lIGJlbG93XG4qL1xuLyogR2xvYmFsICovXG4vKiBFbGVtZW50cyAqL1xuLyogQ29sbGVjdGlvbnMgKi9cbi8qIE1vZHVsZXMgKi9cbi8qIFZpZXdzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgRm9sZGVyc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFBhdGggdG8gdGhlbWUgcGFja2FnZXMgKi9cbi8qIFBhdGggdG8gc2l0ZSBvdmVycmlkZSBmb2xkZXIgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBJbXBvcnQgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBJbXBvcnQgRGlyZWN0aXZlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgVGhlbWVcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgU2l0ZSBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0IHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRvcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogUGFja2FnZWQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZG9ycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBDb21wb25lbnQncyBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kb3JzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFNpdGUgdGhlbWUgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgIFVzZXIgR2xvYmFsIFZhcmlhYmxlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIG1hcnNvIGNvbG9ycyAqL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuIENvbXBvbmVudCBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0ICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFJhdGluZ1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBUeXBlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU3RhbmRhcmQgKi9cbi8qIFN0YXIgKi9cbi8qIEhlYXJ0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU3RhdGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFZhcmlhdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBhY2thZ2VkIFRoZW1lICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFJhdGluZ1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBUeXBlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU3RhbmRhcmQgKi9cbi8qIFN0YXIgKi9cbi8qIEhlYXJ0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU3RhdGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFZhcmlhdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNpdGUgVGhlbWUgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIE92ZXJyaWRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgTWl4LWluc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgT3ZlcnJpZGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEVuZCBDb25maWcgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFJhdGluZ1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi51aS5yYXRpbmcge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xufVxuLnVpLnJhdGluZzpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLXJpZ2h0OiAwZW07XG59XG4vKiBJY29uICovXG4udWkucmF0aW5nIC5pY29uIHtcbiAgcGFkZGluZzogMGVtO1xuICBtYXJnaW46IDBlbTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZsZXg6IDEgMCBhdXRvO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHdpZHRoOiAxLjI1ZW07XG4gIGhlaWdodDogYXV0bztcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjFzIGVhc2UsIGJhY2tncm91bmQgMC4xcyBlYXNlLCB0ZXh0LXNoYWRvdyAwLjFzIGVhc2UsIGNvbG9yIDAuMXMgZWFzZTtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgVHlwZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFN0YW5kYXJkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbmFjdGl2ZSBJY29uICovXG4udWkucmF0aW5nIC5pY29uIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMTUpO1xufVxuLyogQWN0aXZlIEljb24gKi9cbi51aS5yYXRpbmcgLmFjdGl2ZS5pY29uIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODUpO1xufVxuLyogU2VsZWN0ZWQgSWNvbiAqL1xuLnVpLnJhdGluZyAuaWNvbi5zZWxlY3RlZCxcbi51aS5yYXRpbmcgLmljb24uc2VsZWN0ZWQuYWN0aXZlIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiAjMzMzMzMzO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFN0YXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEluYWN0aXZlICovXG4udWkuc3Rhci5yYXRpbmcgLmljb24ge1xuICB3aWR0aDogMS4yNWVtO1xuICBoZWlnaHQ6IGF1dG87XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjE1KTtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG59XG4vKiBBY3RpdmUgU3RhciAqL1xuLnVpLnN0YXIucmF0aW5nIC5hY3RpdmUuaWNvbiB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRkZFNjIzICFpbXBvcnRhbnQ7XG4gIHRleHQtc2hhZG93OiAwcHggLTFweCAwcHggI0REQzUwNywgLTFweCAwcHggMHB4ICNEREM1MDcsIDBweCAxcHggMHB4ICNEREM1MDcsIDFweCAwcHggMHB4ICNEREM1MDcgIWltcG9ydGFudDtcbn1cbi8qIFNlbGVjdGVkIFN0YXIgKi9cbi51aS5zdGFyLnJhdGluZyAuaWNvbi5zZWxlY3RlZCxcbi51aS5zdGFyLnJhdGluZyAuaWNvbi5zZWxlY3RlZC5hY3RpdmUge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICBjb2xvcjogI0ZGQ0MwMCAhaW1wb3J0YW50O1xuICB0ZXh0LXNoYWRvdzogMHB4IC0xcHggMHB4ICNFNkEyMDAsIC0xcHggMHB4IDBweCAjRTZBMjAwLCAwcHggMXB4IDBweCAjRTZBMjAwLCAxcHggMHB4IDBweCAjRTZBMjAwICFpbXBvcnRhbnQ7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSGVhcnRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5oZWFydC5yYXRpbmcgLmljb24ge1xuICB3aWR0aDogMS40ZW07XG4gIGhlaWdodDogYXV0bztcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMTUpO1xuICB0ZXh0LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xufVxuLyogQWN0aXZlIEhlYXJ0ICovXG4udWkuaGVhcnQucmF0aW5nIC5hY3RpdmUuaWNvbiB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRkY2RDc1ICFpbXBvcnRhbnQ7XG4gIHRleHQtc2hhZG93OiAwcHggLTFweCAwcHggI0NEMDcwNywgLTFweCAwcHggMHB4ICNDRDA3MDcsIDBweCAxcHggMHB4ICNDRDA3MDcsIDFweCAwcHggMHB4ICNDRDA3MDcgIWltcG9ydGFudDtcbn1cbi8qIFNlbGVjdGVkIEhlYXJ0ICovXG4udWkuaGVhcnQucmF0aW5nIC5pY29uLnNlbGVjdGVkLFxuLnVpLmhlYXJ0LnJhdGluZyAuaWNvbi5zZWxlY3RlZC5hY3RpdmUge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICBjb2xvcjogI0ZGMzAwMCAhaW1wb3J0YW50O1xuICB0ZXh0LXNoYWRvdzogMHB4IC0xcHggMHB4ICNBQTAxMDEsIC0xcHggMHB4IDBweCAjQUEwMTAxLCAwcHggMXB4IDBweCAjQUEwMTAxLCAxcHggMHB4IDBweCAjQUEwMTAxICFpbXBvcnRhbnQ7XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBkaXNhYmxlZCByYXRpbmcgKi9cbi51aS5kaXNhYmxlZC5yYXRpbmcgLmljb24ge1xuICBjdXJzb3I6IGRlZmF1bHQ7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgIFVzZXIgSW50ZXJhY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlbGVjdGVkIFJhdGluZyAqL1xuLnVpLnJhdGluZy5zZWxlY3RlZCAuYWN0aXZlLmljb24ge1xuICBvcGFjaXR5OiAxO1xufVxuLnVpLnJhdGluZy5zZWxlY3RlZCAuaWNvbi5zZWxlY3RlZCxcbi51aS5yYXRpbmcgLmljb24uc2VsZWN0ZWQge1xuICBvcGFjaXR5OiAxO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICBWYXJpYXRpb25zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLnVpLm1pbmkucmF0aW5nIHtcbiAgZm9udC1zaXplOiAwLjhyZW07XG59XG4udWkudGlueS5yYXRpbmcge1xuICBmb250LXNpemU6IDAuOXJlbTtcbn1cbi51aS5zbWFsbC5yYXRpbmcge1xuICBmb250LXNpemU6IDAuOXJlbTtcbn1cbi51aS5yYXRpbmcge1xuICBmb250LXNpemU6IDFyZW07XG59XG4udWkubGFyZ2UucmF0aW5nIHtcbiAgZm9udC1zaXplOiAxLjFyZW07XG59XG4udWkuaHVnZS5yYXRpbmcge1xuICBmb250LXNpemU6IDEuNHJlbTtcbn1cbi51aS5tYXNzaXZlLnJhdGluZyB7XG4gIGZvbnQtc2l6ZTogMnJlbTtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBUaGVtZSBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdSYXRpbmcnO1xuICBzcmM6IHVybChkYXRhOmFwcGxpY2F0aW9uL3gtZm9udC10dGY7Y2hhcnNldD11dGYtODtiYXNlNjQsQUFFQUFBQUxBSUFBQXdBd1QxTXZNZ2dqQ0JzQUFBQzhBQUFBWUdOdFlYQ2oycG04QUFBQkhBQUFBS1JuWVhOd0FBQUFFQUFBQWNBQUFBQUlaMng1WmxKYlhNWUFBQUhJQUFBUm5HaGxZV1FCR0FlNUFBQVRaQUFBQURab2FHVmhBK0lCL1FBQUU1d0FBQUFrYUcxMGVDemdBRU1BQUJQQUFBQUFjR3h2WTJFd1hDeE9BQUFVTUFBQUFEcHRZWGh3QUNJQW5BQUFGR3dBQUFBZ2JtRnRaZkMxbjA0QUFCU01BQUFCUEhCdmMzUUFBd0FBQUFBVnlBQUFBQ0FBQXdJQUFaQUFCUUFBQVV3QlpnQUFBRWNCVEFGbUFBQUE5UUFaQUlRQUFBQUFBQUFBQUFBQUFBQUFBQUFCRUFBQUFBQUFBQUFBQUFBQUFBQUFBQUJBQUFEeFpRSGcvK0QvNEFIZ0FDQUFBQUFCQUFBQUFBQUFBQUFBQUFBZ0FBQUFBQUFDQUFBQUF3QUFBQlFBQXdBQkFBQUFGQUFFQUpBQUFBQWdBQ0FBQkFBQUFBRUFJT1lGOEFid0RmQWo4Qzd3YnZCdzhJcndsL0NjOFNQeFpmLzkvLzhBQUFBQUFDRG1BUEFFOEF6d0kvQXU4Rzd3Y1BDSDhKZnduUEVqOFdULy9mLy9BQUgvNHhvRUVBWVFBUS9zRCtJUG93K2lENHdQZ0E5OER2WU90Z0FEQUFFQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFCQUFILy93QVBBQUVBQUFBQUFBQUFBQUFDQUFBM09RRUFBQUFBQVFBQUFBQUFBQUFBQUFJQUFEYzVBUUFBQUFBQkFBQUFBQUFBQUFBQUFnQUFOemtCQUFBQUFBSUFBUC90QWdBQjB3QUtBQlVBQUFFdkFROEJGd2MzRnljM0JRYzNKejhCSHdFSEZ5Y0NBTEZQVDdHQUhwNmVIb0QvQUhBV1czMDRPSDFiRm5BQkdScWdvQnA4c0ZOVHNIeXlPbnhZRW5GeEVsaDhPZ0FBQUFBQ0FBRC83UUlBQWRNQUNnQVNBQUFCTHdFUEFSY0hOeGNuTndVeEVSOEJCeGNuQWdDeFQwK3hnQjZlbmg2QS93QTRmVnNXY0FFWkdxQ2dHbnl3VTFPd2ZMSUJIWEVTV0h3NkFBQUFBUUFBLyswQ0FBSFRBQW9BQUFFdkFROEJGd2MzRnljM0FnQ3hUMCt4Z0I2ZW5oNkFBUmthb0tBYWZMQlRVN0I4QUFBQUFBRUFBQUFBQWdBQndBQXJBQUFCRkE0Q0J6RUhEZ01qSWk0Q0x3RXVBelUwUGdJek1oNENGejRETXpJZUFoVUNBQWNNRWd1Z0Jnd01EQVlHREF3TUJxQUxFZ3dIRnlnMkhoQWZHeGtLQ2hrYkh4QWVOaWdYQVMwUUh4c1pDcUFHQ3drR0JRa0xCcUFLR1JzZkVCNDJLQmNIREJJTEN4SU1CeGNvTmg0QUFBQUFBZ0FBQUFBQ0FBSEFBQ3NBV0FBQUFUUXVBaU1pRGdJSExnTWpJZzRDRlJRZUFoY3hGeDRETXpJK0FqOEJQZ00xRHdFaUZDSUdNVEFtSWpRakp5NEROVFErQWpNeUhnSWZBVGMrQXpNeUhnSVZGQTRDQndJQUZ5ZzJIaEFmR3hrS0Noa2JIeEFlTmlnWEJ3d1NDNkFHREF3TUJnWU1EQXdHb0FzU0RBZGJvZ0VCQVFFQkFhSUdDZ2NFRFJjZUVRa1JFQTRHTHk4R0RoQVJDUkVlRncwRUJ3b0dBUzBlTmlnWEJ3d1NDd3NTREFjWEtEWWVFQjhiR1FxZ0Jnc0pCZ1VKQ3dhZ0Noa2JIeEErb2dFQkFRR2lCZzRRRVFrUkhoY05CQWNLQmpRMEJnb0hCQTBYSGhFSkVSQU9CZ0FCQUFBQUFBSUFBY0FBTVFBQUFSUU9BZ2N4Qnc0REl5SXVBaThCTGdNMU5ENENNekllQWhjSEZ3YzNKemMrQXpNeUhnSVZBZ0FIREJJTG9BWU1EQXdHQmd3TURBYWdDeElNQnhjb05oNEtGUk1TQ0M5d1FMQndKd1VKQ2drRkhqWW9Gd0V0RUI4YkdRcWdCZ3NKQmdVSkN3YWdDaGtiSHhBZU5pZ1hBd1VJQlV0QW9NQkFPd0VDQVFFWEtEWWVBQUFCQUFBQUFBSUFBYmNBS2dBQUV6UTNOak15RnhZWEZoY1dGelkzTmpjMk56WXpNaGNXRlJRUEFRWWpJaThCSmljbUp5WW5KaWNtTlFBa0pVQVJFeElRRUFzTUNnb01DeEFRRWhNUlFDVWtRYklHQndjR3NnTUZCUXNLQ1FrR0J3RXhQeU1rQmdZTENna0tDZ29LQ1FvTEJnWWtJejgvUWF3RkJhd0NCZ1VORGc0T0ZSUVRBQUFBQVFBQUFBMEIyd0hTQUNZQUFCTTBQd0kyRnpZZkFoWVZGQThCRnhRVkZBY0dCeVl2QVFjR0J5WW5KalUwUHdFbkpqVUFFSTlCQlFrSUJrQ1BFQWRvR1FNREJnVUdnSUVHQlFZREF3RVlhQWNCSXdzQ0ZvRU1BUUVNZ1JZQ0N3WUlaSkFCQlFVRkF3RUJBa1ZGQWdFQkF3VUZBd09RWkFrRkFBQUFBQUlBQUFBTkFkc0IwZ0FrQUM0QUFCTTBQd0kyRnpZZkFoWVZGQThCRnhRVkZBY21Md0VIQmdjbUp5WTFORDhCSnlZMUh3RUhOeGNuTnk4QkJ3QVFqMEVGQ1FnR1FJOFFCMmdaREFVR2dJRUdCUVlEQXdFWWFBYy9XQlZzYXhSWGVEWTJBU01MQWhhQkRBRUJESUVXQWdzR0NHU1FBUVVOQVFFQ1JVVUNBUUVEQlFVREE1QmtDUVVSVlhnNE9IaFZFVzV1QUFBQkFDTUFLUUhkQVh3QUdnQUFOelEvQVRZWE5oOEJOellYTmg4QkZoVVVEd0VHQnlZdkFTWTFJd2dtQ0F3TENGUzhDQXNNQ0NZSUNQVUlEQXNJamdqU0N3a21DUUVCQ1ZTN0NRRUJDU1lKQ2cwSDlnY0JBUWVQQnd3QUFBRUFId0FmQVhNQmN3QXNBQUEzTkQ4Qkp5WTFORDhCTmpNeUh3RTNOak15SHdFV0ZSUVBBUmNXRlJRUEFRWWpJaThCQndZaklpOEJKalVmQ0ZSVUNBZ25DQXdMQ0ZSVUNBd0xDQ2NJQ0ZSVUNBZ25DQXNNQ0ZSVUNBc01DQ2NJWWdzSVZGUUlEQXNJSndnSVZGUUlDQ2NJQ3d3SVZGUUlDd3dJSndnSVZGUUlDQ2NJREFBQUFBQUNBQUFBSlFGSkFiY0FId0FyQUFBM05UUTNOanNCTlRRM05qTXlGeFlkQVRNeUZ4WWRBUlFIQmlNaElpY21OVGN6TlRRbkppTWlCd1lkQVFBSUNBc0tKU1kxTkNZbUNRc0lDQWdJQy83dEN3Z0lXNU1XRlI0ZkZSWkFwUXNJQ0RjMEppWW1KalEzQ0FnTHBRc0lDQWdJQzhBM0hoWVZGUlllTndBQUFRQUFBQWNCYmdHM0FDRUFBRGNSTkRjMk56WXpJVElYRmhjV0ZSRVVCd1lIQmlNaUx3RUhCaU1pSnlZbkpqVUFCZ1VLQmdZQkxBWUdDZ1VHQmdVS0JRY09DbjUrQ2c0R0Jnb0ZCaWNCY0FvSUNBTURBd01JQ0FyK2tBb0lDQVFDQ1hsNUNRSUVDQWdLQUFBQUF3QUFBQ1VDQUFGdUFCZ0FNUUJLQUFBM05EYzJOell6TWhjV0Z4WVZGQWNHQndZaklpY21KeVkxTXhZWEZqTXlOelkzSmljV0ZSUUhCaU1pSnlZMU5EY0dCemNVRnhZek1qYzJOVFEzTmpNeU56WTFOQ2NtSXlJSEJoVUFCaWhEUkV0TFJFTW9CZ1lvUTBSTFMwUkRLQVlsSmprNVEwTTVPU1lyUVJFbUpUVTFKU1lSUVN1RUJBUUdCZ1FFRVJFWkJnUUVCQVFHSkJrYXlRb0tRU2dvS0NoQkNnb0tDa0VvSnljb1FRb0tPaU1qSXlNNlJDRWVJalVtSlNVbU5TSWVJVVFsQmdRRUJBUUdHQklSQkFRR0JnUUVHaG9qQUFBQUJRQUFBQWtDQUFHSkFDd0FPQUJSQUdnQWNBQUFOelEzTmpjMk16SVhOell6TWhjV0Z4WVhGaGNXRnhZVkZERUdCd1lQQVFZaklpY21OVFEzSmljbUp5WTFNeFlYTnlZbkpqVTBOd1lITnhRWEZqTXlOelkxTkRjMk16STNOalUwSnlZaklnY0dGUmMzTmpjMk55WW5OeFlYRmhjV0ZSUUhCZ2NHQndZalB3RVdGUlFIQmdjQUJpdEJRVTBaR2hBREJRRUVCQVVGQkFVRUJRRUVIanc4SGc0REJRUWlCUTBwSXlJWkJpVXZTeFlaRGc0UlFTdUVCQVFHQmdRRUVSRVpCZ1FFQkFRR0pCa2FWeFU5TXpRaUlEQVNHeGtaRUFZR0N4UXJPRGsvTGxBQ0Z4WWx5UXNKUXljbkJSd0VBZ0VEQXdJREF3SUJBd1VDTm14c05oa0ZGQU1GQkJVVEhoOG5DUXRLSVNnU0hCc2ZJaDRoUkNVR0JBUUVCQVlZRWhFRUJBWUdCQVFhR2lQSkpRVWlJall6SVNBU0doa2JDZ29LQ2hJWE1Sc2JVWkFOQ3lnaElBOEFBQU1BQUFBQUFiY0Iyd0E1QUVvQWxBQUFOelUwTnpZN0FUWTNOamMyTnpZM05qYzJNeklYRmhjV0ZSUUhNeklYRmhVVUJ4WVZGQWNVRlJRSEZnY0dLd0VpSnlZbkppc0JJaWNtTlRjVUZ4WXpNamMyTlRRbkppTWlCd1lWRnpNeUZ4WVhGaGNXRnhZWEZoY1dPd0V5TlRRbk5qYzJOVFFuTmpVMEp5WW5OamMyTlRRbkppc0JORGMyTlRRbkppTUdCd1lIQmdjR0J3WUhCZ2NHQndZSEJnY0dCd1lyQVJVQUN3b1FUZ29kRVE0R0JBTUZCZ3dMRHhnVEV3b0tEak1kRmhZT0Fnb1JBUmtaS0NVYkd4c2pJUVpTRUFvTEpRVUZDQWNHQlFVR0J3Z0ZCVWtKQkFVRkJBUUhCd01EQndjQ1BDVWpOd0lKQlFVRkR3TURCQWtHQmdzTERtVU9EZ29KR3dnREF3WUZEQVlRQVFVR0F3UUdCZ1lGQmdVR0JnUUpTYmNQQ3dzR0poVVBDQkVSRXhNTUNna0pGQlFoR3h3V0ZSNFpGUW9LRmhNR0JoMFdLQmNYQmdjTURBb0xEeElIQlFZR0JRY0lCUVlHQlFnU0FRRUJBUUlDQVFFREFnRVVMd2dJQlFvTENnc0pEaFFIQ1FrRUFRME5DZzhMQ3hBZEhSRWNEUTRJRUJFVEV3MEdGQUVIQndVRUNBZ0ZCUVVGQWdPM0FBQURBQUQvMndHM0FiY0FQQUJOQUprQUFEYzFORGMyT3dFeU56WTNOanNCTWhjV0J4VVdGUlFWRmhVVUJ4WVZGQWNHS3dFV0ZSUUhCZ2NHSXlJbkppY21KeVluSmljbUp5WW5JeUluSmpVM0ZCY1dNekkzTmpVMEp5WWpJZ2NHRlJjek1oY1dGeFlYRmhjV0Z4WVhGaGNXRnhZWEZoY1dGekkzTmpVMEp5WTFNekkzTmpVMEp5WWpOamMyTlRRbk5qVTBKeVluTmpVMEp5WXJBU0lISWdjR0J3WUhCZ2NHSXdZckFSVUFDd29RVWdZaEpSc2JIaUFvR1JrQkVRb0NEaFlXSFRNT0Nnb1RFeGdQQ3dvRkJnSUJCQU1GRGhFZENrNFFDZ3NsQlFVSUJ3WUZCUVlIQ0FVRlNRa0VCZ1lGQmdVR0JnWUVBd1lGQVJBR0RBVUdBd01JR3drS0RnNWxEZ3NMQmdZSkJBTUREd1VGQlFrQ0RnNFpKU1U4QWdjSEF3TUhCd1FFQlFVRUNiZTNEd3NLREF3SEJoY1dKd0lXSFFZR0V4WUtDaFVaSGhZVkhSb2lFeFFKQ2dzSkRnNE1EQXdOQmc0V0pRY0xDdytrQndVR0JnVUhDQVVHQmdVSXBBTUNCUVlGQlFjSUJBVUhCd0lUQnd3VEV4RVJCdzBPSEJFZEhSQUxDdzhLRFEwRkNRa0hGQTRKQ3dvTENnVUlDQmdNQ3hVREFnRUJBZ01CQVFHM0FBQUFBUUFBQUEwQTdnSFNBQlFBQUJNMFB3STJGeEVIQmdjbUp5WTFORDhCSnlZMUFCQ1BRUVVKZ1FZRkJnTURBUmhvQndFakN3SVdnUXdCL29ORkFnRUJBd1VGQXdPUVpBa0ZBQUFBQUFJQUFBQUFBZ0FCdHdBcUFGa0FBQk0wTnpZek1oY1dGeFlYRmhjMk56WTNOamMyTXpJWEZoVVVEd0VHSXlJdkFTWW5KaWNtSnlZbkpqVXpGQjhCTnpZMU5DY21KeVluSmljbUl5SUhCZ2NHQndZSEJpTWlKeVluSmljbUp5WWpJZ2NHQndZSEJnY0dGUUFrSlVBUkV4SVFFQXNNQ2dvTUN4QVFFaE1SUUNVa1FiSUdCd2NHc2dNRkJRc0tDUWtHQnlVMXBxWTFCZ1lKQ2c0TkRnMFBEaElSRGc4S0NnY0ZDUWtGQndvS0R3NFJFZzRQRFE0TkRnb0pCZ1lCTVQ4akpBWUdDd29KQ2dvS0Nna0tDd1lHSkNNL1AwR3NCUVdzQWdZRkRRNE9EaFVVRXpBMW9KODJNQmNTRWdvTEJnY0NBZ2NIQ3dzS0NRZ0hCd2dKQ2dzTEJ3Y0NBZ2NHQ3dvU0VoY0FBQUFDQUFBQUJ3RnVBYmNBSVFBb0FBQTNFVFEzTmpjMk15RXlGeFlYRmhVUkZBY0dCd1lqSWk4QkJ3WWpJaWNtSnlZMVB3RWZBUkVoRVFBR0JRb0dCZ0VzQmdZS0JRWUdCUW9GQnc0S2ZuNEtEZ1lHQ2dVR0paSVplZjdjSndGd0NnZ0lBd01EQXdnSUN2NlFDZ2dJQkFJSmVYa0pBZ1FJQ0FvSWpSbDBBV1ArblFBQUFBQUJBQUFBSlFIYkFiY0FNZ0FBTnpVME56WTdBVFUwTnpZek1oY1dIUUVVQndZckFTSW5KajBCTkNjbUl5SUhCaDBCTXpJWEZoMEJGQWNHSXlFaUp5WTFBQWdJQzhBbUpqUTFKaVVGQlFnU0NBVUZGaFVmSGhVV0hBc0lDQWdJQy83dEN3Z0lRS1VMQ0FnM05TVW1KaVUxU1FnRkJnWUZDRWtlRmhVVkZoNDNDQWdMcFFzSUNBZ0lDd0FBQUFJQUFRQU5BZHNCMGdBaUFDMEFBQk0yUHdJMk16SWZBaFlYRmc4QkZ4WUhCaU1pTHdFSEJpTWlKeVkvQVNjbU54OENMd0UvQVM4Q0V3RURESkJBQmdnSkJVR09EZ0lEQ21jWUFnUUNDQU1JZjRJRkJnWUVBZ0VaYVFnQzdoQmJFZ0lOU25rSUxnRUJKZ2dDRllJTEM0SVZBZ2dJQ1dXUENnVUZBMFJFQXdVRkNvOWxDUWlwQ1RCbUV3MUhFaEZjL3UwQUFBQURBQUFBQUFISkFiY0FGQUFsQUhrQUFEYzFORGMyT3dFeUZ4WWRBUlFIQmlzQklpY21OVGNVRnhZek1qYzJOVFFuSmlNaUJ3WVZGelUwTnpZek5qYzJOelkzTmpjMk56WTNOamMyTnpZM05qTXlGeFlYRmhjV0Z4WVhGaFVVRlJRSEJnY0dCeFFIQmdjR0J6TXlGeFlWRkFjV0ZSWUhGZ2NHQnhZSEJnY2pJaWNtSnlZbkppY2lKeVkxQUFVR0IxTUhCUVlHQlFkVEJ3WUZKUVVGQ0FjR0JRVUdCd2dGQldRRkJRZ0dEdzhPRkFrRkJBUUJBUU1DQVFJRUJBWUZCdzRLQ2djSEJRUUNBd0VCQWdNREFnWUNBZ0lCQVU4WEVCQVFCUUVPQlFVRUN3TVJFaVlsRXhZWERBd1dKQW9IQlFZM3R3Y0dCUVVHQjdjSUJRVUZCUWdrQndZRkJRWUhDQVVHQmdVSUpMY0hCUVlCRUJBVEdRa0ZDUWdHQlF3TEJnY0lDUVVHQXdNRkJBY0hCZ1lJQ1FRRUJ3c0xDd1lHQ2dJREJBTUNCQkVRRmhrU0RBb1ZFaEFSRUFzZ0ZCVUJCQVVFQkFjTUFRVUZDQUFBQUFBREFBRC8yd0hKQVpJQUZBQWxBSGtBQURjVUZ4WVhOeFkzTmowQk5DY21CeWNHQndZZEFUYzBOelkzRmhjV0ZSUUhCaWNHSnlZMUZ6VTBOelkzRmpjMk56WTNOamNYTmhjV0J4WVhGZ2NXQnhRSEZoVVVCd1lISnhZWEZoY1dGUllYRmhjV0ZSUVZGQWNHQndZSEJnY0dCd1luQmljbUp5WW5KaWNtSnlZbkppY21KeVluSmljaUp5WTFBQVVHQjFNSEJRWUdCUWRUQndZRkpRVUZDQWNHQlFVR0J3Z0ZCV1FHQlFjS0pCWU1EQmNXRXlVbUVoRURDd1FGQlE0QkJSQVFFQmRQQVFFQ0FnSUdBZ01EQWdFQkF3SUVCUWNIQ2dvT0J3VUdCQVFDQVFJREFRRUVCQVVKRkE0UER3WUlCUVdsQndZRkFRRUJCd1FKdFFrRUJ3RUJBUVVHQjdlVEJ3WUVBUUVFQmdjSkJBWUJBUVlFQ1pTNEJ3WUVBZ0VOQndVQ0JnTUJBUUVYRXlFSkVoQVJFQmNJRGhBYUZoRVBBUUVGQWdRQ0JRRUxCUWNLREFrSUJBVUhDZ1VHQndnREJnSUVBUUVIQlFrSUJ3VU1Dd2NFQ2djR0NSb1JFUThDQmdRSUFBQUFBUUFBQUFFQUFKdGg1N2RmRHp6MUFBc0NBQUFBQUFEUC9HT0RBQUFBQU0vOFk0TUFBUC9iQWdBQjJ3QUFBQWdBQWdBQUFBQUFBQUFCQUFBQjRQL2dBQUFDQUFBQUFBQUNBQUFCQUFBQUFBQUFBQUFBQUFBQUFBQUFIQUFBQUFBQUFBQUFBQUFBQUFFQUFBQUNBQUFBQWdBQUFBSUFBQUFDQUFBQUFnQUFBQUlBQUFBQ0FBQUFBZHdBQUFIY0FBQUNBQUFqQVpNQUh3RkpBQUFCYmdBQUFnQUFBQUlBQUFBQ0FBQUFBZ0FBQUFFQUFBQUNBQUFBQVc0QUFBSGNBQUFCM0FBQkFkd0FBQUhjQUFBQUFBQUFBQW9BRkFBZUFFb0FjQUNLQU1vQlFBR0lBY3dDQ2dKVUFvSUN4Z01FQXpvRHBnUktCUmdGN0FZU0JwZ0cyZ2NnQjJvSUdBak9BQUFBQVFBQUFCd0FtZ0FGQUFBQUFBQUNBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQTRBcmdBQkFBQUFBQUFCQUF3QUFBQUJBQUFBQUFBQ0FBNEFRQUFCQUFBQUFBQURBQXdBSWdBQkFBQUFBQUFFQUF3QVRnQUJBQUFBQUFBRkFCWUFEQUFCQUFBQUFBQUdBQVlBTGdBQkFBQUFBQUFLQURRQVdnQURBQUVFQ1FBQkFBd0FBQUFEQUFFRUNRQUNBQTRBUUFBREFBRUVDUUFEQUF3QUlnQURBQUVFQ1FBRUFBd0FUZ0FEQUFFRUNRQUZBQllBREFBREFBRUVDUUFHQUF3QU5BQURBQUVFQ1FBS0FEUUFXZ0J5QUdFQWRBQnBBRzRBWndCV0FHVUFjZ0J6QUdrQWJ3QnVBQ0FBTVFBdUFEQUFjZ0JoQUhRQWFRQnVBR2R5WVhScGJtY0FjZ0JoQUhRQWFRQnVBR2NBVWdCbEFHY0FkUUJzQUdFQWNnQnlBR0VBZEFCcEFHNEFad0JHQUc4QWJnQjBBQ0FBWndCbEFHNEFaUUJ5QUdFQWRBQmxBR1FBSUFCaUFIa0FJQUJKQUdNQWJ3Qk5BRzhBYndCdUFDNEFBd0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUE9PSkgZm9ybWF0KCd0cnVldHlwZScpLCB1cmwoZGF0YTphcHBsaWNhdGlvbi9mb250LXdvZmY7Y2hhcnNldD11dGYtODtiYXNlNjQsZDA5R1JrOVVWRThBQUJjVUFBb0FBQUFBRnN3QUFRQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUJEUmtZZ0FBQUE5QUFBRXVFQUFCTGhvNlR2SUU5VEx6SUFBQlBZQUFBQVlBQUFBR0FJSXdnYlkyMWhjQUFBRkRnQUFBQ2tBQUFBcEtQYW1ieG5ZWE53QUFBVTNBQUFBQWdBQUFBSUFBQUFFR2hsWVdRQUFCVGtBQUFBTmdBQUFEWUJHQWU1YUdobFlRQUFGUndBQUFBa0FBQUFKQVBpQWYxb2JYUjRBQUFWUUFBQUFIQUFBQUJ3TE9BQVEyMWhlSEFBQUJXd0FBQUFCZ0FBQUFZQUhGQUFibUZ0WlFBQUZiZ0FBQUU4QUFBQlBQQzFuMDV3YjNOMEFBQVc5QUFBQUNBQUFBQWdBQU1BQUFFQUJBUUFBUUVCQjNKaGRHbHVad0FCQWdBQkFEcjRIQUw0R3dQNEdBUWVDZ0FaVS8rTGl4NEtBQmxULzR1TERBZUxadmlVK0hRRkhRQUFBUDBQSFFBQUFRSVJIUUFBQUFrZEFBQVMyQklBSFFFQkJ3MFBFUlFaSGlNb0xUSTNQRUZHUzFCVldsOWthVzV6ZUgyQ2g0eHlZWFJwYm1keVlYUnBibWQxTUhVeGRUSXdkVVUyTURCMVJUWXdNWFZGTmpBeWRVVTJNRE4xUlRZd05IVkZOakExZFVZd01EUjFSakF3TlhWR01EQTJkVVl3TUVOMVJqQXdSSFZHTURJemRVWXdNa1YxUmpBMlJYVkdNRGN3ZFVZd09EZDFSakE0T0hWR01EZzVkVVl3T0VGMVJqQTVOM1ZHTURsRGRVWXhNak4xUmpFMk5IVkdNVFkxQUFBQ0FZa0FHZ0FjQWdBQkFBUUFCd0FLQUEwQVZnQ1dBTDBCQWdHTUFlUUNid0x3QTRjRDVRUjBCUU1GZGdaZ0I4TUprUXR4QzdvTTJRMWpEZ2dPbVJBWUVacjhsQTc4bEE3OGxBNzdsQTc0bFBldEZmdEZwVHozTkR6N05QdEZjZmNVK3hCdCswVDNNdDczTWpodDkwVDNGUGNRQmZ1VSswWVYrd1JSb2ZjUU1PUDNFWjNEOXdYRCt3WDNFWGt3TTZIN0VQc0V4UVVPK0pUM3JSWDdSYVU4OXpROCt6VDdSWEgzRlBzUWJmdEU5ekxlOXpJNGJmZEU5eFQzRUFYN2xQdEdGWXVMaS9leHcvc0Y5eEY1TURPaCt4RDdCTVVGRHZpVTk2MFYrMFdsUFBjMFBQczArMFZ4OXhUN0VHMzdSUGN5M3ZjeU9HMzNSUGNVOXhBRkR2aVU5OEVWaTJCNFpHNXdDSXVMK3pUN05BVjdlM3Q3ZTR0N2kzdWJlNXNJK3pUM05BVnVwbml5aTdhTDNNM04zSXUyaTdKNHBtNm1xTEtldG92Y2k4MUppem9JRHZpVTk4RVZpOXhKelRxTFlJdGtlSEJ1Y0toa25tQ0xPb3RKU1lzNmkyQ2VaS2h3Q0l1TDl6VDdOQVdiZTV0N200dWJpNXVibTVzSTl6VDNOQVdvcHA2eWk3WUlNRTBWK3piN05nV0tpb3FLaW91S2k0cU1pb3dJK3piM05nVjZtNEdoaTZPTHViQ3d1WXVqaTZHQm0zb0l1bGU2dndXYm5LR1ZvNHU1aTdCbWkxMkxjNEYxZW5zSUR2aVU5OEVWaTJCNFpHNXdDSXVMK3pUN05BVjdlM3Q3ZTR0N2kzdWJlNXNJK3pUM05BVnVwbml5aTdhTDNNM04zSXVuaTZXRG9YNElYRUQzQkV0TCt6VDNSUGRVK3dUTHNzWUZsNDZZalppTDNJdk5TWXM2Q0E2TDk4VVZpN1dYcktPaW82T3RsN2FMbG91WGlaaUhsNGVXaFphRWxvU1VoWktGazRTU2haS0VrcEtTa1pPU2twR1VrWmFTQ0phU2xwR1hqNWlQbDQyV2k3YUxyWCtqYzZOMGwycUxZWXRoZFdCZ1lBajdSdnRBQlllSWg0bUdpNGFMaDQySGpnajdSdmRBQlltTmlZMkhqNGlPaHBHRGxJU1VoWldGbElXVmhwYUhtWWFZaVppTG1BZ09aNHYzdHhXTGtwQ1BsbzBJOXlPZ3pQY1dCWTZTa0krUmk1Q0xrSWVQaEFqTCt4YjNJM1lGbG9tUWg0dUVpNGFKaDRhR0NDTW1wUHNqQll1S2k0bUxpSXVIaW9pSmlJbUlpSXFIaTRpTGg0eUhqUWo3Rk0vN0ZVY0ZoNG1IaW9pTGg0dUlqSW1PaVk2S2pvdVBpNHlMall5T0NLUDNJeVB3QllhUWlaQ0xqd2dPWjR2M3R4V0xrcENQbG8wSTl5T2d6UGNXQlk2U2tJK1JpNUNMa0llUGhBakwreGIzSTNZRmxvbVFoNHVFaTRhSmg0YUdDQ01tcFBzakJZdUtpNG1MaUl1Q2g0YURpNGlMaDR5SGpRajdGTS83RlVjRmg0bUhpb2lMaDR1SWpJbU9pWTZLam91UGk0eUxqWXlPQ0tQM0l5UHdCWWFRaVpDTGp3aktlUlhqTjNiN0RmY0F4UFpTZC9jTjR0LzdESjFWOXdGVit3RUZEcTczWmhXTGs0MlJrWkVJc2JJRmtaQ1JqcE9Ma291U2lKQ0dDTjgyOTFEM1VBV1FrSktPa291VGk1R0lrWVlJc1dRRmtZYU5oSXVFaTRPSmhZV0ZDUHVKKzRrRmhZV0ZpWU9MaEl1RWpZYVJDUHNpOXlJRmhaQ0prb3VTQ0E3N0FhcnRGWXVTanBLUWtBamYzemZmQllhUWlKS0xrNHVTanBLUWtBaXlzZ1dSa0pHT2s0dVNpNUtJa0lZSTN6ZmYzd1dRa0pLT2s0dVNpNUtJa0lZSXNtUUZrSWFPaEl1RWk0T0loSWFHQ0RjMzN6Y0ZrSWFPaEl1RWk0T0loWWFGQ0dSa0JZYUdoSWlFaTRPTGhJNkdrQWczM3pjM0JZYUdoSWlFaTRPTGhZNkZrQWhrc2dXR2tZaVJpNU1JRHZ0TGk4c1ZpL2M1Qll1U2pwS1FrSkNRa282U2l3aVZpNHZDQll1dWw2bWtwS1NrcXBpdWk2NkxxWDZrY3FSeW1HMkxhQWlMVkpTTEJaS0xrb2lRaHBDR2pvU0xoQWlMK3prRmk0T0loWWFHaG9XRWlZU0xDUHVuaXdXRWk0U05ocEdHa0lpUmk1TUk1dmRVRmZjbmk0dkNCWXVmaEp4OG1uMlplcEozaTNhTGVvUjlmWDE4ZzNxTGR3aUxWQVVPK3lhTHNoV0wrQVFGaTVHTmtZK1JqcENRajVLTmo0MlBqSStMQ1BmQWl3V1BpNCtLajRtUmlaQ0hqNGFQaFkyRmk0VUlpL3dFQll1RWlZV0hob2VHaG9lRmlJaUtob3FIaTRHTGhJNkVrUWo3RXZjTit4TDdEUVdFaFlPSWdvdUhpNGVMaDQyRWpvYVBpSkNIa0ltUmk1SUlEb3YzWFJXTGtvMlJqNUtsdHErdnVLVzRwYnVadll1OWk3dDl1SEc0Y2E5bnBXQ1BoSTJGaTRTTGhZbUVoNFJ4WUdkb1huQUlYbkZiZmxtTFdZdGJtRjZsWHFabnJuRzJoNUtKa291UkNMQ0xGYVJrcTJ5eGRMRjB0SCs0aTdpTHRKZXhvckdpcTZxa3NtNjRaNjFnb1paM2tYYUxkSXRuZm0xeWNuSnliWDlvaXdob2kyMlhjcVJ5cEg2cGk2K0xvcEdnbHA5Z2RXZHBibDRJOXhpd0ZZdUhqSWlPaUk2SWpvcVBpNCtMam95T2pvMk9qWTZMajR1YmtKbVhsNWVXbVpHYmk0K0xqb3lPam8yT2pZNkxqd2lMajRtT2lZNklqWWlOaDR0emkzZUNlbnA2ZW9KM2kzTUlEb3YzWFJXTGtvMlNqNUdvdUsrdXRxVzNwYnFZdm91Y2k1eUpuSWdJbTZjRmpZNk5qSStMakl1Tmk0MkpqWXFPaW8rSmpvbU9pWTZLam9tT2lZNkpqb3FOaW95S2pvbU1pWXVIaTRxTGlvdUxDSGRuYlZWalEyTkRiVlYzWndoOWNnV0ppSWlKaUl1SmkzNlNkSmlJalltT2k0NkxqWStVbEpsdmwzS2NkSjkwb0hlaWU2V0hrWW1TaTVJSXNJc1ZxbHEwWjcxMUNLR3pCWHFYZnBxQ25vS2RocDZMb0l1aWthQ1duMkIxWjJsdVhnajNHTEFWaTRlTWlJNklqb2lPaW8rTGo0dU9qSTZPalk2TmpvdVBpNXVRbVplWGw1YVprWnVMajR1T2pJNk9qWTZOam91UENJdVBpWTZKam9pTmlJMkhpM09MZDRKNmVucDZnbmVMY3dqaSsxMFZvTEFGdEkrd21LMmhycUtucUtLdmRxMXdwMnVoQ0oyckJaMS9uSHljZXB4Nm1IcVdlWStFallXTGhJdUVpWVdIaElSL2dIMStmRzlxYVhKbWVXVjVZNEpoaXdpNTNCWGI5eVFGaklLTWc0dUVpM0NEYzN4MWZIVjNmSE9CQ0E2TDFCV0w5MHNGaTVXUGxKS1NrcEtUajVhTENObUxCWktQbUpxZXBKYVpsWmVWbFkrUWo1T05sNDJXanBlT21JK1lrWldUazVPU2s0NlZpNXVMbVlpWWhaaUZsSUdTZmdpU2ZvNTVpM1dMZVlkNWdYZ0l2b3NGbjR1Y2hKbDhtbjJTZW90M2kzcUdmSUo5allTTGhZdUVpM3lJZm9SK2k0ZUxoNHVIaTNlR2VuOTlpM0NEZG50OENIdDhkWU53aXdobWl3VjVpM21OZVk5NWtIZVJjNU4xazM2UGg0c0lPWXNGZ0l1RGpvU1NoSktIbEl1VkNMQ2RGWXVHakllUGlJK0hqNG1RaTVDTGo0MlBqNDZPalkrTGtJdVFpWkNJam9lUGg0MkdpNGFMaDRtSGg0ZUlpb2FMaGdqVWVSV1Vpd1dOaTQ2TGo0cU9pNCtLallxT2k0K0tqNG1RaW82S2pZcU5pbytLajRtUWlvNktqSXF6ZnF1RXBJc0lyb3NGcjR1ZW1vdXJpNUNLa1lxUWtZNlFrSTZTanBLTmtvdVNpNUtKa29pUmxaV1Fsb3VZaTVDS2tJbVJpWkdKajRpT0NKR01rSStQbEkrVWpaS0xrb3VWaUpPRGs0U1NnbytDaXdnbWl3V0xscENhbEo2VW5wQ2JpNWFMbm9pWWhKU0ZsSCtRZVl1R2hvZURpWUNKZjRoL2gzK0lmb1dCZzRLSGg0U0NnSDRJaTRxSWlZaUdoNGFJaDRtSWlJaUloNGVHaDRhSGg0ZUhpSWlIaUllSGlJaUhpSWVLaDRtSWlvaUxDSUtMaS90TEJRNkw5MHNWaS9kTEJZdVZqNU9TazVLU2s0Nldpd2pkaXdXUGk1aVBvWk9razZDUm5aQ2RqNTZObjRzSXE0c0Zwb3VnZzV4OG0zeVRkNHR4Q0l1SkJaZDhrSHVMZDR1SGk0ZUxoNUoram42TGZJdUVpNFNKaFpSOWtIeUxlb3QzaEhwOGZIMTllb1IzaXdoWWl3V1ZlSTk1aTNtTGRJaDZoSDZFZm9LQmZvVitoWDJIZTR1Qmk0T1BnNUtGa1lhVGg1U0hsWWlUaXBPS2s0cVRpSk1JaVpTSWtZaVBnWlNCbDRDYWVLUittb1NQQ0QyTEJZQ0xnNCtFa29TU2g1U0xsUWl3OXpnVmk0YU1oNCtJajRlUGlaQ0xrSXVQalkrUGpvNk5qNHVRaTVDSmtJaU9oNCtIallhTGhvdUhpWWVIaDRpS2hvdUdDTlQ3T0JXVWl3V09pNDZLajRtUGlvK0lqb2lQaDQrSWpvZVBpSStIajRhUGhvNkhqb2lOaUk2SGo0YU9obzZJaTRxV2ZwS0RqNFlJazRPUmdZNStqMzZPZ0kxL2pZQ1BnNUNHbll1WGo1R1VrcFNPbVl1ZWk1YUdtb0tmZ3A2R21vdVdDUENMQlpTTGxJK1NrcE9UanBPTGxZdVNpWktIbEllVWhvK0ZpNDZQalkrTmtZMlJqSkNMa0l1WWhwYUJsWTZSalpLTGtnaUxrb21TaUpLSWtvYVFoWTZNa0l5Umk1Q0xtNGFYZ3BPQmtuNlBlNHNJWm9zRmNvdHJoR045aW91SWlvYUpoNHFIaW9tS2lZcUlpb2FLaDRtSGlvaUtpWXVIaW9pTGg0cUlpNG1MQ0lLTGkvdExCUTc3bEl2M3R4V0xrcENQbG8wSTl5T2d6UGNXQlk2U2tJK1Jpd2lML0JMN0ZVY0ZoNG1IaW9pTGg0dUlqSW1PaVk2S2pvdVBpNHlMall5T0NLUDNJeVB3QllhUWlaQ0xqd2dPaS9mRkZZdTFsNnlqb3FPanJaZTJpNWFMbDRtWWg1ZUhsb1dXaEphRWxJV1NoWk9Fa29XU2hKS1NrcEdUa3BLUmxKR1drZ2lXa3BhUmw0K1lqNWVObG91Mmk2MS9vM09qZEpkcWkyR0xZWFZnWUdBSSswYjdRQVdIaUllSmhvdUdpNGVOaDQ0SSswYjNRQVdKalltTmg0K0lqb2FSZzVTRWxJV1ZoWlNGbFlhV2g1bUdtSW1ZaTVnSXNJc1ZpMnVjYWE5b0NQYzYrelQzT3ZjekJhK3ZuSzJMcTR1YmlaaUhsNGVYaHBTRmtvU1NnNUdDajRLUWdvMkNqWU9OZ1l1Qmk0S0xnSWwvaG9DR2dJV0NoQWlCZzRPRmhJU0VoWWFGaG9hSWhvYUpoWXVGaTRhTmlKQ0drSWFSaEpHRWtvT1JnWk9Da29DUmdKQi9rSUNOZ29zSWdZdUJpNE9KZ29tQ2lZS0dnb2VEaFlTRWhZU0dnb2QvaDMrSmZvdDdDQTc3Sm91eUZZdjRCQVdMa1kyUmo1R09rSkNQa28yUGpZK01qNHNJOThDTEJZK0xqNHFQaVpHSmtJZVBobytGallXTGhRaUwvQVFGaTRTSmhZZUdoNGFHaDRXSWlJcUdpb2VMZ1l1RWpvU1JDUHNTOXczN0V2c05CWVNGZzRpQ2k0ZUxoNHVIallTT2hvK0lrSWVRaVpHTGtnaXdreFgzSnZjaHBITDNEZnNJaS9mMys3aUxpL3YzQlE1bmk4c1ZpL2M1Qll1U2pwS1FrSkNRa282U2l3ajNWSXVMd2dXTHJwaXBwS1NrcEttWXJvdXZpNmwrcEhLa2NwZHRpMmdJaTBJRmk0YUtob2VJaDRlSGlZYUxDSG1MQllhTGg0MkhqNGVPaXBDTGtBaUwxQVdMbjRPY2ZacDltWHFTZG90M2kzcUVmWDE4ZklSNmkzY0lpMVNuaXdXU2k1S0lrSWFRaG82RWk0UUlpL3M1Qll1RGlJV0dob2FGaEltRWl3ajdwNHNGaEl1RWpZYVJocENJa1l1VENBNW5qUGU2Rll5UWtJNlVqUWozSTZETTl4WUZqNUtQajVHTGtJdVFoNCtFQ012N0Z2Y2pkZ1dVaVpDSWpZYU5ob2lGaFlVSUl5YWsreU1GaklXS2hvbUhpWWlJaVlhTGlJdUhqSWVOQ1BzVXovc1ZSd1dIaVllS2lJdUhpNGVOaVk2Smo0dVFqSkVJby9jakkvQUZoWkdKa1kyUUNQZUIrejBWbklMbFczcnhpSjZabU5UUyt3eWRncHhlNTR2N3B3VU9aNHZDRll2M1N3V0xrSTJQam8rUGpvK05rSXNJM29zRmtJdVBpWTZJajRlTmg0dUdDSXY3U3dXTGhvbUhoNGVJaDRlS2hvc0lPSXNGaG91SGpJZVBpSStKajR1UUNMQ3ZGWXVHakllUGg0NklrSW1RaTVDTGo0MlBqbzZQalkrTGtJdVFpWkNJam9lUGg0MkdpNGFMaG9tSWg0ZUlpb2FMaGdqdlp4V0w5MHNGaTVDTmo0Nk9qNCtQalpDTGo0eVNrSldXbFphVmw1U1htSnVWbDVHUmpvNk9rSTZSalpDTmtJeVBqSTZNa1kyVENJeVNqSkdNajR5UGpaQ09rWTZSanBDUGpvNlBqNDJRaTVTTGs0cVNpWktKa1lpUGlKQ0lqb2lQaG82R2pZZU1od2lOaDR5R2pJYU1oWXVIaTRpTGlJdUhpNGVMZzR1RWlZU0poSW1GaVllSmg0bUZoNFdMaW9xSmlvbUppSXFKaW9rSWk0cUtpSXFKQ05xTEJacUxtSVdXZ0phQWtIK0xmSXQ2aG4yQWY0NkRqWVNMaEl0OWgzNkNmNCtCaTMrSGdJbUFoWUtFaEkxMmhubUFmZ2gvZlhpRGNvc0lab3NGZm90K2pIeU9mSTUvam9PT2c0MS9qMzJRYzVOOGo0U01ob3VIallpT2g0K0pqNHVRQ0E1bmkvYzVGWXVHallhT2lJK0hqNG1RaXdqZWl3V1FpNCtOam8rUGpvMlFpNUFJaS9kS0JZdVFpWkNIam9pUGg0Mkdpd2c0aXdXR2k0ZUpoNGVJaUltR2k0WUlpL3RLQmJEM0poV0xrSXlQajQrT2pwQ05rSXVRaTQrSmo0aU9oNDJIaTRhTGhvbUhpSWVIaDRlS2hvdUdpNGFNaUkrSGo0cVBpNUFJNy9zbkZZdjNTd1dMa0kyUWo0Nk9qNCtOa0l1U2k1cVBvNU9aa0plUGs0NlRqWmVPbW82YWpwaU1tSXNJc0lzRnBJdWVnNWQ5bG42UWVvbDFrb1NSZ28yQWo0Q0xnSWVBbEgrUGZvdDlpNFdKaElpQ2xvQ1FmSXQ3aTN5RmZvR0FDSUNBZm9aOGl3Zzhpd1dNaUl5Smk0bU1pWXlKalltTWlJeUtpNG1QaEkyR2pZZU5oNDJHallPTWhJeUVpNFNMaG91SGk0aUxpWXVHaW9ZSWlvV0tob21IaW9lSmg0aUdoNGVJaDRhSWg0aUZpSVNKaEltRGlvS0xob3VIallpUGg0K0lqNGlSaUpHSmtJcVBDSXFQaXBHS2tvbVRpcEdLajRxT2laQ0prWWlRaUpDSWpvV1NnWlorbklLWGdaYUJsb0dXaEpHSGk0YUxoNDJIandpSWpvbVFpNDhJRHZpVUZQaVVGWXNNQ2dBQUFBQURBZ0FCa0FBRkFBQUJUQUZtQUFBQVJ3Rk1BV1lBQUFEMUFCa0FoQUFBQUFBQUFBQUFBQUFBQUFBQUFBRVFBQUFBQUFBQUFBQUFBQUFBQUFBQUFFQUFBUEZsQWVELzRQL2dBZUFBSUFBQUFBRUFBQUFBQUFBQUFBQUFBQ0FBQUFBQUFBSUFBQUFEQUFBQUZBQURBQUVBQUFBVUFBUUFrQUFBQUNBQUlBQUVBQUFBQVFBZzVnWHdCdkFOOENQd0x2QnU4SER3aXZDWDhKenhJL0ZsLy8zLy93QUFBQUFBSU9ZQThBVHdEUEFqOEM3d2J2Qnc4SWZ3bC9DYzhTUHhaUC85Ly84QUFmL2pHZ1FRQmhBQkQrd1A0ZytqRDZJUGpBK0FEM3dPOWc2MkFBTUFBUUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBRUFBZi8vQUE4QUFRQUFBQUVBQUpyVmxMSmZEenoxQUFzQ0FBQUFBQURQL0dPREFBQUFBTS84WTRNQUFQL2JBZ0FCMndBQUFBZ0FBZ0FBQUFBQUFBQUJBQUFCNFAvZ0FBQUNBQUFBQUFBQ0FBQUJBQUFBQUFBQUFBQUFBQUFBQUFBQUhBQUFBQUFBQUFBQUFBQUFBQUVBQUFBQ0FBQUFBZ0FBQUFJQUFBQUNBQUFBQWdBQUFBSUFBQUFDQUFBQUFkd0FBQUhjQUFBQ0FBQWpBWk1BSHdGSkFBQUJiZ0FBQWdBQUFBSUFBQUFDQUFBQUFnQUFBQUVBQUFBQ0FBQUFBVzRBQUFIY0FBQUIzQUFCQWR3QUFBSGNBQUFBQUZBQUFCd0FBQUFBQUE0QXJnQUJBQUFBQUFBQkFBd0FBQUFCQUFBQUFBQUNBQTRBUUFBQkFBQUFBQUFEQUF3QUlnQUJBQUFBQUFBRUFBd0FUZ0FCQUFBQUFBQUZBQllBREFBQkFBQUFBQUFHQUFZQUxnQUJBQUFBQUFBS0FEUUFXZ0FEQUFFRUNRQUJBQXdBQUFBREFBRUVDUUFDQUE0QVFBQURBQUVFQ1FBREFBd0FJZ0FEQUFFRUNRQUVBQXdBVGdBREFBRUVDUUFGQUJZQURBQURBQUVFQ1FBR0FBd0FOQUFEQUFFRUNRQUtBRFFBV2dCeUFHRUFkQUJwQUc0QVp3QldBR1VBY2dCekFHa0Fid0J1QUNBQU1RQXVBREFBY2dCaEFIUUFhUUJ1QUdkeVlYUnBibWNBY2dCaEFIUUFhUUJ1QUdjQVVnQmxBR2NBZFFCc0FHRUFjZ0J5QUdFQWRBQnBBRzRBWndCR0FHOEFiZ0IwQUNBQVp3QmxBRzRBWlFCeUFHRUFkQUJsQUdRQUlBQmlBSGtBSUFCSkFHTUFid0JOQUc4QWJ3QnVBQzRBQXdBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBPT0pIGZvcm1hdCgnd29mZicpO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG59XG4udWkucmF0aW5nIC5pY29uIHtcbiAgZm9udC1mYW1pbHk6ICdSYXRpbmcnO1xuICBsaW5lLWhlaWdodDogMTtcbiAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi8qIEVtcHR5IFN0YXIgKi9cbi51aS5yYXRpbmcgLmljb246YmVmb3JlIHtcbiAgY29udGVudDogJ1xcZjAwNSc7XG59XG4vKiBBY3RpdmUgU3RhciAqL1xuLnVpLnJhdGluZyAuYWN0aXZlLmljb246YmVmb3JlIHtcbiAgY29udGVudDogJ1xcZjAwNSc7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU3RhclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVW5maWxsZWQgU3RhciAqL1xuLnVpLnN0YXIucmF0aW5nIC5pY29uOmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICdcXGYwMDUnO1xufVxuLyogQWN0aXZlIFN0YXIgKi9cbi51aS5zdGFyLnJhdGluZyAuYWN0aXZlLmljb246YmVmb3JlIHtcbiAgY29udGVudDogJ1xcZjAwNSc7XG59XG4vKiBQYXJ0aWFsICovXG4udWkuc3Rhci5yYXRpbmcgLnBhcnRpYWwuaWNvbjpiZWZvcmUge1xuICBjb250ZW50OiAnXFxmMDA2Jztcbn1cbi51aS5zdGFyLnJhdGluZyAucGFydGlhbC5pY29uIHtcbiAgY29udGVudDogJ1xcZjAwNSc7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSGVhcnRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEVtcHR5IEhlYXJ0XG4udWkuaGVhcnQucmF0aW5nIC5pY29uOmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICdcXGYwOGEnO1xufVxuKi9cbi51aS5oZWFydC5yYXRpbmcgLmljb246YmVmb3JlIHtcbiAgY29udGVudDogJ1xcZjAwNCc7XG59XG4vKiBBY3RpdmUgKi9cbi51aS5oZWFydC5yYXRpbmcgLmFjdGl2ZS5pY29uOmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICdcXGYwMDQnO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgT3ZlcnJpZGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyohXG4gKiAjIFNlbWFudGljIFVJIC0gU2VhcmNoXG4gKiBodHRwOi8vZ2l0aHViLmNvbS9zZW1hbnRpYy1vcmcvc2VtYW50aWMtdWkvXG4gKlxuICpcbiAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZVxuICogaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVFxuICpcbiAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLypcblxu4paI4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWXICDilojilojilZfilojilojilojilojilojilojilojilZfilojilojilojilZcgICDilojilojilojilZfilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZdcbuKVmuKVkOKVkOKWiOKWiOKVlOKVkOKVkOKVneKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWd4paI4paI4paI4paI4pWXIOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVnVxuICAg4paI4paI4pWRICAg4paI4paI4paI4paI4paI4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilZTilojilojilojilojilZTilojilojilZHilojilojilojilojilojilZcgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl1xuICAg4paI4paI4pWRICAg4paI4paI4pWU4pWQ4pWQ4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilojilojilZHilZrilojilojilZTilZ3ilojilojilZHilojilojilZTilZDilZDilZ0gIOKVmuKVkOKVkOKVkOKVkOKWiOKWiOKVkVxuICAg4paI4paI4pWRICAg4paI4paI4pWRICDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilZEg4pWa4pWQ4pWdIOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkVxuICAg4pWa4pWQ4pWdICAg4pWa4pWQ4pWdICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZ0gICAgIOKVmuKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVnVxuXG4qL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgVGhlbWUgU2VsZWN0aW9uXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogVG8gb3ZlcnJpZGUgYSB0aGVtZSBmb3IgYW4gaW5kaXZpZHVhbCBlbGVtZW50XG4gICBzcGVjaWZ5IHRoZW1lIG5hbWUgYmVsb3dcbiovXG4vKiBHbG9iYWwgKi9cbi8qIEVsZW1lbnRzICovXG4vKiBDb2xsZWN0aW9ucyAqL1xuLyogTW9kdWxlcyAqL1xuLyogVmlld3MgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBGb2xkZXJzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogUGF0aCB0byB0aGVtZSBwYWNrYWdlcyAqL1xuLyogUGF0aCB0byBzaXRlIG92ZXJyaWRlIGZvbGRlciAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIEltcG9ydCBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIEltcG9ydCBEaXJlY3RpdmVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBUaGVtZVxuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICBTaXRlIFZhcmlhYmxlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERlZmF1bHQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZG9ycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBQYWNrYWdlZCBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kb3JzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIENvbXBvbmVudCdzIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRvcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogU2l0ZSB0aGVtZSBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgVXNlciBHbG9iYWwgVmFyaWFibGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogbWFyc28gY29sb3JzICovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gQ29tcG9uZW50IFZhcmlhYmxlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERlZmF1bHQgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBTZWFyY2hcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBTZWFyY2ggUHJvbXB0ICovXG4vKiBSZXN1bHQgQm94ICovXG4vKiBSZXN1bHQgKi9cbi8qIFJlc3VsdCBJbWFnZSAqL1xuLyogUmVzdWx0IENvbnRlbnQgKi9cbi8qIERlc2NyaXB0aW9uICovXG4vKiBQcmljZSAqL1xuLyogU3BlY2lhbCBNZXNzYWdlICovXG4vKiBBbGwgUmVzdWx0cyBMaW5rICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogRm9jdXMgKi9cbi8qIEhvdmVyICovXG4vKiBMb2FkaW5nICovXG4vKiBBY3RpdmUgQ2F0ZWdvcnkgKi9cbi8qIEFjdGl2ZSBSZXN1bHQgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBUeXBlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFNlbGVjdGlvbiAqL1xuLyogQ2F0ZWdvcnkgKi9cbi8qIFBhY2thZ2VkIFRoZW1lICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgU2VhcmNoXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogU2VhcmNoIFByb21wdCAqL1xuLyogUmVzdWx0IEJveCAqL1xuLyogUmVzdWx0ICovXG4vKiBSZXN1bHQgSW1hZ2UgKi9cbi8qIFJlc3VsdCBDb250ZW50ICovXG4vKiBEZXNjcmlwdGlvbiAqL1xuLyogUHJpY2UgKi9cbi8qIFNwZWNpYWwgTWVzc2FnZSAqL1xuLyogQWxsIFJlc3VsdHMgTGluayAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIEZvY3VzICovXG4vKiBIb3ZlciAqL1xuLyogTG9hZGluZyAqL1xuLyogQWN0aXZlIENhdGVnb3J5ICovXG4vKiBBY3RpdmUgUmVzdWx0ICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgVHlwZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBTZWxlY3Rpb24gKi9cbi8qIENhdGVnb3J5ICovXG4vKiBTaXRlIFRoZW1lICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIE1peC1pbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE92ZXJyaWRlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBFbmQgQ29uZmlnICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFNlYXJjaFxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi51aS5zZWFyY2gge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4udWkuc2VhcmNoID4gLnByb21wdCB7XG4gIG1hcmdpbjogMGVtO1xuICBvdXRsaW5lOiBub25lO1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwKTtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgbGluZS1oZWlnaHQ6IDEuMjE0Mjg1NzFlbTtcbiAgcGFkZGluZzogMC45OTI4NTcxNGVtIDEuNGVtO1xuICBmb250LXNpemU6IDFlbTtcbiAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgzNCwgMzYsIDM4LCAwLjE1KTtcbiAgY29sb3I6ICMzMzMzMzM7XG4gIGJveC1zaGFkb3c6IDBlbSAwZW0gMGVtIDBlbSB0cmFuc3BhcmVudCBpbnNldDtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjFzIGVhc2UsIGNvbG9yIDAuMXMgZWFzZSwgYm94LXNoYWRvdyAwLjFzIGVhc2UsIGJvcmRlci1jb2xvciAwLjFzIGVhc2U7XG59XG4udWkuc2VhcmNoIC5wcm9tcHQge1xuICBib3JkZXItcmFkaXVzOiA1MDByZW07XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIEljb25cbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuc2VhcmNoIC5wcm9tcHQgfiAuc2VhcmNoLmljb24ge1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgUmVzdWx0c1xuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5zZWFyY2ggPiAucmVzdWx0cyB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAxMDAlO1xuICBsZWZ0OiAwJTtcbiAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyIHRvcDtcbiAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcbiAgYmFja2dyb3VuZDogI0ZGRkZGRjtcbiAgbWFyZ2luLXRvcDogMC41ZW07XG4gIHdpZHRoOiAxOGVtO1xuICBib3JkZXItcmFkaXVzOiAwLjRyZW07XG4gIGJveC1zaGFkb3c6IDBweCAycHggNHB4IDBweCByZ2JhKDM0LCAzNiwgMzgsIDAuMTIpLCAwcHggMnB4IDEwcHggMHB4IHJnYmEoMzQsIDM2LCAzOCwgMC4xNSk7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNENEQ0RDU7XG4gIHotaW5kZXg6IDk5ODtcbn1cbi51aS5zZWFyY2ggPiAucmVzdWx0cyA+IDpmaXJzdC1jaGlsZCB7XG4gIGJvcmRlci1yYWRpdXM6IDAuNHJlbSAwLjRyZW0gMGVtIDBlbTtcbn1cbi51aS5zZWFyY2ggPiAucmVzdWx0cyA+IDpsYXN0LWNoaWxkIHtcbiAgYm9yZGVyLXJhZGl1czogMGVtIDBlbSAwLjRyZW0gMC40cmVtO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgIFJlc3VsdFxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5zZWFyY2ggPiAucmVzdWx0cyAucmVzdWx0IHtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBkaXNwbGF5OiBibG9jaztcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgZm9udC1zaXplOiAxZW07XG4gIHBhZGRpbmc6IDAuOWVtIDEuMWVtO1xuICBjb2xvcjogIzMzMzMzMztcbiAgbGluZS1oZWlnaHQ6IDEuMzM7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2JhKDM0LCAzNiwgMzgsIDAuMSk7XG59XG4udWkuc2VhcmNoID4gLnJlc3VsdHMgLnJlc3VsdDpsYXN0LWNoaWxkIHtcbiAgYm9yZGVyLWJvdHRvbTogbm9uZSAhaW1wb3J0YW50O1xufVxuLyogSW1hZ2UgKi9cbi51aS5zZWFyY2ggPiAucmVzdWx0cyAucmVzdWx0IC5pbWFnZSB7XG4gIGZsb2F0OiByaWdodDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgd2lkdGg6IDVlbTtcbiAgaGVpZ2h0OiAzZW07XG4gIGJvcmRlci1yYWRpdXM6IDAuMjVlbTtcbn1cbi51aS5zZWFyY2ggPiAucmVzdWx0cyAucmVzdWx0IC5pbWFnZSBpbWcge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IGF1dG87XG4gIGhlaWdodDogMTAwJTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgIEluZm9cbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuc2VhcmNoID4gLnJlc3VsdHMgLnJlc3VsdCAuaW1hZ2UgKyAuY29udGVudCB7XG4gIG1hcmdpbjogMGVtIDZlbSAwZW0gMGVtO1xufVxuLnVpLnNlYXJjaCA+IC5yZXN1bHRzIC5yZXN1bHQgLnRpdGxlIHtcbiAgbWFyZ2luOiAtMC4xNDI4NTcxNGVtIDBlbSAwZW07XG4gIGZvbnQtZmFtaWx5OiAnRXhvIDInLCAnTGF0bycsIEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBmb250LXNpemU6IDFlbTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44NSk7XG59XG4udWkuc2VhcmNoID4gLnJlc3VsdHMgLnJlc3VsdCAuZGVzY3JpcHRpb24ge1xuICBtYXJnaW4tdG9wOiAwO1xuICBmb250LXNpemU6IDAuOWVtO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjQpO1xufVxuLnVpLnNlYXJjaCA+IC5yZXN1bHRzIC5yZXN1bHQgLnByaWNlIHtcbiAgZmxvYXQ6IHJpZ2h0O1xuICBjb2xvcjogIzE5YTUzMTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBNZXNzYWdlXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLnNlYXJjaCA+IC5yZXN1bHRzID4gLm1lc3NhZ2Uge1xuICBwYWRkaW5nOiAxZW0gMWVtO1xufVxuLnVpLnNlYXJjaCA+IC5yZXN1bHRzID4gLm1lc3NhZ2UgLmhlYWRlciB7XG4gIGZvbnQtZmFtaWx5OiAnRXhvIDInLCAnTGF0bycsIEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGNvbG9yOiAjMzMzMzMzO1xufVxuLnVpLnNlYXJjaCA+IC5yZXN1bHRzID4gLm1lc3NhZ2UgLmRlc2NyaXB0aW9uIHtcbiAgbWFyZ2luLXRvcDogMC4yNXJlbTtcbiAgZm9udC1zaXplOiAxZW07XG4gIGNvbG9yOiAjMzMzMzMzO1xufVxuLyogVmlldyBBbGwgUmVzdWx0cyAqL1xuLnVpLnNlYXJjaCA+IC5yZXN1bHRzID4gLmFjdGlvbiB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBib3JkZXItdG9wOiBub25lO1xuICBiYWNrZ3JvdW5kOiAjRjNGNEY1O1xuICBwYWRkaW5nOiAwLjllbSAxZW07XG4gIGNvbG9yOiAjMzMzMzMzO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5zZWFyY2ggPiAucHJvbXB0OmZvY3VzIHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDM0LCAzNiwgMzgsIDAuMzUpO1xuICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjk1KTtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkaW5nXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmxvYWRpbmcuc2VhcmNoIC5pbnB1dCA+IGkuaWNvbjpiZWZvcmUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGNvbnRlbnQ6ICcnO1xuICB0b3A6IDUwJTtcbiAgbGVmdDogNTAlO1xuICBtYXJnaW46IC0wLjY1ZW0gMGVtIDBlbSAtMC42NWVtO1xuICB3aWR0aDogMS4zZW07XG4gIGhlaWdodDogMS4zZW07XG4gIGJvcmRlci1yYWRpdXM6IDUwMHJlbTtcbiAgYm9yZGVyOiAwLjJlbSBzb2xpZCByZ2JhKDAsIDAsIDAsIDAuMSk7XG59XG4udWkubG9hZGluZy5zZWFyY2ggLmlucHV0ID4gaS5pY29uOmFmdGVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBjb250ZW50OiAnJztcbiAgdG9wOiA1MCU7XG4gIGxlZnQ6IDUwJTtcbiAgbWFyZ2luOiAtMC42NWVtIDBlbSAwZW0gLTAuNjVlbTtcbiAgd2lkdGg6IDEuM2VtO1xuICBoZWlnaHQ6IDEuM2VtO1xuICBhbmltYXRpb246IGJ1dHRvbi1zcGluIDAuNnMgbGluZWFyO1xuICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgYm9yZGVyLXJhZGl1czogNTAwcmVtO1xuICBib3JkZXItY29sb3I6ICM3Njc2NzYgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1zdHlsZTogc29saWQ7XG4gIGJvcmRlci13aWR0aDogMC4yZW07XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCB0cmFuc3BhcmVudDtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLnNlYXJjaCA+IC5yZXN1bHRzIC5yZXN1bHQ6aG92ZXIsXG4udWkuY2F0ZWdvcnkuc2VhcmNoID4gLnJlc3VsdHMgLmNhdGVnb3J5IC5yZXN1bHQ6aG92ZXIge1xuICBiYWNrZ3JvdW5kOiAjRjlGQUZCO1xufVxuLnVpLnNlYXJjaCAuYWN0aW9uOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogI0UwRTBFMDtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5jYXRlZ29yeS5zZWFyY2ggPiAucmVzdWx0cyAuY2F0ZWdvcnkuYWN0aXZlIHtcbiAgYmFja2dyb3VuZDogI0YzRjRGNTtcbn1cbi51aS5jYXRlZ29yeS5zZWFyY2ggPiAucmVzdWx0cyAuY2F0ZWdvcnkuYWN0aXZlID4gLm5hbWUge1xuICBjb2xvcjogIzMzMzMzMztcbn1cbi51aS5zZWFyY2ggPiAucmVzdWx0cyAucmVzdWx0LmFjdGl2ZSxcbi51aS5jYXRlZ29yeS5zZWFyY2ggPiAucmVzdWx0cyAuY2F0ZWdvcnkgLnJlc3VsdC5hY3RpdmUge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJvcmRlci1sZWZ0LWNvbG9yOiByZ2JhKDM0LCAzNiwgMzgsIDAuMSk7XG4gIGJhY2tncm91bmQ6ICNGM0Y0RjU7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG59XG4udWkuc2VhcmNoID4gLnJlc3VsdHMgLnJlc3VsdC5hY3RpdmUgLnRpdGxlIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44NSk7XG59XG4udWkuc2VhcmNoID4gLnJlc3VsdHMgLnJlc3VsdC5hY3RpdmUgLmRlc2NyaXB0aW9uIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44NSk7XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBUeXBlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBTZWxlY3Rpb25cbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuc2VhcmNoLnNlbGVjdGlvbiAucHJvbXB0IHtcbiAgYm9yZGVyLXJhZGl1czogMC40cmVtO1xufVxuLyogUmVtb3ZlIGlucHV0ICovXG4udWkuc2VhcmNoLnNlbGVjdGlvbiA+IC5pY29uLmlucHV0ID4gLnJlbW92ZS5pY29uIHtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogYXV0bztcbiAgb3BhY2l0eTogMDtcbiAgY29sb3I6ICcnO1xuICB0b3A6IDBlbTtcbiAgcmlnaHQ6IDBlbTtcbiAgdHJhbnNpdGlvbjogY29sb3IgMC4xcyBlYXNlLCBvcGFjaXR5IDAuMXMgZWFzZTtcbn1cbi51aS5zZWFyY2guc2VsZWN0aW9uID4gLmljb24uaW5wdXQgPiAuYWN0aXZlLnJlbW92ZS5pY29uIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBvcGFjaXR5OiAwLjg7XG4gIHBvaW50ZXItZXZlbnRzOiBhdXRvO1xufVxuLnVpLnNlYXJjaC5zZWxlY3Rpb24gPiAuaWNvbi5pbnB1dDpub3QoW2NsYXNzKj1cImxlZnQgaWNvblwiXSkgPiAuaWNvbiB+IC5yZW1vdmUuaWNvbiB7XG4gIHJpZ2h0OiAxLjg1NzE0ZW07XG59XG4udWkuc2VhcmNoLnNlbGVjdGlvbiA+IC5pY29uLmlucHV0ID4gLnJlbW92ZS5pY29uOmhvdmVyIHtcbiAgb3BhY2l0eTogMTtcbiAgY29sb3I6ICNkZTNhM2U7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgQ2F0ZWdvcnlcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuY2F0ZWdvcnkuc2VhcmNoIC5yZXN1bHRzIHtcbiAgd2lkdGg6IDI4ZW07XG59XG4vKiBDYXRlZ29yeSAqL1xuLnVpLmNhdGVnb3J5LnNlYXJjaCA+IC5yZXN1bHRzIC5jYXRlZ29yeSB7XG4gIGJhY2tncm91bmQ6ICNGM0Y0RjU7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2JhKDM0LCAzNiwgMzgsIDAuMSk7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xcyBlYXNlLCBib3JkZXItY29sb3IgMC4xcyBlYXNlO1xufVxuLyogTGFzdCBDYXRlZ29yeSAqL1xuLnVpLmNhdGVnb3J5LnNlYXJjaCA+IC5yZXN1bHRzIC5jYXRlZ29yeTpsYXN0LWNoaWxkIHtcbiAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbn1cbi8qIEZpcnN0IC8gTGFzdCAqL1xuLnVpLmNhdGVnb3J5LnNlYXJjaCA+IC5yZXN1bHRzIC5jYXRlZ29yeTpmaXJzdC1jaGlsZCAubmFtZSArIC5yZXN1bHQge1xuICBib3JkZXItcmFkaXVzOiAwZW0gMC40cmVtIDBlbSAwZW07XG59XG4udWkuY2F0ZWdvcnkuc2VhcmNoID4gLnJlc3VsdHMgLmNhdGVnb3J5Omxhc3QtY2hpbGQgLnJlc3VsdDpsYXN0LWNoaWxkIHtcbiAgYm9yZGVyLXJhZGl1czogMGVtIDBlbSAwLjRyZW0gMGVtO1xufVxuLyogQ2F0ZWdvcnkgUmVzdWx0ICovXG4udWkuY2F0ZWdvcnkuc2VhcmNoID4gLnJlc3VsdHMgLmNhdGVnb3J5IC5yZXN1bHQge1xuICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICBtYXJnaW4tbGVmdDogMTAwcHg7XG4gIGJvcmRlci1sZWZ0OiAxcHggc29saWQgcmdiYSgzNCwgMzYsIDM4LCAwLjE1KTtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYmEoMzQsIDM2LCAzOCwgMC4xKTtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjFzIGVhc2UsIGJvcmRlci1jb2xvciAwLjFzIGVhc2U7XG4gIHBhZGRpbmc6IDAuOWVtIDEuMWVtO1xufVxuLnVpLmNhdGVnb3J5LnNlYXJjaCA+IC5yZXN1bHRzIC5jYXRlZ29yeTpsYXN0LWNoaWxkIC5yZXN1bHQ6bGFzdC1jaGlsZCB7XG4gIGJvcmRlci1ib3R0b206IG5vbmU7XG59XG4vKiBDYXRlZ29yeSBSZXN1bHQgTmFtZSAqL1xuLnVpLmNhdGVnb3J5LnNlYXJjaCA+IC5yZXN1bHRzIC5jYXRlZ29yeSA+IC5uYW1lIHtcbiAgd2lkdGg6IDEwMHB4O1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgZm9udC1mYW1pbHk6ICdFeG8gMicsICdMYXRvJywgQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxZW07XG4gIGZsb2F0OiAxZW07XG4gIGZsb2F0OiBsZWZ0O1xuICBwYWRkaW5nOiAwLjRlbSAxZW07XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjQpO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgVmFyaWF0aW9uc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBMZWZ0IC8gUmlnaHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aVtjbGFzcyo9XCJsZWZ0IGFsaWduZWRcIl0uc2VhcmNoID4gLnJlc3VsdHMge1xuICByaWdodDogYXV0bztcbiAgbGVmdDogMCU7XG59XG4udWlbY2xhc3MqPVwicmlnaHQgYWxpZ25lZFwiXS5zZWFyY2ggPiAucmVzdWx0cyB7XG4gIHJpZ2h0OiAwJTtcbiAgbGVmdDogYXV0bztcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBGbHVpZFxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5mbHVpZC5zZWFyY2ggLnJlc3VsdHMge1xuICB3aWR0aDogMTAwJTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLm1pbmkuc2VhcmNoIHtcbiAgZm9udC1zaXplOiAwLjhlbTtcbn1cbi51aS5zbWFsbC5zZWFyY2gge1xuICBmb250LXNpemU6IDAuOWVtO1xufVxuLnVpLnNlYXJjaCB7XG4gIGZvbnQtc2l6ZTogMWVtO1xufVxuLnVpLmxhcmdlLnNlYXJjaCB7XG4gIGZvbnQtc2l6ZTogMS4xZW07XG59XG4udWkuYmlnLnNlYXJjaCB7XG4gIGZvbnQtc2l6ZTogMS4zZW07XG59XG4udWkuaHVnZS5zZWFyY2gge1xuICBmb250LXNpemU6IDEuNGVtO1xufVxuLnVpLm1hc3NpdmUuc2VhcmNoIHtcbiAgZm9udC1zaXplOiAxLjdlbTtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBUaGVtZSBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiFcbiAqICMgU2VtYW50aWMgVUkgLSBTaGFwZVxuICogaHR0cDovL2dpdGh1Yi5jb20vc2VtYW50aWMtb3JnL3NlbWFudGljLXVpL1xuICpcbiAqXG4gKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2VcbiAqIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVRcbiAqXG4gKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qXG5cbuKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVlyAg4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4pWXICAg4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWXXG7ilZrilZDilZDilojilojilZTilZDilZDilZ3ilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKWiOKWiOKVlyDilojilojilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilZTilZDilZDilZDilZDilZ1cbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4pWU4paI4paI4paI4paI4pWU4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilojilojilojilojilojilZdcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVlOKVkOKVkOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4paI4paI4pWR4pWa4paI4paI4pWU4pWd4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilZrilZDilZDilZDilZDilojilojilZFcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWRIOKVmuKVkOKVnSDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZFcbiAgIOKVmuKVkOKVnSAgIOKVmuKVkOKVnSAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWdICAgICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ1cblxuKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIFRoZW1lIFNlbGVjdGlvblxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFRvIG92ZXJyaWRlIGEgdGhlbWUgZm9yIGFuIGluZGl2aWR1YWwgZWxlbWVudFxuICAgc3BlY2lmeSB0aGVtZSBuYW1lIGJlbG93XG4qL1xuLyogR2xvYmFsICovXG4vKiBFbGVtZW50cyAqL1xuLyogQ29sbGVjdGlvbnMgKi9cbi8qIE1vZHVsZXMgKi9cbi8qIFZpZXdzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgRm9sZGVyc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFBhdGggdG8gdGhlbWUgcGFja2FnZXMgKi9cbi8qIFBhdGggdG8gc2l0ZSBvdmVycmlkZSBmb2xkZXIgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBJbXBvcnQgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBJbXBvcnQgRGlyZWN0aXZlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgVGhlbWVcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgU2l0ZSBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0IHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRvcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogUGFja2FnZWQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZG9ycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBDb21wb25lbnQncyBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kb3JzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFNpdGUgdGhlbWUgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgIFVzZXIgR2xvYmFsIFZhcmlhYmxlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIG1hcnNvIGNvbG9ycyAqL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuIENvbXBvbmVudCBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0ICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFNoYXBlXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogQW5pbWF0aW5nICovXG4vKiBTaWRlICovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgICBUeXBlc1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEN1YmUgKi9cbi8qIFBhY2thZ2VkIFRoZW1lICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFNoYXBlXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogQW5pbWF0aW5nICovXG4vKiBTaWRlICovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgICBUeXBlc1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEN1YmUgKi9cbi8qIFNpdGUgVGhlbWUgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgVXNlciBWYXJpYWJsZSBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIE1peC1pbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE92ZXJyaWRlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBFbmQgQ29uZmlnICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgICBTaGFwZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi51aS5zaGFwZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwZXJzcGVjdGl2ZTogMjAwMHB4O1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC42cyBlYXNlLWluLW91dCwgbGVmdCAwLjZzIGVhc2UtaW4tb3V0LCB3aWR0aCAwLjZzIGVhc2UtaW4tb3V0LCBoZWlnaHQgMC42cyBlYXNlLWluLW91dDtcbn1cbi51aS5zaGFwZSAuc2lkZXMge1xuICB0cmFuc2Zvcm0tc3R5bGU6IHByZXNlcnZlLTNkO1xufVxuLnVpLnNoYXBlIC5zaWRlIHtcbiAgb3BhY2l0eTogMTtcbiAgd2lkdGg6IDEwMCU7XG4gIG1hcmdpbjogMGVtICFpbXBvcnRhbnQ7XG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbn1cbi51aS5zaGFwZSAuc2lkZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4udWkuc2hhcGUgLnNpZGUgKiB7XG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IHZpc2libGUgIWltcG9ydGFudDtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgVHlwZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4udWkuY3ViZS5zaGFwZSAuc2lkZSB7XG4gIG1pbi13aWR0aDogMTVlbTtcbiAgaGVpZ2h0OiAxNWVtO1xuICBwYWRkaW5nOiAyZW07XG4gIGJhY2tncm91bmQtY29sb3I6ICNFNkU2RTY7XG4gIGNvbG9yOiAjMzMzMzMzO1xuICBib3gtc2hhZG93OiAwcHggMHB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMyk7XG59XG4udWkuY3ViZS5zaGFwZSAuc2lkZSA+IC5jb250ZW50IHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgZGlzcGxheTogdGFibGU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgdXNlci1zZWxlY3Q6IHRleHQ7XG59XG4udWkuY3ViZS5zaGFwZSAuc2lkZSA+IC5jb250ZW50ID4gZGl2IHtcbiAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgZm9udC1zaXplOiAyZW07XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgIFZhcmlhdGlvbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4udWkudGV4dC5zaGFwZS5hbmltYXRpbmcgLnNpZGVzIHtcbiAgcG9zaXRpb246IHN0YXRpYztcbn1cbi51aS50ZXh0LnNoYXBlIC5zaWRlIHtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cbi51aS50ZXh0LnNoYXBlIC5zaWRlID4gKiB7XG4gIHdoaXRlLXNwYWNlOiBub3JtYWw7XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBMb2FkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmxvYWRpbmcuc2hhcGUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogLTk5OTlweDtcbiAgbGVmdDogLTk5OTlweDtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBBbmltYXRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuc2hhcGUgLmFuaW1hdGluZy5zaWRlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDBweDtcbiAgbGVmdDogMHB4O1xuICBkaXNwbGF5OiBibG9jaztcbiAgei1pbmRleDogMTAwO1xufVxuLnVpLnNoYXBlIC5oaWRkZW4uc2lkZSB7XG4gIG9wYWNpdHk6IDAuNjtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgIENTU1xuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5zaGFwZS5hbmltYXRpbmcgLnNpZGVzIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xufVxuLnVpLnNoYXBlLmFuaW1hdGluZyAuc2lkZXMge1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC42cyBlYXNlLWluLW91dCwgbGVmdCAwLjZzIGVhc2UtaW4tb3V0LCB3aWR0aCAwLjZzIGVhc2UtaW4tb3V0LCBoZWlnaHQgMC42cyBlYXNlLWluLW91dDtcbn1cbi51aS5zaGFwZS5hbmltYXRpbmcgLnNpZGUge1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuNnMgZWFzZS1pbi1vdXQ7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5zaGFwZSAuYWN0aXZlLnNpZGUge1xuICBkaXNwbGF5OiBibG9jaztcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBUaGVtZSBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBVc2VyIE92ZXJyaWRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIVxuICogIyBTZW1hbnRpYyBVSSAtIFNpZGViYXJcbiAqIGh0dHA6Ly9naXRodWIuY29tL3NlbWFudGljLW9yZy9zZW1hbnRpYy11aS9cbiAqXG4gKlxuICogUmVsZWFzZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlXG4gKiBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUXG4gKlxuICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKlxuXG7ilojilojilojilojilojilojilojilojilZfilojilojilZcgIOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKVlyAgIOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl1xu4pWa4pWQ4pWQ4paI4paI4pWU4pWQ4pWQ4pWd4paI4paI4pWRICDilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilojilojilZcg4paI4paI4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWd4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWdXG4gICDilojilojilZEgICDilojilojilojilojilojilojilojilZHilojilojilojilojilojilZcgIOKWiOKWiOKVlOKWiOKWiOKWiOKWiOKVlOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4paI4paI4paI4paI4paI4pWXXG4gICDilojilojilZEgICDilojilojilZTilZDilZDilojilojilZHilojilojilZTilZDilZDilZ0gIOKWiOKWiOKVkeKVmuKWiOKWiOKVlOKVneKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4pWa4pWQ4pWQ4pWQ4pWQ4paI4paI4pWRXG4gICDilojilojilZEgICDilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVkSDilZrilZDilZ0g4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWRXG4gICDilZrilZDilZ0gICDilZrilZDilZ0gIOKVmuKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVneKVmuKVkOKVnSAgICAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWdXG5cbiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBUaGVtZSBTZWxlY3Rpb25cbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBUbyBvdmVycmlkZSBhIHRoZW1lIGZvciBhbiBpbmRpdmlkdWFsIGVsZW1lbnRcbiAgIHNwZWNpZnkgdGhlbWUgbmFtZSBiZWxvd1xuKi9cbi8qIEdsb2JhbCAqL1xuLyogRWxlbWVudHMgKi9cbi8qIENvbGxlY3Rpb25zICovXG4vKiBNb2R1bGVzICovXG4vKiBWaWV3cyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIEZvbGRlcnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBQYXRoIHRvIHRoZW1lIHBhY2thZ2VzICovXG4vKiBQYXRoIHRvIHNpdGUgb3ZlcnJpZGUgZm9sZGVyICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgSW1wb3J0IFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgSW1wb3J0IERpcmVjdGl2ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIFRoZW1lXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgIFNpdGUgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kb3JzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFBhY2thZ2VkIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRvcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogQ29tcG9uZW50J3Mgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZG9ycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBTaXRlIHRoZW1lIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICBVc2VyIEdsb2JhbCBWYXJpYWJsZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBtYXJzbyBjb2xvcnMgKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiBDb21wb25lbnQgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTaWRlYmFyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQ29udGVudFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogQW5pbWF0aW9uICovXG4vKiBEaW1tZXIgKi9cbi8qIENvbG9yIGJlbG93IHBhZ2UgKi9cbi8qIFNoYWRvdyAqL1xuLyogTGF5ZXJpbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgVmFyaWF0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogV2lkdGggKi9cbi8qIEhlaWdodCAqL1xuLyogUGFja2FnZWQgVGhlbWUgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU2lkZWJhclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIENvbnRlbnRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEFuaW1hdGlvbiAqL1xuLyogRGltbWVyICovXG4vKiBDb2xvciBiZWxvdyBwYWdlICovXG4vKiBTaGFkb3cgKi9cbi8qIExheWVyaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFZhcmlhdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFdpZHRoICovXG4vKiBIZWlnaHQgKi9cbi8qIFNpdGUgVGhlbWUgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIE92ZXJyaWRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgTWl4LWluc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgT3ZlcnJpZGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEVuZCBDb25maWcgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBTaWRlYmFyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogU2lkZWJhciBNZW51ICovXG4udWkuc2lkZWJhciB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gIHRyYW5zaXRpb246IG5vbmU7XG4gIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm07XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoO1xuICBoZWlnaHQ6IDEwMCUgIWltcG9ydGFudDtcbiAgbWF4LWhlaWdodDogMTAwJTtcbiAgYm9yZGVyLXJhZGl1czogMGVtICFpbXBvcnRhbnQ7XG4gIG1hcmdpbjogMGVtICFpbXBvcnRhbnQ7XG4gIG92ZXJmbG93LXk6IGF1dG8gIWltcG9ydGFudDtcbiAgei1pbmRleDogMTAyO1xufVxuLyogR1BVIExheWVycyBmb3IgQ2hpbGQgRWxlbWVudHMgKi9cbi51aS5zaWRlYmFyID4gKiB7XG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIERpcmVjdGlvblxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5sZWZ0LnNpZGViYXIge1xuICByaWdodDogYXV0bztcbiAgbGVmdDogMHB4O1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0xMDAlLCAwLCAwKTtcbn1cbi51aS5yaWdodC5zaWRlYmFyIHtcbiAgcmlnaHQ6IDBweCAhaW1wb3J0YW50O1xuICBsZWZ0OiBhdXRvICFpbXBvcnRhbnQ7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMTAwJSwgMCUsIDApO1xufVxuLnVpLnRvcC5zaWRlYmFyLFxuLnVpLmJvdHRvbS5zaWRlYmFyIHtcbiAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgaGVpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG59XG4udWkudG9wLnNpZGViYXIge1xuICB0b3A6IDBweCAhaW1wb3J0YW50O1xuICBib3R0b206IGF1dG8gIWltcG9ydGFudDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMTAwJSwgMCk7XG59XG4udWkuYm90dG9tLnNpZGViYXIge1xuICB0b3A6IGF1dG8gIWltcG9ydGFudDtcbiAgYm90dG9tOiAwcHggIWltcG9ydGFudDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAxMDAlLCAwKTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgUHVzaGFibGVcbi0tLS0tLS0tLS0tLS0tLSovXG4ucHVzaGFibGUge1xuICBoZWlnaHQ6IDEwMCU7XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgcGFkZGluZzogMGVtICFpbXBvcnRhbnQ7XG59XG4vKiBXaG9sZSBQYWdlICovXG5ib2R5LnB1c2hhYmxlIHtcbiAgYmFja2dyb3VuZDogIzU0NTQ1NCAhaW1wb3J0YW50O1xufVxuLyogUGFnZSBDb250ZXh0ICovXG4ucHVzaGFibGU6bm90KGJvZHkpIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbn1cbi5wdXNoYWJsZTpub3QoYm9keSkgPiAudWkuc2lkZWJhcixcbi5wdXNoYWJsZTpub3QoYm9keSkgPiAuZml4ZWQsXG4ucHVzaGFibGU6bm90KGJvZHkpID4gLnB1c2hlcjphZnRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgRml4ZWRcbi0tLS0tLS0tLS0tLS0tLSovXG4ucHVzaGFibGUgPiAuZml4ZWQge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDUwMG1zIGVhc2U7XG4gIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm07XG4gIHotaW5kZXg6IDEwMTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tKi9cbi5wdXNoYWJsZSA+IC5wdXNoZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgbWluLWhlaWdodDogMTAwJTtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDUwMG1zIGVhc2U7XG4gIHotaW5kZXg6IDI7XG59XG5ib2R5LnB1c2hhYmxlID4gLnB1c2hlciB7XG4gIGJhY2tncm91bmQ6ICNGRkZGRkY7XG59XG4vKiBQdXNoZXIgc2hvdWxkIGluaGVyaXQgYmFja2dyb3VuZCBmcm9tIGNvbnRleHQgKi9cbi5wdXNoYWJsZSA+IC5wdXNoZXIge1xuICBiYWNrZ3JvdW5kOiBpbmhlcml0O1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBEaW1tZXJcbi0tLS0tLS0tLS0tLS0tLSovXG4ucHVzaGFibGUgPiAucHVzaGVyOmFmdGVyIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDBweDtcbiAgcmlnaHQ6IDBweDtcbiAgY29udGVudDogJyc7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC40KTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSA1MDBtcztcbiAgd2lsbC1jaGFuZ2U6IG9wYWNpdHk7XG4gIHotaW5kZXg6IDEwMDA7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgQ291cGxpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuc2lkZWJhci5tZW51IC5pdGVtIHtcbiAgYm9yZGVyLXJhZGl1czogMGVtICFpbXBvcnRhbnQ7XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgICBEaW1tZWRcbi0tLS0tLS0tLS0tLS0tLSovXG4ucHVzaGFibGUgPiAucHVzaGVyLmRpbW1lZDphZnRlciB7XG4gIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gIGhlaWdodDogMTAwJSAhaW1wb3J0YW50O1xuICBvcGFjaXR5OiAxICFpbXBvcnRhbnQ7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgQW5pbWF0aW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmFuaW1hdGluZy5zaWRlYmFyIHtcbiAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgVmlzaWJsZVxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS52aXNpYmxlLnNpZGViYXIge1xuICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xufVxuLyogU2hhZG93IERpcmVjdGlvbiAqL1xuLnVpLmxlZnQudmlzaWJsZS5zaWRlYmFyLFxuLnVpLnJpZ2h0LnZpc2libGUuc2lkZWJhciB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMjBweCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpO1xufVxuLnVpLnRvcC52aXNpYmxlLnNpZGViYXIsXG4udWkuYm90dG9tLnZpc2libGUuc2lkZWJhciB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMjBweCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpO1xufVxuLyogVmlzaWJsZSBPbiBMb2FkICovXG4udWkudmlzaWJsZS5sZWZ0LnNpZGViYXIgfiAuZml4ZWQsXG4udWkudmlzaWJsZS5sZWZ0LnNpZGViYXIgfiAucHVzaGVyIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgyNjBweCwgMCwgMCk7XG59XG4udWkudmlzaWJsZS5yaWdodC5zaWRlYmFyIH4gLmZpeGVkLFxuLnVpLnZpc2libGUucmlnaHQuc2lkZWJhciB+IC5wdXNoZXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0yNjBweCwgMCwgMCk7XG59XG4udWkudmlzaWJsZS50b3Auc2lkZWJhciB+IC5maXhlZCxcbi51aS52aXNpYmxlLnRvcC5zaWRlYmFyIH4gLnB1c2hlciB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMzZweCwgMCk7XG59XG4udWkudmlzaWJsZS5ib3R0b20uc2lkZWJhciB+IC5maXhlZCxcbi51aS52aXNpYmxlLmJvdHRvbS5zaWRlYmFyIH4gLnB1c2hlciB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTM2cHgsIDApO1xufVxuLyogb3Bwb3NpdGUgc2lkZXMgdmlzaWJsZSBmb3JjZXMgY29udGVudCBvdmVybGF5ICovXG4udWkudmlzaWJsZS5sZWZ0LnNpZGViYXIgfiAudWkudmlzaWJsZS5yaWdodC5zaWRlYmFyIH4gLmZpeGVkLFxuLnVpLnZpc2libGUubGVmdC5zaWRlYmFyIH4gLnVpLnZpc2libGUucmlnaHQuc2lkZWJhciB+IC5wdXNoZXIsXG4udWkudmlzaWJsZS5yaWdodC5zaWRlYmFyIH4gLnVpLnZpc2libGUubGVmdC5zaWRlYmFyIH4gLmZpeGVkLFxuLnVpLnZpc2libGUucmlnaHQuc2lkZWJhciB+IC51aS52aXNpYmxlLmxlZnQuc2lkZWJhciB+IC5wdXNoZXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICAgIGlPU1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIGlPUyBpbmNvcnJlY3RseSBzaXplcyBkb2N1bWVudCB3aGVuIGNvbnRlbnRcbiAgaXMgcHJlc2VudGVkIG91dHNpZGUgb2YgdmlldyB3aXRoIDJEdHJhbnNsYXRlXG4qL1xuaHRtbC5pb3Mge1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG4gIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDtcbn1cbmh0bWwuaW9zLFxuaHRtbC5pb3MgYm9keSB7XG4gIGhlaWdodDogaW5pdGlhbCAhaW1wb3J0YW50O1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICBWYXJpYXRpb25zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgICBXaWR0aFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExlZnQgLyBSaWdodCAqL1xuLnVpLnRoaW4ubGVmdC5zaWRlYmFyLFxuLnVpLnRoaW4ucmlnaHQuc2lkZWJhciB7XG4gIHdpZHRoOiAxNTBweDtcbn1cbi51aVtjbGFzcyo9XCJ2ZXJ5IHRoaW5cIl0ubGVmdC5zaWRlYmFyLFxuLnVpW2NsYXNzKj1cInZlcnkgdGhpblwiXS5yaWdodC5zaWRlYmFyIHtcbiAgd2lkdGg6IDYwcHg7XG59XG4udWkubGVmdC5zaWRlYmFyLFxuLnVpLnJpZ2h0LnNpZGViYXIge1xuICB3aWR0aDogMjYwcHg7XG59XG4udWkud2lkZS5sZWZ0LnNpZGViYXIsXG4udWkud2lkZS5yaWdodC5zaWRlYmFyIHtcbiAgd2lkdGg6IDM1MHB4O1xufVxuLnVpW2NsYXNzKj1cInZlcnkgd2lkZVwiXS5sZWZ0LnNpZGViYXIsXG4udWlbY2xhc3MqPVwidmVyeSB3aWRlXCJdLnJpZ2h0LnNpZGViYXIge1xuICB3aWR0aDogNDc1cHg7XG59XG4vKiBMZWZ0IFZpc2libGUgKi9cbi51aS52aXNpYmxlLnRoaW4ubGVmdC5zaWRlYmFyIH4gLmZpeGVkLFxuLnVpLnZpc2libGUudGhpbi5sZWZ0LnNpZGViYXIgfiAucHVzaGVyIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgxNTBweCwgMCwgMCk7XG59XG4udWkudmlzaWJsZVtjbGFzcyo9XCJ2ZXJ5IHRoaW5cIl0ubGVmdC5zaWRlYmFyIH4gLmZpeGVkLFxuLnVpLnZpc2libGVbY2xhc3MqPVwidmVyeSB0aGluXCJdLmxlZnQuc2lkZWJhciB+IC5wdXNoZXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDYwcHgsIDAsIDApO1xufVxuLnVpLnZpc2libGUud2lkZS5sZWZ0LnNpZGViYXIgfiAuZml4ZWQsXG4udWkudmlzaWJsZS53aWRlLmxlZnQuc2lkZWJhciB+IC5wdXNoZXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDM1MHB4LCAwLCAwKTtcbn1cbi51aS52aXNpYmxlW2NsYXNzKj1cInZlcnkgd2lkZVwiXS5sZWZ0LnNpZGViYXIgfiAuZml4ZWQsXG4udWkudmlzaWJsZVtjbGFzcyo9XCJ2ZXJ5IHdpZGVcIl0ubGVmdC5zaWRlYmFyIH4gLnB1c2hlciB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoNDc1cHgsIDAsIDApO1xufVxuLyogUmlnaHQgVmlzaWJsZSAqL1xuLnVpLnZpc2libGUudGhpbi5yaWdodC5zaWRlYmFyIH4gLmZpeGVkLFxuLnVpLnZpc2libGUudGhpbi5yaWdodC5zaWRlYmFyIH4gLnB1c2hlciB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTE1MHB4LCAwLCAwKTtcbn1cbi51aS52aXNpYmxlW2NsYXNzKj1cInZlcnkgdGhpblwiXS5yaWdodC5zaWRlYmFyIH4gLmZpeGVkLFxuLnVpLnZpc2libGVbY2xhc3MqPVwidmVyeSB0aGluXCJdLnJpZ2h0LnNpZGViYXIgfiAucHVzaGVyIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtNjBweCwgMCwgMCk7XG59XG4udWkudmlzaWJsZS53aWRlLnJpZ2h0LnNpZGViYXIgfiAuZml4ZWQsXG4udWkudmlzaWJsZS53aWRlLnJpZ2h0LnNpZGViYXIgfiAucHVzaGVyIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMzUwcHgsIDAsIDApO1xufVxuLnVpLnZpc2libGVbY2xhc3MqPVwidmVyeSB3aWRlXCJdLnJpZ2h0LnNpZGViYXIgfiAuZml4ZWQsXG4udWkudmlzaWJsZVtjbGFzcyo9XCJ2ZXJ5IHdpZGVcIl0ucmlnaHQuc2lkZWJhciB+IC5wdXNoZXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC00NzVweCwgMCwgMCk7XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgIEFuaW1hdGlvbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgT3ZlcmxheVxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNldC11cCAqL1xuLnVpLm92ZXJsYXkuc2lkZWJhciB7XG4gIHotaW5kZXg6IDEwMjtcbn1cbi8qIEluaXRpYWwgKi9cbi51aS5sZWZ0Lm92ZXJsYXkuc2lkZWJhciB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTEwMCUsIDAlLCAwKTtcbn1cbi51aS5yaWdodC5vdmVybGF5LnNpZGViYXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDEwMCUsIDAlLCAwKTtcbn1cbi51aS50b3Aub3ZlcmxheS5zaWRlYmFyIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwJSwgLTEwMCUsIDApO1xufVxuLnVpLmJvdHRvbS5vdmVybGF5LnNpZGViYXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAlLCAxMDAlLCAwKTtcbn1cbi8qIEFuaW1hdGlvbiAqL1xuLmFuaW1hdGluZy51aS5vdmVybGF5LnNpZGViYXIsXG4udWkudmlzaWJsZS5vdmVybGF5LnNpZGViYXIge1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gNTAwbXMgZWFzZTtcbn1cbi8qIEVuZCAtIFNpZGViYXIgKi9cbi51aS52aXNpYmxlLmxlZnQub3ZlcmxheS5zaWRlYmFyIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwJSwgMCUsIDApO1xufVxuLnVpLnZpc2libGUucmlnaHQub3ZlcmxheS5zaWRlYmFyIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwJSwgMCUsIDApO1xufVxuLnVpLnZpc2libGUudG9wLm92ZXJsYXkuc2lkZWJhciB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCUsIDAlLCAwKTtcbn1cbi51aS52aXNpYmxlLmJvdHRvbS5vdmVybGF5LnNpZGViYXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAlLCAwJSwgMCk7XG59XG4vKiBFbmQgLSBQdXNoZXIgKi9cbi51aS52aXNpYmxlLm92ZXJsYXkuc2lkZWJhciB+IC5maXhlZCxcbi51aS52aXNpYmxlLm92ZXJsYXkuc2lkZWJhciB+IC5wdXNoZXIge1xuICB0cmFuc2Zvcm06IG5vbmUgIWltcG9ydGFudDtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgIFB1c2hcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbml0aWFsICovXG4udWkucHVzaC5zaWRlYmFyIHtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDUwMG1zIGVhc2U7XG4gIHotaW5kZXg6IDEwMjtcbn1cbi8qIFNpZGViYXIgLSBJbml0aWFsICovXG4udWkubGVmdC5wdXNoLnNpZGViYXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0xMDAlLCAwLCAwKTtcbn1cbi51aS5yaWdodC5wdXNoLnNpZGViYXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDEwMCUsIDAsIDApO1xufVxuLnVpLnRvcC5wdXNoLnNpZGViYXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAlLCAtMTAwJSwgMCk7XG59XG4udWkuYm90dG9tLnB1c2guc2lkZWJhciB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCUsIDEwMCUsIDApO1xufVxuLyogRW5kICovXG4udWkudmlzaWJsZS5wdXNoLnNpZGViYXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAlLCAwLCAwKTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBVbmNvdmVyXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW5pdGlhbCAqL1xuLnVpLnVuY292ZXIuc2lkZWJhciB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gIHotaW5kZXg6IDE7XG59XG4vKiBFbmQgKi9cbi51aS52aXNpYmxlLnVuY292ZXIuc2lkZWJhciB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSA1MDBtcyBlYXNlO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgU2xpZGUgQWxvbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbml0aWFsICovXG4udWkuc2xpZGUuYWxvbmcuc2lkZWJhciB7XG4gIHotaW5kZXg6IDE7XG59XG4vKiBTaWRlYmFyIC0gSW5pdGlhbCAqL1xuLnVpLmxlZnQuc2xpZGUuYWxvbmcuc2lkZWJhciB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTUwJSwgMCwgMCk7XG59XG4udWkucmlnaHQuc2xpZGUuYWxvbmcuc2lkZWJhciB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoNTAlLCAwLCAwKTtcbn1cbi51aS50b3Auc2xpZGUuYWxvbmcuc2lkZWJhciB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTUwJSwgMCk7XG59XG4udWkuYm90dG9tLnNsaWRlLmFsb25nLnNpZGViYXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAlLCA1MCUsIDApO1xufVxuLyogQW5pbWF0aW9uICovXG4udWkuYW5pbWF0aW5nLnNsaWRlLmFsb25nLnNpZGViYXIge1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gNTAwbXMgZWFzZTtcbn1cbi8qIEVuZCAqL1xuLnVpLnZpc2libGUuc2xpZGUuYWxvbmcuc2lkZWJhciB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCUsIDAsIDApO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgU2xpZGUgT3V0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW5pdGlhbCAqL1xuLnVpLnNsaWRlLm91dC5zaWRlYmFyIHtcbiAgei1pbmRleDogMTtcbn1cbi8qIFNpZGViYXIgLSBJbml0aWFsICovXG4udWkubGVmdC5zbGlkZS5vdXQuc2lkZWJhciB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoNTAlLCAwLCAwKTtcbn1cbi51aS5yaWdodC5zbGlkZS5vdXQuc2lkZWJhciB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTUwJSwgMCwgMCk7XG59XG4udWkudG9wLnNsaWRlLm91dC5zaWRlYmFyIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwJSwgNTAlLCAwKTtcbn1cbi51aS5ib3R0b20uc2xpZGUub3V0LnNpZGViYXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAlLCAtNTAlLCAwKTtcbn1cbi8qIEFuaW1hdGlvbiAqL1xuLnVpLmFuaW1hdGluZy5zbGlkZS5vdXQuc2lkZWJhciB7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSA1MDBtcyBlYXNlO1xufVxuLyogRW5kICovXG4udWkudmlzaWJsZS5zbGlkZS5vdXQuc2lkZWJhciB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCUsIDAsIDApO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgU2NhbGUgRG93blxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEluaXRpYWwgKi9cbi51aS5zY2FsZS5kb3duLnNpZGViYXIge1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gNTAwbXMgZWFzZTtcbiAgei1pbmRleDogMTAyO1xufVxuLyogU2lkZWJhciAtIEluaXRpYWwgICovXG4udWkubGVmdC5zY2FsZS5kb3duLnNpZGViYXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0xMDAlLCAwLCAwKTtcbn1cbi51aS5yaWdodC5zY2FsZS5kb3duLnNpZGViYXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDEwMCUsIDAsIDApO1xufVxuLnVpLnRvcC5zY2FsZS5kb3duLnNpZGViYXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAlLCAtMTAwJSwgMCk7XG59XG4udWkuYm90dG9tLnNjYWxlLmRvd24uc2lkZWJhciB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCUsIDEwMCUsIDApO1xufVxuLyogUHVzaGVyIC0gSW5pdGlhbCAqL1xuLnVpLnNjYWxlLmRvd24ubGVmdC5zaWRlYmFyIH4gLnB1c2hlciB7XG4gIHRyYW5zZm9ybS1vcmlnaW46IDc1JSA1MCU7XG59XG4udWkuc2NhbGUuZG93bi5yaWdodC5zaWRlYmFyIH4gLnB1c2hlciB7XG4gIHRyYW5zZm9ybS1vcmlnaW46IDI1JSA1MCU7XG59XG4udWkuc2NhbGUuZG93bi50b3Auc2lkZWJhciB+IC5wdXNoZXIge1xuICB0cmFuc2Zvcm0tb3JpZ2luOiA1MCUgNzUlO1xufVxuLnVpLnNjYWxlLmRvd24uYm90dG9tLnNpZGViYXIgfiAucHVzaGVyIHtcbiAgdHJhbnNmb3JtLW9yaWdpbjogNTAlIDI1JTtcbn1cbi8qIEFuaW1hdGlvbiAqL1xuLnVpLmFuaW1hdGluZy5zY2FsZS5kb3duID4gLnZpc2libGUudWkuc2lkZWJhciB7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSA1MDBtcyBlYXNlO1xufVxuLnVpLnZpc2libGUuc2NhbGUuZG93bi5zaWRlYmFyIH4gLnB1c2hlcixcbi51aS5hbmltYXRpbmcuc2NhbGUuZG93bi5zaWRlYmFyIH4gLnB1c2hlciB7XG4gIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIG92ZXJmbG93OiBoaWRkZW4gIWltcG9ydGFudDtcbn1cbi8qIEVuZCAqL1xuLnVpLnZpc2libGUuc2NhbGUuZG93bi5zaWRlYmFyIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbn1cbi51aS52aXNpYmxlLnNjYWxlLmRvd24uc2lkZWJhciB+IC5wdXNoZXIge1xuICB0cmFuc2Zvcm06IHNjYWxlKDAuNzUpO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFRoZW1lIE92ZXJyaWRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIE92ZXJyaWRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIVxuICogIyBTZW1hbnRpYyBVSSAtIFN0aWNreVxuICogaHR0cDovL2dpdGh1Yi5jb20vc2VtYW50aWMtb3JnL3NlbWFudGljLXVpL1xuICpcbiAqXG4gKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2VcbiAqIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVRcbiAqXG4gKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qXG5cbuKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVlyAg4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4pWXICAg4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWXXG7ilZrilZDilZDilojilojilZTilZDilZDilZ3ilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKWiOKWiOKVlyDilojilojilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilZTilZDilZDilZDilZDilZ1cbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4pWU4paI4paI4paI4paI4pWU4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilojilojilojilojilojilZdcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVlOKVkOKVkOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4paI4paI4pWR4pWa4paI4paI4pWU4pWd4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilZrilZDilZDilZDilZDilojilojilZFcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWRIOKVmuKVkOKVnSDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZFcbiAgIOKVmuKVkOKVnSAgIOKVmuKVkOKVnSAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWdICAgICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ1cblxuKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIFRoZW1lIFNlbGVjdGlvblxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFRvIG92ZXJyaWRlIGEgdGhlbWUgZm9yIGFuIGluZGl2aWR1YWwgZWxlbWVudFxuICAgc3BlY2lmeSB0aGVtZSBuYW1lIGJlbG93XG4qL1xuLyogR2xvYmFsICovXG4vKiBFbGVtZW50cyAqL1xuLyogQ29sbGVjdGlvbnMgKi9cbi8qIE1vZHVsZXMgKi9cbi8qIFZpZXdzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgRm9sZGVyc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFBhdGggdG8gdGhlbWUgcGFja2FnZXMgKi9cbi8qIFBhdGggdG8gc2l0ZSBvdmVycmlkZSBmb2xkZXIgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBJbXBvcnQgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBJbXBvcnQgRGlyZWN0aXZlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgVGhlbWVcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgU2l0ZSBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0IHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRvcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogUGFja2FnZWQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZG9ycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBDb21wb25lbnQncyBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kb3JzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFNpdGUgdGhlbWUgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgIFVzZXIgR2xvYmFsIFZhcmlhYmxlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIG1hcnNvIGNvbG9ycyAqL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuIENvbXBvbmVudCBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0ICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgU3RpY2t5XG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogUGFja2FnZWQgVGhlbWUgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBTdGlja3lcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBTaXRlIFRoZW1lICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIE1peC1pbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE92ZXJyaWRlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBFbmQgQ29uZmlnICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgU3RpY2t5XG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLnVpLnN0aWNreSB7XG4gIHBvc2l0aW9uOiBzdGF0aWM7XG4gIHRyYW5zaXRpb246IG5vbmU7XG4gIHotaW5kZXg6IDgwMDtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBCb3VuZCAqL1xuLnVpLnN0aWNreS5ib3VuZCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogYXV0bztcbiAgcmlnaHQ6IGF1dG87XG59XG4vKiBGaXhlZCAqL1xuLnVpLnN0aWNreS5maXhlZCB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgbGVmdDogYXV0bztcbiAgcmlnaHQ6IGF1dG87XG59XG4vKiBCb3VuZC9GaXhlZCBQb3NpdGlvbiAqL1xuLnVpLnN0aWNreS5ib3VuZC50b3AsXG4udWkuc3RpY2t5LmZpeGVkLnRvcCB7XG4gIHRvcDogMHB4O1xuICBib3R0b206IGF1dG87XG59XG4udWkuc3RpY2t5LmJvdW5kLmJvdHRvbSxcbi51aS5zdGlja3kuZml4ZWQuYm90dG9tIHtcbiAgdG9wOiBhdXRvO1xuICBib3R0b206IDBweDtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBUeXBlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi51aS5uYXRpdmUuc3RpY2t5IHtcbiAgcG9zaXRpb246IC13ZWJraXQtc3RpY2t5O1xuICBwb3NpdGlvbjogLW1vei1zdGlja3k7XG4gIHBvc2l0aW9uOiAtbXMtc3RpY2t5O1xuICBwb3NpdGlvbjogLW8tc3RpY2t5O1xuICBwb3NpdGlvbjogc3RpY2t5O1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFRoZW1lIE92ZXJyaWRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIE92ZXJyaWRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIVxuICogIyBTZW1hbnRpYyBVSSAtIFRhYlxuICogaHR0cDovL2dpdGh1Yi5jb20vc2VtYW50aWMtb3JnL3NlbWFudGljLXVpL1xuICpcbiAqXG4gKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2VcbiAqIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVRcbiAqXG4gKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qXG5cbuKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVlyAg4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4pWXICAg4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWXXG7ilZrilZDilZDilojilojilZTilZDilZDilZ3ilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKWiOKWiOKVlyDilojilojilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilZTilZDilZDilZDilZDilZ1cbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4pWU4paI4paI4paI4paI4pWU4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilojilojilojilojilojilZdcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVlOKVkOKVkOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4paI4paI4pWR4pWa4paI4paI4pWU4pWd4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilZrilZDilZDilZDilZDilojilojilZFcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWRIOKVmuKVkOKVnSDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZFcbiAgIOKVmuKVkOKVnSAgIOKVmuKVkOKVnSAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWdICAgICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ1cblxuKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIFRoZW1lIFNlbGVjdGlvblxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFRvIG92ZXJyaWRlIGEgdGhlbWUgZm9yIGFuIGluZGl2aWR1YWwgZWxlbWVudFxuICAgc3BlY2lmeSB0aGVtZSBuYW1lIGJlbG93XG4qL1xuLyogR2xvYmFsICovXG4vKiBFbGVtZW50cyAqL1xuLyogQ29sbGVjdGlvbnMgKi9cbi8qIE1vZHVsZXMgKi9cbi8qIFZpZXdzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgRm9sZGVyc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFBhdGggdG8gdGhlbWUgcGFja2FnZXMgKi9cbi8qIFBhdGggdG8gc2l0ZSBvdmVycmlkZSBmb2xkZXIgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBJbXBvcnQgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBJbXBvcnQgRGlyZWN0aXZlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgVGhlbWVcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgU2l0ZSBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0IHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRvcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogUGFja2FnZWQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZG9ycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBDb21wb25lbnQncyBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kb3JzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFNpdGUgdGhlbWUgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgIFVzZXIgR2xvYmFsIFZhcmlhYmxlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIG1hcnNvIGNvbG9ycyAqL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuIENvbXBvbmVudCBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0ICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgICBUYWJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBMb2FkaW5nICovXG4vKiBQYWNrYWdlZCBUaGVtZSAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICAgVGFiXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogTG9hZGluZyAqL1xuLyogU2l0ZSBUaGVtZSAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICBVc2VyIFZhcmlhYmxlIE92ZXJyaWRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgTWl4LWluc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgT3ZlcnJpZGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEVuZCBDb25maWcgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFVJIFRhYnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4udWkudGFiIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS50YWIuYWN0aXZlLFxuLnVpLnRhYi5vcGVuIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGluZ1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS50YWIubG9hZGluZyB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1pbi1oZWlnaHQ6IDI1MHB4O1xufVxuLnVpLnRhYi5sb2FkaW5nICoge1xuICBwb3NpdGlvbjogcmVsYXRpdmUgIWltcG9ydGFudDtcbiAgbGVmdDogLTEwMDAwcHggIWltcG9ydGFudDtcbn1cbi51aS50YWIubG9hZGluZzpiZWZvcmUsXG4udWkudGFiLmxvYWRpbmcuc2VnbWVudDpiZWZvcmUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGNvbnRlbnQ6ICcnO1xuICB0b3A6IDEwMHB4O1xuICBsZWZ0OiA1MCU7XG4gIG1hcmdpbjogLTEuMjVlbSAwZW0gMGVtIC0xLjI1ZW07XG4gIHdpZHRoOiAyLjVlbTtcbiAgaGVpZ2h0OiAyLjVlbTtcbiAgYm9yZGVyLXJhZGl1czogNTAwcmVtO1xuICBib3JkZXI6IDAuMmVtIHNvbGlkIHJnYmEoMCwgMCwgMCwgMC4xKTtcbn1cbi51aS50YWIubG9hZGluZzphZnRlcixcbi51aS50YWIubG9hZGluZy5zZWdtZW50OmFmdGVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBjb250ZW50OiAnJztcbiAgdG9wOiAxMDBweDtcbiAgbGVmdDogNTAlO1xuICBtYXJnaW46IC0xLjI1ZW0gMGVtIDBlbSAtMS4yNWVtO1xuICB3aWR0aDogMi41ZW07XG4gIGhlaWdodDogMi41ZW07XG4gIGFuaW1hdGlvbjogYnV0dG9uLXNwaW4gMC42cyBsaW5lYXI7XG4gIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xuICBib3JkZXItcmFkaXVzOiA1MDByZW07XG4gIGJvcmRlci1jb2xvcjogIzc2NzY3NiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgYm9yZGVyLXdpZHRoOiAwLjJlbTtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4IHRyYW5zcGFyZW50O1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFRhYiBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBVc2VyIE92ZXJyaWRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIVxuICogIyBTZW1hbnRpYyBVSSAtIFRyYW5zaXRpb25cbiAqIGh0dHA6Ly9naXRodWIuY29tL3NlbWFudGljLW9yZy9zZW1hbnRpYy11aS9cbiAqXG4gKlxuICogUmVsZWFzZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlXG4gKiBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUXG4gKlxuICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKlxuXG7ilojilojilojilojilojilojilojilojilZfilojilojilZcgIOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKVlyAgIOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl1xu4pWa4pWQ4pWQ4paI4paI4pWU4pWQ4pWQ4pWd4paI4paI4pWRICDilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilojilojilZcg4paI4paI4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWd4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWdXG4gICDilojilojilZEgICDilojilojilojilojilojilojilojilZHilojilojilojilojilojilZcgIOKWiOKWiOKVlOKWiOKWiOKWiOKWiOKVlOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4paI4paI4paI4paI4paI4pWXXG4gICDilojilojilZEgICDilojilojilZTilZDilZDilojilojilZHilojilojilZTilZDilZDilZ0gIOKWiOKWiOKVkeKVmuKWiOKWiOKVlOKVneKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4pWa4pWQ4pWQ4pWQ4pWQ4paI4paI4pWRXG4gICDilojilojilZEgICDilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVkSDilZrilZDilZ0g4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWRXG4gICDilZrilZDilZ0gICDilZrilZDilZ0gIOKVmuKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVneKVmuKVkOKVnSAgICAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWdXG5cbiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBUaGVtZSBTZWxlY3Rpb25cbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBUbyBvdmVycmlkZSBhIHRoZW1lIGZvciBhbiBpbmRpdmlkdWFsIGVsZW1lbnRcbiAgIHNwZWNpZnkgdGhlbWUgbmFtZSBiZWxvd1xuKi9cbi8qIEdsb2JhbCAqL1xuLyogRWxlbWVudHMgKi9cbi8qIENvbGxlY3Rpb25zICovXG4vKiBNb2R1bGVzICovXG4vKiBWaWV3cyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIEZvbGRlcnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBQYXRoIHRvIHRoZW1lIHBhY2thZ2VzICovXG4vKiBQYXRoIHRvIHNpdGUgb3ZlcnJpZGUgZm9sZGVyICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgSW1wb3J0IFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgSW1wb3J0IERpcmVjdGl2ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIFRoZW1lXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgIFNpdGUgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kb3JzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFBhY2thZ2VkIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRvcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogQ29tcG9uZW50J3Mgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZG9ycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBTaXRlIHRoZW1lIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICBVc2VyIEdsb2JhbCBWYXJpYWJsZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBtYXJzbyBjb2xvcnMgKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiBDb21wb25lbnQgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICBUcmFuc2l0aW9uXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogUGFja2FnZWQgVGhlbWUgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgVHJhbnNpdGlvblxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFNpdGUgVGhlbWUgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgVXNlciBWYXJpYWJsZSBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIE1peC1pbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE92ZXJyaWRlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBFbmQgQ29uZmlnICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgIFRyYW5zaXRpb25zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLnRyYW5zaXRpb24ge1xuICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiAxO1xuICBhbmltYXRpb24tZHVyYXRpb246IDMwMG1zO1xuICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlO1xuICBhbmltYXRpb24tZmlsbC1tb2RlOiBib3RoO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIEFuaW1hdGluZyAqL1xuLmFuaW1hdGluZy50cmFuc2l0aW9uIHtcbiAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICB2aXNpYmlsaXR5OiB2aXNpYmxlICFpbXBvcnRhbnQ7XG59XG4vKiBMb2FkaW5nICovXG4ubG9hZGluZy50cmFuc2l0aW9uIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IC05OTk5OXB4O1xuICBsZWZ0OiAtOTk5OTlweDtcbn1cbi8qIEhpZGRlbiAqL1xuLmhpZGRlbi50cmFuc2l0aW9uIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xufVxuLyogVmlzaWJsZSAqL1xuLnZpc2libGUudHJhbnNpdGlvbiB7XG4gIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gIHZpc2liaWxpdHk6IHZpc2libGUgIWltcG9ydGFudDtcbiAgLyogIGJhY2tmYWNlLXZpc2liaWxpdHk6IEBiYWNrZmFjZVZpc2liaWxpdHk7XG4gIHRyYW5zZm9ybTogQHVzZTNEQWNjZWxlcmF0aW9uOyovXG59XG4vKiBEaXNhYmxlZCAqL1xuLmRpc2FibGVkLnRyYW5zaXRpb24ge1xuICBhbmltYXRpb24tcGxheS1zdGF0ZTogcGF1c2VkO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICBWYXJpYXRpb25zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLmxvb3BpbmcudHJhbnNpdGlvbiB7XG4gIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICBUcmFuc2l0aW9uc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qXG4gIFNvbWUgdHJhbnNpdGlvbnMgYWRhcHRlZCBmcm9tIEFuaW1hdGUgQ1NTXG4gIGh0dHBzOi8vZ2l0aHViLmNvbS9kYW5lZGVuL2FuaW1hdGUuY3NzXG5cbiAgQWRkaXRpb25hbCB0cmFuc2l0aW9ucyBhZGFwdGVkIGZyb20gR2xpZGVcbiAgYnkgTmljayBQZXR0aXQgLSBodHRwczovL2dpdGh1Yi5jb20vbmlja3BldHRpdC9nbGlkZVxuKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJvd3NlXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnRyYW5zaXRpb24uYnJvd3NlIHtcbiAgYW5pbWF0aW9uLWR1cmF0aW9uOiA1MDBtcztcbn1cbi50cmFuc2l0aW9uLmJyb3dzZS5pbiB7XG4gIGFuaW1hdGlvbi1uYW1lOiBicm93c2VJbjtcbn1cbi50cmFuc2l0aW9uLmJyb3dzZS5vdXQsXG4udHJhbnNpdGlvbi5icm93c2UubGVmdC5vdXQge1xuICBhbmltYXRpb24tbmFtZTogYnJvd3NlT3V0TGVmdDtcbn1cbi50cmFuc2l0aW9uLmJyb3dzZS5yaWdodC5vdXQge1xuICBhbmltYXRpb24tbmFtZTogYnJvd3NlT3V0UmlnaHQ7XG59XG4vKiBJbiAqL1xuQGtleWZyYW1lcyBicm93c2VJbiB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDAuOCkgdHJhbnNsYXRlWigwcHgpO1xuICAgIHotaW5kZXg6IC0xO1xuICB9XG4gIDEwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgwLjgpIHRyYW5zbGF0ZVooMHB4KTtcbiAgICB6LWluZGV4OiAtMTtcbiAgICBvcGFjaXR5OiAwLjc7XG4gIH1cbiAgODAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMDUpIHRyYW5zbGF0ZVooMHB4KTtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHotaW5kZXg6IDk5OTtcbiAgfVxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEpIHRyYW5zbGF0ZVooMHB4KTtcbiAgICB6LWluZGV4OiA5OTk7XG4gIH1cbn1cbi8qIE91dCAqL1xuQGtleWZyYW1lcyBicm93c2VPdXRMZWZ0IHtcbiAgMCUge1xuICAgIHotaW5kZXg6IDk5OTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCUpIHJvdGF0ZVkoMGRlZykgcm90YXRlWCgwZGVnKTtcbiAgfVxuICA1MCUge1xuICAgIHotaW5kZXg6IC0xO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTA1JSkgcm90YXRlWSgzNWRlZykgcm90YXRlWCgxMGRlZykgdHJhbnNsYXRlWigtMTBweCk7XG4gIH1cbiAgODAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG4gIDEwMCUge1xuICAgIHotaW5kZXg6IC0xO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwJSkgcm90YXRlWSgwZGVnKSByb3RhdGVYKDBkZWcpIHRyYW5zbGF0ZVooLTEwcHgpO1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbn1cbkBrZXlmcmFtZXMgYnJvd3NlT3V0UmlnaHQge1xuICAwJSB7XG4gICAgei1pbmRleDogOTk5O1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwJSkgcm90YXRlWSgwZGVnKSByb3RhdGVYKDBkZWcpO1xuICB9XG4gIDUwJSB7XG4gICAgei1pbmRleDogMTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTA1JSkgcm90YXRlWSgzNWRlZykgcm90YXRlWCgxMGRlZykgdHJhbnNsYXRlWigtMTBweCk7XG4gIH1cbiAgODAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG4gIDEwMCUge1xuICAgIHotaW5kZXg6IDE7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDAlKSByb3RhdGVZKDBkZWcpIHJvdGF0ZVgoMGRlZykgdHJhbnNsYXRlWigtMTBweCk7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBEcm9wXG4tLS0tLS0tLS0tLS0tLS0qL1xuLmRyb3AudHJhbnNpdGlvbiB7XG4gIHRyYW5zZm9ybS1vcmlnaW46IHRvcCBjZW50ZXI7XG4gIGFuaW1hdGlvbi1kdXJhdGlvbjogNDAwbXM7XG4gIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjM0LCAxLjYxLCAwLjcsIDEpO1xufVxuLmRyb3AudHJhbnNpdGlvbi5pbiB7XG4gIGFuaW1hdGlvbi1uYW1lOiBkcm9wSW47XG59XG4uZHJvcC50cmFuc2l0aW9uLm91dCB7XG4gIGFuaW1hdGlvbi1uYW1lOiBkcm9wT3V0O1xufVxuLyogRHJvcCAqL1xuQGtleWZyYW1lcyBkcm9wSW4ge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDApO1xuICB9XG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgfVxufVxuQGtleWZyYW1lcyBkcm9wT3V0IHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgfVxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMCk7XG4gIH1cbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgIEZhZGVcbi0tLS0tLS0tLS0tLS0tLSovXG4udHJhbnNpdGlvbi5mYWRlLmluIHtcbiAgYW5pbWF0aW9uLW5hbWU6IGZhZGVJbjtcbn1cbi50cmFuc2l0aW9uW2NsYXNzKj1cImZhZGUgdXBcIl0uaW4ge1xuICBhbmltYXRpb24tbmFtZTogZmFkZUluVXA7XG59XG4udHJhbnNpdGlvbltjbGFzcyo9XCJmYWRlIGRvd25cIl0uaW4ge1xuICBhbmltYXRpb24tbmFtZTogZmFkZUluRG93bjtcbn1cbi50cmFuc2l0aW9uW2NsYXNzKj1cImZhZGUgbGVmdFwiXS5pbiB7XG4gIGFuaW1hdGlvbi1uYW1lOiBmYWRlSW5MZWZ0O1xufVxuLnRyYW5zaXRpb25bY2xhc3MqPVwiZmFkZSByaWdodFwiXS5pbiB7XG4gIGFuaW1hdGlvbi1uYW1lOiBmYWRlSW5SaWdodDtcbn1cbi50cmFuc2l0aW9uLmZhZGUub3V0IHtcbiAgYW5pbWF0aW9uLW5hbWU6IGZhZGVPdXQ7XG59XG4udHJhbnNpdGlvbltjbGFzcyo9XCJmYWRlIHVwXCJdLm91dCB7XG4gIGFuaW1hdGlvbi1uYW1lOiBmYWRlT3V0VXA7XG59XG4udHJhbnNpdGlvbltjbGFzcyo9XCJmYWRlIGRvd25cIl0ub3V0IHtcbiAgYW5pbWF0aW9uLW5hbWU6IGZhZGVPdXREb3duO1xufVxuLnRyYW5zaXRpb25bY2xhc3MqPVwiZmFkZSBsZWZ0XCJdLm91dCB7XG4gIGFuaW1hdGlvbi1uYW1lOiBmYWRlT3V0TGVmdDtcbn1cbi50cmFuc2l0aW9uW2NsYXNzKj1cImZhZGUgcmlnaHRcIl0ub3V0IHtcbiAgYW5pbWF0aW9uLW5hbWU6IGZhZGVPdXRSaWdodDtcbn1cbi8qIEluICovXG5Aa2V5ZnJhbWVzIGZhZGVJbiB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbn1cbkBrZXlmcmFtZXMgZmFkZUluVXAge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMTAlKTtcbiAgfVxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwJSk7XG4gIH1cbn1cbkBrZXlmcmFtZXMgZmFkZUluRG93biB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTAlKTtcbiAgfVxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwJSk7XG4gIH1cbn1cbkBrZXlmcmFtZXMgZmFkZUluTGVmdCB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMCUpO1xuICB9XG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDAlKTtcbiAgfVxufVxuQGtleWZyYW1lcyBmYWRlSW5SaWdodCB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTAlKTtcbiAgfVxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwJSk7XG4gIH1cbn1cbi8qIE91dCAqL1xuQGtleWZyYW1lcyBmYWRlT3V0IHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxufVxuQGtleWZyYW1lcyBmYWRlT3V0VXAge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCUpO1xuICB9XG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDUlKTtcbiAgfVxufVxuQGtleWZyYW1lcyBmYWRlT3V0RG93biB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwJSk7XG4gIH1cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUlKTtcbiAgfVxufVxuQGtleWZyYW1lcyBmYWRlT3V0TGVmdCB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwJSk7XG4gIH1cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoNSUpO1xuICB9XG59XG5Aa2V5ZnJhbWVzIGZhZGVPdXRSaWdodCB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwJSk7XG4gIH1cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUlKTtcbiAgfVxufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBGbGlwc1xuLS0tLS0tLS0tLS0tLS0tKi9cbi5mbGlwLnRyYW5zaXRpb24uaW4sXG4uZmxpcC50cmFuc2l0aW9uLm91dCB7XG4gIGFuaW1hdGlvbi1kdXJhdGlvbjogNjAwbXM7XG59XG4uaG9yaXpvbnRhbC5mbGlwLnRyYW5zaXRpb24uaW4ge1xuICBhbmltYXRpb24tbmFtZTogaG9yaXpvbnRhbEZsaXBJbjtcbn1cbi5ob3Jpem9udGFsLmZsaXAudHJhbnNpdGlvbi5vdXQge1xuICBhbmltYXRpb24tbmFtZTogaG9yaXpvbnRhbEZsaXBPdXQ7XG59XG4udmVydGljYWwuZmxpcC50cmFuc2l0aW9uLmluIHtcbiAgYW5pbWF0aW9uLW5hbWU6IHZlcnRpY2FsRmxpcEluO1xufVxuLnZlcnRpY2FsLmZsaXAudHJhbnNpdGlvbi5vdXQge1xuICBhbmltYXRpb24tbmFtZTogdmVydGljYWxGbGlwT3V0O1xufVxuLyogSW4gKi9cbkBrZXlmcmFtZXMgaG9yaXpvbnRhbEZsaXBJbiB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDIwMDBweCkgcm90YXRlWSgtOTBkZWcpO1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgyMDAwcHgpIHJvdGF0ZVkoMGRlZyk7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxufVxuQGtleWZyYW1lcyB2ZXJ0aWNhbEZsaXBJbiB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDIwMDBweCkgcm90YXRlWCgtOTBkZWcpO1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgyMDAwcHgpIHJvdGF0ZVgoMGRlZyk7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxufVxuLyogT3V0ICovXG5Aa2V5ZnJhbWVzIGhvcml6b250YWxGbGlwT3V0IHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMjAwMHB4KSByb3RhdGVZKDBkZWcpO1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgyMDAwcHgpIHJvdGF0ZVkoOTBkZWcpO1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbn1cbkBrZXlmcmFtZXMgdmVydGljYWxGbGlwT3V0IHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMjAwMHB4KSByb3RhdGVYKDBkZWcpO1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgyMDAwcHgpIHJvdGF0ZVgoLTkwZGVnKTtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgICBTY2FsZVxuLS0tLS0tLS0tLS0tLS0tKi9cbi5zY2FsZS50cmFuc2l0aW9uLmluIHtcbiAgYW5pbWF0aW9uLW5hbWU6IHNjYWxlSW47XG59XG4uc2NhbGUudHJhbnNpdGlvbi5vdXQge1xuICBhbmltYXRpb24tbmFtZTogc2NhbGVPdXQ7XG59XG5Aa2V5ZnJhbWVzIHNjYWxlSW4ge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDAuOCk7XG4gIH1cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICB9XG59XG4vKiBPdXQgKi9cbkBrZXlmcmFtZXMgc2NhbGVPdXQge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICB9XG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgwLjkpO1xuICB9XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgICBGbHlcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbndhcmQgKi9cbi50cmFuc2l0aW9uLmZseSB7XG4gIGFuaW1hdGlvbi1kdXJhdGlvbjogMC42cztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjIxNSwgMC42MSwgMC4zNTUsIDEpO1xufVxuLnRyYW5zaXRpb24uZmx5LmluIHtcbiAgYW5pbWF0aW9uLW5hbWU6IGZseUluO1xufVxuLnRyYW5zaXRpb25bY2xhc3MqPVwiZmx5IHVwXCJdLmluIHtcbiAgYW5pbWF0aW9uLW5hbWU6IGZseUluVXA7XG59XG4udHJhbnNpdGlvbltjbGFzcyo9XCJmbHkgZG93blwiXS5pbiB7XG4gIGFuaW1hdGlvbi1uYW1lOiBmbHlJbkRvd247XG59XG4udHJhbnNpdGlvbltjbGFzcyo9XCJmbHkgbGVmdFwiXS5pbiB7XG4gIGFuaW1hdGlvbi1uYW1lOiBmbHlJbkxlZnQ7XG59XG4udHJhbnNpdGlvbltjbGFzcyo9XCJmbHkgcmlnaHRcIl0uaW4ge1xuICBhbmltYXRpb24tbmFtZTogZmx5SW5SaWdodDtcbn1cbi8qIE91dHdhcmQgKi9cbi50cmFuc2l0aW9uLmZseS5vdXQge1xuICBhbmltYXRpb24tbmFtZTogZmx5T3V0O1xufVxuLnRyYW5zaXRpb25bY2xhc3MqPVwiZmx5IHVwXCJdLm91dCB7XG4gIGFuaW1hdGlvbi1uYW1lOiBmbHlPdXRVcDtcbn1cbi50cmFuc2l0aW9uW2NsYXNzKj1cImZseSBkb3duXCJdLm91dCB7XG4gIGFuaW1hdGlvbi1uYW1lOiBmbHlPdXREb3duO1xufVxuLnRyYW5zaXRpb25bY2xhc3MqPVwiZmx5IGxlZnRcIl0ub3V0IHtcbiAgYW5pbWF0aW9uLW5hbWU6IGZseU91dExlZnQ7XG59XG4udHJhbnNpdGlvbltjbGFzcyo9XCJmbHkgcmlnaHRcIl0ub3V0IHtcbiAgYW5pbWF0aW9uLW5hbWU6IGZseU91dFJpZ2h0O1xufVxuLyogSW4gKi9cbkBrZXlmcmFtZXMgZmx5SW4ge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoMC4zLCAwLjMsIDAuMyk7XG4gIH1cbiAgMjAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoMS4xLCAxLjEsIDEuMSk7XG4gIH1cbiAgNDAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoMC45LCAwLjksIDAuOSk7XG4gIH1cbiAgNjAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCgxLjAzLCAxLjAzLCAxLjAzKTtcbiAgfVxuICA4MCUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCgwLjk3LCAwLjk3LCAwLjk3KTtcbiAgfVxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCgxLCAxLCAxKTtcbiAgfVxufVxuQGtleWZyYW1lcyBmbHlJblVwIHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAxNTAwcHgsIDApO1xuICB9XG4gIDYwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0yMHB4LCAwKTtcbiAgfVxuICA3NSUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMTBweCwgMCk7XG4gIH1cbiAgOTAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC01cHgsIDApO1xuICB9XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gIH1cbn1cbkBrZXlmcmFtZXMgZmx5SW5Eb3duIHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMTUwMHB4LCAwKTtcbiAgfVxuICA2MCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAyNXB4LCAwKTtcbiAgfVxuICA3NSUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTEwcHgsIDApO1xuICB9XG4gIDkwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCA1cHgsIDApO1xuICB9XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgfVxufVxuQGtleWZyYW1lcyBmbHlJbkxlZnQge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDE1MDBweCwgMCwgMCk7XG4gIH1cbiAgNjAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTI1cHgsIDAsIDApO1xuICB9XG4gIDc1JSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgxMHB4LCAwLCAwKTtcbiAgfVxuICA5MCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTVweCwgMCwgMCk7XG4gIH1cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICB9XG59XG5Aa2V5ZnJhbWVzIGZseUluUmlnaHQge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0xNTAwcHgsIDAsIDApO1xuICB9XG4gIDYwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDI1cHgsIDAsIDApO1xuICB9XG4gIDc1JSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMTBweCwgMCwgMCk7XG4gIH1cbiAgOTAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDVweCwgMCwgMCk7XG4gIH1cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICB9XG59XG4vKiBPdXQgKi9cbkBrZXlmcmFtZXMgZmx5T3V0IHtcbiAgMjAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoMC45LCAwLjksIDAuOSk7XG4gIH1cbiAgNTAlLFxuICA1NSUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKDEuMSwgMS4xLCAxLjEpO1xuICB9XG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKDAuMywgMC4zLCAwLjMpO1xuICB9XG59XG5Aa2V5ZnJhbWVzIGZseU91dFVwIHtcbiAgMjAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDEwcHgsIDApO1xuICB9XG4gIDQwJSxcbiAgNDUlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTIwcHgsIDApO1xuICB9XG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAyMDAwcHgsIDApO1xuICB9XG59XG5Aa2V5ZnJhbWVzIGZseU91dERvd24ge1xuICAyMCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTEwcHgsIDApO1xuICB9XG4gIDQwJSxcbiAgNDUlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMjBweCwgMCk7XG4gIH1cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0yMDAwcHgsIDApO1xuICB9XG59XG5Aa2V5ZnJhbWVzIGZseU91dFJpZ2h0IHtcbiAgMjAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMjBweCwgMCwgMCk7XG4gIH1cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0yMDAwcHgsIDAsIDApO1xuICB9XG59XG5Aa2V5ZnJhbWVzIGZseU91dExlZnQge1xuICAyMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMjBweCwgMCwgMCk7XG4gIH1cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDIwMDBweCwgMCwgMCk7XG4gIH1cbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgU2xpZGVcbi0tLS0tLS0tLS0tLS0tLSovXG4udHJhbnNpdGlvbi5zbGlkZS5pbixcbi50cmFuc2l0aW9uW2NsYXNzKj1cInNsaWRlIGRvd25cIl0uaW4ge1xuICBhbmltYXRpb24tbmFtZTogc2xpZGVJblk7XG4gIHRyYW5zZm9ybS1vcmlnaW46IHRvcCBjZW50ZXI7XG59XG4udHJhbnNpdGlvbltjbGFzcyo9XCJzbGlkZSB1cFwiXS5pbiB7XG4gIGFuaW1hdGlvbi1uYW1lOiBzbGlkZUluWTtcbiAgdHJhbnNmb3JtLW9yaWdpbjogYm90dG9tIGNlbnRlcjtcbn1cbi50cmFuc2l0aW9uW2NsYXNzKj1cInNsaWRlIGxlZnRcIl0uaW4ge1xuICBhbmltYXRpb24tbmFtZTogc2xpZGVJblg7XG4gIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciByaWdodDtcbn1cbi50cmFuc2l0aW9uW2NsYXNzKj1cInNsaWRlIHJpZ2h0XCJdLmluIHtcbiAgYW5pbWF0aW9uLW5hbWU6IHNsaWRlSW5YO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXIgbGVmdDtcbn1cbi50cmFuc2l0aW9uLnNsaWRlLm91dCxcbi50cmFuc2l0aW9uW2NsYXNzKj1cInNsaWRlIGRvd25cIl0ub3V0IHtcbiAgYW5pbWF0aW9uLW5hbWU6IHNsaWRlT3V0WTtcbiAgdHJhbnNmb3JtLW9yaWdpbjogdG9wIGNlbnRlcjtcbn1cbi50cmFuc2l0aW9uW2NsYXNzKj1cInNsaWRlIHVwXCJdLm91dCB7XG4gIGFuaW1hdGlvbi1uYW1lOiBzbGlkZU91dFk7XG4gIHRyYW5zZm9ybS1vcmlnaW46IGJvdHRvbSBjZW50ZXI7XG59XG4udHJhbnNpdGlvbltjbGFzcyo9XCJzbGlkZSBsZWZ0XCJdLm91dCB7XG4gIGFuaW1hdGlvbi1uYW1lOiBzbGlkZU91dFg7XG4gIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciByaWdodDtcbn1cbi50cmFuc2l0aW9uW2NsYXNzKj1cInNsaWRlIHJpZ2h0XCJdLm91dCB7XG4gIGFuaW1hdGlvbi1uYW1lOiBzbGlkZU91dFg7XG4gIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciBsZWZ0O1xufVxuLyogSW4gKi9cbkBrZXlmcmFtZXMgc2xpZGVJblkge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHNjYWxlWSgwKTtcbiAgfVxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogc2NhbGVZKDEpO1xuICB9XG59XG5Aa2V5ZnJhbWVzIHNsaWRlSW5YIHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiBzY2FsZVgoMCk7XG4gIH1cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlWCgxKTtcbiAgfVxufVxuLyogT3V0ICovXG5Aa2V5ZnJhbWVzIHNsaWRlT3V0WSB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogc2NhbGVZKDEpO1xuICB9XG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiBzY2FsZVkoMCk7XG4gIH1cbn1cbkBrZXlmcmFtZXMgc2xpZGVPdXRYIHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiBzY2FsZVgoMSk7XG4gIH1cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHNjYWxlWCgwKTtcbiAgfVxufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBTd2luZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi50cmFuc2l0aW9uLnN3aW5nIHtcbiAgYW5pbWF0aW9uLWR1cmF0aW9uOiA4MDBtcztcbn1cbi50cmFuc2l0aW9uW2NsYXNzKj1cInN3aW5nIGRvd25cIl0uaW4ge1xuICBhbmltYXRpb24tbmFtZTogc3dpbmdJblg7XG4gIHRyYW5zZm9ybS1vcmlnaW46IHRvcCBjZW50ZXI7XG59XG4udHJhbnNpdGlvbltjbGFzcyo9XCJzd2luZyB1cFwiXS5pbiB7XG4gIGFuaW1hdGlvbi1uYW1lOiBzd2luZ0luWDtcbiAgdHJhbnNmb3JtLW9yaWdpbjogYm90dG9tIGNlbnRlcjtcbn1cbi50cmFuc2l0aW9uW2NsYXNzKj1cInN3aW5nIGxlZnRcIl0uaW4ge1xuICBhbmltYXRpb24tbmFtZTogc3dpbmdJblk7XG4gIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciByaWdodDtcbn1cbi50cmFuc2l0aW9uW2NsYXNzKj1cInN3aW5nIHJpZ2h0XCJdLmluIHtcbiAgYW5pbWF0aW9uLW5hbWU6IHN3aW5nSW5ZO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXIgbGVmdDtcbn1cbi50cmFuc2l0aW9uLnN3aW5nLm91dCxcbi50cmFuc2l0aW9uW2NsYXNzKj1cInN3aW5nIGRvd25cIl0ub3V0IHtcbiAgYW5pbWF0aW9uLW5hbWU6IHN3aW5nT3V0WDtcbiAgdHJhbnNmb3JtLW9yaWdpbjogdG9wIGNlbnRlcjtcbn1cbi50cmFuc2l0aW9uW2NsYXNzKj1cInN3aW5nIHVwXCJdLm91dCB7XG4gIGFuaW1hdGlvbi1uYW1lOiBzd2luZ091dFg7XG4gIHRyYW5zZm9ybS1vcmlnaW46IGJvdHRvbSBjZW50ZXI7XG59XG4udHJhbnNpdGlvbltjbGFzcyo9XCJzd2luZyBsZWZ0XCJdLm91dCB7XG4gIGFuaW1hdGlvbi1uYW1lOiBzd2luZ091dFk7XG4gIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciByaWdodDtcbn1cbi50cmFuc2l0aW9uW2NsYXNzKj1cInN3aW5nIHJpZ2h0XCJdLm91dCB7XG4gIGFuaW1hdGlvbi1uYW1lOiBzd2luZ091dFk7XG4gIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciBsZWZ0O1xufVxuLyogSW4gKi9cbkBrZXlmcmFtZXMgc3dpbmdJblgge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgxMDAwcHgpIHJvdGF0ZVgoOTBkZWcpO1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbiAgNDAlIHtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDEwMDBweCkgcm90YXRlWCgtMzBkZWcpO1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbiAgNjAlIHtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDEwMDBweCkgcm90YXRlWCgxNWRlZyk7XG4gIH1cbiAgODAlIHtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDEwMDBweCkgcm90YXRlWCgtNy41ZGVnKTtcbiAgfVxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDEwMDBweCkgcm90YXRlWCgwZGVnKTtcbiAgfVxufVxuQGtleWZyYW1lcyBzd2luZ0luWSB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDEwMDBweCkgcm90YXRlWSgtOTBkZWcpO1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbiAgNDAlIHtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDEwMDBweCkgcm90YXRlWSgzMGRlZyk7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuICA2MCUge1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMTAwMHB4KSByb3RhdGVZKC0xNy41ZGVnKTtcbiAgfVxuICA4MCUge1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMTAwMHB4KSByb3RhdGVZKDcuNWRlZyk7XG4gIH1cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgxMDAwcHgpIHJvdGF0ZVkoMGRlZyk7XG4gIH1cbn1cbi8qIE91dCAqL1xuQGtleWZyYW1lcyBzd2luZ091dFgge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgxMDAwcHgpIHJvdGF0ZVgoMGRlZyk7XG4gIH1cbiAgNDAlIHtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDEwMDBweCkgcm90YXRlWCgtNy41ZGVnKTtcbiAgfVxuICA2MCUge1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMTAwMHB4KSByb3RhdGVYKDE3LjVkZWcpO1xuICB9XG4gIDgwJSB7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgxMDAwcHgpIHJvdGF0ZVgoLTMwZGVnKTtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMTAwMHB4KSByb3RhdGVYKDkwZGVnKTtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG59XG5Aa2V5ZnJhbWVzIHN3aW5nT3V0WSB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDEwMDBweCkgcm90YXRlWSgwZGVnKTtcbiAgfVxuICA0MCUge1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMTAwMHB4KSByb3RhdGVZKDcuNWRlZyk7XG4gIH1cbiAgNjAlIHtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDEwMDBweCkgcm90YXRlWSgtMTBkZWcpO1xuICB9XG4gIDgwJSB7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgxMDAwcHgpIHJvdGF0ZVkoMzBkZWcpO1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgxMDAwcHgpIHJvdGF0ZVkoLTkwZGVnKTtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgIFN0YXRpYyBBbmltYXRpb25zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgIEVtcGhhc2lzXG4tLS0tLS0tLS0tLS0tLS0qL1xuLmZsYXNoLnRyYW5zaXRpb24ge1xuICBhbmltYXRpb24tZHVyYXRpb246IDc1MG1zO1xuICBhbmltYXRpb24tbmFtZTogZmxhc2g7XG59XG4uc2hha2UudHJhbnNpdGlvbiB7XG4gIGFuaW1hdGlvbi1kdXJhdGlvbjogNzUwbXM7XG4gIGFuaW1hdGlvbi1uYW1lOiBzaGFrZTtcbn1cbi5ib3VuY2UudHJhbnNpdGlvbiB7XG4gIGFuaW1hdGlvbi1kdXJhdGlvbjogNzUwbXM7XG4gIGFuaW1hdGlvbi1uYW1lOiBib3VuY2U7XG59XG4udGFkYS50cmFuc2l0aW9uIHtcbiAgYW5pbWF0aW9uLWR1cmF0aW9uOiA3NTBtcztcbiAgYW5pbWF0aW9uLW5hbWU6IHRhZGE7XG59XG4ucHVsc2UudHJhbnNpdGlvbiB7XG4gIGFuaW1hdGlvbi1kdXJhdGlvbjogNTAwbXM7XG4gIGFuaW1hdGlvbi1uYW1lOiBwdWxzZTtcbn1cbi5qaWdnbGUudHJhbnNpdGlvbiB7XG4gIGFuaW1hdGlvbi1kdXJhdGlvbjogNzUwbXM7XG4gIGFuaW1hdGlvbi1uYW1lOiBqaWdnbGU7XG59XG4vKiBGbGFzaCAqL1xuQGtleWZyYW1lcyBmbGFzaCB7XG4gIDAlLFxuICA1MCUsXG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbiAgMjUlLFxuICA3NSUge1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbn1cbi8qIFNoYWtlICovXG5Aa2V5ZnJhbWVzIHNoYWtlIHtcbiAgMCUsXG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTtcbiAgfVxuICAxMCUsXG4gIDMwJSxcbiAgNTAlLFxuICA3MCUsXG4gIDkwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xMHB4KTtcbiAgfVxuICAyMCUsXG4gIDQwJSxcbiAgNjAlLFxuICA4MCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMHB4KTtcbiAgfVxufVxuLyogQm91bmNlICovXG5Aa2V5ZnJhbWVzIGJvdW5jZSB7XG4gIDAlLFxuICAyMCUsXG4gIDUwJSxcbiAgODAlLFxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG4gIH1cbiAgNDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTMwcHgpO1xuICB9XG4gIDYwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xNXB4KTtcbiAgfVxufVxuLyogVGFkYSAqL1xuQGtleWZyYW1lcyB0YWRhIHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gIH1cbiAgMTAlLFxuICAyMCUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMC45KSByb3RhdGUoLTNkZWcpO1xuICB9XG4gIDMwJSxcbiAgNTAlLFxuICA3MCUsXG4gIDkwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxLjEpIHJvdGF0ZSgzZGVnKTtcbiAgfVxuICA0MCUsXG4gIDYwJSxcbiAgODAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMSkgcm90YXRlKC0zZGVnKTtcbiAgfVxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEpIHJvdGF0ZSgwKTtcbiAgfVxufVxuLyogUHVsc2UgKi9cbkBrZXlmcmFtZXMgcHVsc2Uge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG4gIDUwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgwLjkpO1xuICAgIG9wYWNpdHk6IDAuNztcbiAgfVxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbn1cbi8qIFJ1YmJlcmJhbmQgKi9cbkBrZXlmcmFtZXMgamlnZ2xlIHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCgxLCAxLCAxKTtcbiAgfVxuICAzMCUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCgxLjI1LCAwLjc1LCAxKTtcbiAgfVxuICA0MCUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCgwLjc1LCAxLjI1LCAxKTtcbiAgfVxuICA1MCUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCgxLjE1LCAwLjg1LCAxKTtcbiAgfVxuICA2NSUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCgwLjk1LCAxLjA1LCAxKTtcbiAgfVxuICA3NSUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCgxLjA1LCAwLjk1LCAxKTtcbiAgfVxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoMSwgMSwgMSk7XG4gIH1cbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIE92ZXJyaWRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgIFVzZXIgR2xvYmFsIFZhcmlhYmxlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIG1hcnNvIGNvbG9ycyAqL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==*/