1688054433
waR3U4bTeM%3A588ee852de2a6dddac50f1336eba3600-a581f64a0467e64941b266de68bb99c9
s:108940:"TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlIjoxNDp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6NTM6IlRlc3RzIHRoZSBiYWNrZmlsbGluZyBvZiB0aGUgVF9GTiB0b2tlbiB0byBQSFAgPCA3LjQuIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjM6e2k6MDtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xBdXRob3IiOjQ6e3M6NzoiACoAbmFtZSI7czo2OiJhdXRob3IiO3M6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xBdXRob3IAYXV0aG9yTmFtZSI7czoyNDoiSnVsaWV0dGUgUmVpbmRlcnMgRm9sbWVyIjtzOjU4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcQXV0aG9yAGF1dGhvckVtYWlsIjtzOjI2OiJwaHBjc19ub3NwYW1AYWR2aWVzZW56by5ubCI7czoxNDoiACoAZGVzY3JpcHRpb24iO047fWk6MTtPOjQ2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xHZW5lcmljIjoyOntzOjc6IgAqAG5hbWUiO3M6OToiY29weXJpZ2h0IjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czozOToiMjAyMCBTcXVpeiBQdHkgTHRkIChBQk4gNzcgMDg0IDY3MCA2MDApIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19aToyO086NDY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEdlbmVyaWMiOjI6e3M6NzoiACoAbmFtZSI7czo3OiJsaWNlbnNlIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czo4MDoiaHR0cHM6Ly9naXRodWIuY29tL3NxdWl6bGFicy9QSFBfQ29kZVNuaWZmZXIvYmxvYi9tYXN0ZXIvbGljZW5jZS50eHQgQlNEIExpY2VuY2UiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX19czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29udGV4dCI6Mjp7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb250ZXh0AG5hbWVzcGFjZSI7czowOiIiO3M6NTY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29udGV4dABuYW1lc3BhY2VBbGlhc2VzIjthOjA6e319czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGhhc2giO3M6MzI6ImE1ODFmNjRhMDQ2N2U2NDk0MWIyNjZkZTY4YmI5OWM5IjtzOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAG5hbWUiO3M6MzQ6Ik5hbWVkRnVuY3Rpb25DYWxsQXJndW1lbnRzVGVzdC5waHAiO3M6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAcGF0aCI7czo4ODoidmVuZG9yL3NxdWl6bGFicy9waHBfY29kZXNuaWZmZXIvdGVzdHMvQ29yZS9Ub2tlbml6ZXIvTmFtZWRGdW5jdGlvbkNhbGxBcmd1bWVudHNUZXN0LnBocCI7czo0MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBzb3VyY2UiO3M6MjcwMjg6Ijw/cGhwCi8qKgogKiBUZXN0cyB0aGUgYmFja2ZpbGxpbmcgb2YgdGhlIFRfRk4gdG9rZW4gdG8gUEhQIDwgNy40LgogKgogKiBAYXV0aG9yICAgIEp1bGlldHRlIFJlaW5kZXJzIEZvbG1lciA8cGhwY3Nfbm9zcGFtQGFkdmllc2Vuem8ubmw+CiAqIEBjb3B5cmlnaHQgMjAyMCBTcXVpeiBQdHkgTHRkIChBQk4gNzcgMDg0IDY3MCA2MDApCiAqIEBsaWNlbnNlICAgaHR0cHM6Ly9naXRodWIuY29tL3NxdWl6bGFicy9QSFBfQ29kZVNuaWZmZXIvYmxvYi9tYXN0ZXIvbGljZW5jZS50eHQgQlNEIExpY2VuY2UKICovCgpuYW1lc3BhY2UgUEhQX0NvZGVTbmlmZmVyXFRlc3RzXENvcmVcVG9rZW5pemVyOwoKdXNlIFBIUF9Db2RlU25pZmZlclxUZXN0c1xDb3JlXEFic3RyYWN0TWV0aG9kVW5pdFRlc3Q7CnVzZSBQSFBfQ29kZVNuaWZmZXJcVXRpbFxUb2tlbnM7CgpjbGFzcyBOYW1lZEZ1bmN0aW9uQ2FsbEFyZ3VtZW50c1Rlc3QgZXh0ZW5kcyBBYnN0cmFjdE1ldGhvZFVuaXRUZXN0CnsKCgogICAgLyoqCiAgICAgKiBWZXJpZnkgdGhhdCBwYXJhbWV0ZXIgbGFiZWxzIGFyZSB0b2tlbml6ZWQgYXMgVF9QQVJBTV9OQU1FIGFuZCB0aGF0CiAgICAgKiB0aGUgY29sb24gYWZ0ZXIgaXQgaXMgdG9rZW5pemVkIGFzIGEgVF9DT0xPTi4KICAgICAqCiAgICAgKiBAcGFyYW0gc3RyaW5nICR0ZXN0TWFya2VyIFRoZSBjb21tZW50IHByZWZhY2luZyB0aGUgdGFyZ2V0IHRva2VuLgogICAgICogQHBhcmFtIGFycmF5ICAkcGFyYW1ldGVycyBUaGUgdG9rZW4gY29udGVudCBmb3IgZWFjaCBwYXJhbWV0ZXIgbGFiZWwgdG8gbG9vayBmb3IuCiAgICAgKgogICAgICogQGRhdGFQcm92aWRlciBkYXRhTmFtZWRGdW5jdGlvbkNhbGxBcmd1bWVudHMKICAgICAqIEBjb3ZlcnMgICAgICAgUEhQX0NvZGVTbmlmZmVyXFRva2VuaXplcnNcUEhQOjp0b2tlbml6ZQogICAgICoKICAgICAqIEByZXR1cm4gdm9pZAogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gdGVzdE5hbWVkRnVuY3Rpb25DYWxsQXJndW1lbnRzKCR0ZXN0TWFya2VyLCAkcGFyYW1ldGVycykKICAgIHsKICAgICAgICAkdG9rZW5zID0gc2VsZjo6JHBocGNzRmlsZS0+Z2V0VG9rZW5zKCk7CgogICAgICAgIGZvcmVhY2ggKCRwYXJhbWV0ZXJzIGFzICRjb250ZW50KSB7CiAgICAgICAgICAgICRsYWJlbCA9ICR0aGlzLT5nZXRUYXJnZXRUb2tlbigkdGVzdE1hcmtlciwgW1RfU1RSSU5HLCBUX1BBUkFNX05BTUVdLCAkY29udGVudCk7CgogICAgICAgICAgICAkdGhpcy0+YXNzZXJ0U2FtZSgKICAgICAgICAgICAgICAgIFRfUEFSQU1fTkFNRSwKICAgICAgICAgICAgICAgICR0b2tlbnNbJGxhYmVsXVsnY29kZSddLAogICAgICAgICAgICAgICAgJ1Rva2VuIHRva2VuaXplZCBhcyAnLiR0b2tlbnNbJGxhYmVsXVsndHlwZSddLicsIG5vdCBUX1BBUkFNX05BTUUgKGNvZGUpJwogICAgICAgICAgICApOwogICAgICAgICAgICAkdGhpcy0+YXNzZXJ0U2FtZSgKICAgICAgICAgICAgICAgICdUX1BBUkFNX05BTUUnLAogICAgICAgICAgICAgICAgJHRva2Vuc1skbGFiZWxdWyd0eXBlJ10sCiAgICAgICAgICAgICAgICAnVG9rZW4gdG9rZW5pemVkIGFzICcuJHRva2Vuc1skbGFiZWxdWyd0eXBlJ10uJywgbm90IFRfUEFSQU1fTkFNRSAodHlwZSknCiAgICAgICAgICAgICk7CgogICAgICAgICAgICAvLyBHZXQgdGhlIG5leHQgbm9uLWVtcHR5IHRva2VuLgogICAgICAgICAgICAkY29sb24gPSBzZWxmOjokcGhwY3NGaWxlLT5maW5kTmV4dChUb2tlbnM6OiRlbXB0eVRva2VucywgKCRsYWJlbCArIDEpLCBudWxsLCB0cnVlKTsKCiAgICAgICAgICAgICR0aGlzLT5hc3NlcnRTYW1lKAogICAgICAgICAgICAgICAgJzonLAogICAgICAgICAgICAgICAgJHRva2Vuc1skY29sb25dWydjb250ZW50J10sCiAgICAgICAgICAgICAgICAnTmV4dCB0b2tlbiBhZnRlciBwYXJhbWV0ZXIgbmFtZSBpcyBub3QgYSBjb2xvbi4gRm91bmQ6ICcuJHRva2Vuc1skY29sb25dWydjb250ZW50J10KICAgICAgICAgICAgKTsKICAgICAgICAgICAgJHRoaXMtPmFzc2VydFNhbWUoCiAgICAgICAgICAgICAgICBUX0NPTE9OLAogICAgICAgICAgICAgICAgJHRva2Vuc1skY29sb25dWydjb2RlJ10sCiAgICAgICAgICAgICAgICAnVG9rZW4gdG9rZW5pemVkIGFzICcuJHRva2Vuc1skY29sb25dWyd0eXBlJ10uJywgbm90IFRfQ09MT04gKGNvZGUpJwogICAgICAgICAgICApOwogICAgICAgICAgICAkdGhpcy0+YXNzZXJ0U2FtZSgKICAgICAgICAgICAgICAgICdUX0NPTE9OJywKICAgICAgICAgICAgICAgICR0b2tlbnNbJGNvbG9uXVsndHlwZSddLAogICAgICAgICAgICAgICAgJ1Rva2VuIHRva2VuaXplZCBhcyAnLiR0b2tlbnNbJGNvbG9uXVsndHlwZSddLicsIG5vdCBUX0NPTE9OICh0eXBlKScKICAgICAgICAgICAgKTsKICAgICAgICB9Ly9lbmQgZm9yZWFjaAoKICAgIH0vL2VuZCB0ZXN0TmFtZWRGdW5jdGlvbkNhbGxBcmd1bWVudHMoKQoKCiAgICAvKioKICAgICAqIERhdGEgcHJvdmlkZXIuCiAgICAgKgogICAgICogQHNlZSB0ZXN0TmFtZWRGdW5jdGlvbkNhbGxBcmd1bWVudHMoKQogICAgICoKICAgICAqIEByZXR1cm4gYXJyYXkKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIGRhdGFOYW1lZEZ1bmN0aW9uQ2FsbEFyZ3VtZW50cygpCiAgICB7CiAgICAgICAgcmV0dXJuIFsKICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgJy8qIHRlc3ROYW1lZEFyZ3MgKi8nLAogICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICdzdGFydF9pbmRleCcsCiAgICAgICAgICAgICAgICAgICAgJ2NvdW50JywKICAgICAgICAgICAgICAgICAgICAndmFsdWUnLAogICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgXSwKICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgJy8qIHRlc3ROYW1lZEFyZ3NNdWx0aWxpbmUgKi8nLAogICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICdzdGFydF9pbmRleCcsCiAgICAgICAgICAgICAgICAgICAgJ2NvdW50JywKICAgICAgICAgICAgICAgICAgICAndmFsdWUnLAogICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgXSwKICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgJy8qIHRlc3ROYW1lZEFyZ3NXaXRoV2hpdGVzcGFjZUFuZENvbW1lbnRzICovJywKICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAnc3RhcnRfaW5kZXgnLAogICAgICAgICAgICAgICAgICAgICdjb3VudCcsCiAgICAgICAgICAgICAgICAgICAgJ3ZhbHVlJywKICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgIF0sCiAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICcvKiB0ZXN0TWl4ZWRQb3NpdGlvbmFsQW5kTmFtZWRBcmdzICovJywKICAgICAgICAgICAgICAgIFsnZG91YmxlX2VuY29kZSddLAogICAgICAgICAgICBdLAogICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAnLyogdGVzdE5lc3RlZEZ1bmN0aW9uQ2FsbE91dGVyICovJywKICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAnc3RhcnRfaW5kZXgnLAogICAgICAgICAgICAgICAgICAgICdjb3VudCcsCiAgICAgICAgICAgICAgICAgICAgJ3ZhbHVlJywKICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgIF0sCiAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICcvKiB0ZXN0TmVzdGVkRnVuY3Rpb25DYWxsSW5uZXIxICovJywKICAgICAgICAgICAgICAgIFsnc2tpcCddLAogICAgICAgICAgICBdLAogICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAnLyogdGVzdE5lc3RlZEZ1bmN0aW9uQ2FsbElubmVyMiAqLycsCiAgICAgICAgICAgICAgICBbJ2FycmF5X29yX2NvdW50YWJsZSddLAogICAgICAgICAgICBdLAogICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAnLyogdGVzdE5hbWVzcGFjZU9wZXJhdG9yRnVuY3Rpb24gKi8nLAogICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICdsYWJlbCcsCiAgICAgICAgICAgICAgICAgICAgJ21vcmUnLAogICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgXSwKICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgJy8qIHRlc3ROYW1lc3BhY2VSZWxhdGl2ZUZ1bmN0aW9uICovJywKICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAnbGFiZWwnLAogICAgICAgICAgICAgICAgICAgICdtb3JlJywKICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgIF0sCiAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICcvKiB0ZXN0TmFtZXNwYWNlZEZRTkZ1bmN0aW9uICovJywKICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAnbGFiZWwnLAogICAgICAgICAgICAgICAgICAgICdtb3JlJywKICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgIF0sCiAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICcvKiB0ZXN0VmFyaWFibGVGdW5jdGlvbiAqLycsCiAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgJ2xhYmVsJywKICAgICAgICAgICAgICAgICAgICAnbW9yZScsCiAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICBdLAogICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAnLyogdGVzdFZhcmlhYmxlVmFyaWFibGVGdW5jdGlvbiAqLycsCiAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgJ2xhYmVsJywKICAgICAgICAgICAgICAgICAgICAnbW9yZScsCiAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICBdLAogICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAnLyogdGVzdE1ldGhvZENhbGwgKi8nLAogICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICdsYWJlbCcsCiAgICAgICAgICAgICAgICAgICAgJ21vcmUnLAogICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgXSwKICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgJy8qIHRlc3RWYXJpYWJsZU1ldGhvZENhbGwgKi8nLAogICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICdsYWJlbCcsCiAgICAgICAgICAgICAgICAgICAgJ21vcmUnLAogICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgXSwKICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgJy8qIHRlc3RDbGFzc0luc3RhbnRpYXRpb24gKi8nLAogICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICdsYWJlbCcsCiAgICAgICAgICAgICAgICAgICAgJ21vcmUnLAogICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgXSwKICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgJy8qIHRlc3RDbGFzc0luc3RhbnRpYXRpb25TZWxmICovJywKICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAnbGFiZWwnLAogICAgICAgICAgICAgICAgICAgICdtb3JlJywKICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgIF0sCiAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICcvKiB0ZXN0Q2xhc3NJbnN0YW50aWF0aW9uU3RhdGljICovJywKICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAnbGFiZWwnLAogICAgICAgICAgICAgICAgICAgICdtb3JlJywKICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgIF0sCiAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICcvKiB0ZXN0QW5vbkNsYXNzICovJywKICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAnbGFiZWwnLAogICAgICAgICAgICAgICAgICAgICdtb3JlJywKICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgIF0sCiAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICcvKiB0ZXN0Tm9uQXNjaWlOYW1lcyAqLycsCiAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgJ/Cfkqnwn5Kp8J+SqScsCiAgICAgICAgICAgICAgICAgICAgJ9Cf0LDRgdGF0LAnLAogICAgICAgICAgICAgICAgICAgICdfdmFsaWQnLAogICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgXSwKCiAgICAgICAgICAgIC8vIENvZGluZyBlcnJvcnMgd2hpY2ggc2hvdWxkIHN0aWxsIGJlIGhhbmRsZWQuCiAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICcvKiB0ZXN0Q29tcGlsZUVycm9yTmFtZWRCZWZvcmVQb3NpdGlvbmFsICovJywKICAgICAgICAgICAgICAgIFsncGFyYW0nXSwKICAgICAgICAgICAgXSwKICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgJy8qIHRlc3REdXBsaWNhdGVOYW1lMSAqLycsCiAgICAgICAgICAgICAgICBbJ3BhcmFtJ10sCiAgICAgICAgICAgIF0sCiAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICcvKiB0ZXN0RHVwbGljYXRlTmFtZTIgKi8nLAogICAgICAgICAgICAgICAgWydwYXJhbSddLAogICAgICAgICAgICBdLAogICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAnLyogdGVzdEluY29ycmVjdE9yZGVyV2l0aFZhcmlhZGljICovJywKICAgICAgICAgICAgICAgIFsnc3RhcnRfaW5kZXgnXSwKICAgICAgICAgICAgXSwKICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgJy8qIHRlc3RDb21waWxlRXJyb3JJbmNvcnJlY3RPcmRlcldpdGhWYXJpYWRpYyAqLycsCiAgICAgICAgICAgICAgICBbJ3BhcmFtJ10sCiAgICAgICAgICAgIF0sCiAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICcvKiB0ZXN0UGFyc2VFcnJvck5vVmFsdWUgKi8nLAogICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICdwYXJhbTEnLAogICAgICAgICAgICAgICAgICAgICdwYXJhbTInLAogICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgXSwKICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgJy8qIHRlc3RQYXJzZUVycm9yRXhpdCAqLycsCiAgICAgICAgICAgICAgICBbJ3N0YXR1cyddLAogICAgICAgICAgICBdLAogICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAnLyogdGVzdFBhcnNlRXJyb3JFbXB0eSAqLycsCiAgICAgICAgICAgICAgICBbJ3ZhcmlhYmxlJ10sCiAgICAgICAgICAgIF0sCiAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICcvKiB0ZXN0UGFyc2VFcnJvckV2YWwgKi8nLAogICAgICAgICAgICAgICAgWydjb2RlJ10sCiAgICAgICAgICAgIF0sCiAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICcvKiB0ZXN0UGFyc2VFcnJvckFyYml0cmFyeVBhcmVudGhlc2VzICovJywKICAgICAgICAgICAgICAgIFsnc29tZXRoaW5nJ10sCiAgICAgICAgICAgIF0sCiAgICAgICAgXTsKCiAgICB9Ly9lbmQgZGF0YU5hbWVkRnVuY3Rpb25DYWxsQXJndW1lbnRzKCkKCgogICAgLyoqCiAgICAgKiBWZXJpZnkgdGhhdCBvdGhlciBUX1NUUklORyB0b2tlbnMgd2l0aGluIGEgZnVuY3Rpb24gY2FsbCBhcmUgc3RpbGwgdG9rZW5pemVkIGFzIFRfU1RSSU5HLgogICAgICoKICAgICAqIEBwYXJhbSBzdHJpbmcgJHRlc3RNYXJrZXIgVGhlIGNvbW1lbnQgcHJlZmFjaW5nIHRoZSB0YXJnZXQgdG9rZW4uCiAgICAgKiBAcGFyYW0gc3RyaW5nICRjb250ZW50ICAgIFRoZSB0b2tlbiBjb250ZW50IHRvIGxvb2sgZm9yLgogICAgICoKICAgICAqIEBkYXRhUHJvdmlkZXIgZGF0YU90aGVyVHN0cmluZ0luRnVuY3Rpb25DYWxsCiAgICAgKiBAY292ZXJzICAgICAgIFBIUF9Db2RlU25pZmZlclxUb2tlbml6ZXJzXFBIUDo6dG9rZW5pemUKICAgICAqCiAgICAgKiBAcmV0dXJuIHZvaWQKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIHRlc3RPdGhlclRzdHJpbmdJbkZ1bmN0aW9uQ2FsbCgkdGVzdE1hcmtlciwgJGNvbnRlbnQpCiAgICB7CiAgICAgICAgJHRva2VucyA9IHNlbGY6OiRwaHBjc0ZpbGUtPmdldFRva2VucygpOwoKICAgICAgICAkbGFiZWwgPSAkdGhpcy0+Z2V0VGFyZ2V0VG9rZW4oJHRlc3RNYXJrZXIsIFtUX1NUUklORywgVF9QQVJBTV9OQU1FXSwgJGNvbnRlbnQpOwoKICAgICAgICAkdGhpcy0+YXNzZXJ0U2FtZSgKICAgICAgICAgICAgVF9TVFJJTkcsCiAgICAgICAgICAgICR0b2tlbnNbJGxhYmVsXVsnY29kZSddLAogICAgICAgICAgICAnVG9rZW4gdG9rZW5pemVkIGFzICcuJHRva2Vuc1skbGFiZWxdWyd0eXBlJ10uJywgbm90IFRfU1RSSU5HIChjb2RlKScKICAgICAgICApOwogICAgICAgICR0aGlzLT5hc3NlcnRTYW1lKAogICAgICAgICAgICAnVF9TVFJJTkcnLAogICAgICAgICAgICAkdG9rZW5zWyRsYWJlbF1bJ3R5cGUnXSwKICAgICAgICAgICAgJ1Rva2VuIHRva2VuaXplZCBhcyAnLiR0b2tlbnNbJGxhYmVsXVsndHlwZSddLicsIG5vdCBUX1NUUklORyAodHlwZSknCiAgICAgICAgKTsKCiAgICB9Ly9lbmQgdGVzdE90aGVyVHN0cmluZ0luRnVuY3Rpb25DYWxsKCkKCgogICAgLyoqCiAgICAgKiBEYXRhIHByb3ZpZGVyLgogICAgICoKICAgICAqIEBzZWUgdGVzdE90aGVyVHN0cmluZ0luRnVuY3Rpb25DYWxsKCkKICAgICAqCiAgICAgKiBAcmV0dXJuIGFycmF5CiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBkYXRhT3RoZXJUc3RyaW5nSW5GdW5jdGlvbkNhbGwoKQogICAgewogICAgICAgIHJldHVybiBbCiAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICcvKiB0ZXN0UG9zaXRpb25hbEFyZ3MgKi8nLAogICAgICAgICAgICAgICAgJ1NUQVJUX0lOREVYJywKICAgICAgICAgICAgXSwKICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgJy8qIHRlc3RQb3NpdGlvbmFsQXJncyAqLycsCiAgICAgICAgICAgICAgICAnQ09VTlQnLAogICAgICAgICAgICBdLAogICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAnLyogdGVzdFBvc2l0aW9uYWxBcmdzICovJywKICAgICAgICAgICAgICAgICdWQUxVRScsCiAgICAgICAgICAgIF0sCiAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICcvKiB0ZXN0TmVzdGVkRnVuY3Rpb25DYWxsSW5uZXIyICovJywKICAgICAgICAgICAgICAgICdjb3VudCcsCiAgICAgICAgICAgIF0sCiAgICAgICAgXTsKCiAgICB9Ly9lbmQgZGF0YU90aGVyVHN0cmluZ0luRnVuY3Rpb25DYWxsKCkKCgogICAgLyoqCiAgICAgKiBWZXJpZnkgd2hldGhlciB0aGUgY29sb25zIGFyZSB0b2tlbml6ZWQgY29ycmVjdGx5IHdoZW4gYSB0ZXJuYXJ5IGlzIHVzZWQgaW4gYSBtaXhlZAogICAgICogcG9zaXRpb25hbCBhbmQgbmFtZWQgYXJndW1lbnRzIGZ1bmN0aW9uIGNhbGwuCiAgICAgKgogICAgICogQGNvdmVycyBQSFBfQ29kZVNuaWZmZXJcVG9rZW5pemVyc1xQSFA6OnRva2VuaXplCiAgICAgKgogICAgICogQHJldHVybiB2b2lkCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiB0ZXN0TWl4ZWRQb3NpdGlvbmFsQW5kTmFtZWRBcmdzV2l0aFRlcm5hcnkoKQogICAgewogICAgICAgICR0b2tlbnMgPSBzZWxmOjokcGhwY3NGaWxlLT5nZXRUb2tlbnMoKTsKCiAgICAgICAgJHRydWUgPSAkdGhpcy0+Z2V0VGFyZ2V0VG9rZW4oJy8qIHRlc3RNaXhlZFBvc2l0aW9uYWxBbmROYW1lZEFyZ3NXaXRoVGVybmFyeSAqLycsIFRfVFJVRSk7CgogICAgICAgIC8vIEdldCB0aGUgbmV4dCBub24tZW1wdHkgdG9rZW4uCiAgICAgICAgJGNvbG9uID0gc2VsZjo6JHBocGNzRmlsZS0+ZmluZE5leHQoVG9rZW5zOjokZW1wdHlUb2tlbnMsICgkdHJ1ZSArIDEpLCBudWxsLCB0cnVlKTsKCiAgICAgICAgJHRoaXMtPmFzc2VydFNhbWUoCiAgICAgICAgICAgIFRfSU5MSU5FX0VMU0UsCiAgICAgICAgICAgICR0b2tlbnNbJGNvbG9uXVsnY29kZSddLAogICAgICAgICAgICAnVG9rZW4gdG9rZW5pemVkIGFzICcuJHRva2Vuc1skY29sb25dWyd0eXBlJ10uJywgbm90IFRfSU5MSU5FX0VMU0UgKGNvZGUpJwogICAgICAgICk7CiAgICAgICAgJHRoaXMtPmFzc2VydFNhbWUoCiAgICAgICAgICAgICdUX0lOTElORV9FTFNFJywKICAgICAgICAgICAgJHRva2Vuc1skY29sb25dWyd0eXBlJ10sCiAgICAgICAgICAgICdUb2tlbiB0b2tlbml6ZWQgYXMgJy4kdG9rZW5zWyRjb2xvbl1bJ3R5cGUnXS4nLCBub3QgVF9JTkxJTkVfRUxTRSAodHlwZSknCiAgICAgICAgKTsKCiAgICAgICAgJGxhYmVsID0gJHRoaXMtPmdldFRhcmdldFRva2VuKCcvKiB0ZXN0TWl4ZWRQb3NpdGlvbmFsQW5kTmFtZWRBcmdzV2l0aFRlcm5hcnkgKi8nLCBUX1BBUkFNX05BTUUsICduYW1lJyk7CgogICAgICAgIC8vIEdldCB0aGUgbmV4dCBub24tZW1wdHkgdG9rZW4uCiAgICAgICAgJGNvbG9uID0gc2VsZjo6JHBocGNzRmlsZS0+ZmluZE5leHQoVG9rZW5zOjokZW1wdHlUb2tlbnMsICgkbGFiZWwgKyAxKSwgbnVsbCwgdHJ1ZSk7CgogICAgICAgICR0aGlzLT5hc3NlcnRTYW1lKAogICAgICAgICAgICAnOicsCiAgICAgICAgICAgICR0b2tlbnNbJGNvbG9uXVsnY29udGVudCddLAogICAgICAgICAgICAnTmV4dCB0b2tlbiBhZnRlciBwYXJhbWV0ZXIgbmFtZSBpcyBub3QgYSBjb2xvbi4gRm91bmQ6ICcuJHRva2Vuc1skY29sb25dWydjb250ZW50J10KICAgICAgICApOwogICAgICAgICR0aGlzLT5hc3NlcnRTYW1lKAogICAgICAgICAgICBUX0NPTE9OLAogICAgICAgICAgICAkdG9rZW5zWyRjb2xvbl1bJ2NvZGUnXSwKICAgICAgICAgICAgJ1Rva2VuIHRva2VuaXplZCBhcyAnLiR0b2tlbnNbJGNvbG9uXVsndHlwZSddLicsIG5vdCBUX0NPTE9OIChjb2RlKScKICAgICAgICApOwogICAgICAgICR0aGlzLT5hc3NlcnRTYW1lKAogICAgICAgICAgICAnVF9DT0xPTicsCiAgICAgICAgICAgICR0b2tlbnNbJGNvbG9uXVsndHlwZSddLAogICAgICAgICAgICAnVG9rZW4gdG9rZW5pemVkIGFzICcuJHRva2Vuc1skY29sb25dWyd0eXBlJ10uJywgbm90IFRfQ09MT04gKHR5cGUpJwogICAgICAgICk7CgogICAgfS8vZW5kIHRlc3RNaXhlZFBvc2l0aW9uYWxBbmROYW1lZEFyZ3NXaXRoVGVybmFyeSgpCgoKICAgIC8qKgogICAgICogVmVyaWZ5IHdoZXRoZXIgdGhlIGNvbG9ucyBhcmUgdG9rZW5pemVkIGNvcnJlY3RseSB3aGVuIGEgdGVybmFyeSBpcyB1c2VkCiAgICAgKiBpbiBhIG5hbWVkIGFyZ3VtZW50cyBmdW5jdGlvbiBjYWxsLgogICAgICoKICAgICAqIEBjb3ZlcnMgUEhQX0NvZGVTbmlmZmVyXFRva2VuaXplcnNcUEhQOjp0b2tlbml6ZQogICAgICoKICAgICAqIEByZXR1cm4gdm9pZAogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gdGVzdE5hbWVkQXJnV2l0aFRlcm5hcnkoKQogICAgewogICAgICAgICR0b2tlbnMgPSBzZWxmOjokcGhwY3NGaWxlLT5nZXRUb2tlbnMoKTsKCiAgICAgICAgLyoKICAgICAgICAgKiBGaXJzdCBhcmd1bWVudC4KICAgICAgICAgKi8KCiAgICAgICAgJGxhYmVsID0gJHRoaXMtPmdldFRhcmdldFRva2VuKCcvKiB0ZXN0TmFtZWRBcmdXaXRoVGVybmFyeSAqLycsIFRfUEFSQU1fTkFNRSwgJ2xhYmVsJyk7CgogICAgICAgIC8vIEdldCB0aGUgbmV4dCBub24tZW1wdHkgdG9rZW4uCiAgICAgICAgJGNvbG9uID0gc2VsZjo6JHBocGNzRmlsZS0+ZmluZE5leHQoVG9rZW5zOjokZW1wdHlUb2tlbnMsICgkbGFiZWwgKyAxKSwgbnVsbCwgdHJ1ZSk7CgogICAgICAgICR0aGlzLT5hc3NlcnRTYW1lKAogICAgICAgICAgICAnOicsCiAgICAgICAgICAgICR0b2tlbnNbJGNvbG9uXVsnY29udGVudCddLAogICAgICAgICAgICAnRmlyc3QgYXJnOiBOZXh0IHRva2VuIGFmdGVyIHBhcmFtZXRlciBuYW1lIGlzIG5vdCBhIGNvbG9uLiBGb3VuZDogJy4kdG9rZW5zWyRjb2xvbl1bJ2NvbnRlbnQnXQogICAgICAgICk7CiAgICAgICAgJHRoaXMtPmFzc2VydFNhbWUoCiAgICAgICAgICAgIFRfQ09MT04sCiAgICAgICAgICAgICR0b2tlbnNbJGNvbG9uXVsnY29kZSddLAogICAgICAgICAgICAnRmlyc3QgYXJnOiBUb2tlbiB0b2tlbml6ZWQgYXMgJy4kdG9rZW5zWyRjb2xvbl1bJ3R5cGUnXS4nLCBub3QgVF9DT0xPTiAoY29kZSknCiAgICAgICAgKTsKICAgICAgICAkdGhpcy0+YXNzZXJ0U2FtZSgKICAgICAgICAgICAgJ1RfQ09MT04nLAogICAgICAgICAgICAkdG9rZW5zWyRjb2xvbl1bJ3R5cGUnXSwKICAgICAgICAgICAgJ0ZpcnN0IGFyZzogVG9rZW4gdG9rZW5pemVkIGFzICcuJHRva2Vuc1skY29sb25dWyd0eXBlJ10uJywgbm90IFRfQ09MT04gKHR5cGUpJwogICAgICAgICk7CgogICAgICAgICR0cnVlID0gJHRoaXMtPmdldFRhcmdldFRva2VuKCcvKiB0ZXN0TmFtZWRBcmdXaXRoVGVybmFyeSAqLycsIFRfVFJVRSk7CgogICAgICAgIC8vIEdldCB0aGUgbmV4dCBub24tZW1wdHkgdG9rZW4uCiAgICAgICAgJGNvbG9uID0gc2VsZjo6JHBocGNzRmlsZS0+ZmluZE5leHQoVG9rZW5zOjokZW1wdHlUb2tlbnMsICgkdHJ1ZSArIDEpLCBudWxsLCB0cnVlKTsKCiAgICAgICAgJHRoaXMtPmFzc2VydFNhbWUoCiAgICAgICAgICAgIFRfSU5MSU5FX0VMU0UsCiAgICAgICAgICAgICR0b2tlbnNbJGNvbG9uXVsnY29kZSddLAogICAgICAgICAgICAnRmlyc3QgYXJnIHRlcm5hcnk6IFRva2VuIHRva2VuaXplZCBhcyAnLiR0b2tlbnNbJGNvbG9uXVsndHlwZSddLicsIG5vdCBUX0lOTElORV9FTFNFIChjb2RlKScKICAgICAgICApOwogICAgICAgICR0aGlzLT5hc3NlcnRTYW1lKAogICAgICAgICAgICAnVF9JTkxJTkVfRUxTRScsCiAgICAgICAgICAgICR0b2tlbnNbJGNvbG9uXVsndHlwZSddLAogICAgICAgICAgICAnRmlyc3QgYXJnIHRlcm5hcnk6IFRva2VuIHRva2VuaXplZCBhcyAnLiR0b2tlbnNbJGNvbG9uXVsndHlwZSddLicsIG5vdCBUX0lOTElORV9FTFNFICh0eXBlKScKICAgICAgICApOwoKICAgICAgICAvKgogICAgICAgICAqIFNlY29uZCBhcmd1bWVudC4KICAgICAgICAgKi8KCiAgICAgICAgJGxhYmVsID0gJHRoaXMtPmdldFRhcmdldFRva2VuKCcvKiB0ZXN0TmFtZWRBcmdXaXRoVGVybmFyeSAqLycsIFRfUEFSQU1fTkFNRSwgJ21vcmUnKTsKCiAgICAgICAgLy8gR2V0IHRoZSBuZXh0IG5vbi1lbXB0eSB0b2tlbi4KICAgICAgICAkY29sb24gPSBzZWxmOjokcGhwY3NGaWxlLT5maW5kTmV4dChUb2tlbnM6OiRlbXB0eVRva2VucywgKCRsYWJlbCArIDEpLCBudWxsLCB0cnVlKTsKCiAgICAgICAgJHRoaXMtPmFzc2VydFNhbWUoCiAgICAgICAgICAgICc6JywKICAgICAgICAgICAgJHRva2Vuc1skY29sb25dWydjb250ZW50J10sCiAgICAgICAgICAgICdTZWNvbmQgYXJnOiBOZXh0IHRva2VuIGFmdGVyIHBhcmFtZXRlciBuYW1lIGlzIG5vdCBhIGNvbG9uLiBGb3VuZDogJy4kdG9rZW5zWyRjb2xvbl1bJ2NvbnRlbnQnXQogICAgICAgICk7CiAgICAgICAgJHRoaXMtPmFzc2VydFNhbWUoCiAgICAgICAgICAgIFRfQ09MT04sCiAgICAgICAgICAgICR0b2tlbnNbJGNvbG9uXVsnY29kZSddLAogICAgICAgICAgICAnU2Vjb25kIGFyZzogVG9rZW4gdG9rZW5pemVkIGFzICcuJHRva2Vuc1skY29sb25dWyd0eXBlJ10uJywgbm90IFRfQ09MT04gKGNvZGUpJwogICAgICAgICk7CiAgICAgICAgJHRoaXMtPmFzc2VydFNhbWUoCiAgICAgICAgICAgICdUX0NPTE9OJywKICAgICAgICAgICAgJHRva2Vuc1skY29sb25dWyd0eXBlJ10sCiAgICAgICAgICAgICdTZWNvbmQgYXJnOiBUb2tlbiB0b2tlbml6ZWQgYXMgJy4kdG9rZW5zWyRjb2xvbl1bJ3R5cGUnXS4nLCBub3QgVF9DT0xPTiAodHlwZSknCiAgICAgICAgKTsKCiAgICAgICAgJHRydWUgPSAkdGhpcy0+Z2V0VGFyZ2V0VG9rZW4oJy8qIHRlc3ROYW1lZEFyZ1dpdGhUZXJuYXJ5ICovJywgVF9TVFJJTkcsICdDT05TVEFOVF9BJyk7CgogICAgICAgIC8vIEdldCB0aGUgbmV4dCBub24tZW1wdHkgdG9rZW4uCiAgICAgICAgJGNvbG9uID0gc2VsZjo6JHBocGNzRmlsZS0+ZmluZE5leHQoVG9rZW5zOjokZW1wdHlUb2tlbnMsICgkdHJ1ZSArIDEpLCBudWxsLCB0cnVlKTsKCiAgICAgICAgJHRoaXMtPmFzc2VydFNhbWUoCiAgICAgICAgICAgIFRfSU5MSU5FX0VMU0UsCiAgICAgICAgICAgICR0b2tlbnNbJGNvbG9uXVsnY29kZSddLAogICAgICAgICAgICAnU2Vjb25kIGFyZyB0ZXJuYXJ5OiBUb2tlbiB0b2tlbml6ZWQgYXMgJy4kdG9rZW5zWyRjb2xvbl1bJ3R5cGUnXS4nLCBub3QgVF9JTkxJTkVfRUxTRSAoY29kZSknCiAgICAgICAgKTsKICAgICAgICAkdGhpcy0+YXNzZXJ0U2FtZSgKICAgICAgICAgICAgJ1RfSU5MSU5FX0VMU0UnLAogICAgICAgICAgICAkdG9rZW5zWyRjb2xvbl1bJ3R5cGUnXSwKICAgICAgICAgICAgJ1NlY29uZCBhcmcgdGVybmFyeTogVG9rZW4gdG9rZW5pemVkIGFzICcuJHRva2Vuc1skY29sb25dWyd0eXBlJ10uJywgbm90IFRfSU5MSU5FX0VMU0UgKHR5cGUpJwogICAgICAgICk7CgogICAgfS8vZW5kIHRlc3ROYW1lZEFyZ1dpdGhUZXJuYXJ5KCkKCgogICAgLyoqCiAgICAgKiBWZXJpZnkgd2hldGhlciB0aGUgY29sb25zIGFyZSB0b2tlbml6ZWQgY29ycmVjdGx5IHdoZW4gbmFtZWQgYXJndW1lbnRzCiAgICAgKiBmdW5jdGlvbiBjYWxscyBhcmUgdXNlZCBpbiBhIHRlcm5hcnkuCiAgICAgKgogICAgICogQGNvdmVycyBQSFBfQ29kZVNuaWZmZXJcVG9rZW5pemVyc1xQSFA6OnRva2VuaXplCiAgICAgKgogICAgICogQHJldHVybiB2b2lkCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiB0ZXN0VGVybmFyeVdpdGhGdW5jdGlvbkNhbGxzSW5UaGVuRWxzZSgpCiAgICB7CiAgICAgICAgJHRva2VucyA9IHNlbGY6OiRwaHBjc0ZpbGUtPmdldFRva2VucygpOwoKICAgICAgICAvKgogICAgICAgICAqIFRoZW4uCiAgICAgICAgICovCgogICAgICAgICRsYWJlbCA9ICR0aGlzLT5nZXRUYXJnZXRUb2tlbignLyogdGVzdFRlcm5hcnlXaXRoRnVuY3Rpb25DYWxsc0luVGhlbkVsc2UgKi8nLCBUX1BBUkFNX05BTUUsICdsYWJlbCcpOwoKICAgICAgICAvLyBHZXQgdGhlIG5leHQgbm9uLWVtcHR5IHRva2VuLgogICAgICAgICRjb2xvbiA9IHNlbGY6OiRwaHBjc0ZpbGUtPmZpbmROZXh0KFRva2Vuczo6JGVtcHR5VG9rZW5zLCAoJGxhYmVsICsgMSksIG51bGwsIHRydWUpOwoKICAgICAgICAkdGhpcy0+YXNzZXJ0U2FtZSgKICAgICAgICAgICAgJzonLAogICAgICAgICAgICAkdG9rZW5zWyRjb2xvbl1bJ2NvbnRlbnQnXSwKICAgICAgICAgICAgJ0Z1bmN0aW9uIGluIHRoZW46IE5leHQgdG9rZW4gYWZ0ZXIgcGFyYW1ldGVyIG5hbWUgaXMgbm90IGEgY29sb24uIEZvdW5kOiAnLiR0b2tlbnNbJGNvbG9uXVsnY29udGVudCddCiAgICAgICAgKTsKICAgICAgICAkdGhpcy0+YXNzZXJ0U2FtZSgKICAgICAgICAgICAgVF9DT0xPTiwKICAgICAgICAgICAgJHRva2Vuc1skY29sb25dWydjb2RlJ10sCiAgICAgICAgICAgICdGdW5jdGlvbiBpbiB0aGVuOiBUb2tlbiB0b2tlbml6ZWQgYXMgJy4kdG9rZW5zWyRjb2xvbl1bJ3R5cGUnXS4nLCBub3QgVF9DT0xPTiAoY29kZSknCiAgICAgICAgKTsKICAgICAgICAkdGhpcy0+YXNzZXJ0U2FtZSgKICAgICAgICAgICAgJ1RfQ09MT04nLAogICAgICAgICAgICAkdG9rZW5zWyRjb2xvbl1bJ3R5cGUnXSwKICAgICAgICAgICAgJ0Z1bmN0aW9uIGluIHRoZW46IFRva2VuIHRva2VuaXplZCBhcyAnLiR0b2tlbnNbJGNvbG9uXVsndHlwZSddLicsIG5vdCBUX0NPTE9OICh0eXBlKScKICAgICAgICApOwoKICAgICAgICAkY2xvc2VQYXJlbnMgPSAkdGhpcy0+Z2V0VGFyZ2V0VG9rZW4oJy8qIHRlc3RUZXJuYXJ5V2l0aEZ1bmN0aW9uQ2FsbHNJblRoZW5FbHNlICovJywgVF9DTE9TRV9QQVJFTlRIRVNJUyk7CgogICAgICAgIC8vIEdldCB0aGUgbmV4dCBub24tZW1wdHkgdG9rZW4uCiAgICAgICAgJGNvbG9uID0gc2VsZjo6JHBocGNzRmlsZS0+ZmluZE5leHQoVG9rZW5zOjokZW1wdHlUb2tlbnMsICgkY2xvc2VQYXJlbnMgKyAxKSwgbnVsbCwgdHJ1ZSk7CgogICAgICAgICR0aGlzLT5hc3NlcnRTYW1lKAogICAgICAgICAgICBUX0lOTElORV9FTFNFLAogICAgICAgICAgICAkdG9rZW5zWyRjb2xvbl1bJ2NvZGUnXSwKICAgICAgICAgICAgJ1Rva2VuIHRva2VuaXplZCBhcyAnLiR0b2tlbnNbJGNvbG9uXVsndHlwZSddLicsIG5vdCBUX0lOTElORV9FTFNFIChjb2RlKScKICAgICAgICApOwogICAgICAgICR0aGlzLT5hc3NlcnRTYW1lKAogICAgICAgICAgICAnVF9JTkxJTkVfRUxTRScsCiAgICAgICAgICAgICR0b2tlbnNbJGNvbG9uXVsndHlwZSddLAogICAgICAgICAgICAnVG9rZW4gdG9rZW5pemVkIGFzICcuJHRva2Vuc1skY29sb25dWyd0eXBlJ10uJywgbm90IFRfSU5MSU5FX0VMU0UgKHR5cGUpJwogICAgICAgICk7CgogICAgICAgIC8qCiAgICAgICAgICogRWxzZS4KICAgICAgICAgKi8KCiAgICAgICAgJGxhYmVsID0gJHRoaXMtPmdldFRhcmdldFRva2VuKCcvKiB0ZXN0VGVybmFyeVdpdGhGdW5jdGlvbkNhbGxzSW5UaGVuRWxzZSAqLycsIFRfUEFSQU1fTkFNRSwgJ21vcmUnKTsKCiAgICAgICAgLy8gR2V0IHRoZSBuZXh0IG5vbi1lbXB0eSB0b2tlbi4KICAgICAgICAkY29sb24gPSBzZWxmOjokcGhwY3NGaWxlLT5maW5kTmV4dChUb2tlbnM6OiRlbXB0eVRva2VucywgKCRsYWJlbCArIDEpLCBudWxsLCB0cnVlKTsKCiAgICAgICAgJHRoaXMtPmFzc2VydFNhbWUoCiAgICAgICAgICAgICc6JywKICAgICAgICAgICAgJHRva2Vuc1skY29sb25dWydjb250ZW50J10sCiAgICAgICAgICAgICdGdW5jdGlvbiBpbiBlbHNlOiBOZXh0IHRva2VuIGFmdGVyIHBhcmFtZXRlciBuYW1lIGlzIG5vdCBhIGNvbG9uLiBGb3VuZDogJy4kdG9rZW5zWyRjb2xvbl1bJ2NvbnRlbnQnXQogICAgICAgICk7CiAgICAgICAgJHRoaXMtPmFzc2VydFNhbWUoCiAgICAgICAgICAgIFRfQ09MT04sCiAgICAgICAgICAgICR0b2tlbnNbJGNvbG9uXVsnY29kZSddLAogICAgICAgICAgICAnRnVuY3Rpb24gaW4gZWxzZTogVG9rZW4gdG9rZW5pemVkIGFzICcuJHRva2Vuc1skY29sb25dWyd0eXBlJ10uJywgbm90IFRfQ09MT04gKGNvZGUpJwogICAgICAgICk7CiAgICAgICAgJHRoaXMtPmFzc2VydFNhbWUoCiAgICAgICAgICAgICdUX0NPTE9OJywKICAgICAgICAgICAgJHRva2Vuc1skY29sb25dWyd0eXBlJ10sCiAgICAgICAgICAgICdGdW5jdGlvbiBpbiBlbHNlOiBUb2tlbiB0b2tlbml6ZWQgYXMgJy4kdG9rZW5zWyRjb2xvbl1bJ3R5cGUnXS4nLCBub3QgVF9DT0xPTiAodHlwZSknCiAgICAgICAgKTsKCiAgICB9Ly9lbmQgdGVzdFRlcm5hcnlXaXRoRnVuY3Rpb25DYWxsc0luVGhlbkVsc2UoKQoKCiAgICAvKioKICAgICAqIFZlcmlmeSB3aGV0aGVyIHRoZSBjb2xvbnMgYXJlIHRva2VuaXplZCBjb3JyZWN0bHkgd2hlbiBjb25zdGFudHMgYXJlIHVzZWQgaW4gYSB0ZXJuYXJ5LgogICAgICoKICAgICAqIEBjb3ZlcnMgUEhQX0NvZGVTbmlmZmVyXFRva2VuaXplcnNcUEhQOjp0b2tlbml6ZQogICAgICoKICAgICAqIEByZXR1cm4gdm9pZAogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gdGVzdFRlcm5hcnlXaXRoQ29uc3RhbnRzSW5UaGVuRWxzZSgpCiAgICB7CiAgICAgICAgJHRva2VucyA9IHNlbGY6OiRwaHBjc0ZpbGUtPmdldFRva2VucygpOwoKICAgICAgICAkY29uc3RhbnQgPSAkdGhpcy0+Z2V0VGFyZ2V0VG9rZW4oJy8qIHRlc3RUZXJuYXJ5V2l0aENvbnN0YW50c0luVGhlbkVsc2UgKi8nLCBUX1NUUklORywgJ0NPTlNUQU5UX05BTUUnKTsKCiAgICAgICAgLy8gR2V0IHRoZSBuZXh0IG5vbi1lbXB0eSB0b2tlbi4KICAgICAgICAkY29sb24gPSBzZWxmOjokcGhwY3NGaWxlLT5maW5kTmV4dChUb2tlbnM6OiRlbXB0eVRva2VucywgKCRjb25zdGFudCArIDEpLCBudWxsLCB0cnVlKTsKCiAgICAgICAgJHRoaXMtPmFzc2VydFNhbWUoCiAgICAgICAgICAgIFRfSU5MSU5FX0VMU0UsCiAgICAgICAgICAgICR0b2tlbnNbJGNvbG9uXVsnY29kZSddLAogICAgICAgICAgICAnVG9rZW4gdG9rZW5pemVkIGFzICcuJHRva2Vuc1skY29sb25dWyd0eXBlJ10uJywgbm90IFRfSU5MSU5FX0VMU0UgKGNvZGUpJwogICAgICAgICk7CiAgICAgICAgJHRoaXMtPmFzc2VydFNhbWUoCiAgICAgICAgICAgICdUX0lOTElORV9FTFNFJywKICAgICAgICAgICAgJHRva2Vuc1skY29sb25dWyd0eXBlJ10sCiAgICAgICAgICAgICdUb2tlbiB0b2tlbml6ZWQgYXMgJy4kdG9rZW5zWyRjb2xvbl1bJ3R5cGUnXS4nLCBub3QgVF9JTkxJTkVfRUxTRSAodHlwZSknCiAgICAgICAgKTsKCiAgICB9Ly9lbmQgdGVzdFRlcm5hcnlXaXRoQ29uc3RhbnRzSW5UaGVuRWxzZSgpCgoKICAgIC8qKgogICAgICogVmVyaWZ5IHdoZXRoZXIgdGhlIGNvbG9ucyBhcmUgdG9rZW5pemVkIGNvcnJlY3RseSBpbiBhIHN3aXRjaCBzdGF0ZW1lbnQuCiAgICAgKgogICAgICogQGNvdmVycyBQSFBfQ29kZVNuaWZmZXJcVG9rZW5pemVyc1xQSFA6OnRva2VuaXplCiAgICAgKgogICAgICogQHJldHVybiB2b2lkCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiB0ZXN0U3dpdGNoU3RhdGVtZW50KCkKICAgIHsKICAgICAgICAkdG9rZW5zID0gc2VsZjo6JHBocGNzRmlsZS0+Z2V0VG9rZW5zKCk7CgogICAgICAgICRsYWJlbCA9ICR0aGlzLT5nZXRUYXJnZXRUb2tlbignLyogdGVzdFN3aXRjaENhc2VXaXRoQ29uc3RhbnQgKi8nLCBUX1NUUklORywgJ01ZX0NPTlNUQU5UJyk7CgogICAgICAgIC8vIEdldCB0aGUgbmV4dCBub24tZW1wdHkgdG9rZW4uCiAgICAgICAgJGNvbG9uID0gc2VsZjo6JHBocGNzRmlsZS0+ZmluZE5leHQoVG9rZW5zOjokZW1wdHlUb2tlbnMsICgkbGFiZWwgKyAxKSwgbnVsbCwgdHJ1ZSk7CgogICAgICAgICR0aGlzLT5hc3NlcnRTYW1lKAogICAgICAgICAgICBUX0NPTE9OLAogICAgICAgICAgICAkdG9rZW5zWyRjb2xvbl1bJ2NvZGUnXSwKICAgICAgICAgICAgJ0ZpcnN0IGNhc2U6IFRva2VuIHRva2VuaXplZCBhcyAnLiR0b2tlbnNbJGNvbG9uXVsndHlwZSddLicsIG5vdCBUX0NPTE9OIChjb2RlKScKICAgICAgICApOwogICAgICAgICR0aGlzLT5hc3NlcnRTYW1lKAogICAgICAgICAgICAnVF9DT0xPTicsCiAgICAgICAgICAgICR0b2tlbnNbJGNvbG9uXVsndHlwZSddLAogICAgICAgICAgICAnRmlyc3QgY2FzZTogVG9rZW4gdG9rZW5pemVkIGFzICcuJHRva2Vuc1skY29sb25dWyd0eXBlJ10uJywgbm90IFRfQ09MT04gKHR5cGUpJwogICAgICAgICk7CgogICAgICAgICRsYWJlbCA9ICR0aGlzLT5nZXRUYXJnZXRUb2tlbignLyogdGVzdFN3aXRjaENhc2VXaXRoQ2xhc3NQcm9wZXJ0eSAqLycsIFRfU1RSSU5HLCAncHJvcGVydHknKTsKCiAgICAgICAgLy8gR2V0IHRoZSBuZXh0IG5vbi1lbXB0eSB0b2tlbi4KICAgICAgICAkY29sb24gPSBzZWxmOjokcGhwY3NGaWxlLT5maW5kTmV4dChUb2tlbnM6OiRlbXB0eVRva2VucywgKCRsYWJlbCArIDEpLCBudWxsLCB0cnVlKTsKCiAgICAgICAgJHRoaXMtPmFzc2VydFNhbWUoCiAgICAgICAgICAgIFRfQ09MT04sCiAgICAgICAgICAgICR0b2tlbnNbJGNvbG9uXVsnY29kZSddLAogICAgICAgICAgICAnU2Vjb25kIGNhc2U6IFRva2VuIHRva2VuaXplZCBhcyAnLiR0b2tlbnNbJGNvbG9uXVsndHlwZSddLicsIG5vdCBUX0NPTE9OIChjb2RlKScKICAgICAgICApOwogICAgICAgICR0aGlzLT5hc3NlcnRTYW1lKAogICAgICAgICAgICAnVF9DT0xPTicsCiAgICAgICAgICAgICR0b2tlbnNbJGNvbG9uXVsndHlwZSddLAogICAgICAgICAgICAnU2Vjb25kIGNhc2U6IFRva2VuIHRva2VuaXplZCBhcyAnLiR0b2tlbnNbJGNvbG9uXVsndHlwZSddLicsIG5vdCBUX0NPTE9OICh0eXBlKScKICAgICAgICApOwoKICAgICAgICAkZGVmYXVsdCA9ICR0aGlzLT5nZXRUYXJnZXRUb2tlbignLyogdGVzdFN3aXRjaERlZmF1bHQgKi8nLCBUX0RFRkFVTFQpOwoKICAgICAgICAvLyBHZXQgdGhlIG5leHQgbm9uLWVtcHR5IHRva2VuLgogICAgICAgICRjb2xvbiA9IHNlbGY6OiRwaHBjc0ZpbGUtPmZpbmROZXh0KFRva2Vuczo6JGVtcHR5VG9rZW5zLCAoJGRlZmF1bHQgKyAxKSwgbnVsbCwgdHJ1ZSk7CgogICAgICAgICR0aGlzLT5hc3NlcnRTYW1lKAogICAgICAgICAgICBUX0NPTE9OLAogICAgICAgICAgICAkdG9rZW5zWyRjb2xvbl1bJ2NvZGUnXSwKICAgICAgICAgICAgJ0RlZmF1bHQgY2FzZTogVG9rZW4gdG9rZW5pemVkIGFzICcuJHRva2Vuc1skY29sb25dWyd0eXBlJ10uJywgbm90IFRfQ09MT04gKGNvZGUpJwogICAgICAgICk7CiAgICAgICAgJHRoaXMtPmFzc2VydFNhbWUoCiAgICAgICAgICAgICdUX0NPTE9OJywKICAgICAgICAgICAgJHRva2Vuc1skY29sb25dWyd0eXBlJ10sCiAgICAgICAgICAgICdEZWZhdWx0IGNhc2U6IFRva2VuIHRva2VuaXplZCBhcyAnLiR0b2tlbnNbJGNvbG9uXVsndHlwZSddLicsIG5vdCBUX0NPTE9OICh0eXBlKScKICAgICAgICApOwoKICAgIH0vL2VuZCB0ZXN0U3dpdGNoU3RhdGVtZW50KCkKCgogICAgLyoqCiAgICAgKiBWZXJpZnkgdGhhdCBhIHZhcmlhYmxlIHBhcmFtZXRlciBsYWJlbCAocGFyc2UgZXJyb3IpIGlzIHN0aWxsIHRva2VuaXplZCBhcyBUX1ZBUklBQkxFLgogICAgICoKICAgICAqIEBjb3ZlcnMgUEhQX0NvZGVTbmlmZmVyXFRva2VuaXplcnNcUEhQOjp0b2tlbml6ZQogICAgICoKICAgICAqIEByZXR1cm4gdm9pZAogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gdGVzdFBhcnNlRXJyb3JWYXJpYWJsZUxhYmVsKCkKICAgIHsKICAgICAgICAkdG9rZW5zID0gc2VsZjo6JHBocGNzRmlsZS0+Z2V0VG9rZW5zKCk7CgogICAgICAgICRsYWJlbCA9ICR0aGlzLT5nZXRUYXJnZXRUb2tlbignLyogdGVzdFBhcnNlRXJyb3JEeW5hbWljTmFtZSAqLycsIFtUX1ZBUklBQkxFLCBUX1BBUkFNX05BTUVdLCAnJHZhcmlhYmxlU3RvcmluZ1BhcmFtTmFtZScpOwoKICAgICAgICAkdGhpcy0+YXNzZXJ0U2FtZSgKICAgICAgICAgICAgVF9WQVJJQUJMRSwKICAgICAgICAgICAgJHRva2Vuc1skbGFiZWxdWydjb2RlJ10sCiAgICAgICAgICAgICdUb2tlbiB0b2tlbml6ZWQgYXMgJy4kdG9rZW5zWyRsYWJlbF1bJ3R5cGUnXS4nLCBub3QgVF9WQVJJQUJMRSAoY29kZSknCiAgICAgICAgKTsKICAgICAgICAkdGhpcy0+YXNzZXJ0U2FtZSgKICAgICAgICAgICAgJ1RfVkFSSUFCTEUnLAogICAgICAgICAgICAkdG9rZW5zWyRsYWJlbF1bJ3R5cGUnXSwKICAgICAgICAgICAgJ1Rva2VuIHRva2VuaXplZCBhcyAnLiR0b2tlbnNbJGxhYmVsXVsndHlwZSddLicsIG5vdCBUX1ZBUklBQkxFICh0eXBlKScKICAgICAgICApOwoKICAgICAgICAvLyBHZXQgdGhlIG5leHQgbm9uLWVtcHR5IHRva2VuLgogICAgICAgICRjb2xvbiA9IHNlbGY6OiRwaHBjc0ZpbGUtPmZpbmROZXh0KFRva2Vuczo6JGVtcHR5VG9rZW5zLCAoJGxhYmVsICsgMSksIG51bGwsIHRydWUpOwoKICAgICAgICAkdGhpcy0+YXNzZXJ0U2FtZSgKICAgICAgICAgICAgJzonLAogICAgICAgICAgICAkdG9rZW5zWyRjb2xvbl1bJ2NvbnRlbnQnXSwKICAgICAgICAgICAgJ05leHQgdG9rZW4gYWZ0ZXIgcGFyYW1ldGVyIG5hbWUgaXMgbm90IGEgY29sb24uIEZvdW5kOiAnLiR0b2tlbnNbJGNvbG9uXVsnY29udGVudCddCiAgICAgICAgKTsKICAgICAgICAkdGhpcy0+YXNzZXJ0U2FtZSgKICAgICAgICAgICAgVF9DT0xPTiwKICAgICAgICAgICAgJHRva2Vuc1skY29sb25dWydjb2RlJ10sCiAgICAgICAgICAgICdUb2tlbiB0b2tlbml6ZWQgYXMgJy4kdG9rZW5zWyRjb2xvbl1bJ3R5cGUnXS4nLCBub3QgVF9DT0xPTiAoY29kZSknCiAgICAgICAgKTsKICAgICAgICAkdGhpcy0+YXNzZXJ0U2FtZSgKICAgICAgICAgICAgJ1RfQ09MT04nLAogICAgICAgICAgICAkdG9rZW5zWyRjb2xvbl1bJ3R5cGUnXSwKICAgICAgICAgICAgJ1Rva2VuIHRva2VuaXplZCBhcyAnLiR0b2tlbnNbJGNvbG9uXVsndHlwZSddLicsIG5vdCBUX0NPTE9OICh0eXBlKScKICAgICAgICApOwoKICAgIH0vL2VuZCB0ZXN0UGFyc2VFcnJvclZhcmlhYmxlTGFiZWwoKQoKCiAgICAvKioKICAgICAqIFZlcmlmeSB0aGF0IHJlc2VydmVkIGtleXdvcmRzIHVzZWQgYXMgYSBwYXJhbWV0ZXIgbGFiZWwgYXJlIHRva2VuaXplZCBhcyBUX1BBUkFNX05BTUUKICAgICAqIGFuZCB0aGF0IHRoZSBjb2xvbiBhZnRlciBpdCBpcyB0b2tlbml6ZWQgYXMgYSBUX0NPTE9OLgogICAgICoKICAgICAqIEBwYXJhbSBzdHJpbmcgJHRlc3RNYXJrZXIgICBUaGUgY29tbWVudCBwcmVmYWNpbmcgdGhlIHRhcmdldCB0b2tlbi4KICAgICAqIEBwYXJhbSBhcnJheSAgJHRva2VuVHlwZXMgICBUaGUgdG9rZW4gY29kZXMgdG8gbG9vayBmb3IuCiAgICAgKiBAcGFyYW0gc3RyaW5nICR0b2tlbkNvbnRlbnQgVGhlIHRva2VuIGNvbnRlbnQgdG8gbG9vayBmb3IuCiAgICAgKgogICAgICogQGRhdGFQcm92aWRlciBkYXRhUmVzZXJ2ZWRLZXl3b3Jkc0FzTmFtZQogICAgICogQGNvdmVycyAgICAgICBQSFBfQ29kZVNuaWZmZXJcVG9rZW5pemVyc1xQSFA6OnRva2VuaXplCiAgICAgKgogICAgICogQHJldHVybiB2b2lkCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiB0ZXN0UmVzZXJ2ZWRLZXl3b3Jkc0FzTmFtZSgkdGVzdE1hcmtlciwgJHRva2VuVHlwZXMsICR0b2tlbkNvbnRlbnQpCiAgICB7CiAgICAgICAgJHRva2VucyA9IHNlbGY6OiRwaHBjc0ZpbGUtPmdldFRva2VucygpOwogICAgICAgICRsYWJlbCAgPSAkdGhpcy0+Z2V0VGFyZ2V0VG9rZW4oJHRlc3RNYXJrZXIsICR0b2tlblR5cGVzLCAkdG9rZW5Db250ZW50KTsKCiAgICAgICAgJHRoaXMtPmFzc2VydFNhbWUoCiAgICAgICAgICAgIFRfUEFSQU1fTkFNRSwKICAgICAgICAgICAgJHRva2Vuc1skbGFiZWxdWydjb2RlJ10sCiAgICAgICAgICAgICdUb2tlbiB0b2tlbml6ZWQgYXMgJy4kdG9rZW5zWyRsYWJlbF1bJ3R5cGUnXS4nLCBub3QgVF9QQVJBTV9OQU1FIChjb2RlKScKICAgICAgICApOwogICAgICAgICR0aGlzLT5hc3NlcnRTYW1lKAogICAgICAgICAgICAnVF9QQVJBTV9OQU1FJywKICAgICAgICAgICAgJHRva2Vuc1skbGFiZWxdWyd0eXBlJ10sCiAgICAgICAgICAgICdUb2tlbiB0b2tlbml6ZWQgYXMgJy4kdG9rZW5zWyRsYWJlbF1bJ3R5cGUnXS4nLCBub3QgVF9QQVJBTV9OQU1FICh0eXBlKScKICAgICAgICApOwoKICAgICAgICAvLyBHZXQgdGhlIG5leHQgbm9uLWVtcHR5IHRva2VuLgogICAgICAgICRjb2xvbiA9IHNlbGY6OiRwaHBjc0ZpbGUtPmZpbmROZXh0KFRva2Vuczo6JGVtcHR5VG9rZW5zLCAoJGxhYmVsICsgMSksIG51bGwsIHRydWUpOwoKICAgICAgICAkdGhpcy0+YXNzZXJ0U2FtZSgKICAgICAgICAgICAgJzonLAogICAgICAgICAgICAkdG9rZW5zWyRjb2xvbl1bJ2NvbnRlbnQnXSwKICAgICAgICAgICAgJ05leHQgdG9rZW4gYWZ0ZXIgcGFyYW1ldGVyIG5hbWUgaXMgbm90IGEgY29sb24uIEZvdW5kOiAnLiR0b2tlbnNbJGNvbG9uXVsnY29udGVudCddCiAgICAgICAgKTsKICAgICAgICAkdGhpcy0+YXNzZXJ0U2FtZSgKICAgICAgICAgICAgVF9DT0xPTiwKICAgICAgICAgICAgJHRva2Vuc1skY29sb25dWydjb2RlJ10sCiAgICAgICAgICAgICdUb2tlbiB0b2tlbml6ZWQgYXMgJy4kdG9rZW5zWyRjb2xvbl1bJ3R5cGUnXS4nLCBub3QgVF9DT0xPTiAoY29kZSknCiAgICAgICAgKTsKICAgICAgICAkdGhpcy0+YXNzZXJ0U2FtZSgKICAgICAgICAgICAgJ1RfQ09MT04nLAogICAgICAgICAgICAkdG9rZW5zWyRjb2xvbl1bJ3R5cGUnXSwKICAgICAgICAgICAgJ1Rva2VuIHRva2VuaXplZCBhcyAnLiR0b2tlbnNbJGNvbG9uXVsndHlwZSddLicsIG5vdCBUX0NPTE9OICh0eXBlKScKICAgICAgICApOwoKICAgIH0vL2VuZCB0ZXN0UmVzZXJ2ZWRLZXl3b3Jkc0FzTmFtZSgpCgoKICAgIC8qKgogICAgICogRGF0YSBwcm92aWRlci4KICAgICAqCiAgICAgKiBAc2VlIHRlc3RSZXNlcnZlZEtleXdvcmRzQXNOYW1lKCkKICAgICAqCiAgICAgKiBAcmV0dXJuIGFycmF5CiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBkYXRhUmVzZXJ2ZWRLZXl3b3Jkc0FzTmFtZSgpCiAgICB7CiAgICAgICAgJHJlc2VydmVkS2V5d29yZHMgPSBbCiAgICAgICAgICAgIC8vICdfX2hhbHRfY29tcGlsZXInLCBOT1QgVEVTVEFCTEUKICAgICAgICAgICAgJ2Fic3RyYWN0JywKICAgICAgICAgICAgJ2FuZCcsCiAgICAgICAgICAgICdhcnJheScsCiAgICAgICAgICAgICdhcycsCiAgICAgICAgICAgICdicmVhaycsCiAgICAgICAgICAgICdjYWxsYWJsZScsCiAgICAgICAgICAgICdjYXNlJywKICAgICAgICAgICAgJ2NhdGNoJywKICAgICAgICAgICAgJ2NsYXNzJywKICAgICAgICAgICAgJ2Nsb25lJywKICAgICAgICAgICAgJ2NvbnN0JywKICAgICAgICAgICAgJ2NvbnRpbnVlJywKICAgICAgICAgICAgJ2RlY2xhcmUnLAogICAgICAgICAgICAnZGVmYXVsdCcsCiAgICAgICAgICAgICdkaWUnLAogICAgICAgICAgICAnZG8nLAogICAgICAgICAgICAnZWNobycsCiAgICAgICAgICAgICdlbHNlJywKICAgICAgICAgICAgJ2Vsc2VpZicsCiAgICAgICAgICAgICdlbXB0eScsCiAgICAgICAgICAgICdlbmRkZWNsYXJlJywKICAgICAgICAgICAgJ2VuZGZvcicsCiAgICAgICAgICAgICdlbmRmb3JlYWNoJywKICAgICAgICAgICAgJ2VuZGlmJywKICAgICAgICAgICAgJ2VuZHN3aXRjaCcsCiAgICAgICAgICAgICdlbmR3aGlsZScsCiAgICAgICAgICAgICdldmFsJywKICAgICAgICAgICAgJ2V4aXQnLAogICAgICAgICAgICAnZXh0ZW5kcycsCiAgICAgICAgICAgICdmaW5hbCcsCiAgICAgICAgICAgICdmaW5hbGx5JywKICAgICAgICAgICAgJ2ZuJywKICAgICAgICAgICAgJ2ZvcicsCiAgICAgICAgICAgICdmb3JlYWNoJywKICAgICAgICAgICAgJ2Z1bmN0aW9uJywKICAgICAgICAgICAgJ2dsb2JhbCcsCiAgICAgICAgICAgICdnb3RvJywKICAgICAgICAgICAgJ2lmJywKICAgICAgICAgICAgJ2ltcGxlbWVudHMnLAogICAgICAgICAgICAnaW5jbHVkZScsCiAgICAgICAgICAgICdpbmNsdWRlX29uY2UnLAogICAgICAgICAgICAnaW5zdGFuY2VvZicsCiAgICAgICAgICAgICdpbnN0ZWFkb2YnLAogICAgICAgICAgICAnaW50ZXJmYWNlJywKICAgICAgICAgICAgJ2lzc2V0JywKICAgICAgICAgICAgJ2xpc3QnLAogICAgICAgICAgICAnbWF0Y2gnLAogICAgICAgICAgICAnbmFtZXNwYWNlJywKICAgICAgICAgICAgJ25ldycsCiAgICAgICAgICAgICdvcicsCiAgICAgICAgICAgICdwcmludCcsCiAgICAgICAgICAgICdwcml2YXRlJywKICAgICAgICAgICAgJ3Byb3RlY3RlZCcsCiAgICAgICAgICAgICdwdWJsaWMnLAogICAgICAgICAgICAncmVhZG9ubHknLAogICAgICAgICAgICAncmVxdWlyZScsCiAgICAgICAgICAgICdyZXF1aXJlX29uY2UnLAogICAgICAgICAgICAncmV0dXJuJywKICAgICAgICAgICAgJ3N0YXRpYycsCiAgICAgICAgICAgICdzd2l0Y2gnLAogICAgICAgICAgICAndGhyb3cnLAogICAgICAgICAgICAndHJhaXQnLAogICAgICAgICAgICAndHJ5JywKICAgICAgICAgICAgJ3Vuc2V0JywKICAgICAgICAgICAgJ3VzZScsCiAgICAgICAgICAgICd2YXInLAogICAgICAgICAgICAnd2hpbGUnLAogICAgICAgICAgICAneG9yJywKICAgICAgICAgICAgJ3lpZWxkJywKICAgICAgICAgICAgJ2ludCcsCiAgICAgICAgICAgICdmbG9hdCcsCiAgICAgICAgICAgICdib29sJywKICAgICAgICAgICAgJ3N0cmluZycsCiAgICAgICAgICAgICd0cnVlJywKICAgICAgICAgICAgJ2ZhbHNlJywKICAgICAgICAgICAgJ251bGwnLAogICAgICAgICAgICAndm9pZCcsCiAgICAgICAgICAgICdpdGVyYWJsZScsCiAgICAgICAgICAgICdvYmplY3QnLAogICAgICAgICAgICAncmVzb3VyY2UnLAogICAgICAgICAgICAnbWl4ZWQnLAogICAgICAgICAgICAnbnVtZXJpYycsCiAgICAgICAgICAgICduZXZlcicsCgogICAgICAgICAgICAvLyBOb3QgcmVzZXJ2ZWQga2V5d29yZCwgYnV0IGRvIGhhdmUgdGhlaXIgb3duIHRva2VuIGluIFBIUENTLgogICAgICAgICAgICAncGFyZW50JywKICAgICAgICAgICAgJ3NlbGYnLAogICAgICAgIF07CgogICAgICAgICRkYXRhID0gW107CgogICAgICAgIGZvcmVhY2ggKCRyZXNlcnZlZEtleXdvcmRzIGFzICRrZXl3b3JkKSB7CiAgICAgICAgICAgICR0b2tlbnNUeXBlcyA9IFsKICAgICAgICAgICAgICAgIFRfUEFSQU1fTkFNRSwKICAgICAgICAgICAgICAgIFRfU1RSSU5HLAogICAgICAgICAgICAgICAgVF9HT1RPX0xBQkVMLAogICAgICAgICAgICBdOwogICAgICAgICAgICAkdG9rZW5OYW1lICAgPSAnVF8nLnN0cnRvdXBwZXIoJGtleXdvcmQpOwoKICAgICAgICAgICAgaWYgKCRrZXl3b3JkID09PSAnYW5kJykgewogICAgICAgICAgICAgICAgJHRva2Vuc1R5cGVzW10gPSBUX0xPR0lDQUxfQU5EOwogICAgICAgICAgICB9IGVsc2UgaWYgKCRrZXl3b3JkID09PSAnZGllJykgewogICAgICAgICAgICAgICAgJHRva2Vuc1R5cGVzW10gPSBUX0VYSVQ7CiAgICAgICAgICAgIH0gZWxzZSBpZiAoJGtleXdvcmQgPT09ICdvcicpIHsKICAgICAgICAgICAgICAgICR0b2tlbnNUeXBlc1tdID0gVF9MT0dJQ0FMX09SOwogICAgICAgICAgICB9IGVsc2UgaWYgKCRrZXl3b3JkID09PSAneG9yJykgewogICAgICAgICAgICAgICAgJHRva2Vuc1R5cGVzW10gPSBUX0xPR0lDQUxfWE9SOwogICAgICAgICAgICB9IGVsc2UgaWYgKCRrZXl3b3JkID09PSAnX19oYWx0X2NvbXBpbGVyJykgewogICAgICAgICAgICAgICAgJHRva2Vuc1R5cGVzW10gPSBUX0hBTFRfQ09NUElMRVI7CiAgICAgICAgICAgIH0gZWxzZSBpZiAoZGVmaW5lZCgkdG9rZW5OYW1lKSA9PT0gdHJ1ZSkgewogICAgICAgICAgICAgICAgJHRva2Vuc1R5cGVzW10gPSBjb25zdGFudCgkdG9rZW5OYW1lKTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgJGRhdGFbJGtleXdvcmQuJ0ZpcnN0UGFyYW0nXSA9IFsKICAgICAgICAgICAgICAgICcvKiB0ZXN0UmVzZXJ2ZWRLZXl3b3JkJy51Y2ZpcnN0KCRrZXl3b3JkKS4nMSAqLycsCiAgICAgICAgICAgICAgICAkdG9rZW5zVHlwZXMsCiAgICAgICAgICAgICAgICAka2V5d29yZCwKICAgICAgICAgICAgXTsKCiAgICAgICAgICAgICRkYXRhWyRrZXl3b3JkLidTZWNvbmRQYXJhbSddID0gWwogICAgICAgICAgICAgICAgJy8qIHRlc3RSZXNlcnZlZEtleXdvcmQnLnVjZmlyc3QoJGtleXdvcmQpLicyICovJywKICAgICAgICAgICAgICAgICR0b2tlbnNUeXBlcywKICAgICAgICAgICAgICAgICRrZXl3b3JkLAogICAgICAgICAgICBdOwogICAgICAgIH0vL2VuZCBmb3JlYWNoCgogICAgICAgIHJldHVybiAkZGF0YTsKCiAgICB9Ly9lbmQgZGF0YVJlc2VydmVkS2V5d29yZHNBc05hbWUoKQoKCn0vL2VuZCBjbGFzcwoiO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAbmFtZXNwYWNlcyI7YToxOntzOjM3OiJcUEhQX0NvZGVTbmlmZmVyXFRlc3RzXENvcmVcVG9rZW5pemVyIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6Mzc6IlxQSFBfQ29kZVNuaWZmZXJcVGVzdHNcQ29yZVxUb2tlbml6ZXIiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czo5OiJUb2tlbml6ZXIiO319czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBpbmNsdWRlcyI7YTowOnt9czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBmdW5jdGlvbnMiO2E6MDp7fXM6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAY29uc3RhbnRzIjthOjA6e31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGNsYXNzZXMiO2E6MTp7czo2ODoiXFBIUF9Db2RlU25pZmZlclxUZXN0c1xDb3JlXFRva2VuaXplclxOYW1lZEZ1bmN0aW9uQ2FsbEFyZ3VtZW50c1Rlc3QiO086MzU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfIjoxMzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6Njg6IlxQSFBfQ29kZVNuaWZmZXJcVGVzdHNcQ29yZVxUb2tlbml6ZXJcTmFtZWRGdW5jdGlvbkNhbGxBcmd1bWVudHNUZXN0IjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MzA6Ik5hbWVkRnVuY3Rpb25DYWxsQXJndW1lbnRzVGVzdCI7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBkb2NCbG9jayI7TjtzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AYWJzdHJhY3QiO2I6MDtzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AZmluYWwiO2I6MDtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AcGFyZW50IjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NTA6IlxQSFBfQ29kZVNuaWZmZXJcVGVzdHNcQ29yZVxBYnN0cmFjdE1ldGhvZFVuaXRUZXN0IjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MjI6IkFic3RyYWN0TWV0aG9kVW5pdFRlc3QiO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AaW1wbGVtZW50cyI7YTowOnt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGNvbnN0YW50cyI7YTowOnt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAHByb3BlcnRpZXMiO2E6MDp7fXM6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBtZXRob2RzIjthOjEyOntzOjEwMjoiXFBIUF9Db2RlU25pZmZlclxUZXN0c1xDb3JlXFRva2VuaXplclxOYW1lZEZ1bmN0aW9uQ2FsbEFyZ3VtZW50c1Rlc3Q6OnRlc3ROYW1lZEZ1bmN0aW9uQ2FsbEFyZ3VtZW50cygpIjtPOjM1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZCI6MTI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6MTEzOiJWZXJpZnkgdGhhdCBwYXJhbWV0ZXIgbGFiZWxzIGFyZSB0b2tlbml6ZWQgYXMgVF9QQVJBTV9OQU1FIGFuZCB0aGF0CnRoZSBjb2xvbiBhZnRlciBpdCBpcyB0b2tlbml6ZWQgYXMgYSBUX0NPTE9OLiI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YTo1OntpOjA7Tzo0NDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0iOjY6e3M6NTg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQYXJhbQB2YXJpYWJsZU5hbWUiO3M6MTA6InRlc3RNYXJrZXIiO3M6NTY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQYXJhbQBpc1ZhcmlhZGljIjtiOjA7czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtAGlzUmVmZXJlbmNlIjtiOjA7czo3OiIAKgB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcU3RyaW5nXyI6MDp7fXM6NzoiACoAbmFtZSI7czo1OiJwYXJhbSI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6Mzk6IlRoZSBjb21tZW50IHByZWZhY2luZyB0aGUgdGFyZ2V0IHRva2VuLiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fWk6MTtPOjQ0OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQYXJhbSI6Njp7czo1ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtAHZhcmlhYmxlTmFtZSI7czoxMDoicGFyYW1ldGVycyI7czo1NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtAGlzVmFyaWFkaWMiO2I6MDtzOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0AaXNSZWZlcmVuY2UiO2I6MDtzOjc6IgAqAHR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBcnJheV8iOjM6e3M6MTI6IgAqAHZhbHVlVHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fXM6MTA6IgAqAGtleVR5cGUiO047czoxNzoiACoAZGVmYXVsdEtleVR5cGUiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb21wb3VuZCI6Mjp7czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0eXBlcyI7YToyOntpOjA7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31pOjE7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEludGVnZXIiOjA6e319czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0b2tlbiI7czoxOiJ8Ijt9fXM6NzoiACoAbmFtZSI7czo1OiJwYXJhbSI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6NTU6IlRoZSB0b2tlbiBjb250ZW50IGZvciBlYWNoIHBhcmFtZXRlciBsYWJlbCB0byBsb29rIGZvci4iO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX1pOjI7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcR2VuZXJpYyI6Mjp7czo3OiIAKgBuYW1lIjtzOjEyOiJkYXRhUHJvdmlkZXIiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjMwOiJkYXRhTmFtZWRGdW5jdGlvbkNhbGxBcmd1bWVudHMiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX1pOjM7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcQ292ZXJzIjozOntzOjc6IgAqAG5hbWUiO3M6NjoiY292ZXJzIjtzOjUzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcQ292ZXJzAHJlZmVycyI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjc4OiJcUEhQX0NvZGVTbmlmZmVyXFRlc3RzXENvcmVcVG9rZW5pemVyXFBIUF9Db2RlU25pZmZlclxUb2tlbml6ZXJzXFBIUDo6dG9rZW5pemUiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czo4OiJ0b2tlbml6ZSI7fXM6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fWk6NDtPOjQ2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xSZXR1cm5fIjozOntzOjc6IgAqAHR5cGUiO086MzY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xWb2lkXyI6MDp7fXM6NzoiACoAbmFtZSI7czo2OiJyZXR1cm4iO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fX1zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb250ZXh0IjoyOntzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbnRleHQAbmFtZXNwYWNlIjtzOjM2OiJQSFBfQ29kZVNuaWZmZXJcVGVzdHNcQ29yZVxUb2tlbml6ZXIiO3M6NTY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29udGV4dABuYW1lc3BhY2VBbGlhc2VzIjthOjI6e3M6MjI6IkFic3RyYWN0TWV0aG9kVW5pdFRlc3QiO3M6NDk6IlBIUF9Db2RlU25pZmZlclxUZXN0c1xDb3JlXEFic3RyYWN0TWV0aG9kVW5pdFRlc3QiO3M6NjoiVG9rZW5zIjtzOjI3OiJQSFBfQ29kZVNuaWZmZXJcVXRpbFxUb2tlbnMiO319czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czoxMDI6IlxQSFBfQ29kZVNuaWZmZXJcVGVzdHNcQ29yZVxUb2tlbml6ZXJcTmFtZWRGdW5jdGlvbkNhbGxBcmd1bWVudHNUZXN0Ojp0ZXN0TmFtZWRGdW5jdGlvbkNhbGxBcmd1bWVudHMoKSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjMwOiJ0ZXN0TmFtZWRGdW5jdGlvbkNhbGxBcmd1bWVudHMiO31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYWJzdHJhY3QiO2I6MDtzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZmluYWwiO2I6MDtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAc3RhdGljIjtiOjA7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjY6InB1YmxpYyI7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhcmd1bWVudHMiO2E6Mjp7aTowO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQiOjU6e3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AG5hbWUiO3M6MTA6InRlc3RNYXJrZXIiO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AHR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xNaXhlZF8iOjA6e31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABkZWZhdWx0IjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGJ5UmVmZXJlbmNlIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAaXNWYXJpYWRpYyI7YjowO31pOjE7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudCI6NTp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAbmFtZSI7czoxMDoicGFyYW1ldGVycyI7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAdHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGRlZmF1bHQiO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAYnlSZWZlcmVuY2UiO2I6MDtzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABpc1ZhcmlhZGljIjtiOjA7fX1zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjMxO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABlbmRMb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6Njk7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHJldHVyblR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xNaXhlZF8iOjA6e31zOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAaGFzUmV0dXJuQnlSZWZlcmVuY2UiO2I6MDtzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbWV0YWRhdGEiO2E6MDp7fX1zOjEwMjoiXFBIUF9Db2RlU25pZmZlclxUZXN0c1xDb3JlXFRva2VuaXplclxOYW1lZEZ1bmN0aW9uQ2FsbEFyZ3VtZW50c1Rlc3Q6OmRhdGFOYW1lZEZ1bmN0aW9uQ2FsbEFyZ3VtZW50cygpIjtPOjM1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZCI6MTI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6MTQ6IkRhdGEgcHJvdmlkZXIuIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjI6e2k6MDtPOjQyOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xTZWUiOjM6e3M6NzoiACoAbmFtZSI7czozOiJzZWUiO3M6OToiACoAcmVmZXJzIjtPOjU0OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xSZWZlcmVuY2VcRnFzZW4iOjE6e3M6NjE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xSZWZlcmVuY2VcRnFzZW4AZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo3MDoiXFBIUF9Db2RlU25pZmZlclxUZXN0c1xDb3JlXFRva2VuaXplclx0ZXN0TmFtZWRGdW5jdGlvbkNhbGxBcmd1bWVudHMoKSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjMwOiJ0ZXN0TmFtZWRGdW5jdGlvbkNhbGxBcmd1bWVudHMiO319czoxNDoiACoAZGVzY3JpcHRpb24iO047fWk6MTtPOjQ2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xSZXR1cm5fIjozOntzOjc6IgAqAHR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBcnJheV8iOjM6e3M6MTI6IgAqAHZhbHVlVHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fXM6MTA6IgAqAGtleVR5cGUiO047czoxNzoiACoAZGVmYXVsdEtleVR5cGUiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb21wb3VuZCI6Mjp7czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0eXBlcyI7YToyOntpOjA7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31pOjE7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEludGVnZXIiOjA6e319czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0b2tlbiI7czoxOiJ8Ijt9fXM6NzoiACoAbmFtZSI7czo2OiJyZXR1cm4iO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fX1zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO3I6MTA2O3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6MTAyOiJcUEhQX0NvZGVTbmlmZmVyXFRlc3RzXENvcmVcVG9rZW5pemVyXE5hbWVkRnVuY3Rpb25DYWxsQXJndW1lbnRzVGVzdDo6ZGF0YU5hbWVkRnVuY3Rpb25DYWxsQXJndW1lbnRzKCkiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czozMDoiZGF0YU5hbWVkRnVuY3Rpb25DYWxsQXJndW1lbnRzIjt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFic3RyYWN0IjtiOjA7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZpbmFsIjtiOjA7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHN0YXRpYyI7YjowO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo2OiJwdWJsaWMiO31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYXJndW1lbnRzIjthOjA6e31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjc5O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABlbmRMb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MjU4O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAByZXR1cm5UeXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTWl4ZWRfIjowOnt9czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGhhc1JldHVybkJ5UmVmZXJlbmNlIjtiOjA7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAG1ldGFkYXRhIjthOjA6e319czoxMDI6IlxQSFBfQ29kZVNuaWZmZXJcVGVzdHNcQ29yZVxUb2tlbml6ZXJcTmFtZWRGdW5jdGlvbkNhbGxBcmd1bWVudHNUZXN0Ojp0ZXN0T3RoZXJUc3RyaW5nSW5GdW5jdGlvbkNhbGwoKSI7TzozNToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QiOjEyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjg5OiJWZXJpZnkgdGhhdCBvdGhlciBUX1NUUklORyB0b2tlbnMgd2l0aGluIGEgZnVuY3Rpb24gY2FsbCBhcmUgc3RpbGwgdG9rZW5pemVkIGFzIFRfU1RSSU5HLiI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YTo1OntpOjA7Tzo0NDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0iOjY6e3M6NTg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQYXJhbQB2YXJpYWJsZU5hbWUiO3M6MTA6InRlc3RNYXJrZXIiO3M6NTY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQYXJhbQBpc1ZhcmlhZGljIjtiOjA7czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtAGlzUmVmZXJlbmNlIjtiOjA7czo3OiIAKgB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcU3RyaW5nXyI6MDp7fXM6NzoiACoAbmFtZSI7czo1OiJwYXJhbSI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6Mzk6IlRoZSBjb21tZW50IHByZWZhY2luZyB0aGUgdGFyZ2V0IHRva2VuLiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fWk6MTtPOjQ0OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQYXJhbSI6Njp7czo1ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtAHZhcmlhYmxlTmFtZSI7czo3OiJjb250ZW50IjtzOjU2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0AaXNWYXJpYWRpYyI7YjowO3M6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQYXJhbQBpc1JlZmVyZW5jZSI7YjowO3M6NzoiACoAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31zOjc6IgAqAG5hbWUiO3M6NToicGFyYW0iO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjMwOiJUaGUgdG9rZW4gY29udGVudCB0byBsb29rIGZvci4iO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX1pOjI7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcR2VuZXJpYyI6Mjp7czo3OiIAKgBuYW1lIjtzOjEyOiJkYXRhUHJvdmlkZXIiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjMwOiJkYXRhT3RoZXJUc3RyaW5nSW5GdW5jdGlvbkNhbGwiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX1pOjM7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcQ292ZXJzIjozOntzOjc6IgAqAG5hbWUiO3M6NjoiY292ZXJzIjtzOjUzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcQ292ZXJzAHJlZmVycyI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjc4OiJcUEhQX0NvZGVTbmlmZmVyXFRlc3RzXENvcmVcVG9rZW5pemVyXFBIUF9Db2RlU25pZmZlclxUb2tlbml6ZXJzXFBIUDo6dG9rZW5pemUiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czo4OiJ0b2tlbml6ZSI7fXM6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fWk6NDtPOjQ2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xSZXR1cm5fIjozOntzOjc6IgAqAHR5cGUiO086MzY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xWb2lkXyI6MDp7fXM6NzoiACoAbmFtZSI7czo2OiJyZXR1cm4iO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fX1zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO3I6MTA2O3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6MTAyOiJcUEhQX0NvZGVTbmlmZmVyXFRlc3RzXENvcmVcVG9rZW5pemVyXE5hbWVkRnVuY3Rpb25DYWxsQXJndW1lbnRzVGVzdDo6dGVzdE90aGVyVHN0cmluZ0luRnVuY3Rpb25DYWxsKCkiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czozMDoidGVzdE90aGVyVHN0cmluZ0luRnVuY3Rpb25DYWxsIjt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFic3RyYWN0IjtiOjA7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZpbmFsIjtiOjA7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHN0YXRpYyI7YjowO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo2OiJwdWJsaWMiO31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYXJndW1lbnRzIjthOjI6e2k6MDtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50Ijo1OntzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABuYW1lIjtzOjEwOiJ0ZXN0TWFya2VyIjtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudAB0eXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTWl4ZWRfIjowOnt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAZGVmYXVsdCI7TjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABieVJlZmVyZW5jZSI7YjowO3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGlzVmFyaWFkaWMiO2I6MDt9aToxO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQiOjU6e3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AG5hbWUiO3M6NzoiY29udGVudCI7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAdHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGRlZmF1bHQiO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAYnlSZWZlcmVuY2UiO2I6MDtzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABpc1ZhcmlhZGljIjtiOjA7fX1zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjI3MjtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZW5kTG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjI4OTtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAcmV0dXJuVHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fXM6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABoYXNSZXR1cm5CeVJlZmVyZW5jZSI7YjowO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABtZXRhZGF0YSI7YTowOnt9fXM6MTAyOiJcUEhQX0NvZGVTbmlmZmVyXFRlc3RzXENvcmVcVG9rZW5pemVyXE5hbWVkRnVuY3Rpb25DYWxsQXJndW1lbnRzVGVzdDo6ZGF0YU90aGVyVHN0cmluZ0luRnVuY3Rpb25DYWxsKCkiO086MzU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kIjoxMjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czoxNDoiRGF0YSBwcm92aWRlci4iO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6Mjp7aTowO086NDI6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFNlZSI6Mzp7czo3OiIAKgBuYW1lIjtzOjM6InNlZSI7czo5OiIAKgByZWZlcnMiO086NTQ6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFJlZmVyZW5jZVxGcXNlbiI6MTp7czo2MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFJlZmVyZW5jZVxGcXNlbgBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjcwOiJcUEhQX0NvZGVTbmlmZmVyXFRlc3RzXENvcmVcVG9rZW5pemVyXHRlc3RPdGhlclRzdHJpbmdJbkZ1bmN0aW9uQ2FsbCgpIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MzA6InRlc3RPdGhlclRzdHJpbmdJbkZ1bmN0aW9uQ2FsbCI7fX1zOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tjt9aToxO086NDY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFJldHVybl8iOjM6e3M6NzoiACoAdHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFycmF5XyI6Mzp7czoxMjoiACoAdmFsdWVUeXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTWl4ZWRfIjowOnt9czoxMDoiACoAa2V5VHlwZSI7TjtzOjE3OiIAKgBkZWZhdWx0S2V5VHlwZSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbXBvdW5kIjoyOntzOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHR5cGVzIjthOjI6e2k6MDtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcU3RyaW5nXyI6MDp7fWk6MTtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcSW50ZWdlciI6MDp7fX1zOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHRva2VuIjtzOjE6InwiO319czo3OiIAKgBuYW1lIjtzOjY6InJldHVybiI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7cjoxMDY7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czoxMDI6IlxQSFBfQ29kZVNuaWZmZXJcVGVzdHNcQ29yZVxUb2tlbml6ZXJcTmFtZWRGdW5jdGlvbkNhbGxBcmd1bWVudHNUZXN0OjpkYXRhT3RoZXJUc3RyaW5nSW5GdW5jdGlvbkNhbGwoKSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjMwOiJkYXRhT3RoZXJUc3RyaW5nSW5GdW5jdGlvbkNhbGwiO31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYWJzdHJhY3QiO2I6MDtzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZmluYWwiO2I6MDtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAc3RhdGljIjtiOjA7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjY6InB1YmxpYyI7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhcmd1bWVudHMiO2E6MDp7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6Mjk5O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABlbmRMb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MzIwO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAByZXR1cm5UeXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTWl4ZWRfIjowOnt9czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGhhc1JldHVybkJ5UmVmZXJlbmNlIjtiOjA7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAG1ldGFkYXRhIjthOjA6e319czoxMTQ6IlxQSFBfQ29kZVNuaWZmZXJcVGVzdHNcQ29yZVxUb2tlbml6ZXJcTmFtZWRGdW5jdGlvbkNhbGxBcmd1bWVudHNUZXN0Ojp0ZXN0TWl4ZWRQb3NpdGlvbmFsQW5kTmFtZWRBcmdzV2l0aFRlcm5hcnkoKSI7TzozNToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QiOjEyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjEyOToiVmVyaWZ5IHdoZXRoZXIgdGhlIGNvbG9ucyBhcmUgdG9rZW5pemVkIGNvcnJlY3RseSB3aGVuIGEgdGVybmFyeSBpcyB1c2VkIGluIGEgbWl4ZWQKcG9zaXRpb25hbCBhbmQgbmFtZWQgYXJndW1lbnRzIGZ1bmN0aW9uIGNhbGwuIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjI6e2k6MDtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xDb3ZlcnMiOjM6e3M6NzoiACoAbmFtZSI7czo2OiJjb3ZlcnMiO3M6NTM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xDb3ZlcnMAcmVmZXJzIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6Nzg6IlxQSFBfQ29kZVNuaWZmZXJcVGVzdHNcQ29yZVxUb2tlbml6ZXJcUEhQX0NvZGVTbmlmZmVyXFRva2VuaXplcnNcUEhQOjp0b2tlbml6ZSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjg6InRva2VuaXplIjt9czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19aToxO086NDY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFJldHVybl8iOjM6e3M6NzoiACoAdHlwZSI7TzozNjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFZvaWRfIjowOnt9czo3OiIAKgBuYW1lIjtzOjY6InJldHVybiI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7cjoxMDY7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czoxMTQ6IlxQSFBfQ29kZVNuaWZmZXJcVGVzdHNcQ29yZVxUb2tlbml6ZXJcTmFtZWRGdW5jdGlvbkNhbGxBcmd1bWVudHNUZXN0Ojp0ZXN0TWl4ZWRQb3NpdGlvbmFsQW5kTmFtZWRBcmdzV2l0aFRlcm5hcnkoKSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjQyOiJ0ZXN0TWl4ZWRQb3NpdGlvbmFsQW5kTmFtZWRBcmdzV2l0aFRlcm5hcnkiO31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYWJzdHJhY3QiO2I6MDtzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZmluYWwiO2I6MDtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAc3RhdGljIjtiOjA7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjY6InB1YmxpYyI7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhcmd1bWVudHMiO2E6MDp7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MzMxO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABlbmRMb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MzcyO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAByZXR1cm5UeXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTWl4ZWRfIjowOnt9czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGhhc1JldHVybkJ5UmVmZXJlbmNlIjtiOjA7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAG1ldGFkYXRhIjthOjA6e319czo5NToiXFBIUF9Db2RlU25pZmZlclxUZXN0c1xDb3JlXFRva2VuaXplclxOYW1lZEZ1bmN0aW9uQ2FsbEFyZ3VtZW50c1Rlc3Q6OnRlc3ROYW1lZEFyZ1dpdGhUZXJuYXJ5KCkiO086MzU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kIjoxMjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czoxMDg6IlZlcmlmeSB3aGV0aGVyIHRoZSBjb2xvbnMgYXJlIHRva2VuaXplZCBjb3JyZWN0bHkgd2hlbiBhIHRlcm5hcnkgaXMgdXNlZAppbiBhIG5hbWVkIGFyZ3VtZW50cyBmdW5jdGlvbiBjYWxsLiI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YToyOntpOjA7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcQ292ZXJzIjozOntzOjc6IgAqAG5hbWUiO3M6NjoiY292ZXJzIjtzOjUzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcQ292ZXJzAHJlZmVycyI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjc4OiJcUEhQX0NvZGVTbmlmZmVyXFRlc3RzXENvcmVcVG9rZW5pemVyXFBIUF9Db2RlU25pZmZlclxUb2tlbml6ZXJzXFBIUDo6dG9rZW5pemUiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czo4OiJ0b2tlbml6ZSI7fXM6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fWk6MTtPOjQ2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xSZXR1cm5fIjozOntzOjc6IgAqAHR5cGUiO086MzY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xWb2lkXyI6MDp7fXM6NzoiACoAbmFtZSI7czo2OiJyZXR1cm4iO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fX1zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO3I6MTA2O3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6OTU6IlxQSFBfQ29kZVNuaWZmZXJcVGVzdHNcQ29yZVxUb2tlbml6ZXJcTmFtZWRGdW5jdGlvbkNhbGxBcmd1bWVudHNUZXN0Ojp0ZXN0TmFtZWRBcmdXaXRoVGVybmFyeSgpIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MjM6InRlc3ROYW1lZEFyZ1dpdGhUZXJuYXJ5Ijt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFic3RyYWN0IjtiOjA7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZpbmFsIjtiOjA7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHN0YXRpYyI7YjowO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo2OiJwdWJsaWMiO31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYXJndW1lbnRzIjthOjA6e31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjM4MztzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZW5kTG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjQ2OTtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAcmV0dXJuVHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fXM6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABoYXNSZXR1cm5CeVJlZmVyZW5jZSI7YjowO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABtZXRhZGF0YSI7YTowOnt9fXM6MTEwOiJcUEhQX0NvZGVTbmlmZmVyXFRlc3RzXENvcmVcVG9rZW5pemVyXE5hbWVkRnVuY3Rpb25DYWxsQXJndW1lbnRzVGVzdDo6dGVzdFRlcm5hcnlXaXRoRnVuY3Rpb25DYWxsc0luVGhlbkVsc2UoKSI7TzozNToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QiOjEyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjEwODoiVmVyaWZ5IHdoZXRoZXIgdGhlIGNvbG9ucyBhcmUgdG9rZW5pemVkIGNvcnJlY3RseSB3aGVuIG5hbWVkIGFyZ3VtZW50cwpmdW5jdGlvbiBjYWxscyBhcmUgdXNlZCBpbiBhIHRlcm5hcnkuIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjI6e2k6MDtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xDb3ZlcnMiOjM6e3M6NzoiACoAbmFtZSI7czo2OiJjb3ZlcnMiO3M6NTM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xDb3ZlcnMAcmVmZXJzIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6Nzg6IlxQSFBfQ29kZVNuaWZmZXJcVGVzdHNcQ29yZVxUb2tlbml6ZXJcUEhQX0NvZGVTbmlmZmVyXFRva2VuaXplcnNcUEhQOjp0b2tlbml6ZSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjg6InRva2VuaXplIjt9czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19aToxO086NDY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFJldHVybl8iOjM6e3M6NzoiACoAdHlwZSI7TzozNjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFZvaWRfIjowOnt9czo3OiIAKgBuYW1lIjtzOjY6InJldHVybiI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7cjoxMDY7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czoxMTA6IlxQSFBfQ29kZVNuaWZmZXJcVGVzdHNcQ29yZVxUb2tlbml6ZXJcTmFtZWRGdW5jdGlvbkNhbGxBcmd1bWVudHNUZXN0Ojp0ZXN0VGVybmFyeVdpdGhGdW5jdGlvbkNhbGxzSW5UaGVuRWxzZSgpIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6Mzg6InRlc3RUZXJuYXJ5V2l0aEZ1bmN0aW9uQ2FsbHNJblRoZW5FbHNlIjt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFic3RyYWN0IjtiOjA7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZpbmFsIjtiOjA7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHN0YXRpYyI7YjowO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo2OiJwdWJsaWMiO31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYXJndW1lbnRzIjthOjA6e31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjQ4MDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZW5kTG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjU1MDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAcmV0dXJuVHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fXM6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABoYXNSZXR1cm5CeVJlZmVyZW5jZSI7YjowO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABtZXRhZGF0YSI7YTowOnt9fXM6MTA2OiJcUEhQX0NvZGVTbmlmZmVyXFRlc3RzXENvcmVcVG9rZW5pemVyXE5hbWVkRnVuY3Rpb25DYWxsQXJndW1lbnRzVGVzdDo6dGVzdFRlcm5hcnlXaXRoQ29uc3RhbnRzSW5UaGVuRWxzZSgpIjtPOjM1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZCI6MTI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6ODc6IlZlcmlmeSB3aGV0aGVyIHRoZSBjb2xvbnMgYXJlIHRva2VuaXplZCBjb3JyZWN0bHkgd2hlbiBjb25zdGFudHMgYXJlIHVzZWQgaW4gYSB0ZXJuYXJ5LiI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YToyOntpOjA7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcQ292ZXJzIjozOntzOjc6IgAqAG5hbWUiO3M6NjoiY292ZXJzIjtzOjUzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcQ292ZXJzAHJlZmVycyI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjc4OiJcUEhQX0NvZGVTbmlmZmVyXFRlc3RzXENvcmVcVG9rZW5pemVyXFBIUF9Db2RlU25pZmZlclxUb2tlbml6ZXJzXFBIUDo6dG9rZW5pemUiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czo4OiJ0b2tlbml6ZSI7fXM6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fWk6MTtPOjQ2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xSZXR1cm5fIjozOntzOjc6IgAqAHR5cGUiO086MzY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xWb2lkXyI6MDp7fXM6NzoiACoAbmFtZSI7czo2OiJyZXR1cm4iO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fX1zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO3I6MTA2O3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6MTA2OiJcUEhQX0NvZGVTbmlmZmVyXFRlc3RzXENvcmVcVG9rZW5pemVyXE5hbWVkRnVuY3Rpb25DYWxsQXJndW1lbnRzVGVzdDo6dGVzdFRlcm5hcnlXaXRoQ29uc3RhbnRzSW5UaGVuRWxzZSgpIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MzQ6InRlc3RUZXJuYXJ5V2l0aENvbnN0YW50c0luVGhlbkVsc2UiO31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYWJzdHJhY3QiO2I6MDtzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZmluYWwiO2I6MDtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAc3RhdGljIjtiOjA7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjY6InB1YmxpYyI7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhcmd1bWVudHMiO2E6MDp7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6NTYwO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABlbmRMb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6NTgwO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAByZXR1cm5UeXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTWl4ZWRfIjowOnt9czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGhhc1JldHVybkJ5UmVmZXJlbmNlIjtiOjA7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAG1ldGFkYXRhIjthOjA6e319czo5MToiXFBIUF9Db2RlU25pZmZlclxUZXN0c1xDb3JlXFRva2VuaXplclxOYW1lZEZ1bmN0aW9uQ2FsbEFyZ3VtZW50c1Rlc3Q6OnRlc3RTd2l0Y2hTdGF0ZW1lbnQoKSI7TzozNToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QiOjEyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjcyOiJWZXJpZnkgd2hldGhlciB0aGUgY29sb25zIGFyZSB0b2tlbml6ZWQgY29ycmVjdGx5IGluIGEgc3dpdGNoIHN0YXRlbWVudC4iO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6Mjp7aTowO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXENvdmVycyI6Mzp7czo3OiIAKgBuYW1lIjtzOjY6ImNvdmVycyI7czo1MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXENvdmVycwByZWZlcnMiO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo3ODoiXFBIUF9Db2RlU25pZmZlclxUZXN0c1xDb3JlXFRva2VuaXplclxQSFBfQ29kZVNuaWZmZXJcVG9rZW5pemVyc1xQSFA6OnRva2VuaXplIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6ODoidG9rZW5pemUiO31zOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX1pOjE7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUmV0dXJuXyI6Mzp7czo3OiIAKgB0eXBlIjtPOjM2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcVm9pZF8iOjA6e31zOjc6IgAqAG5hbWUiO3M6NjoicmV0dXJuIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX19czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtyOjEwNjtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjkxOiJcUEhQX0NvZGVTbmlmZmVyXFRlc3RzXENvcmVcVG9rZW5pemVyXE5hbWVkRnVuY3Rpb25DYWxsQXJndW1lbnRzVGVzdDo6dGVzdFN3aXRjaFN0YXRlbWVudCgpIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTk6InRlc3RTd2l0Y2hTdGF0ZW1lbnQiO31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYWJzdHJhY3QiO2I6MDtzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZmluYWwiO2I6MDtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAc3RhdGljIjtiOjA7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjY6InB1YmxpYyI7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhcmd1bWVudHMiO2E6MDp7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6NTkwO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABlbmRMb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6NjQyO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAByZXR1cm5UeXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTWl4ZWRfIjowOnt9czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGhhc1JldHVybkJ5UmVmZXJlbmNlIjtiOjA7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAG1ldGFkYXRhIjthOjA6e319czo5OToiXFBIUF9Db2RlU25pZmZlclxUZXN0c1xDb3JlXFRva2VuaXplclxOYW1lZEZ1bmN0aW9uQ2FsbEFyZ3VtZW50c1Rlc3Q6OnRlc3RQYXJzZUVycm9yVmFyaWFibGVMYWJlbCgpIjtPOjM1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZCI6MTI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6ODY6IlZlcmlmeSB0aGF0IGEgdmFyaWFibGUgcGFyYW1ldGVyIGxhYmVsIChwYXJzZSBlcnJvcikgaXMgc3RpbGwgdG9rZW5pemVkIGFzIFRfVkFSSUFCTEUuIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjI6e2k6MDtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xDb3ZlcnMiOjM6e3M6NzoiACoAbmFtZSI7czo2OiJjb3ZlcnMiO3M6NTM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xDb3ZlcnMAcmVmZXJzIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6Nzg6IlxQSFBfQ29kZVNuaWZmZXJcVGVzdHNcQ29yZVxUb2tlbml6ZXJcUEhQX0NvZGVTbmlmZmVyXFRva2VuaXplcnNcUEhQOjp0b2tlbml6ZSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjg6InRva2VuaXplIjt9czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19aToxO086NDY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFJldHVybl8iOjM6e3M6NzoiACoAdHlwZSI7TzozNjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFZvaWRfIjowOnt9czo3OiIAKgBuYW1lIjtzOjY6InJldHVybiI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7cjoxMDY7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo5OToiXFBIUF9Db2RlU25pZmZlclxUZXN0c1xDb3JlXFRva2VuaXplclxOYW1lZEZ1bmN0aW9uQ2FsbEFyZ3VtZW50c1Rlc3Q6OnRlc3RQYXJzZUVycm9yVmFyaWFibGVMYWJlbCgpIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6Mjc6InRlc3RQYXJzZUVycm9yVmFyaWFibGVMYWJlbCI7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhYnN0cmFjdCI7YjowO3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmaW5hbCI7YjowO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABzdGF0aWMiO2I6MDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6NjoicHVibGljIjt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFyZ3VtZW50cyI7YTowOnt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo2NTI7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGVuZExvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo2ODg7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHJldHVyblR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xNaXhlZF8iOjA6e31zOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAaGFzUmV0dXJuQnlSZWZlcmVuY2UiO2I6MDtzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbWV0YWRhdGEiO2E6MDp7fX1zOjk4OiJcUEhQX0NvZGVTbmlmZmVyXFRlc3RzXENvcmVcVG9rZW5pemVyXE5hbWVkRnVuY3Rpb25DYWxsQXJndW1lbnRzVGVzdDo6dGVzdFJlc2VydmVkS2V5d29yZHNBc05hbWUoKSI7TzozNToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QiOjEyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjE0MDoiVmVyaWZ5IHRoYXQgcmVzZXJ2ZWQga2V5d29yZHMgdXNlZCBhcyBhIHBhcmFtZXRlciBsYWJlbCBhcmUgdG9rZW5pemVkIGFzIFRfUEFSQU1fTkFNRQphbmQgdGhhdCB0aGUgY29sb24gYWZ0ZXIgaXQgaXMgdG9rZW5pemVkIGFzIGEgVF9DT0xPTi4iO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6Njp7aTowO086NDQ6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtIjo2OntzOjU4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0AdmFyaWFibGVOYW1lIjtzOjEwOiJ0ZXN0TWFya2VyIjtzOjU2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0AaXNWYXJpYWRpYyI7YjowO3M6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQYXJhbQBpc1JlZmVyZW5jZSI7YjowO3M6NzoiACoAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31zOjc6IgAqAG5hbWUiO3M6NToicGFyYW0iO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjM5OiJUaGUgY29tbWVudCBwcmVmYWNpbmcgdGhlIHRhcmdldCB0b2tlbi4iO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX1pOjE7Tzo0NDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0iOjY6e3M6NTg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQYXJhbQB2YXJpYWJsZU5hbWUiO3M6MTA6InRva2VuVHlwZXMiO3M6NTY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQYXJhbQBpc1ZhcmlhZGljIjtiOjA7czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtAGlzUmVmZXJlbmNlIjtiOjA7czo3OiIAKgB0eXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQXJyYXlfIjozOntzOjEyOiIAKgB2YWx1ZVR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xNaXhlZF8iOjA6e31zOjEwOiIAKgBrZXlUeXBlIjtOO3M6MTc6IgAqAGRlZmF1bHRLZXlUeXBlIjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29tcG91bmQiOjI6e3M6NTI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQWdncmVnYXRlZFR5cGUAdHlwZXMiO2E6Mjp7aTowO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xTdHJpbmdfIjowOnt9aToxO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xJbnRlZ2VyIjowOnt9fXM6NTI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQWdncmVnYXRlZFR5cGUAdG9rZW4iO3M6MToifCI7fX1zOjc6IgAqAG5hbWUiO3M6NToicGFyYW0iO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjI4OiJUaGUgdG9rZW4gY29kZXMgdG8gbG9vayBmb3IuIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19aToyO086NDQ6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtIjo2OntzOjU4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0AdmFyaWFibGVOYW1lIjtzOjEyOiJ0b2tlbkNvbnRlbnQiO3M6NTY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQYXJhbQBpc1ZhcmlhZGljIjtiOjA7czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtAGlzUmVmZXJlbmNlIjtiOjA7czo3OiIAKgB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcU3RyaW5nXyI6MDp7fXM6NzoiACoAbmFtZSI7czo1OiJwYXJhbSI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MzA6IlRoZSB0b2tlbiBjb250ZW50IHRvIGxvb2sgZm9yLiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fWk6MztPOjQ2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xHZW5lcmljIjoyOntzOjc6IgAqAG5hbWUiO3M6MTI6ImRhdGFQcm92aWRlciI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MjY6ImRhdGFSZXNlcnZlZEtleXdvcmRzQXNOYW1lIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19aTo0O086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXENvdmVycyI6Mzp7czo3OiIAKgBuYW1lIjtzOjY6ImNvdmVycyI7czo1MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXENvdmVycwByZWZlcnMiO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo3ODoiXFBIUF9Db2RlU25pZmZlclxUZXN0c1xDb3JlXFRva2VuaXplclxQSFBfQ29kZVNuaWZmZXJcVG9rZW5pemVyc1xQSFA6OnRva2VuaXplIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6ODoidG9rZW5pemUiO31zOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX1pOjU7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUmV0dXJuXyI6Mzp7czo3OiIAKgB0eXBlIjtPOjM2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcVm9pZF8iOjA6e31zOjc6IgAqAG5hbWUiO3M6NjoicmV0dXJuIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX19czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtyOjEwNjtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjk4OiJcUEhQX0NvZGVTbmlmZmVyXFRlc3RzXENvcmVcVG9rZW5pemVyXE5hbWVkRnVuY3Rpb25DYWxsQXJndW1lbnRzVGVzdDo6dGVzdFJlc2VydmVkS2V5d29yZHNBc05hbWUoKSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjI2OiJ0ZXN0UmVzZXJ2ZWRLZXl3b3Jkc0FzTmFtZSI7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhYnN0cmFjdCI7YjowO3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmaW5hbCI7YjowO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABzdGF0aWMiO2I6MDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6NjoicHVibGljIjt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFyZ3VtZW50cyI7YTozOntpOjA7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudCI6NTp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAbmFtZSI7czoxMDoidGVzdE1hcmtlciI7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAdHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGRlZmF1bHQiO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAYnlSZWZlcmVuY2UiO2I6MDtzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABpc1ZhcmlhZGljIjtiOjA7fWk6MTtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50Ijo1OntzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABuYW1lIjtzOjEwOiJ0b2tlblR5cGVzIjtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudAB0eXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTWl4ZWRfIjowOnt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAZGVmYXVsdCI7TjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABieVJlZmVyZW5jZSI7YjowO3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGlzVmFyaWFkaWMiO2I6MDt9aToyO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQiOjU6e3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AG5hbWUiO3M6MTI6InRva2VuQ29udGVudCI7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAdHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGRlZmF1bHQiO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAYnlSZWZlcmVuY2UiO2I6MDtzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABpc1ZhcmlhZGljIjtiOjA7fX1zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjcwNDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZW5kTG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjczOTtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAcmV0dXJuVHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fXM6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABoYXNSZXR1cm5CeVJlZmVyZW5jZSI7YjowO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABtZXRhZGF0YSI7YTowOnt9fXM6OTg6IlxQSFBfQ29kZVNuaWZmZXJcVGVzdHNcQ29yZVxUb2tlbml6ZXJcTmFtZWRGdW5jdGlvbkNhbGxBcmd1bWVudHNUZXN0OjpkYXRhUmVzZXJ2ZWRLZXl3b3Jkc0FzTmFtZSgpIjtPOjM1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZCI6MTI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6MTQ6IkRhdGEgcHJvdmlkZXIuIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjI6e2k6MDtPOjQyOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xTZWUiOjM6e3M6NzoiACoAbmFtZSI7czozOiJzZWUiO3M6OToiACoAcmVmZXJzIjtPOjU0OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xSZWZlcmVuY2VcRnFzZW4iOjE6e3M6NjE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xSZWZlcmVuY2VcRnFzZW4AZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo2NjoiXFBIUF9Db2RlU25pZmZlclxUZXN0c1xDb3JlXFRva2VuaXplclx0ZXN0UmVzZXJ2ZWRLZXl3b3Jkc0FzTmFtZSgpIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MjY6InRlc3RSZXNlcnZlZEtleXdvcmRzQXNOYW1lIjt9fXM6MTQ6IgAqAGRlc2NyaXB0aW9uIjtOO31pOjE7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUmV0dXJuXyI6Mzp7czo3OiIAKgB0eXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQXJyYXlfIjozOntzOjEyOiIAKgB2YWx1ZVR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xNaXhlZF8iOjA6e31zOjEwOiIAKgBrZXlUeXBlIjtOO3M6MTc6IgAqAGRlZmF1bHRLZXlUeXBlIjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29tcG91bmQiOjI6e3M6NTI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQWdncmVnYXRlZFR5cGUAdHlwZXMiO2E6Mjp7aTowO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xTdHJpbmdfIjowOnt9aToxO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xJbnRlZ2VyIjowOnt9fXM6NTI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQWdncmVnYXRlZFR5cGUAdG9rZW4iO3M6MToifCI7fX1zOjc6IgAqAG5hbWUiO3M6NjoicmV0dXJuIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX19czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtyOjEwNjtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjk4OiJcUEhQX0NvZGVTbmlmZmVyXFRlc3RzXENvcmVcVG9rZW5pemVyXE5hbWVkRnVuY3Rpb25DYWxsQXJndW1lbnRzVGVzdDo6ZGF0YVJlc2VydmVkS2V5d29yZHNBc05hbWUoKSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjI2OiJkYXRhUmVzZXJ2ZWRLZXl3b3Jkc0FzTmFtZSI7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhYnN0cmFjdCI7YjowO3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmaW5hbCI7YjowO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABzdGF0aWMiO2I6MDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6NjoicHVibGljIjt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFyZ3VtZW50cyI7YTowOnt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo3NDk7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGVuZExvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo4ODE7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHJldHVyblR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xNaXhlZF8iOjA6e31zOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAaGFzUmV0dXJuQnlSZWZlcmVuY2UiO2I6MDtzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbWV0YWRhdGEiO2E6MDp7fX19czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAHVzZWRUcmFpdHMiO2E6MDp7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MTU7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGVuZExvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo4ODQ7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAG1ldGFkYXRhIjthOjA6e319fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAaW50ZXJmYWNlcyI7YTowOnt9czo0MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQB0cmFpdHMiO2E6MDp7fXM6NDA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAZW51bXMiO2E6MDp7fXM6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAbWV0YWRhdGEiO2E6MDp7fX0=";