1752026088 waR3U4bTeM%3Aeda21a3b7098b00b16e628fd9958b92b-5ccc36eaa98f9d7f43ce9385182b360f s:56980:"TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlIjoxNDp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6MjY6IkNvbWJpbmVkIFNlYXJjaCBDb250cm9sbGVyIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjcyODoiUEhQIHZlcnNpb24gOAoKQ29weXJpZ2h0IChDKSBWaWxsYW5vdmEgVW5pdmVyc2l0eSAyMDEwLgpDb3B5cmlnaHQgKEMpIFRoZSBOYXRpb25hbCBMaWJyYXJ5IG9mIEZpbmxhbmQgMjAyNC4KClRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5Cml0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyLAphcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbi4KClRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLApidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgpNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCkdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCgpZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQphbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQpGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BICAwMjExMC0xMzAxICBVU0EiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YTo2OntpOjA7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcR2VuZXJpYyI6Mjp7czo3OiIAKgBuYW1lIjtzOjg6ImNhdGVnb3J5IjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czo2OiJWdUZpbmQiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX1pOjE7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcR2VuZXJpYyI6Mjp7czo3OiIAKgBuYW1lIjtzOjc6InBhY2thZ2UiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjEwOiJDb250cm9sbGVyIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19aToyO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEF1dGhvciI6NDp7czo3OiIAKgBuYW1lIjtzOjY6ImF1dGhvciI7czoxNDoiACoAZGVzY3JpcHRpb24iO047czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEF1dGhvcgBhdXRob3JOYW1lIjtzOjExOiJEZW1pYW4gS2F0eiI7czo1ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEF1dGhvcgBhdXRob3JFbWFpbCI7czoyNToiZGVtaWFuLmthdHpAdmlsbGFub3ZhLmVkdSI7fWk6MztPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xBdXRob3IiOjQ6e3M6NzoiACoAbmFtZSI7czo2OiJhdXRob3IiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtOO3M6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xBdXRob3IAYXV0aG9yTmFtZSI7czoxMToiRXJlIE1haWphbGEiO3M6NTg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xBdXRob3IAYXV0aG9yRW1haWwiO3M6MjM6ImVyZS5tYWlqYWxhQGhlbHNpbmtpLmZpIjt9aTo0O086NDY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEdlbmVyaWMiOjI6e3M6NzoiACoAbmFtZSI7czo3OiJsaWNlbnNlIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czo2OToiaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL2dwbC0yLjAucGhwIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19aTo1O086NDM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXExpbmsiOjM6e3M6NzoiACoAbmFtZSI7czo0OiJsaW5rIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czo5OiJNYWluIFNpdGUiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xMaW5rAGxpbmsiO3M6MTg6Imh0dHBzOi8vdnVmaW5kLm9yZyI7fX1zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb250ZXh0IjoyOntzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbnRleHQAbmFtZXNwYWNlIjtzOjA6IiI7czo1NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb250ZXh0AG5hbWVzcGFjZUFsaWFzZXMiO2E6MDp7fX1zOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAaGFzaCI7czozMjoiNWNjYzM2ZWFhOThmOWQ3ZjQzY2U5Mzg1MTgyYjM2MGYiO3M6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAbmFtZSI7czoyMjoiQ29tYmluZWRDb250cm9sbGVyLnBocCI7czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBwYXRoIjtzOjUxOiJWdUZpbmQvc3JjL1Z1RmluZC9Db250cm9sbGVyL0NvbWJpbmVkQ29udHJvbGxlci5waHAiO3M6NDE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAc291cmNlIjtzOjE0NDE1OiI8P3BocAoKLyoqCiAqIENvbWJpbmVkIFNlYXJjaCBDb250cm9sbGVyCiAqCiAqIFBIUCB2ZXJzaW9uIDgKICoKICogQ29weXJpZ2h0IChDKSBWaWxsYW5vdmEgVW5pdmVyc2l0eSAyMDEwLgogKiBDb3B5cmlnaHQgKEMpIFRoZSBOYXRpb25hbCBMaWJyYXJ5IG9mIEZpbmxhbmQgMjAyNC4KICoKICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIsCiAqIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgogKgogKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQogKiBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgogKgogKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQogKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQogKiBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BICAwMjExMC0xMzAxICBVU0EKICoKICogQGNhdGVnb3J5IFZ1RmluZAogKiBAcGFja2FnZSAgQ29udHJvbGxlcgogKiBAYXV0aG9yICAgRGVtaWFuIEthdHogPGRlbWlhbi5rYXR6QHZpbGxhbm92YS5lZHU+CiAqIEBhdXRob3IgICBFcmUgTWFpamFsYSA8ZXJlLm1haWphbGFAaGVsc2lua2kuZmk+CiAqIEBsaWNlbnNlICBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvZ3BsLTIuMC5waHAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKICogQGxpbmsgICAgIGh0dHBzOi8vdnVmaW5kLm9yZyBNYWluIFNpdGUKICovCgpuYW1lc3BhY2UgVnVGaW5kXENvbnRyb2xsZXI7Cgp1c2UgTGFtaW5hc1xTZXJ2aWNlTWFuYWdlclxTZXJ2aWNlTG9jYXRvckludGVyZmFjZTsKdXNlIFZ1RmluZFxTZWFyY2hcU2VhcmNoUnVubmVyOwoKdXNlIGZ1bmN0aW9uIGNvdW50Owp1c2UgZnVuY3Rpb24gaW5fYXJyYXk7CnVzZSBmdW5jdGlvbiBpbnR2YWw7CnVzZSBmdW5jdGlvbiBpc19hcnJheTsKCi8qKgogKiBSZWRpcmVjdHMgdGhlIHVzZXIgdG8gdGhlIGFwcHJvcHJpYXRlIGRlZmF1bHQgVnVGaW5kIGFjdGlvbi4KICoKICogQGNhdGVnb3J5IFZ1RmluZAogKiBAcGFja2FnZSAgQ29udHJvbGxlcgogKiBAYXV0aG9yICAgRGVtaWFuIEthdHogPGRlbWlhbi5rYXR6QHZpbGxhbm92YS5lZHU+CiAqIEBhdXRob3IgICBFcmUgTWFpamFsYSA8ZXJlLm1haWphbGFAaGVsc2lua2kuZmk+CiAqIEBsaWNlbnNlICBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvZ3BsLTIuMC5waHAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKICogQGxpbmsgICAgIGh0dHBzOi8vdnVmaW5kLm9yZyBNYWluIFNpdGUKICovCmNsYXNzIENvbWJpbmVkQ29udHJvbGxlciBleHRlbmRzIEFic3RyYWN0U2VhcmNoCnsKICAgIHVzZSBBamF4UmVzcG9uc2VUcmFpdDsKCiAgICAvKioKICAgICAqIENvbnN0cnVjdG9yCiAgICAgKgogICAgICogQHBhcmFtIFNlcnZpY2VMb2NhdG9ySW50ZXJmYWNlICRzbSBTZXJ2aWNlIGxvY2F0b3IKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KFNlcnZpY2VMb2NhdG9ySW50ZXJmYWNlICRzbSkKICAgIHsKICAgICAgICAkdGhpcy0+c2VhcmNoQ2xhc3NJZCA9ICdDb21iaW5lZCc7CiAgICAgICAgcGFyZW50OjpfX2NvbnN0cnVjdCgkc20pOwogICAgfQoKICAgIC8qKgogICAgICogSG9tZSBhY3Rpb24KICAgICAqCiAgICAgKiBAcmV0dXJuIG1peGVkCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBob21lQWN0aW9uKCkKICAgIHsKICAgICAgICAvLyBXZSBuZWVkIHRvIGxvYWQgYmxvY2tzIGRpZmZlcmVudGx5IGluIHRoaXMgY29udHJvbGxlciBzaW5jZSBpdAogICAgICAgIC8vIGRvZXNuJ3QgZm9sbG93IHRoZSB1c3VhbCBjb25maWd1cmF0aW9uIHBhdHRlcm4uCiAgICAgICAgJGJsb2NrcyA9ICR0aGlzLT5zZXJ2aWNlTG9jYXRvci0+Z2V0KFxWdUZpbmRcQ29udGVudEJsb2NrXEJsb2NrTG9hZGVyOjpjbGFzcykKICAgICAgICAgICAgLT5nZXRGcm9tQ29uZmlnKCdjb21iaW5lZCcpOwogICAgICAgIHJldHVybiAkdGhpcy0+Y3JlYXRlVmlld01vZGVsKGNvbXBhY3QoJ2Jsb2NrcycpKTsKICAgIH0KCiAgICAvKioKICAgICAqIFNpbmdsZSByZXN1bHQgYWN0aW9uICh1c2VkIGZvciBBSkFYKQogICAgICoKICAgICAqIEByZXR1cm4gbWl4ZWQKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIHJlc3VsdEFjdGlvbigpCiAgICB7CiAgICAgICAgJHRoaXMtPmRpc2FibGVTZXNzaW9uV3JpdGVzKCk7ICAvLyBhdm9pZCBzZXNzaW9uIHdyaXRlIHRpbWluZyBidWcKCiAgICAgICAgLy8gVHVybiBvZmYgc2VhcmNoIG1lbW9yeSAtLSBub3QgcmVsZXZhbnQgaW4gdGhpcyBjb250ZXh0OgogICAgICAgICR0aGlzLT5nZXRTZWFyY2hNZW1vcnkoKS0+ZGlzYWJsZSgpOwoKICAgICAgICAvLyBWYWxpZGF0ZSBjb25maWd1cmF0aW9uOgogICAgICAgICRzZWN0aW9uSWQgPSAkdGhpcy0+cGFyYW1zKCktPmZyb21RdWVyeSgnaWQnKTsKICAgICAgICAkb3B0aW9uc01hbmFnZXIgPSAkdGhpcy0+c2VydmljZUxvY2F0b3ItPmdldChcVnVGaW5kXFNlYXJjaFxPcHRpb25zXFBsdWdpbk1hbmFnZXI6OmNsYXNzKTsKICAgICAgICAkY29tYmluZWRPcHRpb25zID0gJG9wdGlvbnNNYW5hZ2VyLT5nZXQoJ2NvbWJpbmVkJyk7CiAgICAgICAgJHRhYkNvbmZpZyA9ICRjb21iaW5lZE9wdGlvbnMtPmdldFRhYkNvbmZpZygpOwogICAgICAgIGlmICghaXNzZXQoJHRhYkNvbmZpZ1skc2VjdGlvbklkXSkpIHsKICAgICAgICAgICAgdGhyb3cgbmV3IFxFeGNlcHRpb24oJ0lsbGVnYWwgSUQnKTsKICAgICAgICB9CiAgICAgICAgWyRzZWFyY2hDbGFzc0lkXSA9IGV4cGxvZGUoJzonLCAkc2VjdGlvbklkKTsKCiAgICAgICAgLy8gUmV0cmlldmUgcmVzdWx0czoKICAgICAgICAkY3VycmVudE9wdGlvbnMgPSAkb3B0aW9uc01hbmFnZXItPmdldCgkc2VhcmNoQ2xhc3NJZCk7CiAgICAgICAgWyRjb250cm9sbGVyLCAkYWN0aW9uXQogICAgICAgICAgICA9IGV4cGxvZGUoJy0nLCAkY3VycmVudE9wdGlvbnMtPmdldFNlYXJjaEFjdGlvbigpKTsKICAgICAgICAkc2V0dGluZ3MgPSAkdGFiQ29uZmlnWyRzZWN0aW9uSWRdOwoKICAgICAgICAkdGhpcy0+YWRqdXN0UXVlcnlGb3JTZXR0aW5ncygKICAgICAgICAgICAgJHNldHRpbmdzLAogICAgICAgICAgICAkY3VycmVudE9wdGlvbnMtPmdldEhhbmRsZXJGb3JMYWJlbCgkdGhpcy0+cGFyYW1zKCktPmZyb21RdWVyeSgndHlwZScpKQogICAgICAgICk7CiAgICAgICAgJHNldHRpbmdzWyd2aWV3J10gPSAkdGhpcy0+Zm9yd2FyZFRvKCRjb250cm9sbGVyLCAkYWN0aW9uKTsKCiAgICAgICAgLy8gU2hvdWxkIHdlIHN1cHByZXNzIGNvbnRlbnQgZHVlIHRvIGVtcHRpbmVzcz8KICAgICAgICBpZiAoCiAgICAgICAgICAgICgkc2V0dGluZ3NbJ2hpZGVfaWZfZW1wdHknXSA/PyBmYWxzZSkKICAgICAgICAgICAgJiYgJHNldHRpbmdzWyd2aWV3J10tPnJlc3VsdHMtPmdldFJlc3VsdFRvdGFsKCkgPD0gMAogICAgICAgICkgewogICAgICAgICAgICAkaHRtbCA9ICcnOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICR2aWV3UGFyYW1zID0gWwogICAgICAgICAgICAgICAgJ3NlYXJjaENsYXNzSWQnID0+ICRzZWFyY2hDbGFzc0lkLAogICAgICAgICAgICAgICAgJ2N1cnJlbnRTZWFyY2gnID0+ICRzZXR0aW5ncywKICAgICAgICAgICAgICAgICdkb21JZCcgPT4gJ2NvbWJpbmVkXycgLiBzdHJfcmVwbGFjZSgnOicsICdfX19fJywgJHNlY3Rpb25JZCksCiAgICAgICAgICAgIF07CiAgICAgICAgICAgIC8vIEluaXRpYWxpemUgdGhlbWUgcmVzb3VyY2VzOgogICAgICAgICAgICAoJHRoaXMtPmdldFZpZXdSZW5kZXJlcigpLT5wbHVnaW4oJ3NldHVwVGhlbWVSZXNvdXJjZXMnKSkodHJ1ZSk7CiAgICAgICAgICAgIC8vIFJlbmRlciBjb250ZW50OgogICAgICAgICAgICAkaHRtbCA9ICR0aGlzLT5nZXRWaWV3UmVuZGVyZXIoKS0+cmVuZGVyKAogICAgICAgICAgICAgICAgJ2NvbWJpbmVkL3Jlc3VsdHMtbGlzdC5waHRtbCcsCiAgICAgICAgICAgICAgICAkdmlld1BhcmFtcwogICAgICAgICAgICApOwogICAgICAgICAgICAvLyBQcmVwZW5kIENTUyBpbiBjYXNlIG9mIGN1c3RvbSBmaWxlcyBhZGRlZCBieSB0ZW1wbGF0ZXM6CiAgICAgICAgICAgICRodG1sID0gKCR0aGlzLT5nZXRWaWV3UmVuZGVyZXIoKS0+cGx1Z2luKCdoZWFkTGluaycpKSgpIC4gJGh0bWw7CiAgICAgICAgfQogICAgICAgIHJldHVybiAkdGhpcy0+Z2V0QWpheFJlc3BvbnNlKCd0ZXh0L2h0bWwnLCAkaHRtbCk7CiAgICB9CgogICAgLyoqCiAgICAgKiBSZXN1bHRzIGFjdGlvbgogICAgICoKICAgICAqIEByZXR1cm4gbWl4ZWQKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIHJlc3VsdHNBY3Rpb24oKQogICAgewogICAgICAgIC8vIFNldCB1cCBjdXJyZW50IHJlcXVlc3QgY29udGV4dDoKICAgICAgICAkcmVxdWVzdCA9ICR0aGlzLT5nZXRSZXF1ZXN0KCktPmdldFF1ZXJ5KCktPnRvQXJyYXkoKQogICAgICAgICAgICArICR0aGlzLT5nZXRSZXF1ZXN0KCktPmdldFBvc3QoKS0+dG9BcnJheSgpOwogICAgICAgICRyZXN1bHRzID0gJHRoaXMtPnNlcnZpY2VMb2NhdG9yLT5nZXQoU2VhcmNoUnVubmVyOjpjbGFzcyktPnJ1bigKICAgICAgICAgICAgJHJlcXVlc3QsCiAgICAgICAgICAgICdDb21iaW5lZCcsCiAgICAgICAgICAgICR0aGlzLT5nZXRTZWFyY2hTZXR1cENhbGxiYWNrKCkKICAgICAgICApOwoKICAgICAgICAvLyBSZW1lbWJlciB0aGUgY3VycmVudCBVUkwsIHRoZW4gZGlzYWJsZSBtZW1vcnkgc28gbXVsdGktc2VhcmNoIHJlc3VsdHMKICAgICAgICAvLyBkb24ndCBvdmVyd3JpdGUgaXQ6CiAgICAgICAgJHRoaXMtPnJlbWVtYmVyU2VhcmNoKCRyZXN1bHRzKTsKICAgICAgICAkdGhpcy0+Z2V0U2VhcmNoTWVtb3J5KCktPmRpc2FibGUoKTsKCiAgICAgICAgLy8gR2F0aGVyIGNvbWJpbmVkIHJlc3VsdHM6CiAgICAgICAgJGNvbWJpbmVkUmVzdWx0cyA9IFtdOwogICAgICAgICRvcHRpb25zTWFuYWdlciA9ICR0aGlzLT5zZXJ2aWNlTG9jYXRvci0+Z2V0KFxWdUZpbmRcU2VhcmNoXE9wdGlvbnNcUGx1Z2luTWFuYWdlcjo6Y2xhc3MpOwogICAgICAgICRjb21iaW5lZE9wdGlvbnMgPSAkb3B0aW9uc01hbmFnZXItPmdldCgnY29tYmluZWQnKTsKICAgICAgICAvLyBTYXZlIHRoZSBpbml0aWFsIHR5cGUgdmFsdWUsIHNpbmNlIGl0IG1heSBnZXQgbWFuaXB1bGF0ZWQgYmVsb3c6CiAgICAgICAgJGluaXRpYWxUeXBlID0gJHRoaXMtPnBhcmFtcygpLT5mcm9tUXVlcnkoJ3R5cGUnKTsKICAgICAgICBmb3JlYWNoICgkY29tYmluZWRPcHRpb25zLT5nZXRUYWJDb25maWcoKSBhcyAkY3VycmVudCA9PiAkc2V0dGluZ3MpIHsKICAgICAgICAgICAgWyRzZWFyY2hDbGFzc0lkXSA9IGV4cGxvZGUoJzonLCAkY3VycmVudCk7CiAgICAgICAgICAgICRjdXJyZW50T3B0aW9ucyA9ICRvcHRpb25zTWFuYWdlci0+Z2V0KCRzZWFyY2hDbGFzc0lkKTsKICAgICAgICAgICAgJHRoaXMtPmFkanVzdFF1ZXJ5Rm9yU2V0dGluZ3MoCiAgICAgICAgICAgICAgICAkc2V0dGluZ3MsCiAgICAgICAgICAgICAgICAkY3VycmVudE9wdGlvbnMtPmdldEhhbmRsZXJGb3JMYWJlbCgkaW5pdGlhbFR5cGUpCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIFskY29udHJvbGxlciwgJGFjdGlvbl0KICAgICAgICAgICAgICAgID0gZXhwbG9kZSgnLScsICRjdXJyZW50T3B0aW9ucy0+Z2V0U2VhcmNoQWN0aW9uKCkpOwogICAgICAgICAgICAkY29tYmluZWRSZXN1bHRzWyRjdXJyZW50XSA9ICRzZXR0aW5nczsKCiAgICAgICAgICAgIC8vIENhbGN1bGF0ZSBhIHVuaXF1ZSBET00gaWQgZm9yIHRoaXMgc2VjdGlvbiBvZiB0aGUgc2VhcmNoIHJlc3VsdHM7CiAgICAgICAgICAgIC8vICRzZWFyY2hDbGFzc0lkIG1heSBjb250YWluIGNvbG9ucywgd2hpY2ggbXVzdCBiZSBjb252ZXJ0ZWQuCiAgICAgICAgICAgICRjb21iaW5lZFJlc3VsdHNbJGN1cnJlbnRdWydkb21JZCddCiAgICAgICAgICAgICAgICA9ICdjb21iaW5lZF8nIC4gc3RyX3JlcGxhY2UoJzonLCAnX19fXycsICRjdXJyZW50KTsKCiAgICAgICAgICAgICRwZXJtaXNzaW9uRGVuaWVkID0gaXNzZXQoJHNldHRpbmdzWydwZXJtaXNzaW9uJ10pCiAgICAgICAgICAgICAgICAmJiAhJHRoaXMtPnBlcm1pc3Npb24oKS0+aXNBdXRob3JpemVkKCRzZXR0aW5nc1sncGVybWlzc2lvbiddKTsKICAgICAgICAgICAgJGlzQWpheCA9ICRzZXR0aW5nc1snYWpheCddID8/IGZhbHNlOwogICAgICAgICAgICAkY29tYmluZWRSZXN1bHRzWyRjdXJyZW50XVsndmlldyddID0gKCRwZXJtaXNzaW9uRGVuaWVkIHx8ICRpc0FqYXgpCiAgICAgICAgICAgICAgICA/ICR0aGlzLT5jcmVhdGVWaWV3TW9kZWwoWydyZXN1bHRzJyA9PiAkcmVzdWx0c10pCiAgICAgICAgICAgICAgICA6ICR0aGlzLT5mb3J3YXJkVG8oJGNvbnRyb2xsZXIsICRhY3Rpb24pOwoKICAgICAgICAgICAgLy8gU3BlY2lhbCBjYXNlOiBpbmNsdWRlIGFwcHJvcHJpYXRlICJwb3dlcmVkIGJ5IiBtZXNzYWdlOgogICAgICAgICAgICBpZiAoc3RydG9sb3dlcigkc2VhcmNoQ2xhc3NJZCkgPT0gJ3N1bW1vbicpIHsKICAgICAgICAgICAgICAgICR0aGlzLT5sYXlvdXQoKS0+cG93ZXJlZEJ5ID0gJ1Bvd2VyZWQgYnkgU3VtbW9u4oSiIGZyb20gU2VyaWFscyAnCiAgICAgICAgICAgICAgICAgICAgLiAnU29sdXRpb25zLCBhIGRpdmlzaW9uIG9mIFByb1F1ZXN0Lic7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIC8vIFJlc3RvcmUgdGhlIGluaXRpYWwgdHlwZSB2YWx1ZSB0byB0aGUgcXVlcnkgdG8gcHJldmVudCB3ZWlyZCBiZWhhdmlvcjoKICAgICAgICAkdGhpcy0+Z2V0UmVxdWVzdCgpLT5nZXRRdWVyeSgpLT50eXBlID0gJGluaXRpYWxUeXBlOwoKICAgICAgICAvLyBSdW4gdGhlIHNlYXJjaCB0byBvYnRhaW4gcmVjb21tZW5kYXRpb25zOgogICAgICAgICRyZXN1bHRzLT5wZXJmb3JtQW5kUHJvY2Vzc1NlYXJjaCgpOwoKICAgICAgICAkYWN0dWFsTWF4Q29sdW1ucyA9IGNvdW50KCRjb21iaW5lZFJlc3VsdHMpOwogICAgICAgICRjb25maWcgPSAkdGhpcy0+c2VydmljZUxvY2F0b3ItPmdldChcVnVGaW5kXENvbmZpZ1xQbHVnaW5NYW5hZ2VyOjpjbGFzcyktPmdldCgnY29tYmluZWQnKS0+dG9BcnJheSgpOwogICAgICAgICRjb2x1bW5Db25maWcgPSBpbnR2YWwoJGNvbmZpZ1snTGF5b3V0J11bJ2NvbHVtbnMnXSA/PyAkYWN0dWFsTWF4Q29sdW1ucyk7CiAgICAgICAgJGNvbHVtbnMgPSBtaW4oJGNvbHVtbkNvbmZpZywgJGFjdHVhbE1heENvbHVtbnMpOwogICAgICAgICRwbGFjZW1lbnQgPSAkY29uZmlnWydMYXlvdXQnXVsnc3RhY2tfcGxhY2VtZW50J10gPz8gJ2Rpc3RyaWJ1dGVkJzsKICAgICAgICBpZiAoIWluX2FycmF5KCRwbGFjZW1lbnQsIFsnZGlzdHJpYnV0ZWQnLCAnbGVmdCcsICdyaWdodCcsICdncmlkJ10pKSB7CiAgICAgICAgICAgICRwbGFjZW1lbnQgPSAnZGlzdHJpYnV0ZWQnOwogICAgICAgIH0KCiAgICAgICAgLy8gSWRlbnRpZnkgaWYgYW55IG1vZHVsZXMgdXNlIGluY2x1ZGVfcmVjb21tZW5kYXRpb25zX3NpZGUgb3IKICAgICAgICAvLyBpbmNsdWRlX3JlY29tbWVuZGF0aW9uc19ub3Jlc3VsdHNfc2lkZS4KICAgICAgICAkY29sdW1uU2lkZVJlY29tbWVuZGF0aW9ucyA9IFtdOwogICAgICAgICRyZWNvbW1lbmRhdGlvbk1hbmFnZXIgPSAkdGhpcy0+c2VydmljZUxvY2F0b3ItPmdldChcVnVGaW5kXFJlY29tbWVuZFxQbHVnaW5NYW5hZ2VyOjpjbGFzcyk7CiAgICAgICAgZm9yZWFjaCAoJGNvbmZpZyBhcyAkc3ViY29uZmlnKSB7CiAgICAgICAgICAgIGZvcmVhY2ggKFsnaW5jbHVkZV9yZWNvbW1lbmRhdGlvbnNfc2lkZScsICdpbmNsdWRlX3JlY29tbWVuZGF0aW9uc19ub3Jlc3VsdHNfc2lkZSddIGFzICR0eXBlKSB7CiAgICAgICAgICAgICAgICBpZiAoaXNfYXJyYXkoJHN1YmNvbmZpZ1skdHlwZV0gPz8gZmFsc2UpKSB7CiAgICAgICAgICAgICAgICAgICAgZm9yZWFjaCAoJHN1YmNvbmZpZ1skdHlwZV0gYXMgJHJlY29tbWVuZGF0aW9uKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICRyZWNvbW1lbmRhdGlvbk1vZHVsZU5hbWUgPSBzdHJ0b2soJHJlY29tbWVuZGF0aW9uLCAnOicpOwogICAgICAgICAgICAgICAgICAgICAgICAkcmVjb21tZW5kYXRpb25Nb2R1bGUgPSAkcmVjb21tZW5kYXRpb25NYW5hZ2VyLT5nZXQoJHJlY29tbWVuZGF0aW9uTW9kdWxlTmFtZSk7CiAgICAgICAgICAgICAgICAgICAgICAgICRjb2x1bW5TaWRlUmVjb21tZW5kYXRpb25zW10gPSBzdHJfcmVwbGFjZSgnXFwnLCAnXycsICRyZWNvbW1lbmRhdGlvbk1vZHVsZTo6Y2xhc3MpOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgLy8gQnVpbGQgdmlldyBtb2RlbDoKICAgICAgICByZXR1cm4gJHRoaXMtPmNyZWF0ZVZpZXdNb2RlbCgKICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgJ2NvbHVtbnMnID0+ICRjb2x1bW5zLAogICAgICAgICAgICAgICAgJ2NvbWJpbmVkUmVzdWx0cycgPT4gJGNvbWJpbmVkUmVzdWx0cywKICAgICAgICAgICAgICAgICdjb25maWcnID0+ICRjb25maWcsCiAgICAgICAgICAgICAgICAncGFyYW1zJyA9PiAkcmVzdWx0cy0+Z2V0UGFyYW1zKCksCiAgICAgICAgICAgICAgICAncGxhY2VtZW50JyA9PiAkcGxhY2VtZW50LAogICAgICAgICAgICAgICAgJ3Jlc3VsdHMnID0+ICRyZXN1bHRzLAogICAgICAgICAgICAgICAgJ2NvbHVtblNpZGVSZWNvbW1lbmRhdGlvbnMnID0+ICRjb2x1bW5TaWRlUmVjb21tZW5kYXRpb25zLAogICAgICAgICAgICBdCiAgICAgICAgKTsKICAgIH0KCiAgICAvKioKICAgICAqIEFjdGlvbiB0byBwcm9jZXNzIHRoZSBjb21iaW5lZCBzZWFyY2ggYm94LgogICAgICoKICAgICAqIEByZXR1cm4gbWl4ZWQKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIHNlYXJjaGJveEFjdGlvbigpCiAgICB7CiAgICAgICAgWyR0eXBlLCAkdGFyZ2V0XSA9IGV4cGxvZGUoJzonLCAkdGhpcy0+cGFyYW1zKCktPmZyb21RdWVyeSgndHlwZScpLCAyKTsKICAgICAgICBzd2l0Y2ggKCR0eXBlKSB7CiAgICAgICAgICAgIGNhc2UgJ1Z1RmluZCc6CiAgICAgICAgICAgICAgICBbJHNlYXJjaENsYXNzSWQsICR0eXBlXSA9IGV4cGxvZGUoJ3wnLCAkdGFyZ2V0KTsKICAgICAgICAgICAgICAgICRwYXJhbXMgPSAkdGhpcy0+Z2V0UmVxdWVzdCgpLT5nZXRRdWVyeSgpLT50b0FycmF5KCk7CiAgICAgICAgICAgICAgICAkcGFyYW1zWyd0eXBlJ10gPSAkdHlwZTsKCiAgICAgICAgICAgICAgICAvLyBEaXNhYmxlIHJldGFpbmVkIGZpbHRlcnMgaWYgd2UgYXJlIHN3aXRjaGluZyBjbGFzc2VzIQogICAgICAgICAgICAgICAgJGFjdGl2ZUNsYXNzID0gJHRoaXMtPnBhcmFtcygpLT5mcm9tUXVlcnkoJ2FjdGl2ZVNlYXJjaENsYXNzSWQnKTsKICAgICAgICAgICAgICAgIGlmICgkYWN0aXZlQ2xhc3MgIT0gJHNlYXJjaENsYXNzSWQpIHsKICAgICAgICAgICAgICAgICAgICB1bnNldCgkcGFyYW1zWydmaWx0ZXInXSk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAvLyBXZSBkb24ndCBuZWVkIHRvIHBhc3MgYWN0aXZlU2VhcmNoQ2xhc3NJZCBmb3J3YXJkOgogICAgICAgICAgICAgICAgdW5zZXQoJHBhcmFtc1snYWN0aXZlU2VhcmNoQ2xhc3NJZCddKTsKCiAgICAgICAgICAgICAgICAkcm91dGUgPSAkdGhpcy0+c2VydmljZUxvY2F0b3IKICAgICAgICAgICAgICAgICAgICAtPmdldChcVnVGaW5kXFNlYXJjaFxPcHRpb25zXFBsdWdpbk1hbmFnZXI6OmNsYXNzKQogICAgICAgICAgICAgICAgICAgIC0+Z2V0KCRzZWFyY2hDbGFzc0lkKS0+Z2V0U2VhcmNoQWN0aW9uKCk7CiAgICAgICAgICAgICAgICAkYmFzZSA9ICR0aGlzLT51cmwoKS0+ZnJvbVJvdXRlKCRyb3V0ZSk7CiAgICAgICAgICAgICAgICByZXR1cm4gJHRoaXMtPnJlZGlyZWN0KCkKICAgICAgICAgICAgICAgICAgICAtPnRvVXJsKCRiYXNlIC4gJz8nIC4gaHR0cF9idWlsZF9xdWVyeSgkcGFyYW1zKSk7CiAgICAgICAgICAgIGNhc2UgJ0V4dGVybmFsJzoKICAgICAgICAgICAgICAgICRsb29rZm9yID0gJHRoaXMtPnBhcmFtcygpLT5mcm9tUXVlcnkoJ2xvb2tmb3InKTsKICAgICAgICAgICAgICAgICRmaW5hbFRhcmdldCA9ICghc3RyX2NvbnRhaW5zKCR0YXJnZXQsICclJWxvb2tmb3IlJScpKQogICAgICAgICAgICAgICAgICAgID8gJHRhcmdldCAuIHVybGVuY29kZSgkbG9va2ZvcikKICAgICAgICAgICAgICAgICAgICA6IHN0cl9yZXBsYWNlKCclJWxvb2tmb3IlJScsIHVybGVuY29kZSgkbG9va2ZvciksICR0YXJnZXQpOwogICAgICAgICAgICAgICAgcmV0dXJuICR0aGlzLT5yZWRpcmVjdCgpLT50b1VybCgkZmluYWxUYXJnZXQpOwogICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAgLy8gSWYgcGFyYW1ldGVycyBhcmUgY29tcGxldGVseSBtaXNzaW5nLCByZWRpcmVjdCB0byBob21lIGluc3RlYWQKICAgICAgICAgICAgICAgIC8vIG9mIHRocm93aW5nIGFuIGVycm9yOyB0aGlzIGlzIHBvc3NpYmx5IGEgbWlzYmVoYXZpbmcgY3Jhd2xlciB0aGF0CiAgICAgICAgICAgICAgICAvLyBmb2xsb3dlZCB0aGUgU2VhcmNoQm94IFVSTCB3aXRob3V0IHBhc3NpbmcgYW55IHBhcmFtZXRlcnMuCiAgICAgICAgICAgICAgICBpZiAoZW1wdHkoJHR5cGUpICYmIGVtcHR5KCR0YXJnZXQpKSB7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICR0aGlzLT5yZWRpcmVjdCgpLT50b1JvdXRlKCdob21lJyk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAvLyBJZiB3ZSBoYXZlIGEgd2VpcmQgdmFsdWUgaGVyZSwgcmVwb3J0IGl0IGFzIGFuIEV4Y2VwdGlvbjoKICAgICAgICAgICAgICAgIHRocm93IG5ldyBcVnVGaW5kXEV4Y2VwdGlvblxCYWRSZXF1ZXN0KAogICAgICAgICAgICAgICAgICAgICdVbmV4cGVjdGVkIHNlYXJjaCB0eXBlOiAiJyAuICR0eXBlIC4gJyIuJwogICAgICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICB9CgogICAgLyoqCiAgICAgKiBBZGp1c3QgdGhlIHF1ZXJ5IGNvbnRleHQgdG8gcmVmbGVjdCB0aGUgY3VycmVudCBzZXR0aW5ncy4KICAgICAqCiAgICAgKiBAcGFyYW0gYXJyYXkgICRzZXR0aW5ncyAgIFNldHRpbmdzCiAgICAgKiBAcGFyYW0gc3RyaW5nICRzZWFyY2hUeXBlIE92ZXJyaWRlIGZvciBzZWFyY2ggaGFuZGxlciBuYW1lCiAgICAgKgogICAgICogQHJldHVybiB2b2lkCiAgICAgKi8KICAgIHByb3RlY3RlZCBmdW5jdGlvbiBhZGp1c3RRdWVyeUZvclNldHRpbmdzKCRzZXR0aW5ncywgJHNlYXJjaFR5cGUgPSBudWxsKQogICAgewogICAgICAgIC8vIEFwcGx5IGxpbWl0IHNldHRpbmcsIGlmIGFueToKICAgICAgICAkcXVlcnkgPSAkdGhpcy0+Z2V0UmVxdWVzdCgpLT5nZXRRdWVyeSgpOwogICAgICAgICRxdWVyeS0+bGltaXQgPSAkc2V0dGluZ3NbJ2xpbWl0J10gPz8gbnVsbDsKCiAgICAgICAgLy8gQXBwbHkgZmlsdGVycywgaWYgYW55OgogICAgICAgICRxdWVyeS0+ZmlsdGVyID0gaXNzZXQoJHNldHRpbmdzWydmaWx0ZXInXSkKICAgICAgICAgICAgPyAoYXJyYXkpJHNldHRpbmdzWydmaWx0ZXInXSA6IG51bGw7CgogICAgICAgIC8vIEFwcGx5IGhpZGRlbiBmaWx0ZXJzLCBpZiBhbnk6CiAgICAgICAgJHF1ZXJ5LT5oaWRkZW5GaWx0ZXJzID0gaXNzZXQoJHNldHRpbmdzWydoaWRkZW5GaWx0ZXInXSkKICAgICAgICAgICAgPyAoYXJyYXkpJHNldHRpbmdzWydoaWRkZW5GaWx0ZXInXSA6IG51bGw7CgogICAgICAgIC8vIEFwcGx5IHNoYXJkcywgaWYgYW55OgogICAgICAgICRxdWVyeS0+c2hhcmQgPSBpc3NldCgkc2V0dGluZ3NbJ3NoYXJkJ10pCiAgICAgICAgICAgID8gKGFycmF5KSRzZXR0aW5nc1snc2hhcmQnXSA6IG51bGw7CgogICAgICAgIC8vIFJlc2V0IG92ZXJyaWRlIHRvIGF2b2lkIGJsZWVkLW92ZXIgZnJvbSBvbmUgc2VjdGlvbiB0byB0aGUgbmV4dCEKICAgICAgICAkcXVlcnktPnJlY29tbWVuZE92ZXJyaWRlID0gZmFsc2U7CgogICAgICAgIC8vIEFsd2F5cyBkaXNhYmxlICdqdW1wdG8nIHNldHRpbmcsIGFzIGl0IGRvZXMgbm90IG1ha2Ugc2Vuc2UgdG8KICAgICAgICAvLyBsb2FkIGEgcmVjb3JkIHZpZXcgaW4gdGhlIGNvbnRleHQgb2YgY29tYmluZWQgc2VhcmNoLgogICAgICAgICRxdWVyeS0+anVtcHRvID0gZmFsc2U7CgogICAgICAgIC8vIE92ZXJyaWRlIHRoZSBzZWFyY2ggdHlwZToKICAgICAgICAkcXVlcnktPnR5cGUgPSAkc2VhcmNoVHlwZTsKCiAgICAgICAgLy8gRGlzcGxheSBvciBoaWRlIHRvcCBiYXNlZCBvbiBpbmNsdWRlX3JlY29tbWVuZGF0aW9ucyBzZXR0aW5nLgogICAgICAgICRyZWNvbW1lbmRPdmVycmlkZSA9IFtdOwogICAgICAgICRub1JlY29tbWVuZCA9IFtdOwogICAgICAgICRpbmNsdWRlUmVjb21tZW5kU2V0dGluZyA9ICRzZXR0aW5nc1snaW5jbHVkZV9yZWNvbW1lbmRhdGlvbnMnXSA/PyBmYWxzZTsKICAgICAgICBpZiAoaXNfYXJyYXkoJGluY2x1ZGVSZWNvbW1lbmRTZXR0aW5nKSkgewogICAgICAgICAgICAkcmVjb21tZW5kT3ZlcnJpZGVbJ3RvcCddID0gJHNldHRpbmdzWydpbmNsdWRlX3JlY29tbWVuZGF0aW9ucyddOwogICAgICAgIH0gZWxzZWlmICghJGluY2x1ZGVSZWNvbW1lbmRTZXR0aW5nKSB7CiAgICAgICAgICAgICRub1JlY29tbWVuZFtdID0gJ3RvcCc7CiAgICAgICAgfQoKICAgICAgICAvLyBEaXNwbGF5IG9yIGhpZGUgc2lkZSBiYXNlZCBvbiBpbmNsdWRlX3JlY29tbWVuZGF0aW9uc19zaWRlIHNldHRpbmcuCiAgICAgICAgaWYgKGlzX2FycmF5KCRzZXR0aW5nc1snaW5jbHVkZV9yZWNvbW1lbmRhdGlvbnNfc2lkZSddID8/IGZhbHNlKSkgewogICAgICAgICAgICAkcmVjb21tZW5kT3ZlcnJpZGVbJ3NpZGUnXSA9ICRzZXR0aW5nc1snaW5jbHVkZV9yZWNvbW1lbmRhdGlvbnNfc2lkZSddOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICRub1JlY29tbWVuZFtdID0gJ3NpZGUnOwogICAgICAgIH0KCiAgICAgICAgLy8gRGlzcGxheSBvciBoaWRlIG5vIHJlc3VsdHMgcmVjb21tZW5kYXRpb25zLCBiYXNlZCBvbgogICAgICAgIC8vIGluY2x1ZGVfcmVjb21tZW5kYXRpb25zX25vcmVzdWx0cyBzZXR0aW5nICh0byBkaXNwbGF5IHRoZW0gaW4gdGhlIGJlbnRvIGJveCkgb3IKICAgICAgICAvLyBpbmNsdWRlX3JlY29tbWVuZGF0aW9uc19ub3Jlc3VsdHNfc2lkZSBzZXR0aW5nICh0byBkaXNwbGF5IHRoZW0gaW4gdGhlIHNpZGViYXIpLgogICAgICAgICRpbmNsdWRlUmVjb21tZW5kTm9SZXN1bHRzU2V0dGluZyA9ICRzZXR0aW5nc1snaW5jbHVkZV9yZWNvbW1lbmRhdGlvbnNfbm9yZXN1bHRzJ10gPz8gZmFsc2U7CiAgICAgICAgaWYgKGlzX2FycmF5KCRpbmNsdWRlUmVjb21tZW5kTm9SZXN1bHRzU2V0dGluZykpIHsKICAgICAgICAgICAgJHJlY29tbWVuZE92ZXJyaWRlWydub3Jlc3VsdHMnXSA9ICRzZXR0aW5nc1snaW5jbHVkZV9yZWNvbW1lbmRhdGlvbnNfbm9yZXN1bHRzJ107CiAgICAgICAgfSBlbHNlaWYgKCEkaW5jbHVkZVJlY29tbWVuZE5vUmVzdWx0c1NldHRpbmcpIHsKICAgICAgICAgICAgJG5vUmVjb21tZW5kW10gPSAnbm9yZXN1bHRzJzsKICAgICAgICB9CgogICAgICAgIGlmIChpc19hcnJheSgkc2V0dGluZ3NbJ2luY2x1ZGVfcmVjb21tZW5kYXRpb25zX25vcmVzdWx0c19zaWRlJ10gPz8gZmFsc2UpKSB7CiAgICAgICAgICAgICRyZWNvbW1lbmRPdmVycmlkZVsnbm9yZXN1bHRzX3NpZGUnXSA9ICRzZXR0aW5nc1snaW5jbHVkZV9yZWNvbW1lbmRhdGlvbnNfbm9yZXN1bHRzX3NpZGUnXTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAkbm9SZWNvbW1lbmRbXSA9ICdub3Jlc3VsdHNfc2lkZSc7CiAgICAgICAgfQoKICAgICAgICAkcXVlcnktPnJlY29tbWVuZE92ZXJyaWRlID0gJHJlY29tbWVuZE92ZXJyaWRlOwogICAgICAgICRxdWVyeS0+bm9SZWNvbW1lbmQgPSBjb3VudCgkbm9SZWNvbW1lbmQpID8gaW1wbG9kZSgnLCcsICRub1JlY29tbWVuZCkgOiBmYWxzZTsKICAgIH0KfQoiO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAbmFtZXNwYWNlcyI7YToxOntzOjE4OiJcVnVGaW5kXENvbnRyb2xsZXIiO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czoxODoiXFZ1RmluZFxDb250cm9sbGVyIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTA6IkNvbnRyb2xsZXIiO319czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBpbmNsdWRlcyI7YTowOnt9czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBmdW5jdGlvbnMiO2E6MDp7fXM6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAY29uc3RhbnRzIjthOjA6e31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGNsYXNzZXMiO2E6MTp7czozNzoiXFZ1RmluZFxDb250cm9sbGVyXENvbWJpbmVkQ29udHJvbGxlciI7TzozNToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18iOjEzOntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czozNzoiXFZ1RmluZFxDb250cm9sbGVyXENvbWJpbmVkQ29udHJvbGxlciI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjE4OiJDb21iaW5lZENvbnRyb2xsZXIiO31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjYwOiJSZWRpcmVjdHMgdGhlIHVzZXIgdG8gdGhlIGFwcHJvcHJpYXRlIGRlZmF1bHQgVnVGaW5kIGFjdGlvbi4iO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6Njp7aTowO086NDY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEdlbmVyaWMiOjI6e3M6NzoiACoAbmFtZSI7czo4OiJjYXRlZ29yeSI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6NjoiVnVGaW5kIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19aToxO086NDY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEdlbmVyaWMiOjI6e3M6NzoiACoAbmFtZSI7czo3OiJwYWNrYWdlIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czoxMDoiQ29udHJvbGxlciI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fWk6MjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xBdXRob3IiOjQ6e3M6NzoiACoAbmFtZSI7czo2OiJhdXRob3IiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtOO3M6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xBdXRob3IAYXV0aG9yTmFtZSI7czoxMToiRGVtaWFuIEthdHoiO3M6NTg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xBdXRob3IAYXV0aG9yRW1haWwiO3M6MjU6ImRlbWlhbi5rYXR6QHZpbGxhbm92YS5lZHUiO31pOjM7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcQXV0aG9yIjo0OntzOjc6IgAqAG5hbWUiO3M6NjoiYXV0aG9yIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7TjtzOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcQXV0aG9yAGF1dGhvck5hbWUiO3M6MTE6IkVyZSBNYWlqYWxhIjtzOjU4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcQXV0aG9yAGF1dGhvckVtYWlsIjtzOjIzOiJlcmUubWFpamFsYUBoZWxzaW5raS5maSI7fWk6NDtPOjQ2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xHZW5lcmljIjoyOntzOjc6IgAqAG5hbWUiO3M6NzoibGljZW5zZSI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6Njk6Imh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9ncGwtMi4wLnBocCBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fWk6NTtPOjQzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xMaW5rIjozOntzOjc6IgAqAG5hbWUiO3M6NDoibGluayI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6OToiTWFpbiBTaXRlIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcTGluawBsaW5rIjtzOjE4OiJodHRwczovL3Z1ZmluZC5vcmciO319czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29udGV4dCI6Mjp7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb250ZXh0AG5hbWVzcGFjZSI7czoxNzoiVnVGaW5kXENvbnRyb2xsZXIiO3M6NTY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29udGV4dABuYW1lc3BhY2VBbGlhc2VzIjthOjI6e3M6MjM6IlNlcnZpY2VMb2NhdG9ySW50ZXJmYWNlIjtzOjQ2OiJMYW1pbmFzXFNlcnZpY2VNYW5hZ2VyXFNlcnZpY2VMb2NhdG9ySW50ZXJmYWNlIjtzOjEyOiJTZWFyY2hSdW5uZXIiO3M6MjY6IlZ1RmluZFxTZWFyY2hcU2VhcmNoUnVubmVyIjt9fXM6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGFic3RyYWN0IjtiOjA7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGZpbmFsIjtiOjA7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAHBhcmVudCI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjMzOiJcVnVGaW5kXENvbnRyb2xsZXJcQWJzdHJhY3RTZWFyY2giO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxNDoiQWJzdHJhY3RTZWFyY2giO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AaW1wbGVtZW50cyI7YTowOnt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGNvbnN0YW50cyI7YTowOnt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAHByb3BlcnRpZXMiO2E6MDp7fXM6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBtZXRob2RzIjthOjY6e3M6NTI6IlxWdUZpbmRcQ29udHJvbGxlclxDb21iaW5lZENvbnRyb2xsZXI6Ol9fY29uc3RydWN0KCkiO086MzU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kIjoxMjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czoxMToiQ29uc3RydWN0b3IiO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6MTp7aTowO086NDQ6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtIjo2OntzOjc6IgAqAG5hbWUiO3M6NToicGFyYW0iO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjE1OiJTZXJ2aWNlIGxvY2F0b3IiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6NzoiACoAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8iOjE6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XwBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjQ3OiJcTGFtaW5hc1xTZXJ2aWNlTWFuYWdlclxTZXJ2aWNlTG9jYXRvckludGVyZmFjZSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjIzOiJTZXJ2aWNlTG9jYXRvckludGVyZmFjZSI7fX1zOjU4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0AdmFyaWFibGVOYW1lIjtzOjI6InNtIjtzOjU2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0AaXNWYXJpYWRpYyI7YjowO3M6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQYXJhbQBpc1JlZmVyZW5jZSI7YjowO319czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtyOjk4O3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NTI6IlxWdUZpbmRcQ29udHJvbGxlclxDb21iaW5lZENvbnRyb2xsZXI6Ol9fY29uc3RydWN0KCkiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxMToiX19jb25zdHJ1Y3QiO31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYWJzdHJhY3QiO2I6MDtzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZmluYWwiO2I6MDtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAc3RhdGljIjtiOjA7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjY6InB1YmxpYyI7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhcmd1bWVudHMiO2E6MTp7aTowO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQiOjU6e3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AG5hbWUiO3M6Mjoic20iO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfIjoxOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8AZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo0NzoiXExhbWluYXNcU2VydmljZU1hbmFnZXJcU2VydmljZUxvY2F0b3JJbnRlcmZhY2UiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoyMzoiU2VydmljZUxvY2F0b3JJbnRlcmZhY2UiO319czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAZGVmYXVsdCI7TjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABieVJlZmVyZW5jZSI7YjowO3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGlzVmFyaWFkaWMiO2I6MDt9fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6NjE7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGVuZExvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo2NTtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAcmV0dXJuVHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fXM6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABoYXNSZXR1cm5CeVJlZmVyZW5jZSI7YjowO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABtZXRhZGF0YSI7YTowOnt9fXM6NTE6IlxWdUZpbmRcQ29udHJvbGxlclxDb21iaW5lZENvbnRyb2xsZXI6OmhvbWVBY3Rpb24oKSI7TzozNToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QiOjEyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjExOiJIb21lIGFjdGlvbiI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YToxOntpOjA7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUmV0dXJuXyI6Mzp7czo3OiIAKgBuYW1lIjtzOjY6InJldHVybiI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjc6IgAqAHR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xNaXhlZF8iOjA6e319fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7cjo5ODtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjUxOiJcVnVGaW5kXENvbnRyb2xsZXJcQ29tYmluZWRDb250cm9sbGVyOjpob21lQWN0aW9uKCkiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxMDoiaG9tZUFjdGlvbiI7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhYnN0cmFjdCI7YjowO3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmaW5hbCI7YjowO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABzdGF0aWMiO2I6MDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6NjoicHVibGljIjt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFyZ3VtZW50cyI7YTowOnt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo3MjtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZW5kTG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjc5O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAByZXR1cm5UeXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTWl4ZWRfIjowOnt9czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGhhc1JldHVybkJ5UmVmZXJlbmNlIjtiOjA7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAG1ldGFkYXRhIjthOjA6e319czo1MzoiXFZ1RmluZFxDb250cm9sbGVyXENvbWJpbmVkQ29udHJvbGxlcjo6cmVzdWx0QWN0aW9uKCkiO086MzU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kIjoxMjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czozNjoiU2luZ2xlIHJlc3VsdCBhY3Rpb24gKHVzZWQgZm9yIEFKQVgpIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjE6e2k6MDtPOjQ2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xSZXR1cm5fIjozOntzOjc6IgAqAG5hbWUiO3M6NjoicmV0dXJuIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6NzoiACoAdHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fX19czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtyOjk4O3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NTM6IlxWdUZpbmRcQ29udHJvbGxlclxDb21iaW5lZENvbnRyb2xsZXI6OnJlc3VsdEFjdGlvbigpIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTI6InJlc3VsdEFjdGlvbiI7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhYnN0cmFjdCI7YjowO3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmaW5hbCI7YjowO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABzdGF0aWMiO2I6MDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6NjoicHVibGljIjt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFyZ3VtZW50cyI7YTowOnt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo4NjtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZW5kTG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjEzODtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAcmV0dXJuVHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fXM6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABoYXNSZXR1cm5CeVJlZmVyZW5jZSI7YjowO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABtZXRhZGF0YSI7YTowOnt9fXM6NTQ6IlxWdUZpbmRcQ29udHJvbGxlclxDb21iaW5lZENvbnRyb2xsZXI6OnJlc3VsdHNBY3Rpb24oKSI7TzozNToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QiOjEyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjE0OiJSZXN1bHRzIGFjdGlvbiI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YToxOntpOjA7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUmV0dXJuXyI6Mzp7czo3OiIAKgBuYW1lIjtzOjY6InJldHVybiI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjc6IgAqAHR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xNaXhlZF8iOjA6e319fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7cjo5ODtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjU0OiJcVnVGaW5kXENvbnRyb2xsZXJcQ29tYmluZWRDb250cm9sbGVyOjpyZXN1bHRzQWN0aW9uKCkiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxMzoicmVzdWx0c0FjdGlvbiI7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhYnN0cmFjdCI7YjowO3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmaW5hbCI7YjowO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABzdGF0aWMiO2I6MDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6NjoicHVibGljIjt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFyZ3VtZW50cyI7YTowOnt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToxNDU7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGVuZExvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToyNDA7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHJldHVyblR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xNaXhlZF8iOjA6e31zOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAaGFzUmV0dXJuQnlSZWZlcmVuY2UiO2I6MDtzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbWV0YWRhdGEiO2E6MDp7fX1zOjU2OiJcVnVGaW5kXENvbnRyb2xsZXJcQ29tYmluZWRDb250cm9sbGVyOjpzZWFyY2hib3hBY3Rpb24oKSI7TzozNToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QiOjEyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjQyOiJBY3Rpb24gdG8gcHJvY2VzcyB0aGUgY29tYmluZWQgc2VhcmNoIGJveC4iO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6MTp7aTowO086NDY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFJldHVybl8iOjM6e3M6NzoiACoAbmFtZSI7czo2OiJyZXR1cm4iO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czo3OiIAKgB0eXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTWl4ZWRfIjowOnt9fX1zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO3I6OTg7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo1NjoiXFZ1RmluZFxDb250cm9sbGVyXENvbWJpbmVkQ29udHJvbGxlcjo6c2VhcmNoYm94QWN0aW9uKCkiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxNToic2VhcmNoYm94QWN0aW9uIjt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFic3RyYWN0IjtiOjA7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZpbmFsIjtiOjA7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHN0YXRpYyI7YjowO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo2OiJwdWJsaWMiO31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYXJndW1lbnRzIjthOjA6e31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjI0NztzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZW5kTG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjI4ODtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAcmV0dXJuVHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fXM6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABoYXNSZXR1cm5CeVJlZmVyZW5jZSI7YjowO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABtZXRhZGF0YSI7YTowOnt9fXM6NjM6IlxWdUZpbmRcQ29udHJvbGxlclxDb21iaW5lZENvbnRyb2xsZXI6OmFkanVzdFF1ZXJ5Rm9yU2V0dGluZ3MoKSI7TzozNToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QiOjEyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjU3OiJBZGp1c3QgdGhlIHF1ZXJ5IGNvbnRleHQgdG8gcmVmbGVjdCB0aGUgY3VycmVudCBzZXR0aW5ncy4iO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6Mzp7aTowO086NDQ6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtIjo2OntzOjc6IgAqAG5hbWUiO3M6NToicGFyYW0iO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjg6IlNldHRpbmdzIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjc6IgAqAHR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBcnJheV8iOjM6e3M6MTI6IgAqAHZhbHVlVHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fXM6MTA6IgAqAGtleVR5cGUiO047czoxNzoiACoAZGVmYXVsdEtleVR5cGUiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb21wb3VuZCI6Mjp7czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0eXBlcyI7YToyOntpOjA7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31pOjE7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEludGVnZXIiOjA6e319czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0b2tlbiI7czoxOiJ8Ijt9fXM6NTg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQYXJhbQB2YXJpYWJsZU5hbWUiO3M6ODoic2V0dGluZ3MiO3M6NTY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQYXJhbQBpc1ZhcmlhZGljIjtiOjA7czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtAGlzUmVmZXJlbmNlIjtiOjA7fWk6MTtPOjQ0OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQYXJhbSI6Njp7czo3OiIAKgBuYW1lIjtzOjU6InBhcmFtIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czozMjoiT3ZlcnJpZGUgZm9yIHNlYXJjaCBoYW5kbGVyIG5hbWUiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6NzoiACoAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31zOjU4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0AdmFyaWFibGVOYW1lIjtzOjEwOiJzZWFyY2hUeXBlIjtzOjU2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0AaXNWYXJpYWRpYyI7YjowO3M6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQYXJhbQBpc1JlZmVyZW5jZSI7YjowO31pOjI7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUmV0dXJuXyI6Mzp7czo3OiIAKgBuYW1lIjtzOjY6InJldHVybiI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjc6IgAqAHR5cGUiO086MzY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xWb2lkXyI6MDp7fX19czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtyOjk4O3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NjM6IlxWdUZpbmRcQ29udHJvbGxlclxDb21iaW5lZENvbnRyb2xsZXI6OmFkanVzdFF1ZXJ5Rm9yU2V0dGluZ3MoKSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjIyOiJhZGp1c3RRdWVyeUZvclNldHRpbmdzIjt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFic3RyYWN0IjtiOjA7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZpbmFsIjtiOjA7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHN0YXRpYyI7YjowO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo5OiJwcm90ZWN0ZWQiO31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYXJndW1lbnRzIjthOjI6e2k6MDtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50Ijo1OntzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABuYW1lIjtzOjg6InNldHRpbmdzIjtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudAB0eXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTWl4ZWRfIjowOnt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAZGVmYXVsdCI7TjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABieVJlZmVyZW5jZSI7YjowO3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGlzVmFyaWFkaWMiO2I6MDt9aToxO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQiOjU6e3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AG5hbWUiO3M6MTA6InNlYXJjaFR5cGUiO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AHR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xNaXhlZF8iOjA6e31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABkZWZhdWx0IjtzOjQ6Im51bGwiO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGJ5UmVmZXJlbmNlIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAaXNWYXJpYWRpYyI7YjowO319czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToyOTg7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGVuZExvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTozNjE7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHJldHVyblR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xNaXhlZF8iOjA6e31zOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAaGFzUmV0dXJuQnlSZWZlcmVuY2UiO2I6MDtzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbWV0YWRhdGEiO2E6MDp7fX19czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAHVzZWRUcmFpdHMiO2E6MTp7czozNjoiXFZ1RmluZFxDb250cm9sbGVyXEFqYXhSZXNwb25zZVRyYWl0IjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6MzY6IlxWdUZpbmRcQ29udHJvbGxlclxBamF4UmVzcG9uc2VUcmFpdCI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjE3OiJBamF4UmVzcG9uc2VUcmFpdCI7fX1zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjUyO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBlbmRMb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MzYyO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBtZXRhZGF0YSI7YTowOnt9fX1zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGludGVyZmFjZXMiO2E6MDp7fXM6NDE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAdHJhaXRzIjthOjA6e31zOjQwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGVudW1zIjthOjA6e31zOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAG1ldGFkYXRhIjthOjA6e319";