/*!*********************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js!./src/style/app.css ***!
  \*********************************************************************/
:root {
    --main-bg-color: hsl(0, 0%, 100%);
    --stream-bg-color: hsl(0, 0%, 85%);
    --shell-bg-color: hsl(0, 0%, 0%);
    --text-shadow-color: hsl(218, 67%, 95%);
    --header-bg-color: hsl(0, 0%, 95%);
    --controls-bg-color: hsla(0, 0%, 95%, 0.8);
    --control-buttons-bg-color: hsl(0, 0%, 95%);
    --text-color: hsl(210, 16%, 22%);
    --text-color-light: hsl(200, 16%, 52%);
    --link-color: hsl(218, 85%, 43%);
    --link-color-light: hsl(218, 85%, 73%);
    --link-color_visited: hsl(271, 68%, 32%);
    --link-color_visited-light: hsl(271, 68%, 72%);
    --svg-checkbox-bg-color: hsl(172, 100%, 37%);
    --svg-button-fill: hsl(199, 17%, 46%);
    --kill-button-hover-color: hsl(342, 100%, 37%);
    --url-color: hsl(0, 0%, 60%);
    --button-text-color: hsl(214, 82%, 51%);
    --button-border-color: hsl(0, 0%, 70%);
    --progress-background-color: hsla(225, 100%, 50%, 0.2);
    --progress-background-error-color: hsla(0, 100%, 50%, 0.2);
    --font-size: 14px;
}

@media (prefers-color-scheme: dark) {
    :root {
        --main-bg-color: hsl(0, 0%, 14%);
        --stream-bg-color: hsl(0, 0%, 20%);
        --shell-bg-color: hsl(0, 0%, 0%);
        --text-shadow-color: hsl(218, 17%, 18%);
        --header-bg-color: hsl(0, 0%, 20%);
        --controls-bg-color: hsla(201, 18%, 19%, 0.8);
        --control-buttons-bg-color: hsl(201, 18%, 19%);
        --text-color: hsl(0, 0%, 90%);
        --text-color-light: hsl(0, 0%, 60%);
        --link-color: hsl(218, 63%, 70%);
        --link-color-light: hsl(218, 63%, 50%);
        --link-color_visited: hsl(267, 31%, 47%);
        --link-color_visited-light: hsl(267, 31%, 27%);
        --svg-checkbox-bg-color: hsl(172, 100%, 27%);
        --svg-button-fill: hsl(0, 0%, 100%);
        --kill-button-hover-color: hsl(342, 100%, 27%);
        --url-color: hsl(0, 0%, 60%);
        --device-list-stripe-color: hsl(0, 0%, 16%);
        --device-list-default-color: hsl(0, 0%, 14%);
        --button-text-color: hsl(214, 82%, 76%);
        --button-border-color: hsl(213, 5%, 39%);
        --progress-background-color: hsla(225, 100%, 50%, 0.2);
        --progress-background-error-color: hsla(0, 100%, 50%, 0.2);
    }
}

html {
    /* font-size: var(--font-size); */
}
#app{
	width: 100%;
	height: 100%;
}
a {
    color: var(--link-color);
}

a:visited {
    color: var(--link-color_visited);
}

body {
    color: var(--text-color);
    background-color: var(--main-bg-color);
   /* position: absolute;
    margin: 0;
    height: 100%;
    width: 100%;
    overflow: hidden; */
}


body.shell {
    background-color: var(--shell-bg-color);
}

body.stream {
    background-color: var(--stream-bg-color);
}

.terminal-container {
    width: 100%;
    height: 100%;
    padding: 5px;
}

:focus {
    outline: none;
}

.flex-center {
    display: flex;
    align-items: center;
}

.wait {
    cursor: wait;
}

.device-view {
    z-index: 1;
    float: right;
    display: inline-block;
}

.video-layer {
    position: absolute;
    z-index: 0;
}

.touch-layer {
    position: absolute;
    z-index: 1;
}

.video {
    float: right;
    max-height: 100%;
    max-width: 100%;
    background-color: #000000;
}


.control-buttons-list {
    float: right;
    width:100%;
	display:none;
    background-color: var(--control-buttons-bg-color);
}

.control-button {
    margin: .357rem .786rem;
    padding: 0;
    width: 2.143rem;
    height: 2.143rem;
    border: none;
    opacity: 0.75;
    background-color: var(--control-buttons-bg-color);
}

.control-button:hover {
    opacity: 1;
}

.control-wrapper > input[type=checkbox] {
    display: none;
}

.control-wrapper > label {
    display: inline-block;
}

.control-button > svg {
    fill: var(--svg-button-fill);
}

.control-wrapper > input[type=checkbox].two-images:checked + label > svg.image-on {
    display: block;
}

.control-wrapper > input[type=checkbox].two-images:not(:checked) + label > svg.image-on {
    display: none;
}

.control-wrapper > input[type=checkbox].two-images:checked + label > svg.image-off {
    display: none;
}

.control-wrapper > input[type=checkbox].two-images:not(:checked) + label > svg.image-off {
    display: block;
}

.control-wrapper > input[type=checkbox]:checked + label > svg {
    fill: var(--svg-checkbox-bg-color);
}

/*!*************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js!./src/style/morebox.css ***!
  \*************************************************************************/
.text-area {
    width: 100%;
    resize: vertical;
}

.more-box {
    display: none;
    position: absolute;
    background-color: var(--controls-bg-color);
    z-index: 2;
    padding: 0 .714rem .714rem .714rem;
}

.text-with-shadow, .more-box label {
    color: var(--text-color);
    text-shadow: var(--text-shadow-color) 0 0 .357rem;
}

.spoiler > input ~ .box {
    display: none;
}

.spoiler > input:checked ~ .box {
    display: block;
}

.spoiler > label::before {
    content: '►';
    margin-right: 5px;
}

.spoiler > input:checked ~ label::before {
    content: '▼';
}

.spoiler > input:checked ~ div {
    display: block;
    padding: 10px;
}

.spoiler > input {
    display: none;
}

/*!************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js!./src/style/dialog.css ***!
  \************************************************************************/
:root {
    --block-top-padding: 0.5rem;
    --block-bottom-padding: 0.5rem;
    --button-top-padding: 0.2rem;
    --button-bottom-padding: 0.2rem;
    --header-height: 3rem;
    --footer-height: 1.55rem;
}

.dialog-background {
    width: 100%;
    height: 100%;
    position: fixed;
    top: 0;
    left: 0;
    background-color: rgba(0, 0, 0, 0.75);
    z-index: 3;
}

