LyoKICogQ29weXJpZ2h0IDIwMDIgVGlzaGVuZyBDaGVuCiAqCiAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwogKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKICogdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiAqCiAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAogKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgogKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQogKiBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgogKgogKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCiAqIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKICogRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgIDAyMTExLTEzMDcgIFVTQQogKi8KCi8qCiAqIFdBUk5JTkc6IERPIE5PVCBDSEFOR0UgVEhFIFNJWkUgT0YgVEhFIFNUQU5EQVJEIERJQUxPRyBURU1QTEFURVMuCiAqLwoKTEFOR1VBR0UgTEFOR19DSElORVNFLCBTVUJMQU5HX0NISU5FU0VfU0lNUExJRklFRAoKT1BFTl9GSUxFIERJQUxPRyBMT0FET05DQUxMIE1PVkVBQkxFIERJU0NBUkRBQkxFIDM2LCAyNCwgMjc1LCAxMzQKU1RZTEUgRFNfTU9EQUxGUkFNRSB8IFdTX1BPUFVQIHwgV1NfQ0FQVElPTiB8IFdTX1NZU01FTlUKQ0FQVElPTiAitPK/qiIKRk9OVCA4LCAiTVMgU2hlbGwgRGxnIgp7CiBMVEVYVCAizsS8/sP7KCZOKToiLCAxMDkwLCA2LCA2LCA3NiwgOQogRURJVFRFWFQgZWR0MSwgNiwgMTYsIDkwLCAxMiwgRVNfQVVUT0hTQ1JPTEwgfCBFU19PRU1DT05WRVJUIHwgV1NfQk9SREVSIHwgV1NfVEFCU1RPUAogTElTVEJPWCAxMTIwLCA2LCAzMiwgOTAsIDY4LCBMQlNfU1RBTkRBUkQgfCBMQlNfT1dORVJEUkFXRklYRUQgfCBMQlNfSEFTU1RSSU5HUyB8IExCU19ESVNBQkxFTk9TQ1JPTEwgfCBXU19UQUJTVE9QCiBMVEVYVCAizsS8/rzQKCZEKToiLCAtMSwgMTEwLCA2LCA5MiwgOQogTFRFWFQgIiIsIDEwODgsIDExMCwgMTgsIDkyLCA5LCBTU19OT1BSRUZJWCB8IFdTX0dST1VQCiBMSVNUQk9YIDExMjEsIDExMCwgMzIsIDkyLCA2OCwgTEJTX1NUQU5EQVJEIHwgTEJTX09XTkVSRFJBV0ZJWEVEIHwgTEJTX0hBU1NUUklOR1MgfCBMQlNfRElTQUJMRU5PU0NST0xMIHwgV1NfVEFCU1RPUAogTFRFWFQgIs7EvP7A4NDNKCZUKToiLCAxMDg5LCA2LCAxMDQsIDkwLCA5CiBDT01CT0JPWCBjbWIxLCA2LCAxMTQsIDkwLCAzNiwgQ0JTX0RST1BET1dOTElTVCB8IENCU19BVVRPSFNDUk9MTCB8IFdTX0JPUkRFUiB8IFdTX1ZTQ1JPTEwgfCBXU19UQUJTVE9QCiBMVEVYVCAix/22r8b3KCZ2KToiLCAxMDkxLCAxMTAsIDEwNCwgOTIsIDkKIENPTUJPQk9YIGNtYjIsIDExMCwgMTE0LCA5MiwgNjgsIENCU19EUk9QRE9XTkxJU1QgfCBDQlNfT1dORVJEUkFXRklYRUQgfCBDQlNfQVVUT0hTQ1JPTEwgfCBDQlNfU09SVCB8IENCU19IQVNTVFJJTkdTIHwgV1NfQk9SREVSIHwgV1NfVlNDUk9MTCB8IFdTX1RBQlNUT1AKIERFRlBVU0hCVVRUT04gIrTyv6oiLCAxLCAyMDgsIDYsIDU2LCAxNCwgQlNfREVGUFVTSEJVVFRPTiB8IFdTX0dST1VQIHwgV1NfVEFCU1RPUAogUFVTSEJVVFRPTiAiyKHP+yIsIDIsIDIwOCwgMjQsIDU2LCAxNCwgV1NfR1JPVVAgfCBXU19UQUJTVE9QCiBQVVNIQlVUVE9OICKw79b6KCZIKSIsIHBzaEhlbHAsIDIwOCwgNDYsIDU2LCAxNCwgV1NfR1JPVVAgfCBXU19UQUJTVE9QCiBDSEVDS0JPWCAi1ru2wSgmUikiLCBjaHgxLCAyMDgsIDY4LCA1MCwgMTIsIEJTX0FVVE9DSEVDS0JPWCB8IFdTX0dST1VQIHwgV1NfVEFCU1RPUAp9CgoKU0FWRV9GSUxFIERJQUxPRyBMT0FET05DQUxMIE1PVkVBQkxFIERJU0NBUkRBQkxFIDM2LCAyNCwgMjc1LCAxMzQKU1RZTEUgRFNfTU9EQUxGUkFNRSB8IFdTX1BPUFVQIHwgV1NfQ0FQVElPTiB8IFdTX1NZU01FTlUKQ0FQVElPTiAiwe205s6qIC4uLiIKRk9OVCA4LCAiTVMgU2hlbGwgRGxnIgp7CiBMVEVYVCAizsS8/sP7KCZOKToiLCAxMDkwLCA2LCA2LCA3NiwgOQogRURJVFRFWFQgZWR0MSwgNiwgMTYsIDkwLCAxMiwgRVNfQVVUT0hTQ1JPTEwgfCBFU19PRU1DT05WRVJUIHwgV1NfQk9SREVSIHwgV1NfVEFCU1RPUAogTElTVEJPWCAxMTIwLCA2LCAzMiwgOTAsIDY4LCBMQlNfU1RBTkRBUkQgfCBMQlNfT1dORVJEUkFXRklYRUQgfCBMQlNfSEFTU1RSSU5HUyB8IExCU19ESVNBQkxFTk9TQ1JPTEwgfCBXU19UQUJTVE9QCiBMVEVYVCAixL/CvCgmRCk6IiwgLTEsIDExMCwgNiwgOTIsIDkKIExURVhUICIiLCAxMDg4LCAxMTAsIDE4LCA5MiwgOSwgU1NfTk9QUkVGSVggfCBXU19HUk9VUAogTElTVEJPWCAxMTIxLCAxMTAsIDMyLCA5MiwgNjgsIExCU19TVEFOREFSRCB8IExCU19PV05FUkRSQVdGSVhFRCB8IExCU19IQVNTVFJJTkdTIHwgTEJTX0RJU0FCTEVOT1NDUk9MTCB8IFdTX1RBQlNUT1AKIExURVhUICLOxLz+wODQzSgmVCk6IiwgMTA4OSwgNiwgMTA0LCA5MCwgOQogQ09NQk9CT1ggY21iMSwgNiwgMTE0LCA5MCwgMzYsIENCU19EUk9QRE9XTkxJU1QgfCBDQlNfQVVUT0hTQ1JPTEwgfCBXU19CT1JERVIgfCBXU19WU0NST0xMIHwgV1NfVEFCU1RPUAogTFRFWFQgIsf9tq/G9ygmdik6IiwgMTA5MSwgMTEwLCAxMDQsIDkyLCA5CiBDT01CT0JPWCBjbWIyLCAxMTAsIDExNCwgOTIsIDY4LCBDQlNfRFJPUERPV05MSVNUIHwgQ0JTX09XTkVSRFJBV0ZJWEVEIHwgQ0JTX0FVVE9IU0NST0xMIHwgQ0JTX1NPUlQgfCBDQlNfSEFTU1RSSU5HUyB8IFdTX0JPUkRFUiB8IFdTX1ZTQ1JPTEwgfCBXU19UQUJTVE9QCiBERUZQVVNIQlVUVE9OICKxo7TmIiwgMSwgMjA4LCA2LCA1NiwgMTQsIEJTX0RFRlBVU0hCVVRUT04gfCBXU19HUk9VUCB8IFdTX1RBQlNUT1AKIFBVU0hCVVRUT04gIsihz/siLCAyLCAyMDgsIDI0LCA1NiwgMTQsIFdTX0dST1VQIHwgV1NfVEFCU1RPUAogUFVTSEJVVFRPTiAisO/W+igmSCkiLCBwc2hIZWxwLCAyMDgsIDQ2LCA1NiwgMTQsIFdTX0dST1VQIHwgV1NfVEFCU1RPUAogQ0hFQ0tCT1ggIta7tsEoJlIpIiwgY2h4MSwgMjA4LCA2OCwgNTAsIDEyLCBCU19BVVRPQ0hFQ0tCT1ggfCBXU19HUk9VUCB8IFdTX1RBQlNUT1AKfQoKClBSSU5UIERJQUxPRyBMT0FET05DQUxMIE1PVkVBQkxFIERJU0NBUkRBQkxFIDM2LCAyNCwgMjY0LCAxMzQKU1RZTEUgRFNfTU9EQUxGUkFNRSB8IFdTX1BPUFVQIHwgV1NfQ0FQVElPTiB8IFdTX1NZU01FTlUKQ0FQVElPTiAitPLToSIKRk9OVCA4LCAiTVMgU2hlbGwgRGxnIgp7CiBMVEVYVCAitPLTobv6OiIsIDEwODgsIDYsIDYsIDQwLCA5CiBMVEVYVCAiIiwgMTA4OSwgNjAsIDYsIDE1MCwgOQogR1JPVVBCT1ggIrTy06G3ts6nIiwgZ3JwMSwgNiwgMzAsIDE2MCwgNjUsIEJTX0dST1VQQk9YCiBSQURJT0JVVFRPTiAiyKuyvygmQSkiLCByYWQxLCAxNiwgNDUsIDYwLCAxMgogUkFESU9CVVRUT04gItGh1PG1xLe2zqcoJmUpIiwgcmFkMiwgMTYsIDYwLCA2MCwgMTIKIFJBRElPQlVUVE9OICLSs8r9KCZHKSIsIHJhZDMsIDE2LCA3NSwgNjAsIDEyCiBERUZQVVNIQlVUVE9OICLIt7aoIiwgMSwgMjA2LCA2LCA1NiwgMTQsIEJTX0RFRlBVU0hCVVRUT04gfCBXU19HUk9VUCB8IFdTX1RBQlNUT1AKIFBVU0hCVVRUT04gIsihz/siLCAyLCAyMDYsIDI0LCA1NiwgMTQsIFdTX0dST1VQIHwgV1NfVEFCU1RPUAogUFVTSEJVVFRPTiAiyejWwygmUykiLCBwc2gxLCAyMDYsIDQ2LCA1NiwgMTQsIFdTX0dST1VQIHwgV1NfVEFCU1RPUAogTFRFWFQgIrTTKCZGKToiLCAxMDkwLCA2MCwgODAsIDMwLCA5CiBMVEVYVCAitb0oJlQpOiIsIDEwOTEsIDEyMCwgODAsIDMwLCA5CiBMVEVYVCAitPLTodbKwb8oJlEpOiIsIDEwOTIsIDYsIDEwMCwgNzYsIDkKIENPTUJPQk9YIGNtYjEsIDgwLCAxMDAsIDkyLCA2OCwgQ0JTX0RST1BET1dOTElTVCB8IENCU19PV05FUkRSQVdGSVhFRCB8IENCU19BVVRPSFNDUk9MTCB8IENCU19TT1JUIHwgQ0JTX0hBU1NUUklOR1MgfCBXU19CT1JERVIgfCBXU19WU0NST0xMIHwgV1NfVEFCU1RPUAogQ0hFQ0tCT1ggIrTy06G1vc7EvP4oJmwpOiIsIGNoeDEsIDIwLCAxMDAsIDUwLCAxMiwgQlNfQVVUT0NIRUNLQk9YIHwgV1NfR1JPVVAgfCBXU19UQUJTVE9QCiBDSEVDS0JPWCAiQ29uZGVuc2VkIiwgY2h4MiwgMTYwLCAxMDAsIDUwLCAxMiwgQlNfQVVUT0NIRUNLQk9YIHwgV1NfR1JPVVAgfCBXU19UQUJTVE9QCn0KCgpQUklOVF9TRVRVUCBESUFMT0cgTE9BRE9OQ0FMTCBNT1ZFQUJMRSBESVNDQVJEQUJMRSAzNiwgMjQsIDI2NCwgMTM0ClNUWUxFIERTX01PREFMRlJBTUUgfCBXU19QT1BVUCB8IFdTX0NBUFRJT04gfCBXU19TWVNNRU5VCkNBUFRJT04gIrTy06HJ6NbDIgpGT05UIDgsICJNUyBTaGVsbCBEbGciCnsKIEdST1VQQk9YICK08tOhu/oiLCBncnAxLCA2LCAxMCwgMTgwLCA2NSwgQlNfR1JPVVBCT1gKIFJBRElPQlVUVE9OICLErMjPtPLTobv6KCZEKSIsIHJhZDEsIDE2LCAyMCwgODAsIDEyCiBMVEVYVCAiW25vbmVdIiwgMTA4OCwgMzUsIDM1LCAxMjAsIDkKIFJBRElPQlVUVE9OICLWuLaotcS08tOhu/ooJlApIiwgcmFkMiwgMTYsIDUwLCA4MCwgMTIKIENPTUJPQk9YIGNtYjEsIDM1LCA2NSwgMTQ5LCA2OCwgQ0JTX0RST1BET1dOTElTVCB8IENCU19PV05FUkRSQVdGSVhFRCB8IENCU19BVVRPSFNDUk9MTCB8IENCU19TT1JUIHwgQ0JTX0hBU1NUUklOR1MgfCBXU19CT1JERVIgfCBXU19WU0NST0xMIHwgV1NfVEFCU1RPUAogREVGUFVTSEJVVFRPTiAiyLe2qCIsIElET0ssIDIwNiwgNiwgNTYsIDE0LCBCU19ERUZQVVNIQlVUVE9OIHwgV1NfR1JPVVAgfCBXU19UQUJTVE9QCiBQVVNIQlVUVE9OICLIoc/7IiwgSURDQU5DRUwsIDIwNiwgMjQsIDU2LCAxNCwgV1NfR1JPVVAgfCBXU19UQUJTVE9QCiBQVVNIQlVUVE9OICLJ6NbDKCZTKSIsIHBzaDEsIDIwNiwgNDYsIDU2LCAxNCwgV1NfR1JPVVAgfCBXU19UQUJTVE9QCiBHUk9VUEJPWCAit73P8igmTykiLCBncnAyLCA2LCA4NSwgMTAwLCA1MCwgQlNfR1JPVVBCT1gKIFJBRElPQlVUVE9OICLX3c/yKCZQKSIsIHJhZDMsIDUwLCAxMDAsIDQwLCAxMgogUkFESU9CVVRUT04gIrrhz/IoJkwpIiwgcmFkNCwgNTAsIDExNSwgNDAsIDEyCiBJQ09OICJMQU5EU0NBUCIsIHN0YzEwLCAxMCwgOTUsIDMyLCAzMgogSUNPTiAiUE9SVFJBSVQiLCBzdGMxMSwgMTAsIDk1LCAzMiwgMzIKIEdST1VQQk9YICLWvdXFIiwgZ3JwMywgMTIwLCA4NSwgMTgwLCA1MCwgQlNfR1JPVVBCT1gKIExURVhUICLWvdXFtPPQoSgmWikiLCAxMDg5LCAxMzAsIDk1LCAzMCwgOQogTFRFWFQgIta91cXAtNS0KCZTKSIsIDEwOTAsIDEzMCwgMTEwLCAzMCwgOQogQ09NQk9CT1ggY21iMiwgMTU1LCA5NSwgOTIsIDY4LCBDQlNfRFJPUERPV05MSVNUIHwgQ0JTX09XTkVSRFJBV0ZJWEVEIHwgQ0JTX0FVVE9IU0NST0xMIHwgQ0JTX1NPUlQgfCBDQlNfSEFTU1RSSU5HUyB8IFdTX0JPUkRFUiB8IFdTX1ZTQ1JPTEwgfCBXU19UQUJTVE9QCiBDT01CT0JPWCBjbWIzLCAxNTUsIDExMCwgOTIsIDY4LCBDQlNfRFJPUERPV05MSVNUIHwgQ0JTX09XTkVSRFJBV0ZJWEVEIHwgQ0JTX0FVVE9IU0NST0xMIHwgQ0JTX1NPUlQgfCBDQlNfSEFTU1RSSU5HUyB8IFdTX0JPUkRFUiB8IFdTX1ZTQ1JPTEwgfCBXU19UQUJTVE9QCn0KCgpDSE9PU0VfRk9OVCBESUFMT0cgRElTQ0FSREFCTEUgIDEzLCA1NCwgMjY0LCAxNDcKU1RZTEUgRFNfTU9EQUxGUkFNRSB8IFdTX1BPUFVQIHwgV1NfQ0FQVElPTiB8IFdTX1NZU01FTlUKQ0FQVElPTiAi19bM5SIKRk9OVCA4LCAiTVMgU2hlbGwgRGxnIgp7CiAgICBMVEVYVCAgICAgICAgICAgItfWzOUoJkYpOiIsMTA4OCAsNiwzLDQwLDkKICAgIENPTUJPQk9YICAgICAgICBjbWIxLCA2LDEzLDk0LDU0LCAgQ0JTX09XTkVSRFJBV0ZJWEVEIHwgQ0JTX0hBU1NUUklOR1MgfCBDQlNfRElTQUJMRU5PU0NST0xMIHwKICAgICAgICAgICAgICAgICAgICBDQlNfQVVUT0hTQ1JPTEwgfCBDQlNfU09SVCB8IFdTX1ZTQ1JPTEwgfCBXU19UQUJTVE9QIHwgQ0JTX1NJTVBMRQogICAgTFRFWFQgICAgICAgICAgICLX1szl0fnKvSgmeSk6IiwxMDg5ICwxMDgsMyw0NCw5CiAgICBDT01CT0JPWCAgICAgICAgY21iMiwxMDgsMTMsNjQsNTQsIENCU19PV05FUkRSQVdGSVhFRCB8IENCU19IQVNTVFJJTkdTIHwgQ0JTX0RJU0FCTEVOT1NDUk9MTCB8CiAgICAgICAgICAgICAgICAgICAgV1NfVlNDUk9MTCB8IFdTX1RBQlNUT1AgfCBDQlNfU0lNUExFCiAgICBMVEVYVCAgICAgICAgICAgIrTz0KEoJlMpOiIsMTA5MCwxNzksMywzMCw5CiAgICBDT01CT0JPWCAgICAgICAgY21iMywxNzksMTMsMzIsNTQsIENCU19PV05FUkRSQVdGSVhFRCB8IENCU19IQVNTVFJJTkdTIHwgQ0JTX0RJU0FCTEVOT1NDUk9MTCB8CiAgICAgICAgICAgICAgICAgICAgV1NfVlNDUk9MTCB8IFdTX1RBQlNUT1AgfCBDQlNfU0lNUExFIHwgQ0JTX1NPUlQKICAgIERFRlBVU0hCVVRUT04gICAiyLe2qCIsSURPSywyMTgsNiw0MCwxNCwgV1NfR1JPVVAgfCBXU19UQUJTVE9QIHwgQlNfREVGUFVTSEJVVFRPTgogICAgUFVTSEJVVFRPTiAgICAgICLIoc/7IixJRENBTkNFTCwyMTgsMjMsNDAsMTQsV1NfR1JPVVAgfCBXU19UQUJTVE9QCiAgICBQVVNIQlVUVE9OICAgICAgItOm08MoJkEpIiwgcHNoMywyMTgsNDAsNDAsMTQsV1NfR1JPVVAgfCBXU19UQUJTVE9QCiAgICBQVVNIQlVUVE9OICAgICAgIrDv1vooJkgpIiAsIHBzaEhlbHAsMjE4LDU3LDQwLDE0LFdTX0dST1VQIHwgV1NfVEFCU1RPUAogICAgR1JPVVBCT1ggICAgICAgICLQp7n7IiwxMDcyLDYsNzIsODQsMzQsV1NfR1JPVVAKICAgIENIRUNLQk9YCSAgICAiyb6z/c/fKCZrKSIsIGNoeDEsIDEwLDgyLDUwLDEwLCBCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QCiAgICBDSEVDS0JPWCAJICAgICLPwruuz98oJlUpIiwgY2h4MiwgMTAsOTQsNTAsMTAsIEJTX0FVVE9DSEVDS0JPWAogICAgTFRFWFQgICAgICAgICAgICLR1cmrKCZDKToiLCAxMDkxICw2LDExMCwzMCw5CiAgICBDT01CT0JPWCAgICAgICAgY21iNCw2LDEyMCw4NCwxMDAsQ0JTX0RST1BET1dOTElTVCB8IENCU19PV05FUkRSQVdGSVhFRCB8IENCU19IQVNTVFJJTkdTIHwKCQkgICAgQ0JTX0FVVE9IU0NST0xMIHwgIFdTX0JPUkRFUiB8IFdTX1ZTQ1JPTEwgfCBXU19UQUJTVE9QCiAgICBHUk9VUEJPWCAgICAgICAgIsq+wP0iLGdycDIsOTgsNzIsMTIwLDM2LFdTX0dST1VQCiAgICBDVEVYVCAgICAgICAgICAgItbQzsTX1szlQWFCYll5WnoiLHN0YzUsMTAzLDgwLDEwOSwyNCxTU19OT1BSRUZJWCB8IE5PVCBXU19WSVNJQkxFCiAgICBMVEVYVCAgICAgICAgICAgIlNjciZpcHQgKHRyYW5zbGF0ZSk6IixzdGM3LDk4LDExNCw4MCw5CiAgICBDT01CT0JPWCAgICAgICAgY21iNSw5OCwxMjQsMTIwLDEwLENCU19EUk9QRE9XTkxJU1QgfENCU19PV05FUkRSQVdGSVhFRCB8IENCU19IQVNTVFJJTkdTIHwKCQkgICAgQ0JTX0FVVE9IU0NST0xMIHwgICBXU19WU0NST0xMIHwgV1NfVEFCU1RPUAp9CgoKQ0hPT1NFX0NPTE9SIERJQUxPRyBMT0FET05DQUxMIE1PVkVBQkxFIERJU0NBUkRBQkxFIDM2LCAyNCwgMzAwLCAxODUKU1RZTEUgRFNfTU9EQUxGUkFNRSB8IFdTX1BPUFVQIHwgV1NfQ0FQVElPTiB8IFdTX1NZU01FTlUKQ0FQVElPTiAi0dXJqyIKRk9OVCA4LCAiTVMgU2hlbGwgRGxnIgp7CiBMVEVYVCAiu/mxvtHVyasoJkIpOiIsICAgMTA4OCwgNCwgICAgNCwgIDE0MCwgMTAKIExURVhUICLX1Lao1sbR1cmrKCZDKToiLCAgMTA4OSwgNCwgICAxMDYsIDE0MCwgMTAKIExURVhUICLR1cmrfLS/yasoJk8pIiwgIDEwOTAsIDE1MCwgMTUxLCAgNDgsIDEwCiBMVEVYVCAgICK67CgmUik6IiwgNzI2IC8qMTA5NCovLDI0OSwxMjYsMjQsMTAKIEVESVRURVhUIDcwNiwgMjc1LDEyNCwyMSwxMiwgV1NfQk9SREVSIHwgV1NfR1JPVVAgfCBXU19UQUJTVE9QCiBMVEVYVCAgICLCzCgmRyk6Iiw3MjcvKjEwOTUqLywyNDksMTQwLDI0LDEwCiBFRElUVEVYVCA3MDcsIDI3NSwxMzgsMjEsMTIsIFdTX0JPUkRFUiB8IFdTX0dST1VQIHwgV1NfVEFCU1RPUAogTFRFWFQgICAiwLYoJkIpOiIsNzI4IC8qMTA5NiovLDI0OSwxNTQsMjQsMTAKIEVESVRURVhUIDcwOCwgMjc1LDE1MiwyMSwxMiwgV1NfQk9SREVSIHwgV1NfR1JPVVAgfCBXU19UQUJTVE9QCiBMVEVYVCAgIsmrtfcoJkUpOiIgLDcyMyAvKjEwOTEqLywyMDIsMTI2LDIyLDEwCiBFRElUVEVYVCA3MDMsIDIyNiwxMjQsMjEsMTIsIFdTX0JPUkRFUiB8IFdTX0dST1VQIHwgV1NfVEFCU1RPUAogTFRFWFQgICKxpbrNtsgoJlMpOiIgLDcyNCAvKjEwOTIqLywyMDIsMTQwLDIyLDEwCiBFRElUVEVYVCA3MDQsIDIyNiwxMzgsMjEsMTIsIFdTX0JPUkRFUiB8IFdTX0dST1VQIHwgV1NfVEFCU1RPUAogTFRFWFQgICLBwbbIKCZMKSIgLDcyNSAvKjEwOTMqLywyMDIsMTU0LDIyLDEwCiBFRElUVEVYVCA3MDUsIDIyNiwxNTIsMjEsMTIsIFdTX0JPUkRFUiB8IFdTX0dST1VQIHwgV1NfVEFCU1RPUAogQ09OVFJPTCAiIiAsNzIwLCJTVEFUSUMiLFNTX1NJTVBMRXxXU19UQUJTVE9QfFdTX0dST1VQLDQsMTQsMTQwLDg2CiBDT05UUk9MICIiICw3MjEsIlNUQVRJQyIsU1NfU0lNUExFfFdTX1RBQlNUT1B8V1NfR1JPVVAsNCwxMTYsMTQwLDI4CiBDT05UUk9MICIiICw3MTAsIlNUQVRJQyIsV1NfQk9SREVSfFNTX1NJTVBMRXxXU19UQUJTVE9QfFdTX0dST1VQLCAxNTIsNCwxMTgsMTE2CiBDT05UUk9MICIiICw3MDIsIlNUQVRJQyIsU1NfU0lNUExFfFdTX1RBQlNUT1B8V1NfR1JPVVAsIDI3OCw0LDgsMTE2CiBDT05UUk9MICIiICw3MDksIlNUQVRJQyIsU1NfU0lNUExFfFdTX1RBQlNUT1B8V1NfR1JPVVAsIDE1MiwxMjQsNDAsMjYKIERFRlBVU0hCVVRUT04gIsi3tqgiLCAgMSwgIDQsIDE2NiwgNDQsIDE0LCBCU19ERUZQVVNIQlVUVE9OIHwgV1NfR1JPVVAgfCBXU19UQUJTVE9QCiBQVVNIQlVUVE9OICLIoc/7IiwgMiwgNTIsIDE2NiwgNDQsIDE0LCBXU19HUk9VUCB8IFdTX1RBQlNUT1AKIFBVU0hCVVRUT04gIrDv1voiLCBwc2hIZWxwLDEwMCwxNjYsIDQ0LCAxNAogUFVTSEJVVFRPTiAizO2807W919S2qNbG0dXJqygmQSkiLCAgICA3MTIvKjEwMjQqLywgMTUyLCAxNjYsIDE0MiwgMTQsIFdTX0dST1VQIHwgV1NfVEFCU1RPUAogUFVTSEJVVFRPTiAiuea2qNfUtqjS5dHVyasoJkQpPj4iLCA3MTkvKjEwMjUqLywgICA0LCAxNTAsIDE0MiwgMTQsIFdTX0dST1VQIHwgV1NfVEFCU1RPUAogUFVTSEJVVFRPTiAgIiZpIiw3MTMsMzAwLDIwMCw0LDE0ICAgLyoganVzdCBhIGR1bW15OiAgJ2knIGlzICBsaWtlICAmaSAgaW4gInNvbCZpZCIgICovCn0KCgpGSU5ERExHT1JEIERJQUxPRyBMT0FET05DQUxMIE1PVkVBQkxFIERJU0NBUkRBQkxFIDM2LCAyNCwgMjM2LCA2MgpTVFlMRSBEU19NT0RBTEZSQU1FIHwgV1NfUE9QVVAgfCBXU19DQVBUSU9OIHwgV1NfU1lTTUVOVQpDQVBUSU9OICKy6dXSIgpGT05UIDgsICJNUyBTaGVsbCBEbGciCnsKIExURVhUICKy6dXSKCZuKToiLCAtMSwgNCwgOCwgNDIsIDgKIEVESVRURVhUIGVkdDEsIDQ3LCA3LCAxMjgsIDEyLCBFU19BVVRPSFNDUk9MTCB8IFdTX0JPUkRFUiB8IFdTX0dST1VQIHwgV1NfVEFCU1RPUAogQ0hFQ0tCT1ggIsir19bGpcXkKCZXKSIsIGNoeDEsIDQsIDI2LCAxMDAsIDEyLCBCU19BVVRPQ0hFQ0tCT1ggfCBXU19HUk9VUCB8IFdTX1RBQlNUT1AKIENIRUNLQk9YICLH+LfWtPPQodC0KCZDKSIsIGNoeDIsIDQsIDQyLCA2NCwgMTIsIEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AKIEdST1VQQk9YICK3vc/yIiwgZ3JwMSwgMTA3LCAyNiwgNjgsIDI4CiBDT05UUk9MICLP8snPKCZVKSIsIHJhZDEsICJCVVRUT04iLCBCU19BVVRPUkFESU9CVVRUT04gfCBXU19DSElMRCB8IFdTX1ZJU0lCTEUgfCBXU19HUk9VUCB8IFdTX1RBQlNUT1AsIDExMSwgMzgsIDIwLCAxMgogQ09OVFJPTCAiz/LPwigmRCkiLCByYWQyLCAiQlVUVE9OIiwgQlNfQVVUT1JBRElPQlVUVE9OIHwgV1NfQ0hJTEQgfCBXU19WSVNJQkxFIHwgV1NfVEFCU1RPUCwgMTM4LCAzOCwgMzAsIDEyCgogREVGUFVTSEJVVFRPTiAisunV0s/C0ru49igmRikiLCBJRE9LLCAxODIsICA1LCA1MCwgMTQsIFdTX0dST1VQIHwgV1NfVEFCU1RPUCB8IEJTX0RFRlBVU0hCVVRUT04KIFBVU0hCVVRUT04gIsihz/siLCBJRENBTkNFTAkgLCAxODIsIDIzLCA1MCwgMTQsIFdTX0dST1VQIHwgV1NfVEFCU1RPUAogUFVTSEJVVFRPTiAisO/W+igmSCkiLCBwc2hIZWxwCSAsIDE4MiwgNDUsIDUwLCAxNCwgV1NfR1JPVVAgfCBXU19UQUJTVE9QCn0KCgpSRVBMQUNFRExHT1JEIERJQUxPRyBMT0FET05DQUxMIE1PVkVBQkxFIERJU0NBUkRBQkxFIDM2LCAyNCwgMjMwLCA5NApTVFlMRSBEU19NT0RBTEZSQU1FIHwgV1NfUE9QVVAgfCBXU19DQVBUSU9OIHwgV1NfU1lTTUVOVQpDQVBUSU9OICLM5ru7IgpGT05UIDgsICJNUyBTaGVsbCBEbGciCnsKIExURVhUICKy6dXSxNrI3Sgmbik6IiwgLTEsIDQsIDksIDQ4LCA4CiBFRElUVEVYVCBlZHQxLCA1NCwgNywgMTE0LCAxMiwgRVNfQVVUT0hTQ1JPTEwgfCBXU19CT1JERVIgfCBXU19HUk9VUCB8IFdTX1RBQlNUT1AKIExURVhUICLM5ru7zqooJnApOiIsIC0xLCA0LCAyNiwgNDgsIDgKIEVESVRURVhUIGVkdDIsIDU0LCAyNCwgMTE0LCAxMiwgRVNfQVVUT0hTQ1JPTEwgfCBXU19CT1JERVIgfCBXU19HUk9VUCB8IFdTX1RBQlNUT1AKIENIRUNLQk9YICLIq9fWxqXF5CgmVykiLCBjaHgxLCA1LCA0NiwgMTA0LCAxMiwgQlNfQVVUT0NIRUNLQk9YIHwgV1NfR1JPVVAgfCBXU19UQUJTVE9QCiBDSEVDS0JPWCAix/i31rTz0KHQtCgmQykiLCBjaHgyLCA1LCA2MiwgNTksIDEyLCBCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QCgogREVGUFVTSEJVVFRPTiAisunV0s/C0ru49igmRikiLCBJRE9LLCAxNzQsICA0LCA1MCwgMTQsIFdTX0dST1VQIHwgV1NfVEFCU1RPUCB8IEJTX0RFRlBVU0hCVVRUT04KIFBVU0hCVVRUT04gIszmu7soJlIpIiwgcHNoMQkgLCAxNzQsIDIxLCA1MCwgMTQsIFdTX0dST1VQIHwgV1NfVEFCU1RPUAogUFVTSEJVVFRPTiAiyKuyv8zmu7soJkEpIiwgcHNoMiAsIDE3NCwgMzgsIDUwLCAxNCwgV1NfR1JPVVAgfCBXU19UQUJTVE9QCiBQVVNIQlVUVE9OICLIoc/7IiwgSURDQU5DRUwJICwgMTc0LCA1NSwgNTAsIDE0LCBXU19HUk9VUCB8IFdTX1RBQlNUT1AKIFBVU0hCVVRUT04gIrDv1vooJkgpIiwgcHNoSGVscAkgLCAxNzQsIDc1LCA1MCwgMTQsIFdTX0dST1VQIHwgV1NfVEFCU1RPUAp9CgoKUFJJTlQzMiBESUFMT0cgTE9BRE9OQ0FMTCBNT1ZFQUJMRSBESVNDQVJEQUJMRSAgMzIsIDMyLCAyODgsIDE4NgpTVFlMRSBEU19NT0RBTEZSQU1FIHwgV1NfUE9QVVAgfCBXU19WSVNJQkxFIHwgV1NfQ0FQVElPTiB8IFdTX1NZU01FTlUgfAogICAgICBEU19DT05URVhUSEVMUCB8IERTXzNETE9PSwpDQVBUSU9OICK08tOhIgpGT05UIDgsICJNUyBTaGVsbCBEbGciCnsKICAgIERFRlBVU0hCVVRUT04gICAiyLe2qCIsICAgICBJRE9LLCAgICAgMTgwLDE2NCwgNDgsMTQsIFdTX0dST1VQIHwgQlNfREVGUFVTSEJVVFRPTgogICAgUFVTSEJVVFRPTiAgICAgICLIoc/7IiwgSURDQU5DRUwsIDIzMiwxNjQsIDQ4LDE0LCBXU19HUk9VUAogICAgUFVTSEJVVFRPTiAgICAgICKw79b6KCZIKSIsICBwc2hIZWxwLCAgNTAsIDE2MSwgNDgsMTQsIFdTX0dST1VQCgogICAgR1JPVVBCT1ggICAgICAgICK08tOhu/oiLCAgICAgICAgZ3JwNCwgICA4LCAgNCwgMjcyLDg0LCBXU19HUk9VUAogICAgQ09OVFJPTCAgICAgICAgICK08tOhtb3OxLz+KCZsKSIsIGNoeDEsICJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8IFdTX0dST1VQIHwgV1NfVEFCU1RPUCwyMTIsNzAsNjQsMTIKICAgIFBVU0hCVVRUT04gICAgICAiyvTQ1CgmUCkiLCAgICBwc2gyLCAyMTIsIDE3LCAgNjAsMTQsIFdTX0dST1VQCiAgICBMVEVYVCAgICAgICAgICAgIsP7s8YoJk4pOiIsICAgICAgICAgc3RjNiwgIDE2LCAyMCwgIDM2LDgKICAgIENPTUJPQk9YICAgICAgICAgICAgICAgICAgICAgICAgICBjbWI0LCAgNTIsIDE4LCAxNTIsMTUyLENCU19EUk9QRE9XTkxJU1QgfCBDQlNfU09SVCB8IFdTX1ZTQ1JPTEwgfCBXU19HUk9VUCB8IFdTX1RBQlNUT1AKICAgIExURVhUICAgICAgICAgICAi17TMrDoiLCAgICAgICAgc3RjOCwgIDE2LCAzNiwgIDM2LDEwLCBTU19OT1BSRUZJWAogICAgTFRFWFQgICAgICAgICAgICJEdW1teSBTdGF0ZSIsICAgIHN0YzEyLCA1MiwgMzYsIDIyNCwxMCwgU1NfTk9QUkVGSVggfCBTU19MRUZUTk9XT1JEV1JBUAogICAgTFRFWFQgICAgICAgICAgICLQzbrFOiIsICAgICAgICAgIHN0YzcsICAxNiwgNDgsICAzNiwxMCwgU1NfTk9QUkVGSVgKICAgIExURVhUICAgICAgICAgICAiRHVtbXkgVHlwZSIsICAgICBzdGMxMSwgNTIsIDQ4LCAyMjQsMTAsIFNTX05PUFJFRklYIHwgU1NfTEVGVE5PV09SRFdSQVAKICAgIExURVhUICAgICAgICAgICAizrvWwzoiLCAgICAgICAgIHN0YzEwLCAxNiwgNjAsICAzNiwxMCwgU1NfTk9QUkVGSVgKICAgIExURVhUICAgICAgICAgICAiRHVtbXkgTG9jYXRpb24iLCBzdGMxNCwgNTIsIDYwLCAyMjQsMTAsIFNTX05PUFJFRklYIHwgU1NfTEVGVE5PV09SRFdSQVAKICAgIExURVhUICAgICAgICAgICAisbjXojoiLCAgICAgICBzdGM5LCAgMTYsIDcyLCAgMzYsMTAsIFNTX05PUFJFRklYCiAgICBMVEVYVCAgICAgICAgICAgIkR1bW15IFJlbWFyayIsICAgc3RjMTMsIDUyLCA3MiwgMTUyLDEwLCBTU19OT1BSRUZJWCB8IFNTX0xFRlROT1dPUkRXUkFQCgogICAgR1JPVVBCT1ggICAgICAgICK33cr9IiwgICAgICAgICBncnAyLCAxNjAsIDkyLCAxMjAsNjQsIFdTX0dST1VQCiAgICBMVEVYVCAgICAgICAgICAgIrfdyv0oJkMpOiIsc3RjNSwxNjgsMTA4LDY4LDgKICAgIElDT04gICAgICAgICAgICAiIiwgICAgICAgICAgICAgICBpY28zLCAxNjIsMTI0LCAgNzYsMjQsIFdTX0dST1VQIHwgU1NfQ0VOVEVSSU1BR0UKICAgIENPTlRST0wgICAgICAgICAiQyZvbGxhdGUiLCAgICAgICBjaHgyLCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8IFdTX0dST1VQIHwgV1NfVEFCU1RPUCwyNDAsMTMwLDM2LDEyCiAgICBFRElUVEVYVCAgICAgICAgICAgICAgICAgICAgICAgICAgZWR0MywgMjQwLDEwNiwgIDMyLDEyLCBXU19HUk9VUCB8IEVTX05VTUJFUgoKICAgIEdST1VQQk9YICAgICAgICAitPLTobe2zqciLCAgICBncnAxLCAgIDgsOTIsICAxNDQsNjQsIFdTX0dST1VQCiAgICBDT05UUk9MICAgICAgICAgIsirsr8oJkEpIiwgICAgICAgICAgIHJhZDEsIkJ1dHRvbiIsQlNfQVVUT1JBRElPQlVUVE9OIHwgV1NfR1JPVVAgfCBXU19UQUJTVE9QLDE2LDEwNiw2NCwxMgogICAgQ09OVFJPTCAgICAgICAgICLSs8r9KCZHKSIsICAgICAgICAgcmFkMywiQnV0dG9uIixCU19BVVRPUkFESU9CVVRUT04sMTYsMTIyLDM2LDEyCiAgICBDT05UUk9MICAgICAgICAgItGh1PG1xLe2zqcoJlMpIiwgICAgIHJhZDIsIkJ1dHRvbiIsQlNfQVVUT1JBRElPQlVUVE9OLDE2LDEzOCw2NCwxMgogICAgRURJVFRFWFQgICAgICAgICAgICAgICAgICAgICAgICAgIGVkdDEsICA3NCwxMjIsICAyNiwxMiwgV1NfR1JPVVAgfCBFU19OVU1CRVIKICAgIEVESVRURVhUICAgICAgICAgICAgICAgICAgICAgICAgICBlZHQyLCAxMTgsMTIyLCAgMjYsMTIsIFdTX0dST1VQIHwgRVNfTlVNQkVSCiAgICBSVEVYVCAgICAgICAgICAgIrTTKCZmKToiLCAgICAgICAgIHN0YzIsICA1MiwxMjQsICAyMCw4CiAgICBSVEVYVCAgICAgICAgICAgIrW9KCZ0KToiLCAgICAgICAgICAgc3RjMywgMTAwLDEyNCwgIDE2LDgKfQoKUFJJTlQzMl9TRVRVUCBESUFMT0cgTE9BRE9OQ0FMTCBNT1ZFQUJMRSBESVNDQVJEQUJMRSAgMzIsIDMyLCAyODgsIDE3OApTVFlMRSBEU19NT0RBTEZSQU1FIHwgV1NfUE9QVVAgfCBXU19WSVNJQkxFIHwgV1NfQ0FQVElPTiB8IFdTX1NZU01FTlUgfAogICAgICBEU19DT05URVhUSEVMUCB8IERTXzNETE9PSwpDQVBUSU9OICK08tOhyejWwyIKRk9OVCA4LCAiTVMgU2hlbGwgRGxnIgpCRUdJTgogICAgREVGUFVTSEJVVFRPTiAgICLIt7aoIixJRE9LLDE4MCwxNTYsNDgsMTQsV1NfR1JPVVAKICAgIFBVU0hCVVRUT04gICAgICAiyKHP+yIsSURDQU5DRUwsMjMyLDE1Niw0OCwxNAovKiAgICBQVVNIQlVUVE9OICAgICAgIk5ldHdvcmsuLi4iLCBwc2g1LCAyODQsMTU2LDQ4LDE0ICovCgogICAgR1JPVVBCT1ggICAgICAgICK08tOhu/oiLCAgICAgICAgZ3JwNCwgICA4LCAgNCwgMjcyLDg0LCBXU19HUk9VUAogICAgUFVTSEJVVFRPTiAgICAgICLK9NDUKCZQKSIsICAgIHBzaDIsIDIxMiwgMTcsICA2MCwxNCwgV1NfR1JPVVAKICAgIExURVhUICAgICAgICAgICAiw/uzxigmTik6IiwgICAgICAgICBzdGM2LCAgMTYsIDIwLCAgMzYsOAogICAgQ09NQk9CT1ggICAgICAgICAgICAgICAgICAgICAgICAgIGNtYjEsICA1MiwgMTgsIDE1MiwxNTIsQ0JTX0RST1BET1dOTElTVCB8IENCU19TT1JUIHwgV1NfVlNDUk9MTCB8IFdTX0dST1VQIHwgV1NfVEFCU1RPUAogICAgTFRFWFQgICAgICAgICAgICLXtMysOiIsICAgICAgICBzdGM4LCAgMTYsIDM2LCAgMzYsMTAsIFNTX05PUFJFRklYCiAgICBMVEVYVCAgICAgICAgICAgIkR1bW15IFN0YXRlIiwgICAgc3RjMTIsIDUyLCAzNiwgMjI0LDEwLCBTU19OT1BSRUZJWCB8IFNTX0xFRlROT1dPUkRXUkFQCiAgICBMVEVYVCAgICAgICAgICAgItDNusU6IiwgICAgICAgICAgc3RjNywgIDE2LCA0OCwgIDM2LDEwLCBTU19OT1BSRUZJWAogICAgTFRFWFQgICAgICAgICAgICJEdW1teSBUeXBlIiwgICAgIHN0YzExLCA1MiwgNDgsIDIyNCwxMCwgU1NfTk9QUkVGSVggfCBTU19MRUZUTk9XT1JEV1JBUAogICAgTFRFWFQgICAgICAgICAgICLOu9bDOiIsICAgICAgICAgc3RjMTAsIDE2LCA2MCwgIDM2LDEwLCBTU19OT1BSRUZJWAogICAgTFRFWFQgICAgICAgICAgICJEdW1teSBMb2NhdGlvbiIsIHN0YzE0LCA1MiwgNjAsIDIyNCwxMCwgU1NfTk9QUkVGSVggfCBTU19MRUZUTk9XT1JEV1JBUAogICAgTFRFWFQgICAgICAgICAgICKxuNeiOiIsICAgICAgIHN0YzksICAxNiwgNzIsICAzNiwxMCwgU1NfTk9QUkVGSVgKICAgIExURVhUICAgICAgICAgICAiRHVtbXkgUmVtYXJrIiwgICBzdGMxMywgNTIsIDcyLCAyMjQsMTAsIFNTX05PUFJFRklYIHwgU1NfTEVGVE5PV09SRFdSQVAKCiAgICBHUk9VUEJPWCAgICAgICAgIta91cUiLCAgICAgICAgICBncnAyLCAgIDgsIDkyLCAxNjQsNTYsIFdTX0dST1VQCiAgICBMVEVYVCAgICAgICAgICAgIta91cW089ChKCZ6KToiLCAgICAgICAgIHN0YzIsICAxNiwxMDgsICAzNiwgOAogICAgQ09NQk9CT1ggICAgICAgICAgICAgICAgICAgICAgICAgIGNtYjIsICA1MiwxMDYsIDExMiwxMTIsQ0JTX0RST1BET1dOTElTVCB8IENCU19TT1JUIHwgV1NfVlNDUk9MTCB8IFdTX0dST1VQIHwgV1NfVEFCU1RPUAogICAgTFRFWFQgICAgICAgICAgICLWvdXFwLTUtCgmUyk6IiwgICAgICAgc3RjMywgIDE2LDEyOCwgIDM2LCA4CiAgICBDT01CT0JPWCAgICAgICAgICAgICAgICAgICAgICAgICAgY21iMywgIDUyLDEyNiwgMTEyLDExMixDQlNfRFJPUERPV05MSVNUIHwgQ0JTX1NPUlQgfCBXU19WU0NST0xMIHwgV1NfR1JPVVAgfCBXU19UQUJTVE9QCgogICAgR1JPVVBCT1ggICAgICAgICK3vc/yIiwgICAgZ3JwMSwgMTgwLCA5MiwgMTAwLDU2LCBXU19HUk9VUAogICAgSUNPTiAgICAgICAgICAgICIiLCAgICAgICAgICAgICAgIGljbzEsIDE5NSwxMTIsICAxOCwyMCwgV1NfR1JPVVAKICAgIENPTlRST0wgICAgICAgICAi193P8igmUCkiLCAgICAgIHJhZDEsIkJ1dHRvbiIsQlNfQVVUT1JBRElPQlVUVE9OIHwgV1NfR1JPVVAgfFdTX1RBQlNUT1AsMjI0LDEwNiw1MiwxMgogICAgQ09OVFJPTCAgICAgICAgICK64c/yKCZMKSIsICAgICByYWQyLCJCdXR0b24iLEJTX0FVVE9SQURJT0JVVFRPTiwyMjQsMTI2LDUyLDEyCkVORAoKUEFHRVNFVFVQRExHT1JEIERJQUxPRyBMT0FET05DQUxMIE1PVkVBQkxFIERJU0NBUkRBQkxFIDMyLCAzMiwgMjQwLCAyNDAKU1RZTEUgRFNfTU9EQUxGUkFNRSB8IFdTX1BPUFVQIHwgV1NfVklTSUJMRSB8IFdTX0NBUFRJT04gfCBXU19TWVNNRU5VCkNBUFRJT04gItKzw+bJ6NbDIgpGT05UIDgsICJNUyBTaGVsbCBEbGciCkJFR0lOCiAgQ09OVFJPTCAiIiwgcmN0MSwgIlN0YXRpYyIsIFNTX1dISVRFUkVDVCwgODAsIDgsIDgwLCA4MAogIENPTlRST0wgIiIsIHJjdDIsICJTdGF0aWMiLCBTU19HUkFZUkVDVCwgMTYwLCAxMiwgNCwgODAKICBDT05UUk9MICIiLCByY3QzLCAiU3RhdGljIiwgU1NfR1JBWVJFQ1QsICA4NCwgODgsIDgwLCA0CiAgR1JPVVBCT1ggIta91cUiLCBncnAyLCA4LCA5NiwgMjI0LCA1NiwgQlNfR1JPVVBCT1gKICBMVEVYVCAitPPQoSgmUyk6Iiwgc3RjMiwgMTYsIDExMiwgMzYsIDgKICBDT01CT0JPWCBjbWIyLCA2NCwgMTEwLCAxNjAsIDE2MCwgQ0JTX1NJTVBMRXxDQlNfRFJPUERPV058Q0JTX1NPUlR8V1NfR1JPVVB8V1NfVEFCU1RPUHxXU19WU0NST0xMCiAgTFRFWFQgIsC01LQoJlMpOiIsIHN0YzMsIDE2LCAxMzIsIDM2LCA4CiAgQ09NQk9CT1ggY21iMywgNjQsIDEzMCwgMTYwLCAxNjAsIENCU19TSU1QTEV8Q0JTX0RST1BET1dOfENCU19TT1JUfFdTX0dST1VQfFdTX1RBQlNUT1B8V1NfVlNDUk9MTAogIEdST1VQQk9YICK3vc/yKCZPKSIsIGdycDEsIDgsIDE1NiwgNjQsIDU2LCBCU19HUk9VUEJPWAogIEFVVE9SQURJT0JVVFRPTiAi193P8igmUCkiLCByYWQxLCAxNiwgMTcwLCA1MiwgMTIsIEJTX0FVVE9SQURJT0JVVFRPTgogIEFVVE9SQURJT0JVVFRPTiAiuuHP8igmTCkiLCByYWQyLCAxNiwgMTkwLCA1MiwgMTIsIEJTX0FVVE9SQURJT0JVVFRPTgogIEdST1VQQk9YICKx377gIiwgZ3JwNCwgODAsIDE1NiwgMTUyLCA1NiwgQlNfR1JPVVBCT1gKICBMVEVYVCAi1/MoJmUpOiIsIHN0YzE1LCA4OCwgMTcyLCAyMSwgOAogIEVESVRURVhUIGVkdDQsIDExMSwgMTcwLCAzOSwgMTIsIFdTX1RBQlNUT1B8V1NfR1JPVVB8V1NfQk9SREVSCiAgTFRFWFQgItPSKCZSKToiLCBzdGMxNiwgMTU5LCAxNzIsIDI3LCA4CiAgRURJVFRFWFQgZWR0NiwgMTg3LCAxNzAsIDM5LCAxMiwgV1NfVEFCU1RPUHxXU19HUk9VUHxXU19CT1JERVIKICBMVEVYVCAiyc8oJm8pOiIsIHN0YzE3LCA4OCwgMTkyLCAyMSwgOAogIEVESVRURVhUIGVkdDUsIDExMSwgMTkwLCAzOSwgMTIsIFdTX1RBQlNUT1B8V1NfR1JPVVB8V1NfQk9SREVSCiAgTFRFWFQgIs/CKCZCKToiLCBzdGMxOCwgMTU5LCAxOTIsIDIzLCA4CiAgRURJVFRFWFQgZWR0NywgMTg3LCAxOTAsIDM5LCAxMiwgV1NfVEFCU1RPUHxXU19HUk9VUHxXU19CT1JERVIKICBERUZQVVNIQlVUVE9OICLIt7aoIiwgSURPSywgNzEsIDIyMCwgNTAsIDE0LCBCU19QVVNIQlVUVE9OCiAgUFVTSEJVVFRPTiAiyKHP+yIsIElEQ0FOQ0VMLCAxMjYsIDIyMCwgNTAsIDE0CiAgUFVTSEJVVFRPTiAitPLTobv6KCZQKS4uLiIsIHBzaDMsIDE4NCwgMjIwLCA0OCwgMTQKRU5ECgpORVdGSUxFT1BFTk9SRCBESUFMT0cgTE9BRE9OQ0FMTCBNT1ZFQUJMRSBESVNDQVJEQUJMRSAwLCAwLCAyODAsIDE2NApTVFlMRSBEU19NT0RBTEZSQU1FIHwgRFNfQ09OVEVYVEhFTFAgfCBXU19WSVNJQkxFIHwgV1NfUE9QVVAgfCBXU19DQVBUSU9OIHwgV1NfU1lTTUVOVSB8IFdTX0NMSVBDSElMRFJFTgpDQVBUSU9OICK08r+qIgpGT05UIDgsICJNUyBTaGVsbCBEbGciCnsKICAgIExURVhUCSLL0dGwKCZJKSIsSURDX0xPT0tJTlNUQVRJQyw0LDYsNDMsOCwgU1NfTk9USUZZCiAgICBDT01CT0JPWAlJRENfTE9PS0lOLDQ5LDMsMTMyLDEwMCxDQlNfRFJPUERPV05MSVNUIHwgQ0JTX09XTkVSRFJBV0ZJWEVEIHwgQ0JTX0hBU1NUUklOR1MgfCBXU19WU0NST0xMIHwgV1NfVEFCU1RPUAoKICAgIExURVhUCSIiICwgSURDX1RPT0xCQVJTVEFUSUMsIDE4MSwgMiwgMTAyLCAxNywgTk9UIFdTX0dST1VQIHwgTk9UIFdTX1ZJU0lCTEUKICAgIExJU1RCT1gJSURDX1NIRUxMU1RBVElDLDQsMjAsMjcyLDg1LCBMQlNfU09SVCB8IExCU19OT0lOVEVHUkFMSEVJR0hUIHwgTEJTX01VTFRJQ09MVU1OIHwgV1NfSFNDUk9MTCB8IE5PVCBXU19WSVNJQkxFCgogICAgTFRFWFQJIs7EvP7D+ygmTik6IixJRENfRklMRU5BTUVTVEFUSUMsNSwxMTIsNDYsOCwgU1NfTk9USUZZCiAgICBFRElUVEVYVAlJRENfRklMRU5BTUUsNTQsMTEwLDE1NSwxMixFU19BVVRPSFNDUk9MTAoKICAgIExURVhUCSLOxLz+wODQzSgmdCkiLElEQ19GSUxFVFlQRVNUQVRJQyw1LDEyOCw0Miw4LCBTU19OT1RJRlkKICAgIENPTUJPQk9YCUlEQ19GSUxFVFlQRSw1NCwxMjYsMTU1LDUzLENCU19EUk9QRE9XTkxJU1QgfCBXU19WU0NST0xMIHwgV1NfVEFCU1RPUAoKICAgIENPTlRST0wJIta7tsEoJnIpIixJRENfT1BFTlJFQURPTkxZLCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AsNTQsMTQ1LDEwMCwxMAoKICAgIERFRlBVU0hCVVRUT04JIrTyv6ooJk8pIiwJCSBJRE9LLDIyMiwxMTAsNTAsMTQKICAgIFBVU0hCVVRUT04JCSLIoc/7IiwJCSBJRENBTkNFTCwyMjIsMTI4LDUwLDE0CiAgICBQVVNIQlVUVE9OCQkisO/W+igmSCkiLAkJIHBzaEhlbHAsMjIyLDE0NSw1MCwxNAp9CgpTVFJJTkdUQUJMRSBESVNDQVJEQUJMRQp7CiAgICBJRFNfQUJPVVRCT1ggICAgICAgICAgICAiJkFib3V0IEZvbGRlclBpY2tlciBUZXN0IgogICAgSURTX0RPQ1VNRU5URk9MREVSUyAgICAgIs7EtbXEv8K8IgogICAgSURTX1BFUlNPTkFMICAgICAgICAgICAgIs7StcTOxLW1IgogICAgSURTX0ZBVk9SSVRFUyAgICAgICAgICAgIsrVsti80CIKICAgIElEU19QQVRIICAgICAgICAgICAgICAgICLPtc2zwre+tiIKICAgIElEU19ERVNLVE9QICAgICAgICAgICAgICLXwMPmIgogICAgSURTX0ZPTlRTICAgICAgICAgICAgICAgItfWzOUiCiAgICBJRFNfTVlDT01QVVRFUiAgICAgICAgICAiztK1xLXnxNQiCn0KClNUUklOR1RBQkxFIERJU0NBUkRBQkxFCnsKICAgIElEU19TWVNURU1GT0xERVJTICAgICAgICLPtc2zzsS8/rzQIgogICAgSURTX0xPQ0FMSEFSRFJJVkVTICAgICAgIrG+tdjTssXMx/22r8b3IgogICAgSURTX0ZJTEVOT1RGT1VORCAgICAgICAgItXSsru1vc7EvP4iCiAgICBJRFNfVkVSSUZZRklMRSAgICAgICAgICAix+u87NHpyse38bj40+jV/ci3tcTOxLz+w/uzxqGjIgogICAgSURTX0NSRUFURUZJTEUgICAgICAgICAgItXSsru1vc7EvP5cbsrHt/G0tL2o0MLOxLz+PyIKICAgIElEU19PVkVSV1JJVEVGSUxFICAgICAgICLOxLz+0tG+rbTm1Nqho1xu0qrM5ru7wvA/IgogICAgSURTX0lOVkFMSURfRklMRU5BTUVfVElUTEUgIs7EvP7D+9bQtObU2s7e0Ke1xNfWt/siCiAgICBJRFNfSU5WQUxJRF9GSUxFTkFNRSAgICAizsS8/sP71tCyu8TcsPy6rMjOus7Su8/C19a3+zo6IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAvIDogPCA+IHwiCiAgICBJRFNfUEFUSE5PVEVYSVNUSU5HICAgICAizsS8/rzQsru05tTaIgogICAgSURTX0ZJTEVOT1RFWElTVElORyAgICAgIs7EvP6yu7Tm1NoiCn0KClNUUklOR1RBQkxFIERJU0NBUkRBQkxFCnsKICAgIElEU19VUEZPTERFUiAgICAgICAgICLP8snP0sbSu7LjIgogICAgSURTX05FV0ZPTERFUiAgICAgICAgItDCvajOxLz+vNAiCiAgICBJRFNfTElTVFZJRVcgICAgICAgICAiwdCx7SIKICAgIElEU19SRVBPUlRWSUVXICAgICAgICLP6s+418rBzyIKICAgIElEU19UT0RFU0tUT1AgICAgICAgICKy6b+018DD5iIKfQoKU1RSSU5HVEFCTEUgRElTQ0FSREFCTEUKewogICAgUEQzMl9QUklOVF9USVRMRSAgICAgICAitPLToSIKCiAgICBQRDMyX1ZBTFVFX1VSRUFEQUJMRSAgICAgICAgICAgICAgICAgICJVbnJlYWRhYmxlIEVudHJ5IgogICAgUEQzMl9JTlZBTElEX1BBR0VfUkFOR0UgIlRoaXMgdmFsdWUgZG9lcyBub3QgbGllIHdpdGhpbiB0aGUgcGFnZSByYW5nZS5cblwKUGxlYXNlIGVudGVyIGEgdmFsdWUgYmV0d2VlbiAlZCBhbmQgJWQuIgogICAgUEQzMl9GUk9NX05PVF9BQk9WRV9UTyAgICAgICAgICAgICAgICAiVGhlICdmcm9tJyBlbnRyeSBjYW5ub3QgZXhjZWVkIHRoZSBcCid0bycgZW50cnkuIgogICAgUEQzMl9NQVJHSU5TX09WRVJMQVAgICAgICAgICAgICAgICAgICAiTWFyZ2lucyBvdmVybGFwIG9yIGZhbGwgb3V0c2lkZSBcClBhcGVyIGJvdW5kYXJpZXMuXG5QbGVhc2UgcmVlbnRlciBtYXJnaW5zLiIKICAgIFBEMzJfTlJfT0ZfQ09QSUVTX0VNUFRZICAgICAgICAgICAgICAgIlRoZSBudW1iZXIgb2YgJ051bWJlciBvZiBjb3BpZXMnIFwKdmFsdWUgY2Fubm90IGJlIGVtcHR5LiIKICAgIFBEMzJfVE9PX0xBUkdFX0NPUElFUyAgICAgICAgICAgICAgICAgIlRoaXMgbGFyZ2Ugbm11YmVyIG9mIGNvcGllcyBpcyBub3QgXApzdXBwb3J0ZWQgYnkgeW91ciBwcmludGVyLlxuUGxlYXNlIGVudGVyIGEgdmFsdWUgYmV0d2VlbiAxIGFuZCAlZC4iCiAgICBQRDMyX1BSSU5UX0VSUk9SICAgICAgICAgICAgICAgICAgICAgICJBIHByaW50ZXIgZXJyb3Igb2NjdXJyZWQuIgogICAgUEQzMl9OT19ERUZBVUxUX1BSSU5URVIgICAgICAgICAgICAgICAiVGhlcmUgaXMgbm90IGRlZmF1bHQgcHJpbnRlci4iCiAgICBQRDMyX0NBTlRfRklORF9QUklOVEVSICAgICAgICAgICAgICAgICJDYW5ub3QgZmluZCB0aGUgcHJpbnRlci4iCiAgICBQRDMyX09VVF9PRl9NRU1PUlkgICAgICAgICAgICAgICAgICAgICJPdXQgb2YgbWVtb3J5LiIKICAgIFBEMzJfR0VORVJJQ19FUlJPUiAgICAgICAgICAgICAgICAgICAgIlNvbWUgZXJyb3Igb2NjdXJyZWQuIgogICAgUEQzMl9EUklWRVJfVU5LTk9XTiAgICAgICAgICAgICAgICAgICAiVW5rbm93biBwcmludGVyIGRyaXZlci4iCgogICAgUEQzMl9ERUZBVUxUX1BSSU5URVIgICAgICAgICAgICAgICAgICAiRGVmYXVsdCBQcmludGVyOyAiCiAgICBQRDMyX05SX09GX0RPQ1VNRU5UU19JTl9RVUVVRSAgICAgICAgICJUaGVyZSBhcmUgJWQgZG9jdW1lbnRzIGluIHRoZSBxdWV1ZSIKICAgIFBEMzJfTUFSR0lOU19JTl9JTkNIRVMgICAgICAgICAgICAgICAgIk1hcmdpbnMgW2luY2hlc10iCiAgICBQRDMyX01BUkdJTlNfSU5fTUlMSU1FVEVSUyAgICAgICAgICAgICJNYXJnaW5zIFttbV0iCiAgICBQRDMyX01JTElNRVRFUlMgICAgICAgICAgICAgICAgICAgICAgICJtbSIKCiAgICBQRDMyX1BSSU5URVJfU1RBVFVTX1JFQURZICAgICAgICAgICAgICJSZWFkeSIKICAgIFBEMzJfUFJJTlRFUl9TVEFUVVNfUEFVU0VEICAgICAgICAgICAgIlBhdXNlZDsgIgogICAgUEQzMl9QUklOVEVSX1NUQVRVU19FUlJPUiAgICAgICAgICAgICAiRXJyb3I7ICIKICAgIFBEMzJfUFJJTlRFUl9TVEFUVVNfUEVORElOR19ERUxFVElPTiAgIlBlbmRpbmcgZGVsZXRpb247ICIKICAgIFBEMzJfUFJJTlRFUl9TVEFUVVNfUEFQRVJfSkFNICAgICAgICAgIlBhcGVyIGphbTsgIgogICAgUEQzMl9QUklOVEVSX1NUQVRVU19QQVBFUl9PVVQgICAgICAgICAiT3V0IG9mIHBhcGVyOyAiCiAgICBQRDMyX1BSSU5URVJfU1RBVFVTX01BTlVBTF9GRUVEICAgICAgICJGZWVkIHBhcGVyIG1hbnVhbDsgIgogICAgUEQzMl9QUklOVEVSX1NUQVRVU19QQVBFUl9QUk9CTEVNICAgICAiUGFwZXIgcHJvYmxlbTsgIgogICAgUEQzMl9QUklOVEVSX1NUQVRVU19PRkZMSU5FICAgICAgICAgICAiUHJpbnRlciBvZmZsaW5lOyAiCiAgICBQRDMyX1BSSU5URVJfU1RBVFVTX0lPX0FDVElWRSAgICAgICAgICJJL08gQWN0aXZlOyAiCiAgICBQRDMyX1BSSU5URVJfU1RBVFVTX0JVU1kgICAgICAgICAgICAgICJCdXN5OyAiCiAgICBQRDMyX1BSSU5URVJfU1RBVFVTX1BSSU5USU5HICAgICAgICAgICJQcmludGluZzsgIgogICAgUEQzMl9QUklOVEVSX1NUQVRVU19PVVRQVVRfQklOX0ZVTEwgICAiT3V0cHV0IHRyYXkgaXMgZnVsbDsgIgogICAgUEQzMl9QUklOVEVSX1NUQVRVU19OT1RfQVZBSUxBQkxFICAgICAiTm90IGF2YWlsYWJsZTsgIgogICAgUEQzMl9QUklOVEVSX1NUQVRVU19XQUlUSU5HICAgICAgICAgICAiV2FpdGluZzsgIgogICAgUEQzMl9QUklOVEVSX1NUQVRVU19QUk9DRVNTSU5HICAgICAgICAiUHJvY2Vzc2luZzsgIgogICAgUEQzMl9QUklOVEVSX1NUQVRVU19JTklUSUFMSVpJTkcgICAgICAiSW5pdGlhbGlzaW5nOyAiCiAgICBQRDMyX1BSSU5URVJfU1RBVFVTX1dBUk1JTkdfVVAgICAgICAgICJXYXJtaW5nIHVwOyAiCiAgICBQRDMyX1BSSU5URVJfU1RBVFVTX1RPTkVSX0xPVyAgICAgICAgICJUb25lciBsb3c7ICIKICAgIFBEMzJfUFJJTlRFUl9TVEFUVVNfTk9fVE9ORVIgICAgICAgICAgIk5vIHRvbmVyOyAiCiAgICBQRDMyX1BSSU5URVJfU1RBVFVTX1BBR0VfUFVOVCAgICAgICAgICJQYWdlIHB1bnQ7ICIKICAgIFBEMzJfUFJJTlRFUl9TVEFUVVNfVVNFUl9JTlRFUlZFTlRJT04gIkludGVycnVwdGVkIGJ5IHVzZXI7ICIKICAgIFBEMzJfUFJJTlRFUl9TVEFUVVNfT1VUX09GX01FTU9SWSAgICAgIk91dCBvZiBtZW1vcnk7ICIKICAgIFBEMzJfUFJJTlRFUl9TVEFUVVNfRE9PUl9PUEVOICAgICAgICAgIlRoZSBwcmludGVyIGRvb3IgaXMgb3BlbjsgIgogICAgUEQzMl9QUklOVEVSX1NUQVRVU19TRVJWRVJfVU5LTk9XTiAgICAiUHJpbnQgc2VydmVyIHVua25vd247ICIKICAgIFBEMzJfUFJJTlRFUl9TVEFUVVNfUE9XRVJfU0FWRSAgICAgICAgIlBvd2VyIHNhZmUgbW9kZTsgIgp9CgojcHJhZ21hIGNvZGVfcGFnZShkZWZhdWx0KQo=