{"id":622,"date":"2026-04-09T17:55:06","date_gmt":"2026-04-09T17:55:06","guid":{"rendered":"https:\/\/schautdoch.ch\/?p=622"},"modified":"2026-04-09T20:10:35","modified_gmt":"2026-04-09T20:10:35","slug":"mein-spiel-heute","status":"publish","type":"post","link":"https:\/\/schautdoch.ch\/?p=622","title":{"rendered":"mein Spiel heute"},"content":{"rendered":"\n<link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\">\n<link rel=\"preconnect\" href=\"https:\/\/fonts.gstatic.com\" crossorigin>\n<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Orbitron:wght@400;500;700&#038;family=Inter:wght@300;400;500;600&#038;display=swap\" rel=\"stylesheet\">\n\n<style>\n  :root{\n    --bg:#090d16;\n    --bg2:#111827;\n    --bg3:#1a1030;\n    --neon1:#39d0ff;\n    --neon2:#ff3ea6;\n    --neon3:#ffd84d;\n    --glass:rgba(255,255,255,0.08);\n    --glass2:rgba(255,255,255,0.14);\n    --text:#eef6ff;\n    --muted:#a9b7c9;\n    --shadow:0 30px 90px rgba(0,0,0,0.42);\n  }\n\n  html, body{\n    margin:0;\n    padding:0;\n    background:#090d16;\n  }\n\n  .pinball-page{\n    position:relative;\n    width:100%;\n    min-height:100vh;\n    overflow:hidden;\n    padding:40px 18px 70px;\n    box-sizing:border-box;\n    font-family:'Inter', sans-serif;\n    color:var(--text);\n    background:\n      radial-gradient(circle at 12% 18%, rgba(57,208,255,0.22) 0%, transparent 18%),\n      radial-gradient(circle at 84% 14%, rgba(255,62,166,0.18) 0%, transparent 18%),\n      radial-gradient(circle at 70% 78%, rgba(255,216,77,0.12) 0%, transparent 16%),\n      linear-gradient(135deg, var(--bg) 0%, var(--bg2) 48%, var(--bg3) 100%);\n  }\n\n  \/* Spielfeld-Linien \/ Flipper-Look *\/\n  .pinball-page::before{\n    content:\"\";\n    position:absolute;\n    inset:0;\n    pointer-events:none;\n    opacity:0.95;\n    background:\n      radial-gradient(circle at 16% 26%, transparent 0 38px, rgba(57,208,255,0.22) 39px, transparent 42px),\n      radial-gradient(circle at 82% 22%, transparent 0 28px, rgba(255,62,166,0.22) 29px, transparent 32px),\n      radial-gradient(circle at 74% 72%, transparent 0 22px, rgba(255,216,77,0.20) 23px, transparent 26px),\n      linear-gradient(24deg, transparent 48%, rgba(255,255,255,0.06) 49%, rgba(255,255,255,0.06) 50%, transparent 51%),\n      linear-gradient(115deg, transparent 48%, rgba(255,255,255,0.04) 49%, rgba(255,255,255,0.04) 50%, transparent 51%),\n      repeating-linear-gradient(\n        180deg,\n        transparent 0px,\n        transparent 31px,\n        rgba(255,255,255,0.018) 32px\n      );\n    mix-blend-mode:screen;\n  }\n\n  \/* Leuchtbahnen links\/rechts *\/\n  .pinball-rail-left,\n  .pinball-rail-right{\n    position:absolute;\n    top:0;\n    bottom:0;\n    width:120px;\n    pointer-events:none;\n    z-index:1;\n    opacity:0.7;\n  }\n\n  .pinball-rail-left{\n    left:-10px;\n    background:\n      linear-gradient(165deg, transparent 0 18%, rgba(57,208,255,0.0) 18%, rgba(57,208,255,0.26) 22%, rgba(57,208,255,0.0) 26%, transparent 26%),\n      linear-gradient(12deg, transparent 0 55%, rgba(255,62,166,0.0) 55%, rgba(255,62,166,0.22) 59%, rgba(255,62,166,0.0) 63%, transparent 63%);\n    filter:blur(0.3px);\n  }\n\n  .pinball-rail-right{\n    right:-10px;\n    background:\n      linear-gradient(195deg, transparent 0 18%, rgba(255,216,77,0.0) 18%, rgba(255,216,77,0.24) 22%, rgba(255,216,77,0.0) 26%, transparent 26%),\n      linear-gradient(-12deg, transparent 0 55%, rgba(57,208,255,0.0) 55%, rgba(57,208,255,0.20) 59%, rgba(57,208,255,0.0) 63%, transparent 63%);\n    filter:blur(0.3px);\n  }\n\n  .pinball-shell{\n    position:relative;\n    z-index:2;\n    max-width:1280px;\n    margin:0 auto;\n  }\n\n  .pinball-header{\n    margin:0 auto 24px;\n    max-width:1100px;\n    text-align:center;\n    padding:18px 20px 0;\n  }\n\n  .pinball-kicker{\n    font-family:'Orbitron', sans-serif;\n    font-size:12px;\n    letter-spacing:0.30em;\n    text-transform:uppercase;\n    color:var(--neon1);\n    margin-bottom:14px;\n  }\n\n  .pinball-title{\n    margin:0;\n    font-family:'Orbitron', sans-serif;\n    font-size:clamp(2rem, 4.8vw, 4.8rem);\n    line-height:0.95;\n    font-weight:700;\n    color:#f6fbff;\n    text-shadow:\n      0 0 14px rgba(57,208,255,0.18),\n      0 0 30px rgba(255,62,166,0.08);\n  }\n\n  .pinball-subtitle{\n    margin:14px auto 0;\n    max-width:820px;\n    font-size:1.02rem;\n    line-height:1.8;\n    color:var(--muted);\n  }\n\n  .pinball-frame{\n    position:relative;\n    max-width:1180px;\n    margin:26px auto 0;\n    padding:20px;\n    border-radius:34px;\n    background:\n      linear-gradient(145deg, rgba(255,255,255,0.08), rgba(255,255,255,0.03)),\n      linear-gradient(145deg, rgba(57,208,255,0.10), rgba(255,62,166,0.08));\n    border:1px solid rgba(255,255,255,0.12);\n    box-shadow:\n      var(--shadow),\n      inset 0 0 0 1px rgba(255,255,255,0.05),\n      0 0 24px rgba(57,208,255,0.08);\n    backdrop-filter:blur(4px);\n  }\n\n  .pinball-frame::before{\n    content:\"\";\n    position:absolute;\n    inset:10px;\n    border-radius:26px;\n    border:1px solid rgba(255,255,255,0.07);\n    pointer-events:none;\n  }\n\n  .pinball-lights{\n    display:flex;\n    justify-content:center;\n    gap:14px;\n    margin-bottom:16px;\n  }\n\n  .pinball-light{\n    width:14px;\n    height:14px;\n    border-radius:50%;\n    box-shadow:0 0 16px currentColor;\n  }\n\n  .light1{ color:var(--neon1); background:var(--neon1); }\n  .light2{ color:var(--neon2); background:var(--neon2); }\n  .light3{ color:var(--neon3); background:var(--neon3); }\n\n  .pinball-screen{\n    position:relative;\n    overflow:hidden;\n    border-radius:24px;\n    background:\n      linear-gradient(180deg, rgba(255,255,255,0.05), rgba(0,0,0,0.18)),\n      #050811;\n    border:1px solid rgba(255,255,255,0.10);\n    min-height:72vh;\n    box-shadow:\n      inset 0 0 30px rgba(57,208,255,0.04),\n      inset 0 -40px 80px rgba(0,0,0,0.25);\n  }\n\n  .pinball-screen iframe{\n    display:block;\n    width:100%;\n    height:72vh;\n    min-height:720px;\n    border:0;\n    background:#000;\n  }\n\n  .pinball-badge{\n    margin:20px auto 0;\n    text-align:center;\n    font-family:'Orbitron', sans-serif;\n    font-size:12px;\n    letter-spacing:0.24em;\n    text-transform:uppercase;\n    color:rgba(255,255,255,0.7);\n  }\n\n  .pinball-badge span{\n    display:inline-block;\n    padding:10px 16px;\n    border-radius:999px;\n    background:rgba(255,255,255,0.05);\n    border:1px solid rgba(255,255,255,0.08);\n  }\n\n  @media (max-width: 900px){\n    .pinball-page{\n      padding:24px 10px 50px;\n    }\n\n    .pinball-frame{\n      padding:14px;\n      border-radius:24px;\n    }\n\n    .pinball-screen{\n      border-radius:18px;\n      min-height:62vh;\n    }\n\n    .pinball-screen iframe{\n      height:62vh;\n      min-height:560px;\n    }\n\n    .pinball-rail-left,\n    .pinball-rail-right{\n      width:72px;\n      opacity:0.45;\n    }\n  }\n<\/style>\n\n<div class=\"pinball-page\">\n  <div class=\"pinball-rail-left\"><\/div>\n  <div class=\"pinball-rail-right\"><\/div>\n\n  <div class=\"pinball-shell\">\n    <header class=\"pinball-header\">\n      <div class=\"pinball-kicker\">Arcade \/ Pinball \/ Play<\/div>\n      <h1 class=\"pinball-title\">Mein Spiel<\/h1>\n      <p class=\"pinball-subtitle\">\n        Ein Hintergrund wie ein Flipperkasten: dunkel, leuchtend, mit Tiefe,\n        Glas, Neon und einer klaren B\u00fchne f\u00fcr dein Spiel.\n      <\/p>\n    <\/header>\n\n    <section class=\"pinball-frame\">\n      <div class=\"pinball-lights\">\n        <span class=\"pinball-light light1\"><\/span>\n        <span class=\"pinball-light light2\"><\/span>\n        <span class=\"pinball-light light3\"><\/span>\n        <span class=\"pinball-light light1\"><\/span>\n        <span class=\"pinball-light light2\"><\/span>\n      <\/div>\n\n      <div class=\"pinball-screen\">\n        <iframe\n          src=\"https:\/\/alleswasbewegt.ch\/images\/start.html\"\n          title=\"Mein Spiel\"\n          loading=\"lazy\"\n          allowfullscreen>\n        <\/iframe>\n      <\/div>\n\n      <div class=\"pinball-badge\">\n        <span>Press Start<\/span>\n      <\/div>\n    <\/section>\n  <\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Arcade \/ Pinball \/ Play Mein Spiel Ein Hintergrund wie ein Flipperkasten: dunkel, leuchtend, mit Tiefe, Glas, Neon und einer klaren B\u00fchne f\u00fcr dein Spiel. Press Start<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_crdt_document":"{\"document\":\"AACcAc3gzIUd8wGO4qbgEYmPurIIzeDMhR0EyY+6sggAzeDMhR0AjuKm4BGN4MyFHc7ipuARAc3gzIUdFo7ipuARjeDMhR2O4qbgEY3gzIUdjuKm4BHN4MyFHRCJj7qyCM3gzIUdLs7ipuARAJHbz6MNiY+6sgjN4MyFHQmjwszNA87ipuARAuPCzM0DAc3gzIUdIc7ipuARAs3gzIUdHaEDBggCjAFUNAIGYCQBAn6GAYgBmgeMCIYCAoQBAp4JAiKoBwKGBAKqBgKiBQKGAwKsAgKaBQKEAwKWAgKoA6QEvAQMAr4CigICrAQCNJwCiAECOJwCiAEChAMCqgMCmAgMApoBDpIBvAEOLCoOJKgDDoAJDAK0BwKwAQK2AQKkAwKaIYoGthqWEqAUGhYSsAKgCowCthO0CqwdiAuGEIIJqhGIFrIDjB2ICaQfgAGaCawCvB8SoAGIBIYFvBKKBaASqgSOCp4KjhHs9AQIoKEDrHSOCd6fBAKAAgTMAo4CkB8DAPIWjAiQDZospAS8BIwDrgecAoICnAKKAfIzAqoIkDqIA7wBOpwBpD2KBrYalhK+JLYTtAqsHYgLhhCCCaoRiBa+IIgJpB+AAZoJrAK8HxKoBYIYigWgEqoEjgqeCsbCBAL+H94BtAKu7QGSGKAKmuECyNMEAwBG5CEDAJIDrhGGAaAJjAiIBKwGpAWIA64CnAWGA5gClg2KBa4EmgSeBPAzrAiKLqwDpgioAZwDpAGaBIwJArYHsgG4AaYDqmkotwGUAgFvmp8DrHSOCfSUBIwIkA2aLKQEvASMA64HnAKCApwCigEBAYoPiAO8ATqcAaQ9iga2GsLeAZaVArYTtAqsHYgLhhCCCaoRiBa+IIgJpB+AAZoJrAK8HxKoBYIYigWgEqoEjgqeCv7yApIYoAqa4QLY8QSuEYYBoAmMCIgErAakBYgDrgKcBYYDmAKWDYoFrgSaBNAyvgKwM4YDrAOmCKgBnAOkAZoEjAkCtgeyAbgBpgOqaSjhASgAIQEnAAEAhACBACcBKAYnACgAIQAoACcAhACBAIQAgQAHACEAKAAhACcBAQAhAEQAwQLEAMEAxADBAMQAwQHEAMEAxADBAMQAwQDEAMEAxADBAMQAwQDEAMEAxADBAMQAwQPEAMEBxADBAMQAwQLEAMECxADBAMQAwQDEAMEBxADBAMQAwQHEAMEBxADBAcQAwQDEAcEAxADBAMQAwQDEAMEAxADBBMQAwQDEAMEdxACoACEAoQDBAqEEIQCoAsELxADBAMQAwSCoASEBqAEoACEBoQDBAyEAqAGnAKgDxJA\/hD5zdGF0ZXZlcnNpb25kb2N1bWVudGRhdGVkb2N1bWVudHN0YXR1c2RvY3VtZW50dGl0bGVtZG9jdW1lbnRjb250ZW50ZG9jdW1lbnRleGNlcnB0ZG9jdW1lbnRhdXRob3Jkb2N1bWVudGZlYXR1cmVkX21lZGlhZG9jdW1lbnRjb21tZW50X3N0YXR1c2RvY3VtZW50cGluZ19zdGF0dXNkb2N1bWVudHN0aWNreWRvY3VtZW50dGVtcGxhdGVkb2N1bWVudGZvcm1hdGRvY3VtZW50bWV0YWZvb3Rub3Rlc2RvY3VtZW50Y2F0ZWdvcmllc2RvY3VtZW50dGFnc2RvY3VtZW50YmxvY2tzZWluIFNwaWVsIGhldXRlY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNpbm5lckJsb2Nrc2NvbnRlbnQ8IS0tIHdwOmh0bWwgLS0+CgoKCgoKCgoKCgoKCgoKCgoKCgoKICAgIH0KCiAgICB9CgogICAgfQoKICAgIH0KCiAgICB9CgoKCgoKICAgICAgPC9kaXY+CiAgPC9kaXY+CjwhLS0gL3dwOmh0bWwgLS0+c3RhdGV2ZXJzaW9uZHJvcENhcAoKc3RhdGV2ZXJzaW9uc3RhdGV2ZXJzaW9uZG9jdW1lbnRzbHVnc3RhdGVzYXZlZEF0c3RhdGVzYXZlZEJ5c3RhdGV2ZXJzaW9uPGxpbmsgcmVsPSJwcmVjb25uZWN0IiBocmVmPSJodHRwczovL2ZvbnRzLmdvb2dsZWFwaXMuY29tIj4KPGxpbmsgcmVsPSJwcmVjb25uZWN0IiBocmVmPSJodHRwczovL2ZvbnRzLmdzdGF0aWMuY29tIiBjcm9zc29yaWdpbj4KPGxpbmsgaHJlZj0iaHR0cHM6Ly9mb250cy5nb29nbGVhcGlzLmNvbS9jc3MyP2ZhbWlseT1PcmJpdHJvbjp3Z2h0QDQwMDs1MDA7NzAwJmZhbWlseT1JbnRlcjp3Z2h0QDMwMDs0MDA7NTAwOzYwMCZkaXNwbGF5PXN3YXAiIHJlbD0ic3R5bGVzaGVldCI+CjxzdHlsZT4KICA6cm9vdHsKICAgIC0tYmc6IzA5MGQxNjsKICAgIC0tYmcyOiMxMTE4Mjc7CiAgICAtLWJnMzojMWExMDMwOwogICAgLS1uZW9uMTojMzlkMGZmOwogICAgLS1uZW9uMjojZmYzZWE2OwogICAgLS1uZW9uMzojZmZkODRkOwogICAgLS1nbGFzczpyZ2JhKDI1NSwyNTUsMjU1LDAuMDgpOwogICAgLS1nbGFzczI6cmdiYSgyNTUsMjU1LDI1NSwwLjE0KTsKICAgIC0tdGV4dDojZWVmNmZmOwogICAgLS1tdXRlZDojYTliN2M5OwogICAgLS1zaGFkb3c6MCAzMHB4IDkwcHggcmdiYSgwLDAsMCwwLjQyKTsKICB9CiAgaHRtbCwgYm9keXsKICAgIG1hcmdpbjowOwogICAgcGFkZGluZzowOwogICAgYmFja2dyb3VuZDojMDkwZDE2OwogIH0KICAucGluYmFsbC1wYWdlewogICAgcG9zaXRpb246cmVsYXRpdmU7CiAgICB3aWR0aDoxMDAlOwogICAgbWluLWhlaWdodDoxMDB2aDsKICAgIG92ZXJmbG93OmhpZGRlbjsKICAgIHBhZGRpbmc6NDBweCAxOHB4IDcwcHg7CiAgICBib3gtc2l6aW5nOmJvcmRlci1ib3g7CiAgICBmb250LWZhbWlseTonSW50ZXInLCBzYW5zLXNlcmlmOwogICAgY29sb3I6dmFyKC0tdGV4dCk7CiAgICBiYWNrZ3JvdW5kOgogICAgICByYWRpYWwtZ3JhZGllbnQoY2lyY2xlIGF0IDEyJSAxOCUsIHJnYmEoNTcsMjA4LDI1NSwwLjIyKSAwJSwgdHJhbnNwYXJlbnQgMTglKSwKICAgICAgcmFkaWFsLWdyYWRpZW50KGNpcmNsZSBhdCA4NCUgMTQlLCByZ2JhKDI1NSw2MiwxNjYsMC4xOCkgMCUsIHRyYW5zcGFyZW50IDE4JSksCiAgICAgIHJhZGlhbC1ncmFkaWVudChjaXJjbGUgYXQgNzAlIDc4JSwgcmdiYSgyNTUsMjE2LDc3LDAuMTIpIDAlLCB0cmFuc3BhcmVudCAxNiUpLAogICAgICBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCB2YXIoLS1iZykgMCUsIHZhcigtLWJnMikgNDglLCB2YXIoLS1iZzMpIDEwMCUpOwogIH0KICAvKiBTcGllbGZlbGQtTGluaWVuIC8gRmxpcHBlci1Mb29rICovCiAgLnBpbmJhbGwtcGFnZTo6YmVmb3JlewogICAgY29udGVudDoiIjsKICAgIHBvc2l0aW9uOmFic29sdXRlOwogICAgaW5zZXQ6MDsKICAgIHBvaW50ZXItZXZlbnRzOm5vbmU7CiAgICBvcGFjaXR5OjAuOTU7CiAgICBiYWNrZ3JvdW5kOgogICAgICByYWRpYWwtZ3JhZGllbnQoY2lyY2xlIGF0IDE2JSAyNiUsIHRyYW5zcGFyZW50IDAgMzhweCwgcmdiYSg1NywyMDgsMjU1LDAuMjIpIDM5cHgsIHRyYW5zcGFyZW50IDQycHgpLAogICAgICByYWRpYWwtZ3JhZGllbnQoY2lyY2xlIGF0IDgyJSAyMiUsIHRyYW5zcGFyZW50IDAgMjhweCwgcmdiYSgyNTUsNjIsMTY2LDAuMjIpIDI5cHgsIHRyYW5zcGFyZW50IDMycHgpLAogICAgICByYWRpYWwtZ3JhZGllbnQoY2lyY2xlIGF0IDc0JSA3MiUsIHRyYW5zcGFyZW50IDAgMjJweCwgcmdiYSgyNTUsMjE2LDc3LDAuMjApIDIzcHgsIHRyYW5zcGFyZW50IDI2cHgpLAogICAgICBsaW5lYXItZ3JhZGllbnQoMjRkZWcsIHRyYW5zcGFyZW50IDQ4JSwgcmdiYSgyNTUsMjU1LDI1NSwwLjA2KSA0OSUsIHJnYmEoMjU1LDI1NSwyNTUsMC4wNikgNTAlLCB0cmFuc3BhcmVudCA1MSUpLAogICAgICBsaW5lYXItZ3JhZGllbnQoMTE1ZGVnLCB0cmFuc3BhcmVudCA0OCUsIHJnYmEoMjU1LDI1NSwyNTUsMC4wNCkgNDklLCByZ2JhKDI1NSwyNTUsMjU1LDAuMDQpIDUwJSwgdHJhbnNwYXJlbnQgNTElKSwKICAgICAgcmVwZWF0aW5nLWxpbmVhci1ncmFkaWVudCgKICAgICAgICAxODBkZWcsCiAgICAgICAgdHJhbnNwYXJlbnQgMHB4LAogICAgICAgIHRyYW5zcGFyZW50IDMxcHgsCiAgICAgICAgcmdiYSgyNTUsMjU1LDI1NSwwLjAxOCkgMzJweAogICAgICApOwogICAgbWl4LWJsZW5kLW1vZGU6c2NyZWVuOwogIH0KICAvKiBMZXVjaHRiYWhuZW4gbGlua3MvcmVjaHRzICovCiAgLnBpbmJhbGwtcmFpbC1sZWZ0LAogIC5waW5iYWxsLXJhaWwtcmlnaHR7CiAgICBwb3NpdGlvbjphYnNvbHV0ZTsKICAgIHRvcDowOwogICAgYm90dG9tOjA7CiAgICB3aWR0aDoxMjBweDsKICAgIHBvaW50ZXItZXZlbnRzOm5vbmU7CiAgICB6LWluZGV4OjE7CiAgICBvcGFjaXR5OjAuNzsKICB9CiAgLnBpbmJhbGwtcmFpbC1sZWZ0ewogICAgbGVmdDotMTBweDsKICAgIGJhY2tncm91bmQ6CiAgICAgIGxpbmVhci1ncmFkaWVudCgxNjVkZWcsIHRyYW5zcGFyZW50IDAgMTglLCByZ2JhKDU3LDIwOCwyNTUsMC4wKSAxOCUsIHJnYmEoNTcsMjA4LDI1NSwwLjI2KSAyMiUsIHJnYmEoNTcsMjA4LDI1NSwwLjApIDI2JSwgdHJhbnNwYXJlbnQgMjYlKSwKICAgICAgbGluZWFyLWdyYWRpZW50KDEyZGVnLCB0cmFuc3BhcmVudCAwIDU1JSwgcmdiYSgyNTUsNjIsMTY2LDAuMCkgNTUlLCByZ2JhKDI1NSw2MiwxNjYsMC4yMikgNTklLCByZ2JhKDI1NSw2MiwxNjYsMC4wKSA2MyUsIHRyYW5zcGFyZW50IDYzJSk7CiAgICBmaWx0ZXI6Ymx1cigwLjNweCk7CiAgfQogIC5waW5iYWxsLXJhaWwtcmlnaHR7CiAgICByaWdodDotMTBweDsKICAgIGJhY2tncm91bmQ6CiAgICAgIGxpbmVhci1ncmFkaWVudCgxOTVkZWcsIHRyYW5zcGFyZW50IDAgMTglLCByZ2JhKDI1NSwyMTYsNzcsMC4wKSAxOCUsIHJnYmEoMjU1LDIxNiw3NywwLjI0KSAyMiUsIHJnYmEoMjU1LDIxNiw3NywwLjApIDI2JSwgdHJhbnNwYXJlbnQgMjYlKSwKICAgICAgbGluZWFyLWdyYWRpZW50KC0xMmRlZywgdHJhbnNwYXJlbnQgMCA1NSUsIHJnYmEoNTcsMjA4LDI1NSwwLjApIDU1JSwgcmdiYSg1NywyMDgsMjU1LDAuMjApIDU5JSwgcmdiYSg1NywyMDgsMjU1LDAuMCkgNjMlLCB0cmFuc3BhcmVudCA2MyUpOwogICAgZmlsdGVyOmJsdXIoMC4zcHgpOwogIH0KICAucGluYmFsbC1zaGVsbHsKICAgIHBvc2l0aW9uOnJlbGF0aXZlOwogICAgei1pbmRleDoyOwogICAgbWF4LXdpZHRoOjEyODBweDsKICAgIG1hcmdpbjowIGF1dG87CiAgfQogIC5waW5iYWxsLWhlYWRlcnsKICAgIG1hcmdpbjowIGF1dG8gMjRweDsKICAgIG1heC13aWR0aDoxMTAwcHg7CiAgICB0ZXh0LWFsaWduOmNlbnRlcjsKICAgIHBhZGRpbmc6MThweCAyMHB4IDA7CiAgfQogIC5waW5iYWxsLWtpY2tlcnsKICAgIGZvbnQtZmFtaWx5OidPcmJpdHJvbicsIHNhbnMtc2VyaWY7CiAgICBmb250LXNpemU6MTJweDsKICAgIGxldHRlci1zcGFjaW5nOjAuMzBlbTsKICAgIHRleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTsKICAgIGNvbG9yOnZhcigtLW5lb24xKTsKICAgIG1hcmdpbi1ib3R0b206MTRweDsKICB9CiAgLnBpbmJhbGwtdGl0bGV7CiAgICBtYXJnaW46MDsKICAgIGZvbnQtZmFtaWx5OidPcmJpdHJvbicsIHNhbnMtc2VyaWY7CiAgICBmb250LXNpemU6Y2xhbXAoMnJlbSwgNC44dncsIDQuOHJlbSk7CiAgICBsaW5lLWhlaWdodDowLjk1OwogICAgZm9udC13ZWlnaHQ6NzAwOwogICAgY29sb3I6I2Y2ZmJmZjsKICAgIHRleHQtc2hhZG93OgogICAgICAwIDAgMTRweCByZ2JhKDU3LDIwOCwyNTUsMC4xOCksCiAgICAgIDAgMCAzMHB4IHJnYmEoMjU1LDYyLDE2NiwwLjA4KTsKICB9CiAgLnBpbmJhbGwtc3VidGl0bGV7CiAgICBtYXJnaW46MTRweCBhdXRvIDA7CiAgICBtYXgtd2lkdGg6ODIwcHg7CiAgICBmb250LXNpemU6MS4wMnJlbTsKICAgIGxpbmUtaGVpZ2h0OjEuODsKICAgIGNvbG9yOnZhcigtLW11dGVkKTsKICB9CiAgLnBpbmJhbGwtZnJhbWV7CiAgICBwb3NpdGlvbjpyZWxhdGl2ZTsKICAgIG1heC13aWR0aDoxMTgwcHg7CiAgICBtYXJnaW46MjZweCBhdXRvIDA7CiAgICBwYWRkaW5nOjIwcHg7CiAgICBib3JkZXItcmFkaXVzOjM0cHg7CiAgICBiYWNrZ3JvdW5kOgogICAgICBsaW5lYXItZ3JhZGllbnQoMTQ1ZGVnLCByZ2JhKDI1NSwyNTUsMjU1LDAuMDgpLCByZ2JhKDI1NSwyNTUsMjU1LDAuMDMpKSwKICAgICAgbGluZWFyLWdyYWRpZW50KDE0NWRlZywgcmdiYSg1NywyMDgsMjU1LDAuMTApLCByZ2JhKDI1NSw2MiwxNjYsMC4wOCkpOwogICAgYm9yZGVyOjFweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LDAuMTIpOwogICAgYm94LXNoYWRvdzoKICAgICAgdmFyKC0tc2hhZG93KSwKICAgICAgaW5zZXQgMCAwIDAgMXB4IHJnYmEoMjU1LDI1NSwyNTUsMC4wNSksCiAgICAgIDAgMCAyNHB4IHJnYmEoNTcsMjA4LDI1NSwwLjA4KTsKICAgIGJhY2tkcm9wLWZpbHRlcjpibHVyKDRweCk7CiAgfQogIC5waW5iYWxsLWZyYW1lOjpiZWZvcmV7CiAgICBjb250ZW50OiIiOwogICAgcG9zaXRpb246YWJzb2x1dGU7CiAgICBpbnNldDoxMHB4OwogICAgYm9yZGVyLXJhZGl1czoyNnB4OwogICAgYm9yZGVyOjFweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LDAuMDcpOwogICAgcG9pbnRlci1ldmVudHM6bm9uZTsKICB9CiAgLnBpbmJhbGwtbGlnaHRzewogICAgZGlzcGxheTpmbGV4OwogICAganVzdGlmeS1jb250ZW50OmNlbnRlcjsKICAgIGdhcDoxNHB4OwogICAgbWFyZ2luLWJvdHRvbToxNnB4OwogIH0KICAucGluYmFsbC1saWdodHsKICAgIHdpZHRoOjE0cHg7CiAgICBoZWlnaHQ6MTRweDsKICAgIGJvcmRlci1yYWRpdXM6NTAlOwogICAgYm94LXNoYWRvdzowIDAgMTZweCBjdXJyZW50Q29sb3I7CiAgfQogIC5saWdodDF7IGNvbG9yOnZhcigtLW5lb24xKTsgYmFja2dyb3VuZDp2YXIoLS1uZW9uMSk7IH0KICAubGlnaHQyeyBjb2xvcjp2YXIoLS1uZW9uMik7IGJhY2tncm91bmQ6dmFyKC0tbmVvbjIpOyB9CiAgLmxpZ2h0M3sgY29sb3I6dmFyKC0tbmVvbjMpOyBiYWNrZ3JvdW5kOnZhcigtLW5lb24zKTsgfQogIC5waW5iYWxsLXNjcmVlbnsKICAgIHBvc2l0aW9uOnJlbGF0aXZlOwogICAgb3ZlcmZsb3c6aGlkZGVuOwogICAgYm9yZGVyLXJhZGl1czoyNHB4OwogICAgYmFja2dyb3VuZDoKICAgICAgbGluZWFyLWdyYWRpZW50KDE4MGRlZywgcmdiYSgyNTUsMjU1LDI1NSwwLjA1KSwgcmdiYSgwLDAsMCwwLjE4KSksCiAgICAgICMwNTA4MTE7CiAgICBib3JkZXI6MXB4IHNvbGlkIHJnYmEoMjU1LDI1NSwyNTUsMC4xMCk7CiAgICBtaW4taGVpZ2h0Ojcydmg7CiAgICBib3gtc2hhZG93OgogICAgICBpbnNldCAwIDAgMzBweCByZ2JhKDU3LDIwOCwyNTUsMC4wNCksCiAgICAgIGluc2V0IDAgLTQwcHggODBweCByZ2JhKDAsMCwwLDAuMjUpOwogIH0KICAucGluYmFsbC1zY3JlZW4gaWZyYW1lewogICAgZGlzcGxheTpibG9jazsKICAgIHdpZHRoOjEwMCU7CiAgICBoZWlnaHQ6NzJ2aDsKICAgIG1pbi1oZWlnaHQ6NzIwcHg7CiAgICBib3JkZXI6MDsKICAgIGJhY2tncm91bmQ6IzAwMDsKICB9CiAgLnBpbmJhbGwtYmFkZ2V7CiAgICBtYXJnaW46MjBweCBhdXRvIDA7CiAgICB0ZXh0LWFsaWduOmNlbnRlcjsKICAgIGZvbnQtZmFtaWx5OidPcmJpdHJvbicsIHNhbnMtc2VyaWY7CiAgICBmb250LXNpemU6MTJweDsKICAgIGxldHRlci1zcGFjaW5nOjAuMjRlbTsKICAgIHRleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTsKICAgIGNvbG9yOnJnYmEoMjU1LDI1NSwyNTUsMC43KTsKICB9CiAgLnBpbmJhbGwtYmFkZ2Ugc3BhbnsKICAgIGRpc3BsYXk6aW5saW5lLWJsb2NrOwogICAgcGFkZGluZzoxMHB4IDE2cHg7CiAgICBib3JkZXItcmFkaXVzOjk5OXB4OwogICAgYmFja2dyb3VuZDpyZ2JhKDI1NSwyNTUsMjU1LDAuMDUpOwogICAgYm9yZGVyOjFweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LDAuMDgpOwogIH0KICBAbWVkaWEgKG1heC13aWR0aDogOTAwcHgpewogICAgLnBpbmJhbGwtcGFnZXsKICAgICAgcGFkZGluZzoyNHB4IDEwcHggNTBweDsKICAgIC5waW5iYWxsLWZyYW1lewogICAgICBwYWRkaW5nOjE0cHg7CiAgICAgIGJvcmRlci1yYWRpdXM6MjRweDsKICAgIC5waW5iYWxsLXNjcmVlbnsKICAgICAgYm9yZGVyLXJhZGl1czoxOHB4OwogICAgICBtaW4taGVpZ2h0OjYydmg7CiAgICAucGluYmFsbC1zY3JlZW4gaWZyYW1lewogICAgICBoZWlnaHQ6NjJ2aDsKICAgICAgbWluLWhlaWdodDo1NjBweDsKICAgIC5waW5iYWxsLXJhaWwtbGVmdCwKICAgIC5waW5iYWxsLXJhaWwtcmlnaHR7CiAgICAgIHdpZHRoOjcycHg7CiAgICAgIG9wYWNpdHk6MC40NTsKICB9Cjwvc3R5bGU+CjxkaXYgY2xhc3M9InBpbmJhbGwtcGFnZSI+CiAgPGRpdiBjbGFzcz0icGluYmFsbC1yYWlsLWxlZnQiPjwvZGl2PgogIDxkaXYgY2xhc3M9InBpbmJhbGwtcmFpbC1yaWdodCI+PC9kaXY+CiAgPGRpdiBjbGFzcz0icGluYmFsbC1zaGVsbCI+CiAgICA8aGVhZGVyIGNsYXNzPSJwaW5iYWxsLWhlYWRlciI+CiAgICAgIDxkaXYgY2xhc3M9InBpbmJhbGwta2lja2VyIj5BcmNhZGUgLyBQaW5iYWxsIC8gUGxheTwvZGl2PgogICAgICA8aDEgY2xhc3M9InBpbmJhbGwtdGl0bGUiPk1laW4gU3BpZWw8L2gxPgogICAgICA8cCBjbGFzcz0icGluYmFsbC1zdWJ0aXRsZSI+CiAgICAgICAgRWluIEhpbnRlcmdydW5kIHdpZSBlaW4gRmxpcHBlcmthc3RlbjogZHVua2VsLCBsZXVjaHRlbmQsIG1pdCBUaWVmZSwKICAgICAgICBHbGFzLCBOZW9uIHVuZCBlaW5lciBrbGFyZW4gQsO8aG5lIGbDvHIgZGVpbiBTcGllbC4KICAgICAgPC9wPgogICAgPC9oZWFkZXI+CiAgICA8c2VjdGlvbiBjbGFzcz0icGluYmFsbC1mcmFtZSI+CiAgICAgIDxkaXYgY2xhc3M9InBpbmJhbGwtbGlnaHRzIj4KICAgICAgICA8c3BhbiBjbGFzcz0icGluYmFsbC1saWdodCBsaWdodDEiPjwvc3Bhbj4KICAgICAgICA8c3BhbiBjbGFzcz0icGluYmFsbC1saWdodCBsaWdodDIiPjwvc3Bhbj4KICAgICAgICA8c3BhbiBjbGFzcz0icGluYmFsbC1saWdodCBsaWdodDMiPjwvc3Bhbj4KICAgICAgICA8c3BhbiBjbGFzcz0icGluYmFsbC1saWdodCBsaWdodDEiPjwvc3Bhbj4KICAgICAgICA8c3BhbiBjbGFzcz0icGluYmFsbC1saWdodCBsaWdodDIiPjwvc3Bhbj4KICAgICAgPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9InBpbmJhbGwtc2NyZWVuIj4KICAgICAgICA8aWZyYW1lCiAgICAgICAgICBzcmM9Imh0dHBzOi8vYWxsZXN3YXNiZXdlZ3QuY2gvaW1hZ2VzL3N0YXJ0Lmh0bWwiCiAgICAgICAgICB0aXRsZT0iTWVpbiBTcGllbCIKICAgICAgICAgIGxvYWRpbmc9ImxhenkiCiAgICAgICAgICBhbGxvd2Z1bGxzY3JlZW4+CiAgICAgICAgPC9pZnJhbWU+CiAgICAgIDwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJwaW5iYWxsLWJhZGdlIj4KICAgICAgICA8c3Bhbj5QcmVzcyBTdGFydDwvc3Bhbj4KICAgIDwvc2VjdGlvbj4KPC9kaXY+CgUHCAQIBggFAQgHCAcIBggOCA4ICwgGSAEGCAQJCAoIBAgGDAMIBwQKCwcRQRJHAgZBAw0JEQVHAEEABQcFBwgEBQcFBwUHkgSpBIcBtwiWDo0DtQW4BaUBtQG8ApEEigK2B7MCqwG0Aa4CrAWLApsDuQKOAYIBhgGHAZcBDawBtQWTBZ8DgwEPBxEBAwAAAQkAAAECAAcBAAAAAQhCAQEAQQAAAuYBQQEEHEENEQGtA4YEgwEirwQRtAODApUDsQKjAZYBrQKiAYsBtAGSAp4CBp8BhQGWAhqOASQcjgEkogG1AYwEBi0pPhYVErQBoAS6Azg7sgGtEIUDmw2LCZAKC5gBkAWGAbsJmgW2DqQFgwihBLUIhAu5AaYOpASyDyCtBJYBvg8JMIQCowKeCaUCkAmVAocFjwWnCEEBtwOTA6IJQQcuPSCZARIYggIxEjESngGVBBYOJxUnFSG6AaEHMgcfigGOBJUBoA94ADwkHKMIlwg5OpsPLYUBIoUBhgUdvgFBCJECF5IYQQYFlAEAfQF9AX0AdwRvcGVudwZjbG9zZWR5dwB3CHN0YW5kYXJkdwB1AHh3B3B1Ymxpc2hAAHckYWNiNmY1NjQtODk3OS00ZWM5LWJjMGUtYzQ0MjAxMjgzYjQ2dwljb3JlL2h0bWx3y8UBPCFET0NUWVBFIGh0bWw+CjxodG1sIGxhbmc9ImRlIj4KPGhlYWQ+CiAgPG1ldGEgY2hhcnNldD0iVVRGLTgiIC8+CiAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xLjAiIC8+CiAgPHRpdGxlPkJsb2Nrc3BpZWw8L3RpdGxlPgogIDxzdHlsZT4KICAgIDpyb290IHsKICAgICAgLS1iZzogI2Y2ZjFlNzsKICAgICAgLS1wYW5lbDogI2ZmZmFmMjsKICAgICAgLS1ncmlkOiAjY2NiZGEzOwogICAgICAtLWNlbGw6ICNmN2YwZTE7CiAgICAgIC0tYmxvY2tBOiAjN2E5ZTdlOwogICAgICAtLWJsb2NrQjogI2M5OGY1ZDsKICAgICAgLS1ibG9ja0M6ICM3ZDhmYjA7CiAgICAgIC0tdGV4dDogIzNkMzUyOTsKICAgICAgLS1hY2NlbnQ6ICM2YjU4NDA7CiAgICAgIC0tZGFuZ2VyOiAjYTY0ZjRmOwogICAgICAtLXNoYWRvdzogMCAxMHB4IDI4cHggcmdiYSgwLDAsMCwwLjEwKTsKICAgICAgLS1yYWRpdXM6IDE4cHg7CiAgICAgIC0tYm9hcmQtc2l6ZTogbWluKDc4dncsIDU2MHB4KTsKICAgICAgLS1jZWxsLWdhcDogMHB4OwogICAgfQoKICAgICogeyBib3gtc2l6aW5nOiBib3JkZXItYm94OyB9CgogICAgYm9keSB7CiAgICAgIG1hcmdpbjogMDsKICAgICAgZm9udC1mYW1pbHk6IEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7CiAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxODBkZWcsICNmOGYzZWEgMCUsICNlZmU1ZDMgMTAwJSk7CiAgICAgIGNvbG9yOiB2YXIoLS10ZXh0KTsKICAgICAgbWluLWhlaWdodDogMTAwdmg7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICBwYWRkaW5nOiAyMHB4OwogICAgfQoKICAgIC5nYW1lLXdyYXAgewogICAgICB3aWR0aDogbWluKDExMjBweCwgMTAwJSk7CiAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LDI1NSwyNTUsMC42Nik7CiAgICAgIGJhY2tkcm9wLWZpbHRlcjogYmx1cig1cHgpOwogICAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDEyMiwgOTYsIDU4LCAwLjE0KTsKICAgICAgYm9yZGVyLXJhZGl1czogMjRweDsKICAgICAgYm94LXNoYWRvdzogdmFyKC0tc2hhZG93KTsKICAgICAgcGFkZGluZzogMThweDsKICAgIH0KCiAgICAuZ2FtZS1sYXlvdXQgewogICAgICBkaXNwbGF5OiBncmlkOwogICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDEuMmZyIDAuOWZyOwogICAgICBnYXA6IDE4cHg7CiAgICAgIGFsaWduLWl0ZW1zOiBzdGFydDsKICAgIH0KCiAgICAuYm9hcmQtcGFuZWwsCiAgICAuc2lkZS1wYW5lbCB7CiAgICAgIGJhY2tncm91bmQ6IHZhcigtLXBhbmVsKTsKICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzKTsKICAgICAgYm94LXNoYWRvdzogdmFyKC0tc2hhZG93KTsKICAgICAgcGFkZGluZzogMThweDsKICAgICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgxMDcsIDg4LCA2NCwgMC4wOCk7CiAgICB9CgogICAgLmhlYWRlci1yb3cgewogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICAgIGdhcDogMTJweDsKICAgICAgbWFyZ2luLWJvdHRvbTogMTRweDsKICAgICAgZmxleC13cmFwOiB3cmFwOwogICAgfQoKICAgIC50aXRsZSB7CiAgICAgIGZvbnQtc2l6ZTogMS4zNXJlbTsKICAgICAgZm9udC13ZWlnaHQ6IDcwMDsKICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuMDJlbTsKICAgIH0KCiAgICAuc2NvcmUtYm94ZXMgewogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBnYXA6IDEwcHg7CiAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgIH0KCiAgICAuc2NvcmUtY2FyZCB7CiAgICAgIGJhY2tncm91bmQ6ICNmZmY7CiAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMTA3LCA4OCwgNjQsIDAuMSk7CiAgICAgIGJvcmRlci1yYWRpdXM6IDE0cHg7CiAgICAgIHBhZGRpbmc6IDEwcHggMTRweDsKICAgICAgbWluLXdpZHRoOiAxMTBweDsKICAgIH0KCiAgICAuc2NvcmUtbGFiZWwgewogICAgICBmb250LXNpemU6IDAuNzhyZW07CiAgICAgIG9wYWNpdHk6IDAuNzU7CiAgICAgIG1hcmdpbi1ib3R0b206IDRweDsKICAgIH0KCiAgICAuc2NvcmUtdmFsdWUgewogICAgICBmb250LXNpemU6IDEuMjVyZW07CiAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7CiAgICB9CgogICAgLmJvYXJkIHsKICAgICAgd2lkdGg6IHZhcigtLWJvYXJkLXNpemUpOwogICAgICBtYXgtd2lkdGg6IDEwMCU7CiAgICAgIGFzcGVjdC1yYXRpbzogMSAvIDE7CiAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDEwLCAxZnIpOwogICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IHJlcGVhdCgxMCwgMWZyKTsKICAgICAgZ2FwOiB2YXIoLS1jZWxsLWdhcCk7CiAgICAgIGJhY2tncm91bmQ6IHZhcigtLWdyaWQpOwogICAgICBwYWRkaW5nOiAwOwogICAgICBib3JkZXItcmFkaXVzOiAxOHB4OwogICAgICBtYXJnaW46IDAgYXV0bzsKICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgdG91Y2gtYWN0aW9uOiBub25lOwogICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgfQoKICAgIC5jZWxsIHsKICAgICAgYmFja2dyb3VuZDogdmFyKC0tY2VsbCk7CiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMDhzIGVhc2UsIGJhY2tncm91bmQgMC4xMnMgZWFzZSwgZmlsdGVyIDAuMTZzIGVhc2U7CiAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoOTYsIDc5LCA1MywgMC4wNyk7CiAgICB9CgogICAgLmNlbGwuZmlsbGVkLWEgeyBiYWNrZ3JvdW5kOiB2YXIoLS1ibG9ja0EpOyB9CiAgICAuY2VsbC5maWxsZWQtYiB7IGJhY2tncm91bmQ6IHZhcigtLWJsb2NrQik7IH0KICAgIC5jZWxsLmZpbGxlZC1jIHsgYmFja2dyb3VuZDogdmFyKC0tYmxvY2tDKTsgfQoKICAgIC5jZWxsLnByZXZpZXctdmFsaWQgewogICAgICBvdXRsaW5lOiAycHggc29saWQgcmdiYSg2MywgMTI5LCA3NiwgMC44KTsKICAgICAgb3V0bGluZS1vZmZzZXQ6IC0ycHg7CiAgICAgIHotaW5kZXg6IDE7CiAgICB9CgogICAgLmNlbGwucHJldmlldy1pbnZhbGlkIHsKICAgICAgb3V0bGluZTogMnB4IHNvbGlkIHJnYmEoMTY2LCA3OSwgNzksIDAuOCk7CiAgICAgIG91dGxpbmUtb2Zmc2V0OiAtMnB4OwogICAgICB6LWluZGV4OiAxOwogICAgfQoKICAgIC5jZWxsLmNsZWFyaW5nIHsKICAgICAgYW5pbWF0aW9uOiBjbGVhckZsYXNoIDAuNDhzIGVhc2UtaW4tb3V0IDE7CiAgICAgIHotaW5kZXg6IDI7CiAgICB9CgogICAgQGtleWZyYW1lcyBjbGVhckZsYXNoIHsKICAgICAgMCUgeyBmaWx0ZXI6IGJyaWdodG5lc3MoMSk7IHRyYW5zZm9ybTogc2NhbGUoMSk7IH0KICAgICAgMzAlIHsgZmlsdGVyOiBicmlnaHRuZXNzKDEuOSk7IHRyYW5zZm9ybTogc2NhbGUoMS4wOCk7IH0KICAgICAgNjUlIHsgZmlsdGVyOiBicmlnaHRuZXNzKDAuOTIpOyB0cmFuc2Zvcm06IHNjYWxlKDAuOTQpOyB9CiAgICAgIDEwMCUgeyBmaWx0ZXI6IGJyaWdodG5lc3MoMSk7IHRyYW5zZm9ybTogc2NhbGUoMSk7IH0KICAgIH0KCiAgICAudHJheS10aXRsZSB7CiAgICAgIGZvbnQtc2l6ZTogMXJlbTsKICAgICAgZm9udC13ZWlnaHQ6IDcwMDsKICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDsKICAgIH0KCiAgICAudHJheSB7CiAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyOwogICAgICBnYXA6IDE0cHg7CiAgICAgIG1hcmdpbi1ib3R0b206IDE4cHg7CiAgICB9CgogICAgLnBpZWNlLXNsb3QgewogICAgICBib3JkZXI6IDJweCBkYXNoZWQgcmdiYSgxMDcsIDg4LCA2NCwgMC4yKTsKICAgICAgYm9yZGVyLXJhZGl1czogMTZweDsKICAgICAgYmFja2dyb3VuZDogI2ZmZjsKICAgICAgbWluLWhlaWdodDogOTJweDsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgcGFkZGluZzogMTBweDsKICAgICAgb3ZlcmZsb3c6IGF1dG87CiAgICB9CgogICAgLnBpZWNlLXNsb3QuZW1wdHkgewogICAgICBvcGFjaXR5OiAwLjQ1OwogICAgfQoKICAgIC5waWVjZSB7CiAgICAgIGRpc3BsYXk6IGlubGluZS1ncmlkOwogICAgICBnYXA6IDA7CiAgICAgIGN1cnNvcjogZ3JhYjsKICAgICAgdG91Y2gtYWN0aW9uOiBub25lOwogICAgICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXIgY2VudGVyOwogICAgfQoKICAgIC5waWVjZS5kcmFnZ2luZyB7CiAgICAgIG9wYWNpdHk6IDAuMjU7CiAgICB9CgogICAgLnBpZWNlLWNlbGwgewogICAgICB3aWR0aDogMzJweDsKICAgICAgaGVpZ2h0OiAzMnB4OwogICAgICBib3gtc2hhZG93OiBpbnNldCAwIC0ycHggMCByZ2JhKDAsMCwwLDAuMTIpOwogICAgfQoKICAgIC5waWVjZS5jb2xvci1hIC5waWVjZS1jZWxsIHsgYmFja2dyb3VuZDogdmFyKC0tYmxvY2tBKTsgfQogICAgLnBpZWNlLmNvbG9yLWIgLnBpZWNlLWNlbGwgeyBiYWNrZ3JvdW5kOiB2YXIoLS1ibG9ja0IpOyB9CiAgICAucGllY2UuY29sb3ItYyAucGllY2UtY2VsbCB7IGJhY2tncm91bmQ6IHZhcigtLWJsb2NrQyk7IH0KCiAgICAuY29udHJvbHMgewogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBnYXA6IDEwcHg7CiAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgICAgbWFyZ2luLXRvcDogMThweDsKICAgIH0KCiAgICBidXR0b24gewogICAgICBib3JkZXI6IG5vbmU7CiAgICAgIGJvcmRlci1yYWRpdXM6IDEycHg7CiAgICAgIHBhZGRpbmc6IDEycHggMTZweDsKICAgICAgZm9udC1zaXplOiAwLjk4cmVtOwogICAgICBmb250LXdlaWdodDogNzAwOwogICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgIGJhY2tncm91bmQ6IHZhcigtLWFjY2VudCk7CiAgICAgIGNvbG9yOiAjZmZmOwogICAgICBib3gtc2hhZG93OiB2YXIoLS1zaGFkb3cpOwogICAgfQoKICAgIGJ1dHRvbi5zZWNvbmRhcnkgewogICAgICBiYWNrZ3JvdW5kOiAjOGY3YTVkOwogICAgfQoKICAgIGJ1dHRvbi5kYW5nZXIgewogICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kYW5nZXIpOwogICAgfQoKICAgIC5ub3RlIHsKICAgICAgZm9udC1zaXplOiAwLjk1cmVtOwogICAgICBsaW5lLWhlaWdodDogMS40NTsKICAgICAgb3BhY2l0eTogMC44NjsKICAgICAgbWFyZ2luOiAwIDAgMTRweDsKICAgIH0KCiAgICAucnVsZXMgewogICAgICBiYWNrZ3JvdW5kOiAjZmZmOwogICAgICBib3JkZXItcmFkaXVzOiAxNHB4OwogICAgICBwYWRkaW5nOiAxNHB4OwogICAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDEwNywgODgsIDY0LCAwLjEpOwogICAgICBsaW5lLWhlaWdodDogMS41OwogICAgICBmb250LXNpemU6IDAuOTVyZW07CiAgICB9CgogICAgLnN0YXR1cyB7CiAgICAgIG1hcmdpbi10b3A6IDE0cHg7CiAgICAgIG1pbi1oZWlnaHQ6IDI0cHg7CiAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7CiAgICB9CgogICAgLm92ZXJsYXkgewogICAgICBwb3NpdGlvbjogZml4ZWQ7CiAgICAgIGluc2V0OiAwOwogICAgICBiYWNrZ3JvdW5kOiByZ2JhKDM0LCAyOCwgMTksIDAuNDYpOwogICAgICBkaXNwbGF5OiBub25lOwogICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgcGFkZGluZzogMjBweDsKICAgICAgei1pbmRleDogOTk5OwogICAgfQoKICAgIC5vdmVybGF5LnNob3cgeyBkaXNwbGF5OiBmbGV4OyB9CgogICAgLmRpYWxvZyB7CiAgICAgIHdpZHRoOiBtaW4oNDIwcHgsIDEwMCUpOwogICAgICBiYWNrZ3JvdW5kOiAjZmZmYWYyOwogICAgICBib3JkZXItcmFkaXVzOiAyMHB4OwogICAgICBib3gtc2hhZG93OiB2YXIoLS1zaGFkb3cpOwogICAgICBwYWRkaW5nOiAyNHB4OwogICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICB9CgogICAgLmRpYWxvZyBoMiB7CiAgICAgIG1hcmdpbi10b3A6IDA7CiAgICAgIG1hcmdpbi1ib3R0b206IDhweDsKICAgICAgZm9udC1zaXplOiAxLjZyZW07CiAgICB9CgogICAgLmRpYWxvZyBwIHsKICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgbGluZS1oZWlnaHQ6IDEuNTsKICAgIH0KCiAgICAuZmxvYXRpbmctcGllY2UgewogICAgICBwb3NpdGlvbjogZml4ZWQ7CiAgICAgIGxlZnQ6IDA7CiAgICAgIHRvcDogMDsKICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgIHotaW5kZXg6IDEwMDA7CiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC05OTk5cHgsIC05OTk5cHgpOwogICAgICBvcGFjaXR5OiAwLjk1OwogICAgICBmaWx0ZXI6IGRyb3Atc2hhZG93KDAgMTBweCAxOHB4IHJnYmEoMCwwLDAsMC4yKSk7CiAgICB9CgogICAgQG1lZGlhIChtYXgtd2lkdGg6IDg2MHB4KSB7CiAgICAgIC5nYW1lLWxheW91dCB7CiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7CiAgICAgIH0KCiAgICAgIC5ib2FyZCB7CiAgICAgICAgd2lkdGg6IG1pbig5MnZ3LCA1NjBweCk7CiAgICAgIH0KICAgIH0KICA8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgogIDxkaXYgY2xhc3M9ImdhbWUtd3JhcCI+CiAgICA8ZGl2IGNsYXNzPSJnYW1lLWxheW91dCI+CiAgICAgIDxzZWN0aW9uIGNsYXNzPSJib2FyZC1wYW5lbCI+CiAgICAgICAgPGRpdiBjbGFzcz0iaGVhZGVyLXJvdyI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJ0aXRsZSI+QmxvY2tzcGllbCDigJMgUmVpaGVuIGzDtnNjaGVuPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJzY29yZS1ib3hlcyI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNjb3JlLWNhcmQiPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNjb3JlLWxhYmVsIj5QdW5rdGU8L2Rpdj4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzY29yZS12YWx1ZSIgaWQ9InNjb3JlIj4wPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzY29yZS1jYXJkIj4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzY29yZS1sYWJlbCI+QmVzdHdlcnQ8L2Rpdj4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzY29yZS12YWx1ZSIgaWQ9ImJlc3RTY29yZSI+MDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgoKICAgICAgICA8ZGl2IGlkPSJib2FyZCIgY2xhc3M9ImJvYXJkIiBhcmlhLWxhYmVsPSJTcGllbGZlbGQiPjwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InN0YXR1cyIgaWQ9InN0YXR1cyI+PC9kaXY+CiAgICAgIDwvc2VjdGlvbj4KCiAgICAgIDxhc2lkZSBjbGFzcz0ic2lkZS1wYW5lbCI+CiAgICAgICAgPHAgY2xhc3M9Im5vdGUiPgogICAgICAgICAgWmllaGUgZWluZW4gZGVyIGRyZWkgQmzDtmNrZSBhdWYgZGFzIEJyZXR0LiBHYW56ZSBSZWloZW4gb2RlciBTcGFsdGVuIGJsaW5rZW4ga3VyeiBhdWYgdW5kIHdlcmRlbiBkYW5uIGdlbMO2c2NodC4KICAgICAgICA8L3A+CgogICAgICAgIDxkaXYgY2xhc3M9InRyYXktdGl0bGUiPk5ldWUgQmzDtmNrZTwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InRyYXkiIGlkPSJ0cmF5Ij48L2Rpdj4KCiAgICAgICAgPGRpdiBjbGFzcz0iY29udHJvbHMiPgogICAgICAgICAgPGJ1dHRvbiBpZD0icmVzdGFydEJ0biI+TmV1c3RhcnQ8L2J1dHRvbj4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPGRpdiBjbGFzcz0icnVsZXMiIHN0eWxlPSJtYXJnaW4tdG9wOjE4cHg7Ij4KICAgICAgICAgIDxzdHJvbmc+Rm9ybWVuOjwvc3Ryb25nPjxicj4KICAgICAgICAgIDJlciwgM2VyLCA0ZXIgdW5kIDZlciBGb3JtZW4gc293aWUgTWlzY2hmb3JtZW4gbWl0IFp1c2F0emJsb2NrIG9iZW4sIHVudGVuIG9kZXIgaW4gZGVyIE1pdHRlLjxicj48YnI+CiAgICAgICAgICA8c3Ryb25nPkdyZW56ZTo8L3N0cm9uZz48YnI+CiAgICAgICAgICBKZWRlIEZvcm0gaGF0IG1heGltYWwgOCBGZWxkZXIuPGJyPjxicj4KICAgICAgICAgIDxzdHJvbmc+WnVmYWxsOjwvc3Ryb25nPjxicj4KICAgICAgICAgIEVzIGJsZWliZW4gaW1tZXIgMyBWb3JzY2hsw6RnZSBzaWNodGJhci48YnI+PGJyPgogICAgICAgICAgPHN0cm9uZz5TcGllbGVuZGU6PC9zdHJvbmc+PGJyPgogICAgICAgICAgRGFzIFNwaWVsIGVuZGV0IGVyc3QsIHdlbm4ga2VpbmVyIGRlciBkcmVpIEJsw7Zja2UgbWVociBlaW5nZXNldHp0IHdlcmRlbiBrYW5uLiBEZXIgQmVzdHdlcnQgYmxlaWJ0IHN0ZWhlbiwgYmlzIGR1IGlobiDDvGJlcnRyaWZmc3QuCiAgICAgICAgPC9kaXY+CiAgICAgIDwvYXNpZGU+CiAgICA8L2Rpdj4KICA8L2Rpdj4KCiAgPGRpdiBjbGFzcz0ib3ZlcmxheSIgaWQ9Im92ZXJsYXkiPgogICAgPGRpdiBjbGFzcz0iZGlhbG9nIj4KICAgICAgPGgyPlNwaWVsIGJlZW5kZXQ8L2gyPgogICAgICA8cCBpZD0iZmluYWxUZXh0Ij5LZWluZSBaw7xnZSBtZWhyIG3DtmdsaWNoLjwvcD4KICAgICAgPGRpdiBjbGFzcz0iY29udHJvbHMiIHN0eWxlPSJqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyOyI+CiAgICAgICAgPGJ1dHRvbiBpZD0icmVzdGFydEJ0bkRpYWxvZyI+TmV1c3RhcnQ8L2J1dHRvbj4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KICA8L2Rpdj4KCiAgPGRpdiBpZD0iZmxvYXRpbmdQaWVjZSIgY2xhc3M9ImZsb2F0aW5nLXBpZWNlIj48L2Rpdj4KCiAgPHNjcmlwdD4KICAgIChmdW5jdGlvbiAoKSB7CiAgICAgIGNvbnN0IFNJWkUgPSAxMDsKICAgICAgY29uc3QgU1RPUkFHRV9LRVkgPSAnYmVuX2Jsb2NrX3B1enpsZV9iZXN0JzsKICAgICAgY29uc3QgQ09MT1JTID0gWydhJywgJ2InLCAnYyddOwoKICAgICAgY29uc3QgU0hBUEVTID0gWwogICAgICAgIHsgaWQ6ICdoMicsIGNlbGxzOiBbWzAsMF0sWzEsMF1dLCB3aWR0aDogMiwgaGVpZ2h0OiAxIH0sCiAgICAgICAgeyBpZDogJ3YyJywgY2VsbHM6IFtbMCwwXSxbMCwxXV0sIHdpZHRoOiAxLCBoZWlnaHQ6IDIgfSwKICAgICAgICB7IGlkOiAnaDMnLCBjZWxsczogW1swLDBdLFsxLDBdLFsyLDBdXSwgd2lkdGg6IDMsIGhlaWdodDogMSB9LAogICAgICAgIHsgaWQ6ICd2MycsIGNlbGxzOiBbWzAsMF0sWzAsMV0sWzAsMl1dLCB3aWR0aDogMSwgaGVpZ2h0OiAzIH0sCiAgICAgICAgeyBpZDogJ2g0JywgY2VsbHM6IFtbMCwwXSxbMSwwXSxbMiwwXSxbMywwXV0sIHdpZHRoOiA0LCBoZWlnaHQ6IDEgfSwKICAgICAgICB7IGlkOiAndjQnLCBjZWxsczogW1swLDBdLFswLDFdLFswLDJdLFswLDNdXSwgd2lkdGg6IDEsIGhlaWdodDogNCB9LAogICAgICAgIHsgaWQ6ICdoNicsIGNlbGxzOiBbWzAsMF0sWzEsMF0sWzIsMF0sWzMsMF0sWzQsMF0sWzUsMF1dLCB3aWR0aDogNiwgaGVpZ2h0OiAxIH0sCiAgICAgICAgeyBpZDogJ3Y2JywgY2VsbHM6IFtbMCwwXSxbMCwxXSxbMCwyXSxbMCwzXSxbMCw0XSxbMCw1XV0sIHdpZHRoOiAxLCBoZWlnaHQ6IDYgfSwKICAgICAgICB7IGlkOiAnaDQtdG9wJywgY2VsbHM6IFtbMCwxXSxbMSwxXSxbMiwxXSxbMywxXSxbMSwwXV0sIHdpZHRoOiA0LCBoZWlnaHQ6IDIgfSwKICAgICAgICB7IGlkOiAnaDQtbWlkJywgY2VsbHM6IFtbMCwxXSxbMSwxXSxbMiwxXSxbMywxXSxbMSwwXSxbMSwyXV0sIHdpZHRoOiA0LCBoZWlnaHQ6IDMgfSwKICAgICAgICB7IGlkOiAnaDQtYm90dG9tJywgY2VsbHM6IFtbMCwwXSxbMSwwXSxbMiwwXSxbMywwXSxbMSwxXV0sIHdpZHRoOiA0LCBoZWlnaHQ6IDIgfSwKICAgICAgICB7IGlkOiAndjQtbGVmdCcsIGNlbGxzOiBbWzEsMF0sWzEsMV0sWzEsMl0sWzEsM10sWzAsMV1dLCB3aWR0aDogMiwgaGVpZ2h0OiA0IH0sCiAgICAgICAgeyBpZDogJ3Y0LW1pZCcsIGNlbGxzOiBbWzEsMF0sWzEsMV0sWzEsMl0sWzEsM10sWzAsMV0sWzIsMV1dLCB3aWR0aDogMywgaGVpZ2h0OiA0IH0sCiAgICAgICAgeyBpZDogJ3Y0LXJpZ2h0JywgY2VsbHM6IFtbMCwwXSxbMCwxXSxbMCwyXSxbMCwzXSxbMSwxXV0sIHdpZHRoOiAyLCBoZWlnaHQ6IDQgfSwKICAgICAgICB7IGlkOiAnaDYtdG9wJywgY2VsbHM6IFtbMCwxXSxbMSwxXSxbMiwxXSxbMywxXSxbNCwxXSxbNSwxXSxbMiwwXV0sIHdpZHRoOiA2LCBoZWlnaHQ6IDIgfSwKICAgICAgICB7IGlkOiAnaDYtbWlkJywgY2VsbHM6IFtbMCwxXSxbMSwxXSxbMiwxXSxbMywxXSxbNCwxXSxbNSwxXSxbMiwwXSxbMiwyXV0sIHdpZHRoOiA2LCBoZWlnaHQ6IDMgfSwKICAgICAgICB7IGlkOiAnaDYtYm90dG9tJywgY2VsbHM6IFtbMCwwXSxbMSwwXSxbMiwwXSxbMywwXSxbNCwwXSxbNSwwXSxbMiwxXV0sIHdpZHRoOiA2LCBoZWlnaHQ6IDIgfSwKICAgICAgICB7IGlkOiAndjYtbGVmdCcsIGNlbGxzOiBbWzEsMF0sWzEsMV0sWzEsMl0sWzEsM10sWzEsNF0sWzEsNV0sWzAsMl1dLCB3aWR0aDogMiwgaGVpZ2h0OiA2IH0sCiAgICAgICAgeyBpZDogJ3Y2LW1pZCcsIGNlbGxzOiBbWzEsMF0sWzEsMV0sWzEsMl0sWzEsM10sWzEsNF0sWzEsNV0sWzAsMl0sWzIsMl1dLCB3aWR0aDogMywgaGVpZ2h0OiA2IH0sCiAgICAgICAgeyBpZDogJ3Y2LXJpZ2h0JywgY2VsbHM6IFtbMCwwXSxbMCwxXSxbMCwyXSxbMCwzXSxbMCw0XSxbMCw1XSxbMSwyXV0sIHdpZHRoOiAyLCBoZWlnaHQ6IDYgfQogICAgICBdLmZpbHRlcihzaGFwZSA9PiBzaGFwZS5jZWxscy5sZW5ndGggPD0gOCk7CgogICAgICBjb25zdCBib2FyZEVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JvYXJkJyk7CiAgICAgIGNvbnN0IHRyYXlFbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0cmF5Jyk7CiAgICAgIGNvbnN0IHNjb3JlRWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc2NvcmUnKTsKICAgICAgY29uc3QgYmVzdFNjb3JlRWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmVzdFNjb3JlJyk7CiAgICAgIGNvbnN0IHN0YXR1c0VsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3N0YXR1cycpOwogICAgICBjb25zdCBvdmVybGF5RWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnb3ZlcmxheScpOwogICAgICBjb25zdCBmaW5hbFRleHRFbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdmaW5hbFRleHQnKTsKICAgICAgY29uc3QgZmxvYXRpbmdQaWVjZUVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2Zsb2F0aW5nUGllY2UnKTsKICAgICAgY29uc3QgcmVzdGFydEJ0biA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZXN0YXJ0QnRuJyk7CiAgICAgIGNvbnN0IHJlc3RhcnRCdG5EaWFsb2cgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVzdGFydEJ0bkRpYWxvZycpOwogICAgICAKICAgICAgbGV0IGJvYXJkID0gW107CiAgICAgIGxldCBwaWVjZXMgPSBbXTsKICAgICAgbGV0IHNjb3JlID0gMDsKICAgICAgbGV0IGJlc3RTY29yZSA9IE51bWJlcihsb2NhbFN0b3JhZ2UuZ2V0SXRlbShTVE9SQUdFX0tFWSkgfHwgMCk7CiAgICAgIGxldCBkcmFnU3RhdGUgPSBudWxsOwogICAgICBsZXQgcHJldmlld0NlbGxzID0gW107CiAgICAgIGxldCBnYW1lT3ZlciA9IGZhbHNlOwogICAgICBsZXQgaW5wdXRMb2NrZWQgPSBmYWxzZTsKCiAgICAgIGJlc3RTY29yZUVsLnRleHRDb250ZW50ID0gYmVzdFNjb3JlOwoKICAgICAgZnVuY3Rpb24gY3JlYXRlRW1wdHlCb2FyZCgpIHsKICAgICAgICByZXR1cm4gQXJyYXkuZnJvbSh7IGxlbmd0aDogU0laRSB9LCAoKSA9PiBBcnJheS5mcm9tKHsgbGVuZ3RoOiBTSVpFIH0sICgpID0+IG51bGwpKTsKICAgICAgfQoKICAgICAgZnVuY3Rpb24gcmFuZEl0ZW0oYXJyKSB7CiAgICAgICAgcmV0dXJuIGFycltNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiBhcnIubGVuZ3RoKV07CiAgICAgIH0KCiAgICAgIGZ1bmN0aW9uIGNyZWF0ZVJhbmRvbVBpZWNlKCkgewogICAgICAgIGNvbnN0IHNoYXBlID0gcmFuZEl0ZW0oU0hBUEVTKTsKICAgICAgICBjb25zdCBjb2xvciA9IHJhbmRJdGVtKENPTE9SUyk7CiAgICAgICAgcmV0dXJuIHsKICAgICAgICAgIHVpZDogTWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc2xpY2UoMiwgMTApLAogICAgICAgICAgc2hhcGUsCiAgICAgICAgICBjb2xvcgogICAgICAgIH07CiAgICAgIH0KCiAgICAgIGZ1bmN0aW9uIG5ld1BpZWNlU2V0KCkgewogICAgICAgIHJldHVybiBbY3JlYXRlUmFuZG9tUGllY2UoKSwgY3JlYXRlUmFuZG9tUGllY2UoKSwgY3JlYXRlUmFuZG9tUGllY2UoKV07CiAgICAgIH0KCiAgICAgIGZ1bmN0aW9uIHJlbmRlckJvYXJkKCkgewogICAgICAgIGJvYXJkRWwuaW5uZXJIVE1MID0gJyc7CiAgICAgICAgZm9yIChsZXQgeSA9IDA7IHkgPCBTSVpFOyB5KyspIHsKICAgICAgICAgIGZvciAobGV0IHggPSAwOyB4IDwgU0laRTsgeCsrKSB7CiAgICAgICAgICAgIGNvbnN0IGNlbGwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKICAgICAgICAgICAgY2VsbC5jbGFzc05hbWUgPSAnY2VsbCc7CiAgICAgICAgICAgIGNlbGwuZGF0YXNldC54ID0geDsKICAgICAgICAgICAgY2VsbC5kYXRhc2V0LnkgPSB5OwogICAgICAgICAgICBpZiAoYm9hcmRbeV1beF0pIGNlbGwuY2xhc3NMaXN0LmFkZChgZmlsbGVkLSR7Ym9hcmRbeV1beF19YCk7CiAgICAgICAgICAgIGJvYXJkRWwuYXBwZW5kQ2hpbGQoY2VsbCk7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9CgogICAgICBmdW5jdGlvbiBjcmVhdGVQaWVjZUVsZW1lbnQocGllY2UpIHsKICAgICAgICBjb25zdCBlbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwogICAgICAgIGVsLmNsYXNzTmFtZSA9IGBwaWVjZSBjb2xvci0ke3BpZWNlLmNvbG9yfWA7CiAgICAgICAgZWwuZGF0YXNldC51aWQgPSBwaWVjZS51aWQ7CiAgICAgICAgZWwuZGF0YXNldC5iYXNlV2lkdGggPSBTdHJpbmcocGllY2Uuc2hhcGUud2lkdGgpOwogICAgICAgIGVsLmRhdGFzZXQuYmFzZUhlaWdodCA9IFN0cmluZyhwaWVjZS5zaGFwZS5oZWlnaHQpOwogICAgICAgIGVsLnN0eWxlLmdyaWRUZW1wbGF0ZUNvbHVtbnMgPSBgcmVwZWF0KCR7cGllY2Uuc2hhcGUud2lkdGh9LCAzMnB4KWA7CiAgICAgICAgZWwuc3R5bGUuZ3JpZFRlbXBsYXRlUm93cyA9IGByZXBlYXQoJHtwaWVjZS5zaGFwZS5oZWlnaHR9LCAzMnB4KWA7CgogICAgICAgIGNvbnN0IG9jY3VwaWVkID0gbmV3IFNldChwaWVjZS5zaGFwZS5jZWxscy5tYXAoKFt4LCB5XSkgPT4gYCR7eH0sJHt5fWApKTsKICAgICAgICBmb3IgKGxldCB5ID0gMDsgeSA8IHBpZWNlLnNoYXBlLmhlaWdodDsgeSsrKSB7CiAgICAgICAgICBmb3IgKGxldCB4ID0gMDsgeCA8IHBpZWNlLnNoYXBlLndpZHRoOyB4KyspIHsKICAgICAgICAgICAgY29uc3QgYmxvY2sgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKICAgICAgICAgICAgaWYgKG9jY3VwaWVkLmhhcyhgJHt4fSwke3l9YCkpIHsKICAgICAgICAgICAgICBibG9jay5jbGFzc05hbWUgPSAncGllY2UtY2VsbCc7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgYmxvY2suc3R5bGUud2lkdGggPSAnMzJweCc7CiAgICAgICAgICAgICAgYmxvY2suc3R5bGUuaGVpZ2h0ID0gJzMycHgnOwogICAgICAgICAgICAgIGJsb2NrLnN0eWxlLnZpc2liaWxpdHkgPSAnaGlkZGVuJzsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbC5hcHBlbmRDaGlsZChibG9jayk7CiAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBlbC5hZGRFdmVudExpc3RlbmVyKCdwb2ludGVyZG93bicsIHN0YXJ0RHJhZyk7CiAgICAgICAgcmV0dXJuIGVsOwogICAgICB9CgogICAgICBmdW5jdGlvbiBzY2FsZVRyYXlQaWVjZXNUb0JvYXJkKCkgewogICAgICAgIGNvbnN0IGJvYXJkUmVjdCA9IGJvYXJkRWwuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7CiAgICAgICAgaWYgKCFib2FyZFJlY3Qud2lkdGgpIHJldHVybjsKICAgICAgICBjb25zdCBib2FyZENlbGxTaXplID0gYm9hcmRSZWN0LndpZHRoIC8gU0laRTsKICAgICAgICB0cmF5RWwucXVlcnlTZWxlY3RvckFsbCgnLnBpZWNlJykuZm9yRWFjaChwaWVjZUVsID0+IHsKICAgICAgICAgIGNvbnN0IGNvbHMgPSBOdW1iZXIocGllY2VFbC5kYXRhc2V0LmJhc2VXaWR0aCB8fCAxKTsKICAgICAgICAgIGNvbnN0IHJvd3MgPSBOdW1iZXIocGllY2VFbC5kYXRhc2V0LmJhc2VIZWlnaHQgfHwgMSk7CiAgICAgICAgICBwaWVjZUVsLnN0eWxlLmdyaWRUZW1wbGF0ZUNvbHVtbnMgPSBgcmVwZWF0KCR7Y29sc30sICR7Ym9hcmRDZWxsU2l6ZX1weClgOwogICAgICAgICAgcGllY2VFbC5zdHlsZS5ncmlkVGVtcGxhdGVSb3dzID0gYHJlcGVhdCgke3Jvd3N9LCAke2JvYXJkQ2VsbFNpemV9cHgpYDsKICAgICAgICAgIHBpZWNlRWwucXVlcnlTZWxlY3RvckFsbCgnLnBpZWNlLWNlbGwnKS5mb3JFYWNoKGMgPT4gewogICAgICAgICAgICBjLnN0eWxlLndpZHRoID0gYCR7Ym9hcmRDZWxsU2l6ZX1weGA7CiAgICAgICAgICAgIGMuc3R5bGUuaGVpZ2h0ID0gYCR7Ym9hcmRDZWxsU2l6ZX1weGA7CiAgICAgICAgICB9KTsKICAgICAgICAgIHBpZWNlRWwucXVlcnlTZWxlY3RvckFsbCgnZGl2JykuZm9yRWFjaChjID0+IHsKICAgICAgICAgICAgaWYgKGMuc3R5bGUudmlzaWJpbGl0eSA9PT0gJ2hpZGRlbicpIHsKICAgICAgICAgICAgICBjLnN0eWxlLndpZHRoID0gYCR7Ym9hcmRDZWxsU2l6ZX1weGA7CiAgICAgICAgICAgICAgYy5zdHlsZS5oZWlnaHQgPSBgJHtib2FyZENlbGxTaXplfXB4YDsKICAgICAgICAgICAgfQogICAgICAgICAgfSk7CiAgICAgICAgfSk7CiAgICAgIH0KCiAgICAgIGZ1bmN0aW9uIHJlbmRlclRyYXkoKSB7CiAgICAgICAgdHJheUVsLmlubmVySFRNTCA9ICcnOwogICAgICAgIHBpZWNlcy5mb3JFYWNoKHBpZWNlID0+IHsKICAgICAgICAgIGNvbnN0IHNsb3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKICAgICAgICAgIHNsb3QuY2xhc3NOYW1lID0gJ3BpZWNlLXNsb3QnOwogICAgICAgICAgc2xvdC5hcHBlbmRDaGlsZChjcmVhdGVQaWVjZUVsZW1lbnQocGllY2UpKTsKICAgICAgICAgIHRyYXlFbC5hcHBlbmRDaGlsZChzbG90KTsKICAgICAgICB9KTsKCiAgICAgICAgY29uc3QgbWlzc2luZyA9IDMgLSBwaWVjZXMubGVuZ3RoOwogICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbWlzc2luZzsgaSsrKSB7CiAgICAgICAgICBjb25zdCBzbG90ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CiAgICAgICAgICBzbG90LmNsYXNzTmFtZSA9ICdwaWVjZS1zbG90IGVtcHR5JzsKICAgICAgICAgIHNsb3QudGV4dENvbnRlbnQgPSAnbGVlcic7CiAgICAgICAgICB0cmF5RWwuYXBwZW5kQ2hpbGQoc2xvdCk7CiAgICAgICAgfQoKICAgICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoc2NhbGVUcmF5UGllY2VzVG9Cb2FyZCk7CiAgICAgIH0KCiAgICAgIGZ1bmN0aW9uIHVwZGF0ZVNjb3JlKGFtb3VudCkgewogICAgICAgIHNjb3JlICs9IGFtb3VudDsKICAgICAgICBzY29yZUVsLnRleHRDb250ZW50ID0gc2NvcmU7CiAgICAgICAgaWYgKHNjb3JlID4gYmVzdFNjb3JlKSB7CiAgICAgICAgICBiZXN0U2NvcmUgPSBzY29yZTsKICAgICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKFNUT1JBR0VfS0VZLCBTdHJpbmcoYmVzdFNjb3JlKSk7CiAgICAgICAgICBiZXN0U2NvcmVFbC50ZXh0Q29udGVudCA9IGJlc3RTY29yZTsKICAgICAgICB9CiAgICAgIH0KCiAgICAgIGZ1bmN0aW9uIGNsZWFyUHJldmlldygpIHsKICAgICAgICBwcmV2aWV3Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKICAgICAgICAgIGNlbGwuY2xhc3NMaXN0LnJlbW92ZSgncHJldmlldy12YWxpZCcsICdwcmV2aWV3LWludmFsaWQnKTsKICAgICAgICB9KTsKICAgICAgICBwcmV2aWV3Q2VsbHMgPSBbXTsKICAgICAgfQoKICAgICAgZnVuY3Rpb24gZ2V0Qm9hcmRNZXRyaWNzKCkgewogICAgICAgIGNvbnN0IHJlY3QgPSBib2FyZEVsLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOwogICAgICAgIGNvbnN0IGNlbGxXID0gcmVjdC53aWR0aCAvIFNJWkU7CiAgICAgICAgY29uc3QgY2VsbEggPSByZWN0LmhlaWdodCAvIFNJWkU7CiAgICAgICAgcmV0dXJuIHsgcmVjdCwgY2VsbFcsIGNlbGxIIH07CiAgICAgIH0KCiAgICAgIGZ1bmN0aW9uIGdldEFuY2hvckZyb21Qb2ludGVyKGNsaWVudFgsIGNsaWVudFkpIHsKICAgICAgICBjb25zdCB7IHJlY3QsIGNlbGxXLCBjZWxsSCB9ID0gZ2V0Qm9hcmRNZXRyaWNzKCk7CiAgICAgICAgY29uc3Qgb2Zmc2V0WCA9IGRyYWdTdGF0ZT8ub2Zmc2V0Q2VsbFggfHwgMDsKICAgICAgICBjb25zdCBvZmZzZXRZID0gZHJhZ1N0YXRlPy5vZmZzZXRDZWxsWSB8fCAwOwogICAgICAgIGNvbnN0IHggPSBNYXRoLmZsb29yKChjbGllbnRYIC0gcmVjdC5sZWZ0KSAvIGNlbGxXKSAtIG9mZnNldFg7CiAgICAgICAgY29uc3QgeSA9IE1hdGguZmxvb3IoKGNsaWVudFkgLSByZWN0LnRvcCkgLyBjZWxsSCkgLSBvZmZzZXRZOwogICAgICAgIHJldHVybiB7IHgsIHkgfTsKICAgICAgfQoKICAgICAgZnVuY3Rpb24gY2FuUGxhY2UocGllY2UsIHN0YXJ0WCwgc3RhcnRZKSB7CiAgICAgICAgZm9yIChjb25zdCBbZHgsIGR5XSBvZiBwaWVjZS5zaGFwZS5jZWxscykgewogICAgICAgICAgY29uc3QgeCA9IHN0YXJ0WCArIGR4OwogICAgICAgICAgY29uc3QgeSA9IHN0YXJ0WSArIGR5OwogICAgICAgICAgaWYgKHggPCAwIHx8IHkgPCAwIHx8IHggPj0gU0laRSB8fCB5ID49IFNJWkUpIHJldHVybiBmYWxzZTsKICAgICAgICAgIGlmIChib2FyZFt5XVt4XSAhPT0gbnVsbCkgcmV0dXJuIGZhbHNlOwogICAgICAgIH0KICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgfQoKICAgICAgZnVuY3Rpb24gc2hvd1ByZXZpZXcocGllY2UsIHN0YXJ0WCwgc3RhcnRZKSB7CiAgICAgICAgY2xlYXJQcmV2aWV3KCk7CiAgICAgICAgbGV0IHZhbGlkID0gdHJ1ZTsKICAgICAgICBjb25zdCBjZWxscyA9IFtdOwoKICAgICAgICBmb3IgKGNvbnN0IFtkeCwgZHldIG9mIHBpZWNlLnNoYXBlLmNlbGxzKSB7CiAgICAgICAgICBjb25zdCB4ID0gc3RhcnRYICsgZHg7CiAgICAgICAgICBjb25zdCB5ID0gc3RhcnRZICsgZHk7CiAgICAgICAgICBpZiAoeCA8IDAgfHwgeSA8IDAgfHwgeCA+PSBTSVpFIHx8IHkgPj0gU0laRSkgewogICAgICAgICAgICB2YWxpZCA9IGZhbHNlOwogICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgIH0KICAgICAgICAgIGNvbnN0IGluZGV4ID0geSAqIFNJWkUgKyB4OwogICAgICAgICAgY29uc3QgY2VsbCA9IGJvYXJkRWwuY2hpbGRyZW5baW5kZXhdOwogICAgICAgICAgaWYgKCFjZWxsIHx8IGJvYXJkW3ldW3hdICE9PSBudWxsKSB2YWxpZCA9IGZhbHNlOwogICAgICAgICAgaWYgKGNlbGwpIGNlbGxzLnB1c2goY2VsbCk7CiAgICAgICAgfQoKICAgICAgICBwcmV2aWV3Q2VsbHMgPSBjZWxsczsKICAgICAgICBjZWxscy5mb3JFYWNoKGNlbGwgPT4gY2VsbC5jbGFzc0xpc3QuYWRkKHZhbGlkID8gJ3ByZXZpZXctdmFsaWQnIDogJ3ByZXZpZXctaW52YWxpZCcpKTsKICAgICAgICByZXR1cm4gdmFsaWQ7CiAgICAgIH0KCiAgICAgIGFzeW5jIGZ1bmN0aW9uIGNsZWFyTGluZXMoKSB7CiAgICAgICAgY29uc3QgZnVsbFJvd3MgPSBbXTsKICAgICAgICBjb25zdCBmdWxsQ29scyA9IFtdOwoKICAgICAgICBmb3IgKGxldCB5ID0gMDsgeSA8IFNJWkU7IHkrKykgewogICAgICAgICAgaWYgKGJvYXJkW3ldLmV2ZXJ5KGNlbGwgPT4gY2VsbCAhPT0gbnVsbCkpIGZ1bGxSb3dzLnB1c2goeSk7CiAgICAgICAgfQoKICAgICAgICBmb3IgKGxldCB4ID0gMDsgeCA8IFNJWkU7IHgrKykgewogICAgICAgICAgbGV0IGZ1bGwgPSB0cnVlOwogICAgICAgICAgZm9yIChsZXQgeSA9IDA7IHkgPCBTSVpFOyB5KyspIHsKICAgICAgICAgICAgaWYgKGJvYXJkW3ldW3hdID09PSBudWxsKSB7CiAgICAgICAgICAgICAgZnVsbCA9IGZhbHNlOwogICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgICBpZiAoZnVsbCkgZnVsbENvbHMucHVzaCh4KTsKICAgICAgICB9CgogICAgICAgIGNvbnN0IGluZGV4ZXMgPSBbXTsKICAgICAgICBmdWxsUm93cy5mb3JFYWNoKHkgPT4gewogICAgICAgICAgZm9yIChsZXQgeCA9IDA7IHggPCBTSVpFOyB4KyspIGluZGV4ZXMucHVzaCh5ICogU0laRSArIHgpOwogICAgICAgIH0pOwogICAgICAgIGZ1bGxDb2xzLmZvckVhY2goeCA9PiB7CiAgICAgICAgICBmb3IgKGxldCB5ID0gMDsgeSA8IFNJWkU7IHkrKykgaW5kZXhlcy5wdXNoKHkgKiBTSVpFICsgeCk7CiAgICAgICAgfSk7CgogICAgICAgIGNvbnN0IHVuaXF1ZUluZGV4ZXMgPSBbLi4ubmV3IFNldChpbmRleGVzKV07CiAgICAgICAgdW5pcXVlSW5kZXhlcy5mb3JFYWNoKGluZGV4ID0+IHsKICAgICAgICAgIGNvbnN0IGNlbGwgPSBib2FyZEVsLmNoaWxkcmVuW2luZGV4XTsKICAgICAgICAgIGlmIChjZWxsKSBjZWxsLmNsYXNzTGlzdC5hZGQoJ2NsZWFyaW5nJyk7CiAgICAgICAgfSk7CgogICAgICAgIGlmICh1bmlxdWVJbmRleGVzLmxlbmd0aCkgewogICAgICAgICAgYXdhaXQgbmV3IFByb21pc2UocmVzb2x2ZSA9PiBzZXRUaW1lb3V0KHJlc29sdmUsIDQ2MCkpOwogICAgICAgIH0KCiAgICAgICAgZnVsbFJvd3MuZm9yRWFjaCh5ID0+IHsKICAgICAgICAgIGZvciAobGV0IHggPSAwOyB4IDwgU0laRTsgeCsrKSBib2FyZFt5XVt4XSA9IG51bGw7CiAgICAgICAgfSk7CiAgICAgICAgZnVsbENvbHMuZm9yRWFjaCh4ID0+IHsKICAgICAgICAgIGZvciAobGV0IHkgPSAwOyB5IDwgU0laRTsgeSsrKSBib2FyZFt5XVt4XSA9IG51bGw7CiAgICAgICAgfSk7CgogICAgICAgIGlmIChmdWxsUm93cy5sZW5ndGggfHwgZnVsbENvbHMubGVuZ3RoKSByZW5kZXJCb2FyZCgpOwogICAgICAgIHJldHVybiBmdWxsUm93cy5sZW5ndGggKyBmdWxsQ29scy5sZW5ndGg7CiAgICAgIH0KCiAgICAgIGFzeW5jIGZ1bmN0aW9uIHBsYWNlUGllY2UocGllY2UsIHN0YXJ0WCwgc3RhcnRZKSB7CiAgICAgICAgcGllY2Uuc2hhcGUuY2VsbHMuZm9yRWFjaCgoW2R4LCBkeV0pID0+IHsKICAgICAgICAgIGJvYXJkW3N0YXJ0WSArIGR5XVtzdGFydFggKyBkeF0gPSBwaWVjZS5jb2xvcjsKICAgICAgICB9KTsKICAgICAgICB1cGRhdGVTY29yZShwaWVjZS5zaGFwZS5jZWxscy5sZW5ndGggKiAxMCk7CiAgICAgICAgcmVuZGVyQm9hcmQoKTsKICAgICAgICBjb25zdCBjbGVhcmVkID0gYXdhaXQgY2xlYXJMaW5lcygpOwogICAgICAgIGlmIChjbGVhcmVkID4gMCkgewogICAgICAgICAgdXBkYXRlU2NvcmUoY2xlYXJlZCAqIDEwMCk7CiAgICAgICAgICBzdGF0dXNFbC50ZXh0Q29udGVudCA9IGAke2NsZWFyZWR9IExpbmllJHtjbGVhcmVkID4gMSA\/ICduJyA6ICcnfSBnZWzDtnNjaHQuYDsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgc3RhdHVzRWwudGV4dENvbnRlbnQgPSAnQmxvY2sgZ2VzZXR6dC4nOwogICAgICAgIH0KICAgICAgfQoKICAgICAgZnVuY3Rpb24gcmVtb3ZlUGllY2UodWlkKSB7CiAgICAgICAgcGllY2VzID0gcGllY2VzLmZpbHRlcihwID0+IHAudWlkICE9PSB1aWQpOwogICAgICAgIGlmIChwaWVjZXMubGVuZ3RoID09PSAwKSBwaWVjZXMgPSBuZXdQaWVjZVNldCgpOwogICAgICAgIHJlbmRlclRyYXkoKTsKICAgICAgICBjaGVja0dhbWVPdmVyKCk7CiAgICAgIH0KCiAgICAgIGZ1bmN0aW9uIGNoZWNrR2FtZU92ZXIoKSB7CiAgICAgICAgaWYgKGdhbWVPdmVyKSByZXR1cm4gdHJ1ZTsKICAgICAgICBjb25zdCBtb3Zlc0V4aXN0ID0gcGllY2VzLnNvbWUocGllY2UgPT4gewogICAgICAgICAgZm9yIChsZXQgeSA9IDA7IHkgPCBTSVpFOyB5KyspIHsKICAgICAgICAgICAgZm9yIChsZXQgeCA9IDA7IHggPCBTSVpFOyB4KyspIHsKICAgICAgICAgICAgICBpZiAoY2FuUGxhY2UocGllY2UsIHgsIHkpKSByZXR1cm4gdHJ1ZTsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgIH0pOwoKICAgICAgICBpZiAoIW1vdmVzRXhpc3QpIHsKICAgICAgICAgIGdhbWVPdmVyID0gdHJ1ZTsKICAgICAgICAgIGZpbmFsVGV4dEVsLnRleHRDb250ZW50ID0gYEtlaW5lIFrDvGdlIG1laHIgbcO2Z2xpY2guIERlaW4gRXJnZWJuaXM6ICR7c2NvcmV9IFB1bmt0ZS5gOwogICAgICAgICAgb3ZlcmxheUVsLmNsYXNzTGlzdC5hZGQoJ3Nob3cnKTsKICAgICAgICAgIHN0YXR1c0VsLnRleHRDb250ZW50ID0gJ1NwaWVsIGJlZW5kZXQuJzsKICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgIH0KICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgIH0KCiAgICAgIGZ1bmN0aW9uIGJ1aWxkRmxvYXRpbmcocGllY2UpIHsKICAgICAgICBmbG9hdGluZ1BpZWNlRWwuaW5uZXJIVE1MID0gJyc7CiAgICAgICAgY29uc3QgaW5uZXIgPSBjcmVhdGVQaWVjZUVsZW1lbnQocGllY2UpOwogICAgICAgIGlubmVyLmNsYXNzTGlzdC5yZW1vdmUoJ2RyYWdnaW5nJyk7CiAgICAgICAgaW5uZXIuc3R5bGUuY3Vyc29yID0gJ2dyYWJiaW5nJzsKICAgICAgICBmbG9hdGluZ1BpZWNlRWwuYXBwZW5kQ2hpbGQoaW5uZXIpOwogICAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZShzY2FsZUZsb2F0aW5nUGllY2VUb0JvYXJkKTsKICAgICAgfQoKICAgICAgZnVuY3Rpb24gc2NhbGVGbG9hdGluZ1BpZWNlVG9Cb2FyZCgpIHsKICAgICAgICBjb25zdCBib2FyZFJlY3QgPSBib2FyZEVsLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOwogICAgICAgIGlmICghYm9hcmRSZWN0LndpZHRoKSByZXR1cm47CiAgICAgICAgY29uc3QgYm9hcmRDZWxsU2l6ZSA9IGJvYXJkUmVjdC53aWR0aCAvIFNJWkU7CiAgICAgICAgY29uc3QgcGllY2VFbCA9IGZsb2F0aW5nUGllY2VFbC5xdWVyeVNlbGVjdG9yKCcucGllY2UnKTsKICAgICAgICBpZiAoIXBpZWNlRWwpIHJldHVybjsKICAgICAgICBjb25zdCBjb2xzID0gTnVtYmVyKHBpZWNlRWwuZGF0YXNldC5iYXNlV2lkdGggfHwgMSk7CiAgICAgICAgY29uc3Qgcm93cyA9IE51bWJlcihwaWVjZUVsLmRhdGFzZXQuYmFzZUhlaWdodCB8fCAxKTsKICAgICAgICBwaWVjZUVsLnN0eWxlLmdyaWRUZW1wbGF0ZUNvbHVtbnMgPSBgcmVwZWF0KCR7Y29sc30sICR7Ym9hcmRDZWxsU2l6ZX1weClgOwogICAgICAgIHBpZWNlRWwuc3R5bGUuZ3JpZFRlbXBsYXRlUm93cyA9IGByZXBlYXQoJHtyb3dzfSwgJHtib2FyZENlbGxTaXplfXB4KWA7CiAgICAgICAgcGllY2VFbC5xdWVyeVNlbGVjdG9yQWxsKCcucGllY2UtY2VsbCcpLmZvckVhY2goYyA9PiB7CiAgICAgICAgICBjLnN0eWxlLndpZHRoID0gYCR7Ym9hcmRDZWxsU2l6ZX1weGA7CiAgICAgICAgICBjLnN0eWxlLmhlaWdodCA9IGAke2JvYXJkQ2VsbFNpemV9cHhgOwogICAgICAgIH0pOwogICAgICAgIHBpZWNlRWwucXVlcnlTZWxlY3RvckFsbCgnZGl2JykuZm9yRWFjaChjID0+IHsKICAgICAgICAgIGlmIChjLnN0eWxlLnZpc2liaWxpdHkgPT09ICdoaWRkZW4nKSB7CiAgICAgICAgICAgIGMuc3R5bGUud2lkdGggPSBgJHtib2FyZENlbGxTaXplfXB4YDsKICAgICAgICAgICAgYy5zdHlsZS5oZWlnaHQgPSBgJHtib2FyZENlbGxTaXplfXB4YDsKICAgICAgICAgIH0KICAgICAgICB9KTsKICAgICAgfQoKICAgICAgZnVuY3Rpb24gbW92ZUZsb2F0aW5nKGNsaWVudFgsIGNsaWVudFkpIHsKICAgICAgICBjb25zdCBzaGlmdFggPSBkcmFnU3RhdGU\/LnBvaW50ZXJTaGlmdFggfHwgMTQ7CiAgICAgICAgY29uc3Qgc2hpZnRZID0gZHJhZ1N0YXRlPy5wb2ludGVyU2hpZnRZIHx8IDE0OwogICAgICAgIGZsb2F0aW5nUGllY2VFbC5zdHlsZS50cmFuc2Zvcm0gPSBgdHJhbnNsYXRlKCR7Y2xpZW50WCAtIHNoaWZ0WH1weCwgJHtjbGllbnRZIC0gc2hpZnRZfXB4KWA7CiAgICAgIH0KCiAgICAgIGZ1bmN0aW9uIHN0YXJ0RHJhZyhlKSB7CiAgICAgICAgaWYgKGdhbWVPdmVyIHx8IGlucHV0TG9ja2VkKSByZXR1cm47CiAgICAgICAgY29uc3QgdWlkID0gZS5jdXJyZW50VGFyZ2V0LmRhdGFzZXQudWlkOwogICAgICAgIGNvbnN0IHBpZWNlID0gcGllY2VzLmZpbmQocCA9PiBwLnVpZCA9PT0gdWlkKTsKICAgICAgICBpZiAoIXBpZWNlKSByZXR1cm47CgogICAgICAgIGNvbnN0IHJlY3QgPSBlLmN1cnJlbnRUYXJnZXQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7CiAgICAgICAgY29uc3QgbG9jYWxYID0gZS5jbGllbnRYIC0gcmVjdC5sZWZ0OwogICAgICAgIGNvbnN0IGxvY2FsWSA9IGUuY2xpZW50WSAtIHJlY3QudG9wOwogICAgICAgIGNvbnN0IHBpZWNlQ2VsbFcgPSByZWN0LndpZHRoIC8gcGllY2Uuc2hhcGUud2lkdGg7CiAgICAgICAgY29uc3QgcGllY2VDZWxsSCA9IHJlY3QuaGVpZ2h0IC8gcGllY2Uuc2hhcGUuaGVpZ2h0OwoKICAgICAgICBkcmFnU3RhdGUgPSB7CiAgICAgICAgICB1aWQsCiAgICAgICAgICBwaWVjZSwKICAgICAgICAgIG9mZnNldENlbGxYOiBNYXRoLm1heCgwLCBNYXRoLm1pbihwaWVjZS5zaGFwZS53aWR0aCAtIDEsIE1hdGguZmxvb3IobG9jYWxYIC8gcGllY2VDZWxsVykpKSwKICAgICAgICAgIG9mZnNldENlbGxZOiBNYXRoLm1heCgwLCBNYXRoLm1pbihwaWVjZS5zaGFwZS5oZWlnaHQgLSAxLCBNYXRoLmZsb29yKGxvY2FsWSAvIHBpZWNlQ2VsbEgpKSksCiAgICAgICAgICBwb2ludGVyU2hpZnRYOiBsb2NhbFgsCiAgICAgICAgICBwb2ludGVyU2hpZnRZOiBsb2NhbFkKICAgICAgICB9OwoKICAgICAgICBlLmN1cnJlbnRUYXJnZXQuY2xhc3NMaXN0LmFkZCgnZHJhZ2dpbmcnKTsKICAgICAgICBidWlsZEZsb2F0aW5nKHBpZWNlKTsKICAgICAgICBtb3ZlRmxvYXRpbmcoZS5jbGllbnRYLCBlLmNsaWVudFkpOwogICAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3BvaW50ZXJtb3ZlJywgb25EcmFnKTsKICAgICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdwb2ludGVydXAnLCBlbmREcmFnKTsKICAgICAgfQoKICAgICAgZnVuY3Rpb24gb25EcmFnKGUpIHsKICAgICAgICBpZiAoIWRyYWdTdGF0ZSkgcmV0dXJuOwogICAgICAgIG1vdmVGbG9hdGluZyhlLmNsaWVudFgsIGUuY2xpZW50WSk7CgogICAgICAgIGNvbnN0IHsgcmVjdCB9ID0gZ2V0Qm9hcmRNZXRyaWNzKCk7CiAgICAgICAgY29uc3Qgd2l0aGluID0gZS5jbGllbnRYID49IHJlY3QubGVmdCAmJiBlLmNsaWVudFggPD0gcmVjdC5yaWdodCAmJiBlLmNsaWVudFkgPj0gcmVjdC50b3AgJiYgZS5jbGllbnRZIDw9IHJlY3QuYm90dG9tOwogICAgICAgIGNsZWFyUHJldmlldygpOwogICAgICAgIGlmICh3aXRoaW4pIHsKICAgICAgICAgIGNvbnN0IGFuY2hvciA9IGdldEFuY2hvckZyb21Qb2ludGVyKGUuY2xpZW50WCwgZS5jbGllbnRZKTsKICAgICAgICAgIHNob3dQcmV2aWV3KGRyYWdTdGF0ZS5waWVjZSwgYW5jaG9yLngsIGFuY2hvci55KTsKICAgICAgICB9CiAgICAgIH0KCiAgICAgIGFzeW5jIGZ1bmN0aW9uIGVuZERyYWcoZSkgewogICAgICAgIGlmICghZHJhZ1N0YXRlKSByZXR1cm47CgogICAgICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3BvaW50ZXJtb3ZlJywgb25EcmFnKTsKICAgICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdwb2ludGVydXAnLCBlbmREcmFnKTsKICAgICAgICBmbG9hdGluZ1BpZWNlRWwuc3R5bGUudHJhbnNmb3JtID0gJ3RyYW5zbGF0ZSgtOTk5OXB4LCAtOTk5OXB4KSc7CgogICAgICAgIGNvbnN0IG9yaWdpbmFsID0gdHJheUVsLnF1ZXJ5U2VsZWN0b3IoYFtkYXRhLXVpZD0iJHtkcmFnU3RhdGUudWlkfSJdYCk7CiAgICAgICAgaWYgKG9yaWdpbmFsKSBvcmlnaW5hbC5jbGFzc0xpc3QucmVtb3ZlKCdkcmFnZ2luZycpOwoKICAgICAgICBjb25zdCB7IHJlY3QgfSA9IGdldEJvYXJkTWV0cmljcygpOwogICAgICAgIGNvbnN0IHdpdGhpbiA9IGUuY2xpZW50WCA+PSByZWN0LmxlZnQgJiYgZS5jbGllbnRYIDw9IHJlY3QucmlnaHQgJiYgZS5jbGllbnRZID49IHJlY3QudG9wICYmIGUuY2xpZW50WSA8PSByZWN0LmJvdHRvbTsKCiAgICAgICAgaWYgKHdpdGhpbikgewogICAgICAgICAgY29uc3QgYW5jaG9yID0gZ2V0QW5jaG9yRnJvbVBvaW50ZXIoZS5jbGllbnRYLCBlLmNsaWVudFkpOwogICAgICAgICAgaWYgKGNhblBsYWNlKGRyYWdTdGF0ZS5waWVjZSwgYW5jaG9yLngsIGFuY2hvci55KSkgewogICAgICAgICAgICBjb25zdCBwaWVjZVRvUGxhY2UgPSBkcmFnU3RhdGUucGllY2U7CiAgICAgICAgICAgIGNvbnN0IHVpZCA9IGRyYWdTdGF0ZS51aWQ7CiAgICAgICAgICAgIGRyYWdTdGF0ZSA9IG51bGw7CiAgICAgICAgICAgIGNsZWFyUHJldmlldygpOwogICAgICAgICAgICBpbnB1dExvY2tlZCA9IHRydWU7CiAgICAgICAgICAgIGF3YWl0IHBsYWNlUGllY2UocGllY2VUb1BsYWNlLCBhbmNob3IueCwgYW5jaG9yLnkpOwogICAgICAgICAgICByZW1vdmVQaWVjZSh1aWQpOwogICAgICAgICAgICBpbnB1dExvY2tlZCA9IGZhbHNlOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBjbGVhclByZXZpZXcoKTsKICAgICAgICBkcmFnU3RhdGUgPSBudWxsOwogICAgICB9CgogICAgICBmdW5jdGlvbiByZXN0YXJ0R2FtZSgpIHsKICAgICAgICBib2FyZCA9IGNyZWF0ZUVtcHR5Qm9hcmQoKTsKICAgICAgICBwaWVjZXMgPSBuZXdQaWVjZVNldCgpOwogICAgICAgIHNjb3JlID0gMDsKICAgICAgICBnYW1lT3ZlciA9IGZhbHNlOwogICAgICAgIGlucHV0TG9ja2VkID0gZmFsc2U7CiAgICAgICAgc2NvcmVFbC50ZXh0Q29udGVudCA9ICcwJzsKICAgICAgICBzdGF0dXNFbC50ZXh0Q29udGVudCA9ICdOZXVlcyBTcGllbCBnZXN0YXJ0ZXQuJzsKICAgICAgICBvdmVybGF5RWwuY2xhc3NMaXN0LnJlbW92ZSgnc2hvdycpOwogICAgICAgIHJlbmRlckJvYXJkKCk7CiAgICAgICAgcmVuZGVyVHJheSgpOwogICAgICAgIGNoZWNrR2FtZU92ZXIoKTsKICAgICAgfQoKICAgICAgcmVzdGFydEJ0bi5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIHJlc3RhcnRHYW1lKTsKICAgICAgcmVzdGFydEJ0bkRpYWxvZy5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIHJlc3RhcnRHYW1lKTsKICAgICAgCiAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdyZXNpemUnLCAoKSA9PiB7CiAgICAgICAgc2NhbGVUcmF5UGllY2VzVG9Cb2FyZCgpOwogICAgICAgIHNjYWxlRmxvYXRpbmdQaWVjZVRvQm9hcmQoKTsKICAgICAgfSk7CgogICAgICByZXN0YXJ0R2FtZSgpOwogICAgfSkoKTsKICA8L3NjcmlwdD4KPC9ib2R5Pgo8L2h0bWw+CntCedc4Ze5gAHtB4cCbEcAAAAEACwB1AX0BdxMyMDI2LTA0LTA5VDE3OjU1OjA2dxBtZWluLXNwaWVsLWhldXRlKwB3JDZhZTAzYTIzLTgwNTctNGZkNi1hYThkLWM1NWIyYmJlNjQwZncOY29yZS9wYXJhZ3JhcGh5dyQ5NDUwZWM5My1hNjJmLTQxM2YtOWIzMS00Yzc5MzRjMGMxNTB3CWNvcmUvaHRtbHe8OjxsaW5rIHJlbD0icHJlY29ubmVjdCIgaHJlZj0iaHR0cHM6Ly9mb250cy5nb29nbGVhcGlzLmNvbSI+CjxsaW5rIHJlbD0icHJlY29ubmVjdCIgaHJlZj0iaHR0cHM6Ly9mb250cy5nc3RhdGljLmNvbSIgY3Jvc3NvcmlnaW4+CjxsaW5rIGhyZWY9Imh0dHBzOi8vZm9udHMuZ29vZ2xlYXBpcy5jb20vY3NzMj9mYW1pbHk9T3JiaXRyb246d2dodEA0MDA7NTAwOzcwMCZmYW1pbHk9SW50ZXI6d2dodEAzMDA7NDAwOzUwMDs2MDAmZGlzcGxheT1zd2FwIiByZWw9InN0eWxlc2hlZXQiPgoKPHN0eWxlPgogIDpyb290ewogICAgLS1iZzojMDkwZDE2OwogICAgLS1iZzI6IzExMTgyNzsKICAgIC0tYmczOiMxYTEwMzA7CiAgICAtLW5lb24xOiMzOWQwZmY7CiAgICAtLW5lb24yOiNmZjNlYTY7CiAgICAtLW5lb24zOiNmZmQ4NGQ7CiAgICAtLWdsYXNzOnJnYmEoMjU1LDI1NSwyNTUsMC4wOCk7CiAgICAtLWdsYXNzMjpyZ2JhKDI1NSwyNTUsMjU1LDAuMTQpOwogICAgLS10ZXh0OiNlZWY2ZmY7CiAgICAtLW11dGVkOiNhOWI3Yzk7CiAgICAtLXNoYWRvdzowIDMwcHggOTBweCByZ2JhKDAsMCwwLDAuNDIpOwogIH0KCiAgaHRtbCwgYm9keXsKICAgIG1hcmdpbjowOwogICAgcGFkZGluZzowOwogICAgYmFja2dyb3VuZDojMDkwZDE2OwogIH0KCiAgLnBpbmJhbGwtcGFnZXsKICAgIHBvc2l0aW9uOnJlbGF0aXZlOwogICAgd2lkdGg6MTAwJTsKICAgIG1pbi1oZWlnaHQ6MTAwdmg7CiAgICBvdmVyZmxvdzpoaWRkZW47CiAgICBwYWRkaW5nOjQwcHggMThweCA3MHB4OwogICAgYm94LXNpemluZzpib3JkZXItYm94OwogICAgZm9udC1mYW1pbHk6J0ludGVyJywgc2Fucy1zZXJpZjsKICAgIGNvbG9yOnZhcigtLXRleHQpOwogICAgYmFja2dyb3VuZDoKICAgICAgcmFkaWFsLWdyYWRpZW50KGNpcmNsZSBhdCAxMiUgMTglLCByZ2JhKDU3LDIwOCwyNTUsMC4yMikgMCUsIHRyYW5zcGFyZW50IDE4JSksCiAgICAgIHJhZGlhbC1ncmFkaWVudChjaXJjbGUgYXQgODQlIDE0JSwgcmdiYSgyNTUsNjIsMTY2LDAuMTgpIDAlLCB0cmFuc3BhcmVudCAxOCUpLAogICAgICByYWRpYWwtZ3JhZGllbnQoY2lyY2xlIGF0IDcwJSA3OCUsIHJnYmEoMjU1LDIxNiw3NywwLjEyKSAwJSwgdHJhbnNwYXJlbnQgMTYlKSwKICAgICAgbGluZWFyLWdyYWRpZW50KDEzNWRlZywgdmFyKC0tYmcpIDAlLCB2YXIoLS1iZzIpIDQ4JSwgdmFyKC0tYmczKSAxMDAlKTsKICB9CgogIC8qIFNwaWVsZmVsZC1MaW5pZW4gLyBGbGlwcGVyLUxvb2sgKi8KICAucGluYmFsbC1wYWdlOjpiZWZvcmV7CiAgICBjb250ZW50OiIiOwogICAgcG9zaXRpb246YWJzb2x1dGU7CiAgICBpbnNldDowOwogICAgcG9pbnRlci1ldmVudHM6bm9uZTsKICAgIG9wYWNpdHk6MC45NTsKICAgIGJhY2tncm91bmQ6CiAgICAgIHJhZGlhbC1ncmFkaWVudChjaXJjbGUgYXQgMTYlIDI2JSwgdHJhbnNwYXJlbnQgMCAzOHB4LCByZ2JhKDU3LDIwOCwyNTUsMC4yMikgMzlweCwgdHJhbnNwYXJlbnQgNDJweCksCiAgICAgIHJhZGlhbC1ncmFkaWVudChjaXJjbGUgYXQgODIlIDIyJSwgdHJhbnNwYXJlbnQgMCAyOHB4LCByZ2JhKDI1NSw2MiwxNjYsMC4yMikgMjlweCwgdHJhbnNwYXJlbnQgMzJweCksCiAgICAgIHJhZGlhbC1ncmFkaWVudChjaXJjbGUgYXQgNzQlIDcyJSwgdHJhbnNwYXJlbnQgMCAyMnB4LCByZ2JhKDI1NSwyMTYsNzcsMC4yMCkgMjNweCwgdHJhbnNwYXJlbnQgMjZweCksCiAgICAgIGxpbmVhci1ncmFkaWVudCgyNGRlZywgdHJhbnNwYXJlbnQgNDglLCByZ2JhKDI1NSwyNTUsMjU1LDAuMDYpIDQ5JSwgcmdiYSgyNTUsMjU1LDI1NSwwLjA2KSA1MCUsIHRyYW5zcGFyZW50IDUxJSksCiAgICAgIGxpbmVhci1ncmFkaWVudCgxMTVkZWcsIHRyYW5zcGFyZW50IDQ4JSwgcmdiYSgyNTUsMjU1LDI1NSwwLjA0KSA0OSUsIHJnYmEoMjU1LDI1NSwyNTUsMC4wNCkgNTAlLCB0cmFuc3BhcmVudCA1MSUpLAogICAgICByZXBlYXRpbmctbGluZWFyLWdyYWRpZW50KAogICAgICAgIDE4MGRlZywKICAgICAgICB0cmFuc3BhcmVudCAwcHgsCiAgICAgICAgdHJhbnNwYXJlbnQgMzFweCwKICAgICAgICByZ2JhKDI1NSwyNTUsMjU1LDAuMDE4KSAzMnB4CiAgICAgICk7CiAgICBtaXgtYmxlbmQtbW9kZTpzY3JlZW47CiAgfQoKICAvKiBMZXVjaHRiYWhuZW4gbGlua3MvcmVjaHRzICovCiAgLnBpbmJhbGwtcmFpbC1sZWZ0LAogIC5waW5iYWxsLXJhaWwtcmlnaHR7CiAgICBwb3NpdGlvbjphYnNvbHV0ZTsKICAgIHRvcDowOwogICAgYm90dG9tOjA7CiAgICB3aWR0aDoxMjBweDsKICAgIHBvaW50ZXItZXZlbnRzOm5vbmU7CiAgICB6LWluZGV4OjE7CiAgICBvcGFjaXR5OjAuNzsKICB9CgogIC5waW5iYWxsLXJhaWwtbGVmdHsKICAgIGxlZnQ6LTEwcHg7CiAgICBiYWNrZ3JvdW5kOgogICAgICBsaW5lYXItZ3JhZGllbnQoMTY1ZGVnLCB0cmFuc3BhcmVudCAwIDE4JSwgcmdiYSg1NywyMDgsMjU1LDAuMCkgMTglLCByZ2JhKDU3LDIwOCwyNTUsMC4yNikgMjIlLCByZ2JhKDU3LDIwOCwyNTUsMC4wKSAyNiUsIHRyYW5zcGFyZW50IDI2JSksCiAgICAgIGxpbmVhci1ncmFkaWVudCgxMmRlZywgdHJhbnNwYXJlbnQgMCA1NSUsIHJnYmEoMjU1LDYyLDE2NiwwLjApIDU1JSwgcmdiYSgyNTUsNjIsMTY2LDAuMjIpIDU5JSwgcmdiYSgyNTUsNjIsMTY2LDAuMCkgNjMlLCB0cmFuc3BhcmVudCA2MyUpOwogICAgZmlsdGVyOmJsdXIoMC4zcHgpOwogIH0KCiAgLnBpbmJhbGwtcmFpbC1yaWdodHsKICAgIHJpZ2h0Oi0xMHB4OwogICAgYmFja2dyb3VuZDoKICAgICAgbGluZWFyLWdyYWRpZW50KDE5NWRlZywgdHJhbnNwYXJlbnQgMCAxOCUsIHJnYmEoMjU1LDIxNiw3NywwLjApIDE4JSwgcmdiYSgyNTUsMjE2LDc3LDAuMjQpIDIyJSwgcmdiYSgyNTUsMjE2LDc3LDAuMCkgMjYlLCB0cmFuc3BhcmVudCAyNiUpLAogICAgICBsaW5lYXItZ3JhZGllbnQoLTEyZGVnLCB0cmFuc3BhcmVudCAwIDU1JSwgcmdiYSg1NywyMDgsMjU1LDAuMCkgNTUlLCByZ2JhKDU3LDIwOCwyNTUsMC4yMCkgNTklLCByZ2JhKDU3LDIwOCwyNTUsMC4wKSA2MyUsIHRyYW5zcGFyZW50IDYzJSk7CiAgICBmaWx0ZXI6Ymx1cigwLjNweCk7CiAgfQoKICAucGluYmFsbC1zaGVsbHsKICAgIHBvc2l0aW9uOnJlbGF0aXZlOwogICAgei1pbmRleDoyOwogICAgbWF4LXdpZHRoOjEyODBweDsKICAgIG1hcmdpbjowIGF1dG87CiAgfQoKICAucGluYmFsbC1oZWFkZXJ7CiAgICBtYXJnaW46MCBhdXRvIDI0cHg7CiAgICBtYXgtd2lkdGg6MTEwMHB4OwogICAgdGV4dC1hbGlnbjpjZW50ZXI7CiAgICBwYWRkaW5nOjE4cHggMjBweCAwOwogIH0KCiAgLnBpbmJhbGwta2lja2VyewogICAgZm9udC1mYW1pbHk6J09yYml0cm9uJywgc2Fucy1zZXJpZjsKICAgIGZvbnQtc2l6ZToxMnB4OwogICAgbGV0dGVyLXNwYWNpbmc6MC4zMGVtOwogICAgdGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlOwogICAgY29sb3I6dmFyKC0tbmVvbjEpOwogICAgbWFyZ2luLWJvdHRvbToxNHB4OwogIH0KCiAgLnBpbmJhbGwtdGl0bGV7CiAgICBtYXJnaW46MDsKICAgIGZvbnQtZmFtaWx5OidPcmJpdHJvbicsIHNhbnMtc2VyaWY7CiAgICBmb250LXNpemU6Y2xhbXAoMnJlbSwgNC44dncsIDQuOHJlbSk7CiAgICBsaW5lLWhlaWdodDowLjk1OwogICAgZm9udC13ZWlnaHQ6NzAwOwogICAgY29sb3I6I2Y2ZmJmZjsKICAgIHRleHQtc2hhZG93OgogICAgICAwIDAgMTRweCByZ2JhKDU3LDIwOCwyNTUsMC4xOCksCiAgICAgIDAgMCAzMHB4IHJnYmEoMjU1LDYyLDE2NiwwLjA4KTsKICB9CgogIC5waW5iYWxsLXN1YnRpdGxlewogICAgbWFyZ2luOjE0cHggYXV0byAwOwogICAgbWF4LXdpZHRoOjgyMHB4OwogICAgZm9udC1zaXplOjEuMDJyZW07CiAgICBsaW5lLWhlaWdodDoxLjg7CiAgICBjb2xvcjp2YXIoLS1tdXRlZCk7CiAgfQoKICAucGluYmFsbC1mcmFtZXsKICAgIHBvc2l0aW9uOnJlbGF0aXZlOwogICAgbWF4LXdpZHRoOjExODBweDsKICAgIG1hcmdpbjoyNnB4IGF1dG8gMDsKICAgIHBhZGRpbmc6MjBweDsKICAgIGJvcmRlci1yYWRpdXM6MzRweDsKICAgIGJhY2tncm91bmQ6CiAgICAgIGxpbmVhci1ncmFkaWVudCgxNDVkZWcsIHJnYmEoMjU1LDI1NSwyNTUsMC4wOCksIHJnYmEoMjU1LDI1NSwyNTUsMC4wMykpLAogICAgICBsaW5lYXItZ3JhZGllbnQoMTQ1ZGVnLCByZ2JhKDU3LDIwOCwyNTUsMC4xMCksIHJnYmEoMjU1LDYyLDE2NiwwLjA4KSk7CiAgICBib3JkZXI6MXB4IHNvbGlkIHJnYmEoMjU1LDI1NSwyNTUsMC4xMik7CiAgICBib3gtc2hhZG93OgogICAgICB2YXIoLS1zaGFkb3cpLAogICAgICBpbnNldCAwIDAgMCAxcHggcmdiYSgyNTUsMjU1LDI1NSwwLjA1KSwKICAgICAgMCAwIDI0cHggcmdiYSg1NywyMDgsMjU1LDAuMDgpOwogICAgYmFja2Ryb3AtZmlsdGVyOmJsdXIoNHB4KTsKICB9CgogIC5waW5iYWxsLWZyYW1lOjpiZWZvcmV7CiAgICBjb250ZW50OiIiOwogICAgcG9zaXRpb246YWJzb2x1dGU7CiAgICBpbnNldDoxMHB4OwogICAgYm9yZGVyLXJhZGl1czoyNnB4OwogICAgYm9yZGVyOjFweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LDAuMDcpOwogICAgcG9pbnRlci1ldmVudHM6bm9uZTsKICB9CgogIC5waW5iYWxsLWxpZ2h0c3sKICAgIGRpc3BsYXk6ZmxleDsKICAgIGp1c3RpZnktY29udGVudDpjZW50ZXI7CiAgICBnYXA6MTRweDsKICAgIG1hcmdpbi1ib3R0b206MTZweDsKICB9CgogIC5waW5iYWxsLWxpZ2h0ewogICAgd2lkdGg6MTRweDsKICAgIGhlaWdodDoxNHB4OwogICAgYm9yZGVyLXJhZGl1czo1MCU7CiAgICBib3gtc2hhZG93OjAgMCAxNnB4IGN1cnJlbnRDb2xvcjsKICB9CgogIC5saWdodDF7IGNvbG9yOnZhcigtLW5lb24xKTsgYmFja2dyb3VuZDp2YXIoLS1uZW9uMSk7IH0KICAubGlnaHQyeyBjb2xvcjp2YXIoLS1uZW9uMik7IGJhY2tncm91bmQ6dmFyKC0tbmVvbjIpOyB9CiAgLmxpZ2h0M3sgY29sb3I6dmFyKC0tbmVvbjMpOyBiYWNrZ3JvdW5kOnZhcigtLW5lb24zKTsgfQoKICAucGluYmFsbC1zY3JlZW57CiAgICBwb3NpdGlvbjpyZWxhdGl2ZTsKICAgIG92ZXJmbG93OmhpZGRlbjsKICAgIGJvcmRlci1yYWRpdXM6MjRweDsKICAgIGJhY2tncm91bmQ6CiAgICAgIGxpbmVhci1ncmFkaWVudCgxODBkZWcsIHJnYmEoMjU1LDI1NSwyNTUsMC4wNSksIHJnYmEoMCwwLDAsMC4xOCkpLAogICAgICAjMDUwODExOwogICAgYm9yZGVyOjFweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LDAuMTApOwogICAgbWluLWhlaWdodDo3MnZoOwogICAgYm94LXNoYWRvdzoKICAgICAgaW5zZXQgMCAwIDMwcHggcmdiYSg1NywyMDgsMjU1LDAuMDQpLAogICAgICBpbnNldCAwIC00MHB4IDgwcHggcmdiYSgwLDAsMCwwLjI1KTsKICB9CgogIC5waW5iYWxsLXNjcmVlbiBpZnJhbWV7CiAgICBkaXNwbGF5OmJsb2NrOwogICAgd2lkdGg6MTAwJTsKICAgIGhlaWdodDo3MnZoOwogICAgbWluLWhlaWdodDo3MjBweDsKICAgIGJvcmRlcjowOwogICAgYmFja2dyb3VuZDojMDAwOwogIH0KCiAgLnBpbmJhbGwtYmFkZ2V7CiAgICBtYXJnaW46MjBweCBhdXRvIDA7CiAgICB0ZXh0LWFsaWduOmNlbnRlcjsKICAgIGZvbnQtZmFtaWx5OidPcmJpdHJvbicsIHNhbnMtc2VyaWY7CiAgICBmb250LXNpemU6MTJweDsKICAgIGxldHRlci1zcGFjaW5nOjAuMjRlbTsKICAgIHRleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTsKICAgIGNvbG9yOnJnYmEoMjU1LDI1NSwyNTUsMC43KTsKICB9CgogIC5waW5iYWxsLWJhZGdlIHNwYW57CiAgICBkaXNwbGF5OmlubGluZS1ibG9jazsKICAgIHBhZGRpbmc6MTBweCAxNnB4OwogICAgYm9yZGVyLXJhZGl1czo5OTlweDsKICAgIGJhY2tncm91bmQ6cmdiYSgyNTUsMjU1LDI1NSwwLjA1KTsKICAgIGJvcmRlcjoxcHggc29saWQgcmdiYSgyNTUsMjU1LDI1NSwwLjA4KTsKICB9CgogIEBtZWRpYSAobWF4LXdpZHRoOiA5MDBweCl7CiAgICAucGluYmFsbC1wYWdlewogICAgICBwYWRkaW5nOjI0cHggMTBweCA1MHB4OwogICAgfQoKICAgIC5waW5iYWxsLWZyYW1lewogICAgICBwYWRkaW5nOjE0cHg7CiAgICAgIGJvcmRlci1yYWRpdXM6MjRweDsKICAgIH0KCiAgICAucGluYmFsbC1zY3JlZW57CiAgICAgIGJvcmRlci1yYWRpdXM6MThweDsKICAgICAgbWluLWhlaWdodDo2MnZoOwogICAgfQoKICAgIC5waW5iYWxsLXNjcmVlbiBpZnJhbWV7CiAgICAgIGhlaWdodDo2MnZoOwogICAgICBtaW4taGVpZ2h0OjU2MHB4OwogICAgfQoKICAgIC5waW5iYWxsLXJhaWwtbGVmdCwKICAgIC5waW5iYWxsLXJhaWwtcmlnaHR7CiAgICAgIHdpZHRoOjcycHg7CiAgICAgIG9wYWNpdHk6MC40NTsKICAgIH0KICB9Cjwvc3R5bGU+Cgo8ZGl2IGNsYXNzPSJwaW5iYWxsLXBhZ2UiPgogIDxkaXYgY2xhc3M9InBpbmJhbGwtcmFpbC1sZWZ0Ij48L2Rpdj4KICA8ZGl2IGNsYXNzPSJwaW5iYWxsLXJhaWwtcmlnaHQiPjwvZGl2PgoKICA8ZGl2IGNsYXNzPSJwaW5iYWxsLXNoZWxsIj4KICAgIDxoZWFkZXIgY2xhc3M9InBpbmJhbGwtaGVhZGVyIj4KICAgICAgPGRpdiBjbGFzcz0icGluYmFsbC1raWNrZXIiPkFyY2FkZSAvIFBpbmJhbGwgLyBQbGF5PC9kaXY+CiAgICAgIDxoMSBjbGFzcz0icGluYmFsbC10aXRsZSI+TWVpbiBTcGllbDwvaDE+CiAgICAgIDxwIGNsYXNzPSJwaW5iYWxsLXN1YnRpdGxlIj4KICAgICAgICBFaW4gSGludGVyZ3J1bmQgd2llIGVpbiBGbGlwcGVya2FzdGVuOiBkdW5rZWwsIGxldWNodGVuZCwgbWl0IFRpZWZlLAogICAgICAgIEdsYXMsIE5lb24gdW5kIGVpbmVyIGtsYXJlbiBCw7xobmUgZsO8ciBkZWluIFNwaWVsLgogICAgICA8L3A+CiAgICA8L2hlYWRlcj4KCiAgICA8c2VjdGlvbiBjbGFzcz0icGluYmFsbC1mcmFtZSI+CiAgICAgIDxkaXYgY2xhc3M9InBpbmJhbGwtbGlnaHRzIj4KICAgICAgICA8c3BhbiBjbGFzcz0icGluYmFsbC1saWdodCBsaWdodDEiPjwvc3Bhbj4KICAgICAgICA8c3BhbiBjbGFzcz0icGluYmFsbC1saWdodCBsaWdodDIiPjwvc3Bhbj4KICAgICAgICA8c3BhbiBjbGFzcz0icGluYmFsbC1saWdodCBsaWdodDMiPjwvc3Bhbj4KICAgICAgICA8c3BhbiBjbGFzcz0icGluYmFsbC1saWdodCBsaWdodDEiPjwvc3Bhbj4KICAgICAgICA8c3BhbiBjbGFzcz0icGluYmFsbC1saWdodCBsaWdodDIiPjwvc3Bhbj4KICAgICAgPC9kaXY+CgogICAgICA8ZGl2IGNsYXNzPSJwaW5iYWxsLXNjcmVlbiI+CiAgICAgICAgPGlmcmFtZQogICAgICAgICAgc3JjPSJodHRwczovL2FsbGVzd2FzYmV3ZWd0LmNoL2ltYWdlcy9zdGFydC5odG1sIgogICAgICAgICAgdGl0bGU9Ik1laW4gU3BpZWwiCiAgICAgICAgICBsb2FkaW5nPSJsYXp5IgogICAgICAgICAgYWxsb3dmdWxsc2NyZWVuPgogICAgICAgIDwvaWZyYW1lPgogICAgICA8L2Rpdj4KCiAgICAgIDxkaXYgY2xhc3M9InBpbmJhbGwtYmFkZ2UiPgogICAgICAgIDxzcGFuPlByZXNzIFN0YXJ0PC9zcGFuPgogICAgICA8L2Rpdj4KICAgIDwvc2VjdGlvbj4KICA8L2Rpdj4KPC9kaXY+BY2w5sIOKQEBAQMBGwsADgADAAEAAQACERG1BAEhAa4CAYQCAYIBAdQBAbABAWIBVQGsAQFhAUoBqQMBowEBlQEBiwEBjQEBYQF0AZECASwHZgcqB4UBB58CB\/kBATcBOgFxAacaDQoJ1FuOsZPwCAMAqg0BlAIBqirR7efRBgEAAMmHnZkEAgAAA70No6Hm5gEBAAQ=\",\"updateId\":803785060}","footnotes":""},"categories":[1],"tags":[],"class_list":["post-622","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/schautdoch.ch\/index.php?rest_route=\/wp\/v2\/posts\/622","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/schautdoch.ch\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/schautdoch.ch\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/schautdoch.ch\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/schautdoch.ch\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=622"}],"version-history":[{"count":6,"href":"https:\/\/schautdoch.ch\/index.php?rest_route=\/wp\/v2\/posts\/622\/revisions"}],"predecessor-version":[{"id":634,"href":"https:\/\/schautdoch.ch\/index.php?rest_route=\/wp\/v2\/posts\/622\/revisions\/634"}],"wp:attachment":[{"href":"https:\/\/schautdoch.ch\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=622"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/schautdoch.ch\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=622"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/schautdoch.ch\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=622"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}