LyoKICogV2luZUZpbGUgKFJ1c3NpYW4gcmVzb3VyY2VzKQogKgogKiBDb3B5cmlnaHQgMjAwMyBJZ29yIFN0ZXBpbgogKiBDb3B5cmlnaHQgMjAwNyBLb25zdGFudGluIEtvbmRyYXR5dWsgKEV0ZXJzb2Z0KQogKgogKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCiAqIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgogKgogKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKICogTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KICoKICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwogKiBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiAqIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EKICovCgpMQU5HVUFHRSBMQU5HX1JVU1NJQU4sIFNVQkxBTkdfREVGQVVMVAoKLyogTWVudSAqLwoKSURNX1dJTkVGSUxFIE1FTlUgRklYRUQgSU1QVVJFCnsKICAgIFBPUFVQICIm1ODp6yIgIHsKICAgICAgICBNRU5VSVRFTSAiJs7y6vD78vxcdEVudGVyIiwgICAgICAgICAgICAgSURfQUNUSVZBVEUKICAgICAgICBNRU5VSVRFTSAiJs/l8OXs5fHy6PL8Li4uXHRGNyIsICAgICAgICAgSURfRklMRV9NT1ZFCiAgICAgICAgTUVOVUlURU0gIibK7u/o8O7i4PL8Li4uXHRGOCIsICAgICAgICAgIElEX0ZJTEVfQ09QWQogICAgICAgIE1FTlVJVEVNICImwiDh8/Tl8CDu4ezl7eAuLi5cdEY5IiwgICAgICAxMTgKICAgICAgICBNRU5VSVRFTSAiJtPk4Ovo8vxcdERlbCIsICAgICAgICAgICAgICAgSURfRklMRV9ERUxFVEUKICAgICAgICBNRU5VSVRFTSAiz+Xw5ejs5e3u4uDy/C4uLiIsICAgICAgICAgICAgMTA5CiAgICAgICAgTUVOVUlURU0gItHi7unx8uLgLi4uXHRBbHQrRW50ZXIiLCAgICAgIElEX0VESVRfUFJPUEVSVElFUwogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICLA8PXo4ujw7uLg8vwuLi4iLCAgICAgICAgICAgICAxMTkKICAgICAgICBNRU5VSVRFTSAi0ODx7+Dq7uLg8vwuLi4iLCAgICAgICAgICAgICAgMTIwCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIibH4O/z8fLo8vwuLi4iLCAgICAgICAgICAgICAgIElEX0VYRUNVVEUKICAgICAgICBNRU5VSVRFTSAiJs/l9+Dy4PL8Li4uIiwgICAgICAgICAgICAgICAgMTAyCiAgICAgICAgTUVOVUlURU0gIsDx8e726Ojw7uLg8vwuLi4iLCAgICAgICAgICAgIDEwMwogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICLR7ufk4PL8IOTo8OXq8u7w6P4uLi4iLCAgICAgICAxMTEKICAgICAgICBNRU5VSVRFTSAiz+7o8eouLi4iLCAgICAgICAgICAgICAgICAgICAgMTA0CiAgICAgICAgTUVOVUlURU0gIibC++Tl6+jy/CD04Onr+y4uLiIsICAgICAgICAgIDExNgogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgojaWZuZGVmIF9OT19FWFRFTlNJT05TCiAgICAgICAgTUVOVUlURU0gIsL79e7kXHRBbHQrWCIsICAgICAgICAgICAgICAgIElEX0ZJTEVfRVhJVAojZWxzZQogICAgICAgIE1FTlVJVEVNICLC+/Xu5CIsICAgICAgICAgICAgICAgICAgICAgICBJRF9GSUxFX0VYSVQKI2VuZGlmCiAgICB9CgogICAgUE9QVVAgIibE6PHqIiAgewogICAgICAgIE1FTlVJVEVNICImyu7v6PDu4uDy/CDk6PHqLi4uIiwgICAgICAgICAyMDEKICAgICAgICBNRU5VSVRFTSAiJszl8urgIPLu7OAuLi4iLCAgICAgICAgICAgICAgMjAyCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIibU7vDs4PLo8O7i4PL8Li4uIiwgICAgICAgICAgIElEX0ZPUk1BVF9ESVNLCiNpZmRlZiBfV0lOOTUKICAgICAgICBNRU5VSVRFTSAiJtHu5+Tg8vwg8ejx8uXs7fvpIOTo8eouLi4iLCAtMSAgIC8qVE9ETyovCiNlbmRpZgogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICLP7uTq6/4m9+jy/CDx5fLl4u7pIOTo8eoiLCAgICBJRF9DT05ORUNUX05FVFdPUktfRFJJVkUKICAgICAgICBNRU5VSVRFTSAizvLqJuv+9+jy/CDx5fLl4u7pIOTo8eoiLCAgICAgSURfRElTQ09OTkVDVF9ORVRXT1JLX0RSSVZFCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gItHk5evg8vwg7ibh+ejsIOrg6i4uLiIsICAgICAgIDI1NAogICAgICAgIE1FTlVJVEVNICImx+Dq8Pvy/CDu4fno6SDk7vHy8+8uLi4iLCAgICAyNTUKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiJsL74fDg8vwg5Ojx6i4uLiIsICAgICAgICAgICAgMjUxCiAgICB9CgogICAgUE9QVVAgIibP4O/q6CIgIHsKICAgICAgICBNRU5VSVRFTSAi0Sbr5eTz/vno6SDz8O7i5e38XHQrIiwgICAgICAgMzAxCiAgICAgICAgTUVOVUlURU0gIibQ4Ofi5fDt8/L8IOTl8OXi7lx0KiIsICAgICAgIDMwMgogICAgICAgIE1FTlVJVEVNICLQ4Ofi5fDt8/L8IOIm8eVcdFN0cmcrKiIsICAgICAzMDMKICAgICAgICBNRU5VSVRFTSAiJtHi5fDt8/L8IOTl8OXi7lx0LSIsICAgICAgICAgMzA0CiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIibO8uzl8ujy/CDi5fLi6CIsICAgICAgICAgICAgIDUwNQogICAgfQoKICAgIFBPUFVQICImwujkIiAgewogICAgICAgIE1FTlVJVEVNICLE5fDl4u4gJugg7+Dv6uAiLCAgICAgICAgICAgICA0MTMKICAgICAgICBNRU5VSVRFTSAi0u7r/OruICbk5fDl4u4iLCAgICAgICAgICAgICAgNDExCiAgICAgICAgTUVOVUlURU0gItLu6/zq7iAm7+Dv6uAiLCAgICAgICAgICAgICAgIDQxMgogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICLQ4Ocm4ejy/CIsICAgICAgICAgICAgICAgICAgICBJRF9WSUVXX1NQTElUCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIsgm7P8iLCAgICAgICAgICAgICAgICAgICAgICAgIElEX1ZJRVdfTkFNRQogICAgICAgIE1FTlVJVEVNICLCJvHlIO/u5PDu4e3u8fLoIO4g9ODp6+UiLCAgICBJRF9WSUVXX0FMTF9BVFRSSUJVVEVTLCBDSEVDS0VECiAgICAgICAgTUVOVUlURU0gIibC++Hu8O737e4g7iD04Onr5S4uLiIsICAgICAgIElEX1ZJRVdfU0VMRUNURURfQVRUUklCVVRFUwogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICIm0e7w8ujw7uLg8vwg7+4g6Ozl7egiLCAgICAgICBJRF9WSUVXX1NPUlRfTkFNRQogICAgICAgIE1FTlVJVEVNICLR7vDy6PDu4uDy/CDv7iAm8ujv8yIsICAgICAgICBJRF9WSUVXX1NPUlRfVFlQRQogICAgICAgIE1FTlVJVEVNICLR7vDy6PDu4uDy/CDv7iAm8ODn7OXw8yIsICAgICBJRF9WSUVXX1NPUlRfU0laRQogICAgICAgIE1FTlVJVEVNICLR7vDy6PDu4uDy/CDv7iDkJuDy5SIsICAgICAgICBJRF9WSUVXX1NPUlRfREFURQogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICLR7vDy6PDu4uDy/CDv7iAmLi4uIiwgICAgICAgICBJRF9WSUVXX0ZJTFRFUgogICAgfQoKICAgIFBPUFVQICImzeDx8vDu6eroIiAgewogICAgICAgIE1FTlVJVEVNICLP7uQm8uLl8Obk5e3o/y4uLiIsICAgICAgICAgICA1MDEKICAgICAgICBNRU5VSVRFTSAiJtjw6PTyLi4uIiwgICAgICAgICAgICAgICAgICAgSURfU0VMRUNUX0ZPTlQKICAgICAgICBNRU5VSVRFTSAiJs3g8fLw7ujy/CDv4O3l6/wg6O3x8vDz7OXt8u7iLi4uIiwgNTEyCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIibP4O3l6/wg6O3x8vDz7OXt8u7iIiwgICAgICAgIElEX1ZJRVdfVE9PTF9CQVIsIENIRUNLRUQKICAgICAgICBNRU5VSVRFTSAiz+Dt5ev8ICbk6PHq7uIiLCAgICAgICAgICAgICAgSURfVklFV19EUklWRV9CQVIsIENIRUNLRUQKICAgICAgICBNRU5VSVRFTSAiJtHy8O7q4CDx7vHy7v/t6P8iLCAgICAgICAgICAgSURfVklFV19TVEFUVVNCQVIsIENIRUNLRUQKI2lmbmRlZiBfTk9fRVhURU5TSU9OUwogICAgICAgIE1FTlVJVEVNICLPJu7r7fvpIP3q8ODtXHRDdHJsK1NoaWZ0K1MiLCBJRF9WSUVXX0ZVTExTQ1JFRU4KI2VuZGlmCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIibH7eD37uog4iDx7+jx7uog7/Du4/Dg7OwiLCAgIDUwNAogICAgICAgIE1FTlVJVEVNICLR7ib18ODt//L8IO3g8fLw7unq6CDv8Ogg4vv17uTlIiw1MTEKICAgIH0KCgogICAgUE9QVVAgIibB5efu7+Dx7e7x8vwiICB7CiAgICAgICAgTUVOVUlURU0gIibE7vHy8+8uLi4iLCAgICAgICAgICAgICAgICAgIDYwNQogICAgICAgIE1FTlVJVEVNICImz/Du8u7q7uv7Li4uIiwgICAgICAgICAgICAgICA2MDYKICAgICAgICBNRU5VSVRFTSAiJsLr4OTl6+X2Li4uIiwgICAgICAgICAgICAgICAgNjA3CiAgICB9CgogICAgUE9QVVAgIibO6u3uIiAgewogICAgICAgIE1FTlVJVEVNICLN7uLu5SAm7urt7iIsICAgICAgICAgICAgICAgICBJRF9XSU5ET1dfTkVXCiAgICAgICAgTUVOVUlURU0gIs7q7eAgJurg8erg5O7sXHRDdHJsK0Y1IiwgICAgIElEX1dJTkRPV19DQVNDQURFCiAgICAgICAgTUVOVUlURU0gIs7q7eAg8Sbi5fD18yDi7ejnIiwgICAgICAgICAgIElEX1dJTkRPV19USUxFX0hPUloKICAgICAgICBNRU5VSVRFTSAizurt4CDxJuvl4uAg7eDv8ODi7lx0Q3RybCtGNCIsSURfV0lORE9XX1RJTEVfVkVSVAojaWZuZGVmIF9OT19FWFRFTlNJT05TCiAgICAgICAgTUVOVUlURU0gItDg8e/u6+7m6PL8ICbg4vLu7ODy6Pfl8eroIiwgIElEX1dJTkRPV19BVVRPU09SVAojZW5kaWYKICAgICAgICBNRU5VSVRFTSAiJtDg8e/u6+7m6PL8IiwgICAgICAgICAgICAgICAgSURfV0lORE9XX0FSUkFOR0UKICAgICAgICBNRU5VSVRFTSAizibh7e7i6PL8XHRGNSIsICAgICAgICAgICAgICAgSURfUkVGUkVTSAogICAgfQoKICAgIFBPUFVQICIm0e/w4OLq4CIgIHsKICAgICAgICBNRU5VSVRFTSAiJtHu5OXw5uDt6OVcdEYxIiwgICAgICAgICAgICAgSURfSEVMUAogICAgICAgIE1FTlVJVEVNICImz+7o8eouLi5cdEYxIiwgICAgICAgICAgICAgICBJRF9IRUxQCiAgICAgICAgTUVOVUlURU0gIibI8e/u6/zn7uLg7ejlIPHv8ODi6uhcdEYxIiwgIElEX0hFTFBfVVNJTkcKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiJs4gV2luZWZpbGUuLi4iLCAgICAgICAgICAgICAgSURfQUJPVVQKI2lmZGVmIF9fV0lORV9fCiAgICAgICAgTUVOVUlURU0gIs4gJldpbmUuLi4iLCAgICAgICAgICAgICAgICAgIElEX0FCT1VUX1dJTkUKI2VuZGlmCiAgICB9Cn0KCgpJRERfRVhFQ1VURSBESUFMT0cgRklYRUQgSU1QVVJFIDE1LCAxMywgMjEwLCA2MwpTVFlMRSBEU19NT0RBTEZSQU1FIHwgV1NfUE9QVVAgfCBXU19DQVBUSU9OIHwgV1NfU1lTTUVOVQpDQVBUSU9OICLC++/u6+3o8vwiCkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKewogICAgQ09OVFJPTCAgICAgICAgICIiLCAxMDEsICJTdGF0aWMiLCBTU19TSU1QTEV8U1NfTk9QUkVGSVgsIDMsIDYsIDE2MiwgMTAKICAgIENPTlRST0wgICAgICAgICAiJsru7ODt5OA6IiwgLTEsICJTdGF0aWMiLCBTU19MRUZUTk9XT1JEV1JBUHxXU19HUk9VUCwgMywgMTgsIDYwLCAxMAogICAgRURJVFRFWFQgICAgICAgIDIwMSwgMywgMjksIDEzNCwgMTIsIEVTX0FVVE9IU0NST0xMCiAgICBDT05UUk9MICAgICAgICAgIsrg6iAm8ejs4u7rIiwgMjE0LCAiQnV0dG9uIiwgQlNfQVVUT0NIRUNLQk9YfFdTX1RBQlNUT1AsMywgNDUsIDcxLCAxMgogICAgREVGUFVTSEJVVFRPTiAgICJPSyIsIDEsIDE1OCwgNiwgNDcsIDE0CiAgICBQVVNIQlVUVE9OICAgICAgIs7y7OXt4CIsIDIsIDE1OCwgMjMsIDQ3LCAxNAogICAgUFVTSEJVVFRPTiAgICAgICIm0e/w4OLq4CIsIDI1NCwgMTU4LCA0MywgNDcsIDE0Cn0KSUREX1NFTEVDVF9ERVNUSU5BVElPTiBESUFMT0cgRklYRUQgSU1QVVJFIDE1LCAxMywgMjEwLCA2MwpTVFlMRSBEU19NT0RBTEZSQU1FIHwgV1NfUE9QVVAgfCBXU19DQVBUSU9OIHwgV1NfU1lTTUVOVQpDQVBUSU9OICLC++Hl8Ojy5SDv8/L8IO3g5+3g9+Xt6P8iCkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKewogICAgQ09OVFJPTCAgICAgICAgICIiLCAxMDEsICJTdGF0aWMiLCBTU19TSU1QTEV8U1NfTk9QUkVGSVgsIDMsIDYsIDE2MiwgMTAKICAgIENPTlRST0wgICAgICAgICAiJs/z8vw6IiwgLTEsICJTdGF0aWMiLCBTU19MRUZUTk9XT1JEV1JBUHxXU19HUk9VUCwgMywgMTgsIDYwLCAxMAogICAgRURJVFRFWFQgICAgICAgIDIwMSwgMywgMjksIDEzNCwgMTIsIEVTX0FVVE9IU0NST0xMCiAgICBERUZQVVNIQlVUVE9OICAgIk9LIiwgMSwgMTU4LCA2LCA0NywgMTQKICAgIFBVU0hCVVRUT04gICAgICAizvLs5e3gIiwgMiwgMTU4LCAyMywgNDcsIDE0CiAgICBQVVNIQlVUVE9OICAgICAgIibO4efu8CIsIDI1NCwgMTU4LCA0MywgNDcsIDE0Cn0KCklERF9ESUFMT0dfVklFV19UWVBFIERJQUxPRyBESVNDQVJEQUJMRSAxNSwgMTMsIDE2MSwgOTcKU1RZTEUgRFNfTU9EQUxGUkFNRSB8IFdTX1BPUFVQIHwgV1NfQ0FQVElPTiB8IFdTX1NZU01FTlUKQ0FQVElPTiAiz+4g8ujv8yD04Onr7uIiCkZPTlQgOCwgIk1TIFNhbnMgU2VyaWYiCkJFR0lOCiAgICBMVEVYVCAgICAgICAgICAgIibI7P86IiwtMSw3LDgsMjIsMTAKICAgIEVESVRURVhUICAgICAgICBJRENfVklFV19QQVRURVJOLDMxLDcsNjMsMTIsRVNfQVVUT0hTQ1JPTEwKICAgIEdST1VQQk9YICAgICAgICAi0ujvIPTg6evgIiwtMSw3LDIzLDg3LDU2CiAgICBDT05UUk9MICAgICAgICAgIibK4PLg6+7j6CIsSURDX1ZJRVdfVFlQRV9ESVJFQ1RPUklFUywiQnV0dG9uIiwKICAgICAgICAgICAgICAgICAgICBCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QLDEzLDMyLDcwLDEwCiAgICBDT05UUk9MICAgICAgICAgIibP8O7j8ODs7PsiLElEQ19WSUVXX1RZUEVfUFJPR1JBTVMsIkJ1dHRvbiIsCiAgICAgICAgICAgICAgICAgICAgQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUCwxMyw0Myw3MCwxMAogICAgQ09OVFJPTCAgICAgICAgICImxO7q8+zl7fL7IixJRENfVklFV19UWVBFX0RPQ1VNRU5UUywiQnV0dG9uIiwKICAgICAgICAgICAgICAgICAgICBCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QLDEzLDU0LDcwLDEwCiAgICBDT05UUk9MICAgICAgICAgIsTw8+Po5SAm9ODp6/siLElEQ19WSUVXX1RZUEVfT1RIRVJTLCJCdXR0b24iLAogICAgICAgICAgICAgICAgICAgIEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AsMTMsNjUsNzAsMTAKICAgIENPTlRST0wgICAgICAgICAiz+7q4Ofg8vwg8erw+/L75S8m8ejx8uXs7fvlIPTg6ev7IixJRENfVklFV19UWVBFX0hJRERFTiwKICAgICAgICAgICAgICAgICAgICAiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QLDcsODEsMTA2LDkKICAgIERFRlBVU0hCVVRUT04gICAiT0siLElET0ssMTA0LDcsNTAsMTQKICAgIFBVU0hCVVRUT04gICAgICAizvLs5e3gIixJRENBTkNFTCwxMDQsMjQsNTAsMTQKRU5ECgpJRERfRElBTE9HX1BST1BFUlRJRVMgRElBTE9HIERJU0NBUkRBQkxFICAwLCAwLCAyNDgsIDIxNQpTVFlMRSBEU19NT0RBTEZSQU1FIHwgV1NfUE9QVVAgfCBXU19DQVBUSU9OIHwgV1NfU1lTTUVOVQpDQVBUSU9OICLR4u7p8fLi4CAlcyIKRk9OVCA4LCAiTVMgU2FucyBTZXJpZiIKQkVHSU4KICAgIERFRlBVU0hCVVRUT04gICAiT0siLElET0ssMTkxLDcsNTAsMTQKICAgIFBVU0hCVVRUT04gICAgICAizvLs5e3gIixJRENBTkNFTCwxOTEsMjksNTAsMTQKICAgIExURVhUICAgICAgICAgICAiyOz/ICb04Onr4DoiLC0xLDcsNyw1OSw5CiAgICBFRElUVEVYVCAgICAgICAgSURDX1NUQVRJQ19QUk9QX0ZJTEVOQU1FLDcxLDcsMTIwLDksRVNfUkVBRE9OTFkgfCBOT1QgV1NfQk9SREVSIHwgV1NfVEFCU1RPUAogICAgTFRFWFQgICAgICAgICAgICImz+7r7fvpIO/z8vw6IiwtMSw3LDE4LDU5LDkKICAgIEVESVRURVhUICAgICAgICBJRENfU1RBVElDX1BST1BfUEFUSCw3MSwxOCwxMjAsOSwgRVNfUkVBRE9OTFkgfCBOT1QgV1NfQk9SREVSIHwgV1NfVEFCU1RPUAogICAgTFRFWFQgICAgICAgICAgICLP7vHr5eTt5eUg6Ofs5e3l7ejlOiIsLTEsNywyOSw1OSw5CiAgICBFRElUVEVYVCAgICAgICAgSURDX1NUQVRJQ19QUk9QX0xBU1RDSEFOR0UsNzEsMjksMTIwLDksRVNfUkVBRE9OTFkgfCBOT1QgV1NfQk9SREVSIHwgV1NfVEFCU1RPUAogICAgTFRFWFQgICAgICAgICAgICLC5fDx6P86IiwtMSw3LDQwLDU5LDkKICAgIEVESVRURVhUICAgICAgICBJRENfU1RBVElDX1BST1BfVkVSU0lPTiw3MSw0MCwxMjAsOSxFU19SRUFET05MWSB8IE5PVCBXU19CT1JERVIgfCBXU19UQUJTVE9QCiAgICBMVEVYVCAgICAgICAgICAgIkNvcCZ5cmlnaHQ6IiwtMSw3LDUxLDU5LDkKICAgIEVESVRURVhUICAgICAgICBJRENfU1RBVElDX1BST1BfQ09QWVJJR0hULDcxLDUxLDEyMCw5LEVTX1JFQURPTkxZIHwgTk9UIFdTX0JPUkRFUiB8IFdTX1RBQlNUT1AKICAgIExURVhUICAgICAgICAgICAi0ODn7OXwOiIsLTEsNyw2Miw1OSw5CiAgICBFRElUVEVYVCAgICAgICAgSURDX1NUQVRJQ19QUk9QX1NJWkUsNzEsNjIsMTIwLDksRVNfUkVBRE9OTFkgfCBOT1QgV1NfQk9SREVSIHwgV1NfVEFCU1RPUAogICAgR1JPVVBCT1ggICAgICAgICLA8vDo4fPy+yIsLTEsNyw3OSwxNTgsNDYKICAgIENPTlRST0wgICAgICAgICAiJtLu6/zq7iDk6/8g9/Ll7ej/IixJRENfQ0hFQ0tfUkVBRE9OTFksIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUCwxNyw5MSw2OCw5CiAgICBDT05UUk9MICAgICAgICAgItEm6vD78vvpIixJRENfQ0hFQ0tfSElEREVOLCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AsOTIsOTEsNjgsOQogICAgQ09OVFJPTCAgICAgICAgICImQXJjaGl2ZSIsSURDX0NIRUNLX0FSQ0hJVkUsIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUCwxNywxMDEsNjgsOQogICAgQ09OVFJPTCAgICAgICAgICIm0ejx8uXs7fvpIixJRENfQ0hFQ0tfU1lTVEVNLCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AsOTIsMTAxLDY4LDkKICAgIENPTlRST0wgICAgICAgICAi0Sbm4PL76SIsSURDX0NIRUNLX0NPTVBSRVNTRUQsIkJ1dHRvbiIsIEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AsMTcsMTExLDY4LDkKICAgIEdST1VQQk9YICAgICAgICAiJsjt9O7w7OD26P8g7iDi5fDx6OgiLC0xLDcsMTI5LDIzNCw3OQogICAgTElTVEJPWCAgICAgICAgIElEQ19MSVNUX1BST1BfVkVSU0lPTl9UWVBFUywxMywxMzksMTA3LDYzLExCU19TT1JUIHwgTEJTX05PSU5URUdSQUxIRUlHSFQgfCBXU19WU0NST0xMIHwgV1NfVEFCU1RPUAogICAgRURJVFRFWFQgICAgICAgIElEQ19MSVNUX1BST1BfVkVSU0lPTl9WQUxVRVMsMTIzLDEzOSwxMTEsNjMsRVNfTVVMVElMSU5FIHwgRVNfUkVBRE9OTFkgfCBXU19WU0NST0xMCkVORAoKClNUUklOR1RBQkxFCnsKICAgIElEU19GT05UX1NFTF9ETEdfTkFNRSAgICLP8Ojs5e3l7ejlIO/g8ODs5fLw7uIg7eDx8vDu6eroIPjw6PTy4CIKICAgIElEU19GT05UX1NFTF9FUlJPUiAgICAgICLO+Ojh6uAg7/DoIOL74e7w5SDt7uLu4+4g+PDo9PLgLiIKfQoKU1RSSU5HVEFCTEUKewogICAgSURTX1dJTkVGSUxFICAgICAgICAgICAgIldpbmVmaWxlIgogICAgSURTX0VSUk9SICAgICAgICAgICAgICAgIs746OHq4CIKICAgIElEU19ST09UX0ZTICAgICAgICAgICAgICLK7vDt5eLg/yD04Onr7uLg/yDx6PHy5ezgIgogICAgSURTX1VOSVhGUyAgICAgICAgICAgICAgIs7x7e7i7eD/IPTg6evu4uD/IPHo8fLl7OAiCiAgICBJRFNfREVTS1RPUCAgICAgICAgICAgICAi0ODh7vfo6SDx8u7rIgogICAgSURTX1NIRUxMICAgICAgICAgICAgICAgIlNoZWxsIgogICAgSURTX1RJVExFRk1UICAgICAgICAgICAgIiVzIC0gJXMiCiAgICBJRFNfTk9fSU1QTCAgICAgICAgICAgICAixfm4IO3lIPDl4Ovo5+7i4O3uIgogICAgSURTX1dJTkUgICAgICAgICAgICAgICAgIldJTkUiCiAgICBJRFNfV0lORV9GSUxFICAgICAgICAgICAiV2luZSBGaWxlIgp9CgpTVFJJTkdUQUJMRQp7CiAgICBJRFNfQ09MX05BTUUgICAgICAgICAgICAiyOz/IgogICAgSURTX0NPTF9TSVpFICAgICAgICAgICAgItDg5+zl8CIKICAgIElEU19DT0xfQ0RBVEUgICAgICAgICAgICLE4PLgIPHu5+Tg7ej/IgogICAgSURTX0NPTF9BREFURSAgICAgICAgICAgIsTg8uAg7+7x6+Xk7eXj7iDk7vHy8+/gIgogICAgSURTX0NPTF9NREFURSAgICAgICAgICAgIsTg8uAg7+7x6+Xk7eXj7iDo5+zl7eXt6P8iCiAgICBJRFNfQ09MX0lEWCAgICAgICAgICAgICAiSW5kZXgvSW5vZGUiCiAgICBJRFNfQ09MX0xJTktTICAgICAgICAgICAi0fH76+roIgogICAgSURTX0NPTF9BVFRSICAgICAgICAgICAgIsDy8Ojh8/L7IgogICAgSURTX0NPTF9TRUMgICAgICAgICAgICAgIsHl5+7v4PHt7vHy/CIKCiAgICBJRFNfRlJFRV9TUEFDRV9GTVQgICAgICAiJXMg6OcgJXMg8eLu4e7k7e4iCn0KClNUUklOR1RBQkxFCnsKSURTX0xJQ0VOU0VfQ0FQVElPTiwgICAgICAgICAgICAiy+j25e3n6P8iCklEU19MSUNFTlNFLAoi3fLgIPDg4e7y4CD/4uv/5fLx/yDx4u7h7uTt++wg7/Du4/Dg7Ozt++wg7uHl8e/l9+Xt6OXsOyDi+yDs7ubl8uUg8eLu4e7k7e4g8ODx7/Du8fLw4O3/8vwg6C/o6+ggXAro5+zl7f/y/CDluCDv8Ogg8e7h6/7k5e3o6CDz8evu4ujpIOvo9uXt5+joIEdOVSBHZW5lcmFsIFB1YmxpYyBcCuru8u7w4P8g4fvr4CDu7/Ph6+jq7uLg7eAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBcCuvo4e4g4uXw8ejoIDIuMSwg6+jh7iDr/uHu6SDh7uvl5SDv7ufk7eXpIOLl8PHo6C5cblwKxODt7eD/IPDg4e7y4CDw4PHv8O7x8vDg7f/l8vH/IOIg7eDk5ebk5Swg9/LuIO7t4CDh8+Tl8iDv7uvl5+3u6SwgXArt7iDBxccgwtHfys7JIMPA0MDN0sjIOyDiIPLu7CD36PHr5SDh5ecg4vvy5erg/vnl6SDj4PDg7fLo6CBcCtLOwsDQzc7JIM/QyMPOxM3O0dLIIOjr6CDP0MjDzsTNztHSyCDEy98g18DR0s3Ow84gyNHPzsvcx87CwM3I3y4gXArR7C4gR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIOTr/yDh7uvl5SDv7uTw7uHt7ukg6O307vDs4Pbo6C5cblwKwvsg5O7r5u37IOH76+gg7+7r8/fo8vwg6u7v6P4gdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgXApMaWNlbnNlIOLs5fHy5SDxIP3y7ukg8ODh7vLu6Tsg5fHr6CDt5fIsIO/o+Ojy5TogdGhlIEZyZWUgU29mdHdhcmUgXApGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBIgoKSURTX1dBUlJBTlRZX0NBUFRJT04sICLO8vHz8vHy4ujlIOPg8ODt8ujoIgpJRFNfV0FSUkFOVFksCiLE4O3t4P8g8ODh7vLgIPDg8e/w7vHy8ODt/+Xy8f8g4iDt4OTl5uTlLCD38u4g7u3gIOHz5OXyIO/u6+Xn7e7pLCBcCu3uIMHFxyDC0d/Kzskgw8DQwM3SyMg7IOIg8u7sIPfo8evlIOHl5yDi+/Ll6uD++eXpIOPg8ODt8ujoIFwK0s7CwNDNzskgz9DIw87Ezc7R0sgg6OvoIM/QyMPOxM3O0dLIIMTL3yDXwNHSzc7DziDI0c/Oy9zHzsLAzcjfLiBcCtHsLiBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2Ug5Ov/IOHu6+XlIO/u5PDu4e3u6SDo7fTu8Ozg9ujoLiIKfQo=