#!/usr/bin/env bash
# install-caddy-node.sh — установка Caddy + генерация Caddyfile и заглушки для XHTTP-ноды.
# Запуск:  sudo bash install-caddy-node.sh   (или просто bash — sudo вызовется сам)
set -euo pipefail

# ---------- цвета ----------
if [ -t 1 ]; then
  B=$'\e[1m'; DIM=$'\e[2m'; G=$'\e[32m'; Y=$'\e[33m'; C=$'\e[36m'; R=$'\e[31m'; N=$'\e[0m'
else
  B=""; DIM=""; G=""; Y=""; C=""; R=""; N=""
fi
say(){ printf '%b\n' "$*"; }
ok(){ printf "${G}\u2713${N} %s\n" "$*"; }
warn(){ printf "${Y}!${N} %s\n" "$*"; }
die(){ printf "${R}\u2717 %s${N}\n" "$*" >&2; exit 1; }

# ---------- sudo / окружение ----------
if [ "$(id -u)" -eq 0 ]; then SUDO=""; else SUDO="sudo"; fi
command -v apt-get >/dev/null 2>&1 || die "Нужен Ubuntu/Debian (apt-get не найден)."

printf "\n${B}${C}== Caddy XHTTP node installer ==${N}\n\n"

# ---------- ввод ----------
read -rp "Email (для Let's Encrypt): " EMAIL
while ! printf '%s' "$EMAIL" | grep -q '@'; do
  read -rp "  Некорректный email, повтори: " EMAIL
done
read -rp "Домен ноды (например finka.example.ru): " DOMAIN
DOMAIN="${DOMAIN#http://}"; DOMAIN="${DOMAIN#https://}"; DOMAIN="${DOMAIN%/}"
[ -n "$DOMAIN" ] || die "Домен пустой."

