1688054432
waR3U4bTeM%3Ab81f2591541cbd1a3e8c00088bf31638-c9d4cd839e1c551725f69c015886f26b
s:40824:"TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlIjoxNDp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6NDM6IkVuc3VyZXMgZG9jIGJsb2NrcyBmb2xsb3cgYmFzaWMgZm9ybWF0dGluZy4iO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6Mzp7aTowO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEF1dGhvciI6NDp7czo3OiIAKgBuYW1lIjtzOjY6ImF1dGhvciI7czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEF1dGhvcgBhdXRob3JOYW1lIjtzOjEzOiJHcmVnIFNoZXJ3b29kIjtzOjU4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcQXV0aG9yAGF1dGhvckVtYWlsIjtzOjE5OiJnc2hlcndvb2RAc3F1aXoubmV0IjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tjt9aToxO086NDY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEdlbmVyaWMiOjI6e3M6NzoiACoAbmFtZSI7czo5OiJjb3B5cmlnaHQiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjQ0OiIyMDA2LTIwMTUgU3F1aXogUHR5IEx0ZCAoQUJOIDc3IDA4NCA2NzAgNjAwKSI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fWk6MjtPOjQ2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xHZW5lcmljIjoyOntzOjc6IgAqAG5hbWUiO3M6NzoibGljZW5zZSI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6ODA6Imh0dHBzOi8vZ2l0aHViLmNvbS9zcXVpemxhYnMvUEhQX0NvZGVTbmlmZmVyL2Jsb2IvbWFzdGVyL2xpY2VuY2UudHh0IEJTRCBMaWNlbmNlIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbnRleHQiOjI6e3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29udGV4dABuYW1lc3BhY2UiO3M6MDoiIjtzOjU2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbnRleHQAbmFtZXNwYWNlQWxpYXNlcyI7YTowOnt9fXM6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBoYXNoIjtzOjMyOiJjOWQ0Y2Q4MzllMWM1NTE3MjVmNjljMDE1ODg2ZjI2YiI7czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBuYW1lIjtzOjE5OiJEb2NDb21tZW50U25pZmYucGhwIjtzOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAHBhdGgiO3M6OTI6InZlbmRvci9zcXVpemxhYnMvcGhwX2NvZGVzbmlmZmVyL3NyYy9TdGFuZGFyZHMvR2VuZXJpYy9TbmlmZnMvQ29tbWVudGluZy9Eb2NDb21tZW50U25pZmYucGhwIjtzOjQxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAHNvdXJjZSI7czoxNDQxMjoiPD9waHAKLyoqCiAqIEVuc3VyZXMgZG9jIGJsb2NrcyBmb2xsb3cgYmFzaWMgZm9ybWF0dGluZy4KICoKICogQGF1dGhvciAgICBHcmVnIFNoZXJ3b29kIDxnc2hlcndvb2RAc3F1aXoubmV0PgogKiBAY29weXJpZ2h0IDIwMDYtMjAxNSBTcXVpeiBQdHkgTHRkIChBQk4gNzcgMDg0IDY3MCA2MDApCiAqIEBsaWNlbnNlICAgaHR0cHM6Ly9naXRodWIuY29tL3NxdWl6bGFicy9QSFBfQ29kZVNuaWZmZXIvYmxvYi9tYXN0ZXIvbGljZW5jZS50eHQgQlNEIExpY2VuY2UKICovCgpuYW1lc3BhY2UgUEhQX0NvZGVTbmlmZmVyXFN0YW5kYXJkc1xHZW5lcmljXFNuaWZmc1xDb21tZW50aW5nOwoKdXNlIFBIUF9Db2RlU25pZmZlclxGaWxlc1xGaWxlOwp1c2UgUEhQX0NvZGVTbmlmZmVyXFNuaWZmc1xTbmlmZjsKCmNsYXNzIERvY0NvbW1lbnRTbmlmZiBpbXBsZW1lbnRzIFNuaWZmCnsKCiAgICAvKioKICAgICAqIEEgbGlzdCBvZiB0b2tlbml6ZXJzIHRoaXMgc25pZmYgc3VwcG9ydHMuCiAgICAgKgogICAgICogQHZhciBhcnJheQogICAgICovCiAgICBwdWJsaWMgJHN1cHBvcnRlZFRva2VuaXplcnMgPSBbCiAgICAgICAgJ1BIUCcsCiAgICAgICAgJ0pTJywKICAgIF07CgoKICAgIC8qKgogICAgICogUmV0dXJucyBhbiBhcnJheSBvZiB0b2tlbnMgdGhpcyB0ZXN0IHdhbnRzIHRvIGxpc3RlbiBmb3IuCiAgICAgKgogICAgICogQHJldHVybiBhcnJheQogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gcmVnaXN0ZXIoKQogICAgewogICAgICAgIHJldHVybiBbVF9ET0NfQ09NTUVOVF9PUEVOX1RBR107CgogICAgfS8vZW5kIHJlZ2lzdGVyKCkKCgogICAgLyoqCiAgICAgKiBQcm9jZXNzZXMgdGhpcyB0ZXN0LCB3aGVuIG9uZSBvZiBpdHMgdG9rZW5zIGlzIGVuY291bnRlcmVkLgogICAgICoKICAgICAqIEBwYXJhbSBcUEhQX0NvZGVTbmlmZmVyXEZpbGVzXEZpbGUgJHBocGNzRmlsZSBUaGUgZmlsZSBiZWluZyBzY2FubmVkLgogICAgICogQHBhcmFtIGludCAgICAgICAgICAgICAgICAgICAgICAgICAkc3RhY2tQdHIgIFRoZSBwb3NpdGlvbiBvZiB0aGUgY3VycmVudCB0b2tlbgogICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzdGFjayBwYXNzZWQgaW4gJHRva2Vucy4KICAgICAqCiAgICAgKiBAcmV0dXJuIHZvaWQKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIHByb2Nlc3MoRmlsZSAkcGhwY3NGaWxlLCAkc3RhY2tQdHIpCiAgICB7CiAgICAgICAgJHRva2VucyA9ICRwaHBjc0ZpbGUtPmdldFRva2VucygpOwoKICAgICAgICBpZiAoaXNzZXQoJHRva2Vuc1skc3RhY2tQdHJdWydjb21tZW50X2Nsb3NlciddKSA9PT0gZmFsc2UKICAgICAgICAgICAgfHwgKCR0b2tlbnNbJHRva2Vuc1skc3RhY2tQdHJdWydjb21tZW50X2Nsb3NlciddXVsnY29udGVudCddID09PSAnJwogICAgICAgICAgICAmJiAkdG9rZW5zWyRzdGFja1B0cl1bJ2NvbW1lbnRfY2xvc2VyJ10gPT09ICgkcGhwY3NGaWxlLT5udW1Ub2tlbnMgLSAxKSkKICAgICAgICApIHsKICAgICAgICAgICAgLy8gRG9uJ3QgcHJvY2VzcyBhbiB1bmZpbmlzaGVkIGNvbW1lbnQgZHVyaW5nIGxpdmUgY29kaW5nLgogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQoKICAgICAgICAkY29tbWVudFN0YXJ0ID0gJHN0YWNrUHRyOwogICAgICAgICRjb21tZW50RW5kICAgPSAkdG9rZW5zWyRzdGFja1B0cl1bJ2NvbW1lbnRfY2xvc2VyJ107CgogICAgICAgICRlbXB0eSA9IFsKICAgICAgICAgICAgVF9ET0NfQ09NTUVOVF9XSElURVNQQUNFLAogICAgICAgICAgICBUX0RPQ19DT01NRU5UX1NUQVIsCiAgICAgICAgXTsKCiAgICAgICAgJHNob3J0ID0gJHBocGNzRmlsZS0+ZmluZE5leHQoJGVtcHR5LCAoJHN0YWNrUHRyICsgMSksICRjb21tZW50RW5kLCB0cnVlKTsKICAgICAgICBpZiAoJHNob3J0ID09PSBmYWxzZSkgewogICAgICAgICAgICAvLyBObyBjb250ZW50IGF0IGFsbC4KICAgICAgICAgICAgJGVycm9yID0gJ0RvYyBjb21tZW50IGlzIGVtcHR5JzsKICAgICAgICAgICAgJHBocGNzRmlsZS0+YWRkRXJyb3IoJGVycm9yLCAkc3RhY2tQdHIsICdFbXB0eScpOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQoKICAgICAgICAvLyBUaGUgZmlyc3QgbGluZSBvZiB0aGUgY29tbWVudCBzaG91bGQganVzdCBiZSB0aGUgLyoqIGNvZGUuCiAgICAgICAgaWYgKCR0b2tlbnNbJHNob3J0XVsnbGluZSddID09PSAkdG9rZW5zWyRzdGFja1B0cl1bJ2xpbmUnXSkgewogICAgICAgICAgICAkZXJyb3IgPSAnVGhlIG9wZW4gY29tbWVudCB0YWcgbXVzdCBiZSB0aGUgb25seSBjb250ZW50IG9uIHRoZSBsaW5lJzsKICAgICAgICAgICAgJGZpeCAgID0gJHBocGNzRmlsZS0+YWRkRml4YWJsZUVycm9yKCRlcnJvciwgJHN0YWNrUHRyLCAnQ29udGVudEFmdGVyT3BlbicpOwogICAgICAgICAgICBpZiAoJGZpeCA9PT0gdHJ1ZSkgewogICAgICAgICAgICAgICAgJHBocGNzRmlsZS0+Zml4ZXItPmJlZ2luQ2hhbmdlc2V0KCk7CiAgICAgICAgICAgICAgICAkcGhwY3NGaWxlLT5maXhlci0+YWRkTmV3bGluZSgkc3RhY2tQdHIpOwogICAgICAgICAgICAgICAgJHBocGNzRmlsZS0+Zml4ZXItPmFkZENvbnRlbnRCZWZvcmUoJHNob3J0LCAnKiAnKTsKICAgICAgICAgICAgICAgICRwaHBjc0ZpbGUtPmZpeGVyLT5lbmRDaGFuZ2VzZXQoKTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgLy8gVGhlIGxhc3QgbGluZSBvZiB0aGUgY29tbWVudCBzaG91bGQganVzdCBiZSB0aGUgKi8gY29kZS4KICAgICAgICAkcHJldiA9ICRwaHBjc0ZpbGUtPmZpbmRQcmV2aW91cygkZW1wdHksICgkY29tbWVudEVuZCAtIDEpLCAkc3RhY2tQdHIsIHRydWUpOwogICAgICAgIGlmICgkdG9rZW5zWyRwcmV2XVsnbGluZSddID09PSAkdG9rZW5zWyRjb21tZW50RW5kXVsnbGluZSddKSB7CiAgICAgICAgICAgICRlcnJvciA9ICdUaGUgY2xvc2UgY29tbWVudCB0YWcgbXVzdCBiZSB0aGUgb25seSBjb250ZW50IG9uIHRoZSBsaW5lJzsKICAgICAgICAgICAgJGZpeCAgID0gJHBocGNzRmlsZS0+YWRkRml4YWJsZUVycm9yKCRlcnJvciwgJGNvbW1lbnRFbmQsICdDb250ZW50QmVmb3JlQ2xvc2UnKTsKICAgICAgICAgICAgaWYgKCRmaXggPT09IHRydWUpIHsKICAgICAgICAgICAgICAgICRwaHBjc0ZpbGUtPmZpeGVyLT5hZGROZXdsaW5lQmVmb3JlKCRjb21tZW50RW5kKTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgLy8gQ2hlY2sgZm9yIGFkZGl0aW9uYWwgYmxhbmsgbGluZXMgYXQgdGhlIGVuZCBvZiB0aGUgY29tbWVudC4KICAgICAgICBpZiAoJHRva2Vuc1skcHJldl1bJ2xpbmUnXSA8ICgkdG9rZW5zWyRjb21tZW50RW5kXVsnbGluZSddIC0gMSkpIHsKICAgICAgICAgICAgJGVycm9yID0gJ0FkZGl0aW9uYWwgYmxhbmsgbGluZXMgZm91bmQgYXQgZW5kIG9mIGRvYyBjb21tZW50JzsKICAgICAgICAgICAgJGZpeCAgID0gJHBocGNzRmlsZS0+YWRkRml4YWJsZUVycm9yKCRlcnJvciwgJGNvbW1lbnRFbmQsICdTcGFjaW5nQWZ0ZXInKTsKICAgICAgICAgICAgaWYgKCRmaXggPT09IHRydWUpIHsKICAgICAgICAgICAgICAgICRwaHBjc0ZpbGUtPmZpeGVyLT5iZWdpbkNoYW5nZXNldCgpOwogICAgICAgICAgICAgICAgZm9yICgkaSA9ICgkcHJldiArIDEpOyAkaSA8ICRjb21tZW50RW5kOyAkaSsrKSB7CiAgICAgICAgICAgICAgICAgICAgaWYgKCR0b2tlbnNbKCRpICsgMSldWydsaW5lJ10gPT09ICR0b2tlbnNbJGNvbW1lbnRFbmRdWydsaW5lJ10pIHsKICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAkcGhwY3NGaWxlLT5maXhlci0+cmVwbGFjZVRva2VuKCRpLCAnJyk7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgJHBocGNzRmlsZS0+Zml4ZXItPmVuZENoYW5nZXNldCgpOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAvLyBDaGVjayBmb3IgYSBjb21tZW50IGRlc2NyaXB0aW9uLgogICAgICAgIGlmICgkdG9rZW5zWyRzaG9ydF1bJ2NvZGUnXSAhPT0gVF9ET0NfQ09NTUVOVF9TVFJJTkcpIHsKICAgICAgICAgICAgJGVycm9yID0gJ01pc3Npbmcgc2hvcnQgZGVzY3JpcHRpb24gaW4gZG9jIGNvbW1lbnQnOwogICAgICAgICAgICAkcGhwY3NGaWxlLT5hZGRFcnJvcigkZXJyb3IsICRzdGFja1B0ciwgJ01pc3NpbmdTaG9ydCcpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIC8vIE5vIGV4dHJhIG5ld2xpbmUgYmVmb3JlIHNob3J0IGRlc2NyaXB0aW9uLgogICAgICAgICAgICBpZiAoJHRva2Vuc1skc2hvcnRdWydsaW5lJ10gIT09ICgkdG9rZW5zWyRzdGFja1B0cl1bJ2xpbmUnXSArIDEpKSB7CiAgICAgICAgICAgICAgICAkZXJyb3IgPSAnRG9jIGNvbW1lbnQgc2hvcnQgZGVzY3JpcHRpb24gbXVzdCBiZSBvbiB0aGUgZmlyc3QgbGluZSc7CiAgICAgICAgICAgICAgICAkZml4ICAgPSAkcGhwY3NGaWxlLT5hZGRGaXhhYmxlRXJyb3IoJGVycm9yLCAkc2hvcnQsICdTcGFjaW5nQmVmb3JlU2hvcnQnKTsKICAgICAgICAgICAgICAgIGlmICgkZml4ID09PSB0cnVlKSB7CiAgICAgICAgICAgICAgICAgICAgJHBocGNzRmlsZS0+Zml4ZXItPmJlZ2luQ2hhbmdlc2V0KCk7CiAgICAgICAgICAgICAgICAgICAgZm9yICgkaSA9ICRzdGFja1B0cjsgJGkgPCAkc2hvcnQ7ICRpKyspIHsKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCR0b2tlbnNbJGldWydsaW5lJ10gPT09ICR0b2tlbnNbJHN0YWNrUHRyXVsnbGluZSddKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICgkdG9rZW5zWyRpXVsnbGluZSddID09PSAkdG9rZW5zWyRzaG9ydF1bJ2xpbmUnXSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICRwaHBjc0ZpbGUtPmZpeGVyLT5yZXBsYWNlVG9rZW4oJGksICcnKTsKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICRwaHBjc0ZpbGUtPmZpeGVyLT5lbmRDaGFuZ2VzZXQoKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgLy8gQWNjb3VudCBmb3IgdGhlIGZhY3QgdGhhdCBhIHNob3J0IGRlc2NyaXB0aW9uIG1pZ2h0IGNvdmVyCiAgICAgICAgICAgIC8vIG11bHRpcGxlIGxpbmVzLgogICAgICAgICAgICAkc2hvcnRDb250ZW50ID0gJHRva2Vuc1skc2hvcnRdWydjb250ZW50J107CiAgICAgICAgICAgICRzaG9ydEVuZCAgICAgPSAkc2hvcnQ7CiAgICAgICAgICAgIGZvciAoJGkgPSAoJHNob3J0ICsgMSk7ICRpIDwgJGNvbW1lbnRFbmQ7ICRpKyspIHsKICAgICAgICAgICAgICAgIGlmICgkdG9rZW5zWyRpXVsnY29kZSddID09PSBUX0RPQ19DT01NRU5UX1NUUklORykgewogICAgICAgICAgICAgICAgICAgIGlmICgkdG9rZW5zWyRpXVsnbGluZSddID09PSAoJHRva2Vuc1skc2hvcnRFbmRdWydsaW5lJ10gKyAxKSkgewogICAgICAgICAgICAgICAgICAgICAgICAkc2hvcnRDb250ZW50IC49ICR0b2tlbnNbJGldWydjb250ZW50J107CiAgICAgICAgICAgICAgICAgICAgICAgICRzaG9ydEVuZCAgICAgID0gJGk7CiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBpZiAocHJlZ19tYXRjaCgnL15ccHtMbH0vdScsICRzaG9ydENvbnRlbnQpID09PSAxKSB7CiAgICAgICAgICAgICAgICAkZXJyb3IgPSAnRG9jIGNvbW1lbnQgc2hvcnQgZGVzY3JpcHRpb24gbXVzdCBzdGFydCB3aXRoIGEgY2FwaXRhbCBsZXR0ZXInOwogICAgICAgICAgICAgICAgJHBocGNzRmlsZS0+YWRkRXJyb3IoJGVycm9yLCAkc2hvcnQsICdTaG9ydE5vdENhcGl0YWwnKTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgJGxvbmcgPSAkcGhwY3NGaWxlLT5maW5kTmV4dCgkZW1wdHksICgkc2hvcnRFbmQgKyAxKSwgKCRjb21tZW50RW5kIC0gMSksIHRydWUpOwogICAgICAgICAgICBpZiAoJGxvbmcgIT09IGZhbHNlICYmICR0b2tlbnNbJGxvbmddWydjb2RlJ10gPT09IFRfRE9DX0NPTU1FTlRfU1RSSU5HKSB7CiAgICAgICAgICAgICAgICBpZiAoJHRva2Vuc1skbG9uZ11bJ2xpbmUnXSAhPT0gKCR0b2tlbnNbJHNob3J0RW5kXVsnbGluZSddICsgMikpIHsKICAgICAgICAgICAgICAgICAgICAkZXJyb3IgPSAnVGhlcmUgbXVzdCBiZSBleGFjdGx5IG9uZSBibGFuayBsaW5lIGJldHdlZW4gZGVzY3JpcHRpb25zIGluIGEgZG9jIGNvbW1lbnQnOwogICAgICAgICAgICAgICAgICAgICRmaXggICA9ICRwaHBjc0ZpbGUtPmFkZEZpeGFibGVFcnJvcigkZXJyb3IsICRsb25nLCAnU3BhY2luZ0JldHdlZW4nKTsKICAgICAgICAgICAgICAgICAgICBpZiAoJGZpeCA9PT0gdHJ1ZSkgewogICAgICAgICAgICAgICAgICAgICAgICAkcGhwY3NGaWxlLT5maXhlci0+YmVnaW5DaGFuZ2VzZXQoKTsKICAgICAgICAgICAgICAgICAgICAgICAgZm9yICgkaSA9ICgkc2hvcnRFbmQgKyAxKTsgJGkgPCAkbG9uZzsgJGkrKykgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCR0b2tlbnNbJGldWydsaW5lJ10gPT09ICR0b2tlbnNbJHNob3J0RW5kXVsnbGluZSddKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKCR0b2tlbnNbJGldWydsaW5lJ10gPT09ICgkdG9rZW5zWyRsb25nXVsnbGluZSddIC0gMSkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkcGhwY3NGaWxlLT5maXhlci0+cmVwbGFjZVRva2VuKCRpLCAnJyk7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICRwaHBjc0ZpbGUtPmZpeGVyLT5lbmRDaGFuZ2VzZXQoKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgaWYgKHByZWdfbWF0Y2goJy9eXHB7TGx9L3UnLCAkdG9rZW5zWyRsb25nXVsnY29udGVudCddKSA9PT0gMSkgewogICAgICAgICAgICAgICAgICAgICRlcnJvciA9ICdEb2MgY29tbWVudCBsb25nIGRlc2NyaXB0aW9uIG11c3Qgc3RhcnQgd2l0aCBhIGNhcGl0YWwgbGV0dGVyJzsKICAgICAgICAgICAgICAgICAgICAkcGhwY3NGaWxlLT5hZGRFcnJvcigkZXJyb3IsICRsb25nLCAnTG9uZ05vdENhcGl0YWwnKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfS8vZW5kIGlmCiAgICAgICAgfS8vZW5kIGlmCgogICAgICAgIGlmIChlbXB0eSgkdG9rZW5zWyRjb21tZW50U3RhcnRdWydjb21tZW50X3RhZ3MnXSkgPT09IHRydWUpIHsKICAgICAgICAgICAgLy8gTm8gdGFncyBpbiB0aGUgY29tbWVudC4KICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KCiAgICAgICAgJGZpcnN0VGFnID0gJHRva2Vuc1skY29tbWVudFN0YXJ0XVsnY29tbWVudF90YWdzJ11bMF07CiAgICAgICAgJHByZXYgICAgID0gJHBocGNzRmlsZS0+ZmluZFByZXZpb3VzKCRlbXB0eSwgKCRmaXJzdFRhZyAtIDEpLCAkc3RhY2tQdHIsIHRydWUpOwogICAgICAgIGlmICgkdG9rZW5zWyRmaXJzdFRhZ11bJ2xpbmUnXSAhPT0gKCR0b2tlbnNbJHByZXZdWydsaW5lJ10gKyAyKQogICAgICAgICAgICAmJiAkdG9rZW5zWyRwcmV2XVsnY29kZSddICE9PSBUX0RPQ19DT01NRU5UX09QRU5fVEFHCiAgICAgICAgKSB7CiAgICAgICAgICAgICRlcnJvciA9ICdUaGVyZSBtdXN0IGJlIGV4YWN0bHkgb25lIGJsYW5rIGxpbmUgYmVmb3JlIHRoZSB0YWdzIGluIGEgZG9jIGNvbW1lbnQnOwogICAgICAgICAgICAkZml4ICAgPSAkcGhwY3NGaWxlLT5hZGRGaXhhYmxlRXJyb3IoJGVycm9yLCAkZmlyc3RUYWcsICdTcGFjaW5nQmVmb3JlVGFncycpOwogICAgICAgICAgICBpZiAoJGZpeCA9PT0gdHJ1ZSkgewogICAgICAgICAgICAgICAgJHBocGNzRmlsZS0+Zml4ZXItPmJlZ2luQ2hhbmdlc2V0KCk7CiAgICAgICAgICAgICAgICBmb3IgKCRpID0gKCRwcmV2ICsgMSk7ICRpIDwgJGZpcnN0VGFnOyAkaSsrKSB7CiAgICAgICAgICAgICAgICAgICAgaWYgKCR0b2tlbnNbJGldWydsaW5lJ10gPT09ICR0b2tlbnNbJGZpcnN0VGFnXVsnbGluZSddKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgJHBocGNzRmlsZS0+Zml4ZXItPnJlcGxhY2VUb2tlbigkaSwgJycpOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICRpbmRlbnQgPSBzdHJfcmVwZWF0KCcgJywgJHRva2Vuc1skc3RhY2tQdHJdWydjb2x1bW4nXSk7CiAgICAgICAgICAgICAgICAkcGhwY3NGaWxlLT5maXhlci0+YWRkQ29udGVudCgkcHJldiwgJHBocGNzRmlsZS0+ZW9sQ2hhci4kaW5kZW50LicqJy4kcGhwY3NGaWxlLT5lb2xDaGFyKTsKICAgICAgICAgICAgICAgICRwaHBjc0ZpbGUtPmZpeGVyLT5lbmRDaGFuZ2VzZXQoKTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgLy8gQnJlYWsgb3V0IHRoZSB0YWdzIGludG8gZ3JvdXBzIGFuZCBjaGVjayBhbGlnbm1lbnQgd2l0aGluIGVhY2guCiAgICAgICAgLy8gQSB0YWcgZ3JvdXAgaXMgb25lIHdoZXJlIHRoZXJlIGFyZSBubyBibGFuayBsaW5lcyBiZXR3ZWVuIHRhZ3MuCiAgICAgICAgLy8gVGhlIHBhcmFtIHRhZyBncm91cCBpcyBzcGVjaWFsIGFzIGl0IHJlcXVpcmVzIGFsbCBAcGFyYW0gdGFncyB0byBiZSBpbnNpZGUuCiAgICAgICAgJHRhZ0dyb3VwcyAgICA9IFtdOwogICAgICAgICRncm91cGlkICAgICAgPSAwOwogICAgICAgICRwYXJhbUdyb3VwaWQgPSBudWxsOwogICAgICAgIGZvcmVhY2ggKCR0b2tlbnNbJGNvbW1lbnRTdGFydF1bJ2NvbW1lbnRfdGFncyddIGFzICRwb3MgPT4gJHRhZykgewogICAgICAgICAgICBpZiAoJHBvcyA+IDApIHsKICAgICAgICAgICAgICAgICRwcmV2ID0gJHBocGNzRmlsZS0+ZmluZFByZXZpb3VzKAogICAgICAgICAgICAgICAgICAgIFRfRE9DX0NPTU1FTlRfU1RSSU5HLAogICAgICAgICAgICAgICAgICAgICgkdGFnIC0gMSksCiAgICAgICAgICAgICAgICAgICAgJHRva2Vuc1skY29tbWVudFN0YXJ0XVsnY29tbWVudF90YWdzJ11bKCRwb3MgLSAxKV0KICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgaWYgKCRwcmV2ID09PSBmYWxzZSkgewogICAgICAgICAgICAgICAgICAgICRwcmV2ID0gJHRva2Vuc1skY29tbWVudFN0YXJ0XVsnY29tbWVudF90YWdzJ11bKCRwb3MgLSAxKV07CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgaWYgKCR0b2tlbnNbJHByZXZdWydsaW5lJ10gIT09ICgkdG9rZW5zWyR0YWddWydsaW5lJ10gLSAxKSkgewogICAgICAgICAgICAgICAgICAgICRncm91cGlkKys7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGlmICgkdG9rZW5zWyR0YWddWydjb250ZW50J10gPT09ICdAcGFyYW0nKSB7CiAgICAgICAgICAgICAgICBpZiAoJHBhcmFtR3JvdXBpZCAhPT0gbnVsbAogICAgICAgICAgICAgICAgICAgICYmICRwYXJhbUdyb3VwaWQgIT09ICRncm91cGlkCiAgICAgICAgICAgICAgICApIHsKICAgICAgICAgICAgICAgICAgICAkZXJyb3IgPSAnUGFyYW1ldGVyIHRhZ3MgbXVzdCBiZSBncm91cGVkIHRvZ2V0aGVyIGluIGEgZG9jIGNvbW1lbnQnOwogICAgICAgICAgICAgICAgICAgICRwaHBjc0ZpbGUtPmFkZEVycm9yKCRlcnJvciwgJHRhZywgJ1BhcmFtR3JvdXAnKTsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBpZiAoJHBhcmFtR3JvdXBpZCA9PT0gbnVsbCkgewogICAgICAgICAgICAgICAgICAgICRwYXJhbUdyb3VwaWQgPSAkZ3JvdXBpZDsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfS8vZW5kIGlmCgogICAgICAgICAgICAkdGFnR3JvdXBzWyRncm91cGlkXVtdID0gJHRhZzsKICAgICAgICB9Ly9lbmQgZm9yZWFjaAoKICAgICAgICBmb3JlYWNoICgkdGFnR3JvdXBzIGFzICRncm91cGlkID0+ICRncm91cCkgewogICAgICAgICAgICAkbWF4TGVuZ3RoID0gMDsKICAgICAgICAgICAgJHBhZGRpbmdzICA9IFtdOwogICAgICAgICAgICBmb3JlYWNoICgkZ3JvdXAgYXMgJHBvcyA9PiAkdGFnKSB7CiAgICAgICAgICAgICAgICBpZiAoJHBhcmFtR3JvdXBpZCA9PT0gJGdyb3VwaWQKICAgICAgICAgICAgICAgICAgICAmJiAkdG9rZW5zWyR0YWddWydjb250ZW50J10gIT09ICdAcGFyYW0nCiAgICAgICAgICAgICAgICApIHsKICAgICAgICAgICAgICAgICAgICAkZXJyb3IgPSAnVGFnICVzIGNhbm5vdCBiZSBncm91cGVkIHdpdGggcGFyYW1ldGVyIHRhZ3MgaW4gYSBkb2MgY29tbWVudCc7CiAgICAgICAgICAgICAgICAgICAgJGRhdGEgID0gWyR0b2tlbnNbJHRhZ11bJ2NvbnRlbnQnXV07CiAgICAgICAgICAgICAgICAgICAgJHBocGNzRmlsZS0+YWRkRXJyb3IoJGVycm9yLCAkdGFnLCAnTm9uUGFyYW1Hcm91cCcsICRkYXRhKTsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAkdGFnTGVuZ3RoID0gJHRva2Vuc1skdGFnXVsnbGVuZ3RoJ107CiAgICAgICAgICAgICAgICBpZiAoJHRhZ0xlbmd0aCA+ICRtYXhMZW5ndGgpIHsKICAgICAgICAgICAgICAgICAgICAkbWF4TGVuZ3RoID0gJHRhZ0xlbmd0aDsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAvLyBDaGVjayBmb3IgYSB2YWx1ZS4gTm8gdmFsdWUgbWVhbnMgbm8gcGFkZGluZyBuZWVkZWQuCiAgICAgICAgICAgICAgICAkc3RyaW5nID0gJHBocGNzRmlsZS0+ZmluZE5leHQoVF9ET0NfQ09NTUVOVF9TVFJJTkcsICR0YWcsICRjb21tZW50RW5kKTsKICAgICAgICAgICAgICAgIGlmICgkc3RyaW5nICE9PSBmYWxzZSAmJiAkdG9rZW5zWyRzdHJpbmddWydsaW5lJ10gPT09ICR0b2tlbnNbJHRhZ11bJ2xpbmUnXSkgewogICAgICAgICAgICAgICAgICAgICRwYWRkaW5nc1skdGFnXSA9ICR0b2tlbnNbKCR0YWcgKyAxKV1bJ2xlbmd0aCddOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICAvLyBDaGVjayB0aGF0IHRoZXJlIHdhcyBzaW5nbGUgYmxhbmsgbGluZSBhZnRlciB0aGUgdGFnIGJsb2NrCiAgICAgICAgICAgIC8vIGJ1dCBhY2NvdW50IGZvciBhIG11bHRpLWxpbmUgdGFnIGNvbW1lbnRzLgogICAgICAgICAgICAkbGFzdFRhZyA9ICRncm91cFskcG9zXTsKICAgICAgICAgICAgJG5leHQgICAgPSAkcGhwY3NGaWxlLT5maW5kTmV4dChUX0RPQ19DT01NRU5UX1RBRywgKCRsYXN0VGFnICsgMyksICRjb21tZW50RW5kKTsKICAgICAgICAgICAgaWYgKCRuZXh0ICE9PSBmYWxzZSkgewogICAgICAgICAgICAgICAgJHByZXYgPSAkcGhwY3NGaWxlLT5maW5kUHJldmlvdXMoW1RfRE9DX0NPTU1FTlRfVEFHLCBUX0RPQ19DT01NRU5UX1NUUklOR10sICgkbmV4dCAtIDEpLCAkY29tbWVudFN0YXJ0KTsKICAgICAgICAgICAgICAgIGlmICgkdG9rZW5zWyRuZXh0XVsnbGluZSddICE9PSAoJHRva2Vuc1skcHJldl1bJ2xpbmUnXSArIDIpKSB7CiAgICAgICAgICAgICAgICAgICAgJGVycm9yID0gJ1RoZXJlIG11c3QgYmUgYSBzaW5nbGUgYmxhbmsgbGluZSBhZnRlciBhIHRhZyBncm91cCc7CiAgICAgICAgICAgICAgICAgICAgJGZpeCAgID0gJHBocGNzRmlsZS0+YWRkRml4YWJsZUVycm9yKCRlcnJvciwgJGxhc3RUYWcsICdTcGFjaW5nQWZ0ZXJUYWdHcm91cCcpOwogICAgICAgICAgICAgICAgICAgIGlmICgkZml4ID09PSB0cnVlKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICRwaHBjc0ZpbGUtPmZpeGVyLT5iZWdpbkNoYW5nZXNldCgpOwogICAgICAgICAgICAgICAgICAgICAgICBmb3IgKCRpID0gKCRwcmV2ICsgMSk7ICRpIDwgJG5leHQ7ICRpKyspIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkdG9rZW5zWyRpXVsnbGluZSddID09PSAkdG9rZW5zWyRuZXh0XVsnbGluZSddKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgJHBocGNzRmlsZS0+Zml4ZXItPnJlcGxhY2VUb2tlbigkaSwgJycpOwogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAkaW5kZW50ID0gc3RyX3JlcGVhdCgnICcsICR0b2tlbnNbJHN0YWNrUHRyXVsnY29sdW1uJ10pOwogICAgICAgICAgICAgICAgICAgICAgICAkcGhwY3NGaWxlLT5maXhlci0+YWRkQ29udGVudCgkcHJldiwgJHBocGNzRmlsZS0+ZW9sQ2hhci4kaW5kZW50LicqJy4kcGhwY3NGaWxlLT5lb2xDaGFyKTsKICAgICAgICAgICAgICAgICAgICAgICAgJHBocGNzRmlsZS0+Zml4ZXItPmVuZENoYW5nZXNldCgpOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfS8vZW5kIGlmCgogICAgICAgICAgICAvLyBOb3cgY2hlY2sgcGFkZGluZ3MuCiAgICAgICAgICAgIGZvcmVhY2ggKCRwYWRkaW5ncyBhcyAkdGFnID0+ICRwYWRkaW5nKSB7CiAgICAgICAgICAgICAgICAkcmVxdWlyZWQgPSAoJG1heExlbmd0aCAtICR0b2tlbnNbJHRhZ11bJ2xlbmd0aCddICsgMSk7CgogICAgICAgICAgICAgICAgaWYgKCRwYWRkaW5nICE9PSAkcmVxdWlyZWQpIHsKICAgICAgICAgICAgICAgICAgICAkZXJyb3IgPSAnVGFnIHZhbHVlIGZvciAlcyB0YWcgaW5kZW50ZWQgaW5jb3JyZWN0bHk7IGV4cGVjdGVkICVzIHNwYWNlcyBidXQgZm91bmQgJXMnOwogICAgICAgICAgICAgICAgICAgICRkYXRhICA9IFsKICAgICAgICAgICAgICAgICAgICAgICAgJHRva2Vuc1skdGFnXVsnY29udGVudCddLAogICAgICAgICAgICAgICAgICAgICAgICAkcmVxdWlyZWQsCiAgICAgICAgICAgICAgICAgICAgICAgICRwYWRkaW5nLAogICAgICAgICAgICAgICAgICAgIF07CgogICAgICAgICAgICAgICAgICAgICRmaXggPSAkcGhwY3NGaWxlLT5hZGRGaXhhYmxlRXJyb3IoJGVycm9yLCAoJHRhZyArIDEpLCAnVGFnVmFsdWVJbmRlbnQnLCAkZGF0YSk7CiAgICAgICAgICAgICAgICAgICAgaWYgKCRmaXggPT09IHRydWUpIHsKICAgICAgICAgICAgICAgICAgICAgICAgJHBocGNzRmlsZS0+Zml4ZXItPnJlcGxhY2VUb2tlbigoJHRhZyArIDEpLCBzdHJfcmVwZWF0KCcgJywgJHJlcXVpcmVkKSk7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfS8vZW5kIGZvcmVhY2gKCiAgICAgICAgLy8gSWYgdGhlcmUgaXMgYSBwYXJhbSBncm91cCwgaXQgbmVlZHMgdG8gYmUgZmlyc3QuCiAgICAgICAgaWYgKCRwYXJhbUdyb3VwaWQgIT09IG51bGwgJiYgJHBhcmFtR3JvdXBpZCAhPT0gMCkgewogICAgICAgICAgICAkZXJyb3IgPSAnUGFyYW1ldGVyIHRhZ3MgbXVzdCBiZSBkZWZpbmVkIGZpcnN0IGluIGEgZG9jIGNvbW1lbnQnOwogICAgICAgICAgICAkcGhwY3NGaWxlLT5hZGRFcnJvcigkZXJyb3IsICR0YWdHcm91cHNbJHBhcmFtR3JvdXBpZF1bMF0sICdQYXJhbU5vdEZpcnN0Jyk7CiAgICAgICAgfQoKICAgICAgICAkZm91bmRUYWdzID0gW107CiAgICAgICAgZm9yZWFjaCAoJHRva2Vuc1skc3RhY2tQdHJdWydjb21tZW50X3RhZ3MnXSBhcyAkcG9zID0+ICR0YWcpIHsKICAgICAgICAgICAgJHRhZ05hbWUgPSAkdG9rZW5zWyR0YWddWydjb250ZW50J107CiAgICAgICAgICAgIGlmIChpc3NldCgkZm91bmRUYWdzWyR0YWdOYW1lXSkgPT09IHRydWUpIHsKICAgICAgICAgICAgICAgICRsYXN0VGFnID0gJHRva2Vuc1skc3RhY2tQdHJdWydjb21tZW50X3RhZ3MnXVsoJHBvcyAtIDEpXTsKICAgICAgICAgICAgICAgIGlmICgkdG9rZW5zWyRsYXN0VGFnXVsnY29udGVudCddICE9PSAkdGFnTmFtZSkgewogICAgICAgICAgICAgICAgICAgICRlcnJvciA9ICdUYWdzIG11c3QgYmUgZ3JvdXBlZCB0b2dldGhlciBpbiBhIGRvYyBjb21tZW50JzsKICAgICAgICAgICAgICAgICAgICAkcGhwY3NGaWxlLT5hZGRFcnJvcigkZXJyb3IsICR0YWcsICdUYWdzTm90R3JvdXBlZCcpOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICB9CgogICAgICAgICAgICAkZm91bmRUYWdzWyR0YWdOYW1lXSA9IHRydWU7CiAgICAgICAgfQoKICAgIH0vL2VuZCBwcm9jZXNzKCkKCgp9Ly9lbmQgY2xhc3MKIjtzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAG5hbWVzcGFjZXMiO2E6MTp7czo1MjoiXFBIUF9Db2RlU25pZmZlclxTdGFuZGFyZHNcR2VuZXJpY1xTbmlmZnNcQ29tbWVudGluZyI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjUyOiJcUEhQX0NvZGVTbmlmZmVyXFN0YW5kYXJkc1xHZW5lcmljXFNuaWZmc1xDb21tZW50aW5nIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTA6IkNvbW1lbnRpbmciO319czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBpbmNsdWRlcyI7YTowOnt9czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBmdW5jdGlvbnMiO2E6MDp7fXM6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAY29uc3RhbnRzIjthOjA6e31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGNsYXNzZXMiO2E6MTp7czo2ODoiXFBIUF9Db2RlU25pZmZlclxTdGFuZGFyZHNcR2VuZXJpY1xTbmlmZnNcQ29tbWVudGluZ1xEb2NDb21tZW50U25pZmYiO086MzU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfIjoxMzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6Njg6IlxQSFBfQ29kZVNuaWZmZXJcU3RhbmRhcmRzXEdlbmVyaWNcU25pZmZzXENvbW1lbnRpbmdcRG9jQ29tbWVudFNuaWZmIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTU6IkRvY0NvbW1lbnRTbmlmZiI7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBkb2NCbG9jayI7TjtzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AYWJzdHJhY3QiO2I6MDtzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AZmluYWwiO2I6MDtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AcGFyZW50IjtOO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBpbXBsZW1lbnRzIjthOjE6e3M6Mjk6IlxQSFBfQ29kZVNuaWZmZXJcU25pZmZzXFNuaWZmIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6Mjk6IlxQSFBfQ29kZVNuaWZmZXJcU25pZmZzXFNuaWZmIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6NToiU25pZmYiO319czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGNvbnN0YW50cyI7YTowOnt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAHByb3BlcnRpZXMiO2E6MTp7czo5MDoiXFBIUF9Db2RlU25pZmZlclxTdGFuZGFyZHNcR2VuZXJpY1xTbmlmZnNcQ29tbWVudGluZ1xEb2NDb21tZW50U25pZmY6OiRzdXBwb3J0ZWRUb2tlbml6ZXJzIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5IjoxMTp7czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo5MDoiXFBIUF9Db2RlU25pZmZlclxTdGFuZGFyZHNcR2VuZXJpY1xTbmlmZnNcQ29tbWVudGluZ1xEb2NDb21tZW50U25pZmY6OiRzdXBwb3J0ZWRUb2tlbml6ZXJzIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTk6InN1cHBvcnRlZFRva2VuaXplcnMiO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6NDE6IkEgbGlzdCBvZiB0b2tlbml6ZXJzIHRoaXMgc25pZmYgc3VwcG9ydHMuIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjE6e2k6MDtPOjQzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xWYXJfIjo0OntzOjE1OiIAKgB2YXJpYWJsZU5hbWUiO3M6MDoiIjtzOjc6IgAqAHR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBcnJheV8iOjM6e3M6MTI6IgAqAHZhbHVlVHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fXM6MTA6IgAqAGtleVR5cGUiO047czoxNzoiACoAZGVmYXVsdEtleVR5cGUiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb21wb3VuZCI6Mjp7czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0eXBlcyI7YToyOntpOjA7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31pOjE7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEludGVnZXIiOjA6e319czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0b2tlbiI7czoxOiJ8Ijt9fXM6NzoiACoAbmFtZSI7czozOiJ2YXIiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fX1zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb250ZXh0IjoyOntzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbnRleHQAbmFtZXNwYWNlIjtzOjUxOiJQSFBfQ29kZVNuaWZmZXJcU3RhbmRhcmRzXEdlbmVyaWNcU25pZmZzXENvbW1lbnRpbmciO3M6NTY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29udGV4dABuYW1lc3BhY2VBbGlhc2VzIjthOjI6e3M6NDoiRmlsZSI7czoyNjoiUEhQX0NvZGVTbmlmZmVyXEZpbGVzXEZpbGUiO3M6NToiU25pZmYiO3M6Mjg6IlBIUF9Db2RlU25pZmZlclxTbmlmZnNcU25pZmYiO319czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQB0eXBlcyI7YTowOnt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAZGVmYXVsdCI7czoxMzoiWydQSFAnLCAnSlMnXSI7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAc3RhdGljIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6NjoicHVibGljIjt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjIzO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGVuZExvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToyNjtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQB0eXBlIjtOO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHJlYWRPbmx5IjtiOjA7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAbWV0YWRhdGEiO2E6MDp7fX19czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAG1ldGhvZHMiO2E6Mjp7czo4MDoiXFBIUF9Db2RlU25pZmZlclxTdGFuZGFyZHNcR2VuZXJpY1xTbmlmZnNcQ29tbWVudGluZ1xEb2NDb21tZW50U25pZmY6OnJlZ2lzdGVyKCkiO086MzU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kIjoxMjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czo1NzoiUmV0dXJucyBhbiBhcnJheSBvZiB0b2tlbnMgdGhpcyB0ZXN0IHdhbnRzIHRvIGxpc3RlbiBmb3IuIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjE6e2k6MDtPOjQ2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xSZXR1cm5fIjozOntzOjc6IgAqAHR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBcnJheV8iOjM6e3M6MTI6IgAqAHZhbHVlVHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fXM6MTA6IgAqAGtleVR5cGUiO047czoxNzoiACoAZGVmYXVsdEtleVR5cGUiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb21wb3VuZCI6Mjp7czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0eXBlcyI7YToyOntpOjA7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31pOjE7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEludGVnZXIiOjA6e319czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0b2tlbiI7czoxOiJ8Ijt9fXM6NzoiACoAbmFtZSI7czo2OiJyZXR1cm4iO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fX1zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO3I6Nzk7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo4MDoiXFBIUF9Db2RlU25pZmZlclxTdGFuZGFyZHNcR2VuZXJpY1xTbmlmZnNcQ29tbWVudGluZ1xEb2NDb21tZW50U25pZmY6OnJlZ2lzdGVyKCkiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czo4OiJyZWdpc3RlciI7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhYnN0cmFjdCI7YjowO3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmaW5hbCI7YjowO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABzdGF0aWMiO2I6MDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6NjoicHVibGljIjt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFyZ3VtZW50cyI7YTowOnt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTozNDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZW5kTG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjM4O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAByZXR1cm5UeXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTWl4ZWRfIjowOnt9czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGhhc1JldHVybkJ5UmVmZXJlbmNlIjtiOjA7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAG1ldGFkYXRhIjthOjA6e319czo3OToiXFBIUF9Db2RlU25pZmZlclxTdGFuZGFyZHNcR2VuZXJpY1xTbmlmZnNcQ29tbWVudGluZ1xEb2NDb21tZW50U25pZmY6OnByb2Nlc3MoKSI7TzozNToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QiOjEyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjU5OiJQcm9jZXNzZXMgdGhpcyB0ZXN0LCB3aGVuIG9uZSBvZiBpdHMgdG9rZW5zIGlzIGVuY291bnRlcmVkLiI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YTozOntpOjA7Tzo0NDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0iOjY6e3M6NTg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQYXJhbQB2YXJpYWJsZU5hbWUiO3M6OToicGhwY3NGaWxlIjtzOjU2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0AaXNWYXJpYWRpYyI7YjowO3M6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQYXJhbQBpc1JlZmVyZW5jZSI7YjowO3M6NzoiACoAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8iOjE6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XwBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjI3OiJcUEhQX0NvZGVTbmlmZmVyXEZpbGVzXEZpbGUiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czo0OiJGaWxlIjt9fXM6NzoiACoAbmFtZSI7czo1OiJwYXJhbSI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MjM6IlRoZSBmaWxlIGJlaW5nIHNjYW5uZWQuIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19aToxO086NDQ6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtIjo2OntzOjU4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0AdmFyaWFibGVOYW1lIjtzOjg6InN0YWNrUHRyIjtzOjU2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0AaXNWYXJpYWRpYyI7YjowO3M6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQYXJhbQBpc1JlZmVyZW5jZSI7YjowO3M6NzoiACoAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEludGVnZXIiOjA6e31zOjc6IgAqAG5hbWUiO3M6NToicGFyYW0iO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjY1OiJUaGUgcG9zaXRpb24gb2YgdGhlIGN1cnJlbnQgdG9rZW4KaW4gdGhlIHN0YWNrIHBhc3NlZCBpbiAkdG9rZW5zLiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fWk6MjtPOjQ2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xSZXR1cm5fIjozOntzOjc6IgAqAHR5cGUiO086MzY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xWb2lkXyI6MDp7fXM6NzoiACoAbmFtZSI7czo2OiJyZXR1cm4iO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fX1zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO3I6Nzk7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo3OToiXFBIUF9Db2RlU25pZmZlclxTdGFuZGFyZHNcR2VuZXJpY1xTbmlmZnNcQ29tbWVudGluZ1xEb2NDb21tZW50U25pZmY6OnByb2Nlc3MoKSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjc6InByb2Nlc3MiO31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYWJzdHJhY3QiO2I6MDtzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZmluYWwiO2I6MDtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAc3RhdGljIjtiOjA7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjY6InB1YmxpYyI7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhcmd1bWVudHMiO2E6Mjp7aTowO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQiOjU6e3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AG5hbWUiO3M6OToicGhwY3NGaWxlIjtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudAB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XyI6MTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6Mjc6IlxQSFBfQ29kZVNuaWZmZXJcRmlsZXNcRmlsZSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjQ6IkZpbGUiO319czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAZGVmYXVsdCI7TjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABieVJlZmVyZW5jZSI7YjowO3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGlzVmFyaWFkaWMiO2I6MDt9aToxO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQiOjU6e3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AG5hbWUiO3M6ODoic3RhY2tQdHIiO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AHR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xNaXhlZF8iOjA6e31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABkZWZhdWx0IjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGJ5UmVmZXJlbmNlIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAaXNWYXJpYWRpYyI7YjowO319czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo1MDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZW5kTG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjM1MDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAcmV0dXJuVHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fXM6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABoYXNSZXR1cm5CeVJlZmVyZW5jZSI7YjowO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABtZXRhZGF0YSI7YTowOnt9fX1zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AdXNlZFRyYWl0cyI7YTowOnt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToxNTtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AZW5kTG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjM1MztzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AbWV0YWRhdGEiO2E6MDp7fX19czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBpbnRlcmZhY2VzIjthOjA6e31zOjQxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAHRyYWl0cyI7YTowOnt9czo0MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBlbnVtcyI7YTowOnt9czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBtZXRhZGF0YSI7YTowOnt9fQ==";