.dialog-container {
    font-family: monospace;
    width: 75%;
    max-width: 30rem;
    min-width: 20rem;
    background-color: var(--main-bg-color);
    /*border-radius: 0.3rem;*/
    overflow: hidden;
}

.dialog-container.ready {
    height: 100%;
    min-height: 100%;
}

.dialog-container button, .dialog-container select, .dialog-container input {
    font-family: monospace;
}

.dialog-container button {
    font-size: var(--font-size);
}

.dialog-container select {
    text-overflow: ellipsis;
}

.dialog-block {
}

.dialog-header {
    background-color: var(--header-bg-color);
    height: var(--header-height);
    overflow: hidden;
    display: flex;
    align-items: center;
    width: auto;
    position: initial;
}

.dialog-header span.dialog-title {
    display: inline-block;
    padding: 0 0.5rem;
}

.dialog-body {
    padding: var(--block-top-padding) 0.5rem var(--block-bottom-padding);
    background-color: var(--control-buttons-bg-color);
    overflow: auto;
}

.dialog-body.hidden {
    height: 0;
    padding: 0;
}

.dialog-body.visible {
    height: calc(
            100%
            - 2 * var(--block-top-padding)
            - 2 * var(--block-bottom-padding)
            - var(--header-height)
            - var(--footer-height)
    );
}

.dialog-footer {
    /*display: flex;*/
    /*flex-direction: row-reverse;*/
    padding: var(--block-top-padding) 0.5rem var(--block-bottom-padding);
    background-color: var(--stream-bg-color);
    height: var(--footer-height);
    overflow: hidden;
}

.dialog-footer span.subtitle {
    font-weight: lighter;
    line-height: var(--footer-height);
    float: left;
}

.dialog-footer button {
    padding: var(--button-top-padding) 0.5rem var(--button-bottom-padding);
    margin: 0 0 0 0.5rem;
    border-radius: 0.3rem;
    /*background-color: var(--main-bg-color);*/
    color: var(--button-text-color);
    border: 1px solid var(--button-border-color);
    cursor: pointer;
    background-color: rgba(0, 0, 0, 0);
    height: var(--footer-height);
    float: right;
}

.dialog-footer button:disabled {
    cursor: not-allowed;
    color: var(--text-color-light);
}

.controls .label {
    grid-column: labels;
}

.controls .input {
    grid-column: controls;
    box-sizing: border-box;
    margin: 0;
    /*height: 2.75ex;*/
}

.controls .button {
    grid-column: controls;
}

.controls {
    display: grid;
    grid-template-columns: [labels] 35% [controls] 65%;
    padding: 1rem;
    grid-gap: 0.2rem;
    align-items: center;
}

/*!****************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js!./src/style/devicelist.css ***!
  \****************************************************************************/
:root {
    --device-border-color: hsl(0, 0%, 82%);
    --device-list-stripe-color: hsl(0, 0%, 96%);
    --device-list-default-color: hsl(0, 0%, 100%);
    --device-list-hover-color: hsl(218, 67%, 95%);
}

@media (prefers-color-scheme: dark) {
    :root {
        --device-border-color: hsl(0, 0%, 32%);
        --device-list-stripe-color: hsl(0, 0%, 16%);
        --device-list-default-color: hsl(0, 0%, 14%);
        --device-list-hover-color: hsl(218, 17%, 18%);
    }
}


body.list {
    /* height: auto;
    width: auto;
    overflow: auto; */
}

#devices {
    padding: 20px 0;
    width: 100%;
    height: calc(100% - 40px);
    overflow-y: auto;
}

body.stream #devices {
    background-color: var(--device-list-default-color);
    opacity: .8;
    position: absolute;
    top: 0;
    left: 0;
    z-index: 3;
}

body.list #device_list_menu {
    display: none;
}

#device_list_menu {
    display: block;
    position: absolute;
    bottom: 0;
    left: 0;
    z-index: 4;
}

#devices .device-list button {
    font-size: var(--font-size);
    color: var(--button-text-color);
}

#devices .device-list div.device:nth-child(2n+1){
    background-color: var(--device-list-default-color);
}

#devices .device-list div.device:nth-child(2n){
    background-color: var(--device-list-stripe-color);
}

#devices .device-header {
    padding: 2px 0;
}

#devices .device-header div {
    display: inline-flex;
}

#devices .device-name {
    font-size: 120%;
}

#devices .device-model {
    font-size: 110%;
}

#devices .device-serial {
    color: var(--url-color);
    font-size: 80%;
    margin-left: 6px;
}

#devices .device-version {
    font-size: 100%;
    margin-left: 6px;
    align-items: baseline;
}

#devices .device-version .sdk-version {
    font-size: 75%;
    color: var(--url-color);
    margin-left: 0.2em;
}

#devices .device-state {
    border-radius: 25px;
    background-color: red;
    font-size: 80%;
    margin-left: 6px;
    width: 1em;
    height: 1em;
}

#devices .device.active .device-state {
    background-color: green;
}

#devices .device-list {
    position: relative;
    bottom: 0;
    left: 0;
    width: 100%;
}

#devices .device-list {
    border-spacing: 0;
    border-collapse: collapse;
    font-family: monospace;
    font-size: var(--font-size);
}

#devices .device-list div.device {
    padding: 5px 20px 5px;
}

#devices .device-list div.device:hover {
    background-color: var(--device-list-hover-color)
}

#devices .device-list div.device select {
    color: var(--text-color);
    background-color: var(--main-bg-color);
    margin-left: 0;
    border: none;
}

#devices .device-list div.device:hover select {
    background-color: var(--device-list-hover-color);;
}

#devices .device-list div.desc-block {
    margin: .3em;
    display: inline-flex;
}

#devices .device-list div.desc-block.hidden {
    display: none;
}

#devices .device-list div.desc-block.stream,
#devices .device-list div.desc-block.server_pid,
#devices .device-list div.desc-block.net_interface {
    border: 1px solid var(--device-border-color);
    border-radius: .3em;
    overflow: hidden;
    white-space: nowrap;
}

#devices .device-list div.device div.desc-block.stream button.action-button {
    color: var(--button-text-color);
}

#devices .device-list div.desc-block button {
    fill: var(--text-color)
}

#devices .device-list div.desc-block button > span {
    padding: 0 .5em;
}

#devices .device-list div.desc-block button > span,
#devices .device-list div.desc-block button > svg {
    vertical-align: middle;
}

#devices .device-list div.desc-block button > svg {
    width: var(--font-size);
    height: var(--font-size);
}

#devices .device-list div.desc-block button > svg > path {
    fill: var(--text-color);
}

#devices .device-list .device.not-active div.desc-block button > svg > path {
    fill: var(--text-color-light);
}

