{"id":2748,"date":"2025-07-07T23:40:18","date_gmt":"2025-07-07T23:40:18","guid":{"rendered":"https:\/\/godsgalaxygame.com\/GGG\/?page_id=2748"},"modified":"2026-10-15T18:47:05","modified_gmt":"2026-10-15T18:47:05","slug":"cultural","status":"publish","type":"page","link":"https:\/\/godsgalaxygame.com\/GGG\/cultural\/","title":{"rendered":"Cultural"},"content":{"rendered":"\r\n<!-- =====================\r\nPOP-UP BEFORE RESERVATION (LEVEL 3 \u2192 EVOLUTION TOURS)\r\n===================== -->\r\n\r\n<style>\r\n  #evoReservePopupOverlay {\r\n    position: fixed;\r\n    top: 0; left: 0;\r\n    width: 100%; height: 100%;\r\n    background: rgba(0,0,0,0.85);\r\n    display: none;\r\n    justify-content: center;\r\n    align-items: center;\r\n    z-index: 999999;\r\n  }\r\n\r\n  #evoReservePopup {\r\n    background: #111;\r\n    border: 2px solid #ffffff55;\r\n    padding: 30px 35px;\r\n    border-radius: 18px;\r\n    text-align: center;\r\n    width: 300px;\r\n    box-shadow: 0 0 25px #ffffff88;\r\n  }\r\n\r\n  #evoReservePopup h2 {\r\n    color: white;\r\n    font-size: 20px;\r\n    margin-bottom: 25px;\r\n  }\r\n\r\n  .evo-reserve-btn {\r\n    padding: 10px 20px;\r\n    margin: 8px;\r\n    border-radius: 10px;\r\n    border: none;\r\n    cursor: pointer;\r\n    font-weight: bold;\r\n    font-size: 15px;\r\n  }\r\n\r\n  .evo-yes {\r\n    background: #6a00ff;\r\n    color: white;\r\n    box-shadow: 0 0 12px #6a00ff;\r\n  }\r\n\r\n  .evo-no {\r\n    background: #ff0066;\r\n    color: white;\r\n    box-shadow: 0 0 12px #ff0066;\r\n  }\r\n<\/style>\r\n\r\n<div id=\"evoReservePopupOverlay\">\r\n  <div id=\"evoReservePopup\">\r\n    <h2>Would you like to see Evolution Tours of the area?<\/h2>\r\n    <button class=\"evo-reserve-btn evo-yes\" onclick=\"goToEvolution()\">Yes<\/button>\r\n    <button class=\"evo-reserve-btn evo-no\" onclick=\"handleReserveClick()\">No<\/button>\r\n  <\/div>\r\n<\/div>\r\n\r\n<script>\r\n  const EVOLUTION_URL = \"\/GGG\/evolution-tours\/\";          \/\/ Level 4 page\r\n  const ELEMENTS_URL_3 = \"https:\/\/godsgalaxygame.com\/GGG\/medayork-pyramid-2\/?travelclub=1\"; \/\/ Same Elements Club (change if needed)\r\n\r\n  function openEvolutionPopup() {\r\n    document.getElementById(\"evoReservePopupOverlay\").style.display = \"flex\";\r\n  }\r\n\r\n  function goToEvolution() {\r\n  if (window.openEvolutionGate) {\r\n    window.openEvolutionGate(); \/\/ opens Evolution popup from footer\r\n  } else {\r\n    window.location.href = EVOLUTION_URL; \/\/ fallback if footer missing\r\n  }\r\n}\r\n\r\n  function continueReservationFromThematic() {\r\n    window.location.href = ELEMENTS_URL_3;\r\n  }\r\n<\/script>\r\n\r\n\r\n\r\n<!-- BLOQUE 2 - Cultural Cube V19 Completo + Mapa Circular + API -->\r\n<style>\r\n  @media (max-width: 768px) {\r\n    #glowMapContainer {\r\n      margin-top: -55px !important;\r\n    }\r\n  }\r\n<\/style>\r\n<div id=\"culturalCubeContainer\" style=\"opacity:1; pointer-events: auto; transition: opacity 0.6s ease;\">\r\n  <!-- ESCENA CUBO -->\r\n  <div class=\"cube-scene\" style=\"width:180px; height:180px; perspective:1000px; position:fixed; bottom:20px; left:20px; z-index:1000;\">\r\n    <div class=\"cube\" id=\"culturalCube\" style=\"width:100%; height:100%; position:relative; transform-style:preserve-3d; transform:rotateX(0deg) rotateY(0deg); transition:transform 0.3s ease;\">\r\n   <!-- FRONT -->\r\n      <div class=\"face front\" style=\"width:180px; height:180px; background:transparent; border:2px solid white; box-shadow:0 0 20px white; position:absolute; transform:rotateY(0deg) translateZ(90px); display:flex; flex-direction:column; justify-content:center; align-items:center; font-family:Orbitron;\">\r\n        <div style=\"font-size:42px; color:white; text-shadow:0 0 15px white;\">\ud83d\udd4c<\/div>\r\n        <div style=\"font-size:16px; color:white; font-weight:bold; text-shadow:0 0 10px white; margin-top:6px;\">Cultural<\/div>\r\n      <\/div>\r\n\r\n      <!-- Cara Trasera del Cubo: Transportation -->\r\n<!-- Back Face - Transportation Cube - Nuevo Dise\u00f1o con Botones Circulares -->\r\n<div class=\"face back\" style=\"width:180px; height:180px; background:#000; border:2px solid white; box-shadow:0 0 15px white; position:absolute; transform:rotateY(180deg) translateZ(90px); font-family:Orbitron,sans-serif;\">\r\n\r\n  <!-- Sol central -->\r\n  <img decoding=\"async\" src=\"http:\/\/godsgalaxygame.com\/GGG\/wp-content\/uploads\/2025\/06\/1000065346-scaled.jpg\"\r\n       style=\"width:70px; height:70px; border-radius:50%; position:absolute; top:50%; left:50%; transform:translate(-50%, -50%); box-shadow:0 0 20px white;\" \/>\r\n\r\n  <!-- Reserve -->\r\n  <a onclick=\"openEvolutionPopup()\"\r\n   style=\"position:absolute; top:8px; left:8px; width:44px; height:44px; border-radius:50%; background-image:url('http:\/\/godsgalaxygame.com\/GGG\/wp-content\/uploads\/2025\/06\/Screenshot_20240108-225452_Chrome-scaled.jpg'); background-size:cover; box-shadow:0 0 12px cyan; cursor:pointer;\"\r\n   title=\"Reserve\"><\/a>\r\n\r\n  <!-- Bliss Coin -->\r\n  <div onclick=\"openBlissCoinPopup()\"\r\n       style=\"position:absolute; top:8px; right:8px; width:44px; height:44px; border-radius:50%; background:#222; font-size:40px; display:flex; justify-content:center; align-items:center; color:white; box-shadow:0 0 10px cyan; cursor:pointer;\"\r\n       title=\"Pay with Bliss Coin\">\ud83d\udcb3<\/div>\r\n\r\n   <!-- Coupon Button (Bottom-Left Corner) -->\r\n<a href=\"https:\/\/godsgalaxygame.com\/GGG\/discounts-gift\/\"\r\n   target=\"_blank\"\r\n   style=\"position: absolute;\r\n          bottom: 8px;\r\n          left: 8px;\r\n          width: 44px;\r\n          height: 44px;\r\n          border-radius: 50%;\r\n          background-image: url('http:\/\/godsgalaxygame.com\/GGG\/wp-content\/uploads\/2025\/06\/Screenshot_20240108-225546_Chrome.jpg');\r\n          background-size: cover;\r\n          box-shadow: 0 0 12px cyan;\r\n          cursor: pointer;\"\r\n   title=\"Get Coupons\">\r\n<\/a>\r\n\r\n\r\n  <!-- Become a Host -->\r\n  <a href=\"https:\/\/luxus2.godaddysites.com\/\" target=\"_blank\"\r\n     style=\"position:absolute; bottom:8px; right:8px; width:44px; height:44px; border-radius:50%; background-image:url('http:\/\/godsgalaxygame.com\/GGG\/wp-content\/uploads\/2025\/06\/Screenshot_20240108-224514_Chrome-scaled.jpg'); background-size:cover; box-shadow:0 0 12px cyan;\"\r\n     title=\"Become a Host\"><\/a>\r\n<\/div>\r\n\r\n\r\n\r\n      <!-- RIGHT (Art) -->\r\n      <div class=\"face right\" style=\"width:180px; height:180px; background:#000; border:2px solid beige; box-shadow:0 0 15px beige; position:absolute; transform:rotateY(90deg) translateZ(90px); font-family:Orbitron;\">\r\n        <button onclick=\"showHostButtons('art-graf')\" style=\"position:absolute; top:8px; left:27px; width:126px; height:17px; border:1px solid beige; color:white; background:transparent;\">Graffiti<\/button>\r\n        <button onclick=\"showHostButtons('art-loca')\" style=\"position:absolute; bottom:8px; left:27px; width:126px; height:17px; border:1px solid beige; color:white; background:transparent;\">Local<\/button>\r\n        <button onclick=\"showHostButtons('art-town')\" style=\"position:absolute; top:27px; left:8px; height:126px; width:17px; border:1px solid beige; color:white; writing-mode:vertical-rl; background:transparent;\">Towns<\/button>\r\n        <button onclick=\"showHostButtons('art-stamp')\" style=\"position:absolute; top:27px; right:8px; height:126px; width:17px; border:1px solid beige; color:white; writing-mode:vertical-lr; background:transparent;\">Stamp Art<\/button>\r\n        <div style=\"position:absolute; top:50%; left:50%; transform:translate(-50%, -50%); text-align:center;\">\r\n          <div style=\"color:beige; font-size:16px; font-weight:bold;\">Art<\/div>\r\n          <img decoding=\"async\" src=\"http:\/\/godsgalaxygame.com\/GGG\/wp-content\/uploads\/2025\/06\/Screenshot_20250612_075245_Gallery.jpg\" style=\"width:65px; height:65px; border-radius:50%; box-shadow:0 0 12px beige;\">\r\n        <\/div>\r\n      <\/div>\r\n\r\n      <!-- LEFT (Rivers) -->\r\n      <div class=\"face left\" style=\"width:180px; height:180px; background:#000; border:2px solid #00ccff; box-shadow:0 0 15px #00ccff; position:absolute; transform:rotateY(-90deg) translateZ(90px); font-family:Orbitron;\">\r\n        <button onclick=\"showHostButtons('rivers-lights')\" style=\"position:absolute; top:8px; left:27px; width:126px; height:17px; border:1px solid #00ccff; color:white; background:transparent;\">Lights<\/button>\r\n        <button onclick=\"showHostButtons('rivers-farmer')\" style=\"position:absolute; bottom:8px; left:27px; width:126px; height:17px; border:1px solid #00ccff; color:white; background:transparent;\">Farmers<\/button>\r\n        <button onclick=\"showHostButtons('rivers-bike')\" style=\"position:absolute; top:27px; left:8px; height:126px; width:17px; border:1px solid #00ccff; color:white; writing-mode:vertical-rl; background:transparent;\">Bike<\/button>\r\n        <button onclick=\"showHostButtons('rivers-scaven')\" style=\"position:absolute; top:27px; right:8px; height:126px; width:17px; border:1px solid #00ccff; color:white; writing-mode:vertical-lr; background:transparent;\">Scavenger<\/button>\r\n        <div style=\"position:absolute; top:50%; left:50%; transform:translate(-50%, -50%); text-align:center;\">\r\n          <div style=\"color:#00ccff; font-size:16px; font-weight:bold;\">Rivers<\/div>\r\n          <img decoding=\"async\" src=\"http:\/\/godsgalaxygame.com\/GGG\/wp-content\/uploads\/2025\/06\/Screenshot_20250612_075344_Gallery.jpg\" style=\"width:65px; height:65px; border-radius:50%; box-shadow:0 0 12px #00ccff;\">\r\n        <\/div>\r\n      <\/div>\r\n\r\n      <!-- TOP (Enotours) -->\r\n      <div class=\"face top\" style=\"width:180px; height:180px; background:#000; border:2px solid green; box-shadow:0 0 15px #33ff33; position:absolute; transform:rotateX(90deg) translateZ(90px); font-family:Orbitron;\">\r\n        <button onclick=\"showHostButtons('eno-flower')\" style=\"position:absolute; top:8px; left:27px; width:126px; height:17px; border:1px solid green; color:white; background:transparent;\">Flowers<\/button>\r\n        <button onclick=\"showHostButtons('eno-coff')\" style=\"position:absolute; bottom:8px; left:27px; width:126px; height:17px; border:1px solid green; color:white; background:transparent;\">Coffee<\/button>\r\n        <button onclick=\"showHostButtons('eno-wine')\" style=\"position:absolute; top:27px; left:8px; height:126px; width:17px; border:1px solid green; color:white; writing-mode:vertical-rl; background:transparent;\">Wine<\/button>\r\n        <button onclick=\"showHostButtons('eno-fruit')\" style=\"position:absolute; top:27px; right:8px; height:126px; width:17px; border:1px solid green; color:white; writing-mode:vertical-lr; background:transparent;\">Fruits<\/button>\r\n        <div style=\"position:absolute; top:50%; left:50%; transform:translate(-50%, -50%); text-align:center;\">\r\n          <div style=\"color:#33ff33; font-size:16px; font-weight:bold;\">Enotours<\/div>\r\n          <img decoding=\"async\" src=\"http:\/\/godsgalaxygame.com\/GGG\/wp-content\/uploads\/2025\/06\/Screenshot_20250612_075305_Gallery.jpg\" style=\"width:65px; height:65px; border-radius:50%; box-shadow:0 0 12px #33ff33;\">\r\n        <\/div>\r\n      <\/div>\r\n\r\n      <!-- BOTTOM (Fenix) -->\r\n      <div class=\"face bottom\" style=\"width:180px; height:180px; background:#000; border:2px solid red; box-shadow:0 0 15px red; position:absolute; transform:rotateX(-90deg) translateZ(90px); font-family:Orbitron;\">\r\n        <button onclick=\"showHostButtons('feni-moveme')\" style=\"position:absolute; top:8px; left:27px; width:126px; height:17px; border:1px solid red; color:white; background:transparent;\">Movements<\/button>\r\n        <button onclick=\"showHostButtons('feni-elpeno')\" style=\"position:absolute; bottom:8px; left:27px; width:126px; height:17px; border:1px solid red; color:white; background:transparent;\">El Pe\u00f1ol<\/button>\r\n        <button onclick=\"showHostButtons('feni-drug')\" style=\"position:absolute; top:27px; left:8px; height:126px; width:17px; border:1px solid red; color:white; writing-mode:vertical-rl; background:transparent;\">Drug Lord<\/button>\r\n        <button onclick=\"showHostButtons('feni-music')\" style=\"position:absolute; top:27px; right:8px; height:126px; width:17px; border:1px solid red; color:white; writing-mode:vertical-lr; background:transparent;\">Music<\/button>\r\n        <div style=\"position:absolute; top:50%; left:50%; transform:translate(-50%, -50%); text-align:center;\">\r\n          <div style=\"color:red; font-size:16px; font-weight:bold;\">Fenix<\/div>\r\n          <img decoding=\"async\" src=\"http:\/\/godsgalaxygame.com\/GGG\/wp-content\/uploads\/2025\/06\/Screenshot_20250612_075325_Gallery.jpg\" style=\"width:65px; height:65px; border-radius:50%; box-shadow:0 0 12px red;\">\r\n        <\/div>\r\n      <\/div>\r\n\r\n    <\/div>\r\n  <\/div>\r\n\r\n  <!-- MAPA CIRCULAR -->\r\n  <div id=\"glowMapContainer\" style=\"opacity:1; pointer-events:auto; transition: opacity 0.6s ease; margin: 0 auto; margin-top: -95px; margin-bottom: 40px; width: 320px; height: 320px; border-radius: 50%; overflow: hidden; border: 6px solid rgba(0,255,255,0.6); box-shadow: 0 0 25px cyan; position: relative; z-index: 900;\">\r\n    <div id=\"googleMap\" style=\"width:100%; height:100%;\"><\/div>\r\n  <\/div>\r\n<\/div>\r\n\r\n<!-- Google Maps API (clave v\u00e1lida y correcta) -->\r\n<script src=\"https:\/\/maps.googleapis.com\/maps\/api\/js?key=AIzaSyDLPhx98z9AgoqXS6VeoESE9NV6URuOhiE&#038;callback=initMap\" async defer><\/script>\r\n\r\n<script>\r\n  function activateculturalCube() {\r\n    \/\/ Oculta el grid de opciones\r\n    const rrGrid = document.getElementById(\"rrGrid\");\r\n    if (rrGrid) {\r\n      rrGrid.style.display = \"none\";\r\n    }\r\n\r\n    \/\/ Muestra el contenedor del cubo Cultural\r\n    const container = document.getElementById(\"culturalContainer\");\r\n    if (container) {\r\n      container.style.opacity = \"1\";\r\n      container.style.pointerEvents = \"auto\";\r\n    }\r\n\r\n    \/\/ Muestra el mapa\r\n    const map = document.getElementById(\"glowMapContainer\");\r\n    if (map) {\r\n      map.style.opacity = \"1\";\r\n      map.style.pointerEvents = \"auto\";\r\n    }\r\n\r\n    \/\/ Reinicia el mapa si es necesario\r\n    if (typeof initMap === \"function\") {\r\n      initMap();\r\n    }\r\n  }\r\n<\/script>\r\n<script>\r\n function initMap() {\r\n  const map = new google.maps.Map(document.getElementById(\"googleMap\"), {\r\n    center: { lat: 6.2414088, lng: -75.22951 },  \/\/ Bliss Glamping\r\n    zoom: 15,\r\n    disableDefaultUI: true,\r\n    gestureHandling: \"greedy\"\r\n  });\r\n\r\n  \/\/ \ud83d\udfe2 Add this to show the marker\r\n  const marker = new google.maps.Marker({\r\n    position: { lat: 6.2414088, lng: -75.22951 },\r\n    map: map,\r\n    title: \"Bliss Glamping\"\r\n  });\r\n\r\n  \/\/ Optional: save the map to global variable if needed later\r\n  window.ggMap = map;\r\n}\r\n<\/script>\r\n<!-- POP-UP para Bliss Coin -->\r\n<div id=\"blissCoinPopup\" style=\"display:none; position:fixed; top:0; left:0; width:100%; height:100%; background:rgba(0,0,0,0.9); z-index:9999; justify-content:center; align-items:center; font-family:Orbitron;\">\r\n  <div style=\"background:#111; padding:30px 20px; border:2px solid cyan; border-radius:20px; color:white; width:300px; text-align:center; box-shadow:0 0 20px cyan;\">\r\n    <h3 style=\"font-size:18px;\">\ud83d\udcb3 Pay with Bliss Coin<\/h3>\r\n    <p style=\"font-size:14px;\">Enter your digital wallet #:<\/p>\r\n    <input type=\"text\" placeholder=\"Your Wallet #\" style=\"width:90%; padding:8px; border-radius:10px; border:1px solid white; background:#000; color:white; margin-top:8px;\" \/>\r\n    <p style=\"margin-top:14px;\">Send payment to:<\/p>\r\n    <div style=\"margin:8px auto; padding:6px; background:#222; border:1px solid cyan; border-radius:8px;\">\r\n      <code style=\"font-size:13px;\">HOST-WALLET-ADDRESS-123<\/code>\r\n    <\/div>\r\n    <button onclick=\"closeBlissCoinPopup()\" style=\"margin-top:12px; padding:6px 16px; border-radius:10px; background:cyan; border:none; color:#000; font-weight:bold; cursor:pointer;\">\r\n      Close\r\n    <\/button>\r\n  <\/div>\r\n<\/div>\r\n\r\n<script>\r\n  function openBlissCoinPopup() {\r\n    document.getElementById('blissCoinPopup').style.display = 'flex';\r\n  }\r\n  function closeBlissCoinPopup() {\r\n    document.getElementById('blissCoinPopup').style.display = 'none';\r\n  }\r\n<\/script>\r\n\r\n\r\n\r\n<!-- ============================\r\nGLOBAL PREVIEW + SHOW ROUTE\r\n(para Cultural \/ Level 3)\r\n============================ -->\r\n<script>\r\n(() => {\r\n  \/* ============ 1) VIDEOS POR SUBOPCI\u00d3N (PREVIEW) ============ *\/\r\n  \/\/ La clave debe ser una clase que tenga el c\u00edrculo .host-circle\r\n  const PREVIEW_MEDIA = {\r\n    \/* ART *\/\r\n    \"art-graf\": {\r\n      type: \"video\",\r\n      src: \"https:\/\/youtu.be\/wz1s1RH5pfw?si=aLS-Lb0cbynt_BqP\"   \/\/ Art Graffiti\r\n    },\r\n    \"art-loca\": {\r\n      type: \"video\",\r\n      src: \"https:\/\/youtu.be\/YyyfZhGwWTU?si=iZ8bwNCXvywIoS4E\"   \/\/ Art Local\r\n    },\r\n    \"art-town\": {\r\n      type: \"video\",\r\n      src: \"https:\/\/youtu.be\/YyyfZhGwWTU?si=67-jdCCgg_p2lGAc\"  \/\/ Art Towns\r\n    },\r\n    \/* (Art Stamp no tiene video a\u00fan: usar\u00e1 la imagen del c\u00edrculo) *\/\r\n\r\n    \/* RIVERS *\/\r\n    \"rivers-lights\": {\r\n      type: \"video\",\r\n      src: \"https:\/\/youtu.be\/uMZb8U67o24?si=went4mcjDEe3k-Jb\"   \/\/ River Lights\r\n    },\r\n    \"rivers-farmer\": {\r\n      type: \"video\",\r\n      src: \"https:\/\/youtu.be\/UBUHMSaSOv4?si=BZnqONhmnjAfnopq\"  \/\/ River Farmers\r\n    },\r\n    \"rivers-bike\": {\r\n      type: \"video\",\r\n      src: \"https:\/\/youtu.be\/tATrQaDving?si=-34eCnnM3BkHRc1_\"  \/\/ River Bike\r\n    },\r\n    \"rivers-scaven\": {\r\n      type: \"video\",\r\n      src: \"https:\/\/youtu.be\/vkgX58ojl2A?si=OrECpokFd0dC95KA\"  \/\/ River Scavenger\r\n    },\r\n\r\n    \/* ENOTOURS *\/\r\n    \"eno-flower\": {\r\n      type: \"video\",\r\n      src: \"https:\/\/youtu.be\/XMPdpZBwxZY?si=xmlGepTcLLuUpV3x\"  \/\/ Enotour Flowers\r\n    },\r\n    \"eno-coff\": {\r\n      type: \"video\",\r\n      src: \"https:\/\/youtu.be\/ydcEqvitMmo?si=FFOy7yWFq37BBs6J\"  \/\/ Enotours Coffee\r\n    },\r\n    \"eno-wine\": {\r\n      type: \"video\",\r\n      src: \"https:\/\/youtu.be\/3Yz6K-9ceps?si=J88xF-YrV1iz99WO\"  \/\/ Enotours Wine\r\n    },\r\n    \"eno-fruit\": {\r\n      type: \"video\",\r\n      src: \"https:\/\/youtu.be\/y3tugI4w0OE?si=YL5_zHTpOZhiBtSi\"  \/\/ Enotours Fruits\r\n    },\r\n\r\n    \/* FENIX *\/\r\n    \"feni-moveme\": {\r\n      type: \"video\",\r\n      src: \"https:\/\/youtu.be\/bEvu73isGQk?si=V6eYeTE41KiXHn28\"  \/\/ Fenix Movement\r\n    },\r\n    \"feni-elpeno\": {\r\n      type: \"video\",\r\n      src: \"https:\/\/youtu.be\/QK6aBDxySgk\"                      \/\/ Fenix El Pe\u00f1ol\r\n    },\r\n    \"feni-drug\": {\r\n      type: \"video\",\r\n      src: \"https:\/\/youtu.be\/2fIMcpFtkEI?si=7q1P3U5UNb7--UH1\"  \/\/ Fenix Drug Lord\r\n    },\r\n    \"feni-music\": {\r\n      type: \"video\",\r\n      src: \"https:\/\/youtu.be\/1ZR7zFh5MXs?si=zCE4d1SQppdOJJdd\"  \/\/ Fenix Music\r\n    }\r\n  };\r\n\r\n  \/* ============ 1.5) RUTAS KML POR SUBOPCI\u00d3N (SHOW ROUTE) ============ *\/\r\n  const ROUTE_KMLS = {\r\n    \/* ART *\/\r\n    \"art-graf\": \"https:\/\/godsgalaxygame.com\/Kml\/Art%20Graffiti.kml\",\r\n    \"art-loca\": \"https:\/\/godsgalaxygame.com\/Kml\/Art%20Local.kml\",\r\n    \"art-town\": \"https:\/\/godsgalaxygame.com\/Kml\/Art%20Towns.kml\",\r\n    \/\/ \"art-stamp\" sin KML todav\u00eda\r\n\r\n    \/* RIVERS *\/\r\n    \"rivers-lights\":   \"https:\/\/godsgalaxygame.com\/Kml\/River%20Lights.kml\",\r\n    \"rivers-farmer\":   \"https:\/\/godsgalaxygame.com\/Kml\/River%20Farmers.kml\",\r\n    \"rivers-bike\":     \"https:\/\/godsgalaxygame.com\/Kml\/River%20Bike.kml\",\r\n    \"rivers-scaven\":   \"https:\/\/godsgalaxygame.com\/Kml\/River%20Scavenger.kml\",\r\n\r\n    \/* ENOTOURS *\/\r\n    \"eno-flower\":      \"https:\/\/godsgalaxygame.com\/Kml\/Enotour%20Flowers.kml\",\r\n    \"eno-coff\":        \"https:\/\/godsgalaxygame.com\/Kml\/Enotours%20Coffee.kml\",\r\n    \"eno-wine\":        \"https:\/\/godsgalaxygame.com\/Kml\/Enotours%20Wine.kml\",\r\n    \"eno-fruit\":       \"https:\/\/godsgalaxygame.com\/Kml\/Enotours%20Fruits.kml\",\r\n\r\n    \/* FENIX *\/\r\n    \"feni-moveme\":     \"https:\/\/godsgalaxygame.com\/Kml\/Fenix%20Movement.kml\",\r\n    \"feni-elpeno\":     \"https:\/\/godsgalaxygame.com\/Kml\/Fenix%20El%20Pe%C3%B1ol.kml\",\r\n    \"feni-drug\":       \"https:\/\/godsgalaxygame.com\/Kml\/Fenix%20Drug%20Lord.kml\",\r\n    \"feni-music\":      \"https:\/\/godsgalaxygame.com\/Kml\/Fenix%20Music.kml\"\r\n  };\r\n\r\n  \/* ============ 2) ESTADO INTERNO ============ *\/\r\n  let state = { key: null, type: null, src: null, title: null };\r\n  let currentKmlLayer = null;\r\n\r\n  const until = (fn, timeout = 8000, every = 120) => new Promise((res, rej) => {\r\n    const t0 = performance.now();\r\n    const tick = () => {\r\n      const out = fn();\r\n      if (out) return res(out);\r\n      if (performance.now() - t0 > timeout) return rej(new Error('timeout'));\r\n      setTimeout(tick, every);\r\n    };\r\n    tick();\r\n  });\r\n\r\n  const getBgURL = (el) => {\r\n    const bg = (getComputedStyle(el).backgroundImage || '').trim();\r\n    return bg.replace(\/^url\\((['\"]?)(.*)\\1\\)$\/, '$2');\r\n  };\r\n\r\n  const make = (tag, attrs = {}, html = '') => {\r\n    const el = document.createElement(tag);\r\n    Object.entries(attrs).forEach(([k, v]) => el.setAttribute(k, v));\r\n    if (html) el.innerHTML = html;\r\n    return el;\r\n  };\r\n\r\n  \/\/ Convierte YouTube\/Vimeo en iframe con AUTOPLAY\r\n  const embedFrom = (url) => {\r\n    if (\/youtube\\.com\\\/embed\\\/\/i.test(url)) {\r\n      const hasQuery = url.includes(\"?\");\r\n      return `<iframe src=\"${url}${hasQuery ? \"&#038;\" : \"?\"}autoplay=1&#038;rel=0&#038;playsinline=1\"\r\n        allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\"\r\n        allowfullscreen><\/iframe>`;\r\n    }\r\n\r\n    const yt = url.match(\/(?:youtu\\.be\\\/|youtube\\.com\\\/watch\\?v=)([\\w\\-]+)\/i);\r\n    const vm = url.match(\/vimeo\\.com\\\/(\\d+)\/i);\r\n\r\n    if (yt) {\r\n      const id = yt[1];\r\n      return `<iframe src=\"https:\/\/www.youtube.com\/embed\/${id}?autoplay=1&#038;rel=0&#038;playsinline=1\"\r\n        allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\"\r\n        allowfullscreen><\/iframe>`;\r\n    }\r\n\r\n    if (vm) {\r\n      const id = vm[1];\r\n      return `<iframe src=\"https:\/\/player.vimeo.com\/video\/${id}?autoplay=1\"\r\n        allow=\"autoplay; fullscreen; picture-in-picture; clipboard-write\"\r\n        allowfullscreen><\/iframe>`;\r\n    }\r\n\r\n    return `<a href=\"${url}\" target=\"_blank\" style=\"color:#00ffff; font-weight:900; text-decoration:underline;\">Open video<\/a>`;\r\n  };\r\n\r\n  \/* ============ 3) ESTILOS + UI EN EL MAPA ============ *\/\r\n  function injectStyles() {\r\n    if (document.getElementById('ggg-preview-styles')) return;\r\n    const css = `\r\n#glowMapContainer{ position:relative; }\r\n#accSeePreview, #accShowRoute{\r\n  position:absolute; left:50%; transform:translateX(-50%);\r\n  padding:8px 14px;\r\n  border-radius:999px; border:2px solid rgba(0,255,255,.7);\r\n  background:rgba(0,0,0,.65); color:#eafcff;\r\n  font-family:Orbitron,system-ui,sans-serif; font-weight:900; letter-spacing:.2px;\r\n  box-shadow:0 0 16px rgba(0,255,255,.45);\r\n  cursor:pointer; z-index:1200; display:none;\r\n}\r\n#accSeePreview{ bottom:46px; }\r\n#accShowRoute{ bottom:10px; }\r\n\r\n#accSeePreview:hover, #accShowRoute:hover{\r\n  box-shadow:0 0 22px rgba(0,255,255,.85);\r\n}\r\n#accPreviewOverlay{\r\n  position:absolute; inset:0; display:none; place-items:center;\r\n  background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,.30), rgba(0,0,0,.65) 70%);\r\n  z-index:1300;\r\n}\r\n.acc-preview-circle{\r\n  width: clamp(200px, 62%, 300px); aspect-ratio:1\/1;\r\n  border-radius:50%; border:4px solid rgba(0,255,255,.75);\r\n  box-shadow: 0 0 28px rgba(0,255,255,.6), inset 0 0 22px rgba(0,255,255,.25);\r\n  background:#000; overflow:hidden; position:relative;\r\n  display:grid; place-items:center;\r\n}\r\n.acc-closeX{\r\n  position:absolute; top:6px; right:8px; z-index:2;\r\n  border:0; background:rgba(0,0,0,.55); color:#9fefff;\r\n  font-size:20px; font-weight:900; width:28px; height:28px;\r\n  border-radius:50%; cursor:pointer; line-height:26px;\r\n  box-shadow:0 0 10px rgba(0,255,255,.35);\r\n}\r\n#accPreviewMedia{ width:92%; height:92%; display:grid; place-items:center; }\r\n#accPreviewMedia img{ width:100%; height:100%; object-fit:cover; border-radius:50%; display:block; }\r\n#accPreviewMedia iframe{ width:100%; height:100%; border:0; border-radius:50%; }`;\r\n    const style = make('style', { id: 'ggg-preview-styles' }, css);\r\n    document.head.appendChild(style);\r\n  }\r\n\r\n  function mountUI(mapWrap) {\r\n    if (document.getElementById('accSeePreview')) {\r\n      return {\r\n        btnPreview: document.getElementById('accSeePreview'),\r\n        btnRoute: document.getElementById('accShowRoute'),\r\n        overlay: document.getElementById('accPreviewOverlay'),\r\n        media: document.getElementById('accPreviewMedia')\r\n      };\r\n    }\r\n\r\n    const btnPrev = make('button', { id: 'accSeePreview', 'aria-haspopup': 'dialog' }, '\ud83d\udc41\ufe0f See Preview');\r\n    const btnRoute = make('button', { id: 'accShowRoute', 'aria-haspopup': 'false' }, '\ud83d\udccd Show Route');\r\n\r\n    const overlay = make('div', { id: 'accPreviewOverlay', 'aria-hidden': 'true' });\r\n    overlay.innerHTML = `\r\n      <div class=\"acc-preview-circle\" role=\"dialog\" aria-label=\"Map preview\">\r\n        <button class=\"acc-closeX\" aria-label=\"Close preview\">\u00d7<\/button>\r\n        <div id=\"accPreviewMedia\"><\/div>\r\n      <\/div>`;\r\n\r\n    mapWrap.appendChild(btnPrev);\r\n    mapWrap.appendChild(btnRoute);\r\n    mapWrap.appendChild(overlay);\r\n\r\n    const media = document.getElementById('accPreviewMedia');\r\n    const closeBtn = overlay.querySelector('.acc-closeX');\r\n\r\n    \/\/ Abrir PREVIEW\r\n    btnPrev.addEventListener('click', () => {\r\n      if (!state.src) return;\r\n      media.innerHTML = state.type === 'video'\r\n        ? embedFrom(state.src)\r\n        : `<img decoding=\"async\" src=\"${state.src}\" alt=\"${state.title || 'Preview'}\">`;\r\n\r\n      overlay.style.display = 'grid';\r\n      overlay.setAttribute('aria-hidden', 'false');\r\n    });\r\n\r\n    \/\/ Cerrar PREVIEW\r\n    const close = () => {\r\n      overlay.style.display = 'none';\r\n      overlay.setAttribute('aria-hidden', 'true');\r\n      media.innerHTML = '';\r\n    };\r\n    closeBtn.addEventListener('click', close);\r\n    overlay.addEventListener('click', (e) => { if (e.target === overlay) close(); });\r\n    window.addEventListener('keydown', (e) => { if (e.key === 'Escape') close(); }, { passive: true });\r\n\r\n    \/\/ CLICK EN SHOW ROUTE (zoom fijo 13)\r\n    btnRoute.addEventListener('click', () => {\r\n      if (!state.key) return;\r\n      const url = ROUTE_KMLS[state.key];\r\n      if (!url || !window.ggMap || !window.google) return;\r\n\r\n      \/\/ Limpia la ruta anterior\r\n      if (currentKmlLayer) {\r\n        currentKmlLayer.setMap(null);\r\n        currentKmlLayer = null;\r\n      }\r\n\r\n      \/\/ Carga la nueva ruta y deja que el KML mueva el mapa\r\n      currentKmlLayer = new google.maps.KmlLayer({\r\n        url,\r\n        map: window.ggMap,\r\n        suppressInfoWindows: false,\r\n        preserveViewport: false\r\n      });\r\n\r\n      \/\/ Cuando el KML termine de cargar, forzamos zoom 13 SIEMPRE\r\n      google.maps.event.addListenerOnce(currentKmlLayer, 'status_changed', () => {\r\n        google.maps.event.addListenerOnce(window.ggMap, 'idle', () => {\r\n          window.ggMap.setZoom(13);\r\n        });\r\n      });\r\n    });\r\n\r\n    return { btnPreview: btnPrev, btnRoute, overlay, media };\r\n  }\r\n\r\n  \/* ============ 4) LEER CLAVE DESDE EL C\u00cdRCULO ============ *\/\r\n  function keyFromClasses(el) {\r\n    const classes = [...el.classList];\r\n    \/\/ Primero busca una clase que exista en PREVIEW_MEDIA o ROUTE_KMLS\r\n    const anyKnown = classes.find(c => PREVIEW_MEDIA[c] || ROUTE_KMLS[c]);\r\n    return anyKnown || null;\r\n  }\r\n\r\n  function hookCircles(btnPrev, btnRoute) {\r\n    const wrap = document.getElementById('hostButtons');\r\n    if (!wrap) return;\r\n\r\n    wrap.addEventListener('click', (e) => {\r\n      const el = e.target.closest('.host-circle');\r\n      if (!el) return;\r\n\r\n      const key = keyFromClasses(el);\r\n      const cfg = key ? PREVIEW_MEDIA[key] : null;\r\n      const title = el.getAttribute('title') || '';\r\n\r\n      const fallbackImg = getBgURL(el);\r\n      state = {\r\n        key,\r\n        type: cfg?.type || 'image',\r\n        src:  cfg?.src || fallbackImg,\r\n        title\r\n      };\r\n\r\n      \/\/ See Preview: se muestra si tenemos ALGO que mostrar (video o imagen)\r\n      if (btnPrev) {\r\n        btnPrev.style.display = state.src ? 'block' : 'none';\r\n      }\r\n\r\n      \/\/ Show Route: solo si existe KML para esa key\r\n      if (btnRoute) {\r\n        btnRoute.style.display = (key && ROUTE_KMLS[key]) ? 'block' : 'none';\r\n      }\r\n\r\n    }, { passive: true });\r\n  }\r\n\r\n  \/* ============ 5) ARRANQUE ============ *\/\r\n  async function boot() {\r\n    try {\r\n      injectStyles();\r\n\r\n      \/\/ Espera a que exista el mapa y el contenedor\r\n      await until(() => window.ggMap && document.getElementById('glowMapContainer'));\r\n      const mapWrap = document.getElementById('glowMapContainer');\r\n      const refs = mountUI(mapWrap);\r\n\r\n      \/\/ Espera a que exista hostButtons\r\n      await until(() => document.getElementById('hostButtons'));\r\n      hookCircles(refs.btnPreview, refs.btnRoute);\r\n\r\n      console.log('%c[GGG Cultural Preview+Route] Ready', 'color:#0ff');\r\n    } catch (e) {\r\n      console.warn('[GGG Cultural Preview+Route] init failed:', e);\r\n    }\r\n  }\r\n\r\n  if (document.readyState === 'loading') {\r\n    document.addEventListener('DOMContentLoaded', boot);\r\n  } else {\r\n    boot();\r\n  }\r\n})();\r\n<\/script>\r\n\r\n\r\n\r\n<!-- BLOQUE 3 \u2013 Movimiento + Swipe + SignIn + Favoritos (First You) -->\r\n\r\n<!-- ESTILOS -->\r\n<style>\r\n  #floatingButtons {\r\n    position: fixed;\r\n    top: 14px;\r\n    right: 14px;\r\n    display: flex;\r\n    flex-direction: row;\r\n    gap: 10px;\r\n    z-index: 3000;\r\n  }\r\n\r\n  #favoritesBtn, #signinBtn {\r\n    font-size: 15px;\r\n    padding: 6px 10px;\r\n    border-radius: 8px;\r\n    border: 2px solid white;\r\n    color: white;\r\n    background: rgba(0, 0, 0, 0.6);\r\n    cursor: pointer;\r\n    box-shadow: 0 0 8px cyan;\r\n    font-family: Orbitron;\r\n  }\r\n\r\n  #favoritesBtn:hover::after {\r\n    content: ' Double click a Host to add \ud83d\udc98';\r\n    font-size: 10px;\r\n    margin-left: 8px;\r\n    color: cyan;\r\n  }\r\n#pyramidBtn {\r\n    width: 38px;\r\n    height: 38px;\r\n    background-color: black;\r\n    border: 2px solid white;\r\n    border-radius: 50%;\r\n    box-shadow: 0 0 10px cyan; \/* glow *\/\r\n    display: flex;\r\n    justify-content: center;\r\n    align-items: center;\r\n    font-size: 20px; \/* emoji size *\/\r\n    cursor: pointer;\r\n    margin-top: 2px; \/* align with rose *\/\r\n  }\r\n\r\n  #pyramidBtn:hover {\r\n    transform: scale(1.2);\r\n  }\r\n\r\n#roseBtn {\r\n  width: 38px;\r\n  height: 38px;\r\n  background-color: black; \/* Keep black background *\/\r\n  background-image: url('http:\/\/godsgalaxygame.com\/GGG\/wp-content\/uploads\/2025\/07\/ChatGPT-Image-Jul-7-2025-05_11_38-PM.png');\r\n  background-size: cover;\r\n  background-position: center;\r\n  border: 2px solid white; \/* Optional white border *\/\r\n  border-radius: 50%;\r\n  box-shadow: 0 0 10px white; \/* White glow around the button *\/\r\n  cursor: pointer;\r\n  margin-top: 2px; \/* Adjust position to align with others *\/\r\n}\r\n\r\n#roseBtn:hover {\r\n  transform: scale(1.2);\r\n}\r\n\r\n  #signinBtn:hover::after {\r\n    content: ' Sign in to save your Favorites';\r\n    font-size: 10px;\r\n    margin-left: 8px;\r\n    color: cyan;\r\n  }\r\n\r\n  #swipeImage {\r\n    position: fixed;\r\n    top: 0;\r\n    left: 50%;\r\n    transform: translateX(-50%);\r\n    width: 160px;\r\n    z-index: 1200;\r\n    display: none;\r\n  }\r\n#swipeImage {\r\n  display: none !important;\r\n}\r\n\r\n<\/style>\r\n\r\n<!-- BOTONES FLOTANTES -->\r\n<div id=\"floatingButtons\">\r\n<button\r\n    id=\"pyramidBtn\"\r\n    title=\"Back to MedaYork Pyramid\"\r\n    onclick=\"window.location.href='https:\/\/godsgalaxygame.com\/GGG\/medayork-pyramid-2\/';\">\r\n    \ud83e\uddca\r\n  <\/button>\r\n<button id=\"roseBtn\"><\/button>\r\n\r\n  <button id=\"favoritesBtn\">\ud83d\udc96<\/button>\r\n  <button id=\"signinBtn\">Sign In \/ Sign Up<\/button>\r\n<\/div>\r\n\r\n<!-- IMAGEN DE SWIPE -->\r\n<img decoding=\"async\" id=\"swipeImage\" src=\"https:\/\/godsgalaxygame.com\/GGG\/wp-content\/uploads\/2025\/06\/Screenshot_20250627_154147_Gallery.jpg\" alt=\"Swipe\" \/>\r\n\r\n<!-- SCRIPT DE FUNCIONALIDAD -->\r\n<script>\r\n  \/\/ Movimiento del cubo Cultural\r\n  let isDragging = false, startX, startY, rotateX = 0, rotateY = 0;\r\n  const cube = document.getElementById('culturalCube');\r\n\r\n  function updateRotation(x, y) {\r\n    cube.style.transform = `rotateX(${x}deg) rotateY(${y}deg)`;\r\n  }\r\n\r\n  function onMouseDown(e) {\r\n    isDragging = true;\r\n    startX = e.clientX;\r\n    startY = e.clientY;\r\n  }\r\n\r\n  function onMouseMove(e) {\r\n    if (!isDragging) return;\r\n    const deltaX = e.clientX - startX;\r\n    const deltaY = e.clientY - startY;\r\n    rotateY += deltaX * 0.5;\r\n    rotateX -= deltaY * 0.5;\r\n    updateRotation(rotateX, rotateY);\r\n    startX = e.clientX;\r\n    startY = e.clientY;\r\n  }\r\n\r\n  function onMouseUp() {\r\n    isDragging = false;\r\n  }\r\n\r\n  function onTouchStart(e) {\r\n    isDragging = true;\r\n    startX = e.touches[0].clientX;\r\n    startY = e.touches[0].clientY;\r\n  }\r\n\r\n  function onTouchMove(e) {\r\n    if (!isDragging) return;\r\n    const deltaX = e.touches[0].clientX - startX;\r\n    const deltaY = e.touches[0].clientY - startY;\r\n    rotateY += deltaX * 0.5;\r\n    rotateX -= deltaY * 0.5;\r\n    updateRotation(rotateX, rotateY);\r\n    startX = e.touches[0].clientX;\r\n    startY = e.touches[0].clientY;\r\n  }\r\n\r\n  function onTouchEnd() {\r\n    isDragging = false;\r\n  }\r\n\r\n  const cubeContainer = document.querySelector('.cube-scene');\r\n  if (cubeContainer) {\r\n    cubeContainer.addEventListener('mousedown', onMouseDown);\r\n    window.addEventListener('mousemove', onMouseMove);\r\n    window.addEventListener('mouseup', onMouseUp);\r\n    cubeContainer.addEventListener('touchstart', onTouchStart);\r\n    window.addEventListener('touchmove', onTouchMove);\r\n    window.addEventListener('touchend', onTouchEnd);\r\n  }\r\n\r\n  \/\/ Swipe image cuando aparece el cubo\r\n  const observer = new MutationObserver(() => {\r\n    const cultural = document.getElementById('culturalCubeContainer');\r\n    if (cultural && cultural.style.opacity === \"1\") {\r\n      const swipe = document.getElementById('swipeImage');\r\n      swipe.style.display = 'block';\r\n      setTimeout(() => {\r\n        swipe.style.display = 'none';\r\n      }, 3500);\r\n      observer.disconnect();\r\n    }\r\n  });\r\n  observer.observe(document.body, { childList: true, subtree: true });\r\n\r\n  \/\/ Sistema de favoritos \ud83d\udc96 \u2192 \ud83d\udc98\r\n  const favorites = [];\r\n\r\n  function toggleFavorite(id, imgUrl, mapLat, mapLng) {\r\n    if (!favorites.some(f => f.id === id)) {\r\n      favorites.push({ id, imgUrl, lat: mapLat, lng: mapLng });\r\n      document.getElementById(\"favoritesBtn\").textContent = \"\ud83d\udc98\";\r\n      console.log(\"Favorito agregado:\", id);\r\n    }\r\n  }\r\nfunction handleReserveClick() {\r\n  const TRAVEL_CLUB_URL = \"https:\/\/godsgalaxygame.com\/GGG\/medayork-pyramid-2\/?travelclub=1\";\r\n  const selected = Array.isArray(favorites) ? favorites : [];\r\n\r\n  \/\/ If there ARE favorites \u2192 send email\r\n  if (selected.length > 0) {\r\n    const lines = selected.map((f, i) => {\r\n      const id = f.id || `Host ${i+1}`;\r\n      const lat = (f.lat ?? \"\");\r\n      const lng = (f.lng ?? \"\");\r\n      return `${i + 1}. ${id}${(lat !== \"\" && lng !== \"\") ? ` (${lat}, ${lng})` : \"\"}`;\r\n    });\r\n\r\n    const subject = encodeURIComponent(\"GGG \u2013 Selected Hosts\");\r\n    const body = encodeURIComponent(\r\n      \"User selected the following hosts:\\n\\n\" + lines.join(\"\\n\")\r\n    );\r\n\r\n    window.location.href =\r\n      `mailto:edwardraigozallc@gmail.com?subject=${subject}&body=${body}`;\r\n  }\r\n\r\n  \/\/ ALWAYS go to Travel Club (favorites or not)\r\n  setTimeout(() => {\r\n    window.location.href = TRAVEL_CLUB_URL;\r\n  }, 650);\r\n}\r\n\r\n  function clearFavorites() {\r\n    favorites.length = 0;\r\n    document.getElementById(\"favoritesBtn\").textContent = \"\ud83d\udc96\";\r\n  }\r\n\r\n  function focusOnHost(lat, lng) {\r\n    if (window.ggMap) {\r\n      window.ggMap.setCenter({ lat, lng });\r\n      window.ggMap.setZoom(15);\r\n      new google.maps.Marker({ position: { lat, lng }, map: window.ggMap });\r\n    }\r\n  }\r\n\r\n  document.getElementById(\"favoritesBtn\").addEventListener(\"click\", () => {\r\n    if (favorites.length === 0) return;\r\n    document.querySelectorAll('.host-circle').forEach(btn => btn.style.display = 'none');\r\n    favorites.forEach(fav => {\r\n      const existing = document.querySelector(`.${fav.id}`);\r\n      if (existing) existing.style.display = 'inline-block';\r\n    });\r\n  });\r\n<\/script>\r\n\r\n\r\n\r\n<!-- HOST CIRCLES \u2014 CSS (Cultural) -->\r\n<style>\r\n  \/* container *\/\r\n  #hostButtons{\r\n    display:none;                 \/* hidden until a sub-option is clicked *\/\r\n    position:absolute;\r\n    top:50%; left:50%;\r\n    transform:translate(-50%,-50%);\r\n    width:100%; max-width:500px; height:500px;\r\n    pointer-events:none;          \/* turned ON in JS when shown *\/\r\n    z-index:3000;\r\n  }\r\n\r\n  \/* buttons *\/\r\n  #hostButtons .host-circle{\r\n    width:80px; height:80px; border-radius:50%;\r\n    border:2px solid #fff; box-shadow:0 0 14px #fff;\r\n    background-size:cover; background-position:center;\r\n    position:absolute; pointer-events:auto; cursor:pointer;\r\n    transition:transform .3s, box-shadow .3s;\r\n  }\r\n  #hostButtons .host-circle:hover{ transform:scale(1.15); box-shadow:0 0 20px cyan; }\r\n\r\n  \/* desktop placement (around the circle) *\/\r\n  #hostButtons .one    { top:4%;    left:10%; }\r\n  #hostButtons .five   { top:4%;    right:10%; }\r\n  #hostButtons .seven  { bottom:8%; left:10%; }\r\n  #hostButtons .month  { bottom:8%; right:10%; }\r\n\r\n  \/* color accents per family (match cube face glows) *\/\r\n  #hostButtons .art { border-color:beige;   box-shadow:0 0 14px beige; }\r\n  #hostButtons .rivers { border-color:#00ccff; box-shadow:0 0 14px #00ccff; }\r\n  #hostButtons .eno  { border-color:#33ff33; box-shadow:0 0 14px #33ff33; }\r\n  #hostButtons .feni { border-color:red;     box-shadow:0 0 14px red; }\r\n\r\n  \/* phone: turn into one row under the map *\/\r\n  @media (max-width:768px){\r\n    #hostButtons{\r\n      position:relative; top:auto; left:auto; transform:none;\r\n      height:auto; margin-top:-35px;\r\n      display:none;               \/* still hidden by default *\/\r\n      flex-wrap:nowrap; justify-content:center; gap:10px;\r\n    }\r\n    #hostButtons .host-circle{ position:relative; width:75px; height:75px; margin:0 6px; }\r\n  }\r\n<\/style>\r\n\r\n<!-- HOST CIRCLES \u2014 HTML (Cultural: Art\r\n \/ Rivers \/ Enotours \/ Fenix) -->\r\n<div id=\"hostButtons\">\r\n  <!-- Art (beige) -->\r\n  <button class=\"host-circle art art-graf one\"\r\n    data-lat=\"6.2414088\" data-lng=\"-75.22951\"\r\n    style=\"background-image:url('http:\/\/godsgalaxygame.com\/GGG\/wp-content\/uploads\/2025\/12\/Screenshot_20240902_124800_YouTube.jpg');\"\r\n    title=\"Art \u2022 Graffiti\"><\/button>\r\n\r\n  <button class=\"host-circle art art-loca five\"\r\n    data-lat=\"6.22663\" data-lng=\"-75.1831\"\r\n    style=\"background-image:url('http:\/\/godsgalaxygame.com\/GGG\/wp-content\/uploads\/2025\/12\/Screenshot_20240902_125455_Google-Earth.jpg');\"\r\n    title=\"Art \u2022 Local\"><\/button>\r\n\r\n  <button class=\"host-circle art art-town seven\"\r\n    data-lat=\"6.2288021\" data-lng=\"-75.2142911\"\r\n    style=\"background-image:url('http:\/\/godsgalaxygame.com\/GGG\/wp-content\/uploads\/2025\/12\/Screenshot_20240902_130043_Google.jpg');\"\r\n    title=\"Art \u2022 Towns\"><\/button>\r\n\r\n  <button class=\"host-circle art art-stamp month\"\r\n    data-lat=\"6.24426\" data-lng=\"-75.217632\"\r\n    style=\"background-image:url('http:\/\/godsgalaxygame.com\/GGG\/wp-content\/uploads\/2025\/12\/Screenshot_20240902_124800_YouTube.jpg');\"\r\n    title=\"Art \u2022 Stamp Art\"><\/button>\r\n\r\n  <!-- Rivers (cyan) -->\r\n  <button class=\"host-circle rivers rivers-lights one\"\r\n    data-lat=\"6.2414088\" data-lng=\"-75.2315485\"\r\n    style=\"background-image:url('http:\/\/godsgalaxygame.com\/GGG\/wp-content\/uploads\/2025\/12\/Screenshot_20240902_135016_Google-Earth.jpg');\"\r\n    title=\"Rivers \u2022 Lights\"><\/button>\r\n\r\n  <button class=\"host-circle rivers rivers-farmer five\"\r\n    data-lat=\"6.24426\" data-lng=\"-75.217632\"\r\n    style=\"background-image:url('http:\/\/godsgalaxygame.com\/GGG\/wp-content\/uploads\/2025\/12\/Screenshot_20240902_135617_Google-Earth.jpg');\"\r\n    title=\"Rivers \u2022 Farmers\"><\/button>\r\n\r\n  <button class=\"host-circle rivers rivers-bike seven\"\r\n    data-lat=\"6.2083202\" data-lng=\"-75.5677995\"\r\n    style=\"background-image:url('http:\/\/godsgalaxygame.com\/GGG\/wp-content\/uploads\/2025\/12\/Screenshot_20240902_140319_Google-Earth.jpg');\"\r\n    title=\"Rivers \u2022 Bike\"><\/button>\r\n\r\n  <button class=\"host-circle rivers rivers-scaven month\"\r\n    data-lat=\"6.2252116\" data-lng=\"-75.1800426\"\r\n    style=\"background-image:url('http:\/\/godsgalaxygame.com\/GGG\/wp-content\/uploads\/2025\/12\/Screenshot_20240831_184424_Chrome.jpg');\"\r\n    title=\"Rivers \u2022 Scavenger\"><\/button>\r\n\r\n  <!-- Enotours (green) -->\r\n  <button class=\"host-circle eno eno-flower one\"\r\n    data-lat=\"6.2414088\" data-lng=\"-75.22951\"\r\n    style=\"background-image:url('http:\/\/godsgalaxygame.com\/GGG\/wp-content\/uploads\/2025\/12\/Screenshot_20240902_160844_Google.jpg');\"\r\n    title=\"Enotours \u2022 Flowers\"><\/button>\r\n\r\n  <button class=\"host-circle eno eno-coff five\"\r\n    data-lat=\"6.22663\" data-lng=\"-75.1831\"\r\n    style=\"background-image:url('http:\/\/godsgalaxygame.com\/GGG\/wp-content\/uploads\/2025\/12\/Screenshot_20251222_130914_Google.jpg');\"\r\n    title=\"Enotours \u2022 Coffee\"><\/button>\r\n\r\n  <button class=\"host-circle eno eno-wine seven\"\r\n    data-lat=\"6.2288021\" data-lng=\"-75.2142911\"\r\n    style=\"background-image:url('http:\/\/godsgalaxygame.com\/GGG\/wp-content\/uploads\/2025\/12\/Screenshot_20240902_163423_Chrome.jpg');\"\r\n    title=\"Enotours \u2022 Wine\"><\/button>\r\n\r\n  <button class=\"host-circle eno eno-fruit month\"\r\n    data-lat=\"6.24426\" data-lng=\"-75.217632\"\r\n    style=\"background-image:url('http:\/\/godsgalaxygame.com\/GGG\/wp-content\/uploads\/2025\/12\/Screenshot_20240902_164435_Chrome.jpg');\"\r\n    title=\"Enotours \u2022 Fruits\"><\/button>\r\n\r\n  <!-- Fenix (red) -->\r\n  <button class=\"host-circle feni feni-moveme one\"\r\n    data-lat=\"6.2414088\" data-lng=\"-75.22951\"\r\n    style=\"background-image:url('http:\/\/godsgalaxygame.com\/GGG\/wp-content\/uploads\/2025\/12\/Screenshot_20240831_160025_YouTube.jpg');\"\r\n    title=\"Fenix \u2022 Movements\"><\/button>\r\n\r\n  <button class=\"host-circle feni feni-elpeno five\"\r\n    data-lat=\"6.22663\" data-lng=\"-75.1831\"\r\n    style=\"background-image:url('http:\/\/godsgalaxygame.com\/GGG\/wp-content\/uploads\/2025\/12\/Screenshot_20240902_171944_Gallery.jpg');\"\r\n    title=\"Fenix \u2022 El Pe\u00f1ol\"><\/button>\r\n\r\n  <button class=\"host-circle feni feni-drug seven\"\r\n    data-lat=\"6.2288021\" data-lng=\"-75.2142911\"\r\n    style=\"background-image:url('http:\/\/godsgalaxygame.com\/GGG\/wp-content\/uploads\/2025\/12\/Screenshot_20240902_173240_Google.jpg');\"\r\n    title=\"Fenix \u2022 Drug Lord\"><\/button>\r\n\r\n  <button class=\"host-circle feni feni-music month\"\r\n    data-lat=\"6.24426\" data-lng=\"-75.217632\"\r\n    style=\"background-image:url('http:\/\/godsgalaxygame.com\/GGG\/wp-content\/uploads\/2025\/12\/Screenshot_20240902_174224_YouTube.jpg');\"\r\n    title=\"Fenix \u2022 Music\"><\/button>\r\n<\/div>\r\n\r\n<!-- HOST CIRCLES \u2014 JS (Cultural) -->\r\n<script>\r\n  \/* Show only the requested key, e.g., 'art-graf' *\/\r\n  function showHostButtons(suboption){\r\n    const wrap = document.getElementById('hostButtons');\r\n    if(!wrap) return;\r\n\r\n    \/\/ hide all\r\n    wrap.querySelectorAll('.host-circle').forEach(el => el.style.display = 'none');\r\n\r\n    \/\/ show only requested group (class names include exact key)\r\n    wrap.querySelectorAll('.' + suboption).forEach(el => el.style.display = 'inline-block');\r\n\r\n    \/\/ reveal the container and allow clicks\r\n    wrap.style.display = 'flex';\r\n    wrap.style.pointerEvents = 'auto';\r\n  }\r\n\r\n  \/\/ dbl-tap \/ dbl-click to favorite (uses your existing toggleFavorite)\r\n  document.addEventListener('DOMContentLoaded', () => {\r\n    document.querySelectorAll('#hostButtons .host-circle').forEach(btn => {\r\n      btn.addEventListener('dblclick', (e) => {\r\n        e.preventDefault();\r\n\r\n        \/\/ \u2705 Get the specific key like \"heli-around\" \/ \"yacht-goto\"\r\n        const id = [...btn.classList].find(c =>\r\n          c.includes('-') &&\r\n          !['host-circle','around','goto','emergency','adventure'].includes(c)\r\n        );\r\n\r\n        if (!id) {\r\n          console.warn(\"No favorite id found for button:\", btn.className);\r\n          return;\r\n        }\r\n\r\n        \/\/ background-image: url(\"...\") or url('...')\r\n        const bg = btn.style.backgroundImage || '';\r\n        const img = bg.startsWith('url(')\r\n          ? bg.slice(4, -1).replace(\/^[\"']|[\"']$\/g, '')\r\n          : '';\r\n\r\n        const lat = parseFloat(btn.dataset.lat);\r\n        const lng = parseFloat(btn.dataset.lng);\r\n\r\n        if (typeof toggleFavorite === 'function') {\r\n          toggleFavorite(id, img, lat, lng);\r\n        } else {\r\n          console.warn(\"toggleFavorite() is not defined yet.\");\r\n        }\r\n      });\r\n    });\r\n  });\r\n\r\n  \/* Center the map when any host circle is clicked *\/\r\n  document.addEventListener('click', function (e) {\r\n    const btn = e.target.closest('#hostButtons .host-circle');\r\n    if (!btn) return;\r\n\r\n    const lat = parseFloat(btn.dataset.lat);\r\n    const lng = parseFloat(btn.dataset.lng);\r\n    if (!Number.isFinite(lat) || !Number.isFinite(lng)) return;\r\n\r\n    if (typeof window.focusOnHost === 'function') {\r\n      focusOnHost(lat, lng);\r\n      return;\r\n    }\r\n\r\n    if (window.ggMap && window.google) {\r\n      const pos = new google.maps.LatLng(lat, lng);\r\n      ggMap.setCenter(pos);\r\n      ggMap.setZoom(15);\r\n      new google.maps.Marker({ position: pos, map: ggMap });\r\n    }\r\n  });\r\n<\/script>\r\n\r\n\r\n\r\n&#8211; AVATAR &#8211;>\r\n<div id=\"avatarContainer\" onclick=\"showAvatarCloud()\" \r\n     style=\"position:fixed; bottom:80px; right:20px; z-index:9999; cursor:pointer; display:none;\">\r\n  <img decoding=\"async\" src=\"http:\/\/godsgalaxygame.com\/GGG\/wp-content\/uploads\/2025\/07\/Screenshot_20231118-120724_Instagram-scaled.jpg\" \r\n       style=\"width:180px; height:auto; border-radius: 50% \/ 30%; object-fit: cover; box-shadow: 0 0 12px aqua; filter: invert(100%) contrast(120%) brightness(110%);\">\r\n<\/div>\r\n\r\n<!-- CLOUD BUBBLE -->\r\n<div id=\"avatarCloud\" style=\"position:fixed; bottom:310px; right:30px; max-width:250px; background:rgba(0,0,0,0.7); \r\n     color:white; font-family:Orbitron, sans-serif; font-size:12px; line-height:16px; border-radius:20px 20px 20px 0px; \r\n     padding:14px 16px; box-shadow:0 0 15px aqua; display:none; z-index:9999; text-align:center;\r\n     border: 1px solid aqua;\">\r\n  <div id=\"avatarCloudMsg\">Loading&#8230;<\/div>\r\n  <div style=\"margin-top:10px;\">\r\n    <button onclick=\"acceptAvatarSuggestion()\" style=\"background:lime; color:black; border:none; padding:6px 10px; font-weight:bold;\">Yes<\/button>\r\n    <button onclick=\"dismissAvatarCloud()\" style=\"background:aqua; color:white; border:none; padding:6px 10px; font-weight:bold;\">No<\/button>\r\n  <\/div>\r\n  <div style=\"position:absolute; bottom:-18px; right:10px; width:0; height:0; border-left:10px solid transparent; \r\n              border-right:10px solid transparent; border-top:18px solid rgba(0,255,255,0.6); filter:blur(0.5px);\">\r\n  <\/div>\r\n<\/div>\r\n\r\n<!-- MOBILE ASSISTANT BUTTON -->\r\n<div id=\"avatarMobileBtn\" onclick=\"toggleMobileAvatar()\" style=\"display:none;\">\r\n  \ud83d\udc64 Assistant\r\n<\/div>\r\n\r\n<!-- ESTILOS -->\r\n<style>\r\n  #avatarMobileBtn {\r\n    position: fixed;\r\n    bottom: 18px;\r\n    right: 18px;\r\n    z-index: 9999;\r\n    background: rgba(0, 0, 0, 0.7);\r\n    color: white;\r\n    font-family: Orbitron, sans-serif;\r\n    font-size: 13px;\r\n    padding: 10px 14px;\r\n    border: 2px solid aqua;\r\n    border-radius: 14px;\r\n    box-shadow: 0 0 12px aqua;\r\n    cursor: pointer;\r\n    display: flex;\r\n    align-items: center;\r\n    gap: 8px;\r\n  }\r\n\r\n  @media (min-width: 769px) {\r\n    #avatarMobileBtn {\r\n      display: none !important;\r\n    }\r\n  }\r\n\r\n  @media (max-width: 768px) {\r\n    #avatarContainer {\r\n      bottom: 30px !important;\r\n      right: 90px !important;\r\n      width: 100px !important;\r\n      display: none;\r\n      pointer-events: none;\r\n    }\r\n\r\n    #avatarContainer img {\r\n      width: 100%;\r\n      height: auto;\r\n      border-radius: 50% \/ 30%;\r\n      object-fit: cover;\r\n      filter: grayscale(0%) brightness(1.1) contrast(1.2);\r\n      box-shadow: 0 0 12px aqua;\r\n    }\r\n  }\r\n\r\n  @media (min-width: 769px) {\r\n    #avatarContainer {\r\n      pointer-events: auto;\r\n    }\r\n  }\r\n<\/style>\r\n\r\n<!-- L\u00d3GICA -->\r\n<script>\r\n  const entertainmentQuestions = [\r\n    \"Ready to see what\u2019s out there today?\",\r\n    \"Want entertainment options nearby?\",\r\n    \"Looking for something fun to do?\",\r\n    \"Need ideas for your free time?\",\r\n    \"Want something exciting tonight?\"\r\n  ];\r\n\r\n  const gastronomyQuestions = [\r\n    \"Want to see gastronomy options nearby?\",\r\n    \"Ready to have dinner tonight?\",\r\n    \"Would you like some brunch spots?\",\r\n    \"Hungry for something special?\",\r\n    \"Looking for restaurants around you?\"\r\n  ];\r\n\r\n  function showAvatarCloud(forcedType = null) {\r\n    const hour = new Date().getHours();\r\n    const type = forcedType || (hour % 2 === 0 ? \"gastronomy\" : \"entertainment\");\r\n    const question = (type === \"gastronomy\" ? gastronomyQuestions : entertainmentQuestions)[Math.floor(Math.random() * 5)];\r\n\r\n    document.getElementById(\"avatarCloudMsg\").innerText = question;\r\n    document.getElementById(\"avatarCloud\").style.display = \"block\";\r\n  }\r\n\r\n  function acceptAvatarSuggestion() {\r\n    dismissAvatarCloud();\r\n    alert(\"\u2705 Showing Aries recommendations near you...\");\r\n  }\r\n\r\n  function dismissAvatarCloud() {\r\n    document.getElementById(\"avatarCloud\").style.display = \"none\";\r\n  }\r\n\r\n  \/\/ \ud83d\udcbb Show avatar automatically after 3 seconds (desktop only)\r\n  function showAvatarAssistant() {\r\n    const avatar = document.getElementById(\"avatarContainer\");\r\n    if (window.innerWidth > 768) {\r\n      avatar.style.display = \"block\";\r\n      avatar.style.pointerEvents = \"auto\";\r\n    }\r\n  }\r\n  setTimeout(showAvatarAssistant, 3000);\r\n\r\n  \/\/ \ud83d\udcf1 Toggle mobile avatar on\/off\r\n  let avatarVisible = false;\r\n  function toggleMobileAvatar() {\r\n    const avatar = document.getElementById(\"avatarContainer\");\r\n    const btn = document.getElementById(\"avatarMobileBtn\");\r\n\r\n    if (!avatarVisible) {\r\n      avatar.style.display = \"block\";\r\n      avatar.style.pointerEvents = \"auto\";\r\n      showAvatarCloud();\r\n      btn.innerHTML = \"\u274c Close\";\r\n    } else {\r\n      avatar.style.display = \"none\";\r\n      avatar.style.pointerEvents = \"none\";\r\n      dismissAvatarCloud();\r\n      btn.innerHTML = \"\ud83d\udc64 Assistant\";\r\n    }\r\n\r\n    avatarVisible = !avatarVisible;\r\n  }\r\n\r\n  \/\/ \ud83d\udcf1 Show mobile button on load\r\n  window.addEventListener(\"load\", () => {\r\n    if (window.innerWidth <= 768) {\r\n      document.getElementById(\"avatarMobileBtn\").style.display = \"flex\";\r\n    }\r\n  });\r\n<\/script>\r\n\r\n\r\n\r\n<!-- =====================\r\nPOP-UP BEFORE RESERVATION (LEVEL 3 \u2192 EVOLUTION TOURS)\r\n===================== -->\r\n\r\n<style>\r\n  #evoReservePopupOverlay {\r\n    position: fixed;\r\n    top: 0; left: 0;\r\n    width: 100%; height: 100%;\r\n    background: rgba(0,0,0,0.85);\r\n    display: none;\r\n    justify-content: center;\r\n    align-items: center;\r\n    z-index: 999999;\r\n  }\r\n\r\n  #evoReservePopup {\r\n    background: #111;\r\n    border: 2px solid #ffffff55;\r\n    padding: 30px 35px;\r\n    border-radius: 18px;\r\n    text-align: center;\r\n    width: 300px;\r\n    box-shadow: 0 0 25px #ffffff88;\r\n  }\r\n\r\n  #evoReservePopup h2 {\r\n    color: white;\r\n    font-size: 20px;\r\n    margin-bottom: 25px;\r\n  }\r\n\r\n  .evo-reserve-btn {\r\n    padding: 10px 20px;\r\n    margin: 8px;\r\n    border-radius: 10px;\r\n    border: none;\r\n    cursor: pointer;\r\n    font-weight: bold;\r\n    font-size: 15px;\r\n  }\r\n\r\n  .evo-yes {\r\n    background: #6a00ff;\r\n    color: white;\r\n    box-shadow: 0 0 12px #6a00ff;\r\n  }\r\n\r\n  .evo-no {\r\n    background: #ff0066;\r\n    color: white;\r\n    box-shadow: 0 0 12px #ff0066;\r\n  }\r\n<\/style>\r\n\r\n<div id=\"evoReservePopupOverlay\">\r\n  <div id=\"evoReservePopup\">\r\n    <h2>Would you like to see Evolution Tours of the area?<\/h2>\r\n    <button class=\"evo-reserve-btn evo-yes\" onclick=\"goToEvolution()\">Yes<\/button>\r\n    <button class=\"evo-reserve-btn evo-no\" onclick=\"handleReserveClick()\">No<\/button>\r\n  <\/div>\r\n<\/div>\r\n\r\n<script>\r\n  const EVOLUTION_URL = \"\/GGG\/evolution-tours\/\";          \/\/ Level 4 page\r\n  const ELEMENTS_URL_3 = \"https:\/\/godsgalaxygame.com\/GGG\/medayork-pyramid-2\/?travelclub=1\"; \/\/ Same Elements Club (change if needed)\r\n\r\n  function openEvolutionPopup() {\r\n    document.getElementById(\"evoReservePopupOverlay\").style.display = \"flex\";\r\n  }\r\n\r\n  function goToEvolution() {\r\n  if (window.openEvolutionGate) {\r\n    window.openEvolutionGate(); \/\/ opens Evolution popup from footer\r\n  } else {\r\n    window.location.href = EVOLUTION_URL; \/\/ fallback if footer missing\r\n  }\r\n}\r\n\r\n  function continueReservationFromThematic() {\r\n    window.location.href = ELEMENTS_URL_3;\r\n  }\r\n<\/script>\r\n\r\n\r\n\r\n<!-- BLOQUE 2 - Cultural Cube V19 Completo + Mapa Circular + API -->\r\n<style>\r\n  @media (max-width: 768px) {\r\n    #glowMapContainer {\r\n      margin-top: -55px !important;\r\n    }\r\n  }\r\n<\/style>\r\n<div id=\"culturalCubeContainer\" style=\"opacity:1; pointer-events: auto; transition: opacity 0.6s ease;\">\r\n  <!-- ESCENA CUBO -->\r\n  <div class=\"cube-scene\" style=\"width:180px; height:180px; perspective:1000px; position:fixed; bottom:20px; left:20px; z-index:1000;\">\r\n    <div class=\"cube\" id=\"culturalCube\" style=\"width:100%; height:100%; position:relative; transform-style:preserve-3d; transform:rotateX(0deg) rotateY(0deg); transition:transform 0.3s ease;\">\r\n   <!-- FRONT -->\r\n      <div class=\"face front\" style=\"width:180px; height:180px; background:transparent; border:2px solid white; box-shadow:0 0 20px white; position:absolute; transform:rotateY(0deg) translateZ(90px); display:flex; flex-direction:column; justify-content:center; align-items:center; font-family:Orbitron;\">\r\n        <div style=\"font-size:42px; color:white; text-shadow:0 0 15px white;\">\ud83d\udd4c<\/div>\r\n        <div style=\"font-size:16px; color:white; font-weight:bold; text-shadow:0 0 10px white; margin-top:6px;\">Cultural<\/div>\r\n      <\/div>\r\n\r\n      <!-- Cara Trasera del Cubo: Transportation -->\r\n<!-- Back Face - Transportation Cube - Nuevo Dise\u00f1o con Botones Circulares -->\r\n<div class=\"face back\" style=\"width:180px; height:180px; background:#000; border:2px solid white; box-shadow:0 0 15px white; position:absolute; transform:rotateY(180deg) translateZ(90px); font-family:Orbitron,sans-serif;\">\r\n\r\n  <!-- Sol central -->\r\n  <img decoding=\"async\" src=\"http:\/\/godsgalaxygame.com\/GGG\/wp-content\/uploads\/2025\/06\/1000065346-scaled.jpg\"\r\n       style=\"width:70px; height:70px; border-radius:50%; position:absolute; top:50%; left:50%; transform:translate(-50%, -50%); box-shadow:0 0 20px white;\" \/>\r\n\r\n  <!-- Reserve -->\r\n  <a onclick=\"openEvolutionPopup()\"\r\n   style=\"position:absolute; top:8px; left:8px; width:44px; height:44px; border-radius:50%; background-image:url('http:\/\/godsgalaxygame.com\/GGG\/wp-content\/uploads\/2025\/06\/Screenshot_20240108-225452_Chrome-scaled.jpg'); background-size:cover; box-shadow:0 0 12px cyan; cursor:pointer;\"\r\n   title=\"Reserve\"><\/a>\r\n\r\n  <!-- Bliss Coin -->\r\n  <div onclick=\"openBlissCoinPopup()\"\r\n       style=\"position:absolute; top:8px; right:8px; width:44px; height:44px; border-radius:50%; background:#222; font-size:40px; display:flex; justify-content:center; align-items:center; color:white; box-shadow:0 0 10px cyan; cursor:pointer;\"\r\n       title=\"Pay with Bliss Coin\">\ud83d\udcb3<\/div>\r\n\r\n   <!-- Coupon Button (Bottom-Left Corner) -->\r\n<a href=\"https:\/\/godsgalaxygame.com\/GGG\/discounts-gift\/\"\r\n   target=\"_blank\"\r\n   style=\"position: absolute;\r\n          bottom: 8px;\r\n          left: 8px;\r\n          width: 44px;\r\n          height: 44px;\r\n          border-radius: 50%;\r\n          background-image: url('http:\/\/godsgalaxygame.com\/GGG\/wp-content\/uploads\/2025\/06\/Screenshot_20240108-225546_Chrome.jpg');\r\n          background-size: cover;\r\n          box-shadow: 0 0 12px cyan;\r\n          cursor: pointer;\"\r\n   title=\"Get Coupons\">\r\n<\/a>\r\n\r\n\r\n  <!-- Become a Host -->\r\n  <a href=\"https:\/\/luxus2.godaddysites.com\/\" target=\"_blank\"\r\n     style=\"position:absolute; bottom:8px; right:8px; width:44px; height:44px; border-radius:50%; background-image:url('http:\/\/godsgalaxygame.com\/GGG\/wp-content\/uploads\/2025\/06\/Screenshot_20240108-224514_Chrome-scaled.jpg'); background-size:cover; box-shadow:0 0 12px cyan;\"\r\n     title=\"Become a Host\"><\/a>\r\n<\/div>\r\n\r\n\r\n\r\n      <!-- RIGHT (Art) -->\r\n      <div class=\"face right\" style=\"width:180px; height:180px; background:#000; border:2px solid beige; box-shadow:0 0 15px beige; position:absolute; transform:rotateY(90deg) translateZ(90px); font-family:Orbitron;\">\r\n        <button onclick=\"showHostButtons('art-graf')\" style=\"position:absolute; top:8px; left:27px; width:126px; height:17px; border:1px solid beige; color:white; background:transparent;\">Graffiti<\/button>\r\n        <button onclick=\"showHostButtons('art-loca')\" style=\"position:absolute; bottom:8px; left:27px; width:126px; height:17px; border:1px solid beige; color:white; background:transparent;\">Local<\/button>\r\n        <button onclick=\"showHostButtons('art-town')\" style=\"position:absolute; top:27px; left:8px; height:126px; width:17px; border:1px solid beige; color:white; writing-mode:vertical-rl; background:transparent;\">Towns<\/button>\r\n        <button onclick=\"showHostButtons('art-stamp')\" style=\"position:absolute; top:27px; right:8px; height:126px; width:17px; border:1px solid beige; color:white; writing-mode:vertical-lr; background:transparent;\">Stamp Art<\/button>\r\n        <div style=\"position:absolute; top:50%; left:50%; transform:translate(-50%, -50%); text-align:center;\">\r\n          <div style=\"color:beige; font-size:16px; font-weight:bold;\">Art<\/div>\r\n          <img decoding=\"async\" src=\"http:\/\/godsgalaxygame.com\/GGG\/wp-content\/uploads\/2025\/06\/Screenshot_20250612_075245_Gallery.jpg\" style=\"width:65px; height:65px; border-radius:50%; box-shadow:0 0 12px beige;\">\r\n        <\/div>\r\n      <\/div>\r\n\r\n      <!-- LEFT (Rivers) -->\r\n      <div class=\"face left\" style=\"width:180px; height:180px; background:#000; border:2px solid #00ccff; box-shadow:0 0 15px #00ccff; position:absolute; transform:rotateY(-90deg) translateZ(90px); font-family:Orbitron;\">\r\n        <button onclick=\"showHostButtons('rivers-lights')\" style=\"position:absolute; top:8px; left:27px; width:126px; height:17px; border:1px solid #00ccff; color:white; background:transparent;\">Lights<\/button>\r\n        <button onclick=\"showHostButtons('rivers-farmer')\" style=\"position:absolute; bottom:8px; left:27px; width:126px; height:17px; border:1px solid #00ccff; color:white; background:transparent;\">Farmers<\/button>\r\n        <button onclick=\"showHostButtons('rivers-bike')\" style=\"position:absolute; top:27px; left:8px; height:126px; width:17px; border:1px solid #00ccff; color:white; writing-mode:vertical-rl; background:transparent;\">Bike<\/button>\r\n        <button onclick=\"showHostButtons('rivers-scaven')\" style=\"position:absolute; top:27px; right:8px; height:126px; width:17px; border:1px solid #00ccff; color:white; writing-mode:vertical-lr; background:transparent;\">Scavenger<\/button>\r\n        <div style=\"position:absolute; top:50%; left:50%; transform:translate(-50%, -50%); text-align:center;\">\r\n          <div style=\"color:#00ccff; font-size:16px; font-weight:bold;\">Rivers<\/div>\r\n          <img decoding=\"async\" src=\"http:\/\/godsgalaxygame.com\/GGG\/wp-content\/uploads\/2025\/06\/Screenshot_20250612_075344_Gallery.jpg\" style=\"width:65px; height:65px; border-radius:50%; box-shadow:0 0 12px #00ccff;\">\r\n        <\/div>\r\n      <\/div>\r\n\r\n      <!-- TOP (Enotours) -->\r\n      <div class=\"face top\" style=\"width:180px; height:180px; background:#000; border:2px solid green; box-shadow:0 0 15px #33ff33; position:absolute; transform:rotateX(90deg) translateZ(90px); font-family:Orbitron;\">\r\n        <button onclick=\"showHostButtons('eno-flower')\" style=\"position:absolute; top:8px; left:27px; width:126px; height:17px; border:1px solid green; color:white; background:transparent;\">Flowers<\/button>\r\n        <button onclick=\"showHostButtons('eno-coff')\" style=\"position:absolute; bottom:8px; left:27px; width:126px; height:17px; border:1px solid green; color:white; background:transparent;\">Coffee<\/button>\r\n        <button onclick=\"showHostButtons('eno-wine')\" style=\"position:absolute; top:27px; left:8px; height:126px; width:17px; border:1px solid green; color:white; writing-mode:vertical-rl; background:transparent;\">Wine<\/button>\r\n        <button onclick=\"showHostButtons('eno-fruit')\" style=\"position:absolute; top:27px; right:8px; height:126px; width:17px; border:1px solid green; color:white; writing-mode:vertical-lr; background:transparent;\">Fruits<\/button>\r\n        <div style=\"position:absolute; top:50%; left:50%; transform:translate(-50%, -50%); text-align:center;\">\r\n          <div style=\"color:#33ff33; font-size:16px; font-weight:bold;\">Enotours<\/div>\r\n          <img decoding=\"async\" src=\"http:\/\/godsgalaxygame.com\/GGG\/wp-content\/uploads\/2025\/06\/Screenshot_20250612_075305_Gallery.jpg\" style=\"width:65px; height:65px; border-radius:50%; box-shadow:0 0 12px #33ff33;\">\r\n        <\/div>\r\n      <\/div>\r\n\r\n      <!-- BOTTOM (Fenix) -->\r\n      <div class=\"face bottom\" style=\"width:180px; height:180px; background:#000; border:2px solid red; box-shadow:0 0 15px red; position:absolute; transform:rotateX(-90deg) translateZ(90px); font-family:Orbitron;\">\r\n        <button onclick=\"showHostButtons('feni-moveme')\" style=\"position:absolute; top:8px; left:27px; width:126px; height:17px; border:1px solid red; color:white; background:transparent;\">Movements<\/button>\r\n        <button onclick=\"showHostButtons('feni-elpeno')\" style=\"position:absolute; bottom:8px; left:27px; width:126px; height:17px; border:1px solid red; color:white; background:transparent;\">El Pe\u00f1ol<\/button>\r\n        <button onclick=\"showHostButtons('feni-drug')\" style=\"position:absolute; top:27px; left:8px; height:126px; width:17px; border:1px solid red; color:white; writing-mode:vertical-rl; background:transparent;\">Drug Lord<\/button>\r\n        <button onclick=\"showHostButtons('feni-music')\" style=\"position:absolute; top:27px; right:8px; height:126px; width:17px; border:1px solid red; color:white; writing-mode:vertical-lr; background:transparent;\">Music<\/button>\r\n        <div style=\"position:absolute; top:50%; left:50%; transform:translate(-50%, -50%); text-align:center;\">\r\n          <div style=\"color:red; font-size:16px; font-weight:bold;\">Fenix<\/div>\r\n          <img decoding=\"async\" src=\"http:\/\/godsgalaxygame.com\/GGG\/wp-content\/uploads\/2025\/06\/Screenshot_20250612_075325_Gallery.jpg\" style=\"width:65px; height:65px; border-radius:50%; box-shadow:0 0 12px red;\">\r\n        <\/div>\r\n      <\/div>\r\n\r\n    <\/div>\r\n  <\/div>\r\n\r\n  <!-- MAPA CIRCULAR -->\r\n  <div id=\"glowMapContainer\" style=\"opacity:1; pointer-events:auto; transition: opacity 0.6s ease; margin: 0 auto; margin-top: -95px; margin-bottom: 40px; width: 320px; height: 320px; border-radius: 50%; overflow: hidden; border: 6px solid rgba(0,255,255,0.6); box-shadow: 0 0 25px cyan; position: relative; z-index: 900;\">\r\n    <div id=\"googleMap\" style=\"width:100%; height:100%;\"><\/div>\r\n  <\/div>\r\n<\/div>\r\n\r\n<!-- Google Maps API (clave v\u00e1lida y correcta) -->\r\n<script src=\"https:\/\/maps.googleapis.com\/maps\/api\/js?key=AIzaSyDLPhx98z9AgoqXS6VeoESE9NV6URuOhiE&#038;callback=initMap\" async defer><\/script>\r\n\r\n<script>\r\n  function activateculturalCube() {\r\n    \/\/ Oculta el grid de opciones\r\n    const rrGrid = document.getElementById(\"rrGrid\");\r\n    if (rrGrid) {\r\n      rrGrid.style.display = \"none\";\r\n    }\r\n\r\n    \/\/ Muestra el contenedor del cubo Cultural\r\n    const container = document.getElementById(\"culturalContainer\");\r\n    if (container) {\r\n      container.style.opacity = \"1\";\r\n      container.style.pointerEvents = \"auto\";\r\n    }\r\n\r\n    \/\/ Muestra el mapa\r\n    const map = document.getElementById(\"glowMapContainer\");\r\n    if (map) {\r\n      map.style.opacity = \"1\";\r\n      map.style.pointerEvents = \"auto\";\r\n    }\r\n\r\n    \/\/ Reinicia el mapa si es necesario\r\n    if (typeof initMap === \"function\") {\r\n      initMap();\r\n    }\r\n  }\r\n<\/script>\r\n<script>\r\n function initMap() {\r\n  const map = new google.maps.Map(document.getElementById(\"googleMap\"), {\r\n    center: { lat: 6.2414088, lng: -75.22951 },  \/\/ Bliss Glamping\r\n    zoom: 15,\r\n    disableDefaultUI: true,\r\n    gestureHandling: \"greedy\"\r\n  });\r\n\r\n  \/\/ \ud83d\udfe2 Add this to show the marker\r\n  const marker = new google.maps.Marker({\r\n    position: { lat: 6.2414088, lng: -75.22951 },\r\n    map: map,\r\n    title: \"Bliss Glamping\"\r\n  });\r\n\r\n  \/\/ Optional: save the map to global variable if needed later\r\n  window.ggMap = map;\r\n}\r\n<\/script>\r\n<!-- POP-UP para Bliss Coin -->\r\n<div id=\"blissCoinPopup\" style=\"display:none; position:fixed; top:0; left:0; width:100%; height:100%; background:rgba(0,0,0,0.9); z-index:9999; justify-content:center; align-items:center; font-family:Orbitron;\">\r\n  <div style=\"background:#111; padding:30px 20px; border:2px solid cyan; border-radius:20px; color:white; width:300px; text-align:center; box-shadow:0 0 20px cyan;\">\r\n    <h3 style=\"font-size:18px;\">\ud83d\udcb3 Pay with Bliss Coin<\/h3>\r\n    <p style=\"font-size:14px;\">Enter your digital wallet #:<\/p>\r\n    <input type=\"text\" placeholder=\"Your Wallet #\" style=\"width:90%; padding:8px; border-radius:10px; border:1px solid white; background:#000; color:white; margin-top:8px;\" \/>\r\n    <p style=\"margin-top:14px;\">Send payment to:<\/p>\r\n    <div style=\"margin:8px auto; padding:6px; background:#222; border:1px solid cyan; border-radius:8px;\">\r\n      <code style=\"font-size:13px;\">HOST-WALLET-ADDRESS-123<\/code>\r\n    <\/div>\r\n    <button onclick=\"closeBlissCoinPopup()\" style=\"margin-top:12px; padding:6px 16px; border-radius:10px; background:cyan; border:none; color:#000; font-weight:bold; cursor:pointer;\">\r\n      Close\r\n    <\/button>\r\n  <\/div>\r\n<\/div>\r\n\r\n<script>\r\n  function openBlissCoinPopup() {\r\n    document.getElementById('blissCoinPopup').style.display = 'flex';\r\n  }\r\n  function closeBlissCoinPopup() {\r\n    document.getElementById('blissCoinPopup').style.display = 'none';\r\n  }\r\n<\/script>\r\n\r\n\r\n\r\n<!-- ============================\r\nGLOBAL PREVIEW + SHOW ROUTE\r\n(para Cultural \/ Level 3)\r\n============================ -->\r\n<script>\r\n(() => {\r\n  \/* ============ 1) VIDEOS POR SUBOPCI\u00d3N (PREVIEW) ============ *\/\r\n  \/\/ La clave debe ser una clase que tenga el c\u00edrculo .host-circle\r\n  const PREVIEW_MEDIA = {\r\n    \/* ART *\/\r\n    \"art-graf\": {\r\n      type: \"video\",\r\n      src: \"https:\/\/youtu.be\/wz1s1RH5pfw?si=aLS-Lb0cbynt_BqP\"   \/\/ Art Graffiti\r\n    },\r\n    \"art-loca\": {\r\n      type: \"video\",\r\n      src: \"https:\/\/youtu.be\/YyyfZhGwWTU?si=iZ8bwNCXvywIoS4E\"   \/\/ Art Local\r\n    },\r\n    \"art-town\": {\r\n      type: \"video\",\r\n      src: \"https:\/\/youtu.be\/YyyfZhGwWTU?si=67-jdCCgg_p2lGAc\"  \/\/ Art Towns\r\n    },\r\n    \/* (Art Stamp no tiene video a\u00fan: usar\u00e1 la imagen del c\u00edrculo) *\/\r\n\r\n    \/* RIVERS *\/\r\n    \"rivers-lights\": {\r\n      type: \"video\",\r\n      src: \"https:\/\/youtu.be\/uMZb8U67o24?si=went4mcjDEe3k-Jb\"   \/\/ River Lights\r\n    },\r\n    \"rivers-farmer\": {\r\n      type: \"video\",\r\n      src: \"https:\/\/youtu.be\/UBUHMSaSOv4?si=BZnqONhmnjAfnopq\"  \/\/ River Farmers\r\n    },\r\n    \"rivers-bike\": {\r\n      type: \"video\",\r\n      src: \"https:\/\/youtu.be\/tATrQaDving?si=-34eCnnM3BkHRc1_\"  \/\/ River Bike\r\n    },\r\n    \"rivers-scaven\": {\r\n      type: \"video\",\r\n      src: \"https:\/\/youtu.be\/vkgX58ojl2A?si=OrECpokFd0dC95KA\"  \/\/ River Scavenger\r\n    },\r\n\r\n    \/* ENOTOURS *\/\r\n    \"eno-flower\": {\r\n      type: \"video\",\r\n      src: \"https:\/\/youtu.be\/XMPdpZBwxZY?si=xmlGepTcLLuUpV3x\"  \/\/ Enotour Flowers\r\n    },\r\n    \"eno-coff\": {\r\n      type: \"video\",\r\n      src: \"https:\/\/youtu.be\/ydcEqvitMmo?si=FFOy7yWFq37BBs6J\"  \/\/ Enotours Coffee\r\n    },\r\n    \"eno-wine\": {\r\n      type: \"video\",\r\n      src: \"https:\/\/youtu.be\/3Yz6K-9ceps?si=J88xF-YrV1iz99WO\"  \/\/ Enotours Wine\r\n    },\r\n    \"eno-fruit\": {\r\n      type: \"video\",\r\n      src: \"https:\/\/youtu.be\/y3tugI4w0OE?si=YL5_zHTpOZhiBtSi\"  \/\/ Enotours Fruits\r\n    },\r\n\r\n    \/* FENIX *\/\r\n    \"feni-moveme\": {\r\n      type: \"video\",\r\n      src: \"https:\/\/youtu.be\/bEvu73isGQk?si=V6eYeTE41KiXHn28\"  \/\/ Fenix Movement\r\n    },\r\n    \"feni-elpeno\": {\r\n      type: \"video\",\r\n      src: \"https:\/\/youtu.be\/QK6aBDxySgk\"                      \/\/ Fenix El Pe\u00f1ol\r\n    },\r\n    \"feni-drug\": {\r\n      type: \"video\",\r\n      src: \"https:\/\/youtu.be\/2fIMcpFtkEI?si=7q1P3U5UNb7--UH1\"  \/\/ Fenix Drug Lord\r\n    },\r\n    \"feni-music\": {\r\n      type: \"video\",\r\n      src: \"https:\/\/youtu.be\/1ZR7zFh5MXs?si=zCE4d1SQppdOJJdd\"  \/\/ Fenix Music\r\n    }\r\n  };\r\n\r\n  \/* ============ 1.5) RUTAS KML POR SUBOPCI\u00d3N (SHOW ROUTE) ============ *\/\r\n  const ROUTE_KMLS = {\r\n    \/* ART *\/\r\n    \"art-graf\": \"https:\/\/godsgalaxygame.com\/Kml\/Art%20Graffiti.kml\",\r\n    \"art-loca\": \"https:\/\/godsgalaxygame.com\/Kml\/Art%20Local.kml\",\r\n    \"art-town\": \"https:\/\/godsgalaxygame.com\/Kml\/Art%20Towns.kml\",\r\n    \/\/ \"art-stamp\" sin KML todav\u00eda\r\n\r\n    \/* RIVERS *\/\r\n    \"rivers-lights\":   \"https:\/\/godsgalaxygame.com\/Kml\/River%20Lights.kml\",\r\n    \"rivers-farmer\":   \"https:\/\/godsgalaxygame.com\/Kml\/River%20Farmers.kml\",\r\n    \"rivers-bike\":     \"https:\/\/godsgalaxygame.com\/Kml\/River%20Bike.kml\",\r\n    \"rivers-scaven\":   \"https:\/\/godsgalaxygame.com\/Kml\/River%20Scavenger.kml\",\r\n\r\n    \/* ENOTOURS *\/\r\n    \"eno-flower\":      \"https:\/\/godsgalaxygame.com\/Kml\/Enotour%20Flowers.kml\",\r\n    \"eno-coff\":        \"https:\/\/godsgalaxygame.com\/Kml\/Enotours%20Coffee.kml\",\r\n    \"eno-wine\":        \"https:\/\/godsgalaxygame.com\/Kml\/Enotours%20Wine.kml\",\r\n    \"eno-fruit\":       \"https:\/\/godsgalaxygame.com\/Kml\/Enotours%20Fruits.kml\",\r\n\r\n    \/* FENIX *\/\r\n    \"feni-moveme\":     \"https:\/\/godsgalaxygame.com\/Kml\/Fenix%20Movement.kml\",\r\n    \"feni-elpeno\":     \"https:\/\/godsgalaxygame.com\/Kml\/Fenix%20El%20Pe%C3%B1ol.kml\",\r\n    \"feni-drug\":       \"https:\/\/godsgalaxygame.com\/Kml\/Fenix%20Drug%20Lord.kml\",\r\n    \"feni-music\":      \"https:\/\/godsgalaxygame.com\/Kml\/Fenix%20Music.kml\"\r\n  };\r\n\r\n  \/* ============ 2) ESTADO INTERNO ============ *\/\r\n  let state = { key: null, type: null, src: null, title: null };\r\n  let currentKmlLayer = null;\r\n\r\n  const until = (fn, timeout = 8000, every = 120) => new Promise((res, rej) => {\r\n    const t0 = performance.now();\r\n    const tick = () => {\r\n      const out = fn();\r\n      if (out) return res(out);\r\n      if (performance.now() - t0 > timeout) return rej(new Error('timeout'));\r\n      setTimeout(tick, every);\r\n    };\r\n    tick();\r\n  });\r\n\r\n  const getBgURL = (el) => {\r\n    const bg = (getComputedStyle(el).backgroundImage || '').trim();\r\n    return bg.replace(\/^url\\((['\"]?)(.*)\\1\\)$\/, '$2');\r\n  };\r\n\r\n  const make = (tag, attrs = {}, html = '') => {\r\n    const el = document.createElement(tag);\r\n    Object.entries(attrs).forEach(([k, v]) => el.setAttribute(k, v));\r\n    if (html) el.innerHTML = html;\r\n    return el;\r\n  };\r\n\r\n  \/\/ Convierte YouTube\/Vimeo en iframe con AUTOPLAY\r\n  const embedFrom = (url) => {\r\n    if (\/youtube\\.com\\\/embed\\\/\/i.test(url)) {\r\n      const hasQuery = url.includes(\"?\");\r\n      return `<iframe src=\"${url}${hasQuery ? \"&#038;\" : \"?\"}autoplay=1&#038;rel=0&#038;playsinline=1\"\r\n        allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\"\r\n        allowfullscreen><\/iframe>`;\r\n    }\r\n\r\n    const yt = url.match(\/(?:youtu\\.be\\\/|youtube\\.com\\\/watch\\?v=)([\\w\\-]+)\/i);\r\n    const vm = url.match(\/vimeo\\.com\\\/(\\d+)\/i);\r\n\r\n    if (yt) {\r\n      const id = yt[1];\r\n      return `<iframe src=\"https:\/\/www.youtube.com\/embed\/${id}?autoplay=1&#038;rel=0&#038;playsinline=1\"\r\n        allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\"\r\n        allowfullscreen><\/iframe>`;\r\n    }\r\n\r\n    if (vm) {\r\n      const id = vm[1];\r\n      return `<iframe src=\"https:\/\/player.vimeo.com\/video\/${id}?autoplay=1\"\r\n        allow=\"autoplay; fullscreen; picture-in-picture; clipboard-write\"\r\n        allowfullscreen><\/iframe>`;\r\n    }\r\n\r\n    return `<a href=\"${url}\" target=\"_blank\" style=\"color:#00ffff; font-weight:900; text-decoration:underline;\">Open video<\/a>`;\r\n  };\r\n\r\n  \/* ============ 3) ESTILOS + UI EN EL MAPA ============ *\/\r\n  function injectStyles() {\r\n    if (document.getElementById('ggg-preview-styles')) return;\r\n    const css = `\r\n#glowMapContainer{ position:relative; }\r\n#accSeePreview, #accShowRoute{\r\n  position:absolute; left:50%; transform:translateX(-50%);\r\n  padding:8px 14px;\r\n  border-radius:999px; border:2px solid rgba(0,255,255,.7);\r\n  background:rgba(0,0,0,.65); color:#eafcff;\r\n  font-family:Orbitron,system-ui,sans-serif; font-weight:900; letter-spacing:.2px;\r\n  box-shadow:0 0 16px rgba(0,255,255,.45);\r\n  cursor:pointer; z-index:1200; display:none;\r\n}\r\n#accSeePreview{ bottom:46px; }\r\n#accShowRoute{ bottom:10px; }\r\n\r\n#accSeePreview:hover, #accShowRoute:hover{\r\n  box-shadow:0 0 22px rgba(0,255,255,.85);\r\n}\r\n#accPreviewOverlay{\r\n  position:absolute; inset:0; display:none; place-items:center;\r\n  background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,.30), rgba(0,0,0,.65) 70%);\r\n  z-index:1300;\r\n}\r\n.acc-preview-circle{\r\n  width: clamp(200px, 62%, 300px); aspect-ratio:1\/1;\r\n  border-radius:50%; border:4px solid rgba(0,255,255,.75);\r\n  box-shadow: 0 0 28px rgba(0,255,255,.6), inset 0 0 22px rgba(0,255,255,.25);\r\n  background:#000; overflow:hidden; position:relative;\r\n  display:grid; place-items:center;\r\n}\r\n.acc-closeX{\r\n  position:absolute; top:6px; right:8px; z-index:2;\r\n  border:0; background:rgba(0,0,0,.55); color:#9fefff;\r\n  font-size:20px; font-weight:900; width:28px; height:28px;\r\n  border-radius:50%; cursor:pointer; line-height:26px;\r\n  box-shadow:0 0 10px rgba(0,255,255,.35);\r\n}\r\n#accPreviewMedia{ width:92%; height:92%; display:grid; place-items:center; }\r\n#accPreviewMedia img{ width:100%; height:100%; object-fit:cover; border-radius:50%; display:block; }\r\n#accPreviewMedia iframe{ width:100%; height:100%; border:0; border-radius:50%; }`;\r\n    const style = make('style', { id: 'ggg-preview-styles' }, css);\r\n    document.head.appendChild(style);\r\n  }\r\n\r\n  function mountUI(mapWrap) {\r\n    if (document.getElementById('accSeePreview')) {\r\n      return {\r\n        btnPreview: document.getElementById('accSeePreview'),\r\n        btnRoute: document.getElementById('accShowRoute'),\r\n        overlay: document.getElementById('accPreviewOverlay'),\r\n        media: document.getElementById('accPreviewMedia')\r\n      };\r\n    }\r\n\r\n    const btnPrev = make('button', { id: 'accSeePreview', 'aria-haspopup': 'dialog' }, '\ud83d\udc41\ufe0f See Preview');\r\n    const btnRoute = make('button', { id: 'accShowRoute', 'aria-haspopup': 'false' }, '\ud83d\udccd Show Route');\r\n\r\n    const overlay = make('div', { id: 'accPreviewOverlay', 'aria-hidden': 'true' });\r\n    overlay.innerHTML = `\r\n      <div class=\"acc-preview-circle\" role=\"dialog\" aria-label=\"Map preview\">\r\n        <button class=\"acc-closeX\" aria-label=\"Close preview\">\u00d7<\/button>\r\n        <div id=\"accPreviewMedia\"><\/div>\r\n      <\/div>`;\r\n\r\n    mapWrap.appendChild(btnPrev);\r\n    mapWrap.appendChild(btnRoute);\r\n    mapWrap.appendChild(overlay);\r\n\r\n    const media = document.getElementById('accPreviewMedia');\r\n    const closeBtn = overlay.querySelector('.acc-closeX');\r\n\r\n    \/\/ Abrir PREVIEW\r\n    btnPrev.addEventListener('click', () => {\r\n      if (!state.src) return;\r\n      media.innerHTML = state.type === 'video'\r\n        ? embedFrom(state.src)\r\n        : `<img decoding=\"async\" src=\"${state.src}\" alt=\"${state.title || 'Preview'}\">`;\r\n\r\n      overlay.style.display = 'grid';\r\n      overlay.setAttribute('aria-hidden', 'false');\r\n    });\r\n\r\n    \/\/ Cerrar PREVIEW\r\n    const close = () => {\r\n      overlay.style.display = 'none';\r\n      overlay.setAttribute('aria-hidden', 'true');\r\n      media.innerHTML = '';\r\n    };\r\n    closeBtn.addEventListener('click', close);\r\n    overlay.addEventListener('click', (e) => { if (e.target === overlay) close(); });\r\n    window.addEventListener('keydown', (e) => { if (e.key === 'Escape') close(); }, { passive: true });\r\n\r\n    \/\/ CLICK EN SHOW ROUTE (zoom fijo 13)\r\n    btnRoute.addEventListener('click', () => {\r\n      if (!state.key) return;\r\n      const url = ROUTE_KMLS[state.key];\r\n      if (!url || !window.ggMap || !window.google) return;\r\n\r\n      \/\/ Limpia la ruta anterior\r\n      if (currentKmlLayer) {\r\n        currentKmlLayer.setMap(null);\r\n        currentKmlLayer = null;\r\n      }\r\n\r\n      \/\/ Carga la nueva ruta y deja que el KML mueva el mapa\r\n      currentKmlLayer = new google.maps.KmlLayer({\r\n        url,\r\n        map: window.ggMap,\r\n        suppressInfoWindows: false,\r\n        preserveViewport: false\r\n      });\r\n\r\n      \/\/ Cuando el KML termine de cargar, forzamos zoom 13 SIEMPRE\r\n      google.maps.event.addListenerOnce(currentKmlLayer, 'status_changed', () => {\r\n        google.maps.event.addListenerOnce(window.ggMap, 'idle', () => {\r\n          window.ggMap.setZoom(13);\r\n        });\r\n      });\r\n    });\r\n\r\n    return { btnPreview: btnPrev, btnRoute, overlay, media };\r\n  }\r\n\r\n  \/* ============ 4) LEER CLAVE DESDE EL C\u00cdRCULO ============ *\/\r\n  function keyFromClasses(el) {\r\n    const classes = [...el.classList];\r\n    \/\/ Primero busca una clase que exista en PREVIEW_MEDIA o ROUTE_KMLS\r\n    const anyKnown = classes.find(c => PREVIEW_MEDIA[c] || ROUTE_KMLS[c]);\r\n    return anyKnown || null;\r\n  }\r\n\r\n  function hookCircles(btnPrev, btnRoute) {\r\n    const wrap = document.getElementById('hostButtons');\r\n    if (!wrap) return;\r\n\r\n    wrap.addEventListener('click', (e) => {\r\n      const el = e.target.closest('.host-circle');\r\n      if (!el) return;\r\n\r\n      const key = keyFromClasses(el);\r\n      const cfg = key ? PREVIEW_MEDIA[key] : null;\r\n      const title = el.getAttribute('title') || '';\r\n\r\n      const fallbackImg = getBgURL(el);\r\n      state = {\r\n        key,\r\n        type: cfg?.type || 'image',\r\n        src:  cfg?.src || fallbackImg,\r\n        title\r\n      };\r\n\r\n      \/\/ See Preview: se muestra si tenemos ALGO que mostrar (video o imagen)\r\n      if (btnPrev) {\r\n        btnPrev.style.display = state.src ? 'block' : 'none';\r\n      }\r\n\r\n      \/\/ Show Route: solo si existe KML para esa key\r\n      if (btnRoute) {\r\n        btnRoute.style.display = (key && ROUTE_KMLS[key]) ? 'block' : 'none';\r\n      }\r\n\r\n    }, { passive: true });\r\n  }\r\n\r\n  \/* ============ 5) ARRANQUE ============ *\/\r\n  async function boot() {\r\n    try {\r\n      injectStyles();\r\n\r\n      \/\/ Espera a que exista el mapa y el contenedor\r\n      await until(() => window.ggMap && document.getElementById('glowMapContainer'));\r\n      const mapWrap = document.getElementById('glowMapContainer');\r\n      const refs = mountUI(mapWrap);\r\n\r\n      \/\/ Espera a que exista hostButtons\r\n      await until(() => document.getElementById('hostButtons'));\r\n      hookCircles(refs.btnPreview, refs.btnRoute);\r\n\r\n      console.log('%c[GGG Cultural Preview+Route] Ready', 'color:#0ff');\r\n    } catch (e) {\r\n      console.warn('[GGG Cultural Preview+Route] init failed:', e);\r\n    }\r\n  }\r\n\r\n  if (document.readyState === 'loading') {\r\n    document.addEventListener('DOMContentLoaded', boot);\r\n  } else {\r\n    boot();\r\n  }\r\n})();\r\n<\/script>\r\n\r\n\r\n\r\n<!-- BLOQUE 3 \u2013 Movimiento + Swipe + SignIn + Favoritos (First You) -->\r\n\r\n<!-- ESTILOS -->\r\n<style>\r\n  #floatingButtons {\r\n    position: fixed;\r\n    top: 14px;\r\n    right: 14px;\r\n    display: flex;\r\n    flex-direction: row;\r\n    gap: 10px;\r\n    z-index: 3000;\r\n  }\r\n\r\n  #favoritesBtn, #signinBtn {\r\n    font-size: 15px;\r\n    padding: 6px 10px;\r\n    border-radius: 8px;\r\n    border: 2px solid white;\r\n    color: white;\r\n    background: rgba(0, 0, 0, 0.6);\r\n    cursor: pointer;\r\n    box-shadow: 0 0 8px cyan;\r\n    font-family: Orbitron;\r\n  }\r\n\r\n  #favoritesBtn:hover::after {\r\n    content: ' Double click a Host to add \ud83d\udc98';\r\n    font-size: 10px;\r\n    margin-left: 8px;\r\n    color: cyan;\r\n  }\r\n#pyramidBtn {\r\n    width: 38px;\r\n    height: 38px;\r\n    background-color: black;\r\n    border: 2px solid white;\r\n    border-radius: 50%;\r\n    box-shadow: 0 0 10px cyan; \/* glow *\/\r\n    display: flex;\r\n    justify-content: center;\r\n    align-items: center;\r\n    font-size: 20px; \/* emoji size *\/\r\n    cursor: pointer;\r\n    margin-top: 2px; \/* align with rose *\/\r\n  }\r\n\r\n  #pyramidBtn:hover {\r\n    transform: scale(1.2);\r\n  }\r\n\r\n#roseBtn {\r\n  width: 38px;\r\n  height: 38px;\r\n  background-color: black; \/* Keep black background *\/\r\n  background-image: url('http:\/\/godsgalaxygame.com\/GGG\/wp-content\/uploads\/2025\/07\/ChatGPT-Image-Jul-7-2025-05_11_38-PM.png');\r\n  background-size: cover;\r\n  background-position: center;\r\n  border: 2px solid white; \/* Optional white border *\/\r\n  border-radius: 50%;\r\n  box-shadow: 0 0 10px white; \/* White glow around the button *\/\r\n  cursor: pointer;\r\n  margin-top: 2px; \/* Adjust position to align with others *\/\r\n}\r\n\r\n#roseBtn:hover {\r\n  transform: scale(1.2);\r\n}\r\n\r\n  #signinBtn:hover::after {\r\n    content: ' Sign in to save your Favorites';\r\n    font-size: 10px;\r\n    margin-left: 8px;\r\n    color: cyan;\r\n  }\r\n\r\n  #swipeImage {\r\n    position: fixed;\r\n    top: 0;\r\n    left: 50%;\r\n    transform: translateX(-50%);\r\n    width: 160px;\r\n    z-index: 1200;\r\n    display: none;\r\n  }\r\n#swipeImage {\r\n  display: none !important;\r\n}\r\n\r\n<\/style>\r\n\r\n<!-- BOTONES FLOTANTES -->\r\n<div id=\"floatingButtons\">\r\n<button\r\n    id=\"pyramidBtn\"\r\n    title=\"Back to MedaYork Pyramid\"\r\n    onclick=\"window.location.href='https:\/\/godsgalaxygame.com\/GGG\/medayork-pyramid-2\/';\">\r\n    \ud83e\uddca\r\n  <\/button>\r\n<button id=\"roseBtn\"><\/button>\r\n\r\n  <button id=\"favoritesBtn\">\ud83d\udc96<\/button>\r\n  <button id=\"signinBtn\">Sign In \/ Sign Up<\/button>\r\n<\/div>\r\n\r\n<!-- IMAGEN DE SWIPE -->\r\n<img decoding=\"async\" id=\"swipeImage\" src=\"https:\/\/godsgalaxygame.com\/GGG\/wp-content\/uploads\/2025\/06\/Screenshot_20250627_154147_Gallery.jpg\" alt=\"Swipe\" \/>\r\n\r\n<!-- SCRIPT DE FUNCIONALIDAD -->\r\n<script>\r\n  \/\/ Movimiento del cubo Cultural\r\n  let isDragging = false, startX, startY, rotateX = 0, rotateY = 0;\r\n  const cube = document.getElementById('culturalCube');\r\n\r\n  function updateRotation(x, y) {\r\n    cube.style.transform = `rotateX(${x}deg) rotateY(${y}deg)`;\r\n  }\r\n\r\n  function onMouseDown(e) {\r\n    isDragging = true;\r\n    startX = e.clientX;\r\n    startY = e.clientY;\r\n  }\r\n\r\n  function onMouseMove(e) {\r\n    if (!isDragging) return;\r\n    const deltaX = e.clientX - startX;\r\n    const deltaY = e.clientY - startY;\r\n    rotateY += deltaX * 0.5;\r\n    rotateX -= deltaY * 0.5;\r\n    updateRotation(rotateX, rotateY);\r\n    startX = e.clientX;\r\n    startY = e.clientY;\r\n  }\r\n\r\n  function onMouseUp() {\r\n    isDragging = false;\r\n  }\r\n\r\n  function onTouchStart(e) {\r\n    isDragging = true;\r\n    startX = e.touches[0].clientX;\r\n    startY = e.touches[0].clientY;\r\n  }\r\n\r\n  function onTouchMove(e) {\r\n    if (!isDragging) return;\r\n    const deltaX = e.touches[0].clientX - startX;\r\n    const deltaY = e.touches[0].clientY - startY;\r\n    rotateY += deltaX * 0.5;\r\n    rotateX -= deltaY * 0.5;\r\n    updateRotation(rotateX, rotateY);\r\n    startX = e.touches[0].clientX;\r\n    startY = e.touches[0].clientY;\r\n  }\r\n\r\n  function onTouchEnd() {\r\n    isDragging = false;\r\n  }\r\n\r\n  const cubeContainer = document.querySelector('.cube-scene');\r\n  if (cubeContainer) {\r\n    cubeContainer.addEventListener('mousedown', onMouseDown);\r\n    window.addEventListener('mousemove', onMouseMove);\r\n    window.addEventListener('mouseup', onMouseUp);\r\n    cubeContainer.addEventListener('touchstart', onTouchStart);\r\n    window.addEventListener('touchmove', onTouchMove);\r\n    window.addEventListener('touchend', onTouchEnd);\r\n  }\r\n\r\n  \/\/ Swipe image cuando aparece el cubo\r\n  const observer = new MutationObserver(() => {\r\n    const cultural = document.getElementById('culturalCubeContainer');\r\n    if (cultural && cultural.style.opacity === \"1\") {\r\n      const swipe = document.getElementById('swipeImage');\r\n      swipe.style.display = 'block';\r\n      setTimeout(() => {\r\n        swipe.style.display = 'none';\r\n      }, 3500);\r\n      observer.disconnect();\r\n    }\r\n  });\r\n  observer.observe(document.body, { childList: true, subtree: true });\r\n\r\n  \/\/ Sistema de favoritos \ud83d\udc96 \u2192 \ud83d\udc98\r\n  const favorites = [];\r\n\r\n  function toggleFavorite(id, imgUrl, mapLat, mapLng) {\r\n    if (!favorites.some(f => f.id === id)) {\r\n      favorites.push({ id, imgUrl, lat: mapLat, lng: mapLng });\r\n      document.getElementById(\"favoritesBtn\").textContent = \"\ud83d\udc98\";\r\n      console.log(\"Favorito agregado:\", id);\r\n    }\r\n  }\r\nfunction handleReserveClick() {\r\n  const TRAVEL_CLUB_URL = \"https:\/\/godsgalaxygame.com\/GGG\/medayork-pyramid-2\/?travelclub=1\";\r\n  const selected = Array.isArray(favorites) ? favorites : [];\r\n\r\n  \/\/ If there ARE favorites \u2192 send email\r\n  if (selected.length > 0) {\r\n    const lines = selected.map((f, i) => {\r\n      const id = f.id || `Host ${i+1}`;\r\n      const lat = (f.lat ?? \"\");\r\n      const lng = (f.lng ?? \"\");\r\n      return `${i + 1}. ${id}${(lat !== \"\" && lng !== \"\") ? ` (${lat}, ${lng})` : \"\"}`;\r\n    });\r\n\r\n    const subject = encodeURIComponent(\"GGG \u2013 Selected Hosts\");\r\n    const body = encodeURIComponent(\r\n      \"User selected the following hosts:\\n\\n\" + lines.join(\"\\n\")\r\n    );\r\n\r\n    window.location.href =\r\n      `mailto:edwardraigozallc@gmail.com?subject=${subject}&body=${body}`;\r\n  }\r\n\r\n  \/\/ ALWAYS go to Travel Club (favorites or not)\r\n  setTimeout(() => {\r\n    window.location.href = TRAVEL_CLUB_URL;\r\n  }, 650);\r\n}\r\n\r\n  function clearFavorites() {\r\n    favorites.length = 0;\r\n    document.getElementById(\"favoritesBtn\").textContent = \"\ud83d\udc96\";\r\n  }\r\n\r\n  function focusOnHost(lat, lng) {\r\n    if (window.ggMap) {\r\n      window.ggMap.setCenter({ lat, lng });\r\n      window.ggMap.setZoom(15);\r\n      new google.maps.Marker({ position: { lat, lng }, map: window.ggMap });\r\n    }\r\n  }\r\n\r\n  document.getElementById(\"favoritesBtn\").addEventListener(\"click\", () => {\r\n    if (favorites.length === 0) return;\r\n    document.querySelectorAll('.host-circle').forEach(btn => btn.style.display = 'none');\r\n    favorites.forEach(fav => {\r\n      const existing = document.querySelector(`.${fav.id}`);\r\n      if (existing) existing.style.display = 'inline-block';\r\n    });\r\n  });\r\n<\/script>\r\n\r\n\r\n\r\n<!-- HOST CIRCLES \u2014 CSS (Cultural) -->\r\n<style>\r\n  \/* container *\/\r\n  #hostButtons{\r\n    display:none;                 \/* hidden until a sub-option is clicked *\/\r\n    position:absolute;\r\n    top:50%; left:50%;\r\n    transform:translate(-50%,-50%);\r\n    width:100%; max-width:500px; height:500px;\r\n    pointer-events:none;          \/* turned ON in JS when shown *\/\r\n    z-index:3000;\r\n  }\r\n\r\n  \/* buttons *\/\r\n  #hostButtons .host-circle{\r\n    width:80px; height:80px; border-radius:50%;\r\n    border:2px solid #fff; box-shadow:0 0 14px #fff;\r\n    background-size:cover; background-position:center;\r\n    position:absolute; pointer-events:auto; cursor:pointer;\r\n    transition:transform .3s, box-shadow .3s;\r\n  }\r\n  #hostButtons .host-circle:hover{ transform:scale(1.15); box-shadow:0 0 20px cyan; }\r\n\r\n  \/* desktop placement (around the circle) *\/\r\n  #hostButtons .one    { top:4%;    left:10%; }\r\n  #hostButtons .five   { top:4%;    right:10%; }\r\n  #hostButtons .seven  { bottom:8%; left:10%; }\r\n  #hostButtons .month  { bottom:8%; right:10%; }\r\n\r\n  \/* color accents per family (match cube face glows) *\/\r\n  #hostButtons .art { border-color:beige;   box-shadow:0 0 14px beige; }\r\n  #hostButtons .rivers { border-color:#00ccff; box-shadow:0 0 14px #00ccff; }\r\n  #hostButtons .eno  { border-color:#33ff33; box-shadow:0 0 14px #33ff33; }\r\n  #hostButtons .feni { border-color:red;     box-shadow:0 0 14px red; }\r\n\r\n  \/* phone: turn into one row under the map *\/\r\n  @media (max-width:768px){\r\n    #hostButtons{\r\n      position:relative; top:auto; left:auto; transform:none;\r\n      height:auto; margin-top:-35px;\r\n      display:none;               \/* still hidden by default *\/\r\n      flex-wrap:nowrap; justify-content:center; gap:10px;\r\n    }\r\n    #hostButtons .host-circle{ position:relative; width:75px; height:75px; margin:0 6px; }\r\n  }\r\n<\/style>\r\n\r\n<!-- HOST CIRCLES \u2014 HTML (Cultural: Art\r\n \/ Rivers \/ Enotours \/ Fenix) -->\r\n<div id=\"hostButtons\">\r\n  <!-- Art (beige) -->\r\n  <button class=\"host-circle art art-graf one\"\r\n    data-lat=\"6.2414088\" data-lng=\"-75.22951\"\r\n    style=\"background-image:url('http:\/\/godsgalaxygame.com\/GGG\/wp-content\/uploads\/2025\/12\/Screenshot_20240902_124800_YouTube.jpg');\"\r\n    title=\"Art \u2022 Graffiti\"><\/button>\r\n\r\n  <button class=\"host-circle art art-loca five\"\r\n    data-lat=\"6.22663\" data-lng=\"-75.1831\"\r\n    style=\"background-image:url('http:\/\/godsgalaxygame.com\/GGG\/wp-content\/uploads\/2025\/12\/Screenshot_20240902_125455_Google-Earth.jpg');\"\r\n    title=\"Art \u2022 Local\"><\/button>\r\n\r\n  <button class=\"host-circle art art-town seven\"\r\n    data-lat=\"6.2288021\" data-lng=\"-75.2142911\"\r\n    style=\"background-image:url('http:\/\/godsgalaxygame.com\/GGG\/wp-content\/uploads\/2025\/12\/Screenshot_20240902_130043_Google.jpg');\"\r\n    title=\"Art \u2022 Towns\"><\/button>\r\n\r\n  <button class=\"host-circle art art-stamp month\"\r\n    data-lat=\"6.24426\" data-lng=\"-75.217632\"\r\n    style=\"background-image:url('http:\/\/godsgalaxygame.com\/GGG\/wp-content\/uploads\/2025\/12\/Screenshot_20240902_124800_YouTube.jpg');\"\r\n    title=\"Art \u2022 Stamp Art\"><\/button>\r\n\r\n  <!-- Rivers (cyan) -->\r\n  <button class=\"host-circle rivers rivers-lights one\"\r\n    data-lat=\"6.2414088\" data-lng=\"-75.2315485\"\r\n    style=\"background-image:url('http:\/\/godsgalaxygame.com\/GGG\/wp-content\/uploads\/2025\/12\/Screenshot_20240902_135016_Google-Earth.jpg');\"\r\n    title=\"Rivers \u2022 Lights\"><\/button>\r\n\r\n  <button class=\"host-circle rivers rivers-farmer five\"\r\n    data-lat=\"6.24426\" data-lng=\"-75.217632\"\r\n    style=\"background-image:url('http:\/\/godsgalaxygame.com\/GGG\/wp-content\/uploads\/2025\/12\/Screenshot_20240902_135617_Google-Earth.jpg');\"\r\n    title=\"Rivers \u2022 Farmers\"><\/button>\r\n\r\n  <button class=\"host-circle rivers rivers-bike seven\"\r\n    data-lat=\"6.2083202\" data-lng=\"-75.5677995\"\r\n    style=\"background-image:url('http:\/\/godsgalaxygame.com\/GGG\/wp-content\/uploads\/2025\/12\/Screenshot_20240902_140319_Google-Earth.jpg');\"\r\n    title=\"Rivers \u2022 Bike\"><\/button>\r\n\r\n  <button class=\"host-circle rivers rivers-scaven month\"\r\n    data-lat=\"6.2252116\" data-lng=\"-75.1800426\"\r\n    style=\"background-image:url('http:\/\/godsgalaxygame.com\/GGG\/wp-content\/uploads\/2025\/12\/Screenshot_20240831_184424_Chrome.jpg');\"\r\n    title=\"Rivers \u2022 Scavenger\"><\/button>\r\n\r\n  <!-- Enotours (green) -->\r\n  <button class=\"host-circle eno eno-flower one\"\r\n    data-lat=\"6.2414088\" data-lng=\"-75.22951\"\r\n    style=\"background-image:url('http:\/\/godsgalaxygame.com\/GGG\/wp-content\/uploads\/2025\/12\/Screenshot_20240902_160844_Google.jpg');\"\r\n    title=\"Enotours \u2022 Flowers\"><\/button>\r\n\r\n  <button class=\"host-circle eno eno-coff five\"\r\n    data-lat=\"6.22663\" data-lng=\"-75.1831\"\r\n    style=\"background-image:url('http:\/\/godsgalaxygame.com\/GGG\/wp-content\/uploads\/2025\/12\/Screenshot_20251222_130914_Google.jpg');\"\r\n    title=\"Enotours \u2022 Coffee\"><\/button>\r\n\r\n  <button class=\"host-circle eno eno-wine seven\"\r\n    data-lat=\"6.2288021\" data-lng=\"-75.2142911\"\r\n    style=\"background-image:url('http:\/\/godsgalaxygame.com\/GGG\/wp-content\/uploads\/2025\/12\/Screenshot_20240902_163423_Chrome.jpg');\"\r\n    title=\"Enotours \u2022 Wine\"><\/button>\r\n\r\n  <button class=\"host-circle eno eno-fruit month\"\r\n    data-lat=\"6.24426\" data-lng=\"-75.217632\"\r\n    style=\"background-image:url('http:\/\/godsgalaxygame.com\/GGG\/wp-content\/uploads\/2025\/12\/Screenshot_20240902_164435_Chrome.jpg');\"\r\n    title=\"Enotours \u2022 Fruits\"><\/button>\r\n\r\n  <!-- Fenix (red) -->\r\n  <button class=\"host-circle feni feni-moveme one\"\r\n    data-lat=\"6.2414088\" data-lng=\"-75.22951\"\r\n    style=\"background-image:url('http:\/\/godsgalaxygame.com\/GGG\/wp-content\/uploads\/2025\/12\/Screenshot_20240831_160025_YouTube.jpg');\"\r\n    title=\"Fenix \u2022 Movements\"><\/button>\r\n\r\n  <button class=\"host-circle feni feni-elpeno five\"\r\n    data-lat=\"6.22663\" data-lng=\"-75.1831\"\r\n    style=\"background-image:url('http:\/\/godsgalaxygame.com\/GGG\/wp-content\/uploads\/2025\/12\/Screenshot_20240902_171944_Gallery.jpg');\"\r\n    title=\"Fenix \u2022 El Pe\u00f1ol\"><\/button>\r\n\r\n  <button class=\"host-circle feni feni-drug seven\"\r\n    data-lat=\"6.2288021\" data-lng=\"-75.2142911\"\r\n    style=\"background-image:url('http:\/\/godsgalaxygame.com\/GGG\/wp-content\/uploads\/2025\/12\/Screenshot_20240902_173240_Google.jpg');\"\r\n    title=\"Fenix \u2022 Drug Lord\"><\/button>\r\n\r\n  <button class=\"host-circle feni feni-music month\"\r\n    data-lat=\"6.24426\" data-lng=\"-75.217632\"\r\n    style=\"background-image:url('http:\/\/godsgalaxygame.com\/GGG\/wp-content\/uploads\/2025\/12\/Screenshot_20240902_174224_YouTube.jpg');\"\r\n    title=\"Fenix \u2022 Music\"><\/button>\r\n<\/div>\r\n\r\n<!-- HOST CIRCLES \u2014 JS (Cultural) -->\r\n<script>\r\n  \/* Show only the requested key, e.g., 'art-graf' *\/\r\n  function showHostButtons(suboption){\r\n    const wrap = document.getElementById('hostButtons');\r\n    if(!wrap) return;\r\n\r\n    \/\/ hide all\r\n    wrap.querySelectorAll('.host-circle').forEach(el => el.style.display = 'none');\r\n\r\n    \/\/ show only requested group (class names include exact key)\r\n    wrap.querySelectorAll('.' + suboption).forEach(el => el.style.display = 'inline-block');\r\n\r\n    \/\/ reveal the container and allow clicks\r\n    wrap.style.display = 'flex';\r\n    wrap.style.pointerEvents = 'auto';\r\n  }\r\n\r\n  \/\/ dbl-tap \/ dbl-click to favorite (uses your existing toggleFavorite)\r\n  document.addEventListener('DOMContentLoaded', () => {\r\n    document.querySelectorAll('#hostButtons .host-circle').forEach(btn => {\r\n      btn.addEventListener('dblclick', (e) => {\r\n        e.preventDefault();\r\n\r\n        \/\/ \u2705 Get the specific key like \"heli-around\" \/ \"yacht-goto\"\r\n        const id = [...btn.classList].find(c =>\r\n          c.includes('-') &&\r\n          !['host-circle','around','goto','emergency','adventure'].includes(c)\r\n        );\r\n\r\n        if (!id) {\r\n          console.warn(\"No favorite id found for button:\", btn.className);\r\n          return;\r\n        }\r\n\r\n        \/\/ background-image: url(\"...\") or url('...')\r\n        const bg = btn.style.backgroundImage || '';\r\n        const img = bg.startsWith('url(')\r\n          ? bg.slice(4, -1).replace(\/^[\"']|[\"']$\/g, '')\r\n          : '';\r\n\r\n        const lat = parseFloat(btn.dataset.lat);\r\n        const lng = parseFloat(btn.dataset.lng);\r\n\r\n        if (typeof toggleFavorite === 'function') {\r\n          toggleFavorite(id, img, lat, lng);\r\n        } else {\r\n          console.warn(\"toggleFavorite() is not defined yet.\");\r\n        }\r\n      });\r\n    });\r\n  });\r\n\r\n  \/* Center the map when any host circle is clicked *\/\r\n  document.addEventListener('click', function (e) {\r\n    const btn = e.target.closest('#hostButtons .host-circle');\r\n    if (!btn) return;\r\n\r\n    const lat = parseFloat(btn.dataset.lat);\r\n    const lng = parseFloat(btn.dataset.lng);\r\n    if (!Number.isFinite(lat) || !Number.isFinite(lng)) return;\r\n\r\n    if (typeof window.focusOnHost === 'function') {\r\n      focusOnHost(lat, lng);\r\n      return;\r\n    }\r\n\r\n    if (window.ggMap && window.google) {\r\n      const pos = new google.maps.LatLng(lat, lng);\r\n      ggMap.setCenter(pos);\r\n      ggMap.setZoom(15);\r\n      new google.maps.Marker({ position: pos, map: ggMap });\r\n    }\r\n  });\r\n<\/script>\r\n\r\n\r\n\r\n- AVATAR -->\r\n<div id=\"avatarContainer\" onclick=\"showAvatarCloud()\" \r\n     style=\"position:fixed; bottom:80px; right:20px; z-index:9999; cursor:pointer; display:none;\">\r\n  <img decoding=\"async\" src=\"http:\/\/godsgalaxygame.com\/GGG\/wp-content\/uploads\/2025\/07\/Screenshot_20231118-120724_Instagram-scaled.jpg\" \r\n       style=\"width:180px; height:auto; border-radius: 50% \/ 30%; object-fit: cover; box-shadow: 0 0 12px aqua; filter: invert(100%) contrast(120%) brightness(110%);\">\r\n<\/div>\r\n\r\n<!-- CLOUD BUBBLE -->\r\n<div id=\"avatarCloud\" style=\"position:fixed; bottom:310px; right:30px; max-width:250px; background:rgba(0,0,0,0.7); \r\n     color:white; font-family:Orbitron, sans-serif; font-size:12px; line-height:16px; border-radius:20px 20px 20px 0px; \r\n     padding:14px 16px; box-shadow:0 0 15px aqua; display:none; z-index:9999; text-align:center;\r\n     border: 1px solid aqua;\">\r\n  <div id=\"avatarCloudMsg\">Loading...<\/div>\r\n  <div style=\"margin-top:10px;\">\r\n    <button onclick=\"acceptAvatarSuggestion()\" style=\"background:lime; color:black; border:none; padding:6px 10px; font-weight:bold;\">Yes<\/button>\r\n    <button onclick=\"dismissAvatarCloud()\" style=\"background:aqua; color:white; border:none; padding:6px 10px; font-weight:bold;\">No<\/button>\r\n  <\/div>\r\n  <div style=\"position:absolute; bottom:-18px; right:10px; width:0; height:0; border-left:10px solid transparent; \r\n              border-right:10px solid transparent; border-top:18px solid rgba(0,255,255,0.6); filter:blur(0.5px);\">\r\n  <\/div>\r\n<\/div>\r\n\r\n<!-- MOBILE ASSISTANT BUTTON -->\r\n<div id=\"avatarMobileBtn\" onclick=\"toggleMobileAvatar()\" style=\"display:none;\">\r\n  \ud83d\udc64 Assistant\r\n<\/div>\r\n\r\n<!-- ESTILOS -->\r\n<style>\r\n  #avatarMobileBtn {\r\n    position: fixed;\r\n    bottom: 18px;\r\n    right: 18px;\r\n    z-index: 9999;\r\n    background: rgba(0, 0, 0, 0.7);\r\n    color: white;\r\n    font-family: Orbitron, sans-serif;\r\n    font-size: 13px;\r\n    padding: 10px 14px;\r\n    border: 2px solid aqua;\r\n    border-radius: 14px;\r\n    box-shadow: 0 0 12px aqua;\r\n    cursor: pointer;\r\n    display: flex;\r\n    align-items: center;\r\n    gap: 8px;\r\n  }\r\n\r\n  @media (min-width: 769px) {\r\n    #avatarMobileBtn {\r\n      display: none !important;\r\n    }\r\n  }\r\n\r\n  @media (max-width: 768px) {\r\n    #avatarContainer {\r\n      bottom: 30px !important;\r\n      right: 90px !important;\r\n      width: 100px !important;\r\n      display: none;\r\n      pointer-events: none;\r\n    }\r\n\r\n    #avatarContainer img {\r\n      width: 100%;\r\n      height: auto;\r\n      border-radius: 50% \/ 30%;\r\n      object-fit: cover;\r\n      filter: grayscale(0%) brightness(1.1) contrast(1.2);\r\n      box-shadow: 0 0 12px aqua;\r\n    }\r\n  }\r\n\r\n  @media (min-width: 769px) {\r\n    #avatarContainer {\r\n      pointer-events: auto;\r\n    }\r\n  }\r\n<\/style>\r\n\r\n<!-- L\u00d3GICA -->\r\n<script>\r\n  const entertainmentQuestions = [\r\n    \"Ready to see what\u2019s out there today?\",\r\n    \"Want entertainment options nearby?\",\r\n    \"Looking for something fun to do?\",\r\n    \"Need ideas for your free time?\",\r\n    \"Want something exciting tonight?\"\r\n  ];\r\n\r\n  const gastronomyQuestions = [\r\n    \"Want to see gastronomy options nearby?\",\r\n    \"Ready to have dinner tonight?\",\r\n    \"Would you like some brunch spots?\",\r\n    \"Hungry for something special?\",\r\n    \"Looking for restaurants around you?\"\r\n  ];\r\n\r\n  function showAvatarCloud(forcedType = null) {\r\n    const hour = new Date().getHours();\r\n    const type = forcedType || (hour % 2 === 0 ? \"gastronomy\" : \"entertainment\");\r\n    const question = (type === \"gastronomy\" ? gastronomyQuestions : entertainmentQuestions)[Math.floor(Math.random() * 5)];\r\n\r\n    document.getElementById(\"avatarCloudMsg\").innerText = question;\r\n    document.getElementById(\"avatarCloud\").style.display = \"block\";\r\n  }\r\n\r\n  function acceptAvatarSuggestion() {\r\n    dismissAvatarCloud();\r\n    alert(\"\u2705 Showing Aries recommendations near you...\");\r\n  }\r\n\r\n  function dismissAvatarCloud() {\r\n    document.getElementById(\"avatarCloud\").style.display = \"none\";\r\n  }\r\n\r\n  \/\/ \ud83d\udcbb Show avatar automatically after 3 seconds (desktop only)\r\n  function showAvatarAssistant() {\r\n    const avatar = document.getElementById(\"avatarContainer\");\r\n    if (window.innerWidth > 768) {\r\n      avatar.style.display = \"block\";\r\n      avatar.style.pointerEvents = \"auto\";\r\n    }\r\n  }\r\n  setTimeout(showAvatarAssistant, 3000);\r\n\r\n  \/\/ \ud83d\udcf1 Toggle mobile avatar on\/off\r\n  let avatarVisible = false;\r\n  function toggleMobileAvatar() {\r\n    const avatar = document.getElementById(\"avatarContainer\");\r\n    const btn = document.getElementById(\"avatarMobileBtn\");\r\n\r\n    if (!avatarVisible) {\r\n      avatar.style.display = \"block\";\r\n      avatar.style.pointerEvents = \"auto\";\r\n      showAvatarCloud();\r\n      btn.innerHTML = \"\u274c Close\";\r\n    } else {\r\n      avatar.style.display = \"none\";\r\n      avatar.style.pointerEvents = \"none\";\r\n      dismissAvatarCloud();\r\n      btn.innerHTML = \"\ud83d\udc64 Assistant\";\r\n    }\r\n\r\n    avatarVisible = !avatarVisible;\r\n  }\r\n\r\n  \/\/ \ud83d\udcf1 Show mobile button on load\r\n  window.addEventListener(\"load\", () => {\r\n    if (window.innerWidth <= 768) {\r\n      document.getElementById(\"avatarMobileBtn\").style.display = \"flex\";\r\n    }\r\n  });\r\n<\/script>\r\n\r\n\r\n\r\n<!-- GGG ALCALDIA V17 \u00c2\u00b7 exact voice cue timing \u00c2\u00b7 hidden ?Alc=1 -->\r\n<script>\r\n(function(){\r\n'use strict';\r\nvar params=new URLSearchParams(location.search);\r\nvar active=Array.from(params).some(function(pair){return pair[0].toLowerCase()==='alc' && pair[1]==='1';});\r\nif(!active)return;\r\nfunction mount(){\r\nif(document.getElementById('gggAlcaldiaV17'))return;\r\nvar frame=null;\r\ntry{\r\nvar encoded='PCFkb2N0eXBlIGh0bWw+PGh0bWwgbGFuZz0iZXMiPjxoZWFkPjxtZXRhIGNoYXJzZXQ9InV0Zi04Ij48bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLGluaXRpYWwtc2NhbGU9MSx2aWV3cG9ydC1maXQ9Y292ZXIiPjx0aXRsZT5HR0cgUmVnZW5lcmEgTWVkZWxsw61uIMK3IFByZXNlbnRhY2nDs24gVjE3IMK3IERlIGxhIG9wb3J0dW5pZGFkIGFsIGhvZ2FyIHByb3BpbzwvdGl0bGU+PHN0eWxlPjpyb290ey0tYmc6IzAyMDkxNjstLWN5YW46I2E2ZjNmYTstLWdvbGQ6I2VlZDA5YX0qe2JveC1zaXppbmc6Ym9yZGVyLWJveH1odG1sLGJvZHl7bWFyZ2luOjA7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTtvdmVyZmxvdzpoaWRkZW47YmFja2dyb3VuZDp2YXIoLS1iZyk7Y29sb3I6I2VjZmJmZjtmb250LWZhbWlseTpBcmlhbCxIZWx2ZXRpY2Esc2Fucy1zZXJpZn1idXR0b24saW5wdXQsdGV4dGFyZWF7Zm9udDppbmhlcml0fWJ1dHRvbntjdXJzb3I6cG9pbnRlcn1idXR0b246Zm9jdXMtdmlzaWJsZSxpbnB1dDpmb2N1cy12aXNpYmxlLHRleHRhcmVhOmZvY3VzLXZpc2libGV7b3V0bGluZToycHggc29saWQgdmFyKC0tY3lhbik7b3V0bGluZS1vZmZzZXQ6M3B4fVtoaWRkZW5de2Rpc3BsYXk6bm9uZSFpbXBvcnRhbnR9CiNtb3ZpZXtwb3NpdGlvbjpmaXhlZDtpbnNldDowO292ZXJmbG93OmhpZGRlbjtiYWNrZ3JvdW5kOiMwMjA4MTZ9I2hhemV7cG9zaXRpb246YWJzb2x1dGU7aW5zZXQ6MDtiYWNrZ3JvdW5kOnJhZGlhbC1ncmFkaWVudChlbGxpcHNlIGF0IGNlbnRlciwjMGUzODUwLCMwNzE1MmEgNDIlLCMwMTA1MTQgODUlKX0jY2l0eXtwb3NpdGlvbjphYnNvbHV0ZTtpbnNldDowO3otaW5kZXg6MTtvcGFjaXR5OjA7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoIzA2MTQyYSwjMzAzOTVkIDQyJSwjOTk2ZTcyIDY2JSwjMGExODJhKTt0cmFuc2l0aW9uOm9wYWNpdHkgLjY1cztwb2ludGVyLWV2ZW50czpub25lfSNjaXR5IHN2Z3twb3NpdGlvbjphYnNvbHV0ZTtib3R0b206NSU7d2lkdGg6MTAwJTtoZWlnaHQ6NTglfSNtZW1vcnl7cG9zaXRpb246YWJzb2x1dGU7aW5zZXQ6MDt6LWluZGV4OjI7b3BhY2l0eTowO3RyYW5zaXRpb246b3BhY2l0eSAuNzVzO3BvaW50ZXItZXZlbnRzOm5vbmV9I21lbW9yeUdsb3d7cG9zaXRpb246YWJzb2x1dGU7aW5zZXQ6LTklO2JhY2tncm91bmQtc2l6ZTpjb3ZlcjtiYWNrZ3JvdW5kLXBvc2l0aW9uOmNlbnRlcjtmaWx0ZXI6Ymx1cig0MnB4KSBicmlnaHRuZXNzKC41NSk7b3BhY2l0eTouNX0jbWVtb3J5SW1ne3Bvc2l0aW9uOmFic29sdXRlO3RvcDoyNSU7bGVmdDo1MCU7d2lkdGg6bWluKDk0dncsMTMyMHB4KTtoZWlnaHQ6NjJ2aDtvYmplY3QtZml0OmNvbnRhaW47dHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTUwJSk7ZmlsdGVyOmJyaWdodG5lc3MoMS4xMikgc2F0dXJhdGUoMS4xMyk7bWFzay1pbWFnZTpyYWRpYWwtZ3JhZGllbnQoZWxsaXBzZSA4OCUgNzclIGF0IGNlbnRlciwjMDAwIDcyJSx0cmFuc3BhcmVudCAxMDAlKTthbmltYXRpb246em9vbVBob3RvIDE4cyBlYXNlLWluLW91dCBpbmZpbml0ZSBhbHRlcm5hdGV9QGtleWZyYW1lcyB6b29tUGhvdG97dG97dHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTUwJSkgc2NhbGUoMS4wOCl9fSNmeHtwb3NpdGlvbjphYnNvbHV0ZTtpbnNldDowO3otaW5kZXg6Mzt3aWR0aDoxMDAlO2hlaWdodDoxMDAlO3BvaW50ZXItZXZlbnRzOm5vbmV9CiNlYXJ0aHtib3JkZXItcmFkaXVzOjUwJTtjbGlwLXBhdGg6Y2lyY2xlKDUwJSBhdCA1MCUgNTAlKTtvdmVyZmxvdzpoaWRkZW47Ym94LXNoYWRvdzppbnNldCAtMjVweCAtMTJweCA1NXB4ICMwMDA5LDAgMCA0MHB4ICM0MGJmZmY1NTtwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjQ7bGVmdDo1MCU7dG9wOjUzJTt3aWR0aDptaW4oNjV2bWluLDYwMHB4KTtoZWlnaHQ6bWluKDY1dm1pbiw2MDBweCk7YmFja2dyb3VuZDp1cmwoJ2h0dHBzOi8vdXBsb2FkLndpa2ltZWRpYS5vcmcvd2lraXBlZGlhL2NvbW1vbnMvdGh1bWIvZS9lOS9CbHVlX01hcmJsZV9XZXN0ZXJuX0hlbWlzcGhlcmVfMjAyMi5qcGcvOTYwcHgtQmx1ZV9NYXJibGVfV2VzdGVybl9IZW1pc3BoZXJlXzIwMjIuanBnJykgY2VudGVyL2NvbnRhaW4gbm8tcmVwZWF0O2ZpbHRlcjpkcm9wLXNoYWRvdygwIDAgMzVweCAjMzY4ZWYxOGEpO29wYWNpdHk6MDtwb2ludGVyLWV2ZW50czpub25lfSNsaWdodFJpbmd7cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDozO2xlZnQ6NTAlO3RvcDo1MyU7d2lkdGg6NzJ2bWluO2hlaWdodDoyNnZtaW47Ym9yZGVyOjFweCBzb2xpZCAjOGZlYWZmNjY7Ym9yZGVyLXJhZGl1czo1MCU7dHJhbnNmb3JtOnRyYW5zbGF0ZSgtNTAlLC01MCUpIHJvdGF0ZSgtMjRkZWcpO2JveC1zaGFkb3c6MCAwIDY1cHggIzM2Y2FmMDJiO29wYWNpdHk6MH0KI3RvcHtwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjQwO3RvcDptYXgoMTdweCxlbnYoc2FmZS1hcmVhLWluc2V0LXRvcCkpO2xlZnQ6NHZ3O3JpZ2h0OjR2dztkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47YWxpZ24taXRlbXM6Y2VudGVyO2dhcDoxMnB4fSNicmFuZHtmb250LXNpemU6MTFweDtsZXR0ZXItc3BhY2luZzouMTVlbTtmb250LXdlaWdodDo5MDB9I2JyYW5kIHNwYW57Y29sb3I6dmFyKC0tY3lhbil9I3RvcFJpZ2h0e2Rpc3BsYXk6ZmxleDtnYXA6OHB4fS5zbWFsbEJ0biwjcGF1c2V7Ym9yZGVyOjFweCBzb2xpZCAjOGZlYWZmNmM7Ym9yZGVyLXJhZGl1czozMHB4O2JhY2tncm91bmQ6IzA3MjIzYWU2O2NvbG9yOiNkZmZhZmY7cGFkZGluZzoxMHB4IDEzcHg7Zm9udC1zaXplOjEwcHg7bGV0dGVyLXNwYWNpbmc6LjA4ZW19CiNoZXJve3Bvc2l0aW9uOmFic29sdXRlO2luc2V0OjA7ei1pbmRleDoxOTtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO3RleHQtYWxpZ246Y2VudGVyO3BhZGRpbmc6NzBweCAyNHB4IDkwcHg7YmFja2dyb3VuZDpyYWRpYWwtZ3JhZGllbnQoZWxsaXBzZSBhdCA1MCUgMzUlLCMwYzI4NDZhZCwjMDIwNzEzZWIgNzAlKTt0cmFuc2l0aW9uOm9wYWNpdHkgLjhzLHZpc2liaWxpdHkgLjhzfSNoZXJvLm9mZntvcGFjaXR5OjA7dmlzaWJpbGl0eTpoaWRkZW47cG9pbnRlci1ldmVudHM6bm9uZX0uY29yZXtwb3NpdGlvbjpyZWxhdGl2ZTtkaXNwbGF5OmdyaWQ7cGxhY2UtaXRlbXM6Y2VudGVyO3dpZHRoOmNsYW1wKDEzMnB4LDIwdncsMjA2cHgpO2FzcGVjdC1yYXRpbzoxO21hcmdpbi1ib3R0b206MjRweH0uY29yZTpiZWZvcmUsLmNvcmU6YWZ0ZXJ7Y29udGVudDonJztwb3NpdGlvbjphYnNvbHV0ZTtpbnNldDowO2JvcmRlcjoxcHggc29saWQgI2I3ZWNmZjk5O2JvcmRlci1yYWRpdXM6NTAlO2JveC1zaGFkb3c6MCAwIDg1cHggIzMzYzFmYzMzO2FuaW1hdGlvbjpvcmJpdCAxMnMgbGluZWFyIGluZmluaXRlfS5jb3JlOmFmdGVye2luc2V0Oi0xN3B4O3RyYW5zZm9ybTpyb3RhdGVYKDcyZGVnKX0uY29yZSBzdHJvbmd7Zm9udC1zaXplOmNsYW1wKDU1cHgsN3Z3LDg5cHgpO2xldHRlci1zcGFjaW5nOi0uMTA1ZW07cGFkZGluZy1yaWdodDouMTJlbTt0ZXh0LXNoYWRvdzowIDAgMzZweCAjNWNlN2ZmfUBrZXlmcmFtZXMgb3JiaXR7dG97dHJhbnNmb3JtOnJvdGF0ZSgzNjBkZWcpfX0ua2lja2Vye2ZvbnQtc2l6ZToxMHB4O2xldHRlci1zcGFjaW5nOi4yMmVtO2NvbG9yOnZhcigtLWN5YW4pO2ZvbnQtd2VpZ2h0OjgwMH0jaGVybyBoMXtmb250LXNpemU6Y2xhbXAoMjlweCw1dncsNjRweCk7bGluZS1oZWlnaHQ6MS4wNTtsZXR0ZXItc3BhY2luZzotLjA0ZW07bWFyZ2luOjE2cHggMDttYXgtd2lkdGg6OTgwcHh9I2hlcm8gZW17Zm9udC1zdHlsZTpub3JtYWw7Y29sb3I6dmFyKC0tY3lhbil9I2hlcm8gcHtmb250LXNpemU6MTZweDtjb2xvcjojYzllNmU5O2xpbmUtaGVpZ2h0OjEuNTttYXJnaW46MCAwIDI1cHh9LnByaW1hcnl7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoMTEwZGVnLCNlY2ZmZmYsIzkxZThmMSk7Y29sb3I6IzA3MjAzNDtib3JkZXI6MDtib3JkZXItcmFkaXVzOjMwcHg7cGFkZGluZzoxNXB4IDIzcHg7Zm9udC13ZWlnaHQ6OTAwO2ZvbnQtc2l6ZToxMnB4O2xldHRlci1zcGFjaW5nOi4wN2VtfQojY2FwdGlvbntwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjE1O2xlZnQ6NXZ3O3JpZ2h0OjR2dzt0b3A6MTMlO21heC13aWR0aDptaW4oNzUwcHgsODB2dyk7Ym9yZGVyLWxlZnQ6MnB4IHNvbGlkICNhNmYwZmJiODtwYWRkaW5nLWxlZnQ6MTdweDtvcGFjaXR5OjA7cG9pbnRlci1ldmVudHM6bm9uZTt0ZXh0LXNoYWRvdzowIDNweCAyMHB4ICMwMTA5MTV9I2V5ZWJyb3d7Zm9udC1zaXplOjExcHg7bGV0dGVyLXNwYWNpbmc6LjE4ZW07Y29sb3I6I2IzZjdmYTtmb250LXdlaWdodDo4MDB9I2hlYWRpbmd7Zm9udC1zaXplOmNsYW1wKDI4cHgsMy43dncsNTVweCk7bGluZS1oZWlnaHQ6MS4wODtsZXR0ZXItc3BhY2luZzotLjA0ZW07bWFyZ2luOjlweCAwIDB9I3N1Yntmb250LXNpemU6MTZweDtsaW5lLWhlaWdodDoxLjV9I2ZsYWd7Zm9udC1zaXplOjEwcHg7Y29sb3I6dmFyKC0tZ29sZCk7bGV0dGVyLXNwYWNpbmc6LjFlbTttYXJnaW4tdG9wOjExcHh9I2NhcHRpb24uYXJjaENhcHRpb257bWF4LXdpZHRoOjU3dnd9I2NhcHRpb24uYXJjaENhcHRpb24gI2ZsYWd7ZGlzcGxheTpub25lfQojZmxvb3JQYW5lbHtwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjEzO3JpZ2h0OjV2dzt0b3A6MzMlO3dpZHRoOm1pbigzMjVweCwyOXZ3KTtkaXNwbGF5Om5vbmU7cGFkZGluZzoxNHB4IDE2cHg7Ym9yZGVyLXJhZGl1czoxOHB4O2JhY2tncm91bmQ6IzA0MTMyMWVkO2JvcmRlcjoxcHggc29saWQgIzg0ZGVmNTYxO2JveC1zaGFkb3c6MCAxMnB4IDY1cHggIzAwMDl9I2Zsb29yUGFuZWwuc2hvd3tkaXNwbGF5OmJsb2NrfSNmbG9vck5hbWV7Zm9udC1zaXplOjExcHg7Zm9udC13ZWlnaHQ6OTAwO2xldHRlci1zcGFjaW5nOi4xM2VtO21hcmdpbi1ib3R0b206MTFweH0jZmxvb3JMaXN0e2Rpc3BsYXk6Z3JpZDtnYXA6NXB4fS5mbG9vclN0ZXB7ZGlzcGxheTpncmlkO2dyaWQtdGVtcGxhdGUtY29sdW1uczozMnB4IDFmcjtnYXA6NXB4O2FsaWduLWl0ZW1zOmNlbnRlcjtwYWRkaW5nOjdweCA5cHg7Ym9yZGVyLXJhZGl1czo4cHg7Ym9yZGVyOjFweCBzb2xpZCAjYjRkY2U1MjE7b3BhY2l0eTouMzV9LmZsb29yU3RlcC5hY3RpdmV7b3BhY2l0eToxO2JhY2tncm91bmQ6IzYzYmRjZTIxO2JvcmRlci1jb2xvcjp2YXIoLS1mYyl9LmZsb29yU3RlcC5wYXNzZWR7b3BhY2l0eTouN30uZmxvb3JTdGVwIHN0cm9uZ3tjb2xvcjp2YXIoLS1mYyk7Zm9udC1zaXplOjE1cHh9LmZsb29yU3RlcCBzcGFue2NvbG9yOnZhcigtLWZjKTtmb250LXNpemU6MTFweDtmb250LXdlaWdodDo5MDB9I2Zsb29yRXhhbXBsZXN7bWFyZ2luLXRvcDoxMXB4O21pbi1oZWlnaHQ6NjVweDtwYWRkaW5nOjEwcHg7Ym9yZGVyLWxlZnQ6M3B4IHNvbGlkIHZhcigtLWZsb29yLWFjdGl2ZSk7YmFja2dyb3VuZDojMDMwYTE4YTZ9I2Zsb29yRXhhbXBsZXMgYntkaXNwbGF5OmJsb2NrO2NvbG9yOnZhcigtLWZsb29yLWFjdGl2ZSk7Zm9udC1zaXplOjEycHg7bWFyZ2luLWJvdHRvbTo2cHh9I2Zsb29yRXhhbXBsZXMgcHttYXJnaW46MDtmb250LXNpemU6MTFweDtsaW5lLWhlaWdodDoxLjV9I2Zsb29yRGlzY2xhaW1lcntmb250LXNpemU6OXB4O2NvbG9yOiM5ZWJiYzY7bWFyZ2luLXRvcDo5cHh9CiNtYXBMYXllcntwb3NpdGlvbjphYnNvbHV0ZTtpbnNldDowO3otaW5kZXg6MjtvcGFjaXR5OjA7dHJhbnNpdGlvbjpvcGFjaXR5IC42NXM7YmFja2dyb3VuZDpyYWRpYWwtZ3JhZGllbnQoZWxsaXBzZSwjMWIzYzQ2LCMwODEwMWMgNzglKX0jbWFwTGF5ZXIub257b3BhY2l0eToxfSNtYXBMYXllciBpbWd7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTtvYmplY3QtZml0OmNvdmVyO2ZpbHRlcjpicmlnaHRuZXNzKC42NSkgY29udHJhc3QoMS4zMikgc2F0dXJhdGUoLjcyKX0jbWFwTWFya2Vyc3twb3NpdGlvbjphYnNvbHV0ZTtpbnNldDowO3otaW5kZXg6NTtwb2ludGVyLWV2ZW50czpub25lO2Rpc3BsYXk6bm9uZX0jbWFwTWFya2Vycy5vbntkaXNwbGF5OmJsb2NrfS5tcHtwb3NpdGlvbjphYnNvbHV0ZTt0cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUsMCk7dGV4dC1hbGlnbjpjZW50ZXI7Y29sb3I6I2U3ZmNmZn0ubXAgaXtkaXNwbGF5OmJsb2NrO3dpZHRoOjEzcHg7aGVpZ2h0OjEzcHg7Ym9yZGVyOjJweCBzb2xpZCBjdXJyZW50Q29sb3I7Ym9yZGVyLXJhZGl1czo1MCU7Ym94LXNoYWRvdzowIDAgMjJweCBjdXJyZW50Q29sb3I7bWFyZ2luOmF1dG99Lm1wIGJ7ZGlzcGxheTpibG9jazttYXJnaW4tdG9wOjhweDtmb250LXNpemU6MTJweDtsZXR0ZXItc3BhY2luZzouMDhlbTt3aGl0ZS1zcGFjZTpub3dyYXB9Lm1wIHNtYWxse2Rpc3BsYXk6YmxvY2s7Zm9udC1zaXplOjEwcHg7bWFyZ2luLXRvcDo0cHh9Lm1wLmF7bGVmdDozNiU7dG9wOjcyJTtjb2xvcjojZjRiZTdjfS5tcC5je2xlZnQ6NTclO3RvcDo1MCU7Y29sb3I6IzhhZDhmZn0ubXAubXtsZWZ0Ojc4JTt0b3A6MzIlO2NvbG9yOiM4OGYxYmN9I21hcENyZWRpdHtwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjY7cmlnaHQ6MTJweDtib3R0b206MTA1cHg7YmFja2dyb3VuZDojMDIwYzE3Yzk7cGFkZGluZzo1cHggOHB4O2ZvbnQtc2l6ZTo5cHg7ZGlzcGxheTpub25lfSNtYXBDcmVkaXQub257ZGlzcGxheTpibG9ja30KI2Z1bmRpbmdEaWFncmFte3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6MTY7bGVmdDo0dnc7cmlnaHQ6NHZ3O3RvcDoyOSU7Ym90dG9tOjg4cHg7ZGlzcGxheTpub25lO292ZXJmbG93LXk6YXV0bztzY3JvbGxiYXItd2lkdGg6dGhpbjtwYWRkaW5nOjE4cHggMjJweDtib3JkZXI6MXB4IHNvbGlkICM3ZWU3ZjA0NDtib3JkZXItcmFkaXVzOjI0cHg7YmFja2dyb3VuZDpyYWRpYWwtZ3JhZGllbnQoZWxsaXBzZSBhdCA1MCUgNTAlLCMwYjQzNTQ3YSx0cmFuc3BhcmVudCA2MCUpLGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIzA1MTgyYWViLCMwMzBiMWZlOCk7Ym94LXNoYWRvdzppbnNldCAwIDAgNjVweCAjMjRjY2RiMTIsMCAwIDQ1cHggIzAwYjhkZDE1O3RleHQtYWxpZ246Y2VudGVyO292ZXJzY3JvbGwtYmVoYXZpb3I6Y29udGFpbn0jZnVuZGluZ0RpYWdyYW0ub257ZGlzcGxheTpibG9ja30ucmVudFN0b3J5e2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2dhcDoxOHB4O2ZvbnQtc2l6ZToxMHB4O2ZvbnQtd2VpZ2h0OjgwMDtsZXR0ZXItc3BhY2luZzouMWVtO2NvbG9yOiNhOWVkZjM7bWFyZ2luLWJvdHRvbToxOHB4fS5yZW50U3Rvcnkgc3Bhbntib3JkZXItYm90dG9tOjFweCBzb2xpZCAjNjNkZWVjNTU7cGFkZGluZy1ib3R0b206OXB4fS5yZW50Q29uc29sZXtkaXNwbGF5OmdyaWQ7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOjFmciAuODVmciAxZnI7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDoxOHB4O21heC13aWR0aDoxMDgwcHg7bWFyZ2luOmF1dG99LnJlbnRDYXJke3Bvc2l0aW9uOnJlbGF0aXZlO2JvcmRlcjoxcHggc29saWQgIzczZDlmZjY2O2JvcmRlci1yYWRpdXM6MTRweDtwYWRkaW5nOjIwcHggMTZweDtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCgxNTBkZWcsIzBlMzM0OGNjLCMwNzEzMjVlZSk7dGV4dC1hbGlnbjpsZWZ0O2JveC1zaGFkb3c6aW5zZXQgMCAxcHggMCAjYWZmZmZmNDR9Lm1ldHJpY0xhYmVse2ZvbnQtc2l6ZToxMHB4O2xldHRlci1zcGFjaW5nOi4xMmVtO2ZvbnQtd2VpZ2h0OjkwMDtjb2xvcjojYjdlYWZmfS5yZW50Q2FyZCBzdHJvbmd7ZGlzcGxheTpibG9jaztmb250LXNpemU6Y2xhbXAoMjVweCwzLjF2dyw0NnB4KTtsZXR0ZXItc3BhY2luZzotLjA0ZW07bWFyZ2luOjEycHggMCA3cHg7Y29sb3I6d2hpdGU7Zm9udC12YXJpYW50LW51bWVyaWM6dGFidWxhci1udW1zfS5tZXRyaWNVbml0e2ZvbnQtc2l6ZTo5cHg7Y29sb3I6IzllYmRjYjtsZXR0ZXItc3BhY2luZzouMDRlbX0ucmVudENhcmQgcHtmb250LXNpemU6MTNweDtsaW5lLWhlaWdodDoxLjQ7bWluLWhlaWdodDozOHB4O2NvbG9yOiNjZWU3ZWN9LmNyZWRpdENhcmR7Ym9yZGVyLWNvbG9yOiM4NWVmY2Y4ODtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCgxNTBkZWcsIzBhM2EzOGI4LCMwNjE4MmJlZSl9LmNyZWRpdENhcmQgc3Ryb25ne2NvbG9yOiNhMWZmZGN9LnJlbnRUcmFja3toZWlnaHQ6NXB4O2JvcmRlci1yYWRpdXM6NXB4O2JhY2tncm91bmQ6I2ZmZmZmZjE4O292ZXJmbG93OmhpZGRlbn0ucmVudFRyYWNrIGl7ZGlzcGxheTpibG9jaztoZWlnaHQ6MTAwJTtiYWNrZ3JvdW5kOiM4M2RjZmY7Ym94LXNoYWRvdzowIDAgMTVweCAjODNkY2ZmfS5jcmVkaXRDYXJkIC5yZW50VHJhY2sgaXtiYWNrZ3JvdW5kOiNhMWZmZGN9LmNyZWRpdENvcmV7cG9zaXRpb246cmVsYXRpdmV9LmNyZWRpdE9yYml0e3Bvc2l0aW9uOnJlbGF0aXZlO3dpZHRoOm1pbigxN3Z3LDIwMHB4KTthc3BlY3QtcmF0aW86MTtib3JkZXItcmFkaXVzOjUwJTttYXJnaW46YXV0bztkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2p1c3RpZnktY29udGVudDpjZW50ZXI7Ym9yZGVyOjFweCBzb2xpZCAjODBlZGY1O2JveC1zaGFkb3c6MCAwIDQwcHggIzQ3ZDdlNTI2LGluc2V0IDAgMCA0NXB4ICM0M2NiZDUxYztiYWNrZ3JvdW5kOnJhZGlhbC1ncmFkaWVudChjaXJjbGUsIzBjNTM2NDZlLCMwNjE1MmIpO3RleHQtYWxpZ246Y2VudGVyfS5jcmVkaXRPcmJpdDpiZWZvcmUsLmNyZWRpdE9yYml0OmFmdGVye2NvbnRlbnQ6Jyc7cG9zaXRpb246YWJzb2x1dGU7aW5zZXQ6LTlweDtib3JkZXI6MXB4IGRhc2hlZCAjYTBmZmZmNjY7Ym9yZGVyLXJhZGl1czo1MCU7YW5pbWF0aW9uOmNyZWRpdE9yYml0U3BpbiAyNXMgbGluZWFyIGluZmluaXRlO3BvaW50ZXItZXZlbnRzOm5vbmV9LmNyZWRpdE9yYml0OmFmdGVye2luc2V0OjdweDtib3JkZXItc3R5bGU6c29saWQ7Ym9yZGVyLWNvbG9yOiNhMGZmZmYyMjthbmltYXRpb24tZGlyZWN0aW9uOnJldmVyc2V9LmNyZWRpdE9yYml0PnNwYW57Zm9udC1zaXplOjlweDtsZXR0ZXItc3BhY2luZzouMTZlbX0uY3JlZGl0T3JiaXQgc3Ryb25ne2ZvbnQtc2l6ZTpjbGFtcCg0NHB4LDZ2dyw3NnB4KTtsaW5lLWhlaWdodDoxLjE7Y29sb3I6I2M2ZmZmZjt0ZXh0LXNoYWRvdzowIDAgMjRweCAjN2FlOGZmODB9LmNyZWRpdE9yYml0IHN0cm9uZyBzcGFue2ZvbnQtc2l6ZTouNDVlbX0uY3JlZGl0T3JiaXQgc21hbGx7Zm9udC1zaXplOjhweDtsZXR0ZXItc3BhY2luZzouMDNlbX0udHJhbnNmZXJMaW5le2ZvbnQtc2l6ZTo4cHg7bGV0dGVyLXNwYWNpbmc6LjA4ZW07Y29sb3I6I2IwZmZlNzttYXJnaW4tdG9wOjE5cHh9LnJlbnRFcXVhdGlvbnttYXgtd2lkdGg6MTA4MHB4O21hcmdpbjoxOXB4IGF1dG8gMTJweDtwYWRkaW5nOjEzcHggMTJweDtiYWNrZ3JvdW5kOiM2Y2VmZTAwYTtib3JkZXItdG9wOjFweCBzb2xpZCAjODdlZmUzMzM7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgIzg3ZWZlMzMzfS5yZW50RXF1YXRpb24gc3Ryb25ne2Rpc3BsYXk6YmxvY2s7Zm9udC1zaXplOmNsYW1wKDEzcHgsMS41dncsMjBweCk7Y29sb3I6I2VjZmZmZn0ucmVudEVxdWF0aW9uPnNwYW57ZGlzcGxheTpibG9jazttYXJnaW4tdG9wOjdweDtmb250LXNpemU6MTJweDtjb2xvcjojYjVkOWU0fS5yZW50U2ltdWxhdG9ye21heC13aWR0aDo5MDBweDttYXJnaW46MTNweCBhdXRvfS5yZW50U2ltdWxhdG9yIGxhYmVse2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjtnYXA6MTJweDtmb250LXNpemU6MTBweDtjb2xvcjojY2NlNGVkO2xldHRlci1zcGFjaW5nOi4wNGVtfS5yZW50U2ltdWxhdG9yIG91dHB1dHt3aGl0ZS1zcGFjZTpub3dyYXA7Zm9udC13ZWlnaHQ6OTAwO2NvbG9yOiM5N2ZmZTZ9LnJlbnRTaW11bGF0b3IgaW5wdXR7d2lkdGg6MTAwJTthY2NlbnQtY29sb3I6IzhjZjBkZjtoZWlnaHQ6MjRweDtjdXJzb3I6cG9pbnRlcn0ucmVudFNpbXVsYXRvcj5zcGFue2Rpc3BsYXk6YmxvY2s7Zm9udC1zaXplOjEwcHg7Y29sb3I6IzlmYjZjOH0ucmVudERlc3RpbmF0aW9ue21heC13aWR0aDoxMDgwcHg7bWFyZ2luOjE2cHggYXV0byAwO3BhZGRpbmc6MTNweDtib3JkZXI6MXB4IHNvbGlkICNmN2QwOTQ1NTtib3JkZXItcmFkaXVzOjEycHg7YmFja2dyb3VuZDojMzkyZTIwMWZ9LnJlbnREZXN0aW5hdGlvbj5zcGFue2ZvbnQtc2l6ZTo5cHg7bGV0dGVyLXNwYWNpbmc6LjE1ZW07Y29sb3I6I2Y4ZDY5Zn0ucmVudERlc3RpbmF0aW9uIHN0cm9uZ3tkaXNwbGF5OmJsb2NrO21hcmdpbjo2cHggMDtmb250LXNpemU6MTZweDtjb2xvcjojZmZmMWRifS5yZW50RGVzdGluYXRpb24gcHtmb250LXNpemU6MTBweDtsaW5lLWhlaWdodDoxLjQ7Y29sb3I6I2JmY2VkNTttYXJnaW46MH0ucmVhZHkgLmNyZWRpdENhcmR7Ym9yZGVyLWNvbG9yOiNhYWZmZGQ7Ym94LXNoYWRvdzowIDAgMjZweCAjN2RmZmQ0MzB9LnJlYWR5IC5yZW50RGVzdGluYXRpb257Ym9yZGVyLWNvbG9yOiNmN2QwOTRjY31Aa2V5ZnJhbWVzIGNyZWRpdE9yYml0U3Bpbnt0b3t0cmFuc2Zvcm06cm90YXRlKDM2MGRlZyl9fQoKI25vdGV7cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDoxMjtib3R0b206NzdweDtyaWdodDo0dnc7Zm9udC1zaXplOjlweDtjb2xvcjojYTVjNmQ0O2Rpc3BsYXk6bm9uZX0KI2NvbnRyb2xze3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6MjY7bGVmdDo0dnc7cmlnaHQ6NHZ3O2JvdHRvbTptYXgoMTlweCxlbnYoc2FmZS1hcmVhLWluc2V0LWJvdHRvbSkpO2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjEycHh9I2Nsb2Nre2ZvbnQtc2l6ZToxMXB4O3doaXRlLXNwYWNlOm5vd3JhcDtmb250LXZhcmlhbnQtbnVtZXJpYzp0YWJ1bGFyLW51bXN9I3NlZWt7ZmxleDoxO21pbi13aWR0aDozMHB4O2hlaWdodDozMHB4O2FjY2VudC1jb2xvcjojODdlZWZmfQojaG9sZCwjZmluaXNoe3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6MzU7aW5zZXQ6MDtkaXNwbGF5Om5vbmU7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6MTVweDtvdmVyZmxvdzphdXRvO2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDEzNWRlZywjMDMwYzFmZjcsIzAzMjUzMGY3KTtwYWRkaW5nOjk1cHggMjRweCAxMDVweDtvdmVyc2Nyb2xsLWJlaGF2aW9yOmNvbnRhaW59I2hvbGQuc2hvdywjZmluaXNoLnNob3d7ZGlzcGxheTpmbGV4fSNob2xke2p1c3RpZnktY29udGVudDpjZW50ZXI7dGV4dC1hbGlnbjpjZW50ZXJ9I2hvbGQgaDIsI2ZpbmlzaCBoMntmb250LXNpemU6Y2xhbXAoMjdweCw0dncsNTVweCk7bGluZS1oZWlnaHQ6MS4xMjttYXJnaW46MDttYXgtd2lkdGg6ODUwcHh9I2hvbGQgcHtmb250LXNpemU6MThweDtsaW5lLWhlaWdodDoxLjU7bWF4LXdpZHRoOjc2MHB4O21hcmdpbjowfSNob2xkIHAgc3Ryb25ne2NvbG9yOnZhcigtLWdvbGQpfSNob2xkT3B0aW9uc3tkaXNwbGF5OmZsZXg7ZmxleC13cmFwOndyYXA7Z2FwOjlweDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyfSNob2xkT3B0aW9ucyBidXR0b24sI3JvbGVzIGJ1dHRvbiwjYWN0aW9ucyBidXR0b257cGFkZGluZzoxMnB4IDE1cHg7Ym9yZGVyOjFweCBzb2xpZCAjYTJlZWZhN2E7YmFja2dyb3VuZDojMDYxYzM0ZTA7Y29sb3I6I2U1ZmJmZjtib3JkZXItcmFkaXVzOjEycHg7Zm9udC1zaXplOjExcHg7Zm9udC13ZWlnaHQ6ODAwfSNob2xkT3B0aW9ucyBidXR0b24uc2VsLCNyb2xlcyBidXR0b24uc2Vse2JhY2tncm91bmQ6I2NkZmJmZjtjb2xvcjojMDczMDQ0fSNmaXJzdEFuc3dlcntmb250LXNpemU6MTFweCFpbXBvcnRhbnQ7Y29sb3I6IzllZjFkNzttaW4taGVpZ2h0OjFlbX0jZmluaXNoPip7ZmxleC1zaHJpbms6MDt3aWR0aDptaW4oOTUwcHgsMTAwJSl9I2ZpbmlzaCBoMntmb250LXNpemU6Y2xhbXAoMjdweCwzLjJ2dyw0N3B4KX0jZmluaXNoIC5pbnRyb3tmb250LXNpemU6MTZweDtsaW5lLWhlaWdodDoxLjU7Y29sb3I6I2M5ZTZlOTttYXJnaW46MH0jcm9sZXMsI2FjdGlvbnN7ZGlzcGxheTpmbGV4O2ZsZXgtd3JhcDp3cmFwO2dhcDoxMHB4fSNjaGVja3N7ZGlzcGxheTpncmlkO2dyaWQtdGVtcGxhdGUtY29sdW1uczoxZnIgMWZyO2dhcDoxMHB4fSNjaGVja3MgbGFiZWx7ZGlzcGxheTpncmlkO2dyaWQtdGVtcGxhdGUtY29sdW1uczoyMHB4IDFmcjtnYXA6NHB4IDEwcHg7cGFkZGluZzoxM3B4O2JvcmRlcjoxcHggc29saWQgIzczY2RkYzRkO2JvcmRlci1yYWRpdXM6MTJweDtiYWNrZ3JvdW5kOiMwOTI1MzJmMjtjdXJzb3I6cG9pbnRlcn0jY2hlY2tzIGlucHV0e2dyaWQtcm93OjEvMzthY2NlbnQtY29sb3I6I2E2ZjVlY30uY2hvaWNlLXRpdGxle2ZvbnQtd2VpZ2h0OjgwMDtmb250LXNpemU6MTNweDtncmlkLWNvbHVtbjoyfS5jaG9pY2UtZGVzY3JpcHRpb257Zm9udC1zaXplOjExcHg7Y29sb3I6I2JkZDhkZDtncmlkLWNvbHVtbjoyO2xpbmUtaGVpZ2h0OjEuNH0jZmluaXNoRmllbGRze2Rpc3BsYXk6Z3JpZDtncmlkLXRlbXBsYXRlLWNvbHVtbnM6cmVwZWF0KDMsMWZyKTtnYXA6MTBweH0jZmluaXNoIGlucHV0W3R5cGU9dGV4dF0sI2ZpbmlzaCBpbnB1dFt0eXBlPWRhdGVdLCNmaW5pc2ggdGV4dGFyZWF7d2lkdGg6MTAwJTttaW4td2lkdGg6MDtwYWRkaW5nOjEycHg7YmFja2dyb3VuZDojMDYxODI5O2JvcmRlcjoxcHggc29saWQgIzgzYzdkMjdhO2JvcmRlci1yYWRpdXM6MTBweDtjb2xvcjojZmZmO2ZvbnQtc2l6ZToxM3B4O2NvbG9yLXNjaGVtZTpkYXJrfSNmaW5pc2ggdGV4dGFyZWF7Z3JpZC1jb2x1bW46MS8tMTttaW4taGVpZ2h0OjgwcHg7cmVzaXplOnZlcnRpY2FsfSNzdGF0dXN7Zm9udC1zaXplOjEycHg7Y29sb3I6I2JlZjRlZH0KQG1lZGlhKG1heC13aWR0aDo2NTBweCl7I3RvcHtsZWZ0OjE0cHg7cmlnaHQ6MTRweH0jYnJhbmR7Zm9udC1zaXplOjlweDtsZXR0ZXItc3BhY2luZzouMDhlbX0uc21hbGxCdG57Zm9udC1zaXplOjlweDtwYWRkaW5nOjhweH0jaGVybyBoMXtmb250LXNpemU6MzJweH0jaGVybyBwe2ZvbnQtc2l6ZToxM3B4fS5jb3Jle3dpZHRoOjEzMnB4fSNjYXB0aW9uLCNjYXB0aW9uLmFyY2hDYXB0aW9ue3RvcDoxMiU7bGVmdDoxN3B4O3JpZ2h0OjE3cHg7bWF4LXdpZHRoOm5vbmU7cGFkZGluZy1sZWZ0OjExcHh9I2hlYWRpbmd7Zm9udC1zaXplOmNsYW1wKDIzcHgsNi4ydncsMzBweCl9I2V5ZWJyb3d7Zm9udC1zaXplOjlweH0jZmxhZ3tmb250LXNpemU6OHB4O2xpbmUtaGVpZ2h0OjEuNH0jbWVtb3J5SW1ne3RvcDozMCU7aGVpZ2h0OjQ4dmg7d2lkdGg6OTh2d30jZWFydGh7dG9wOjU1JTt3aWR0aDo3NXZ3O2hlaWdodDo3NXZ3fSNmbG9vclBhbmVse2xlZnQ6MTRweDtyaWdodDoxNHB4O3RvcDozMCU7d2lkdGg6YXV0bztwYWRkaW5nOjlweCAxMXB4fSNmbG9vck5hbWV7Zm9udC1zaXplOjlweDttYXJnaW4tYm90dG9tOjdweH0jZmxvb3JMaXN0e2dyaWQtdGVtcGxhdGUtY29sdW1uczpyZXBlYXQoNCwxZnIpO2dhcDo0cHh9LmZsb29yU3RlcHtncmlkLXRlbXBsYXRlLWNvbHVtbnM6MWZyO3RleHQtYWxpZ246Y2VudGVyO3BhZGRpbmc6NXB4IDJweH0uZmxvb3JTdGVwIHN0cm9uZ3tmb250LXNpemU6MTJweH0uZmxvb3JTdGVwIHNwYW57Zm9udC1zaXplOjhweH0jZmxvb3JFeGFtcGxlc3ttaW4taGVpZ2h0OjQ0cHg7cGFkZGluZzo3cHg7bWFyZ2luLXRvcDo2cHh9I2Zsb29yRXhhbXBsZXMgYiwjZmxvb3JFeGFtcGxlcyBwe2ZvbnQtc2l6ZToxMHB4fSNmbG9vckRpc2NsYWltZXJ7ZGlzcGxheTpub25lfS5tcC5he2xlZnQ6MjclO3RvcDo2OSV9Lm1wLmN7bGVmdDo1NyU7dG9wOjUxJX0ubXAubXtsZWZ0Ojc2JTt0b3A6MzUlfS5tcCBie2ZvbnQtc2l6ZTo5cHh9Lm1wIHNtYWxse2Rpc3BsYXk6bm9uZX0jbWFwQ3JlZGl0e2ZvbnQtc2l6ZTo4cHg7Ym90dG9tOjEwMHB4fSNub3Rle2xlZnQ6MTRweDtyaWdodDoxNHB4O3RleHQtYWxpZ246Y2VudGVyO2ZvbnQtc2l6ZTo4cHh9I2NvbnRyb2xze2xlZnQ6MTJweDtyaWdodDoxMnB4O2dhcDo2cHg7Ym90dG9tOjEycHh9I2Nsb2Nre2ZvbnQtc2l6ZTo5cHh9I3BhdXNle2ZvbnQtc2l6ZTo5cHg7cGFkZGluZzo5cHh9I2hvbGQsI2ZpbmlzaHtwYWRkaW5nOjc4cHggMTZweCA5MHB4O2dhcDoxMnB4fSNob2xke2p1c3RpZnktY29udGVudDpmbGV4LXN0YXJ0fSNob2xkIGgye2ZvbnQtc2l6ZToyOHB4fSNob2xkIHB7Zm9udC1zaXplOjE1cHh9I2hvbGRPcHRpb25zIGJ1dHRvbntmb250LXNpemU6MTBweH0jZmluaXNoIGgye2ZvbnQtc2l6ZToyNnB4fSNmaW5pc2ggLmludHJve2ZvbnQtc2l6ZToxMnB4fSNjaGVja3MsI2ZpbmlzaEZpZWxkc3tncmlkLXRlbXBsYXRlLWNvbHVtbnM6MWZyfS5jaG9pY2UtdGl0bGV7Zm9udC1zaXplOjEycHh9LmNob2ljZS1kZXNjcmlwdGlvbntmb250LXNpemU6MTBweH0jYWN0aW9uc3tkaXNwbGF5OmdyaWQ7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOjFmciAxZnJ9I2FjdGlvbnMgYnV0dG9ue2ZvbnQtc2l6ZTo5cHh9I2FjdGlvbnMgYnV0dG9uOmZpcnN0LWNoaWxke2dyaWQtY29sdW1uOjEvLTF9fQpAbWVkaWEocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjpyZWR1Y2Upey5jb3JlOmJlZm9yZSwuY29yZTphZnRlciwjbWVtb3J5SW1ne2FuaW1hdGlvbjpub25lfX0KLyogVjE1OiByZWFkYWJsZSBleHBsYW5hdGlvbnMsIG9uZSBwdXJwb3NlIHBlciBmbG9vci4gKi8KI2Zsb29yUGFuZWx7dG9wOjMxJTt3aWR0aDptaW4oNDQwcHgsMzd2dyk7cmlnaHQ6My41dnc7cGFkZGluZzoxOHB4O21heC1oZWlnaHQ6Y2FsYyg2OSUgLSAxMDBweCk7b3ZlcmZsb3cteTphdXRvO3Njcm9sbGJhci13aWR0aDp0aGlufSNmbG9vckxpc3R7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOnJlcGVhdCg0LG1pbm1heCgwLDFmcikpO2dhcDo2cHh9LmZsb29yU3RlcHtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2dhcDo1cHg7cGFkZGluZzoxMHB4IDRweDtiYWNrZ3JvdW5kOiMwZDI1Mzk7Y29sb3I6d2hpdGU7dGV4dC1hbGlnbjpjZW50ZXI7Y3Vyc29yOnBvaW50ZXJ9LmZsb29yU3RlcCBzdHJvbmd7Zm9udC1zaXplOjEwcHh9LmZsb29yU3RlcCBzcGFue2ZvbnQtc2l6ZTo5cHh9LmZsb29yU3RlcDpob3ZlcntvcGFjaXR5OjF9LmZsb29yU3RlcC5hY3RpdmV7Ym94LXNoYWRvdzowIDAgMTZweCAjN2NkZWZmMjJ9I2Zsb29yTmFtZXtmb250LXNpemU6MTJweDttYXJnaW4tYm90dG9tOjEzcHh9I2Zsb29yRXhhbXBsZXN7cGFkZGluZzoxNnB4IDEzcHg7bWluLWhlaWdodDowfSNmbG9vckV4YW1wbGVzIGJ7Zm9udC1zaXplOmNsYW1wKDE2cHgsMS42dncsMjJweCk7bGluZS1oZWlnaHQ6MS4yO21hcmdpbi1ib3R0b206MTJweH0jZmxvb3JFeGFtcGxlcyAjZmxvb3JNZWFuaW5ne2ZvbnQtc2l6ZTpjbGFtcCgxM3B4LDEuMXZ3LDE2cHgpO2xpbmUtaGVpZ2h0OjEuNTU7Y29sb3I6I2VmZmFmZn0jZmxvb3JFeGFtcGxlcyAjZmxvb3JFeGFtcGxlVGV4dHtmb250LXNpemU6MTJweDtsaW5lLWhlaWdodDoxLjQ1O21hcmdpbi10b3A6MTJweDtjb2xvcjojYTljYmQ2fSNmbG9vck91dGNvbWV7Zm9udC1zaXplOjEycHg7bGluZS1oZWlnaHQ6MS40NTtjb2xvcjojYzlmZmU0O21hcmdpbi10b3A6MTRweDtwYWRkaW5nLXRvcDoxMnB4O2JvcmRlci10b3A6MXB4IHNvbGlkICNiOGY1ZWYzM30uZmxvb3JIaW50e2ZvbnQtc2l6ZToxMHB4O2NvbG9yOiM5Y2I3YzY7bWFyZ2luLXRvcDoxMHB4fSNjYXB0aW9uLmFyY2hDYXB0aW9ue21heC13aWR0aDo5MHZ3fSNjYXB0aW9uLmFyY2hDYXB0aW9uICNoZWFkaW5ne2ZvbnQtc2l6ZTpjbGFtcCgyNXB4LDN2dyw0NHB4KX0jY2FwdGlvbi5yZW50Q2FwdGlvbnt0b3A6MTElO21heC13aWR0aDo5MXZ3fSNjYXB0aW9uLnJlbnRDYXB0aW9uICNoZWFkaW5ne2ZvbnQtc2l6ZTpjbGFtcCgyNHB4LDN2dyw0M3B4KX0jY2FwdGlvbi5yZW50Q2FwdGlvbiAjZmxhZ3tkaXNwbGF5Om5vbmV9LmRlY2lzaW9uUHJvbXB0e21hcmdpbjowO2NvbG9yOiNiMWVmZTg7Zm9udC1zaXplOjEzcHh9LmNsb3NpbmdDb21taXRtZW50e2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47Z2FwOjdweDtib3JkZXItbGVmdDozcHggc29saWQgI2ExZjJkOTtiYWNrZ3JvdW5kOiM5ZmZmZjUwOTtwYWRkaW5nOjE0cHggMThweH0uY2xvc2luZ0NvbW1pdG1lbnQgc3Ryb25ne2ZvbnQtc2l6ZToxNXB4O2xldHRlci1zcGFjaW5nOi4wNGVtO2NvbG9yOiNjNWZmZTl9LmNsb3NpbmdDb21taXRtZW50IHNwYW57Zm9udC1zaXplOjEzcHg7bGluZS1oZWlnaHQ6MS40O2NvbG9yOiNjN2UzZTl9I2NoZWNrcyAuY2hvaWNlLXRpdGxle2ZvbnQtc2l6ZToxNHB4O2xpbmUtaGVpZ2h0OjEuMzV9I2NoZWNrcyAuY2hvaWNlLWRlc2NyaXB0aW9ue2ZvbnQtc2l6ZToxMnB4O2xpbmUtaGVpZ2h0OjEuNH0jZmluaXNoIC5pbnRyb3ttYXgtd2lkdGg6OTUwcHh9I2ZpbmlzaEZpZWxkcyBpbnB1dHttaW4taGVpZ2h0OjQ2cHh9I2hvbGQgaDJ7Zm9udC1zaXplOmNsYW1wKDI2cHgsMy42dncsNDhweCl9CkBtZWRpYShtYXgtd2lkdGg6NjUwcHgpeyNjYXB0aW9uLmFyY2hDYXB0aW9ue3RvcDoxMSU7bWF4LXdpZHRoOm5vbmV9I2NhcHRpb24uYXJjaENhcHRpb24gI2hlYWRpbmd7Zm9udC1zaXplOjIzcHh9I2Zsb29yUGFuZWx7dG9wOjI1JTtsZWZ0OjEycHg7cmlnaHQ6MTJweDt3aWR0aDphdXRvO3BhZGRpbmc6MTFweDttYXgtaGVpZ2h0OjQwJTtib3JkZXItcmFkaXVzOjE0cHh9I2Zsb29yTmFtZXtmb250LXNpemU6MTBweDttYXJnaW4tYm90dG9tOjhweH0uZmxvb3JTdGVwe3BhZGRpbmc6NnB4IDJweDtnYXA6M3B4fS5mbG9vclN0ZXAgc3Ryb25ne2ZvbnQtc2l6ZTo5cHh9LmZsb29yU3RlcCBzcGFue2ZvbnQtc2l6ZTo4cHh9I2Zsb29yRXhhbXBsZXN7cGFkZGluZzoxMHB4O21hcmdpbi10b3A6OHB4fSNmbG9vckV4YW1wbGVzIGJ7Zm9udC1zaXplOjE1cHg7bWFyZ2luLWJvdHRvbTo4cHh9I2Zsb29yRXhhbXBsZXMgI2Zsb29yTWVhbmluZ3tmb250LXNpemU6MTJweDtsaW5lLWhlaWdodDoxLjQ1fSNmbG9vckV4YW1wbGVzICNmbG9vckV4YW1wbGVUZXh0e2ZvbnQtc2l6ZToxMXB4O2xpbmUtaGVpZ2h0OjEuMzU7bWFyZ2luLXRvcDo4cHh9I2Zsb29yT3V0Y29tZXtmb250LXNpemU6MTFweDtsaW5lLWhlaWdodDoxLjM1O3BhZGRpbmctdG9wOjhweDttYXJnaW4tdG9wOjhweH0uZmxvb3JIaW50e2ZvbnQtc2l6ZTo5cHg7bWFyZ2luLXRvcDo3cHh9I2NhcHRpb24ucmVudENhcHRpb257dG9wOjExJTtsZWZ0OjE0cHg7cmlnaHQ6MTRweDttYXgtd2lkdGg6bm9uZX0jY2FwdGlvbi5yZW50Q2FwdGlvbiAjaGVhZGluZ3tmb250LXNpemU6MjJweH0jZnVuZGluZ0RpYWdyYW17bGVmdDoxMHB4O3JpZ2h0OjEwcHg7dG9wOjI2JTtib3R0b206ODBweDtwYWRkaW5nOjEzcHggMTFweDtib3JkZXItcmFkaXVzOjE2cHh9LnJlbnRTdG9yeXtkaXNwbGF5OmdyaWQ7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOjFmciAxZnI7Z2FwOjdweDtmb250LXNpemU6OHB4O2xpbmUtaGVpZ2h0OjEuNDttYXJnaW4tYm90dG9tOjE0cHh9LnJlbnRTdG9yeSBzcGFuOmxhc3QtY2hpbGR7Z3JpZC1jb2x1bW46MS8tMX0ucmVudFN0b3J5IHNwYW57cGFkZGluZy1ib3R0b206NXB4fS5yZW50Q29uc29sZXtncmlkLXRlbXBsYXRlLWNvbHVtbnM6MWZyIDFmcjtnYXA6MTBweH0uY3JlZGl0Q29yZXtncmlkLWNvbHVtbjoxLy0xO2dyaWQtcm93OjE7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2dhcDoyMHB4O3BhZGRpbmc6OHB4IDB9LmNyZWRpdE9yYml0e3dpZHRoOjEwM3B4O21hcmdpbjowO2ZsZXgtc2hyaW5rOjB9LmNyZWRpdE9yYml0IHN0cm9uZ3tmb250LXNpemU6NDVweH0uY3JlZGl0T3JiaXQ+c3Bhbntmb250LXNpemU6N3B4fS5jcmVkaXRPcmJpdCBzbWFsbHtmb250LXNpemU6NnB4fS50cmFuc2ZlckxpbmV7Zm9udC1zaXplOjlweDtsaW5lLWhlaWdodDoxLjY7bWF4LXdpZHRoOjE0MHB4O21hcmdpbi10b3A6MDt0ZXh0LWFsaWduOmxlZnR9LnJlbnRDYXJke3BhZGRpbmc6MTJweCAxMHB4fS5tZXRyaWNMYWJlbHtmb250LXNpemU6OHB4O2xpbmUtaGVpZ2h0OjEuNDtkaXNwbGF5OmJsb2NrO21pbi1oZWlnaHQ6MjRweH0ucmVudENhcmQgc3Ryb25ne2ZvbnQtc2l6ZToyMnB4O21hcmdpbjo4cHggMH0ubWV0cmljVW5pdHtmb250LXNpemU6N3B4O2xpbmUtaGVpZ2h0OjEuNDtkaXNwbGF5OmJsb2NrfS5yZW50Q2FyZCBwe2ZvbnQtc2l6ZToxMHB4O2xpbmUtaGVpZ2h0OjEuMzU7bWluLWhlaWdodDo1NHB4fS5yZW50RXF1YXRpb257bWFyZ2luOjEzcHggYXV0byA5cHg7cGFkZGluZzoxMXB4IDRweH0ucmVudEVxdWF0aW9uIHN0cm9uZ3tmb250LXNpemU6MTRweDtsaW5lLWhlaWdodDoxLjM1fS5yZW50RXF1YXRpb24+c3Bhbntmb250LXNpemU6MTFweDtsaW5lLWhlaWdodDoxLjR9LnJlbnRTaW11bGF0b3IgbGFiZWx7Zm9udC1zaXplOjhweDtsaW5lLWhlaWdodDoxLjQ7YWxpZ24taXRlbXM6Y2VudGVyfS5yZW50U2ltdWxhdG9yPnNwYW57Zm9udC1zaXplOjlweDtsaW5lLWhlaWdodDoxLjR9LnJlbnREZXN0aW5hdGlvbntwYWRkaW5nOjExcHggOHB4O21hcmdpbi10b3A6MTJweH0ucmVudERlc3RpbmF0aW9uIHN0cm9uZ3tmb250LXNpemU6MTRweDtsaW5lLWhlaWdodDoxLjM1fS5yZW50RGVzdGluYXRpb24gcHtmb250LXNpemU6OXB4fSNjaGVja3MgLmNob2ljZS10aXRsZXtmb250LXNpemU6MTNweH0jY2hlY2tzIC5jaG9pY2UtZGVzY3JpcHRpb257Zm9udC1zaXplOjExcHh9LmNsb3NpbmdDb21taXRtZW50e3BhZGRpbmc6MTJweH0uY2xvc2luZ0NvbW1pdG1lbnQgc3Ryb25ne2ZvbnQtc2l6ZToxM3B4fS5jbG9zaW5nQ29tbWl0bWVudCBzcGFue2ZvbnQtc2l6ZToxMnB4fSNob2xkIGgye2ZvbnQtc2l6ZToyNnB4fX0KQG1lZGlhKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246cmVkdWNlKXsuY3JlZGl0T3JiaXQ6YmVmb3JlLC5jcmVkaXRPcmJpdDphZnRlcnthbmltYXRpb246bm9uZX19Ci8qIFRlcnJpdG9yaWFsIHBsYW46IHRoZSBjb21wbGV0ZSB0aHJlZS1idWlsZGluZyBtb2RlbCBpcyByZXBlYXRlZCBpbiBldmVyeSBkaXN0cmljdC4gKi8KLm1wLmF7bGVmdDozMCU7dG9wOjc2JX0ubXAuY3tsZWZ0OjU0JTt0b3A6NTYlfS5tcC5te2xlZnQ6NzglO3RvcDozNiV9Lm1wIGJ7Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6OTAwO2xldHRlci1zcGFjaW5nOi4xNGVtO21hcmdpbjo4cHggMCA2cHg7Y29sb3I6I2YyZmZmZjt0ZXh0LXNoYWRvdzowIDJweCA4cHggIzAwMH0ubXAgc21hbGx7ZGlzcGxheTpmbGV4O2dhcDo2cHg7anVzdGlmeS1jb250ZW50OmNlbnRlcjtmb250LXNpemU6OHB4O2xldHRlci1zcGFjaW5nOi4wNWVtO3BhZGRpbmc6NXB4IDhweDtib3JkZXI6MXB4IHNvbGlkICNhMWY1ZWQ0NDtib3JkZXItcmFkaXVzOjVweDtiYWNrZ3JvdW5kOiMwMzE0MjZkYjt3aGl0ZS1zcGFjZTpub3dyYXB9Lm1wIHNtYWxsIHNwYW46bnRoLWNoaWxkKDEpe2NvbG9yOiNiOWEwZmJ9Lm1wIHNtYWxsIHNwYW46bnRoLWNoaWxkKDIpe2NvbG9yOiM5MGRlZmR9Lm1wIHNtYWxsIHNwYW46bnRoLWNoaWxkKDMpe2NvbG9yOiNhNGYzY2N9CiNmbG9vclBhbmVse21heC1oZWlnaHQ6Y2FsYyg2OSUgLSAxMDBweCk7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoMTQ1ZGVnLCMwNzFjMzBmNSwjMDUyODM3ZTgpfSNmbG9vckV4YW1wbGVzIGJ7Zm9udC1zaXplOmNsYW1wKDE2cHgsMS43dncsMjNweCk7bGV0dGVyLXNwYWNpbmc6LS4wMmVtfSNmbG9vckV4YW1wbGVzICNmbG9vck1lYW5pbmd7Zm9udC1zaXplOmNsYW1wKDE0cHgsMS4ydncsMTdweCk7bGluZS1oZWlnaHQ6MS40NX0jZmxvb3JFeGFtcGxlcyAjZmxvb3JFeGFtcGxlVGV4dHtmb250LXNpemU6MTJweDtsaW5lLWhlaWdodDoxLjQ7Y29sb3I6I2E5Y2JkNn0uZmxvb3JIaW50e2ZvbnQtc2l6ZTo5cHg7dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlO2xldHRlci1zcGFjaW5nOi4xZW19I2Zsb29yRGlzY2xhaW1lcntmb250LXNpemU6OHB4fSNjYXB0aW9uLmFyY2hDYXB0aW9uICNoZWFkaW5ne2ZvbnQtc2l6ZTpjbGFtcCgyNHB4LDIuOXZ3LDQycHgpfQojZmluaXNoe3BhZGRpbmc6OTBweCA1dncgNzVweDtnYXA6MjJweDtiYWNrZ3JvdW5kOnJhZGlhbC1ncmFkaWVudChlbGxpcHNlIGF0IDg1JSAyMCUsIzEyNjU3NjQ0LHRyYW5zcGFyZW50IDQ3JSkscmFkaWFsLWdyYWRpZW50KGVsbGlwc2UgYXQgMTAlIDg1JSwjMTkzYTZiNDQsdHJhbnNwYXJlbnQgNTAlKSwjMDMwYzFiO3RleHQtYWxpZ246bGVmdDtpc29sYXRpb246aXNvbGF0ZX0jZmluaXNoOmJlZm9yZXtjb250ZW50OicnO3Bvc2l0aW9uOmZpeGVkO2luc2V0OjA7ei1pbmRleDotMTtwb2ludGVyLWV2ZW50czpub25lO2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDEyMGRlZyx0cmFuc3BhcmVudCAzOCUsIzkwZjBmZjA5IDM4LjElLHRyYW5zcGFyZW50IDM4LjMlKSxyZXBlYXRpbmctbGluZWFyLWdyYWRpZW50KDkwZGVnLHRyYW5zcGFyZW50IDAsdHJhbnNwYXJlbnQgODlweCwjNzZiZmMzMDYgOTBweCl9I2ZpbmlzaD4qe3dpZHRoOm1pbigxMDgwcHgsMTAwJSl9LmNsb3NlSGVyb3twb3NpdGlvbjpyZWxhdGl2ZX0uY2xvc2VIZXJvIC5raWNrZXJ7Zm9udC1zaXplOjEwcHg7bGV0dGVyLXNwYWNpbmc6LjIyZW07bWFyZ2luLWJvdHRvbToxOXB4fSNmaW5pc2ggaDJ7Zm9udC1zaXplOmNsYW1wKDQwcHgsNi4zdncsODNweCk7Zm9udC13ZWlnaHQ6OTAwO2xldHRlci1zcGFjaW5nOi0uMDU1ZW07bGluZS1oZWlnaHQ6Ljk5O21heC13aWR0aDpub25lO21hcmdpbjowfSNmaW5pc2ggaDIgZW17Zm9udC1zdHlsZTpub3JtYWw7Y29sb3I6IzllZWVkZjt0ZXh0LXNoYWRvdzowIDAgNDVweCAjNTNlMGRhMjJ9I2ZpbmlzaCAuaW50cm97Zm9udC1zaXplOmNsYW1wKDE0cHgsMS40dncsMTlweCk7bGluZS1oZWlnaHQ6MS40O21hcmdpbjoxN3B4IDAgMDtjb2xvcjojZDdlOGVifS5jbG9zZVJ1bGV7aGVpZ2h0OjJweDtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCg5MGRlZywjYTFmNGRmLHRyYW5zcGFyZW50KTt3aWR0aDoxMzBweDttYXJnaW4tdG9wOjIycHh9I3JvbGVze2dhcDo2cHg7d2lkdGg6YXV0bzttYXJnaW4tYm90dG9tOjE2cHh9I3JvbGVzIGJ1dHRvbntwYWRkaW5nOjhweCAxM3B4O2ZvbnQtc2l6ZTo5cHg7bGV0dGVyLXNwYWNpbmc6LjA5ZW07Ym9yZGVyLXJhZGl1czo2cHg7Ym9yZGVyOjFweCBzb2xpZCAjOTJlNmRmMzM7YmFja2dyb3VuZDp0cmFuc3BhcmVudDtjb2xvcjojOTViNmMzfSNyb2xlcyBidXR0b24uc2Vse2NvbG9yOiNjOWZmZjE7YmFja2dyb3VuZDojOGVmZmRjMTI7Ym9yZGVyLWNvbG9yOiM5NWU4ZDk3N30uY2xvc2VEZWNpc2lvbiBoM3tmb250LXNpemU6MTJweDtsZXR0ZXItc3BhY2luZzouMTFlbTtjb2xvcjojZDVlZmYzO21hcmdpbjowIDAgMTJweH0jY2hlY2tze2Rpc3BsYXk6Z3JpZDtncmlkLXRlbXBsYXRlLWNvbHVtbnM6cmVwZWF0KDMsbWlubWF4KDAsMWZyKSk7Z2FwOjEycHg7d2lkdGg6MTAwJTtjb3VudGVyLXJlc2V0OmNvbnRyaWJ1dGlvbn0jY2hlY2tzIGxhYmVse3Bvc2l0aW9uOnJlbGF0aXZlO2Rpc3BsYXk6Z3JpZDtncmlkLXRlbXBsYXRlLWNvbHVtbnM6MWZyIDE4cHg7Z2FwOjEwcHg7bWluLWhlaWdodDoxNDVweDtwYWRkaW5nOjIycHggMThweCAxOXB4O2JvcmRlcjoxcHggc29saWQgIzg0ZDlkZjQ0O2JvcmRlci1yYWRpdXM6MTNweDtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCgxNDVkZWcsIzBiMjgzYWU2LCMwNzE0MjNlNik7dHJhbnNpdGlvbjpib3JkZXItY29sb3IgLjJzLHRyYW5zZm9ybSAuMnM7Y291bnRlci1pbmNyZW1lbnQ6Y29udHJpYnV0aW9ufSNjaGVja3MgbGFiZWw6YmVmb3Jle2NvbnRlbnQ6JzAnIGNvdW50ZXIoY29udHJpYnV0aW9uKTtncmlkLWNvbHVtbjoxO2dyaWQtcm93OjE7Y29sb3I6IzhmZTVkOTtmb250LXNpemU6MTFweDtsZXR0ZXItc3BhY2luZzouMTVlbX0jY2hlY2tzIGlucHV0e2dyaWQtY29sdW1uOjI7Z3JpZC1yb3c6MTt3aWR0aDoxN3B4O2hlaWdodDoxN3B4O21hcmdpbjowO2FjY2VudC1jb2xvcjojOThmMWQ3fSNjaGVja3MgLmNob2ljZS10aXRsZXtncmlkLWNvbHVtbjoxLy0xO2dyaWQtcm93OjI7Zm9udC1zaXplOmNsYW1wKDE2cHgsMS44dncsMjRweCk7bGV0dGVyLXNwYWNpbmc6LS4wMmVtO2NvbG9yOiNmMmZmZmY7Zm9udC13ZWlnaHQ6OTAwO2xpbmUtaGVpZ2h0OjEuMX0jY2hlY2tzIC5jaG9pY2UtZGVzY3JpcHRpb257Z3JpZC1jb2x1bW46MS8tMTtncmlkLXJvdzozO2ZvbnQtc2l6ZToxMnB4O2xpbmUtaGVpZ2h0OjEuNDtjb2xvcjojYjFjY2QzfSNjaGVja3MgbGFiZWw6aGFzKGlucHV0OmNoZWNrZWQpe2JvcmRlci1jb2xvcjojYTNmNWRkO2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDEzNWRlZywjMTM0MzNlLCMwYTI1MzkpO2JveC1zaGFkb3c6MCAwIDMwcHggIzY0ZjRjMzEyfSNjaGVja3MgbGFiZWw6aG92ZXJ7Ym9yZGVyLWNvbG9yOiNhM2Y1ZGQ7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTJweCl9I2NvbW1pdE5leHR7d2lkdGg6bWluKDEwODBweCwxMDAlKTtwYWRkaW5nOjE5cHggMjJweDtib3JkZXItcmFkaXVzOjlweDtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO3RleHQtYWxpZ246bGVmdDtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCgxMDBkZWcsI2I5ZmJlNSwjODBkY2U5KTtmb250LXNpemU6MTJweDtsZXR0ZXItc3BhY2luZzouMTJlbTtib3gtc2hhZG93OjAgOHB4IDMwcHggIzAwMDN9I2NvbW1pdE5leHQgc3Bhbntmb250LXNpemU6MjVweDtsaW5lLWhlaWdodDoxfS5jbG9zZUZvb3Rub3Rle2ZvbnQtc2l6ZToxMXB4O2NvbG9yOiM5MGFkYjk7bGV0dGVyLXNwYWNpbmc6LjA1ZW07bWFyZ2luLXRvcDotMTBweH0jY29tbWl0bWVudERldGFpbHN7Ym9yZGVyOjFweCBzb2xpZCAjODNkY2RmNDQ7YmFja2dyb3VuZDojMDMxNDIzZTg7Ym9yZGVyLXJhZGl1czoxNHB4O3BhZGRpbmc6MjBweDtzY3JvbGwtbWFyZ2luLXRvcDo3NXB4fS5jb21taXRIZWFke2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjtnYXA6MTJweDthbGlnbi1pdGVtczpjZW50ZXI7bWFyZ2luLWJvdHRvbToxN3B4fS5jb21taXRIZWFkIHN0cm9uZ3tmb250LXNpemU6MTJweDtsZXR0ZXItc3BhY2luZzouMDhlbTtjb2xvcjojYzlmZmYwfS5jb21taXRIZWFkIHNwYW57Zm9udC1zaXplOjExcHg7Y29sb3I6IzllYmNjN30jZmluaXNoRmllbGRze2dyaWQtdGVtcGxhdGUtY29sdW1uczpyZXBlYXQoMyxtaW5tYXgoMCwxZnIpKTtnYXA6MTJweH0jZmluaXNoRmllbGRzIGxhYmVse2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47Z2FwOjdweDtmb250LXNpemU6OXB4O2xldHRlci1zcGFjaW5nOi4xZW07Y29sb3I6I2E4Y2NkM30jZmluaXNoRmllbGRzIC50YXNrRmllbGR7Z3JpZC1jb2x1bW46MS8tMX0jZmluaXNoIHRleHRhcmVhe2dyaWQtY29sdW1uOmF1dG87bWluLWhlaWdodDo2NHB4fSNhY3Rpb25ze21hcmdpbi10b3A6MTZweH0jYWN0aW9ucyBidXR0b257cGFkZGluZzoxMXB4IDE1cHg7Zm9udC1zaXplOjEwcHg7Ym9yZGVyLXJhZGl1czo3cHh9I2FjdGlvbnMgYnV0dG9uOmZpcnN0LWNoaWxke2JhY2tncm91bmQ6I2I5ZmJlNTtjb2xvcjojMDUyYjMwfSNzdGF0dXN7bWFyZ2luLXRvcDoxMHB4fQpAbWVkaWEobWF4LXdpZHRoOjY1MHB4KXsubXAuYXtsZWZ0OjI1JTt0b3A6NzYlfS5tcC5je2xlZnQ6NTMlO3RvcDo1NSV9Lm1wLm17bGVmdDo3NSU7dG9wOjM1JX0ubXAgYntmb250LXNpemU6OXB4O2xldHRlci1zcGFjaW5nOi4wN2VtfS5tcCBzbWFsbHtkaXNwbGF5OmZsZXg7Zm9udC1zaXplOjZweDtnYXA6NHB4O3BhZGRpbmc6NHB4IDVweH0jZmxvb3JQYW5lbHttYXgtaGVpZ2h0OjM1JTt0b3A6MjclO3BhZGRpbmc6MTFweH0jZmxvb3JFeGFtcGxlcyBie2ZvbnQtc2l6ZToxNXB4fSNmbG9vckV4YW1wbGVzICNmbG9vck1lYW5pbmd7Zm9udC1zaXplOjEzcHh9I2Zsb29yRXhhbXBsZXMgI2Zsb29yRXhhbXBsZVRleHR7Zm9udC1zaXplOjEwcHh9I2NhcHRpb24uYXJjaENhcHRpb24gI2hlYWRpbmd7Zm9udC1zaXplOjIzcHh9I2ZpbmlzaHtwYWRkaW5nOjgwcHggMThweCA4MHB4O2dhcDoxOXB4fS5jbG9zZUhlcm8gLmtpY2tlcntmb250LXNpemU6OHB4O2xldHRlci1zcGFjaW5nOi4xM2VtO21hcmdpbi1ib3R0b206MTZweH0jZmluaXNoIGgye2ZvbnQtc2l6ZTpjbGFtcCgzNnB4LDEwLjd2dyw0OHB4KTtsaW5lLWhlaWdodDoxfSNmaW5pc2ggLmludHJve2ZvbnQtc2l6ZToxM3B4O21heC13aWR0aDozMTBweDttYXJnaW4tdG9wOjE0cHh9LmNsb3NlUnVsZXttYXJnaW4tdG9wOjE3cHg7d2lkdGg6ODhweH0jcm9sZXN7bWFyZ2luLWJvdHRvbToxNHB4fSNyb2xlcyBidXR0b257Zm9udC1zaXplOjhweDtwYWRkaW5nOjhweCAxMHB4fS5jbG9zZURlY2lzaW9uIGgze2ZvbnQtc2l6ZToxMHB4O2xpbmUtaGVpZ2h0OjEuNTtsZXR0ZXItc3BhY2luZzouMDdlbX0jY2hlY2tze2dyaWQtdGVtcGxhdGUtY29sdW1uczoxZnI7Z2FwOjhweH0jY2hlY2tzIGxhYmVse2dyaWQtdGVtcGxhdGUtY29sdW1uczoyNXB4IDFmciAxOHB4O21pbi1oZWlnaHQ6NzZweDtwYWRkaW5nOjE0cHg7Z2FwOjVweCAxMHB4O2JvcmRlci1yYWRpdXM6MTBweH0jY2hlY2tzIGxhYmVsOmJlZm9yZXtncmlkLWNvbHVtbjoxO2dyaWQtcm93OjEvMzthbGlnbi1zZWxmOmNlbnRlcjtmb250LXNpemU6MTBweH0jY2hlY2tzIGlucHV0e2dyaWQtY29sdW1uOjM7Z3JpZC1yb3c6MS8zO2FsaWduLXNlbGY6Y2VudGVyfSNjaGVja3MgLmNob2ljZS10aXRsZXtncmlkLWNvbHVtbjoyO2dyaWQtcm93OjE7Zm9udC1zaXplOjE3cHh9I2NoZWNrcyAuY2hvaWNlLWRlc2NyaXB0aW9ue2dyaWQtY29sdW1uOjI7Z3JpZC1yb3c6Mjtmb250LXNpemU6MTFweH0jY29tbWl0TmV4dHtmb250LXNpemU6MTBweDtwYWRkaW5nOjE3cHggMTZweDtsZXR0ZXItc3BhY2luZzouMDdlbX0uY2xvc2VGb290bm90ZXtmb250LXNpemU6MTBweDtsaW5lLWhlaWdodDoxLjR9I2NvbW1pdG1lbnREZXRhaWxze3BhZGRpbmc6MTVweH0uY29tbWl0SGVhZHtkaXNwbGF5OmJsb2NrfS5jb21taXRIZWFkIHN0cm9uZ3tmb250LXNpemU6MTFweH0uY29tbWl0SGVhZCBzcGFue2Rpc3BsYXk6YmxvY2s7Zm9udC1zaXplOjEwcHg7bWFyZ2luLXRvcDo2cHh9I2ZpbmlzaEZpZWxkc3tncmlkLXRlbXBsYXRlLWNvbHVtbnM6MWZyfSNhY3Rpb25zIGJ1dHRvbntmb250LXNpemU6OXB4fSNhY3Rpb25ze2dhcDo4cHh9fQoubXAuYXt0b3A6NjglfS5hbnRpb3F1aWFGbG9vcnN7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtnYXA6NHB4O2JhY2tncm91bmQ6IzA0MTcyNmViO2JvcmRlcjoxcHggc29saWQgI2E1ZTRkNDRkO2JvcmRlci10b3A6MDtib3JkZXItcmFkaXVzOjAgMCA3cHggN3B4O3BhZGRpbmc6N3B4IDEwcHg7Y29sb3I6I2NlZTdlYztmb250LXNpemU6MTBweDtsaW5lLWhlaWdodDoxLjM7d2hpdGUtc3BhY2U6bm93cmFwfS5hbnRpb3F1aWFGbG9vcnMgc3Ryb25ne2ZvbnQtc2l6ZTo4cHg7bGV0dGVyLXNwYWNpbmc6LjFlbTtjb2xvcjojZTBmNWVmfS5hbnRpb3F1aWFGbG9vcnMgaXtmb250LXN0eWxlOm5vcm1hbDtjb2xvcjojYWFmNWRmO2ZvbnQtd2VpZ2h0OjkwMDttYXJnaW46MCAzcHggMCA2cHh9LmFudGlvcXVpYUZsb29ycyBzcGFuOm50aC1jaGlsZCgyKXtjb2xvcjojYjhkZmY3fS5hbnRpb3F1aWFGbG9vcnMgc3BhbjpudGgtY2hpbGQoMyl7Y29sb3I6I2E0ZjNjY30jcHJvamVjdENvbnRhY3R7Zm9udC1zdHlsZTpub3JtYWw7ZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO2dhcDoyMHB4O2FsaWduLWl0ZW1zOmNlbnRlcjtib3JkZXItdG9wOjFweCBzb2xpZCAjOGFkZWNmMzM7cGFkZGluZzoyMHB4IDAgMDttYXJnaW46MH0uY29udGFjdElkZW50aXR5e2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47Z2FwOjVweH0uY29udGFjdElkZW50aXR5PnNwYW57Zm9udC1zaXplOjhweDtmb250LXdlaWdodDo4MDA7bGV0dGVyLXNwYWNpbmc6LjE3ZW07Y29sb3I6IzkyYjdiZX0uY29udGFjdElkZW50aXR5IHN0cm9uZ3tmb250LXNpemU6MjFweDtsZXR0ZXItc3BhY2luZzotLjAyZW07Y29sb3I6I2U5ZmZmZn0uY29udGFjdElkZW50aXR5IHNtYWxse2ZvbnQtc2l6ZToxMXB4O2NvbG9yOiNhN2NiZDB9LmNvbnRhY3RMaW5re2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47Z2FwOjdweDt0ZXh0LWRlY29yYXRpb246bm9uZTtjb2xvcjojYmVmZmU5O3BhZGRpbmc6MTNweCAxN3B4O2JvcmRlcjoxcHggc29saWQgI2EzZWVkYzY2O2JvcmRlci1yYWRpdXM6OHB4O2JhY2tncm91bmQ6I2EyZmZlNTBhO3RyYW5zaXRpb246YmFja2dyb3VuZCAuMnN9LmNvbnRhY3RMaW5rOmhvdmVye2JhY2tncm91bmQ6I2EyZmZlNTFjfS5jb250YWN0TGluazpmb2N1cy12aXNpYmxle291dGxpbmU6MnB4IHNvbGlkICNiOWZiZTU7b3V0bGluZS1vZmZzZXQ6NHB4fS5jb250YWN0TGluaz5zcGFue2ZvbnQtc2l6ZToxMHB4O2ZvbnQtd2VpZ2h0OjkwMDtsZXR0ZXItc3BhY2luZzouMDhlbX0uY29udGFjdExpbmsgYnttYXJnaW4tbGVmdDoxOHB4O2ZvbnQtc2l6ZToxN3B4fS5jb250YWN0TGluayBzbWFsbHtmb250LXNpemU6MTJweDtjb2xvcjojYzJlMmU0fSNjaGVja3MgLmNob2ljZS10aXRsZXtmb250LXNpemU6Y2xhbXAoMTRweCwxLjV2dywyMXB4KTtsaW5lLWhlaWdodDoxLjE1O292ZXJmbG93LXdyYXA6bm9ybWFsfSNjaGVja3MgLmNob2ljZS1kZXNjcmlwdGlvbntmb250LXNpemU6MTJweH0uY2xvc2VEZWNpc2lvbiBoM3tsaW5lLWhlaWdodDoxLjV9I2NvbW1pdE5leHR7Zm9udC1zaXplOjExcHh9LmNsb3NlRm9vdG5vdGV7bGluZS1oZWlnaHQ6MS40fQpAbWVkaWEobWF4LXdpZHRoOjY1MHB4KXsubXAuYXt0b3A6NjYlfS5hbnRpb3F1aWFGbG9vcnN7Zm9udC1zaXplOjhweDtwYWRkaW5nOjVweCA2cHg7Z2FwOjNweH0uYW50aW9xdWlhRmxvb3JzIHN0cm9uZ3tmb250LXNpemU6N3B4O2xldHRlci1zcGFjaW5nOi4wNGVtfS5hbnRpb3F1aWFGbG9vcnMgaXttYXJnaW4tbGVmdDozcHh9I3Byb2plY3RDb250YWN0e2FsaWduLWl0ZW1zOmZsZXgtc3RhcnQ7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2dhcDoxM3B4O3BhZGRpbmctdG9wOjE2cHh9LmNvbnRhY3RJZGVudGl0eSBzdHJvbmd7Zm9udC1zaXplOjIwcHh9LmNvbnRhY3RMaW5re3dpZHRoOjEwMCU7cGFkZGluZzoxMnB4IDE0cHh9LmNvbnRhY3RMaW5rIHNtYWxse2ZvbnQtc2l6ZToxMnB4fSNjaGVja3MgLmNob2ljZS10aXRsZXtmb250LXNpemU6MTRweDtsaW5lLWhlaWdodDoxLjJ9I2NoZWNrcyAuY2hvaWNlLWRlc2NyaXB0aW9ue2ZvbnQtc2l6ZToxMXB4fSNjb21taXROZXh0e2ZvbnQtc2l6ZTo5cHg7bGV0dGVyLXNwYWNpbmc6LjA1ZW19LmNsb3NlRGVjaXNpb24gaDN7Zm9udC1zaXplOjEwcHh9fQo8L3N0eWxlPjwvaGVhZD48Ym9keT48ZGl2IGlkPSJtb3ZpZSI+PGRpdiBpZD0iaGF6ZSI+PC9kaXY+PGRpdiBpZD0iY2l0eSI+PHN2ZyB2aWV3Qm94PSIwIDAgMTIwMCA0NTAiIHByZXNlcnZlQXNwZWN0UmF0aW89InhNaWRZTWF4IHNsaWNlIj48cGF0aCBkPSJNMCAyMTAgUTExNSA2MCAyNDAgMTgwIFQ1MTAgMTEwIFQ4NTAgMTkyIFQxMjAwIDEwMCBWNDUwIEgwWiIgZmlsbD0iIzE0MjgzZCIvPjxwYXRoIGQ9Ik0wIDI2MCBRMTEwIDE3MCAyNjAgMjIwIFQ1OTAgMTg5IFQ4NDAgMjQwIFQxMjAwIDE3MCBWNDUwIEgwWiIgZmlsbD0iIzEyMjIzOSIvPjxnIGlkPSJidWlsZGluZ3NTdmciPjwvZz48L3N2Zz48L2Rpdj4KPGRpdiBpZD0ibWVtb3J5Ij48ZGl2IGlkPSJtZW1vcnlHbG93Ij48L2Rpdj48aW1nIGlkPSJtZW1vcnlJbWciIGFsdD0iUmVjdWVyZG8gZm90b2dyw6FmaWNvIi8+PC9kaXY+CjxkaXYgaWQ9Im1hcExheWVyIj48aW1nIGlkPSJwbGFuZXRNZWQiIGFsdD0iVmlzdGEgc2F0ZWxpdGFsIGRlIE1lZGVsbMOtbiwgUGxhbmV0U2NvcGUgMjAyMiIvPjwvZGl2Pgo8ZGl2IGlkPSJtYXBNYXJrZXJzIj48ZGl2IGNsYXNzPSJtcCBhIj48Yj5CQVJSSU8gQU5USU9RVUlBPC9iPjxzbWFsbD48c3Bhbj5SRU5BQ0VSPC9zcGFuPjxzcGFuPklNUFVMU088L3NwYW4+PHNwYW4+QVNDRU5ERVI8L3NwYW4+PC9zbWFsbD48ZGl2IGNsYXNzPSJhbnRpb3F1aWFGbG9vcnMiPjxzdHJvbmc+NCBQSVNPUyBQT1IgRURJRklDSU88L3N0cm9uZz48c3Bhbj48aT4xPC9pPiBFZHVjYWNpw7NuIDxpPjI8L2k+IEVtcGxlbzwvc3Bhbj48c3Bhbj48aT4z4oCTNDwvaT4gVml2aWVuZGE8L3NwYW4+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0ibXAgYyI+PGI+Q0VOVFJPPC9iPjxzbWFsbD48c3Bhbj5SRU5BQ0VSPC9zcGFuPjxzcGFuPklNUFVMU088L3NwYW4+PHNwYW4+QVNDRU5ERVI8L3NwYW4+PC9zbWFsbD48L2Rpdj48ZGl2IGNsYXNzPSJtcCBtIj48Yj5NQU5SSVFVRTwvYj48c21hbGw+PHNwYW4+UkVOQUNFUjwvc3Bhbj48c3Bhbj5JTVBVTFNPPC9zcGFuPjxzcGFuPkFTQ0VOREVSPC9zcGFuPjwvc21hbGw+PC9kaXY+PC9kaXY+CjxkaXYgaWQ9Im1hcENyZWRpdCI+SW1hZ2VuIHNhdGVsaXRhbCDCqSAyMDIyIFBsYW5ldCBMYWJzIFBCQyDCtyB1YmljYWNpb25lcyBvcmllbnRhdGl2YXM8L2Rpdj4KPGNhbnZhcyBpZD0iZngiPjwvY2FudmFzPjxkaXYgaWQ9ImVhcnRoIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PC9kaXY+PGRpdiBpZD0ibGlnaHRSaW5nIj48L2Rpdj4KPGRpdiBpZD0idG9wIj48ZGl2IGlkPSJicmFuZCI+R09EUyBHQUxBWFkgPHNwYW4+R0FNRTwvc3Bhbj4gPHNwYW4gc3R5bGU9ImNvbG9yOiNlYWQ1YTciPi8gUkVHRU5FUkE8L3NwYW4+PC9kaXY+PGRpdiBpZD0idG9wUmlnaHQiPjxidXR0b24gaWQ9InNvdW5kIiBjbGFzcz0ic21hbGxCdG4iPlNPTklETzwvYnV0dG9uPjxidXR0b24gaWQ9ImV4aXQiIGNsYXNzPSJzbWFsbEJ0biI+Q0VSUkFSPC9idXR0b24+PC9kaXY+PC9kaXY+CjxkaXYgaWQ9Imhlcm8iPjxkaXYgY2xhc3M9ImNvcmUiPjxzdHJvbmc+R0dHPC9zdHJvbmc+PC9kaXY+PGRpdiBjbGFzcz0ia2lja2VyIj5HT0RTIEdBTEFYWSBHQU1FIFBSRVNFTlRBPC9kaXY+PGgxPkxBIENJVURBRCBERUwgRlVUVVJPPGJyPjxlbT5DT01JRU5aQSBDT04gU1UgR0VOVEUuPC9lbT48L2gxPjxwPlVuYSB2aXNpw7NuIHBhcmEgdHJhbnNmb3JtYXIgb3BvcnR1bmlkYWRlcyBlbiBmdXR1cm8uPC9wPjxidXR0b24gaWQ9InN0YXJ0IiBjbGFzcz0icHJpbWFyeSI+SU5JQ0lBUiBMQSBFWFBFUklFTkNJQTwvYnV0dG9uPjwvZGl2Pgo8ZGl2IGlkPSJjYXB0aW9uIj48ZGl2IGlkPSJleWVicm93Ij48L2Rpdj48aDIgaWQ9ImhlYWRpbmciPjwvaDI+PHAgaWQ9InN1YiI+PC9wPjxkaXYgaWQ9ImZsYWciPjwvZGl2PjwvZGl2Pgo8ZGl2IGlkPSJmbG9vclBhbmVsIiBhcmlhLWxpdmU9InBvbGl0ZSI+PGRpdiBpZD0iZmxvb3JOYW1lIj48L2Rpdj48ZGl2IGlkPSJmbG9vckxpc3QiPjwvZGl2PjxkaXYgaWQ9ImZsb29yRXhhbXBsZXMiPjxiIGlkPSJmbG9vckFjdGl2ZU5hbWUiPjwvYj48cCBpZD0iZmxvb3JNZWFuaW5nIj48L3A+PHAgaWQ9ImZsb29yRXhhbXBsZVRleHQiPjwvcD48L2Rpdj48ZGl2IGNsYXNzPSJmbG9vckhpbnQiPkV4cGxvcmFyIHBvciBwaXNvPC9kaXY+PGRpdiBpZD0iZmxvb3JEaXNjbGFpbWVyIj5EaXNlw7FvIGNvbmNlcHR1YWwgwrcgc3VqZXRvIGEgdmlhYmlsaWRhZDwvZGl2PjwvZGl2PjxzZWN0aW9uIGlkPSJmdW5kaW5nRGlhZ3JhbSIgYXJpYS1sYWJlbD0iRGVsIGFycmllbmRvIGEgbGEgY3VvdGEgaW5pY2lhbCI+CiA8ZGl2IGNsYXNzPSJyZW50U3RvcnkiPjxzcGFuPjAxIMK3IFRSQUJBSkEgWSBSRUNJQkUgU1VTIElOR1JFU09TPC9zcGFuPjxzcGFuPjAyIMK3IFBBR0EgRUwgQVJSSUVORE88L3NwYW4+PHNwYW4+MDMgwrcgRUwgNTAlIEFDVU1VTEFETyBDVUVOVEEgUEFSQSBTVSBDVU9UQSBJTklDSUFMPC9zcGFuPjwvZGl2PgogPGRpdiBjbGFzcz0icmVudENvbnNvbGUiPgogIDxkaXYgY2xhc3M9InJlbnRDYXJkIj48c3BhbiBjbGFzcz0ibWV0cmljTGFiZWwiPkFSUklFTkRPIFRPVEFMIFBBR0FETzwvc3Bhbj48c3Ryb25nIGlkPSJyZW50VG90YWwiPiQwPC9zdHJvbmc+PHNwYW4gY2xhc3M9Im1ldHJpY1VuaXQiPlBFU09TIENPTE9NQklBTk9TIMK3IENPUDwvc3Bhbj48cD5Ub3RhbCBhY3VtdWxhZG8gZGUgYXJyaWVuZG9zLjwvcD48ZGl2IGNsYXNzPSJyZW50VHJhY2siPjxpIGlkPSJyZW50VHJhY2siPjwvaT48L2Rpdj48L2Rpdj4KICA8ZGl2IGNsYXNzPSJjcmVkaXRDb3JlIj48ZGl2IGNsYXNzPSJjcmVkaXRPcmJpdCI+PHNwYW4+U0UgUkVDT05PQ0UgRUw8L3NwYW4+PHN0cm9uZz41MDxzcGFuPiU8L3NwYW4+PC9zdHJvbmc+PHNtYWxsPkRFTCBBUlJJRU5ETyBBQ1VNVUxBRE88L3NtYWxsPjwvZGl2PjxkaXYgY2xhc3M9InRyYW5zZmVyTGluZSI+U0UgQVBMSUNBIEEgTEEgQ1VPVEEgSU5JQ0lBTCDihpI8L2Rpdj48L2Rpdj4KICA8ZGl2IGNsYXNzPSJyZW50Q2FyZCBjcmVkaXRDYXJkIj48c3BhbiBjbGFzcz0ibWV0cmljTGFiZWwiPkFCT05PIFBST1BVRVNUTyBBIFNVIFZJVklFTkRBPC9zcGFuPjxzdHJvbmcgaWQ9ImNyZWRpdFRvdGFsIj4kMDwvc3Ryb25nPjxzcGFuIGNsYXNzPSJtZXRyaWNVbml0Ij5NRVRBIERFTCBFSkVNUExPOiAkMzAuMDAwLjAwMCBDT1A8L3NwYW4+PHAgaWQ9ImNyZWRpdFN0YXR1cyI+RWwgYWJvbm8gY3JlY2UgY29uIGxvcyBwYWdvcyBkZSBhcnJpZW5kby48L3A+PGRpdiBjbGFzcz0icmVudFRyYWNrIj48aSBpZD0iY3JlZGl0VHJhY2siPjwvaT48L2Rpdj48L2Rpdj4KIDwvZGl2PgogPGRpdiBjbGFzcz0icmVudEVxdWF0aW9uIj48c3Ryb25nPiQ2MCBtaWxsb25lcyBwYWdhZG9zIGVuIGFycmllbmRvIMOXIDUwJSA9ICQzMCBtaWxsb25lcyBkZSBjdW90YSBpbmljaWFsPC9zdHJvbmc+PHNwYW4+TWV0YTogYXJyaWVuZG9zIGFjdW11bGFkb3MgPSAyIMOXIGN1b3RhIGluaWNpYWwuPC9zcGFuPjwvZGl2PgogPGRpdiBjbGFzcz0icmVudFNpbXVsYXRvciI+PGxhYmVsIGZvcj0icmVudE1vbnRocyI+RUpFTVBMTyBJTFVTVFJBVElWTyDCtyBBUlJJRU5ETyBERSAkMS4wMDAuMDAwIENPUC9NRVMgPG91dHB1dCBpZD0icmVudE1vbnRoTGFiZWwiPjAgLyA2MCBtZXNlczwvb3V0cHV0PjwvbGFiZWw+PGlucHV0IGlkPSJyZW50TW9udGhzIiB0eXBlPSJyYW5nZSIgbWluPSIwIiBtYXg9IjYwIiBzdGVwPSIxIiB2YWx1ZT0iMCIgYXJpYS1sYWJlbD0iTWVzZXMgZGUgYXJyaWVuZG8gcGFnYWRvcyBlbiBlbCBlamVtcGxvIj48c3Bhbj5FamVtcGxvIGlsdXN0cmF0aXZvLiBEZXNsaXphIHBhcmEgZXhwbG9yYXIuPC9zcGFuPjwvZGl2PgogPGRpdiBjbGFzcz0icmVudERlc3RpbmF0aW9uIj48c3Bhbj5FVEFQQSBGSU5BTCDCtyBDSVVEQURFTEEgQVNDRU5ERVI8L3NwYW4+PHN0cm9uZz5TVSBBQk9OTyDihpIgU1UgQ1VPVEEgSU5JQ0lBTC48L3N0cm9uZz48cD5TYWxkbyBkZSBjb21wcmEgcG9yIHNlcGFyYWRvLiBQcm9wdWVzdGEgc3VqZXRhIGEgY29udHJhdG8uPC9wPjwvZGl2Pgo8L3NlY3Rpb24+CjxkaXYgaWQ9Im5vdGUiPlBST1BVRVNUQSBDT05DRVBUVUFMIMK3IFVCSUNBQ0lPTkVTIFBPUiBFVkFMVUFSPC9kaXY+CjxkaXYgaWQ9ImhvbGQiPjxkaXYgY2xhc3M9ImtpY2tlciI+QU5URVMgREUgUkVWRUxBUiBFTCBQUk9ZRUNUTzwvZGl2PjxoMj5WSVZJRU5EQS4gRURVQ0FDScOTTi4gRU1QTEVPLiBFTiBDQURBIEJBUlJJTy48L2gyPjxwPjxzdHJvbmc+UmVuYWNlciwgSW1wdWxzbyB5IEFzY2VuZGVyLjwvc3Ryb25nPjxicj5UcmVzIGVkaWZpY2lvcyBjb21wbGVtZW50YXJpb3MuIFVuIG1vZGVsbyBwYXJhIHRyYW5zZm9ybWFyIG9wb3J0dW5pZGFkZXMgZW4gcGF0cmltb25pby48L3A+PGRpdiBpZD0iaG9sZE9wdGlvbnMiPjxidXR0b24gdHlwZT0iYnV0dG9uIiBkYXRhLWFuc3dlcj0iRXhwbG9yYXIgZWwgcHJpbWVyIHByb3llY3RvIj5WRUFNT1MgRUwgUFJJTUVSIFBST1lFQ1RPPC9idXR0b24+PGJ1dHRvbiB0eXBlPSJidXR0b24iIGRhdGEtYW5zd2VyPSJDb25vY2VyIGPDs21vIGZ1bmNpb25hIj5WRUFNT1MgQ8OTTU8gRlVOQ0lPTkE8L2J1dHRvbj48YnV0dG9uIHR5cGU9ImJ1dHRvbiIgZGF0YS1hbnN3ZXI9IkV2YWx1YXIgbnVlc3RyYSBwYXJ0aWNpcGFjacOzbiI+SEFCTEVNT1MgREUgTlVFU1RSQSBQQVJUSUNJUEFDScOTTjwvYnV0dG9uPjwvZGl2PjxwIGlkPSJmaXJzdEFuc3dlciIgYXJpYS1saXZlPSJwb2xpdGUiPjwvcD48YnV0dG9uIGNsYXNzPSJwcmltYXJ5IiBpZD0iY29udGludWUiPkNPTk9DRVIgRUwgTU9ERUxPIOKGkjwvYnV0dG9uPjwvZGl2Pgo8c2VjdGlvbiBpZD0iZmluaXNoIiBhcmlhLWxhYmVsPSJBbGlhbnphIHBhcmEgZWwgcHJpbWVyIHBpbG90byI+CiA8ZGl2IGNsYXNzPSJjbG9zZUhlcm8iPjxkaXYgY2xhc3M9ImtpY2tlciI+R0dHIFJFR0VORVJBIE1FREVMTMONTiDCtyBJTlZJVEFDScOTTiBBIFVOQSBBTElBTlpBPC9kaXY+PGgyPlVOQSBBTElBTlpBLjxicj48ZW0+VU4gUFJJTUVSIFBJTE9UTy48L2VtPjwvaDI+PHAgY2xhc3M9ImludHJvIj5VbiBiYXJyaW8uIFRyZXMgZWRpZmljaW9zLiBVbmEgcnV0YSBoYWNpYSBsYSBwcm9waWVkYWQuPC9wPjxkaXYgY2xhc3M9ImNsb3NlUnVsZSI+PC9kaXY+PC9kaXY+CiA8ZGl2IGNsYXNzPSJjbG9zZURlY2lzaW9uIj48ZGl2IGlkPSJyb2xlcyI+PGJ1dHRvbiBkYXRhLXJvbGU9ImFsY2FsZGlhIiBjbGFzcz0ic2VsIiB0eXBlPSJidXR0b24iPkFMQ0FMRMONQTwvYnV0dG9uPjxidXR0b24gZGF0YS1yb2xlPSJkZXNhcnJvbGxhZG9yZXMiIHR5cGU9ImJ1dHRvbiI+REVTQVJST0xMQURPUkVTIFkgQUxJQURPUzwvYnV0dG9uPjwvZGl2PjxoMz7Cv0PDk01PIFBBUlRJQ0lQQVLDjUEgU1UgT1JHQU5JWkFDScOTTiBFTiBFTCBQUklNRVIgUElMT1RPPzwvaDM+PGRpdiBpZD0iY2hlY2tzIiBhcmlhLWxhYmVsPSJBcG9ydGVzIHBhcmEgZXZhbHVhciBlbCBwaWxvdG8iPjwvZGl2PjwvZGl2PgogPGJ1dHRvbiBpZD0iY29tbWl0TmV4dCIgY2xhc3M9InByaW1hcnkiIHR5cGU9ImJ1dHRvbiIgYXJpYS1leHBhbmRlZD0iZmFsc2UiIGFyaWEtY29udHJvbHM9ImNvbW1pdG1lbnREZXRhaWxzIj5QUk9QT05FUiBVTkEgUkVVTknDk04gREUgVFJBQkFKTyA8c3Bhbj7ihpc8L3NwYW4+PC9idXR0b24+CiA8ZGl2IGNsYXNzPSJjbG9zZUZvb3Rub3RlIj5TZWxlY2Npb25lbW9zIHVuYSBsw61uZWEgZGUgY29sYWJvcmFjacOzbiB5IGFjb3JkZW1vcyBlbCBzaWd1aWVudGUgcGFzby48L2Rpdj4KIDxhZGRyZXNzIGlkPSJwcm9qZWN0Q29udGFjdCI+PGRpdiBjbGFzcz0iY29udGFjdElkZW50aXR5Ij48c3Bhbj5DT05UQUNUTyBERUwgUFJPWUVDVE88L3NwYW4+PHN0cm9uZz5FZHdhcmQgUmFpZ296YTwvc3Ryb25nPjxzbWFsbD5HR0cgwrcgUmVnZW5lcmEgTWVkZWxsw61uPC9zbWFsbD48L2Rpdj48YSBocmVmPSJtYWlsdG86ZWR3YXJkcmFpZ296YWxsY0BnbWFpbC5jb20\/c3ViamVjdD1HR0clMjBSZWdlbmVyYSUyME1lZGVsbCVDMyVBRG4lMjAtJTIwUmV1bmklQzMlQjNuJTIwZGUlMjB0cmFiYWpvIiBjbGFzcz0iY29udGFjdExpbmsiPjxzcGFuPkNPTlRBQ1RBUiBBIEVEV0FSRCA8YiBhcmlhLWhpZGRlbj0idHJ1ZSI+4oaXPC9iPjwvc3Bhbj48c21hbGw+ZWR3YXJkcmFpZ296YWxsY0BnbWFpbC5jb208L3NtYWxsPjwvYT48L2FkZHJlc3M+CiA8c2VjdGlvbiBpZD0iY29tbWl0bWVudERldGFpbHMiIGhpZGRlbiBhcmlhLWxhYmVsPSJSZWdpc3RyYXIgcHLDs3hpbW8gcGFzbyI+PGRpdiBjbGFzcz0iY29tbWl0SGVhZCI+PHN0cm9uZz5QUk9QVUVTVEEgREUgQ09MQUJPUkFDScOTTjwvc3Ryb25nPjxzcGFuPkNvbnRhY3RvIMK3IGFsY2FuY2UgwrcgZmVjaGEgcHJvcHVlc3RhPC9zcGFuPjwvZGl2PjxkaXYgaWQ9ImZpbmlzaEZpZWxkcyI+PGxhYmVsPk9SR0FOSVpBQ0nDk048aW5wdXQgdHlwZT0idGV4dCIgaWQ9ImVudGl0eSIgcGxhY2Vob2xkZXI9IkVudGlkYWQgbyBlbXByZXNhIi8+PC9sYWJlbD48bGFiZWw+UkVTUE9OU0FCTEU8aW5wdXQgdHlwZT0idGV4dCIgaWQ9ImNvbnRhY3QiIHBsYWNlaG9sZGVyPSJOb21icmUgeSBjb250YWN0byIvPjwvbGFiZWw+PGxhYmVsPkZFQ0hBIFBST1BVRVNUQTxpbnB1dCB0eXBlPSJkYXRlIiBpZD0iZm9sbG93RGF0ZSIvPjwvbGFiZWw+PGxhYmVsIGNsYXNzPSJ0YXNrRmllbGQiPk9CSkVUSVZPIERFIExBIFJFVU5Jw5NOPHRleHRhcmVhIGlkPSJub3RlcyIgcGxhY2Vob2xkZXI9IkFsY2FuY2UgbyB0ZW1hIGEgZXZhbHVhciIgcm93cz0iMiI+PC90ZXh0YXJlYT48L2xhYmVsPjwvZGl2PjxkaXYgaWQ9ImFjdGlvbnMiPjxidXR0b24gaWQ9ImRvd25sb2FkIiB0eXBlPSJidXR0b24iPkdVQVJEQVIgUFJPUFVFU1RBPC9idXR0b24+PGJ1dHRvbiBpZD0ic2VuZCIgdHlwZT0iYnV0dG9uIj5FTlZJQVIgUE9SIENPUlJFTzwvYnV0dG9uPjxidXR0b24gaWQ9ImNvcHkiIHR5cGU9ImJ1dHRvbiI+Q09QSUFSPC9idXR0b24+PC9kaXY+PGRpdiBpZD0ic3RhdHVzIiBhcmlhLWxpdmU9InBvbGl0ZSI+PC9kaXY+PC9zZWN0aW9uPgo8L3NlY3Rpb24+CjxkaXYgaWQ9ImNvbnRyb2xzIj48c3BhbiBpZD0iY2xvY2siPjAwOjAwIC8gMDY6MDQ8L3NwYW4+PGlucHV0IGlkPSJzZWVrIiBhcmlhLWxhYmVsPSJCYXJyYSBkZSBhdmFuY2UgY29udGludW8iIHR5cGU9InJhbmdlIiBtaW49IjAiIG1heD0iMzY0IiBzdGVwPSIwLjEiIHZhbHVlPSIwIi8+PGJ1dHRvbiBpZD0icGF1c2UiPklOSUNJQVI8L2J1dHRvbj48L2Rpdj4KPC9kaXY+PHNjcmlwdD4oKCk9PnsndXNlIHN0cmljdCc7CmNvbnN0ICQ9aWQ9PmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKTsKLy8gQVVESU86IHVzYXIgbnVldm9zIE1QMyBkZXNwdcOpcyBkZSBncmFiYXJsb3MuIE5vIHJldXRpbGl6YXIgZWwgTVAzIGFudGlndW8gcXVlIHByZWd1bnRhIGFsIG1pbmlzdHJvLgpjb25zdCBBVURJTz1PYmplY3QuYXNzaWduKHtISVNUT1JJQTonaHR0cHM6Ly9nb2RzZ2FsYXh5Z2FtZS5jb20vR0dHL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDI2LzEwL0dHR19SZWdlbmVyYV9NZWRlbGxpbl8wMV9IaXN0b3JpYS5tcDMnLFBST1BVRVNUQTonaHR0cHM6Ly9nb2RzZ2FsYXh5Z2FtZS5jb20vR0dHL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDI2LzEwL0dHR19SZWdlbmVyYV9NZWRlbGxpbl8wMl9Qcm9wdWVzdGEubXAzJyxDSUVSUkU6J2h0dHBzOi8vZ29kc2dhbGF4eWdhbWUuY29tL0dHRy93cC1jb250ZW50L3VwbG9hZHMvMjAyNi8xMC9HR0dfUmVnZW5lcmFfTWVkZWxsaW5fMDNfQ2llcnJlLm1wMyd9LHdpbmRvdy5HR0dfUkVHRU5FUkFfTUVESUE\/LmF1ZGlvfHx7fSk7CmNvbnN0IGhhc0F1ZGlvPU9iamVjdC52YWx1ZXMoQVVESU8pLnNvbWUoQm9vbGVhbik7JCgnc291bmQnKS5oaWRkZW49IWhhc0F1ZGlvOwpjb25zdCBBVURJT19CRUdJTj17SElTVE9SSUE6MCxQUk9QVUVTVEE6MTUwLENJRVJSRTozMTl9Owpjb25zdCBBVURJT19FTkQ9e0hJU1RPUklBOjE1MCxQUk9QVUVTVEE6MzE5LENJRVJSRTozNjR9Owpjb25zdCBQSE9UT1M9T2JqZWN0LmFzc2lnbih7Im1lZGVsbGluIjoiaHR0cHM6Ly9pbWFnZXMucGV4ZWxzLmNvbS9waG90b3MvMTM3ODI4OTUvcGV4ZWxzLXBob3RvLTEzNzgyODk1LmpwZWc\/YXV0bz1jb21wcmVzcyZjcz10aW55c3JnYiZ3PTE3MDAiLCJ1c2EiOiJodHRwczovL2ltYWdlcy5wZXhlbHMuY29tL3Bob3Rvcy84MjEzMzgvcGV4ZWxzLXBob3RvLTgyMTMzOC5qcGVnP2F1dG89Y29tcHJlc3MmY3M9dGlueXNyZ2Imdz0xNzAwIiwib3JsYW5kbyI6Imh0dHBzOi8vaW1hZ2VzLnBleGVscy5jb20vcGhvdG9zLzk0MDA5MTYvcGV4ZWxzLXBob3RvLTk0MDA5MTYuanBlZz9hdXRvPWNvbXByZXNzJmNzPXRpbnlzcmdiJnc9MTcwMCIsIm55YyI6Imh0dHBzOi8vaW1hZ2VzLnBleGVscy5jb20vcGhvdG9zLzE4NTExNDY1L3BleGVscy1waG90by0xODUxMTQ2NS5qcGVnP2F1dG89Y29tcHJlc3MmY3M9dGlueXNyZ2Imdz0xNzAwIiwiYmxpc3NHbGFtcGluZyI6Imh0dHBzOi8vYmxpc3NnbGFtcGluZy5jb20vd3AtY29udGVudC91cGxvYWRzLzIwMjYvMDQvMDkyMzIwMjNfMDkxMjQ4LTEwMjR4NTc2LmpwZyIsImJsaXNzQ2x1YiI6Imh0dHBzOi8vYmxpc3NnbGFtcGluZy5jb20vd3AtY29udGVudC91cGxvYWRzLzIwMjYvMDUvSU1HLTIwMjYwNDMwLVdBMDA1MC53ZWJwIiwidXNhTWFwIjoiaHR0cHM6Ly91cGxvYWQud2lraW1lZGlhLm9yZy93aWtpcGVkaWEvY29tbW9ucy8xLzFhL0JsYW5rX1VTX01hcF8lMjhzdGF0ZXNfb25seSUyOS5zdmciLCJtZWRlbGxpblN1bnNldCI6Imh0dHBzOi8vaW1hZ2VzLnBleGVscy5jb20vcGhvdG9zLzEzNzgyODk1L3BleGVscy1waG90by0xMzc4Mjg5NS5qcGVnP2F1dG89Y29tcHJlc3MmY3M9dGlueXNyZ2Imdz0xNzAwIiwiZnV0dXJlTWVkZWxsaW4iOiJodHRwczovL2ltYWdlcy5wZXhlbHMuY29tL3Bob3Rvcy8xMzc4Mjg5NS9wZXhlbHMtcGhvdG8tMTM3ODI4OTUuanBlZz9hdXRvPWNvbXByZXNzJmNzPXRpbnlzcmdiJnc9MTcwMCJ9LHdpbmRvdy5HR0dfUkVHRU5FUkFfTUVESUE\/LnBob3Rvc3x8e30pOwpjb25zdCBzY2VuZXM9W3sic3RhcnQiOjAsImVuZCI6MTQsImsiOiJPUEVOSU5HIiwiZXkiOiJVTkEgTlVFVkEgVklTScOTTiIsImhlYWQiOiJMQSBDSVVEQUQgREVMIEZVVFVSTyBDT01JRU5aQSBDT04gU1UgR0VOVEUuIiwic3ViIjoiIiwiZmxhZyI6Ik1FREVMTMONTiDCtyBVTkEgQVJRVUlURUNUVVJBIERFIE9QT1JUVU5JREFERVMiLCJwaG90byI6bnVsbH0seyJzdGFydCI6MTQsImVuZCI6MjIsImsiOiJDSVRZIiwiZXkiOiJNRURFTEzDjU4iLCJoZWFkIjoiRE9OREUgQ09NRU5aw5MgVE9ETy4iLCJzdWIiOiIiLCJmbGFnIjoiTlVFU1RSQVMgUkHDjUNFUyIsInBob3RvIjoibWVkZWxsaW4ifSx7InN0YXJ0IjoyMiwiZW5kIjoyOCwiayI6IkNJVFkiLCJleSI6IkZMT1JJREEgwrcgRVNUQURPUyBVTklET1MiLCJoZWFkIjoiUkVBTCBFU1RBVEUgREVTREUgMjAxNC4iLCJzdWIiOiIiLCJmbGFnIjoiUkVTSURFTkNJQUwgWSBQUk9QSUVEQUQgVkFDQUNJT05BTCIsInBob3RvIjoidXNhTWFwIn0seyJzdGFydCI6MjgsImVuZCI6NDQsImsiOiJDSVRZIiwiZXkiOiJGTE9SSURBIMK3IEVTVEFET1MgVU5JRE9TIiwiaGVhZCI6IlJFQUwgRVNUQVRFIERFU0RFIDIwMTQuIiwic3ViIjoiIiwiZmxhZyI6IlJFU0lERU5DSUFMIFkgUFJPUElFREFEIFZBQ0FDSU9OQUwiLCJwaG90byI6InVzYSJ9LHsic3RhcnQiOjQ0LCJlbmQiOjY0LCJrIjoiQ0lUWSIsImV5IjoiT1JMQU5ETyIsImhlYWQiOiJUVVJJU01PLiBDT01VTklEQUQuIFBST1BJRURBRC4iLCJzdWIiOiIiLCJmbGFnIjoiTU9ERUxPUyBRVUUgQ09ORUNUQU4gUEVSU09OQVMiLCJwaG90byI6Im9ybGFuZG8ifSx7InN0YXJ0Ijo2NCwiZW5kIjo4OSwiayI6IkNJVFkiLCJleSI6Ik5VRVZBIFlPUksiLCJoZWFkIjoiTEEgUFJPUElFREFEIENPTlNUUlVZRSBDT01VTklEQUQuIiwic3ViIjoiIiwiZmxhZyI6Ik5VRVZBUyBGT1JNQVMgREUgSEFCSVRBUiIsInBob3RvIjoibnljIn0seyJzdGFydCI6ODksImVuZCI6MTAyLCJrIjoiQ0lUWSIsImV5IjoiQkxJU1MgR0xBTVBJTkciLCJoZWFkIjoiTEEgSU5WRVJTScOTTiBWVUVMVkUgQSBOVUVTVFJBIFRJRVJSQS4iLCJzdWIiOiIiLCJmbGFnIjoiRUwgUEXDkU9MIMK3IEFOVElPUVVJQSIsInBob3RvIjoiYmxpc3NHbGFtcGluZyJ9LHsic3RhcnQiOjEwMiwiZW5kIjoxMDUsImsiOiJDSVRZIiwiZXkiOiJCTElTUyBDTFVCIiwiaGVhZCI6IklOVkVSU0nDk04gUVVFIENPTkVDVEEgUkVHSU9ORVMuIiwic3ViIjoiIiwiZmxhZyI6IlRVUklTTU8gWSBPUE9SVFVOSURBREVTIiwicGhvdG8iOiJibGlzc0NsdWIifSx7InN0YXJ0IjoxMDUsImVuZCI6MTIwLCJrIjoiQ0lUWSIsImV5IjoiTUVERUxMw41OIEFMIEFUQVJERUNFUiIsImhlYWQiOiJVTkEgQ0lVREFEIFFVRSBJTlNQSVJBLiIsInN1YiI6IiIsImZsYWciOiJFTCBGVVRVUk8gQ09NSUVOWkEgQVFVw40iLCJwaG90byI6Im1lZGVsbGluU3Vuc2V0In0seyJzdGFydCI6MTIwLCJlbmQiOjEyOSwiayI6IkNJVFkiLCJleSI6IkdPRFMgR0FMQVhZIEdBTUUiLCJoZWFkIjoiQ09ORUNUQVIgSU5URU5DScOTTiBDT04gT1BPUlRVTklEQUQuIiwic3ViIjoiIiwiZmxhZyI6Ik5BQ0UgVU5BIFZJU0nDk04gTUFZT1IiLCJwaG90byI6bnVsbH0seyJzdGFydCI6MTI5LCJlbmQiOjE0NywiayI6IkNJVFkiLCJleSI6Ik1FREVMTMONTiBERUwgRlVUVVJPIiwiaGVhZCI6IlVOQSBDSVVEQUQgRE9OREUgTEEgTkFUVVJBTEVaQSBZIExBIEFSUVVJVEVDVFVSQSBDT05WSVZFTi4iLCJzdWIiOiIiLCJmbGFnIjoiVU5BIFZJU0nDk04gTUFZT1IiLCJwaG90byI6ImZ1dHVyZU1lZGVsbGluIn0seyJzdGFydCI6MTQ3LCJlbmQiOjE1MCwiayI6IlFVRVNUSU9OIiwiZXkiOiJVTkEgT1BPUlRVTklEQUQgUkVBTCIsImhlYWQiOiLCv1BPREVNT1MgSEFDRVJMTyBSRUFMSURBRCBKVU5UT1M\/Iiwic3ViIjoiIiwiZmxhZyI6IlVOQSBQUkVHVU5UQSBBTlRFUyBERSBSRVZFTEFSIExBIFBST1BVRVNUQSIsInBob3RvIjpudWxsfSx7InN0YXJ0IjoxNTAsImVuZCI6MTgyLCJrIjoiTUFQQSIsImV5IjoiSU1QTEFOVEFDScOTTiBURVJSSVRPUklBTCIsImhlYWQiOiIzIEJBUlJJT1MuIDkgRURJRklDSU9TLiIsInN1YiI6IiIsImZsYWciOiJSRU5BQ0VSICsgSU1QVUxTTyArIEFTQ0VOREVSIEVOIENBREEgQkFSUklPIiwicGhvdG8iOm51bGx9LHsic3RhcnQiOjE4MiwiZW5kIjoyMDQsImsiOiJNQVNURVIiLCJleSI6IkVMIE1PREVMTyBFTiBDQURBIEJBUlJJTyIsImhlYWQiOiJUUkVTIEVESUZJQ0lPUy4gVU5BIFJVVEEgREUgUFJPR1JFU08uIiwic3ViIjoiIiwiZmxhZyI6IlJFQ1VQRVJBUiBFU1RBQklMSURBRCDihpIgR0VORVJBUiBJTkdSRVNPUyDihpIgQUNDRURFUiBBIFBST1BJRURBRCIsInBob3RvIjpudWxsfSx7InN0YXJ0IjoyMDQsImVuZCI6MjMzLCJrIjoiUkVOQUNFUiIsImV5IjoiMDEgLyBOw5pDTEVPIFJFTkFDRVIiLCJoZWFkIjoiUkVOQUNFUi4gRVNUQUJJTElEQUQgUEFSQSBBVkFOWkFSLiIsInN1YiI6IiIsImZsYWciOiJCSUVORVNUQVIgwrcgRk9STUFDScOTTiDCtyBUUkFCQUpPIMK3IFZJVklFTkRBIiwicGhvdG8iOm51bGx9LHsic3RhcnQiOjIzMywiZW5kIjoyNjIsImsiOiJJTVBVTFNPIiwiZXkiOiIwMiAvIENBTVBVUyBJTVBVTFNPIiwiaGVhZCI6IklNUFVMU08uIEZPUk1BQ0nDk04gUVVFIEdFTkVSQSBJTkdSRVNPUy4iLCJzdWIiOiIiLCJmbGFnIjoiUElTTyAyIEVEVUNBQ0nDk04gwrcgUElTTyAzIEVNUExFTyDCtyBMRUFTRS1UTy1PV04iLCJwaG90byI6bnVsbH0seyJzdGFydCI6MjYyLCJlbmQiOjI5MCwiayI6IkFTQ0VOREVSIiwiZXkiOiIwMyAvIENJVURBREVMQSBBU0NFTkRFUiIsImhlYWQiOiJBU0NFTkRFUi4gRUwgQ0FNSU5PIEEgTEEgUFJPUElFREFELiIsInN1YiI6IiIsImZsYWciOiJQUk9QSUVUQVJJT1MgwrcgRURVQ0FDScOTTiBDT05USU5VQSDCtyBFTVBSRU5ESU1JRU5UTyIsInBob3RvIjpudWxsfSx7InN0YXJ0IjoyOTAsImVuZCI6MzE5LCJrIjoiQUhPUlJPIiwiZXkiOiJERUwgQVJSSUVORE8gQSBMQSBDVU9UQSBJTklDSUFMIiwiaGVhZCI6IkRFTCBBUlJJRU5ETyBBIExBIENVT1RBIElOSUNJQUwuIiwic3ViIjoiIiwiZmxhZyI6IjUwJSBERUwgQVJSSUVORE8gQUNVTVVMQURPIiwicGhvdG8iOm51bGx9LHsic3RhcnQiOjMxOSwiZW5kIjozNjQsImsiOiJDSUVSUkUiLCJleSI6IkRFTCBDT05DRVBUTyBBIExBIEFDQ0nDk04iLCJoZWFkIjoiRUwgU0lHVUlFTlRFIFBBU08gRVMgVU5BIEFMSUFOWkEuIiwic3ViIjoiIiwiZmxhZyI6IlVOIFBSSU1FUiBCQVJSSU8gwrcgVFJFUyBFRElGSUNJT1MgwrcgVU4gUElMT1RPIEEgRVZBTFVBUiIsInBob3RvIjpudWxsfV07CmxldCBUT1RBTD0zNjQ7Y29uc3QgRklSU1RfUVVFU1RJT05fRU5EPTE1MDsKY29uc3QgY2hvaWNlcz17ImFsY2FsZGlhIjogW1siQVJUSUNVTEFDScOTTiBJTlNUSVRVQ0lPTkFMIiwgIkNvb3JkaW5hciBlbnRpZGFkZXMgeSBldmFsdWFyIHN1ZWxvIHBhcmEgZWwgcGlsb3RvLiJdLCBbIlZJTkNVTEFDScOTTiBERSBBTElBRE9TIiwgIkNvbmVjdGFyIGVkdWNhY2nDs24sIGVtcHJlc2FzIHkgZGVzYXJyb2xsYWRvcmVzLiJdLCBbIkVWQUxVQUNJw5NOIFTDiUNOSUNBIiwgIkRlc2lnbmFyIHVuIGVubGFjZSB5IGNvbnZvY2FyIHVuYSBtZXNhIGRlIHRyYWJham8uIl1dLCAiZGVzYXJyb2xsYWRvcmVzIjogW1siREVTQVJST0xMTyBERUwgUFJPWUVDVE8iLCAiRXZhbHVhciBzdWVsbywgZGlzZcOxbyB5IGNvbnN0cnVjY2nDs24uIl0sIFsiRVNUUlVDVFVSQUNJw5NOIEZJTkFOQ0lFUkEiLCAiQW5hbGl6YXIgaW52ZXJzacOzbiB5IHNvc3RlbmliaWxpZGFkIGRlbCBtb2RlbG8uIl0sIFsiQUxJQU5aQSBFTVBSRVNBUklBTCIsICJWaW5jdWxhciBlbXByZXNhcywgZW1wbGVvIHkgc2VydmljaW9zLiJdXX07CmxldCBmaXJzdEFuc3dlcj0nJzsKY29uc3QgY3Y9JCgnZngnKSxjdHg9Y3YuZ2V0Q29udGV4dCgnMmQnLHthbHBoYTp0cnVlfSk7bGV0IFc9MCxIPTAsZHByPTEsdD0wLHJ1bm5pbmc9ZmFsc2Usc3RhcnRlZD1mYWxzZSxwcmV2aW91cz1wZXJmb3JtYW5jZS5ub3coKSxjdXJyZW50PS0xLGhvbGRSZWFjaGVkPWZhbHNlLHJvbGU9J2FsY2FsZGlhJyxzb3VuZD10cnVlOwpjb25zdCB2b2ljZXM9e0hJU1RPUklBOm5ldyBBdWRpbygpLFBST1BVRVNUQTpuZXcgQXVkaW8oKSxDSUVSUkU6bmV3IEF1ZGlvKCl9Owpjb25zdCBhdWRpb1BlbmRpbmc9e0hJU1RPUklBOmZhbHNlLFBST1BVRVNUQTpmYWxzZSxDSUVSUkU6ZmFsc2V9OwpPYmplY3Qua2V5cyh2b2ljZXMpLmZvckVhY2goaz0+ewogY29uc3QgYT12b2ljZXNba107YS5wcmVsb2FkPSdtZXRhZGF0YSc7YS5wbGF5c0lubGluZT10cnVlOwogaWYoQVVESU9ba10pe2Euc3JjPUFVRElPW2tdO2EubG9hZCgpO30KIGEuYWRkRXZlbnRMaXN0ZW5lcignbG9hZGVkbWV0YWRhdGEnLCgpPT57CiAgaWYoaz09PSdDSUVSUkUnJiZOdW1iZXIuaXNGaW5pdGUoYS5kdXJhdGlvbikmJmEuZHVyYXRpb24+MCl7CiAgIFRPVEFMPUFVRElPX0VORC5DSUVSUkU9QVVESU9fQkVHSU4uQ0lFUlJFK2EuZHVyYXRpb247CiAgIHNjZW5lc1tzY2VuZXMubGVuZ3RoLTFdLmVuZD1UT1RBTDskKCdzZWVrJykubWF4PVRPVEFMOwogIH0KICBpZihzdGFydGVkICYmIHQ+PUFVRElPX0JFR0lOW2tdICYmIHQ8QVVESU9fRU5EW2tdKXsKICAgdHJ5e2EuY3VycmVudFRpbWU9TWF0aC5tYXgoMCx0LUFVRElPX0JFR0lOW2tdKTt9Y2F0Y2goXyl7IH0KICB9CiB9KTsKIGEuYWRkRXZlbnRMaXN0ZW5lcignZXJyb3InLCgpPT57aWYoc3RhcnRlZCkkKCdzb3VuZCcpLnRleHRDb250ZW50PSdBVURJTyBOTyBESVNQT05JQkxFJzt9KTsKfSk7CmZ1bmN0aW9uIHJlc2l6ZSgpe2Rwcj1NYXRoLm1pbigxLjM1LGRldmljZVBpeGVsUmF0aW98fDEpO1c9Y3YuY2xpZW50V2lkdGg7SD1jdi5jbGllbnRIZWlnaHQ7Y3Yud2lkdGg9TWF0aC5jZWlsKFcqZHByKTtjdi5oZWlnaHQ9TWF0aC5jZWlsKEgqZHByKTtjdHguc2V0VHJhbnNmb3JtKGRwciwwLDAsZHByLDAsMCl9d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScscmVzaXplLHtwYXNzaXZlOnRydWV9KTtyZXNpemUoKTsKY29uc3QgZWFzZT12PT57dj1NYXRoLm1heCgwLE1hdGgubWluKDEsdikpO3JldHVybiB2KnYqKDMtMip2KX07Y29uc3QgY2xhbXA9KHYsYSxiKT0+TWF0aC5taW4oYixNYXRoLm1heChhLHYpKTsKY29uc3QgaXNvPSh4LHkseixPWCxPWSxTLGFuZ2xlKT0+e2xldCBjYT1NYXRoLmNvcyhhbmdsZSksc2E9TWF0aC5zaW4oYW5nbGUpO2xldCB4eD14KmNhLXoqc2Eseno9eCpzYSt6KmNhO3JldHVybltPWCt4eCpTKi44OSwgT1krenoqUyouMzkteSpTKi45XX07CmZ1bmN0aW9uIHBvbHkoY29vcmRzLGZpbGwsc3Ryb2tlLHdpZHRoPTEpe2N0eC5iZWdpblBhdGgoKTtjdHgubW92ZVRvKC4uLmNvb3Jkc1swXSk7Zm9yKGxldCBpPTE7aTxjb29yZHMubGVuZ3RoO2krKyljdHgubGluZVRvKC4uLmNvb3Jkc1tpXSk7Y3R4LmNsb3NlUGF0aCgpO2N0eC5maWxsU3R5bGU9ZmlsbDtjdHguZmlsbCgpO2lmKHN0cm9rZSl7Y3R4LnN0cm9rZVN0eWxlPXN0cm9rZTtjdHgubGluZVdpZHRoPXdpZHRoO2N0eC5zdHJva2UoKX19CmZ1bmN0aW9uIGxpbmUoYXgsYXksYngsYnksY29sb3Isd2lkdGg9MSl7Y3R4LmJlZ2luUGF0aCgpO2N0eC5tb3ZlVG8oYXgsYXkpO2N0eC5saW5lVG8oYngsYnkpO2N0eC5zdHJva2VTdHlsZT1jb2xvcjtjdHgubGluZVdpZHRoPXdpZHRoO2N0eC5zdHJva2UoKX0KZnVuY3Rpb24gc3RhcmZpZWxkKG1zKXtjb25zdCBkcmlmdD1tcyouMDAwMDI0O2ZvcihsZXQgaT0wO2k8NDU7aSsrKXtsZXQgYW5nbGU9aSoyLjM5OSxkaXN0PSgoaSo2Ny4zICsgbXMqLjA0NSooaSU1KzEpKSVNYXRoLm1heChXLEgpKSouODI7bGV0IHg9VyouNStNYXRoLmNvcyhhbmdsZSkqZGlzdCx5PUgqLjUyK01hdGguc2luKGFuZ2xlKSpkaXN0Ki43NTtsZXQgYT0uMDcrLjI1KigoaSU5KSsxKS8xMDtjdHguZmlsbFN0eWxlPWByZ2JhKDE3OCwyMzUsMjU1LCR7YX0pYDtjdHguZmlsbFJlY3QoeCx5LGklMjM9PT0wPzEuNzoxLGklMjM9PT0wPzEuNzoxKX19CmZ1bmN0aW9uIGxpZ2h0TmV0d29yayhtcyxpbnRlbnNpdHkpewogY3R4LnNhdmUoKTtjdHguZ2xvYmFsQ29tcG9zaXRlT3BlcmF0aW9uPSdzY3JlZW4nO2xldCBkPU1hdGgubWluKFcsSCksdHQ9bXMqLjAwMDM0OwogLy8gTW92aW5nIGRlcHRoIGZpZWxkLCBub3Qgc2xpZGluZyBiYXJzLgogZm9yKGxldCBpPTA7aTwxOTtpKyspewogICBsZXQgYT1pKjIuMzk5OTYrdHQqLjA1LHN0YWdlPSgoaSoxOS43K21zKi4wNSooMStpJTYpKSUoZCoxLjYpKS8oZCoxLjYpOwogICBsZXQgcj0oLjA1K3N0YWdlKjEuMikqZCxycj0oLjA0K01hdGgubWF4KDAsc3RhZ2UtLjA0KSoxLjMyKSpkOwogICBsZXQgeD1XKi41K01hdGguY29zKGEpKnIseT1IKi41MStNYXRoLnNpbihhKSpyKi42NTsKICAgbGV0IHgyPVcqLjUrTWF0aC5jb3MoYSkqcnIseTI9SCouNTErTWF0aC5zaW4oYSkqcnIqLjY1OwogICBsaW5lKHgseSx4Mix5MiwncmdiYSgxMjQsMjMxLDI1NSwnKyguMDM1Ky4xMSpzdGFnZSppbnRlbnNpdHkpKycpJywxKyhpJTk9PT0wPzEuNjowKSk7CiB9CiBmb3IobGV0IGk9MDtpPDEzO2krKyl7CiAgbGV0IGE9dHQqLjc1K2kqLjQ4MzMscnI9ZCooLjE3KyhpJTYpKi4wNjYpOwogIGxldCB4PVcqLjUrTWF0aC5jb3MoYSkqcnIseT1IKi41NCtNYXRoLnNpbihhKSpyciouNTsKICBsZXQgeDI9eCtNYXRoLmNvcyhhKzEuMDUpKmQqLjA2LHkyPXkrTWF0aC5zaW4oYSsuNSkqZCouMTE7CiAgbGluZSh4LHkseDIseTIsJ3JnYmEoOTEsMjE2LDI1NSwnKyguMDUrLjA1KmludGVuc2l0eSkrJyknLDEuMik7CiB9CiBjdHgucmVzdG9yZSgpOwp9CmZ1bmN0aW9uIGNpdHlCdWlsZGluZ3MoKXtjb25zdCBnPSQoJ2J1aWxkaW5nc1N2ZycpLHI9W107Zm9yKGxldCBpPTA7aTwxNTY7aSsrKXtsZXQgeD1pKjguNCxkZXB0aD0xMCsoTWF0aC5zaW4oaSoxNy40KSsxKSoxODtsZXQgaD0yNSsoTWF0aC5zaW4oaSoyLjU0KSsxKSoyNSsoKGkqNDcpJTcpKjEyO2xldCB5PTMwNSsoaSU0KSoxMTtsZXQgY29sb3I9aSU0PT09MD8nIzE5MzM0Yic6aSU0PT09MT8nIzExMmM0MSc6JyMwYjI1M2EnO3IucHVzaChgPHJlY3QgeD0iJHt4fSIgeT0iJHt5LWh9IiB3aWR0aD0iJHtkZXB0aH0iIGhlaWdodD0iJHtofSIgZmlsbD0iJHtjb2xvcn0iLz5gKTtmb3IobGV0IGY9MDtmPE1hdGguZmxvb3IoaC85KTtmKyspZm9yKGxldCBqPTA7ajxNYXRoLmZsb29yKGRlcHRoLzgpO2orKylpZigoaStmK2opJTMhPT0wKXIucHVzaChgPHJlY3QgeD0iJHt4KzMraio3fSIgeT0iJHt5LWgrNitmKjl9IiB3aWR0aD0iMi4xIiBoZWlnaHQ9IjIuMSIgZmlsbD0iJHsoaStmK2opJTU\/JyNkOGE5NzgnOicjOGVkY2RiJ30iIG9wYWNpdHk9IiR7LjI1Ky41KigoaStmKSU1KS81fSIvPmApfWcuaW5uZXJIVE1MPXIuam9pbignJyl9O2NpdHlCdWlsZGluZ3MoKTsKCmNvbnN0IHRpbWVTdHI9dj0+U3RyaW5nKE1hdGguZmxvb3Iodi82MCkpLnBhZFN0YXJ0KDIsJzAnKSsnOicrU3RyaW5nKE1hdGguZmxvb3IodiU2MCkpLnBhZFN0YXJ0KDIsJzAnKTsKCmNvbnN0IFNPTE89eyJSRU5BQ0VSIjogeyJuYW1lIjogIjAxIMK3IE7DmkNMRU8gUkVOQUNFUiIsICJ0b3RhbCI6IDgsICJzdGVwcyI6IFt7Im51bSI6ICJQSVNPIDEiLCAibmFtZSI6ICJCSUVORVNUQVIiLCAidGl0bGUiOiAiUElTTyAxIMK3IEJJRU5FU1RBUiIsICJtZWFuaW5nIjogIkF0ZW5jacOzbiB5IGFjb21wYcOxYW1pZW50byBwYXJhIHJlY3VwZXJhciBlc3RhYmlsaWRhZC4iLCAiZXhhbXBsZXMiOiAiT3JpZW50YWNpw7NuIHNvY2lhbCDCtyBhbGltZW50YWNpw7NuIMK3IGFwb3lvIHByb2Zlc2lvbmFsIiwgIm91dGNvbWUiOiAiIiwgImNvbG9yIjogIiNjM2E4ZmYifSwgeyJudW0iOiAiUElTTyAyIiwgIm5hbWUiOiAiRURVQ0FDScOTTiIsICJ0aXRsZSI6ICJQSVNPIDIgwrcgRk9STUFDScOTTiIsICJtZWFuaW5nIjogIkF1bGFzIHkgdGFsbGVyZXMgcGFyYSBkZXNhcnJvbGxhciBoYWJpbGlkYWRlcyBsYWJvcmFsZXMuIiwgImV4YW1wbGVzIjogIkxlY3RvZXNjcml0dXJhIMK3IGluZ2zDqXMgwrcgb2ZpY2lvcyIsICJvdXRjb21lIjogIiIsICJjb2xvciI6ICIjN2RkY2ZmIn0sIHsibnVtIjogIlBJU08gMyIsICJuYW1lIjogIkVNUExFTyIsICJ0aXRsZSI6ICJQSVNPIDMgwrcgRU1QTEVPIiwgIm1lYW5pbmciOiAiRXNwYWNpb3MgcHJvZHVjdGl2b3MgcGFyYSBnZW5lcmFyIGluZ3Jlc29zIHkgYXV0b25vbcOtYS4iLCAiZXhhbXBsZXMiOiAiQWRtaW5pc3RyYWNpw7NuIMK3IG1hbnRlbmltaWVudG8gwrcgc2VydmljaW9zIiwgIm91dGNvbWUiOiAiIiwgImNvbG9yIjogIiNmZmM0NzgifSwgeyJudW0iOiAiUElTT1MgNCsiLCAibmFtZSI6ICJWSVZJRU5EQSIsICJ0aXRsZSI6ICJQSVNPUyA0KyDCtyBWSVZJRU5EQSIsICJtZWFuaW5nIjogIkFwYXJ0YW1lbnRvcyBjb24gYWNvbXBhw7FhbWllbnRvIGR1cmFudGUgZWwgcHJvY2VzbyBkZSByZWN1cGVyYWNpw7NuLiIsICJleGFtcGxlcyI6ICJQcml2YWNpZGFkIMK3IGVzdGFiaWxpZGFkIMK3IGNvbXVuaWRhZCIsICJvdXRjb21lIjogIiIsICJjb2xvciI6ICIjOTZlY2QwIn1dfSwgIklNUFVMU08iOiB7Im5hbWUiOiAiMDIgwrcgQ0FNUFVTIElNUFVMU08iLCAidG90YWwiOiAxMCwgInN0ZXBzIjogW3sibnVtIjogIlBJU08gMSIsICJuYW1lIjogIlNFUlZJQ0lPUyIsICJ0aXRsZSI6ICJQSVNPIDEgwrcgU0VSVklDSU9TIiwgIm1lYW5pbmciOiAiQXBveW8gY290aWRpYW5vIHBhcmEgZmFtaWxpYXMgcXVlIGVzdHVkaWFuIHkgdHJhYmFqYW4uIiwgImV4YW1wbGVzIjogIkd1YXJkZXLDrWEgwrcgY2FmZXRlcsOtYSDCtyBvcmllbnRhY2nDs24iLCAib3V0Y29tZSI6ICIiLCAiY29sb3IiOiAiI2MzYThmZiJ9LCB7Im51bSI6ICJQSVNPIDIiLCAibmFtZSI6ICJFRFVDQUNJw5NOIiwgInRpdGxlIjogIlBJU08gMiDCtyBGT1JNQUNJw5NOIiwgIm1lYW5pbmciOiAiQ2FwYWNpdGFjacOzbiB2aW5jdWxhZGEgYSBsYXMgbmVjZXNpZGFkZXMgZGUgbGFzIGVtcHJlc2FzLiIsICJleGFtcGxlcyI6ICJJbmdsw6lzIMK3IHRlY25vbG9nw61hIMK3IGVsZWN0cmljaWRhZCDCtyBjb25mZWNjacOzbiIsICJvdXRjb21lIjogIiIsICJjb2xvciI6ICIjN2RkY2ZmIn0sIHsibnVtIjogIlBJU08gMyIsICJuYW1lIjogIkVNUExFTyIsICJ0aXRsZSI6ICJQSVNPIDMgwrcgRU1QTEVPIiwgIm1lYW5pbmciOiAiRW1wcmVzYXMsIG9maWNpbmFzIHkgdGFsbGVyZXMgY29uIG9wb3J0dW5pZGFkZXMgZGUgdHJhYmFqbyByZW11bmVyYWRvLiIsICJleGFtcGxlcyI6ICJDYWxsIGNlbnRlcnMgwrcgc29wb3J0ZSBkaWdpdGFsIMK3IHByb2R1Y2Npw7NuIiwgIm91dGNvbWUiOiAiIiwgImNvbG9yIjogIiNmZmM0NzgifSwgeyJudW0iOiAiUElTT1MgNCsiLCAibmFtZSI6ICJBUlJJRU5ETyIsICJ0aXRsZSI6ICJQSVNPUyA0KyDCtyBBUlJJRU5ETyIsICJtZWFuaW5nIjogIkVsIDUwJSBkZWwgYXJyaWVuZG8gYWN1bXVsYWRvIHNlIHJlY29ub2NlIHBhcmEgbGEgY3VvdGEgaW5pY2lhbCBlbiBBc2NlbmRlci4iLCAiZXhhbXBsZXMiOiAiVml2aWVuZGEgZGUgdHJhbnNpY2nDs24g4oaSIGFjY2VzbyBhIHByb3BpZWRhZCIsICJvdXRjb21lIjogIiIsICJjb2xvciI6ICIjOTZlY2QwIn1dfSwgIkFTQ0VOREVSIjogeyJuYW1lIjogIjAzIMK3IENJVURBREVMQSBBU0NFTkRFUiIsICJ0b3RhbCI6IDksICJzdGVwcyI6IFt7Im51bSI6ICJQSVNPIDEiLCAibmFtZSI6ICJDT01VTklEQUQiLCAidGl0bGUiOiAiUElTTyAxIMK3IENPTVVOSURBRCIsICJtZWFuaW5nIjogIkNvbWVyY2lvIHkgc2VydmljaW9zIHBhcmEgbGEgdmlkYSBkZWwgYmFycmlvLiIsICJleGFtcGxlcyI6ICJMb2NhbGVzIMK3IGNhZmV0ZXLDrWFzIMK3IGVzcGFjaW9zIGRlIGVuY3VlbnRybyIsICJvdXRjb21lIjogIiIsICJjb2xvciI6ICIjYzNhOGZmIn0sIHsibnVtIjogIlBJU08gMiIsICJuYW1lIjogIkVEVUNBQ0nDk04iLCAidGl0bGUiOiAiUElTTyAyIMK3IEVEVUNBQ0nDk04iLCAibWVhbmluZyI6ICJGb3JtYWNpw7NuIGNvbnRpbnVhIHBhcmEgYW1wbGlhciBvcG9ydHVuaWRhZGVzLiIsICJleGFtcGxlcyI6ICJJZGlvbWFzIMK3IG1lbnRvcsOtYXMgwrcgZGVzYXJyb2xsbyBwcm9mZXNpb25hbCIsICJvdXRjb21lIjogIiIsICJjb2xvciI6ICIjN2RkY2ZmIn0sIHsibnVtIjogIlBJU08gMyIsICJuYW1lIjogIkVNUFJFTkRFUiIsICJ0aXRsZSI6ICJQSVNPIDMgwrcgRU1QUkVORElNSUVOVE8iLCAibWVhbmluZyI6ICJFc3BhY2lvcyBwYXJhIHRyYWJhamFyIHkgZGVzYXJyb2xsYXIgbmVnb2Npb3MuIiwgImV4YW1wbGVzIjogIk9maWNpbmFzIMK3IGNvd29ya2luZyDCtyBpbmN1YmFjacOzbiBlbXByZXNhcmlhbCIsICJvdXRjb21lIjogIiIsICJjb2xvciI6ICIjZmZjNDc4In0sIHsibnVtIjogIlBJU09TIDQrIiwgIm5hbWUiOiAiUFJPUElFREFEIiwgInRpdGxlIjogIlBJU09TIDQrIMK3IFBST1BJRURBRCIsICJtZWFuaW5nIjogIkFwYXJ0YW1lbnRvcyBwcm9waW9zIGNvbiBlbCBhYm9ubyBhY3VtdWxhZG8gYXBsaWNhZG8gYSBsYSBjdW90YSBpbmljaWFsLiIsICJleGFtcGxlcyI6ICJTYWxkbyBkZSBjb21wcmE6IHBhZ28gbyBmaW5hbmNpYWNpw7NuIGluZGVwZW5kaWVudGUiLCAib3V0Y29tZSI6ICIiLCAiY29sb3IiOiAiIzk2ZWNkMCJ9XX19OwpmdW5jdGlvbiBzb2xvU3RhZ2UocSl7cmV0dXJuIHE8LjIwPzA6cTwuNDM\/MTpxPC42MT8yOjN9CmZ1bmN0aW9uIHNvbG9CdWlsZChtcyxwLG1vZGUsbGF5b3V0PW51bGwpewogY29uc3QgZD1TT0xPW21vZGVdLHE9Y2xhbXAocCwwLDEpLGFjdGl2ZT1sYXlvdXQ\/bGF5b3V0Lmdyb3Vwc1tzb2xvU3RhZ2UocSldOnNvbG9TdGFnZShxKSxtb2JpbGU9Vzw2NTA7CiAvLyBBbmltYXRlZCBvbmUtYnVpbGRpbmcgYXJjaGl0ZWN0dXJhbCBzdHVkeSwgY2FsaWJyYXRlZCBmb3IgYWN0dWFsIG1vYmlsZSB3aWR0aC4KIGNvbnN0IFM9TWF0aC5taW4oVyoobW9iaWxlPy4wMzM6LjA0NiksSCoobW9iaWxlPy4wNDU6LjA1MykpOwogY29uc3QgT1g9VyoobW9iaWxlPy41MDouNDMpLE9ZPUgqKG1vYmlsZT8uODg6Ljg5KTsKIGNvbnN0IGFuZ2xlPS0uMjcrLjAxMSpNYXRoLnNpbihtcyouMDAwMTkpOwogY29uc3QgUD0oeCx5LHopPT5pc28oeCx5LHosT1gsT1ksUyxhbmdsZSk7CiBjb25zdCBmbG9vcnM9bGF5b3V0P2xheW91dC5mbG9vcnM6ZC50b3RhbCx1bml0PTEuMTIsdmVydGljYWw9bW9iaWxlPzEuOTU6MS4wOwogY29uc3QgQkxVRT1bMTA4LDIxOCwyNTVdLEdPTEQ9WzI1NSwyMDIsMTA0XSxHUkVFTj1bMTE1LDIzOCwxOTZdLFZJT0xFVD1bMTg4LDE1NiwyMzFdOwogY29uc3QgcGFsZXR0ZT1bVklPTEVULEJMVUUsR09MRCxHUkVFTl07CiBjb25zdCByZ2JhPShjLGFsKT0+J3JnYmEoJytjLmpvaW4oJywnKSsnLCcrYWwrJyknOwogY29uc3QgbWl4PShjLG0pPT4ncmdiYSgnK01hdGgucm91bmQoY1swXSptKSsnLCcrTWF0aC5yb3VuZChjWzFdKm0pKycsJytNYXRoLnJvdW5kKGNbMl0qbSkrJywuOTUpJzsKIGNvbnN0IGdyb3VuZD1bUCgtMTMsMCwtOCksUCgxMywwLC04KSxQKDEzLDAsOCksUCgtMTMsMCw4KV07CiBwb2x5KGdyb3VuZCwncmdiYSg1LDM2LDQ1LC44OSknLCdyZ2JhKDg4LDIzMCwyMTUsLjU1KScsMik7CiAvLyBMb3ctaW1wYWN0IHB1YmxpYyByZWFsbTogZGlzdGluY3QgcGF0aHMsIHBsYW50ZXJzIGFuZCBhIGdsb3dpbmcgZW50cmFuY2UgY2Fub3B5LgogZm9yKGxldCBpPS0xMDtpPD0xMDtpKz01KXtsaW5lKC4uLlAoaSwuMDIsLTcpLC4uLlAoaSwuMDIsNyksJ3JnYmEoMTI4LDIxOCwyMjksLjE4KScsLjgpfQogZm9yKGxldCBpPS04O2k8PTg7aSs9NCl7bGluZSguLi5QKC0xMiwuMDIsaSksLi4uUCgxMiwuMDIsaSksJ3JnYmEoMTI4LDIxOCwyMjksLjE0KScsLjgpfQogZm9yKGxldCBpPTA7aTwyMDtpKyspe2xldCB4PS0xMisoaSo3LjElMjQpLHo9LTcrKGkqNS43JTE1KSxwdD1QKHgsLjA0LHopOwogIGN0eC5iZWdpblBhdGgoKTtjdHguYXJjKHB0WzBdLHB0WzFdLE1hdGgubWF4KDEuNSxTKi4wODUpLDAsNi4yODMpO2N0eC5maWxsU3R5bGU9aSUyPycjMjY3ZjY4JzonIzU1YzY5NSc7Y3R4LmZpbGwoKX0KIC8vIEZpcnN0IHRocmVlIGZsb29ycyBidWlsZCBpbmRpdmlkdWFsbHksIHVwcGVyIGhvbWVzIHJpc2UgcmFwaWRseS4KIGxldCBuQ29tcGxldGU7CiBpZihxPC4xOSluQ29tcGxldGU9ZWFzZShxLy4xOSk7CiBlbHNlIGlmKHE8LjQxKW5Db21wbGV0ZT0xK2Vhc2UoKHEtLjE5KS8uMjIpOwogZWxzZSBpZihxPC42MiluQ29tcGxldGU9MitlYXNlKChxLS40MSkvLjIxKTsKIGVsc2UgbkNvbXBsZXRlPTMrKGZsb29ycy0zKSplYXNlKChxLS42MikvLjI2KTsKIG5Db21wbGV0ZT1jbGFtcChuQ29tcGxldGUsMCxmbG9vcnMpOwogLy8gVGhyZWUgaW5kZXBlbmRlbnQgbWFzc2VzLCBub3QgdGhlIHNhbWUgcmVjdGFuZ3VsYXIgdG93ZXIgcmVuYW1lZC4KIGNvbnN0IG1hc3M9ewogIFJFTkFDRVI6e3dpZHRoOjE4LjYsZGVwdGg6Ni4zLHo6LTIuN30sCiAgSU1QVUxTTzp7d2lkdGg6MjIuOCxkZXB0aDo3LjEsejotMi40fSwKICBBU0NFTkRFUjp7d2lkdGg6MjAuNixkZXB0aDo2LjUsejotMi44fQogfVttb2RlXTsKIGZvcihsZXQgbj0wO248Zmxvb3JzO24rKyl7CiAgY29uc3QgYnVpbHQ9Y2xhbXAobkNvbXBsZXRlLW4sMCwxKSxoPWJ1aWx0KnVuaXQqdmVydGljYWw7aWYoaDwuMDA4KWJyZWFrOwogIC8vIFJlbmFjZXI6IGNhc2NhZGluZyBoZWFsaW5nIHRlcnJhY2VzLiBJbXB1bHNvOiBsb25nIGxlYXJuaW5nLXRvLXdvcmsgY2FtcHVzLgogIC8vIEFzY2VuZGVyOiBzZXRiYWNrcy9iYWxjb25pZXMgZXhwcmVzc2luZyBvd25lcnNoaXAgYW5kIGVzdGFibGlzaGVkIGhvbWVzLgogIGNvbnN0IHNldGJhY2s9IG1vZGU9PT0nUkVOQUNFUic\/KG4+Mz8uMjYqKG4tMyk6MCk6CiAgICAgICAgICAgICAgICAgbW9kZT09PSdJTVBVTFNPJz8obj41Py4xMCoobi01KTowKToKICAgICAgICAgICAgICAgICAobj4yPy4yNyoobi0yKTowKTsKICBjb25zdCBmdz1tYXNzLndpZHRoLXNldGJhY2sqMjsKICBjb25zdCBkeD1tb2RlPT09J1JFTkFDRVInPyBNYXRoLnNpbihuKi43KSouMjAgOiBtb2RlPT09J0FTQ0VOREVSJz8oKG4lMikqLjE3KTowOwogIGNvbnN0IHg9LWZ3LzIrZHg7CiAgY29uc3Qgej1tYXNzLnorIChtb2RlPT09J0FTQ0VOREVSJz9NYXRoLm1heCgwLG4tMykqLjE2OjApOwogIGNvbnN0IGRlcHRoPW1hc3MuZGVwdGgtKG1vZGU9PT0nUkVOQUNFUicmJm4+ND8uMTEqKG4tNCk6MCk7CiAgY29uc3QgeT1uKnVuaXQqdmVydGljYWw7CiAgY29uc3QgZmxvb3JHcm91cD1sYXlvdXQ\/bGF5b3V0Lmdyb3Vwc1tuXToobj09PTA\/MDpuPT09MT8xOm49PT0yPzI6Myk7CiAgY29uc3QgYz1wYWxldHRlW2Zsb29yR3JvdXBdOwogIGNvbnN0IGdsb3c9YWN0aXZlPT09Zmxvb3JHcm91cHx8KGFjdGl2ZT09PTMmJm4+PTMpOwogIGNvbnN0IGZyb250PVtQKHgseSx6KSxQKHgrZncseSx6KSxQKHgrZncseStoLHopLFAoeCx5K2gseildOwogIGNvbnN0IHNpZGU9W1AoeCtmdyx5LHopLFAoeCtmdyx5LHorZGVwdGgpLFAoeCtmdyx5K2gseitkZXB0aCksUCh4K2Z3LHkraCx6KV07CiAgY29uc3Qgcm9vZj1bUCh4LHkraCx6KSxQKHgrZncseStoLHopLFAoeCtmdyx5K2gseitkZXB0aCksUCh4LHkraCx6K2RlcHRoKV07CiAgY29uc3QgZGFyaz1bJ3JnYmEoMzcsMjcsNTgsLjk3KScsJ3JnYmEoMTIsNTEsNzUsLjk2KScsJ3JnYmEoNzQsNDcsMjAsLjk2KScsJ3JnYmEoMTIsNTQsNDksLjk2KSddW2Zsb29yR3JvdXBdOwogIHBvbHkoZnJvbnQsZGFyayxyZ2JhKGMsLjc5KSxnbG93PzIuMToxLjEpOwogIHBvbHkoc2lkZSwncmdiYSgxNyw0Miw1MSwuOTYpJyxyZ2JhKGMsLjQzKSwxLjEpOwogIC8vIEV2ZXJ5IHdpbmRvdyBvbiB0aGUgU0FNRSBGTE9PUiB1c2VzIHRoZSBTQU1FIENPTE9SLiBObyBhbHRlcm5hdGUgeWVsbG93L2JsdWUgcGFuZXMuCiAgaWYoaD51bml0KnZlcnRpY2FsKi4zNSl7CiAgIGNvbnN0IHBhbmVzPU1hdGgubWF4KDEyLE1hdGguZmxvb3IoZncqMS4xNSkpOwogICBmb3IobGV0IGo9MDtqPHBhbmVzO2orKyl7CiAgICBjb25zdCBhYT14KyhqKy4xNCkqZncvcGFuZXMsYmI9eCsoaisuODMpKmZ3L3BhbmVzOwogICAgY29uc3QgZz1nbG93Py43ODouNDc7CiAgICBwb2x5KFtQKGFhLHkrLjE4LHotLjAyOCksUChiYix5Ky4xOCx6LS4wMjgpLFAoYmIseStoLS4xNSx6LS4wMjgpLFAoYWEseStoLS4xNSx6LS4wMjgpXSxyZ2JhKGMsZykscmdiYShjLC41NSksLjMyKTsKICAgIGlmKG4+PTMgJiYgaiUzPT09MClsaW5lKC4uLlAoYWEseSsuMTIsei0uMTEpLC4uLlAoYmIseSsuMTIsei0uMTEpLCdyZ2JhKDIzOCwyNTEsMjQ4LC42MiknLDEuNCk7CiAgIH0KICAgLy8gTWF0Y2hpbmcgY29sb3JlZCBnbGF6aW5nIGFsc28gd3JhcHMgdGhlIHZpc2libGUgc2lkZSBmYcOnYWRlLgogICBmb3IobGV0IGo9MDtqPDY7aisrKXsKICAgIGNvbnN0IHphPXorKGorLjE2KSpkZXB0aC82LHpiPXorKGorLjc4KSpkZXB0aC82OwogICAgcG9seShbUCh4K2Z3Ky4wMix5Ky4xOCx6YSksUCh4K2Z3Ky4wMix5Ky4xOCx6YiksUCh4K2Z3Ky4wMix5K2gtLjE1LHpiKSxQKHgrZncrLjAyLHkraC0uMTUsemEpXSxyZ2JhKGMsZ2xvdz8uNjE6LjMwKSxyZ2JhKGMsLjM0KSwuMjIpOwogICB9CiAgfQogIC8vIENsZWFuIHVuaW50ZXJydXB0ZWQgYmFuZCBzaWduYWxzIGV4YWN0bHkgd2hpY2ggc3RvcmV5IGlzIGFjdGl2ZS4KICBsaW5lKC4uLlAoeCx5K2gsei0uMTIpLC4uLlAoeCtmdyx5K2gsei0uMTIpLHJnYmEoYyxnbG93PzE6LjcwKSxnbG93PzQuMzoyLjQpOwogIGlmKG49PT1NYXRoLmNlaWwobkNvbXBsZXRlKS0xKSBwb2x5KHJvb2YsbW9kZT09PSdBU0NFTkRFUic\/J3JnYmEoMzIsODUsNjUsLjkyKSc6J3JnYmEoMTksNjcsNzMsLjkwKScscmdiYShjLC41OCksLjgpOwogIGlmKG4+PTMgJiYgbW9kZSE9PSdJTVBVTFNPJyAmJiBuJTI9PT0wKXsKICAgIGxpbmUoLi4uUCh4K2Z3Ki4xNSx5K2grLjAzNSx6LS4yNiksLi4uUCh4K2Z3Ki44OCx5K2grLjAzNSx6LS4yNiksJ3JnYmEoMTkwLDI1MiwyMjksLjg0KScsMS40KTsKICB9CiB9CiAvLyBQaHlzaWNhbCBpZGVudGl0eSwgbm90IGp1c3QgYSByZWNvbG9yOiBjb25uZWN0ZWQgY291cnR5YXJkcyBhbmQgaW5kZXBlbmRlbnQgd2luZ3MuCiBpZihxPi4yNyAmJiBtb2RlPT09J1JFTkFDRVInKXsKICAgbGV0IHQ9ZWFzZSgocS0uMjcpLy4zMik7CiAgIGNvbnN0IGE9UCgtMTEuNiwuMDgsMyksYj1QKC04LjQsLjA4LDMpLGM9UCgtOC40LC4wOCw3KSxmPVAoLTExLjYsLjA4LDcpOwogICBwb2x5KFthLGIsYyxmXSwncmdiYSgzNSwxMDgsOTAsJysodCouNzcpKycpJywncmdiYSgxMzIsMjQ0LDE5NSwnK3QrJyknLDEuMyk7CiAgIGxpbmUoLi4uUCgtMTEuNSwuMTIsNSksLi4uUCgtNC4zLC4xMiw1KSwncmdiYSgxMDgsMjQwLDIxMywnK3QrJyknLDIpOwogfQogaWYocT4uMzAgJiYgbW9kZT09PSdJTVBVTFNPJyl7CiAgIGxldCB0PWVhc2UoKHEtLjMwKS8uMzApOwogICAvLyBTaWRlIGxlYXJuaW5nIHBhdmlsaW9uLCBsb3dlciB0aGFuIHRoZSBtYWluIGNhbXB1cyBhbmQgY29ubmVjdGVkIGJ5IGEgYnJpZGdlLgogICBjb25zdCBBPVAoLTEyLjEsMCw1LjMpLEI9UCgtNSwwLDUuMyksQz1QKC01LDAsOCksRD1QKC0xMi4xLDAsOCk7CiAgIHBvbHkoW0EsQixDLERdLCdyZ2JhKDEzLDcxLDk3LCcrKHQqLjgpKycpJywncmdiYSgxMDgsMjE4LDI1NSwnK3QrJyknLDEuNSk7CiAgIGxpbmUoLi4uUCgtNSwxLjEsNS4zKSwuLi5QKC0yLjcsMS4xLDIuOSksJ3JnYmEoMTQwLDIzOCwyNTUsJyt0KycpJywyLjQpOwogfQogaWYocT4uMjcgJiYgbW9kZT09PSdBU0NFTkRFUicpewogICBsZXQgdD1lYXNlKChxLS4yNykvLjMwKTsKICAgZm9yKGxldCBpPTA7aTw0O2krKyl7CiAgICAgY29uc3Qgdj1QKC05K2kqNSwuMTUsNi4yKTsKICAgICBjdHguYmVnaW5QYXRoKCk7Y3R4LmFyYyh2WzBdLHZbMV0sTWF0aC5tYXgoMixTKi4xNCksMCw2LjI4Myk7CiAgICAgY3R4LmZpbGxTdHlsZT0ncmdiYSgyNTUsMjA1LDExOSwnKyh0Ki43NSkrJyknO2N0eC5maWxsKCk7CiAgIH0KICAgbGluZSguLi5QKC0xMCwuMSw2LjMpLC4uLlAoMTAsLjEsNi4zKSwncmdiYSgyNTUsMjA2LDEyMCwnK3QrJyknLDIuNyk7CiB9CiAvLyBBcmNoaXRlY3R1cmFsIGVuZXJneSB0cmF2ZWxzIHdpdGggdGhlIGFjdGl2ZWx5IGZvcm1pbmcgdG9wIGZsb29yLCBub3QgZXZlcnl3aGVyZS4KIGlmKHE8LjkyKXsKICAgY29uc3QgYmVhbT1QKDAsbkNvbXBsZXRlKnVuaXQqdmVydGljYWwrLjE4LG1hc3MueisxKTsKICAgY3R4LnNhdmUoKTtjdHguZ2xvYmFsQ29tcG9zaXRlT3BlcmF0aW9uPSdzY3JlZW4nOwogICBjb25zdCBnZD1jdHguY3JlYXRlUmFkaWFsR3JhZGllbnQoYmVhbVswXSxiZWFtWzFdLDAsYmVhbVswXSxiZWFtWzFdLFMqMi43KTsKICAgZ2QuYWRkQ29sb3JTdG9wKDAsJ3JnYmEoMjE2LDI1NSwyNTAsLjUyKScpO2dkLmFkZENvbG9yU3RvcCgxLCdyZ2JhKDYwLDIwMCwyMTgsMCknKTsKICAgY3R4LmZpbGxTdHlsZT1nZDtjdHguZmlsbFJlY3QoYmVhbVswXS1TKjIuNyxiZWFtWzFdLVMqMi43LFMqNS40LFMqNS40KTtjdHgucmVzdG9yZSgpOwogfQp9Cgpjb25zdCBDT01NVU5JVFlfVFlQRVM9WydSRU5BQ0VSJywnSU1QVUxTTycsJ0FTQ0VOREVSJ107CmNvbnN0IERJU1RSSUNUUz1be25hbWU6J0JhcnJpbyBBbnRpb3F1aWEnLGRlc2t0b3A6Wy4zMCwuNjhdLG1vYmlsZTpbLjI1LC42Nl0sbGF5b3V0OntmbG9vcnM6NCxncm91cHM6WzEsMiwzLDNdLHVzZXM6WydFRFVDQUNJw5NOJywnRU1QTEVPJywnVklWSUVOREEnLCdWSVZJRU5EQSddfX0se25hbWU6J0NlbnRybycsZGVza3RvcDpbLjU0LC41Nl0sbW9iaWxlOlsuNTMsLjU1XX0se25hbWU6J01hbnJpcXVlJyxkZXNrdG9wOlsuNzgsLjM2XSxtb2JpbGU6Wy43NSwuMzVdfV07CmNvbnN0IE1BUF9CVUlMRElOR1M9RElTVFJJQ1RTLmZsYXRNYXAoKGRpc3RyaWN0LGRpc3RyaWN0SW5kZXgpPT5DT01NVU5JVFlfVFlQRVMubWFwKCh0eXBlLHR5cGVJbmRleCk9Pih7ZGlzdHJpY3Q6ZGlzdHJpY3QubmFtZSxkaXN0cmljdEluZGV4LHR5cGUsdHlwZUluZGV4LGxheW91dDpkaXN0cmljdC5sYXlvdXR8fG51bGx9KSkpOwpmdW5jdGlvbiBkcmF3Q29tbXVuaXRpZXMobXMscCxtb2RlKXsKIGNvbnN0IG1vYmlsZT1XPDY1MCxvcmlnaW49W1cqKG1vYmlsZT8uNTA6LjQzKSxIKihtb2JpbGU\/Ljg4Oi44OSldOwogZnVuY3Rpb24gZHJhdyh4LHksc2NhbGUsdHlwZSxwcm9ncmVzcyxsYXlvdXQ9bnVsbCl7Y3R4LnNhdmUoKTtjdHgudHJhbnNsYXRlKHgseSk7Y3R4LnNjYWxlKHNjYWxlLHNjYWxlKTtjdHgudHJhbnNsYXRlKC1vcmlnaW5bMF0sLW9yaWdpblsxXSk7c29sb0J1aWxkKG1zLHByb2dyZXNzLHR5cGUsbGF5b3V0KTtjdHgucmVzdG9yZSgpO30KIGlmKG1vZGU9PT0nTUFQQScpewogIGNvbnN0IHNwcmVhZD1tb2JpbGU\/VyouMDg0Ok1hdGgubWluKFcqLjA2OCwxMDUpLHNjYWxlPW1vYmlsZT8uMTA1Oi4wOTU7CiAgRElTVFJJQ1RTLmZvckVhY2goKGRpc3RyaWN0LGkpPT57Y29uc3QgcHQ9bW9iaWxlP2Rpc3RyaWN0Lm1vYmlsZTpkaXN0cmljdC5kZXNrdG9wLHg9cHRbMF0qVyx5PXB0WzFdKkg7CiAgIGN0eC5zYXZlKCk7Y3R4LnN0cm9rZVN0eWxlPSdyZ2JhKDEzNywyNDUsMjM0LC41KSc7Y3R4LmZpbGxTdHlsZT0ncmdiYSgyLDI0LDQwLC42NSknO2N0eC5saW5lV2lkdGg9MTsKICAgY3R4LmJlZ2luUGF0aCgpO2N0eC5lbGxpcHNlKHgseSxzcHJlYWQqMS44NSxzcHJlYWQqLjQwLDAsMCxNYXRoLlBJKjIpO2N0eC5maWxsKCk7Y3R4LnN0cm9rZSgpO2N0eC5yZXN0b3JlKCk7CiAgfSk7CiAgTUFQX0JVSUxESU5HUy5mb3JFYWNoKGl0ZW09Pntjb25zdCBkaXN0cmljdD1ESVNUUklDVFNbaXRlbS5kaXN0cmljdEluZGV4XSxwdD1tb2JpbGU\/ZGlzdHJpY3QubW9iaWxlOmRpc3RyaWN0LmRlc2t0b3A7CiAgIGNvbnN0IHE9Y2xhbXAocCoyLjgtaXRlbS5kaXN0cmljdEluZGV4Ki4yOC1pdGVtLnR5cGVJbmRleCouMTAsMCwxKTsKICAgZHJhdyhwdFswXSpXKyhpdGVtLnR5cGVJbmRleC0xKSpzcHJlYWQscHRbMV0qSCsoaXRlbS50eXBlSW5kZXg9PT0xPy1zcHJlYWQqLjIwOjApLHNjYWxlLGl0ZW0udHlwZSxxLGl0ZW0ubGF5b3V0KTsKICB9KTtyZXR1cm47CiB9CiBbWy4yMiwuNjhdLFsuNTAsLjY4XSxbLjc4LC42OF1dLmZvckVhY2goKHB0LGkpPT57ZHJhdyhwdFswXSpXLHB0WzFdKkgsbW9iaWxlPy4yNDouMjksQ09NTVVOSVRZX1RZUEVTW2ldLG1vZGU9PT0nQ0lFUlJFJz8xOmNsYW1wKHAqMS43LWkqLjEyLDAsMSkpO2N0eC5maWxsU3R5bGU9JyNjN2Y2ZWYnO2N0eC50ZXh0QWxpZ249J2NlbnRlcic7Y3R4LmZvbnQ9J2JvbGQgJysobW9iaWxlPzk6MTMpKydweCBBcmlhbCc7Y3R4LmZpbGxUZXh0KENPTU1VTklUWV9UWVBFU1tpXSxwdFswXSpXLHB0WzFdKkgrMjgpfSk7Cn0KZnVuY3Rpb24gc2NlbmVBdCh2KXtsZXQgbj1zY2VuZXMuZmluZEluZGV4KHg9PnY8eC5lbmQpO3JldHVybiBuPj0wP246c2NlbmVzLmxlbmd0aC0xfQpsZXQgYWN0aXZlUGhvdG89JycscGhvdG9SZWFkeT17fTsKY29uc3QgUExBTkVUX01BUD0naHR0cHM6Ly9jZG4uc2FuaXR5LmlvL2ltYWdlcy9odmQ1bjU0cC9ibG9nLzNhNWFkMDVhNjhiY2UwMjZmNzU0ZDUwMDNhYmU4NWFhYWQwMTg3ZjQtMjE2MHgxMjMyLmpwZz9hdXRvPWZvcm1hdCZmaXQ9Y2xpcCZxPTc1Jnc9MjA0OCc7CmNvbnN0IG1hcEltZz0kKCdwbGFuZXRNZWQnKTttYXBJbWcuc3JjPVBMQU5FVF9NQVA7Cm1hcEltZy5vbmVycm9yPSgpPT57bWFwSW1nLm9uZXJyb3I9bnVsbDttYXBJbWcuc3R5bGUuZGlzcGxheT0nbm9uZSc7JCgnbWFwQ3JlZGl0JykudGV4dENvbnRlbnQ9J1Zpc3RhIGVzcXVlbcOhdGljYSDCtyB1YmljYWNpb25lcyBvcmllbnRhdGl2YXMnO307CgpmdW5jdGlvbiBzZXRQaG90byhrZXkpe2lmKGtleT09PWFjdGl2ZVBob3RvKXJldHVybjthY3RpdmVQaG90bz1rZXl8fCcnO2NvbnN0IG1lbT0kKCdtZW1vcnknKSxwaG90bz0kKCdtZW1vcnlJbWcnKSxibHVyPSQoJ21lbW9yeUdsb3cnKTtpZigha2V5KXttZW0uc3R5bGUub3BhY2l0eT0nMCc7cmV0dXJuO31pZighUEhPVE9TW2tleV0pcmV0dXJuOwogY29uc3QgcmVtb3RlPVBIT1RPU1trZXldO2lmKHBob3RvUmVhZHlba2V5XT09PWZhbHNlKXttZW0uc3R5bGUub3BhY2l0eT0nMCc7cmV0dXJufQogLy8gT25seSBkaXNwbGF5IGFjdHVhbCBsb2FkZWQgaW1hZ2VyeTogdGhlIGJ1aWx0LWluIGNpbmVtYXRpYyBza3lsaW5lIHN0YXlzIHZpc2libGUgb3RoZXJ3aXNlLgogY29uc3QgY2FjaGU9cGhvdG9SZWFkeVtrZXldO2Z1bmN0aW9uIGFwcGx5KGltZyl7aWYoYWN0aXZlUGhvdG8hPT1rZXkpcmV0dXJuO3Bob3RvLnNyYz1yZW1vdGU7Ymx1ci5zdHlsZS5iYWNrZ3JvdW5kSW1hZ2U9J3VybCgiJytyZW1vdGUrJyIpJzttZW0uc3R5bGUub3BhY2l0eT0nLjk3J30KIGlmKGNhY2hlJiZjYWNoZS5jb21wbGV0ZSYmY2FjaGUubmF0dXJhbFdpZHRoKXthcHBseShjYWNoZSk7cmV0dXJufQogY29uc3QgaW09bmV3IEltYWdlKCk7cGhvdG9SZWFkeVtrZXldPWltO2ltLm9ubG9hZD0oKT0+YXBwbHkoaW0pO2ltLm9uZXJyb3I9KCk9PntwaG90b1JlYWR5W2tleV09ZmFsc2U7aWYoYWN0aXZlUGhvdG89PT1rZXkpbWVtLnN0eWxlLm9wYWNpdHk9JzAnfTtpbS5zcmM9cmVtb3RlOwp9CmZ1bmN0aW9uIHRyYWNrRm9yKHYpe3JldHVybiB2PEFVRElPX0VORC5ISVNUT1JJQT8nSElTVE9SSUEnOnY8QVVESU9fRU5ELlBST1BVRVNUQT8nUFJPUFVFU1RBJzonQ0lFUlJFJ30KZnVuY3Rpb24gc3luY1NvdW5kKGZvcmNlPWZhbHNlKXsKIGNvbnN0IHNlY3Rpb249dHJhY2tGb3IodCk7CiBmb3IoY29uc3QgayBvZiBPYmplY3Qua2V5cyh2b2ljZXMpKXsKICBjb25zdCBhPXZvaWNlc1trXSxzaG91bGRQbGF5PWs9PT1zZWN0aW9uJiZzdGFydGVkJiZydW5uaW5nJiZzb3VuZCYmdDxUT1RBTCYmISFBVURJT1trXTsKICBpZighc2hvdWxkUGxheSl7YS5wYXVzZSgpO2NvbnRpbnVlO30KICBjb25zdCBvZmZzZXQ9TWF0aC5tYXgoMCxNYXRoLm1pbih0LUFVRElPX0JFR0lOW2tdLCBNYXRoLm1heCgwLChhLmR1cmF0aW9ufHwxZTYpLS4wNSkpKTsKICBpZihhLnJlYWR5U3RhdGU+PTEmJihmb3JjZXx8YS5wYXVzZWQpJiZNYXRoLmFicyhhLmN1cnJlbnRUaW1lLW9mZnNldCk+LjI1KXt0cnl7YS5jdXJyZW50VGltZT1vZmZzZXR9Y2F0Y2goXyl7fX0KICBpZihhLnBhdXNlZCYmIWEuZW5kZWQmJiFhdWRpb1BlbmRpbmdba10pewogICBhdWRpb1BlbmRpbmdba109dHJ1ZTsKICAgUHJvbWlzZS5yZXNvbHZlKGEucGxheSgpKS50aGVuKCgpPT57YXVkaW9QZW5kaW5nW2tdPWZhbHNlfSkuY2F0Y2goKCk9PnthdWRpb1BlbmRpbmdba109ZmFsc2U7JCgnc291bmQnKS50ZXh0Q29udGVudD0nQUNUSVZBUiBBVURJTyd9KTsKICB9CiB9Cn0KZnVuY3Rpb24gc2Vla1RvKHYpe3Q9Y2xhbXAodiwwLFRPVEFMKTtpZighc3RhcnRlZCl7c3RhcnRlZD10cnVlOyQoJ2hlcm8nKS5jbGFzc0xpc3QuYWRkKCdvZmYnKX0KIGlmKHQ8RklSU1RfUVVFU1RJT05fRU5ELS4yMHx8dD5GSVJTVF9RVUVTVElPTl9FTkQrLjE1KWhvbGRSZWFjaGVkPWZhbHNlOwogZWxzZSBpZih0Pj1GSVJTVF9RVUVTVElPTl9FTkQtLjEwJiZ0PD1GSVJTVF9RVUVTVElPTl9FTkQrLjE1KXtob2xkUmVhY2hlZD10cnVlO3J1bm5pbmc9ZmFsc2U7dD1GSVJTVF9RVUVTVElPTl9FTkQ7fQogaWYoIWhvbGRSZWFjaGVkKSQoJ2hvbGQnKS5jbGFzc0xpc3QucmVtb3ZlKCdzaG93Jyk7CiBpZih0PFRPVEFMKSQoJ2ZpbmlzaCcpLmNsYXNzTGlzdC5yZW1vdmUoJ3Nob3cnKTsKIGZvcihjb25zdCBrIG9mIE9iamVjdC5rZXlzKHZvaWNlcykpewogIGNvbnN0IGE9dm9pY2VzW2tdO2EucGF1c2UoKTsKICBpZihrPT09dHJhY2tGb3IodCkmJmEucmVhZHlTdGF0ZT49MSl7dHJ5e2EuY3VycmVudFRpbWU9dC1BVURJT19CRUdJTltrXX1jYXRjaChfKXt9fQogfQogdXBkYXRlKCk7c3luY1NvdW5kKHRydWUpOwp9CmZ1bmN0aW9uIHNldFJ1bm5pbmcodmFsdWUpe2lmKHZhbHVlKXJlbnRNYW51YWw9bnVsbDtydW5uaW5nPXZhbHVlOyQoJ3BhdXNlJykudGV4dENvbnRlbnQ9cnVubmluZz8nUEFVU0FSJzonQ09OVElOVUFSJztpZighcnVubmluZylPYmplY3QudmFsdWVzKHZvaWNlcykuZm9yRWFjaChhPT5hLnBhdXNlKCkpO2Vsc2Ugc3luY1NvdW5kKHRydWUpfQpsZXQgcmVudE1hbnVhbD1udWxsOwpjb25zdCBtb25leT12PT4nJCcrbmV3IEludGwuTnVtYmVyRm9ybWF0KCdlcy1DTycse21heGltdW1GcmFjdGlvbkRpZ2l0czowfSkuZm9ybWF0KHYpOwpmdW5jdGlvbiByZW50RXhhbXBsZShtb250aHMpe2NvbnN0IHBhaWQ9bW9udGhzKjEwMDAwMDAsY3JlZGl0PXBhaWQqLjU7cmV0dXJuIHtwYWlkLGNyZWRpdCxyZWFkeTpjcmVkaXQ+PTMwMDAwMDAwfTt9CmZ1bmN0aW9uIHJlbmRlclJlbnQobW9udGhzKXtjb25zdCByZXN1bHQ9cmVudEV4YW1wbGUobW9udGhzKTskKCdyZW50VG90YWwnKS50ZXh0Q29udGVudD1tb25leShyZXN1bHQucGFpZCk7JCgnY3JlZGl0VG90YWwnKS50ZXh0Q29udGVudD1tb25leShyZXN1bHQuY3JlZGl0KTskKCdyZW50TW9udGhMYWJlbCcpLnRleHRDb250ZW50PW1vbnRocysnIC8gNjAgbWVzZXMnOyQoJ3JlbnRNb250aHMnKS52YWx1ZT1tb250aHM7JCgncmVudFRyYWNrJykuc3R5bGUud2lkdGg9KG1vbnRocy82MCoxMDApKyclJzskKCdjcmVkaXRUcmFjaycpLnN0eWxlLndpZHRoPShtb250aHMvNjAqMTAwKSsnJSc7JCgnY3JlZGl0U3RhdHVzJykudGV4dENvbnRlbnQ9cmVzdWx0LnJlYWR5PydNRVRBIEFMQ0FOWkFEQSDCtyBBUExJQ0FCTEUgQSBDVU9UQSBJTklDSUFMLic6J0ZhbHRhbiAnK21vbmV5KDMwMDAwMDAwLXJlc3VsdC5jcmVkaXQpKycgQ09QIHBhcmEgbGEgbWV0YS4nOyQoJ2Z1bmRpbmdEaWFncmFtJykuY2xhc3NMaXN0LnRvZ2dsZSgncmVhZHknLHJlc3VsdC5yZWFkeSk7fQokKCdyZW50TW9udGhzJykuYWRkRXZlbnRMaXN0ZW5lcignaW5wdXQnLGU9PntyZW50TWFudWFsPU51bWJlcihlLnRhcmdldC52YWx1ZSk7c2V0UnVubmluZyhmYWxzZSk7cmVuZGVyUmVudChyZW50TWFudWFsKX0pOwpmdW5jdGlvbiB1cGRhdGUoKXtsZXQgaWR4PXNjZW5lQXQoTWF0aC5taW4oVE9UQUwtLjAwMDEsdCkpLHM9c2NlbmVzW2lkeF0scD1jbGFtcCgodC1zLnN0YXJ0KS8ocy5lbmQtcy5zdGFydCksMCwxKTtpZihjdXJyZW50IT09aWR4KXtjdXJyZW50PWlkeDskKCdleWVicm93JykudGV4dENvbnRlbnQ9U3RyaW5nKGlkeCsxKS5wYWRTdGFydCgyLCcwJykrJyAvICcrcy5leTskKCdoZWFkaW5nJykudGV4dENvbnRlbnQ9cy5oZWFkOyQoJ3N1YicpLnRleHRDb250ZW50PXMuc3ViOyAkKCdzdWInKS5zdHlsZS5kaXNwbGF5PXMuc3ViPydibG9jayc6J25vbmUnOyQoJ2ZsYWcnKS50ZXh0Q29udGVudD1zLmZsYWc7c2V0UGhvdG8ocy5waG90byl9CiAkKCdjbG9jaycpLnRleHRDb250ZW50PXRpbWVTdHIodCkrJyAvICcrdGltZVN0cihUT1RBTCk7JCgnc2VlaycpLnZhbHVlPXQ7CiBsZXQgY2FwdGlvbnM9c3RhcnRlZCYmICFob2xkUmVhY2hlZCAmJiB0PFRPVEFMOyAkKCdjYXB0aW9uJykuc3R5bGUub3BhY2l0eT1jYXB0aW9ucz9TdHJpbmcoZWFzZShjbGFtcChwKjQsMCwxKSkpOicwJzsKICQoJ21hcExheWVyJykuY2xhc3NMaXN0LnRvZ2dsZSgnb24nLHMuaz09PSdNQVBBJyk7JCgnbWFwTWFya2VycycpLmNsYXNzTGlzdC50b2dnbGUoJ29uJyxzLms9PT0nTUFQQScpOyQoJ21hcENyZWRpdCcpLmNsYXNzTGlzdC50b2dnbGUoJ29uJyxzLms9PT0nTUFQQScpOwogJCgnZnVuZGluZ0RpYWdyYW0nKS5jbGFzc0xpc3QudG9nZ2xlKCdvbicscy5rPT09J0FIT1JSTycpOyQoJ2NhcHRpb24nKS5jbGFzc0xpc3QudG9nZ2xlKCdyZW50Q2FwdGlvbicscy5rPT09J0FIT1JSTycpO2lmKHMuaz09PSdBSE9SUk8nKXJlbmRlclJlbnQocmVudE1hbnVhbD09PW51bGw\/TWF0aC5yb3VuZChjbGFtcChwLy44MCwwLDEpKjYwKTpyZW50TWFudWFsKTsKICQoJ2VhcnRoJykuc3R5bGUub3BhY2l0eT1zdGFydGVkJiZpZHg9PT0wP1N0cmluZyhlYXNlKCh0Ky4xKSoxLjQpKigxLWVhc2UoKHQtMTIpLzEuNCkpKTonMCc7JCgnZWFydGgnKS5zdHlsZS50cmFuc2Zvcm09J3RyYW5zbGF0ZSgtNTAlLC01MCUpIHNjYWxlKCcrKC42NSsuNDUqTWF0aC5taW4odCwxMikvMTIpLnRvRml4ZWQoMykrJyknOwogJCgnbGlnaHRSaW5nJykuc3R5bGUub3BhY2l0eT1zdGFydGVkJiZpZHg9PT0wPycuOCc6JzAnOwogJCgnY2l0eScpLnN0eWxlLm9wYWNpdHk9cy5rPT09J0NJVFknPycxJzonMCc7JCgnY2l0eScpLnN0eWxlLmZpbHRlcj0naHVlLXJvdGF0ZSgnKyhpZHgqOSkrJ2RlZyknOwogaWYoIXMucGhvdG8pJCgnbWVtb3J5Jykuc3R5bGUub3BhY2l0eT0nMCc7ZWxzZSBpZihwaG90b1JlYWR5W3MucGhvdG9dJiZwaG90b1JlYWR5W3MucGhvdG9dLmNvbXBsZXRlJiZwaG90b1JlYWR5W3MucGhvdG9dLm5hdHVyYWxXaWR0aCkkKCdtZW1vcnknKS5zdHlsZS5vcGFjaXR5PScuOTcnOwoKIGNvbnN0IHNvbG89U09MT1tzLmtdOyQoJ2NhcHRpb24nKS5jbGFzc0xpc3QudG9nZ2xlKCdhcmNoQ2FwdGlvbicsISFzb2xvKTskKCdmbG9vclBhbmVsJykuY2xhc3NMaXN0LnRvZ2dsZSgnc2hvdycsISFzb2xvKTsKIGlmKHNvbG8pe2NvbnN0IHBhbmVsPSQoJ2Zsb29yUGFuZWwnKTtpZihwYW5lbC5kYXRhc2V0Lm1vZGUhPT1zLmspe3BhbmVsLmRhdGFzZXQubW9kZT1zLms7JCgnZmxvb3JOYW1lJykudGV4dENvbnRlbnQ9c29sby5uYW1lO2NvbnN0IGxpc3Q9JCgnZmxvb3JMaXN0Jyk7bGlzdC5yZXBsYWNlQ2hpbGRyZW4oKTtmb3IoY29uc3QgZmxvb3Igb2Ygc29sby5zdGVwcyl7Y29uc3QgZWw9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYnV0dG9uJyk7ZWwudHlwZT0nYnV0dG9uJztlbC5jbGFzc05hbWU9J2Zsb29yU3RlcCc7ZWwuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCgpPT57Y29uc3QgaT1zb2xvLnN0ZXBzLmluZGV4T2YoZmxvb3IpO3NlZWtUbyhzLnN0YXJ0KyhzLmVuZC1zLnN0YXJ0KSpbLjEwLC4zMiwuNTIsLjg4XVtpXSk7c2V0UnVubmluZyhmYWxzZSl9KTtlbC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1mYycsZmxvb3IuY29sb3IpO2xldCBhPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3N0cm9uZycpO2EudGV4dENvbnRlbnQ9Zmxvb3IubnVtO2xldCBiPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKTtiLnRleHRDb250ZW50PWZsb29yLm5hbWU7ZWwuYXBwZW5kKGEsYik7bGlzdC5hcHBlbmRDaGlsZChlbCk7fX0KIGxldCBhY3RpdmU9c29sb1N0YWdlKHApLGY9c29sby5zdGVwc1thY3RpdmVdO0FycmF5LmZyb20oJCgnZmxvb3JMaXN0JykuY2hpbGRyZW4pLmZvckVhY2goKGVsLGkpPT57ZWwuY2xhc3NMaXN0LnRvZ2dsZSgnYWN0aXZlJyxpPT09YWN0aXZlKTtlbC5jbGFzc0xpc3QudG9nZ2xlKCdwYXNzZWQnLGk8YWN0aXZlKTtlbC5zZXRBdHRyaWJ1dGUoJ2FyaWEtcHJlc3NlZCcsU3RyaW5nKGk9PT1hY3RpdmUpKX0pO3BhbmVsLnN0eWxlLnNldFByb3BlcnR5KCctLWZsb29yLWFjdGl2ZScsZi5jb2xvcik7JCgnZmxvb3JBY3RpdmVOYW1lJykudGV4dENvbnRlbnQ9Zi50aXRsZTskKCdmbG9vck1lYW5pbmcnKS50ZXh0Q29udGVudD1mLm1lYW5pbmc7JCgnZmxvb3JFeGFtcGxlVGV4dCcpLnRleHRDb250ZW50PWYuZXhhbXBsZXM7fQoKICQoJ25vdGUnKS5zdHlsZS5kaXNwbGF5PVsnTUFQQScsJ01BU1RFUicsJ1JFTkFDRVInLCdJTVBVTFNPJywnQVNDRU5ERVInLCdBSE9SUk8nXS5pbmNsdWRlcyhzLmspPydibG9jayc6J25vbmUnOwogJCgnaG9sZCcpLmNsYXNzTGlzdC50b2dnbGUoJ3Nob3cnLGhvbGRSZWFjaGVkJiZ0Pj1GSVJTVF9RVUVTVElPTl9FTkQmJnQ8VE9UQUwpOwogJCgnZmluaXNoJykuY2xhc3NMaXN0LnRvZ2dsZSgnc2hvdycsc3RhcnRlZCYmdD49VE9UQUwpOwp9CmZ1bmN0aW9uIHRyYW5zaXRpb25Td2VlcChwKXsKIC8vIEVhY2ggbmV3IHNjZW5lIGFwcGVhcnMgdGhyb3VnaCBhIGZhc3QgcGVyc3BlY3RpdmUganVtcDogcmluZ3MgYWNjZWxlcmF0ZSBvdXR3YXJkCiAvLyBhbmQgY29udmVyZ2UgaW50byBhcmNoaXRlY3R1cmFsIGdyaWQgbGluZXMgYXMgdGhlIGluY29taW5nIHNjZW5lIHJlc29sdmVzLgogbGV0IGQ9TWF0aC5taW4oVyxIKSx2PWNsYW1wKHAvLjIyLDAsMSk7aWYodj49MSlyZXR1cm47CiBsZXQgZmFkZT0oMS1lYXNlKHYpKSxyaW5ncz05OwogY3R4LnNhdmUoKTtjdHguZ2xvYmFsQ29tcG9zaXRlT3BlcmF0aW9uPSdzY3JlZW4nOwogbGV0IGN4PVcqLjUsY3k9SCouNDg7CiBmb3IobGV0IGk9MDtpPHJpbmdzO2krKyl7CiAgIGxldCBycj0odioxLjIyK2kvcmluZ3MpKmQqLjcyOwogICBjdHguYmVnaW5QYXRoKCk7Y3R4LmVsbGlwc2UoY3gsY3kscnIscnIqLjQ4LC0uMTgsMCxNYXRoLlBJKjIpOwogICBjdHguc3Ryb2tlU3R5bGU9J3JnYmEoMTMwLDI0MCwyNTUsJysoKC4xMysuMjAqKDEtaS9yaW5ncykpKmZhZGUpKycpJztjdHgubGluZVdpZHRoPWklMz09PTA\/Mi44OjE7Y3R4LnN0cm9rZSgpOwogfQogZm9yKGxldCBpPTA7aTwzNjtpKyspewogICBsZXQgYT1pKjIqTWF0aC5QSS8zNiArIHAqLjE4LGlubmVyPSguMDQrLjA4KnYpKmQsb3V0ZXI9KC4yNCsuOSp2KSpkOwogICBsZXQgYXg9Y3grTWF0aC5jb3MoYSkqaW5uZXIsYXk9Y3krTWF0aC5zaW4oYSkqaW5uZXIqLjY3OwogICBsZXQgYng9Y3grTWF0aC5jb3MoYSkqb3V0ZXIsYnk9Y3krTWF0aC5zaW4oYSkqb3V0ZXIqLjY3OwogICBsaW5lKGF4LGF5LGJ4LGJ5LCdyZ2JhKDE0OSwyMzYsMjU1LCcrKC4yNCpmYWRlKSsnKScsaSU1PT09MD8yLjI6MSk7CiB9CiBsZXQgZz1jdHguY3JlYXRlUmFkaWFsR3JhZGllbnQoY3gsY3ksMCxjeCxjeSxkKi41Nik7CiBnLmFkZENvbG9yU3RvcCgwLCdyZ2JhKDI1NSwyNTUsMjU1LCcrKC4xOSpmYWRlKSsnKScpO2cuYWRkQ29sb3JTdG9wKC4yMiwncmdiYSg4OSwyMzAsMjU1LCcrKC4xMypmYWRlKSsnKScpO2cuYWRkQ29sb3JTdG9wKDEsJ3JnYmEoODksMjMwLDI1NSwwKScpOwogY3R4LmZpbGxTdHlsZT1nO2N0eC5maWxsUmVjdCgwLDAsVyxIKTtjdHgucmVzdG9yZSgpOwp9CmZ1bmN0aW9uIGZyYW1lKG1zKXtsZXQgZHQ9TWF0aC5taW4oLjA2NSwobXMtcHJldmlvdXMpLzEwMDApO3ByZXZpb3VzPW1zOwogaWYoc3RhcnRlZCYmcnVubmluZyl7CiAgY29uc3QgcHJldj10LGs9dHJhY2tGb3IodCksYT12b2ljZXNba107CiAgLy8gTmFycmF0aW9uIGlzIHRoZSBtYXN0ZXIgY2xvY2sgd2hlbmV2ZXIgYXVkaW8gaXMgYWN0aXZlbHkgcGxheWluZy4KICBpZihzb3VuZCYmIWEucGF1c2VkJiYhYS5lbmRlZCYmYS5yZWFkeVN0YXRlPj0yKXsKICAgdD1NYXRoLm1pbihUT1RBTCxBVURJT19CRUdJTltrXSthLmN1cnJlbnRUaW1lKTsKICB9ZWxzZXt0PU1hdGgubWluKFRPVEFMLHQrZHQpfQogIC8vIFRoZSBxdWVzdGlvbiBpcyBpbnRlbnRpb25hbGx5IGludGVyYWN0aXZlIGFuZCBob2xkcyBhdCBleGFjdGx5IDAyOjMwLgogIGlmKCFob2xkUmVhY2hlZCYmcHJldjxGSVJTVF9RVUVTVElPTl9FTkQmJnQ+PUZJUlNUX1FVRVNUSU9OX0VORCl7dD1GSVJTVF9RVUVTVElPTl9FTkQ7aG9sZFJlYWNoZWQ9dHJ1ZTtzZXRSdW5uaW5nKGZhbHNlKX0KICBpZih0Pj1UT1RBTCl7dD1UT1RBTDtzZXRSdW5uaW5nKGZhbHNlKX0KICBzeW5jU291bmQoKTsKIH0KIGN0eC5jbGVhclJlY3QoMCwwLFcsSCk7c3RhcmZpZWxkKG1zKTtsaWdodE5ldHdvcmsobXMsc3RhcnRlZD8uODoxLjA1KTsKIGlmKHN0YXJ0ZWQpe2xldCBpZHg9c2NlbmVBdChNYXRoLm1pbihUT1RBTC0uMDAxLHQpKSxzPXNjZW5lc1tpZHhdLHA9Y2xhbXAoKHQtcy5zdGFydCkvKHMuZW5kLXMuc3RhcnQpLDAsMSk7CiBpZihbJ1JFTkFDRVInLCdJTVBVTFNPJywnQVNDRU5ERVInXS5pbmNsdWRlcyhzLmspKXNvbG9CdWlsZChtcyxwLHMuayk7IGVsc2UgaWYoWydNQVBBJywnTUFTVEVSJywnQ0lFUlJFJ10uaW5jbHVkZXMocy5rKSlkcmF3Q29tbXVuaXRpZXMobXMscCxzLmspOwogdHJhbnNpdGlvblN3ZWVwKHApfXVwZGF0ZSgpO3JlcXVlc3RBbmltYXRpb25GcmFtZShmcmFtZSl9cmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZyYW1lKTsKZnVuY3Rpb24gc3RhcnQoKXtpZighc3RhcnRlZCl7c3RhcnRlZD10cnVlO3Q9MDskKCdoZXJvJykuY2xhc3NMaXN0LmFkZCgnb2ZmJyk7aG9sZFJlYWNoZWQ9ZmFsc2V9aWYodD49VE9UQUwpe3NlZWtUbygwKTtob2xkUmVhY2hlZD1mYWxzZTskKCdmaW5pc2gnKS5jbGFzc0xpc3QucmVtb3ZlKCdzaG93Jyl9c2V0UnVubmluZyh0cnVlKX0KJCgnc3RhcnQnKS5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsc3RhcnQpOyQoJ3BhdXNlJykuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCgpPT57aWYoIXN0YXJ0ZWR8fHQ+PVRPVEFMKXN0YXJ0KCk7ZWxzZSBpZihob2xkUmVhY2hlZCYmdD09PUZJUlNUX1FVRVNUSU9OX0VORCl7JCgnaG9sZCcpLmNsYXNzTGlzdC5yZW1vdmUoJ3Nob3cnKTt0Kz0uMDI7aG9sZFJlYWNoZWQ9ZmFsc2U7c2V0UnVubmluZyh0cnVlKX1lbHNlIHNldFJ1bm5pbmcoIXJ1bm5pbmcpfSk7CmRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ1tkYXRhLWFuc3dlcl0nKS5mb3JFYWNoKGI9PmIuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCgpPT57Zmlyc3RBbnN3ZXI9Yi5kYXRhc2V0LmFuc3dlcjtkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdbZGF0YS1hbnN3ZXJdJykuZm9yRWFjaCh4PT54LmNsYXNzTGlzdC50b2dnbGUoJ3NlbCcseD09PWIpKTskKCdmaXJzdEFuc3dlcicpLnRleHRDb250ZW50PSdSZXNwdWVzdGEgcmVnaXN0cmFkYTogJytmaXJzdEFuc3dlcn0pKTsKJCgnY29udGludWUnKS5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsKCk9PnskKCdob2xkJykuY2xhc3NMaXN0LnJlbW92ZSgnc2hvdycpO3Q9RklSU1RfUVVFU1RJT05fRU5EKy4wMjtob2xkUmVhY2hlZD1mYWxzZTtzZXRSdW5uaW5nKHRydWUpfSk7CiQoJ3NlZWsnKS5hZGRFdmVudExpc3RlbmVyKCdpbnB1dCcsZXY9PntzZXRSdW5uaW5nKGZhbHNlKTtzZWVrVG8oTnVtYmVyKGV2LnRhcmdldC52YWx1ZSkpfSk7JCgnc2VlaycpLmFkZEV2ZW50TGlzdGVuZXIoJ2NoYW5nZScsKCk9PntpZighaG9sZFJlYWNoZWR8fHQ+RklSU1RfUVVFU1RJT05fRU5EKXNldFJ1bm5pbmcodHJ1ZSl9KTsKJCgnc291bmQnKS5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsKCk9Pntzb3VuZD0hc291bmQ7JCgnc291bmQnKS50ZXh0Q29udGVudD1zb3VuZD8nU09OSURPJzonU0lMRU5DSU8nO2lmKCFzb3VuZClPYmplY3QudmFsdWVzKHZvaWNlcykuZm9yRWFjaChhPT5hLnBhdXNlKCkpO2Vsc2Ugc3luY1NvdW5kKCl9KTsKJCgnZXhpdCcpLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywoKT0+e09iamVjdC52YWx1ZXModm9pY2VzKS5mb3JFYWNoKGE9PmEucGF1c2UoKSk7d2luZG93LnBhcmVudC5wb3N0TWVzc2FnZSgnR0dHX1JFR0VORVJBX0hJREUnLGxvY2F0aW9uLm9yaWdpbj09PSdudWxsJz8nKic6bG9jYXRpb24ub3JpZ2luKX0pOwpjb25zdCBzZWxlY3Rpb25zPXthbGNhbGRpYTpuZXcgU2V0KCksZGVzYXJyb2xsYWRvcmVzOm5ldyBTZXQoKX07CmZ1bmN0aW9uIGRyYXdDaGVja3MoKXtjb25zdCBncmlkPSQoJ2NoZWNrcycpO2dyaWQudGV4dENvbnRlbnQ9Jyc7Zm9yKGNvbnN0IGl0ZW0gb2YgY2hvaWNlc1tyb2xlXSl7Y29uc3QgW25hbWUsZGVzY109aXRlbTtjb25zdCBsYWI9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnbGFiZWwnKSxpbnB1dD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpbnB1dCcpLHN0cm9uZz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJyksc21hbGw9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpO2lucHV0LnR5cGU9J2NoZWNrYm94JztpbnB1dC52YWx1ZT1uYW1lO2lucHV0LmNoZWNrZWQ9c2VsZWN0aW9uc1tyb2xlXS5oYXMobmFtZSk7aW5wdXQuYWRkRXZlbnRMaXN0ZW5lcignY2hhbmdlJywoKT0+e2lmKGlucHV0LmNoZWNrZWQpc2VsZWN0aW9uc1tyb2xlXS5hZGQobmFtZSk7ZWxzZSBzZWxlY3Rpb25zW3JvbGVdLmRlbGV0ZShuYW1lKX0pO3N0cm9uZy5jbGFzc05hbWU9J2Nob2ljZS10aXRsZSc7c3Ryb25nLnRleHRDb250ZW50PW5hbWU7c21hbGwuY2xhc3NOYW1lPSdjaG9pY2UtZGVzY3JpcHRpb24nO3NtYWxsLnRleHRDb250ZW50PWRlc2M7bGFiLmFwcGVuZChpbnB1dCxzdHJvbmcsc21hbGwpO2dyaWQuYXBwZW5kQ2hpbGQobGFiKX19ZHJhd0NoZWNrcygpOwpkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdbZGF0YS1yb2xlXScpLmZvckVhY2goYj0+Yi5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsKCk9Pntyb2xlPWIuZGF0YXNldC5yb2xlO2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ1tkYXRhLXJvbGVdJykuZm9yRWFjaCh4PT54LmNsYXNzTGlzdC50b2dnbGUoJ3NlbCcseD09PWIpKTtkcmF3Q2hlY2tzKCl9KSk7CiQoJ2NvbW1pdE5leHQnKS5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsKCk9Pntjb25zdCBwYW5lbD0kKCdjb21taXRtZW50RGV0YWlscycpLG9wZW49cGFuZWwuaGlkZGVuO3BhbmVsLmhpZGRlbj0hb3BlbjskKCdjb21taXROZXh0Jykuc2V0QXR0cmlidXRlKCdhcmlhLWV4cGFuZGVkJyxTdHJpbmcob3BlbikpO2lmKG9wZW4pe3BhbmVsLnNjcm9sbEludG9WaWV3KHtiZWhhdmlvcjonc21vb3RoJyxibG9jazonc3RhcnQnfSk7JCgnZW50aXR5JykuZm9jdXMoe3ByZXZlbnRTY3JvbGw6dHJ1ZX0pfX0pOwpmdW5jdGlvbiBub3Rlc1RleHQoKXtsZXQgc2VsPU9iamVjdC5lbnRyaWVzKHNlbGVjdGlvbnMpLmZsYXRNYXAoKFthdWRpZW5jZSxpdGVtc10pPT5bLi4uaXRlbXNdLm1hcChuYW1lPT4nLSAnK2F1ZGllbmNlKyc6ICcrbmFtZSkpO3JldHVybiBbJ0dHRyBSRUdFTkVSQSBNRURFTEzDjU4nLCdBdWRpZW5jaWE6ICcrcm9sZSwnUHJpbWVyYSByZXNwdWVzdGEgaW5zdGl0dWNpb25hbDogJysoZmlyc3RBbnN3ZXJ8fCdQZW5kaWVudGUgZGUgcmVnaXN0cmFyJyksJ0FjY2lvbmVzIHNlbGVjY2lvbmFkYXM6JywuLi4oc2VsLmxlbmd0aD9zZWw6WycoU2luIHNlbGVjY2lvbmFyKSddKSwnJywnRW50aWRhZC9lbXByZXNhOiAnKyQoJ2VudGl0eScpLnZhbHVlLCdSZXNwb25zYWJsZS9jb250YWN0bzogJyskKCdjb250YWN0JykudmFsdWUsJ0ZlY2hhIGRlIHNlZ3VpbWllbnRvOiAnKyQoJ2ZvbGxvd0RhdGUnKS52YWx1ZSwnJywnTm90YXMgeSBwcsOzeGltb3MgcGFzb3M6JywkKCdub3RlcycpLnZhbHVlfHwnKFNpbiBub3RhcyknXS5qb2luKCdcbicpfQokKCdjb3B5JykuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCgpPT57Y29uc3QgZGF0YT1ub3Rlc1RleHQoKTtpZihuYXZpZ2F0b3IuY2xpcGJvYXJkKW5hdmlnYXRvci5jbGlwYm9hcmQud3JpdGVUZXh0KGRhdGEpLnRoZW4oKCk9PnskKCdzdGF0dXMnKS50ZXh0Q29udGVudD0nTm90YXMgY29waWFkYXMuJ30pLmNhdGNoKCgpPT57JCgnc3RhdHVzJykudGV4dENvbnRlbnQ9J0VsIG5hdmVnYWRvciBubyBwZXJtaXRpw7MgY29waWFyLiBVc2EgRGVzY2FyZ2FyLid9KTtlbHNlICQoJ3N0YXR1cycpLnRleHRDb250ZW50PSdVc2EgRGVzY2FyZ2FyIHBhcmEgY29uc2VydmFyIGxhcyBub3Rhcy4nfSk7CiQoJ2Rvd25sb2FkJykuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCgpPT57Y29uc3QgYmxvYj1uZXcgQmxvYihbbm90ZXNUZXh0KCldLHt0eXBlOid0ZXh0L3BsYWluO2NoYXJzZXQ9dXRmLTgnfSksdXJsPVVSTC5jcmVhdGVPYmplY3RVUkwoYmxvYiksYT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCdhJyk7YS5ocmVmPXVybDthLmRvd25sb2FkPSdHR0dfUkVHRU5FUkFfTUVERUxMSU5fQUNVRVJET1MudHh0Jztkb2N1bWVudC5ib2R5LmFwcGVuZChhKTthLmNsaWNrKCk7YS5yZW1vdmUoKTtzZXRUaW1lb3V0KCgpPT5VUkwucmV2b2tlT2JqZWN0VVJMKHVybCksMTAwMCl9KTsKJCgnc2VuZCcpLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJyxhc3luYygpPT57Y29uc3QgYj0kKCdzZW5kJyk7Yi5kaXNhYmxlZD10cnVlOyQoJ3N0YXR1cycpLnRleHRDb250ZW50PSdFbnZpYW5kbyBhIFdvcmRQcmVzcy4uLic7dHJ5e2NvbnN0IGRhdGE9bmV3IFVSTFNlYXJjaFBhcmFtcyh7YWN0aW9uOidnZ2dfZW52aWFyX3Jlc3B1ZXN0YXMnLG5vdGVzOm5vdGVzVGV4dCgpLHdlYnNpdGU6Jyd9KTtjb25zdCByPWF3YWl0IGZldGNoKCcvR0dHL3dwLWFkbWluL2FkbWluLWFqYXgucGhwJyx7bWV0aG9kOidQT1NUJyxjcmVkZW50aWFsczonc2FtZS1vcmlnaW4nLGJvZHk6ZGF0YX0pO2NvbnN0IGo9YXdhaXQgci5qc29uKCk7aWYoIXIub2t8fCFqLnN1Y2Nlc3MpdGhyb3cgRXJyb3Ioai5kYXRhJiZqLmRhdGEubWVzc2FnZXx8J0xhIGZ1bmNpw7NuIGRlIGNvcnJlbyBubyBlc3TDoSBpbnN0YWxhZGEgbyBubyByZXNwb25kacOzJyk7JCgnc3RhdHVzJykudGV4dENvbnRlbnQ9J1dvcmRQcmVzcyBhY2VwdMOzIGVsIGVudsOtbzsgdmVyaWZpY2EgZWwgY29ycmVvLid9Y2F0Y2goZSl7JCgnc3RhdHVzJykudGV4dENvbnRlbnQ9J05vIHNlIHB1ZG8gZW52aWFyOiAnK2UubWVzc2FnZSsnLiBQdWVkZXMgZGVzY2FyZ2FyIGxhcyBub3Rhcy4nfWZpbmFsbHl7Yi5kaXNhYmxlZD1mYWxzZX19KTsKd2luZG93Ll9fR0dHX1JFR0VORVJBX1YxMz17bWFwQnVpbGRpbmdzOk1BUF9CVUlMRElOR1MscmVudEV4YW1wbGUsc2VlazpzZWVrVG8sc3RhdGU6KCk9Pih7c3RhcnRlZCxydW5uaW5nLHQsc2NlbmU6Y3VycmVudCx0b3RhbDpUT1RBTCxxdWVzdGlvbkhvbGQ6aG9sZFJlYWNoZWR9KSxzY2VuZXN9Owp9KSgpOzwvc2NyaXB0PjwvYm9keT48L2h0bWw+';\r\nvar film=new TextDecoder('utf-8').decode(Uint8Array.from(atob(encoded),function(c){return c.charCodeAt(0);}));\r\nvar config=JSON.stringify(window.GGG_REGENERA_MEDIA||{}).replace(\/<\/g,'\\u003c');\r\nfilm=film.replace('<\/head>','<scr'+'ipt>window.GGG_REGENERA_MEDIA='+config+';<\/scr'+'ipt><\/head>');\r\nframe=document.createElement('iframe');\r\nframe.id='gggAlcaldiaV17';frame.title='GGG Regenera Medell\u00c3\u0192\u00c2\u00adn';\r\nframe.setAttribute('allow','autoplay; fullscreen');\r\nframe.style.cssText='position:fixed!important;inset:0!important;width:100vw!important;height:100vh!important;height:100dvh!important;z-index:2147483647!important;border:0!important;margin:0!important;padding:0!important;background:#020916!important;display:block!important;visibility:visible!important;opacity:1!important';\r\nvar oldBody=document.body.style.overflow,oldHtml=document.documentElement.style.overflow;\r\nframe.srcdoc=film;\r\nwindow.addEventListener('message',close);\r\ndocument.body.appendChild(frame);\r\ndocument.body.style.overflow='hidden';document.documentElement.style.overflow='hidden';\r\nfunction close(e){if(e.source!==frame.contentWindow||e.data!=='GGG_REGENERA_HIDE')return;frame.remove();document.body.style.overflow=oldBody;document.documentElement.style.overflow=oldHtml;window.removeEventListener('message',close);}\r\n}catch(error){\r\nif(frame)frame.remove();\r\nvar box=document.createElement('div');box.textContent='No se pudo abrir la presentaci\u00c3\u0192\u00c2\u00b3n: '+error.message;\r\nbox.style.cssText='position:fixed;inset:20px 20px auto;z-index:2147483647;background:#071b2e;color:white;padding:20px;font:16px Arial';document.body.appendChild(box);\r\n}\r\n}\r\nif(document.body)mount();else document.addEventListener('DOMContentLoaded',mount,{once:true});\r\n})();\r\n<\/script>\r\n","protected":false},"excerpt":{"rendered":"<p>Would you like to see Evolution Tours of the area? Yes No \ud83d\udd4c Cultural \ud83d\udcb3 Graffiti Local Towns Stamp Art Art Lights Farmers Bike Scavenger Rivers Flowers Coffee Wine Fruits Enotours Movements El Pe\u00f1ol Drug Lord Music Fenix \ud83d\udcb3 Pay with Bliss Coin Enter your digital wallet #: Send payment to: HOST-WALLET-ADDRESS-123 Close \ud83e\uddca \ud83d\udc96 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-2748","page","type-page","status-publish","hentry"],"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/godsgalaxygame.com\/GGG\/wp-json\/wp\/v2\/pages\/2748","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/godsgalaxygame.com\/GGG\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/godsgalaxygame.com\/GGG\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/godsgalaxygame.com\/GGG\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/godsgalaxygame.com\/GGG\/wp-json\/wp\/v2\/comments?post=2748"}],"version-history":[{"count":49,"href":"https:\/\/godsgalaxygame.com\/GGG\/wp-json\/wp\/v2\/pages\/2748\/revisions"}],"predecessor-version":[{"id":11093,"href":"https:\/\/godsgalaxygame.com\/GGG\/wp-json\/wp\/v2\/pages\/2748\/revisions\/11093"}],"wp:attachment":[{"href":"https:\/\/godsgalaxygame.com\/GGG\/wp-json\/wp\/v2\/media?parent=2748"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}