# ---------- генерация пути ----------
WORDS=(api cdn static media stream assets data content core edge node live cache gateway service push pull sync fetch upload chunk segment frame track session blob object store queue relay proxy hub channel feed source origin mirror vault bucket shard packet tile manifest playlist thumb preview render worker signal beacon pixel event report metric)
VERSIONS=(v1 v2 v3 v4 v5 v6 api2 r2 g2 beta stable latest)
EXTS=(php ts)
gen_path(){
  local pool; pool=( $(printf '%s\n' "${WORDS[@]}" | shuf) )
  local dirs=$(( RANDOM % 3 + 1 )) parts=() idx=0 i
  for (( i=0; i<dirs; i++ )); do parts+=("${pool[idx]}"); idx=$(( idx + 1 )); done
  if (( RANDOM % 3 != 0 )); then parts[$(( RANDOM % ${#parts[@]} ))]="${VERSIONS[$(( RANDOM % ${#VERSIONS[@]} ))]}"; fi
  printf '/%s/%s.%s\n' "$(IFS=/; echo "${parts[*]}")" "${pool[idx]}" "${EXTS[$(( RANDOM % ${#EXTS[@]} ))]}"
}
TUNNEL_PATH="$(gen_path)"

printf "\n"
say "${B}Параметры:${N}"
say "  email : ${C}${EMAIL}${N}"
say "  домен : ${C}${DOMAIN}${N}"
say "  путь  : ${G}${TUNNEL_PATH}${N}"
printf "\n"
read -rp "Продолжить установку? [Y/n] " yn
case "${yn:-Y}" in [Nn]*) die "Отменено." ;; esac

# ---------- [1/4] установка Caddy ----------
say "\n${B}[1/4] Установка Caddy...${N}"
export DEBIAN_FRONTEND=noninteractive
$SUDO apt-get update -y
$SUDO apt-get install -y debian-keyring debian-archive-keyring apt-transport-https curl gnupg
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | $SUDO gpg --batch --yes --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | $SUDO tee /etc/apt/sources.list.d/caddy-stable.list >/dev/null
$SUDO apt-get update -y
$SUDO apt-get install -y caddy
ok "Caddy установлен: $(caddy version 2>/dev/null | head -1)"

# ---------- [2/4] Caddyfile ----------
say "\n${B}[2/4] Генерация Caddyfile...${N}"
TMP_CADDY="$(mktemp)"
cat > "$TMP_CADDY" <<'CADDY_EOF'
{
  email __EMAIL__
  servers {
    protocols h1 h2 h3
    max_header_size 65536
  }
  auto_https disable_redirects
}

__DOMAIN__ {
  tls {
    protocols tls1.2 tls1.3
  }

  header {
    -Server
    Cache-Control "no-store,no-cache,must-revalidate"
    Surrogate-Control "no-store"
    Pragma "no-cache"
  }

  handle_path /health {
    header Content-Type "application/json"
    respond `{"status":"ok","service":"stream-vault","version":"5.4.2"}` 200
  }

  @tunnel {
    path __PATH__*
    query auth=*
  }
  handle @tunnel {
    rewrite * __PATH__/
    reverse_proxy 127.0.0.1:7443 {
      flush_interval -1
      header_up Host {host}
      header_up X-Real-IP {remote_host}
      transport http {
        versions h2c 1.1
        keepalive_idle_conns 256
        keepalive 30s
      }
    }
  }

  handle {
    root * /var/www/html
    try_files {path} /index.html
    file_server
  }
}
CADDY_EOF

# подстановка значений (разделитель | — путь содержит /)
sed -i "s|__EMAIL__|${EMAIL}|g; s|__DOMAIN__|${DOMAIN}|g; s|__PATH__|${TUNNEL_PATH}|g" "$TMP_CADDY"
$SUDO install -o root -g root -m 0644 "$TMP_CADDY" /etc/caddy/Caddyfile
rm -f "$TMP_CADDY"
ok "Caddyfile записан → /etc/caddy/Caddyfile"

# ---------- [3/4] заглушка ----------
say "\n${B}[3/4] Установка заглушки...${N}"
DECOYS=()
DECOYS+=("PCFkb2N0eXBlIGh0bWw+CjxodG1sIGxhbmc9InJ1Ij4KPGhlYWQ+CjxtZXRhIGNoYXJzZXQ9InV0Zi04Ii8+CjxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsaW5pdGlhbC1zY2FsZT0xIi8+Cjx0aXRsZT7QlNC+0YHRgtGD0L8g0Log0YHQtdGA0LLQtdGA0YM8L3RpdGxlPgo8c3R5bGU+CgoqeyBib3gtc2l6aW5nOmJvcmRlci1ib3g7IH0KaHRtbCxib2R5eyBoZWlnaHQ6MTAwJTsgfQpib2R5eyBtYXJnaW46MDsgbWluLWhlaWdodDoxMDB2aDsgZGlzcGxheTpmbGV4OyBhbGlnbi1pdGVtczpjZW50ZXI7IGp1c3RpZnktY29udGVudDpjZW50ZXI7IHBhZGRpbmc6MjRweDsKICBmb250LWZhbWlseTp1aS1zYW5zLXNlcmlmLCBzeXN0ZW0tdWksIC1hcHBsZS1zeXN0ZW0sICJTZWdvZSBVSSIsIFJvYm90bywgQXJpYWwsICJOb3RvIFNhbnMiLCAiTGliZXJhdGlvbiBTYW5zIiwgc2Fucy1zZXJpZjsgY29sb3I6I2YyZjJmZjsgYmFja2dyb3VuZDojMDcwNjBkOyAgfQouc3RhZ2V7IHBvc2l0aW9uOnJlbGF0aXZlOyB6LWluZGV4OjE7IGRpc3BsYXk6ZmxleDsgIHdpZHRoOm1pbig0NjBweCw5NHZ3KTsgIH0KLmFzaWRleyBkaXNwbGF5Om5vbmU7IH0KLmNhcmR7IHBvc2l0aW9uOnJlbGF0aXZlOyBmbGV4OjE7IG1pbi13aWR0aDowOyBiYWNrZ3JvdW5kOiMwZDBiMTg7IGJvcmRlcjoxcHggc29saWQgI2ZmMmU4ODU1OyBib3JkZXItcmFkaXVzOjE2cHg7IG92ZXJmbG93OmhpZGRlbjsgYm94LXNoYWRvdzowIDAgNDBweCAtOHB4IHJnYmEoMjU1LDQ2LDEzNiwuNSksIDAgMzBweCA2MHB4IC0yNXB4ICMwMDA7ICB9Ci5jYXJkLWhlYWR7IGRpc3BsYXk6ZmxleDsgYWxpZ24taXRlbXM6Y2VudGVyOyBnYXA6MTBweDsgcGFkZGluZzoxNHB4IDE4cHg7IGJvcmRlci1ib3R0b206MXB4IHNvbGlkICNmZjJlODgzMzsgYmFja2dyb3VuZDpyZ2JhKDI1NSwyNTUsMjU1LC4wMik7IH0KLmRvdHsgd2lkdGg6MTFweDsgaGVpZ2h0OjExcHg7IGJvcmRlci1yYWRpdXM6NTAlOyBmbGV4OjAgMCBhdXRvOyBkaXNwbGF5OmlubGluZS1ibG9jazsgfQouZG90LnJ7IGJhY2tncm91bmQ6I2ZmNWY1NzsgfSAuZG90Lnl7IGJhY2tncm91bmQ6I2ZlYmMyZTsgfSAuZG90Lmd7IGJhY2tncm91bmQ6IzI4Yzg0MDsgfQoucGF0aHsgbWFyZ2luLWxlZnQ6OHB4OyBmb250LWZhbWlseTp1aS1tb25vc3BhY2UsIFNGTW9uby1SZWd1bGFyLCBNZW5sbywgQ29uc29sYXMsICJMaWJlcmF0aW9uIE1vbm8iLCBtb25vc3BhY2U7IGZvbnQtc2l6ZToxMnB4OyBjb2xvcjojNmI3MDk5OyBsZXR0ZXItc3BhY2luZzouM3B4OyB9Ci5zdGF0dXMtcGlsbHsgbWFyZ2luLWxlZnQ6YXV0bzsgZGlzcGxheTppbmxpbmUtZmxleDsgYWxpZ24taXRlbXM6Y2VudGVyOyBnYXA6NnB4OyBmb250LWZhbWlseTp1aS1tb25vc3BhY2UsIFNGTW9uby1SZWd1bGFyLCBNZW5sbywgQ29uc29sYXMsICJMaWJlcmF0aW9uIE1vbm8iLCBtb25vc3BhY2U7IGZvbnQtc2l6ZToxMXB4OyBjb2xvcjojZmYyZTg4OyBiYWNrZ3JvdW5kOiNmZjJlODgxYTsgYm9yZGVyOjFweCBzb2xpZCAjZmYyZTg4NjY7IHBhZGRpbmc6M3B4IDlweDsgYm9yZGVyLXJhZGl1czo5OTlweDsgfQouc3RhdHVzLXBpbGwgLmxlZHsgd2lkdGg6NnB4OyBoZWlnaHQ6NnB4OyBib3JkZXItcmFkaXVzOjUwJTsgYmFja2dyb3VuZDojZmYyZTg4OyBib3gtc2hhZG93OjAgMCAxMHB4ICNmZjJlODg7IH0KLmNhcmQtYm9keXsgcGFkZGluZzoyNnB4IDI2cHggMjJweDsgfQouZXllYnJvd3sgZGlzcGxheTpibG9jazsgZm9udC1mYW1pbHk6dWktbW9ub3NwYWNlLCBTRk1vbm8tUmVndWxhciwgTWVubG8sIENvbnNvbGFzLCAiTGliZXJhdGlvbiBNb25vIiwgbW9ub3NwYWNlOyBmb250LXNpemU6MTFweDsgdGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlOyBsZXR0ZXItc3BhY2luZzoycHg7IGNvbG9yOiNmZjJlODg7IG1hcmdpbjowIDAgMTBweDsgfQpoMXsgbWFyZ2luOjAgMCA4cHg7IGZvbnQtc2l6ZToyNnB4OyBmb250LXdlaWdodDo2NTA7IGZvbnQtZmFtaWx5OnVpLXNhbnMtc2VyaWYsIHN5c3RlbS11aSwgLWFwcGxlLXN5c3RlbSwgIlNlZ29lIFVJIiwgUm9ib3RvLCBBcmlhbCwgIk5vdG8gU2FucyIsICJMaWJlcmF0aW9uIFNhbnMiLCBzYW5zLXNlcmlmOyBjb2xvcjojZmZmOyBsZXR0ZXItc3BhY2luZzouMnB4OyB9Ci5zdWJ0aXRsZXsgbWFyZ2luOjAgMCAyNHB4OyBjb2xvcjojOWFhMGMwOyBsaW5lLWhlaWdodDoxLjQ1OyBmb250LXNpemU6MTRweDsgfQouZmllbGR7IG1hcmdpbjoxNnB4IDA7IH0KbGFiZWx7IGRpc3BsYXk6YmxvY2s7IGZvbnQtc2l6ZToxMnB4OyBmb250LXdlaWdodDo2MDA7IGNvbG9yOiM5YWEwYzA7IG1hcmdpbjowIDAgOHB4OyB9Ci5pbnB1dHsgZGlzcGxheTpmbGV4OyBhbGlnbi1pdGVtczpjZW50ZXI7IGdhcDoxMXB4OyBwYWRkaW5nOjEycHggMTRweDsgYmFja2dyb3VuZDojMGEwODE0OyBib3JkZXI6MXB4IHNvbGlkICNmZjJlODg0MDsgYm9yZGVyLXJhZGl1czoxMHB4OyB0cmFuc2l0aW9uOmJvcmRlci1jb2xvciAuMTVzIGVhc2UsIGJveC1zaGFkb3cgLjE1cyBlYXNlLCBiYWNrZ3JvdW5kIC4xNXMgZWFzZTsgfQouaW5wdXQ6Zm9jdXMtd2l0aGlueyBib3JkZXItY29sb3I6I2ZmMmU4ODsgYm94LXNoYWRvdzowIDAgMCAzcHggI2ZmMmU4ODMzLCAwIDAgMTRweCByZ2JhKDI1NSw0NiwxMzYsLjUpOyB9Ci5pY29ueyB3aWR0aDoxOHB4OyBoZWlnaHQ6MThweDsgZmxleDowIDAgYXV0bzsgY29sb3I6IzZiNzA5OTsgfQouaW5wdXQ6Zm9jdXMtd2l0aGluIC5pY29ueyBjb2xvcjojZmYyZTg4OyB9CmlucHV0eyB3aWR0aDoxMDAlOyBib3JkZXI6MDsgYmFja2dyb3VuZDp0cmFuc3BhcmVudDsgY29sb3I6I2YyZjJmZjsgZm9udC1zaXplOjE0cHg7IGZvbnQtZmFtaWx5OnVpLXNhbnMtc2VyaWYsIHN5c3RlbS11aSwgLWFwcGxlLXN5c3RlbSwgIlNlZ29lIFVJIiwgUm9ib3RvLCBBcmlhbCwgIk5vdG8gU2FucyIsICJMaWJlcmF0aW9uIFNhbnMiLCBzYW5zLXNlcmlmOyBvdXRsaW5lOm5vbmU7IH0KaW5wdXQ6OnBsYWNlaG9sZGVyeyBjb2xvcjojNWE1Zjg1OyB9Ci5idG57IG1hcmdpbi10b3A6MjJweDsgd2lkdGg6MTAwJTsgYm9yZGVyOjA7IHBhZGRpbmc6MTNweCAxNHB4OyBib3JkZXItcmFkaXVzOjEwcHg7IGNvbG9yOiMwNzA2MGQ7IGZvbnQtd2VpZ2h0OjcwMDsgZm9udC1zaXplOjE0cHg7IGxldHRlci1zcGFjaW5nOi4zcHg7IGN1cnNvcjpwb2ludGVyOyBmb250LWZhbWlseTp1aS1zYW5zLXNlcmlmLCBzeXN0ZW0tdWksIC1hcHBsZS1zeXN0ZW0sICJTZWdvZSBVSSIsIFJvYm90bywgQXJpYWwsICJOb3RvIFNhbnMiLCAiTGliZXJhdGlvbiBTYW5zIiwgc2Fucy1zZXJpZjsgYmFja2dyb3VuZDojZmYyZTg4OyBib3gtc2hhZG93OjAgMCAyMnB4IC0ycHggcmdiYSgyNTUsNDYsMTM2LC41KTsgdHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjA2cyBlYXNlLCBmaWx0ZXIgLjE1cyBlYXNlLCBib3gtc2hhZG93IC4xNXMgZWFzZTsgfQouYnRuOmhvdmVyeyBmaWx0ZXI6YnJpZ2h0bmVzcygxLjA1KTsgIH0KLmJ0bjphY3RpdmV7IHRyYW5zZm9ybTp0cmFuc2xhdGVZKDFweCk7IH0KLmhpbnR7IG1hcmdpbjoxNnB4IDAgMDsgZm9udC1zaXplOjEycHg7IGNvbG9yOiM2YjcwOTk7IHRleHQtYWxpZ246Y2VudGVyOyB9Ci5jYXB0Y2hhLWJveHsgcGFkZGluZzoxNXB4OyBib3JkZXItcmFkaXVzOjEwcHg7IGJhY2tncm91bmQ6IzBhMDgxNDsgYm9yZGVyOjFweCBkYXNoZWQgI2ZmMmU4ODU1OyB9Ci5jYXB0Y2hhLXRvcHsgZGlzcGxheTpmbGV4OyBhbGlnbi1pdGVtczpjZW50ZXI7IGp1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuOyBnYXA6MTJweDsgfQouY2FwdGNoYS1sYWJlbHsgZm9udC1mYW1pbHk6dWktbW9ub3NwYWNlLCBTRk1vbm8tUmVndWxhciwgTWVubG8sIENvbnNvbGFzLCAiTGliZXJhdGlvbiBNb25vIiwgbW9ub3NwYWNlOyBmb250LXNpemU6MTFweDsgdGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlOyBsZXR0ZXItc3BhY2luZzoxcHg7IGNvbG9yOiM5YWEwYzA7IG1hcmdpbi1ib3R0b206NnB4OyB9Ci5jYXB0Y2hhLXF7IGZvbnQtZmFtaWx5OnVpLW1vbm9zcGFjZSwgU0ZNb25vLVJlZ3VsYXIsIE1lbmxvLCBDb25zb2xhcywgIkxpYmVyYXRpb24gTW9ubyIsIG1vbm9zcGFjZTsgZm9udC1zaXplOjE2cHg7IGZvbnQtd2VpZ2h0OjcwMDsgY29sb3I6I2YyZjJmZjsgfQouYnRuLWdob3N0eyBib3JkZXI6MXB4IHNvbGlkICNmZjJlODg1NTsgYmFja2dyb3VuZDp0cmFuc3BhcmVudDsgY29sb3I6IzlhYTBjMDsgcGFkZGluZzo5cHggMTJweDsgYm9yZGVyLXJhZGl1czoxMHB4OyBmb250LXdlaWdodDo2MDA7IGZvbnQtc2l6ZToxM3B4OyBjdXJzb3I6cG9pbnRlcjsgZm9udC1mYW1pbHk6dWktc2Fucy1zZXJpZiwgc3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCAiU2Vnb2UgVUkiLCBSb2JvdG8sIEFyaWFsLCAiTm90byBTYW5zIiwgIkxpYmVyYXRpb24gU2FucyIsIHNhbnMtc2VyaWY7IHRyYW5zaXRpb246LjE1cyBlYXNlOyB9Ci5idG4tZ2hvc3Q6aG92ZXJ7IGJvcmRlci1jb2xvcjojZmYyZTg4OyBjb2xvcjojZmYyZTg4OyB9Ci50b2FzdHsgcG9zaXRpb246Zml4ZWQ7IGxlZnQ6NTAlOyBib3R0b206MjRweDsgdHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTUwJSkgdHJhbnNsYXRlWSg4cHgpOyBkaXNwbGF5OmZsZXg7IGFsaWduLWl0ZW1zOmNlbnRlcjsgZ2FwOjlweDsgYmFja2dyb3VuZDojMGQwYjE4OyBib3JkZXI6MXB4IHNvbGlkICNmZjJlODg1NTsgYm9yZGVyLWxlZnQ6M3B4IHNvbGlkICNmZjU1Nzc7IGNvbG9yOiNmMmYyZmY7IHBhZGRpbmc6MTFweCAxNXB4OyBib3JkZXItcmFkaXVzOjEwcHg7IGJveC1zaGFkb3c6MCAxOHB4IDQwcHggLTEycHggcmdiYSgwLDAsMCwuNDUpOyBmb250LXNpemU6MTNweDsgb3BhY2l0eTowOyBwb2ludGVyLWV2ZW50czpub25lOyB0cmFuc2l0aW9uOm9wYWNpdHkgLjJzIGVhc2UsIHRyYW5zZm9ybSAuMnMgZWFzZTsgfQoudG9hc3Q6OmJlZm9yZXsgY29udGVudDoiIjsgd2lkdGg6N3B4OyBoZWlnaHQ6N3B4OyBib3JkZXItcmFkaXVzOjUwJTsgYmFja2dyb3VuZDojZmY1NTc3OyBmbGV4OjAgMCBhdXRvOyB9Ci50b2FzdC5zaG93eyBvcGFjaXR5OjE7IHRyYW5zZm9ybTp0cmFuc2xhdGVYKC01MCUpIHRyYW5zbGF0ZVkoMCk7IH0KCgo8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoKICA8ZGl2IGNsYXNzPSJzdGFnZSI+CiAgICA8ZGl2IGNsYXNzPSJhc2lkZSIgYXJpYS1oaWRkZW49InRydWUiPjwvZGl2PgogICAgPG1haW4gY2xhc3M9ImNhcmQiIHJvbGU9Im1haW4iIGFyaWEtbGFiZWw9ItCk0L7RgNC80LAg0LTQvtGB0YLRg9C/0LAiPgogICAgICA8ZGl2IGNsYXNzPSJjYXJkLWhlYWQiPgogICAgICAgIDxzcGFuIGNsYXNzPSJkb3QgciI+PC9zcGFuPgogICAgICAgIDxzcGFuIGNsYXNzPSJkb3QgeSI+PC9zcGFuPgogICAgICAgIDxzcGFuIGNsYXNzPSJkb3QgZyI+PC9zcGFuPgogICAgICAgIDxzcGFuIGNsYXNzPSJwYXRoIj5zc2g6Ly9zZWN1cmUtZ2F0ZXdheTwvc3Bhbj4KICAgICAgICA8c3BhbiBjbGFzcz0ic3RhdHVzLXBpbGwiPjxzcGFuIGNsYXNzPSJsZWQiPjwvc3Bhbj5vbmxpbmU8L3NwYW4+CiAgICAgIDwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJjYXJkLWJvZHkiPgogICAgICAgIDxwIGNsYXNzPSJleWVicm93Ij7QkNCy0YLQvtGA0LjQt9Cw0YbQuNGPPC9wPgogICAgICAgIDxoMT7QlNC+0YHRgtGD0L8g0Log0YHQtdGA0LLQtdGA0YM8L2gxPgogICAgICAgIDxwIGNsYXNzPSJzdWJ0aXRsZSI+0JTQu9GPINC00L7RgdGC0YPQv9CwINC6INGB0LXRgNCy0LXRgNGDLCDQstCy0LXQtNC40YLQtSDQu9C+0LPQuNC9INC4INC/0LDRgNC+0LvRjC48L3A+CiAgICAgICAgPGZvcm0gaWQ9ImZha2VMb2dpbkZvcm0iIGF1dG9jb21wbGV0ZT0ib2ZmIj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImZpZWxkIj4KICAgICAgICAgICAgPGxhYmVsIGZvcj0ibG9naW4iPtCb0L7Qs9C40L08L2xhYmVsPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJpbnB1dCI+CiAgICAgICAgICAgICAgPHN2ZyBjbGFzcz0iaWNvbiIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBhcmlhLWhpZGRlbj0idHJ1ZSI+CiAgICAgICAgICAgICAgICA8cGF0aCBkPSJNMTIgMTJhNC41IDQuNSAwIDEgMC00LjUtNC41QTQuNSA0LjUgMCAwIDAgMTIgMTJaIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIxLjciLz4KICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik00IDIwYzEuNi0zLjUgNS01LjUgOC01LjVzNi40IDIgOCA1LjUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjEuNyIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIi8+CiAgICAgICAgICAgICAgPC9zdmc+CiAgICAgICAgICAgICAgPGlucHV0IGlkPSJsb2dpbiIgbmFtZT0ibG9naW4iIHBsYWNlaG9sZGVyPSLQktCy0LXQtNC40YLQtSDQu9C+0LPQuNC9IiAvPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iZmllbGQiPgogICAgICAgICAgICA8bGFiZWwgZm9yPSJwYXNzd29yZCI+0J/QsNGA0L7Qu9GMPC9sYWJlbD4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iaW5wdXQiPgogICAgICAgICAgICAgIDxzdmcgY2xhc3M9Imljb24iIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgYXJpYS1oaWRkZW49InRydWUiPgogICAgICAgICAgICAgICAgPHBhdGggZD0iTTcuNSAxMVY4LjVhNC41IDQuNSAwIDAgMSA5IDBWMTEiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjEuNyIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIi8+CiAgICAgICAgICAgICAgICA8cGF0aCBkPSJNNi41IDExaDExYTEuNSAxLjUgMCAwIDEgMS41IDEuNXY2QTEuNSAxLjUgMCAwIDEgMTcuNSAyMGgtMTFBMS41IDEuNSAwIDAgMSA1IDE4LjV2LTZBMS41IDEuNSAwIDAgMSA2LjUgMTFaIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIxLjciLz4KICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMiAxNXYyIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIxLjciIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIvPgogICAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICAgIDxpbnB1dCBpZD0icGFzc3dvcmQiIG5hbWU9InBhc3N3b3JkIiB0eXBlPSJwYXNzd29yZCIgcGxhY2Vob2xkZXI9ItCS0LLQtdC00LjRgtC1INC/0LDRgNC+0LvRjCIgLz4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxidXR0b24gY2xhc3M9ImJ0biIgdHlwZT0ic3VibWl0Ij7QktC+0LnRgtC4PC9idXR0b24+CiAgICAgICAgICA8ZGl2IGlkPSJjYXB0Y2hhV3JhcCIgc3R5bGU9ImRpc3BsYXk6bm9uZTsgbWFyZ2luLXRvcDoxNnB4OyI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcHRjaGEtYm94Ij4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXB0Y2hhLXRvcCI+CiAgICAgICAgICAgICAgICA8ZGl2PgogICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXB0Y2hhLWxhYmVsIj7Qn9GA0L7QstC10YDQutCwINCx0LXQt9C+0L/QsNGB0L3QvtGB0YLQuDwvZGl2PgogICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJjYXB0Y2hhUXVlc3Rpb24iIGNsYXNzPSJjYXB0Y2hhLXEiPuKAlDwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8YnV0dG9uIGlkPSJjYXB0Y2hhUmVmcmVzaCIgdHlwZT0iYnV0dG9uIiBjbGFzcz0iYnRuLWdob3N0Ij7QntCx0L3QvtCy0LjRgtGMPC9idXR0b24+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPGRpdiBzdHlsZT0ibWFyZ2luLXRvcDoxMnB4OyI+CiAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJjYXB0Y2hhQW5zd2VyIj7QntGC0LLQtdGCPC9sYWJlbD4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImlucHV0Ij4KICAgICAgICAgICAgICAgICAgPGlucHV0IGlkPSJjYXB0Y2hhQW5zd2VyIiBpbnB1dG1vZGU9Im51bWVyaWMiIHBsYWNlaG9sZGVyPSLQktCy0LXQtNC40YLQtSDRh9C40YHQu9C+IiAvPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPHAgY2xhc3M9ImhpbnQiIHN0eWxlPSJtYXJnaW4tdG9wOjEycHg7Ij7Qn9C+0YHQu9C1IDIg0L3QtdCy0LXRgNC90YvRhSDQv9C+0L/Ri9GC0L7QuiDQstGF0L7QtNCwINC90YPQttC90L4g0YDQtdGI0LjRgtGMINC/0YDQuNC80LXRgC48L3A+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9mb3JtPgogICAgICA8L2Rpdj4KICAgIDwvbWFpbj4KICA8L2Rpdj4KICA8ZGl2IGNsYXNzPSJ0b2FzdCIgaWQ9InRvYXN0IiByb2xlPSJzdGF0dXMiIGFyaWEtbGl2ZT0icG9saXRlIj48L2Rpdj4KCgo8c2NyaXB0PgogIGNvbnN0IGZvcm0gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZmFrZUxvZ2luRm9ybScpOwogIGNvbnN0IHRvYXN0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RvYXN0Jyk7CiAgY29uc3QgY2FwdGNoYVdyYXAgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY2FwdGNoYVdyYXAnKTsKICBjb25zdCBjYXB0Y2hhUXVlc3Rpb24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY2FwdGNoYVF1ZXN0aW9uJyk7CiAgY29uc3QgY2FwdGNoYUFuc3dlciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjYXB0Y2hhQW5zd2VyJyk7CiAgY29uc3QgY2FwdGNoYVJlZnJlc2ggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY2FwdGNoYVJlZnJlc2gnKTsKICBsZXQgYXR0ZW1wdHMgPSAwOwogIGxldCBjYXB0Y2hhID0geyBhOiAwLCBiOiAwLCBvcDogJysnLCByZXN1bHQ6IDAgfTsKICBmdW5jdGlvbiBzaG93VG9hc3QodGV4dCl7IHRvYXN0LnRleHRDb250ZW50ID0gdGV4dDsgdG9hc3QuY2xhc3NMaXN0LmFkZCgnc2hvdycpOyBjbGVhclRpbWVvdXQoc2hvd1RvYXN0Ll90KTsgc2hvd1RvYXN0Ll90ID0gc2V0VGltZW91dCgoKT0+dG9hc3QuY2xhc3NMaXN0LnJlbW92ZSgnc2hvdycpLCAyNjAwKTsgfQogIGZ1bmN0aW9uIHJhbmRJbnQobWluLG1heCl7IHJldHVybiBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqKG1heC1taW4rMSkpK21pbjsgfQogIGZ1bmN0aW9uIG5ld0NhcHRjaGEoKXsKICAgIGNvbnN0IG1vZGUgPSByYW5kSW50KDEsMyk7CiAgICBpZihtb2RlPT09MSl7IGNhcHRjaGEuYT1yYW5kSW50KDEyLDk4KTsgY2FwdGNoYS5iPXJhbmRJbnQoMTEsOTcpOyBjYXB0Y2hhLm9wPScrJzsgY2FwdGNoYS5yZXN1bHQ9Y2FwdGNoYS5hK2NhcHRjaGEuYjsgfQogICAgZWxzZSBpZihtb2RlPT09Mil7IGNhcHRjaGEuYT1yYW5kSW50KDMwLDk5KTsgY2FwdGNoYS5iPXJhbmRJbnQoMTAsMjkpOyBjYXB0Y2hhLm9wPSfiiJInOyBjYXB0Y2hhLnJlc3VsdD1jYXB0Y2hhLmEtY2FwdGNoYS5iOyB9CiAgICBlbHNlIHsgY2FwdGNoYS5hPXJhbmRJbnQoNCwxMik7IGNhcHRjaGEuYj1yYW5kSW50KDYsMTQpOyBjYXB0Y2hhLm9wPSfDlyc7IGNhcHRjaGEucmVzdWx0PWNhcHRjaGEuYSpjYXB0Y2hhLmI7IH0KICAgIGNhcHRjaGFRdWVzdGlvbi50ZXh0Q29udGVudCA9IGDQoNC10YjQuNGC0LU6ICR7Y2FwdGNoYS5hfSAke2NhcHRjaGEub3B9ICR7Y2FwdGNoYS5ifSA9ID9gOwogICAgY2FwdGNoYUFuc3dlci52YWx1ZT0nJzsgY2FwdGNoYUFuc3dlci5mb2N1cygpOwogIH0KICBmdW5jdGlvbiBjYXB0Y2hhSXNSZXF1aXJlZCgpeyByZXR1cm4gYXR0ZW1wdHM+PTI7IH0KICBmdW5jdGlvbiBjYXB0Y2hhSXNTb2x2ZWQoKXsgY29uc3Qgdj0oY2FwdGNoYUFuc3dlci52YWx1ZXx8JycpLnRyaW0oKTsgaWYoIXYpIHJldHVybiBmYWxzZTsgY29uc3Qgbj1OdW1iZXIodik7IHJldHVybiBOdW1iZXIuaXNGaW5pdGUobikgJiYgbj09PWNhcHRjaGEucmVzdWx0OyB9CiAgZnVuY3Rpb24gc2hvd0NhcHRjaGFJZk5lZWRlZCgpeyBpZihjYXB0Y2hhSXNSZXF1aXJlZCgpKXsgY2FwdGNoYVdyYXAuc3R5bGUuZGlzcGxheT0nYmxvY2snOyBpZighY2FwdGNoYVF1ZXN0aW9uLnRleHRDb250ZW50IHx8IGNhcHRjaGFRdWVzdGlvbi50ZXh0Q29udGVudD09PSfigJQnKXsgbmV3Q2FwdGNoYSgpOyB9IH0gfQogIGNhcHRjaGFSZWZyZXNoLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgKCk9PnsgbmV3Q2FwdGNoYSgpOyBzaG93VG9hc3QoJ9Ca0LDQv9GH0LAg0L7QsdC90L7QstC70LXQvdCwLicpOyB9KTsKICBmb3JtLmFkZEV2ZW50TGlzdGVuZXIoJ3N1Ym1pdCcsIChlKT0+ewogICAgZS5wcmV2ZW50RGVmYXVsdCgpOwogICAgaWYoY2FwdGNoYUlzUmVxdWlyZWQoKSl7IHNob3dDYXB0Y2hhSWZOZWVkZWQoKTsgaWYoIWNhcHRjaGFJc1NvbHZlZCgpKXsgc2hvd1RvYXN0KCfQndC10LLQtdGA0L3QsNGPINC60LDQv9GH0LAuINCf0L7Qv9GA0L7QsdGD0LnRgtC1INC10YnRkSDRgNCw0LcuJyk7IHJldHVybjsgfSB9CiAgICBhdHRlbXB0cyArPSAxOyBzaG93Q2FwdGNoYUlmTmVlZGVkKCk7IHNob3dUb2FzdCgn0J3QtdCy0LXRgNC90YvQuSDQu9C+0LPQuNC9INC40LvQuCDQv9Cw0YDQvtC70YwuJyk7CiAgfSk7Cjwvc2NyaXB0PgoKPC9ib2R5Pgo8L2h0bWw+Cg==")
DECOYS+=("PCFkb2N0eXBlIGh0bWw+CjxodG1sIGxhbmc9InJ1Ij4KPGhlYWQ+CjxtZXRhIGNoYXJzZXQ9InV0Zi04Ii8+CjxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsaW5pdGlhbC1zY2FsZT0xIi8+Cjx0aXRsZT7QlNC+0YHRgtGD0L8g0Log0YHQtdGA0LLQtdGA0YM8L3RpdGxlPgo8c3R5bGU+CgoqeyBib3gtc2l6aW5nOmJvcmRlci1ib3g7IH0KaHRtbCxib2R5eyBoZWlnaHQ6MTAwJTsgfQpib2R5eyBtYXJnaW46MDsgbWluLWhlaWdodDoxMDB2aDsgZGlzcGxheTpmbGV4OyBhbGlnbi1pdGVtczpjZW50ZXI7IGp1c3RpZnktY29udGVudDpjZW50ZXI7IHBhZGRpbmc6MjRweDsKICBmb250LWZhbWlseTp1aS1zYW5zLXNlcmlmLCBzeXN0ZW0tdWksIC1hcHBsZS1zeXN0ZW0sICJTZWdvZSBVSSIsIFJvYm90bywgQXJpYWwsICJOb3RvIFNhbnMiLCAiTGliZXJhdGlvbiBTYW5zIiwgc2Fucy1zZXJpZjsgY29sb3I6I2YyZjJmZjsgYmFja2dyb3VuZDojMDcwNjBkOyAgfQouc3RhZ2V7IHBvc2l0aW9uOnJlbGF0aXZlOyB6LWluZGV4OjE7IGRpc3BsYXk6ZmxleDsgIHdpZHRoOm1pbig0NjBweCw5NHZ3KTsgIH0KLmFzaWRleyBkaXNwbGF5Om5vbmU7IH0KLmNhcmR7IHBvc2l0aW9uOnJlbGF0aXZlOyBmbGV4OjE7IG1pbi13aWR0aDowOyBiYWNrZ3JvdW5kOiMwZDBiMTg7IGJvcmRlcjoxcHggc29saWQgIzVkZmY1ZDU1OyBib3JkZXItcmFkaXVzOjE2cHg7IG92ZXJmbG93OmhpZGRlbjsgYm94LXNoYWRvdzowIDAgNDBweCAtOHB4IHJnYmEoOTMsMjU1LDkzLC40NSksIDAgMzBweCA2MHB4IC0yNXB4ICMwMDA7ICB9Ci5jYXJkLWhlYWR7IGRpc3BsYXk6ZmxleDsgYWxpZ24taXRlbXM6Y2VudGVyOyBnYXA6MTBweDsgcGFkZGluZzoxNHB4IDE4cHg7IGJvcmRlci1ib3R0b206MXB4IHNvbGlkICM1ZGZmNWQzMzsgYmFja2dyb3VuZDpyZ2JhKDI1NSwyNTUsMjU1LC4wMik7IH0KLmRvdHsgd2lkdGg6MTFweDsgaGVpZ2h0OjExcHg7IGJvcmRlci1yYWRpdXM6NTAlOyBmbGV4OjAgMCBhdXRvOyBkaXNwbGF5OmlubGluZS1ibG9jazsgfQouZG90LnJ7IGJhY2tncm91bmQ6I2ZmNWY1NzsgfSAuZG90Lnl7IGJhY2tncm91bmQ6I2ZlYmMyZTsgfSAuZG90Lmd7IGJhY2tncm91bmQ6IzI4Yzg0MDsgfQoucGF0aHsgbWFyZ2luLWxlZnQ6OHB4OyBmb250LWZhbWlseTp1aS1tb25vc3BhY2UsIFNGTW9uby1SZWd1bGFyLCBNZW5sbywgQ29uc29sYXMsICJMaWJlcmF0aW9uIE1vbm8iLCBtb25vc3BhY2U7IGZvbnQtc2l6ZToxMnB4OyBjb2xvcjojNmI3MDk5OyBsZXR0ZXItc3BhY2luZzouM3B4OyB9Ci5zdGF0dXMtcGlsbHsgbWFyZ2luLWxlZnQ6YXV0bzsgZGlzcGxheTppbmxpbmUtZmxleDsgYWxpZ24taXRlbXM6Y2VudGVyOyBnYXA6NnB4OyBmb250LWZhbWlseTp1aS1tb25vc3BhY2UsIFNGTW9uby1SZWd1bGFyLCBNZW5sbywgQ29uc29sYXMsICJMaWJlcmF0aW9uIE1vbm8iLCBtb25vc3BhY2U7IGZvbnQtc2l6ZToxMXB4OyBjb2xvcjojNWRmZjVkOyBiYWNrZ3JvdW5kOiM1ZGZmNWQxYTsgYm9yZGVyOjFweCBzb2xpZCAjNWRmZjVkNjY7IHBhZGRpbmc6M3B4IDlweDsgYm9yZGVyLXJhZGl1czo5OTlweDsgfQouc3RhdHVzLXBpbGwgLmxlZHsgd2lkdGg6NnB4OyBoZWlnaHQ6NnB4OyBib3JkZXItcmFkaXVzOjUwJTsgYmFja2dyb3VuZDojNWRmZjVkOyBib3gtc2hhZG93OjAgMCAxMHB4ICM1ZGZmNWQ7IH0KLmNhcmQtYm9keXsgcGFkZGluZzoyNnB4IDI2cHggMjJweDsgfQouZXllYnJvd3sgZGlzcGxheTpibG9jazsgZm9udC1mYW1pbHk6dWktbW9ub3NwYWNlLCBTRk1vbm8tUmVndWxhciwgTWVubG8sIENvbnNvbGFzLCAiTGliZXJhdGlvbiBNb25vIiwgbW9ub3NwYWNlOyBmb250LXNpemU6MTFweDsgdGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlOyBsZXR0ZXItc3BhY2luZzoycHg7IGNvbG9yOiM1ZGZmNWQ7IG1hcmdpbjowIDAgMTBweDsgfQpoMXsgbWFyZ2luOjAgMCA4cHg7IGZvbnQtc2l6ZToyNnB4OyBmb250LXdlaWdodDo2NTA7IGZvbnQtZmFtaWx5OnVpLXNhbnMtc2VyaWYsIHN5c3RlbS11aSwgLWFwcGxlLXN5c3RlbSwgIlNlZ29lIFVJIiwgUm9ib3RvLCBBcmlhbCwgIk5vdG8gU2FucyIsICJMaWJlcmF0aW9uIFNhbnMiLCBzYW5zLXNlcmlmOyBjb2xvcjojZmZmOyBsZXR0ZXItc3BhY2luZzouMnB4OyB9Ci5zdWJ0aXRsZXsgbWFyZ2luOjAgMCAyNHB4OyBjb2xvcjojOWFhMGMwOyBsaW5lLWhlaWdodDoxLjQ1OyBmb250LXNpemU6MTRweDsgfQouZmllbGR7IG1hcmdpbjoxNnB4IDA7IH0KbGFiZWx7IGRpc3BsYXk6YmxvY2s7IGZvbnQtc2l6ZToxMnB4OyBmb250LXdlaWdodDo2MDA7IGNvbG9yOiM5YWEwYzA7IG1hcmdpbjowIDAgOHB4OyB9Ci5pbnB1dHsgZGlzcGxheTpmbGV4OyBhbGlnbi1pdGVtczpjZW50ZXI7IGdhcDoxMXB4OyBwYWRkaW5nOjEycHggMTRweDsgYmFja2dyb3VuZDojMGEwODE0OyBib3JkZXI6MXB4IHNvbGlkICM1ZGZmNWQ0MDsgYm9yZGVyLXJhZGl1czoxMHB4OyB0cmFuc2l0aW9uOmJvcmRlci1jb2xvciAuMTVzIGVhc2UsIGJveC1zaGFkb3cgLjE1cyBlYXNlLCBiYWNrZ3JvdW5kIC4xNXMgZWFzZTsgfQouaW5wdXQ6Zm9jdXMtd2l0aGlueyBib3JkZXItY29sb3I6IzVkZmY1ZDsgYm94LXNoYWRvdzowIDAgMCAzcHggIzVkZmY1ZDMzLCAwIDAgMTRweCByZ2JhKDkzLDI1NSw5MywuNDUpOyB9Ci5pY29ueyB3aWR0aDoxOHB4OyBoZWlnaHQ6MThweDsgZmxleDowIDAgYXV0bzsgY29sb3I6IzZiNzA5OTsgfQouaW5wdXQ6Zm9jdXMtd2l0aGluIC5pY29ueyBjb2xvcjojNWRmZjVkOyB9CmlucHV0eyB3aWR0aDoxMDAlOyBib3JkZXI6MDsgYmFja2dyb3VuZDp0cmFuc3BhcmVudDsgY29sb3I6I2YyZjJmZjsgZm9udC1zaXplOjE0cHg7IGZvbnQtZmFtaWx5OnVpLXNhbnMtc2VyaWYsIHN5c3RlbS11aSwgLWFwcGxlLXN5c3RlbSwgIlNlZ29lIFVJIiwgUm9ib3RvLCBBcmlhbCwgIk5vdG8gU2FucyIsICJMaWJlcmF0aW9uIFNhbnMiLCBzYW5zLXNlcmlmOyBvdXRsaW5lOm5vbmU7IH0KaW5wdXQ6OnBsYWNlaG9sZGVyeyBjb2xvcjojNWE1Zjg1OyB9Ci5idG57IG1hcmdpbi10b3A6MjJweDsgd2lkdGg6MTAwJTsgYm9yZGVyOjA7IHBhZGRpbmc6MTNweCAxNHB4OyBib3JkZXItcmFkaXVzOjEwcHg7IGNvbG9yOiMwNzA2MGQ7IGZvbnQtd2VpZ2h0OjcwMDsgZm9udC1zaXplOjE0cHg7IGxldHRlci1zcGFjaW5nOi4zcHg7IGN1cnNvcjpwb2ludGVyOyBmb250LWZhbWlseTp1aS1zYW5zLXNlcmlmLCBzeXN0ZW0tdWksIC1hcHBsZS1zeXN0ZW0sICJTZWdvZSBVSSIsIFJvYm90bywgQXJpYWwsICJOb3RvIFNhbnMiLCAiTGliZXJhdGlvbiBTYW5zIiwgc2Fucy1zZXJpZjsgYmFja2dyb3VuZDojNWRmZjVkOyBib3gtc2hhZG93OjAgMCAyMnB4IC0ycHggcmdiYSg5MywyNTUsOTMsLjQ1KTsgdHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjA2cyBlYXNlLCBmaWx0ZXIgLjE1cyBlYXNlLCBib3gtc2hhZG93IC4xNXMgZWFzZTsgfQouYnRuOmhvdmVyeyBmaWx0ZXI6YnJpZ2h0bmVzcygxLjA1KTsgIH0KLmJ0bjphY3RpdmV7IHRyYW5zZm9ybTp0cmFuc2xhdGVZKDFweCk7IH0KLmhpbnR7IG1hcmdpbjoxNnB4IDAgMDsgZm9udC1zaXplOjEycHg7IGNvbG9yOiM2YjcwOTk7IHRleHQtYWxpZ246Y2VudGVyOyB9Ci5jYXB0Y2hhLWJveHsgcGFkZGluZzoxNXB4OyBib3JkZXItcmFkaXVzOjEwcHg7IGJhY2tncm91bmQ6IzBhMDgxNDsgYm9yZGVyOjFweCBkYXNoZWQgIzVkZmY1ZDU1OyB9Ci5jYXB0Y2hhLXRvcHsgZGlzcGxheTpmbGV4OyBhbGlnbi1pdGVtczpjZW50ZXI7IGp1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuOyBnYXA6MTJweDsgfQouY2FwdGNoYS1sYWJlbHsgZm9udC1mYW1pbHk6dWktbW9ub3NwYWNlLCBTRk1vbm8tUmVndWxhciwgTWVubG8sIENvbnNvbGFzLCAiTGliZXJhdGlvbiBNb25vIiwgbW9ub3NwYWNlOyBmb250LXNpemU6MTFweDsgdGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlOyBsZXR0ZXItc3BhY2luZzoxcHg7IGNvbG9yOiM5YWEwYzA7IG1hcmdpbi1ib3R0b206NnB4OyB9Ci5jYXB0Y2hhLXF7IGZvbnQtZmFtaWx5OnVpLW1vbm9zcGFjZSwgU0ZNb25vLVJlZ3VsYXIsIE1lbmxvLCBDb25zb2xhcywgIkxpYmVyYXRpb24gTW9ubyIsIG1vbm9zcGFjZTsgZm9udC1zaXplOjE2cHg7IGZvbnQtd2VpZ2h0OjcwMDsgY29sb3I6I2YyZjJmZjsgfQouYnRuLWdob3N0eyBib3JkZXI6MXB4IHNvbGlkICM1ZGZmNWQ1NTsgYmFja2dyb3VuZDp0cmFuc3BhcmVudDsgY29sb3I6IzlhYTBjMDsgcGFkZGluZzo5cHggMTJweDsgYm9yZGVyLXJhZGl1czoxMHB4OyBmb250LXdlaWdodDo2MDA7IGZvbnQtc2l6ZToxM3B4OyBjdXJzb3I6cG9pbnRlcjsgZm9udC1mYW1pbHk6dWktc2Fucy1zZXJpZiwgc3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCAiU2Vnb2UgVUkiLCBSb2JvdG8sIEFyaWFsLCAiTm90byBTYW5zIiwgIkxpYmVyYXRpb24gU2FucyIsIHNhbnMtc2VyaWY7IHRyYW5zaXRpb246LjE1cyBlYXNlOyB9Ci5idG4tZ2hvc3Q6aG92ZXJ7IGJvcmRlci1jb2xvcjojNWRmZjVkOyBjb2xvcjojNWRmZjVkOyB9Ci50b2FzdHsgcG9zaXRpb246Zml4ZWQ7IGxlZnQ6NTAlOyBib3R0b206MjRweDsgdHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTUwJSkgdHJhbnNsYXRlWSg4cHgpOyBkaXNwbGF5OmZsZXg7IGFsaWduLWl0ZW1zOmNlbnRlcjsgZ2FwOjlweDsgYmFja2dyb3VuZDojMGQwYjE4OyBib3JkZXI6MXB4IHNvbGlkICM1ZGZmNWQ1NTsgYm9yZGVyLWxlZnQ6M3B4IHNvbGlkICNmZjU1Nzc7IGNvbG9yOiNmMmYyZmY7IHBhZGRpbmc6MTFweCAxNXB4OyBib3JkZXItcmFkaXVzOjEwcHg7IGJveC1zaGFkb3c6MCAxOHB4IDQwcHggLTEycHggcmdiYSgwLDAsMCwuNDUpOyBmb250LXNpemU6MTNweDsgb3BhY2l0eTowOyBwb2ludGVyLWV2ZW50czpub25lOyB0cmFuc2l0aW9uOm9wYWNpdHkgLjJzIGVhc2UsIHRyYW5zZm9ybSAuMnMgZWFzZTsgfQoudG9hc3Q6OmJlZm9yZXsgY29udGVudDoiIjsgd2lkdGg6N3B4OyBoZWlnaHQ6N3B4OyBib3JkZXItcmFkaXVzOjUwJTsgYmFja2dyb3VuZDojZmY1NTc3OyBmbGV4OjAgMCBhdXRvOyB9Ci50b2FzdC5zaG93eyBvcGFjaXR5OjE7IHRyYW5zZm9ybTp0cmFuc2xhdGVYKC01MCUpIHRyYW5zbGF0ZVkoMCk7IH0KCgo8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoKICA8ZGl2IGNsYXNzPSJzdGFnZSI+CiAgICA8ZGl2IGNsYXNzPSJhc2lkZSIgYXJpYS1oaWRkZW49InRydWUiPjwvZGl2PgogICAgPG1haW4gY2xhc3M9ImNhcmQiIHJvbGU9Im1haW4iIGFyaWEtbGFiZWw9ItCk0L7RgNC80LAg0LTQvtGB0YLRg9C/0LAiPgogICAgICA8ZGl2IGNsYXNzPSJjYXJkLWhlYWQiPgogICAgICAgIDxzcGFuIGNsYXNzPSJkb3QgciI+PC9zcGFuPgogICAgICAgIDxzcGFuIGNsYXNzPSJkb3QgeSI+PC9zcGFuPgogICAgICAgIDxzcGFuIGNsYXNzPSJkb3QgZyI+PC9zcGFuPgogICAgICAgIDxzcGFuIGNsYXNzPSJwYXRoIj5zc2g6Ly9zZWN1cmUtZ2F0ZXdheTwvc3Bhbj4KICAgICAgICA8c3BhbiBjbGFzcz0ic3RhdHVzLXBpbGwiPjxzcGFuIGNsYXNzPSJsZWQiPjwvc3Bhbj5vbmxpbmU8L3NwYW4+CiAgICAgIDwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJjYXJkLWJvZHkiPgogICAgICAgIDxwIGNsYXNzPSJleWVicm93Ij7QkNCy0YLQvtGA0LjQt9Cw0YbQuNGPPC9wPgogICAgICAgIDxoMT7QlNC+0YHRgtGD0L8g0Log0YHQtdGA0LLQtdGA0YM8L2gxPgogICAgICAgIDxwIGNsYXNzPSJzdWJ0aXRsZSI+0JTQu9GPINC00L7RgdGC0YPQv9CwINC6INGB0LXRgNCy0LXRgNGDLCDQstCy0LXQtNC40YLQtSDQu9C+0LPQuNC9INC4INC/0LDRgNC+0LvRjC48L3A+CiAgICAgICAgPGZvcm0gaWQ9ImZha2VMb2dpbkZvcm0iIGF1dG9jb21wbGV0ZT0ib2ZmIj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImZpZWxkIj4KICAgICAgICAgICAgPGxhYmVsIGZvcj0ibG9naW4iPtCb0L7Qs9C40L08L2xhYmVsPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJpbnB1dCI+CiAgICAgICAgICAgICAgPHN2ZyBjbGFzcz0iaWNvbiIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBhcmlhLWhpZGRlbj0idHJ1ZSI+CiAgICAgICAgICAgICAgICA8cGF0aCBkPSJNMTIgMTJhNC41IDQuNSAwIDEgMC00LjUtNC41QTQuNSA0LjUgMCAwIDAgMTIgMTJaIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIxLjciLz4KICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik00IDIwYzEuNi0zLjUgNS01LjUgOC01LjVzNi40IDIgOCA1LjUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjEuNyIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIi8+CiAgICAgICAgICAgICAgPC9zdmc+CiAgICAgICAgICAgICAgPGlucHV0IGlkPSJsb2dpbiIgbmFtZT0ibG9naW4iIHBsYWNlaG9sZGVyPSLQktCy0LXQtNC40YLQtSDQu9C+0LPQuNC9IiAvPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iZmllbGQiPgogICAgICAgICAgICA8bGFiZWwgZm9yPSJwYXNzd29yZCI+0J/QsNGA0L7Qu9GMPC9sYWJlbD4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iaW5wdXQiPgogICAgICAgICAgICAgIDxzdmcgY2xhc3M9Imljb24iIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgYXJpYS1oaWRkZW49InRydWUiPgogICAgICAgICAgICAgICAgPHBhdGggZD0iTTcuNSAxMVY4LjVhNC41IDQuNSAwIDAgMSA5IDBWMTEiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjEuNyIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIi8+CiAgICAgICAgICAgICAgICA8cGF0aCBkPSJNNi41IDExaDExYTEuNSAxLjUgMCAwIDEgMS41IDEuNXY2QTEuNSAxLjUgMCAwIDEgMTcuNSAyMGgtMTFBMS41IDEuNSAwIDAgMSA1IDE4LjV2LTZBMS41IDEuNSAwIDAgMSA2LjUgMTFaIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIxLjciLz4KICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMiAxNXYyIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIxLjciIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIvPgogICAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICAgIDxpbnB1dCBpZD0icGFzc3dvcmQiIG5hbWU9InBhc3N3b3JkIiB0eXBlPSJwYXNzd29yZCIgcGxhY2Vob2xkZXI9ItCS0LLQtdC00LjRgtC1INC/0LDRgNC+0LvRjCIgLz4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxidXR0b24gY2xhc3M9ImJ0biIgdHlwZT0ic3VibWl0Ij7QktC+0LnRgtC4PC9idXR0b24+CiAgICAgICAgICA8ZGl2IGlkPSJjYXB0Y2hhV3JhcCIgc3R5bGU9ImRpc3BsYXk6bm9uZTsgbWFyZ2luLXRvcDoxNnB4OyI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcHRjaGEtYm94Ij4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXB0Y2hhLXRvcCI+CiAgICAgICAgICAgICAgICA8ZGl2PgogICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXB0Y2hhLWxhYmVsIj7Qn9GA0L7QstC10YDQutCwINCx0LXQt9C+0L/QsNGB0L3QvtGB0YLQuDwvZGl2PgogICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJjYXB0Y2hhUXVlc3Rpb24iIGNsYXNzPSJjYXB0Y2hhLXEiPuKAlDwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8YnV0dG9uIGlkPSJjYXB0Y2hhUmVmcmVzaCIgdHlwZT0iYnV0dG9uIiBjbGFzcz0iYnRuLWdob3N0Ij7QntCx0L3QvtCy0LjRgtGMPC9idXR0b24+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPGRpdiBzdHlsZT0ibWFyZ2luLXRvcDoxMnB4OyI+CiAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJjYXB0Y2hhQW5zd2VyIj7QntGC0LLQtdGCPC9sYWJlbD4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImlucHV0Ij4KICAgICAgICAgICAgICAgICAgPGlucHV0IGlkPSJjYXB0Y2hhQW5zd2VyIiBpbnB1dG1vZGU9Im51bWVyaWMiIHBsYWNlaG9sZGVyPSLQktCy0LXQtNC40YLQtSDRh9C40YHQu9C+IiAvPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPHAgY2xhc3M9ImhpbnQiIHN0eWxlPSJtYXJnaW4tdG9wOjEycHg7Ij7Qn9C+0YHQu9C1IDIg0L3QtdCy0LXRgNC90YvRhSDQv9C+0L/Ri9GC0L7QuiDQstGF0L7QtNCwINC90YPQttC90L4g0YDQtdGI0LjRgtGMINC/0YDQuNC80LXRgC48L3A+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9mb3JtPgogICAgICA8L2Rpdj4KICAgIDwvbWFpbj4KICA8L2Rpdj4KICA8ZGl2IGNsYXNzPSJ0b2FzdCIgaWQ9InRvYXN0IiByb2xlPSJzdGF0dXMiIGFyaWEtbGl2ZT0icG9saXRlIj48L2Rpdj4KCgo8c2NyaXB0PgogIGNvbnN0IGZvcm0gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZmFrZUxvZ2luRm9ybScpOwogIGNvbnN0IHRvYXN0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RvYXN0Jyk7CiAgY29uc3QgY2FwdGNoYVdyYXAgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY2FwdGNoYVdyYXAnKTsKICBjb25zdCBjYXB0Y2hhUXVlc3Rpb24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY2FwdGNoYVF1ZXN0aW9uJyk7CiAgY29uc3QgY2FwdGNoYUFuc3dlciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjYXB0Y2hhQW5zd2VyJyk7CiAgY29uc3QgY2FwdGNoYVJlZnJlc2ggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY2FwdGNoYVJlZnJlc2gnKTsKICBsZXQgYXR0ZW1wdHMgPSAwOwogIGxldCBjYXB0Y2hhID0geyBhOiAwLCBiOiAwLCBvcDogJysnLCByZXN1bHQ6IDAgfTsKICBmdW5jdGlvbiBzaG93VG9hc3QodGV4dCl7IHRvYXN0LnRleHRDb250ZW50ID0gdGV4dDsgdG9hc3QuY2xhc3NMaXN0LmFkZCgnc2hvdycpOyBjbGVhclRpbWVvdXQoc2hvd1RvYXN0Ll90KTsgc2hvd1RvYXN0Ll90ID0gc2V0VGltZW91dCgoKT0+dG9hc3QuY2xhc3NMaXN0LnJlbW92ZSgnc2hvdycpLCAyNjAwKTsgfQogIGZ1bmN0aW9uIHJhbmRJbnQobWluLG1heCl7IHJldHVybiBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqKG1heC1taW4rMSkpK21pbjsgfQogIGZ1bmN0aW9uIG5ld0NhcHRjaGEoKXsKICAgIGNvbnN0IG1vZGUgPSByYW5kSW50KDEsMyk7CiAgICBpZihtb2RlPT09MSl7IGNhcHRjaGEuYT1yYW5kSW50KDEyLDk4KTsgY2FwdGNoYS5iPXJhbmRJbnQoMTEsOTcpOyBjYXB0Y2hhLm9wPScrJzsgY2FwdGNoYS5yZXN1bHQ9Y2FwdGNoYS5hK2NhcHRjaGEuYjsgfQogICAgZWxzZSBpZihtb2RlPT09Mil7IGNhcHRjaGEuYT1yYW5kSW50KDMwLDk5KTsgY2FwdGNoYS5iPXJhbmRJbnQoMTAsMjkpOyBjYXB0Y2hhLm9wPSfiiJInOyBjYXB0Y2hhLnJlc3VsdD1jYXB0Y2hhLmEtY2FwdGNoYS5iOyB9CiAgICBlbHNlIHsgY2FwdGNoYS5hPXJhbmRJbnQoNCwxMik7IGNhcHRjaGEuYj1yYW5kSW50KDYsMTQpOyBjYXB0Y2hhLm9wPSfDlyc7IGNhcHRjaGEucmVzdWx0PWNhcHRjaGEuYSpjYXB0Y2hhLmI7IH0KICAgIGNhcHRjaGFRdWVzdGlvbi50ZXh0Q29udGVudCA9IGDQoNC10YjQuNGC0LU6ICR7Y2FwdGNoYS5hfSAke2NhcHRjaGEub3B9ICR7Y2FwdGNoYS5ifSA9ID9gOwogICAgY2FwdGNoYUFuc3dlci52YWx1ZT0nJzsgY2FwdGNoYUFuc3dlci5mb2N1cygpOwogIH0KICBmdW5jdGlvbiBjYXB0Y2hhSXNSZXF1aXJlZCgpeyByZXR1cm4gYXR0ZW1wdHM+PTI7IH0KICBmdW5jdGlvbiBjYXB0Y2hhSXNTb2x2ZWQoKXsgY29uc3Qgdj0oY2FwdGNoYUFuc3dlci52YWx1ZXx8JycpLnRyaW0oKTsgaWYoIXYpIHJldHVybiBmYWxzZTsgY29uc3Qgbj1OdW1iZXIodik7IHJldHVybiBOdW1iZXIuaXNGaW5pdGUobikgJiYgbj09PWNhcHRjaGEucmVzdWx0OyB9CiAgZnVuY3Rpb24gc2hvd0NhcHRjaGFJZk5lZWRlZCgpeyBpZihjYXB0Y2hhSXNSZXF1aXJlZCgpKXsgY2FwdGNoYVdyYXAuc3R5bGUuZGlzcGxheT0nYmxvY2snOyBpZighY2FwdGNoYVF1ZXN0aW9uLnRleHRDb250ZW50IHx8IGNhcHRjaGFRdWVzdGlvbi50ZXh0Q29udGVudD09PSfigJQnKXsgbmV3Q2FwdGNoYSgpOyB9IH0gfQogIGNhcHRjaGFSZWZyZXNoLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgKCk9PnsgbmV3Q2FwdGNoYSgpOyBzaG93VG9hc3QoJ9Ca0LDQv9GH0LAg0L7QsdC90L7QstC70LXQvdCwLicpOyB9KTsKICBmb3JtLmFkZEV2ZW50TGlzdGVuZXIoJ3N1Ym1pdCcsIChlKT0+ewogICAgZS5wcmV2ZW50RGVmYXVsdCgpOwogICAgaWYoY2FwdGNoYUlzUmVxdWlyZWQoKSl7IHNob3dDYXB0Y2hhSWZOZWVkZWQoKTsgaWYoIWNhcHRjaGFJc1NvbHZlZCgpKXsgc2hvd1RvYXN0KCfQndC10LLQtdGA0L3QsNGPINC60LDQv9GH0LAuINCf0L7Qv9GA0L7QsdGD0LnRgtC1INC10YnRkSDRgNCw0LcuJyk7IHJldHVybjsgfSB9CiAgICBhdHRlbXB0cyArPSAxOyBzaG93Q2FwdGNoYUlmTmVlZGVkKCk7IHNob3dUb2FzdCgn0J3QtdCy0LXRgNC90YvQuSDQu9C+0LPQuNC9INC40LvQuCDQv9Cw0YDQvtC70YwuJyk7CiAgfSk7Cjwvc2NyaXB0PgoKPC9ib2R5Pgo8L2h0bWw+Cg==")
DECOYS+=("PCFkb2N0eXBlIGh0bWw+CjxodG1sIGxhbmc9InJ1Ij4KPGhlYWQ+CjxtZXRhIGNoYXJzZXQ9InV0Zi04Ii8+CjxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsaW5pdGlhbC1zY2FsZT0xIi8+Cjx0aXRsZT7QlNC+0YHRgtGD0L8g0Log0YHQtdGA0LLQtdGA0YM8L3RpdGxlPgo8c3R5bGU+CgoqeyBib3gtc2l6aW5nOmJvcmRlci1ib3g7IH0KaHRtbCxib2R5eyBoZWlnaHQ6MTAwJTsgfQpib2R5eyBtYXJnaW46MDsgbWluLWhlaWdodDoxMDB2aDsgZGlzcGxheTpmbGV4OyBhbGlnbi1pdGVtczpjZW50ZXI7IGp1c3RpZnktY29udGVudDpjZW50ZXI7IHBhZGRpbmc6MjRweDsKICBmb250LWZhbWlseTp1aS1zYW5zLXNlcmlmLCBzeXN0ZW0tdWksIC1hcHBsZS1zeXN0ZW0sICJTZWdvZSBVSSIsIFJvYm90bywgQXJpYWwsICJOb3RvIFNhbnMiLCAiTGliZXJhdGlvbiBTYW5zIiwgc2Fucy1zZXJpZjsgY29sb3I6I2YyZjJmZjsgYmFja2dyb3VuZDojMDcwNjBkOyAgfQouc3RhZ2V7IHBvc2l0aW9uOnJlbGF0aXZlOyB6LWluZGV4OjE7IGRpc3BsYXk6ZmxleDsgIHdpZHRoOm1pbig0NjBweCw5NHZ3KTsgIH0KLmFzaWRleyBkaXNwbGF5Om5vbmU7IH0KLmNhcmR7IHBvc2l0aW9uOnJlbGF0aXZlOyBmbGV4OjE7IG1pbi13aWR0aDowOyBiYWNrZ3JvdW5kOiMwZDBiMTg7IGJvcmRlcjoxcHggc29saWQgIzAwZTVmZjU1OyBib3JkZXItcmFkaXVzOjE2cHg7IG92ZXJmbG93OmhpZGRlbjsgYm94LXNoYWRvdzowIDAgNDBweCAtOHB4IHJnYmEoMCwyMjksMjU1LC40NSksIDAgMzBweCA2MHB4IC0yNXB4ICMwMDA7ICB9Ci5jYXJkLWhlYWR7IGRpc3BsYXk6ZmxleDsgYWxpZ24taXRlbXM6Y2VudGVyOyBnYXA6MTBweDsgcGFkZGluZzoxNHB4IDE4cHg7IGJvcmRlci1ib3R0b206MXB4IHNvbGlkICMwMGU1ZmYzMzsgYmFja2dyb3VuZDpyZ2JhKDI1NSwyNTUsMjU1LC4wMik7IH0KLmRvdHsgd2lkdGg6MTFweDsgaGVpZ2h0OjExcHg7IGJvcmRlci1yYWRpdXM6NTAlOyBmbGV4OjAgMCBhdXRvOyBkaXNwbGF5OmlubGluZS1ibG9jazsgfQouZG90LnJ7IGJhY2tncm91bmQ6I2ZmNWY1NzsgfSAuZG90Lnl7IGJhY2tncm91bmQ6I2ZlYmMyZTsgfSAuZG90Lmd7IGJhY2tncm91bmQ6IzI4Yzg0MDsgfQoucGF0aHsgbWFyZ2luLWxlZnQ6OHB4OyBmb250LWZhbWlseTp1aS1tb25vc3BhY2UsIFNGTW9uby1SZWd1bGFyLCBNZW5sbywgQ29uc29sYXMsICJMaWJlcmF0aW9uIE1vbm8iLCBtb25vc3BhY2U7IGZvbnQtc2l6ZToxMnB4OyBjb2xvcjojNmI3MDk5OyBsZXR0ZXItc3BhY2luZzouM3B4OyB9Ci5zdGF0dXMtcGlsbHsgbWFyZ2luLWxlZnQ6YXV0bzsgZGlzcGxheTppbmxpbmUtZmxleDsgYWxpZ24taXRlbXM6Y2VudGVyOyBnYXA6NnB4OyBmb250LWZhbWlseTp1aS1tb25vc3BhY2UsIFNGTW9uby1SZWd1bGFyLCBNZW5sbywgQ29uc29sYXMsICJMaWJlcmF0aW9uIE1vbm8iLCBtb25vc3BhY2U7IGZvbnQtc2l6ZToxMXB4OyBjb2xvcjojMDBlNWZmOyBiYWNrZ3JvdW5kOiMwMGU1ZmYxYTsgYm9yZGVyOjFweCBzb2xpZCAjMDBlNWZmNjY7IHBhZGRpbmc6M3B4IDlweDsgYm9yZGVyLXJhZGl1czo5OTlweDsgfQouc3RhdHVzLXBpbGwgLmxlZHsgd2lkdGg6NnB4OyBoZWlnaHQ6NnB4OyBib3JkZXItcmFkaXVzOjUwJTsgYmFja2dyb3VuZDojMDBlNWZmOyBib3gtc2hhZG93OjAgMCAxMHB4ICMwMGU1ZmY7IH0KLmNhcmQtYm9keXsgcGFkZGluZzoyNnB4IDI2cHggMjJweDsgfQouZXllYnJvd3sgZGlzcGxheTpibG9jazsgZm9udC1mYW1pbHk6dWktbW9ub3NwYWNlLCBTRk1vbm8tUmVndWxhciwgTWVubG8sIENvbnNvbGFzLCAiTGliZXJhdGlvbiBNb25vIiwgbW9ub3NwYWNlOyBmb250LXNpemU6MTFweDsgdGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlOyBsZXR0ZXItc3BhY2luZzoycHg7IGNvbG9yOiMwMGU1ZmY7IG1hcmdpbjowIDAgMTBweDsgfQpoMXsgbWFyZ2luOjAgMCA4cHg7IGZvbnQtc2l6ZToyNnB4OyBmb250LXdlaWdodDo2NTA7IGZvbnQtZmFtaWx5OnVpLXNhbnMtc2VyaWYsIHN5c3RlbS11aSwgLWFwcGxlLXN5c3RlbSwgIlNlZ29lIFVJIiwgUm9ib3RvLCBBcmlhbCwgIk5vdG8gU2FucyIsICJMaWJlcmF0aW9uIFNhbnMiLCBzYW5zLXNlcmlmOyBjb2xvcjojZmZmOyBsZXR0ZXItc3BhY2luZzouMnB4OyB9Ci5zdWJ0aXRsZXsgbWFyZ2luOjAgMCAyNHB4OyBjb2xvcjojOWFhMGMwOyBsaW5lLWhlaWdodDoxLjQ1OyBmb250LXNpemU6MTRweDsgfQouZmllbGR7IG1hcmdpbjoxNnB4IDA7IH0KbGFiZWx7IGRpc3BsYXk6YmxvY2s7IGZvbnQtc2l6ZToxMnB4OyBmb250LXdlaWdodDo2MDA7IGNvbG9yOiM5YWEwYzA7IG1hcmdpbjowIDAgOHB4OyB9Ci5pbnB1dHsgZGlzcGxheTpmbGV4OyBhbGlnbi1pdGVtczpjZW50ZXI7IGdhcDoxMXB4OyBwYWRkaW5nOjEycHggMTRweDsgYmFja2dyb3VuZDojMGEwODE0OyBib3JkZXI6MXB4IHNvbGlkICMwMGU1ZmY0MDsgYm9yZGVyLXJhZGl1czoxMHB4OyB0cmFuc2l0aW9uOmJvcmRlci1jb2xvciAuMTVzIGVhc2UsIGJveC1zaGFkb3cgLjE1cyBlYXNlLCBiYWNrZ3JvdW5kIC4xNXMgZWFzZTsgfQouaW5wdXQ6Zm9jdXMtd2l0aGlueyBib3JkZXItY29sb3I6IzAwZTVmZjsgYm94LXNoYWRvdzowIDAgMCAzcHggIzAwZTVmZjMzLCAwIDAgMTRweCByZ2JhKDAsMjI5LDI1NSwuNDUpOyB9Ci5pY29ueyB3aWR0aDoxOHB4OyBoZWlnaHQ6MThweDsgZmxleDowIDAgYXV0bzsgY29sb3I6IzZiNzA5OTsgfQouaW5wdXQ6Zm9jdXMtd2l0aGluIC5pY29ueyBjb2xvcjojMDBlNWZmOyB9CmlucHV0eyB3aWR0aDoxMDAlOyBib3JkZXI6MDsgYmFja2dyb3VuZDp0cmFuc3BhcmVudDsgY29sb3I6I2YyZjJmZjsgZm9udC1zaXplOjE0cHg7IGZvbnQtZmFtaWx5OnVpLXNhbnMtc2VyaWYsIHN5c3RlbS11aSwgLWFwcGxlLXN5c3RlbSwgIlNlZ29lIFVJIiwgUm9ib3RvLCBBcmlhbCwgIk5vdG8gU2FucyIsICJMaWJlcmF0aW9uIFNhbnMiLCBzYW5zLXNlcmlmOyBvdXRsaW5lOm5vbmU7IH0KaW5wdXQ6OnBsYWNlaG9sZGVyeyBjb2xvcjojNWE1Zjg1OyB9Ci5idG57IG1hcmdpbi10b3A6MjJweDsgd2lkdGg6MTAwJTsgYm9yZGVyOjA7IHBhZGRpbmc6MTNweCAxNHB4OyBib3JkZXItcmFkaXVzOjEwcHg7IGNvbG9yOiMwNzA2MGQ7IGZvbnQtd2VpZ2h0OjcwMDsgZm9udC1zaXplOjE0cHg7IGxldHRlci1zcGFjaW5nOi4zcHg7IGN1cnNvcjpwb2ludGVyOyBmb250LWZhbWlseTp1aS1zYW5zLXNlcmlmLCBzeXN0ZW0tdWksIC1hcHBsZS1zeXN0ZW0sICJTZWdvZSBVSSIsIFJvYm90bywgQXJpYWwsICJOb3RvIFNhbnMiLCAiTGliZXJhdGlvbiBTYW5zIiwgc2Fucy1zZXJpZjsgYmFja2dyb3VuZDojMDBlNWZmOyBib3gtc2hhZG93OjAgMCAyMnB4IC0ycHggcmdiYSgwLDIyOSwyNTUsLjQ1KTsgdHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjA2cyBlYXNlLCBmaWx0ZXIgLjE1cyBlYXNlLCBib3gtc2hhZG93IC4xNXMgZWFzZTsgfQouYnRuOmhvdmVyeyBmaWx0ZXI6YnJpZ2h0bmVzcygxLjA1KTsgIH0KLmJ0bjphY3RpdmV7IHRyYW5zZm9ybTp0cmFuc2xhdGVZKDFweCk7IH0KLmhpbnR7IG1hcmdpbjoxNnB4IDAgMDsgZm9udC1zaXplOjEycHg7IGNvbG9yOiM2YjcwOTk7IHRleHQtYWxpZ246Y2VudGVyOyB9Ci5jYXB0Y2hhLWJveHsgcGFkZGluZzoxNXB4OyBib3JkZXItcmFkaXVzOjEwcHg7IGJhY2tncm91bmQ6IzBhMDgxNDsgYm9yZGVyOjFweCBkYXNoZWQgIzAwZTVmZjU1OyB9Ci5jYXB0Y2hhLXRvcHsgZGlzcGxheTpmbGV4OyBhbGlnbi1pdGVtczpjZW50ZXI7IGp1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuOyBnYXA6MTJweDsgfQouY2FwdGNoYS1sYWJlbHsgZm9udC1mYW1pbHk6dWktbW9ub3NwYWNlLCBTRk1vbm8tUmVndWxhciwgTWVubG8sIENvbnNvbGFzLCAiTGliZXJhdGlvbiBNb25vIiwgbW9ub3NwYWNlOyBmb250LXNpemU6MTFweDsgdGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlOyBsZXR0ZXItc3BhY2luZzoxcHg7IGNvbG9yOiM5YWEwYzA7IG1hcmdpbi1ib3R0b206NnB4OyB9Ci5jYXB0Y2hhLXF7IGZvbnQtZmFtaWx5OnVpLW1vbm9zcGFjZSwgU0ZNb25vLVJlZ3VsYXIsIE1lbmxvLCBDb25zb2xhcywgIkxpYmVyYXRpb24gTW9ubyIsIG1vbm9zcGFjZTsgZm9udC1zaXplOjE2cHg7IGZvbnQtd2VpZ2h0OjcwMDsgY29sb3I6I2YyZjJmZjsgfQouYnRuLWdob3N0eyBib3JkZXI6MXB4IHNvbGlkICMwMGU1ZmY1NTsgYmFja2dyb3VuZDp0cmFuc3BhcmVudDsgY29sb3I6IzlhYTBjMDsgcGFkZGluZzo5cHggMTJweDsgYm9yZGVyLXJhZGl1czoxMHB4OyBmb250LXdlaWdodDo2MDA7IGZvbnQtc2l6ZToxM3B4OyBjdXJzb3I6cG9pbnRlcjsgZm9udC1mYW1pbHk6dWktc2Fucy1zZXJpZiwgc3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCAiU2Vnb2UgVUkiLCBSb2JvdG8sIEFyaWFsLCAiTm90byBTYW5zIiwgIkxpYmVyYXRpb24gU2FucyIsIHNhbnMtc2VyaWY7IHRyYW5zaXRpb246LjE1cyBlYXNlOyB9Ci5idG4tZ2hvc3Q6aG92ZXJ7IGJvcmRlci1jb2xvcjojMDBlNWZmOyBjb2xvcjojMDBlNWZmOyB9Ci50b2FzdHsgcG9zaXRpb246Zml4ZWQ7IGxlZnQ6NTAlOyBib3R0b206MjRweDsgdHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTUwJSkgdHJhbnNsYXRlWSg4cHgpOyBkaXNwbGF5OmZsZXg7IGFsaWduLWl0ZW1zOmNlbnRlcjsgZ2FwOjlweDsgYmFja2dyb3VuZDojMGQwYjE4OyBib3JkZXI6MXB4IHNvbGlkICMwMGU1ZmY1NTsgYm9yZGVyLWxlZnQ6M3B4IHNvbGlkICNmZjU1Nzc7IGNvbG9yOiNmMmYyZmY7IHBhZGRpbmc6MTFweCAxNXB4OyBib3JkZXItcmFkaXVzOjEwcHg7IGJveC1zaGFkb3c6MCAxOHB4IDQwcHggLTEycHggcmdiYSgwLDAsMCwuNDUpOyBmb250LXNpemU6MTNweDsgb3BhY2l0eTowOyBwb2ludGVyLWV2ZW50czpub25lOyB0cmFuc2l0aW9uOm9wYWNpdHkgLjJzIGVhc2UsIHRyYW5zZm9ybSAuMnMgZWFzZTsgfQoudG9hc3Q6OmJlZm9yZXsgY29udGVudDoiIjsgd2lkdGg6N3B4OyBoZWlnaHQ6N3B4OyBib3JkZXItcmFkaXVzOjUwJTsgYmFja2dyb3VuZDojZmY1NTc3OyBmbGV4OjAgMCBhdXRvOyB9Ci50b2FzdC5zaG93eyBvcGFjaXR5OjE7IHRyYW5zZm9ybTp0cmFuc2xhdGVYKC01MCUpIHRyYW5zbGF0ZVkoMCk7IH0KCgo8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoKICA8ZGl2IGNsYXNzPSJzdGFnZSI+CiAgICA8ZGl2IGNsYXNzPSJhc2lkZSIgYXJpYS1oaWRkZW49InRydWUiPjwvZGl2PgogICAgPG1haW4gY2xhc3M9ImNhcmQiIHJvbGU9Im1haW4iIGFyaWEtbGFiZWw9ItCk0L7RgNC80LAg0LTQvtGB0YLRg9C/0LAiPgogICAgICA8ZGl2IGNsYXNzPSJjYXJkLWhlYWQiPgogICAgICAgIDxzcGFuIGNsYXNzPSJkb3QgciI+PC9zcGFuPgogICAgICAgIDxzcGFuIGNsYXNzPSJkb3QgeSI+PC9zcGFuPgogICAgICAgIDxzcGFuIGNsYXNzPSJkb3QgZyI+PC9zcGFuPgogICAgICAgIDxzcGFuIGNsYXNzPSJwYXRoIj5zc2g6Ly9zZWN1cmUtZ2F0ZXdheTwvc3Bhbj4KICAgICAgICA8c3BhbiBjbGFzcz0ic3RhdHVzLXBpbGwiPjxzcGFuIGNsYXNzPSJsZWQiPjwvc3Bhbj5vbmxpbmU8L3NwYW4+CiAgICAgIDwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJjYXJkLWJvZHkiPgogICAgICAgIDxwIGNsYXNzPSJleWVicm93Ij7QkNCy0YLQvtGA0LjQt9Cw0YbQuNGPPC9wPgogICAgICAgIDxoMT7QlNC+0YHRgtGD0L8g0Log0YHQtdGA0LLQtdGA0YM8L2gxPgogICAgICAgIDxwIGNsYXNzPSJzdWJ0aXRsZSI+0JTQu9GPINC00L7RgdGC0YPQv9CwINC6INGB0LXRgNCy0LXRgNGDLCDQstCy0LXQtNC40YLQtSDQu9C+0LPQuNC9INC4INC/0LDRgNC+0LvRjC48L3A+CiAgICAgICAgPGZvcm0gaWQ9ImZha2VMb2dpbkZvcm0iIGF1dG9jb21wbGV0ZT0ib2ZmIj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImZpZWxkIj4KICAgICAgICAgICAgPGxhYmVsIGZvcj0ibG9naW4iPtCb0L7Qs9C40L08L2xhYmVsPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJpbnB1dCI+CiAgICAgICAgICAgICAgPHN2ZyBjbGFzcz0iaWNvbiIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBhcmlhLWhpZGRlbj0idHJ1ZSI+CiAgICAgICAgICAgICAgICA8cGF0aCBkPSJNMTIgMTJhNC41IDQuNSAwIDEgMC00LjUtNC41QTQuNSA0LjUgMCAwIDAgMTIgMTJaIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIxLjciLz4KICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik00IDIwYzEuNi0zLjUgNS01LjUgOC01LjVzNi40IDIgOCA1LjUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjEuNyIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIi8+CiAgICAgICAgICAgICAgPC9zdmc+CiAgICAgICAgICAgICAgPGlucHV0IGlkPSJsb2dpbiIgbmFtZT0ibG9naW4iIHBsYWNlaG9sZGVyPSLQktCy0LXQtNC40YLQtSDQu9C+0LPQuNC9IiAvPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iZmllbGQiPgogICAgICAgICAgICA8bGFiZWwgZm9yPSJwYXNzd29yZCI+0J/QsNGA0L7Qu9GMPC9sYWJlbD4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iaW5wdXQiPgogICAgICAgICAgICAgIDxzdmcgY2xhc3M9Imljb24iIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgYXJpYS1oaWRkZW49InRydWUiPgogICAgICAgICAgICAgICAgPHBhdGggZD0iTTcuNSAxMVY4LjVhNC41IDQuNSAwIDAgMSA5IDBWMTEiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjEuNyIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIi8+CiAgICAgICAgICAgICAgICA8cGF0aCBkPSJNNi41IDExaDExYTEuNSAxLjUgMCAwIDEgMS41IDEuNXY2QTEuNSAxLjUgMCAwIDEgMTcuNSAyMGgtMTFBMS41IDEuNSAwIDAgMSA1IDE4LjV2LTZBMS41IDEuNSAwIDAgMSA2LjUgMTFaIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIxLjciLz4KICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMiAxNXYyIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIxLjciIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIvPgogICAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICAgIDxpbnB1dCBpZD0icGFzc3dvcmQiIG5hbWU9InBhc3N3b3JkIiB0eXBlPSJwYXNzd29yZCIgcGxhY2Vob2xkZXI9ItCS0LLQtdC00LjRgtC1INC/0LDRgNC+0LvRjCIgLz4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxidXR0b24gY2xhc3M9ImJ0biIgdHlwZT0ic3VibWl0Ij7QktC+0LnRgtC4PC9idXR0b24+CiAgICAgICAgICA8ZGl2IGlkPSJjYXB0Y2hhV3JhcCIgc3R5bGU9ImRpc3BsYXk6bm9uZTsgbWFyZ2luLXRvcDoxNnB4OyI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcHRjaGEtYm94Ij4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXB0Y2hhLXRvcCI+CiAgICAgICAgICAgICAgICA8ZGl2PgogICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXB0Y2hhLWxhYmVsIj7Qn9GA0L7QstC10YDQutCwINCx0LXQt9C+0L/QsNGB0L3QvtGB0YLQuDwvZGl2PgogICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJjYXB0Y2hhUXVlc3Rpb24iIGNsYXNzPSJjYXB0Y2hhLXEiPuKAlDwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8YnV0dG9uIGlkPSJjYXB0Y2hhUmVmcmVzaCIgdHlwZT0iYnV0dG9uIiBjbGFzcz0iYnRuLWdob3N0Ij7QntCx0L3QvtCy0LjRgtGMPC9idXR0b24+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPGRpdiBzdHlsZT0ibWFyZ2luLXRvcDoxMnB4OyI+CiAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJjYXB0Y2hhQW5zd2VyIj7QntGC0LLQtdGCPC9sYWJlbD4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImlucHV0Ij4KICAgICAgICAgICAgICAgICAgPGlucHV0IGlkPSJjYXB0Y2hhQW5zd2VyIiBpbnB1dG1vZGU9Im51bWVyaWMiIHBsYWNlaG9sZGVyPSLQktCy0LXQtNC40YLQtSDRh9C40YHQu9C+IiAvPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPHAgY2xhc3M9ImhpbnQiIHN0eWxlPSJtYXJnaW4tdG9wOjEycHg7Ij7Qn9C+0YHQu9C1IDIg0L3QtdCy0LXRgNC90YvRhSDQv9C+0L/Ri9GC0L7QuiDQstGF0L7QtNCwINC90YPQttC90L4g0YDQtdGI0LjRgtGMINC/0YDQuNC80LXRgC48L3A+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9mb3JtPgogICAgICA8L2Rpdj4KICAgIDwvbWFpbj4KICA8L2Rpdj4KICA8ZGl2IGNsYXNzPSJ0b2FzdCIgaWQ9InRvYXN0IiByb2xlPSJzdGF0dXMiIGFyaWEtbGl2ZT0icG9saXRlIj48L2Rpdj4KCgo8c2NyaXB0PgogIGNvbnN0IGZvcm0gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZmFrZUxvZ2luRm9ybScpOwogIGNvbnN0IHRvYXN0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RvYXN0Jyk7CiAgY29uc3QgY2FwdGNoYVdyYXAgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY2FwdGNoYVdyYXAnKTsKICBjb25zdCBjYXB0Y2hhUXVlc3Rpb24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY2FwdGNoYVF1ZXN0aW9uJyk7CiAgY29uc3QgY2FwdGNoYUFuc3dlciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjYXB0Y2hhQW5zd2VyJyk7CiAgY29uc3QgY2FwdGNoYVJlZnJlc2ggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY2FwdGNoYVJlZnJlc2gnKTsKICBsZXQgYXR0ZW1wdHMgPSAwOwogIGxldCBjYXB0Y2hhID0geyBhOiAwLCBiOiAwLCBvcDogJysnLCByZXN1bHQ6IDAgfTsKICBmdW5jdGlvbiBzaG93VG9hc3QodGV4dCl7IHRvYXN0LnRleHRDb250ZW50ID0gdGV4dDsgdG9hc3QuY2xhc3NMaXN0LmFkZCgnc2hvdycpOyBjbGVhclRpbWVvdXQoc2hvd1RvYXN0Ll90KTsgc2hvd1RvYXN0Ll90ID0gc2V0VGltZW91dCgoKT0+dG9hc3QuY2xhc3NMaXN0LnJlbW92ZSgnc2hvdycpLCAyNjAwKTsgfQogIGZ1bmN0aW9uIHJhbmRJbnQobWluLG1heCl7IHJldHVybiBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqKG1heC1taW4rMSkpK21pbjsgfQogIGZ1bmN0aW9uIG5ld0NhcHRjaGEoKXsKICAgIGNvbnN0IG1vZGUgPSByYW5kSW50KDEsMyk7CiAgICBpZihtb2RlPT09MSl7IGNhcHRjaGEuYT1yYW5kSW50KDEyLDk4KTsgY2FwdGNoYS5iPXJhbmRJbnQoMTEsOTcpOyBjYXB0Y2hhLm9wPScrJzsgY2FwdGNoYS5yZXN1bHQ9Y2FwdGNoYS5hK2NhcHRjaGEuYjsgfQogICAgZWxzZSBpZihtb2RlPT09Mil7IGNhcHRjaGEuYT1yYW5kSW50KDMwLDk5KTsgY2FwdGNoYS5iPXJhbmRJbnQoMTAsMjkpOyBjYXB0Y2hhLm9wPSfiiJInOyBjYXB0Y2hhLnJlc3VsdD1jYXB0Y2hhLmEtY2FwdGNoYS5iOyB9CiAgICBlbHNlIHsgY2FwdGNoYS5hPXJhbmRJbnQoNCwxMik7IGNhcHRjaGEuYj1yYW5kSW50KDYsMTQpOyBjYXB0Y2hhLm9wPSfDlyc7IGNhcHRjaGEucmVzdWx0PWNhcHRjaGEuYSpjYXB0Y2hhLmI7IH0KICAgIGNhcHRjaGFRdWVzdGlvbi50ZXh0Q29udGVudCA9IGDQoNC10YjQuNGC0LU6ICR7Y2FwdGNoYS5hfSAke2NhcHRjaGEub3B9ICR7Y2FwdGNoYS5ifSA9ID9gOwogICAgY2FwdGNoYUFuc3dlci52YWx1ZT0nJzsgY2FwdGNoYUFuc3dlci5mb2N1cygpOwogIH0KICBmdW5jdGlvbiBjYXB0Y2hhSXNSZXF1aXJlZCgpeyByZXR1cm4gYXR0ZW1wdHM+PTI7IH0KICBmdW5jdGlvbiBjYXB0Y2hhSXNTb2x2ZWQoKXsgY29uc3Qgdj0oY2FwdGNoYUFuc3dlci52YWx1ZXx8JycpLnRyaW0oKTsgaWYoIXYpIHJldHVybiBmYWxzZTsgY29uc3Qgbj1OdW1iZXIodik7IHJldHVybiBOdW1iZXIuaXNGaW5pdGUobikgJiYgbj09PWNhcHRjaGEucmVzdWx0OyB9CiAgZnVuY3Rpb24gc2hvd0NhcHRjaGFJZk5lZWRlZCgpeyBpZihjYXB0Y2hhSXNSZXF1aXJlZCgpKXsgY2FwdGNoYVdyYXAuc3R5bGUuZGlzcGxheT0nYmxvY2snOyBpZighY2FwdGNoYVF1ZXN0aW9uLnRleHRDb250ZW50IHx8IGNhcHRjaGFRdWVzdGlvbi50ZXh0Q29udGVudD09PSfigJQnKXsgbmV3Q2FwdGNoYSgpOyB9IH0gfQogIGNhcHRjaGFSZWZyZXNoLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgKCk9PnsgbmV3Q2FwdGNoYSgpOyBzaG93VG9hc3QoJ9Ca0LDQv9GH0LAg0L7QsdC90L7QstC70LXQvdCwLicpOyB9KTsKICBmb3JtLmFkZEV2ZW50TGlzdGVuZXIoJ3N1Ym1pdCcsIChlKT0+ewogICAgZS5wcmV2ZW50RGVmYXVsdCgpOwogICAgaWYoY2FwdGNoYUlzUmVxdWlyZWQoKSl7IHNob3dDYXB0Y2hhSWZOZWVkZWQoKTsgaWYoIWNhcHRjaGFJc1NvbHZlZCgpKXsgc2hvd1RvYXN0KCfQndC10LLQtdGA0L3QsNGPINC60LDQv9GH0LAuINCf0L7Qv9GA0L7QsdGD0LnRgtC1INC10YnRkSDRgNCw0LcuJyk7IHJldHVybjsgfSB9CiAgICBhdHRlbXB0cyArPSAxOyBzaG93Q2FwdGNoYUlmTmVlZGVkKCk7IHNob3dUb2FzdCgn0J3QtdCy0LXRgNC90YvQuSDQu9C+0LPQuNC9INC40LvQuCDQv9Cw0YDQvtC70YwuJyk7CiAgfSk7Cjwvc2NyaXB0PgoKPC9ib2R5Pgo8L2h0bWw+Cg==")
DECOYS+=("PCFkb2N0eXBlIGh0bWw+CjxodG1sIGxhbmc9InJ1Ij4KPGhlYWQ+CjxtZXRhIGNoYXJzZXQ9InV0Zi04Ii8+CjxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsaW5pdGlhbC1zY2FsZT0xIi8+Cjx0aXRsZT7QlNC+0YHRgtGD0L8g0Log0YHQtdGA0LLQtdGA0YM8L3RpdGxlPgo8c3R5bGU+CgoqeyBib3gtc2l6aW5nOmJvcmRlci1ib3g7IH0KaHRtbCxib2R5eyBoZWlnaHQ6MTAwJTsgfQpib2R5eyBtYXJnaW46MDsgbWluLWhlaWdodDoxMDB2aDsgZGlzcGxheTpmbGV4OyBhbGlnbi1pdGVtczpjZW50ZXI7IGp1c3RpZnktY29udGVudDpjZW50ZXI7IHBhZGRpbmc6MjRweDsKICBmb250LWZhbWlseTp1aS1zYW5zLXNlcmlmLCBzeXN0ZW0tdWksIC1hcHBsZS1zeXN0ZW0sICJTZWdvZSBVSSIsIFJvYm90bywgQXJpYWwsICJOb3RvIFNhbnMiLCAiTGliZXJhdGlvbiBTYW5zIiwgc2Fucy1zZXJpZjsgY29sb3I6IzRhNTU2ODsgYmFja2dyb3VuZDojZTNlOGVmOyAgfQouc3RhZ2V7IHBvc2l0aW9uOnJlbGF0aXZlOyB6LWluZGV4OjE7IGRpc3BsYXk6ZmxleDsgIHdpZHRoOm1pbig0NjBweCw5NHZ3KTsgIH0KLmFzaWRleyBkaXNwbGF5Om5vbmU7IH0KLmNhcmR7IHBvc2l0aW9uOnJlbGF0aXZlOyBmbGV4OjE7IG1pbi13aWR0aDowOyBiYWNrZ3JvdW5kOiNlM2U4ZWY7IGJvcmRlcjowOyBib3JkZXItcmFkaXVzOjIycHg7IG92ZXJmbG93OmhpZGRlbjsgYm94LXNoYWRvdzo5cHggOXB4IDIwcHggI2JjYzRkMCwgLTlweCAtOXB4IDIwcHggI2ZmZmZmZjsgIH0KLmNhcmQtaGVhZHsgZGlzcGxheTpub25lOyBhbGlnbi1pdGVtczpjZW50ZXI7IGdhcDoxMHB4OyBwYWRkaW5nOjE0cHggMThweDsgYm9yZGVyLWJvdHRvbToxcHggc29saWQgIzFmMmMzODsgYmFja2dyb3VuZDpyZ2JhKDI1NSwyNTUsMjU1LC4wMTUpOyB9Ci5kb3R7IHdpZHRoOjExcHg7IGhlaWdodDoxMXB4OyBib3JkZXItcmFkaXVzOjUwJTsgZmxleDowIDAgYXV0bzsgZGlzcGxheTppbmxpbmUtYmxvY2s7IH0KLmRvdC5yeyBiYWNrZ3JvdW5kOiNmZjVmNTc7IH0gLmRvdC55eyBiYWNrZ3JvdW5kOiNmZWJjMmU7IH0gLmRvdC5neyBiYWNrZ3JvdW5kOiMyOGM4NDA7IH0KLnBhdGh7IG1hcmdpbi1sZWZ0OjhweDsgZm9udC1mYW1pbHk6dWktbW9ub3NwYWNlLCBTRk1vbm8tUmVndWxhciwgTWVubG8sIENvbnNvbGFzLCAiTGliZXJhdGlvbiBNb25vIiwgbW9ub3NwYWNlOyBmb250LXNpemU6MTJweDsgY29sb3I6IzlhYTNiNTsgbGV0dGVyLXNwYWNpbmc6LjNweDsgfQouc3RhdHVzLXBpbGx7IG1hcmdpbi1sZWZ0OmF1dG87IGRpc3BsYXk6aW5saW5lLWZsZXg7IGFsaWduLWl0ZW1zOmNlbnRlcjsgZ2FwOjZweDsgZm9udC1mYW1pbHk6dWktbW9ub3NwYWNlLCBTRk1vbm8tUmVndWxhciwgTWVubG8sIENvbnNvbGFzLCAiTGliZXJhdGlvbiBNb25vIiwgbW9ub3NwYWNlOyBmb250LXNpemU6MTFweDsgY29sb3I6IzViN2NmYTsgYmFja2dyb3VuZDp0cmFuc3BhcmVudDsgYm9yZGVyOjFweCBzb2xpZCB0cmFuc3BhcmVudDsgcGFkZGluZzozcHggOXB4OyBib3JkZXItcmFkaXVzOjk5OXB4OyB9Ci5zdGF0dXMtcGlsbCAubGVkeyB3aWR0aDo2cHg7IGhlaWdodDo2cHg7IGJvcmRlci1yYWRpdXM6NTAlOyBiYWNrZ3JvdW5kOiM1YjdjZmE7ICB9Ci5jYXJkLWJvZHl7IHBhZGRpbmc6MjZweCAyNnB4IDIycHg7IH0KLmV5ZWJyb3d7IGRpc3BsYXk6YmxvY2s7IGZvbnQtZmFtaWx5OnVpLW1vbm9zcGFjZSwgU0ZNb25vLVJlZ3VsYXIsIE1lbmxvLCBDb25zb2xhcywgIkxpYmVyYXRpb24gTW9ubyIsIG1vbm9zcGFjZTsgZm9udC1zaXplOjExcHg7IHRleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTsgbGV0dGVyLXNwYWNpbmc6MnB4OyBjb2xvcjojNWI3Y2ZhOyBtYXJnaW46MCAwIDEwcHg7IH0KaDF7IG1hcmdpbjowIDAgOHB4OyBmb250LXNpemU6MjZweDsgZm9udC13ZWlnaHQ6NjUwOyBmb250LWZhbWlseTp1aS1zYW5zLXNlcmlmLCBzeXN0ZW0tdWksIC1hcHBsZS1zeXN0ZW0sICJTZWdvZSBVSSIsIFJvYm90bywgQXJpYWwsICJOb3RvIFNhbnMiLCAiTGliZXJhdGlvbiBTYW5zIiwgc2Fucy1zZXJpZjsgY29sb3I6IzRhNTU2ODsgbGV0dGVyLXNwYWNpbmc6LjJweDsgfQouc3VidGl0bGV7IG1hcmdpbjowIDAgMjRweDsgY29sb3I6IzcxN2M5MTsgbGluZS1oZWlnaHQ6MS40NTsgZm9udC1zaXplOjE0cHg7IH0KLmZpZWxkeyBtYXJnaW46MTZweCAwOyB9CmxhYmVseyBkaXNwbGF5OmJsb2NrOyBmb250LXNpemU6MTJweDsgZm9udC13ZWlnaHQ6NjAwOyBjb2xvcjojNzE3YzkxOyBtYXJnaW46MCAwIDhweDsgfQouaW5wdXR7IGRpc3BsYXk6ZmxleDsgYWxpZ24taXRlbXM6Y2VudGVyOyBnYXA6MTFweDsgcGFkZGluZzoxMnB4IDE0cHg7IGJhY2tncm91bmQ6I2UzZThlZjsgYm9yZGVyOjA7IGJvcmRlci1yYWRpdXM6MTRweDsgdHJhbnNpdGlvbjpib3JkZXItY29sb3IgLjE1cyBlYXNlLCBib3gtc2hhZG93IC4xNXMgZWFzZSwgYmFja2dyb3VuZCAuMTVzIGVhc2U7IH0KLmlucHV0OmZvY3VzLXdpdGhpbnsgYm9yZGVyLWNvbG9yOiM1YjdjZmE7IGJveC1zaGFkb3c6aW5zZXQgM3B4IDNweCA3cHggI2JjYzRkMCwgaW5zZXQgLTNweCAtM3B4IDdweCAjZmZmZmZmOyB9Ci5pY29ueyB3aWR0aDoxOHB4OyBoZWlnaHQ6MThweDsgZmxleDowIDAgYXV0bzsgY29sb3I6IzlhYTNiNTsgfQouaW5wdXQ6Zm9jdXMtd2l0aGluIC5pY29ueyBjb2xvcjojNWI3Y2ZhOyB9CmlucHV0eyB3aWR0aDoxMDAlOyBib3JkZXI6MDsgYmFja2dyb3VuZDp0cmFuc3BhcmVudDsgY29sb3I6IzRhNTU2ODsgZm9udC1zaXplOjE0cHg7IGZvbnQtZmFtaWx5OnVpLXNhbnMtc2VyaWYsIHN5c3RlbS11aSwgLWFwcGxlLXN5c3RlbSwgIlNlZ29lIFVJIiwgUm9ib3RvLCBBcmlhbCwgIk5vdG8gU2FucyIsICJMaWJlcmF0aW9uIFNhbnMiLCBzYW5zLXNlcmlmOyBvdXRsaW5lOm5vbmU7IH0KaW5wdXQ6OnBsYWNlaG9sZGVyeyBjb2xvcjojYTdhZmJmOyB9Ci5idG57IG1hcmdpbi10b3A6MjJweDsgd2lkdGg6MTAwJTsgYm9yZGVyOjA7IHBhZGRpbmc6MTNweCAxNHB4OyBib3JkZXItcmFkaXVzOjE0cHg7IGNvbG9yOiNmZmZmZmY7IGZvbnQtd2VpZ2h0OjcwMDsgZm9udC1zaXplOjE0cHg7IGxldHRlci1zcGFjaW5nOi4zcHg7IGN1cnNvcjpwb2ludGVyOyBmb250LWZhbWlseTp1aS1zYW5zLXNlcmlmLCBzeXN0ZW0tdWksIC1hcHBsZS1zeXN0ZW0sICJTZWdvZSBVSSIsIFJvYm90bywgQXJpYWwsICJOb3RvIFNhbnMiLCAiTGliZXJhdGlvbiBTYW5zIiwgc2Fucy1zZXJpZjsgYmFja2dyb3VuZDojNWI3Y2ZhOyBib3gtc2hhZG93OjZweCA2cHggMTRweCAjYmNjNGQwLCAtNnB4IC02cHggMTRweCAjZmZmZmZmOyB0cmFuc2l0aW9uOnRyYW5zZm9ybSAuMDZzIGVhc2UsIGZpbHRlciAuMTVzIGVhc2UsIGJveC1zaGFkb3cgLjE1cyBlYXNlOyB9Ci5idG46aG92ZXJ7IGZpbHRlcjpicmlnaHRuZXNzKDEuMDUpOyAgfQouYnRuOmFjdGl2ZXsgdHJhbnNmb3JtOnRyYW5zbGF0ZVkoMXB4KTsgfQouaGludHsgbWFyZ2luOjE2cHggMCAwOyBmb250LXNpemU6MTJweDsgY29sb3I6IzlhYTNiNTsgdGV4dC1hbGlnbjpjZW50ZXI7IH0KLmNhcHRjaGEtYm94eyBwYWRkaW5nOjE1cHg7IGJvcmRlci1yYWRpdXM6MTRweDsgYmFja2dyb3VuZDojZTNlOGVmOyBib3JkZXI6MXB4IGRhc2hlZCAjYmNjNGQwOyB9Ci5jYXB0Y2hhLXRvcHsgZGlzcGxheTpmbGV4OyBhbGlnbi1pdGVtczpjZW50ZXI7IGp1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuOyBnYXA6MTJweDsgfQouY2FwdGNoYS1sYWJlbHsgZm9udC1mYW1pbHk6dWktbW9ub3NwYWNlLCBTRk1vbm8tUmVndWxhciwgTWVubG8sIENvbnNvbGFzLCAiTGliZXJhdGlvbiBNb25vIiwgbW9ub3NwYWNlOyBmb250LXNpemU6MTFweDsgdGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlOyBsZXR0ZXItc3BhY2luZzoxcHg7IGNvbG9yOiM3MTdjOTE7IG1hcmdpbi1ib3R0b206NnB4OyB9Ci5jYXB0Y2hhLXF7IGZvbnQtZmFtaWx5OnVpLW1vbm9zcGFjZSwgU0ZNb25vLVJlZ3VsYXIsIE1lbmxvLCBDb25zb2xhcywgIkxpYmVyYXRpb24gTW9ubyIsIG1vbm9zcGFjZTsgZm9udC1zaXplOjE2cHg7IGZvbnQtd2VpZ2h0OjcwMDsgY29sb3I6IzRhNTU2ODsgfQouYnRuLWdob3N0eyBib3JkZXI6MXB4IHNvbGlkICNiY2M0ZDA7IGJhY2tncm91bmQ6dHJhbnNwYXJlbnQ7IGNvbG9yOiM3MTdjOTE7IHBhZGRpbmc6OXB4IDEycHg7IGJvcmRlci1yYWRpdXM6MTRweDsgZm9udC13ZWlnaHQ6NjAwOyBmb250LXNpemU6MTNweDsgY3Vyc29yOnBvaW50ZXI7IGZvbnQtZmFtaWx5OnVpLXNhbnMtc2VyaWYsIHN5c3RlbS11aSwgLWFwcGxlLXN5c3RlbSwgIlNlZ29lIFVJIiwgUm9ib3RvLCBBcmlhbCwgIk5vdG8gU2FucyIsICJMaWJlcmF0aW9uIFNhbnMiLCBzYW5zLXNlcmlmOyB0cmFuc2l0aW9uOi4xNXMgZWFzZTsgfQouYnRuLWdob3N0OmhvdmVyeyBib3JkZXItY29sb3I6IzViN2NmYTsgY29sb3I6IzViN2NmYTsgfQoudG9hc3R7IHBvc2l0aW9uOmZpeGVkOyBsZWZ0OjUwJTsgYm90dG9tOjI0cHg7IHRyYW5zZm9ybTp0cmFuc2xhdGVYKC01MCUpIHRyYW5zbGF0ZVkoOHB4KTsgZGlzcGxheTpmbGV4OyBhbGlnbi1pdGVtczpjZW50ZXI7IGdhcDo5cHg7IGJhY2tncm91bmQ6I2UzZThlZjsgYm9yZGVyOjFweCBzb2xpZCAjYmNjNGQwOyBib3JkZXItbGVmdDozcHggc29saWQgI2U1NzQ2ZTsgY29sb3I6IzRhNTU2ODsgcGFkZGluZzoxMXB4IDE1cHg7IGJvcmRlci1yYWRpdXM6MTRweDsgYm94LXNoYWRvdzowIDE4cHggNDBweCAtMTJweCByZ2JhKDAsMCwwLC40NSk7IGZvbnQtc2l6ZToxM3B4OyBvcGFjaXR5OjA7IHBvaW50ZXItZXZlbnRzOm5vbmU7IHRyYW5zaXRpb246b3BhY2l0eSAuMnMgZWFzZSwgdHJhbnNmb3JtIC4ycyBlYXNlOyB9Ci50b2FzdDo6YmVmb3JleyBjb250ZW50OiIiOyB3aWR0aDo3cHg7IGhlaWdodDo3cHg7IGJvcmRlci1yYWRpdXM6NTAlOyBiYWNrZ3JvdW5kOiNlNTc0NmU7IGZsZXg6MCAwIGF1dG87IH0KLnRvYXN0LnNob3d7IG9wYWNpdHk6MTsgdHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTUwJSkgdHJhbnNsYXRlWSgwKTsgfQouaW5wdXR7IGJveC1zaGFkb3c6aW5zZXQgNHB4IDRweCA5cHggI2JjYzRkMCwgaW5zZXQgLTRweCAtNHB4IDlweCAjZmZmZmZmOyB9IC5idG4tZ2hvc3R7IGJveC1zaGFkb3c6NHB4IDRweCAxMHB4ICNiY2M0ZDAsIC00cHggLTRweCAxMHB4ICNmZmZmZmY7IGJvcmRlcjowOyB9Cgo8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoKICA8ZGl2IGNsYXNzPSJzdGFnZSI+CiAgICA8ZGl2IGNsYXNzPSJhc2lkZSIgYXJpYS1oaWRkZW49InRydWUiPjwvZGl2PgogICAgPG1haW4gY2xhc3M9ImNhcmQiIHJvbGU9Im1haW4iIGFyaWEtbGFiZWw9ItCk0L7RgNC80LAg0LTQvtGB0YLRg9C/0LAiPgogICAgICA8ZGl2IGNsYXNzPSJjYXJkLWhlYWQiPgogICAgICAgIDxzcGFuIGNsYXNzPSJkb3QgciI+PC9zcGFuPgogICAgICAgIDxzcGFuIGNsYXNzPSJkb3QgeSI+PC9zcGFuPgogICAgICAgIDxzcGFuIGNsYXNzPSJkb3QgZyI+PC9zcGFuPgogICAgICAgIDxzcGFuIGNsYXNzPSJwYXRoIj5zc2g6Ly9zZWN1cmUtZ2F0ZXdheTwvc3Bhbj4KICAgICAgICA8c3BhbiBjbGFzcz0ic3RhdHVzLXBpbGwiPjxzcGFuIGNsYXNzPSJsZWQiPjwvc3Bhbj5vbmxpbmU8L3NwYW4+CiAgICAgIDwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJjYXJkLWJvZHkiPgogICAgICAgIDxwIGNsYXNzPSJleWVicm93Ij7QkNCy0YLQvtGA0LjQt9Cw0YbQuNGPPC9wPgogICAgICAgIDxoMT7QlNC+0YHRgtGD0L8g0Log0YHQtdGA0LLQtdGA0YM8L2gxPgogICAgICAgIDxwIGNsYXNzPSJzdWJ0aXRsZSI+0JTQu9GPINC00L7RgdGC0YPQv9CwINC6INGB0LXRgNCy0LXRgNGDLCDQstCy0LXQtNC40YLQtSDQu9C+0LPQuNC9INC4INC/0LDRgNC+0LvRjC48L3A+CiAgICAgICAgPGZvcm0gaWQ9ImZha2VMb2dpbkZvcm0iIGF1dG9jb21wbGV0ZT0ib2ZmIj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImZpZWxkIj4KICAgICAgICAgICAgPGxhYmVsIGZvcj0ibG9naW4iPtCb0L7Qs9C40L08L2xhYmVsPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJpbnB1dCI+CiAgICAgICAgICAgICAgPHN2ZyBjbGFzcz0iaWNvbiIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBhcmlhLWhpZGRlbj0idHJ1ZSI+CiAgICAgICAgICAgICAgICA8cGF0aCBkPSJNMTIgMTJhNC41IDQuNSAwIDEgMC00LjUtNC41QTQuNSA0LjUgMCAwIDAgMTIgMTJaIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIxLjciLz4KICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik00IDIwYzEuNi0zLjUgNS01LjUgOC01LjVzNi40IDIgOCA1LjUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjEuNyIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIi8+CiAgICAgICAgICAgICAgPC9zdmc+CiAgICAgICAgICAgICAgPGlucHV0IGlkPSJsb2dpbiIgbmFtZT0ibG9naW4iIHBsYWNlaG9sZGVyPSLQktCy0LXQtNC40YLQtSDQu9C+0LPQuNC9IiAvPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iZmllbGQiPgogICAgICAgICAgICA8bGFiZWwgZm9yPSJwYXNzd29yZCI+0J/QsNGA0L7Qu9GMPC9sYWJlbD4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iaW5wdXQiPgogICAgICAgICAgICAgIDxzdmcgY2xhc3M9Imljb24iIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgYXJpYS1oaWRkZW49InRydWUiPgogICAgICAgICAgICAgICAgPHBhdGggZD0iTTcuNSAxMVY4LjVhNC41IDQuNSAwIDAgMSA5IDBWMTEiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjEuNyIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIi8+CiAgICAgICAgICAgICAgICA8cGF0aCBkPSJNNi41IDExaDExYTEuNSAxLjUgMCAwIDEgMS41IDEuNXY2QTEuNSAxLjUgMCAwIDEgMTcuNSAyMGgtMTFBMS41IDEuNSAwIDAgMSA1IDE4LjV2LTZBMS41IDEuNSAwIDAgMSA2LjUgMTFaIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIxLjciLz4KICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMiAxNXYyIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIxLjciIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIvPgogICAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICAgIDxpbnB1dCBpZD0icGFzc3dvcmQiIG5hbWU9InBhc3N3b3JkIiB0eXBlPSJwYXNzd29yZCIgcGxhY2Vob2xkZXI9ItCS0LLQtdC00LjRgtC1INC/0LDRgNC+0LvRjCIgLz4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxidXR0b24gY2xhc3M9ImJ0biIgdHlwZT0ic3VibWl0Ij7QktC+0LnRgtC4PC9idXR0b24+CiAgICAgICAgICA8ZGl2IGlkPSJjYXB0Y2hhV3JhcCIgc3R5bGU9ImRpc3BsYXk6bm9uZTsgbWFyZ2luLXRvcDoxNnB4OyI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcHRjaGEtYm94Ij4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXB0Y2hhLXRvcCI+CiAgICAgICAgICAgICAgICA8ZGl2PgogICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXB0Y2hhLWxhYmVsIj7Qn9GA0L7QstC10YDQutCwINCx0LXQt9C+0L/QsNGB0L3QvtGB0YLQuDwvZGl2PgogICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJjYXB0Y2hhUXVlc3Rpb24iIGNsYXNzPSJjYXB0Y2hhLXEiPuKAlDwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8YnV0dG9uIGlkPSJjYXB0Y2hhUmVmcmVzaCIgdHlwZT0iYnV0dG9uIiBjbGFzcz0iYnRuLWdob3N0Ij7QntCx0L3QvtCy0LjRgtGMPC9idXR0b24+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPGRpdiBzdHlsZT0ibWFyZ2luLXRvcDoxMnB4OyI+CiAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJjYXB0Y2hhQW5zd2VyIj7QntGC0LLQtdGCPC9sYWJlbD4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImlucHV0Ij4KICAgICAgICAgICAgICAgICAgPGlucHV0IGlkPSJjYXB0Y2hhQW5zd2VyIiBpbnB1dG1vZGU9Im51bWVyaWMiIHBsYWNlaG9sZGVyPSLQktCy0LXQtNC40YLQtSDRh9C40YHQu9C+IiAvPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPHAgY2xhc3M9ImhpbnQiIHN0eWxlPSJtYXJnaW4tdG9wOjEycHg7Ij7Qn9C+0YHQu9C1IDIg0L3QtdCy0LXRgNC90YvRhSDQv9C+0L/Ri9GC0L7QuiDQstGF0L7QtNCwINC90YPQttC90L4g0YDQtdGI0LjRgtGMINC/0YDQuNC80LXRgC48L3A+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9mb3JtPgogICAgICA8L2Rpdj4KICAgIDwvbWFpbj4KICA8L2Rpdj4KICA8ZGl2IGNsYXNzPSJ0b2FzdCIgaWQ9InRvYXN0IiByb2xlPSJzdGF0dXMiIGFyaWEtbGl2ZT0icG9saXRlIj48L2Rpdj4KCgo8c2NyaXB0PgogIGNvbnN0IGZvcm0gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZmFrZUxvZ2luRm9ybScpOwogIGNvbnN0IHRvYXN0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RvYXN0Jyk7CiAgY29uc3QgY2FwdGNoYVdyYXAgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY2FwdGNoYVdyYXAnKTsKICBjb25zdCBjYXB0Y2hhUXVlc3Rpb24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY2FwdGNoYVF1ZXN0aW9uJyk7CiAgY29uc3QgY2FwdGNoYUFuc3dlciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjYXB0Y2hhQW5zd2VyJyk7CiAgY29uc3QgY2FwdGNoYVJlZnJlc2ggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY2FwdGNoYVJlZnJlc2gnKTsKICBsZXQgYXR0ZW1wdHMgPSAwOwogIGxldCBjYXB0Y2hhID0geyBhOiAwLCBiOiAwLCBvcDogJysnLCByZXN1bHQ6IDAgfTsKICBmdW5jdGlvbiBzaG93VG9hc3QodGV4dCl7IHRvYXN0LnRleHRDb250ZW50ID0gdGV4dDsgdG9hc3QuY2xhc3NMaXN0LmFkZCgnc2hvdycpOyBjbGVhclRpbWVvdXQoc2hvd1RvYXN0Ll90KTsgc2hvd1RvYXN0Ll90ID0gc2V0VGltZW91dCgoKT0+dG9hc3QuY2xhc3NMaXN0LnJlbW92ZSgnc2hvdycpLCAyNjAwKTsgfQogIGZ1bmN0aW9uIHJhbmRJbnQobWluLG1heCl7IHJldHVybiBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqKG1heC1taW4rMSkpK21pbjsgfQogIGZ1bmN0aW9uIG5ld0NhcHRjaGEoKXsKICAgIGNvbnN0IG1vZGUgPSByYW5kSW50KDEsMyk7CiAgICBpZihtb2RlPT09MSl7IGNhcHRjaGEuYT1yYW5kSW50KDEyLDk4KTsgY2FwdGNoYS5iPXJhbmRJbnQoMTEsOTcpOyBjYXB0Y2hhLm9wPScrJzsgY2FwdGNoYS5yZXN1bHQ9Y2FwdGNoYS5hK2NhcHRjaGEuYjsgfQogICAgZWxzZSBpZihtb2RlPT09Mil7IGNhcHRjaGEuYT1yYW5kSW50KDMwLDk5KTsgY2FwdGNoYS5iPXJhbmRJbnQoMTAsMjkpOyBjYXB0Y2hhLm9wPSfiiJInOyBjYXB0Y2hhLnJlc3VsdD1jYXB0Y2hhLmEtY2FwdGNoYS5iOyB9CiAgICBlbHNlIHsgY2FwdGNoYS5hPXJhbmRJbnQoNCwxMik7IGNhcHRjaGEuYj1yYW5kSW50KDYsMTQpOyBjYXB0Y2hhLm9wPSfDlyc7IGNhcHRjaGEucmVzdWx0PWNhcHRjaGEuYSpjYXB0Y2hhLmI7IH0KICAgIGNhcHRjaGFRdWVzdGlvbi50ZXh0Q29udGVudCA9IGDQoNC10YjQuNGC0LU6ICR7Y2FwdGNoYS5hfSAke2NhcHRjaGEub3B9ICR7Y2FwdGNoYS5ifSA9ID9gOwogICAgY2FwdGNoYUFuc3dlci52YWx1ZT0nJzsgY2FwdGNoYUFuc3dlci5mb2N1cygpOwogIH0KICBmdW5jdGlvbiBjYXB0Y2hhSXNSZXF1aXJlZCgpeyByZXR1cm4gYXR0ZW1wdHM+PTI7IH0KICBmdW5jdGlvbiBjYXB0Y2hhSXNTb2x2ZWQoKXsgY29uc3Qgdj0oY2FwdGNoYUFuc3dlci52YWx1ZXx8JycpLnRyaW0oKTsgaWYoIXYpIHJldHVybiBmYWxzZTsgY29uc3Qgbj1OdW1iZXIodik7IHJldHVybiBOdW1iZXIuaXNGaW5pdGUobikgJiYgbj09PWNhcHRjaGEucmVzdWx0OyB9CiAgZnVuY3Rpb24gc2hvd0NhcHRjaGFJZk5lZWRlZCgpeyBpZihjYXB0Y2hhSXNSZXF1aXJlZCgpKXsgY2FwdGNoYVdyYXAuc3R5bGUuZGlzcGxheT0nYmxvY2snOyBpZighY2FwdGNoYVF1ZXN0aW9uLnRleHRDb250ZW50IHx8IGNhcHRjaGFRdWVzdGlvbi50ZXh0Q29udGVudD09PSfigJQnKXsgbmV3Q2FwdGNoYSgpOyB9IH0gfQogIGNhcHRjaGFSZWZyZXNoLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgKCk9PnsgbmV3Q2FwdGNoYSgpOyBzaG93VG9hc3QoJ9Ca0LDQv9GH0LAg0L7QsdC90L7QstC70LXQvdCwLicpOyB9KTsKICBmb3JtLmFkZEV2ZW50TGlzdGVuZXIoJ3N1Ym1pdCcsIChlKT0+ewogICAgZS5wcmV2ZW50RGVmYXVsdCgpOwogICAgaWYoY2FwdGNoYUlzUmVxdWlyZWQoKSl7IHNob3dDYXB0Y2hhSWZOZWVkZWQoKTsgaWYoIWNhcHRjaGFJc1NvbHZlZCgpKXsgc2hvd1RvYXN0KCfQndC10LLQtdGA0L3QsNGPINC60LDQv9GH0LAuINCf0L7Qv9GA0L7QsdGD0LnRgtC1INC10YnRkSDRgNCw0LcuJyk7IHJldHVybjsgfSB9CiAgICBhdHRlbXB0cyArPSAxOyBzaG93Q2FwdGNoYUlmTmVlZGVkKCk7IHNob3dUb2FzdCgn0J3QtdCy0LXRgNC90YvQuSDQu9C+0LPQuNC9INC40LvQuCDQv9Cw0YDQvtC70YwuJyk7CiAgfSk7Cjwvc2NyaXB0PgoKPC9ib2R5Pgo8L2h0bWw+Cg==")
DECOYS+=("PCFkb2N0eXBlIGh0bWw+CjxodG1sIGxhbmc9InJ1Ij4KPGhlYWQ+CjxtZXRhIGNoYXJzZXQ9InV0Zi04Ii8+CjxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsaW5pdGlhbC1zY2FsZT0xIi8+Cjx0aXRsZT7QlNC+0YHRgtGD0L8g0Log0YHQtdGA0LLQtdGA0YM8L3RpdGxlPgo8c3R5bGU+CgoqeyBib3gtc2l6aW5nOmJvcmRlci1ib3g7IH0KaHRtbCxib2R5eyBoZWlnaHQ6MTAwJTsgfQpib2R5eyBtYXJnaW46MDsgbWluLWhlaWdodDoxMDB2aDsgZGlzcGxheTpmbGV4OyBhbGlnbi1pdGVtczpjZW50ZXI7IGp1c3RpZnktY29udGVudDpjZW50ZXI7IHBhZGRpbmc6MjRweDsKICBmb250LWZhbWlseTp1aS1zYW5zLXNlcmlmLCBzeXN0ZW0tdWksIC1hcHBsZS1zeXN0ZW0sICJTZWdvZSBVSSIsIFJvYm90bywgQXJpYWwsICJOb3RvIFNhbnMiLCAiTGliZXJhdGlvbiBTYW5zIiwgc2Fucy1zZXJpZjsgY29sb3I6IzViNTE0NTsgYmFja2dyb3VuZDojZWNlNGQ4OyAgfQouc3RhZ2V7IHBvc2l0aW9uOnJlbGF0aXZlOyB6LWluZGV4OjE7IGRpc3BsYXk6ZmxleDsgIHdpZHRoOm1pbig0NjBweCw5NHZ3KTsgIH0KLmFzaWRleyBkaXNwbGF5Om5vbmU7IH0KLmNhcmR7IHBvc2l0aW9uOnJlbGF0aXZlOyBmbGV4OjE7IG1pbi13aWR0aDowOyBiYWNrZ3JvdW5kOiNlY2U0ZDg7IGJvcmRlcjowOyBib3JkZXItcmFkaXVzOjIycHg7IG92ZXJmbG93OmhpZGRlbjsgYm94LXNoYWRvdzo5cHggOXB4IDIwcHggI2NhYmZhZCwgLTlweCAtOXB4IDIwcHggI2ZmZmFmMTsgIH0KLmNhcmQtaGVhZHsgZGlzcGxheTpub25lOyBhbGlnbi1pdGVtczpjZW50ZXI7IGdhcDoxMHB4OyBwYWRkaW5nOjE0cHggMThweDsgYm9yZGVyLWJvdHRvbToxcHggc29saWQgIzFmMmMzODsgYmFja2dyb3VuZDpyZ2JhKDI1NSwyNTUsMjU1LC4wMTUpOyB9Ci5kb3R7IHdpZHRoOjExcHg7IGhlaWdodDoxMXB4OyBib3JkZXItcmFkaXVzOjUwJTsgZmxleDowIDAgYXV0bzsgZGlzcGxheTppbmxpbmUtYmxvY2s7IH0KLmRvdC5yeyBiYWNrZ3JvdW5kOiNmZjVmNTc7IH0gLmRvdC55eyBiYWNrZ3JvdW5kOiNmZWJjMmU7IH0gLmRvdC5neyBiYWNrZ3JvdW5kOiMyOGM4NDA7IH0KLnBhdGh7IG1hcmdpbi1sZWZ0OjhweDsgZm9udC1mYW1pbHk6dWktbW9ub3NwYWNlLCBTRk1vbm8tUmVndWxhciwgTWVubG8sIENvbnNvbGFzLCAiTGliZXJhdGlvbiBNb25vIiwgbW9ub3NwYWNlOyBmb250LXNpemU6MTJweDsgY29sb3I6IzlhYTNiNTsgbGV0dGVyLXNwYWNpbmc6LjNweDsgfQouc3RhdHVzLXBpbGx7IG1hcmdpbi1sZWZ0OmF1dG87IGRpc3BsYXk6aW5saW5lLWZsZXg7IGFsaWduLWl0ZW1zOmNlbnRlcjsgZ2FwOjZweDsgZm9udC1mYW1pbHk6dWktbW9ub3NwYWNlLCBTRk1vbm8tUmVndWxhciwgTWVubG8sIENvbnNvbGFzLCAiTGliZXJhdGlvbiBNb25vIiwgbW9ub3NwYWNlOyBmb250LXNpemU6MTFweDsgY29sb3I6I2MyODQzYjsgYmFja2dyb3VuZDp0cmFuc3BhcmVudDsgYm9yZGVyOjFweCBzb2xpZCB0cmFuc3BhcmVudDsgcGFkZGluZzozcHggOXB4OyBib3JkZXItcmFkaXVzOjk5OXB4OyB9Ci5zdGF0dXMtcGlsbCAubGVkeyB3aWR0aDo2cHg7IGhlaWdodDo2cHg7IGJvcmRlci1yYWRpdXM6NTAlOyBiYWNrZ3JvdW5kOiNjMjg0M2I7ICB9Ci5jYXJkLWJvZHl7IHBhZGRpbmc6MjZweCAyNnB4IDIycHg7IH0KLmV5ZWJyb3d7IGRpc3BsYXk6YmxvY2s7IGZvbnQtZmFtaWx5OnVpLW1vbm9zcGFjZSwgU0ZNb25vLVJlZ3VsYXIsIE1lbmxvLCBDb25zb2xhcywgIkxpYmVyYXRpb24gTW9ubyIsIG1vbm9zcGFjZTsgZm9udC1zaXplOjExcHg7IHRleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTsgbGV0dGVyLXNwYWNpbmc6MnB4OyBjb2xvcjojYzI4NDNiOyBtYXJnaW46MCAwIDEwcHg7IH0KaDF7IG1hcmdpbjowIDAgOHB4OyBmb250LXNpemU6MjZweDsgZm9udC13ZWlnaHQ6NjUwOyBmb250LWZhbWlseTp1aS1zYW5zLXNlcmlmLCBzeXN0ZW0tdWksIC1hcHBsZS1zeXN0ZW0sICJTZWdvZSBVSSIsIFJvYm90bywgQXJpYWwsICJOb3RvIFNhbnMiLCAiTGliZXJhdGlvbiBTYW5zIiwgc2Fucy1zZXJpZjsgY29sb3I6IzViNTE0NTsgbGV0dGVyLXNwYWNpbmc6LjJweDsgfQouc3VidGl0bGV7IG1hcmdpbjowIDAgMjRweDsgY29sb3I6Izg1N2E2YjsgbGluZS1oZWlnaHQ6MS40NTsgZm9udC1zaXplOjE0cHg7IH0KLmZpZWxkeyBtYXJnaW46MTZweCAwOyB9CmxhYmVseyBkaXNwbGF5OmJsb2NrOyBmb250LXNpemU6MTJweDsgZm9udC13ZWlnaHQ6NjAwOyBjb2xvcjojODU3YTZiOyBtYXJnaW46MCAwIDhweDsgfQouaW5wdXR7IGRpc3BsYXk6ZmxleDsgYWxpZ24taXRlbXM6Y2VudGVyOyBnYXA6MTFweDsgcGFkZGluZzoxMnB4IDE0cHg7IGJhY2tncm91bmQ6I2VjZTRkODsgYm9yZGVyOjA7IGJvcmRlci1yYWRpdXM6MTRweDsgdHJhbnNpdGlvbjpib3JkZXItY29sb3IgLjE1cyBlYXNlLCBib3gtc2hhZG93IC4xNXMgZWFzZSwgYmFja2dyb3VuZCAuMTVzIGVhc2U7IH0KLmlucHV0OmZvY3VzLXdpdGhpbnsgYm9yZGVyLWNvbG9yOiNjMjg0M2I7IGJveC1zaGFkb3c6aW5zZXQgM3B4IDNweCA3cHggI2NhYmZhZCwgaW5zZXQgLTNweCAtM3B4IDdweCAjZmZmYWYxOyB9Ci5pY29ueyB3aWR0aDoxOHB4OyBoZWlnaHQ6MThweDsgZmxleDowIDAgYXV0bzsgY29sb3I6IzlhYTNiNTsgfQouaW5wdXQ6Zm9jdXMtd2l0aGluIC5pY29ueyBjb2xvcjojYzI4NDNiOyB9CmlucHV0eyB3aWR0aDoxMDAlOyBib3JkZXI6MDsgYmFja2dyb3VuZDp0cmFuc3BhcmVudDsgY29sb3I6IzViNTE0NTsgZm9udC1zaXplOjE0cHg7IGZvbnQtZmFtaWx5OnVpLXNhbnMtc2VyaWYsIHN5c3RlbS11aSwgLWFwcGxlLXN5c3RlbSwgIlNlZ29lIFVJIiwgUm9ib3RvLCBBcmlhbCwgIk5vdG8gU2FucyIsICJMaWJlcmF0aW9uIFNhbnMiLCBzYW5zLXNlcmlmOyBvdXRsaW5lOm5vbmU7IH0KaW5wdXQ6OnBsYWNlaG9sZGVyeyBjb2xvcjojYTdhZmJmOyB9Ci5idG57IG1hcmdpbi10b3A6MjJweDsgd2lkdGg6MTAwJTsgYm9yZGVyOjA7IHBhZGRpbmc6MTNweCAxNHB4OyBib3JkZXItcmFkaXVzOjE0cHg7IGNvbG9yOiNmZmZmZmY7IGZvbnQtd2VpZ2h0OjcwMDsgZm9udC1zaXplOjE0cHg7IGxldHRlci1zcGFjaW5nOi4zcHg7IGN1cnNvcjpwb2ludGVyOyBmb250LWZhbWlseTp1aS1zYW5zLXNlcmlmLCBzeXN0ZW0tdWksIC1hcHBsZS1zeXN0ZW0sICJTZWdvZSBVSSIsIFJvYm90bywgQXJpYWwsICJOb3RvIFNhbnMiLCAiTGliZXJhdGlvbiBTYW5zIiwgc2Fucy1zZXJpZjsgYmFja2dyb3VuZDojYzI4NDNiOyBib3gtc2hhZG93OjZweCA2cHggMTRweCAjY2FiZmFkLCAtNnB4IC02cHggMTRweCAjZmZmYWYxOyB0cmFuc2l0aW9uOnRyYW5zZm9ybSAuMDZzIGVhc2UsIGZpbHRlciAuMTVzIGVhc2UsIGJveC1zaGFkb3cgLjE1cyBlYXNlOyB9Ci5idG46aG92ZXJ7IGZpbHRlcjpicmlnaHRuZXNzKDEuMDUpOyAgfQouYnRuOmFjdGl2ZXsgdHJhbnNmb3JtOnRyYW5zbGF0ZVkoMXB4KTsgfQouaGludHsgbWFyZ2luOjE2cHggMCAwOyBmb250LXNpemU6MTJweDsgY29sb3I6IzlhYTNiNTsgdGV4dC1hbGlnbjpjZW50ZXI7IH0KLmNhcHRjaGEtYm94eyBwYWRkaW5nOjE1cHg7IGJvcmRlci1yYWRpdXM6MTRweDsgYmFja2dyb3VuZDojZWNlNGQ4OyBib3JkZXI6MXB4IGRhc2hlZCAjY2FiZmFkOyB9Ci5jYXB0Y2hhLXRvcHsgZGlzcGxheTpmbGV4OyBhbGlnbi1pdGVtczpjZW50ZXI7IGp1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuOyBnYXA6MTJweDsgfQouY2FwdGNoYS1sYWJlbHsgZm9udC1mYW1pbHk6dWktbW9ub3NwYWNlLCBTRk1vbm8tUmVndWxhciwgTWVubG8sIENvbnNvbGFzLCAiTGliZXJhdGlvbiBNb25vIiwgbW9ub3NwYWNlOyBmb250LXNpemU6MTFweDsgdGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlOyBsZXR0ZXItc3BhY2luZzoxcHg7IGNvbG9yOiM4NTdhNmI7IG1hcmdpbi1ib3R0b206NnB4OyB9Ci5jYXB0Y2hhLXF7IGZvbnQtZmFtaWx5OnVpLW1vbm9zcGFjZSwgU0ZNb25vLVJlZ3VsYXIsIE1lbmxvLCBDb25zb2xhcywgIkxpYmVyYXRpb24gTW9ubyIsIG1vbm9zcGFjZTsgZm9udC1zaXplOjE2cHg7IGZvbnQtd2VpZ2h0OjcwMDsgY29sb3I6IzViNTE0NTsgfQouYnRuLWdob3N0eyBib3JkZXI6MXB4IHNvbGlkICNjYWJmYWQ7IGJhY2tncm91bmQ6dHJhbnNwYXJlbnQ7IGNvbG9yOiM4NTdhNmI7IHBhZGRpbmc6OXB4IDEycHg7IGJvcmRlci1yYWRpdXM6MTRweDsgZm9udC13ZWlnaHQ6NjAwOyBmb250LXNpemU6MTNweDsgY3Vyc29yOnBvaW50ZXI7IGZvbnQtZmFtaWx5OnVpLXNhbnMtc2VyaWYsIHN5c3RlbS11aSwgLWFwcGxlLXN5c3RlbSwgIlNlZ29lIFVJIiwgUm9ib3RvLCBBcmlhbCwgIk5vdG8gU2FucyIsICJMaWJlcmF0aW9uIFNhbnMiLCBzYW5zLXNlcmlmOyB0cmFuc2l0aW9uOi4xNXMgZWFzZTsgfQouYnRuLWdob3N0OmhvdmVyeyBib3JkZXItY29sb3I6I2MyODQzYjsgY29sb3I6I2MyODQzYjsgfQoudG9hc3R7IHBvc2l0aW9uOmZpeGVkOyBsZWZ0OjUwJTsgYm90dG9tOjI0cHg7IHRyYW5zZm9ybTp0cmFuc2xhdGVYKC01MCUpIHRyYW5zbGF0ZVkoOHB4KTsgZGlzcGxheTpmbGV4OyBhbGlnbi1pdGVtczpjZW50ZXI7IGdhcDo5cHg7IGJhY2tncm91bmQ6I2VjZTRkODsgYm9yZGVyOjFweCBzb2xpZCAjY2FiZmFkOyBib3JkZXItbGVmdDozcHggc29saWQgI2U1NzQ2ZTsgY29sb3I6IzViNTE0NTsgcGFkZGluZzoxMXB4IDE1cHg7IGJvcmRlci1yYWRpdXM6MTRweDsgYm94LXNoYWRvdzowIDE4cHggNDBweCAtMTJweCByZ2JhKDAsMCwwLC40NSk7IGZvbnQtc2l6ZToxM3B4OyBvcGFjaXR5OjA7IHBvaW50ZXItZXZlbnRzOm5vbmU7IHRyYW5zaXRpb246b3BhY2l0eSAuMnMgZWFzZSwgdHJhbnNmb3JtIC4ycyBlYXNlOyB9Ci50b2FzdDo6YmVmb3JleyBjb250ZW50OiIiOyB3aWR0aDo3cHg7IGhlaWdodDo3cHg7IGJvcmRlci1yYWRpdXM6NTAlOyBiYWNrZ3JvdW5kOiNlNTc0NmU7IGZsZXg6MCAwIGF1dG87IH0KLnRvYXN0LnNob3d7IG9wYWNpdHk6MTsgdHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTUwJSkgdHJhbnNsYXRlWSgwKTsgfQouaW5wdXR7IGJveC1zaGFkb3c6aW5zZXQgNHB4IDRweCA5cHggI2NhYmZhZCwgaW5zZXQgLTRweCAtNHB4IDlweCAjZmZmYWYxOyB9IC5idG4tZ2hvc3R7IGJveC1zaGFkb3c6NHB4IDRweCAxMHB4ICNjYWJmYWQsIC00cHggLTRweCAxMHB4ICNmZmZhZjE7IGJvcmRlcjowOyB9Cgo8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoKICA8ZGl2IGNsYXNzPSJzdGFnZSI+CiAgICA8ZGl2IGNsYXNzPSJhc2lkZSIgYXJpYS1oaWRkZW49InRydWUiPjwvZGl2PgogICAgPG1haW4gY2xhc3M9ImNhcmQiIHJvbGU9Im1haW4iIGFyaWEtbGFiZWw9ItCk0L7RgNC80LAg0LTQvtGB0YLRg9C/0LAiPgogICAgICA8ZGl2IGNsYXNzPSJjYXJkLWhlYWQiPgogICAgICAgIDxzcGFuIGNsYXNzPSJkb3QgciI+PC9zcGFuPgogICAgICAgIDxzcGFuIGNsYXNzPSJkb3QgeSI+PC9zcGFuPgogICAgICAgIDxzcGFuIGNsYXNzPSJkb3QgZyI+PC9zcGFuPgogICAgICAgIDxzcGFuIGNsYXNzPSJwYXRoIj5zc2g6Ly9zZWN1cmUtZ2F0ZXdheTwvc3Bhbj4KICAgICAgICA8c3BhbiBjbGFzcz0ic3RhdHVzLXBpbGwiPjxzcGFuIGNsYXNzPSJsZWQiPjwvc3Bhbj5vbmxpbmU8L3NwYW4+CiAgICAgIDwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJjYXJkLWJvZHkiPgogICAgICAgIDxwIGNsYXNzPSJleWVicm93Ij7QkNCy0YLQvtGA0LjQt9Cw0YbQuNGPPC9wPgogICAgICAgIDxoMT7QlNC+0YHRgtGD0L8g0Log0YHQtdGA0LLQtdGA0YM8L2gxPgogICAgICAgIDxwIGNsYXNzPSJzdWJ0aXRsZSI+0JTQu9GPINC00L7RgdGC0YPQv9CwINC6INGB0LXRgNCy0LXRgNGDLCDQstCy0LXQtNC40YLQtSDQu9C+0LPQuNC9INC4INC/0LDRgNC+0LvRjC48L3A+CiAgICAgICAgPGZvcm0gaWQ9ImZha2VMb2dpbkZvcm0iIGF1dG9jb21wbGV0ZT0ib2ZmIj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImZpZWxkIj4KICAgICAgICAgICAgPGxhYmVsIGZvcj0ibG9naW4iPtCb0L7Qs9C40L08L2xhYmVsPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJpbnB1dCI+CiAgICAgICAgICAgICAgPHN2ZyBjbGFzcz0iaWNvbiIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBhcmlhLWhpZGRlbj0idHJ1ZSI+CiAgICAgICAgICAgICAgICA8cGF0aCBkPSJNMTIgMTJhNC41IDQuNSAwIDEgMC00LjUtNC41QTQuNSA0LjUgMCAwIDAgMTIgMTJaIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIxLjciLz4KICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik00IDIwYzEuNi0zLjUgNS01LjUgOC01LjVzNi40IDIgOCA1LjUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjEuNyIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIi8+CiAgICAgICAgICAgICAgPC9zdmc+CiAgICAgICAgICAgICAgPGlucHV0IGlkPSJsb2dpbiIgbmFtZT0ibG9naW4iIHBsYWNlaG9sZGVyPSLQktCy0LXQtNC40YLQtSDQu9C+0LPQuNC9IiAvPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iZmllbGQiPgogICAgICAgICAgICA8bGFiZWwgZm9yPSJwYXNzd29yZCI+0J/QsNGA0L7Qu9GMPC9sYWJlbD4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iaW5wdXQiPgogICAgICAgICAgICAgIDxzdmcgY2xhc3M9Imljb24iIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgYXJpYS1oaWRkZW49InRydWUiPgogICAgICAgICAgICAgICAgPHBhdGggZD0iTTcuNSAxMVY4LjVhNC41IDQuNSAwIDAgMSA5IDBWMTEiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjEuNyIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIi8+CiAgICAgICAgICAgICAgICA8cGF0aCBkPSJNNi41IDExaDExYTEuNSAxLjUgMCAwIDEgMS41IDEuNXY2QTEuNSAxLjUgMCAwIDEgMTcuNSAyMGgtMTFBMS41IDEuNSAwIDAgMSA1IDE4LjV2LTZBMS41IDEuNSAwIDAgMSA2LjUgMTFaIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIxLjciLz4KICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMiAxNXYyIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIxLjciIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIvPgogICAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICAgIDxpbnB1dCBpZD0icGFzc3dvcmQiIG5hbWU9InBhc3N3b3JkIiB0eXBlPSJwYXNzd29yZCIgcGxhY2Vob2xkZXI9ItCS0LLQtdC00LjRgtC1INC/0LDRgNC+0LvRjCIgLz4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxidXR0b24gY2xhc3M9ImJ0biIgdHlwZT0ic3VibWl0Ij7QktC+0LnRgtC4PC9idXR0b24+CiAgICAgICAgICA8ZGl2IGlkPSJjYXB0Y2hhV3JhcCIgc3R5bGU9ImRpc3BsYXk6bm9uZTsgbWFyZ2luLXRvcDoxNnB4OyI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcHRjaGEtYm94Ij4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXB0Y2hhLXRvcCI+CiAgICAgICAgICAgICAgICA8ZGl2PgogICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXB0Y2hhLWxhYmVsIj7Qn9GA0L7QstC10YDQutCwINCx0LXQt9C+0L/QsNGB0L3QvtGB0YLQuDwvZGl2PgogICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJjYXB0Y2hhUXVlc3Rpb24iIGNsYXNzPSJjYXB0Y2hhLXEiPuKAlDwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8YnV0dG9uIGlkPSJjYXB0Y2hhUmVmcmVzaCIgdHlwZT0iYnV0dG9uIiBjbGFzcz0iYnRuLWdob3N0Ij7QntCx0L3QvtCy0LjRgtGMPC9idXR0b24+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPGRpdiBzdHlsZT0ibWFyZ2luLXRvcDoxMnB4OyI+CiAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJjYXB0Y2hhQW5zd2VyIj7QntGC0LLQtdGCPC9sYWJlbD4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImlucHV0Ij4KICAgICAgICAgICAgICAgICAgPGlucHV0IGlkPSJjYXB0Y2hhQW5zd2VyIiBpbnB1dG1vZGU9Im51bWVyaWMiIHBsYWNlaG9sZGVyPSLQktCy0LXQtNC40YLQtSDRh9C40YHQu9C+IiAvPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPHAgY2xhc3M9ImhpbnQiIHN0eWxlPSJtYXJnaW4tdG9wOjEycHg7Ij7Qn9C+0YHQu9C1IDIg0L3QtdCy0LXRgNC90YvRhSDQv9C+0L/Ri9GC0L7QuiDQstGF0L7QtNCwINC90YPQttC90L4g0YDQtdGI0LjRgtGMINC/0YDQuNC80LXRgC48L3A+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9mb3JtPgogICAgICA8L2Rpdj4KICAgIDwvbWFpbj4KICA8L2Rpdj4KICA8ZGl2IGNsYXNzPSJ0b2FzdCIgaWQ9InRvYXN0IiByb2xlPSJzdGF0dXMiIGFyaWEtbGl2ZT0icG9saXRlIj48L2Rpdj4KCgo8c2NyaXB0PgogIGNvbnN0IGZvcm0gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZmFrZUxvZ2luRm9ybScpOwogIGNvbnN0IHRvYXN0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RvYXN0Jyk7CiAgY29uc3QgY2FwdGNoYVdyYXAgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY2FwdGNoYVdyYXAnKTsKICBjb25zdCBjYXB0Y2hhUXVlc3Rpb24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY2FwdGNoYVF1ZXN0aW9uJyk7CiAgY29uc3QgY2FwdGNoYUFuc3dlciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjYXB0Y2hhQW5zd2VyJyk7CiAgY29uc3QgY2FwdGNoYVJlZnJlc2ggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY2FwdGNoYVJlZnJlc2gnKTsKICBsZXQgYXR0ZW1wdHMgPSAwOwogIGxldCBjYXB0Y2hhID0geyBhOiAwLCBiOiAwLCBvcDogJysnLCByZXN1bHQ6IDAgfTsKICBmdW5jdGlvbiBzaG93VG9hc3QodGV4dCl7IHRvYXN0LnRleHRDb250ZW50ID0gdGV4dDsgdG9hc3QuY2xhc3NMaXN0LmFkZCgnc2hvdycpOyBjbGVhclRpbWVvdXQoc2hvd1RvYXN0Ll90KTsgc2hvd1RvYXN0Ll90ID0gc2V0VGltZW91dCgoKT0+dG9hc3QuY2xhc3NMaXN0LnJlbW92ZSgnc2hvdycpLCAyNjAwKTsgfQogIGZ1bmN0aW9uIHJhbmRJbnQobWluLG1heCl7IHJldHVybiBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqKG1heC1taW4rMSkpK21pbjsgfQogIGZ1bmN0aW9uIG5ld0NhcHRjaGEoKXsKICAgIGNvbnN0IG1vZGUgPSByYW5kSW50KDEsMyk7CiAgICBpZihtb2RlPT09MSl7IGNhcHRjaGEuYT1yYW5kSW50KDEyLDk4KTsgY2FwdGNoYS5iPXJhbmRJbnQoMTEsOTcpOyBjYXB0Y2hhLm9wPScrJzsgY2FwdGNoYS5yZXN1bHQ9Y2FwdGNoYS5hK2NhcHRjaGEuYjsgfQogICAgZWxzZSBpZihtb2RlPT09Mil7IGNhcHRjaGEuYT1yYW5kSW50KDMwLDk5KTsgY2FwdGNoYS5iPXJhbmRJbnQoMTAsMjkpOyBjYXB0Y2hhLm9wPSfiiJInOyBjYXB0Y2hhLnJlc3VsdD1jYXB0Y2hhLmEtY2FwdGNoYS5iOyB9CiAgICBlbHNlIHsgY2FwdGNoYS5hPXJhbmRJbnQoNCwxMik7IGNhcHRjaGEuYj1yYW5kSW50KDYsMTQpOyBjYXB0Y2hhLm9wPSfDlyc7IGNhcHRjaGEucmVzdWx0PWNhcHRjaGEuYSpjYXB0Y2hhLmI7IH0KICAgIGNhcHRjaGFRdWVzdGlvbi50ZXh0Q29udGVudCA9IGDQoNC10YjQuNGC0LU6ICR7Y2FwdGNoYS5hfSAke2NhcHRjaGEub3B9ICR7Y2FwdGNoYS5ifSA9ID9gOwogICAgY2FwdGNoYUFuc3dlci52YWx1ZT0nJzsgY2FwdGNoYUFuc3dlci5mb2N1cygpOwogIH0KICBmdW5jdGlvbiBjYXB0Y2hhSXNSZXF1aXJlZCgpeyByZXR1cm4gYXR0ZW1wdHM+PTI7IH0KICBmdW5jdGlvbiBjYXB0Y2hhSXNTb2x2ZWQoKXsgY29uc3Qgdj0oY2FwdGNoYUFuc3dlci52YWx1ZXx8JycpLnRyaW0oKTsgaWYoIXYpIHJldHVybiBmYWxzZTsgY29uc3Qgbj1OdW1iZXIodik7IHJldHVybiBOdW1iZXIuaXNGaW5pdGUobikgJiYgbj09PWNhcHRjaGEucmVzdWx0OyB9CiAgZnVuY3Rpb24gc2hvd0NhcHRjaGFJZk5lZWRlZCgpeyBpZihjYXB0Y2hhSXNSZXF1aXJlZCgpKXsgY2FwdGNoYVdyYXAuc3R5bGUuZGlzcGxheT0nYmxvY2snOyBpZighY2FwdGNoYVF1ZXN0aW9uLnRleHRDb250ZW50IHx8IGNhcHRjaGFRdWVzdGlvbi50ZXh0Q29udGVudD09PSfigJQnKXsgbmV3Q2FwdGNoYSgpOyB9IH0gfQogIGNhcHRjaGFSZWZyZXNoLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgKCk9PnsgbmV3Q2FwdGNoYSgpOyBzaG93VG9hc3QoJ9Ca0LDQv9GH0LAg0L7QsdC90L7QstC70LXQvdCwLicpOyB9KTsKICBmb3JtLmFkZEV2ZW50TGlzdGVuZXIoJ3N1Ym1pdCcsIChlKT0+ewogICAgZS5wcmV2ZW50RGVmYXVsdCgpOwogICAgaWYoY2FwdGNoYUlzUmVxdWlyZWQoKSl7IHNob3dDYXB0Y2hhSWZOZWVkZWQoKTsgaWYoIWNhcHRjaGFJc1NvbHZlZCgpKXsgc2hvd1RvYXN0KCfQndC10LLQtdGA0L3QsNGPINC60LDQv9GH0LAuINCf0L7Qv9GA0L7QsdGD0LnRgtC1INC10YnRkSDRgNCw0LcuJyk7IHJldHVybjsgfSB9CiAgICBhdHRlbXB0cyArPSAxOyBzaG93Q2FwdGNoYUlmTmVlZGVkKCk7IHNob3dUb2FzdCgn0J3QtdCy0LXRgNC90YvQuSDQu9C+0LPQuNC9INC40LvQuCDQv9Cw0YDQvtC70YwuJyk7CiAgfSk7Cjwvc2NyaXB0PgoKPC9ib2R5Pgo8L2h0bWw+Cg==")
DECOYS+=("PCFkb2N0eXBlIGh0bWw+CjxodG1sIGxhbmc9InJ1Ij4KPGhlYWQ+CjxtZXRhIGNoYXJzZXQ9InV0Zi04Ii8+CjxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsaW5pdGlhbC1zY2FsZT0xIi8+Cjx0aXRsZT7QlNC+0YHRgtGD0L8g0Log0YHQtdGA0LLQtdGA0YM8L3RpdGxlPgo8c3R5bGU+CgoqeyBib3gtc2l6aW5nOmJvcmRlci1ib3g7IH0KaHRtbCxib2R5eyBoZWlnaHQ6MTAwJTsgfQpib2R5eyBtYXJnaW46MDsgbWluLWhlaWdodDoxMDB2aDsgZGlzcGxheTpmbGV4OyBhbGlnbi1pdGVtczpjZW50ZXI7IGp1c3RpZnktY29udGVudDpjZW50ZXI7IHBhZGRpbmc6MjRweDsKICBmb250LWZhbWlseTp1aS1zYW5zLXNlcmlmLCBzeXN0ZW0tdWksIC1hcHBsZS1zeXN0ZW0sICJTZWdvZSBVSSIsIFJvYm90bywgQXJpYWwsICJOb3RvIFNhbnMiLCAiTGliZXJhdGlvbiBTYW5zIiwgc2Fucy1zZXJpZjsgY29sb3I6IzQ2NjE1YTsgYmFja2dyb3VuZDojZGNlZWU3OyAgfQouc3RhZ2V7IHBvc2l0aW9uOnJlbGF0aXZlOyB6LWluZGV4OjE7IGRpc3BsYXk6ZmxleDsgIHdpZHRoOm1pbig0NjBweCw5NHZ3KTsgIH0KLmFzaWRleyBkaXNwbGF5Om5vbmU7IH0KLmNhcmR7IHBvc2l0aW9uOnJlbGF0aXZlOyBmbGV4OjE7IG1pbi13aWR0aDowOyBiYWNrZ3JvdW5kOiNkY2VlZTc7IGJvcmRlcjowOyBib3JkZXItcmFkaXVzOjIycHg7IG92ZXJmbG93OmhpZGRlbjsgYm94LXNoYWRvdzo5cHggOXB4IDIwcHggI2JjZDJjOSwgLTlweCAtOXB4IDIwcHggI2YxZmJmNzsgIH0KLmNhcmQtaGVhZHsgZGlzcGxheTpub25lOyBhbGlnbi1pdGVtczpjZW50ZXI7IGdhcDoxMHB4OyBwYWRkaW5nOjE0cHggMThweDsgYm9yZGVyLWJvdHRvbToxcHggc29saWQgIzFmMmMzODsgYmFja2dyb3VuZDpyZ2JhKDI1NSwyNTUsMjU1LC4wMTUpOyB9Ci5kb3R7IHdpZHRoOjExcHg7IGhlaWdodDoxMXB4OyBib3JkZXItcmFkaXVzOjUwJTsgZmxleDowIDAgYXV0bzsgZGlzcGxheTppbmxpbmUtYmxvY2s7IH0KLmRvdC5yeyBiYWNrZ3JvdW5kOiNmZjVmNTc7IH0gLmRvdC55eyBiYWNrZ3JvdW5kOiNmZWJjMmU7IH0gLmRvdC5neyBiYWNrZ3JvdW5kOiMyOGM4NDA7IH0KLnBhdGh7IG1hcmdpbi1sZWZ0OjhweDsgZm9udC1mYW1pbHk6dWktbW9ub3NwYWNlLCBTRk1vbm8tUmVndWxhciwgTWVubG8sIENvbnNvbGFzLCAiTGliZXJhdGlvbiBNb25vIiwgbW9ub3NwYWNlOyBmb250LXNpemU6MTJweDsgY29sb3I6IzlhYTNiNTsgbGV0dGVyLXNwYWNpbmc6LjNweDsgfQouc3RhdHVzLXBpbGx7IG1hcmdpbi1sZWZ0OmF1dG87IGRpc3BsYXk6aW5saW5lLWZsZXg7IGFsaWduLWl0ZW1zOmNlbnRlcjsgZ2FwOjZweDsgZm9udC1mYW1pbHk6dWktbW9ub3NwYWNlLCBTRk1vbm8tUmVndWxhciwgTWVubG8sIENvbnNvbGFzLCAiTGliZXJhdGlvbiBNb25vIiwgbW9ub3NwYWNlOyBmb250LXNpemU6MTFweDsgY29sb3I6IzE2YTA4NTsgYmFja2dyb3VuZDp0cmFuc3BhcmVudDsgYm9yZGVyOjFweCBzb2xpZCB0cmFuc3BhcmVudDsgcGFkZGluZzozcHggOXB4OyBib3JkZXItcmFkaXVzOjk5OXB4OyB9Ci5zdGF0dXMtcGlsbCAubGVkeyB3aWR0aDo2cHg7IGhlaWdodDo2cHg7IGJvcmRlci1yYWRpdXM6NTAlOyBiYWNrZ3JvdW5kOiMxNmEwODU7ICB9Ci5jYXJkLWJvZHl7IHBhZGRpbmc6MjZweCAyNnB4IDIycHg7IH0KLmV5ZWJyb3d7IGRpc3BsYXk6YmxvY2s7IGZvbnQtZmFtaWx5OnVpLW1vbm9zcGFjZSwgU0ZNb25vLVJlZ3VsYXIsIE1lbmxvLCBDb25zb2xhcywgIkxpYmVyYXRpb24gTW9ubyIsIG1vbm9zcGFjZTsgZm9udC1zaXplOjExcHg7IHRleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTsgbGV0dGVyLXNwYWNpbmc6MnB4OyBjb2xvcjojMTZhMDg1OyBtYXJnaW46MCAwIDEwcHg7IH0KaDF7IG1hcmdpbjowIDAgOHB4OyBmb250LXNpemU6MjZweDsgZm9udC13ZWlnaHQ6NjUwOyBmb250LWZhbWlseTp1aS1zYW5zLXNlcmlmLCBzeXN0ZW0tdWksIC1hcHBsZS1zeXN0ZW0sICJTZWdvZSBVSSIsIFJvYm90bywgQXJpYWwsICJOb3RvIFNhbnMiLCAiTGliZXJhdGlvbiBTYW5zIiwgc2Fucy1zZXJpZjsgY29sb3I6IzQ2NjE1YTsgbGV0dGVyLXNwYWNpbmc6LjJweDsgfQouc3VidGl0bGV7IG1hcmdpbjowIDAgMjRweDsgY29sb3I6IzZmOGI4MzsgbGluZS1oZWlnaHQ6MS40NTsgZm9udC1zaXplOjE0cHg7IH0KLmZpZWxkeyBtYXJnaW46MTZweCAwOyB9CmxhYmVseyBkaXNwbGF5OmJsb2NrOyBmb250LXNpemU6MTJweDsgZm9udC13ZWlnaHQ6NjAwOyBjb2xvcjojNmY4YjgzOyBtYXJnaW46MCAwIDhweDsgfQouaW5wdXR7IGRpc3BsYXk6ZmxleDsgYWxpZ24taXRlbXM6Y2VudGVyOyBnYXA6MTFweDsgcGFkZGluZzoxMnB4IDE0cHg7IGJhY2tncm91bmQ6I2RjZWVlNzsgYm9yZGVyOjA7IGJvcmRlci1yYWRpdXM6MTRweDsgdHJhbnNpdGlvbjpib3JkZXItY29sb3IgLjE1cyBlYXNlLCBib3gtc2hhZG93IC4xNXMgZWFzZSwgYmFja2dyb3VuZCAuMTVzIGVhc2U7IH0KLmlucHV0OmZvY3VzLXdpdGhpbnsgYm9yZGVyLWNvbG9yOiMxNmEwODU7IGJveC1zaGFkb3c6aW5zZXQgM3B4IDNweCA3cHggI2JjZDJjOSwgaW5zZXQgLTNweCAtM3B4IDdweCAjZjFmYmY3OyB9Ci5pY29ueyB3aWR0aDoxOHB4OyBoZWlnaHQ6MThweDsgZmxleDowIDAgYXV0bzsgY29sb3I6IzlhYTNiNTsgfQouaW5wdXQ6Zm9jdXMtd2l0aGluIC5pY29ueyBjb2xvcjojMTZhMDg1OyB9CmlucHV0eyB3aWR0aDoxMDAlOyBib3JkZXI6MDsgYmFja2dyb3VuZDp0cmFuc3BhcmVudDsgY29sb3I6IzQ2NjE1YTsgZm9udC1zaXplOjE0cHg7IGZvbnQtZmFtaWx5OnVpLXNhbnMtc2VyaWYsIHN5c3RlbS11aSwgLWFwcGxlLXN5c3RlbSwgIlNlZ29lIFVJIiwgUm9ib3RvLCBBcmlhbCwgIk5vdG8gU2FucyIsICJMaWJlcmF0aW9uIFNhbnMiLCBzYW5zLXNlcmlmOyBvdXRsaW5lOm5vbmU7IH0KaW5wdXQ6OnBsYWNlaG9sZGVyeyBjb2xvcjojYTdhZmJmOyB9Ci5idG57IG1hcmdpbi10b3A6MjJweDsgd2lkdGg6MTAwJTsgYm9yZGVyOjA7IHBhZGRpbmc6MTNweCAxNHB4OyBib3JkZXItcmFkaXVzOjE0cHg7IGNvbG9yOiNmZmZmZmY7IGZvbnQtd2VpZ2h0OjcwMDsgZm9udC1zaXplOjE0cHg7IGxldHRlci1zcGFjaW5nOi4zcHg7IGN1cnNvcjpwb2ludGVyOyBmb250LWZhbWlseTp1aS1zYW5zLXNlcmlmLCBzeXN0ZW0tdWksIC1hcHBsZS1zeXN0ZW0sICJTZWdvZSBVSSIsIFJvYm90bywgQXJpYWwsICJOb3RvIFNhbnMiLCAiTGliZXJhdGlvbiBTYW5zIiwgc2Fucy1zZXJpZjsgYmFja2dyb3VuZDojMTZhMDg1OyBib3gtc2hhZG93OjZweCA2cHggMTRweCAjYmNkMmM5LCAtNnB4IC02cHggMTRweCAjZjFmYmY3OyB0cmFuc2l0aW9uOnRyYW5zZm9ybSAuMDZzIGVhc2UsIGZpbHRlciAuMTVzIGVhc2UsIGJveC1zaGFkb3cgLjE1cyBlYXNlOyB9Ci5idG46aG92ZXJ7IGZpbHRlcjpicmlnaHRuZXNzKDEuMDUpOyAgfQouYnRuOmFjdGl2ZXsgdHJhbnNmb3JtOnRyYW5zbGF0ZVkoMXB4KTsgfQouaGludHsgbWFyZ2luOjE2cHggMCAwOyBmb250LXNpemU6MTJweDsgY29sb3I6IzlhYTNiNTsgdGV4dC1hbGlnbjpjZW50ZXI7IH0KLmNhcHRjaGEtYm94eyBwYWRkaW5nOjE1cHg7IGJvcmRlci1yYWRpdXM6MTRweDsgYmFja2dyb3VuZDojZGNlZWU3OyBib3JkZXI6MXB4IGRhc2hlZCAjYmNkMmM5OyB9Ci5jYXB0Y2hhLXRvcHsgZGlzcGxheTpmbGV4OyBhbGlnbi1pdGVtczpjZW50ZXI7IGp1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuOyBnYXA6MTJweDsgfQouY2FwdGNoYS1sYWJlbHsgZm9udC1mYW1pbHk6dWktbW9ub3NwYWNlLCBTRk1vbm8tUmVndWxhciwgTWVubG8sIENvbnNvbGFzLCAiTGliZXJhdGlvbiBNb25vIiwgbW9ub3NwYWNlOyBmb250LXNpemU6MTFweDsgdGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlOyBsZXR0ZXItc3BhY2luZzoxcHg7IGNvbG9yOiM2ZjhiODM7IG1hcmdpbi1ib3R0b206NnB4OyB9Ci5jYXB0Y2hhLXF7IGZvbnQtZmFtaWx5OnVpLW1vbm9zcGFjZSwgU0ZNb25vLVJlZ3VsYXIsIE1lbmxvLCBDb25zb2xhcywgIkxpYmVyYXRpb24gTW9ubyIsIG1vbm9zcGFjZTsgZm9udC1zaXplOjE2cHg7IGZvbnQtd2VpZ2h0OjcwMDsgY29sb3I6IzQ2NjE1YTsgfQouYnRuLWdob3N0eyBib3JkZXI6MXB4IHNvbGlkICNiY2QyYzk7IGJhY2tncm91bmQ6dHJhbnNwYXJlbnQ7IGNvbG9yOiM2ZjhiODM7IHBhZGRpbmc6OXB4IDEycHg7IGJvcmRlci1yYWRpdXM6MTRweDsgZm9udC13ZWlnaHQ6NjAwOyBmb250LXNpemU6MTNweDsgY3Vyc29yOnBvaW50ZXI7IGZvbnQtZmFtaWx5OnVpLXNhbnMtc2VyaWYsIHN5c3RlbS11aSwgLWFwcGxlLXN5c3RlbSwgIlNlZ29lIFVJIiwgUm9ib3RvLCBBcmlhbCwgIk5vdG8gU2FucyIsICJMaWJlcmF0aW9uIFNhbnMiLCBzYW5zLXNlcmlmOyB0cmFuc2l0aW9uOi4xNXMgZWFzZTsgfQouYnRuLWdob3N0OmhvdmVyeyBib3JkZXItY29sb3I6IzE2YTA4NTsgY29sb3I6IzE2YTA4NTsgfQoudG9hc3R7IHBvc2l0aW9uOmZpeGVkOyBsZWZ0OjUwJTsgYm90dG9tOjI0cHg7IHRyYW5zZm9ybTp0cmFuc2xhdGVYKC01MCUpIHRyYW5zbGF0ZVkoOHB4KTsgZGlzcGxheTpmbGV4OyBhbGlnbi1pdGVtczpjZW50ZXI7IGdhcDo5cHg7IGJhY2tncm91bmQ6I2RjZWVlNzsgYm9yZGVyOjFweCBzb2xpZCAjYmNkMmM5OyBib3JkZXItbGVmdDozcHggc29saWQgI2U1NzQ2ZTsgY29sb3I6IzQ2NjE1YTsgcGFkZGluZzoxMXB4IDE1cHg7IGJvcmRlci1yYWRpdXM6MTRweDsgYm94LXNoYWRvdzowIDE4cHggNDBweCAtMTJweCByZ2JhKDAsMCwwLC40NSk7IGZvbnQtc2l6ZToxM3B4OyBvcGFjaXR5OjA7IHBvaW50ZXItZXZlbnRzOm5vbmU7IHRyYW5zaXRpb246b3BhY2l0eSAuMnMgZWFzZSwgdHJhbnNmb3JtIC4ycyBlYXNlOyB9Ci50b2FzdDo6YmVmb3JleyBjb250ZW50OiIiOyB3aWR0aDo3cHg7IGhlaWdodDo3cHg7IGJvcmRlci1yYWRpdXM6NTAlOyBiYWNrZ3JvdW5kOiNlNTc0NmU7IGZsZXg6MCAwIGF1dG87IH0KLnRvYXN0LnNob3d7IG9wYWNpdHk6MTsgdHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTUwJSkgdHJhbnNsYXRlWSgwKTsgfQouaW5wdXR7IGJveC1zaGFkb3c6aW5zZXQgNHB4IDRweCA5cHggI2JjZDJjOSwgaW5zZXQgLTRweCAtNHB4IDlweCAjZjFmYmY3OyB9IC5idG4tZ2hvc3R7IGJveC1zaGFkb3c6NHB4IDRweCAxMHB4ICNiY2QyYzksIC00cHggLTRweCAxMHB4ICNmMWZiZjc7IGJvcmRlcjowOyB9Cgo8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoKICA8ZGl2IGNsYXNzPSJzdGFnZSI+CiAgICA8ZGl2IGNsYXNzPSJhc2lkZSIgYXJpYS1oaWRkZW49InRydWUiPjwvZGl2PgogICAgPG1haW4gY2xhc3M9ImNhcmQiIHJvbGU9Im1haW4iIGFyaWEtbGFiZWw9ItCk0L7RgNC80LAg0LTQvtGB0YLRg9C/0LAiPgogICAgICA8ZGl2IGNsYXNzPSJjYXJkLWhlYWQiPgogICAgICAgIDxzcGFuIGNsYXNzPSJkb3QgciI+PC9zcGFuPgogICAgICAgIDxzcGFuIGNsYXNzPSJkb3QgeSI+PC9zcGFuPgogICAgICAgIDxzcGFuIGNsYXNzPSJkb3QgZyI+PC9zcGFuPgogICAgICAgIDxzcGFuIGNsYXNzPSJwYXRoIj5zc2g6Ly9zZWN1cmUtZ2F0ZXdheTwvc3Bhbj4KICAgICAgICA8c3BhbiBjbGFzcz0ic3RhdHVzLXBpbGwiPjxzcGFuIGNsYXNzPSJsZWQiPjwvc3Bhbj5vbmxpbmU8L3NwYW4+CiAgICAgIDwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJjYXJkLWJvZHkiPgogICAgICAgIDxwIGNsYXNzPSJleWVicm93Ij7QkNCy0YLQvtGA0LjQt9Cw0YbQuNGPPC9wPgogICAgICAgIDxoMT7QlNC+0YHRgtGD0L8g0Log0YHQtdGA0LLQtdGA0YM8L2gxPgogICAgICAgIDxwIGNsYXNzPSJzdWJ0aXRsZSI+0JTQu9GPINC00L7RgdGC0YPQv9CwINC6INGB0LXRgNCy0LXRgNGDLCDQstCy0LXQtNC40YLQtSDQu9C+0LPQuNC9INC4INC/0LDRgNC+0LvRjC48L3A+CiAgICAgICAgPGZvcm0gaWQ9ImZha2VMb2dpbkZvcm0iIGF1dG9jb21wbGV0ZT0ib2ZmIj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImZpZWxkIj4KICAgICAgICAgICAgPGxhYmVsIGZvcj0ibG9naW4iPtCb0L7Qs9C40L08L2xhYmVsPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJpbnB1dCI+CiAgICAgICAgICAgICAgPHN2ZyBjbGFzcz0iaWNvbiIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBhcmlhLWhpZGRlbj0idHJ1ZSI+CiAgICAgICAgICAgICAgICA8cGF0aCBkPSJNMTIgMTJhNC41IDQuNSAwIDEgMC00LjUtNC41QTQuNSA0LjUgMCAwIDAgMTIgMTJaIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIxLjciLz4KICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik00IDIwYzEuNi0zLjUgNS01LjUgOC01LjVzNi40IDIgOCA1LjUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjEuNyIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIi8+CiAgICAgICAgICAgICAgPC9zdmc+CiAgICAgICAgICAgICAgPGlucHV0IGlkPSJsb2dpbiIgbmFtZT0ibG9naW4iIHBsYWNlaG9sZGVyPSLQktCy0LXQtNC40YLQtSDQu9C+0LPQuNC9IiAvPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iZmllbGQiPgogICAgICAgICAgICA8bGFiZWwgZm9yPSJwYXNzd29yZCI+0J/QsNGA0L7Qu9GMPC9sYWJlbD4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iaW5wdXQiPgogICAgICAgICAgICAgIDxzdmcgY2xhc3M9Imljb24iIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgYXJpYS1oaWRkZW49InRydWUiPgogICAgICAgICAgICAgICAgPHBhdGggZD0iTTcuNSAxMVY4LjVhNC41IDQuNSAwIDAgMSA5IDBWMTEiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjEuNyIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIi8+CiAgICAgICAgICAgICAgICA8cGF0aCBkPSJNNi41IDExaDExYTEuNSAxLjUgMCAwIDEgMS41IDEuNXY2QTEuNSAxLjUgMCAwIDEgMTcuNSAyMGgtMTFBMS41IDEuNSAwIDAgMSA1IDE4LjV2LTZBMS41IDEuNSAwIDAgMSA2LjUgMTFaIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIxLjciLz4KICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMiAxNXYyIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIxLjciIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIvPgogICAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICAgIDxpbnB1dCBpZD0icGFzc3dvcmQiIG5hbWU9InBhc3N3b3JkIiB0eXBlPSJwYXNzd29yZCIgcGxhY2Vob2xkZXI9ItCS0LLQtdC00LjRgtC1INC/0LDRgNC+0LvRjCIgLz4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxidXR0b24gY2xhc3M9ImJ0biIgdHlwZT0ic3VibWl0Ij7QktC+0LnRgtC4PC9idXR0b24+CiAgICAgICAgICA8ZGl2IGlkPSJjYXB0Y2hhV3JhcCIgc3R5bGU9ImRpc3BsYXk6bm9uZTsgbWFyZ2luLXRvcDoxNnB4OyI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcHRjaGEtYm94Ij4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXB0Y2hhLXRvcCI+CiAgICAgICAgICAgICAgICA8ZGl2PgogICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXB0Y2hhLWxhYmVsIj7Qn9GA0L7QstC10YDQutCwINCx0LXQt9C+0L/QsNGB0L3QvtGB0YLQuDwvZGl2PgogICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJjYXB0Y2hhUXVlc3Rpb24iIGNsYXNzPSJjYXB0Y2hhLXEiPuKAlDwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8YnV0dG9uIGlkPSJjYXB0Y2hhUmVmcmVzaCIgdHlwZT0iYnV0dG9uIiBjbGFzcz0iYnRuLWdob3N0Ij7QntCx0L3QvtCy0LjRgtGMPC9idXR0b24+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPGRpdiBzdHlsZT0ibWFyZ2luLXRvcDoxMnB4OyI+CiAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJjYXB0Y2hhQW5zd2VyIj7QntGC0LLQtdGCPC9sYWJlbD4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImlucHV0Ij4KICAgICAgICAgICAgICAgICAgPGlucHV0IGlkPSJjYXB0Y2hhQW5zd2VyIiBpbnB1dG1vZGU9Im51bWVyaWMiIHBsYWNlaG9sZGVyPSLQktCy0LXQtNC40YLQtSDRh9C40YHQu9C+IiAvPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPHAgY2xhc3M9ImhpbnQiIHN0eWxlPSJtYXJnaW4tdG9wOjEycHg7Ij7Qn9C+0YHQu9C1IDIg0L3QtdCy0LXRgNC90YvRhSDQv9C+0L/Ri9GC0L7QuiDQstGF0L7QtNCwINC90YPQttC90L4g0YDQtdGI0LjRgtGMINC/0YDQuNC80LXRgC48L3A+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9mb3JtPgogICAgICA8L2Rpdj4KICAgIDwvbWFpbj4KICA8L2Rpdj4KICA8ZGl2IGNsYXNzPSJ0b2FzdCIgaWQ9InRvYXN0IiByb2xlPSJzdGF0dXMiIGFyaWEtbGl2ZT0icG9saXRlIj48L2Rpdj4KCgo8c2NyaXB0PgogIGNvbnN0IGZvcm0gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZmFrZUxvZ2luRm9ybScpOwogIGNvbnN0IHRvYXN0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RvYXN0Jyk7CiAgY29uc3QgY2FwdGNoYVdyYXAgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY2FwdGNoYVdyYXAnKTsKICBjb25zdCBjYXB0Y2hhUXVlc3Rpb24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY2FwdGNoYVF1ZXN0aW9uJyk7CiAgY29uc3QgY2FwdGNoYUFuc3dlciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjYXB0Y2hhQW5zd2VyJyk7CiAgY29uc3QgY2FwdGNoYVJlZnJlc2ggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY2FwdGNoYVJlZnJlc2gnKTsKICBsZXQgYXR0ZW1wdHMgPSAwOwogIGxldCBjYXB0Y2hhID0geyBhOiAwLCBiOiAwLCBvcDogJysnLCByZXN1bHQ6IDAgfTsKICBmdW5jdGlvbiBzaG93VG9hc3QodGV4dCl7IHRvYXN0LnRleHRDb250ZW50ID0gdGV4dDsgdG9hc3QuY2xhc3NMaXN0LmFkZCgnc2hvdycpOyBjbGVhclRpbWVvdXQoc2hvd1RvYXN0Ll90KTsgc2hvd1RvYXN0Ll90ID0gc2V0VGltZW91dCgoKT0+dG9hc3QuY2xhc3NMaXN0LnJlbW92ZSgnc2hvdycpLCAyNjAwKTsgfQogIGZ1bmN0aW9uIHJhbmRJbnQobWluLG1heCl7IHJldHVybiBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqKG1heC1taW4rMSkpK21pbjsgfQogIGZ1bmN0aW9uIG5ld0NhcHRjaGEoKXsKICAgIGNvbnN0IG1vZGUgPSByYW5kSW50KDEsMyk7CiAgICBpZihtb2RlPT09MSl7IGNhcHRjaGEuYT1yYW5kSW50KDEyLDk4KTsgY2FwdGNoYS5iPXJhbmRJbnQoMTEsOTcpOyBjYXB0Y2hhLm9wPScrJzsgY2FwdGNoYS5yZXN1bHQ9Y2FwdGNoYS5hK2NhcHRjaGEuYjsgfQogICAgZWxzZSBpZihtb2RlPT09Mil7IGNhcHRjaGEuYT1yYW5kSW50KDMwLDk5KTsgY2FwdGNoYS5iPXJhbmRJbnQoMTAsMjkpOyBjYXB0Y2hhLm9wPSfiiJInOyBjYXB0Y2hhLnJlc3VsdD1jYXB0Y2hhLmEtY2FwdGNoYS5iOyB9CiAgICBlbHNlIHsgY2FwdGNoYS5hPXJhbmRJbnQoNCwxMik7IGNhcHRjaGEuYj1yYW5kSW50KDYsMTQpOyBjYXB0Y2hhLm9wPSfDlyc7IGNhcHRjaGEucmVzdWx0PWNhcHRjaGEuYSpjYXB0Y2hhLmI7IH0KICAgIGNhcHRjaGFRdWVzdGlvbi50ZXh0Q29udGVudCA9IGDQoNC10YjQuNGC0LU6ICR7Y2FwdGNoYS5hfSAke2NhcHRjaGEub3B9ICR7Y2FwdGNoYS5ifSA9ID9gOwogICAgY2FwdGNoYUFuc3dlci52YWx1ZT0nJzsgY2FwdGNoYUFuc3dlci5mb2N1cygpOwogIH0KICBmdW5jdGlvbiBjYXB0Y2hhSXNSZXF1aXJlZCgpeyByZXR1cm4gYXR0ZW1wdHM+PTI7IH0KICBmdW5jdGlvbiBjYXB0Y2hhSXNTb2x2ZWQoKXsgY29uc3Qgdj0oY2FwdGNoYUFuc3dlci52YWx1ZXx8JycpLnRyaW0oKTsgaWYoIXYpIHJldHVybiBmYWxzZTsgY29uc3Qgbj1OdW1iZXIodik7IHJldHVybiBOdW1iZXIuaXNGaW5pdGUobikgJiYgbj09PWNhcHRjaGEucmVzdWx0OyB9CiAgZnVuY3Rpb24gc2hvd0NhcHRjaGFJZk5lZWRlZCgpeyBpZihjYXB0Y2hhSXNSZXF1aXJlZCgpKXsgY2FwdGNoYVdyYXAuc3R5bGUuZGlzcGxheT0nYmxvY2snOyBpZighY2FwdGNoYVF1ZXN0aW9uLnRleHRDb250ZW50IHx8IGNhcHRjaGFRdWVzdGlvbi50ZXh0Q29udGVudD09PSfigJQnKXsgbmV3Q2FwdGNoYSgpOyB9IH0gfQogIGNhcHRjaGFSZWZyZXNoLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgKCk9PnsgbmV3Q2FwdGNoYSgpOyBzaG93VG9hc3QoJ9Ca0LDQv9GH0LAg0L7QsdC90L7QstC70LXQvdCwLicpOyB9KTsKICBmb3JtLmFkZEV2ZW50TGlzdGVuZXIoJ3N1Ym1pdCcsIChlKT0+ewogICAgZS5wcmV2ZW50RGVmYXVsdCgpOwogICAgaWYoY2FwdGNoYUlzUmVxdWlyZWQoKSl7IHNob3dDYXB0Y2hhSWZOZWVkZWQoKTsgaWYoIWNhcHRjaGFJc1NvbHZlZCgpKXsgc2hvd1RvYXN0KCfQndC10LLQtdGA0L3QsNGPINC60LDQv9GH0LAuINCf0L7Qv9GA0L7QsdGD0LnRgtC1INC10YnRkSDRgNCw0LcuJyk7IHJldHVybjsgfSB9CiAgICBhdHRlbXB0cyArPSAxOyBzaG93Q2FwdGNoYUlmTmVlZGVkKCk7IHNob3dUb2FzdCgn0J3QtdCy0LXRgNC90YvQuSDQu9C+0LPQuNC9INC40LvQuCDQv9Cw0YDQvtC70YwuJyk7CiAgfSk7Cjwvc2NyaXB0PgoKPC9ib2R5Pgo8L2h0bWw+Cg==")
sel=$(( RANDOM % ${#DECOYS[@]} ))
$SUDO mkdir -p /var/www/html
printf '%s' "${DECOYS[sel]}" | base64 -d | $SUDO tee /var/www/html/index.html >/dev/null
ok "Заглушка #$(( sel + 1 )) из ${#DECOYS[@]} → /var/www/html/index.html"

# ---------- [4/4] запуск ----------
say "\n${B}[4/4] Запуск Caddy...${N}"
$SUDO caddy fmt --overwrite /etc/caddy/Caddyfile
$SUDO caddy validate --config /etc/caddy/Caddyfile --adapter caddyfile
$SUDO systemctl enable caddy >/dev/null 2>&1 || true
$SUDO systemctl restart caddy
sleep 1
if $SUDO systemctl is-active --quiet caddy; then
  ok "Caddy активен и запущен"
else
  warn "Caddy не активен — смотри логи: journalctl -u caddy -e --no-pager"
  $SUDO systemctl status caddy --no-pager -l 2>/dev/null | tail -n 20 || true
fi

printf "\n${G}${B}Готово!${N}\n"
say "  Домен        : ${C}${DOMAIN}${N}"
say "  Туннель-путь: ${G}${TUNNEL_PATH}${N}  ${DIM}(вставь в инбаунд ноды и в клиент)${N}"
say "  Заглушка    : /var/www/html/index.html"
printf "\n${Y}Не забудь: порты 80 и 443 должны быть открыты для выпуска Let's Encrypt.${N}\n"
say "  Логи выпуска серта: ${DIM}journalctl -u caddy -f${N}"
