1778692619
441d63ebbc39eba359c9061ece8482bd-phpdoc%3Ac1ee990fec980d960052a6cc544d9c41-7ab972d5d9e0192cece40ed6d99a0e1e
s:29588:"TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlIjoxNDp7czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBuYW1lIjtzOjI5OiJFeHRlcm5hbFJlZmVyZW5jZVJlc29sdmVyLnBocCI7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBuYW1lc3BhY2VzIjthOjE6e3M6NDA6IlxwaHBEb2N1bWVudG9yXEd1aWRlc1xSZWZlcmVuY2VSZXNvbHZlcnMiO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo0MDoiXHBocERvY3VtZW50b3JcR3VpZGVzXFJlZmVyZW5jZVJlc29sdmVycyI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjE4OiJSZWZlcmVuY2VSZXNvbHZlcnMiO319czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBpbmNsdWRlcyI7YTowOnt9czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBmdW5jdGlvbnMiO2E6MDp7fXM6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAY29uc3RhbnRzIjthOjA6e31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGNsYXNzZXMiO2E6MTp7czo2NjoiXHBocERvY3VtZW50b3JcR3VpZGVzXFJlZmVyZW5jZVJlc29sdmVyc1xFeHRlcm5hbFJlZmVyZW5jZVJlc29sdmVyIjtPOjM1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXyI6MTU6e3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBpbXBsZW1lbnRzIjthOjE6e3M6NTg6IlxwaHBEb2N1bWVudG9yXEd1aWRlc1xSZWZlcmVuY2VSZXNvbHZlcnNcUmVmZXJlbmNlUmVzb2x2ZXIiO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo1ODoiXHBocERvY3VtZW50b3JcR3VpZGVzXFJlZmVyZW5jZVJlc29sdmVyc1xSZWZlcmVuY2VSZXNvbHZlciI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjE3OiJSZWZlcmVuY2VSZXNvbHZlciI7fX1zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AY29uc3RhbnRzIjthOjI6e3M6NzY6IlxwaHBEb2N1bWVudG9yXEd1aWRlc1xSZWZlcmVuY2VSZXNvbHZlcnNcRXh0ZXJuYWxSZWZlcmVuY2VSZXNvbHZlcjo6UFJJT1JJVFkiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ29uc3RhbnQiOjk6e3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENvbnN0YW50AGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTozNztzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDb25zdGFudABlbmRMb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6Mzc7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ29uc3RhbnQAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6NjoicHVibGljIjt9czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ29uc3RhbnQAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo3NjoiXHBocERvY3VtZW50b3JcR3VpZGVzXFJlZmVyZW5jZVJlc29sdmVyc1xFeHRlcm5hbFJlZmVyZW5jZVJlc29sdmVyOjpQUklPUklUWSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjg6IlBSSU9SSVRZIjt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ29uc3RhbnQAZG9jQmxvY2siO047czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ29uc3RhbnQAdmFsdWUiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRXhwcmVzc2lvbiI6Mjp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRXhwcmVzc2lvbgBleHByZXNzaW9uIjtzOjQ6Ii0xMDAiO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEV4cHJlc3Npb24AcGFydHMiO2E6MDp7fX1zOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDb25zdGFudABmaW5hbCI7YjoxO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENvbnN0YW50AG1ldGFkYXRhIjthOjA6e31zOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDb25zdGFudABhdHRyaWJ1dGVzIjthOjA6e319czo4NToiXHBocERvY3VtZW50b3JcR3VpZGVzXFJlZmVyZW5jZVJlc29sdmVyc1xFeHRlcm5hbFJlZmVyZW5jZVJlc29sdmVyOjpTVVBQT1JURURfU0NIRU1BUyI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDb25zdGFudCI6OTp7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ29uc3RhbnQAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjM4O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENvbnN0YW50AGVuZExvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTozODtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDb25zdGFudAB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo2OiJwdWJsaWMiO31zOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDb25zdGFudABmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjg1OiJccGhwRG9jdW1lbnRvclxHdWlkZXNcUmVmZXJlbmNlUmVzb2x2ZXJzXEV4dGVybmFsUmVmZXJlbmNlUmVzb2x2ZXI6OlNVUFBPUlRFRF9TQ0hFTUFTIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTc6IlNVUFBPUlRFRF9TQ0hFTUFTIjt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ29uc3RhbnQAZG9jQmxvY2siO047czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ29uc3RhbnQAdmFsdWUiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRXhwcmVzc2lvbiI6Mjp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRXhwcmVzc2lvbgBleHByZXNzaW9uIjtzOjMyNTM6IicoPzphYWF8YWFhc3xhYm91dHxhY2FwfGFjY3R8YWNkfGFjcnxhZGl1bXh0cmF8YWR0fGFmcHxhZnN8YWltfGFtc3N8YW5kcm9pZHxhcHBkYXRhfGFwdHxhcnxhcmt8YXR8YXR0YWNobWVudHxhd3xiYXJpb258YmJ8YmVzaGFyZXxiaXRjb2lufGJpdGNvaW5jYXNofGJsb2J8Ym9sb3xicm93c2VyZXh0fGNhYmFsfGNhbGN1bGF0b3J8Y2FsbHRvfGNhcHxjYXN0fGNhc3RzfGNocm9tZXxjaHJvbWUtZXh0ZW5zaW9ufGNpZHxjb2FwfGNvYXArdGNwfGNvYXArd3N8Y29hcHN8Y29hcHMrdGNwfGNvYXBzK3dzfGNvbS1ldmVudGJyaXRlLWF0dGVuZGVlfGNvbnRlbnR8Y29udGVudC10eXBlfGNyaWR8Y3N0cnxjdnN8ZGFifGRhdHxkYXRhfGRhdnxkaHR0cHxkaWFzcG9yYXxkaWN0fGRpZHxkaXN8ZGxuYS1wbGF5Y29udGFpbmVyfGRsbmEtcGxheXNpbmdsZXxkbnN8ZG50cHxkb2l8ZHBwfGRybXxkcm9wfGR0bWl8ZHRufGR2Ynxkdnh8ZHdlYnxlZDJrfGVpZHxlbHNpfGVtYmVkZGVkfGVuc3xldGhlcmV1bXxleGFtcGxlfGZhY2V0aW1lfGZheHxmZWVkfGZlZWRyZWFkeXxmaWRvfGZpbGV8ZmlsZXN5c3RlbXxmaW5nZXJ8Zmlyc3QtcnVuLXBlbi1leHBlcmllbmNlfGZpc2h8Zm18ZnRwfGZ1Y2hzaWEtcGtnfGdlb3xnZ3xnaXR8Z2l0b2lkfGdpem1vcHJvamVjdHxnb3xnb3BoZXJ8Z3JhcGh8Z3JkfGd0YWxrfGgzMjN8aGFtfGhjYXB8aGNwfGh0dHB8aHR0cHN8aHh4cHxoeHhwc3xoeWRyYXpvbmV8aHlwZXJ8aWF4fGljYXB8aWNvbnxpbXxpbWFwfGluZm98aW90ZGlzY298aXBmc3xpcG58aXBuc3xpcHB8aXBwc3xpcmN8aXJjNnxpcmNzfGlyaXN8aXJpc1wuYmVlcHxpcmlzXC5sd3p8aXJpc1wueHBjfGlyaXNcLnhwY3N8aXNvc3RvcmV8aXRtc3xqYWJiZXJ8amFyfGptc3xrZXlwYXJjfGxhc3RmbXxsYnJ5fGxkYXB8bGRhcHN8bGVhcHRvZnJvZ2Fuc3xsb3Jhd2FufGxwYXxsdmx0fG1hZ25ldHxtYWlsc2VydmVyfG1haWx0b3xtYXBzfG1hcmtldHxtYXRyaXh8bWVzc2FnZXxtaWNyb3NvZnRcLndpbmRvd3NcLmNhbWVyYXxtaWNyb3NvZnRcLndpbmRvd3NcLmNhbWVyYVwubXVsdGlwaWNrZXJ8bWljcm9zb2Z0XC53aW5kb3dzXC5jYW1lcmFcLnBpY2tlcnxtaWR8bW1zfG1vZGVtfG1vbmdvZGJ8bW96fG1zLWFjY2Vzc3xtcy1hcHBpbnN0YWxsZXJ8bXMtYnJvd3Nlci1leHRlbnNpb258bXMtY2FsY3VsYXRvcnxtcy1kcml2ZS10b3xtcy1lbnJvbGxtZW50fG1zLWV4Y2VsfG1zLWV5ZWNvbnRyb2xzcGVlY2h8bXMtZ2FtZWJhcnNlcnZpY2VzfG1zLWdhbWluZ292ZXJsYXl8bXMtZ2V0b2ZmaWNlfG1zLWhlbHB8bXMtaW5mb3BhdGh8bXMtaW5wdXRhcHB8bXMtbGF1bmNocmVtb3RlZGVza3RvcHxtcy1sb2Nrc2NyZWVuY29tcG9uZW50LWNvbmZpZ3xtcy1tZWRpYS1zdHJlYW0taWR8bXMtbWVldG5vd3xtcy1taXhlZHJlYWxpdHljYXB0dXJlfG1zLW1vYmlsZXBsYW5zfG1zLW5ld3NhbmRpbnRlcmVzdHN8bXMtb2ZmaWNlYXBwfG1zLXBlb3BsZXxtcy1wcm9qZWN0fG1zLXBvd2VycG9pbnR8bXMtcHVibGlzaGVyfG1zLXJlbW90ZWRlc2t0b3B8bXMtcmVtb3RlZGVza3RvcC1sYXVuY2h8bXMtcmVzdG9yZXRhYmNvbXBhbmlvbnxtcy1zY3JlZW5jbGlwfG1zLXNjcmVlbnNrZXRjaHxtcy1zZWFyY2h8bXMtc2VhcmNoLXJlcGFpcnxtcy1zZWNvbmRhcnktc2NyZWVuLWNvbnRyb2xsZXJ8bXMtc2Vjb25kYXJ5LXNjcmVlbi1zZXR1cHxtcy1zZXR0aW5nc3xtcy1zZXR0aW5ncy1haXJwbGFuZW1vZGV8bXMtc2V0dGluZ3MtYmx1ZXRvb3RofG1zLXNldHRpbmdzLWNhbWVyYXxtcy1zZXR0aW5ncy1jZWxsdWxhcnxtcy1zZXR0aW5ncy1jbG91ZHN0b3JhZ2V8bXMtc2V0dGluZ3MtY29ubmVjdGFibGVkZXZpY2VzfG1zLXNldHRpbmdzLWRpc3BsYXlzLXRvcG9sb2d5fG1zLXNldHRpbmdzLWVtYWlsYW5kYWNjb3VudHN8bXMtc2V0dGluZ3MtbGFuZ3VhZ2V8bXMtc2V0dGluZ3MtbG9jYXRpb258bXMtc2V0dGluZ3MtbG9ja3xtcy1zZXR0aW5ncy1uZmN0cmFuc2FjdGlvbnN8bXMtc2V0dGluZ3Mtbm90aWZpY2F0aW9uc3xtcy1zZXR0aW5ncy1wb3dlcnxtcy1zZXR0aW5ncy1wcml2YWN5fG1zLXNldHRpbmdzLXByb3hpbWl0eXxtcy1zZXR0aW5ncy1zY3JlZW5yb3RhdGlvbnxtcy1zZXR0aW5ncy13aWZpfG1zLXNldHRpbmdzLXdvcmtwbGFjZXxtcy1zcGR8bXMtc3RpY2tlcnN8bXMtc3R0b3ZlcmxheXxtcy10cmFuc2l0LXRvfG1zLXVzZXJhY3Rpdml0eXNldHxtcy12aXJ0dWFsdG91Y2hwYWR8bXMtdmlzaW98bXMtd2Fsay10b3xtcy13aGl0ZWJvYXJkfG1zLXdoaXRlYm9hcmQtY21kfG1zLXdvcmR8bXNuaW18bXNycHxtc3Jwc3xtc3N8bXR8bXRxcHxtdW1ibGV8bXVwZGF0ZXxtdm58bmV3c3xuZnN8bml8bmlofG5udHB8bm90ZXN8bnVtfG9jZnxvaWR8b25lbm90ZXxvbmVub3RlLWNtZHxvcGFxdWVsb2NrdG9rZW58b3BlbnBncDRmcHJ8b3RwYXV0aHxwMXxwYWNrfHBhbG18cGFwYXJhenppfHBheW1lbnR8cGF5dG98cGtjczExfHBsYXRmb3JtfHBvcHxwcmVzfHByb3NwZXJvfHByb3h5fHB3aWR8cHN5Y3xwdHRwfHFifHF1ZXJ5fHF1aWMtdHJhbnNwb3J0fHJlZGlzfHJlZGlzc3xyZWxvYWR8cmVzfHJlc291cmNlfHJtaXxyc3luY3xydG1mcHxydG1wfHJ0c3B8cnRzcHN8cnRzcHV8c2FyaWZ8c2Vjb25kbGlmZXxzZWNyZXQtdG9rZW58c2VydmljZXxzZXNzaW9ufHNmdHB8c2dufHNoY3xzaHR0cCAoT0JTT0xFVEUpfHNpZXZlfHNpbXBsZWxlZGdlcnxzaW1wbGV4fHNpcHxzaXBzfHNreXBlfHNtYnxzbXB8c21zfHNtdHB8c25ld3N8c25tcHxzb2FwXC5iZWVwfHNvYXBcLmJlZXBzfHNvbGRhdHxzcGlmZmV8c3BvdGlmeXxzc2J8c3NofHN0YXJrbmV0fHN0ZWFtfHN0dW58c3R1bnN8c3VibWl0fHN2bnxzd2h8c3dpZHxzd2lkcGF0aHx0YWd8dGFsZXJ8dGVhbXNwZWFrfHRlbHx0ZWxpYWVpZHx0ZWxuZXR8dGZ0cHx0aGluZ3N8dGhpc21lc3NhZ2V8dGlwfHRuMzI3MHx0b29sfHR1cm58dHVybnN8dHZ8dWRwfHVucmVhbHx1cHR8dXJufHV0MjAwNHx1dWlkLWluLXBhY2thZ2V8di1ldmVudHx2ZW1taXx2ZW50cmlsb3x2ZXN8dmlkZW90ZXh8dm5jfHZpZXctc291cmNlfHZzY29kZXx2c2NvZGUtaW5zaWRlcnN8dnNsc3x3M3x3YWlzfHdlYjN8d2NyfHdlYmNhbHx3ZWIrYXB8d2lmaXx3cGlkfHdzfHdzc3x3dGFpfHd5Y2l3eWd8eGNvbnx4Y29uLXVzZXJpZHx4ZmlyZXx4bWxycGNcLmJlZXB8eG1scnBjXC5iZWVwc3x4bXBwfHhyaXx5bXNncnx6MzlcLjUwfHozOVwuNTByfHozOVwuNTBzKSciO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEV4cHJlc3Npb24AcGFydHMiO2E6MDp7fX1zOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDb25zdGFudABmaW5hbCI7YjoxO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENvbnN0YW50AG1ldGFkYXRhIjthOjA6e31zOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDb25zdGFudABhdHRyaWJ1dGVzIjthOjA6e319fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBwcm9wZXJ0aWVzIjthOjA6e31zOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AbWV0aG9kcyI7YToyOntzOjc3OiJccGhwRG9jdW1lbnRvclxHdWlkZXNcUmVmZXJlbmNlUmVzb2x2ZXJzXEV4dGVybmFsUmVmZXJlbmNlUmVzb2x2ZXI6OnJlc29sdmUoKSI7TzozNToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QiOjEzOntzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYXJndW1lbnRzIjthOjM6e2k6MDtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50Ijo1OntzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudAB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XyI6MTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NDk6IlxwaHBEb2N1bWVudG9yXEd1aWRlc1xOb2Rlc1xJbmxpbmVcTGlua0lubGluZU5vZGUiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxNDoiTGlua0lubGluZU5vZGUiO319czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAbmFtZSI7czo0OiJub2RlIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABkZWZhdWx0IjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGJ5UmVmZXJlbmNlIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAaXNWYXJpYWRpYyI7YjowO31pOjE7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudCI6NTp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8iOjE6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XwBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjM1OiJccGhwRG9jdW1lbnRvclxHdWlkZXNcUmVuZGVyQ29udGV4dCI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjEzOiJSZW5kZXJDb250ZXh0Ijt9fXM6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AG5hbWUiO3M6MTM6InJlbmRlckNvbnRleHQiO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGRlZmF1bHQiO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAYnlSZWZlcmVuY2UiO2I6MDtzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABpc1ZhcmlhZGljIjtiOjA7fWk6MjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50Ijo1OntzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudAB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XyI6MTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NDk6IlxwaHBEb2N1bWVudG9yXEd1aWRlc1xSZWZlcmVuY2VSZXNvbHZlcnNcTWVzc2FnZXMiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czo4OiJNZXNzYWdlcyI7fX1zOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABuYW1lIjtzOjg6Im1lc3NhZ2VzIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABkZWZhdWx0IjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGJ5UmVmZXJlbmNlIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAaXNWYXJpYWRpYyI7YjowO319czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo0MDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTo0MjAyO31zOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZW5kTG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjYyO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjQ5NDc7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAByZXR1cm5UeXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQm9vbGVhbiI6MDp7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjc3OiJccGhwRG9jdW1lbnRvclxHdWlkZXNcUmVmZXJlbmNlUmVzb2x2ZXJzXEV4dGVybmFsUmVmZXJlbmNlUmVzb2x2ZXI6OnJlc29sdmUoKSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjc6InJlc29sdmUiO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6NjoicHVibGljIjt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGRvY0Jsb2NrIjtOO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhYnN0cmFjdCI7YjowO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABzdGF0aWMiO2I6MDtzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZmluYWwiO2I6MDtzOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAaGFzUmV0dXJuQnlSZWZlcmVuY2UiO2I6MDtzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbWV0YWRhdGEiO2E6MDp7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhdHRyaWJ1dGVzIjthOjA6e319czo4MToiXHBocERvY3VtZW50b3JcR3VpZGVzXFJlZmVyZW5jZVJlc29sdmVyc1xFeHRlcm5hbFJlZmVyZW5jZVJlc29sdmVyOjpnZXRQcmlvcml0eSgpIjtPOjM1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZCI6MTM6e3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhcmd1bWVudHMiO2E6MDp7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6NjQ7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6NDk1NDt9czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGVuZExvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo2NztzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTo1MDM3O31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAcmV0dXJuVHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEludGVnZXIiOjA6e31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo4MToiXHBocERvY3VtZW50b3JcR3VpZGVzXFJlZmVyZW5jZVJlc29sdmVyc1xFeHRlcm5hbFJlZmVyZW5jZVJlc29sdmVyOjpnZXRQcmlvcml0eSgpIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTE6ImdldFByaW9yaXR5Ijt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjY6InB1YmxpYyI7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABkb2NCbG9jayI7TjtzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYWJzdHJhY3QiO2I6MDtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAc3RhdGljIjtiOjE7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZpbmFsIjtiOjA7czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGhhc1JldHVybkJ5UmVmZXJlbmNlIjtiOjA7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAG1ldGFkYXRhIjthOjA6e31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYXR0cmlidXRlcyI7YTowOnt9fX1zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AdXNlZFRyYWl0cyI7YTowOnt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTozNTtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AZW5kTG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjY4O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjY2OiJccGhwRG9jdW1lbnRvclxHdWlkZXNcUmVmZXJlbmNlUmVzb2x2ZXJzXEV4dGVybmFsUmVmZXJlbmNlUmVzb2x2ZXIiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoyNToiRXh0ZXJuYWxSZWZlcmVuY2VSZXNvbHZlciI7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6NTA6IlJlc29sdmVzIHJlZmVyZW5jZXMgd2l0aCBhbiBlbWJlZGRlZCBleHRlcm5hbCBVUkwuIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjkwOiJBIGxpbmsgaXMgZXh0ZXJuYWwgaWYgaXQgc3RhcnRzIHdpdGggYSBzY2hlbWUgZGVmaW5lZCBpbiB0aGUgSUFOQSBSZWdpc3RyeQpvZiBVUkkgU2NoZW1lcy4iO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YToxOntpOjA7Tzo0MjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcU2VlIjozOntzOjc6IgAqAG5hbWUiO3M6Mzoic2VlIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7TjtzOjk6IgAqAHJlZmVycyI7Tzo1MjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUmVmZXJlbmNlXFVybCI6MTp7czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFJlZmVyZW5jZVxVcmwAdXJpIjtzOjYyOiJodHRwczovL3d3dy5pYW5hLm9yZy9hc3NpZ25tZW50cy91cmktc2NoZW1lcy91cmktc2NoZW1lcy54aHRtbCI7fX19czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29udGV4dCI6Mjp7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb250ZXh0AG5hbWVzcGFjZSI7czozOToicGhwRG9jdW1lbnRvclxHdWlkZXNcUmVmZXJlbmNlUmVzb2x2ZXJzIjtzOjU2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbnRleHQAbmFtZXNwYWNlQWxpYXNlcyI7YToyOntzOjE0OiJMaW5rSW5saW5lTm9kZSI7czo0ODoicGhwRG9jdW1lbnRvclxHdWlkZXNcTm9kZXNcSW5saW5lXExpbmtJbmxpbmVOb2RlIjtzOjEzOiJSZW5kZXJDb250ZXh0IjtzOjM0OiJwaHBEb2N1bWVudG9yXEd1aWRlc1xSZW5kZXJDb250ZXh0Ijt9fXM6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAHBhcmVudCI7TjtzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AYWJzdHJhY3QiO2I6MDtzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AZmluYWwiO2I6MTtzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AcmVhZE9ubHkiO2I6MDtzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AbWV0YWRhdGEiO2E6MDp7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBhdHRyaWJ1dGVzIjthOjA6e319fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAaW50ZXJmYWNlcyI7YTowOnt9czo0MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQB0cmFpdHMiO2E6MDp7fXM6NDA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAZW51bXMiO2E6MDp7fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAaGFzaCI7czozMjoiN2FiOTcyZDVkOWUwMTkyY2VjZTQwZWQ2ZDk5YTBlMWUiO3M6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAcGF0aCI7czo4MDoidmVuZG9yL3BocGRvY3VtZW50b3IvZ3VpZGVzL3NyYy9SZWZlcmVuY2VSZXNvbHZlcnMvRXh0ZXJuYWxSZWZlcmVuY2VSZXNvbHZlci5waHAiO3M6NDE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAc291cmNlIjtzOjUwNDE6Ijw/cGhwCgpkZWNsYXJlKHN0cmljdF90eXBlcz0xKTsKCi8qKgogKiBUaGlzIGZpbGUgaXMgcGFydCBvZiBwaHBEb2N1bWVudG9yLgogKgogKiBGb3IgdGhlIGZ1bGwgY29weXJpZ2h0IGFuZCBsaWNlbnNlIGluZm9ybWF0aW9uLCBwbGVhc2UgdmlldyB0aGUgTElDRU5TRQogKiBmaWxlIHRoYXQgd2FzIGRpc3RyaWJ1dGVkIHdpdGggdGhpcyBzb3VyY2UgY29kZS4KICoKICogQGxpbmsgaHR0cHM6Ly9waHBkb2Mub3JnCiAqLwoKbmFtZXNwYWNlIHBocERvY3VtZW50b3JcR3VpZGVzXFJlZmVyZW5jZVJlc29sdmVyczsKCnVzZSBwaHBEb2N1bWVudG9yXEd1aWRlc1xOb2Rlc1xJbmxpbmVcTGlua0lubGluZU5vZGU7CnVzZSBwaHBEb2N1bWVudG9yXEd1aWRlc1xSZW5kZXJDb250ZXh0OwoKdXNlIGZ1bmN0aW9uIGZpbHRlcl92YXI7CnVzZSBmdW5jdGlvbiBwYXJzZV91cmw7CnVzZSBmdW5jdGlvbiBwcmVnX21hdGNoOwp1c2UgZnVuY3Rpb24gc3RyX3N0YXJ0c193aXRoOwoKdXNlIGNvbnN0IEZJTFRFUl9WQUxJREFURV9FTUFJTDsKdXNlIGNvbnN0IFBIUF9VUkxfU0NIRU1FOwoKLyoqCiAqIFJlc29sdmVzIHJlZmVyZW5jZXMgd2l0aCBhbiBlbWJlZGRlZCBleHRlcm5hbCBVUkwuCiAqCiAqIEEgbGluayBpcyBleHRlcm5hbCBpZiBpdCBzdGFydHMgd2l0aCBhIHNjaGVtZSBkZWZpbmVkIGluIHRoZSBJQU5BIFJlZ2lzdHJ5CiAqIG9mIFVSSSBTY2hlbWVzLgogKgogKiBAc2VlIGh0dHBzOi8vd3d3LmlhbmEub3JnL2Fzc2lnbm1lbnRzL3VyaS1zY2hlbWVzL3VyaS1zY2hlbWVzLnhodG1sCiAqLwpmaW5hbCBjbGFzcyBFeHRlcm5hbFJlZmVyZW5jZVJlc29sdmVyIGltcGxlbWVudHMgUmVmZXJlbmNlUmVzb2x2ZXIKewogICAgcHVibGljIGZpbmFsIGNvbnN0IFBSSU9SSVRZID0gLTEwMDsKICAgIGZpbmFsIHB1YmxpYyBjb25zdCBTVVBQT1JURURfU0NIRU1BUyA9ICcoPzphYWF8YWFhc3xhYm91dHxhY2FwfGFjY3R8YWNkfGFjcnxhZGl1bXh0cmF8YWR0fGFmcHxhZnN8YWltfGFtc3N8YW5kcm9pZHxhcHBkYXRhfGFwdHxhcnxhcmt8YXR8YXR0YWNobWVudHxhd3xiYXJpb258YmJ8YmVzaGFyZXxiaXRjb2lufGJpdGNvaW5jYXNofGJsb2J8Ym9sb3xicm93c2VyZXh0fGNhYmFsfGNhbGN1bGF0b3J8Y2FsbHRvfGNhcHxjYXN0fGNhc3RzfGNocm9tZXxjaHJvbWUtZXh0ZW5zaW9ufGNpZHxjb2FwfGNvYXArdGNwfGNvYXArd3N8Y29hcHN8Y29hcHMrdGNwfGNvYXBzK3dzfGNvbS1ldmVudGJyaXRlLWF0dGVuZGVlfGNvbnRlbnR8Y29udGVudC10eXBlfGNyaWR8Y3N0cnxjdnN8ZGFifGRhdHxkYXRhfGRhdnxkaHR0cHxkaWFzcG9yYXxkaWN0fGRpZHxkaXN8ZGxuYS1wbGF5Y29udGFpbmVyfGRsbmEtcGxheXNpbmdsZXxkbnN8ZG50cHxkb2l8ZHBwfGRybXxkcm9wfGR0bWl8ZHRufGR2Ynxkdnh8ZHdlYnxlZDJrfGVpZHxlbHNpfGVtYmVkZGVkfGVuc3xldGhlcmV1bXxleGFtcGxlfGZhY2V0aW1lfGZheHxmZWVkfGZlZWRyZWFkeXxmaWRvfGZpbGV8ZmlsZXN5c3RlbXxmaW5nZXJ8Zmlyc3QtcnVuLXBlbi1leHBlcmllbmNlfGZpc2h8Zm18ZnRwfGZ1Y2hzaWEtcGtnfGdlb3xnZ3xnaXR8Z2l0b2lkfGdpem1vcHJvamVjdHxnb3xnb3BoZXJ8Z3JhcGh8Z3JkfGd0YWxrfGgzMjN8aGFtfGhjYXB8aGNwfGh0dHB8aHR0cHN8aHh4cHxoeHhwc3xoeWRyYXpvbmV8aHlwZXJ8aWF4fGljYXB8aWNvbnxpbXxpbWFwfGluZm98aW90ZGlzY298aXBmc3xpcG58aXBuc3xpcHB8aXBwc3xpcmN8aXJjNnxpcmNzfGlyaXN8aXJpc1wuYmVlcHxpcmlzXC5sd3p8aXJpc1wueHBjfGlyaXNcLnhwY3N8aXNvc3RvcmV8aXRtc3xqYWJiZXJ8amFyfGptc3xrZXlwYXJjfGxhc3RmbXxsYnJ5fGxkYXB8bGRhcHN8bGVhcHRvZnJvZ2Fuc3xsb3Jhd2FufGxwYXxsdmx0fG1hZ25ldHxtYWlsc2VydmVyfG1haWx0b3xtYXBzfG1hcmtldHxtYXRyaXh8bWVzc2FnZXxtaWNyb3NvZnRcLndpbmRvd3NcLmNhbWVyYXxtaWNyb3NvZnRcLndpbmRvd3NcLmNhbWVyYVwubXVsdGlwaWNrZXJ8bWljcm9zb2Z0XC53aW5kb3dzXC5jYW1lcmFcLnBpY2tlcnxtaWR8bW1zfG1vZGVtfG1vbmdvZGJ8bW96fG1zLWFjY2Vzc3xtcy1hcHBpbnN0YWxsZXJ8bXMtYnJvd3Nlci1leHRlbnNpb258bXMtY2FsY3VsYXRvcnxtcy1kcml2ZS10b3xtcy1lbnJvbGxtZW50fG1zLWV4Y2VsfG1zLWV5ZWNvbnRyb2xzcGVlY2h8bXMtZ2FtZWJhcnNlcnZpY2VzfG1zLWdhbWluZ292ZXJsYXl8bXMtZ2V0b2ZmaWNlfG1zLWhlbHB8bXMtaW5mb3BhdGh8bXMtaW5wdXRhcHB8bXMtbGF1bmNocmVtb3RlZGVza3RvcHxtcy1sb2Nrc2NyZWVuY29tcG9uZW50LWNvbmZpZ3xtcy1tZWRpYS1zdHJlYW0taWR8bXMtbWVldG5vd3xtcy1taXhlZHJlYWxpdHljYXB0dXJlfG1zLW1vYmlsZXBsYW5zfG1zLW5ld3NhbmRpbnRlcmVzdHN8bXMtb2ZmaWNlYXBwfG1zLXBlb3BsZXxtcy1wcm9qZWN0fG1zLXBvd2VycG9pbnR8bXMtcHVibGlzaGVyfG1zLXJlbW90ZWRlc2t0b3B8bXMtcmVtb3RlZGVza3RvcC1sYXVuY2h8bXMtcmVzdG9yZXRhYmNvbXBhbmlvbnxtcy1zY3JlZW5jbGlwfG1zLXNjcmVlbnNrZXRjaHxtcy1zZWFyY2h8bXMtc2VhcmNoLXJlcGFpcnxtcy1zZWNvbmRhcnktc2NyZWVuLWNvbnRyb2xsZXJ8bXMtc2Vjb25kYXJ5LXNjcmVlbi1zZXR1cHxtcy1zZXR0aW5nc3xtcy1zZXR0aW5ncy1haXJwbGFuZW1vZGV8bXMtc2V0dGluZ3MtYmx1ZXRvb3RofG1zLXNldHRpbmdzLWNhbWVyYXxtcy1zZXR0aW5ncy1jZWxsdWxhcnxtcy1zZXR0aW5ncy1jbG91ZHN0b3JhZ2V8bXMtc2V0dGluZ3MtY29ubmVjdGFibGVkZXZpY2VzfG1zLXNldHRpbmdzLWRpc3BsYXlzLXRvcG9sb2d5fG1zLXNldHRpbmdzLWVtYWlsYW5kYWNjb3VudHN8bXMtc2V0dGluZ3MtbGFuZ3VhZ2V8bXMtc2V0dGluZ3MtbG9jYXRpb258bXMtc2V0dGluZ3MtbG9ja3xtcy1zZXR0aW5ncy1uZmN0cmFuc2FjdGlvbnN8bXMtc2V0dGluZ3Mtbm90aWZpY2F0aW9uc3xtcy1zZXR0aW5ncy1wb3dlcnxtcy1zZXR0aW5ncy1wcml2YWN5fG1zLXNldHRpbmdzLXByb3hpbWl0eXxtcy1zZXR0aW5ncy1zY3JlZW5yb3RhdGlvbnxtcy1zZXR0aW5ncy13aWZpfG1zLXNldHRpbmdzLXdvcmtwbGFjZXxtcy1zcGR8bXMtc3RpY2tlcnN8bXMtc3R0b3ZlcmxheXxtcy10cmFuc2l0LXRvfG1zLXVzZXJhY3Rpdml0eXNldHxtcy12aXJ0dWFsdG91Y2hwYWR8bXMtdmlzaW98bXMtd2Fsay10b3xtcy13aGl0ZWJvYXJkfG1zLXdoaXRlYm9hcmQtY21kfG1zLXdvcmR8bXNuaW18bXNycHxtc3Jwc3xtc3N8bXR8bXRxcHxtdW1ibGV8bXVwZGF0ZXxtdm58bmV3c3xuZnN8bml8bmlofG5udHB8bm90ZXN8bnVtfG9jZnxvaWR8b25lbm90ZXxvbmVub3RlLWNtZHxvcGFxdWVsb2NrdG9rZW58b3BlbnBncDRmcHJ8b3RwYXV0aHxwMXxwYWNrfHBhbG18cGFwYXJhenppfHBheW1lbnR8cGF5dG98cGtjczExfHBsYXRmb3JtfHBvcHxwcmVzfHByb3NwZXJvfHByb3h5fHB3aWR8cHN5Y3xwdHRwfHFifHF1ZXJ5fHF1aWMtdHJhbnNwb3J0fHJlZGlzfHJlZGlzc3xyZWxvYWR8cmVzfHJlc291cmNlfHJtaXxyc3luY3xydG1mcHxydG1wfHJ0c3B8cnRzcHN8cnRzcHV8c2FyaWZ8c2Vjb25kbGlmZXxzZWNyZXQtdG9rZW58c2VydmljZXxzZXNzaW9ufHNmdHB8c2dufHNoY3xzaHR0cCAoT0JTT0xFVEUpfHNpZXZlfHNpbXBsZWxlZGdlcnxzaW1wbGV4fHNpcHxzaXBzfHNreXBlfHNtYnxzbXB8c21zfHNtdHB8c25ld3N8c25tcHxzb2FwXC5iZWVwfHNvYXBcLmJlZXBzfHNvbGRhdHxzcGlmZmV8c3BvdGlmeXxzc2J8c3NofHN0YXJrbmV0fHN0ZWFtfHN0dW58c3R1bnN8c3VibWl0fHN2bnxzd2h8c3dpZHxzd2lkcGF0aHx0YWd8dGFsZXJ8dGVhbXNwZWFrfHRlbHx0ZWxpYWVpZHx0ZWxuZXR8dGZ0cHx0aGluZ3N8dGhpc21lc3NhZ2V8dGlwfHRuMzI3MHx0b29sfHR1cm58dHVybnN8dHZ8dWRwfHVucmVhbHx1cHR8dXJufHV0MjAwNHx1dWlkLWluLXBhY2thZ2V8di1ldmVudHx2ZW1taXx2ZW50cmlsb3x2ZXN8dmlkZW90ZXh8dm5jfHZpZXctc291cmNlfHZzY29kZXx2c2NvZGUtaW5zaWRlcnN8dnNsc3x3M3x3YWlzfHdlYjN8d2NyfHdlYmNhbHx3ZWIrYXB8d2lmaXx3cGlkfHdzfHdzc3x3dGFpfHd5Y2l3eWd8eGNvbnx4Y29uLXVzZXJpZHx4ZmlyZXx4bWxycGNcLmJlZXB8eG1scnBjXC5iZWVwc3x4bXBwfHhyaXx5bXNncnx6MzlcLjUwfHozOVwuNTByfHozOVwuNTBzKSc7CgogICAgcHVibGljIGZ1bmN0aW9uIHJlc29sdmUoTGlua0lubGluZU5vZGUgJG5vZGUsIFJlbmRlckNvbnRleHQgJHJlbmRlckNvbnRleHQsIE1lc3NhZ2VzICRtZXNzYWdlcyk6IGJvb2wKICAgIHsKICAgICAgICBpZiAoc3RyX3N0YXJ0c193aXRoKCRub2RlLT5nZXRUYXJnZXRSZWZlcmVuY2UoKSwgJyMnKSkgewogICAgICAgICAgICAkbm9kZS0+c2V0VXJsKCRub2RlLT5nZXRUYXJnZXRSZWZlcmVuY2UoKSk7CgogICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICB9CgogICAgICAgIGlmIChmaWx0ZXJfdmFyKCRub2RlLT5nZXRUYXJnZXRSZWZlcmVuY2UoKSwgRklMVEVSX1ZBTElEQVRFX0VNQUlMKSkgewogICAgICAgICAgICAkbm9kZS0+c2V0VXJsKCdtYWlsdG86JyAuICRub2RlLT5nZXRUYXJnZXRSZWZlcmVuY2UoKSk7CgogICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICB9CgogICAgICAgICR1cmwgPSBwYXJzZV91cmwoJG5vZGUtPmdldFRhcmdldFJlZmVyZW5jZSgpLCBQSFBfVVJMX1NDSEVNRSk7CiAgICAgICAgaWYgKCR1cmwgIT09IG51bGwgJiYgJHVybCAhPT0gZmFsc2UgJiYgcHJlZ19tYXRjaCgnL14nIC4gc2VsZjo6U1VQUE9SVEVEX1NDSEVNQVMgLiAnJC8nLCAkdXJsKSkgewogICAgICAgICAgICAkbm9kZS0+c2V0VXJsKCRub2RlLT5nZXRUYXJnZXRSZWZlcmVuY2UoKSk7CgogICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICB9CgogICAgICAgIHJldHVybiBmYWxzZTsKICAgIH0KCiAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGdldFByaW9yaXR5KCk6IGludAogICAgewogICAgICAgIHJldHVybiBzZWxmOjpQUklPUklUWTsKICAgIH0KfQoiO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjM1OiJUaGlzIGZpbGUgaXMgcGFydCBvZiBwaHBEb2N1bWVudG9yLiI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czoxMjA6IkZvciB0aGUgZnVsbCBjb3B5cmlnaHQgYW5kIGxpY2Vuc2UgaW5mb3JtYXRpb24sIHBsZWFzZSB2aWV3IHRoZSBMSUNFTlNFCmZpbGUgdGhhdCB3YXMgZGlzdHJpYnV0ZWQgd2l0aCB0aGlzIHNvdXJjZSBjb2RlLiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjE6e2k6MDtPOjQzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xMaW5rIjozOntzOjc6IgAqAG5hbWUiO3M6NDoibGluayI7czoxNDoiACoAZGVzY3JpcHRpb24iO047czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXExpbmsAbGluayI7czoxODoiaHR0cHM6Ly9waHBkb2Mub3JnIjt9fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbnRleHQiOjI6e3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29udGV4dABuYW1lc3BhY2UiO3M6MDoiIjtzOjU2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbnRleHQAbmFtZXNwYWNlQWxpYXNlcyI7YTowOnt9fXM6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBtZXRhZGF0YSI7YTowOnt9fQ==";