#devices .device-list .device.not-active select {
    color: var(--text-color-light);
}

#devices .device-list .device.not-active {
    color: var(--text-color-light);
}

#devices .device-list .device.not-active a {
    color: var(--link-color-light);
}

#devices .device-list .device.not-active a:visited {
    color: var(--link-color_visited-light);
}

#devices .device-list div.device div.desc-block .action-button {
    border: none;
    background-color: rgba(0, 0, 0, 0);
    color: inherit;
}

#devices .device-list div.device div.desc-block .action-button.update-interfaces-button {
    margin-right: 0;
}

#devices .device-list div.device div.desc-block .action-button.active {
    cursor: pointer;
}

#devices .device-list .device.active div.desc-block .action-button:hover {
    color: var(--kill-button-hover-color);
}

#devices .device-list .device.active div.desc-block button.action-button:hover > svg > path {
    fill: var(--kill-button-hover-color);
}

#devices .tracker-name {
    padding: 5px 20px 5px;
    font-size: larger;
    font-weight: bolder;
}


/*# sourceMappingURL=data:application/json;charset=utf-8;base64,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QztBQUN4Qzs7QUFFQTtJQUNJLHFCQUFxQjtJQUNyQixpQkFBaUI7SUFDakIsbUJBQW1CO0FBQ3ZCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vd3Mtc2NyY3B5L3NyYy9zdHlsZS9hcHAuY3NzIiwid2VicGFjazovL3dzLXNjcmNweS9zcmMvc3R5bGUvbW9yZWJveC5jc3MiLCJ3ZWJwYWNrOi8vd3Mtc2NyY3B5L3NyYy9zdHlsZS9kaWFsb2cuY3NzIiwid2VicGFjazovL3dzLXNjcmNweS9zcmMvc3R5bGUvZGV2aWNlbGlzdC5jc3MiXSwic291cmNlc0NvbnRlbnQiOlsiOnJvb3Qge1xyXG4gICAgLS1tYWluLWJnLWNvbG9yOiBoc2woMCwgMCUsIDEwMCUpO1xyXG4gICAgLS1zdHJlYW0tYmctY29sb3I6IGhzbCgwLCAwJSwgODUlKTtcclxuICAgIC0tc2hlbGwtYmctY29sb3I6IGhzbCgwLCAwJSwgMCUpO1xyXG4gICAgLS10ZXh0LXNoYWRvdy1jb2xvcjogaHNsKDIxOCwgNjclLCA5NSUpO1xyXG4gICAgLS1oZWFkZXItYmctY29sb3I6IGhzbCgwLCAwJSwgOTUlKTtcclxuICAgIC0tY29udHJvbHMtYmctY29sb3I6IGhzbGEoMCwgMCUsIDk1JSwgMC44KTtcclxuICAgIC0tY29udHJvbC1idXR0b25zLWJnLWNvbG9yOiBoc2woMCwgMCUsIDk1JSk7XHJcbiAgICAtLXRleHQtY29sb3I6IGhzbCgyMTAsIDE2JSwgMjIlKTtcclxuICAgIC0tdGV4dC1jb2xvci1saWdodDogaHNsKDIwMCwgMTYlLCA1MiUpO1xyXG4gICAgLS1saW5rLWNvbG9yOiBoc2woMjE4LCA4NSUsIDQzJSk7XHJcbiAgICAtLWxpbmstY29sb3ItbGlnaHQ6IGhzbCgyMTgsIDg1JSwgNzMlKTtcclxuICAgIC0tbGluay1jb2xvcl92aXNpdGVkOiBoc2woMjcxLCA2OCUsIDMyJSk7XHJcbiAgICAtLWxpbmstY29sb3JfdmlzaXRlZC1saWdodDogaHNsKDI3MSwgNjglLCA3MiUpO1xyXG4gICAgLS1zdmctY2hlY2tib3gtYmctY29sb3I6IGhzbCgxNzIsIDEwMCUsIDM3JSk7XHJcbiAgICAtLXN2Zy1idXR0b24tZmlsbDogaHNsKDE5OSwgMTclLCA0NiUpO1xyXG4gICAgLS1raWxsLWJ1dHRvbi1ob3Zlci1jb2xvcjogaHNsKDM0MiwgMTAwJSwgMzclKTtcclxuICAgIC0tdXJsLWNvbG9yOiBoc2woMCwgMCUsIDYwJSk7XHJcbiAgICAtLWJ1dHRvbi10ZXh0LWNvbG9yOiBoc2woMjE0LCA4MiUsIDUxJSk7XHJcbiAgICAtLWJ1dHRvbi1ib3JkZXItY29sb3I6IGhzbCgwLCAwJSwgNzAlKTtcclxuICAgIC0tcHJvZ3Jlc3MtYmFja2dyb3VuZC1jb2xvcjogaHNsYSgyMjUsIDEwMCUsIDUwJSwgMC4yKTtcclxuICAgIC0tcHJvZ3Jlc3MtYmFja2dyb3VuZC1lcnJvci1jb2xvcjogaHNsYSgwLCAxMDAlLCA1MCUsIDAuMik7XHJcbiAgICAtLWZvbnQtc2l6ZTogMTRweDtcclxufVxyXG5cclxuQG1lZGlhIChwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyaykge1xyXG4gICAgOnJvb3Qge1xyXG4gICAgICAgIC0tbWFpbi1iZy1jb2xvcjogaHNsKDAsIDAlLCAxNCUpO1xyXG4gICAgICAgIC0tc3RyZWFtLWJnLWNvbG9yOiBoc2woMCwgMCUsIDIwJSk7XHJcbiAgICAgICAgLS1zaGVsbC1iZy1jb2xvcjogaHNsKDAsIDAlLCAwJSk7XHJcbiAgICAgICAgLS10ZXh0LXNoYWRvdy1jb2xvcjogaHNsKDIxOCwgMTclLCAxOCUpO1xyXG4gICAgICAgIC0taGVhZGVyLWJnLWNvbG9yOiBoc2woMCwgMCUsIDIwJSk7XHJcbiAgICAgICAgLS1jb250cm9scy1iZy1jb2xvcjogaHNsYSgyMDEsIDE4JSwgMTklLCAwLjgpO1xyXG4gICAgICAgIC0tY29udHJvbC1idXR0b25zLWJnLWNvbG9yOiBoc2woMjAxLCAxOCUsIDE5JSk7XHJcbiAgICAgICAgLS10ZXh0LWNvbG9yOiBoc2woMCwgMCUsIDkwJSk7XHJcbiAgICAgICAgLS10ZXh0LWNvbG9yLWxpZ2h0OiBoc2woMCwgMCUsIDYwJSk7XHJcbiAgICAgICAgLS1saW5rLWNvbG9yOiBoc2woMjE4LCA2MyUsIDcwJSk7XHJcbiAgICAgICAgLS1saW5rLWNvbG9yLWxpZ2h0OiBoc2woMjE4LCA2MyUsIDUwJSk7XHJcbiAgICAgICAgLS1saW5rLWNvbG9yX3Zpc2l0ZWQ6IGhzbCgyNjcsIDMxJSwgNDclKTtcclxuICAgICAgICAtLWxpbmstY29sb3JfdmlzaXRlZC1saWdodDogaHNsKDI2NywgMzElLCAyNyUpO1xyXG4gICAgICAgIC0tc3ZnLWNoZWNrYm94LWJnLWNvbG9yOiBoc2woMTcyLCAxMDAlLCAyNyUpO1xyXG4gICAgICAgIC0tc3ZnLWJ1dHRvbi1maWxsOiBoc2woMCwgMCUsIDEwMCUpO1xyXG4gICAgICAgIC0ta2lsbC1idXR0b24taG92ZXItY29sb3I6IGhzbCgzNDIsIDEwMCUsIDI3JSk7XHJcbiAgICAgICAgLS11cmwtY29sb3I6IGhzbCgwLCAwJSwgNjAlKTtcclxuICAgICAgICAtLWRldmljZS1saXN0LXN0cmlwZS1jb2xvcjogaHNsKDAsIDAlLCAxNiUpO1xyXG4gICAgICAgIC0tZGV2aWNlLWxpc3QtZGVmYXVsdC1jb2xvcjogaHNsKDAsIDAlLCAxNCUpO1xyXG4gICAgICAgIC0tYnV0dG9uLXRleHQtY29sb3I6IGhzbCgyMTQsIDgyJSwgNzYlKTtcclxuICAgICAgICAtLWJ1dHRvbi1ib3JkZXItY29sb3I6IGhzbCgyMTMsIDUlLCAzOSUpO1xyXG4gICAgICAgIC0tcHJvZ3Jlc3MtYmFja2dyb3VuZC1jb2xvcjogaHNsYSgyMjUsIDEwMCUsIDUwJSwgMC4yKTtcclxuICAgICAgICAtLXByb2dyZXNzLWJhY2tncm91bmQtZXJyb3ItY29sb3I6IGhzbGEoMCwgMTAwJSwgNTAlLCAwLjIpO1xyXG4gICAgfVxyXG59XHJcblxyXG5odG1sIHtcclxuICAgIGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplKTtcclxufVxyXG5cclxuYSB7XHJcbiAgICBjb2xvcjogdmFyKC0tbGluay1jb2xvcik7XHJcbn1cclxuXHJcbmE6dmlzaXRlZCB7XHJcbiAgICBjb2xvcjogdmFyKC0tbGluay1jb2xvcl92aXNpdGVkKTtcclxufVxyXG5cclxuYm9keSB7XHJcbiAgICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvcik7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1tYWluLWJnLWNvbG9yKTtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIG1hcmdpbjogMDtcclxuICAgIGhlaWdodDogMTAwJTtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxufVxyXG5cclxuXHJcbmJvZHkuc2hlbGwge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2hlbGwtYmctY29sb3IpO1xyXG59XHJcblxyXG5ib2R5LnN0cmVhbSB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zdHJlYW0tYmctY29sb3IpO1xyXG59XHJcblxyXG4udGVybWluYWwtY29udGFpbmVyIHtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgcGFkZGluZzogNXB4O1xyXG59XHJcblxyXG46Zm9jdXMge1xyXG4gICAgb3V0bGluZTogbm9uZTtcclxufVxyXG5cclxuLmZsZXgtY2VudGVyIHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG59XHJcblxyXG4ud2FpdCB7XHJcbiAgICBjdXJzb3I6IHdhaXQ7XHJcbn1cclxuXHJcbi5kZXZpY2UtdmlldyB7XHJcbiAgICB6LWluZGV4OiAxO1xyXG4gICAgZmxvYXQ6IHJpZ2h0O1xyXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG59XHJcblxyXG4udmlkZW8tbGF5ZXIge1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgei1pbmRleDogMDtcclxufVxyXG5cclxuLnRvdWNoLWxheWVyIHtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIHotaW5kZXg6IDE7XHJcbn1cclxuXHJcbi52aWRlbyB7XHJcbiAgICBmbG9hdDogcmlnaHQ7XHJcbiAgICBtYXgtaGVpZ2h0OiAxMDAlO1xyXG4gICAgbWF4LXdpZHRoOiAxMDAlO1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDAwMDtcclxufVxyXG5cclxuXHJcbi5jb250cm9sLWJ1dHRvbnMtbGlzdCB7XHJcbiAgICBmbG9hdDogcmlnaHQ7XHJcbiAgICB3aWR0aDogMy43MTVyZW07XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb250cm9sLWJ1dHRvbnMtYmctY29sb3IpO1xyXG59XHJcblxyXG4uY29udHJvbC1idXR0b24ge1xyXG4gICAgbWFyZ2luOiAuMzU3cmVtIC43ODZyZW07XHJcbiAgICBwYWRkaW5nOiAwO1xyXG4gICAgd2lkdGg6IDIuMTQzcmVtO1xyXG4gICAgaGVpZ2h0OiAyLjE0M3JlbTtcclxuICAgIGJvcmRlcjogbm9uZTtcclxuICAgIG9wYWNpdHk6IDAuNzU7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb250cm9sLWJ1dHRvbnMtYmctY29sb3IpO1xyXG59XHJcblxyXG4uY29udHJvbC1idXR0b246aG92ZXIge1xyXG4gICAgb3BhY2l0eTogMTtcclxufVxyXG5cclxuLmNvbnRyb2wtd3JhcHBlciA+IGlucHV0W3R5cGU9Y2hlY2tib3hdIHtcclxuICAgIGRpc3BsYXk6IG5vbmU7XHJcbn1cclxuXHJcbi5jb250cm9sLXdyYXBwZXIgPiBsYWJlbCB7XHJcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbn1cclxuXHJcbi5jb250cm9sLWJ1dHRvbiA+IHN2ZyB7XHJcbiAgICBmaWxsOiB2YXIoLS1zdmctYnV0dG9uLWZpbGwpO1xyXG59XHJcblxyXG4uY29udHJvbC13cmFwcGVyID4gaW5wdXRbdHlwZT1jaGVja2JveF0udHdvLWltYWdlczpjaGVja2VkICsgbGFiZWwgPiBzdmcuaW1hZ2Utb24ge1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbn1cclxuXHJcbi5jb250cm9sLXdyYXBwZXIgPiBpbnB1dFt0eXBlPWNoZWNrYm94XS50d28taW1hZ2VzOm5vdCg6Y2hlY2tlZCkgKyBsYWJlbCA+IHN2Zy5pbWFnZS1vbiB7XHJcbiAgICBkaXNwbGF5OiBub25lO1xyXG59XHJcblxyXG4uY29udHJvbC13cmFwcGVyID4gaW5wdXRbdHlwZT1jaGVja2JveF0udHdvLWltYWdlczpjaGVja2VkICsgbGFiZWwgPiBzdmcuaW1hZ2Utb2ZmIHtcclxuICAgIGRpc3BsYXk6IG5vbmU7XHJcbn1cclxuXHJcbi5jb250cm9sLXdyYXBwZXIgPiBpbnB1dFt0eXBlPWNoZWNrYm94XS50d28taW1hZ2VzOm5vdCg6Y2hlY2tlZCkgKyBsYWJlbCA+IHN2Zy5pbWFnZS1vZmYge1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbn1cclxuXHJcbi5jb250cm9sLXdyYXBwZXIgPiBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkICsgbGFiZWwgPiBzdmcge1xyXG4gICAgZmlsbDogdmFyKC0tc3ZnLWNoZWNrYm94LWJnLWNvbG9yKTtcclxufVxyXG4iLCIudGV4dC1hcmVhIHtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgcmVzaXplOiB2ZXJ0aWNhbDtcclxufVxyXG5cclxuLm1vcmUtYm94IHtcclxuICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb250cm9scy1iZy1jb2xvcik7XHJcbiAgICB6LWluZGV4OiAyO1xyXG4gICAgcGFkZGluZzogMCAuNzE0cmVtIC43MTRyZW0gLjcxNHJlbTtcclxufVxyXG5cclxuLnRleHQtd2l0aC1zaGFkb3csIC5tb3JlLWJveCBsYWJlbCB7XHJcbiAgICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvcik7XHJcbiAgICB0ZXh0LXNoYWRvdzogdmFyKC0tdGV4dC1zaGFkb3ctY29sb3IpIDAgMCAuMzU3cmVtO1xyXG59XHJcblxyXG4uc3BvaWxlciA+IGlucHV0IH4gLmJveCB7XHJcbiAgICBkaXNwbGF5OiBub25lO1xyXG59XHJcblxyXG4uc3BvaWxlciA+IGlucHV0OmNoZWNrZWQgfiAuYm94IHtcclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG59XHJcblxyXG4uc3BvaWxlciA+IGxhYmVsOjpiZWZvcmUge1xyXG4gICAgY29udGVudDogJ+KWuic7XHJcbiAgICBtYXJnaW4tcmlnaHQ6IDVweDtcclxufVxyXG5cclxuLnNwb2lsZXIgPiBpbnB1dDpjaGVja2VkIH4gbGFiZWw6OmJlZm9yZSB7XHJcbiAgICBjb250ZW50OiAn4pa8JztcclxufVxyXG5cclxuLnNwb2lsZXIgPiBpbnB1dDpjaGVja2VkIH4gZGl2IHtcclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgcGFkZGluZzogMTBweDtcclxufVxyXG5cclxuLnNwb2lsZXIgPiBpbnB1dCB7XHJcbiAgICBkaXNwbGF5OiBub25lO1xyXG59XHJcbiIsIjpyb290IHtcclxuICAgIC0tYmxvY2stdG9wLXBhZGRpbmc6IDAuNXJlbTtcclxuICAgIC0tYmxvY2stYm90dG9tLXBhZGRpbmc6IDAuNXJlbTtcclxuICAgIC0tYnV0dG9uLXRvcC1wYWRkaW5nOiAwLjJyZW07XHJcbiAgICAtLWJ1dHRvbi1ib3R0b20tcGFkZGluZzogMC4ycmVtO1xyXG4gICAgLS1oZWFkZXItaGVpZ2h0OiAzcmVtO1xyXG4gICAgLS1mb290ZXItaGVpZ2h0OiAxLjU1cmVtO1xyXG59XHJcblxyXG4uZGlhbG9nLWJhY2tncm91bmQge1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgICBwb3NpdGlvbjogZml4ZWQ7XHJcbiAgICB0b3A6IDA7XHJcbiAgICBsZWZ0OiAwO1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjc1KTtcclxuICAgIHotaW5kZXg6IDM7XHJcbn1cclxuXHJcbi5kaWFsb2ctY29udGFpbmVyIHtcclxuICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7XHJcbiAgICB3aWR0aDogNzUlO1xyXG4gICAgbWF4LXdpZHRoOiAzMHJlbTtcclxuICAgIG1pbi13aWR0aDogMjByZW07XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1tYWluLWJnLWNvbG9yKTtcclxuICAgIC8qYm9yZGVyLXJhZGl1czogMC4zcmVtOyovXHJcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG59XHJcblxyXG4uZGlhbG9nLWNvbnRhaW5lci5yZWFkeSB7XHJcbiAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgICBtaW4taGVpZ2h0OiAxMDAlO1xyXG59XHJcblxyXG4uZGlhbG9nLWNvbnRhaW5lciBidXR0b24sIC5kaWFsb2ctY29udGFpbmVyIHNlbGVjdCwgLmRpYWxvZy1jb250YWluZXIgaW5wdXQge1xyXG4gICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTtcclxufVxyXG5cclxuLmRpYWxvZy1jb250YWluZXIgYnV0dG9uIHtcclxuICAgIGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplKTtcclxufVxyXG5cclxuLmRpYWxvZy1jb250YWluZXIgc2VsZWN0IHtcclxuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xyXG59XHJcblxyXG4uZGlhbG9nLWJsb2NrIHtcclxufVxyXG5cclxuLmRpYWxvZy1oZWFkZXIge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0taGVhZGVyLWJnLWNvbG9yKTtcclxuICAgIGhlaWdodDogdmFyKC0taGVhZGVyLWhlaWdodCk7XHJcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICB3aWR0aDogYXV0bztcclxuICAgIHBvc2l0aW9uOiBpbml0aWFsO1xyXG59XHJcblxyXG4uZGlhbG9nLWhlYWRlciBzcGFuLmRpYWxvZy10aXRsZSB7XHJcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICBwYWRkaW5nOiAwIDAuNXJlbTtcclxufVxyXG5cclxuLmRpYWxvZy1ib2R5IHtcclxuICAgIHBhZGRpbmc6IHZhcigtLWJsb2NrLXRvcC1wYWRkaW5nKSAwLjVyZW0gdmFyKC0tYmxvY2stYm90dG9tLXBhZGRpbmcpO1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29udHJvbC1idXR0b25zLWJnLWNvbG9yKTtcclxuICAgIG92ZXJmbG93OiBhdXRvO1xyXG59XHJcblxyXG4uZGlhbG9nLWJvZHkuaGlkZGVuIHtcclxuICAgIGhlaWdodDogMDtcclxuICAgIHBhZGRpbmc6IDA7XHJcbn1cclxuXHJcbi5kaWFsb2ctYm9keS52aXNpYmxlIHtcclxuICAgIGhlaWdodDogY2FsYyhcclxuICAgICAgICAgICAgMTAwJVxyXG4gICAgICAgICAgICAtIDIgKiB2YXIoLS1ibG9jay10b3AtcGFkZGluZylcclxuICAgICAgICAgICAgLSAyICogdmFyKC0tYmxvY2stYm90dG9tLXBhZGRpbmcpXHJcbiAgICAgICAgICAgIC0gdmFyKC0taGVhZGVyLWhlaWdodClcclxuICAgICAgICAgICAgLSB2YXIoLS1mb290ZXItaGVpZ2h0KVxyXG4gICAgKTtcclxufVxyXG5cclxuLmRpYWxvZy1mb290ZXIge1xyXG4gICAgLypkaXNwbGF5OiBmbGV4OyovXHJcbiAgICAvKmZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTsqL1xyXG4gICAgcGFkZGluZzogdmFyKC0tYmxvY2stdG9wLXBhZGRpbmcpIDAuNXJlbSB2YXIoLS1ibG9jay1ib3R0b20tcGFkZGluZyk7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zdHJlYW0tYmctY29sb3IpO1xyXG4gICAgaGVpZ2h0OiB2YXIoLS1mb290ZXItaGVpZ2h0KTtcclxuICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbn1cclxuXHJcbi5kaWFsb2ctZm9vdGVyIHNwYW4uc3VidGl0bGUge1xyXG4gICAgZm9udC13ZWlnaHQ6IGxpZ2h0ZXI7XHJcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tZm9vdGVyLWhlaWdodCk7XHJcbiAgICBmbG9hdDogbGVmdDtcclxufVxyXG5cclxuLmRpYWxvZy1mb290ZXIgYnV0dG9uIHtcclxuICAgIHBhZGRpbmc6IHZhcigtLWJ1dHRvbi10b3AtcGFkZGluZykgMC41cmVtIHZhcigtLWJ1dHRvbi1ib3R0b20tcGFkZGluZyk7XHJcbiAgICBtYXJnaW46IDAgMCAwIDAuNXJlbTtcclxuICAgIGJvcmRlci1yYWRpdXM6IDAuM3JlbTtcclxuICAgIC8qYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbWFpbi1iZy1jb2xvcik7Ki9cclxuICAgIGNvbG9yOiB2YXIoLS1idXR0b24tdGV4dC1jb2xvcik7XHJcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1idXR0b24tYm9yZGVyLWNvbG9yKTtcclxuICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMCk7XHJcbiAgICBoZWlnaHQ6IHZhcigtLWZvb3Rlci1oZWlnaHQpO1xyXG4gICAgZmxvYXQ6IHJpZ2h0O1xyXG59XHJcblxyXG4uZGlhbG9nLWZvb3RlciBidXR0b246ZGlzYWJsZWQge1xyXG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcclxuICAgIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG9yLWxpZ2h0KTtcclxufVxyXG5cclxuLmNvbnRyb2xzIC5sYWJlbCB7XHJcbiAgICBncmlkLWNvbHVtbjogbGFiZWxzO1xyXG59XHJcblxyXG4uY29udHJvbHMgLmlucHV0IHtcclxuICAgIGdyaWQtY29sdW1uOiBjb250cm9scztcclxuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcbiAgICBtYXJnaW46IDA7XHJcbiAgICAvKmhlaWdodDogMi43NWV4OyovXHJcbn1cclxuXHJcbi5jb250cm9scyAuYnV0dG9uIHtcclxuICAgIGdyaWQtY29sdW1uOiBjb250cm9scztcclxufVxyXG5cclxuLmNvbnRyb2xzIHtcclxuICAgIGRpc3BsYXk6IGdyaWQ7XHJcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IFtsYWJlbHNdIDM1JSBbY29udHJvbHNdIDY1JTtcclxuICAgIHBhZGRpbmc6IDFyZW07XHJcbiAgICBncmlkLWdhcDogMC4ycmVtO1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxufVxyXG4iLCI6cm9vdCB7XHJcbiAgICAtLWRldmljZS1ib3JkZXItY29sb3I6IGhzbCgwLCAwJSwgODIlKTtcclxuICAgIC0tZGV2aWNlLWxpc3Qtc3RyaXBlLWNvbG9yOiBoc2woMCwgMCUsIDk2JSk7XHJcbiAgICAtLWRldmljZS1saXN0LWRlZmF1bHQtY29sb3I6IGhzbCgwLCAwJSwgMTAwJSk7XHJcbiAgICAtLWRldmljZS1saXN0LWhvdmVyLWNvbG9yOiBoc2woMjE4LCA2NyUsIDk1JSk7XHJcbn1cclxuXHJcbkBtZWRpYSAocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspIHtcclxuICAgIDpyb290IHtcclxuICAgICAgICAtLWRldmljZS1ib3JkZXItY29sb3I6IGhzbCgwLCAwJSwgMzIlKTtcclxuICAgICAgICAtLWRldmljZS1saXN0LXN0cmlwZS1jb2xvcjogaHNsKDAsIDAlLCAxNiUpO1xyXG4gICAgICAgIC0tZGV2aWNlLWxpc3QtZGVmYXVsdC1jb2xvcjogaHNsKDAsIDAlLCAxNCUpO1xyXG4gICAgICAgIC0tZGV2aWNlLWxpc3QtaG92ZXItY29sb3I6IGhzbCgyMTgsIDE3JSwgMTglKTtcclxuICAgIH1cclxufVxyXG5cclxuXHJcbmJvZHkubGlzdCB7XHJcbiAgICBoZWlnaHQ6IGF1dG87XHJcbiAgICB3aWR0aDogYXV0bztcclxuICAgIG92ZXJmbG93OiBhdXRvO1xyXG59XHJcblxyXG4jZGV2aWNlcyB7XHJcbiAgICBwYWRkaW5nOiAyMHB4IDA7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIGhlaWdodDogY2FsYygxMDAlIC0gNDBweCk7XHJcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xyXG59XHJcblxyXG5ib2R5LnN0cmVhbSAjZGV2aWNlcyB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1kZXZpY2UtbGlzdC1kZWZhdWx0LWNvbG9yKTtcclxuICAgIG9wYWNpdHk6IC44O1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgdG9wOiAwO1xyXG4gICAgbGVmdDogMDtcclxuICAgIHotaW5kZXg6IDM7XHJcbn1cclxuXHJcbmJvZHkubGlzdCAjZGV2aWNlX2xpc3RfbWVudSB7XHJcbiAgICBkaXNwbGF5OiBub25lO1xyXG59XHJcblxyXG4jZGV2aWNlX2xpc3RfbWVudSB7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIGJvdHRvbTogMDtcclxuICAgIGxlZnQ6IDA7XHJcbiAgICB6LWluZGV4OiA0O1xyXG59XHJcblxyXG4jZGV2aWNlcyAuZGV2aWNlLWxpc3QgYnV0dG9uIHtcclxuICAgIGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplKTtcclxuICAgIGNvbG9yOiB2YXIoLS1idXR0b24tdGV4dC1jb2xvcik7XHJcbn1cclxuXHJcbiNkZXZpY2VzIC5kZXZpY2UtbGlzdCBkaXYuZGV2aWNlOm50aC1jaGlsZCgybisxKXtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWRldmljZS1saXN0LWRlZmF1bHQtY29sb3IpO1xyXG59XHJcblxyXG4jZGV2aWNlcyAuZGV2aWNlLWxpc3QgZGl2LmRldmljZTpudGgtY2hpbGQoMm4pe1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZGV2aWNlLWxpc3Qtc3RyaXBlLWNvbG9yKTtcclxufVxyXG5cclxuI2RldmljZXMgLmRldmljZS1oZWFkZXIge1xyXG4gICAgcGFkZGluZzogMnB4IDA7XHJcbn1cclxuXHJcbiNkZXZpY2VzIC5kZXZpY2UtaGVhZGVyIGRpdiB7XHJcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcclxufVxyXG5cclxuI2RldmljZXMgLmRldmljZS1uYW1lIHtcclxuICAgIGZvbnQtc2l6ZTogMTIwJTtcclxufVxyXG5cclxuI2RldmljZXMgLmRldmljZS1tb2RlbCB7XHJcbiAgICBmb250LXNpemU6IDExMCU7XHJcbn1cclxuXHJcbiNkZXZpY2VzIC5kZXZpY2Utc2VyaWFsIHtcclxuICAgIGNvbG9yOiB2YXIoLS11cmwtY29sb3IpO1xyXG4gICAgZm9udC1zaXplOiA4MCU7XHJcbiAgICBtYXJnaW4tbGVmdDogNnB4O1xyXG59XHJcblxyXG4jZGV2aWNlcyAuZGV2aWNlLXZlcnNpb24ge1xyXG4gICAgZm9udC1zaXplOiAxMDAlO1xyXG4gICAgbWFyZ2luLWxlZnQ6IDZweDtcclxuICAgIGFsaWduLWl0ZW1zOiBiYXNlbGluZTtcclxufVxyXG5cclxuI2RldmljZXMgLmRldmljZS12ZXJzaW9uIC5zZGstdmVyc2lvbiB7XHJcbiAgICBmb250LXNpemU6IDc1JTtcclxuICAgIGNvbG9yOiB2YXIoLS11cmwtY29sb3IpO1xyXG4gICAgbWFyZ2luLWxlZnQ6IDAuMmVtO1xyXG59XHJcblxyXG4jZGV2aWNlcyAuZGV2aWNlLXN0YXRlIHtcclxuICAgIGJvcmRlci1yYWRpdXM6IDI1cHg7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7XHJcbiAgICBmb250LXNpemU6IDgwJTtcclxuICAgIG1hcmdpbi1sZWZ0OiA2cHg7XHJcbiAgICB3aWR0aDogMWVtO1xyXG4gICAgaGVpZ2h0OiAxZW07XHJcbn1cclxuXHJcbiNkZXZpY2VzIC5kZXZpY2UuYWN0aXZlIC5kZXZpY2Utc3RhdGUge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogZ3JlZW47XHJcbn1cclxuXHJcbiNkZXZpY2VzIC5kZXZpY2UtbGlzdCB7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICBib3R0b206IDA7XHJcbiAgICBsZWZ0OiAwO1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbn1cclxuXHJcbiNkZXZpY2VzIC5kZXZpY2UtbGlzdCB7XHJcbiAgICBib3JkZXItc3BhY2luZzogMDtcclxuICAgIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XHJcbiAgICBmb250LWZhbWlseTogbW9ub3NwYWNlO1xyXG4gICAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUpO1xyXG59XHJcblxyXG4jZGV2aWNlcyAuZGV2aWNlLWxpc3QgZGl2LmRldmljZSB7XHJcbiAgICBwYWRkaW5nOiA1cHggMjBweCA1cHg7XHJcbn1cclxuXHJcbiNkZXZpY2VzIC5kZXZpY2UtbGlzdCBkaXYuZGV2aWNlOmhvdmVyIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWRldmljZS1saXN0LWhvdmVyLWNvbG9yKVxyXG59XHJcblxyXG4jZGV2aWNlcyAuZGV2aWNlLWxpc3QgZGl2LmRldmljZSBzZWxlY3Qge1xyXG4gICAgY29sb3I6IHZhcigtLXRleHQtY29sb3IpO1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbWFpbi1iZy1jb2xvcik7XHJcbiAgICBtYXJnaW4tbGVmdDogMDtcclxuICAgIGJvcmRlcjogbm9uZTtcclxufVxyXG5cclxuI2RldmljZXMgLmRldmljZS1saXN0IGRpdi5kZXZpY2U6aG92ZXIgc2VsZWN0IHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWRldmljZS1saXN0LWhvdmVyLWNvbG9yKTs7XHJcbn1cclxuXHJcbiNkZXZpY2VzIC5kZXZpY2UtbGlzdCBkaXYuZGVzYy1ibG9jayB7XHJcbiAgICBtYXJnaW46IC4zZW07XHJcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcclxufVxyXG5cclxuI2RldmljZXMgLmRldmljZS1saXN0IGRpdi5kZXNjLWJsb2NrLmhpZGRlbiB7XHJcbiAgICBkaXNwbGF5OiBub25lO1xyXG59XHJcblxyXG4jZGV2aWNlcyAuZGV2aWNlLWxpc3QgZGl2LmRlc2MtYmxvY2suc3RyZWFtLFxyXG4jZGV2aWNlcyAuZGV2aWNlLWxpc3QgZGl2LmRlc2MtYmxvY2suc2VydmVyX3BpZCxcclxuI2RldmljZXMgLmRldmljZS1saXN0IGRpdi5kZXNjLWJsb2NrLm5ldF9pbnRlcmZhY2Uge1xyXG4gICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tZGV2aWNlLWJvcmRlci1jb2xvcik7XHJcbiAgICBib3JkZXItcmFkaXVzOiAuM2VtO1xyXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XHJcbn1cclxuXHJcbiNkZXZpY2VzIC5kZXZpY2UtbGlzdCBkaXYuZGV2aWNlIGRpdi5kZXNjLWJsb2NrLnN0cmVhbSBidXR0b24uYWN0aW9uLWJ1dHRvbiB7XHJcbiAgICBjb2xvcjogdmFyKC0tYnV0dG9uLXRleHQtY29sb3IpO1xyXG59XHJcblxyXG4jZGV2aWNlcyAuZGV2aWNlLWxpc3QgZGl2LmRlc2MtYmxvY2sgYnV0dG9uIHtcclxuICAgIGZpbGw6IHZhcigtLXRleHQtY29sb3IpXHJcbn1cclxuXHJcbiNkZXZpY2VzIC5kZXZpY2UtbGlzdCBkaXYuZGVzYy1ibG9jayBidXR0b24gPiBzcGFuIHtcclxuICAgIHBhZGRpbmc6IDAgLjVlbTtcclxufVxyXG5cclxuI2RldmljZXMgLmRldmljZS1saXN0IGRpdi5kZXNjLWJsb2NrIGJ1dHRvbiA+IHNwYW4sXHJcbiNkZXZpY2VzIC5kZXZpY2UtbGlzdCBkaXYuZGVzYy1ibG9jayBidXR0b24gPiBzdmcge1xyXG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcclxufVxyXG5cclxuI2RldmljZXMgLmRldmljZS1saXN0IGRpdi5kZXNjLWJsb2NrIGJ1dHRvbiA+IHN2ZyB7XHJcbiAgICB3aWR0aDogdmFyKC0tZm9udC1zaXplKTtcclxuICAgIGhlaWdodDogdmFyKC0tZm9udC1zaXplKTtcclxufVxyXG5cclxuI2RldmljZXMgLmRldmljZS1saXN0IGRpdi5kZXNjLWJsb2NrIGJ1dHRvbiA+IHN2ZyA+IHBhdGgge1xyXG4gICAgZmlsbDogdmFyKC0tdGV4dC1jb2xvcik7XHJcbn1cclxuXHJcbiNkZXZpY2VzIC5kZXZpY2UtbGlzdCAuZGV2aWNlLm5vdC1hY3RpdmUgZGl2LmRlc2MtYmxvY2sgYnV0dG9uID4gc3ZnID4gcGF0aCB7XHJcbiAgICBmaWxsOiB2YXIoLS10ZXh0LWNvbG9yLWxpZ2h0KTtcclxufVxyXG5cclxuI2RldmljZXMgLmRldmljZS1saXN0IC5kZXZpY2Uubm90LWFjdGl2ZSBzZWxlY3Qge1xyXG4gICAgY29sb3I6IHZhcigtLXRleHQtY29sb3ItbGlnaHQpO1xyXG59XHJcblxyXG4jZGV2aWNlcyAuZGV2aWNlLWxpc3QgLmRldmljZS5ub3QtYWN0aXZlIHtcclxuICAgIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG9yLWxpZ2h0KTtcclxufVxyXG5cclxuI2RldmljZXMgLmRldmljZS1saXN0IC5kZXZpY2Uubm90LWFjdGl2ZSBhIHtcclxuICAgIGNvbG9yOiB2YXIoLS1saW5rLWNvbG9yLWxpZ2h0KTtcclxufVxyXG5cclxuI2RldmljZXMgLmRldmljZS1saXN0IC5kZXZpY2Uubm90LWFjdGl2ZSBhOnZpc2l0ZWQge1xyXG4gICAgY29sb3I6IHZhcigtLWxpbmstY29sb3JfdmlzaXRlZC1saWdodCk7XHJcbn1cclxuXHJcbiNkZXZpY2VzIC5kZXZpY2UtbGlzdCBkaXYuZGV2aWNlIGRpdi5kZXNjLWJsb2NrIC5hY3Rpb24tYnV0dG9uIHtcclxuICAgIGJvcmRlcjogbm9uZTtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMCk7XHJcbiAgICBjb2xvcjogaW5oZXJpdDtcclxufVxyXG5cclxuI2RldmljZXMgLmRldmljZS1saXN0IGRpdi5kZXZpY2UgZGl2LmRlc2MtYmxvY2sgLmFjdGlvbi1idXR0b24udXBkYXRlLWludGVyZmFjZXMtYnV0dG9uIHtcclxuICAgIG1hcmdpbi1yaWdodDogMDtcclxufVxyXG5cclxuI2RldmljZXMgLmRldmljZS1saXN0IGRpdi5kZXZpY2UgZGl2LmRlc2MtYmxvY2sgLmFjdGlvbi1idXR0b24uYWN0aXZlIHtcclxuICAgIGN1cnNvcjogcG9pbnRlcjtcclxufVxyXG5cclxuI2RldmljZXMgLmRldmljZS1saXN0IC5kZXZpY2UuYWN0aXZlIGRpdi5kZXNjLWJsb2NrIC5hY3Rpb24tYnV0dG9uOmhvdmVyIHtcclxuICAgIGNvbG9yOiB2YXIoLS1raWxsLWJ1dHRvbi1ob3Zlci1jb2xvcik7XHJcbn1cclxuXHJcbiNkZXZpY2VzIC5kZXZpY2UtbGlzdCAuZGV2aWNlLmFjdGl2ZSBkaXYuZGVzYy1ibG9jayBidXR0b24uYWN0aW9uLWJ1dHRvbjpob3ZlciA+IHN2ZyA+IHBhdGgge1xyXG4gICAgZmlsbDogdmFyKC0ta2lsbC1idXR0b24taG92ZXItY29sb3IpO1xyXG59XHJcblxyXG4jZGV2aWNlcyAudHJhY2tlci1uYW1lIHtcclxuICAgIHBhZGRpbmc6IDVweCAyMHB4IDVweDtcclxuICAgIGZvbnQtc2l6ZTogbGFyZ2VyO1xyXG4gICAgZm9udC13ZWlnaHQ6IGJvbGRlcjtcclxufVxyXG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=*/